diff --git a/base/BUILD.gn b/base/BUILD.gn
index fdd4572..84beb15 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -858,7 +858,7 @@
     ]
 
     # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
-    cflags = [ "/wd4267" ]
+    #cflags = [ "/wd4267" ]
 
     libs = [
       "cfgmgr32.lib",
diff --git a/base/PRESUBMIT.py b/base/PRESUBMIT.py
index 4b366d9..46ab02e 100644
--- a/base/PRESUBMIT.py
+++ b/base/PRESUBMIT.py
@@ -14,6 +14,7 @@
   files = []
   for f in input_api.AffectedSourceFiles(input_api.FilterSourceFile):
     if (f.LocalPath().startswith('base/') and
+        not "/ios/" in f.LocalPath() and
         not "/test/" in f.LocalPath() and
         not f.LocalPath().endswith('_unittest.mm') and
         not f.LocalPath().endswith('mac/sdk_forward_declarations.h')):
diff --git a/base/android/field_trial_list.cc b/base/android/field_trial_list.cc
index 13f3cc5..9cb38d2 100644
--- a/base/android/field_trial_list.cc
+++ b/base/android/field_trial_list.cc
@@ -22,6 +22,11 @@
       base::FieldTrialList::FindFullName(trial_name)).Release();
 }
 
+static jboolean TrialExists(JNIEnv* env, jclass clazz, jstring jtrial_name) {
+  std::string trial_name(ConvertJavaStringToUTF8(env, jtrial_name));
+  return base::FieldTrialList::TrialExists(trial_name);
+}
+
 namespace base {
 namespace android {
 
diff --git a/base/android/java/src/org/chromium/base/FieldTrialList.java b/base/android/java/src/org/chromium/base/FieldTrialList.java
index 6c1f31c..5fc9a1f 100644
--- a/base/android/java/src/org/chromium/base/FieldTrialList.java
+++ b/base/android/java/src/org/chromium/base/FieldTrialList.java
@@ -20,5 +20,14 @@
         return nativeFindFullName(trialName);
     }
 
+    /**
+     * @param trialName The name of the trial to get the group for.
+     * @return Whether the trial exists or not.
+     */
+    public static boolean trialExists(String trialName) {
+        return nativeTrialExists(trialName);
+    }
+
     private static native String nativeFindFullName(String trialName);
+    private static native boolean nativeTrialExists(String trialName);
 }
diff --git a/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java b/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java
index 97afbea..28c688d 100644
--- a/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java
+++ b/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java
@@ -55,17 +55,17 @@
     private static boolean sIsUsingBrowserSharedRelros = false;
     private static boolean sLoadAtFixedAddressFailed = false;
 
-    // One-way switch becomes true if the device supports loading the Chromium
-    // library directly from the APK.
-    private static boolean sLibraryLoadFromApkSupported = false;
+    // One-way switch becomes true if the device supports memory mapping the
+    // APK file with executable permissions.
+    private static boolean sMapApkWithExecPermission = false;
 
     // One-way switch becomes true if the Chromium library was loaded from the
     // APK file directly.
     private static boolean sLibraryWasLoadedFromApk = false;
 
     // One-way switch becomes false if the Chromium library should be loaded
-    // directly from the APK file but it was not aligned.
-    private static boolean sLibraryWasAlignedInApk = true;
+    // directly from the APK file but it was compressed or not aligned.
+    private static boolean sLibraryIsMappableInApk = true;
 
     // One-way switch becomes true if the system library loading failed,
     // and the right native library was found and loaded by the hack.
@@ -176,12 +176,20 @@
 
                 if (useChromiumLinker) {
                     String apkFilePath = null;
+                    boolean useMapExecSupportFallback = false;
 
-                    // Check if the device supports loading a library directly from the APK file.
+                    // Check if the device supports memory mapping the APK file
+                    // with executable permissions.
                     if (context != null) {
                         apkFilePath = context.getApplicationInfo().sourceDir;
-                        sLibraryLoadFromApkSupported = Linker.checkLibraryLoadFromApkSupport(
-                                apkFilePath);
+                        sMapApkWithExecPermission = Linker.checkMapExecSupport(apkFilePath);
+                        if (!sMapApkWithExecPermission && Linker.isInZipFile()) {
+                            Log.w(TAG, "the no map executable support fallback will be used because"
+                                    + " memory mapping the APK file with executable permissions is"
+                                    + " not supported");
+                            Linker.enableNoMapExecSupportFallback();
+                            useMapExecSupportFallback = true;
+                        }
                     } else {
                         Log.w(TAG, "could not check load from APK support due to null context");
                     }
@@ -203,18 +211,22 @@
                         String libFilePath = System.mapLibraryName(library);
                         if (apkFilePath != null && Linker.isInZipFile()) {
                             // The library is in the APK file.
-                            if (!Linker.checkLibraryAlignedInApk(apkFilePath, libFilePath)) {
-                                sLibraryWasAlignedInApk = false;
+                            if (!Linker.checkLibraryIsMappableInApk(apkFilePath, libFilePath)) {
+                                sLibraryIsMappableInApk = false;
                             }
-                            if (!sLibraryLoadFromApkSupported || sLibraryWasAlignedInApk) {
-                                // Load directly from the APK (or use memory fallback, see
-                                // crazy_linker_elf_loader.cpp).
-                                Log.i(TAG, "Loading " + library + " directly from within "
-                                        + apkFilePath);
+                            if (sLibraryIsMappableInApk || useMapExecSupportFallback) {
+                                // Load directly from the APK (or use the no map executable
+                                // support fallback, see crazy_linker_elf_loader.cpp).
                                 zipFilePath = apkFilePath;
+                                Log.i(TAG, "Loading " + library + " "
+                                        + (useMapExecSupportFallback
+                                                ? "using no map executable support fallback"
+                                                : "directly")
+                                        + " from within " + apkFilePath);
                             } else {
-                                // Fallback.
-                                Log.i(TAG, "Loading " + library + " using fallback from within "
+                                // Unpack library fallback.
+                                Log.i(TAG, "Loading " + library
+                                        + " using unpack library fallback from within "
                                         + apkFilePath);
                                 libFilePath = LibraryLoaderHelper.buildFallbackLibrary(
                                         context, library);
@@ -299,10 +311,10 @@
     // Load a native shared library with the Chromium linker. If the zip file
     // path is not null, the library is loaded directly from the zip file.
     private static void loadLibrary(@Nullable String zipFilePath, String libFilePath) {
+        Linker.loadLibrary(zipFilePath, libFilePath);
         if (zipFilePath != null) {
             sLibraryWasLoadedFromApk = true;
         }
-        Linker.loadLibrary(zipFilePath, libFilePath);
     }
 
     // The WebView requires the Command Line to be switched over before
@@ -380,11 +392,13 @@
         assert Linker.isUsed();
 
         if (sLibraryWasLoadedFromApk) {
-            return LibraryLoadFromApkStatusCodes.SUCCESSFUL;
+            return sMapApkWithExecPermission
+                    ? LibraryLoadFromApkStatusCodes.SUCCESSFUL
+                    : LibraryLoadFromApkStatusCodes.USED_NO_MAP_EXEC_SUPPORT_FALLBACK;
         }
 
-        if (!sLibraryWasAlignedInApk) {
-            return LibraryLoadFromApkStatusCodes.NOT_ALIGNED;
+        if (!sLibraryIsMappableInApk) {
+            return LibraryLoadFromApkStatusCodes.USED_UNPACK_LIBRARY_FALLBACK;
         }
 
         if (context == null) {
@@ -392,7 +406,7 @@
             return LibraryLoadFromApkStatusCodes.UNKNOWN;
         }
 
-        return Linker.checkLibraryLoadFromApkSupport(context.getApplicationInfo().sourceDir)
+        return sMapApkWithExecPermission
                 ? LibraryLoadFromApkStatusCodes.SUPPORTED
                 : LibraryLoadFromApkStatusCodes.NOT_SUPPORTED;
     }
diff --git a/base/android/java/src/org/chromium/base/library_loader/Linker.java b/base/android/java/src/org/chromium/base/library_loader/Linker.java
index 67e5f83..d58d1fc 100644
--- a/base/android/java/src/org/chromium/base/library_loader/Linker.java
+++ b/base/android/java/src/org/chromium/base/library_loader/Linker.java
@@ -798,6 +798,19 @@
     }
 
     /**
+     * Enable the fallback due to lack of support for mapping the APK file with
+     * executable permission (see crbug.com/398425).
+     */
+    public static void enableNoMapExecSupportFallback() {
+        synchronized (Linker.class) {
+            ensureInitializedLocked();
+
+            if (DEBUG) Log.i(TAG, "Enabling no map executable support fallback");
+            nativeEnableNoMapExecSupportFallback();
+        }
+    }
+
+    /**
      * Determine whether a library is the linker library. Also deal with the
      * component build that adds a .cr suffix to the name.
      */
@@ -812,46 +825,50 @@
      * @return the library path.
      */
     public static String getLibraryFilePathInZipFile(String library) throws FileNotFoundException {
-        String path = nativeGetLibraryFilePathInZipFile(library);
-        if (path.equals("")) {
-            throw new FileNotFoundException(
-                    "Failed to retrieve path in zip file for library " + library);
+        synchronized (Linker.class) {
+            ensureInitializedLocked();
+
+            String path = nativeGetLibraryFilePathInZipFile(library);
+            if (path.equals("")) {
+                throw new FileNotFoundException(
+                        "Failed to retrieve path in zip file for library " + library);
+            }
+            return path;
         }
-        return path;
     }
 
     /**
-     * Check whether the device supports loading a library directly from the APK file.
+     * Check whether the device supports mapping the APK file with executable permission.
      *
      * @param apkFile Filename of the APK.
      * @return true if supported.
      */
-    public static boolean checkLibraryLoadFromApkSupport(String apkFile) {
+    public static boolean checkMapExecSupport(String apkFile) {
         assert apkFile != null;
         synchronized (Linker.class) {
             ensureInitializedLocked();
 
-            if (DEBUG) Log.i(TAG, "checkLibraryLoadFromApkSupported: " + apkFile);
-            boolean supported = nativeCheckLibraryLoadFromApkSupport(apkFile);
-            if (DEBUG) Log.i(TAG, "Loading a library directly from the APK file "
+            if (DEBUG) Log.i(TAG, "checkMapExecSupport: " + apkFile);
+            boolean supported = nativeCheckMapExecSupport(apkFile);
+            if (DEBUG) Log.i(TAG, "Mapping the APK file with executable permission "
                     + (supported ? "" : "NOT ") + "supported");
             return supported;
         }
     }
 
     /**
-     * Check whether a library is page aligned in the APK file.
+     * Check whether a library is page aligned and uncompressed in the APK file.
      *
      * @param apkFile Filename of the APK.
      * @param library The library's base name.
-     * @return true if page aligned.
+     * @return true if page aligned and uncompressed.
      */
-    public static boolean checkLibraryAlignedInApk(String apkFile, String library) {
+    public static boolean checkLibraryIsMappableInApk(String apkFile, String library) {
         synchronized (Linker.class) {
             ensureInitializedLocked();
 
-            if (DEBUG) Log.i(TAG, "checkLibraryAlignedInApk: " + apkFile + ", " + library);
-            boolean aligned = nativeCheckLibraryAlignedInApk(apkFile, library);
+            if (DEBUG) Log.i(TAG, "checkLibraryIsMappableInApk: " + apkFile + ", " + library);
+            boolean aligned = nativeCheckLibraryIsMappableInApk(apkFile, library);
             if (DEBUG) Log.i(TAG, library + " is " + (aligned ? "" : "NOT ")
                     + "page aligned in " + apkFile);
             return aligned;
@@ -909,6 +926,12 @@
                                                              LibInfo libInfo);
 
     /**
+     * Native method used to enable the fallback due to lack of support for
+     * mapping the APK file with executable permission.
+     */
+    private static native void nativeEnableNoMapExecSupportFallback();
+
+    /**
      * Native method used to create a shared RELRO section.
      * If the library was already loaded at the same address using
      * nativeLoadLibrary(), this creates the RELRO for it. Otherwise,
@@ -964,22 +987,23 @@
     private static native String nativeGetLibraryFilePathInZipFile(String library);
 
     /**
-     * Native method which checks whether the device supports loading a library
-     * directly from the APK file.
+     * Native method which checks whether the device supports mapping the APK file
+     * with executable permission.
      *
      * @param apkFile Filename of the APK.
      * @return true if supported.
      */
-    private static native boolean nativeCheckLibraryLoadFromApkSupport(String apkFile);
+    private static native boolean nativeCheckMapExecSupport(String apkFile);
 
     /**
-     * Native method which checks whether a library is page aligned in the APK file.
+     * Native method which checks whether a library is page aligned and
+     * uncompressed in the APK file.
      *
      * @param apkFile Filename of the APK.
      * @param library The library's base name.
-     * @return true if page aligned.
+     * @return true if page aligned and uncompressed.
      */
-    private static native boolean nativeCheckLibraryAlignedInApk(String apkFile, String library);
+    private static native boolean nativeCheckLibraryIsMappableInApk(String apkFile, String library);
 
     /**
      * Record information for a given library.
diff --git a/base/android/library_loader/library_load_from_apk_status_codes.h b/base/android/library_loader/library_load_from_apk_status_codes.h
index 21f40bc..f99eebc 100644
--- a/base/android/library_loader/library_load_from_apk_status_codes.h
+++ b/base/android/library_loader/library_load_from_apk_status_codes.h
@@ -10,6 +10,8 @@
 
 namespace {
 
+// This enum must be kept in sync with the LibraryLoadFromApkStatus enum in
+// tools/metrics/histograms/histograms.xml.
 // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.base.library_loader
 enum LibraryLoadFromApkStatusCodes {
   // The loader was unable to determine whether the functionality is supported.
@@ -24,11 +26,16 @@
   // The Chromium library was successfully loaded directly from the APK file.
   LIBRARY_LOAD_FROM_APK_STATUS_CODES_SUCCESSFUL = 3,
 
-  // The Chromium library was not page aligned in the APK file.
-  LIBRARY_LOAD_FROM_APK_STATUS_CODES_NOT_ALIGNED = 4,
+  // The Chromium library was successfully loaded using the unpack library
+  // fallback because it was compressed or not page aligned in the APK file.
+  LIBRARY_LOAD_FROM_APK_STATUS_CODES_USED_UNPACK_LIBRARY_FALLBACK = 4,
+
+  // The Chromium library was successfully loaded using the no map executable
+  // support fallback.
+  LIBRARY_LOAD_FROM_APK_STATUS_CODES_USED_NO_MAP_EXEC_SUPPORT_FALLBACK = 5,
 
   // End sentinel.
-  LIBRARY_LOAD_FROM_APK_STATUS_CODES_MAX = 5,
+  LIBRARY_LOAD_FROM_APK_STATUS_CODES_MAX = 6,
 };
 
 }  // namespace
diff --git a/base/android/linker/linker_jni.cc b/base/android/linker/linker_jni.cc
index 2b5a07d..b3ed651 100644
--- a/base/android/linker/linker_jni.cc
+++ b/base/android/linker/linker_jni.cc
@@ -386,6 +386,17 @@
       static_cast<size_t>(load_address), lib_info_obj, opener);
 }
 
+// Enable the fallback due to lack of support for mapping the APK file with
+// executable permission in the crazy linker.
+//
+// |env| is the current JNI environment handle and is ignored here.
+// |clazz| is the static class handle for org.chromium.base.Linker,
+// and is ignored here.
+void EnableNoMapExecSupportFallback(JNIEnv* env, jclass clazz) {
+  crazy_context_t* context = GetCrazyContext();
+  crazy_context_set_no_map_exec_support_fallback_enabled(context, true);
+}
+
 // Class holding the Java class and method ID for the Java side Linker
 // postCallbackOnMainThread method.
 struct JavaCallbackBindings_class {
@@ -598,15 +609,14 @@
   return env->NewStringUTF(buffer);
 }
 
-// Check whether the device supports loading a library directly from the APK
-// file.
+// Check whether the device supports mapping the APK file with executable
+// permission.
 //
 // |env| is the current JNI environment handle.
 // |clazz| is the static class handle which is not used here.
 // |apkfile_name| is the filename of the APK.
 // Returns true if supported.
-jboolean CheckLibraryLoadFromApkSupport(JNIEnv* env, jclass clazz,
-                                        jstring apkfile_name) {
+jboolean CheckMapExecSupport(JNIEnv* env, jclass clazz, jstring apkfile_name) {
   String apkfile_name_str(env, apkfile_name);
   const char* apkfile_name_c_str = apkfile_name_str.c_str();
 
@@ -635,27 +645,28 @@
   return status;
 }
 
-// Check whether a library is page aligned in the APK file.
+// Check whether a library is page aligned and uncompressed in the APK file.
 //
 // |env| is the current JNI environment handle.
 // |clazz| is the static class handle which is not used here.
 // |apkfile_name| is the filename of the APK.
 // |library_name| is the library base name.
-// Returns true if page aligned.
-jboolean CheckLibraryAlignedInApk(JNIEnv* env, jclass clazz,
-                                  jstring apkfile_name, jstring library_name) {
+// Returns true if page aligned and uncompressed.
+jboolean CheckLibraryIsMappableInApk(JNIEnv* env, jclass clazz,
+                                     jstring apkfile_name,
+                                     jstring library_name) {
   String apkfile_name_str(env, apkfile_name);
   const char* apkfile_name_c_str = apkfile_name_str.c_str();
   String library_name_str(env, library_name);
   const char* library_name_c_str = library_name_str.c_str();
 
-  LOG_INFO("%s: Checking if %s is page-aligned in %s\n", __FUNCTION__,
-           library_name_c_str, apkfile_name_c_str);
-  jboolean aligned = crazy_linker_check_library_aligned_in_zip_file(
+  LOG_INFO("%s: Checking if %s is page-aligned and uncompressed in %s\n",
+           __FUNCTION__, library_name_c_str, apkfile_name_c_str);
+  jboolean mappable = crazy_linker_check_library_is_mappable_in_zip_file(
       apkfile_name_c_str, library_name_c_str) == CRAZY_STATUS_SUCCESS;
   LOG_INFO("%s: %s\n", __FUNCTION__, aligned ? "Aligned" : "NOT aligned");
 
-  return aligned;
+  return mappable;
 }
 
 const JNINativeMethod kNativeMethods[] = {
@@ -676,6 +687,11 @@
      ")"
      "Z",
      reinterpret_cast<void*>(&LoadLibraryInZipFile)},
+    {"nativeEnableNoMapExecSupportFallback",
+     "("
+     ")"
+     "V",
+     reinterpret_cast<void*>(&EnableNoMapExecSupportFallback)},
     {"nativeRunCallbackOnUiThread",
      "("
      "J"
@@ -714,19 +730,19 @@
      ")"
      "Ljava/lang/String;",
      reinterpret_cast<void*>(&GetLibraryFilePathInZipFile)},
-    {"nativeCheckLibraryLoadFromApkSupport",
+    {"nativeCheckMapExecSupport",
      "("
      "Ljava/lang/String;"
      ")"
      "Z",
-     reinterpret_cast<void*>(&CheckLibraryLoadFromApkSupport)},
-    {"nativeCheckLibraryAlignedInApk",
+     reinterpret_cast<void*>(&CheckMapExecSupport)},
+    {"nativeCheckLibraryIsMappableInApk",
      "("
      "Ljava/lang/String;"
      "Ljava/lang/String;"
      ")"
      "Z",
-     reinterpret_cast<void*>(&CheckLibraryAlignedInApk)}, };
+     reinterpret_cast<void*>(&CheckLibraryIsMappableInApk)}, };
 
 }  // namespace
 
diff --git a/base/file_version_info_win.cc b/base/file_version_info_win.cc
index 46b0581..ca3e4b1 100644
--- a/base/file_version_info_win.cc
+++ b/base/file_version_info_win.cc
@@ -9,7 +9,6 @@
 #include "base/file_version_info.h"
 #include "base/files/file_path.h"
 #include "base/logging.h"
-#include "base/path_service.h"
 #include "base/threading/thread_restrictions.h"
 
 using base::FilePath;
diff --git a/base/files/file_util_posix.cc b/base/files/file_util_posix.cc
index d86d9bc..b8c0eeb 100644
--- a/base/files/file_util_posix.cc
+++ b/base/files/file_util_posix.cc
@@ -59,7 +59,7 @@
 
 namespace base {
 
-#if !defined(__native_client_nonsfi__)
+#if !defined(OS_NACL_NONSFI)
 namespace {
 
 #if defined(OS_BSD) || defined(OS_MACOSX) || defined(OS_NACL)
@@ -348,7 +348,7 @@
 
   return success;
 }
-#endif  // !defined(__native_client_nonsfi__)
+#endif  // !defined(OS_NACL_NONSFI)
 
 bool PathExists(const FilePath& path) {
   ThreadRestrictions::AssertIOAllowed();
@@ -360,7 +360,7 @@
   return access(path.value().c_str(), F_OK) == 0;
 }
 
-#if !defined(__native_client_nonsfi__)
+#if !defined(OS_NACL_NONSFI)
 bool PathIsWritable(const FilePath& path) {
   ThreadRestrictions::AssertIOAllowed();
   return access(path.value().c_str(), W_OK) == 0;
@@ -373,7 +373,7 @@
     return S_ISDIR(file_info.st_mode);
   return false;
 }
-#endif  // !defined(__native_client_nonsfi__)
+#endif  // !defined(OS_NACL_NONSFI)
 
 bool ReadFromFD(int fd, char* buffer, size_t bytes) {
   size_t total_read = 0;
@@ -387,7 +387,7 @@
   return total_read == bytes;
 }
 
-#if !defined(__native_client_nonsfi__)
+#if !defined(OS_NACL_NONSFI)
 bool CreateSymbolicLink(const FilePath& target_path,
                         const FilePath& symlink_path) {
   DCHECK(!symlink_path.empty());
@@ -928,5 +928,5 @@
 
 }  // namespace internal
 
-#endif  // !defined(__native_client_nonsfi__)
+#endif  // !defined(OS_NACL_NONSFI)
 }  // namespace base
diff --git a/base/linux_util.cc b/base/linux_util.cc
index 29e1980..d6cd504 100644
--- a/base/linux_util.cc
+++ b/base/linux_util.cc
@@ -18,7 +18,6 @@
 #include "base/files/file_util.h"
 #include "base/memory/scoped_ptr.h"
 #include "base/memory/singleton.h"
-#include "base/path_service.h"
 #include "base/process/launch.h"
 #include "base/strings/string_util.h"
 #include "base/synchronization/lock.h"
diff --git a/base/memory/singleton_unittest.cc b/base/memory/singleton_unittest.cc
index 41bd75c..0e9ecdc 100644
--- a/base/memory/singleton_unittest.cc
+++ b/base/memory/singleton_unittest.cc
@@ -4,7 +4,6 @@
 
 #include "base/at_exit.h"
 #include "base/memory/singleton.h"
-#include "base/path_service.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace {
diff --git a/base/message_loop/message_loop.cc b/base/message_loop/message_loop.cc
index f1d0d3b..01402d0 100644
--- a/base/message_loop/message_loop.cc
+++ b/base/message_loop/message_loop.cc
@@ -100,7 +100,7 @@
 
 #if defined(OS_IOS)
 typedef MessagePumpIOSForIO MessagePumpForIO;
-#elif defined(OS_NACL) && !defined(__native_client_nonsfi__)
+#elif defined(OS_NACL_SFI)
 typedef MessagePumpDefault MessagePumpForIO;
 #elif defined(OS_POSIX)
 typedef MessagePumpLibevent MessagePumpForIO;
@@ -676,7 +676,7 @@
 //------------------------------------------------------------------------------
 // MessageLoopForIO
 
-#if !defined(OS_NACL) || defined(__native_client_nonsfi__)
+#if !defined(OS_NACL_SFI)
 void MessageLoopForIO::AddIOObserver(
     MessageLoopForIO::IOObserver* io_observer) {
   ToPumpIO(pump_.get())->AddIOObserver(io_observer);
@@ -714,6 +714,6 @@
 }
 #endif
 
-#endif  // !defined(OS_NACL) || defined(__native_client_nonsfi__)
+#endif  // !defined(OS_NACL_SFI)
 
 }  // namespace base
diff --git a/base/message_loop/message_loop.h b/base/message_loop/message_loop.h
index b781711..47df69a 100644
--- a/base/message_loop/message_loop.h
+++ b/base/message_loop/message_loop.h
@@ -596,7 +596,7 @@
     return loop && loop->type() == MessageLoop::TYPE_IO;
   }
 
-#if !defined(OS_NACL) || defined(__native_client_nonsfi__)
+#if !defined(OS_NACL_SFI)
 
 #if defined(OS_WIN)
   typedef MessagePumpForIO::IOHandler IOHandler;
@@ -642,7 +642,7 @@
                            FileDescriptorWatcher *controller,
                            Watcher *delegate);
 #endif  // defined(OS_IOS) || defined(OS_POSIX)
-#endif  // !defined(OS_NACL) || defined(__native_client_nonsfi__)
+#endif  // !defined(OS_NACL_SFI)
 };
 
 // Do not add any member variables to MessageLoopForIO!  This is important b/c
diff --git a/base/metrics/field_trial.cc b/base/metrics/field_trial.cc
index c82f33d..7efca7a 100644
--- a/base/metrics/field_trial.cc
+++ b/base/metrics/field_trial.cc
@@ -67,6 +67,7 @@
 bool FieldTrial::enable_benchmarking_ = false;
 
 const char FieldTrialList::kPersistentStringSeparator('/');
+const char FieldTrialList::kActivationMarker('*');
 int FieldTrialList::kNoExpirationYear = 0;
 
 //------------------------------------------------------------------------------
@@ -421,7 +422,18 @@
       return false;
     if (group_name_end == trials_string.npos)
       group_name_end = trials_string.length();
-    std::string name(trials_string, next_item, name_end - next_item);
+
+    // Verify if the trial should be activated or not.
+    std::string name;
+    bool force_activation = false;
+    if (trials_string[next_item] == kActivationMarker) {
+      // Name cannot be only the indicator.
+      if (name_end - next_item == 1)
+        return false;
+      next_item++;
+      force_activation = true;
+    }
+    name.append(trials_string, next_item, name_end - next_item);
     std::string group_name(trials_string, name_end + 1,
                            group_name_end - name_end - 1);
     next_item = group_name_end + 1;
@@ -432,7 +444,7 @@
     FieldTrial* trial = CreateFieldTrial(name, group_name);
     if (!trial)
       return false;
-    if (mode == ACTIVATE_TRIALS) {
+    if (mode == ACTIVATE_TRIALS || force_activation) {
       // Call |group()| to mark the trial as "used" and notify observers, if
       // any. This is useful to ensure that field trials created in child
       // processes are properly reported in crash reports.
diff --git a/base/metrics/field_trial.h b/base/metrics/field_trial.h
index 25ee0c1..e2e5439 100644
--- a/base/metrics/field_trial.h
+++ b/base/metrics/field_trial.h
@@ -291,7 +291,8 @@
 class BASE_EXPORT FieldTrialList {
  public:
   // Specifies whether field trials should be activated (marked as "used"), when
-  // created using |CreateTrialsFromString()|.
+  // created using |CreateTrialsFromString()|. Has no effect on trials that are
+  // prefixed with |kActivationMarker|, which will always be activated."
   enum FieldTrialActivationMode {
     DONT_ACTIVATE_TRIALS,
     ACTIVATE_TRIALS,
@@ -302,6 +303,10 @@
   // second process to mimic our state (i.e., provide the same group name).
   static const char kPersistentStringSeparator;  // Currently a slash.
 
+  // Define a marker character to be used as a prefix to a trial name on the
+  // command line which forces its activation.
+  static const char kActivationMarker;  // Currently an asterisk.
+
   // Year that is guaranteed to not be expired when instantiating a field trial
   // via |FactoryGetFieldTrial()|.  Set to two years from the build date.
   static int kNoExpirationYear;
@@ -412,9 +417,10 @@
   // used in a non-browser process, to carry randomly selected state in a
   // browser process into this non-browser process, but could also be invoked
   // through a command line argument to the browser process. The created field
-  // trials are marked as "used" for the purposes of active trial reporting if
-  // |mode| is ACTIVATE_TRIALS. Trial names in |ignored_trial_names| are ignored
-  // when parsing |prior_trials|.
+  // trials are all marked as "used" for the purposes of active trial reporting
+  // if |mode| is ACTIVATE_TRIALS, otherwise each trial will be marked as "used"
+  // if it is prefixed with |kActivationMarker|. Trial names in
+  // |ignored_trial_names| are ignored when parsing |prior_trials|.
   static bool CreateTrialsFromString(
       const std::string& prior_trials,
       FieldTrialActivationMode mode,
diff --git a/base/metrics/field_trial_unittest.cc b/base/metrics/field_trial_unittest.cc
index 1ed3f89..ce95c2a 100644
--- a/base/metrics/field_trial_unittest.cc
+++ b/base/metrics/field_trial_unittest.cc
@@ -428,6 +428,12 @@
   EXPECT_FALSE(FieldTrialList::CreateTrialsFromString(
       "noname, only group/", FieldTrialList::DONT_ACTIVATE_TRIALS,
       std::set<std::string>()));
+  EXPECT_FALSE(FieldTrialList::CreateTrialsFromString(
+      "/emptyname", FieldTrialList::DONT_ACTIVATE_TRIALS,
+      std::set<std::string>()));
+  EXPECT_FALSE(FieldTrialList::CreateTrialsFromString(
+      "*/emptyname", FieldTrialList::DONT_ACTIVATE_TRIALS,
+      std::set<std::string>()));
 }
 
 TEST_F(FieldTrialTest, DuplicateRestore) {
@@ -490,6 +496,23 @@
   EXPECT_EQ("zyx", active_groups[1].group_name);
 }
 
+TEST_F(FieldTrialTest, CreateTrialsFromStringForceActivation) {
+  ASSERT_FALSE(FieldTrialList::TrialExists("Abc"));
+  ASSERT_FALSE(FieldTrialList::TrialExists("def"));
+  ASSERT_FALSE(FieldTrialList::TrialExists("Xyz"));
+  ASSERT_TRUE(FieldTrialList::CreateTrialsFromString(
+      "*Abc/cba/def/fed/*Xyz/zyx/", FieldTrialList::DONT_ACTIVATE_TRIALS,
+      std::set<std::string>()));
+
+  FieldTrial::ActiveGroups active_groups;
+  FieldTrialList::GetActiveFieldTrialGroups(&active_groups);
+  ASSERT_EQ(2U, active_groups.size());
+  EXPECT_EQ("Abc", active_groups[0].trial_name);
+  EXPECT_EQ("cba", active_groups[0].group_name);
+  EXPECT_EQ("Xyz", active_groups[1].trial_name);
+  EXPECT_EQ("zyx", active_groups[1].group_name);
+}
+
 TEST_F(FieldTrialTest, CreateTrialsFromStringActiveObserver) {
   ASSERT_FALSE(FieldTrialList::TrialExists("Abc"));
 
diff --git a/base/posix/unix_domain_socket_linux.cc b/base/posix/unix_domain_socket_linux.cc
index 20a5944..203285b 100644
--- a/base/posix/unix_domain_socket_linux.cc
+++ b/base/posix/unix_domain_socket_linux.cc
@@ -17,13 +17,13 @@
 #include "base/posix/eintr_wrapper.h"
 #include "base/stl_util.h"
 
-#if !defined(__native_client_nonsfi__)
+#if !defined(OS_NACL_NONSFI)
 #include <sys/uio.h>
 #endif
 
 const size_t UnixDomainSocket::kMaxFileDescriptors = 16;
 
-#if !defined(__native_client_nonsfi__)
+#if !defined(OS_NACL_NONSFI)
 // Creates a connected pair of UNIX-domain SOCK_SEQPACKET sockets, and passes
 // ownership of the newly allocated file descriptors to |one| and |two|.
 // Returns true on success.
@@ -41,7 +41,7 @@
   const int enable = 1;
   return setsockopt(fd, SOL_SOCKET, SO_PASSCRED, &enable, sizeof(enable)) == 0;
 }
-#endif  // !defined(__native_client_nonsfi__)
+#endif  // !defined(OS_NACL_NONSFI)
 
 // static
 bool UnixDomainSocket::SendMsg(int fd,
@@ -113,7 +113,7 @@
 
   const size_t kControlBufferSize =
       CMSG_SPACE(sizeof(int) * kMaxFileDescriptors)
-#if !defined(__native_client_nonsfi__)
+#if !defined(OS_NACL_NONSFI)
       // The PNaCl toolchain for Non-SFI binary build does not support ucred.
       + CMSG_SPACE(sizeof(struct ucred))
 #endif
@@ -141,7 +141,7 @@
         wire_fds = reinterpret_cast<int*>(CMSG_DATA(cmsg));
         wire_fds_len = payload_len / sizeof(int);
       }
-#if !defined(__native_client_nonsfi__)
+#if !defined(OS_NACL_NONSFI)
       // The PNaCl toolchain for Non-SFI binary build does not support
       // SCM_CREDENTIALS.
       if (cmsg->cmsg_level == SOL_SOCKET &&
@@ -154,16 +154,12 @@
     }
   }
 
-#if !defined(__native_client_nonsfi__)
-  // The PNaCl toolchain for Non-SFI binary build does not support
-  // MSG_TRUNC or MSG_CTRUNC.
   if (msg.msg_flags & MSG_TRUNC || msg.msg_flags & MSG_CTRUNC) {
     for (unsigned i = 0; i < wire_fds_len; ++i)
       close(wire_fds[i]);
     errno = EMSGSIZE;
     return -1;
   }
-#endif
 
   if (wire_fds) {
     for (unsigned i = 0; i < wire_fds_len; ++i)
@@ -184,7 +180,7 @@
   return r;
 }
 
-#if !defined(__native_client_nonsfi__)
+#if !defined(OS_NACL_NONSFI)
 // static
 ssize_t UnixDomainSocket::SendRecvMsg(int fd,
                                       uint8_t* reply,
@@ -242,4 +238,4 @@
 
   return reply_len;
 }
-#endif  // !defined(__native_client_nonsfi__)
+#endif  // !defined(OS_NACL_NONSFI)
diff --git a/base/posix/unix_domain_socket_linux.h b/base/posix/unix_domain_socket_linux.h
index 5281875..142cb14 100644
--- a/base/posix/unix_domain_socket_linux.h
+++ b/base/posix/unix_domain_socket_linux.h
@@ -21,12 +21,12 @@
   // Maximum number of file descriptors that can be read by RecvMsg().
   static const size_t kMaxFileDescriptors;
 
-#if !defined(__native_client_nonsfi__)
+#if !defined(OS_NACL_NONSFI)
   // Use to enable receiving process IDs in RecvMsgWithPid.  Should be called on
   // the receiving socket (i.e., the socket passed to RecvMsgWithPid). Returns
   // true if successful.
   static bool EnableReceiveProcessId(int fd);
-#endif  // !defined(__native_client_nonsfi__)
+#endif  // !defined(OS_NACL_NONSFI)
 
   // Use sendmsg to write the given msg and include a vector of file
   // descriptors. Returns true if successful.
@@ -52,7 +52,7 @@
                                 ScopedVector<base::ScopedFD>* fds,
                                 base::ProcessId* pid);
 
-#if !defined(__native_client_nonsfi__)
+#if !defined(OS_NACL_NONSFI)
   // Perform a sendmsg/recvmsg pair.
   //   1. This process creates a UNIX SEQPACKET socketpair. Using
   //      connection-oriented sockets (SEQPACKET or STREAM) is critical here,
@@ -85,7 +85,7 @@
                                       int recvmsg_flags,
                                       int* result_fd,
                                       const Pickle& request);
-#endif  // !defined(__native_client_nonsfi__)
+#endif  // !defined(OS_NACL_NONSFI)
  private:
   // Similar to RecvMsg, but allows to specify |flags| for recvmsg(2).
   static ssize_t RecvMsgWithFlags(int fd,
diff --git a/base/process/kill_posix.cc b/base/process/kill_posix.cc
index b02453c..d17e990 100644
--- a/base/process/kill_posix.cc
+++ b/base/process/kill_posix.cc
@@ -22,7 +22,7 @@
 
 namespace {
 
-#if !defined(__native_client_nonsfi__)
+#if !defined(OS_NACL_NONSFI)
 bool WaitpidWithTimeout(ProcessHandle handle,
                         int* status,
                         base::TimeDelta wait) {
@@ -84,7 +84,7 @@
 
   return ret_pid > 0;
 }
-#endif  // !defined(__native_client_nonsfi__)
+#endif  // !defined(OS_NACL_NONSFI)
 
 TerminationStatus GetTerminationStatusImpl(ProcessHandle handle,
                                            bool can_block,
@@ -132,7 +132,7 @@
 
 }  // namespace
 
-#if !defined(__native_client_nonsfi__)
+#if !defined(OS_NACL_NONSFI)
 // Attempts to kill the process identified by the given process
 // entry structure.  Ignores specified exit_code; posix can't force that.
 // Returns true if this is successful, false otherwise.
@@ -194,7 +194,7 @@
     DPLOG(ERROR) << "Unable to terminate process group " << process_group_id;
   return result;
 }
-#endif  // !defined(__native_client_nonsfi__)
+#endif  // !defined(OS_NACL_NONSFI)
 
 TerminationStatus GetTerminationStatus(ProcessHandle handle, int* exit_code) {
   return GetTerminationStatusImpl(handle, false /* can_block */, exit_code);
@@ -210,7 +210,7 @@
   return GetTerminationStatusImpl(handle, true /* can_block */, exit_code);
 }
 
-#if !defined(__native_client_nonsfi__)
+#if !defined(OS_NACL_NONSFI)
 bool WaitForExitCode(ProcessHandle handle, int* exit_code) {
   int status;
   if (HANDLE_EINTR(waitpid(handle, &status, 0)) == -1) {
@@ -483,6 +483,6 @@
 }
 
 #endif  // !defined(OS_MACOSX)
-#endif  // !defined(__native_client_nonsfi__)
+#endif  // !defined(OS_NACL_NONSFI)
 
 }  // namespace base
diff --git a/base/profiler/scoped_tracker.h b/base/profiler/scoped_tracker.h
index a188557..f83654e 100644
--- a/base/profiler/scoped_tracker.h
+++ b/base/profiler/scoped_tracker.h
@@ -19,6 +19,21 @@
 // ScopedTracker instruments a region within the code if the instrumentation is
 // enabled. It can be used, for example, to find out if a source of jankiness is
 // inside the instrumented code region.
+// Details:
+// 1. This class creates a task (like ones created by PostTask calls or IPC
+// message handlers). This task can be seen in chrome://profiler and is sent as
+// a part of profiler data to the UMA server. See profiler_event.proto.
+// 2. That task's lifetime is same as the lifetime of the ScopedTracker
+// instance.
+// 3. The execution time associated with the task is the wallclock time between
+// its constructor and destructor, minus wallclock times of directly nested
+// tasks.
+// 4. Task creation that this class utilizes is highly optimized.
+// 5. The class doesn't create a task unless this was enabled for the current
+// process. Search for ScopedTracker::Enable for the current list of processes
+// and channels where it's activated.
+// 6. The class is designed for temporarily instrumenting code to find
+// performance problems, after which the instrumentation must be removed.
 class BASE_EXPORT ScopedTracker {
  public:
   ScopedTracker(const Location& location);
diff --git a/base/sys_info.cc b/base/sys_info.cc
index 0b3b317..cb93480 100644
--- a/base/sys_info.cc
+++ b/base/sys_info.cc
@@ -44,6 +44,12 @@
 }
 #endif
 
+#if !defined(OS_MACOSX) || defined(OS_IOS)
+std::string SysInfo::HardwareModelName() {
+  return std::string();
+}
+#endif
+
 // static
 int64 SysInfo::Uptime() {
   // This code relies on an implementation detail of TimeTicks::Now() - that
diff --git a/base/sys_info.h b/base/sys_info.h
index d24acdf..660343d 100644
--- a/base/sys_info.h
+++ b/base/sys_info.h
@@ -51,6 +51,12 @@
   // Returns system uptime in milliseconds.
   static int64 Uptime();
 
+  // Returns a descriptive string for the current machine model or an empty
+  // string if machime model is unknown or an error occured.
+  // e.g. MacPro1,1 on Mac.
+  // Only implemented on OS X, will return an empty string on other platforms.
+  static std::string HardwareModelName();
+
   // Returns the name of the host operating system.
   static std::string OperatingSystemName();
 
diff --git a/base/sys_info_mac.cc b/base/sys_info_mac.cc
index 57e1f83..18df624 100644
--- a/base/sys_info_mac.cc
+++ b/base/sys_info_mac.cc
@@ -85,4 +85,12 @@
   return std::string();
 }
 
+std::string SysInfo::HardwareModelName() {
+  char model[256];
+  size_t len = sizeof(model);
+  if (sysctlbyname("hw.model", model, &len, NULL, 0) == 0)
+    return std::string(model, 0, len);
+  return std::string();
+}
+
 }  // namespace base
diff --git a/base/sys_info_unittest.cc b/base/sys_info_unittest.cc
index 29409ee..15ae098 100644
--- a/base/sys_info_unittest.cc
+++ b/base/sys_info_unittest.cc
@@ -65,6 +65,13 @@
   EXPECT_GT(up_time_2, up_time_1);
 }
 
+#if defined(OS_MACOSX) && !defined(OS_IOS)
+TEST_F(SysInfoTest, HardwareModelName) {
+  std::string hardware_model = base::SysInfo::HardwareModelName();
+  EXPECT_FALSE(hardware_model.empty());
+}
+#endif
+
 #if defined(OS_CHROMEOS)
 
 TEST_F(SysInfoTest, GoogleChromeOSVersionNumbers) {
diff --git a/base/timer/timer.cc b/base/timer/timer.cc
index 1916ccc..11f73ca 100644
--- a/base/timer/timer.cc
+++ b/base/timer/timer.cc
@@ -93,6 +93,12 @@
   return delay_;
 }
 
+void Timer::SetTaskRunner(scoped_refptr<SingleThreadTaskRunner> task_runner) {
+  // Do not allow changing the task runner once something has been scheduled.
+  DCHECK_EQ(thread_id_, 0);
+  task_runner_.swap(task_runner);
+}
+
 void Timer::Start(const tracked_objects::Location& posted_from,
                   TimeDelta delay,
                   const base::Closure& user_task) {
@@ -146,12 +152,12 @@
   is_running_ = true;
   scheduled_task_ = new BaseTimerTaskInternal(this);
   if (delay > TimeDelta::FromMicroseconds(0)) {
-    ThreadTaskRunnerHandle::Get()->PostDelayedTask(posted_from_,
+    GetTaskRunner()->PostDelayedTask(posted_from_,
         base::Bind(&BaseTimerTaskInternal::Run, base::Owned(scheduled_task_)),
         delay);
     scheduled_run_time_ = desired_run_time_ = TimeTicks::Now() + delay;
   } else {
-    ThreadTaskRunnerHandle::Get()->PostTask(posted_from_,
+    GetTaskRunner()->PostTask(posted_from_,
         base::Bind(&BaseTimerTaskInternal::Run, base::Owned(scheduled_task_)));
     scheduled_run_time_ = desired_run_time_ = TimeTicks();
   }
@@ -161,6 +167,10 @@
     thread_id_ = static_cast<int>(PlatformThread::CurrentId());
 }
 
+scoped_refptr<SingleThreadTaskRunner> Timer::GetTaskRunner() {
+  return task_runner_.get() ? task_runner_ : ThreadTaskRunnerHandle::Get();
+}
+
 void Timer::AbandonScheduledTask() {
   DCHECK(thread_id_ == 0 ||
          thread_id_ == static_cast<int>(PlatformThread::CurrentId()));
diff --git a/base/timer/timer.h b/base/timer/timer.h
index 4ef2f45..7e2c1d4 100644
--- a/base/timer/timer.h
+++ b/base/timer/timer.h
@@ -60,6 +60,7 @@
 namespace base {
 
 class BaseTimerTaskInternal;
+class SingleThreadTaskRunner;
 
 //-----------------------------------------------------------------------------
 // This class wraps MessageLoop::PostDelayedTask to manage delayed and repeating
@@ -87,6 +88,10 @@
   // Returns the current delay for this timer.
   virtual TimeDelta GetCurrentDelay() const;
 
+  // Set the task runner on which the task should be scheduled. This method can
+  // only be called before any tasks have been scheduled.
+  virtual void SetTaskRunner(scoped_refptr<SingleThreadTaskRunner> task_runner);
+
   // Start the timer to run at the given |delay| from now. If the timer is
   // already running, it will be replaced to call the given |user_task|.
   virtual void Start(const tracked_objects::Location& posted_from,
@@ -128,6 +133,11 @@
   // and desired_run_time_ are reset to Now() + delay.
   void PostNewScheduledTask(TimeDelta delay);
 
+  // Returns the task runner on which the task should be scheduled. If the
+  // corresponding task_runner_ field is null, the task runner for the current
+  // thread is returned.
+  scoped_refptr<SingleThreadTaskRunner> GetTaskRunner();
+
   // Disable scheduled_task_ and abandon it so that it no longer refers back to
   // this object.
   void AbandonScheduledTask();
@@ -145,6 +155,10 @@
   // RunScheduledTask() at scheduled_run_time_.
   BaseTimerTaskInternal* scheduled_task_;
 
+  // The task runner on which the task should be scheduled. If it is null, the
+  // task runner for the current thread should be used.
+  scoped_refptr<SingleThreadTaskRunner> task_runner_;
+
   // Location in user code.
   tracked_objects::Location posted_from_;
   // Delay requested by user.
diff --git a/base/timer/timer_unittest.cc b/base/timer/timer_unittest.cc
index 0fb2b45..1cbccd1 100644
--- a/base/timer/timer_unittest.cc
+++ b/base/timer/timer_unittest.cc
@@ -4,10 +4,12 @@
 
 #include "base/memory/scoped_ptr.h"
 #include "base/message_loop/message_loop.h"
+#include "base/test/test_simple_task_runner.h"
 #include "base/timer/timer.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 using base::TimeDelta;
+using base::SingleThreadTaskRunner;
 
 namespace {
 
@@ -26,20 +28,32 @@
  public:
   explicit OneShotTimerTester(bool* did_run, unsigned milliseconds = 10)
       : did_run_(did_run),
-        delay_ms_(milliseconds) {
+        delay_ms_(milliseconds),
+        quit_message_loop_(true) {
   }
+
   void Start() {
     timer_.Start(FROM_HERE, TimeDelta::FromMilliseconds(delay_ms_), this,
                  &OneShotTimerTester::Run);
   }
+
+  void SetTaskRunner(scoped_refptr<SingleThreadTaskRunner> task_runner) {
+    quit_message_loop_ = false;
+    timer_.SetTaskRunner(task_runner);
+  }
+
  private:
   void Run() {
     *did_run_ = true;
-    base::MessageLoop::current()->QuitWhenIdle();
+    if (quit_message_loop_) {
+      base::MessageLoop::current()->QuitWhenIdle();
+    }
   }
+
   bool* did_run_;
   base::OneShotTimer<OneShotTimerTester> timer_;
   const unsigned delay_ms_;
+  bool quit_message_loop_;
 };
 
 class OneShotSelfDeletingTimerTester {
@@ -48,16 +62,19 @@
       did_run_(did_run),
       timer_(new base::OneShotTimer<OneShotSelfDeletingTimerTester>()) {
   }
+
   void Start() {
     timer_->Start(FROM_HERE, TimeDelta::FromMilliseconds(10), this,
                   &OneShotSelfDeletingTimerTester::Run);
   }
+
  private:
   void Run() {
     *did_run_ = true;
     timer_.reset();
     base::MessageLoop::current()->QuitWhenIdle();
   }
+
   bool* did_run_;
   scoped_ptr<base::OneShotTimer<OneShotSelfDeletingTimerTester> > timer_;
 };
@@ -71,6 +88,7 @@
   void Start() {
     timer_.Start(FROM_HERE, delay_, this, &RepeatingTimerTester::Run);
   }
+
  private:
   void Run() {
     if (--counter_ == 0) {
@@ -79,6 +97,7 @@
       base::MessageLoop::current()->QuitWhenIdle();
     }
   }
+
   bool* did_run_;
   int counter_;
   TimeDelta delay_;
@@ -310,6 +329,20 @@
   }
 }
 
+TEST(TimerTest, OneShotTimer_CustomTaskRunner) {
+  scoped_refptr<base::TestSimpleTaskRunner> task_runner =
+      new base::TestSimpleTaskRunner();
+
+  bool did_run = false;
+  OneShotTimerTester f(&did_run);
+  f.SetTaskRunner(task_runner);
+  f.Start();
+
+  EXPECT_FALSE(did_run);
+  task_runner->RunUntilIdle();
+  EXPECT_TRUE(did_run);
+}
+
 TEST(TimerTest, RepeatingTimer) {
   for (int i = 0; i < kNumTestingMessageLoops; i++) {
     RunTest_RepeatingTimer(testing_message_loops[i],
diff --git a/base/tracked_objects.cc b/base/tracked_objects.cc
index 4fe8851..c69fada 100644
--- a/base/tracked_objects.cc
+++ b/base/tracked_objects.cc
@@ -54,18 +54,27 @@
 // problem with its presence).
 static const bool kAllowAlternateTimeSourceHandling = true;
 
+// Possible states of the profiler timing enabledness.
+enum {
+  UNDEFINED_TIMING,
+  ENABLED_TIMING,
+  DISABLED_TIMING,
+};
+
+// State of the profiler timing enabledness.
+base::subtle::Atomic32 g_profiler_timing_enabled = UNDEFINED_TIMING;
+
+// Returns whether profiler timing is enabled. The default is true, but this may
+// be overridden by a command-line flag. Some platforms may programmatically set
+// this command-line flag to the "off" value if it's not specified.
+// This in turn can be overridden by explicitly calling
+// ThreadData::EnableProfilerTiming, say, based on a field trial.
 inline bool IsProfilerTimingEnabled() {
-  enum {
-    UNDEFINED_TIMING,
-    ENABLED_TIMING,
-    DISABLED_TIMING,
-  };
-  static base::subtle::Atomic32 timing_enabled = UNDEFINED_TIMING;
-  // Reading |timing_enabled| is done without barrier because multiple
-  // initialization is not an issue while the barrier can be relatively costly
-  // given that this method is sometimes called in a tight loop.
+  // Reading |g_profiler_timing_enabled| is done without barrier because
+  // multiple initialization is not an issue while the barrier can be relatively
+  // costly given that this method is sometimes called in a tight loop.
   base::subtle::Atomic32 current_timing_enabled =
-      base::subtle::NoBarrier_Load(&timing_enabled);
+      base::subtle::NoBarrier_Load(&g_profiler_timing_enabled);
   if (current_timing_enabled == UNDEFINED_TIMING) {
     if (!CommandLine::InitializedForCurrentProcess())
       return true;
@@ -75,7 +84,8 @@
          switches::kProfilerTimingDisabledValue)
             ? DISABLED_TIMING
             : ENABLED_TIMING;
-    base::subtle::NoBarrier_Store(&timing_enabled, current_timing_enabled);
+    base::subtle::NoBarrier_Store(&g_profiler_timing_enabled,
+                                  current_timing_enabled);
   }
   return current_timing_enabled == ENABLED_TIMING;
 }
@@ -775,6 +785,11 @@
 }
 
 // static
+void ThreadData::EnableProfilerTiming() {
+  base::subtle::NoBarrier_Store(&g_profiler_timing_enabled, ENABLED_TIMING);
+}
+
+// static
 TrackedTime ThreadData::Now() {
   if (kAllowAlternateTimeSourceHandling && now_function_)
     return TrackedTime::FromMilliseconds((*now_function_)());
diff --git a/base/tracked_objects.h b/base/tracked_objects.h
index 222f581..50bea47 100644
--- a/base/tracked_objects.h
+++ b/base/tracked_objects.h
@@ -466,6 +466,9 @@
   // relationships can be (optionally) calculated.
   static void PrepareForStartOfRun(const Births* parent);
 
+  // Enables profiler timing.
+  static void EnableProfilerTiming();
+
   // Provide a time function that does nothing (runs fast) when we don't have
   // the profiler enabled.  It will generally be optimized away when it is
   // ifdef'ed to be small enough (allowing the profiler to be "compiled out" of
diff --git a/base/win/win_util.cc b/base/win/win_util.cc
index 21b78fa..f46242d 100644
--- a/base/win/win_util.cc
+++ b/base/win/win_util.cc
@@ -119,12 +119,14 @@
 
 static bool g_crash_on_process_detach = false;
 
-void GetNonClientMetrics(NONCLIENTMETRICS* metrics) {
+void GetNonClientMetrics(NONCLIENTMETRICS_XP* metrics) {
   DCHECK(metrics);
   metrics->cbSize = sizeof(*metrics);
-  const bool success =
-      !!SystemParametersInfo(
-          SPI_GETNONCLIENTMETRICS, metrics->cbSize, metrics, 0);
+  const bool success = !!SystemParametersInfo(
+      SPI_GETNONCLIENTMETRICS,
+      metrics->cbSize,
+      reinterpret_cast<NONCLIENTMETRICS*>(metrics),
+      0);
   DCHECK(success);
 }
 
diff --git a/base/win/win_util.h b/base/win/win_util.h
index 9439597..8513f62 100644
--- a/base/win/win_util.h
+++ b/base/win/win_util.h
@@ -33,10 +33,30 @@
 struct _tagpropertykey;
 typedef _tagpropertykey PROPERTYKEY;
 
+// This is the same as NONCLIENTMETRICS except that the
+// unused member |iPaddedBorderWidth| has been removed.
+struct NONCLIENTMETRICS_XP {
+    UINT    cbSize;
+    int     iBorderWidth;
+    int     iScrollWidth;
+    int     iScrollHeight;
+    int     iCaptionWidth;
+    int     iCaptionHeight;
+    LOGFONTW lfCaptionFont;
+    int     iSmCaptionWidth;
+    int     iSmCaptionHeight;
+    LOGFONTW lfSmCaptionFont;
+    int     iMenuWidth;
+    int     iMenuHeight;
+    LOGFONTW lfMenuFont;
+    LOGFONTW lfStatusFont;
+    LOGFONTW lfMessageFont;
+};
+
 namespace base {
 namespace win {
 
-BASE_EXPORT void GetNonClientMetrics(NONCLIENTMETRICS* metrics);
+BASE_EXPORT void GetNonClientMetrics(NONCLIENTMETRICS_XP* metrics);
 
 // Returns the string representing the current user sid.
 BASE_EXPORT bool GetUserSidString(std::wstring* user_sid);
diff --git a/build/all.gyp b/build/all.gyp
index b59c668..22f0d26 100644
--- a/build/all.gyp
+++ b/build/all.gyp
@@ -423,7 +423,7 @@
             '../google_apis/gcm/gcm.gyp:gcm_unit_tests',
           ],
         }],
-        ['enable_printing!=0', {
+        ['enable_basic_printing==1 or enable_print_preview==1', {
           'dependencies': [
             '../printing/printing.gyp:printing_unittests',
           ],
diff --git a/build/android/provision_devices.py b/build/android/provision_devices.py
index 9962f0a..560d1d0 100755
--- a/build/android/provision_devices.py
+++ b/build/android/provision_devices.py
@@ -207,8 +207,8 @@
     # Device black list is reset by bb_device_status_check.py per build.
     device_blacklist.ExtendBlacklist([str(device)])
   except (device_errors.CommandFailedError):
-    logging.info('Failed to provision device %s. Adding to blacklist.',
-                 str(device))
+    logging.exception('Failed to provision device %s. Adding to blacklist.',
+                      str(device))
     device_blacklist.ExtendBlacklist([str(device)])
 
 
diff --git a/build/android/pylib/base/base_test_runner.py b/build/android/pylib/base/base_test_runner.py
index d857f59..1f76149 100644
--- a/build/android/pylib/base/base_test_runner.py
+++ b/build/android/pylib/base/base_test_runner.py
@@ -4,6 +4,10 @@
 
 """Base class for running tests on a single device."""
 
+# TODO(jbudorick) Deprecate and remove this class and all subclasses after
+# any relevant parts have been ported to the new environment + test instance
+# model.
+
 import logging
 import time
 
diff --git a/build/android/pylib/base/environment.py b/build/android/pylib/base/environment.py
new file mode 100644
index 0000000..3f49f41
--- /dev/null
+++ b/build/android/pylib/base/environment.py
@@ -0,0 +1,34 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+
+class Environment(object):
+  """An environment in which tests can be run.
+
+  This is expected to handle all logic that is applicable to an entire specific
+  environment but is independent of the test type.
+
+  Examples include:
+    - The local device environment, for running tests on devices attached to
+      the local machine.
+    - The local machine environment, for running tests directly on the local
+      machine.
+  """
+
+  def __init__(self):
+    pass
+
+  def SetUp(self):
+    raise NotImplementedError
+
+  def TearDown(self):
+    raise NotImplementedError
+
+  def __enter__(self):
+    self.SetUp()
+    return self
+
+  def __exit__(self, _exc_type, _exc_val, _exc_tb):
+    self.TearDown()
+
diff --git a/build/android/pylib/base/environment_factory.py b/build/android/pylib/base/environment_factory.py
new file mode 100644
index 0000000..ad2eafd
--- /dev/null
+++ b/build/android/pylib/base/environment_factory.py
@@ -0,0 +1,11 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+
+def CreateEnvironment(_command, _options, error_func):
+
+  # TODO(jbudorick) Add local device environment.
+  # TODO(jbudorick) Add local machine environment.
+  error_func('No environments currently supported.')
+
diff --git a/build/android/pylib/base/test_dispatcher.py b/build/android/pylib/base/test_dispatcher.py
index 677a908..7b00ccd 100644
--- a/build/android/pylib/base/test_dispatcher.py
+++ b/build/android/pylib/base/test_dispatcher.py
@@ -15,6 +15,9 @@
   collection until there are no tests left.
 """
 
+# TODO(jbudorick) Deprecate and remove this class after any relevant parts have
+# been ported to the new environment / test instance model.
+
 import logging
 import threading
 
diff --git a/build/android/pylib/base/test_instance.py b/build/android/pylib/base/test_instance.py
new file mode 100644
index 0000000..cdf678f
--- /dev/null
+++ b/build/android/pylib/base/test_instance.py
@@ -0,0 +1,35 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+
+class TestInstance(object):
+  """A type of test.
+
+  This is expected to handle all logic that is test-type specific but
+  independent of the environment or device.
+
+  Examples include:
+    - gtests
+    - instrumentation tests
+  """
+
+  def __init__(self):
+    pass
+
+  def TestType(self):
+    raise NotImplementedError
+
+  def SetUp(self):
+    raise NotImplementedError
+
+  def TearDown(self):
+    raise NotImplementedError
+
+  def __enter__(self):
+    self.SetUp()
+    return self
+
+  def __exit__(self, _exc_type, _exc_val, _exc_tb):
+    self.TearDown()
+
diff --git a/build/android/pylib/base/test_instance_factory.py b/build/android/pylib/base/test_instance_factory.py
new file mode 100644
index 0000000..fd74b96
--- /dev/null
+++ b/build/android/pylib/base/test_instance_factory.py
@@ -0,0 +1,11 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+
+def CreateTestInstance(_command, _options, error_func):
+
+  # TODO(jbudorick) Add gtest test instance.
+  # TODO(jbudorick) Add instrumentation test instance.
+  error_func('No test instances currently supported.')
+
diff --git a/build/android/pylib/base/test_run.py b/build/android/pylib/base/test_run.py
new file mode 100644
index 0000000..2c594fd
--- /dev/null
+++ b/build/android/pylib/base/test_run.py
@@ -0,0 +1,39 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+
+class TestRun(object):
+  """An execution of a particular test on a particular device.
+
+  This is expected to handle all logic that is specific to the combination of
+  environment and test type.
+
+  Examples include:
+    - local gtests
+    - local instrumentation tests
+  """
+
+  def __init__(self, env, test_instance):
+    self._env = env
+    self._test_instance = test_instance
+
+  def TestPackage(self):
+    raise NotImplementedError
+
+  def SetUp(self):
+    raise NotImplementedError
+
+  def RunTest(self):
+    raise NotImplementedError
+
+  def TearDown(self):
+    raise NotImplementedError
+
+  def __enter__(self):
+    self.SetUp()
+    return self
+
+  def __exit__(self, exc_type, exc_val, exc_tb):
+    self.TearDown()
+
diff --git a/build/android/pylib/base/test_run_factory.py b/build/android/pylib/base/test_run_factory.py
new file mode 100644
index 0000000..50a9690
--- /dev/null
+++ b/build/android/pylib/base/test_run_factory.py
@@ -0,0 +1,10 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+def CreateTestRun(_options, _env, _test_instance, error_func):
+
+  # TODO(jbudorick) Add local gtest test runs
+  # TODO(jbudorick) Add local instrumentation test runs.
+  error_func('No test runs are currently supported.')
+
diff --git a/build/android/pylib/constants.py b/build/android/pylib/constants.py
index 95b1868..cef098f 100644
--- a/build/android/pylib/constants.py
+++ b/build/android/pylib/constants.py
@@ -198,6 +198,9 @@
 # },
 }
 
+LOCAL_MACHINE_TESTS = ['junit', 'python']
+VALID_ENVIRONMENTS = ['local']
+
 
 def GetBuildType():
   try:
diff --git a/build/android/pylib/device/device_utils.py b/build/android/pylib/device/device_utils.py
index 2c50720..f4bce41 100644
--- a/build/android/pylib/device/device_utils.py
+++ b/build/android/pylib/device/device_utils.py
@@ -109,7 +109,11 @@
     Raises:
       CommandTimeoutError on timeout.
     """
-    return self.adb.GetState() == 'device'
+    try:
+      return self.adb.GetState() == 'device'
+    except device_errors.BaseError as exc:
+      logging.info('Failed to get state: %s', exc)
+      return False
 
   @decorators.WithTimeoutAndRetriesFromInstance()
   def HasRoot(self, timeout=None, retries=None):
@@ -126,15 +130,39 @@
       CommandTimeoutError on timeout.
       DeviceUnreachableError on missing device.
     """
-    return self._HasRootImpl()
-
-  def _HasRootImpl(self):
     try:
-      self._RunShellCommandImpl('ls /root', check_return=True)
+      self.RunShellCommand('ls /root', check_return=True)
       return True
     except device_errors.AdbShellCommandFailedError:
       return False
 
+  def NeedsSU(self, timeout=None, retries=None):
+    """Checks whether 'su' is needed to access protected resources.
+
+    Args:
+      timeout: timeout in seconds
+      retries: number of retries
+
+    Returns:
+      True if 'su' is available on the device and is needed to to access
+        protected resources; False otherwise if either 'su' is not available
+        (e.g. because the device has a user build), or not needed (because adbd
+        already has root privileges).
+
+    Raises:
+      CommandTimeoutError on timeout.
+      DeviceUnreachableError on missing device.
+    """
+    if 'needs_su' not in self._cache:
+      try:
+        self.RunShellCommand('su -c ls /root && ! ls /root', check_return=True,
+                             timeout=timeout, retries=retries)
+        self._cache['needs_su'] = True
+      except device_errors.AdbShellCommandFailedError:
+        self._cache['needs_su'] = False
+    return self._cache['needs_su']
+
+
   @decorators.WithTimeoutAndRetriesFromInstance()
   def EnableRoot(self, timeout=None, retries=None):
     """Restarts adbd with root privileges.
@@ -147,6 +175,8 @@
       CommandFailedError if root could not be enabled.
       CommandTimeoutError on timeout.
     """
+    if 'needs_su' in self._cache:
+      del self._cache['needs_su']
     if not self.old_interface.EnableAdbRoot():
       raise device_errors.CommandFailedError(
           'Could not enable root.', device=str(self))
@@ -191,9 +221,9 @@
     if 'external_storage' in self._cache:
       return self._cache['external_storage']
 
-    value = self._RunShellCommandImpl('echo $EXTERNAL_STORAGE',
-                                      single_line=True,
-                                      check_return=True)
+    value = self.RunShellCommand('echo $EXTERNAL_STORAGE',
+                                 single_line=True,
+                                 check_return=True)
     if not value:
       raise device_errors.CommandFailedError('$EXTERNAL_STORAGE is not set',
                                              str(self))
@@ -238,8 +268,12 @@
       DeviceUnreachableError if the device becomes unresponsive.
     """
     def sd_card_ready():
-      return self.RunShellCommand(['ls', self.GetExternalStoragePath()],
-                                    single_line=True, check_return=True)
+      try:
+        self.RunShellCommand(['test', '-d', self.GetExternalStoragePath()],
+                             check_return=True)
+        return True
+      except device_errors.AdbShellCommandFailedError:
+        return False
 
     def pm_ready():
       try:
@@ -389,11 +423,6 @@
       CommandTimeoutError on timeout.
       DeviceUnreachableError on missing device.
     """
-    return self._RunShellCommandImpl(cmd, check_return=check_return, cwd=cwd,
-        env=env, as_root=as_root, single_line=single_line, timeout=timeout)
-
-  def _RunShellCommandImpl(self, cmd, check_return=False, cwd=None, env=None,
-                           as_root=False, single_line=False, timeout=None):
     def env_quote(key, value):
       if not DeviceUtils._VALID_SHELL_VARIABLE.match(key):
         raise KeyError('Invalid shell variable name %r' % key)
@@ -402,7 +431,7 @@
 
     if not isinstance(cmd, basestring):
       cmd = ' '.join(cmd_helper.SingleQuote(s) for s in cmd)
-    if as_root and not self._HasRootImpl():
+    if as_root and self.NeedsSU():
       cmd = 'su -c %s' % cmd
     if env:
       env = ' '.join(env_quote(k, v) for k, v in env.iteritems())
@@ -413,9 +442,7 @@
       timeout = self._default_timeout
 
     try:
-      # TODO(perezju) still need to make sure that we call a version of
-      # adb.Shell without a timeout-and-retries wrapper.
-      output = self.adb.Shell(cmd, expect_rc=0, timeout=timeout, retries=0)
+      output = self.adb.Shell(cmd, expect_rc=0)
     except device_errors.AdbShellCommandFailedError as e:
       if check_return:
         raise
@@ -461,7 +488,7 @@
           'No process "%s"' % process_name, device=str(self))
 
     cmd = ['kill', '-%d' % signum] + pids.values()
-    self._RunShellCommandImpl(cmd, as_root=as_root, check_return=True)
+    self.RunShellCommand(cmd, as_root=as_root, check_return=True)
 
     if blocking:
       wait_period = 0.1
@@ -612,7 +639,7 @@
     files = []
     for h, d in host_device_tuples:
       if os.path.isdir(h):
-        self._RunShellCommandImpl(['mkdir', '-p', d], check_return=True)
+        self.RunShellCommand(['mkdir', '-p', d], check_return=True)
       files += self._GetChangedFilesImpl(h, d)
 
     if not files:
@@ -644,14 +671,14 @@
       self._PushChangedFilesIndividually(files)
     else:
       self._PushChangedFilesZipped(files)
-      self._RunShellCommandImpl(
+      self.RunShellCommand(
           ['chmod', '-R', '777'] + [d for _, d in host_device_tuples],
           as_root=True, check_return=True)
 
   def _GetChangedFilesImpl(self, host_path, device_path):
     real_host_path = os.path.realpath(host_path)
     try:
-      real_device_path = self._RunShellCommandImpl(
+      real_device_path = self.RunShellCommand(
           ['realpath', device_path], single_line=True, check_return=True)
     except device_errors.CommandFailedError:
       real_device_path = None
@@ -744,7 +771,7 @@
       zip_on_device = '%s/tmp.zip' % self._GetExternalStoragePathImpl()
       try:
         self.adb.Push(zip_file.name, zip_on_device)
-        self._RunShellCommandImpl(
+        self.RunShellCommand(
             ['unzip', zip_on_device],
             as_root=True,
             env={'PATH': '$PATH:%s' % install_commands.BIN_DIR},
@@ -753,7 +780,7 @@
         if zip_proc.is_alive():
           zip_proc.terminate()
         if self.IsOnline():
-          self._RunShellCommandImpl(['rm', zip_on_device], check_return=True)
+          self.RunShellCommand(['rm', zip_on_device], check_return=True)
 
   @staticmethod
   def _CreateDeviceZip(zip_path, host_device_tuples):
@@ -891,7 +918,7 @@
     """
     cmd = 'echo %s > %s' % (cmd_helper.SingleQuote(text),
                             cmd_helper.SingleQuote(device_path))
-    self._RunShellCommandImpl(cmd, as_root=as_root, check_return=True)
+    self.RunShellCommand(cmd, as_root=as_root, check_return=True)
 
   @decorators.WithTimeoutAndRetriesFromInstance()
   def Ls(self, device_path, timeout=None, retries=None):
@@ -1034,7 +1061,7 @@
 
   def _GetPidsImpl(self, process_name):
     procs_pids = {}
-    for line in self._RunShellCommandImpl('ps', check_return=True):
+    for line in self.RunShellCommand('ps', check_return=True):
       try:
         ps_data = line.split()
         if process_name in ps_data[-1]:
diff --git a/build/android/pylib/device/device_utils_test.py b/build/android/pylib/device/device_utils_test.py
index f23e21e..fa4ffaa 100755
--- a/build/android/pylib/device/device_utils_test.py
+++ b/build/android/pylib/device/device_utils_test.py
@@ -313,7 +313,7 @@
         or a _ShellError object to raise an AdbShellCommandFailedError.
     '''
     def mk_expected_call(cmd, return_value):
-      expected_args = Args(cmd, expect_rc=0, timeout=10, retries=0)
+      expected_args = Args(cmd, expect_rc=0)
       if isinstance(return_value, _ShellError):
         return_value = device_errors.AdbShellCommandFailedError(cmd,
             return_value.return_code, return_value.output, str(self.device))
@@ -348,6 +348,11 @@
     self.assertFalse(self.device.IsOnline())
     self.adb.GetState.assert_called_once_with()
 
+  def testIsOnline_error(self):
+    self.adb.GetState = mock.Mock(
+     side_effect=device_errors.CommandFailedError('falied'))
+    self.assertFalse(self.device.IsOnline())
+    self.adb.GetState.assert_called_once_with()
 
 class DeviceUtilsHasRootTest(DeviceUtilsNewImplTest):
 
@@ -440,7 +445,7 @@
     with self.assertShellCallSequence([
         # sc_card_ready
         ('echo $EXTERNAL_STORAGE', '/fake/storage/path\r\n'),
-        ('ls /fake/storage/path', '/fake/storage/path\r\n'),
+        ('test -d /fake/storage/path', ''),
         # pm_ready
         ('pm path android', 'package:this.is.a.test.package\r\n'),
         # boot_completed
@@ -452,7 +457,7 @@
     with self.assertShellCallSequence([
         # sc_card_ready
         ('echo $EXTERNAL_STORAGE', '/fake/storage/path\r\n'),
-        ('ls /fake/storage/path', '/fake/storage/path\r\n'),
+        ('test -d /fake/storage/path', ''),
         # pm_ready
         ('pm path android', 'package:this.is.a.test.package\r\n'),
         # boot_completed
@@ -474,11 +479,11 @@
       with self.assertShellCallSequence([
           # sc_card_ready
           ('echo $EXTERNAL_STORAGE', '/fake/storage/path\r\n'),
-          ('ls /fake/storage/path', '\r\n'),
+          ('test -d /fake/storage/path', _ShellError()),
           # sc_card_ready
-          ('ls /fake/storage/path', '\r\n'),
+          ('test -d /fake/storage/path', _ShellError()),
           # sc_card_ready
-          ('ls /fake/storage/path', _CmdTimeout())]):
+          ('test -d /fake/storage/path', _CmdTimeout())]):
         with self.assertRaises(device_errors.CommandTimeoutError):
           self.device.WaitUntilFullyBooted(wifi=False)
 
@@ -487,7 +492,7 @@
       with self.assertShellCallSequence([
           # sc_card_ready
           ('echo $EXTERNAL_STORAGE', '/fake/storage/path\r\n'),
-          ('ls /fake/storage/path', '/fake/storage/path\r\n'),
+          ('test -d /fake/storage/path', ''),
           # pm_ready
           ('pm path android', 'Error. Is package manager running?\r\n'),
           # pm_ready
@@ -502,7 +507,7 @@
       with self.assertShellCallSequence([
           # sc_card_ready
           ('echo $EXTERNAL_STORAGE', '/fake/storage/path\r\n'),
-          ('ls /fake/storage/path', '/fake/storage/path\r\n'),
+          ('test -d /fake/storage/path', ''),
           # pm_ready
           ('pm path android', 'package:this.is.a.test.package\r\n'),
           # boot_completed
@@ -519,7 +524,7 @@
       with self.assertShellCallSequence([
           # sc_card_ready
           ('echo $EXTERNAL_STORAGE', '/fake/storage/path\r\n'),
-          ('ls /fake/storage/path', '/fake/storage/path\r\n'),
+          ('test -d /fake/storage/path', ''),
           # pm_ready
           ('pm path android', 'package:this.is.a.test.package\r\n'),
           # boot_completed
@@ -549,7 +554,7 @@
     with self.assertShellCallSequence([
         # sc_card_ready
         ('echo $EXTERNAL_STORAGE', '/fake/storage/path\r\n'),
-        ('ls /fake/storage/path', '/fake/storage/path\r\n'),
+        ('test -d /fake/storage/path', ''),
         # pm_ready
         ('pm path android', 'package:this.is.a.test.package\r\n'),
         # boot_completed
@@ -685,13 +690,13 @@
 
   def testRunShellCommand_withSu(self):
     with self.assertShellCallSequence([
-        ('ls /root', _ShellError()),
+        ('su -c ls /root && ! ls /root', ''),
         ('su -c setprop service.adb.root 0', '')]):
       self.device.RunShellCommand('setprop service.adb.root 0', as_root=True)
 
   def testRunShellCommand_withRoot(self):
     with self.assertShellCallSequence([
-        ('ls /root', '\r\n'),
+        ('su -c ls /root && ! ls /root', _ShellError()),
         ('setprop service.adb.root 0', '')]):
       self.device.RunShellCommand('setprop service.adb.root 0', as_root=True)
 
@@ -789,7 +794,7 @@
         ('ps', 'USER   PID   PPID  VSIZE  RSS   WCHAN    PC       NAME\r\n'
                'u0_a1  1234  174   123456 54321 ffffffff 456789ab '
                'this.is.a.test.process\r\n'),
-        ('ls /root', _ShellError()),
+        ('su -c ls /root && ! ls /root', ''),
         ('su -c kill -9 1234', '')]):
       self.assertEquals(1,
           self.device.KillAll('this.is.a.test.process', as_root=True))
@@ -1090,7 +1095,7 @@
     self.device._GetExternalStoragePathImpl = mock.Mock(
         return_value='/test/device/external_dir')
     self.device.IsOnline = mock.Mock(return_value=True)
-    self.device._RunShellCommandImpl = mock.Mock()
+    self.device.RunShellCommand = mock.Mock()
     mock_zip_temp = mock.mock_open()
     mock_zip_temp.return_value.name = '/test/temp/file/tmp.zip'
     with mock.patch('multiprocessing.Process') as mock_zip_proc, (
@@ -1102,13 +1107,13 @@
         args=('/test/temp/file/tmp.zip', test_files))
     self.adb.Push.assert_called_once_with(
         '/test/temp/file/tmp.zip', '/test/device/external_dir/tmp.zip')
-    self.assertEqual(2, self.device._RunShellCommandImpl.call_count)
-    self.device._RunShellCommandImpl.assert_any_call(
+    self.assertEqual(2, self.device.RunShellCommand.call_count)
+    self.device.RunShellCommand.assert_any_call(
         ['unzip', '/test/device/external_dir/tmp.zip'],
         as_root=True,
         env={'PATH': '$PATH:/data/local/tmp/bin'},
         check_return=True)
-    self.device._RunShellCommandImpl.assert_any_call(
+    self.device.RunShellCommand.assert_any_call(
         ['rm', '/test/device/external_dir/tmp.zip'], check_return=True)
 
   def testPushChangedFilesZipped_multiple(self):
@@ -1118,7 +1123,7 @@
     self.device._GetExternalStoragePathImpl = mock.Mock(
         return_value='/test/device/external_dir')
     self.device.IsOnline = mock.Mock(return_value=True)
-    self.device._RunShellCommandImpl = mock.Mock()
+    self.device.RunShellCommand = mock.Mock()
     mock_zip_temp = mock.mock_open()
     mock_zip_temp.return_value.name = '/test/temp/file/tmp.zip'
     with mock.patch('multiprocessing.Process') as mock_zip_proc, (
@@ -1130,13 +1135,13 @@
         args=('/test/temp/file/tmp.zip', test_files))
     self.adb.Push.assert_called_once_with(
         '/test/temp/file/tmp.zip', '/test/device/external_dir/tmp.zip')
-    self.assertEqual(2, self.device._RunShellCommandImpl.call_count)
-    self.device._RunShellCommandImpl.assert_any_call(
+    self.assertEqual(2, self.device.RunShellCommand.call_count)
+    self.device.RunShellCommand.assert_any_call(
         ['unzip', '/test/device/external_dir/tmp.zip'],
         as_root=True,
         env={'PATH': '$PATH:/data/local/tmp/bin'},
         check_return=True)
-    self.device._RunShellCommandImpl.assert_any_call(
+    self.device.RunShellCommand.assert_any_call(
         ['rm', '/test/device/external_dir/tmp.zip'], check_return=True)
 
 
@@ -1378,7 +1383,7 @@
 
   def testWriteTextFileTest_asRoot(self):
     with self.assertShellCallSequence([
-        ('ls /root', _ShellError()),
+        ('su -c ls /root && ! ls /root', ''),
         ('su -c echo string > /test/file', '')]):
       self.device.WriteTextFile('/test/file', 'string', as_root=True)
 
diff --git a/build/android/pylib/gtest/setup.py b/build/android/pylib/gtest/setup.py
index d73d862..3206bda 100644
--- a/build/android/pylib/gtest/setup.py
+++ b/build/android/pylib/gtest/setup.py
@@ -143,11 +143,16 @@
   Returns:
     A list of all the tests in the test suite.
   """
+  class TestListResult(base_test_result.BaseTestResult):
+    def __init__(self):
+      super(TestListResult, self).__init__(
+          'gtest_list_tests', base_test_result.ResultType.PASS)
+      self.test_list = []
+
   def TestListerRunnerFactory(device, _shard_index):
     class TestListerRunner(test_runner.TestRunner):
       def RunTest(self, _test):
-        result = base_test_result.BaseTestResult(
-            'gtest_list_tests', base_test_result.ResultType.PASS)
+        result = TestListResult()
         self.test_package.Install(self.device)
         result.test_list = self.test_package.GetAllTests(self.device)
         results = base_test_result.TestRunResults()
diff --git a/build/android/pylib/instrumentation/test_runner.py b/build/android/pylib/instrumentation/test_runner.py
index ebd2c83..3bac503 100644
--- a/build/android/pylib/instrumentation/test_runner.py
+++ b/build/android/pylib/instrumentation/test_runner.py
@@ -185,6 +185,9 @@
     self._SetupIndividualTestTimeoutScale(test)
     self.tool.SetupEnvironment()
 
+    if self.flags and self._IsFreTest(test):
+      self.flags.RemoveFlags(['--disable-fre'])
+
     # Make sure the forwarder is still running.
     self._RestartHttpServerForwarderIfNecessary()
 
@@ -196,6 +199,18 @@
       self.coverage_host_file = os.path.join(
           self.coverage_dir, coverage_basename)
 
+  def _IsFreTest(self, test):
+    """Determines whether a test is a first run experience test.
+
+    Args:
+      test: The name of the test to be checked.
+
+    Returns:
+      Whether the feature being tested is FirstRunExperience.
+    """
+    freFeature = 'Feature:FirstRunExperience'
+    return freFeature in self.test_pkg.GetTestAnnotations(test)
+
   def _IsPerfTest(self, test):
     """Determines whether a test is a performance test.
 
@@ -238,6 +253,9 @@
 
     self.TearDownPerfMonitoring(test)
 
+    if self.flags and self._IsFreTest(test):
+      self.flags.AddFlags(['--disable-fre'])
+
     if self.coverage_dir:
       self.device.PullFile(
           self.coverage_device_file, self.coverage_host_file)
diff --git a/build/android/pylib/utils/device_temp_file.py b/build/android/pylib/utils/device_temp_file.py
new file mode 100644
index 0000000..2a9b451
--- /dev/null
+++ b/build/android/pylib/utils/device_temp_file.py
@@ -0,0 +1,45 @@
+# Copyright 2013 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""A temp file that automatically gets pushed and deleted from a device."""
+
+# pylint: disable=W0622
+
+import random
+import time
+
+class DeviceTempFile(object):
+  def __init__(self, device, prefix='temp_file', suffix=''):
+    """Find an unused temporary file path in the devices external directory.
+
+    When this object is closed, the file will be deleted on the device.
+
+    Args:
+      device: An instance of DeviceUtils
+      prefix: The prefix of the name of the temp file.
+      suffix: The suffix of the name of the temp file.
+    """
+    self._device = device
+    while True:
+      i = random.randint(0, 1000000)
+      self.name = '%s/%s-%d-%010d%s' % (
+          self._device.GetExternalStoragePath(),
+          prefix, int(time.time()), i, suffix)
+      if not self._device.FileExists(self.name):
+        break
+    # Immediately create an empty file so that other temp files can't
+    # be given the same name.
+    # |as_root| must be set to False due to the implementation of |WriteFile|.
+    # Having |as_root| be True may cause infinite recursion.
+    self._device.WriteFile(self.name, '', as_root=False)
+
+  def close(self):
+    """Deletes the temporary file from the device."""
+    self._device.RunShellCommand(['rm', self.name])
+
+  def __enter__(self):
+    return self
+
+  def __exit__(self, type, value, traceback):
+    self.close()
diff --git a/build/android/pylib/utils/device_temp_file_test.py b/build/android/pylib/utils/device_temp_file_test.py
new file mode 100755
index 0000000..b0d23b1
--- /dev/null
+++ b/build/android/pylib/utils/device_temp_file_test.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""
+Unit tests for the contents of device_temp_file.py.
+"""
+
+import logging
+import os
+import sys
+import unittest
+
+from pylib import constants
+from pylib.utils import device_temp_file
+
+sys.path.append(os.path.join(
+    constants.DIR_SOURCE_ROOT, 'third_party', 'pymock'))
+import mock # pylint: disable=F0401
+
+class DeviceTempFileTest(unittest.TestCase):
+
+  def setUp(self):
+    self.device_utils = mock.MagicMock()
+
+  def testTempFileNameAlreadyExists(self):
+    self.device_utils.GetExternalStoragePath.return_value = '/sdcard'
+    self.device_utils.FileExists.side_effect = [True, True, True, False]
+
+    tmpfile = device_temp_file.DeviceTempFile(self.device_utils)
+    logging.debug('Temp file name: %s' % tmpfile.name)
+    self.assertEqual(self.device_utils.FileExists.call_count, 4)
+    self.device_utils.WriteFile.assert_called_with(tmpfile.name, '')
+
+  def testTempFileLifecycle(self):
+    self.device_utils.GetExternalStoragePath.return_value = '/sdcard'
+    self.device_utils.FileExists.return_value = False
+
+    with device_temp_file.DeviceTempFile(self.device_utils) as tmpfile:
+      filename = tmpfile.name
+      self.assertEqual(self.device_utils.WriteFile.call_count, 1)
+      self.assertNotEqual(self.device_utils.RunShellCommand.call_args,
+          mock.call(['rm', mock.ANY]))
+
+    self.assertEqual(self.device_utils.RunShellCommand.call_args,
+        mock.call(['rm', filename]))
+
+if __name__ == '__main__':
+  logging.getLogger().setLevel(logging.DEBUG)
+  unittest.main(verbosity=2)
diff --git a/build/android/setup.gyp b/build/android/setup.gyp
index 7dce19d..f10ab3e 100644
--- a/build/android/setup.gyp
+++ b/build/android/setup.gyp
@@ -12,13 +12,26 @@
           # <(SHARED_LIB_DIR)
           'target_name': 'copy_system_libraries',
           'type': 'none',
-          'copies': [
-            {
-              'destination': '<(SHARED_LIB_DIR)/',
-              'files': [
-                '<(android_stlport_libs_dir)/libstlport_shared.so',
+          'conditions': [
+            ['target_arch=="arm" and arm_thumb==1', {
+              'copies': [
+                {
+                  'destination': '<(SHARED_LIB_DIR)/',
+                  'files': [
+                    '<(android_stlport_libs_dir)/thumb/libstlport_shared.so',
+                  ],
+                },
               ],
-            },
+            }, {
+              'copies': [
+                {
+                  'destination': '<(SHARED_LIB_DIR)/',
+                  'files': [
+                    '<(android_stlport_libs_dir)/libstlport_shared.so',
+                  ],
+                },
+              ],
+            }],
           ],
         },
       ],
diff --git a/build/android/test_runner.py b/build/android/test_runner.py
index 1baebc1..2e39c3c 100755
--- a/build/android/test_runner.py
+++ b/build/android/test_runner.py
@@ -21,7 +21,10 @@
 from pylib import forwarder
 from pylib import ports
 from pylib.base import base_test_result
+from pylib.base import environment_factory
 from pylib.base import test_dispatcher
+from pylib.base import test_instance_factory
+from pylib.base import test_run_factory
 from pylib.gtest import gtest_config
 from pylib.gtest import setup as gtest_setup
 from pylib.gtest import test_options as gtest_test_options
@@ -45,9 +48,6 @@
 from pylib.utils import run_tests_helper
 
 
-HOST_TESTS = ['junit', 'python']
-
-
 def AddCommonOptions(option_parser):
   """Adds all common options to |option_parser|."""
 
@@ -78,15 +78,26 @@
                    dest='flakiness_dashboard_server',
                    help=('Address of the server that is hosting the '
                          'Chrome for Android flakiness dashboard.'))
+  group.add_option('--enable-platform-mode', action='store_true',
+                   help=('Run the test scripts in platform mode, which '
+                         'conceptually separates the test runner from the '
+                         '"device" (local or remote, real or emulated) on '
+                         'which the tests are running. [experimental]'))
+  group.add_option('-e', '--environment', default='local',
+                   help=('Test environment to run in. Must be one of: %s' %
+                         ', '.join(constants.VALID_ENVIRONMENTS)))
   option_parser.add_option_group(group)
 
 
-def ProcessCommonOptions(options):
+def ProcessCommonOptions(options, error_func):
   """Processes and handles all common options."""
   run_tests_helper.SetLogLevel(options.verbose_count)
   constants.SetBuildType(options.build_type)
   if options.build_directory:
     constants.SetBuildDirectory(options.build_directory)
+  if options.environment not in constants.VALID_ENVIRONMENTS:
+    error_func('--environment must be one of: %s' %
+               ', '.join(constants.VALID_ENVIRONMENTS))
 
 
 def AddDeviceOptions(option_parser):
@@ -832,9 +843,12 @@
       option_parser.error('Unrecognized arguments: %s' % (' '.join(args)))
       return constants.ERROR_EXIT_CODE
 
-  ProcessCommonOptions(options)
+  ProcessCommonOptions(options, option_parser.error)
 
-  if command in HOST_TESTS:
+  if options.enable_platform_mode:
+    return RunTestsInPlatformMode(command, options, option_parser)
+
+  if command in constants.LOCAL_MACHINE_TESTS:
     devices = []
   else:
     devices = _GetAttachedDevices(options.test_device)
@@ -863,6 +877,35 @@
     raise Exception('Unknown test type.')
 
 
+_SUPPORTED_IN_PLATFORM_MODE = [
+  # TODO(jbudorick): Add support for more test types.
+  'gtest',
+]
+
+
+def RunTestsInPlatformMode(command, options, option_parser):
+
+  if command not in _SUPPORTED_IN_PLATFORM_MODE:
+    option_parser.error('%s is not yet supported in platform mode' % command)
+
+  with environment_factory.CreateEnvironment(
+      command, options, option_parser.error) as env:
+    with test_instance_factory.CreateTestInstance(
+        command, options, option_parser.error) as test:
+      with test_run_factory.CreateTestRun(
+          options, env, test, option_parser.error) as test_run:
+        results = test_run.RunTests()
+
+        report_results.LogFull(
+            results=results,
+            test_type=test.TestType(),
+            test_package=test_run.TestPackage(),
+            annotation=options.annotations,
+            flakiness_server=options.flakiness_dashboard_server)
+
+  return results
+
+
 def HelpCommand(command, _options, args, option_parser):
   """Display help for a certain command, or overall help.
 
diff --git a/build/common.gypi b/build/common.gypi
index 4dbaa41..753abfe 100644
--- a/build/common.gypi
+++ b/build/common.gypi
@@ -487,12 +487,12 @@
       # Enable Google Now.
       'enable_google_now%': 1,
 
-      # Enable printing support and UI. This variable is used to configure
-      # which parts of printing will be built. 0 disables printing completely,
-      # 1 enables it fully, and 2 enables only the codepath to generate a
-      # Metafile (e.g. usually a PDF or EMF) and disables print preview, cloud
-      # print, UI, etc.
-      'enable_printing%': 1,
+      # Enable basic printing support and UI.
+      'enable_basic_printing%': 1,
+
+      # Enable printing with print preview. It does not imply
+      # enable_basic_printing. It's possible to build Chrome with preview only.
+      'enable_print_preview%': 1,
 
       # Set the version of CLD.
       #   0: Don't specify the version. This option is for the Finch testing.
@@ -770,7 +770,8 @@
           'arm_neon_optional%': 1,
           'native_discardable_memory%': 1,
           'native_memory_pressure_signals%': 1,
-          'enable_printing%': 2,
+          'enable_basic_printing%': 1,
+          'enable_print_preview%': 0,
           'enable_task_manager%':0,
           'video_hole%': 1,
         }],
@@ -809,7 +810,8 @@
           'enable_extensions%': 0,
           'enable_google_now%': 0,
           'cld_version%': 1,
-          'enable_printing%': 0,
+          'enable_basic_printing%': 0,
+          'enable_print_preview%': 0,
           'enable_session_service%': 0,
           'enable_themes%': 0,
           'enable_webrtc%': 0,
@@ -905,6 +907,8 @@
         }],
 
         ['chromeos==1', {
+          'enable_basic_printing%': 0,
+          'enable_print_preview%': 1,
           # When building for ChromeOS we dont want Chromium to use libjpeg_turbo.
           'use_libjpeg_turbo%': 0,
         }],
@@ -979,7 +983,8 @@
         # Disable various features by default on embedded.
         ['embedded==1', {
           'remoting%': 0,
-          'enable_printing%': 0,
+          'enable_basic_printing%': 0,
+          'enable_print_preview%': 0,
         }],
 
         # By default, use ICU data file (icudtl.dat) on all platforms
@@ -1175,7 +1180,8 @@
     'test_isolation_mode%': '<(test_isolation_mode)',
     'test_isolation_outdir%': '<(test_isolation_outdir)',
     'test_isolation_fail_on_missing': '<(test_isolation_fail_on_missing)',
-    'enable_printing%': '<(enable_printing)',
+    'enable_basic_printing%': '<(enable_basic_printing)',
+    'enable_print_preview%': '<(enable_print_preview)',
     'enable_spellcheck%': '<(enable_spellcheck)',
     'enable_google_now%': '<(enable_google_now)',
     'cld_version%': '<(cld_version)',
@@ -2096,11 +2102,11 @@
       ['enable_plugins!=0', {
         'grit_defines': ['-D', 'enable_plugins'],
       }],
-      ['enable_printing!=0', {
+      ['enable_basic_printing==1 or enable_print_preview==1', {
         'grit_defines': ['-D', 'enable_printing'],
       }],
-      ['enable_printing==1', {
-        'grit_defines': ['-D', 'enable_full_printing'],
+      ['enable_print_preview==1', {
+        'grit_defines': ['-D', 'enable_print_preview'],
       }],
       ['enable_themes==1', {
         'grit_defines': ['-D', 'enable_themes'],
@@ -2348,6 +2354,7 @@
       }, {
          'use_seccomp_bpf%': 0,
       }],
+
       # Set component build with LTO until all tests pass.
       # This also reduces link time.
       ['use_lto==1', {
@@ -2386,7 +2393,7 @@
     # Whether to allow building of the GPU-related isolates.
     'archive_gpu_tests%': 0,
 
-     # Whether to allow building of chromoting related isolates.
+    # Whether to allow building of chromoting related isolates.
     'archive_chromoting_tests%': 0,
   },
   'target_defaults': {
@@ -2923,12 +2930,19 @@
         # chrome://translate-internals
         'defines': ['CLD2_DATA_SOURCE=<(cld2_data_source)'],
       }],
-      ['enable_printing==1', {
-        'defines': ['ENABLE_FULL_PRINTING=1', 'ENABLE_PRINTING=1'],
-      }],
-      ['enable_printing==2', {
+      ['enable_basic_printing==1 or enable_print_preview==1', {
+        # Convenience define for ENABLE_BASIC_PRINTING || ENABLE_PRINT_PREVIEW.
         'defines': ['ENABLE_PRINTING=1'],
       }],
+      ['enable_basic_printing==1', {
+        # Enable basic printing support and UI.
+        'defines': ['ENABLE_BASIC_PRINTING=1'],
+      }],
+      ['enable_print_preview==1', {
+        # Enable printing with print preview.
+        # Can be defined without ENABLE_BASIC_PRINTING.
+        'defines': ['ENABLE_PRINT_PREVIEW=1'],
+      }],
       ['enable_spellcheck==1', {
         'defines': ['ENABLE_SPELLCHECK=1'],
       }],
@@ -4641,10 +4655,19 @@
                   '--sysroot=<(android_ndk_sysroot)',
                   '-nostdlib',
                 ],
+                'variables': {
+                  'conditions': [
+                    ['target_arch=="arm" and arm_thumb==1', {
+                      'thumb_option%': '-mthumb',
+                    }, {
+                      'thumb_option%': '',
+                    }],
+                  ],
+                },
                 'libraries': [
                   '-l<(android_stlport_library)',
                   # Manually link the libgcc.a that the cross compiler uses.
-                  '<!(<(android_toolchain)/*-gcc -print-libgcc-file-name)',
+                  '<!(<(android_toolchain)/*-gcc <(thumb_option) -print-libgcc-file-name)',
                   '-lc',
                   '-ldl',
                   '-lm',
@@ -4709,8 +4732,12 @@
                 'cflags': [
                   '-isystem<(android_stlport_include)',
                 ],
-                'ldflags': [
-                  '-L<(android_stlport_libs_dir)',
+                'conditions': [
+                  ['target_arch=="arm" and arm_thumb==1', {
+                    'ldflags': [ '-L<(android_stlport_libs_dir)/thumb' ]
+                  }, {
+                    'ldflags': [ '-L<(android_stlport_libs_dir)' ]
+                  }],
                 ],
               }, { # else: android_webview_build!=0
                 'aosp_build_settings': {
@@ -5151,9 +5178,7 @@
     ['OS=="ios"', {
       'target_defaults': {
         'xcode_settings' : {
-          # TODO(stuartmorgan): switch to c++0x (see TODOs in the clang
-          # section above).
-          'CLANG_CXX_LANGUAGE_STANDARD': 'gnu++0x',
+          'CLANG_CXX_LANGUAGE_STANDARD': 'c++11',
 
           'conditions': [
             # Older Xcodes do not support -Wno-deprecated-register, so pass an
@@ -5719,13 +5744,17 @@
     # the default on the current development version of AOSP but we force it
     # here in case we need to compile against an older release version. We also
     # explicitly set it to false for target binaries to avoid causing problems
-    # for the work to enable clang by default in AOSP.
+    # for the work to enable clang by default in AOSP. We also force the use of
+    # libstdc++ on host as peculiarities of the android gyp backend mean that
+    # using libc++ doesn't work, and Chromium doesn't yet require a more modern
+    # C++ library.
     ['android_webview_build==1', {
       'target_defaults': {
         'target_conditions': [
           ['_toolset=="host"', {
             'aosp_build_settings': {
               'LOCAL_CLANG': 'true',
+              'LOCAL_CXX_STL': 'libstdc++',
             },
           }, {  # else: _toolset != "host"
             'aosp_build_settings': {
diff --git a/build/config/BUILD.gn b/build/config/BUILD.gn
index 7fbbd5d..ecbef88 100644
--- a/build/config/BUILD.gn
+++ b/build/config/BUILD.gn
@@ -54,10 +54,17 @@
   if (enable_plugins) {
     defines += [ "ENABLE_PLUGINS=1" ]
   }
-  if (printing_mode > 0) {
+  if (enable_basic_printing || enable_print_preview) {
+    # Convenience define for ENABLE_BASIC_PRINTING || ENABLE_PRINT_PREVIEW.
     defines += [ "ENABLE_PRINTING=1" ]
-    if (printing_mode < 2) {
-      defines += [ "ENABLE_FULL_PRINTING=1" ]
+    if (enable_basic_printing) {
+      # Enable basic printing support and UI.
+      defines += [ "ENABLE_BASIC_PRINTING=1" ]
+    }
+    if (enable_print_preview) {
+      # Enable printing with print preview.
+      # Can be defined without ENABLE_BASIC_PRINTING.
+      defines += [ "ENABLE_PRINT_PREVIEW=1" ]
     }
   }
   if (enable_spellcheck) {
diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
index 6ef6a23..c9ec4a2 100644
--- a/build/config/BUILDCONFIG.gn
+++ b/build/config/BUILDCONFIG.gn
@@ -41,8 +41,7 @@
   # Normally this would get set automatically when you specify a target using
   # the 64-bit toolchain. You can also set this on the command line to convert
   # the default toolchain to 64-bit.
-  # Mojo Windows only tries to make x64 work at the moment.
-  force_win64 = true
+  force_win64 = false
 
   # Selects the desired build flavor. Official builds get additional
   # processing to prepare for release. Normally you will want to develop and
diff --git a/build/config/OWNERS b/build/config/OWNERS
new file mode 100644
index 0000000..9b79b9a
--- /dev/null
+++ b/build/config/OWNERS
@@ -0,0 +1,2 @@
+set noparent
+brettw@chromium.org
diff --git a/build/config/android/config.gni b/build/config/android/config.gni
index a2de843..ce9a175 100644
--- a/build/config/android/config.gni
+++ b/build/config/android/config.gni
@@ -37,6 +37,23 @@
     android_chrome_build_id = "\"\""
   }
 
+  # ABI ------------------------------------------------------------------------
+
+  if (cpu_arch == "x86") {
+    android_app_abi = "x86"
+  } else if (cpu_arch == "arm") {
+    import("//build/config/arm.gni")
+    if (arm_version < 7) {
+      android_app_abi = "armeabi"
+    } else {
+      android_app_abi = "armeabi-v7a"
+    }
+  } else if (cpu_arch == "mipsel") {
+    android_app_abi = "mips"
+  } else {
+    assert(false, "Unknown Android ABI: " + cpu_arch)
+  }
+
   # Host stuff -----------------------------------------------------------------
 
   # Defines the name the Android build gives to the current host CPU
@@ -106,8 +123,13 @@
     android_prebuilt_arch = "android-arm"
     _binary_prefix = "arm-linux-androideabi"
     android_toolchain_root = "$arm_android_toolchain_root"
-    android_libgcc_file =
-      "$android_toolchain_root/lib/gcc/arm-linux-androideabi/${_android_toolchain_version}/libgcc.a"
+    if (arm_use_thumb) {
+      android_libgcc_file =
+        "$android_toolchain_root/lib/gcc/arm-linux-androideabi/${_android_toolchain_version}/thumb/libgcc.a"
+    } else {
+      android_libgcc_file =
+        "$android_toolchain_root/lib/gcc/arm-linux-androideabi/${_android_toolchain_version}/libgcc.a"
+    }
   } else if (cpu_arch == "mipsel") {
     android_prebuilt_arch = "android-mips"
     _binary_prefix = "mipsel-linux-android"
@@ -130,23 +152,6 @@
   } else {
     android_stlport_library = "stlport_static"
   }
-
-  # ABI ------------------------------------------------------------------------
-
-  if (cpu_arch == "x86") {
-    android_app_abi = "x86"
-  } else if (cpu_arch == "arm") {
-    import("//build/config/arm.gni")
-    if (arm_version < 7) {
-      android_app_abi = "armeabi"
-    } else {
-      android_app_abi = "armeabi-v7a"
-    }
-  } else if (cpu_arch == "mipsel") {
-    android_app_abi = "mips"
-  } else {
-    assert(false, "Unknown Android ABI: " + cpu_arch)
-  }
 } else {
   if (!defined(is_android_webview_build)) {
     is_android_webview_build = false
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index deb7c9f..de3fac5 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -46,7 +46,9 @@
 }
 
 # TODO(GYP): is_ubsan, is_ubsan_vptr
-using_sanitizer = is_asan || is_lsan || is_tsan || is_msan
+if (!is_win) {
+  using_sanitizer = is_asan || is_lsan || is_tsan || is_msan
+}
 
 # compiler ---------------------------------------------------------------------
 #
@@ -80,9 +82,6 @@
                   # structured exceptions (only C++ ones).
       ]
     }
-    if (using_sanitizer) {
-      # Avoid error.
-    }
   } else {
     # Common GCC compiler flags setup.
     # --------------------------------
@@ -486,7 +485,11 @@
       "-isystem" + rebase_path("$android_stlport_root/stlport",
                                root_build_dir)
     ]
-    lib_dirs += [ "$android_stlport_root/libs/$android_app_abi" ]
+    if (arm_use_thumb) {
+      lib_dirs += [ "$android_stlport_root/libs/$android_app_abi/thumb" ]
+    } else {
+      lib_dirs += [ "$android_stlport_root/libs/$android_app_abi" ]
+    }
 
     if (component_mode == "shared_library") {
       libs += [ "stlport_shared" ]
@@ -528,12 +531,10 @@
   if (is_win) {
     cflags = [
       "/W4",  # Warning level 4.
-      "/wd4267",  # TODO(jschuh): crbug.com/167187 size_t to int truncations.
     ]
   } else {
     cflags = [
       "-Wall",
-      "-Wextra",
 
       # GCC turns on -Wsign-compare for C++ under -Wall, but clang doesn't,
       # so we specify it explicitly.
@@ -559,7 +560,6 @@
     cflags += [
       "/W3",  # Warning level 3.
       "/wd4800",  # Disable warning when forcing value to bool.
-      "/wd4267",  # TODO(jschuh): crbug.com/167187 size_t to int truncations.
     ]
     defines += [
       "_CRT_NONSTDC_NO_WARNINGS",
diff --git a/build/config/features.gni b/build/config/features.gni
index 49fe155..a395b40 100644
--- a/build/config/features.gni
+++ b/build/config/features.gni
@@ -63,15 +63,12 @@
 
 enable_browser_cdms = is_android
 
-# Enable printing support and UI. This variable is used to configure which
-# parts of printing will be built. 0 disables printing completely, 1 enables it
-# fully, and 2 enables only the codepath to generate a Metafile (e.g.  usually
-# a PDF or EMF) and disables print preview, cloud print, UI, etc.
-if (is_android) {
-  printing_mode = 2
-} else {
-  printing_mode = 1
-}
+# Enable basic printing support and UI.
+enable_basic_printing = !is_chromeos
+
+# Enable printing with print preview. It does not imply
+# enable_basic_printing. It's possible to build Chrome with preview only.
+enable_print_preview = !is_android
 
 # The seccomp-bpf sandbox is only supported on three architectures
 # currently.
diff --git a/build/config/linux/BUILD.gn b/build/config/linux/BUILD.gn
index 98d131e..758f42a 100644
--- a/build/config/linux/BUILD.gn
+++ b/build/config/linux/BUILD.gn
@@ -118,8 +118,7 @@
   # These packages should _only_ be expected when building for a target.
   # If these extra checks are not run, gconf is required when building host
   # tools for a CrOS build.
-  if (current_toolchain == host_toolchain &&
-      host_toolchain == default_toolchain) {
+  if (current_toolchain == default_toolchain) {
     pkg_config("gconf") {
       packages = [ "gconf-2.0" ]
       defines = [ "USE_GCONF" ]
diff --git a/build/get_landmines.py b/build/get_landmines.py
index 5740cb8..1eec5ee 100755
--- a/build/get_landmines.py
+++ b/build/get_landmines.py
@@ -60,6 +60,7 @@
   if platform() == 'android':
     print 'Delete stale generated .java files yet again. crbug.com/349592'
     print 'Clobber to delete incompatible object binary format with NDK r10c'
+  print 'Clobber to fix missing NaCl gyp dependencies (crbug.com/427427).'
 
 
 def main():
diff --git a/build/go/rules.gni b/build/go/rules.gni
index 79453d1..55dd386 100644
--- a/build/go/rules.gni
+++ b/build/go/rules.gni
@@ -59,3 +59,39 @@
     ] + rebase_path(invoker.sources, build_dir)
   }
 }
+
+template("go_shared_library") {
+  # Only available on android for now.
+  assert(is_android)
+  assert(defined(invoker.sources))
+  assert(go_build_tool != "")
+
+  static_library_name = target_name + "_static_library"
+
+  static_library(static_library_name) {
+    complete_static_lib = true
+    deps = invoker.deps
+  }
+
+  action(target_name) {
+    deps = [ ":$static_library_name" ]
+    script = "//build/go/go.py"
+    outputs = [ "${target_out_dir}/${target_name}" ]
+    # Since go test does not permit specifying an output directory or output
+    # binary name, we create a temporary build directory, and the python
+    # script will later identify the output, copy it to the target location,
+    # and clean up the temporary build directory.
+    build_dir = "${target_out_dir}/${target_name}_build"
+    args = [
+      "--", 
+      "CGO_ENABLED=1 GOOS=android GOARCH=arm GOARM=7 ${go_build_tool}",
+      rebase_path(build_dir, root_build_dir),
+      rebase_path(target_out_dir, root_build_dir) + "/${target_name}",
+      rebase_path("//", root_build_dir),
+      "-I" + rebase_path("//"),
+      " -L" + rebase_path(target_out_dir) +
+       " -l" + static_library_name + "",
+      "build -ldflags=-shared",
+    ] + rebase_path(invoker.sources, build_dir)
+  }
+}
\ No newline at end of file
diff --git a/build/gyp_chromium b/build/gyp_chromium
index 326919c..ad2796b 100755
--- a/build/gyp_chromium
+++ b/build/gyp_chromium
@@ -178,6 +178,9 @@
     if os.path.realpath(path) not in specified_includes:
       result.append(path)
 
+  if os.environ.get('GYP_INCLUDE_FIRST') != None:
+    AddInclude(os.path.join(chrome_src, os.environ.get('GYP_INCLUDE_FIRST')))
+
   # Always include common.gypi.
   AddInclude(os.path.join(script_dir, 'common.gypi'))
 
@@ -185,6 +188,9 @@
   for supplement in supplemental_files:
     AddInclude(supplement)
 
+  if os.environ.get('GYP_INCLUDE_LAST') != None:
+    AddInclude(os.path.join(chrome_src, os.environ.get('GYP_INCLUDE_LAST')))
+
   return result
 
 
diff --git a/build/gyp_helper.py b/build/gyp_helper.py
index eadc7a5..645943a 100644
--- a/build/gyp_helper.py
+++ b/build/gyp_helper.py
@@ -34,6 +34,8 @@
       'GYP_CROSSCOMPILE',
       'GYP_GENERATOR_OUTPUT',
       'GYP_GENERATORS',
+      'GYP_INCLUDE_FIRST',
+      'GYP_INCLUDE_LAST',
       'GYP_MSVS_VERSION',
   )
   for var in supported_vars:
diff --git a/build/ios/grit_whitelist.txt b/build/ios/grit_whitelist.txt
index 055393d..39e5628 100644
--- a/build/ios/grit_whitelist.txt
+++ b/build/ios/grit_whitelist.txt
@@ -4,6 +4,7 @@
 IDR_ABOUT_VERSION_CSS
 IDR_ABOUT_VERSION_HTML
 IDR_ABOUT_VERSION_JS
+IDR_APPLE_FLAGS_HTML
 IDR_AUTOFILL_CC_AMEX
 IDR_AUTOFILL_CC_DINERS
 IDR_AUTOFILL_CC_DISCOVER
@@ -11,6 +12,7 @@
 IDR_AUTOFILL_CC_JCB
 IDR_AUTOFILL_CC_MASTERCARD
 IDR_AUTOFILL_CC_VISA
+IDR_CONTEXTUAL_SEARCH_PROMO_HTML
 IDR_CONTROLLED_SETTING_MANDATORY
 IDR_CRASHES_HTML
 IDR_CRASHES_JS
@@ -21,6 +23,11 @@
 IDR_DEFAULT_FAVICON_64
 IDR_DIR_HEADER_HTML
 IDR_FLAGS_FAVICON
+IDR_FLAGS_HTML
+IDR_FLAGS_JS
+IDR_GCM_INTERNALS_CSS
+IDR_GCM_INTERNALS_HTML
+IDR_GCM_INTERNALS_JS
 IDR_HISTORY_FAVICON
 IDR_HISTORY_HTML
 IDR_HISTORY_JS
@@ -36,6 +43,8 @@
 IDR_NET_ERROR_HTML
 IDR_NET_EXPORT_HTML
 IDR_NET_EXPORT_JS
+IDR_NET_INTERNALS_INDEX_HTML
+IDR_NET_INTERNALS_INDEX_JS
 IDR_OMAHA_HTML
 IDR_OMAHA_JS
 IDR_OMNIBOX_CLEAR_IOS
@@ -64,9 +73,13 @@
 IDR_PAGEINFO_INFO
 IDR_PAGEINFO_WARNING_MAJOR
 IDR_PAGEINFO_WARNING_MINOR
+IDR_POLICY_CSS
+IDR_POLICY_HTML
+IDR_POLICY_JS
 IDR_PRERENDER
 IDR_PRINTER_FAVICON
 IDR_PRODUCT_LOGO_26
+IDR_SAD_FAVICON
 IDR_SAD_TAB
 IDR_SECURITY_INTERSTITIAL_HTML
 IDR_SIGNIN_INTERNALS_INDEX_HTML
@@ -86,6 +99,7 @@
 IDR_SYNC_INTERNALS_TYPES_JS
 IDR_TOOLBAR_SHADOW_FULL_BLEED
 IDR_TRANSLATE_JS
+IDR_UBER_UTILS_JS
 IDR_WEBUI_CSS_ALERT_OVERLAY
 IDR_WEBUI_CSS_APPS_COMMON
 IDR_WEBUI_CSS_APPS_TOPBUTTON_BAR
@@ -173,6 +187,7 @@
 IDS_ABOUT_VERSION_OS
 IDS_ABOUT_VERSION_PATH_NOTFOUND
 IDS_ABOUT_VERSION_PROFILE_PATH
+IDS_ABOUT_VERSION_REVISION
 IDS_ABOUT_VERSION_TITLE
 IDS_ABOUT_VERSION_UNOFFICIAL
 IDS_ABOUT_VERSION_USER_AGENT
@@ -185,6 +200,7 @@
 IDS_ACCNAME_VOICE_SEARCH
 IDS_ALLOW_INSECURE_CONTENT_BUTTON
 IDS_ALTERNATE_NAV_URL_VIEW_LABEL
+IDS_ANNOTATED_SUGGESTION
 IDS_APP_CANCEL
 IDS_APP_OK
 IDS_APP_UNTITLED_SHORTCUT_FILE_NAME
@@ -262,6 +278,8 @@
 IDS_CERT_ERROR_AUTHORITY_INVALID_DETAILS
 IDS_CERT_ERROR_AUTHORITY_INVALID_EXTRA_INFO_2
 IDS_CERT_ERROR_AUTHORITY_INVALID_TITLE
+IDS_CERT_ERROR_CHAIN_EXPIRED_DESCRIPTION
+IDS_CERT_ERROR_CHAIN_EXPIRED_DETAILS
 IDS_CERT_ERROR_COMMON_NAME_INVALID_DESCRIPTION
 IDS_CERT_ERROR_COMMON_NAME_INVALID_DETAILS
 IDS_CERT_ERROR_COMMON_NAME_INVALID_EXTRA_INFO_2
@@ -280,6 +298,9 @@
 IDS_CERT_ERROR_INVALID_CERT_DETAILS
 IDS_CERT_ERROR_INVALID_CERT_EXTRA_INFO_2
 IDS_CERT_ERROR_INVALID_CERT_TITLE
+IDS_CERT_ERROR_NAME_CONSTRAINT_VIOLATION_DESCRIPTION
+IDS_CERT_ERROR_NAME_CONSTRAINT_VIOLATION_DETAILS
+IDS_CERT_ERROR_NAME_CONSTRAINT_VIOLATION_TITLE
 IDS_CERT_ERROR_NOT_YET_VALID_DESCRIPTION
 IDS_CERT_ERROR_NOT_YET_VALID_DETAILS
 IDS_CERT_ERROR_NOT_YET_VALID_DETAILS_EXTRA_INFO_2
@@ -307,6 +328,13 @@
 IDS_CERT_ERROR_WEAK_SIGNATURE_ALGORITHM_TITLE
 IDS_CHROME_TO_DEVICE_PRINT_TO_PHONE
 IDS_CHROME_TO_DEVICE_SNAPSHOTS
+IDS_CLOSE
+IDS_CONTEXTUAL_SEARCH_HEADER
+IDS_CONTEXTUAL_SEARCH_PROMO_DESCRIPTION_1
+IDS_CONTEXTUAL_SEARCH_PROMO_DESCRIPTION_2
+IDS_CONTEXTUAL_SEARCH_PROMO_FEATURE_NAME
+IDS_CONTEXTUAL_SEARCH_PROMO_OPTIN
+IDS_CONTEXTUAL_SEARCH_PROMO_OPTOUT
 IDS_COULDNT_OPEN_PROFILE_ERROR
 IDS_CRASHES_BUG_LINK_LABEL
 IDS_CRASHES_CRASH_COUNT_BANNER_FORMAT
@@ -316,6 +344,7 @@
 IDS_CRASHES_DISABLED_MESSAGE
 IDS_CRASHES_NO_CRASHES_MESSAGE
 IDS_CRASHES_TITLE
+IDS_CRASHES_UPLOAD_MESSAGE
 IDS_CREDIT_CARD_NUMBER_PREVIEW_FORMAT
 IDS_DEFAULT_AVATAR_NAME_10
 IDS_DEFAULT_AVATAR_NAME_11
@@ -357,6 +386,7 @@
 IDS_DOM_DISTILLER_WEBUI_VIEW_URL
 IDS_DOM_DISTILLER_WEBUI_VIEW_URL_FAILED
 IDS_DONE
+IDS_EASY_UNLOCK_SCREENLOCK_USER_POD_AUTH_VALUE
 IDS_EDIT_FIND_MAC
 IDS_EMPTY_KEYWORD_VALUE
 IDS_ERRORPAGES_BUTTON_LESS
@@ -369,6 +399,7 @@
 IDS_ERRORPAGES_DETAILS_BAD_SSL_CLIENT_AUTH_CERT
 IDS_ERRORPAGES_DETAILS_BLOCKED
 IDS_ERRORPAGES_DETAILS_BLOCKED_BY_ADMINISTRATOR
+IDS_ERRORPAGES_DETAILS_BLOCKED_ENROLLMENT_CHECK_PENDING
 IDS_ERRORPAGES_DETAILS_CACHE_MISS
 IDS_ERRORPAGES_DETAILS_CACHE_READ_FAILURE
 IDS_ERRORPAGES_DETAILS_CONNECTION_CLOSED
@@ -397,8 +428,10 @@
 IDS_ERRORPAGES_DETAILS_RESPONSE_HEADERS_MULTIPLE_CONTENT_LENGTH
 IDS_ERRORPAGES_DETAILS_RESPONSE_HEADERS_MULTIPLE_LOCATION
 IDS_ERRORPAGES_DETAILS_SERVICE_UNAVAILABLE
+IDS_ERRORPAGES_DETAILS_SSL_FALLBACK_BEYOND_MINIMUM_VERSION
 IDS_ERRORPAGES_DETAILS_SSL_PROTOCOL_ERROR
 IDS_ERRORPAGES_DETAILS_SSL_UNSAFE_NEGOTIATION
+IDS_ERRORPAGES_DETAILS_SSL_VERSION_OR_CIPHER_MISMATCH
 IDS_ERRORPAGES_DETAILS_TEMPORARILY_THROTTLED
 IDS_ERRORPAGES_DETAILS_TIMED_OUT
 IDS_ERRORPAGES_DETAILS_TOO_MANY_REDIRECTS
@@ -422,17 +455,18 @@
 IDS_ERRORPAGES_HEADING_NOT_FOUND
 IDS_ERRORPAGES_HEADING_PINNING_FAILURE
 IDS_ERRORPAGES_HEADING_PROXY_CONNECTION_FAILED
+IDS_ERRORPAGES_HEADING_SSL_FALLBACK_BEYOND_MINIMUM_VERSION
 IDS_ERRORPAGES_HEADING_SSL_PROTOCOL_ERROR
+IDS_ERRORPAGES_HEADING_SSL_VERSION_OR_CIPHER_MISMATCH
 IDS_ERRORPAGES_HEADING_TOO_MANY_REDIRECTS
 IDS_ERRORPAGES_HEADING_WEAK_SERVER_EPHEMERAL_DH_KEY
 IDS_ERRORPAGES_HTTP_POST_WARNING
-IDS_ERRORPAGES_NET_BUTTON_DETAILS
-IDS_ERRORPAGES_NET_BUTTON_HIDE_DETAILS
 IDS_ERRORPAGES_SUGGESTION_CHECK_CONNECTION_BODY
 IDS_ERRORPAGES_SUGGESTION_CHECK_CONNECTION_HEADER
 IDS_ERRORPAGES_SUGGESTION_CONTACT_ADMINISTRATOR
 IDS_ERRORPAGES_SUGGESTION_DNS_CONFIG
 IDS_ERRORPAGES_SUGGESTION_FIREWALL_CONFIG
+IDS_ERRORPAGES_SUGGESTION_GOOGLE_SEARCH
 IDS_ERRORPAGES_SUGGESTION_LEARNMORE_BODY
 IDS_ERRORPAGES_SUGGESTION_NETWORK_PREDICTION
 IDS_ERRORPAGES_SUGGESTION_PROXY_CONFIG
@@ -446,6 +480,7 @@
 IDS_ERRORPAGES_SUMMARY_BAD_SSL_CLIENT_AUTH_CERT
 IDS_ERRORPAGES_SUMMARY_BLOCKED
 IDS_ERRORPAGES_SUMMARY_BLOCKED_BY_ADMINISTRATOR
+IDS_ERRORPAGES_SUMMARY_BLOCKED_ENROLLMENT_CHECK_PENDING
 IDS_ERRORPAGES_SUMMARY_CACHE_MISS
 IDS_ERRORPAGES_SUMMARY_CACHE_READ_FAILURE
 IDS_ERRORPAGES_SUMMARY_CONNECTION_REFUSED
@@ -471,7 +506,9 @@
 IDS_ERRORPAGES_SUMMARY_PINNING_FAILURE
 IDS_ERRORPAGES_SUMMARY_PROXY_CONNECTION_FAILED
 IDS_ERRORPAGES_SUMMARY_SERVICE_UNAVAILABLE
+IDS_ERRORPAGES_SUMMARY_SSL_FALLBACK_BEYOND_MINIMUM_VERSION
 IDS_ERRORPAGES_SUMMARY_SSL_PROTOCOL_ERROR
+IDS_ERRORPAGES_SUMMARY_SSL_VERSION_OR_CIPHER_MISMATCH
 IDS_ERRORPAGES_SUMMARY_TEMPORARILY_THROTTLED
 IDS_ERRORPAGES_SUMMARY_TIMED_OUT
 IDS_ERRORPAGES_SUMMARY_TOO_MANY_REDIRECTS
@@ -482,12 +519,13 @@
 IDS_ERRORPAGES_TITLE_LOAD_FAILED
 IDS_ERRORPAGES_TITLE_NOT_AVAILABLE
 IDS_ERRORPAGES_TITLE_NOT_FOUND
+IDS_ERRORPAGE_NET_BUTTON_DETAILS
+IDS_ERRORPAGE_NET_BUTTON_HIDE_DETAILS
 IDS_EXTENSION_KEYWORD_COMMAND
 IDS_FEEDBACK_REPORT_PAGE_TITLE
 IDS_FEEDBACK_REPORT_URL_LABEL
 IDS_FEEDBACK_SEND_REPORT
 IDS_FEEDBACK_USER_EMAIL_LABEL
-IDS_FILE_BROWSER_OPEN_LABEL
 IDS_FIND_IN_PAGE_CLOSE_TOOLTIP
 IDS_FIND_IN_PAGE_COUNT
 IDS_FIND_IN_PAGE_NEXT_TOOLTIP
@@ -543,16 +581,22 @@
 IDS_FLAGS_DISABLE_WEBRTC_DESCRIPTION
 IDS_FLAGS_DISABLE_WEBRTC_NAME
 IDS_FLAGS_ENABLE
+IDS_FLAGS_ENABLE_APPS_SHOW_ON_FIRST_PAINT_DESCRIPTION
+IDS_FLAGS_ENABLE_APPS_SHOW_ON_FIRST_PAINT_NAME
 IDS_FLAGS_ENABLE_ASYNC_DNS_DESCRIPTION
 IDS_FLAGS_ENABLE_ASYNC_DNS_NAME
 IDS_FLAGS_ENABLE_CARRIER_SWITCHING
 IDS_FLAGS_ENABLE_CARRIER_SWITCHING_DESCRIPTION
+IDS_FLAGS_ENABLE_CONTEXTUAL_SEARCH
+IDS_FLAGS_ENABLE_CONTEXTUAL_SEARCH_DESCRIPTION
 IDS_FLAGS_ENABLE_DEFERRED_IMAGE_DECODING_DESCRIPTION
 IDS_FLAGS_ENABLE_DEFERRED_IMAGE_DECODING_NAME
 IDS_FLAGS_ENABLE_DEVTOOLS_EXPERIMENTS_DESCRIPTION
 IDS_FLAGS_ENABLE_DEVTOOLS_EXPERIMENTS_NAME
 IDS_FLAGS_ENABLE_DOWNLOAD_RESUMPTION_DESCRIPTION
 IDS_FLAGS_ENABLE_DOWNLOAD_RESUMPTION_NAME
+IDS_FLAGS_ENABLE_ENHANCED_BOOKMARKS_DESCRIPTION
+IDS_FLAGS_ENABLE_ENHANCED_BOOKMARKS_NAME
 IDS_FLAGS_ENABLE_EXPERIMENTAL_CANVAS_FEATURES_DESCRIPTION
 IDS_FLAGS_ENABLE_EXPERIMENTAL_CANVAS_FEATURES_NAME
 IDS_FLAGS_ENABLE_GESTURE_TAP_HIGHLIGHTING_DESCRIPTION
@@ -589,6 +633,8 @@
 IDS_FLAGS_ENABLE_TOUCH_DRAG_DROP_NAME
 IDS_FLAGS_ENABLE_TOUCH_EDITING_DESCRIPTION
 IDS_FLAGS_ENABLE_TOUCH_EDITING_NAME
+IDS_FLAGS_ENABLE_TRANSLATE_NEW_UX_DESCRIPTION
+IDS_FLAGS_ENABLE_TRANSLATE_NEW_UX_NAME
 IDS_FLAGS_EXPERIMENTAL_EXTENSION_APIS_DESCRIPTION
 IDS_FLAGS_EXPERIMENTAL_EXTENSION_APIS_NAME
 IDS_FLAGS_EXPERIMENTAL_WEB_PLATFORM_FEATURES_DESCRIPTION
@@ -633,6 +679,11 @@
 IDS_FLAGS_TABLE_TITLE
 IDS_FLAGS_THREADED_COMPOSITING_MODE_DESCRIPTION
 IDS_FLAGS_THREADED_COMPOSITING_MODE_NAME
+IDS_FLAGS_TOUCH_SCROLLING_MODE_ABSORB_TOUCHMOVE
+IDS_FLAGS_TOUCH_SCROLLING_MODE_DESCRIPTION
+IDS_FLAGS_TOUCH_SCROLLING_MODE_NAME
+IDS_FLAGS_TOUCH_SCROLLING_MODE_SYNC_TOUCHMOVE
+IDS_FLAGS_TOUCH_SCROLLING_MODE_TOUCHCANCEL
 IDS_FLAGS_UNSUPPORTED_TABLE_TITLE
 IDS_FLAGS_WALLET_SERVICE_USE_SANDBOX_DESCRIPTION
 IDS_FLAGS_WALLET_SERVICE_USE_SANDBOX_NAME
@@ -648,6 +699,11 @@
 IDS_GOOGLE_URL_TRACKER_INFOBAR_MESSAGE
 IDS_GOOGLE_URL_TRACKER_INFOBAR_SWITCH
 IDS_GROUP_BY_DOMAIN_LABEL
+IDS_GUEST_PROFILE_NAME
+IDS_HARMFUL_V3_EXPLANATION_PARAGRAPH
+IDS_HARMFUL_V3_HEADING
+IDS_HARMFUL_V3_PRIMARY_PARAGRAPH
+IDS_HARMFUL_V3_PROCEED_PARAGRAPH
 IDS_HISTORY_ACTION_MENU_DESCRIPTION
 IDS_HISTORY_BLOCKED_VISIT_TEXT
 IDS_HISTORY_BROWSERESULTS
@@ -680,6 +736,7 @@
 IDS_HISTORY_RANGE_PREVIOUS
 IDS_HISTORY_RANGE_TODAY
 IDS_HISTORY_RANGE_WEEK
+IDS_HISTORY_REMOVE_BOOKMARK
 IDS_HISTORY_REMOVE_PAGE
 IDS_HISTORY_REMOVE_SELECTED_ITEMS
 IDS_HISTORY_SEARCHRESULTSFOR
@@ -692,8 +749,13 @@
 IDS_HTTP_POST_WARNING_TITLE
 IDS_IMPORT_FROM_FIREFOX
 IDS_IMPORT_FROM_ICEWEASEL
+IDS_JAVASCRIPT_ALERT_DEFAULT_TITLE
+IDS_JAVASCRIPT_ALERT_TITLE
+IDS_JAVASCRIPT_MESSAGEBOX_DEFAULT_TITLE
+IDS_JAVASCRIPT_MESSAGEBOX_TITLE
 IDS_KEYWORD_SEARCH
 IDS_LEARN_MORE
+IDS_LEGACY_DEFAULT_PROFILE_NAME
 IDS_LIBADDRESSINPUT_ADDRESS_LINE_1_LABEL
 IDS_LIBADDRESSINPUT_AREA
 IDS_LIBADDRESSINPUT_COUNTRY_OR_REGION_LABEL
@@ -738,7 +800,21 @@
 IDS_LOGIN_DIALOG_PASSWORD_FIELD
 IDS_LOGIN_DIALOG_TITLE
 IDS_LOGIN_DIALOG_USERNAME_FIELD
+IDS_MALWARE_V3_ADVICE_HEADING
+IDS_MALWARE_V3_EXPLANATION_PARAGRAPH
+IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_ADVICE
+IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_HISTORY
+IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_SUBRESOURCE
+IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_SUBRESOURCE_ADVICE
+IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_SUBRESOURCE_HISTORY
+IDS_MALWARE_V3_HEADING
+IDS_MALWARE_V3_PRIMARY_PARAGRAPH
+IDS_MALWARE_V3_PROCEED_PARAGRAPH
+IDS_MALWARE_V3_PROCEED_PARAGRAPH_NOT_RECOMMEND
+IDS_MALWARE_V3_PROCEED_PARAGRAPH_SOCIAL
 IDS_MANAGED_USER_AVATAR_LABEL
+IDS_MIDI_SYSEX_INFOBAR_QUESTION
+IDS_MIDI_SYSEX_PERMISSION_FRAGMENT
 IDS_MOBILE_WELCOME_URL
 IDS_NACL_DEBUG_MASK_CHOICE_DEBUG_ALL
 IDS_NACL_DEBUG_MASK_CHOICE_EXCLUDE_UTILS_PNACL
@@ -747,6 +823,7 @@
 IDS_NET_EXPORT_NO_EMAIL_ACCOUNTS_ALERT_MESSAGE
 IDS_NET_EXPORT_NO_EMAIL_ACCOUNTS_ALERT_TITLE
 IDS_NEW_INCOGNITO_WINDOW_MAC
+IDS_NEW_NUMBERED_PROFILE_NAME
 IDS_NEW_TAB_CHROME_WELCOME_PAGE_TITLE
 IDS_NEW_TAB_MOST_VISITED
 IDS_NEW_TAB_OTHER_SESSIONS_COLLAPSE_SESSION
@@ -760,6 +837,8 @@
 IDS_NUMBERED_PROFILE_NAME
 IDS_OK
 IDS_OMNIBOX_EMPTY_HINT
+IDS_OMNIBOX_EMPTY_HINT_NO_DEFAULT_SEARCH_PROVIDER
+IDS_OMNIBOX_EMPTY_HINT_WITH_DEFAULT_SEARCH_PROVIDER
 IDS_ONE_CLICK_SIGNIN_CONFIRM_EMAIL_DIALOG_CANCEL_BUTTON
 IDS_OPEN_TABS_NOTYETSYNCED
 IDS_OPEN_TABS_PROMOCOMPUTER
@@ -789,8 +868,8 @@
 IDS_PAGE_INFO_SECURITY_TAB_NOT_ENCRYPTED_CONNECTION_TEXT
 IDS_PAGE_INFO_SECURITY_TAB_NO_REVOCATION_MECHANISM
 IDS_PAGE_INFO_SECURITY_TAB_RENEGOTIATION_MESSAGE
-IDS_PAGE_INFO_SECURITY_TAB_SECURE_IDENTITY
-IDS_PAGE_INFO_SECURITY_TAB_SECURE_IDENTITY_EV
+IDS_PAGE_INFO_SECURITY_TAB_SECURE_IDENTITY_EV_NO_CT
+IDS_PAGE_INFO_SECURITY_TAB_SECURE_IDENTITY_NO_CT
 IDS_PAGE_INFO_SECURITY_TAB_SSL_VERSION
 IDS_PAGE_INFO_SECURITY_TAB_UNABLE_TO_CHECK_REVOCATION
 IDS_PAGE_INFO_SECURITY_TAB_UNKNOWN_PARTY
@@ -805,9 +884,19 @@
 IDS_PAST_TIME_TODAY
 IDS_PAST_TIME_YESTERDAY
 IDS_PDF_INFOBAR_ALWAYS_USE_READER_BUTTON
+IDS_PERMISSION_ALLOW
+IDS_PERMISSION_DENY
+IDS_PHISHING_V3_EXPLANATION_PARAGRAPH
+IDS_PHISHING_V3_HEADING
+IDS_PHISHING_V3_PRIMARY_PARAGRAPH
+IDS_PHISHING_V3_PROCEED_PARAGRAPH
 IDS_PLATFORM_LABEL
 IDS_PLUGIN_CONFIRM_INSTALL_DIALOG_ACCEPT_BUTTON
 IDS_PLUGIN_CONFIRM_INSTALL_DIALOG_TITLE
+IDS_PLUGIN_NOT_SUPPORTED
+IDS_POLICY_ASSOCIATION_STATE_ACTIVE
+IDS_POLICY_ASSOCIATION_STATE_DEPROVISIONED
+IDS_POLICY_ASSOCIATION_STATE_UNMANAGED
 IDS_POLICY_DEFAULT_SEARCH_DISABLED
 IDS_POLICY_DEPRECATED
 IDS_POLICY_DM_STATUS_HTTP_STATUS_ERROR
@@ -827,12 +916,30 @@
 IDS_POLICY_DM_STATUS_SUCCESS
 IDS_POLICY_DM_STATUS_TEMPORARY_UNAVAILABLE
 IDS_POLICY_DM_STATUS_UNKNOWN_ERROR
+IDS_POLICY_FILTER_PLACEHOLDER
+IDS_POLICY_HEADER_LEVEL
+IDS_POLICY_HEADER_NAME
+IDS_POLICY_HEADER_SCOPE
+IDS_POLICY_HEADER_STATUS
+IDS_POLICY_HEADER_VALUE
+IDS_POLICY_HIDE_EXPANDED_VALUE
 IDS_POLICY_INVALID_BOOKMARK
 IDS_POLICY_INVALID_PROXY_MODE_ERROR
 IDS_POLICY_INVALID_SEARCH_URL_ERROR
+IDS_POLICY_LABEL_CLIENT_ID
+IDS_POLICY_LABEL_DOMAIN
+IDS_POLICY_LABEL_REFRESH_INTERVAL
+IDS_POLICY_LABEL_STATUS
+IDS_POLICY_LABEL_TIME_SINCE_LAST_REFRESH
+IDS_POLICY_LABEL_USERNAME
 IDS_POLICY_LEVEL_ERROR
+IDS_POLICY_LEVEL_MANDATORY
+IDS_POLICY_LEVEL_RECOMMENDED
 IDS_POLICY_LIST_ENTRY_ERROR
+IDS_POLICY_NEVER_FETCHED
 IDS_POLICY_NOT_SPECIFIED_ERROR
+IDS_POLICY_NO_POLICIES_SET
+IDS_POLICY_OK
 IDS_POLICY_OUT_OF_RANGE_ERROR
 IDS_POLICY_OVERRIDDEN
 IDS_POLICY_PROXY_BOTH_SPECIFIED_ERROR
@@ -842,7 +949,15 @@
 IDS_POLICY_PROXY_MODE_PAC_URL_ERROR
 IDS_POLICY_PROXY_MODE_SYSTEM_ERROR
 IDS_POLICY_PROXY_NEITHER_SPECIFIED_ERROR
+IDS_POLICY_RELOAD_POLICIES
 IDS_POLICY_SCHEMA_VALIDATION_ERROR
+IDS_POLICY_SCOPE_DEVICE
+IDS_POLICY_SCOPE_USER
+IDS_POLICY_SHOW_EXPANDED_VALUE
+IDS_POLICY_SHOW_UNSET
+IDS_POLICY_STATUS
+IDS_POLICY_STATUS_DEVICE
+IDS_POLICY_STATUS_USER
 IDS_POLICY_STORE_STATUS_BAD_STATE
 IDS_POLICY_STORE_STATUS_LOAD_ERROR
 IDS_POLICY_STORE_STATUS_OK
@@ -852,7 +967,10 @@
 IDS_POLICY_STORE_STATUS_UNKNOWN_ERROR
 IDS_POLICY_STORE_STATUS_VALIDATION_ERROR
 IDS_POLICY_SUBKEY_ERROR
+IDS_POLICY_TITLE
 IDS_POLICY_TYPE_ERROR
+IDS_POLICY_UNKNOWN
+IDS_POLICY_UNSET
 IDS_POLICY_VALIDATION_BAD_INITIAL_SIGNATURE
 IDS_POLICY_VALIDATION_BAD_KEY_VERIFICATION_SIGNATURE
 IDS_POLICY_VALIDATION_BAD_SIGNATURE
@@ -874,8 +992,17 @@
 IDS_PROFILES_GUEST_PROFILE_NAME
 IDS_PROFILES_LOCAL_PROFILE_STATE
 IDS_PROFILE_TOO_NEW_ERROR
+IDS_PUSH_MESSAGES_BUBBLE_FRAGMENT
+IDS_PUSH_MESSAGES_BUBBLE_TEXT
+IDS_PUSH_MESSAGES_PERMISSION_QUESTION
+IDS_RECENT_TABS_MENU
 IDS_SAD_TAB_MESSAGE
+IDS_SAD_TAB_RELOAD_LABEL
 IDS_SAD_TAB_TITLE
+IDS_SAFEBROWSING_OVERRIDABLE_SAFETY_BUTTON
+IDS_SAFEBROWSING_V3_CLOSE_DETAILS_BUTTON
+IDS_SAFEBROWSING_V3_OPEN_DETAILS_BUTTON
+IDS_SAFEBROWSING_V3_TITLE
 IDS_SAFE_BROWSING_MALWARE_BACK_BUTTON
 IDS_SAFE_BROWSING_MALWARE_BACK_HEADLINE
 IDS_SAFE_BROWSING_MALWARE_COLLAB_HEADLINE
@@ -884,6 +1011,7 @@
 IDS_SAFE_BROWSING_MALWARE_HEADLINE
 IDS_SAFE_BROWSING_MALWARE_LABEL
 IDS_SAFE_BROWSING_MALWARE_QUESTION_HEADLINE
+IDS_SAFE_BROWSING_MALWARE_REPORTING_AGREE
 IDS_SAFE_BROWSING_MALWARE_TITLE
 IDS_SAFE_BROWSING_MALWARE_V2_DESCRIPTION1
 IDS_SAFE_BROWSING_MALWARE_V2_DESCRIPTION1_SUBRESOURCE
@@ -921,8 +1049,10 @@
 IDS_SAFE_BROWSING_PHISHING_V2_HEADLINE
 IDS_SAFE_BROWSING_PHISHING_V2_REPORT_ERROR
 IDS_SAFE_BROWSING_PHISHING_V2_TITLE
+IDS_SAFE_BROWSING_PRIVACY_POLICY_PAGE
 IDS_SAFE_BROWSING_PRIVACY_POLICY_PAGE_V2
 IDS_SAFE_BROWSING_PRIVACY_POLICY_URL
+IDS_SAVE
 IDS_SECURE_CONNECTION_EV
 IDS_SESSION_CRASHED_VIEW_MESSAGE
 IDS_SESSION_CRASHED_VIEW_RESTORE_BUTTON
@@ -932,7 +1062,35 @@
 IDS_SIGNED_IN_WITH_SYNC_DISABLED
 IDS_SIGNED_IN_WITH_SYNC_SUPPRESSED
 IDS_SIGNIN_ERROR_BUBBLE_VIEW_TITLE
-IDS_SSL_BLOCKING_PAGE_TITLE
+IDS_SINGLE_PROFILE_DISPLAY_NAME
+IDS_SSL_CLOCK_ERROR
+IDS_SSL_CLOCK_ERROR_EXPLANATION
+IDS_SSL_NONOVERRIDABLE_HSTS
+IDS_SSL_NONOVERRIDABLE_INVALID
+IDS_SSL_NONOVERRIDABLE_MORE
+IDS_SSL_NONOVERRIDABLE_MORE_INVALID_SP3
+IDS_SSL_NONOVERRIDABLE_PINNED
+IDS_SSL_NONOVERRIDABLE_REVOKED
+IDS_SSL_OVERRIDABLE_PRIMARY_PARAGRAPH
+IDS_SSL_OVERRIDABLE_PROCEED_LINK_TEXT
+IDS_SSL_OVERRIDABLE_PROCEED_PARAGRAPH
+IDS_SSL_OVERRIDABLE_SAFETY_BUTTON
+IDS_SSL_OVERRIDABLE_TITLE
+IDS_SSL_RELOAD
+IDS_SSL_V2_CLOCK_AHEAD_HEADING
+IDS_SSL_V2_CLOCK_BEHIND_HEADING
+IDS_SSL_V2_CLOCK_PRIMARY_PARAGRAPH
+IDS_SSL_V2_CLOCK_TITLE
+IDS_SSL_V2_CLOCK_UPDATE_DATE_AND_TIME
+IDS_SSL_V2_CLOSE_DETAILS_BUTTON
+IDS_SSL_V2_HEADING
+IDS_SSL_V2_OPEN_DETAILS_BUTTON
+IDS_SSL_V2_PRIMARY_PARAGRAPH
+IDS_SSL_V2_TITLE
+IDS_STARS_PROMO_LABEL_IOS
+IDS_SUPERVISED_USER_AVATAR_LABEL
+IDS_SUPERVISED_USER_NEW_AVATAR_LABEL
+IDS_SYNC_ACCOUNT_DETAILS_NOT_ENTERED
 IDS_SYNC_ACCOUNT_SYNCING_TO_USER
 IDS_SYNC_ACCOUNT_SYNCING_TO_USER_WITH_MANAGE_LINK
 IDS_SYNC_AUTHENTICATING_LABEL
@@ -1131,11 +1289,14 @@
 IDS_TRANSLATE_INFOBAR_ACCEPT
 IDS_TRANSLATE_INFOBAR_AFTER_MESSAGE
 IDS_TRANSLATE_INFOBAR_AFTER_MESSAGE_AUTODETERMINED_SOURCE_LANGUAGE
+IDS_TRANSLATE_INFOBAR_ALWAYS_TRANSLATE
 IDS_TRANSLATE_INFOBAR_BEFORE_MESSAGE
+IDS_TRANSLATE_INFOBAR_BEFORE_MESSAGE_IOS
 IDS_TRANSLATE_INFOBAR_DENY
 IDS_TRANSLATE_INFOBAR_ERROR_CANT_CONNECT
 IDS_TRANSLATE_INFOBAR_ERROR_CANT_TRANSLATE
 IDS_TRANSLATE_INFOBAR_ERROR_SAME_LANGUAGE
+IDS_TRANSLATE_INFOBAR_NEVER_MESSAGE_IOS
 IDS_TRANSLATE_INFOBAR_OPTIONS_ABOUT
 IDS_TRANSLATE_INFOBAR_OPTIONS_ALWAYS
 IDS_TRANSLATE_INFOBAR_OPTIONS_NEVER_TRANSLATE_LANG
diff --git a/build/mac/tweak_info_plist.py b/build/mac/tweak_info_plist.py
index 4a6c475..2057bac 100755
--- a/build/mac/tweak_info_plist.py
+++ b/build/mac/tweak_info_plist.py
@@ -29,7 +29,7 @@
 import sys
 import tempfile
 
-TOP = os.path.join(env['SRCROOT'], '..')
+TOP = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
 
 
 def _GetOutput(args):
diff --git a/build/secondary/tools/grit/grit_rule.gni b/build/secondary/tools/grit/grit_rule.gni
index 572b11f..8726927 100644
--- a/build/secondary/tools/grit/grit_rule.gni
+++ b/build/secondary/tools/grit/grit_rule.gni
@@ -159,10 +159,10 @@
 if (enable_plugins) {
   grit_defines += [ "-D", "enable_plugins" ]
 }
-if (printing_mode != 0) {
+if (enable_basic_printing || enable_print_preview) {
   grit_defines += [ "-D", "enable_printing" ]
-  if (printing_mode == 1) {
-    grit_defines += [ "-D", "enable_full_printing" ]
+  if (enable_print_preview) {
+    grit_defines += [ "-D", "enable_print_preview" ]
   }
 }
 if (enable_themes) {
diff --git a/build/toolchain/OWNERS b/build/toolchain/OWNERS
new file mode 100644
index 0000000..9b79b9a
--- /dev/null
+++ b/build/toolchain/OWNERS
@@ -0,0 +1,2 @@
+set noparent
+brettw@chromium.org
diff --git a/build/toolchain/win/BUILD.gn b/build/toolchain/win/BUILD.gn
index 85fbf62..a9fab7c 100644
--- a/build/toolchain/win/BUILD.gn
+++ b/build/toolchain/win/BUILD.gn
@@ -13,7 +13,7 @@
 # Its arguments are the VS path and the compiler wrapper tool. It will write
 # "environment.x86" and "environment.x64" to the build directory and return a
 # list to us.
-gyp_win_tool_path = rebase_path("//build/win/win_tool.py",
+gyp_win_tool_path = rebase_path("//tools/gyp/pylib/gyp/win_tool.py",
                                 root_build_dir)
 exec_script("setup_toolchain.py",
             [ visual_studio_path, gyp_win_tool_path, windows_sdk_path ])
diff --git a/build/vs_toolchain.py b/build/vs_toolchain.py
index 4ef3a1e..bdedd6f 100644
--- a/build/vs_toolchain.py
+++ b/build/vs_toolchain.py
@@ -18,6 +18,9 @@
 json_data_file = os.path.join(script_dir, 'win_toolchain.json')
 
 
+import gyp
+
+
 def SetEnvironmentAndGetRuntimeDllDirs():
   """Sets up os.environ to use the depot_tools VS toolchain with gyp, and
   returns the location of the VS runtime DLLs so they can be copied into
@@ -44,6 +47,14 @@
 
     os.environ['GYP_MSVS_OVERRIDE_PATH'] = toolchain
     os.environ['GYP_MSVS_VERSION'] = version
+    # We need to make sure windows_sdk_path is set to the automated
+    # toolchain values in GYP_DEFINES, but don't want to override any
+    # otheroptions.express
+    # values there.
+    gyp_defines_dict = gyp.NameValueListToDict(gyp.ShlexEnv('GYP_DEFINES'))
+    gyp_defines_dict['windows_sdk_path'] = win8sdk
+    os.environ['GYP_DEFINES'] = ' '.join('%s=%s' % (k, pipes.quote(str(v)))
+        for k, v in gyp_defines_dict.iteritems())
     os.environ['WINDOWSSDKDIR'] = win8sdk
     os.environ['WDK_DIR'] = wdk
     # Include the VS runtime in the PATH in case it's not machine-installed.
diff --git a/build/whitespace_file.txt b/build/whitespace_file.txt
index 9fb90cc..526203f 100644
--- a/build/whitespace_file.txt
+++ b/build/whitespace_file.txt
@@ -143,3 +143,5 @@
 Cool whitespace change for git-cl land
 
 Oh god the bots are red! I'm blind! Mmmm, cronuts.
+
+If you stand on your head, you will get footprints in your hair.
diff --git a/build/win/win_tool.py b/build/win/win_tool.py
deleted file mode 100644
index 5281b97..0000000
--- a/build/win/win_tool.py
+++ /dev/null
@@ -1,315 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2012 Google Inc. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Utility functions for Windows builds.
-
-These functions are executed via gyp-win-tool when using the ninja generator.
-"""
-
-import os
-import re
-import shutil
-import subprocess
-import stat
-import string
-import sys
-
-BASE_DIR = os.path.dirname(os.path.abspath(__file__))
-
-# A regex matching an argument corresponding to the output filename passed to
-# link.exe.
-_LINK_EXE_OUT_ARG = re.compile('/OUT:(?P<out>.+)$', re.IGNORECASE)
-
-def main(args):
-  executor = WinTool()
-  exit_code = executor.Dispatch(args)
-  if exit_code is not None:
-    sys.exit(exit_code)
-
-
-class WinTool(object):
-  """This class performs all the Windows tooling steps. The methods can either
-  be executed directly, or dispatched from an argument list."""
-
-  def _UseSeparateMspdbsrv(self, env, args):
-    """Allows to use a unique instance of mspdbsrv.exe per linker instead of a
-    shared one."""
-    if len(args) < 1:
-      raise Exception("Not enough arguments")
-
-    if args[0] != 'link.exe':
-      return
-
-    # Use the output filename passed to the linker to generate an endpoint name
-    # for mspdbsrv.exe.
-    endpoint_name = None
-    for arg in args:
-      m = _LINK_EXE_OUT_ARG.match(arg)
-      if m:
-        endpoint_name = re.sub(r'\W+', '',
-            '%s_%d' % (m.group('out'), os.getpid()))
-        break
-
-    if endpoint_name is None:
-      return
-
-    # Adds the appropriate environment variable. This will be read by link.exe
-    # to know which instance of mspdbsrv.exe it should connect to (if it's
-    # not set then the default endpoint is used).
-    env['_MSPDBSRV_ENDPOINT_'] = endpoint_name
-
-  def Dispatch(self, args):
-    """Dispatches a string command to a method."""
-    if len(args) < 1:
-      raise Exception("Not enough arguments")
-
-    method = "Exec%s" % self._CommandifyName(args[0])
-    return getattr(self, method)(*args[1:])
-
-  def _CommandifyName(self, name_string):
-    """Transforms a tool name like recursive-mirror to RecursiveMirror."""
-    return name_string.title().replace('-', '')
-
-  def _GetEnv(self, arch):
-    """Gets the saved environment from a file for a given architecture."""
-    # The environment is saved as an "environment block" (see CreateProcess
-    # and msvs_emulation for details). We convert to a dict here.
-    # Drop last 2 NULs, one for list terminator, one for trailing vs. separator.
-    pairs = open(arch).read()[:-2].split('\0')
-    kvs = [item.split('=', 1) for item in pairs]
-    return dict(kvs)
-
-  def ExecStamp(self, path):
-    """Simple stamp command."""
-    open(path, 'w').close()
-
-  def ExecRecursiveMirror(self, source, dest):
-    """Emulation of rm -rf out && cp -af in out."""
-    if os.path.exists(dest):
-      if os.path.isdir(dest):
-        def _on_error(fn, path, excinfo):
-          # The operation failed, possibly because the file is set to
-          # read-only. If that's why, make it writable and try the op again.
-          if not os.access(path, os.W_OK):
-            os.chmod(path, stat.S_IWRITE)
-          fn(path)
-        shutil.rmtree(dest, onerror=_on_error)
-      else:
-        if not os.access(dest, os.W_OK):
-          # Attempt to make the file writable before deleting it.
-          os.chmod(dest, stat.S_IWRITE)
-        os.unlink(dest)
-
-    if os.path.isdir(source):
-      shutil.copytree(source, dest)
-    else:
-      shutil.copy2(source, dest)
-
-  def ExecLinkWrapper(self, arch, use_separate_mspdbsrv, *args):
-    """Filter diagnostic output from link that looks like:
-    '   Creating library ui.dll.lib and object ui.dll.exp'
-    This happens when there are exports from the dll or exe.
-    """
-    env = self._GetEnv(arch)
-    if use_separate_mspdbsrv == 'True':
-      self._UseSeparateMspdbsrv(env, args)
-    link = subprocess.Popen(args,
-                            shell=True,
-                            env=env,
-                            stdout=subprocess.PIPE,
-                            stderr=subprocess.STDOUT)
-    out, _ = link.communicate()
-    for line in out.splitlines():
-      if not line.startswith('   Creating library '):
-        print line
-    return link.returncode
-
-  def ExecLinkWithManifests(self, arch, embed_manifest, out, ldcmd, resname,
-                            mt, rc, intermediate_manifest, *manifests):
-    """A wrapper for handling creating a manifest resource and then executing
-    a link command."""
-    # The 'normal' way to do manifests is to have link generate a manifest
-    # based on gathering dependencies from the object files, then merge that
-    # manifest with other manifests supplied as sources, convert the merged
-    # manifest to a resource, and then *relink*, including the compiled
-    # version of the manifest resource. This breaks incremental linking, and
-    # is generally overly complicated. Instead, we merge all the manifests
-    # provided (along with one that includes what would normally be in the
-    # linker-generated one, see msvs_emulation.py), and include that into the
-    # first and only link. We still tell link to generate a manifest, but we
-    # only use that to assert that our simpler process did not miss anything.
-    variables = {
-      'python': sys.executable,
-      'arch': arch,
-      'out': out,
-      'ldcmd': ldcmd,
-      'resname': resname,
-      'mt': mt,
-      'rc': rc,
-      'intermediate_manifest': intermediate_manifest,
-      'manifests': ' '.join(manifests),
-    }
-    add_to_ld = ''
-    if manifests:
-      subprocess.check_call(
-          '%(python)s gyp-win-tool manifest-wrapper %(arch)s %(mt)s -nologo '
-          '-manifest %(manifests)s -out:%(out)s.manifest' % variables)
-      if embed_manifest == 'True':
-        subprocess.check_call(
-            '%(python)s gyp-win-tool manifest-to-rc %(arch)s %(out)s.manifest'
-          ' %(out)s.manifest.rc %(resname)s' % variables)
-        subprocess.check_call(
-            '%(python)s gyp-win-tool rc-wrapper %(arch)s %(rc)s '
-            '%(out)s.manifest.rc' % variables)
-        add_to_ld = ' %(out)s.manifest.res' % variables
-    subprocess.check_call(ldcmd + add_to_ld)
-
-    # Run mt.exe on the theoretically complete manifest we generated, merging
-    # it with the one the linker generated to confirm that the linker
-    # generated one does not add anything. This is strictly unnecessary for
-    # correctness, it's only to verify that e.g. /MANIFESTDEPENDENCY was not
-    # used in a #pragma comment.
-    if manifests:
-      # Merge the intermediate one with ours to .assert.manifest, then check
-      # that .assert.manifest is identical to ours.
-      subprocess.check_call(
-          '%(python)s gyp-win-tool manifest-wrapper %(arch)s %(mt)s -nologo '
-          '-manifest %(out)s.manifest %(intermediate_manifest)s '
-          '-out:%(out)s.assert.manifest' % variables)
-      assert_manifest = '%(out)s.assert.manifest' % variables
-      our_manifest = '%(out)s.manifest' % variables
-      # Load and normalize the manifests. mt.exe sometimes removes whitespace,
-      # and sometimes doesn't unfortunately.
-      with open(our_manifest, 'rb') as our_f:
-        with open(assert_manifest, 'rb') as assert_f:
-          our_data = our_f.read().translate(None, string.whitespace)
-          assert_data = assert_f.read().translate(None, string.whitespace)
-      if our_data != assert_data:
-        os.unlink(out)
-        def dump(filename):
-          sys.stderr.write('%s\n-----\n' % filename)
-          with open(filename, 'rb') as f:
-            sys.stderr.write(f.read() + '\n-----\n')
-        dump(intermediate_manifest)
-        dump(our_manifest)
-        dump(assert_manifest)
-        sys.stderr.write(
-            'Linker generated manifest "%s" added to final manifest "%s" '
-            '(result in "%s"). '
-            'Were /MANIFEST switches used in #pragma statements? ' % (
-              intermediate_manifest, our_manifest, assert_manifest))
-        return 1
-
-  def ExecManifestWrapper(self, arch, *args):
-    """Run manifest tool with environment set. Strip out undesirable warning
-    (some XML blocks are recognized by the OS loader, but not the manifest
-    tool)."""
-    env = self._GetEnv(arch)
-    popen = subprocess.Popen(args, shell=True, env=env,
-                             stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
-    out, _ = popen.communicate()
-    for line in out.splitlines():
-      if line and 'manifest authoring warning 81010002' not in line:
-        print line
-    return popen.returncode
-
-  def ExecManifestToRc(self, arch, *args):
-    """Creates a resource file pointing a SxS assembly manifest.
-    |args| is tuple containing path to resource file, path to manifest file
-    and resource name which can be "1" (for executables) or "2" (for DLLs)."""
-    manifest_path, resource_path, resource_name = args
-    with open(resource_path, 'wb') as output:
-      output.write('#include <windows.h>\n%s RT_MANIFEST "%s"' % (
-        resource_name,
-        os.path.abspath(manifest_path).replace('\\', '/')))
-
-  def ExecMidlWrapper(self, arch, outdir, tlb, h, dlldata, iid, proxy, idl,
-                      *flags):
-    """Filter noisy filenames output from MIDL compile step that isn't
-    quietable via command line flags.
-    """
-    args = ['midl', '/nologo'] + list(flags) + [
-        '/out', outdir,
-        '/tlb', tlb,
-        '/h', h,
-        '/dlldata', dlldata,
-        '/iid', iid,
-        '/proxy', proxy,
-        idl]
-    env = self._GetEnv(arch)
-    popen = subprocess.Popen(args, shell=True, env=env,
-                             stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
-    out, _ = popen.communicate()
-    # Filter junk out of stdout, and write filtered versions. Output we want
-    # to filter is pairs of lines that look like this:
-    # Processing C:\Program Files (x86)\Microsoft SDKs\...\include\objidl.idl
-    # objidl.idl
-    lines = out.splitlines()
-    prefixes = ('Processing ', '64 bit Processing ')
-    processing = set(os.path.basename(x)
-                     for x in lines if x.startswith(prefixes))
-    for line in lines:
-      if not line.startswith(prefixes) and line not in processing:
-        print line
-    return popen.returncode
-
-  def ExecAsmWrapper(self, arch, *args):
-    """Filter logo banner from invocations of asm.exe."""
-    env = self._GetEnv(arch)
-    # MSVS doesn't assemble x64 asm files.
-    if arch == 'environment.x64':
-      return 0
-    popen = subprocess.Popen(args, shell=True, env=env,
-                             stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
-    out, _ = popen.communicate()
-    for line in out.splitlines():
-      if (not line.startswith('Copyright (C) Microsoft Corporation') and
-          not line.startswith('Microsoft (R) Macro Assembler') and
-          not line.startswith(' Assembling: ') and
-          line):
-        print line
-    return popen.returncode
-
-  def ExecRcWrapper(self, arch, *args):
-    """Filter logo banner from invocations of rc.exe. Older versions of RC
-    don't support the /nologo flag."""
-    env = self._GetEnv(arch)
-    popen = subprocess.Popen(args, shell=True, env=env,
-                             stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
-    out, _ = popen.communicate()
-    for line in out.splitlines():
-      if (not line.startswith('Microsoft (R) Windows (R) Resource Compiler') and
-          not line.startswith('Copyright (C) Microsoft Corporation') and
-          line):
-        print line
-    return popen.returncode
-
-  def ExecActionWrapper(self, arch, rspfile, *dir):
-    """Runs an action command line from a response file using the environment
-    for |arch|. If |dir| is supplied, use that as the working directory."""
-    env = self._GetEnv(arch)
-    # TODO(scottmg): This is a temporary hack to get some specific variables
-    # through to actions that are set after gyp-time. http://crbug.com/333738.
-    for k, v in os.environ.iteritems():
-      if k not in env:
-        env[k] = v
-    args = open(rspfile).read()
-    dir = dir[0] if dir else None
-    return subprocess.call(args, shell=True, env=env, cwd=dir)
-
-  def ExecClCompile(self, project_dir, selected_files):
-    """Executed by msvs-ninja projects when the 'ClCompile' target is used to
-    build selected C/C++ files."""
-    project_dir = os.path.relpath(project_dir, BASE_DIR)
-    selected_files = selected_files.split(';')
-    ninja_targets = [os.path.join(project_dir, filename) + '^^'
-        for filename in selected_files]
-    cmd = ['ninja.exe']
-    cmd.extend(ninja_targets)
-    return subprocess.call(cmd, shell=True, cwd=BASE_DIR)
-
-if __name__ == '__main__':
-  sys.exit(main(sys.argv[1:]))
diff --git a/cc/BUILD.gn b/cc/BUILD.gn
index 292d476..f753895 100644
--- a/cc/BUILD.gn
+++ b/cc/BUILD.gn
@@ -286,6 +286,7 @@
     "quads/io_surface_draw_quad.cc",
     "quads/io_surface_draw_quad.h",
     "quads/largest_draw_quad.h",
+    "quads/largest_draw_quad.cc",
     "quads/list_container.cc",
     "quads/list_container.h",
     "quads/picture_draw_quad.cc",
@@ -692,6 +693,7 @@
     "layers/scrollbar_layer_unittest.cc",
     "layers/solid_color_layer_impl_unittest.cc",
     "layers/solid_color_scrollbar_layer_impl_unittest.cc",
+    "layers/surface_layer_unittest.cc",
     "layers/surface_layer_impl_unittest.cc",
     "layers/texture_layer_unittest.cc",
     "layers/texture_layer_impl_unittest.cc",
diff --git a/cc/base/switches.cc b/cc/base/switches.cc
index 5bfa6ae..27e63b5 100644
--- a/cc/base/switches.cc
+++ b/cc/base/switches.cc
@@ -72,7 +72,9 @@
 const char kShowCompositedLayerBorders[] = "show-composited-layer-borders";
 const char kUIShowCompositedLayerBorders[] = "ui-show-layer-borders";
 
-// Draws a FPS indicator
+// Draws a heads-up-display showing Frames Per Second as well as GPU memory
+// usage. If you also use --vmodule="head*=1" then FPS will also be output to
+// the console log.
 const char kShowFPSCounter[] = "show-fps-counter";
 const char kUIShowFPSCounter[] = "ui-show-fps-counter";
 
diff --git a/cc/cc.gyp b/cc/cc.gyp
index 3c457f9..308a61d 100644
--- a/cc/cc.gyp
+++ b/cc/cc.gyp
@@ -321,6 +321,7 @@
         'quads/io_surface_draw_quad.cc',
         'quads/io_surface_draw_quad.h',
         'quads/largest_draw_quad.h',
+        'quads/largest_draw_quad.cc',
         'quads/list_container.cc',
         'quads/list_container.h',
         'quads/picture_draw_quad.cc',
diff --git a/cc/cc_tests.gyp b/cc/cc_tests.gyp
index 1300d32..75267ef 100644
--- a/cc/cc_tests.gyp
+++ b/cc/cc_tests.gyp
@@ -50,6 +50,7 @@
       'layers/scrollbar_layer_unittest.cc',
       'layers/solid_color_layer_impl_unittest.cc',
       'layers/solid_color_scrollbar_layer_impl_unittest.cc',
+      'layers/surface_layer_unittest.cc',
       'layers/surface_layer_impl_unittest.cc',
       'layers/texture_layer_unittest.cc',
       'layers/texture_layer_impl_unittest.cc',
diff --git a/cc/debug/paint_time_counter.cc b/cc/debug/paint_time_counter.cc
index 7d54154..41ef1a3 100644
--- a/cc/debug/paint_time_counter.cc
+++ b/cc/debug/paint_time_counter.cc
@@ -11,18 +11,11 @@
   return make_scoped_ptr(new PaintTimeCounter());
 }
 
-PaintTimeCounter::PaintTimeCounter()
-  : can_save_paint_time_delta_(false) {
+PaintTimeCounter::PaintTimeCounter() {
 }
 
-void PaintTimeCounter::SavePaintTime(const base::TimeDelta& total_paint_time) {
-  if (can_save_paint_time_delta_) {
-    base::TimeDelta paint_time = total_paint_time - last_total_paint_time_;
-    ring_buffer_.SaveToBuffer(paint_time);
-  }
-
-  last_total_paint_time_ = total_paint_time;
-  can_save_paint_time_delta_ = true;
+void PaintTimeCounter::SavePaintTime(const base::TimeDelta& paint_time) {
+  ring_buffer_.SaveToBuffer(paint_time);
 }
 
 void PaintTimeCounter::GetMinAndMaxPaintTime(base::TimeDelta* min,
@@ -45,7 +38,6 @@
 
 void PaintTimeCounter::ClearHistory() {
   ring_buffer_.Clear();
-  can_save_paint_time_delta_ = false;
 }
 
 }  // namespace cc
diff --git a/cc/debug/paint_time_counter.h b/cc/debug/paint_time_counter.h
index 8d109d0..c93980b 100644
--- a/cc/debug/paint_time_counter.h
+++ b/cc/debug/paint_time_counter.h
@@ -36,8 +36,6 @@
   PaintTimeCounter();
 
   RingBufferType ring_buffer_;
-  base::TimeDelta last_total_paint_time_;
-  bool can_save_paint_time_delta_;
 
   DISALLOW_COPY_AND_ASSIGN(PaintTimeCounter);
 };
diff --git a/cc/debug/rasterize_and_record_benchmark_impl.cc b/cc/debug/rasterize_and_record_benchmark_impl.cc
index b984655..2ffac1b 100644
--- a/cc/debug/rasterize_and_record_benchmark_impl.cc
+++ b/cc/debug/rasterize_and_record_benchmark_impl.cc
@@ -56,10 +56,10 @@
         SkCanvas canvas(bitmap);
         RasterSource::SolidColorAnalysis analysis;
 
-        raster_source_->PerformSolidColorAnalysis(
-            content_rect_, contents_scale_, &analysis, nullptr);
-        raster_source_->PlaybackToCanvas(
-            &canvas, content_rect_, contents_scale_, nullptr);
+        raster_source_->PerformSolidColorAnalysis(content_rect_,
+                                                  contents_scale_, &analysis);
+        raster_source_->PlaybackToCanvas(&canvas, content_rect_,
+                                         contents_scale_);
 
         is_solid_color_ = analysis.is_solid_color;
 
diff --git a/cc/debug/rendering_stats.cc b/cc/debug/rendering_stats.cc
index d0668da..558c882 100644
--- a/cc/debug/rendering_stats.cc
+++ b/cc/debug/rendering_stats.cc
@@ -28,6 +28,10 @@
   values.insert(values.end(), other.values.begin(), other.values.end());
 }
 
+base::TimeDelta RenderingStats::TimeDeltaList::GetLastTimeDelta() const {
+  return values.empty() ? base::TimeDelta() : values.back();
+}
+
 RenderingStats::MainThreadRenderingStats::MainThreadRenderingStats()
     : painted_pixel_count(0), recorded_pixel_count(0) {
 }
@@ -56,7 +60,6 @@
 
 RenderingStats::ImplThreadRenderingStats::ImplThreadRenderingStats()
     : frame_count(0),
-      rasterized_pixel_count(0),
       visible_content_area(0),
       approximated_visible_content_area(0) {
 }
@@ -69,8 +72,6 @@
   scoped_refptr<base::debug::TracedValue> record_data =
       new base::debug::TracedValue();
   record_data->SetInteger("frame_count", frame_count);
-  record_data->SetDouble("rasterize_time", rasterize_time.InSecondsF());
-  record_data->SetInteger("rasterized_pixel_count", rasterized_pixel_count);
   record_data->SetInteger("visible_content_area", visible_content_area);
   record_data->SetInteger("approximated_visible_content_area",
                           approximated_visible_content_area);
@@ -104,9 +105,6 @@
 void RenderingStats::ImplThreadRenderingStats::Add(
     const ImplThreadRenderingStats& other) {
   frame_count += other.frame_count;
-  rasterize_time += other.rasterize_time;
-  analysis_time += other.analysis_time;
-  rasterized_pixel_count += other.rasterized_pixel_count;
   visible_content_area += other.visible_content_area;
   approximated_visible_content_area += other.approximated_visible_content_area;
 
diff --git a/cc/debug/rendering_stats.h b/cc/debug/rendering_stats.h
index 52560e2..7b1898a 100644
--- a/cc/debug/rendering_stats.h
+++ b/cc/debug/rendering_stats.h
@@ -28,6 +28,8 @@
 
     void Add(const TimeDeltaList& other);
 
+    base::TimeDelta GetLastTimeDelta() const;
+
    private:
     std::list<base::TimeDelta> values;
   };
@@ -53,9 +55,6 @@
     // rendering_stats.cc.
 
     int64 frame_count;
-    base::TimeDelta rasterize_time;
-    base::TimeDelta analysis_time;
-    int64 rasterized_pixel_count;
     int64 visible_content_area;
     int64 approximated_visible_content_area;
 
diff --git a/cc/debug/rendering_stats_instrumentation.cc b/cc/debug/rendering_stats_instrumentation.cc
index fb7ec52..f5f2e07 100644
--- a/cc/debug/rendering_stats_instrumentation.cc
+++ b/cc/debug/rendering_stats_instrumentation.cc
@@ -99,25 +99,6 @@
   main_thread_rendering_stats_.recorded_pixel_count += pixels;
 }
 
-void RenderingStatsInstrumentation::AddRaster(base::TimeDelta duration,
-                                              int64 pixels) {
-  if (!record_rendering_stats_)
-    return;
-
-  base::AutoLock scoped_lock(lock_);
-  impl_thread_rendering_stats_.rasterize_time += duration;
-  impl_thread_rendering_stats_.rasterized_pixel_count += pixels;
-}
-
-void RenderingStatsInstrumentation::AddAnalysis(base::TimeDelta duration,
-                                                int64 pixels) {
-  if (!record_rendering_stats_)
-    return;
-
-  base::AutoLock scoped_lock(lock_);
-  impl_thread_rendering_stats_.analysis_time += duration;
-}
-
 void RenderingStatsInstrumentation::AddVisibleContentArea(int64 area) {
   if (!record_rendering_stats_)
     return;
diff --git a/cc/debug/rendering_stats_instrumentation.h b/cc/debug/rendering_stats_instrumentation.h
index fd7f5c9..734583a 100644
--- a/cc/debug/rendering_stats_instrumentation.h
+++ b/cc/debug/rendering_stats_instrumentation.h
@@ -50,8 +50,6 @@
   void IncrementFrameCount(int64 count);
   void AddPaint(base::TimeDelta duration, int64 pixels);
   void AddRecord(base::TimeDelta duration, int64 pixels);
-  void AddRaster(base::TimeDelta duration, int64 pixels);
-  void AddAnalysis(base::TimeDelta duration, int64 pixels);
   void AddVisibleContentArea(int64 area);
   void AddApproximatedVisibleContentArea(int64 area);
   void AddDrawDuration(base::TimeDelta draw_duration,
diff --git a/cc/layers/delegated_renderer_layer_impl_unittest.cc b/cc/layers/delegated_renderer_layer_impl_unittest.cc
index 3fb1c48..5a797f9 100644
--- a/cc/layers/delegated_renderer_layer_impl_unittest.cc
+++ b/cc/layers/delegated_renderer_layer_impl_unittest.cc
@@ -13,7 +13,6 @@
 #include "cc/test/fake_layer_tree_host_impl_client.h"
 #include "cc/test/fake_output_surface.h"
 #include "cc/test/fake_proxy.h"
-#include "cc/test/fake_rendering_stats_instrumentation.h"
 #include "cc/test/geometry_test_utils.h"
 #include "cc/test/layer_test_common.h"
 #include "cc/test/render_pass_test_common.h"
diff --git a/cc/layers/heads_up_display_layer_impl.cc b/cc/layers/heads_up_display_layer_impl.cc
index 0692139..bb68571 100644
--- a/cc/layers/heads_up_display_layer_impl.cc
+++ b/cc/layers/heads_up_display_layer_impl.cc
@@ -385,6 +385,8 @@
   const std::string min_max_text =
       base::StringPrintf("%.0f-%.0f", fps_graph_.min, fps_graph_.max);
 
+  VLOG(1) << value_text;
+
   paint.setColor(DebugColors::FPSDisplayTextAndGraphColor());
   DrawText(canvas,
            &paint,
@@ -565,13 +567,8 @@
       "%.1f-%.1f", paint_time_graph_.min, paint_time_graph_.max);
 
   paint.setColor(DebugColors::PaintTimeDisplayTextAndGraphColor());
-  DrawText(canvas,
-           &paint,
-           "Page paint time (ms)",
-           SkPaint::kLeft_Align,
-           kFontHeight,
-           text_bounds.left(),
-           text_bounds.bottom());
+  DrawText(canvas, &paint, "Compositor frame time (ms)", SkPaint::kLeft_Align,
+           kFontHeight, text_bounds.left(), text_bounds.bottom());
   DrawText(canvas,
            &paint,
            value_text,
diff --git a/cc/layers/layer_impl.cc b/cc/layers/layer_impl.cc
index 2b11933..f09761b 100644
--- a/cc/layers/layer_impl.cc
+++ b/cc/layers/layer_impl.cc
@@ -397,23 +397,22 @@
 }
 
 void LayerImpl::ApplySentScrollDeltasFromAbortedCommit() {
+  if (sent_scroll_delta_.IsZero())
+    return;
+
   // Pending tree never has sent scroll deltas
   DCHECK(layer_tree_impl()->IsActiveTree());
 
+  // The combination of pending tree and aborted commits with impl scrolls
+  // shouldn't happen; we don't know how to update its deltas correctly.
+  DCHECK(!layer_tree_impl()->FindPendingTreeLayerById(id()));
+
   // Apply sent scroll deltas to scroll position / scroll delta as if the
   // main thread had applied them and then committed those values.
-  //
-  // This function should not change the total scroll offset; it just shifts
-  // some of the scroll delta to the scroll offset.  Therefore, adjust these
-  // variables directly rather than calling the scroll offset delegate to
-  // avoid sending it multiple spurious calls.
-  //
-  // Because of the way scroll delta is calculated with a delegate, this will
-  // leave the total scroll offset unchanged on this layer regardless of
-  // whether a delegate is being used.
-  scroll_offset_ += gfx::ScrollOffset(sent_scroll_delta_);
-  scroll_delta_ -= sent_scroll_delta_;
-  sent_scroll_delta_ = gfx::Vector2dF();
+  SetScrollOffsetAndDelta(
+      scroll_offset_ + gfx::ScrollOffset(sent_scroll_delta_),
+      ScrollDelta() - sent_scroll_delta_);
+  SetSentScrollDelta(gfx::Vector2dF());
 }
 
 void LayerImpl::ApplyScrollDeltasSinceBeginMainFrame() {
@@ -550,10 +549,14 @@
                                                : Layer::INVALID_ID);
   layer->set_user_scrollable_horizontal(user_scrollable_horizontal_);
   layer->set_user_scrollable_vertical(user_scrollable_vertical_);
-  layer->SetScrollOffsetAndDelta(
-      scroll_offset_,
-      layer->ScrollDelta() - layer->sent_scroll_delta());
+
+  // Save the difference but clear the sent delta so that we don't subtract
+  // it again in SetScrollOffsetAndDelta's pending twin mirroring logic.
+  gfx::Vector2dF remaining_delta =
+      layer->ScrollDelta() - layer->sent_scroll_delta();
   layer->SetSentScrollDelta(gfx::Vector2dF());
+  layer->SetScrollOffsetAndDelta(scroll_offset_, remaining_delta);
+
   layer->Set3dSortingContextId(sorting_context_id_);
   layer->SetNumDescendantsThatDrawContent(num_descendants_that_draw_content_);
 
diff --git a/cc/layers/layer_impl_unittest.cc b/cc/layers/layer_impl_unittest.cc
index 99673f6..c61f2c2 100644
--- a/cc/layers/layer_impl_unittest.cc
+++ b/cc/layers/layer_impl_unittest.cc
@@ -434,6 +434,8 @@
     return host_impl_.active_tree()->root_layer()->children()[0];
   }
 
+  LayerTreeHostImpl& host_impl() { return host_impl_; }
+
   LayerTreeImpl* tree() { return host_impl_.active_tree(); }
 
   LayerTreeSettings settings() {
@@ -497,7 +499,13 @@
 
 class ScrollDelegateIgnore : public LayerImpl::ScrollOffsetDelegate {
  public:
-  void SetTotalScrollOffset(const gfx::ScrollOffset& new_value) override {}
+  void SetTotalScrollOffset(const gfx::ScrollOffset& new_value) override {
+    last_attempted_set_offset_ = new_value;
+  }
+  gfx::ScrollOffset last_attempted_set_offset() const {
+    return last_attempted_set_offset_;
+  }
+
   gfx::ScrollOffset GetTotalScrollOffset() override {
     return gfx::ScrollOffset(fixed_offset_);
   }
@@ -509,6 +517,7 @@
   }
 
  private:
+  gfx::ScrollOffset last_attempted_set_offset_;
   gfx::Vector2dF fixed_offset_;
 };
 
@@ -632,6 +641,8 @@
 
   layer()->ApplySentScrollDeltasFromAbortedCommit();
 
+  EXPECT_VECTOR_EQ(fixed_offset, delegate.last_attempted_set_offset());
+
   EXPECT_VECTOR_EQ(fixed_offset, layer()->TotalScrollOffset());
   EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, sent_scroll_delta),
                    layer()->scroll_offset());
@@ -675,6 +686,31 @@
   EXPECT_VECTOR_EQ(gfx::Vector2dF(30.5f, 5), layer()->TotalScrollOffset());
 }
 
+TEST_F(LayerImplScrollTest, PushPropertiesToMirrorsTotalScrollOffset) {
+  gfx::ScrollOffset scroll_offset(10, 5);
+  gfx::Vector2dF scroll_delta(12, 18);
+
+  host_impl().CreatePendingTree();
+
+  layer()->SetScrollOffset(scroll_offset);
+  gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta);
+
+  EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), unscrolled);
+  EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->TotalScrollOffset());
+
+  layer()->SetSentScrollDelta(scroll_delta);
+
+  scoped_ptr<LayerImpl> pending_layer =
+      LayerImpl::Create(host_impl().sync_tree(), layer()->id());
+  pending_layer->SetScrollOffset(layer()->TotalScrollOffset());
+
+  pending_layer->PushPropertiesTo(layer());
+
+  EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->TotalScrollOffset());
+  EXPECT_VECTOR_EQ(layer()->TotalScrollOffset(),
+                   pending_layer->TotalScrollOffset());
+}
+
 TEST_F(LayerImplScrollTest, SetNewScrollbarParameters) {
   gfx::ScrollOffset scroll_offset(10, 5);
   layer()->SetScrollOffset(scroll_offset);
diff --git a/cc/layers/picture_layer.cc b/cc/layers/picture_layer.cc
index f608ba7..c56ff8b 100644
--- a/cc/layers/picture_layer.cc
+++ b/cc/layers/picture_layer.cc
@@ -35,16 +35,22 @@
   Layer::PushPropertiesTo(base_layer);
   PictureLayerImpl* layer_impl = static_cast<PictureLayerImpl*>(base_layer);
 
-  if (layer_impl->bounds().IsEmpty()) {
-    // Update may not get called for an empty layer, so resize here instead.
-    // Using layer_impl because either bounds() or paint_properties().bounds
-    // may disagree and either one could have been pushed to layer_impl.
+  int source_frame_number = layer_tree_host()->source_frame_number();
+  gfx::Size impl_bounds = layer_impl->bounds();
+  gfx::Size pile_bounds = pile_.tiling_size();
+
+  // If update called, then pile size must match bounds pushed to impl layer.
+  DCHECK_IMPLIES(update_source_frame_number_ == source_frame_number,
+                 impl_bounds == pile_bounds)
+      << " bounds " << impl_bounds.ToString() << " pile "
+      << pile_bounds.ToString();
+
+  if (update_source_frame_number_ != source_frame_number &&
+      pile_bounds != impl_bounds) {
+    // Update may not get called for the layer (if it's not in the viewport
+    // for example, even though it has resized making the pile no longer
+    // valid. In this case just destroy the pile.
     pile_.SetEmptyBounds();
-  } else {
-    // If update called, then pile size must match bounds pushed to impl layer.
-    DCHECK_IMPLIES(
-        update_source_frame_number_ == layer_tree_host()->source_frame_number(),
-        layer_impl->bounds().ToString() == pile_.tiling_size().ToString());
   }
 
   // Unlike other properties, invalidation must always be set on layer_impl.
diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc
index c3c7ca0..f9678cc 100644
--- a/cc/layers/picture_layer_impl.cc
+++ b/cc/layers/picture_layer_impl.cc
@@ -173,10 +173,11 @@
                                    AppendQuadsData* append_quads_data) {
   DCHECK(!needs_post_commit_initialization_);
   // The bounds and the pile size may differ if the pile wasn't updated (ie.
-  // PictureLayer::Update didn't happen). But that should never be the case if
-  // the layer is part of the visible frame, which is why we're appending quads
-  // in the first place
-  DCHECK_EQ(bounds().ToString(), pile_->tiling_size().ToString());
+  // PictureLayer::Update didn't happen). In that case the pile will be empty.
+  DCHECK_IMPLIES(!pile_->tiling_size().IsEmpty(),
+                 bounds() == pile_->tiling_size())
+      << " bounds " << bounds().ToString() << " pile "
+      << pile_->tiling_size().ToString();
 
   SharedQuadState* shared_quad_state =
       render_pass->CreateAndAppendSharedQuadState();
@@ -468,7 +469,6 @@
 
 void PictureLayerImpl::UpdateTiles(const Occlusion& occlusion_in_content_space,
                                    bool resourceless_software_draw) {
-  TRACE_EVENT0("cc", "PictureLayerImpl::UpdateTiles");
   DCHECK_EQ(1.f, contents_scale_x());
   DCHECK_EQ(1.f, contents_scale_y());
 
@@ -516,9 +516,6 @@
 void PictureLayerImpl::UpdateTilePriorities(
     const Occlusion& occlusion_in_content_space) {
   DCHECK(!pile_->is_solid_color() || !tilings_->num_tilings());
-
-  TRACE_EVENT0("cc", "PictureLayerImpl::UpdateTilePriorities");
-
   double current_frame_time_in_seconds =
       (layer_tree_impl()->CurrentBeginFrameArgs().frame_time -
        base::TimeTicks()).InSecondsF();
@@ -790,7 +787,6 @@
 }
 
 void PictureLayerImpl::SyncFromActiveLayer(const PictureLayerImpl* other) {
-  TRACE_EVENT0("cc", "SyncFromActiveLayer");
   DCHECK(!other->needs_post_commit_initialization_);
   DCHECK(other->tilings_);
 
@@ -1087,9 +1083,6 @@
         raster_contents_scale_ / raster_device_scale_ / raster_source_scale_;
   }
 
-  raster_contents_scale_ =
-      std::max(raster_contents_scale_, MinimumContentsScale());
-
   // If we're not re-rasterizing during animation, rasterize at the maximum
   // scale that will occur during the animation, if the maximum scale is
   // known. However we want to avoid excessive memory use. If the scale is
@@ -1121,6 +1114,9 @@
       raster_contents_scale_ = 1.f * ideal_page_scale_ * ideal_device_scale_;
   }
 
+  raster_contents_scale_ =
+      std::max(raster_contents_scale_, MinimumContentsScale());
+
   // If this layer would create zero or one tiles at this content scale,
   // don't create a low res tiling.
   gfx::Size raster_bounds = gfx::ToCeiledSize(
@@ -1138,6 +1134,8 @@
   low_res_raster_contents_scale_ = std::max(
       raster_contents_scale_ * low_res_factor,
       MinimumContentsScale());
+  DCHECK_LE(low_res_raster_contents_scale_, raster_contents_scale_);
+  DCHECK_GE(low_res_raster_contents_scale_, MinimumContentsScale());
 }
 
 void PictureLayerImpl::CleanUpTilingsOnActiveLayer(
@@ -1406,8 +1404,6 @@
 }
 
 bool PictureLayerImpl::AllTilesRequiredForActivationAreReadyToDraw() const {
-  TRACE_EVENT0("cc",
-               "PictureLayerImpl::AllTilesRequiredForActivationAreReadyToDraw");
   if (!layer_tree_impl()->IsPendingTree())
     return true;
 
diff --git a/cc/layers/picture_layer_impl_unittest.cc b/cc/layers/picture_layer_impl_unittest.cc
index 6b2d4c9..a46386c 100644
--- a/cc/layers/picture_layer_impl_unittest.cc
+++ b/cc/layers/picture_layer_impl_unittest.cc
@@ -268,8 +268,8 @@
     std::vector<SkRect>::const_iterator rect_iter = rects.begin();
     for (tile_iter = tiles.begin(); tile_iter < tiles.end(); tile_iter++) {
       MockCanvas mock_canvas(1000, 1000);
-      active_pile->RasterDirect(
-          &mock_canvas, (*tile_iter)->content_rect(), 1.0f, nullptr);
+      active_pile->RasterDirect(&mock_canvas, (*tile_iter)->content_rect(),
+                                1.0f);
 
       // This test verifies that when drawing the contents of a specific tile
       // at content scale 1.0, the playback canvas never receives content from
diff --git a/cc/layers/picture_layer_unittest.cc b/cc/layers/picture_layer_unittest.cc
index 78182d9..ca622aa 100644
--- a/cc/layers/picture_layer_unittest.cc
+++ b/cc/layers/picture_layer_unittest.cc
@@ -43,6 +43,10 @@
   scoped_ptr<ResourceUpdateQueue> queue(new ResourceUpdateQueue);
   layer->Update(queue.get(), &occlusion);
 
+  EXPECT_EQ(0, host->source_frame_number());
+  host->CommitComplete();
+  EXPECT_EQ(1, host->source_frame_number());
+
   layer->SetBounds(gfx::Size(0, 0));
   layer->SavePaintProperties();
   // Intentionally skipping Update since it would normally be skipped on
diff --git a/cc/layers/surface_layer.cc b/cc/layers/surface_layer.cc
index ba577a0..f1909b4 100644
--- a/cc/layers/surface_layer.cc
+++ b/cc/layers/surface_layer.cc
@@ -4,21 +4,60 @@
 
 #include "cc/layers/surface_layer.h"
 
+#include "cc/base/swap_promise.h"
 #include "cc/layers/surface_layer_impl.h"
+#include "cc/trees/layer_tree_host.h"
 
 namespace cc {
 
-scoped_refptr<SurfaceLayer> SurfaceLayer::Create() {
-  return make_scoped_refptr(new SurfaceLayer);
+class SatisfySwapPromise : public SwapPromise {
+ public:
+  SatisfySwapPromise(SurfaceSequence sequence,
+                     const SurfaceLayer::SatisfyCallback& satisfy_callback)
+      : sequence_(sequence), satisfy_callback_(satisfy_callback) {}
+
+  ~SatisfySwapPromise() override {}
+
+ private:
+  void DidSwap(CompositorFrameMetadata* metadata) override {
+    metadata->satisfies_sequences.push_back(sequence_.sequence);
+  }
+
+  void DidNotSwap(DidNotSwapReason reason) override {
+    satisfy_callback_.Run(sequence_);
+  }
+  int64 TraceId() const override { return 0; }
+
+  SurfaceSequence sequence_;
+  SurfaceLayer::SatisfyCallback satisfy_callback_;
+
+  DISALLOW_COPY_AND_ASSIGN(SatisfySwapPromise);
+};
+
+scoped_refptr<SurfaceLayer> SurfaceLayer::Create(
+    const SatisfyCallback& satisfy_callback,
+    const RequireCallback& require_callback) {
+  return make_scoped_refptr(
+      new SurfaceLayer(satisfy_callback, require_callback));
 }
 
-SurfaceLayer::SurfaceLayer() : Layer() {
+SurfaceLayer::SurfaceLayer(const SatisfyCallback& satisfy_callback,
+                           const RequireCallback& require_callback)
+    : Layer(),
+      satisfy_callback_(satisfy_callback),
+      require_callback_(require_callback) {
 }
 
-SurfaceLayer::~SurfaceLayer() {}
+SurfaceLayer::~SurfaceLayer() {
+  DCHECK(!layer_tree_host());
+  DCHECK(destroy_sequence_.is_null());
+}
 
 void SurfaceLayer::SetSurfaceId(SurfaceId surface_id) {
+  SatisfyDestroySequence();
   surface_id_ = surface_id;
+  CreateNewDestroySequence();
+
   UpdateDrawsContent(HasDrawableContent());
   SetNeedsPushProperties();
 }
@@ -31,6 +70,17 @@
   return !surface_id_.is_null() && Layer::HasDrawableContent();
 }
 
+void SurfaceLayer::SetLayerTreeHost(LayerTreeHost* host) {
+  if (layer_tree_host() == host) {
+    Layer::SetLayerTreeHost(host);
+    return;
+  }
+
+  SatisfyDestroySequence();
+  Layer::SetLayerTreeHost(host);
+  CreateNewDestroySequence();
+}
+
 void SurfaceLayer::PushPropertiesTo(LayerImpl* layer) {
   Layer::PushPropertiesTo(layer);
   SurfaceLayerImpl* layer_impl = static_cast<SurfaceLayerImpl*>(layer);
@@ -38,4 +88,22 @@
   layer_impl->SetSurfaceId(surface_id_);
 }
 
+void SurfaceLayer::CreateNewDestroySequence() {
+  DCHECK(destroy_sequence_.is_null());
+  if (layer_tree_host()) {
+    destroy_sequence_ = layer_tree_host()->CreateSurfaceSequence();
+    require_callback_.Run(surface_id_, destroy_sequence_);
+  }
+}
+
+void SurfaceLayer::SatisfyDestroySequence() {
+  if (!layer_tree_host())
+    return;
+  DCHECK(!destroy_sequence_.is_null());
+  scoped_ptr<SatisfySwapPromise> satisfy(
+      new SatisfySwapPromise(destroy_sequence_, satisfy_callback_));
+  layer_tree_host()->QueueSwapPromise(satisfy.Pass());
+  destroy_sequence_ = SurfaceSequence();
+}
+
 }  // namespace cc
diff --git a/cc/layers/surface_layer.h b/cc/layers/surface_layer.h
index 0b886eb..4292549 100644
--- a/cc/layers/surface_layer.h
+++ b/cc/layers/surface_layer.h
@@ -8,6 +8,7 @@
 #include "cc/base/cc_export.h"
 #include "cc/layers/layer.h"
 #include "cc/surfaces/surface_id.h"
+#include "cc/surfaces/surface_sequence.h"
 
 namespace cc {
 
@@ -15,22 +16,40 @@
 // instance or client.
 class CC_EXPORT SurfaceLayer : public Layer {
  public:
-  static scoped_refptr<SurfaceLayer> Create();
+  // This callback is run when a SurfaceSequence needs to be satisfied, but
+  // the parent compositor is unable to. It can be called on either the main
+  // or impl threads.
+  using SatisfyCallback = base::Callback<void(SurfaceSequence)>;
+
+  // This callback is run to require that a specific SurfaceSequence is
+  // received before a SurfaceId is destroyed.
+  using RequireCallback = base::Callback<void(SurfaceId, SurfaceSequence)>;
+
+  static scoped_refptr<SurfaceLayer> Create(
+      const SatisfyCallback& satisfy_callback,
+      const RequireCallback& require_callback);
 
   void SetSurfaceId(SurfaceId surface_id);
 
   // Layer overrides.
   scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) override;
+  void SetLayerTreeHost(LayerTreeHost* host) override;
   void PushPropertiesTo(LayerImpl* layer) override;
 
  protected:
-  SurfaceLayer();
+  SurfaceLayer(const SatisfyCallback& satisfy_callback,
+               const RequireCallback& require_callback);
   bool HasDrawableContent() const override;
 
  private:
   ~SurfaceLayer() override;
+  void CreateNewDestroySequence();
+  void SatisfyDestroySequence();
 
   SurfaceId surface_id_;
+  SurfaceSequence destroy_sequence_;
+  SatisfyCallback satisfy_callback_;
+  RequireCallback require_callback_;
 
   DISALLOW_COPY_AND_ASSIGN(SurfaceLayer);
 };
diff --git a/cc/layers/surface_layer_unittest.cc b/cc/layers/surface_layer_unittest.cc
new file mode 100644
index 0000000..99d0e17
--- /dev/null
+++ b/cc/layers/surface_layer_unittest.cc
@@ -0,0 +1,206 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/message_loop/message_loop_proxy.h"
+#include "cc/layers/solid_color_layer.h"
+#include "cc/layers/surface_layer.h"
+#include "cc/test/fake_impl_proxy.h"
+#include "cc/test/fake_layer_tree_host.h"
+#include "cc/test/fake_layer_tree_host_client.h"
+#include "cc/test/fake_layer_tree_host_impl.h"
+#include "cc/test/fake_output_surface.h"
+#include "cc/test/layer_tree_test.h"
+#include "cc/test/test_shared_bitmap_manager.h"
+#include "cc/trees/layer_tree_host.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace cc {
+namespace {
+
+class SurfaceLayerTest : public testing::Test {
+ public:
+  SurfaceLayerTest()
+      : fake_client_(
+            FakeLayerTreeHostClient(FakeLayerTreeHostClient::DIRECT_3D)) {}
+
+ protected:
+  virtual void SetUp() {
+    layer_tree_host_ = FakeLayerTreeHost::Create(&fake_client_);
+    layer_tree_host_->SetViewportSize(gfx::Size(10, 10));
+  }
+
+  virtual void TearDown() {
+    if (layer_tree_host_) {
+      layer_tree_host_->SetRootLayer(nullptr);
+      layer_tree_host_ = nullptr;
+    }
+  }
+
+  scoped_ptr<FakeLayerTreeHost> layer_tree_host_;
+  FakeLayerTreeHostClient fake_client_;
+  TestSharedBitmapManager shared_bitmap_manager_;
+};
+
+void SatisfyCallback(SurfaceSequence* out, SurfaceSequence in) {
+  *out = in;
+}
+
+void RequireCallback(SurfaceId* out_id,
+                     std::set<SurfaceSequence>* out,
+                     SurfaceId in_id,
+                     SurfaceSequence in) {
+  *out_id = in_id;
+  out->insert(in);
+}
+
+// Check that one surface can be referenced by multiple LayerTreeHosts, and
+// each will create its own SurfaceSequence that's satisfied on destruction.
+TEST_F(SurfaceLayerTest, MultipleFramesOneSurface) {
+  SurfaceSequence blank_change;  // Receives sequence if commit doesn't happen.
+
+  SurfaceId required_id;
+  std::set<SurfaceSequence> required_seq;
+  scoped_refptr<SurfaceLayer> layer(SurfaceLayer::Create(
+      base::Bind(&SatisfyCallback, &blank_change),
+      base::Bind(&RequireCallback, &required_id, &required_seq)));
+  layer->SetSurfaceId(SurfaceId(1));
+  layer_tree_host_->set_surface_id_namespace(1);
+  layer_tree_host_->SetRootLayer(layer);
+
+  scoped_ptr<FakeLayerTreeHost> layer_tree_host2 =
+      FakeLayerTreeHost::Create(&fake_client_);
+  scoped_refptr<SurfaceLayer> layer2(SurfaceLayer::Create(
+      base::Bind(&SatisfyCallback, &blank_change),
+      base::Bind(&RequireCallback, &required_id, &required_seq)));
+  layer2->SetSurfaceId(SurfaceId(1));
+  layer_tree_host2->set_surface_id_namespace(2);
+  layer_tree_host2->SetRootLayer(layer2);
+
+  // Layers haven't been removed, so no sequence should be satisfied.
+  EXPECT_TRUE(blank_change.is_null());
+
+  SurfaceSequence expected1(1u, 1u);
+  SurfaceSequence expected2(2u, 1u);
+
+  layer_tree_host2->SetRootLayer(nullptr);
+  layer_tree_host2.reset();
+
+  // Layer was removed so sequence from second LayerTreeHost should be
+  // satisfied.
+  EXPECT_TRUE(blank_change == expected2);
+
+  // Set of sequences that need to be satisfied should include sequences from
+  // both trees.
+  EXPECT_TRUE(required_id == SurfaceId(1));
+  EXPECT_EQ(2u, required_seq.size());
+  EXPECT_TRUE(required_seq.count(expected1));
+  EXPECT_TRUE(required_seq.count(expected2));
+
+  layer_tree_host_->SetRootLayer(nullptr);
+  layer_tree_host_.reset();
+
+  // Layer was removed so sequence from first LayerTreeHost should be
+  // satisfied.
+  EXPECT_TRUE(blank_change == expected1);
+
+  // No more SurfaceSequences should have been generated that need to have be
+  // satisfied.
+  EXPECT_EQ(2u, required_seq.size());
+}
+
+// Check that SurfaceSequence is sent through swap promise.
+class SurfaceLayerSwapPromise : public LayerTreeTest {
+ public:
+  SurfaceLayerSwapPromise()
+      : commit_count_(0), sequence_was_satisfied_(false) {}
+
+  void BeginTest() override {
+    layer_tree_host()->set_surface_id_namespace(1);
+    layer_ = SurfaceLayer::Create(
+        base::Bind(&SatisfyCallback, &satisfied_sequence_),
+        base::Bind(&RequireCallback, &required_id_, &required_set_));
+    layer_->SetSurfaceId(SurfaceId(1));
+
+    // Layer hasn't been added to tree so no SurfaceSequence generated yet.
+    EXPECT_EQ(0u, required_set_.size());
+
+    layer_tree_host()->SetRootLayer(layer_);
+
+    // Should have SurfaceSequence from first tree.
+    SurfaceSequence expected(1u, 1u);
+    EXPECT_TRUE(required_id_ == SurfaceId(1));
+    EXPECT_EQ(1u, required_set_.size());
+    EXPECT_TRUE(required_set_.count(expected));
+
+    gfx::Size bounds(100, 100);
+    layer_tree_host()->SetViewportSize(bounds);
+    PostSetNeedsCommitToMainThread();
+  }
+
+  void DidCommit() override {
+    base::MessageLoopProxy::current()->PostTask(
+        FROM_HERE, base::Bind(&SurfaceLayerSwapPromise::ChangeTree,
+                              base::Unretained(this)));
+  }
+
+  void ChangeTree() {
+    ++commit_count_;
+    switch (commit_count_) {
+      case 1:
+        // Remove SurfaceLayer from tree to cause SwapPromise to be created.
+        blank_layer_ = SolidColorLayer::Create();
+        blank_layer_->SetIsDrawable(true);
+        blank_layer_->SetBounds(gfx::Size(10, 10));
+        layer_tree_host()->SetRootLayer(blank_layer_);
+        break;
+      case 2:
+        break;
+      default:
+        NOTREACHED();
+        break;
+    }
+  }
+
+  void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) override {
+    EXPECT_TRUE(result);
+    std::vector<uint32_t>& satisfied =
+        output_surface()->last_sent_frame().metadata.satisfies_sequences;
+    EXPECT_LE(satisfied.size(), 1u);
+    if (satisfied.size() == 1) {
+      // Eventually the one SurfaceSequence should be satisfied, but only
+      // after the layer was removed from the tree, and only once.
+      EXPECT_EQ(1u, satisfied[0]);
+      EXPECT_LE(1, commit_count_);
+      EXPECT_FALSE(sequence_was_satisfied_);
+      sequence_was_satisfied_ = true;
+      EndTest();
+    }
+  }
+
+  void AfterTest() override {
+    EXPECT_TRUE(required_id_ == SurfaceId(1));
+    EXPECT_EQ(1u, required_set_.size());
+    // Sequence should have been satisfied through Swap, not with the
+    // callback.
+    EXPECT_TRUE(satisfied_sequence_.is_null());
+  }
+
+ private:
+  int commit_count_;
+  bool sequence_was_satisfied_;
+  scoped_refptr<SurfaceLayer> layer_;
+  scoped_refptr<Layer> blank_layer_;
+  SurfaceSequence satisfied_sequence_;
+
+  SurfaceId required_id_;
+  std::set<SurfaceSequence> required_set_;
+};
+
+// TODO(jbauman): Reenable on single thread once http://crbug.com/421923 is
+// fixed.
+MULTI_THREAD_TEST_F(SurfaceLayerSwapPromise);
+
+}  // namespace
+}  // namespace cc
diff --git a/cc/layers/tiled_layer_unittest.cc b/cc/layers/tiled_layer_unittest.cc
index 0f3112c..9c814be 100644
--- a/cc/layers/tiled_layer_unittest.cc
+++ b/cc/layers/tiled_layer_unittest.cc
@@ -18,7 +18,6 @@
 #include "cc/test/fake_output_surface.h"
 #include "cc/test/fake_output_surface_client.h"
 #include "cc/test/fake_proxy.h"
-#include "cc/test/fake_rendering_stats_instrumentation.h"
 #include "cc/test/geometry_test_utils.h"
 #include "cc/test/test_shared_bitmap_manager.h"
 #include "cc/test/tiled_layer_test_common.h"
diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc
index a73c4af..4eb1324 100644
--- a/cc/output/gl_renderer.cc
+++ b/cc/output/gl_renderer.cc
@@ -869,7 +869,7 @@
 GLRenderer::ApplyInverseTransformForBackgroundFilters(
     DrawingFrame* frame,
     const RenderPassDrawQuad* quad,
-    const gfx::Transform& contents_device_transform_inverse,
+    const gfx::Transform& contents_device_transform,
     skia::RefPtr<SkImage> filtered_device_background,
     const gfx::Rect& backdrop_bounding_rect) {
   // This method draws a background filter, which applies a filter to any pixels
@@ -914,6 +914,12 @@
   if (using_background_texture) {
     // Copy the readback pixels from device to the background texture for the
     // surface.
+
+    gfx::Transform contents_device_transform_inverse(
+        gfx::Transform::kSkipInitialization);
+    bool did_invert = contents_device_transform.GetInverse(
+        &contents_device_transform_inverse);
+    DCHECK(did_invert);
     gfx::Transform device_to_framebuffer_transform;
     QuadRectTransform(
         &device_to_framebuffer_transform, gfx::Transform(), quad->rect);
@@ -964,20 +970,18 @@
   contents_device_transform.FlattenTo2d();
 
   // Can only draw surface if device matrix is invertible.
-  gfx::Transform contents_device_transform_inverse(
-      gfx::Transform::kSkipInitialization);
-  if (!contents_device_transform.GetInverse(&contents_device_transform_inverse))
+  if (!contents_device_transform.IsInvertible())
     return;
 
-  bool clipped = false;
-  gfx::QuadF device_quad = MathUtil::MapQuad(
-      contents_device_transform, SharedGeometryQuad(), &clipped);
-  // Use anti-aliasing programs only when necessary.
-  bool use_aa =
-      !clipped &&
-      (settings_->force_antialiasing || !device_quad.IsRectilinear() ||
-       !gfx::IsNearestRectWithinDistance(device_quad.BoundingBox(),
-                                         kAntiAliasingEpsilon));
+  gfx::QuadF surface_quad = SharedGeometryQuad();
+  float edge[24];
+  bool use_aa = settings_->allow_antialiasing &&
+                ShouldAntialiasQuad(contents_device_transform, quad,
+                                    settings_->force_antialiasing);
+
+  if (use_aa)
+    SetupQuadForAntialiasing(contents_device_transform, quad,
+                             &surface_quad, edge);
 
   bool need_background_texture = !CanApplyBlendModeUsingBlendFunc(blend_mode) ||
                                  ShouldApplyBackgroundFilters(frame, quad);
@@ -1020,10 +1024,7 @@
       // the quad since the destination texture has bounds matching the quad's
       // content.
       background_texture = ApplyInverseTransformForBackgroundFilters(
-          frame,
-          quad,
-          contents_device_transform_inverse,
-          background_with_filters,
+          frame, quad, contents_device_transform, background_with_filters,
           background_rect);
     } else if (!CanApplyBlendModeUsingBlendFunc(blend_mode)) {
       if (background_with_filters) {
@@ -1089,13 +1090,6 @@
                              flip_vertically);
   }
 
-  LayerQuad device_layer_bounds(gfx::QuadF(device_quad.BoundingBox()));
-  LayerQuad device_layer_edges(device_quad);
-  if (use_aa) {
-    device_layer_bounds.InflateAntiAliasingDistance();
-    device_layer_edges.InflateAntiAliasingDistance();
-  }
-
   scoped_ptr<ResourceProvider::ScopedSamplerGL> mask_resource_lock;
   unsigned mask_texture_id = 0;
   SamplerType mask_sampler = SamplerTypeNA;
@@ -1359,12 +1353,8 @@
     last_texture_unit = 1;
   }
 
-  if (shader_edge_location != -1) {
-    float edge[24];
-    device_layer_edges.ToFloatArray(edge);
-    device_layer_bounds.ToFloatArray(&edge[12]);
+  if (shader_edge_location != -1)
     GLC(gl_, gl_->Uniform3fv(shader_edge_location, 8, edge));
-  }
 
   if (shader_viewport_location != -1) {
     float viewport[4] = {static_cast<float>(viewport_.x()),
@@ -1423,12 +1413,6 @@
     }
   }
 
-  // Map device space quad to surface space. contents_device_transform has no 3d
-  // component since it was flattened, so we don't need to project.
-  gfx::QuadF surface_quad = MathUtil::MapQuad(contents_device_transform_inverse,
-                                              device_layer_edges.ToQuadF(),
-                                              &clipped);
-
   SetShaderOpacity(quad->opacity(), shader_alpha_location);
   SetShaderQuadF(surface_quad, shader_quad_location);
   DrawQuadGeometry(
@@ -1463,41 +1447,16 @@
   uniforms->color_location = program->fragment_shader().color_location();
 }
 
-// static
-bool GLRenderer::SetupQuadForAntialiasing(
+static gfx::QuadF GetDeviceQuadWithAntialiasingOnExteriorEdges(
+    const LayerQuad& device_layer_edges,
     const gfx::Transform& device_transform,
-    const DrawQuad* quad,
-    gfx::QuadF* local_quad,
-    float edge[24]) {
+    const DrawQuad* quad) {
   gfx::Rect tile_rect = quad->visible_rect;
-
-  bool clipped = false;
-  gfx::QuadF device_layer_quad = MathUtil::MapQuad(
-      device_transform, gfx::QuadF(quad->visibleContentRect()), &clipped);
-
-  bool is_axis_aligned_in_target = device_layer_quad.IsRectilinear();
-  bool is_nearest_rect_within_epsilon =
-      is_axis_aligned_in_target &&
-      gfx::IsNearestRectWithinDistance(device_layer_quad.BoundingBox(),
-                                       kAntiAliasingEpsilon);
-  // AAing clipped quads is not supported by the code yet.
-  bool use_aa = !clipped && !is_nearest_rect_within_epsilon && quad->IsEdge();
-  if (!use_aa)
-    return false;
-
-  LayerQuad device_layer_bounds(gfx::QuadF(device_layer_quad.BoundingBox()));
-  device_layer_bounds.InflateAntiAliasingDistance();
-
-  LayerQuad device_layer_edges(device_layer_quad);
-  device_layer_edges.InflateAntiAliasingDistance();
-
-  device_layer_edges.ToFloatArray(edge);
-  device_layer_bounds.ToFloatArray(&edge[12]);
-
   gfx::PointF bottom_right = tile_rect.bottom_right();
   gfx::PointF bottom_left = tile_rect.bottom_left();
   gfx::PointF top_left = tile_rect.origin();
   gfx::PointF top_right = tile_rect.top_right();
+  bool clipped = false;
 
   // Map points to device space. We ignore |clipped|, since the result of
   // |MapPoint()| still produces a valid point to draw the quad with. When
@@ -1529,7 +1488,72 @@
   right_edge.scale(sign);
 
   // Create device space quad.
-  LayerQuad device_quad(left_edge, top_edge, right_edge, bottom_edge);
+  return LayerQuad(left_edge, top_edge, right_edge, bottom_edge).ToQuadF();
+}
+
+// static
+bool GLRenderer::ShouldAntialiasQuad(const gfx::Transform& device_transform,
+                                     const DrawQuad* quad,
+                                     bool force_antialiasing) {
+  bool is_render_pass_quad = (quad->material == DrawQuad::RENDER_PASS);
+  // For render pass quads, |device_transform| already contains quad's rect.
+  // TODO(rosca@adobe.com): remove branching on is_render_pass_quad
+  // crbug.com/429702
+  if (!is_render_pass_quad && !quad->IsEdge())
+    return false;
+  gfx::RectF content_rect =
+      is_render_pass_quad ? QuadVertexRect() : quad->visibleContentRect();
+
+  bool clipped = false;
+  gfx::QuadF device_layer_quad =
+      MathUtil::MapQuad(device_transform, gfx::QuadF(content_rect), &clipped);
+
+  if (device_layer_quad.BoundingBox().IsEmpty())
+    return false;
+
+  bool is_axis_aligned_in_target = device_layer_quad.IsRectilinear();
+  bool is_nearest_rect_within_epsilon =
+      is_axis_aligned_in_target &&
+      gfx::IsNearestRectWithinDistance(device_layer_quad.BoundingBox(),
+                                       kAntiAliasingEpsilon);
+  // AAing clipped quads is not supported by the code yet.
+  bool use_aa = !clipped && !is_nearest_rect_within_epsilon;
+  return use_aa || force_antialiasing;
+}
+
+// static
+void GLRenderer::SetupQuadForAntialiasing(
+    const gfx::Transform& device_transform,
+    const DrawQuad* quad,
+    gfx::QuadF* local_quad,
+    float edge[24]) {
+  bool is_render_pass_quad = (quad->material == DrawQuad::RENDER_PASS);
+  gfx::RectF content_rect =
+      is_render_pass_quad ? QuadVertexRect() : quad->visibleContentRect();
+
+  bool clipped = false;
+  gfx::QuadF device_layer_quad =
+      MathUtil::MapQuad(device_transform, gfx::QuadF(content_rect), &clipped);
+
+  LayerQuad device_layer_bounds(gfx::QuadF(device_layer_quad.BoundingBox()));
+  device_layer_bounds.InflateAntiAliasingDistance();
+
+  LayerQuad device_layer_edges(device_layer_quad);
+  device_layer_edges.InflateAntiAliasingDistance();
+
+  device_layer_edges.ToFloatArray(edge);
+  device_layer_bounds.ToFloatArray(&edge[12]);
+
+  bool use_aa_on_all_four_edges =
+      is_render_pass_quad ||
+      (quad->IsTopEdge() && quad->IsLeftEdge() && quad->IsBottomEdge() &&
+       quad->IsRightEdge() && quad->visible_rect == quad->rect);
+
+  gfx::QuadF device_quad =
+      use_aa_on_all_four_edges
+          ? device_layer_edges.ToQuadF()
+          : GetDeviceQuadWithAntialiasingOnExteriorEdges(
+                device_layer_edges, device_transform, quad);
 
   // Map device space quad to local space. device_transform has no 3d
   // component since it was flattened, so we don't need to project.  We should
@@ -1537,13 +1561,11 @@
   gfx::Transform inverse_device_transform(gfx::Transform::kSkipInitialization);
   bool did_invert = device_transform.GetInverse(&inverse_device_transform);
   DCHECK(did_invert);
-  *local_quad = MathUtil::MapQuad(
-      inverse_device_transform, device_quad.ToQuadF(), &clipped);
+  *local_quad =
+      MathUtil::MapQuad(inverse_device_transform, device_quad, &clipped);
   // We should not DCHECK(!clipped) here, because anti-aliasing inflation may
   // cause device_quad to become clipped. To our knowledge this scenario does
   // not need to be handled differently than the unclipped case.
-
-  return true;
 }
 
 void GLRenderer::DrawSolidColorQuad(const DrawingFrame* frame,
@@ -1565,17 +1587,20 @@
   if (!device_transform.IsInvertible())
     return;
 
+  bool force_aa = false;
   gfx::QuadF local_quad = gfx::QuadF(gfx::RectF(tile_rect));
   float edge[24];
-  bool use_aa =
-      settings_->allow_antialiasing && !quad->force_anti_aliasing_off &&
-      SetupQuadForAntialiasing(device_transform, quad, &local_quad, edge);
+  bool use_aa = settings_->allow_antialiasing &&
+                !quad->force_anti_aliasing_off &&
+                ShouldAntialiasQuad(device_transform, quad, force_aa);
 
   SolidColorProgramUniforms uniforms;
-  if (use_aa)
+  if (use_aa) {
+    SetupQuadForAntialiasing(device_transform, quad, &local_quad, edge);
     SolidColorUniformLocation(GetSolidColorProgramAA(), &uniforms);
-  else
+  } else {
     SolidColorUniformLocation(GetSolidColorProgram(), &uniforms);
+  }
   SetUseProgram(uniforms.program);
 
   GLC(gl_,
@@ -1649,6 +1674,29 @@
 void GLRenderer::DrawContentQuad(const DrawingFrame* frame,
                                  const ContentDrawQuadBase* quad,
                                  ResourceProvider::ResourceId resource_id) {
+  gfx::Transform device_transform =
+      frame->window_matrix * frame->projection_matrix * quad->quadTransform();
+  device_transform.FlattenTo2d();
+
+  bool use_aa = settings_->allow_antialiasing &&
+                ShouldAntialiasQuad(device_transform, quad, false);
+
+  // TODO(timav): simplify coordinate transformations in DrawContentQuadAA
+  // similar to the way DrawContentQuadNoAA works and then consider
+  // combining DrawContentQuadAA and DrawContentQuadNoAA into one method.
+  if (use_aa)
+    DrawContentQuadAA(frame, quad, resource_id, device_transform);
+  else
+    DrawContentQuadNoAA(frame, quad, resource_id);
+}
+
+void GLRenderer::DrawContentQuadAA(const DrawingFrame* frame,
+                                   const ContentDrawQuadBase* quad,
+                                   ResourceProvider::ResourceId resource_id,
+                                   const gfx::Transform& device_transform) {
+  if (!device_transform.IsInvertible())
+    return;
+
   gfx::Rect tile_rect = quad->visible_rect;
 
   gfx::RectF tex_coord_rect = MathUtil::ScaleRectProportional(
@@ -1688,25 +1736,12 @@
   TexCoordPrecision tex_coord_precision = TexCoordPrecisionRequired(
       gl_, &highp_threshold_cache_, highp_threshold_min_, quad->texture_size);
 
-  gfx::Transform device_transform =
-      frame->window_matrix * frame->projection_matrix * quad->quadTransform();
-  device_transform.FlattenTo2d();
-  if (!device_transform.IsInvertible())
-    return;
-
   gfx::QuadF local_quad = gfx::QuadF(gfx::RectF(tile_rect));
   float edge[24];
-  bool use_aa =
-      settings_->allow_antialiasing &&
-      SetupQuadForAntialiasing(device_transform, quad, &local_quad, edge);
+  SetupQuadForAntialiasing(device_transform, quad, &local_quad, edge);
 
-  bool scaled = (tex_to_geom_scale_x != 1.f || tex_to_geom_scale_y != 1.f);
-  GLenum filter = (use_aa || scaled ||
-                   !quad->quadTransform().IsIdentityOrIntegerTranslation())
-                      ? GL_LINEAR
-                      : GL_NEAREST;
   ResourceProvider::ScopedSamplerGL quad_resource_lock(
-      resource_provider_, resource_id, filter);
+      resource_provider_, resource_id, GL_LINEAR);
   SamplerType sampler =
       SamplerTypeFromTextureTarget(quad_resource_lock.target());
 
@@ -1726,81 +1761,41 @@
   }
 
   TileProgramUniforms uniforms;
-  if (use_aa) {
-    if (quad->swizzle_contents) {
-      TileUniformLocation(GetTileProgramSwizzleAA(tex_coord_precision, sampler),
-                          &uniforms);
-    } else {
-      TileUniformLocation(GetTileProgramAA(tex_coord_precision, sampler),
-                          &uniforms);
-    }
+  if (quad->swizzle_contents) {
+    TileUniformLocation(GetTileProgramSwizzleAA(tex_coord_precision, sampler),
+                        &uniforms);
   } else {
-    if (quad->ShouldDrawWithBlending()) {
-      if (quad->swizzle_contents) {
-        TileUniformLocation(GetTileProgramSwizzle(tex_coord_precision, sampler),
-                            &uniforms);
-      } else {
-        TileUniformLocation(GetTileProgram(tex_coord_precision, sampler),
-                            &uniforms);
-      }
-    } else {
-      if (quad->swizzle_contents) {
-        TileUniformLocation(
-            GetTileProgramSwizzleOpaque(tex_coord_precision, sampler),
-            &uniforms);
-      } else {
-        TileUniformLocation(GetTileProgramOpaque(tex_coord_precision, sampler),
-                            &uniforms);
-      }
-    }
+    TileUniformLocation(GetTileProgramAA(tex_coord_precision, sampler),
+                        &uniforms);
   }
 
   SetUseProgram(uniforms.program);
   GLC(gl_, gl_->Uniform1i(uniforms.sampler_location, 0));
 
-  if (use_aa) {
-    float viewport[4] = {static_cast<float>(viewport_.x()),
-                         static_cast<float>(viewport_.y()),
-                         static_cast<float>(viewport_.width()),
-                         static_cast<float>(viewport_.height()), };
-    GLC(gl_, gl_->Uniform4fv(uniforms.viewport_location, 1, viewport));
-    GLC(gl_, gl_->Uniform3fv(uniforms.edge_location, 8, edge));
+  float viewport[4] = {
+      static_cast<float>(viewport_.x()),
+      static_cast<float>(viewport_.y()),
+      static_cast<float>(viewport_.width()),
+      static_cast<float>(viewport_.height()),
+  };
+  GLC(gl_, gl_->Uniform4fv(uniforms.viewport_location, 1, viewport));
+  GLC(gl_, gl_->Uniform3fv(uniforms.edge_location, 8, edge));
 
-    GLC(gl_,
-        gl_->Uniform4f(uniforms.vertex_tex_transform_location,
-                       vertex_tex_translate_x,
-                       vertex_tex_translate_y,
-                       vertex_tex_scale_x,
-                       vertex_tex_scale_y));
-    GLC(gl_,
-        gl_->Uniform4f(uniforms.fragment_tex_transform_location,
-                       fragment_tex_translate_x,
-                       fragment_tex_translate_y,
-                       fragment_tex_scale_x,
-                       fragment_tex_scale_y));
-  } else {
-    // Move fragment shader transform to vertex shader. We can do this while
-    // still producing correct results as fragment_tex_transform_location
-    // should always be non-negative when tiles are transformed in a way
-    // that could result in sampling outside the layer.
-    vertex_tex_scale_x *= fragment_tex_scale_x;
-    vertex_tex_scale_y *= fragment_tex_scale_y;
-    vertex_tex_translate_x *= fragment_tex_scale_x;
-    vertex_tex_translate_y *= fragment_tex_scale_y;
-    vertex_tex_translate_x += fragment_tex_translate_x;
-    vertex_tex_translate_y += fragment_tex_translate_y;
+  GLC(gl_,
+      gl_->Uniform4f(uniforms.vertex_tex_transform_location,
+                     vertex_tex_translate_x,
+                     vertex_tex_translate_y,
+                     vertex_tex_scale_x,
+                     vertex_tex_scale_y));
+  GLC(gl_,
+      gl_->Uniform4f(uniforms.fragment_tex_transform_location,
+                     fragment_tex_translate_x,
+                     fragment_tex_translate_y,
+                     fragment_tex_scale_x,
+                     fragment_tex_scale_y));
 
-    GLC(gl_,
-        gl_->Uniform4f(uniforms.vertex_tex_transform_location,
-                       vertex_tex_translate_x,
-                       vertex_tex_translate_y,
-                       vertex_tex_scale_x,
-                       vertex_tex_scale_y));
-  }
-
-  // Enable blending when the quad properties require it or if we decided
-  // to use antialiasing.
-  SetBlendEnabled(quad->ShouldDrawWithBlending() || use_aa);
+  // Blending is required for antialiasing.
+  SetBlendEnabled(true);
 
   // Normalize to tile_rect.
   local_quad.Scale(1.0f / tile_rect.width(), 1.0f / tile_rect.height());
@@ -1819,6 +1814,103 @@
       frame, quad->quadTransform(), centered_rect, uniforms.matrix_location);
 }
 
+void GLRenderer::DrawContentQuadNoAA(const DrawingFrame* frame,
+                                     const ContentDrawQuadBase* quad,
+                                     ResourceProvider::ResourceId resource_id) {
+  gfx::RectF tex_coord_rect = MathUtil::ScaleRectProportional(
+      quad->tex_coord_rect, quad->rect, quad->visible_rect);
+  float tex_to_geom_scale_x = quad->rect.width() / quad->tex_coord_rect.width();
+  float tex_to_geom_scale_y =
+      quad->rect.height() / quad->tex_coord_rect.height();
+
+  bool scaled = (tex_to_geom_scale_x != 1.f || tex_to_geom_scale_y != 1.f);
+  GLenum filter =
+      (scaled || !quad->quadTransform().IsIdentityOrIntegerTranslation())
+          ? GL_LINEAR
+          : GL_NEAREST;
+
+  ResourceProvider::ScopedSamplerGL quad_resource_lock(
+      resource_provider_, resource_id, filter);
+  SamplerType sampler =
+      SamplerTypeFromTextureTarget(quad_resource_lock.target());
+
+  float vertex_tex_translate_x = tex_coord_rect.x();
+  float vertex_tex_translate_y = tex_coord_rect.y();
+  float vertex_tex_scale_x = tex_coord_rect.width();
+  float vertex_tex_scale_y = tex_coord_rect.height();
+
+  // Map to normalized texture coordinates.
+  if (sampler != SamplerType2DRect) {
+    gfx::Size texture_size = quad->texture_size;
+    DCHECK(!texture_size.IsEmpty());
+    vertex_tex_translate_x /= texture_size.width();
+    vertex_tex_translate_y /= texture_size.height();
+    vertex_tex_scale_x /= texture_size.width();
+    vertex_tex_scale_y /= texture_size.height();
+  }
+
+  TexCoordPrecision tex_coord_precision = TexCoordPrecisionRequired(
+      gl_, &highp_threshold_cache_, highp_threshold_min_, quad->texture_size);
+
+  TileProgramUniforms uniforms;
+  if (quad->ShouldDrawWithBlending()) {
+    if (quad->swizzle_contents) {
+      TileUniformLocation(GetTileProgramSwizzle(tex_coord_precision, sampler),
+                          &uniforms);
+    } else {
+      TileUniformLocation(GetTileProgram(tex_coord_precision, sampler),
+                          &uniforms);
+    }
+  } else {
+    if (quad->swizzle_contents) {
+      TileUniformLocation(
+          GetTileProgramSwizzleOpaque(tex_coord_precision, sampler), &uniforms);
+    } else {
+      TileUniformLocation(GetTileProgramOpaque(tex_coord_precision, sampler),
+                          &uniforms);
+    }
+  }
+
+  SetUseProgram(uniforms.program);
+  GLC(gl_, gl_->Uniform1i(uniforms.sampler_location, 0));
+
+  GLC(gl_,
+      gl_->Uniform4f(uniforms.vertex_tex_transform_location,
+                     vertex_tex_translate_x,
+                     vertex_tex_translate_y,
+                     vertex_tex_scale_x,
+                     vertex_tex_scale_y));
+
+  SetBlendEnabled(quad->ShouldDrawWithBlending());
+
+  SetShaderOpacity(quad->opacity(), uniforms.alpha_location);
+
+  // Pass quad coordinates to the uniform in the same order as GeometryBinding
+  // does, then vertices will match the texture mapping in the vertex buffer.
+  // The method SetShaderQuadF() changes the order of vertices and so it's
+  // not used here.
+
+  gfx::RectF tile_rect = quad->visible_rect;
+  float gl_quad[8] = {
+    tile_rect.x(),
+    tile_rect.bottom(),
+    tile_rect.x(),
+    tile_rect.y(),
+    tile_rect.right(),
+    tile_rect.y(),
+    tile_rect.right(),
+    tile_rect.bottom(),
+  };
+  GLC(gl_, gl_->Uniform2fv(uniforms.quad_location, 4, gl_quad));
+
+  static float gl_matrix[16];
+  ToGLMatrix(&gl_matrix[0], frame->projection_matrix * quad->quadTransform());
+  GLC(gl_,
+      gl_->UniformMatrix4fv(uniforms.matrix_location, 1, false, &gl_matrix[0]));
+
+  GLC(gl_, gl_->DrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0));
+}
+
 void GLRenderer::DrawYUVVideoQuad(const DrawingFrame* frame,
                                   const YUVVideoDrawQuad* quad) {
   SetBlendEnabled(quad->ShouldDrawWithBlending());
@@ -2004,8 +2096,8 @@
   }
 
   SkCanvas canvas(on_demand_tile_raster_bitmap_);
-  quad->picture_pile->PlaybackToCanvas(
-      &canvas, quad->content_rect, quad->contents_scale, NULL);
+  quad->picture_pile->PlaybackToCanvas(&canvas, quad->content_rect,
+                                       quad->contents_scale);
 
   uint8_t* bitmap_pixels = NULL;
   SkBitmap on_demand_tile_raster_bitmap_dest;
@@ -2062,7 +2154,7 @@
 
 void GLRenderer::FlushTextureQuadCache() {
   // Check to see if we have anything to draw.
-  if (draw_cache_.program_id == 0)
+  if (draw_cache_.program_id == -1)
     return;
 
   // Set the correct blending mode.
@@ -2118,7 +2210,7 @@
                         0));
 
   // Clear the cache.
-  draw_cache_.program_id = 0;
+  draw_cache_.program_id = -1;
   draw_cache_.uv_xform_data.resize(0);
   draw_cache_.vertex_opacity_data.resize(0);
   draw_cache_.matrix_data.resize(0);
diff --git a/cc/output/gl_renderer.h b/cc/output/gl_renderer.h
index dc3160a..4930204 100644
--- a/cc/output/gl_renderer.h
+++ b/cc/output/gl_renderer.h
@@ -124,13 +124,15 @@
       scoped_ptr<CopyOutputRequest> request) override;
   void FinishDrawingQuadList() override;
 
-  // Check if quad needs antialiasing and if so, inflate the quad and
-  // fill edge array for fragment shader.  local_quad is set to
-  // inflated quad if antialiasing is required, otherwise it is left
-  // unchanged.  edge array is filled with inflated quad's edge data
-  // if antialiasing is required, otherwise it is left unchanged.
   // Returns true if quad requires antialiasing and false otherwise.
-  static bool SetupQuadForAntialiasing(const gfx::Transform& device_transform,
+  static bool ShouldAntialiasQuad(const gfx::Transform& device_transform,
+                                  const DrawQuad* quad,
+                                  bool force_antialiasing);
+
+  // Inflate the quad and fill edge array for fragment shader.
+  // |local_quad| is set to inflated quad. |edge| array is filled with
+  // inflated quad's edge data.
+  static void SetupQuadForAntialiasing(const gfx::Transform& device_transform,
                                        const DrawQuad* quad,
                                        gfx::QuadF* local_quad,
                                        float edge[24]);
@@ -168,7 +170,7 @@
   scoped_ptr<ScopedResource> ApplyInverseTransformForBackgroundFilters(
       DrawingFrame* frame,
       const RenderPassDrawQuad* quad,
-      const gfx::Transform& contents_device_transform_inverse,
+      const gfx::Transform& contents_device_transform,
       skia::RefPtr<SkImage> backdrop_bitmap,
       const gfx::Rect& backdrop_bounding_rect);
 
@@ -186,6 +188,13 @@
   void DrawContentQuad(const DrawingFrame* frame,
                        const ContentDrawQuadBase* quad,
                        ResourceProvider::ResourceId resource_id);
+  void DrawContentQuadAA(const DrawingFrame* frame,
+                         const ContentDrawQuadBase* quad,
+                         ResourceProvider::ResourceId resource_id,
+                         const gfx::Transform& device_transform);
+  void DrawContentQuadNoAA(const DrawingFrame* frame,
+                           const ContentDrawQuadBase* quad,
+                           ResourceProvider::ResourceId resource_id);
   void DrawYUVVideoQuad(const DrawingFrame* frame,
                         const YUVVideoDrawQuad* quad);
   void DrawPictureQuad(const DrawingFrame* frame,
diff --git a/cc/output/gl_renderer_draw_cache.cc b/cc/output/gl_renderer_draw_cache.cc
index 51834c4..a0004f2 100644
--- a/cc/output/gl_renderer_draw_cache.cc
+++ b/cc/output/gl_renderer_draw_cache.cc
@@ -7,7 +7,16 @@
 namespace cc {
 
 TexturedQuadDrawCache::TexturedQuadDrawCache()
-    : program_id(0) {}
+    : program_id(-1),
+      resource_id(-1),
+      needs_blending(false),
+      background_color(0),
+      uv_xform_location(-1),
+      background_color_location(-1),
+      vertex_opacity_location(-1),
+      matrix_location(-1),
+      sampler_location(-1) {
+}
 
 TexturedQuadDrawCache::~TexturedQuadDrawCache() {}
 
diff --git a/cc/output/overlay_unittest.cc b/cc/output/overlay_unittest.cc
index 8b7dc2a..99192c8 100644
--- a/cc/output/overlay_unittest.cc
+++ b/cc/output/overlay_unittest.cc
@@ -537,6 +537,8 @@
 
   MOCK_METHOD2(DoDrawQuad, void(DrawingFrame* frame, const DrawQuad* quad));
 
+  using GLRenderer::BeginDrawingFrame;
+
   virtual void FinishDrawingFrame(DrawingFrame* frame) override {
     GLRenderer::FinishDrawingFrame(frame);
 
@@ -724,19 +726,26 @@
   ResourceProvider::ResourceId resource2 =
       CreateResource(resource_provider_.get());
 
+  scoped_ptr<RenderPass> pass = CreateRenderPass();
+  RenderPassList pass_list;
+  pass_list.push_back(pass.Pass());
+
   DirectRenderer::DrawingFrame frame1;
+  frame1.render_passes_in_draw_order = &pass_list;
   frame1.overlay_list.resize(2);
   OverlayCandidate& overlay1 = frame1.overlay_list.back();
   overlay1.resource_id = resource1;
   overlay1.plane_z_order = 1;
 
   DirectRenderer::DrawingFrame frame2;
+  frame2.render_passes_in_draw_order = &pass_list;
   frame2.overlay_list.resize(2);
   OverlayCandidate& overlay2 = frame2.overlay_list.back();
   overlay2.resource_id = resource2;
   overlay2.plane_z_order = 1;
 
   EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
+  renderer_->BeginDrawingFrame(&frame1);
   renderer_->FinishDrawingFrame(&frame1);
   EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
   EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2));
@@ -744,6 +753,7 @@
   Mock::VerifyAndClearExpectations(&scheduler_);
 
   EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
+  renderer_->BeginDrawingFrame(&frame2);
   renderer_->FinishDrawingFrame(&frame2);
   EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
   EXPECT_TRUE(resource_provider_->InUseByConsumer(resource2));
@@ -752,6 +762,7 @@
   Mock::VerifyAndClearExpectations(&scheduler_);
 
   EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
+  renderer_->BeginDrawingFrame(&frame1);
   renderer_->FinishDrawingFrame(&frame1);
   EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
   EXPECT_TRUE(resource_provider_->InUseByConsumer(resource2));
@@ -762,7 +773,9 @@
   // No overlays, release the resource.
   EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0);
   DirectRenderer::DrawingFrame frame3;
+  frame3.render_passes_in_draw_order = &pass_list;
   renderer_->set_expect_overlays(false);
+  renderer_->BeginDrawingFrame(&frame3);
   renderer_->FinishDrawingFrame(&frame3);
   EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
   EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2));
@@ -773,12 +786,14 @@
   // Use the same buffer twice.
   renderer_->set_expect_overlays(true);
   EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
+  renderer_->BeginDrawingFrame(&frame1);
   renderer_->FinishDrawingFrame(&frame1);
   EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
   SwapBuffers();
   Mock::VerifyAndClearExpectations(&scheduler_);
 
   EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
+  renderer_->BeginDrawingFrame(&frame1);
   renderer_->FinishDrawingFrame(&frame1);
   EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
   SwapBuffers();
@@ -787,6 +802,7 @@
 
   EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0);
   renderer_->set_expect_overlays(false);
+  renderer_->BeginDrawingFrame(&frame3);
   renderer_->FinishDrawingFrame(&frame3);
   EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
   SwapBuffers();
diff --git a/cc/output/shader.cc b/cc/output/shader.cc
index eb5041a..b962d4a 100644
--- a/cc/output/shader.cc
+++ b/cc/output/shader.cc
@@ -546,6 +546,7 @@
   return VERTEX_SHADER(
       // clang-format on
       attribute TexCoordPrecision vec4 a_position;
+      attribute TexCoordPrecision vec2 a_texCoord;
       attribute float a_index;
       uniform mat4 matrix;
       uniform TexCoordPrecision vec2 quad[4];
@@ -554,7 +555,7 @@
       void main() {
         vec2 pos = quad[int(a_index)];  // NOLINT
         gl_Position = matrix * vec4(pos, a_position.z, a_position.w);
-        v_texCoord = pos.xy * vertexTexTransform.zw + vertexTexTransform.xy;
+        v_texCoord = a_texCoord * vertexTexTransform.zw + vertexTexTransform.xy;
       }
       // clang-format off
   );  // NOLINT(whitespace/parens)
diff --git a/cc/output/software_renderer.cc b/cc/output/software_renderer.cc
index 010b1fa..06f1851 100644
--- a/cc/output/software_renderer.cc
+++ b/cc/output/software_renderer.cc
@@ -350,8 +350,8 @@
   TRACE_EVENT0("cc",
                "SoftwareRenderer::DrawPictureQuad");
 
-  quad->picture_pile->RasterDirect(
-      current_canvas_, quad->content_rect, quad->contents_scale, NULL);
+  quad->picture_pile->RasterDirect(current_canvas_, quad->content_rect,
+                                   quad->contents_scale);
 
   current_canvas_->setDrawFilter(NULL);
 }
diff --git a/cc/quads/draw_quad_unittest.cc b/cc/quads/draw_quad_unittest.cc
index 1d09307..d3753ca 100644
--- a/cc/quads/draw_quad_unittest.cc
+++ b/cc/quads/draw_quad_unittest.cc
@@ -102,13 +102,13 @@
       render_pass->CreateAndAppendSharedQuadState();                       \
   copy_shared_state->CopyFrom(shared_state);
 
-#define QUAD_DATA \
-    gfx::Rect quad_rect(30, 40, 50, 60); \
-    gfx::Rect quad_visible_rect(40, 50, 30, 20); \
-    gfx::Rect quad_opaque_rect( 60, 55, 10, 10); \
-    ALLOW_UNUSED_LOCAL(quad_opaque_rect); \
-    bool needs_blending = true; \
-    ALLOW_UNUSED_LOCAL(needs_blending);
+#define QUAD_DATA                              \
+  gfx::Rect quad_rect(30, 40, 50, 60);         \
+  gfx::Rect quad_visible_rect(40, 50, 30, 20); \
+  gfx::Rect quad_opaque_rect(60, 55, 10, 10);  \
+  ALLOW_UNUSED_LOCAL(quad_opaque_rect);        \
+  bool needs_blending = true;                  \
+  ALLOW_UNUSED_LOCAL(needs_blending);
 
 #define SETUP_AND_COPY_QUAD_NEW(Type, quad)                                \
   DrawQuad* copy_new =                                                     \
@@ -979,14 +979,14 @@
         break;
     }
   }
-  EXPECT_EQ(sizeof(kLargestDrawQuad), largest);
+  EXPECT_EQ(LargestDrawQuadSize(), largest);
 
   if (!HasFailure())
     return;
 
   // On failure, output the size of all quads for debugging.
   LOG(ERROR) << "largest " << largest;
-  LOG(ERROR) << "kLargestDrawQuad " << sizeof(kLargestDrawQuad);
+  LOG(ERROR) << "kLargestDrawQuad " << LargestDrawQuadSize();
   for (int i = 0; i <= DrawQuad::MATERIAL_LAST; ++i) {
     switch (static_cast<DrawQuad::Material>(i)) {
       case DrawQuad::CHECKERBOARD:
diff --git a/cc/quads/largest_draw_quad.cc b/cc/quads/largest_draw_quad.cc
new file mode 100644
index 0000000..55fcb22
--- /dev/null
+++ b/cc/quads/largest_draw_quad.cc
@@ -0,0 +1,20 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "cc/quads/largest_draw_quad.h"
+
+#include <algorithm>
+
+#include "cc/quads/render_pass_draw_quad.h"
+#include "cc/quads/stream_video_draw_quad.h"
+
+namespace cc {
+
+size_t LargestDrawQuadSize() {
+  // The largest quad is either a RenderPassDrawQuad or a StreamVideoDrawQuad
+  // depends on hardware structure.
+  return std::max(sizeof(RenderPassDrawQuad), sizeof(StreamVideoDrawQuad));
+}
+
+}  // namespace cc
diff --git a/cc/quads/largest_draw_quad.h b/cc/quads/largest_draw_quad.h
index d14906a..85d9f17 100644
--- a/cc/quads/largest_draw_quad.h
+++ b/cc/quads/largest_draw_quad.h
@@ -5,15 +5,12 @@
 #ifndef CC_QUADS_LARGEST_DRAW_QUAD_H_
 #define CC_QUADS_LARGEST_DRAW_QUAD_H_
 
-namespace cc {
-class StreamVideoDrawQuad;
-class RenderPassDrawQuad;
+#include "base/basictypes.h"
+#include "cc/base/cc_export.h"
 
-#if defined(ARCH_CPU_64_BITS)
-typedef RenderPassDrawQuad kLargestDrawQuad;
-#else
-typedef StreamVideoDrawQuad kLargestDrawQuad;
-#endif
+namespace cc {
+
+CC_EXPORT size_t LargestDrawQuadSize();
 
 }  // namespace cc
 
diff --git a/cc/quads/list_container.h b/cc/quads/list_container.h
index a61a6e0..dd313fc 100644
--- a/cc/quads/list_container.h
+++ b/cc/quads/list_container.h
@@ -20,7 +20,7 @@
 // pointer will continue to be valid.  This class is used to contain
 // SharedQuadState or DrawQuad. Since the size of each DrawQuad varies, to hold
 // DrawQuads, the allocations size of each element in this class is
-// kLargestDrawQuad while BaseElementType is DrawQuad.
+// LargestDrawQuadSize while BaseElementType is DrawQuad.
 template <class BaseElementType>
 class CC_EXPORT ListContainer {
  public:
diff --git a/cc/quads/list_container_unittest.cc b/cc/quads/list_container_unittest.cc
index d68ab59..3ef677c 100644
--- a/cc/quads/list_container_unittest.cc
+++ b/cc/quads/list_container_unittest.cc
@@ -64,7 +64,7 @@
 };
 
 TEST(ListContainerTest, ConstructorCalledInAllocateAndConstruct) {
-  ListContainer<DrawQuad> list(sizeof(kLargestDrawQuad));
+  ListContainer<DrawQuad> list(LargestDrawQuadSize());
 
   size_t size = 2;
   SimpleDrawQuadConstructMagicNumberOne* dq_1 =
@@ -81,7 +81,7 @@
 }
 
 TEST(ListContainerTest, DestructorCalled) {
-  ListContainer<DrawQuad> list(sizeof(kLargestDrawQuad));
+  ListContainer<DrawQuad> list(LargestDrawQuadSize());
 
   size_t size = 1;
   MockDrawQuad* dq_1 = list.AllocateAndConstruct<MockDrawQuad>();
@@ -92,7 +92,7 @@
 }
 
 TEST(ListContainerTest, DestructorCalledOnceWhenClear) {
-  ListContainer<DrawQuad> list(sizeof(kLargestDrawQuad));
+  ListContainer<DrawQuad> list(LargestDrawQuadSize());
   size_t size = 1;
   MockDrawQuad* dq_1 = list.AllocateAndConstruct<MockDrawQuad>();
 
@@ -114,7 +114,7 @@
 }
 
 TEST(ListContainerTest, DestructorCalledOnceWhenErase) {
-  ListContainer<DrawQuad> list(sizeof(kLargestDrawQuad));
+  ListContainer<DrawQuad> list(LargestDrawQuadSize());
   size_t size = 1;
   MockDrawQuad* dq_1 = list.AllocateAndConstruct<MockDrawQuad>();
 
@@ -435,7 +435,7 @@
 }
 
 TEST(ListContainerTest, SimpleDeletion) {
-  ListContainer<DrawQuad> list(sizeof(kLargestDrawQuad));
+  ListContainer<DrawQuad> list(LargestDrawQuadSize());
   std::vector<SimpleDrawQuad*> sdq_list;
   size_t size = 10;
   for (size_t i = 0; i < size; ++i) {
@@ -457,7 +457,7 @@
 }
 
 TEST(ListContainerTest, SimpleIterationAndManipulation) {
-  ListContainer<DrawQuad> list(sizeof(kLargestDrawQuad));
+  ListContainer<DrawQuad> list(LargestDrawQuadSize());
   std::vector<SimpleDrawQuad*> sdq_list;
   size_t size = 10;
   for (size_t i = 0; i < size; ++i) {
@@ -482,7 +482,7 @@
 }
 
 TEST(ListContainerTest, SimpleManipulationWithIndexSimpleDrawQuad) {
-  ListContainer<DrawQuad> list(sizeof(kLargestDrawQuad));
+  ListContainer<DrawQuad> list(LargestDrawQuadSize());
   std::vector<SimpleDrawQuad*> dq_list;
   size_t size = 10;
   for (size_t i = 0; i < size; ++i) {
@@ -504,7 +504,7 @@
 
 TEST(ListContainerTest,
      SimpleManipulationWithIndexMoreThanOneAllocationSimpleDrawQuad) {
-  ListContainer<DrawQuad> list(sizeof(kLargestDrawQuad), 2);
+  ListContainer<DrawQuad> list(LargestDrawQuadSize(), 2);
   std::vector<SimpleDrawQuad*> dq_list;
   size_t size = 10;
   for (size_t i = 0; i < size; ++i) {
diff --git a/cc/quads/render_pass.cc b/cc/quads/render_pass.cc
index e311aec..a1426f5 100644
--- a/cc/quads/render_pass.cc
+++ b/cc/quads/render_pass.cc
@@ -34,8 +34,7 @@
 namespace cc {
 
 QuadList::QuadList(size_t default_size_to_reserve)
-    : ListContainer<DrawQuad>(sizeof(kLargestDrawQuad),
-                              default_size_to_reserve) {
+    : ListContainer<DrawQuad>(LargestDrawQuadSize(), default_size_to_reserve) {
 }
 
 scoped_ptr<RenderPass> RenderPass::Create() {
diff --git a/cc/resources/bitmap_raster_worker_pool.cc b/cc/resources/bitmap_raster_worker_pool.cc
index f58f293..3b3739a 100644
--- a/cc/resources/bitmap_raster_worker_pool.cc
+++ b/cc/resources/bitmap_raster_worker_pool.cc
@@ -26,9 +26,8 @@
   // Overridden from RasterBuffer:
   void Playback(const RasterSource* raster_source,
                 const gfx::Rect& rect,
-                float scale,
-                RenderingStatsInstrumentation* stats) override {
-    raster_source->PlaybackToCanvas(lock_.sk_canvas(), rect, scale, stats);
+                float scale) override {
+    raster_source->PlaybackToCanvas(lock_.sk_canvas(), rect, scale);
   }
 
  private:
diff --git a/cc/resources/bitmap_skpicture_content_layer_updater.cc b/cc/resources/bitmap_skpicture_content_layer_updater.cc
index 5b4187d..5b8e5e4 100644
--- a/cc/resources/bitmap_skpicture_content_layer_updater.cc
+++ b/cc/resources/bitmap_skpicture_content_layer_updater.cc
@@ -74,14 +74,7 @@
   // Translate the origin of content_rect to that of source_rect.
   canvas->translate(paint_rect().x() - source_rect.x(),
                     paint_rect().y() - source_rect.y());
-  base::TimeTicks start_time =
-      rendering_stats_instrumentation_->StartRecording();
   DrawPicture(canvas);
-  base::TimeDelta duration =
-      rendering_stats_instrumentation_->EndRecording(start_time);
-  rendering_stats_instrumentation_->AddRaster(
-      duration,
-      source_rect.width() * source_rect.height());
 }
 
 }  // namespace cc
diff --git a/cc/resources/gpu_raster_worker_pool.cc b/cc/resources/gpu_raster_worker_pool.cc
index 3237500..04724f1 100644
--- a/cc/resources/gpu_raster_worker_pool.cc
+++ b/cc/resources/gpu_raster_worker_pool.cc
@@ -36,8 +36,7 @@
   // Overridden from RasterBuffer:
   void Playback(const RasterSource* raster_source,
                 const gfx::Rect& rect,
-                float scale,
-                RenderingStatsInstrumentation* stats) override {
+                float scale) override {
     // Turn on distance fields for layers that have ever animated.
     bool use_distance_field_text =
         use_distance_field_text_ ||
@@ -53,7 +52,7 @@
         skia::SharePtr(recorder.beginRecording(size.width(), size.height()));
 
     canvas->save();
-    raster_source->PlaybackToCanvas(canvas.get(), rect, scale, stats);
+    raster_source->PlaybackToCanvas(canvas.get(), rect, scale);
     canvas->restore();
 
     // Add the canvas and recorded picture to |multi_picture_draw_|.
diff --git a/cc/resources/one_copy_raster_worker_pool.cc b/cc/resources/one_copy_raster_worker_pool.cc
index c803262..a8b838e 100644
--- a/cc/resources/one_copy_raster_worker_pool.cc
+++ b/cc/resources/one_copy_raster_worker_pool.cc
@@ -54,16 +54,10 @@
   // Overridden from RasterBuffer:
   void Playback(const RasterSource* raster_source,
                 const gfx::Rect& rect,
-                float scale,
-                RenderingStatsInstrumentation* stats) override {
+                float scale) override {
     sequence_ = worker_pool_->PlaybackAndScheduleCopyOnWorkerThread(
-        lock_.Pass(),
-        raster_resource_.Pass(),
-        resource_,
-        raster_source,
-        rect,
-        scale,
-        stats);
+        lock_.Pass(), raster_resource_.Pass(), resource_, raster_source, rect,
+        scale);
   }
 
  private:
@@ -280,69 +274,62 @@
     const Resource* dst,
     const RasterSource* raster_source,
     const gfx::Rect& rect,
-    float scale,
-    RenderingStatsInstrumentation* stats) {
-  CopySequenceNumber sequence;
+    float scale) {
+  base::AutoLock lock(lock_);
 
-  {
-    base::AutoLock lock(lock_);
+  int failed_attempts = 0;
+  while ((scheduled_copy_operation_count_ + issued_copy_operation_count_) >=
+         kMaxCopyOperations) {
+    // Ignore limit when shutdown is set.
+    if (shutdown_)
+      break;
 
-    int failed_attempts = 0;
-    while ((scheduled_copy_operation_count_ + issued_copy_operation_count_) >=
-           kMaxCopyOperations) {
-      // Ignore limit when shutdown is set.
-      if (shutdown_)
-        break;
+    ++failed_attempts;
 
-      ++failed_attempts;
+    // Schedule a check that will also wait for operations to complete
+    // after too many failed attempts.
+    bool wait_if_needed = failed_attempts > kFailedAttemptsBeforeWaitIfNeeded;
 
-      // Schedule a check that will also wait for operations to complete
-      // after too many failed attempts.
-      bool wait_if_needed = failed_attempts > kFailedAttemptsBeforeWaitIfNeeded;
-
-      // Schedule a check for completed copy operations if too many operations
-      // are currently in-flight.
-      ScheduleCheckForCompletedCopyOperationsWithLockAcquired(wait_if_needed);
-
-      {
-        TRACE_EVENT0("cc", "WaitingForCopyOperationsToComplete");
-
-        // Wait for in-flight copy operations to drop below limit.
-        copy_operation_count_cv_.Wait();
-      }
-    }
-
-    // Increment |scheduled_copy_operation_count_| before releasing |lock_|.
-    ++scheduled_copy_operation_count_;
-
-    // There may be more work available, so wake up another worker thread.
-    copy_operation_count_cv_.Signal();
+    // Schedule a check for completed copy operations if too many operations
+    // are currently in-flight.
+    ScheduleCheckForCompletedCopyOperationsWithLockAcquired(wait_if_needed);
 
     {
-      base::AutoUnlock unlock(lock_);
+      TRACE_EVENT0("cc", "WaitingForCopyOperationsToComplete");
 
-      gfx::GpuMemoryBuffer* gpu_memory_buffer =
-          write_lock->GetGpuMemoryBuffer();
-      if (gpu_memory_buffer) {
-        RasterWorkerPool::PlaybackToMemory(gpu_memory_buffer->Map(),
-                                           src->format(),
-                                           src->size(),
-                                           gpu_memory_buffer->GetStride(),
-                                           raster_source,
-                                           rect,
-                                           scale,
-                                           stats);
-        gpu_memory_buffer->Unmap();
-      }
+      // Wait for in-flight copy operations to drop below limit.
+      copy_operation_count_cv_.Wait();
     }
-
-    // Acquire a sequence number for this copy operation.
-    sequence = next_copy_operation_sequence_++;
-
-    pending_copy_operations_.push_back(
-        make_scoped_ptr(new CopyOperation(write_lock.Pass(), src.Pass(), dst)));
   }
 
+  // Increment |scheduled_copy_operation_count_| before releasing |lock_|.
+  ++scheduled_copy_operation_count_;
+
+  // There may be more work available, so wake up another worker thread.
+  copy_operation_count_cv_.Signal();
+
+  {
+    base::AutoUnlock unlock(lock_);
+
+    gfx::GpuMemoryBuffer* gpu_memory_buffer = write_lock->GetGpuMemoryBuffer();
+    if (gpu_memory_buffer) {
+      RasterWorkerPool::PlaybackToMemory(gpu_memory_buffer->Map(),
+                                         src->format(),
+                                         src->size(),
+                                         gpu_memory_buffer->GetStride(),
+                                         raster_source,
+                                         rect,
+                                         scale);
+      gpu_memory_buffer->Unmap();
+    }
+  }
+
+  pending_copy_operations_.push_back(
+      make_scoped_ptr(new CopyOperation(write_lock.Pass(), src.Pass(), dst)));
+
+  // Acquire a sequence number for this copy operation.
+  CopySequenceNumber sequence = next_copy_operation_sequence_++;
+
   // Post task that will advance last flushed copy operation to |sequence|
   // if we have reached the flush period.
   if ((sequence % kCopyFlushPeriod) == 0) {
diff --git a/cc/resources/one_copy_raster_worker_pool.h b/cc/resources/one_copy_raster_worker_pool.h
index 1dc102f..b209da2 100644
--- a/cc/resources/one_copy_raster_worker_pool.h
+++ b/cc/resources/one_copy_raster_worker_pool.h
@@ -62,8 +62,7 @@
       const Resource* dst,
       const RasterSource* raster_source,
       const gfx::Rect& rect,
-      float scale,
-      RenderingStatsInstrumentation* stats);
+      float scale);
 
   // Issues copy operations until |sequence| has been processed. This will
   // return immediately if |sequence| has already been processed.
diff --git a/cc/resources/picture_pile.cc b/cc/resources/picture_pile.cc
index e00ed54..1ad673b 100644
--- a/cc/resources/picture_pile.cc
+++ b/cc/resources/picture_pile.cc
@@ -538,9 +538,7 @@
 
 void PicturePile::SetEmptyBounds() {
   tiling_.SetTilingSize(gfx::Size());
-  picture_map_.clear();
-  has_any_recordings_ = false;
-  recorded_viewport_ = gfx::Rect();
+  Clear();
 }
 
 void PicturePile::DetermineIfSolidColor() {
diff --git a/cc/resources/picture_pile_base.cc b/cc/resources/picture_pile_base.cc
index e7888f7..a145b6c 100644
--- a/cc/resources/picture_pile_base.cc
+++ b/cc/resources/picture_pile_base.cc
@@ -130,6 +130,8 @@
 void PicturePileBase::Clear() {
   picture_map_.clear();
   recorded_viewport_ = gfx::Rect();
+  has_any_recordings_ = false;
+  is_solid_color_ = false;
 }
 
 bool PicturePileBase::HasRecordingAt(int x, int y) {
diff --git a/cc/resources/picture_pile_impl.cc b/cc/resources/picture_pile_impl.cc
index f7c24c7..0ad746c 100644
--- a/cc/resources/picture_pile_impl.cc
+++ b/cc/resources/picture_pile_impl.cc
@@ -37,33 +37,25 @@
 PicturePileImpl::~PicturePileImpl() {
 }
 
-void PicturePileImpl::RasterDirect(
-    SkCanvas* canvas,
-    const gfx::Rect& canvas_rect,
-    float contents_scale,
-    RenderingStatsInstrumentation* rendering_stats_instrumentation) const {
+void PicturePileImpl::RasterDirect(SkCanvas* canvas,
+                                   const gfx::Rect& canvas_rect,
+                                   float contents_scale) const {
   RasterCommon(canvas,
                NULL,
                canvas_rect,
                contents_scale,
-               rendering_stats_instrumentation,
                false);
 }
 
-void PicturePileImpl::RasterForAnalysis(
-    skia::AnalysisCanvas* canvas,
-    const gfx::Rect& canvas_rect,
-    float contents_scale,
-    RenderingStatsInstrumentation* stats_instrumentation) const {
-  RasterCommon(
-      canvas, canvas, canvas_rect, contents_scale, stats_instrumentation, true);
+void PicturePileImpl::RasterForAnalysis(skia::AnalysisCanvas* canvas,
+                                        const gfx::Rect& canvas_rect,
+                                        float contents_scale) const {
+  RasterCommon(canvas, canvas, canvas_rect, contents_scale, true);
 }
 
-void PicturePileImpl::PlaybackToCanvas(
-    SkCanvas* canvas,
-    const gfx::Rect& canvas_rect,
-    float contents_scale,
-    RenderingStatsInstrumentation* rendering_stats_instrumentation) const {
+void PicturePileImpl::PlaybackToCanvas(SkCanvas* canvas,
+                                       const gfx::Rect& canvas_rect,
+                                       float contents_scale) const {
   canvas->discard();
   if (clear_canvas_with_debug_color_) {
     // Any non-painted areas in the content bounds will be left in this color.
@@ -125,7 +117,6 @@
                NULL,
                canvas_rect,
                contents_scale,
-               rendering_stats_instrumentation,
                false);
 }
 
@@ -229,7 +220,6 @@
     SkDrawPictureCallback* callback,
     const gfx::Rect& canvas_rect,
     float contents_scale,
-    RenderingStatsInstrumentation* rendering_stats_instrumentation,
     bool is_analysis) const {
   DCHECK(contents_scale >= min_contents_scale_);
 
@@ -265,34 +255,10 @@
     total_clip.Union(positive_clip);
 #endif  // NDEBUG
 
-    base::TimeDelta best_duration = base::TimeDelta::Max();
     int repeat_count = std::max(1, slow_down_raster_scale_factor_for_debug_);
-    int rasterized_pixel_count = 0;
 
-    for (int j = 0; j < repeat_count; ++j) {
-      base::TimeTicks start_time;
-      if (rendering_stats_instrumentation)
-        start_time = rendering_stats_instrumentation->StartRecording();
-
-      rasterized_pixel_count = picture->Raster(
-          canvas, callback, negated_clip_region, contents_scale);
-
-      if (rendering_stats_instrumentation) {
-        base::TimeDelta duration =
-            rendering_stats_instrumentation->EndRecording(start_time);
-        best_duration = std::min(best_duration, duration);
-      }
-    }
-
-    if (rendering_stats_instrumentation) {
-      if (is_analysis) {
-        rendering_stats_instrumentation->AddAnalysis(best_duration,
-                                                     rasterized_pixel_count);
-      } else {
-        rendering_stats_instrumentation->AddRaster(best_duration,
-                                                   rasterized_pixel_count);
-      }
-    }
+    for (int j = 0; j < repeat_count; ++j)
+      picture->Raster(canvas, callback, negated_clip_region, contents_scale);
   }
 
 #ifndef NDEBUG
@@ -316,7 +282,7 @@
   SkCanvas* canvas =
       recorder.beginRecording(tiling_rect.width(), tiling_rect.height());
   if (!tiling_rect.IsEmpty())
-    PlaybackToCanvas(canvas, tiling_rect, 1.0, NULL);
+    PlaybackToCanvas(canvas, tiling_rect, 1.0);
   skia::RefPtr<SkPicture> picture = skia::AdoptRef(recorder.endRecording());
 
   return picture;
@@ -325,8 +291,7 @@
 void PicturePileImpl::PerformSolidColorAnalysis(
     const gfx::Rect& content_rect,
     float contents_scale,
-    RasterSource::SolidColorAnalysis* analysis,
-    RenderingStatsInstrumentation* stats_instrumentation) const {
+    RasterSource::SolidColorAnalysis* analysis) const {
   DCHECK(analysis);
   TRACE_EVENT0("cc", "PicturePileImpl::PerformSolidColorAnalysis");
 
@@ -337,7 +302,7 @@
 
   skia::AnalysisCanvas canvas(layer_rect.width(), layer_rect.height());
 
-  RasterForAnalysis(&canvas, layer_rect, 1.0f, stats_instrumentation);
+  RasterForAnalysis(&canvas, layer_rect, 1.0f);
 
   analysis->is_solid_color = canvas.GetColorIfSolid(&analysis->solid_color);
 }
diff --git a/cc/resources/picture_pile_impl.h b/cc/resources/picture_pile_impl.h
index 1eb2187..9f350a9 100644
--- a/cc/resources/picture_pile_impl.h
+++ b/cc/resources/picture_pile_impl.h
@@ -32,16 +32,13 @@
   // When slow-down-raster-scale-factor is set to a value greater than 1, the
   // reported rasterize time (in stats_instrumentation) is the minimum measured
   // value over all runs.
-  void PlaybackToCanvas(
-      SkCanvas* canvas,
-      const gfx::Rect& canvas_rect,
-      float contents_scale,
-      RenderingStatsInstrumentation* stats_instrumentation) const override;
+  void PlaybackToCanvas(SkCanvas* canvas,
+                        const gfx::Rect& canvas_rect,
+                        float contents_scale) const override;
   void PerformSolidColorAnalysis(
       const gfx::Rect& content_rect,
       float contents_scale,
-      RasterSource::SolidColorAnalysis* analysis,
-      RenderingStatsInstrumentation* stats_instrumentation) const override;
+      RasterSource::SolidColorAnalysis* analysis) const override;
   void GatherPixelRefs(const gfx::Rect& content_rect,
                        float contents_scale,
                        std::vector<SkPixelRef*>* pixel_refs) const override;
@@ -50,11 +47,9 @@
   bool SuitableForDistanceFieldText() const override;
 
   // Raster into the canvas without applying clips.
-  void RasterDirect(
-      SkCanvas* canvas,
-      const gfx::Rect& canvas_rect,
-      float contents_scale,
-      RenderingStatsInstrumentation* rendering_stats_instrumentation) const;
+  void RasterDirect(SkCanvas* canvas,
+                    const gfx::Rect& canvas_rect,
+                    float contents_scale) const;
 
   // Tracing functionality.
   void DidBeginTracing();
@@ -101,11 +96,9 @@
 
   // Called when analyzing a tile. We can use AnalysisCanvas as
   // SkDrawPictureCallback, which allows us to early out from analysis.
-  void RasterForAnalysis(
-      skia::AnalysisCanvas* canvas,
-      const gfx::Rect& canvas_rect,
-      float contents_scale,
-      RenderingStatsInstrumentation* stats_instrumentation) const;
+  void RasterForAnalysis(skia::AnalysisCanvas* canvas,
+                         const gfx::Rect& canvas_rect,
+                         float contents_scale) const;
 
   void CoalesceRasters(const gfx::Rect& canvas_rect,
                        const gfx::Rect& content_rect,
@@ -117,7 +110,6 @@
       SkDrawPictureCallback* callback,
       const gfx::Rect& canvas_rect,
       float contents_scale,
-      RenderingStatsInstrumentation* rendering_stats_instrumentation,
       bool is_analysis) const;
 
   bool likely_to_be_used_for_transform_animation_;
diff --git a/cc/resources/picture_pile_impl_perftest.cc b/cc/resources/picture_pile_impl_perftest.cc
index e3bbac7..7e24724 100644
--- a/cc/resources/picture_pile_impl_perftest.cc
+++ b/cc/resources/picture_pile_impl_perftest.cc
@@ -6,7 +6,6 @@
 
 #include "cc/debug/lap_timer.h"
 #include "cc/test/fake_picture_pile_impl.h"
-#include "cc/test/fake_rendering_stats_instrumentation.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "testing/perf/perf_test.h"
 
@@ -36,8 +35,7 @@
     RasterSource::SolidColorAnalysis analysis;
     timer_.Reset();
     do {
-      pile->PerformSolidColorAnalysis(
-          content_rect, contents_scale, &analysis, nullptr);
+      pile->PerformSolidColorAnalysis(content_rect, contents_scale, &analysis);
       timer_.NextLap();
     } while (!timer_.HasTimeLimitExpired());
 
@@ -55,13 +53,9 @@
     bitmap.allocN32Pixels(1, 1);
     SkCanvas canvas(bitmap);
 
-    FakeRenderingStatsInstrumentation rendering_stats_instrumentation;
     timer_.Reset();
     do {
-      pile->PlaybackToCanvas(&canvas,
-                             content_rect,
-                             contents_scale,
-                             &rendering_stats_instrumentation);
+      pile->PlaybackToCanvas(&canvas, content_rect, contents_scale);
       timer_.NextLap();
     } while (!timer_.HasTimeLimitExpired());
 
diff --git a/cc/resources/picture_pile_impl_unittest.cc b/cc/resources/picture_pile_impl_unittest.cc
index bd796a5..6dcf740 100644
--- a/cc/resources/picture_pile_impl_unittest.cc
+++ b/cc/resources/picture_pile_impl_unittest.cc
@@ -4,7 +4,6 @@
 
 #include "base/memory/scoped_ptr.h"
 #include "cc/test/fake_picture_pile_impl.h"
-#include "cc/test/fake_rendering_stats_instrumentation.h"
 #include "cc/test/skia_common.h"
 #include "skia/ext/refptr.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -39,7 +38,7 @@
     for (int x = 0; x <= 300; x += 100) {
       RasterSource::SolidColorAnalysis analysis;
       gfx::Rect rect(x, y, 100, 100);
-      pile->PerformSolidColorAnalysis(rect, 1.0, &analysis, nullptr);
+      pile->PerformSolidColorAnalysis(rect, 1.0, &analysis);
       EXPECT_TRUE(analysis.is_solid_color) << rect.ToString();
       EXPECT_EQ(analysis.solid_color, solid_color) << rect.ToString();
     }
@@ -50,31 +49,27 @@
   pile->RerecordPile();
 
   RasterSource::SolidColorAnalysis analysis;
-  pile->PerformSolidColorAnalysis(
-      gfx::Rect(0, 0, 100, 100), 1.0, &analysis, nullptr);
+  pile->PerformSolidColorAnalysis(gfx::Rect(0, 0, 100, 100), 1.0, &analysis);
   EXPECT_FALSE(analysis.is_solid_color);
 
-  pile->PerformSolidColorAnalysis(
-      gfx::Rect(100, 0, 100, 100), 1.0, &analysis, nullptr);
+  pile->PerformSolidColorAnalysis(gfx::Rect(100, 0, 100, 100), 1.0, &analysis);
   EXPECT_TRUE(analysis.is_solid_color);
   EXPECT_EQ(analysis.solid_color, solid_color);
 
   // Boundaries should be clipped
   analysis.is_solid_color = false;
-  pile->PerformSolidColorAnalysis(
-      gfx::Rect(350, 0, 100, 100), 1.0, &analysis, nullptr);
+  pile->PerformSolidColorAnalysis(gfx::Rect(350, 0, 100, 100), 1.0, &analysis);
   EXPECT_TRUE(analysis.is_solid_color);
   EXPECT_EQ(analysis.solid_color, solid_color);
 
   analysis.is_solid_color = false;
-  pile->PerformSolidColorAnalysis(
-      gfx::Rect(0, 350, 100, 100), 1.0, &analysis, nullptr);
+  pile->PerformSolidColorAnalysis(gfx::Rect(0, 350, 100, 100), 1.0, &analysis);
   EXPECT_TRUE(analysis.is_solid_color);
   EXPECT_EQ(analysis.solid_color, solid_color);
 
   analysis.is_solid_color = false;
-  pile->PerformSolidColorAnalysis(
-      gfx::Rect(350, 350, 100, 100), 1.0, &analysis, nullptr);
+  pile->PerformSolidColorAnalysis(gfx::Rect(350, 350, 100, 100), 1.0,
+                                  &analysis);
   EXPECT_TRUE(analysis.is_solid_color);
   EXPECT_EQ(analysis.solid_color, solid_color);
 }
@@ -102,7 +97,7 @@
     for (int x = 0; x <= 30; x += 10) {
       RasterSource::SolidColorAnalysis analysis;
       gfx::Rect rect(x, y, 10, 10);
-      pile->PerformSolidColorAnalysis(rect, 0.1f, &analysis, nullptr);
+      pile->PerformSolidColorAnalysis(rect, 0.1f, &analysis);
       EXPECT_TRUE(analysis.is_solid_color) << rect.ToString();
       EXPECT_EQ(analysis.solid_color, solid_color) << rect.ToString();
     }
@@ -113,31 +108,26 @@
   pile->RerecordPile();
 
   RasterSource::SolidColorAnalysis analysis;
-  pile->PerformSolidColorAnalysis(
-      gfx::Rect(0, 0, 10, 10), 0.1f, &analysis, nullptr);
+  pile->PerformSolidColorAnalysis(gfx::Rect(0, 0, 10, 10), 0.1f, &analysis);
   EXPECT_FALSE(analysis.is_solid_color);
 
-  pile->PerformSolidColorAnalysis(
-      gfx::Rect(10, 0, 10, 10), 0.1f, &analysis, nullptr);
+  pile->PerformSolidColorAnalysis(gfx::Rect(10, 0, 10, 10), 0.1f, &analysis);
   EXPECT_TRUE(analysis.is_solid_color);
   EXPECT_EQ(analysis.solid_color, solid_color);
 
   // Boundaries should be clipped
   analysis.is_solid_color = false;
-  pile->PerformSolidColorAnalysis(
-      gfx::Rect(35, 0, 10, 10), 0.1f, &analysis, nullptr);
+  pile->PerformSolidColorAnalysis(gfx::Rect(35, 0, 10, 10), 0.1f, &analysis);
   EXPECT_TRUE(analysis.is_solid_color);
   EXPECT_EQ(analysis.solid_color, solid_color);
 
   analysis.is_solid_color = false;
-  pile->PerformSolidColorAnalysis(
-      gfx::Rect(0, 35, 10, 10), 0.1f, &analysis, nullptr);
+  pile->PerformSolidColorAnalysis(gfx::Rect(0, 35, 10, 10), 0.1f, &analysis);
   EXPECT_TRUE(analysis.is_solid_color);
   EXPECT_EQ(analysis.solid_color, solid_color);
 
   analysis.is_solid_color = false;
-  pile->PerformSolidColorAnalysis(
-      gfx::Rect(35, 35, 10, 10), 0.1f, &analysis, nullptr);
+  pile->PerformSolidColorAnalysis(gfx::Rect(35, 35, 10, 10), 0.1f, &analysis);
   EXPECT_TRUE(analysis.is_solid_color);
   EXPECT_EQ(analysis.solid_color, solid_color);
 }
@@ -151,8 +141,7 @@
   RasterSource::SolidColorAnalysis analysis;
   EXPECT_FALSE(analysis.is_solid_color);
 
-  pile->PerformSolidColorAnalysis(
-      gfx::Rect(0, 0, 400, 400), 1.f, &analysis, nullptr);
+  pile->PerformSolidColorAnalysis(gfx::Rect(0, 0, 400, 400), 1.f, &analysis);
 
   EXPECT_TRUE(analysis.is_solid_color);
   EXPECT_EQ(analysis.solid_color, SkColorSetARGB(0, 0, 0, 0));
@@ -696,12 +685,7 @@
       SkCanvas canvas(bitmap);
       canvas.clear(SK_ColorTRANSPARENT);
 
-      FakeRenderingStatsInstrumentation rendering_stats_instrumentation;
-
-      pile->PlaybackToCanvas(&canvas,
-                             canvas_rect,
-                             contents_scale,
-                             &rendering_stats_instrumentation);
+      pile->PlaybackToCanvas(&canvas, canvas_rect, contents_scale);
 
       SkColor* pixels = reinterpret_cast<SkColor*>(bitmap.getPixels());
       int num_pixels = bitmap.width() * bitmap.height();
@@ -748,9 +732,7 @@
   bitmap.allocN32Pixels(canvas_rect.width(), canvas_rect.height());
   SkCanvas canvas(bitmap);
 
-  FakeRenderingStatsInstrumentation rendering_stats_instrumentation;
-  pile->PlaybackToCanvas(
-      &canvas, canvas_rect, contents_scale, &rendering_stats_instrumentation);
+  pile->PlaybackToCanvas(&canvas, canvas_rect, contents_scale);
 
   SkColor* pixels = reinterpret_cast<SkColor*>(bitmap.getPixels());
   int num_pixels = bitmap.width() * bitmap.height();
@@ -794,11 +776,7 @@
   bitmap.allocN32Pixels(content_bounds.width(), content_bounds.height());
   SkCanvas canvas(bitmap);
 
-  FakeRenderingStatsInstrumentation rendering_stats_instrumentation;
-  pile->PlaybackToCanvas(&canvas,
-                         gfx::Rect(content_bounds),
-                         contents_scale,
-                         &rendering_stats_instrumentation);
+  pile->PlaybackToCanvas(&canvas, gfx::Rect(content_bounds), contents_scale);
 
   for (int y = 0; y < bitmap.height(); y++) {
     for (int x = 0; x < bitmap.width(); x++) {
diff --git a/cc/resources/picture_pile_unittest.cc b/cc/resources/picture_pile_unittest.cc
index 98415ca..24bed3e 100644
--- a/cc/resources/picture_pile_unittest.cc
+++ b/cc/resources/picture_pile_unittest.cc
@@ -1456,5 +1456,17 @@
   EXPECT_FALSE(pile_.is_solid_color());
 }
 
+TEST_F(PicturePileTest, SetEmptyBounds) {
+  EXPECT_TRUE(pile_.is_solid_color());
+  EXPECT_FALSE(pile_.tiling_size().IsEmpty());
+  EXPECT_FALSE(pile_.picture_map().empty());
+  EXPECT_TRUE(pile_.HasRecordings());
+  pile_.SetEmptyBounds();
+  EXPECT_FALSE(pile_.is_solid_color());
+  EXPECT_TRUE(pile_.tiling_size().IsEmpty());
+  EXPECT_TRUE(pile_.picture_map().empty());
+  EXPECT_FALSE(pile_.HasRecordings());
+}
+
 }  // namespace
 }  // namespace cc
diff --git a/cc/resources/pixel_buffer_raster_worker_pool.cc b/cc/resources/pixel_buffer_raster_worker_pool.cc
index 26ab728..175e7d4 100644
--- a/cc/resources/pixel_buffer_raster_worker_pool.cc
+++ b/cc/resources/pixel_buffer_raster_worker_pool.cc
@@ -37,19 +37,13 @@
   // Overridden from RasterBuffer:
   void Playback(const RasterSource* raster_source,
                 const gfx::Rect& rect,
-                float scale,
-                RenderingStatsInstrumentation* stats) override {
+                float scale) override {
     if (!memory_)
       return;
 
-    RasterWorkerPool::PlaybackToMemory(memory_,
-                                       resource_->format(),
-                                       resource_->size(),
-                                       stride_,
-                                       raster_source,
-                                       rect,
-                                       scale,
-                                       stats);
+    RasterWorkerPool::PlaybackToMemory(memory_, resource_->format(),
+                                       resource_->size(), stride_,
+                                       raster_source, rect, scale);
   }
 
  private:
diff --git a/cc/resources/raster_buffer.h b/cc/resources/raster_buffer.h
index d9791e9..2a72203 100644
--- a/cc/resources/raster_buffer.h
+++ b/cc/resources/raster_buffer.h
@@ -10,7 +10,6 @@
 
 namespace cc {
 class RasterSource;
-class RenderingStatsInstrumentation;
 
 class CC_EXPORT RasterBuffer {
  public:
@@ -19,8 +18,7 @@
 
   virtual void Playback(const RasterSource* raster_source,
                         const gfx::Rect& rect,
-                        float scale,
-                        RenderingStatsInstrumentation* stats) = 0;
+                        float scale) = 0;
 };
 
 }  // namespace cc
diff --git a/cc/resources/raster_source.h b/cc/resources/raster_source.h
index 603b883..3e25408 100644
--- a/cc/resources/raster_source.h
+++ b/cc/resources/raster_source.h
@@ -15,8 +15,6 @@
 
 namespace cc {
 
-class RenderingStatsInstrumentation;
-
 class CC_EXPORT RasterSource : public base::RefCountedThreadSafe<RasterSource> {
  public:
   struct CC_EXPORT SolidColorAnalysis {
@@ -32,20 +30,16 @@
   // assumed that contents_scale has already been applied to this canvas.
   // Writes the total number of pixels rasterized and the time spent
   // rasterizing to the stats if the respective pointer is not nullptr.
-  // TODO(vmpstr): Remove RenderingStatsInstrumentation from the interface.
-  virtual void PlaybackToCanvas(
-      SkCanvas* canvas,
-      const gfx::Rect& canvas_rect,
-      float contents_scale,
-      RenderingStatsInstrumentation* rendering_stats_instrumentation) const = 0;
+  virtual void PlaybackToCanvas(SkCanvas* canvas,
+                                const gfx::Rect& canvas_rect,
+                                float contents_scale) const = 0;
 
   // Analyze to determine if the given rect at given scale is of solid color in
   // this raster source.
   virtual void PerformSolidColorAnalysis(
       const gfx::Rect& content_rect,
       float contents_scale,
-      SolidColorAnalysis* analysis,
-      RenderingStatsInstrumentation* rendering_stats_instrumentation) const = 0;
+      SolidColorAnalysis* analysis) const = 0;
 
   // Populate the given list with all SkPixelRefs that may overlap the given
   // rect at given scale.
diff --git a/cc/resources/raster_worker_pool.cc b/cc/resources/raster_worker_pool.cc
index bd91740..ca26edd 100644
--- a/cc/resources/raster_worker_pool.cc
+++ b/cc/resources/raster_worker_pool.cc
@@ -12,7 +12,9 @@
 #include "base/threading/simple_thread.h"
 #include "cc/base/scoped_ptr_deque.h"
 #include "cc/resources/raster_source.h"
+#include "skia/ext/refptr.h"
 #include "third_party/skia/include/core/SkCanvas.h"
+#include "third_party/skia/include/core/SkSurface.h"
 
 namespace cc {
 namespace {
@@ -194,6 +196,22 @@
   InsertNodeForTask(graph, raster_task, priority, dependencies);
 }
 
+static bool IsSupportedPlaybackToMemoryFormat(ResourceFormat format) {
+  switch (format) {
+    case RGBA_4444:
+    case RGBA_8888:
+    case BGRA_8888:
+      return true;
+    case ALPHA_8:
+    case LUMINANCE_8:
+    case RGB_565:
+    case ETC1:
+      return false;
+  }
+  NOTREACHED();
+  return false;
+}
+
 // static
 void RasterWorkerPool::PlaybackToMemory(void* memory,
                                         ResourceFormat format,
@@ -201,45 +219,49 @@
                                         int stride,
                                         const RasterSource* raster_source,
                                         const gfx::Rect& rect,
-                                        float scale,
-                                        RenderingStatsInstrumentation* stats) {
-  SkBitmap bitmap;
-  switch (format) {
-    case RGBA_4444:
-      bitmap.allocN32Pixels(size.width(), size.height());
-      break;
-    case RGBA_8888:
-    case BGRA_8888: {
-      SkImageInfo info =
-          SkImageInfo::MakeN32Premul(size.width(), size.height());
-      if (!stride)
-        stride = info.minRowBytes();
-      bitmap.installPixels(info, memory, stride);
-      break;
-    }
-    case ALPHA_8:
-    case LUMINANCE_8:
-    case RGB_565:
-    case ETC1:
-      NOTREACHED();
-      break;
-  }
+                                        float scale) {
+  DCHECK(IsSupportedPlaybackToMemoryFormat(format)) << format;
 
-  SkCanvas canvas(bitmap);
-  raster_source->PlaybackToCanvas(&canvas, rect, scale, stats);
-
+  // Uses kPremul_SkAlphaType since the result is not known to be opaque.
+  SkImageInfo info =
+      SkImageInfo::MakeN32(size.width(), size.height(), kPremul_SkAlphaType);
   SkColorType buffer_color_type = ResourceFormatToSkColorType(format);
-  if (buffer_color_type != bitmap.colorType()) {
-    SkImageInfo dst_info = bitmap.info();
-    dst_info.fColorType = buffer_color_type;
-    // TODO(kaanb): The GL pipeline assumes a 4-byte alignment for the
-    // bitmap data. There will be no need to call SkAlign4 once crbug.com/293728
-    // is fixed.
-    const size_t dst_row_bytes = SkAlign4(dst_info.minRowBytes());
-    DCHECK_EQ(0u, dst_row_bytes % 4);
-    bool success = bitmap.readPixels(dst_info, memory, dst_row_bytes, 0, 0);
-    DCHECK_EQ(true, success);
+  bool needs_copy = buffer_color_type != info.colorType();
+
+  // TODO(danakj): Make a SkSurfaceProps with an SkPixelGeometry to enable or
+  // disable LCD text.
+  // TODO(danakj): Disable LCD text on Mac during layout tests:
+  // https://cs.chromium.org#chromium/src/third_party/WebKit/Source/platform/fonts/mac/FontPlatformDataMac.mm&l=55
+  // TODO(danakj): On Windows when LCD text is disabled, ask skia to draw LCD
+  // text offscreen and downsample it to AA text.
+  // https://cs.chromium.org#chromium/src/third_party/WebKit/Source/platform/fonts/win/FontPlatformDataWin.cpp&l=86
+  SkSurfaceProps* surface_props = nullptr;
+
+  if (!stride)
+    stride = info.minRowBytes();
+
+  if (!needs_copy) {
+    skia::RefPtr<SkSurface> surface = skia::AdoptRef(
+        SkSurface::NewRasterDirect(info, memory, stride, surface_props));
+    skia::RefPtr<SkCanvas> canvas = skia::SharePtr(surface->getCanvas());
+    raster_source->PlaybackToCanvas(canvas.get(), rect, scale);
+    return;
   }
+
+  skia::RefPtr<SkSurface> surface =
+      skia::AdoptRef(SkSurface::NewRaster(info, surface_props));
+  skia::RefPtr<SkCanvas> canvas = skia::SharePtr(surface->getCanvas());
+  raster_source->PlaybackToCanvas(canvas.get(), rect, scale);
+
+  SkImageInfo dst_info = info;
+  dst_info.fColorType = buffer_color_type;
+  // TODO(kaanb): The GL pipeline assumes a 4-byte alignment for the
+  // bitmap data. There will be no need to call SkAlign4 once crbug.com/293728
+  // is fixed.
+  const size_t dst_row_bytes = SkAlign4(dst_info.minRowBytes());
+  DCHECK_EQ(0u, dst_row_bytes % 4);
+  bool success = canvas->readPixels(dst_info, memory, dst_row_bytes, 0, 0);
+  DCHECK_EQ(true, success);
 }
 
 }  // namespace cc
diff --git a/cc/resources/raster_worker_pool.h b/cc/resources/raster_worker_pool.h
index 30d26e5..5259f83 100644
--- a/cc/resources/raster_worker_pool.h
+++ b/cc/resources/raster_worker_pool.h
@@ -72,8 +72,7 @@
                                int stride,
                                const RasterSource* raster_source,
                                const gfx::Rect& rect,
-                               float scale,
-                               RenderingStatsInstrumentation* stats);
+                               float scale);
 
   // Type-checking downcast routine.
   virtual Rasterizer* AsRasterizer() = 0;
diff --git a/cc/resources/raster_worker_pool_unittest.cc b/cc/resources/raster_worker_pool_unittest.cc
index c8feb73..9aee8e7 100644
--- a/cc/resources/raster_worker_pool_unittest.cc
+++ b/cc/resources/raster_worker_pool_unittest.cc
@@ -59,8 +59,7 @@
 
   // Overridden from Task:
   void RunOnWorkerThread() override {
-    raster_buffer_->Playback(
-        picture_pile_.get(), gfx::Rect(0, 0, 1, 1), 1.0, NULL);
+    raster_buffer_->Playback(picture_pile_.get(), gfx::Rect(0, 0, 1, 1), 1.0);
   }
 
   // Overridden from RasterizerTask:
diff --git a/cc/resources/tile_manager.cc b/cc/resources/tile_manager.cc
index c785cf6..8b6a72a 100644
--- a/cc/resources/tile_manager.cc
+++ b/cc/resources/tile_manager.cc
@@ -96,8 +96,8 @@
 
     DCHECK(raster_source);
 
-    raster_source->PerformSolidColorAnalysis(
-        content_rect_, contents_scale_, &analysis_, rendering_stats_);
+    raster_source->PerformSolidColorAnalysis(content_rect_, contents_scale_,
+                                             &analysis_);
 
     // Record the solid color prediction.
     UMA_HISTOGRAM_BOOLEAN("Renderer4.SolidColorTilesAnalyzed",
@@ -113,30 +113,10 @@
     devtools_instrumentation::ScopedLayerTask layer_task(
         devtools_instrumentation::kRasterTask, layer_id_);
 
-    base::TimeDelta prev_rasterize_time =
-        rendering_stats_->impl_thread_rendering_stats().rasterize_time;
-
-    // Only record rasterization time for highres tiles, because
-    // lowres tiles are not required for activation and therefore
-    // introduce noise in the measurement (sometimes they get rasterized
-    // before we draw and sometimes they aren't)
-    RenderingStatsInstrumentation* stats =
-        tile_resolution_ == HIGH_RESOLUTION ? rendering_stats_ : NULL;
     DCHECK(raster_source);
 
-    raster_buffer_->Playback(
-        raster_source_.get(), content_rect_, contents_scale_, stats);
-
-    if (rendering_stats_->record_rendering_stats()) {
-      base::TimeDelta current_rasterize_time =
-          rendering_stats_->impl_thread_rendering_stats().rasterize_time;
-      LOCAL_HISTOGRAM_CUSTOM_COUNTS(
-          "Renderer4.PictureRasterTimeUS",
-          (current_rasterize_time - prev_rasterize_time).InMicroseconds(),
-          0,
-          100000,
-          100);
-    }
+    raster_buffer_->Playback(raster_source_.get(), content_rect_,
+                             contents_scale_);
   }
 
   RasterSource::SolidColorAnalysis analysis_;
@@ -581,6 +561,7 @@
 
     ManagedTileState& mts = tile->managed_state();
     mts.scheduled_priority = schedule_priority++;
+    mts.resolution = priority.resolution;
 
     DCHECK(mts.draw_info.mode() ==
                ManagedTileState::DrawInfo::PICTURE_PILE_MODE ||
@@ -856,6 +837,7 @@
 }
 
 bool TileManager::IsReadyToActivate() const {
+  TRACE_EVENT0("cc", "TileManager::IsReadyToActivate");
   const std::vector<PictureLayerImpl*>& layers = client_->GetPictureLayers();
 
   for (std::vector<PictureLayerImpl*>::const_iterator it = layers.begin();
diff --git a/cc/resources/zero_copy_raster_worker_pool.cc b/cc/resources/zero_copy_raster_worker_pool.cc
index 4030942..ca2bc9b 100644
--- a/cc/resources/zero_copy_raster_worker_pool.cc
+++ b/cc/resources/zero_copy_raster_worker_pool.cc
@@ -26,20 +26,14 @@
   // Overridden from RasterBuffer:
   void Playback(const RasterSource* raster_source,
                 const gfx::Rect& rect,
-                float scale,
-                RenderingStatsInstrumentation* stats) override {
+                float scale) override {
     gfx::GpuMemoryBuffer* gpu_memory_buffer = lock_.GetGpuMemoryBuffer();
     if (!gpu_memory_buffer)
       return;
 
-    RasterWorkerPool::PlaybackToMemory(gpu_memory_buffer->Map(),
-                                       resource_->format(),
-                                       resource_->size(),
-                                       gpu_memory_buffer->GetStride(),
-                                       raster_source,
-                                       rect,
-                                       scale,
-                                       stats);
+    RasterWorkerPool::PlaybackToMemory(
+        gpu_memory_buffer->Map(), resource_->format(), resource_->size(),
+        gpu_memory_buffer->GetStride(), raster_source, rect, scale);
     gpu_memory_buffer->Unmap();
   }
 
diff --git a/cc/surfaces/surface.cc b/cc/surfaces/surface.cc
index 32e61c5..600455f 100644
--- a/cc/surfaces/surface.cc
+++ b/cc/surfaces/surface.cc
@@ -9,6 +9,7 @@
 #include "cc/output/compositor_frame.h"
 #include "cc/output/copy_output_request.h"
 #include "cc/surfaces/surface_factory.h"
+#include "cc/surfaces/surface_id_allocator.h"
 #include "cc/surfaces/surface_manager.h"
 
 namespace cc {
@@ -57,7 +58,8 @@
     draw_callback_.Run();
   draw_callback_ = callback;
   factory_->manager()->DidSatisfySequences(
-      surface_id_, &current_frame_->metadata.satisfies_sequences);
+      SurfaceIdAllocator::NamespaceForId(surface_id_),
+      &current_frame_->metadata.satisfies_sequences);
 }
 
 void Surface::RequestCopyOfOutput(scoped_ptr<CopyOutputRequest> copy_request) {
@@ -111,6 +113,19 @@
   }
 }
 
+void Surface::AddDestructionDependency(SurfaceSequence sequence) {
+  destruction_dependencies_.push_back(sequence);
+}
+
+void Surface::SatisfyDestructionDependencies(
+    base::hash_set<SurfaceSequence>* sequences) {
+  destruction_dependencies_.erase(
+      std::remove_if(
+          destruction_dependencies_.begin(), destruction_dependencies_.end(),
+          [sequences](SurfaceSequence seq) { return !!sequences->erase(seq); }),
+      destruction_dependencies_.end());
+}
+
 void Surface::ClearCopyRequests() {
   if (current_frame_) {
     for (const auto& render_pass :
diff --git a/cc/surfaces/surface.h b/cc/surfaces/surface.h
index ffa5042..7b3fbc1 100644
--- a/cc/surfaces/surface.h
+++ b/cc/surfaces/surface.h
@@ -17,6 +17,7 @@
 #include "cc/output/copy_output_request.h"
 #include "cc/quads/render_pass_id.h"
 #include "cc/surfaces/surface_id.h"
+#include "cc/surfaces/surface_sequence.h"
 #include "cc/surfaces/surfaces_export.h"
 #include "ui/gfx/geometry/size.h"
 
@@ -57,6 +58,18 @@
 
   base::WeakPtr<SurfaceFactory> factory() { return factory_; }
 
+  // Add a SurfaceSequence that must be satisfied before the Surface is
+  // destroyed.
+  void AddDestructionDependency(SurfaceSequence sequence);
+
+  // Satisfy all destruction dependencies that are contained in sequences, and
+  // remove them from sequences.
+  void SatisfyDestructionDependencies(
+      base::hash_set<SurfaceSequence>* sequences);
+  size_t GetDestructionDependencyCount() const {
+    return destruction_dependencies_.size();
+  }
+
  private:
   void ClearCopyRequests();
 
@@ -66,6 +79,7 @@
   // TODO(jamesr): Support multiple frames in flight.
   scoped_ptr<CompositorFrame> current_frame_;
   int frame_index_;
+  std::vector<SurfaceSequence> destruction_dependencies_;
 
   base::Closure draw_callback_;
 
diff --git a/cc/surfaces/surface_factory.cc b/cc/surfaces/surface_factory.cc
index 88c5455..574f5d1 100644
--- a/cc/surfaces/surface_factory.cc
+++ b/cc/surfaces/surface_factory.cc
@@ -25,8 +25,8 @@
 }
 
 void SurfaceFactory::DestroyAll() {
-  for (auto& surface : surface_map_)
-    manager_->DeregisterSurface(surface.first);
+  for (auto it = surface_map_.begin(); it != surface_map_.end(); ++it)
+    manager_->Destroy(surface_map_.take(it));
   surface_map_.clear();
 }
 
@@ -41,17 +41,7 @@
   OwningSurfaceMap::iterator it = surface_map_.find(surface_id);
   DCHECK(it != surface_map_.end());
   DCHECK(it->second->factory().get() == this);
-  manager_->DeregisterSurface(surface_id);
-  surface_map_.erase(it);
-}
-
-void SurfaceFactory::DestroyOnSequence(
-    SurfaceId surface_id,
-    const std::set<SurfaceSequence>& dependency_set) {
-  OwningSurfaceMap::iterator it = surface_map_.find(surface_id);
-  DCHECK(it != surface_map_.end());
-  DCHECK(it->second->factory().get() == this);
-  manager_->DestroyOnSequence(surface_map_.take_and_erase(it), dependency_set);
+  manager_->Destroy(surface_map_.take_and_erase(it));
 }
 
 void SurfaceFactory::SubmitFrame(SurfaceId surface_id,
diff --git a/cc/surfaces/surface_factory.h b/cc/surfaces/surface_factory.h
index 13d1d63..8e9211c 100644
--- a/cc/surfaces/surface_factory.h
+++ b/cc/surfaces/surface_factory.h
@@ -40,8 +40,6 @@
 
   void Create(SurfaceId surface_id, const gfx::Size& size);
   void Destroy(SurfaceId surface_id);
-  void DestroyOnSequence(SurfaceId surface_id,
-                         const std::set<SurfaceSequence>& dependency_set);
   void DestroyAll();
   // A frame can only be submitted to a surface created by this factory,
   // although the frame may reference surfaces created by other factories.
diff --git a/cc/surfaces/surface_factory_unittest.cc b/cc/surfaces/surface_factory_unittest.cc
index e36636c..14a25fd 100644
--- a/cc/surfaces/surface_factory_unittest.cc
+++ b/cc/surfaces/surface_factory_unittest.cc
@@ -381,9 +381,9 @@
   factory_.Create(id2, gfx::Size(5, 5));
 
   // Check that waiting before the sequence is satisfied works.
-  std::set<SurfaceSequence> sequence;
-  sequence.insert(SurfaceSequence(0, 4));
-  factory_.DestroyOnSequence(id2, sequence);
+  manager_.GetSurfaceForId(id2)
+      ->AddDestructionDependency(SurfaceSequence(0, 4));
+  factory_.Destroy(id2);
 
   scoped_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
   scoped_ptr<CompositorFrame> frame(new CompositorFrame);
@@ -396,10 +396,10 @@
 
   // Check that waiting after the sequence is satisfied works.
   factory_.Create(id2, gfx::Size(5, 5));
-  sequence.clear();
-  sequence.insert(SurfaceSequence(0, 6));
   DCHECK(manager_.GetSurfaceForId(id2));
-  factory_.DestroyOnSequence(id2, sequence);
+  manager_.GetSurfaceForId(id2)
+      ->AddDestructionDependency(SurfaceSequence(0, 6));
+  factory_.Destroy(id2);
   DCHECK(!manager_.GetSurfaceForId(id2));
 }
 
diff --git a/cc/surfaces/surface_manager.cc b/cc/surfaces/surface_manager.cc
index 920f464..050f04b 100644
--- a/cc/surfaces/surface_manager.cc
+++ b/cc/surfaces/surface_manager.cc
@@ -19,8 +19,8 @@
   for (SurfaceDestroyList::iterator it = surfaces_to_destroy_.begin();
        it != surfaces_to_destroy_.end();
        ++it) {
-    DeregisterSurface(it->first->surface_id());
-    delete it->first;
+    DeregisterSurface((*it)->surface_id());
+    delete *it;
   }
 }
 
@@ -38,20 +38,19 @@
   surface_map_.erase(it);
 }
 
-void SurfaceManager::DestroyOnSequence(
-    scoped_ptr<Surface> surface,
-    const std::set<SurfaceSequence>& dependency_set) {
-  surfaces_to_destroy_.push_back(make_pair(surface.release(), dependency_set));
+void SurfaceManager::Destroy(scoped_ptr<Surface> surface) {
+  DCHECK(thread_checker_.CalledOnValidThread());
+  surfaces_to_destroy_.push_back(surface.release());
   SearchForSatisfaction();
 }
 
-void SurfaceManager::DidSatisfySequences(SurfaceId id,
+void SurfaceManager::DidSatisfySequences(uint32_t id_namespace,
                                          std::vector<uint32_t>* sequence) {
+  DCHECK(thread_checker_.CalledOnValidThread());
   for (std::vector<uint32_t>::iterator it = sequence->begin();
        it != sequence->end();
        ++it) {
-    satisfied_sequences_.insert(
-        SurfaceSequence(SurfaceIdAllocator::NamespaceForId(id), *it));
+    satisfied_sequences_.insert(SurfaceSequence(id_namespace, *it));
   }
   sequence->clear();
   SearchForSatisfaction();
@@ -60,21 +59,9 @@
 void SurfaceManager::SearchForSatisfaction() {
   for (SurfaceDestroyList::iterator dest_it = surfaces_to_destroy_.begin();
        dest_it != surfaces_to_destroy_.end();) {
-    std::set<SurfaceSequence>& dependency_set = dest_it->second;
-
-    for (std::set<SurfaceSequence>::iterator it = dependency_set.begin();
-         it != dependency_set.end();) {
-      if (satisfied_sequences_.count(*it) > 0) {
-        satisfied_sequences_.erase(*it);
-        std::set<SurfaceSequence>::iterator old_it = it;
-        ++it;
-        dependency_set.erase(old_it);
-      } else {
-        ++it;
-      }
-    }
-    if (dependency_set.empty()) {
-      scoped_ptr<Surface> surf(dest_it->first);
+    (*dest_it)->SatisfyDestructionDependencies(&satisfied_sequences_);
+    if (!(*dest_it)->GetDestructionDependencyCount()) {
+      scoped_ptr<Surface> surf(*dest_it);
       DeregisterSurface(surf->surface_id());
       dest_it = surfaces_to_destroy_.erase(dest_it);
     } else {
diff --git a/cc/surfaces/surface_manager.h b/cc/surfaces/surface_manager.h
index 66db9d9..d630352 100644
--- a/cc/surfaces/surface_manager.h
+++ b/cc/surfaces/surface_manager.h
@@ -6,7 +6,6 @@
 #define CC_SURFACES_SURFACE_MANAGER_H_
 
 #include <list>
-#include <set>
 #include <vector>
 
 #include "base/containers/hash_tables.h"
@@ -31,8 +30,7 @@
   void DeregisterSurface(SurfaceId surface_id);
 
   // Destroy the Surface once a set of sequence numbers has been satisfied.
-  void DestroyOnSequence(scoped_ptr<Surface> surface,
-                         const std::set<SurfaceSequence>& dependency_set);
+  void Destroy(scoped_ptr<Surface> surface);
 
   Surface* GetSurfaceForId(SurfaceId surface_id);
 
@@ -46,8 +44,10 @@
 
   void SurfaceModified(SurfaceId surface_id);
 
-  // A frame for a surface satisfies a set of sequence numbers.
-  void DidSatisfySequences(SurfaceId id, std::vector<uint32_t>* sequence);
+  // A frame for a surface satisfies a set of sequence numbers in a particular
+  // id namespace.
+  void DidSatisfySequences(uint32_t id_namespace,
+                           std::vector<uint32_t>* sequence);
 
  private:
   void SearchForSatisfaction();
@@ -59,13 +59,12 @@
 
   // List of surfaces to be destroyed, along with what sequences they're still
   // waiting on.
-  typedef std::list<std::pair<Surface*, std::set<SurfaceSequence>>>
-      SurfaceDestroyList;
+  typedef std::list<Surface*> SurfaceDestroyList;
   SurfaceDestroyList surfaces_to_destroy_;
 
   // Set of SurfaceSequences that have been satisfied by a frame but not yet
   // waited on.
-  std::set<SurfaceSequence> satisfied_sequences_;
+  base::hash_set<SurfaceSequence> satisfied_sequences_;
 
   DISALLOW_COPY_AND_ASSIGN(SurfaceManager);
 };
diff --git a/cc/surfaces/surface_sequence.h b/cc/surfaces/surface_sequence.h
index 4c99e45..72f4bc9 100644
--- a/cc/surfaces/surface_sequence.h
+++ b/cc/surfaces/surface_sequence.h
@@ -5,6 +5,8 @@
 #ifndef CC_SURFACES_SURFACE_SEQUENCE_H_
 #define CC_SURFACES_SURFACE_SEQUENCE_H_
 
+#include "base/containers/hash_tables.h"
+
 namespace cc {
 
 // A per-surface-namespace sequence number that's used to coordinate
@@ -14,6 +16,7 @@
   SurfaceSequence() : id_namespace(0u), sequence(0u) {}
   SurfaceSequence(uint32_t id_namespace, uint32_t sequence)
       : id_namespace(id_namespace), sequence(sequence) {}
+  bool is_null() const { return id_namespace == 0u && sequence == 0u; }
 
   uint32_t id_namespace;
   uint32_t sequence;
@@ -35,4 +38,13 @@
 
 }  // namespace cc
 
+namespace BASE_HASH_NAMESPACE {
+template <>
+struct hash<cc::SurfaceSequence> {
+  size_t operator()(cc::SurfaceSequence key) const {
+    return base::HashPair(key.id_namespace, key.sequence);
+  }
+};
+}  // namespace BASE_HASH_NAMESPACE
+
 #endif  // CC_SURFACES_SURFACE_SEQUENCE_H_
diff --git a/cc/test/fake_content_layer_client.cc b/cc/test/fake_content_layer_client.cc
index d97869c..5463aed 100644
--- a/cc/test/fake_content_layer_client.cc
+++ b/cc/test/fake_content_layer_client.cc
@@ -40,17 +40,15 @@
     canvas->drawBitmap(it->bitmap, it->point.x(), it->point.y(), &it->paint);
   }
 
-  // Add a rectangle to the middle that doesn't fill |paint_rect| so that solid
-  // color analysis will fail.
   if (fill_with_nonsolid_color_) {
     gfx::RectF draw_rect = paint_rect;
-    draw_rect.Inset(draw_rect.width() / 4.0f, draw_rect.height() / 4.0f);
-    SkPaint paint;
-    canvas->drawRectCoords(draw_rect.x(),
-                           draw_rect.y(),
-                           draw_rect.right(),
-                           draw_rect.bottom(),
-                           paint);
+    bool red = true;
+    while (!draw_rect.IsEmpty()) {
+      SkPaint paint;
+      paint.setColor(red ? SK_ColorRED : SK_ColorBLUE);
+      canvas->drawRect(gfx::RectFToSkRect(draw_rect), paint);
+      draw_rect.Inset(1, 1);
+    }
   }
 }
 
diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc
index 3898156..af7eb5b 100644
--- a/cc/trees/layer_tree_host.cc
+++ b/cc/trees/layer_tree_host.cc
@@ -128,7 +128,9 @@
       id_(s_layer_tree_host_sequence_number.GetNext() + 1),
       next_commit_forces_redraw_(false),
       shared_bitmap_manager_(shared_bitmap_manager),
-      gpu_memory_buffer_manager_(gpu_memory_buffer_manager) {
+      gpu_memory_buffer_manager_(gpu_memory_buffer_manager),
+      surface_id_namespace_(0u),
+      next_surface_sequence_(1u) {
   if (settings_.accelerated_animation_enabled)
     animation_registrar_ = AnimationRegistrar::Create();
   rendering_stats_instrumentation_->set_record_rendering_stats(
@@ -167,15 +169,15 @@
 LayerTreeHost::~LayerTreeHost() {
   TRACE_EVENT0("cc", "LayerTreeHost::~LayerTreeHost");
 
-  DCHECK(swap_promise_monitor_.empty());
-
-  BreakSwapPromises(SwapPromise::COMMIT_FAILS);
-
   overhang_ui_resource_ = nullptr;
 
   if (root_layer_.get())
     root_layer_->SetLayerTreeHost(NULL);
 
+  DCHECK(swap_promise_monitor_.empty());
+
+  BreakSwapPromises(SwapPromise::COMMIT_FAILS);
+
   if (proxy_) {
     DCHECK(proxy_->IsMainThread());
     proxy_->Stop();
@@ -1336,4 +1338,12 @@
   swap_promise_list_.clear();
 }
 
+void LayerTreeHost::set_surface_id_namespace(uint32_t id_namespace) {
+  surface_id_namespace_ = id_namespace;
+}
+
+SurfaceSequence LayerTreeHost::CreateSurfaceSequence() {
+  return SurfaceSequence(surface_id_namespace_, next_surface_sequence_++);
+}
+
 }  // namespace cc
diff --git a/cc/trees/layer_tree_host.h b/cc/trees/layer_tree_host.h
index 1096416..a56a6cd 100644
--- a/cc/trees/layer_tree_host.h
+++ b/cc/trees/layer_tree_host.h
@@ -34,6 +34,7 @@
 #include "cc/output/output_surface.h"
 #include "cc/resources/resource_format.h"
 #include "cc/resources/scoped_ui_resource.h"
+#include "cc/surfaces/surface_sequence.h"
 #include "cc/trees/layer_tree_host_client.h"
 #include "cc/trees/layer_tree_host_common.h"
 #include "cc/trees/layer_tree_settings.h"
@@ -307,6 +308,9 @@
 
   size_t num_queued_swap_promises() const { return swap_promise_list_.size(); }
 
+  void set_surface_id_namespace(uint32_t id_namespace);
+  SurfaceSequence CreateSurfaceSequence();
+
  protected:
   LayerTreeHost(LayerTreeHostClient* client,
                 SharedBitmapManager* shared_bitmap_manager,
@@ -464,6 +468,9 @@
   ScopedPtrVector<SwapPromise> swap_promise_list_;
   std::set<SwapPromiseMonitor*> swap_promise_monitor_;
 
+  uint32_t surface_id_namespace_;
+  uint32_t next_surface_sequence_;
+
   DISALLOW_COPY_AND_ASSIGN(LayerTreeHost);
 };
 
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index 77c484f..d2041ac 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -152,8 +152,14 @@
 
 unsigned GetMapImageTextureTarget(
     const ContextProvider::Capabilities& context_capabilities) {
+// TODO(reveman): This should be a setting passed to the compositor instead
+// of hard-coded here. The target that need to be used depends on our choice
+// of GpuMemoryBuffer type. Note: SURFACE_TEXTURE needs EXTERNAL_OES,
+// IO_SURFACE needs RECTANGLE_ARB. crbug.com/431059
+#if defined(OS_ANDROID)
   if (context_capabilities.gpu.egl_image_external)
     return GL_TEXTURE_EXTERNAL_OES;
+#endif
   if (context_capabilities.gpu.texture_rectangle)
     return GL_TEXTURE_RECTANGLE_ARB;
 
@@ -1874,9 +1880,11 @@
   if (debug_state_.continuous_painting) {
     const RenderingStats& stats =
         rendering_stats_instrumentation_->GetRenderingStats();
-    paint_time_counter_->SavePaintTime(stats.main_stats.paint_time +
-                                       stats.main_stats.record_time +
-                                       stats.impl_stats.rasterize_time);
+    // TODO(hendrikw): This requires a different metric when we commit directly
+    // to the active tree.  See crbug.com/429311.
+    paint_time_counter_->SavePaintTime(
+        stats.impl_stats.commit_to_activate_duration.GetLastTimeDelta() +
+        stats.impl_stats.draw_duration.GetLastTimeDelta());
   }
 
   if (time_source_client_adapter_ && time_source_client_adapter_->Active())
diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc
index 7d39b9d..5d2d939 100644
--- a/cc/trees/layer_tree_host_impl_unittest.cc
+++ b/cc/trees/layer_tree_host_impl_unittest.cc
@@ -46,7 +46,6 @@
 #include "cc/test/fake_picture_layer_impl.h"
 #include "cc/test/fake_picture_pile_impl.h"
 #include "cc/test/fake_proxy.h"
-#include "cc/test/fake_rendering_stats_instrumentation.h"
 #include "cc/test/geometry_test_utils.h"
 #include "cc/test/layer_test_common.h"
 #include "cc/test/render_pass_test_common.h"
@@ -5948,7 +5947,7 @@
 
 class GLRendererWithSetupQuadForAntialiasing : public GLRenderer {
  public:
-  using GLRenderer::SetupQuadForAntialiasing;
+  using GLRenderer::ShouldAntialiasQuad;
 };
 
 TEST_F(LayerTreeHostImplTest, FarAwayQuadsDontNeedAA) {
@@ -6006,11 +6005,9 @@
   ASSERT_LE(1u, frame.render_passes[0]->quad_list.size());
   const DrawQuad* quad = frame.render_passes[0]->quad_list.front();
 
-  float edge[24];
-  gfx::QuadF device_layer_quad;
   bool antialiased =
-      GLRendererWithSetupQuadForAntialiasing::SetupQuadForAntialiasing(
-          quad->quadTransform(), quad, &device_layer_quad, edge);
+      GLRendererWithSetupQuadForAntialiasing::ShouldAntialiasQuad(
+          quad->quadTransform(), quad, false);
   EXPECT_FALSE(antialiased);
 
   host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc
index 2063217..0859d86 100644
--- a/cc/trees/layer_tree_host_unittest.cc
+++ b/cc/trees/layer_tree_host_unittest.cc
@@ -4168,7 +4168,7 @@
       bool fallback) override {
     scoped_refptr<TestContextProvider> context_provider =
         TestContextProvider::Create();
-    context_provider->SetMaxTransferBufferUsageBytes(1024 * 1024);
+    context_provider->SetMaxTransferBufferUsageBytes(512 * 512);
     if (delegating_renderer())
       return FakeOutputSurface::CreateDelegating3d(context_provider);
     else
@@ -4179,7 +4179,7 @@
     client_.set_fill_with_nonsolid_color(true);
     scoped_refptr<FakePictureLayer> root_layer =
         FakePictureLayer::Create(&client_);
-    root_layer->SetBounds(gfx::Size(6000, 6000));
+    root_layer->SetBounds(gfx::Size(1024, 1024));
     root_layer->SetIsDrawable(true);
 
     layer_tree_host()->SetRootLayer(root_layer);
@@ -4193,7 +4193,7 @@
 
     // Expect that the transfer buffer memory used is equal to the
     // MaxTransferBufferUsageBytes value set in CreateOutputSurface.
-    EXPECT_EQ(1024 * 1024u, context->max_used_transfer_buffer_usage_bytes());
+    EXPECT_EQ(512 * 512u, context->max_used_transfer_buffer_usage_bytes());
     EndTest();
   }
 
diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
index 304b9fb..6b2b37f 100644
--- a/cc/trees/layer_tree_impl.cc
+++ b/cc/trees/layer_tree_impl.cc
@@ -506,12 +506,9 @@
   }
 
   {
-    TRACE_EVENT2("cc",
-                 "LayerTreeImpl::UpdateTilePriorities",
-                 "IsActive",
-                 IsActiveTree(),
-                 "SourceFrameNumber",
-                 source_frame_number_);
+    TRACE_EVENT_BEGIN2("cc", "LayerTreeImpl::UpdateTilePriorities", "IsActive",
+                       IsActiveTree(), "SourceFrameNumber",
+                       source_frame_number_);
     scoped_ptr<OcclusionTracker<LayerImpl>> occlusion_tracker;
     if (settings().use_occlusion_for_tile_prioritization) {
       occlusion_tracker.reset(new OcclusionTracker<LayerImpl>(
@@ -528,6 +525,7 @@
     // draw properties) and not because any ordering is required.
     typedef LayerIterator<LayerImpl> LayerIteratorType;
     LayerIteratorType end = LayerIteratorType::End(&render_surface_layer_list_);
+    size_t layers_updated_count = 0;
     for (LayerIteratorType it =
              LayerIteratorType::Begin(&render_surface_layer_list_);
          it != end;
@@ -544,6 +542,7 @@
       if (it.represents_itself()) {
         layer->UpdateTiles(occlusion_in_content_space,
                            resourceless_software_draw);
+        ++layers_updated_count;
       }
 
       if (!it.represents_contributing_render_surface()) {
@@ -555,15 +554,20 @@
       if (layer->mask_layer()) {
         layer->mask_layer()->UpdateTiles(occlusion_in_content_space,
                                          resourceless_software_draw);
+        ++layers_updated_count;
       }
       if (layer->replica_layer() && layer->replica_layer()->mask_layer()) {
         layer->replica_layer()->mask_layer()->UpdateTiles(
             occlusion_in_content_space, resourceless_software_draw);
+        ++layers_updated_count;
       }
 
       if (occlusion_tracker)
         occlusion_tracker->LeaveLayer(it);
     }
+
+    TRACE_EVENT_END1("cc", "LayerTreeImpl::UpdateTilePriorities",
+                     "layers_updated_count", layers_updated_count);
   }
 
   DCHECK(!needs_update_draw_properties_) <<
diff --git a/cc/trees/tree_synchronizer_unittest.cc b/cc/trees/tree_synchronizer_unittest.cc
index 2715727..d48f821 100644
--- a/cc/trees/tree_synchronizer_unittest.cc
+++ b/cc/trees/tree_synchronizer_unittest.cc
@@ -16,6 +16,7 @@
 #include "cc/test/animation_test_common.h"
 #include "cc/test/fake_impl_proxy.h"
 #include "cc/test/fake_layer_tree_host.h"
+#include "cc/test/fake_rendering_stats_instrumentation.h"
 #include "cc/test/test_shared_bitmap_manager.h"
 #include "cc/trees/proxy.h"
 #include "cc/trees/single_thread_proxy.h"
diff --git a/gin/object_template_builder.h b/gin/object_template_builder.h
index 3d025a9..1305d5c 100644
--- a/gin/object_template_builder.h
+++ b/gin/object_template_builder.h
@@ -71,7 +71,7 @@
 // This specialization allows people to construct function templates directly if
 // they need to do fancier stuff.
 template<>
-struct GIN_EXPORT CallbackTraits<v8::Handle<v8::FunctionTemplate> > {
+struct CallbackTraits<v8::Handle<v8::FunctionTemplate> > {
   static v8::Handle<v8::FunctionTemplate> CreateTemplate(
       v8::Handle<v8::FunctionTemplate> templ) {
     return templ;
diff --git a/gpu/command_buffer/client/client_test_helper.cc b/gpu/command_buffer/client/client_test_helper.cc
index 8c633ef..3c50f6b 100644
--- a/gpu/command_buffer/client/client_test_helper.cc
+++ b/gpu/command_buffer/client/client_test_helper.cc
@@ -15,7 +15,7 @@
 
 namespace gpu {
 
-MockCommandBufferBase::MockCommandBufferBase() {
+MockCommandBufferBase::MockCommandBufferBase() : put_offset_(0) {
 }
 
 MockCommandBufferBase::~MockCommandBufferBase() {
@@ -40,7 +40,7 @@
 void MockCommandBufferBase::WaitForTokenInRange(int32 start, int32 end) {}
 
 void MockCommandBufferBase::WaitForGetOffsetInRange(int32 start, int32 end) {
-  state_.get_offset = state_.put_offset;
+  state_.get_offset = put_offset_;
   OnFlush();
 }
 
@@ -48,7 +48,6 @@
   ring_buffer_buffer_ = GetTransferBuffer(transfer_buffer_id);
   ring_buffer_ =
       static_cast<CommandBufferEntry*>(ring_buffer_buffer_->memory());
-  state_.num_entries = ring_buffer_buffer_->size() / sizeof(ring_buffer_[0]);
   state_.token = 10000;  // All token checks in the tests should pass.
 }
 
@@ -91,7 +90,7 @@
 }
 
 void MockCommandBufferBase::FlushHelper(int32 put_offset) {
-  state_.put_offset = put_offset;
+  put_offset_ = put_offset;
 }
 
 void MockCommandBufferBase::SetToken(int32 token) {
@@ -110,6 +109,10 @@
   state_.context_lost_reason = reason;
 }
 
+int32 MockCommandBufferBase::GetPutOffset() {
+  return put_offset_;
+}
+
 // GCC requires these declarations, but MSVC requires they not be present
 #ifndef _MSC_VER
 const int32 MockCommandBufferBase::kTransferBufferBaseId;
diff --git a/gpu/command_buffer/client/client_test_helper.h b/gpu/command_buffer/client/client_test_helper.h
index 2cf18e6..6778a83 100644
--- a/gpu/command_buffer/client/client_test_helper.h
+++ b/gpu/command_buffer/client/client_test_helper.h
@@ -41,6 +41,7 @@
   void SetToken(int32 token) override;
   void SetParseError(error::Error error) override;
   void SetContextLostReason(error::ContextLostReason reason) override;
+  int32 GetPutOffset() override;
 
   // Get's the Id of the next transfer buffer that will be returned
   // by CreateTransferBuffer. This is useful for testing expected ids.
@@ -56,6 +57,7 @@
   CommandBufferEntry* ring_buffer_;
   scoped_refptr<Buffer> ring_buffer_buffer_;
   State state_;
+  int32 put_offset_;
 };
 
 class MockClientCommandBuffer : public MockCommandBufferBase {
diff --git a/gpu/command_buffer/client/cmd_buffer_helper_test.cc b/gpu/command_buffer/client/cmd_buffer_helper_test.cc
index 3ff9d3a..fe68887 100644
--- a/gpu/command_buffer/client/cmd_buffer_helper_test.cc
+++ b/gpu/command_buffer/client/cmd_buffer_helper_test.cc
@@ -241,7 +241,7 @@
   }
 
   int32 GetPutOffset() {
-    return command_buffer_->GetLastState().put_offset;
+    return command_buffer_->GetPutOffset();
   }
 
   int32 GetHelperGetOffset() { return helper_->get_offset(); }
diff --git a/gpu/command_buffer/client/gles2_c_lib_autogen.h b/gpu/command_buffer/client/gles2_c_lib_autogen.h
index 392bb22..56f1880 100644
--- a/gpu/command_buffer/client/gles2_c_lib_autogen.h
+++ b/gpu/command_buffer/client/gles2_c_lib_autogen.h
@@ -124,8 +124,8 @@
                          GLsizei width,
                          GLsizei height,
                          GLint border) {
-  gles2::GetGLContext()->CopyTexImage2D(
-      target, level, internalformat, x, y, width, height, border);
+  gles2::GetGLContext()->CopyTexImage2D(target, level, internalformat, x, y,
+                                        width, height, border);
 }
 void GLES2CopyTexSubImage2D(GLenum target,
                             GLint level,
@@ -135,8 +135,8 @@
                             GLint y,
                             GLsizei width,
                             GLsizei height) {
-  gles2::GetGLContext()->CopyTexSubImage2D(
-      target, level, xoffset, yoffset, x, y, width, height);
+  gles2::GetGLContext()->CopyTexSubImage2D(target, level, xoffset, yoffset, x,
+                                           y, width, height);
 }
 GLuint GLES2CreateProgram() {
   return gles2::GetGLContext()->CreateProgram();
@@ -216,8 +216,8 @@
                                GLenum textarget,
                                GLuint texture,
                                GLint level) {
-  gles2::GetGLContext()->FramebufferTexture2D(
-      target, attachment, textarget, texture, level);
+  gles2::GetGLContext()->FramebufferTexture2D(target, attachment, textarget,
+                                              texture, level);
 }
 void GLES2FrontFace(GLenum mode) {
   gles2::GetGLContext()->FrontFace(mode);
@@ -244,8 +244,8 @@
                           GLint* size,
                           GLenum* type,
                           char* name) {
-  gles2::GetGLContext()->GetActiveAttrib(
-      program, index, bufsize, length, size, type, name);
+  gles2::GetGLContext()->GetActiveAttrib(program, index, bufsize, length, size,
+                                         type, name);
 }
 void GLES2GetActiveUniform(GLuint program,
                            GLuint index,
@@ -254,8 +254,8 @@
                            GLint* size,
                            GLenum* type,
                            char* name) {
-  gles2::GetGLContext()->GetActiveUniform(
-      program, index, bufsize, length, size, type, name);
+  gles2::GetGLContext()->GetActiveUniform(program, index, bufsize, length, size,
+                                          type, name);
 }
 void GLES2GetAttachedShaders(GLuint program,
                              GLsizei maxcount,
@@ -282,8 +282,8 @@
                                               GLenum attachment,
                                               GLenum pname,
                                               GLint* params) {
-  gles2::GetGLContext()->GetFramebufferAttachmentParameteriv(
-      target, attachment, pname, params);
+  gles2::GetGLContext()->GetFramebufferAttachmentParameteriv(target, attachment,
+                                                             pname, params);
 }
 void GLES2GetIntegerv(GLenum pname, GLint* params) {
   gles2::GetGLContext()->GetIntegerv(pname, params);
@@ -315,8 +315,8 @@
                                    GLenum precisiontype,
                                    GLint* range,
                                    GLint* precision) {
-  gles2::GetGLContext()->GetShaderPrecisionFormat(
-      shadertype, precisiontype, range, precision);
+  gles2::GetGLContext()->GetShaderPrecisionFormat(shadertype, precisiontype,
+                                                  range, precision);
 }
 void GLES2GetShaderSource(GLuint shader,
                           GLsizei bufsize,
@@ -403,8 +403,8 @@
                               GLenum internalformat,
                               GLsizei width,
                               GLsizei height) {
-  gles2::GetGLContext()->RenderbufferStorage(
-      target, internalformat, width, height);
+  gles2::GetGLContext()->RenderbufferStorage(target, internalformat, width,
+                                             height);
 }
 void GLES2SampleCoverage(GLclampf value, GLboolean invert) {
   gles2::GetGLContext()->SampleCoverage(value, invert);
@@ -464,15 +464,8 @@
                      GLenum format,
                      GLenum type,
                      const void* pixels) {
-  gles2::GetGLContext()->TexImage2D(target,
-                                    level,
-                                    internalformat,
-                                    width,
-                                    height,
-                                    border,
-                                    format,
-                                    type,
-                                    pixels);
+  gles2::GetGLContext()->TexImage2D(target, level, internalformat, width,
+                                    height, border, format, type, pixels);
 }
 void GLES2TexParameterf(GLenum target, GLenum pname, GLfloat param) {
   gles2::GetGLContext()->TexParameterf(target, pname, param);
@@ -495,8 +488,8 @@
                         GLenum format,
                         GLenum type,
                         const void* pixels) {
-  gles2::GetGLContext()->TexSubImage2D(
-      target, level, xoffset, yoffset, width, height, format, type, pixels);
+  gles2::GetGLContext()->TexSubImage2D(target, level, xoffset, yoffset, width,
+                                       height, format, type, pixels);
 }
 void GLES2Uniform1f(GLint location, GLfloat x) {
   gles2::GetGLContext()->Uniform1f(location, x);
@@ -608,8 +601,8 @@
                               GLboolean normalized,
                               GLsizei stride,
                               const void* ptr) {
-  gles2::GetGLContext()->VertexAttribPointer(
-      indx, size, type, normalized, stride, ptr);
+  gles2::GetGLContext()->VertexAttribPointer(indx, size, type, normalized,
+                                             stride, ptr);
 }
 void GLES2Viewport(GLint x, GLint y, GLsizei width, GLsizei height) {
   gles2::GetGLContext()->Viewport(x, y, width, height);
@@ -657,8 +650,8 @@
                           GLenum internalFormat,
                           GLsizei width,
                           GLsizei height) {
-  gles2::GetGLContext()->TexStorage2DEXT(
-      target, levels, internalFormat, width, height);
+  gles2::GetGLContext()->TexStorage2DEXT(target, levels, internalFormat, width,
+                                         height);
 }
 void GLES2GenQueriesEXT(GLsizei n, GLuint* queries) {
   gles2::GetGLContext()->GenQueriesEXT(n, queries);
@@ -709,8 +702,8 @@
                                         GLsizei count,
                                         GLenum type,
                                         GLuint offset) {
-  return gles2::GetGLContext()->GetMaxValueInBufferCHROMIUM(
-      buffer_id, count, type, offset);
+  return gles2::GetGLContext()->GetMaxValueInBufferCHROMIUM(buffer_id, count,
+                                                            type, offset);
 }
 GLboolean GLES2EnableFeatureCHROMIUM(const char* feature) {
   return gles2::GetGLContext()->EnableFeatureCHROMIUM(feature);
@@ -725,8 +718,8 @@
                                     GLintptr offset,
                                     GLsizeiptr size,
                                     GLenum access) {
-  return gles2::GetGLContext()->MapBufferSubDataCHROMIUM(
-      target, offset, size, access);
+  return gles2::GetGLContext()->MapBufferSubDataCHROMIUM(target, offset, size,
+                                                         access);
 }
 void GLES2UnmapBufferSubDataCHROMIUM(const void* mem) {
   gles2::GetGLContext()->UnmapBufferSubDataCHROMIUM(mem);
@@ -762,8 +755,8 @@
                                       GLuint count,
                                       GLint* results,
                                       GLsizeiptr size) {
-  gles2::GetGLContext()->GetMultipleIntegervCHROMIUM(
-      pnames, count, results, size);
+  gles2::GetGLContext()->GetMultipleIntegervCHROMIUM(pnames, count, results,
+                                                     size);
 }
 void GLES2GetProgramInfoCHROMIUM(GLuint program,
                                  GLsizei bufsize,
@@ -778,8 +771,8 @@
                                 GLsizei width,
                                 GLsizei height,
                                 GLenum internalformat) {
-  return gles2::GetGLContext()->CreateImageCHROMIUM(
-      buffer, width, height, internalformat);
+  return gles2::GetGLContext()->CreateImageCHROMIUM(buffer, width, height,
+                                                    internalformat);
 }
 void GLES2DestroyImageCHROMIUM(GLuint image_id) {
   gles2::GetGLContext()->DestroyImageCHROMIUM(image_id);
@@ -795,8 +788,8 @@
                                          GLsizei bufsize,
                                          GLsizei* length,
                                          char* source) {
-  gles2::GetGLContext()->GetTranslatedShaderSourceANGLE(
-      shader, bufsize, length, source);
+  gles2::GetGLContext()->GetTranslatedShaderSourceANGLE(shader, bufsize, length,
+                                                        source);
 }
 void GLES2PostSubBufferCHROMIUM(GLint x, GLint y, GLint width, GLint height) {
   gles2::GetGLContext()->PostSubBufferCHROMIUM(x, y, width, height);
@@ -806,8 +799,8 @@
                                       GLsizei height,
                                       GLuint ioSurfaceId,
                                       GLuint plane) {
-  gles2::GetGLContext()->TexImageIOSurface2DCHROMIUM(
-      target, width, height, ioSurfaceId, plane);
+  gles2::GetGLContext()->TexImageIOSurface2DCHROMIUM(target, width, height,
+                                                     ioSurfaceId, plane);
 }
 void GLES2CopyTextureCHROMIUM(GLenum target,
                               GLenum source_id,
@@ -815,23 +808,23 @@
                               GLint level,
                               GLint internalformat,
                               GLenum dest_type) {
-  gles2::GetGLContext()->CopyTextureCHROMIUM(
-      target, source_id, dest_id, level, internalformat, dest_type);
+  gles2::GetGLContext()->CopyTextureCHROMIUM(target, source_id, dest_id, level,
+                                             internalformat, dest_type);
 }
 void GLES2DrawArraysInstancedANGLE(GLenum mode,
                                    GLint first,
                                    GLsizei count,
                                    GLsizei primcount) {
-  gles2::GetGLContext()->DrawArraysInstancedANGLE(
-      mode, first, count, primcount);
+  gles2::GetGLContext()->DrawArraysInstancedANGLE(mode, first, count,
+                                                  primcount);
 }
 void GLES2DrawElementsInstancedANGLE(GLenum mode,
                                      GLsizei count,
                                      GLenum type,
                                      const void* indices,
                                      GLsizei primcount) {
-  gles2::GetGLContext()->DrawElementsInstancedANGLE(
-      mode, count, type, indices, primcount);
+  gles2::GetGLContext()->DrawElementsInstancedANGLE(mode, count, type, indices,
+                                                    primcount);
 }
 void GLES2VertexAttribDivisorANGLE(GLuint index, GLuint divisor) {
   gles2::GetGLContext()->VertexAttribDivisorANGLE(index, divisor);
@@ -893,15 +886,9 @@
                                   GLenum format,
                                   GLenum type,
                                   const void* pixels) {
-  gles2::GetGLContext()->AsyncTexImage2DCHROMIUM(target,
-                                                 level,
-                                                 internalformat,
-                                                 width,
-                                                 height,
-                                                 border,
-                                                 format,
-                                                 type,
-                                                 pixels);
+  gles2::GetGLContext()->AsyncTexImage2DCHROMIUM(target, level, internalformat,
+                                                 width, height, border, format,
+                                                 type, pixels);
 }
 void GLES2WaitAsyncTexImage2DCHROMIUM(GLenum target) {
   gles2::GetGLContext()->WaitAsyncTexImage2DCHROMIUM(target);
@@ -940,17 +927,9 @@
                                        GLfloat uv_y,
                                        GLfloat uv_width,
                                        GLfloat uv_height) {
-  gles2::GetGLContext()->ScheduleOverlayPlaneCHROMIUM(plane_z_order,
-                                                      plane_transform,
-                                                      overlay_texture_id,
-                                                      bounds_x,
-                                                      bounds_y,
-                                                      bounds_width,
-                                                      bounds_height,
-                                                      uv_x,
-                                                      uv_y,
-                                                      uv_width,
-                                                      uv_height);
+  gles2::GetGLContext()->ScheduleOverlayPlaneCHROMIUM(
+      plane_z_order, plane_transform, overlay_texture_id, bounds_x, bounds_y,
+      bounds_width, bounds_height, uv_x, uv_y, uv_width, uv_height);
 }
 void GLES2MatrixLoadfCHROMIUM(GLenum matrixMode, const GLfloat* m) {
   gles2::GetGLContext()->MatrixLoadfCHROMIUM(matrixMode, m);
diff --git a/gpu/command_buffer/client/gles2_cmd_helper_autogen.h b/gpu/command_buffer/client/gles2_cmd_helper_autogen.h
index 24d8be2..9aeb449 100644
--- a/gpu/command_buffer/client/gles2_cmd_helper_autogen.h
+++ b/gpu/command_buffer/client/gles2_cmd_helper_autogen.h
@@ -205,14 +205,8 @@
   gles2::cmds::CompressedTexImage2D* c =
       GetCmdSpace<gles2::cmds::CompressedTexImage2D>();
   if (c) {
-    c->Init(target,
-            level,
-            internalformat,
-            width,
-            height,
-            imageSize,
-            data_shm_id,
-            data_shm_offset);
+    c->Init(target, level, internalformat, width, height, imageSize,
+            data_shm_id, data_shm_offset);
   }
 }
 
@@ -244,16 +238,8 @@
   gles2::cmds::CompressedTexSubImage2D* c =
       GetCmdSpace<gles2::cmds::CompressedTexSubImage2D>();
   if (c) {
-    c->Init(target,
-            level,
-            xoffset,
-            yoffset,
-            width,
-            height,
-            format,
-            imageSize,
-            data_shm_id,
-            data_shm_offset);
+    c->Init(target, level, xoffset, yoffset, width, height, format, imageSize,
+            data_shm_id, data_shm_offset);
   }
 }
 
@@ -892,17 +878,8 @@
                 GLboolean async) {
   gles2::cmds::ReadPixels* c = GetCmdSpace<gles2::cmds::ReadPixels>();
   if (c) {
-    c->Init(x,
-            y,
-            width,
-            height,
-            format,
-            type,
-            pixels_shm_id,
-            pixels_shm_offset,
-            result_shm_id,
-            result_shm_offset,
-            async);
+    c->Init(x, y, width, height, format, type, pixels_shm_id, pixels_shm_offset,
+            result_shm_id, result_shm_offset, async);
   }
 }
 
@@ -948,13 +925,8 @@
                   GLsizei length) {
   gles2::cmds::ShaderBinary* c = GetCmdSpace<gles2::cmds::ShaderBinary>();
   if (c) {
-    c->Init(n,
-            shaders_shm_id,
-            shaders_shm_offset,
-            binaryformat,
-            binary_shm_id,
-            binary_shm_offset,
-            length);
+    c->Init(n, shaders_shm_id, shaders_shm_offset, binaryformat, binary_shm_id,
+            binary_shm_offset, length);
   }
 }
 
@@ -1022,15 +994,8 @@
                 uint32_t pixels_shm_offset) {
   gles2::cmds::TexImage2D* c = GetCmdSpace<gles2::cmds::TexImage2D>();
   if (c) {
-    c->Init(target,
-            level,
-            internalformat,
-            width,
-            height,
-            format,
-            type,
-            pixels_shm_id,
-            pixels_shm_offset);
+    c->Init(target, level, internalformat, width, height, format, type,
+            pixels_shm_id, pixels_shm_offset);
   }
 }
 
@@ -1081,17 +1046,8 @@
                    GLboolean internal) {
   gles2::cmds::TexSubImage2D* c = GetCmdSpace<gles2::cmds::TexSubImage2D>();
   if (c) {
-    c->Init(target,
-            level,
-            xoffset,
-            yoffset,
-            width,
-            height,
-            format,
-            type,
-            pixels_shm_id,
-            pixels_shm_offset,
-            internal);
+    c->Init(target, level, xoffset, yoffset, width, height, format, type,
+            pixels_shm_id, pixels_shm_offset, internal);
   }
 }
 
@@ -1377,8 +1333,8 @@
   gles2::cmds::BlitFramebufferCHROMIUM* c =
       GetCmdSpace<gles2::cmds::BlitFramebufferCHROMIUM>();
   if (c) {
-    c->Init(
-        srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+    c->Init(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask,
+            filter);
   }
 }
 
@@ -1591,12 +1547,8 @@
   gles2::cmds::GetMultipleIntegervCHROMIUM* c =
       GetCmdSpace<gles2::cmds::GetMultipleIntegervCHROMIUM>();
   if (c) {
-    c->Init(pnames_shm_id,
-            pnames_shm_offset,
-            count,
-            results_shm_id,
-            results_shm_offset,
-            size);
+    c->Init(pnames_shm_id, pnames_shm_offset, count, results_shm_id,
+            results_shm_offset, size);
   }
 }
 
@@ -1773,18 +1725,8 @@
   gles2::cmds::AsyncTexSubImage2DCHROMIUM* c =
       GetCmdSpace<gles2::cmds::AsyncTexSubImage2DCHROMIUM>();
   if (c) {
-    c->Init(target,
-            level,
-            xoffset,
-            yoffset,
-            width,
-            height,
-            format,
-            type,
-            data_shm_id,
-            data_shm_offset,
-            async_upload_token,
-            sync_data_shm_id,
+    c->Init(target, level, xoffset, yoffset, width, height, format, type,
+            data_shm_id, data_shm_offset, async_upload_token, sync_data_shm_id,
             sync_data_shm_offset);
   }
 }
@@ -1804,18 +1746,9 @@
   gles2::cmds::AsyncTexImage2DCHROMIUM* c =
       GetCmdSpace<gles2::cmds::AsyncTexImage2DCHROMIUM>();
   if (c) {
-    c->Init(target,
-            level,
-            internalformat,
-            width,
-            height,
-            format,
-            type,
-            pixels_shm_id,
-            pixels_shm_offset,
-            async_upload_token,
-            sync_data_shm_id,
-            sync_data_shm_offset);
+    c->Init(target, level, internalformat, width, height, format, type,
+            pixels_shm_id, pixels_shm_offset, async_upload_token,
+            sync_data_shm_id, sync_data_shm_offset);
   }
 }
 
@@ -1896,16 +1829,8 @@
   gles2::cmds::ScheduleOverlayPlaneCHROMIUM* c =
       GetCmdSpace<gles2::cmds::ScheduleOverlayPlaneCHROMIUM>();
   if (c) {
-    c->Init(plane_z_order,
-            plane_transform,
-            overlay_texture_id,
-            bounds_x,
-            bounds_y,
-            bounds_width,
-            bounds_height,
-            uv_x,
-            uv_y,
-            uv_width,
+    c->Init(plane_z_order, plane_transform, overlay_texture_id, bounds_x,
+            bounds_y, bounds_width, bounds_height, uv_x, uv_y, uv_width,
             uv_height);
   }
 }
diff --git a/gpu/command_buffer/client/gles2_implementation_impl_autogen.h b/gpu/command_buffer/client/gles2_implementation_impl_autogen.h
index 32b1347..e7cc074 100644
--- a/gpu/command_buffer/client/gles2_implementation_impl_autogen.h
+++ b/gpu/command_buffer/client/gles2_implementation_impl_autogen.h
@@ -42,8 +42,8 @@
                      << GLES2Util::GetStringFrameBufferTarget(target) << ", "
                      << framebuffer << ")");
   if (IsFramebufferReservedId(framebuffer)) {
-    SetGLError(
-        GL_INVALID_OPERATION, "BindFramebuffer", "framebuffer reserved id");
+    SetGLError(GL_INVALID_OPERATION, "BindFramebuffer",
+               "framebuffer reserved id");
     return;
   }
   if (BindFramebufferHelper(target, framebuffer)) {
@@ -58,8 +58,8 @@
                      << GLES2Util::GetStringRenderBufferTarget(target) << ", "
                      << renderbuffer << ")");
   if (IsRenderbufferReservedId(renderbuffer)) {
-    SetGLError(
-        GL_INVALID_OPERATION, "BindRenderbuffer", "renderbuffer reserved id");
+    SetGLError(GL_INVALID_OPERATION, "BindRenderbuffer",
+               "renderbuffer reserved id");
     return;
   }
   if (BindRenderbufferHelper(target, renderbuffer)) {
@@ -146,8 +146,8 @@
     return GL_FRAMEBUFFER_UNSUPPORTED;
   }
   *result = 0;
-  helper_->CheckFramebufferStatus(
-      target, GetResultShmId(), GetResultShmOffset());
+  helper_->CheckFramebufferStatus(target, GetResultShmId(),
+                                  GetResultShmOffset());
   WaitForCmd();
   GLenum result_value = *result;
   GPU_CLIENT_LOG("returned " << result_value);
@@ -261,8 +261,8 @@
     SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D", "height < 0");
     return;
   }
-  helper_->CopyTexSubImage2D(
-      target, level, xoffset, yoffset, x, y, width, height);
+  helper_->CopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width,
+                             height);
   CheckGLError();
 }
 
@@ -449,8 +449,8 @@
                      << GLES2Util::GetStringAttachment(attachment) << ", "
                      << GLES2Util::GetStringRenderBufferTarget(
                             renderbuffertarget) << ", " << renderbuffer << ")");
-  helper_->FramebufferRenderbuffer(
-      target, attachment, renderbuffertarget, renderbuffer);
+  helper_->FramebufferRenderbuffer(target, attachment, renderbuffertarget,
+                                   renderbuffer);
   CheckGLError();
 }
 
@@ -466,8 +466,8 @@
                      << GLES2Util::GetStringTextureTarget(textarget) << ", "
                      << texture << ", " << level << ")");
   if (level != 0) {
-    SetGLError(
-        GL_INVALID_VALUE, "glFramebufferTexture2D", "level GL_INVALID_VALUE");
+    SetGLError(GL_INVALID_VALUE, "glFramebufferTexture2D",
+               "level GL_INVALID_VALUE");
     return;
   }
   helper_->FramebufferTexture2D(target, attachment, textarget, texture);
@@ -620,8 +620,8 @@
     return;
   }
   result->SetNumResults(0);
-  helper_->GetBufferParameteriv(
-      target, pname, GetResultShmId(), GetResultShmOffset());
+  helper_->GetBufferParameteriv(target, pname, GetResultShmId(),
+                                GetResultShmOffset());
   WaitForCmd();
   result->CopyResult(params);
   GPU_CLIENT_LOG_CODE_BLOCK({
@@ -670,8 +670,8 @@
                      << static_cast<const void*>(params) << ")");
   TRACE_EVENT0("gpu",
                "GLES2Implementation::GetFramebufferAttachmentParameteriv");
-  if (GetFramebufferAttachmentParameterivHelper(
-          target, attachment, pname, params)) {
+  if (GetFramebufferAttachmentParameterivHelper(target, attachment, pname,
+                                                params)) {
     return;
   }
   typedef cmds::GetFramebufferAttachmentParameteriv::Result Result;
@@ -791,8 +791,8 @@
     return;
   }
   result->SetNumResults(0);
-  helper_->GetRenderbufferParameteriv(
-      target, pname, GetResultShmId(), GetResultShmOffset());
+  helper_->GetRenderbufferParameteriv(target, pname, GetResultShmId(),
+                                      GetResultShmOffset());
   WaitForCmd();
   result->CopyResult(params);
   GPU_CLIENT_LOG_CODE_BLOCK({
@@ -902,8 +902,8 @@
     return;
   }
   result->SetNumResults(0);
-  helper_->GetTexParameterfv(
-      target, pname, GetResultShmId(), GetResultShmOffset());
+  helper_->GetTexParameterfv(target, pname, GetResultShmId(),
+                             GetResultShmOffset());
   WaitForCmd();
   result->CopyResult(params);
   GPU_CLIENT_LOG_CODE_BLOCK({
@@ -932,8 +932,8 @@
     return;
   }
   result->SetNumResults(0);
-  helper_->GetTexParameteriv(
-      target, pname, GetResultShmId(), GetResultShmOffset());
+  helper_->GetTexParameteriv(target, pname, GetResultShmId(),
+                             GetResultShmOffset());
   WaitForCmd();
   result->CopyResult(params);
   GPU_CLIENT_LOG_CODE_BLOCK({
@@ -1497,8 +1497,8 @@
     return;
   }
   if (transpose != false) {
-    SetGLError(
-        GL_INVALID_VALUE, "glUniformMatrix2fv", "transpose GL_INVALID_VALUE");
+    SetGLError(GL_INVALID_VALUE, "glUniformMatrix2fv",
+               "transpose GL_INVALID_VALUE");
     return;
   }
   helper_->UniformMatrix2fvImmediate(location, count, value);
@@ -1529,8 +1529,8 @@
     return;
   }
   if (transpose != false) {
-    SetGLError(
-        GL_INVALID_VALUE, "glUniformMatrix3fv", "transpose GL_INVALID_VALUE");
+    SetGLError(GL_INVALID_VALUE, "glUniformMatrix3fv",
+               "transpose GL_INVALID_VALUE");
     return;
   }
   helper_->UniformMatrix3fvImmediate(location, count, value);
@@ -1564,8 +1564,8 @@
     return;
   }
   if (transpose != false) {
-    SetGLError(
-        GL_INVALID_VALUE, "glUniformMatrix4fv", "transpose GL_INVALID_VALUE");
+    SetGLError(GL_INVALID_VALUE, "glUniformMatrix4fv",
+               "transpose GL_INVALID_VALUE");
     return;
   }
   helper_->UniformMatrix4fvImmediate(location, count, value);
@@ -1705,8 +1705,8 @@
                      << ", " << dstX0 << ", " << dstY0 << ", " << dstX1 << ", "
                      << dstY1 << ", " << mask << ", "
                      << GLES2Util::GetStringBlitFilter(filter) << ")");
-  helper_->BlitFramebufferCHROMIUM(
-      srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+  helper_->BlitFramebufferCHROMIUM(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0,
+                                   dstX1, dstY1, mask, filter);
   CheckGLError();
 }
 
@@ -1723,20 +1723,17 @@
           << ", " << GLES2Util::GetStringRenderBufferFormat(internalformat)
           << ", " << width << ", " << height << ")");
   if (samples < 0) {
-    SetGLError(GL_INVALID_VALUE,
-               "glRenderbufferStorageMultisampleCHROMIUM",
+    SetGLError(GL_INVALID_VALUE, "glRenderbufferStorageMultisampleCHROMIUM",
                "samples < 0");
     return;
   }
   if (width < 0) {
-    SetGLError(GL_INVALID_VALUE,
-               "glRenderbufferStorageMultisampleCHROMIUM",
+    SetGLError(GL_INVALID_VALUE, "glRenderbufferStorageMultisampleCHROMIUM",
                "width < 0");
     return;
   }
   if (height < 0) {
-    SetGLError(GL_INVALID_VALUE,
-               "glRenderbufferStorageMultisampleCHROMIUM",
+    SetGLError(GL_INVALID_VALUE, "glRenderbufferStorageMultisampleCHROMIUM",
                "height < 0");
     return;
   }
@@ -1758,22 +1755,22 @@
           << ", " << GLES2Util::GetStringRenderBufferFormat(internalformat)
           << ", " << width << ", " << height << ")");
   if (samples < 0) {
-    SetGLError(
-        GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "samples < 0");
+    SetGLError(GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT",
+               "samples < 0");
     return;
   }
   if (width < 0) {
-    SetGLError(
-        GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "width < 0");
+    SetGLError(GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT",
+               "width < 0");
     return;
   }
   if (height < 0) {
-    SetGLError(
-        GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "height < 0");
+    SetGLError(GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT",
+               "height < 0");
     return;
   }
-  helper_->RenderbufferStorageMultisampleEXT(
-      target, samples, internalformat, width, height);
+  helper_->RenderbufferStorageMultisampleEXT(target, samples, internalformat,
+                                             width, height);
   CheckGLError();
 }
 
@@ -1791,19 +1788,17 @@
                      << GLES2Util::GetStringTextureTarget(textarget) << ", "
                      << texture << ", " << level << ", " << samples << ")");
   if (level != 0) {
-    SetGLError(GL_INVALID_VALUE,
-               "glFramebufferTexture2DMultisampleEXT",
+    SetGLError(GL_INVALID_VALUE, "glFramebufferTexture2DMultisampleEXT",
                "level GL_INVALID_VALUE");
     return;
   }
   if (samples < 0) {
-    SetGLError(GL_INVALID_VALUE,
-               "glFramebufferTexture2DMultisampleEXT",
+    SetGLError(GL_INVALID_VALUE, "glFramebufferTexture2DMultisampleEXT",
                "samples < 0");
     return;
   }
-  helper_->FramebufferTexture2DMultisampleEXT(
-      target, attachment, textarget, texture, samples);
+  helper_->FramebufferTexture2DMultisampleEXT(target, attachment, textarget,
+                                              texture, samples);
   CheckGLError();
 }
 
@@ -2001,8 +1996,8 @@
     SetGLError(GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "height < 0");
     return;
   }
-  helper_->TexImageIOSurface2DCHROMIUM(
-      target, width, height, ioSurfaceId, plane);
+  helper_->TexImageIOSurface2DCHROMIUM(target, width, height, ioSurfaceId,
+                                       plane);
   CheckGLError();
 }
 
@@ -2019,8 +2014,8 @@
                      << GLES2Util::GetStringEnum(dest_id) << ", " << level
                      << ", " << internalformat << ", "
                      << GLES2Util::GetStringPixelType(dest_type) << ")");
-  helper_->CopyTextureCHROMIUM(
-      target, source_id, dest_id, level, internalformat, dest_type);
+  helper_->CopyTextureCHROMIUM(target, source_id, dest_id, level,
+                               internalformat, dest_type);
   CheckGLError();
 }
 
@@ -2124,17 +2119,9 @@
           << ", " << overlay_texture_id << ", " << bounds_x << ", " << bounds_y
           << ", " << bounds_width << ", " << bounds_height << ", " << uv_x
           << ", " << uv_y << ", " << uv_width << ", " << uv_height << ")");
-  helper_->ScheduleOverlayPlaneCHROMIUM(plane_z_order,
-                                        plane_transform,
-                                        overlay_texture_id,
-                                        bounds_x,
-                                        bounds_y,
-                                        bounds_width,
-                                        bounds_height,
-                                        uv_x,
-                                        uv_y,
-                                        uv_width,
-                                        uv_height);
+  helper_->ScheduleOverlayPlaneCHROMIUM(
+      plane_z_order, plane_transform, overlay_texture_id, bounds_x, bounds_y,
+      bounds_width, bounds_height, uv_x, uv_y, uv_width, uv_height);
   CheckGLError();
 }
 
diff --git a/gpu/command_buffer/client/gles2_implementation_unittest.cc b/gpu/command_buffer/client/gles2_implementation_unittest.cc
index 3d2f089..be1f1a3 100644
--- a/gpu/command_buffer/client/gles2_implementation_unittest.cc
+++ b/gpu/command_buffer/client/gles2_implementation_unittest.cc
@@ -467,7 +467,7 @@
 
       scoped_refptr<Buffer> ring_buffer = helper_->get_ring_buffer();
       commands_ = static_cast<CommandBufferEntry*>(ring_buffer->memory()) +
-                  command_buffer()->GetLastState().put_offset;
+                  command_buffer()->GetPutOffset();
       ClearCommands();
       EXPECT_TRUE(transfer_buffer_->InSync());
 
diff --git a/gpu/command_buffer/client/gles2_implementation_unittest_autogen.h b/gpu/command_buffer/client/gles2_implementation_unittest_autogen.h
index a42d6d5..8069b12 100644
--- a/gpu/command_buffer/client/gles2_implementation_unittest_autogen.h
+++ b/gpu/command_buffer/client/gles2_implementation_unittest_autogen.h
@@ -421,8 +421,8 @@
   Cmds expected;
   expected.cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, 4);
 
-  gl_->FramebufferRenderbuffer(
-      GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, 4);
+  gl_->FramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+                               GL_RENDERBUFFER, 4);
   EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
 }
 
@@ -433,14 +433,14 @@
   Cmds expected;
   expected.cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 4);
 
-  gl_->FramebufferTexture2D(
-      GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 4, 0);
+  gl_->FramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
+                            4, 0);
   EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
 }
 
 TEST_F(GLES2ImplementationTest, FramebufferTexture2DInvalidConstantArg4) {
-  gl_->FramebufferTexture2D(
-      GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 4, 1);
+  gl_->FramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
+                            4, 1);
   EXPECT_TRUE(NoCommandsWritten());
   EXPECT_EQ(GL_INVALID_VALUE, CheckError());
 }
@@ -602,18 +602,14 @@
   Result::Type result = 0;
   Cmds expected;
   ExpectedMemoryInfo result1 = GetExpectedResultMemory(4);
-  expected.cmd.Init(123,
-                    GL_COLOR_ATTACHMENT0,
-                    GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
-                    result1.id,
+  expected.cmd.Init(123, GL_COLOR_ATTACHMENT0,
+                    GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, result1.id,
                     result1.offset);
   EXPECT_CALL(*command_buffer(), OnFlush())
       .WillOnce(SetMemory(result1.ptr, SizedResultHelper<Result::Type>(1)))
       .RetiresOnSaturation();
   gl_->GetFramebufferAttachmentParameteriv(
-      123,
-      GL_COLOR_ATTACHMENT0,
-      GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+      123, GL_COLOR_ATTACHMENT0, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
       &result);
   EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
   EXPECT_EQ(static_cast<Result::Type>(1), result);
@@ -735,8 +731,8 @@
   Result::Type result = 0;
   Cmds expected;
   ExpectedMemoryInfo result1 = GetExpectedResultMemory(4);
-  expected.cmd.Init(
-      123, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, result1.id, result1.offset);
+  expected.cmd.Init(123, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, result1.id,
+                    result1.offset);
   EXPECT_CALL(*command_buffer(), OnFlush())
       .WillOnce(SetMemory(result1.ptr, SizedResultHelper<Result::Type>(1)))
       .RetiresOnSaturation();
@@ -753,8 +749,8 @@
   Result::Type result = 0;
   Cmds expected;
   ExpectedMemoryInfo result1 = GetExpectedResultMemory(4);
-  expected.cmd.Init(
-      123, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, result1.id, result1.offset);
+  expected.cmd.Init(123, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, result1.id,
+                    result1.offset);
   EXPECT_CALL(*command_buffer(), OnFlush())
       .WillOnce(SetMemory(result1.ptr, SizedResultHelper<Result::Type>(1)))
       .RetiresOnSaturation();
@@ -1599,8 +1595,8 @@
   Cmds expected;
   expected.cmd.Init(GL_RENDERBUFFER, 2, GL_RGBA4, 4, 5);
 
-  gl_->RenderbufferStorageMultisampleCHROMIUM(
-      GL_RENDERBUFFER, 2, GL_RGBA4, 4, 5);
+  gl_->RenderbufferStorageMultisampleCHROMIUM(GL_RENDERBUFFER, 2, GL_RGBA4, 4,
+                                              5);
   EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
 }
 
@@ -1622,15 +1618,15 @@
   Cmds expected;
   expected.cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 4, 6);
 
-  gl_->FramebufferTexture2DMultisampleEXT(
-      GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 4, 0, 6);
+  gl_->FramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+                                          GL_TEXTURE_2D, 4, 0, 6);
   EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
 }
 
 TEST_F(GLES2ImplementationTest,
        FramebufferTexture2DMultisampleEXTInvalidConstantArg4) {
-  gl_->FramebufferTexture2DMultisampleEXT(
-      GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 4, 1, 6);
+  gl_->FramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+                                          GL_TEXTURE_2D, 4, 1, 6);
   EXPECT_TRUE(NoCommandsWritten());
   EXPECT_EQ(GL_INVALID_VALUE, CheckError());
 }
diff --git a/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h b/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
index 3173a25..cf614a9 100644
--- a/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
+++ b/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
@@ -149,8 +149,8 @@
                                                     GLsizei imageSize,
                                                     const void* data) {
   TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::CompressedTexImage2D");
-  gl_->CompressedTexImage2D(
-      target, level, internalformat, width, height, border, imageSize, data);
+  gl_->CompressedTexImage2D(target, level, internalformat, width, height,
+                            border, imageSize, data);
 }
 
 void GLES2TraceImplementation::CompressedTexSubImage2D(GLenum target,
@@ -163,8 +163,8 @@
                                                        GLsizei imageSize,
                                                        const void* data) {
   TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::CompressedTexSubImage2D");
-  gl_->CompressedTexSubImage2D(
-      target, level, xoffset, yoffset, width, height, format, imageSize, data);
+  gl_->CompressedTexSubImage2D(target, level, xoffset, yoffset, width, height,
+                               format, imageSize, data);
 }
 
 void GLES2TraceImplementation::CopyTexImage2D(GLenum target,
@@ -176,8 +176,8 @@
                                               GLsizei height,
                                               GLint border) {
   TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::CopyTexImage2D");
-  gl_->CopyTexImage2D(
-      target, level, internalformat, x, y, width, height, border);
+  gl_->CopyTexImage2D(target, level, internalformat, x, y, width, height,
+                      border);
 }
 
 void GLES2TraceImplementation::CopyTexSubImage2D(GLenum target,
@@ -312,8 +312,8 @@
     GLenum renderbuffertarget,
     GLuint renderbuffer) {
   TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::FramebufferRenderbuffer");
-  gl_->FramebufferRenderbuffer(
-      target, attachment, renderbuffertarget, renderbuffer);
+  gl_->FramebufferRenderbuffer(target, attachment, renderbuffertarget,
+                               renderbuffer);
 }
 
 void GLES2TraceImplementation::FramebufferTexture2D(GLenum target,
@@ -719,15 +719,8 @@
                                           GLenum type,
                                           const void* pixels) {
   TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::TexImage2D");
-  gl_->TexImage2D(target,
-                  level,
-                  internalformat,
-                  width,
-                  height,
-                  border,
-                  format,
-                  type,
-                  pixels);
+  gl_->TexImage2D(target, level, internalformat, width, height, border, format,
+                  type, pixels);
 }
 
 void GLES2TraceImplementation::TexParameterf(GLenum target,
@@ -768,8 +761,8 @@
                                              GLenum type,
                                              const void* pixels) {
   TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::TexSubImage2D");
-  gl_->TexSubImage2D(
-      target, level, xoffset, yoffset, width, height, format, type, pixels);
+  gl_->TexSubImage2D(target, level, xoffset, yoffset, width, height, format,
+                     type, pixels);
 }
 
 void GLES2TraceImplementation::Uniform1f(GLint location, GLfloat x) {
@@ -998,8 +991,8 @@
                                                        GLbitfield mask,
                                                        GLenum filter) {
   TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::BlitFramebufferCHROMIUM");
-  gl_->BlitFramebufferCHROMIUM(
-      srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+  gl_->BlitFramebufferCHROMIUM(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1,
+                               dstY1, mask, filter);
 }
 
 void GLES2TraceImplementation::RenderbufferStorageMultisampleCHROMIUM(
@@ -1010,8 +1003,8 @@
     GLsizei height) {
   TRACE_EVENT_BINARY_EFFICIENT0(
       "gpu", "GLES2Trace::RenderbufferStorageMultisampleCHROMIUM");
-  gl_->RenderbufferStorageMultisampleCHROMIUM(
-      target, samples, internalformat, width, height);
+  gl_->RenderbufferStorageMultisampleCHROMIUM(target, samples, internalformat,
+                                              width, height);
 }
 
 void GLES2TraceImplementation::RenderbufferStorageMultisampleEXT(
@@ -1022,8 +1015,8 @@
     GLsizei height) {
   TRACE_EVENT_BINARY_EFFICIENT0(
       "gpu", "GLES2Trace::RenderbufferStorageMultisampleEXT");
-  gl_->RenderbufferStorageMultisampleEXT(
-      target, samples, internalformat, width, height);
+  gl_->RenderbufferStorageMultisampleEXT(target, samples, internalformat, width,
+                                         height);
 }
 
 void GLES2TraceImplementation::FramebufferTexture2DMultisampleEXT(
@@ -1035,8 +1028,8 @@
     GLsizei samples) {
   TRACE_EVENT_BINARY_EFFICIENT0(
       "gpu", "GLES2Trace::FramebufferTexture2DMultisampleEXT");
-  gl_->FramebufferTexture2DMultisampleEXT(
-      target, attachment, textarget, texture, level, samples);
+  gl_->FramebufferTexture2DMultisampleEXT(target, attachment, textarget,
+                                          texture, level, samples);
 }
 
 void GLES2TraceImplementation::TexStorage2DEXT(GLenum target,
@@ -1180,8 +1173,8 @@
                                                          GLenum type,
                                                          GLenum access) {
   TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::MapTexSubImage2DCHROMIUM");
-  return gl_->MapTexSubImage2DCHROMIUM(
-      target, level, xoffset, yoffset, width, height, format, type, access);
+  return gl_->MapTexSubImage2DCHROMIUM(target, level, xoffset, yoffset, width,
+                                       height, format, type, access);
 }
 
 void GLES2TraceImplementation::UnmapTexSubImage2DCHROMIUM(const void* mem) {
@@ -1257,8 +1250,8 @@
     GLenum usage) {
   TRACE_EVENT_BINARY_EFFICIENT0(
       "gpu", "GLES2Trace::CreateGpuMemoryBufferImageCHROMIUM");
-  return gl_->CreateGpuMemoryBufferImageCHROMIUM(
-      width, height, internalformat, usage);
+  return gl_->CreateGpuMemoryBufferImageCHROMIUM(width, height, internalformat,
+                                                 usage);
 }
 
 void GLES2TraceImplementation::GetTranslatedShaderSourceANGLE(GLuint shader,
@@ -1295,8 +1288,8 @@
                                                    GLint internalformat,
                                                    GLenum dest_type) {
   TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::CopyTextureCHROMIUM");
-  gl_->CopyTextureCHROMIUM(
-      target, source_id, dest_id, level, internalformat, dest_type);
+  gl_->CopyTextureCHROMIUM(target, source_id, dest_id, level, internalformat,
+                           dest_type);
 }
 
 void GLES2TraceImplementation::DrawArraysInstancedANGLE(GLenum mode,
@@ -1398,8 +1391,8 @@
                                                           const void* data) {
   TRACE_EVENT_BINARY_EFFICIENT0("gpu",
                                 "GLES2Trace::AsyncTexSubImage2DCHROMIUM");
-  gl_->AsyncTexSubImage2DCHROMIUM(
-      target, level, xoffset, yoffset, width, height, format, type, data);
+  gl_->AsyncTexSubImage2DCHROMIUM(target, level, xoffset, yoffset, width,
+                                  height, format, type, data);
 }
 
 void GLES2TraceImplementation::AsyncTexImage2DCHROMIUM(GLenum target,
@@ -1412,15 +1405,8 @@
                                                        GLenum type,
                                                        const void* pixels) {
   TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::AsyncTexImage2DCHROMIUM");
-  gl_->AsyncTexImage2DCHROMIUM(target,
-                               level,
-                               internalformat,
-                               width,
-                               height,
-                               border,
-                               format,
-                               type,
-                               pixels);
+  gl_->AsyncTexImage2DCHROMIUM(target, level, internalformat, width, height,
+                               border, format, type, pixels);
 }
 
 void GLES2TraceImplementation::WaitAsyncTexImage2DCHROMIUM(GLenum target) {
@@ -1484,17 +1470,9 @@
     GLfloat uv_height) {
   TRACE_EVENT_BINARY_EFFICIENT0("gpu",
                                 "GLES2Trace::ScheduleOverlayPlaneCHROMIUM");
-  gl_->ScheduleOverlayPlaneCHROMIUM(plane_z_order,
-                                    plane_transform,
-                                    overlay_texture_id,
-                                    bounds_x,
-                                    bounds_y,
-                                    bounds_width,
-                                    bounds_height,
-                                    uv_x,
-                                    uv_y,
-                                    uv_width,
-                                    uv_height);
+  gl_->ScheduleOverlayPlaneCHROMIUM(
+      plane_z_order, plane_transform, overlay_texture_id, bounds_x, bounds_y,
+      bounds_width, bounds_height, uv_x, uv_y, uv_width, uv_height);
 }
 
 void GLES2TraceImplementation::MatrixLoadfCHROMIUM(GLenum matrixMode,
diff --git a/gpu/command_buffer/common/command_buffer.h b/gpu/command_buffer/common/command_buffer.h
index 61b9142..d846ec1 100644
--- a/gpu/command_buffer/common/command_buffer.h
+++ b/gpu/command_buffer/common/command_buffer.h
@@ -20,24 +20,16 @@
  public:
   struct State {
     State()
-        : num_entries(0),
-          get_offset(0),
-          put_offset(0),
+        : get_offset(0),
           token(-1),
           error(error::kNoError),
           context_lost_reason(error::kUnknown),
           generation(0) {
     }
 
-    // Size of the command buffer in command buffer entries.
-    int32 num_entries;
-
     // The offset (in entries) from which the reader is reading.
     int32 get_offset;
 
-    // The offset (in entries) at which the writer is writing.
-    int32 put_offset;
-
     // The current token value. This is used by the writer to defer
     // changes to shared memory objects until the reader has reached a certain
     // point in the command buffer. The reader is responsible for updating the
diff --git a/gpu/command_buffer/common/command_buffer_mock.h b/gpu/command_buffer/common/command_buffer_mock.h
index 1877470..b7366f8 100644
--- a/gpu/command_buffer/common/command_buffer_mock.h
+++ b/gpu/command_buffer/common/command_buffer_mock.h
@@ -38,6 +38,7 @@
   MOCK_METHOD1(SetContextLostReason,
                void(error::ContextLostReason context_lost_reason));
   MOCK_METHOD0(InsertSyncPoint, uint32());
+  MOCK_METHOD0(GetPutOffset, int32());
 
  private:
   DISALLOW_COPY_AND_ASSIGN(MockCommandBuffer);
diff --git a/gpu/command_buffer/common/command_buffer_shared_test.cc b/gpu/command_buffer/common/command_buffer_shared_test.cc
index 65a2429..0615f74 100644
--- a/gpu/command_buffer/common/command_buffer_shared_test.cc
+++ b/gpu/command_buffer/common/command_buffer_shared_test.cc
@@ -29,7 +29,6 @@
 
   EXPECT_LT(state.generation, 0x80000000);
   EXPECT_EQ(state.get_offset, 0);
-  EXPECT_EQ(state.put_offset, 0);
   EXPECT_EQ(state.token, -1);
   EXPECT_EQ(state.error, gpu::error::kNoError);
   EXPECT_EQ(state.context_lost_reason, gpu::error::kUnknown);
diff --git a/gpu/command_buffer/common/gles2_cmd_format_autogen.h b/gpu/command_buffer/common/gles2_cmd_format_autogen.h
index 487e8b7..ecef6bb 100644
--- a/gpu/command_buffer/common/gles2_cmd_format_autogen.h
+++ b/gpu/command_buffer/common/gles2_cmd_format_autogen.h
@@ -962,13 +962,8 @@
             GLsizei _imageSize,
             uint32_t _data_shm_id,
             uint32_t _data_shm_offset) {
-    static_cast<ValueType*>(cmd)->Init(_target,
-                                       _level,
-                                       _internalformat,
-                                       _width,
-                                       _height,
-                                       _imageSize,
-                                       _data_shm_id,
+    static_cast<ValueType*>(cmd)->Init(_target, _level, _internalformat, _width,
+                                       _height, _imageSize, _data_shm_id,
                                        _data_shm_offset);
     return NextCmdAddress<ValueType>(cmd);
   }
@@ -1046,14 +1041,8 @@
             GLsizei _height,
             GLenum _format,
             GLuint _bucket_id) {
-    static_cast<ValueType*>(cmd)->Init(_target,
-                                       _level,
-                                       _xoffset,
-                                       _yoffset,
-                                       _width,
-                                       _height,
-                                       _format,
-                                       _bucket_id);
+    static_cast<ValueType*>(cmd)->Init(_target, _level, _xoffset, _yoffset,
+                                       _width, _height, _format, _bucket_id);
     return NextCmdAddress<ValueType>(cmd);
   }
 
@@ -1135,16 +1124,9 @@
             GLsizei _imageSize,
             uint32_t _data_shm_id,
             uint32_t _data_shm_offset) {
-    static_cast<ValueType*>(cmd)->Init(_target,
-                                       _level,
-                                       _xoffset,
-                                       _yoffset,
-                                       _width,
-                                       _height,
-                                       _format,
-                                       _imageSize,
-                                       _data_shm_id,
-                                       _data_shm_offset);
+    static_cast<ValueType*>(cmd)->Init(_target, _level, _xoffset, _yoffset,
+                                       _width, _height, _format, _imageSize,
+                                       _data_shm_id, _data_shm_offset);
     return NextCmdAddress<ValueType>(cmd);
   }
 
@@ -2436,8 +2418,8 @@
             uint32_t _name_bucket_id,
             uint32_t _result_shm_id,
             uint32_t _result_shm_offset) {
-    static_cast<ValueType*>(cmd)->Init(
-        _program, _index, _name_bucket_id, _result_shm_id, _result_shm_offset);
+    static_cast<ValueType*>(cmd)->Init(_program, _index, _name_bucket_id,
+                                       _result_shm_id, _result_shm_offset);
     return NextCmdAddress<ValueType>(cmd);
   }
 
@@ -2506,8 +2488,8 @@
             uint32_t _name_bucket_id,
             uint32_t _result_shm_id,
             uint32_t _result_shm_offset) {
-    static_cast<ValueType*>(cmd)->Init(
-        _program, _index, _name_bucket_id, _result_shm_id, _result_shm_offset);
+    static_cast<ValueType*>(cmd)->Init(_program, _index, _name_bucket_id,
+                                       _result_shm_id, _result_shm_offset);
     return NextCmdAddress<ValueType>(cmd);
   }
 
@@ -2625,8 +2607,8 @@
             uint32_t _name_bucket_id,
             uint32_t _location_shm_id,
             uint32_t _location_shm_offset) {
-    static_cast<ValueType*>(cmd)->Init(
-        _program, _name_bucket_id, _location_shm_id, _location_shm_offset);
+    static_cast<ValueType*>(cmd)->Init(_program, _name_bucket_id,
+                                       _location_shm_id, _location_shm_offset);
     return NextCmdAddress<ValueType>(cmd);
   }
 
@@ -2870,8 +2852,8 @@
             GLenum _pname,
             uint32_t _params_shm_id,
             uint32_t _params_shm_offset) {
-    static_cast<ValueType*>(cmd)->Init(
-        _target, _attachment, _pname, _params_shm_id, _params_shm_offset);
+    static_cast<ValueType*>(cmd)->Init(_target, _attachment, _pname,
+                                       _params_shm_id, _params_shm_offset);
     return NextCmdAddress<ValueType>(cmd);
   }
 
@@ -3572,8 +3554,8 @@
             uint32_t _name_bucket_id,
             uint32_t _location_shm_id,
             uint32_t _location_shm_offset) {
-    static_cast<ValueType*>(cmd)->Init(
-        _program, _name_bucket_id, _location_shm_id, _location_shm_offset);
+    static_cast<ValueType*>(cmd)->Init(_program, _name_bucket_id,
+                                       _location_shm_id, _location_shm_offset);
     return NextCmdAddress<ValueType>(cmd);
   }
 
@@ -4313,17 +4295,9 @@
             uint32_t _result_shm_id,
             uint32_t _result_shm_offset,
             GLboolean _async) {
-    static_cast<ValueType*>(cmd)->Init(_x,
-                                       _y,
-                                       _width,
-                                       _height,
-                                       _format,
-                                       _type,
-                                       _pixels_shm_id,
-                                       _pixels_shm_offset,
-                                       _result_shm_id,
-                                       _result_shm_offset,
-                                       _async);
+    static_cast<ValueType*>(cmd)
+        ->Init(_x, _y, _width, _height, _format, _type, _pixels_shm_id,
+               _pixels_shm_offset, _result_shm_id, _result_shm_offset, _async);
     return NextCmdAddress<ValueType>(cmd);
   }
 
@@ -4557,13 +4531,9 @@
             uint32_t _binary_shm_id,
             uint32_t _binary_shm_offset,
             GLsizei _length) {
-    static_cast<ValueType*>(cmd)->Init(_n,
-                                       _shaders_shm_id,
-                                       _shaders_shm_offset,
-                                       _binaryformat,
-                                       _binary_shm_id,
-                                       _binary_shm_offset,
-                                       _length);
+    static_cast<ValueType*>(cmd)->Init(_n, _shaders_shm_id, _shaders_shm_offset,
+                                       _binaryformat, _binary_shm_id,
+                                       _binary_shm_offset, _length);
     return NextCmdAddress<ValueType>(cmd);
   }
 
@@ -4914,14 +4884,8 @@
             GLenum _type,
             uint32_t _pixels_shm_id,
             uint32_t _pixels_shm_offset) {
-    static_cast<ValueType*>(cmd)->Init(_target,
-                                       _level,
-                                       _internalformat,
-                                       _width,
-                                       _height,
-                                       _format,
-                                       _type,
-                                       _pixels_shm_id,
+    static_cast<ValueType*>(cmd)->Init(_target, _level, _internalformat, _width,
+                                       _height, _format, _type, _pixels_shm_id,
                                        _pixels_shm_offset);
     return NextCmdAddress<ValueType>(cmd);
   }
@@ -5178,17 +5142,9 @@
             uint32_t _pixels_shm_id,
             uint32_t _pixels_shm_offset,
             GLboolean _internal) {
-    static_cast<ValueType*>(cmd)->Init(_target,
-                                       _level,
-                                       _xoffset,
-                                       _yoffset,
-                                       _width,
-                                       _height,
-                                       _format,
-                                       _type,
-                                       _pixels_shm_id,
-                                       _pixels_shm_offset,
-                                       _internal);
+    static_cast<ValueType*>(cmd)
+        ->Init(_target, _level, _xoffset, _yoffset, _width, _height, _format,
+               _type, _pixels_shm_id, _pixels_shm_offset, _internal);
     return NextCmdAddress<ValueType>(cmd);
   }
 
@@ -6615,16 +6571,8 @@
             GLint _dstY1,
             GLbitfield _mask,
             GLenum _filter) {
-    static_cast<ValueType*>(cmd)->Init(_srcX0,
-                                       _srcY0,
-                                       _srcX1,
-                                       _srcY1,
-                                       _dstX0,
-                                       _dstY0,
-                                       _dstX1,
-                                       _dstY1,
-                                       _mask,
-                                       _filter);
+    static_cast<ValueType*>(cmd)->Init(_srcX0, _srcY0, _srcX1, _srcY1, _dstX0,
+                                       _dstY0, _dstX1, _dstY1, _mask, _filter);
     return NextCmdAddress<ValueType>(cmd);
   }
 
@@ -7399,8 +7347,8 @@
             GLuint _offset,
             uint32_t _result_shm_id,
             uint32_t _result_shm_offset) {
-    static_cast<ValueType*>(cmd)->Init(
-        _buffer_id, _count, _type, _offset, _result_shm_id, _result_shm_offset);
+    static_cast<ValueType*>(cmd)->Init(_buffer_id, _count, _type, _offset,
+                                       _result_shm_id, _result_shm_offset);
     return NextCmdAddress<ValueType>(cmd);
   }
 
@@ -7619,12 +7567,9 @@
             uint32_t _results_shm_id,
             uint32_t _results_shm_offset,
             GLsizeiptr _size) {
-    static_cast<ValueType*>(cmd)->Init(_pnames_shm_id,
-                                       _pnames_shm_offset,
-                                       _count,
-                                       _results_shm_id,
-                                       _results_shm_offset,
-                                       _size);
+    static_cast<ValueType*>(cmd)->Init(_pnames_shm_id, _pnames_shm_offset,
+                                       _count, _results_shm_id,
+                                       _results_shm_offset, _size);
     return NextCmdAddress<ValueType>(cmd);
   }
 
@@ -7878,8 +7823,8 @@
             GLint _level,
             GLint _internalformat,
             GLenum _dest_type) {
-    static_cast<ValueType*>(cmd)->Init(
-        _target, _source_id, _dest_id, _level, _internalformat, _dest_type);
+    static_cast<ValueType*>(cmd)->Init(_target, _source_id, _dest_id, _level,
+                                       _internalformat, _dest_type);
     return NextCmdAddress<ValueType>(cmd);
   }
 
@@ -8414,19 +8359,10 @@
             uint32_t _async_upload_token,
             uint32_t _sync_data_shm_id,
             uint32_t _sync_data_shm_offset) {
-    static_cast<ValueType*>(cmd)->Init(_target,
-                                       _level,
-                                       _xoffset,
-                                       _yoffset,
-                                       _width,
-                                       _height,
-                                       _format,
-                                       _type,
-                                       _data_shm_id,
-                                       _data_shm_offset,
-                                       _async_upload_token,
-                                       _sync_data_shm_id,
-                                       _sync_data_shm_offset);
+    static_cast<ValueType*>(cmd)
+        ->Init(_target, _level, _xoffset, _yoffset, _width, _height, _format,
+               _type, _data_shm_id, _data_shm_offset, _async_upload_token,
+               _sync_data_shm_id, _sync_data_shm_offset);
     return NextCmdAddress<ValueType>(cmd);
   }
 
@@ -8529,18 +8465,10 @@
             uint32_t _async_upload_token,
             uint32_t _sync_data_shm_id,
             uint32_t _sync_data_shm_offset) {
-    static_cast<ValueType*>(cmd)->Init(_target,
-                                       _level,
-                                       _internalformat,
-                                       _width,
-                                       _height,
-                                       _format,
-                                       _type,
-                                       _pixels_shm_id,
-                                       _pixels_shm_offset,
-                                       _async_upload_token,
-                                       _sync_data_shm_id,
-                                       _sync_data_shm_offset);
+    static_cast<ValueType*>(cmd)
+        ->Init(_target, _level, _internalformat, _width, _height, _format,
+               _type, _pixels_shm_id, _pixels_shm_offset, _async_upload_token,
+               _sync_data_shm_id, _sync_data_shm_offset);
     return NextCmdAddress<ValueType>(cmd);
   }
 
@@ -8886,17 +8814,10 @@
             GLfloat _uv_y,
             GLfloat _uv_width,
             GLfloat _uv_height) {
-    static_cast<ValueType*>(cmd)->Init(_plane_z_order,
-                                       _plane_transform,
-                                       _overlay_texture_id,
-                                       _bounds_x,
-                                       _bounds_y,
-                                       _bounds_width,
-                                       _bounds_height,
-                                       _uv_x,
-                                       _uv_y,
-                                       _uv_width,
-                                       _uv_height);
+    static_cast<ValueType*>(cmd)->Init(_plane_z_order, _plane_transform,
+                                       _overlay_texture_id, _bounds_x,
+                                       _bounds_y, _bounds_width, _bounds_height,
+                                       _uv_x, _uv_y, _uv_width, _uv_height);
     return NextCmdAddress<ValueType>(cmd);
   }
 
diff --git a/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h b/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
index b26afb1..7d037a6 100644
--- a/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
+++ b/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
@@ -39,10 +39,8 @@
 TEST_F(GLES2FormatTest, BindAttribLocationBucket) {
   cmds::BindAttribLocationBucket& cmd =
       *GetBufferAs<cmds::BindAttribLocationBucket>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<GLuint>(12),
-                           static_cast<uint32_t>(13));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11),
+                           static_cast<GLuint>(12), static_cast<uint32_t>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::BindAttribLocationBucket::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -102,11 +100,9 @@
 
 TEST_F(GLES2FormatTest, BlendColor) {
   cmds::BlendColor& cmd = *GetBufferAs<cmds::BlendColor>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLclampf>(11),
-                           static_cast<GLclampf>(12),
-                           static_cast<GLclampf>(13),
-                           static_cast<GLclampf>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLclampf>(11), static_cast<GLclampf>(12),
+              static_cast<GLclampf>(13), static_cast<GLclampf>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::BlendColor::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -153,11 +149,9 @@
 
 TEST_F(GLES2FormatTest, BlendFuncSeparate) {
   cmds::BlendFuncSeparate& cmd = *GetBufferAs<cmds::BlendFuncSeparate>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<GLenum>(13),
-                           static_cast<GLenum>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+              static_cast<GLenum>(13), static_cast<GLenum>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::BlendFuncSeparate::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -170,12 +164,10 @@
 
 TEST_F(GLES2FormatTest, BufferData) {
   cmds::BufferData& cmd = *GetBufferAs<cmds::BufferData>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLsizeiptr>(12),
-                           static_cast<uint32_t>(13),
-                           static_cast<uint32_t>(14),
-                           static_cast<GLenum>(15));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLsizeiptr>(12),
+              static_cast<uint32_t>(13), static_cast<uint32_t>(14),
+              static_cast<GLenum>(15));
   EXPECT_EQ(static_cast<uint32_t>(cmds::BufferData::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -189,12 +181,10 @@
 
 TEST_F(GLES2FormatTest, BufferSubData) {
   cmds::BufferSubData& cmd = *GetBufferAs<cmds::BufferSubData>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLintptr>(12),
-                           static_cast<GLsizeiptr>(13),
-                           static_cast<uint32_t>(14),
-                           static_cast<uint32_t>(15));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLintptr>(12),
+              static_cast<GLsizeiptr>(13), static_cast<uint32_t>(14),
+              static_cast<uint32_t>(15));
   EXPECT_EQ(static_cast<uint32_t>(cmds::BufferSubData::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -209,10 +199,9 @@
 TEST_F(GLES2FormatTest, CheckFramebufferStatus) {
   cmds::CheckFramebufferStatus& cmd =
       *GetBufferAs<cmds::CheckFramebufferStatus>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<uint32_t>(12),
-                           static_cast<uint32_t>(13));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<uint32_t>(12),
+              static_cast<uint32_t>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::CheckFramebufferStatus::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -233,11 +222,9 @@
 
 TEST_F(GLES2FormatTest, ClearColor) {
   cmds::ClearColor& cmd = *GetBufferAs<cmds::ClearColor>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLclampf>(11),
-                           static_cast<GLclampf>(12),
-                           static_cast<GLclampf>(13),
-                           static_cast<GLclampf>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLclampf>(11), static_cast<GLclampf>(12),
+              static_cast<GLclampf>(13), static_cast<GLclampf>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::ClearColor::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -270,11 +257,9 @@
 
 TEST_F(GLES2FormatTest, ColorMask) {
   cmds::ColorMask& cmd = *GetBufferAs<cmds::ColorMask>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLboolean>(11),
-                           static_cast<GLboolean>(12),
-                           static_cast<GLboolean>(13),
-                           static_cast<GLboolean>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLboolean>(11), static_cast<GLboolean>(12),
+              static_cast<GLboolean>(13), static_cast<GLboolean>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::ColorMask::kCmdId), cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
   EXPECT_EQ(static_cast<GLboolean>(11), cmd.red);
@@ -297,13 +282,10 @@
 TEST_F(GLES2FormatTest, CompressedTexImage2DBucket) {
   cmds::CompressedTexImage2DBucket& cmd =
       *GetBufferAs<cmds::CompressedTexImage2DBucket>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLint>(12),
-                           static_cast<GLenum>(13),
-                           static_cast<GLsizei>(14),
-                           static_cast<GLsizei>(15),
-                           static_cast<GLuint>(16));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLint>(12),
+              static_cast<GLenum>(13), static_cast<GLsizei>(14),
+              static_cast<GLsizei>(15), static_cast<GLuint>(16));
   EXPECT_EQ(static_cast<uint32_t>(cmds::CompressedTexImage2DBucket::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -318,15 +300,11 @@
 
 TEST_F(GLES2FormatTest, CompressedTexImage2D) {
   cmds::CompressedTexImage2D& cmd = *GetBufferAs<cmds::CompressedTexImage2D>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLint>(12),
-                           static_cast<GLenum>(13),
-                           static_cast<GLsizei>(14),
-                           static_cast<GLsizei>(15),
-                           static_cast<GLsizei>(16),
-                           static_cast<uint32_t>(17),
-                           static_cast<uint32_t>(18));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLint>(12),
+              static_cast<GLenum>(13), static_cast<GLsizei>(14),
+              static_cast<GLsizei>(15), static_cast<GLsizei>(16),
+              static_cast<uint32_t>(17), static_cast<uint32_t>(18));
   EXPECT_EQ(static_cast<uint32_t>(cmds::CompressedTexImage2D::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -344,15 +322,11 @@
 TEST_F(GLES2FormatTest, CompressedTexSubImage2DBucket) {
   cmds::CompressedTexSubImage2DBucket& cmd =
       *GetBufferAs<cmds::CompressedTexSubImage2DBucket>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLint>(12),
-                           static_cast<GLint>(13),
-                           static_cast<GLint>(14),
-                           static_cast<GLsizei>(15),
-                           static_cast<GLsizei>(16),
-                           static_cast<GLenum>(17),
-                           static_cast<GLuint>(18));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLint>(12),
+              static_cast<GLint>(13), static_cast<GLint>(14),
+              static_cast<GLsizei>(15), static_cast<GLsizei>(16),
+              static_cast<GLenum>(17), static_cast<GLuint>(18));
   EXPECT_EQ(static_cast<uint32_t>(cmds::CompressedTexSubImage2DBucket::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -370,17 +344,12 @@
 TEST_F(GLES2FormatTest, CompressedTexSubImage2D) {
   cmds::CompressedTexSubImage2D& cmd =
       *GetBufferAs<cmds::CompressedTexSubImage2D>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLint>(12),
-                           static_cast<GLint>(13),
-                           static_cast<GLint>(14),
-                           static_cast<GLsizei>(15),
-                           static_cast<GLsizei>(16),
-                           static_cast<GLenum>(17),
-                           static_cast<GLsizei>(18),
-                           static_cast<uint32_t>(19),
-                           static_cast<uint32_t>(20));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLint>(12),
+              static_cast<GLint>(13), static_cast<GLint>(14),
+              static_cast<GLsizei>(15), static_cast<GLsizei>(16),
+              static_cast<GLenum>(17), static_cast<GLsizei>(18),
+              static_cast<uint32_t>(19), static_cast<uint32_t>(20));
   EXPECT_EQ(static_cast<uint32_t>(cmds::CompressedTexSubImage2D::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -399,14 +368,10 @@
 
 TEST_F(GLES2FormatTest, CopyTexImage2D) {
   cmds::CopyTexImage2D& cmd = *GetBufferAs<cmds::CopyTexImage2D>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLint>(12),
-                           static_cast<GLenum>(13),
-                           static_cast<GLint>(14),
-                           static_cast<GLint>(15),
-                           static_cast<GLsizei>(16),
-                           static_cast<GLsizei>(17));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+                           static_cast<GLint>(12), static_cast<GLenum>(13),
+                           static_cast<GLint>(14), static_cast<GLint>(15),
+                           static_cast<GLsizei>(16), static_cast<GLsizei>(17));
   EXPECT_EQ(static_cast<uint32_t>(cmds::CopyTexImage2D::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -422,15 +387,11 @@
 
 TEST_F(GLES2FormatTest, CopyTexSubImage2D) {
   cmds::CopyTexSubImage2D& cmd = *GetBufferAs<cmds::CopyTexSubImage2D>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLint>(12),
-                           static_cast<GLint>(13),
-                           static_cast<GLint>(14),
-                           static_cast<GLint>(15),
-                           static_cast<GLint>(16),
-                           static_cast<GLsizei>(17),
-                           static_cast<GLsizei>(18));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLint>(12),
+              static_cast<GLint>(13), static_cast<GLint>(14),
+              static_cast<GLint>(15), static_cast<GLint>(16),
+              static_cast<GLsizei>(17), static_cast<GLsizei>(18));
   EXPECT_EQ(static_cast<uint32_t>(cmds::CopyTexSubImage2D::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -632,10 +593,8 @@
 
 TEST_F(GLES2FormatTest, DrawArrays) {
   cmds::DrawArrays& cmd = *GetBufferAs<cmds::DrawArrays>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLint>(12),
-                           static_cast<GLsizei>(13));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+                           static_cast<GLint>(12), static_cast<GLsizei>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::DrawArrays::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -647,11 +606,9 @@
 
 TEST_F(GLES2FormatTest, DrawElements) {
   cmds::DrawElements& cmd = *GetBufferAs<cmds::DrawElements>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLsizei>(12),
-                           static_cast<GLenum>(13),
-                           static_cast<GLuint>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLsizei>(12),
+              static_cast<GLenum>(13), static_cast<GLuint>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::DrawElements::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -701,11 +658,9 @@
 TEST_F(GLES2FormatTest, FramebufferRenderbuffer) {
   cmds::FramebufferRenderbuffer& cmd =
       *GetBufferAs<cmds::FramebufferRenderbuffer>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<GLenum>(13),
-                           static_cast<GLuint>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+              static_cast<GLenum>(13), static_cast<GLuint>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::FramebufferRenderbuffer::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -718,11 +673,9 @@
 
 TEST_F(GLES2FormatTest, FramebufferTexture2D) {
   cmds::FramebufferTexture2D& cmd = *GetBufferAs<cmds::FramebufferTexture2D>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<GLenum>(13),
-                           static_cast<GLuint>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+              static_cast<GLenum>(13), static_cast<GLuint>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::FramebufferTexture2D::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -824,12 +777,10 @@
 
 TEST_F(GLES2FormatTest, GetActiveAttrib) {
   cmds::GetActiveAttrib& cmd = *GetBufferAs<cmds::GetActiveAttrib>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<GLuint>(12),
-                           static_cast<uint32_t>(13),
-                           static_cast<uint32_t>(14),
-                           static_cast<uint32_t>(15));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLuint>(12),
+              static_cast<uint32_t>(13), static_cast<uint32_t>(14),
+              static_cast<uint32_t>(15));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetActiveAttrib::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -843,12 +794,10 @@
 
 TEST_F(GLES2FormatTest, GetActiveUniform) {
   cmds::GetActiveUniform& cmd = *GetBufferAs<cmds::GetActiveUniform>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<GLuint>(12),
-                           static_cast<uint32_t>(13),
-                           static_cast<uint32_t>(14),
-                           static_cast<uint32_t>(15));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLuint>(12),
+              static_cast<uint32_t>(13), static_cast<uint32_t>(14),
+              static_cast<uint32_t>(15));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetActiveUniform::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -862,11 +811,9 @@
 
 TEST_F(GLES2FormatTest, GetAttachedShaders) {
   cmds::GetAttachedShaders& cmd = *GetBufferAs<cmds::GetAttachedShaders>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<uint32_t>(12),
-                           static_cast<uint32_t>(13),
-                           static_cast<uint32_t>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+              static_cast<uint32_t>(13), static_cast<uint32_t>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetAttachedShaders::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -879,11 +826,9 @@
 
 TEST_F(GLES2FormatTest, GetAttribLocation) {
   cmds::GetAttribLocation& cmd = *GetBufferAs<cmds::GetAttribLocation>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<uint32_t>(12),
-                           static_cast<uint32_t>(13),
-                           static_cast<uint32_t>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+              static_cast<uint32_t>(13), static_cast<uint32_t>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetAttribLocation::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -896,10 +841,9 @@
 
 TEST_F(GLES2FormatTest, GetBooleanv) {
   cmds::GetBooleanv& cmd = *GetBufferAs<cmds::GetBooleanv>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<uint32_t>(12),
-                           static_cast<uint32_t>(13));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<uint32_t>(12),
+              static_cast<uint32_t>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetBooleanv::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -911,11 +855,9 @@
 
 TEST_F(GLES2FormatTest, GetBufferParameteriv) {
   cmds::GetBufferParameteriv& cmd = *GetBufferAs<cmds::GetBufferParameteriv>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<uint32_t>(13),
-                           static_cast<uint32_t>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+              static_cast<uint32_t>(13), static_cast<uint32_t>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetBufferParameteriv::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -939,10 +881,9 @@
 
 TEST_F(GLES2FormatTest, GetFloatv) {
   cmds::GetFloatv& cmd = *GetBufferAs<cmds::GetFloatv>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<uint32_t>(12),
-                           static_cast<uint32_t>(13));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<uint32_t>(12),
+              static_cast<uint32_t>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetFloatv::kCmdId), cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
   EXPECT_EQ(static_cast<GLenum>(11), cmd.pname);
@@ -954,12 +895,10 @@
 TEST_F(GLES2FormatTest, GetFramebufferAttachmentParameteriv) {
   cmds::GetFramebufferAttachmentParameteriv& cmd =
       *GetBufferAs<cmds::GetFramebufferAttachmentParameteriv>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<GLenum>(13),
-                           static_cast<uint32_t>(14),
-                           static_cast<uint32_t>(15));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+              static_cast<GLenum>(13), static_cast<uint32_t>(14),
+              static_cast<uint32_t>(15));
   EXPECT_EQ(
       static_cast<uint32_t>(cmds::GetFramebufferAttachmentParameteriv::kCmdId),
       cmd.header.command);
@@ -974,10 +913,9 @@
 
 TEST_F(GLES2FormatTest, GetIntegerv) {
   cmds::GetIntegerv& cmd = *GetBufferAs<cmds::GetIntegerv>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<uint32_t>(12),
-                           static_cast<uint32_t>(13));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<uint32_t>(12),
+              static_cast<uint32_t>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetIntegerv::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -989,11 +927,9 @@
 
 TEST_F(GLES2FormatTest, GetProgramiv) {
   cmds::GetProgramiv& cmd = *GetBufferAs<cmds::GetProgramiv>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<uint32_t>(13),
-                           static_cast<uint32_t>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLenum>(12),
+              static_cast<uint32_t>(13), static_cast<uint32_t>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetProgramiv::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1019,11 +955,9 @@
 TEST_F(GLES2FormatTest, GetRenderbufferParameteriv) {
   cmds::GetRenderbufferParameteriv& cmd =
       *GetBufferAs<cmds::GetRenderbufferParameteriv>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<uint32_t>(13),
-                           static_cast<uint32_t>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+              static_cast<uint32_t>(13), static_cast<uint32_t>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetRenderbufferParameteriv::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1036,11 +970,9 @@
 
 TEST_F(GLES2FormatTest, GetShaderiv) {
   cmds::GetShaderiv& cmd = *GetBufferAs<cmds::GetShaderiv>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<uint32_t>(13),
-                           static_cast<uint32_t>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLenum>(12),
+              static_cast<uint32_t>(13), static_cast<uint32_t>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetShaderiv::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1066,11 +998,9 @@
 TEST_F(GLES2FormatTest, GetShaderPrecisionFormat) {
   cmds::GetShaderPrecisionFormat& cmd =
       *GetBufferAs<cmds::GetShaderPrecisionFormat>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<uint32_t>(13),
-                           static_cast<uint32_t>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+              static_cast<uint32_t>(13), static_cast<uint32_t>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetShaderPrecisionFormat::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1106,11 +1036,9 @@
 
 TEST_F(GLES2FormatTest, GetTexParameterfv) {
   cmds::GetTexParameterfv& cmd = *GetBufferAs<cmds::GetTexParameterfv>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<uint32_t>(13),
-                           static_cast<uint32_t>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+              static_cast<uint32_t>(13), static_cast<uint32_t>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetTexParameterfv::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1123,11 +1051,9 @@
 
 TEST_F(GLES2FormatTest, GetTexParameteriv) {
   cmds::GetTexParameteriv& cmd = *GetBufferAs<cmds::GetTexParameteriv>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<uint32_t>(13),
-                           static_cast<uint32_t>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+              static_cast<uint32_t>(13), static_cast<uint32_t>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetTexParameteriv::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1140,11 +1066,9 @@
 
 TEST_F(GLES2FormatTest, GetUniformfv) {
   cmds::GetUniformfv& cmd = *GetBufferAs<cmds::GetUniformfv>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<GLint>(12),
-                           static_cast<uint32_t>(13),
-                           static_cast<uint32_t>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLint>(12),
+              static_cast<uint32_t>(13), static_cast<uint32_t>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetUniformfv::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1157,11 +1081,9 @@
 
 TEST_F(GLES2FormatTest, GetUniformiv) {
   cmds::GetUniformiv& cmd = *GetBufferAs<cmds::GetUniformiv>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<GLint>(12),
-                           static_cast<uint32_t>(13),
-                           static_cast<uint32_t>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLint>(12),
+              static_cast<uint32_t>(13), static_cast<uint32_t>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetUniformiv::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1174,11 +1096,9 @@
 
 TEST_F(GLES2FormatTest, GetUniformLocation) {
   cmds::GetUniformLocation& cmd = *GetBufferAs<cmds::GetUniformLocation>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<uint32_t>(12),
-                           static_cast<uint32_t>(13),
-                           static_cast<uint32_t>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+              static_cast<uint32_t>(13), static_cast<uint32_t>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetUniformLocation::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1191,11 +1111,9 @@
 
 TEST_F(GLES2FormatTest, GetVertexAttribfv) {
   cmds::GetVertexAttribfv& cmd = *GetBufferAs<cmds::GetVertexAttribfv>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<uint32_t>(13),
-                           static_cast<uint32_t>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLenum>(12),
+              static_cast<uint32_t>(13), static_cast<uint32_t>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetVertexAttribfv::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1208,11 +1126,9 @@
 
 TEST_F(GLES2FormatTest, GetVertexAttribiv) {
   cmds::GetVertexAttribiv& cmd = *GetBufferAs<cmds::GetVertexAttribiv>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<uint32_t>(13),
-                           static_cast<uint32_t>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLenum>(12),
+              static_cast<uint32_t>(13), static_cast<uint32_t>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetVertexAttribiv::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1226,11 +1142,9 @@
 TEST_F(GLES2FormatTest, GetVertexAttribPointerv) {
   cmds::GetVertexAttribPointerv& cmd =
       *GetBufferAs<cmds::GetVertexAttribPointerv>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<uint32_t>(13),
-                           static_cast<uint32_t>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLenum>(12),
+              static_cast<uint32_t>(13), static_cast<uint32_t>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetVertexAttribPointerv::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1254,10 +1168,9 @@
 
 TEST_F(GLES2FormatTest, IsBuffer) {
   cmds::IsBuffer& cmd = *GetBufferAs<cmds::IsBuffer>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<uint32_t>(12),
-                           static_cast<uint32_t>(13));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+              static_cast<uint32_t>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::IsBuffer::kCmdId), cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
   EXPECT_EQ(static_cast<GLuint>(11), cmd.buffer);
@@ -1268,10 +1181,9 @@
 
 TEST_F(GLES2FormatTest, IsEnabled) {
   cmds::IsEnabled& cmd = *GetBufferAs<cmds::IsEnabled>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<uint32_t>(12),
-                           static_cast<uint32_t>(13));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<uint32_t>(12),
+              static_cast<uint32_t>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::IsEnabled::kCmdId), cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
   EXPECT_EQ(static_cast<GLenum>(11), cmd.cap);
@@ -1282,10 +1194,9 @@
 
 TEST_F(GLES2FormatTest, IsFramebuffer) {
   cmds::IsFramebuffer& cmd = *GetBufferAs<cmds::IsFramebuffer>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<uint32_t>(12),
-                           static_cast<uint32_t>(13));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+              static_cast<uint32_t>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::IsFramebuffer::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1297,10 +1208,9 @@
 
 TEST_F(GLES2FormatTest, IsProgram) {
   cmds::IsProgram& cmd = *GetBufferAs<cmds::IsProgram>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<uint32_t>(12),
-                           static_cast<uint32_t>(13));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+              static_cast<uint32_t>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::IsProgram::kCmdId), cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
   EXPECT_EQ(static_cast<GLuint>(11), cmd.program);
@@ -1311,10 +1221,9 @@
 
 TEST_F(GLES2FormatTest, IsRenderbuffer) {
   cmds::IsRenderbuffer& cmd = *GetBufferAs<cmds::IsRenderbuffer>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<uint32_t>(12),
-                           static_cast<uint32_t>(13));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+              static_cast<uint32_t>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::IsRenderbuffer::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1326,10 +1235,9 @@
 
 TEST_F(GLES2FormatTest, IsShader) {
   cmds::IsShader& cmd = *GetBufferAs<cmds::IsShader>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<uint32_t>(12),
-                           static_cast<uint32_t>(13));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+              static_cast<uint32_t>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::IsShader::kCmdId), cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
   EXPECT_EQ(static_cast<GLuint>(11), cmd.shader);
@@ -1340,10 +1248,9 @@
 
 TEST_F(GLES2FormatTest, IsTexture) {
   cmds::IsTexture& cmd = *GetBufferAs<cmds::IsTexture>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<uint32_t>(12),
-                           static_cast<uint32_t>(13));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+              static_cast<uint32_t>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::IsTexture::kCmdId), cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
   EXPECT_EQ(static_cast<GLuint>(11), cmd.texture);
@@ -1397,17 +1304,11 @@
 
 TEST_F(GLES2FormatTest, ReadPixels) {
   cmds::ReadPixels& cmd = *GetBufferAs<cmds::ReadPixels>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLint>(11),
-                           static_cast<GLint>(12),
-                           static_cast<GLsizei>(13),
-                           static_cast<GLsizei>(14),
-                           static_cast<GLenum>(15),
-                           static_cast<GLenum>(16),
-                           static_cast<uint32_t>(17),
-                           static_cast<uint32_t>(18),
-                           static_cast<uint32_t>(19),
-                           static_cast<uint32_t>(20),
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11), static_cast<GLint>(12),
+                           static_cast<GLsizei>(13), static_cast<GLsizei>(14),
+                           static_cast<GLenum>(15), static_cast<GLenum>(16),
+                           static_cast<uint32_t>(17), static_cast<uint32_t>(18),
+                           static_cast<uint32_t>(19), static_cast<uint32_t>(20),
                            static_cast<GLboolean>(21));
   EXPECT_EQ(static_cast<uint32_t>(cmds::ReadPixels::kCmdId),
             cmd.header.command);
@@ -1438,11 +1339,9 @@
 
 TEST_F(GLES2FormatTest, RenderbufferStorage) {
   cmds::RenderbufferStorage& cmd = *GetBufferAs<cmds::RenderbufferStorage>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<GLsizei>(13),
-                           static_cast<GLsizei>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+              static_cast<GLsizei>(13), static_cast<GLsizei>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::RenderbufferStorage::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1467,11 +1366,8 @@
 
 TEST_F(GLES2FormatTest, Scissor) {
   cmds::Scissor& cmd = *GetBufferAs<cmds::Scissor>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLint>(11),
-                           static_cast<GLint>(12),
-                           static_cast<GLsizei>(13),
-                           static_cast<GLsizei>(14));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11), static_cast<GLint>(12),
+                           static_cast<GLsizei>(13), static_cast<GLsizei>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::Scissor::kCmdId), cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
   EXPECT_EQ(static_cast<GLint>(11), cmd.x);
@@ -1483,14 +1379,10 @@
 
 TEST_F(GLES2FormatTest, ShaderBinary) {
   cmds::ShaderBinary& cmd = *GetBufferAs<cmds::ShaderBinary>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLsizei>(11),
-                           static_cast<uint32_t>(12),
-                           static_cast<uint32_t>(13),
-                           static_cast<GLenum>(14),
-                           static_cast<uint32_t>(15),
-                           static_cast<uint32_t>(16),
-                           static_cast<GLsizei>(17));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLsizei>(11),
+                           static_cast<uint32_t>(12), static_cast<uint32_t>(13),
+                           static_cast<GLenum>(14), static_cast<uint32_t>(15),
+                           static_cast<uint32_t>(16), static_cast<GLsizei>(17));
   EXPECT_EQ(static_cast<uint32_t>(cmds::ShaderBinary::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1518,10 +1410,8 @@
 
 TEST_F(GLES2FormatTest, StencilFunc) {
   cmds::StencilFunc& cmd = *GetBufferAs<cmds::StencilFunc>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLint>(12),
-                           static_cast<GLuint>(13));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+                           static_cast<GLint>(12), static_cast<GLuint>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::StencilFunc::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1533,11 +1423,9 @@
 
 TEST_F(GLES2FormatTest, StencilFuncSeparate) {
   cmds::StencilFuncSeparate& cmd = *GetBufferAs<cmds::StencilFuncSeparate>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<GLint>(13),
-                           static_cast<GLuint>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+              static_cast<GLint>(13), static_cast<GLuint>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::StencilFuncSeparate::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1572,10 +1460,8 @@
 
 TEST_F(GLES2FormatTest, StencilOp) {
   cmds::StencilOp& cmd = *GetBufferAs<cmds::StencilOp>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<GLenum>(13));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+                           static_cast<GLenum>(12), static_cast<GLenum>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::StencilOp::kCmdId), cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
   EXPECT_EQ(static_cast<GLenum>(11), cmd.fail);
@@ -1586,11 +1472,9 @@
 
 TEST_F(GLES2FormatTest, StencilOpSeparate) {
   cmds::StencilOpSeparate& cmd = *GetBufferAs<cmds::StencilOpSeparate>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<GLenum>(13),
-                           static_cast<GLenum>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+              static_cast<GLenum>(13), static_cast<GLenum>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::StencilOpSeparate::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1603,16 +1487,12 @@
 
 TEST_F(GLES2FormatTest, TexImage2D) {
   cmds::TexImage2D& cmd = *GetBufferAs<cmds::TexImage2D>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLint>(12),
-                           static_cast<GLint>(13),
-                           static_cast<GLsizei>(14),
-                           static_cast<GLsizei>(15),
-                           static_cast<GLenum>(16),
-                           static_cast<GLenum>(17),
-                           static_cast<uint32_t>(18),
-                           static_cast<uint32_t>(19));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLint>(12),
+              static_cast<GLint>(13), static_cast<GLsizei>(14),
+              static_cast<GLsizei>(15), static_cast<GLenum>(16),
+              static_cast<GLenum>(17), static_cast<uint32_t>(18),
+              static_cast<uint32_t>(19));
   EXPECT_EQ(static_cast<uint32_t>(cmds::TexImage2D::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1630,10 +1510,8 @@
 
 TEST_F(GLES2FormatTest, TexParameterf) {
   cmds::TexParameterf& cmd = *GetBufferAs<cmds::TexParameterf>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<GLfloat>(13));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+                           static_cast<GLenum>(12), static_cast<GLfloat>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::TexParameterf::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1665,10 +1543,8 @@
 
 TEST_F(GLES2FormatTest, TexParameteri) {
   cmds::TexParameteri& cmd = *GetBufferAs<cmds::TexParameteri>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<GLint>(13));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+                           static_cast<GLenum>(12), static_cast<GLint>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::TexParameteri::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1700,18 +1576,12 @@
 
 TEST_F(GLES2FormatTest, TexSubImage2D) {
   cmds::TexSubImage2D& cmd = *GetBufferAs<cmds::TexSubImage2D>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLint>(12),
-                           static_cast<GLint>(13),
-                           static_cast<GLint>(14),
-                           static_cast<GLsizei>(15),
-                           static_cast<GLsizei>(16),
-                           static_cast<GLenum>(17),
-                           static_cast<GLenum>(18),
-                           static_cast<uint32_t>(19),
-                           static_cast<uint32_t>(20),
-                           static_cast<GLboolean>(21));
+  void* next_cmd = cmd.Set(
+      &cmd, static_cast<GLenum>(11), static_cast<GLint>(12),
+      static_cast<GLint>(13), static_cast<GLint>(14), static_cast<GLsizei>(15),
+      static_cast<GLsizei>(16), static_cast<GLenum>(17),
+      static_cast<GLenum>(18), static_cast<uint32_t>(19),
+      static_cast<uint32_t>(20), static_cast<GLboolean>(21));
   EXPECT_EQ(static_cast<uint32_t>(cmds::TexSubImage2D::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1797,10 +1667,8 @@
 
 TEST_F(GLES2FormatTest, Uniform2f) {
   cmds::Uniform2f& cmd = *GetBufferAs<cmds::Uniform2f>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLint>(11),
-                           static_cast<GLfloat>(12),
-                           static_cast<GLfloat>(13));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11),
+                           static_cast<GLfloat>(12), static_cast<GLfloat>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::Uniform2f::kCmdId), cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
   EXPECT_EQ(static_cast<GLint>(11), cmd.location);
@@ -1835,9 +1703,7 @@
 
 TEST_F(GLES2FormatTest, Uniform2i) {
   cmds::Uniform2i& cmd = *GetBufferAs<cmds::Uniform2i>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLint>(11),
-                           static_cast<GLint>(12),
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11), static_cast<GLint>(12),
                            static_cast<GLint>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::Uniform2i::kCmdId), cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1873,11 +1739,9 @@
 
 TEST_F(GLES2FormatTest, Uniform3f) {
   cmds::Uniform3f& cmd = *GetBufferAs<cmds::Uniform3f>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLint>(11),
-                           static_cast<GLfloat>(12),
-                           static_cast<GLfloat>(13),
-                           static_cast<GLfloat>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLint>(11), static_cast<GLfloat>(12),
+              static_cast<GLfloat>(13), static_cast<GLfloat>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::Uniform3f::kCmdId), cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
   EXPECT_EQ(static_cast<GLint>(11), cmd.location);
@@ -1915,11 +1779,8 @@
 
 TEST_F(GLES2FormatTest, Uniform3i) {
   cmds::Uniform3i& cmd = *GetBufferAs<cmds::Uniform3i>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLint>(11),
-                           static_cast<GLint>(12),
-                           static_cast<GLint>(13),
-                           static_cast<GLint>(14));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11), static_cast<GLint>(12),
+                           static_cast<GLint>(13), static_cast<GLint>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::Uniform3i::kCmdId), cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
   EXPECT_EQ(static_cast<GLint>(11), cmd.location);
@@ -1957,12 +1818,9 @@
 
 TEST_F(GLES2FormatTest, Uniform4f) {
   cmds::Uniform4f& cmd = *GetBufferAs<cmds::Uniform4f>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLint>(11),
-                           static_cast<GLfloat>(12),
-                           static_cast<GLfloat>(13),
-                           static_cast<GLfloat>(14),
-                           static_cast<GLfloat>(15));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11),
+                           static_cast<GLfloat>(12), static_cast<GLfloat>(13),
+                           static_cast<GLfloat>(14), static_cast<GLfloat>(15));
   EXPECT_EQ(static_cast<uint32_t>(cmds::Uniform4f::kCmdId), cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
   EXPECT_EQ(static_cast<GLint>(11), cmd.location);
@@ -2003,11 +1861,8 @@
 
 TEST_F(GLES2FormatTest, Uniform4i) {
   cmds::Uniform4i& cmd = *GetBufferAs<cmds::Uniform4i>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLint>(11),
-                           static_cast<GLint>(12),
-                           static_cast<GLint>(13),
-                           static_cast<GLint>(14),
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11), static_cast<GLint>(12),
+                           static_cast<GLint>(13), static_cast<GLint>(14),
                            static_cast<GLint>(15));
   EXPECT_EQ(static_cast<uint32_t>(cmds::Uniform4i::kCmdId), cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2220,10 +2075,8 @@
 
 TEST_F(GLES2FormatTest, VertexAttrib2f) {
   cmds::VertexAttrib2f& cmd = *GetBufferAs<cmds::VertexAttrib2f>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<GLfloat>(12),
-                           static_cast<GLfloat>(13));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11),
+                           static_cast<GLfloat>(12), static_cast<GLfloat>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::VertexAttrib2f::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2254,11 +2107,9 @@
 
 TEST_F(GLES2FormatTest, VertexAttrib3f) {
   cmds::VertexAttrib3f& cmd = *GetBufferAs<cmds::VertexAttrib3f>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<GLfloat>(12),
-                           static_cast<GLfloat>(13),
-                           static_cast<GLfloat>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLfloat>(12),
+              static_cast<GLfloat>(13), static_cast<GLfloat>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::VertexAttrib3f::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2291,12 +2142,9 @@
 
 TEST_F(GLES2FormatTest, VertexAttrib4f) {
   cmds::VertexAttrib4f& cmd = *GetBufferAs<cmds::VertexAttrib4f>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<GLfloat>(12),
-                           static_cast<GLfloat>(13),
-                           static_cast<GLfloat>(14),
-                           static_cast<GLfloat>(15));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11),
+                           static_cast<GLfloat>(12), static_cast<GLfloat>(13),
+                           static_cast<GLfloat>(14), static_cast<GLfloat>(15));
   EXPECT_EQ(static_cast<uint32_t>(cmds::VertexAttrib4f::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2331,13 +2179,10 @@
 
 TEST_F(GLES2FormatTest, VertexAttribPointer) {
   cmds::VertexAttribPointer& cmd = *GetBufferAs<cmds::VertexAttribPointer>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<GLint>(12),
-                           static_cast<GLenum>(13),
-                           static_cast<GLboolean>(14),
-                           static_cast<GLsizei>(15),
-                           static_cast<GLuint>(16));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLint>(12),
+              static_cast<GLenum>(13), static_cast<GLboolean>(14),
+              static_cast<GLsizei>(15), static_cast<GLuint>(16));
   EXPECT_EQ(static_cast<uint32_t>(cmds::VertexAttribPointer::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2352,11 +2197,8 @@
 
 TEST_F(GLES2FormatTest, Viewport) {
   cmds::Viewport& cmd = *GetBufferAs<cmds::Viewport>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLint>(11),
-                           static_cast<GLint>(12),
-                           static_cast<GLsizei>(13),
-                           static_cast<GLsizei>(14));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11), static_cast<GLint>(12),
+                           static_cast<GLsizei>(13), static_cast<GLsizei>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::Viewport::kCmdId), cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
   EXPECT_EQ(static_cast<GLint>(11), cmd.x);
@@ -2369,17 +2211,11 @@
 TEST_F(GLES2FormatTest, BlitFramebufferCHROMIUM) {
   cmds::BlitFramebufferCHROMIUM& cmd =
       *GetBufferAs<cmds::BlitFramebufferCHROMIUM>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLint>(11),
-                           static_cast<GLint>(12),
-                           static_cast<GLint>(13),
-                           static_cast<GLint>(14),
-                           static_cast<GLint>(15),
-                           static_cast<GLint>(16),
-                           static_cast<GLint>(17),
-                           static_cast<GLint>(18),
-                           static_cast<GLbitfield>(19),
-                           static_cast<GLenum>(20));
+  void* next_cmd = cmd.Set(
+      &cmd, static_cast<GLint>(11), static_cast<GLint>(12),
+      static_cast<GLint>(13), static_cast<GLint>(14), static_cast<GLint>(15),
+      static_cast<GLint>(16), static_cast<GLint>(17), static_cast<GLint>(18),
+      static_cast<GLbitfield>(19), static_cast<GLenum>(20));
   EXPECT_EQ(static_cast<uint32_t>(cmds::BlitFramebufferCHROMIUM::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2399,12 +2235,9 @@
 TEST_F(GLES2FormatTest, RenderbufferStorageMultisampleCHROMIUM) {
   cmds::RenderbufferStorageMultisampleCHROMIUM& cmd =
       *GetBufferAs<cmds::RenderbufferStorageMultisampleCHROMIUM>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLsizei>(12),
-                           static_cast<GLenum>(13),
-                           static_cast<GLsizei>(14),
-                           static_cast<GLsizei>(15));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+                           static_cast<GLsizei>(12), static_cast<GLenum>(13),
+                           static_cast<GLsizei>(14), static_cast<GLsizei>(15));
   EXPECT_EQ(static_cast<uint32_t>(
                 cmds::RenderbufferStorageMultisampleCHROMIUM::kCmdId),
             cmd.header.command);
@@ -2420,12 +2253,9 @@
 TEST_F(GLES2FormatTest, RenderbufferStorageMultisampleEXT) {
   cmds::RenderbufferStorageMultisampleEXT& cmd =
       *GetBufferAs<cmds::RenderbufferStorageMultisampleEXT>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLsizei>(12),
-                           static_cast<GLenum>(13),
-                           static_cast<GLsizei>(14),
-                           static_cast<GLsizei>(15));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+                           static_cast<GLsizei>(12), static_cast<GLenum>(13),
+                           static_cast<GLsizei>(14), static_cast<GLsizei>(15));
   EXPECT_EQ(
       static_cast<uint32_t>(cmds::RenderbufferStorageMultisampleEXT::kCmdId),
       cmd.header.command);
@@ -2441,12 +2271,9 @@
 TEST_F(GLES2FormatTest, FramebufferTexture2DMultisampleEXT) {
   cmds::FramebufferTexture2DMultisampleEXT& cmd =
       *GetBufferAs<cmds::FramebufferTexture2DMultisampleEXT>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<GLenum>(13),
-                           static_cast<GLuint>(14),
-                           static_cast<GLsizei>(15));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+                           static_cast<GLenum>(12), static_cast<GLenum>(13),
+                           static_cast<GLuint>(14), static_cast<GLsizei>(15));
   EXPECT_EQ(
       static_cast<uint32_t>(cmds::FramebufferTexture2DMultisampleEXT::kCmdId),
       cmd.header.command);
@@ -2461,12 +2288,9 @@
 
 TEST_F(GLES2FormatTest, TexStorage2DEXT) {
   cmds::TexStorage2DEXT& cmd = *GetBufferAs<cmds::TexStorage2DEXT>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLsizei>(12),
-                           static_cast<GLenum>(13),
-                           static_cast<GLsizei>(14),
-                           static_cast<GLsizei>(15));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+                           static_cast<GLsizei>(12), static_cast<GLenum>(13),
+                           static_cast<GLsizei>(14), static_cast<GLsizei>(15));
   EXPECT_EQ(static_cast<uint32_t>(cmds::TexStorage2DEXT::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2516,11 +2340,9 @@
 
 TEST_F(GLES2FormatTest, BeginQueryEXT) {
   cmds::BeginQueryEXT& cmd = *GetBufferAs<cmds::BeginQueryEXT>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLuint>(12),
-                           static_cast<uint32_t>(13),
-                           static_cast<uint32_t>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLuint>(12),
+              static_cast<uint32_t>(13), static_cast<uint32_t>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::BeginQueryEXT::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2610,10 +2432,9 @@
 
 TEST_F(GLES2FormatTest, IsVertexArrayOES) {
   cmds::IsVertexArrayOES& cmd = *GetBufferAs<cmds::IsVertexArrayOES>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<uint32_t>(12),
-                           static_cast<uint32_t>(13));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+              static_cast<uint32_t>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::IsVertexArrayOES::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2645,13 +2466,10 @@
 TEST_F(GLES2FormatTest, GetMaxValueInBufferCHROMIUM) {
   cmds::GetMaxValueInBufferCHROMIUM& cmd =
       *GetBufferAs<cmds::GetMaxValueInBufferCHROMIUM>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<GLsizei>(12),
-                           static_cast<GLenum>(13),
-                           static_cast<GLuint>(14),
-                           static_cast<uint32_t>(15),
-                           static_cast<uint32_t>(16));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLsizei>(12),
+              static_cast<GLenum>(13), static_cast<GLuint>(14),
+              static_cast<uint32_t>(15), static_cast<uint32_t>(16));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetMaxValueInBufferCHROMIUM::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2667,10 +2485,9 @@
 TEST_F(GLES2FormatTest, EnableFeatureCHROMIUM) {
   cmds::EnableFeatureCHROMIUM& cmd =
       *GetBufferAs<cmds::EnableFeatureCHROMIUM>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<uint32_t>(12),
-                           static_cast<uint32_t>(13));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+              static_cast<uint32_t>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::EnableFeatureCHROMIUM::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2682,10 +2499,8 @@
 
 TEST_F(GLES2FormatTest, ResizeCHROMIUM) {
   cmds::ResizeCHROMIUM& cmd = *GetBufferAs<cmds::ResizeCHROMIUM>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<GLuint>(12),
-                           static_cast<GLfloat>(13));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11),
+                           static_cast<GLuint>(12), static_cast<GLfloat>(13));
   EXPECT_EQ(static_cast<uint32_t>(cmds::ResizeCHROMIUM::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2721,13 +2536,10 @@
 TEST_F(GLES2FormatTest, GetMultipleIntegervCHROMIUM) {
   cmds::GetMultipleIntegervCHROMIUM& cmd =
       *GetBufferAs<cmds::GetMultipleIntegervCHROMIUM>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<uint32_t>(11),
-                           static_cast<uint32_t>(12),
-                           static_cast<GLuint>(13),
-                           static_cast<uint32_t>(14),
-                           static_cast<uint32_t>(15),
-                           static_cast<GLsizeiptr>(16));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<uint32_t>(11), static_cast<uint32_t>(12),
+              static_cast<GLuint>(13), static_cast<uint32_t>(14),
+              static_cast<uint32_t>(15), static_cast<GLsizeiptr>(16));
   EXPECT_EQ(static_cast<uint32_t>(cmds::GetMultipleIntegervCHROMIUM::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2769,11 +2581,8 @@
 TEST_F(GLES2FormatTest, PostSubBufferCHROMIUM) {
   cmds::PostSubBufferCHROMIUM& cmd =
       *GetBufferAs<cmds::PostSubBufferCHROMIUM>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLint>(11),
-                           static_cast<GLint>(12),
-                           static_cast<GLint>(13),
-                           static_cast<GLint>(14));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11), static_cast<GLint>(12),
+                           static_cast<GLint>(13), static_cast<GLint>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::PostSubBufferCHROMIUM::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2787,12 +2596,9 @@
 TEST_F(GLES2FormatTest, TexImageIOSurface2DCHROMIUM) {
   cmds::TexImageIOSurface2DCHROMIUM& cmd =
       *GetBufferAs<cmds::TexImageIOSurface2DCHROMIUM>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLsizei>(12),
-                           static_cast<GLsizei>(13),
-                           static_cast<GLuint>(14),
-                           static_cast<GLuint>(15));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+                           static_cast<GLsizei>(12), static_cast<GLsizei>(13),
+                           static_cast<GLuint>(14), static_cast<GLuint>(15));
   EXPECT_EQ(static_cast<uint32_t>(cmds::TexImageIOSurface2DCHROMIUM::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2806,13 +2612,10 @@
 
 TEST_F(GLES2FormatTest, CopyTextureCHROMIUM) {
   cmds::CopyTextureCHROMIUM& cmd = *GetBufferAs<cmds::CopyTextureCHROMIUM>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<GLenum>(13),
-                           static_cast<GLint>(14),
-                           static_cast<GLint>(15),
-                           static_cast<GLenum>(16));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+              static_cast<GLenum>(13), static_cast<GLint>(14),
+              static_cast<GLint>(15), static_cast<GLenum>(16));
   EXPECT_EQ(static_cast<uint32_t>(cmds::CopyTextureCHROMIUM::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2828,11 +2631,9 @@
 TEST_F(GLES2FormatTest, DrawArraysInstancedANGLE) {
   cmds::DrawArraysInstancedANGLE& cmd =
       *GetBufferAs<cmds::DrawArraysInstancedANGLE>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLint>(12),
-                           static_cast<GLsizei>(13),
-                           static_cast<GLsizei>(14));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLint>(12),
+              static_cast<GLsizei>(13), static_cast<GLsizei>(14));
   EXPECT_EQ(static_cast<uint32_t>(cmds::DrawArraysInstancedANGLE::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2846,12 +2647,9 @@
 TEST_F(GLES2FormatTest, DrawElementsInstancedANGLE) {
   cmds::DrawElementsInstancedANGLE& cmd =
       *GetBufferAs<cmds::DrawElementsInstancedANGLE>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLsizei>(12),
-                           static_cast<GLenum>(13),
-                           static_cast<GLuint>(14),
-                           static_cast<GLsizei>(15));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+                           static_cast<GLsizei>(12), static_cast<GLenum>(13),
+                           static_cast<GLuint>(14), static_cast<GLsizei>(15));
   EXPECT_EQ(static_cast<uint32_t>(cmds::DrawElementsInstancedANGLE::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -3129,10 +2927,8 @@
 TEST_F(GLES2FormatTest, BindUniformLocationCHROMIUMBucket) {
   cmds::BindUniformLocationCHROMIUMBucket& cmd =
       *GetBufferAs<cmds::BindUniformLocationCHROMIUMBucket>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLuint>(11),
-                           static_cast<GLint>(12),
-                           static_cast<uint32_t>(13));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11),
+                           static_cast<GLint>(12), static_cast<uint32_t>(13));
   EXPECT_EQ(
       static_cast<uint32_t>(cmds::BindUniformLocationCHROMIUMBucket::kCmdId),
       cmd.header.command);
@@ -3191,20 +2987,13 @@
 TEST_F(GLES2FormatTest, AsyncTexSubImage2DCHROMIUM) {
   cmds::AsyncTexSubImage2DCHROMIUM& cmd =
       *GetBufferAs<cmds::AsyncTexSubImage2DCHROMIUM>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLint>(12),
-                           static_cast<GLint>(13),
-                           static_cast<GLint>(14),
-                           static_cast<GLsizei>(15),
-                           static_cast<GLsizei>(16),
-                           static_cast<GLenum>(17),
-                           static_cast<GLenum>(18),
-                           static_cast<uint32_t>(19),
-                           static_cast<uint32_t>(20),
-                           static_cast<uint32_t>(21),
-                           static_cast<uint32_t>(22),
-                           static_cast<uint32_t>(23));
+  void* next_cmd = cmd.Set(
+      &cmd, static_cast<GLenum>(11), static_cast<GLint>(12),
+      static_cast<GLint>(13), static_cast<GLint>(14), static_cast<GLsizei>(15),
+      static_cast<GLsizei>(16), static_cast<GLenum>(17),
+      static_cast<GLenum>(18), static_cast<uint32_t>(19),
+      static_cast<uint32_t>(20), static_cast<uint32_t>(21),
+      static_cast<uint32_t>(22), static_cast<uint32_t>(23));
   EXPECT_EQ(static_cast<uint32_t>(cmds::AsyncTexSubImage2DCHROMIUM::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -3227,19 +3016,13 @@
 TEST_F(GLES2FormatTest, AsyncTexImage2DCHROMIUM) {
   cmds::AsyncTexImage2DCHROMIUM& cmd =
       *GetBufferAs<cmds::AsyncTexImage2DCHROMIUM>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLenum>(11),
-                           static_cast<GLint>(12),
-                           static_cast<GLint>(13),
-                           static_cast<GLsizei>(14),
-                           static_cast<GLsizei>(15),
-                           static_cast<GLenum>(16),
-                           static_cast<GLenum>(17),
-                           static_cast<uint32_t>(18),
-                           static_cast<uint32_t>(19),
-                           static_cast<uint32_t>(20),
-                           static_cast<uint32_t>(21),
-                           static_cast<uint32_t>(22));
+  void* next_cmd =
+      cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLint>(12),
+              static_cast<GLint>(13), static_cast<GLsizei>(14),
+              static_cast<GLsizei>(15), static_cast<GLenum>(16),
+              static_cast<GLenum>(17), static_cast<uint32_t>(18),
+              static_cast<uint32_t>(19), static_cast<uint32_t>(20),
+              static_cast<uint32_t>(21), static_cast<uint32_t>(22));
   EXPECT_EQ(static_cast<uint32_t>(cmds::AsyncTexImage2DCHROMIUM::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -3359,18 +3142,12 @@
 TEST_F(GLES2FormatTest, ScheduleOverlayPlaneCHROMIUM) {
   cmds::ScheduleOverlayPlaneCHROMIUM& cmd =
       *GetBufferAs<cmds::ScheduleOverlayPlaneCHROMIUM>();
-  void* next_cmd = cmd.Set(&cmd,
-                           static_cast<GLint>(11),
-                           static_cast<GLenum>(12),
-                           static_cast<GLuint>(13),
-                           static_cast<GLint>(14),
-                           static_cast<GLint>(15),
-                           static_cast<GLint>(16),
-                           static_cast<GLint>(17),
-                           static_cast<GLfloat>(18),
-                           static_cast<GLfloat>(19),
-                           static_cast<GLfloat>(20),
-                           static_cast<GLfloat>(21));
+  void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11),
+                           static_cast<GLenum>(12), static_cast<GLuint>(13),
+                           static_cast<GLint>(14), static_cast<GLint>(15),
+                           static_cast<GLint>(16), static_cast<GLint>(17),
+                           static_cast<GLfloat>(18), static_cast<GLfloat>(19),
+                           static_cast<GLfloat>(20), static_cast<GLfloat>(21));
   EXPECT_EQ(static_cast<uint32_t>(cmds::ScheduleOverlayPlaneCHROMIUM::kCmdId),
             cmd.header.command);
   EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
diff --git a/gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h b/gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h
index 5d7cebd..aba98aa 100644
--- a/gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h
+++ b/gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h
@@ -3781,8 +3781,8 @@
       {GL_DEPTH_ATTACHMENT, "GL_DEPTH_ATTACHMENT"},
       {GL_STENCIL_ATTACHMENT, "GL_STENCIL_ATTACHMENT"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringBackbufferAttachment(uint32_t value) {
@@ -3791,24 +3791,24 @@
       {GL_DEPTH_EXT, "GL_DEPTH_EXT"},
       {GL_STENCIL_EXT, "GL_STENCIL_EXT"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringBlitFilter(uint32_t value) {
   static const EnumToString string_table[] = {
       {GL_NEAREST, "GL_NEAREST"}, {GL_LINEAR, "GL_LINEAR"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringBufferParameter(uint32_t value) {
   static const EnumToString string_table[] = {
       {GL_BUFFER_SIZE, "GL_BUFFER_SIZE"}, {GL_BUFFER_USAGE, "GL_BUFFER_USAGE"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringBufferTarget(uint32_t value) {
@@ -3816,8 +3816,8 @@
       {GL_ARRAY_BUFFER, "GL_ARRAY_BUFFER"},
       {GL_ELEMENT_ARRAY_BUFFER, "GL_ELEMENT_ARRAY_BUFFER"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringBufferUsage(uint32_t value) {
@@ -3826,8 +3826,8 @@
       {GL_STATIC_DRAW, "GL_STATIC_DRAW"},
       {GL_DYNAMIC_DRAW, "GL_DYNAMIC_DRAW"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringCapability(uint32_t value) {
@@ -3842,8 +3842,8 @@
       {GL_SCISSOR_TEST, "GL_SCISSOR_TEST"},
       {GL_STENCIL_TEST, "GL_STENCIL_TEST"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringCmpFunction(uint32_t value) {
@@ -3857,8 +3857,8 @@
       {GL_GEQUAL, "GL_GEQUAL"},
       {GL_ALWAYS, "GL_ALWAYS"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringCompressedTextureFormat(uint32_t value) {
@@ -3875,8 +3875,8 @@
       {GL_TRIANGLE_FAN, "GL_TRIANGLE_FAN"},
       {GL_TRIANGLES, "GL_TRIANGLES"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringDstBlendFactor(uint32_t value) {
@@ -3896,8 +3896,8 @@
       {GL_CONSTANT_ALPHA, "GL_CONSTANT_ALPHA"},
       {GL_ONE_MINUS_CONSTANT_ALPHA, "GL_ONE_MINUS_CONSTANT_ALPHA"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringEquation(uint32_t value) {
@@ -3906,16 +3906,16 @@
       {GL_FUNC_SUBTRACT, "GL_FUNC_SUBTRACT"},
       {GL_FUNC_REVERSE_SUBTRACT, "GL_FUNC_REVERSE_SUBTRACT"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringFaceMode(uint32_t value) {
   static const EnumToString string_table[] = {
       {GL_CW, "GL_CW"}, {GL_CCW, "GL_CCW"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringFaceType(uint32_t value) {
@@ -3924,8 +3924,8 @@
       {GL_BACK, "GL_BACK"},
       {GL_FRONT_AND_BACK, "GL_FRONT_AND_BACK"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringFrameBufferParameter(uint32_t value) {
@@ -3939,16 +3939,16 @@
       {GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
        "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringFrameBufferTarget(uint32_t value) {
   static const EnumToString string_table[] = {
       {GL_FRAMEBUFFER, "GL_FRAMEBUFFER"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringGLState(uint32_t value) {
@@ -4050,8 +4050,8 @@
       {GL_SCISSOR_TEST, "GL_SCISSOR_TEST"},
       {GL_STENCIL_TEST, "GL_STENCIL_TEST"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringGetMaxIndexType(uint32_t value) {
@@ -4060,8 +4060,8 @@
       {GL_UNSIGNED_SHORT, "GL_UNSIGNED_SHORT"},
       {GL_UNSIGNED_INT, "GL_UNSIGNED_INT"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringGetTexParamTarget(uint32_t value) {
@@ -4069,8 +4069,8 @@
       {GL_TEXTURE_2D, "GL_TEXTURE_2D"},
       {GL_TEXTURE_CUBE_MAP, "GL_TEXTURE_CUBE_MAP"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringHintMode(uint32_t value) {
@@ -4079,24 +4079,24 @@
       {GL_NICEST, "GL_NICEST"},
       {GL_DONT_CARE, "GL_DONT_CARE"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringHintTarget(uint32_t value) {
   static const EnumToString string_table[] = {
       {GL_GENERATE_MIPMAP_HINT, "GL_GENERATE_MIPMAP_HINT"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringImageInternalFormat(uint32_t value) {
   static const EnumToString string_table[] = {
       {GL_RGB, "GL_RGB"}, {GL_RGBA, "GL_RGBA"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringImageUsage(uint32_t value) {
@@ -4104,8 +4104,8 @@
       {GL_MAP_CHROMIUM, "GL_MAP_CHROMIUM"},
       {GL_SCANOUT_CHROMIUM, "GL_SCANOUT_CHROMIUM"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringIndexType(uint32_t value) {
@@ -4113,8 +4113,8 @@
       {GL_UNSIGNED_BYTE, "GL_UNSIGNED_BYTE"},
       {GL_UNSIGNED_SHORT, "GL_UNSIGNED_SHORT"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringMatrixMode(uint32_t value) {
@@ -4122,8 +4122,8 @@
       {GL_PATH_PROJECTION_CHROMIUM, "GL_PATH_PROJECTION_CHROMIUM"},
       {GL_PATH_MODELVIEW_CHROMIUM, "GL_PATH_MODELVIEW_CHROMIUM"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringPixelStore(uint32_t value) {
@@ -4136,8 +4136,8 @@
       {GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM,
        "GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringPixelType(uint32_t value) {
@@ -4147,8 +4147,8 @@
       {GL_UNSIGNED_SHORT_4_4_4_4, "GL_UNSIGNED_SHORT_4_4_4_4"},
       {GL_UNSIGNED_SHORT_5_5_5_1, "GL_UNSIGNED_SHORT_5_5_5_1"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringProgramParameter(uint32_t value) {
@@ -4163,8 +4163,8 @@
       {GL_ACTIVE_UNIFORMS, "GL_ACTIVE_UNIFORMS"},
       {GL_ACTIVE_UNIFORM_MAX_LENGTH, "GL_ACTIVE_UNIFORM_MAX_LENGTH"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringQueryObjectParameter(uint32_t value) {
@@ -4172,16 +4172,16 @@
       {GL_QUERY_RESULT_EXT, "GL_QUERY_RESULT_EXT"},
       {GL_QUERY_RESULT_AVAILABLE_EXT, "GL_QUERY_RESULT_AVAILABLE_EXT"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringQueryParameter(uint32_t value) {
   static const EnumToString string_table[] = {
       {GL_CURRENT_QUERY_EXT, "GL_CURRENT_QUERY_EXT"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringQueryTarget(uint32_t value) {
@@ -4197,16 +4197,16 @@
        "GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM"},
       {GL_COMMANDS_COMPLETED_CHROMIUM, "GL_COMMANDS_COMPLETED_CHROMIUM"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringReadPixelFormat(uint32_t value) {
   static const EnumToString string_table[] = {
       {GL_ALPHA, "GL_ALPHA"}, {GL_RGB, "GL_RGB"}, {GL_RGBA, "GL_RGBA"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringReadPixelType(uint32_t value) {
@@ -4216,8 +4216,8 @@
       {GL_UNSIGNED_SHORT_4_4_4_4, "GL_UNSIGNED_SHORT_4_4_4_4"},
       {GL_UNSIGNED_SHORT_5_5_5_1, "GL_UNSIGNED_SHORT_5_5_5_1"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringRenderBufferFormat(uint32_t value) {
@@ -4228,8 +4228,8 @@
       {GL_DEPTH_COMPONENT16, "GL_DEPTH_COMPONENT16"},
       {GL_STENCIL_INDEX8, "GL_STENCIL_INDEX8"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringRenderBufferParameter(uint32_t value) {
@@ -4244,16 +4244,16 @@
       {GL_RENDERBUFFER_HEIGHT, "GL_RENDERBUFFER_HEIGHT"},
       {GL_RENDERBUFFER_INTERNAL_FORMAT, "GL_RENDERBUFFER_INTERNAL_FORMAT"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringRenderBufferTarget(uint32_t value) {
   static const EnumToString string_table[] = {
       {GL_RENDERBUFFER, "GL_RENDERBUFFER"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringResetStatus(uint32_t value) {
@@ -4262,8 +4262,8 @@
       {GL_INNOCENT_CONTEXT_RESET_ARB, "GL_INNOCENT_CONTEXT_RESET_ARB"},
       {GL_UNKNOWN_CONTEXT_RESET_ARB, "GL_UNKNOWN_CONTEXT_RESET_ARB"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringShaderBinaryFormat(uint32_t value) {
@@ -4280,8 +4280,8 @@
       {GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE,
        "GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringShaderPrecision(uint32_t value) {
@@ -4293,8 +4293,8 @@
       {GL_MEDIUM_INT, "GL_MEDIUM_INT"},
       {GL_HIGH_INT, "GL_HIGH_INT"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringShaderType(uint32_t value) {
@@ -4302,8 +4302,8 @@
       {GL_VERTEX_SHADER, "GL_VERTEX_SHADER"},
       {GL_FRAGMENT_SHADER, "GL_FRAGMENT_SHADER"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringSrcBlendFactor(uint32_t value) {
@@ -4324,8 +4324,8 @@
       {GL_ONE_MINUS_CONSTANT_ALPHA, "GL_ONE_MINUS_CONSTANT_ALPHA"},
       {GL_SRC_ALPHA_SATURATE, "GL_SRC_ALPHA_SATURATE"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringStencilOp(uint32_t value) {
@@ -4339,8 +4339,8 @@
       {GL_DECR_WRAP, "GL_DECR_WRAP"},
       {GL_INVERT, "GL_INVERT"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringStringType(uint32_t value) {
@@ -4351,8 +4351,8 @@
       {GL_SHADING_LANGUAGE_VERSION, "GL_SHADING_LANGUAGE_VERSION"},
       {GL_EXTENSIONS, "GL_EXTENSIONS"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringTextureBindTarget(uint32_t value) {
@@ -4360,8 +4360,8 @@
       {GL_TEXTURE_2D, "GL_TEXTURE_2D"},
       {GL_TEXTURE_CUBE_MAP, "GL_TEXTURE_CUBE_MAP"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringTextureFormat(uint32_t value) {
@@ -4372,8 +4372,8 @@
       {GL_RGB, "GL_RGB"},
       {GL_RGBA, "GL_RGBA"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringTextureInternalFormat(uint32_t value) {
@@ -4384,8 +4384,8 @@
       {GL_RGB, "GL_RGB"},
       {GL_RGBA, "GL_RGBA"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringTextureInternalFormatStorage(uint32_t value) {
@@ -4399,16 +4399,16 @@
       {GL_RGB8_OES, "GL_RGB8_OES"},
       {GL_RGBA8_OES, "GL_RGBA8_OES"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringTextureMagFilterMode(uint32_t value) {
   static const EnumToString string_table[] = {
       {GL_NEAREST, "GL_NEAREST"}, {GL_LINEAR, "GL_LINEAR"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringTextureMinFilterMode(uint32_t value) {
@@ -4420,8 +4420,8 @@
       {GL_NEAREST_MIPMAP_LINEAR, "GL_NEAREST_MIPMAP_LINEAR"},
       {GL_LINEAR_MIPMAP_LINEAR, "GL_LINEAR_MIPMAP_LINEAR"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringTextureParameter(uint32_t value) {
@@ -4432,8 +4432,8 @@
       {GL_TEXTURE_WRAP_S, "GL_TEXTURE_WRAP_S"},
       {GL_TEXTURE_WRAP_T, "GL_TEXTURE_WRAP_T"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringTexturePool(uint32_t value) {
@@ -4442,8 +4442,8 @@
       {GL_TEXTURE_POOL_UNMANAGED_CHROMIUM,
        "GL_TEXTURE_POOL_UNMANAGED_CHROMIUM"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringTextureTarget(uint32_t value) {
@@ -4456,8 +4456,8 @@
       {GL_TEXTURE_CUBE_MAP_POSITIVE_Z, "GL_TEXTURE_CUBE_MAP_POSITIVE_Z"},
       {GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringTextureUsage(uint32_t value) {
@@ -4465,8 +4465,8 @@
       {GL_NONE, "GL_NONE"},
       {GL_FRAMEBUFFER_ATTACHMENT_ANGLE, "GL_FRAMEBUFFER_ATTACHMENT_ANGLE"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringTextureWrapMode(uint32_t value) {
@@ -4475,8 +4475,8 @@
       {GL_MIRRORED_REPEAT, "GL_MIRRORED_REPEAT"},
       {GL_REPEAT, "GL_REPEAT"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringVertexAttribType(uint32_t value) {
@@ -4487,8 +4487,8 @@
       {GL_UNSIGNED_SHORT, "GL_UNSIGNED_SHORT"},
       {GL_FLOAT, "GL_FLOAT"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringVertexAttribute(uint32_t value) {
@@ -4502,16 +4502,16 @@
       {GL_VERTEX_ATTRIB_ARRAY_TYPE, "GL_VERTEX_ATTRIB_ARRAY_TYPE"},
       {GL_CURRENT_VERTEX_ATTRIB, "GL_CURRENT_VERTEX_ATTRIB"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 std::string GLES2Util::GetStringVertexPointer(uint32_t value) {
   static const EnumToString string_table[] = {
       {GL_VERTEX_ATTRIB_ARRAY_POINTER, "GL_VERTEX_ATTRIB_ARRAY_POINTER"},
   };
-  return GLES2Util::GetQualifiedEnumString(
-      string_table, arraysize(string_table), value);
+  return GLES2Util::GetQualifiedEnumString(string_table,
+                                           arraysize(string_table), value);
 }
 
 #endif  // GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_UTILS_IMPLEMENTATION_AUTOGEN_H_
diff --git a/gpu/command_buffer/service/command_buffer_service.cc b/gpu/command_buffer/service/command_buffer_service.cc
index 2c732c6..1453a0a 100644
--- a/gpu/command_buffer/service/command_buffer_service.cc
+++ b/gpu/command_buffer/service/command_buffer_service.cc
@@ -39,9 +39,7 @@
 
 CommandBufferService::State CommandBufferService::GetLastState() {
   State state;
-  state.num_entries = num_entries_;
   state.get_offset = get_offset_;
-  state.put_offset = put_offset_;
   state.token = token_;
   state.error = error_;
   state.context_lost_reason = context_lost_reason_;
@@ -174,6 +172,10 @@
   context_lost_reason_ = reason;
 }
 
+int32 CommandBufferService::GetPutOffset() {
+  return put_offset_;
+}
+
 void CommandBufferService::SetPutOffsetChangeCallback(
     const base::Closure& callback) {
   put_offset_change_callback_ = callback;
diff --git a/gpu/command_buffer/service/command_buffer_service.h b/gpu/command_buffer/service/command_buffer_service.h
index 15f865f..69b9ad7 100644
--- a/gpu/command_buffer/service/command_buffer_service.h
+++ b/gpu/command_buffer/service/command_buffer_service.h
@@ -33,6 +33,9 @@
   // NOTE: if calling this in conjunction with SetParseError,
   // call this first.
   virtual void SetContextLostReason(error::ContextLostReason) = 0;
+
+  // Allows the reader to obtain the current put offset.
+  virtual int32 GetPutOffset() = 0;
 };
 
 // An object that implements a shared memory command buffer and a synchronous
@@ -61,6 +64,7 @@
   void SetToken(int32 token) override;
   void SetParseError(error::Error error) override;
   void SetContextLostReason(error::ContextLostReason) override;
+  int32 GetPutOffset() override;
 
   // Sets a callback that is called whenever the put offset is changed. When
   // called with sync==true, the callback must not return until some progress
diff --git a/gpu/command_buffer/service/command_buffer_service_unittest.cc b/gpu/command_buffer/service/command_buffer_service_unittest.cc
index 3af2d05..8a7d43c 100644
--- a/gpu/command_buffer/service/command_buffer_service_unittest.cc
+++ b/gpu/command_buffer/service/command_buffer_service_unittest.cc
@@ -38,7 +38,7 @@
   }
 
   int32 GetPutOffset() {
-    return command_buffer_->GetLastState().put_offset;
+    return command_buffer_->GetPutOffset();
   }
 
   int32 GetToken() {
@@ -65,7 +65,7 @@
   EXPECT_TRUE(Initialize(1024));
   CommandBuffer::State state = command_buffer_->GetLastState();
   EXPECT_EQ(0, state.get_offset);
-  EXPECT_EQ(0, state.put_offset);
+  EXPECT_EQ(0, command_buffer_->GetPutOffset());
   EXPECT_EQ(0, state.token);
   EXPECT_EQ(error::kNoError, state.error);
 }
diff --git a/gpu/command_buffer/service/context_state_impl_autogen.h b/gpu/command_buffer/service/context_state_impl_autogen.h
index 1b1e5fe..037ac6c 100644
--- a/gpu/command_buffer/service/context_state_impl_autogen.h
+++ b/gpu/command_buffer/service/context_state_impl_autogen.h
@@ -182,9 +182,7 @@
         (blend_color_green != prev_state->blend_color_green) ||
         (blend_color_blue != prev_state->blend_color_blue) ||
         (blend_color_alpha != prev_state->blend_color_alpha))
-      glBlendColor(blend_color_red,
-                   blend_color_green,
-                   blend_color_blue,
+      glBlendColor(blend_color_red, blend_color_green, blend_color_blue,
                    blend_color_alpha);
     if ((blend_equation_rgb != prev_state->blend_equation_rgb) ||
         (blend_equation_alpha != prev_state->blend_equation_alpha))
@@ -193,17 +191,13 @@
         (blend_dest_rgb != prev_state->blend_dest_rgb) ||
         (blend_source_alpha != prev_state->blend_source_alpha) ||
         (blend_dest_alpha != prev_state->blend_dest_alpha))
-      glBlendFuncSeparate(blend_source_rgb,
-                          blend_dest_rgb,
-                          blend_source_alpha,
+      glBlendFuncSeparate(blend_source_rgb, blend_dest_rgb, blend_source_alpha,
                           blend_dest_alpha);
     if ((color_clear_red != prev_state->color_clear_red) ||
         (color_clear_green != prev_state->color_clear_green) ||
         (color_clear_blue != prev_state->color_clear_blue) ||
         (color_clear_alpha != prev_state->color_clear_alpha))
-      glClearColor(color_clear_red,
-                   color_clear_green,
-                   color_clear_blue,
+      glClearColor(color_clear_red, color_clear_green, color_clear_blue,
                    color_clear_alpha);
     if ((depth_clear != prev_state->depth_clear))
       glClearDepth(depth_clear);
@@ -213,10 +207,8 @@
         (cached_color_mask_green != prev_state->cached_color_mask_green) ||
         (cached_color_mask_blue != prev_state->cached_color_mask_blue) ||
         (cached_color_mask_alpha != prev_state->cached_color_mask_alpha))
-      glColorMask(cached_color_mask_red,
-                  cached_color_mask_green,
-                  cached_color_mask_blue,
-                  cached_color_mask_alpha);
+      glColorMask(cached_color_mask_red, cached_color_mask_green,
+                  cached_color_mask_blue, cached_color_mask_alpha);
     if ((cull_mode != prev_state->cull_mode))
       glCullFace(cull_mode);
     if ((depth_func != prev_state->depth_func))
@@ -240,15 +232,13 @@
     if ((line_width != prev_state->line_width))
       glLineWidth(line_width);
     if (feature_info_->feature_flags().chromium_path_rendering) {
-      if (memcmp(prev_state->modelview_matrix,
-                 modelview_matrix,
+      if (memcmp(prev_state->modelview_matrix, modelview_matrix,
                  sizeof(GLfloat) * 16)) {
         glMatrixLoadfEXT(GL_PATH_MODELVIEW_CHROMIUM, modelview_matrix);
       }
     }
     if (feature_info_->feature_flags().chromium_path_rendering) {
-      if (memcmp(prev_state->projection_matrix,
-                 projection_matrix,
+      if (memcmp(prev_state->projection_matrix, projection_matrix,
                  sizeof(GLfloat) * 16)) {
         glMatrixLoadfEXT(GL_PATH_PROJECTION_CHROMIUM, projection_matrix);
       }
@@ -273,13 +263,13 @@
     if ((stencil_front_func != prev_state->stencil_front_func) ||
         (stencil_front_ref != prev_state->stencil_front_ref) ||
         (stencil_front_mask != prev_state->stencil_front_mask))
-      glStencilFuncSeparate(
-          GL_FRONT, stencil_front_func, stencil_front_ref, stencil_front_mask);
+      glStencilFuncSeparate(GL_FRONT, stencil_front_func, stencil_front_ref,
+                            stencil_front_mask);
     if ((stencil_back_func != prev_state->stencil_back_func) ||
         (stencil_back_ref != prev_state->stencil_back_ref) ||
         (stencil_back_mask != prev_state->stencil_back_mask))
-      glStencilFuncSeparate(
-          GL_BACK, stencil_back_func, stencil_back_ref, stencil_back_mask);
+      glStencilFuncSeparate(GL_BACK, stencil_back_func, stencil_back_ref,
+                            stencil_back_mask);
     if ((cached_stencil_front_writemask !=
          prev_state->cached_stencil_front_writemask))
       glStencilMaskSeparate(GL_FRONT, cached_stencil_front_writemask);
@@ -289,16 +279,12 @@
     if ((stencil_front_fail_op != prev_state->stencil_front_fail_op) ||
         (stencil_front_z_fail_op != prev_state->stencil_front_z_fail_op) ||
         (stencil_front_z_pass_op != prev_state->stencil_front_z_pass_op))
-      glStencilOpSeparate(GL_FRONT,
-                          stencil_front_fail_op,
-                          stencil_front_z_fail_op,
-                          stencil_front_z_pass_op);
+      glStencilOpSeparate(GL_FRONT, stencil_front_fail_op,
+                          stencil_front_z_fail_op, stencil_front_z_pass_op);
     if ((stencil_back_fail_op != prev_state->stencil_back_fail_op) ||
         (stencil_back_z_fail_op != prev_state->stencil_back_z_fail_op) ||
         (stencil_back_z_pass_op != prev_state->stencil_back_z_pass_op))
-      glStencilOpSeparate(GL_BACK,
-                          stencil_back_fail_op,
-                          stencil_back_z_fail_op,
+      glStencilOpSeparate(GL_BACK, stencil_back_fail_op, stencil_back_z_fail_op,
                           stencil_back_z_pass_op);
     if ((viewport_x != prev_state->viewport_x) ||
         (viewport_y != prev_state->viewport_y) ||
@@ -306,23 +292,17 @@
         (viewport_height != prev_state->viewport_height))
       glViewport(viewport_x, viewport_y, viewport_width, viewport_height);
   } else {
-    glBlendColor(blend_color_red,
-                 blend_color_green,
-                 blend_color_blue,
+    glBlendColor(blend_color_red, blend_color_green, blend_color_blue,
                  blend_color_alpha);
     glBlendEquationSeparate(blend_equation_rgb, blend_equation_alpha);
-    glBlendFuncSeparate(
-        blend_source_rgb, blend_dest_rgb, blend_source_alpha, blend_dest_alpha);
-    glClearColor(color_clear_red,
-                 color_clear_green,
-                 color_clear_blue,
+    glBlendFuncSeparate(blend_source_rgb, blend_dest_rgb, blend_source_alpha,
+                        blend_dest_alpha);
+    glClearColor(color_clear_red, color_clear_green, color_clear_blue,
                  color_clear_alpha);
     glClearDepth(depth_clear);
     glClearStencil(stencil_clear);
-    glColorMask(cached_color_mask_red,
-                cached_color_mask_green,
-                cached_color_mask_blue,
-                cached_color_mask_alpha);
+    glColorMask(cached_color_mask_red, cached_color_mask_green,
+                cached_color_mask_blue, cached_color_mask_alpha);
     glCullFace(cull_mode);
     glDepthFunc(depth_func);
     glDepthMask(cached_depth_mask);
@@ -345,19 +325,15 @@
     glPolygonOffset(polygon_offset_factor, polygon_offset_units);
     glSampleCoverage(sample_coverage_value, sample_coverage_invert);
     glScissor(scissor_x, scissor_y, scissor_width, scissor_height);
-    glStencilFuncSeparate(
-        GL_FRONT, stencil_front_func, stencil_front_ref, stencil_front_mask);
-    glStencilFuncSeparate(
-        GL_BACK, stencil_back_func, stencil_back_ref, stencil_back_mask);
+    glStencilFuncSeparate(GL_FRONT, stencil_front_func, stencil_front_ref,
+                          stencil_front_mask);
+    glStencilFuncSeparate(GL_BACK, stencil_back_func, stencil_back_ref,
+                          stencil_back_mask);
     glStencilMaskSeparate(GL_FRONT, cached_stencil_front_writemask);
     glStencilMaskSeparate(GL_BACK, cached_stencil_back_writemask);
-    glStencilOpSeparate(GL_FRONT,
-                        stencil_front_fail_op,
-                        stencil_front_z_fail_op,
-                        stencil_front_z_pass_op);
-    glStencilOpSeparate(GL_BACK,
-                        stencil_back_fail_op,
-                        stencil_back_z_fail_op,
+    glStencilOpSeparate(GL_FRONT, stencil_front_fail_op,
+                        stencil_front_z_fail_op, stencil_front_z_pass_op);
+    glStencilOpSeparate(GL_BACK, stencil_back_fail_op, stencil_back_z_fail_op,
                         stencil_back_z_pass_op);
     glViewport(viewport_x, viewport_y, viewport_width, viewport_height);
   }
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h b/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
index 02d914f..86b36ca 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
@@ -143,13 +143,13 @@
   GLenum modeRGB = static_cast<GLenum>(c.modeRGB);
   GLenum modeAlpha = static_cast<GLenum>(c.modeAlpha);
   if (!validators_->equation.IsValid(modeRGB)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glBlendEquationSeparate", modeRGB, "modeRGB");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendEquationSeparate", modeRGB,
+                                    "modeRGB");
     return error::kNoError;
   }
   if (!validators_->equation.IsValid(modeAlpha)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glBlendEquationSeparate", modeAlpha, "modeAlpha");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendEquationSeparate", modeAlpha,
+                                    "modeAlpha");
     return error::kNoError;
   }
   if (state_.blend_equation_rgb != modeRGB ||
@@ -207,13 +207,13 @@
     return error::kNoError;
   }
   if (!validators_->src_blend_factor.IsValid(srcAlpha)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glBlendFuncSeparate", srcAlpha, "srcAlpha");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendFuncSeparate", srcAlpha,
+                                    "srcAlpha");
     return error::kNoError;
   }
   if (!validators_->dst_blend_factor.IsValid(dstAlpha)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glBlendFuncSeparate", dstAlpha, "dstAlpha");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendFuncSeparate", dstAlpha,
+                                    "dstAlpha");
     return error::kNoError;
   }
   if (state_.blend_source_rgb != srcRGB || state_.blend_dest_rgb != dstRGB ||
@@ -268,8 +268,8 @@
     return error::kOutOfBounds;
   }
   if (!validators_->frame_buffer_target.IsValid(target)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glCheckFramebufferStatus", target, "target");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glCheckFramebufferStatus", target,
+                                    "target");
     return error::kNoError;
   }
   *result_dst = DoCheckFramebufferStatus(target);
@@ -384,35 +384,35 @@
   const void* data = GetSharedMemoryAs<const void*>(
       c.data_shm_id, c.data_shm_offset, data_size);
   if (!validators_->texture_target.IsValid(target)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glCompressedTexSubImage2D", target, "target");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glCompressedTexSubImage2D", target,
+                                    "target");
     return error::kNoError;
   }
   if (width < 0) {
-    LOCAL_SET_GL_ERROR(
-        GL_INVALID_VALUE, "glCompressedTexSubImage2D", "width < 0");
+    LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCompressedTexSubImage2D",
+                       "width < 0");
     return error::kNoError;
   }
   if (height < 0) {
-    LOCAL_SET_GL_ERROR(
-        GL_INVALID_VALUE, "glCompressedTexSubImage2D", "height < 0");
+    LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCompressedTexSubImage2D",
+                       "height < 0");
     return error::kNoError;
   }
   if (!validators_->compressed_texture_format.IsValid(format)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glCompressedTexSubImage2D", format, "format");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glCompressedTexSubImage2D", format,
+                                    "format");
     return error::kNoError;
   }
   if (imageSize < 0) {
-    LOCAL_SET_GL_ERROR(
-        GL_INVALID_VALUE, "glCompressedTexSubImage2D", "imageSize < 0");
+    LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCompressedTexSubImage2D",
+                       "imageSize < 0");
     return error::kNoError;
   }
   if (data == NULL) {
     return error::kOutOfBounds;
   }
-  DoCompressedTexSubImage2D(
-      target, level, xoffset, yoffset, width, height, format, imageSize, data);
+  DoCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height,
+                            format, imageSize, data);
   return error::kNoError;
 }
 
@@ -439,8 +439,8 @@
     return error::kNoError;
   }
   if (!validators_->texture_internal_format.IsValid(internalformat)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glCopyTexImage2D", internalformat, "internalformat");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glCopyTexImage2D", internalformat,
+                                    "internalformat");
     return error::kNoError;
   }
   if (width < 0) {
@@ -750,22 +750,22 @@
   GLenum renderbuffertarget = static_cast<GLenum>(c.renderbuffertarget);
   GLuint renderbuffer = c.renderbuffer;
   if (!validators_->frame_buffer_target.IsValid(target)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glFramebufferRenderbuffer", target, "target");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferRenderbuffer", target,
+                                    "target");
     return error::kNoError;
   }
   if (!validators_->attachment.IsValid(attachment)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glFramebufferRenderbuffer", attachment, "attachment");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferRenderbuffer", attachment,
+                                    "attachment");
     return error::kNoError;
   }
   if (!validators_->render_buffer_target.IsValid(renderbuffertarget)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glFramebufferRenderbuffer", renderbuffertarget, "renderbuffertarget");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferRenderbuffer",
+                                    renderbuffertarget, "renderbuffertarget");
     return error::kNoError;
   }
-  DoFramebufferRenderbuffer(
-      target, attachment, renderbuffertarget, renderbuffer);
+  DoFramebufferRenderbuffer(target, attachment, renderbuffertarget,
+                            renderbuffer);
   return error::kNoError;
 }
 
@@ -785,13 +785,13 @@
     return error::kNoError;
   }
   if (!validators_->attachment.IsValid(attachment)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glFramebufferTexture2D", attachment, "attachment");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTexture2D", attachment,
+                                    "attachment");
     return error::kNoError;
   }
   if (!validators_->texture_target.IsValid(textarget)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glFramebufferTexture2D", textarget, "textarget");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTexture2D", textarget,
+                                    "textarget");
     return error::kNoError;
   }
   DoFramebufferTexture2D(target, attachment, textarget, texture, level);
@@ -1051,18 +1051,18 @@
       c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values));
   GLint* params = result ? result->GetData() : NULL;
   if (!validators_->frame_buffer_target.IsValid(target)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glGetFramebufferAttachmentParameteriv", target, "target");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetFramebufferAttachmentParameteriv",
+                                    target, "target");
     return error::kNoError;
   }
   if (!validators_->attachment.IsValid(attachment)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glGetFramebufferAttachmentParameteriv", attachment, "attachment");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetFramebufferAttachmentParameteriv",
+                                    attachment, "attachment");
     return error::kNoError;
   }
   if (!validators_->frame_buffer_parameter.IsValid(pname)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glGetFramebufferAttachmentParameteriv", pname, "pname");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetFramebufferAttachmentParameteriv",
+                                    pname, "pname");
     return error::kNoError;
   }
   if (params == NULL) {
@@ -1167,13 +1167,13 @@
       c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values));
   GLint* params = result ? result->GetData() : NULL;
   if (!validators_->render_buffer_target.IsValid(target)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glGetRenderbufferParameteriv", target, "target");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetRenderbufferParameteriv", target,
+                                    "target");
     return error::kNoError;
   }
   if (!validators_->render_buffer_parameter.IsValid(pname)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glGetRenderbufferParameteriv", pname, "pname");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetRenderbufferParameteriv", pname,
+                                    "pname");
     return error::kNoError;
   }
   if (params == NULL) {
@@ -1599,8 +1599,8 @@
     return error::kNoError;
   }
   if (!validators_->render_buffer_format.IsValid(internalformat)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glRenderbufferStorage", internalformat, "internalformat");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glRenderbufferStorage", internalformat,
+                                    "internalformat");
     return error::kNoError;
   }
   if (width < 0) {
@@ -2549,8 +2549,7 @@
       *static_cast<const gles2::cmds::BlitFramebufferCHROMIUM*>(cmd_data);
   (void)c;
   if (!features().chromium_framebuffer_multisample) {
-    LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION,
-                       "glBlitFramebufferCHROMIUM",
+    LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glBlitFramebufferCHROMIUM",
                        "function not available");
     return error::kNoError;
   }
@@ -2573,12 +2572,12 @@
   GLbitfield mask = static_cast<GLbitfield>(c.mask);
   GLenum filter = static_cast<GLenum>(c.filter);
   if (!validators_->blit_filter.IsValid(filter)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glBlitFramebufferCHROMIUM", filter, "filter");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlitFramebufferCHROMIUM", filter,
+                                    "filter");
     return error::kNoError;
   }
-  DoBlitFramebufferCHROMIUM(
-      srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+  DoBlitFramebufferCHROMIUM(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1,
+                            dstY1, mask, filter);
   return error::kNoError;
 }
 
@@ -2602,8 +2601,8 @@
   GLsizei width = static_cast<GLsizei>(c.width);
   GLsizei height = static_cast<GLsizei>(c.height);
   if (!validators_->render_buffer_target.IsValid(target)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glRenderbufferStorageMultisampleCHROMIUM", target, "target");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glRenderbufferStorageMultisampleCHROMIUM",
+                                    target, "target");
     return error::kNoError;
   }
   if (samples < 0) {
@@ -2614,14 +2613,12 @@
   }
   if (!validators_->render_buffer_format.IsValid(internalformat)) {
     LOCAL_SET_GL_ERROR_INVALID_ENUM("glRenderbufferStorageMultisampleCHROMIUM",
-                                    internalformat,
-                                    "internalformat");
+                                    internalformat, "internalformat");
     return error::kNoError;
   }
   if (width < 0) {
     LOCAL_SET_GL_ERROR(GL_INVALID_VALUE,
-                       "glRenderbufferStorageMultisampleCHROMIUM",
-                       "width < 0");
+                       "glRenderbufferStorageMultisampleCHROMIUM", "width < 0");
     return error::kNoError;
   }
   if (height < 0) {
@@ -2630,8 +2627,8 @@
                        "height < 0");
     return error::kNoError;
   }
-  DoRenderbufferStorageMultisampleCHROMIUM(
-      target, samples, internalformat, width, height);
+  DoRenderbufferStorageMultisampleCHROMIUM(target, samples, internalformat,
+                                           width, height);
   return error::kNoError;
 }
 
@@ -2655,33 +2652,32 @@
   GLsizei width = static_cast<GLsizei>(c.width);
   GLsizei height = static_cast<GLsizei>(c.height);
   if (!validators_->render_buffer_target.IsValid(target)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glRenderbufferStorageMultisampleEXT", target, "target");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glRenderbufferStorageMultisampleEXT",
+                                    target, "target");
     return error::kNoError;
   }
   if (samples < 0) {
-    LOCAL_SET_GL_ERROR(
-        GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "samples < 0");
+    LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT",
+                       "samples < 0");
     return error::kNoError;
   }
   if (!validators_->render_buffer_format.IsValid(internalformat)) {
     LOCAL_SET_GL_ERROR_INVALID_ENUM("glRenderbufferStorageMultisampleEXT",
-                                    internalformat,
-                                    "internalformat");
+                                    internalformat, "internalformat");
     return error::kNoError;
   }
   if (width < 0) {
-    LOCAL_SET_GL_ERROR(
-        GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "width < 0");
+    LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT",
+                       "width < 0");
     return error::kNoError;
   }
   if (height < 0) {
-    LOCAL_SET_GL_ERROR(
-        GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "height < 0");
+    LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT",
+                       "height < 0");
     return error::kNoError;
   }
-  DoRenderbufferStorageMultisampleEXT(
-      target, samples, internalformat, width, height);
+  DoRenderbufferStorageMultisampleEXT(target, samples, internalformat, width,
+                                      height);
   return error::kNoError;
 }
 
@@ -2706,28 +2702,27 @@
   GLint level = static_cast<GLint>(c.level);
   GLsizei samples = static_cast<GLsizei>(c.samples);
   if (!validators_->frame_buffer_target.IsValid(target)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glFramebufferTexture2DMultisampleEXT", target, "target");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTexture2DMultisampleEXT",
+                                    target, "target");
     return error::kNoError;
   }
   if (!validators_->attachment.IsValid(attachment)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glFramebufferTexture2DMultisampleEXT", attachment, "attachment");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTexture2DMultisampleEXT",
+                                    attachment, "attachment");
     return error::kNoError;
   }
   if (!validators_->texture_target.IsValid(textarget)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glFramebufferTexture2DMultisampleEXT", textarget, "textarget");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTexture2DMultisampleEXT",
+                                    textarget, "textarget");
     return error::kNoError;
   }
   if (samples < 0) {
-    LOCAL_SET_GL_ERROR(GL_INVALID_VALUE,
-                       "glFramebufferTexture2DMultisampleEXT",
+    LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glFramebufferTexture2DMultisampleEXT",
                        "samples < 0");
     return error::kNoError;
   }
-  DoFramebufferTexture2DMultisample(
-      target, attachment, textarget, texture, level, samples);
+  DoFramebufferTexture2DMultisample(target, attachment, textarget, texture,
+                                    level, samples);
   return error::kNoError;
 }
 
@@ -2751,8 +2746,8 @@
     return error::kNoError;
   }
   if (!validators_->texture_internal_format_storage.IsValid(internalFormat)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glTexStorage2DEXT", internalFormat, "internalFormat");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexStorage2DEXT", internalFormat,
+                                    "internalFormat");
     return error::kNoError;
   }
   if (width < 0) {
@@ -2956,13 +2951,13 @@
     return error::kOutOfBounds;
   }
   if (count < 0) {
-    LOCAL_SET_GL_ERROR(
-        GL_INVALID_VALUE, "glGetMaxValueInBufferCHROMIUM", "count < 0");
+    LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glGetMaxValueInBufferCHROMIUM",
+                       "count < 0");
     return error::kNoError;
   }
   if (!validators_->get_max_index_type.IsValid(type)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glGetMaxValueInBufferCHROMIUM", type, "type");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetMaxValueInBufferCHROMIUM", type,
+                                    "type");
     return error::kNoError;
   }
   *result_dst = DoGetMaxValueInBufferCHROMIUM(buffer_id, count, type, offset);
@@ -2981,18 +2976,18 @@
   GLuint ioSurfaceId = static_cast<GLuint>(c.ioSurfaceId);
   GLuint plane = static_cast<GLuint>(c.plane);
   if (!validators_->texture_bind_target.IsValid(target)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glTexImageIOSurface2DCHROMIUM", target, "target");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexImageIOSurface2DCHROMIUM", target,
+                                    "target");
     return error::kNoError;
   }
   if (width < 0) {
-    LOCAL_SET_GL_ERROR(
-        GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "width < 0");
+    LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM",
+                       "width < 0");
     return error::kNoError;
   }
   if (height < 0) {
-    LOCAL_SET_GL_ERROR(
-        GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "height < 0");
+    LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM",
+                       "height < 0");
     return error::kNoError;
   }
   DoTexImageIOSurface2DCHROMIUM(target, width, height, ioSurfaceId, plane);
@@ -3012,18 +3007,17 @@
   GLint internalformat = static_cast<GLint>(c.internalformat);
   GLenum dest_type = static_cast<GLenum>(c.dest_type);
   if (!validators_->texture_internal_format.IsValid(internalformat)) {
-    LOCAL_SET_GL_ERROR(GL_INVALID_VALUE,
-                       "glCopyTextureCHROMIUM",
+    LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCopyTextureCHROMIUM",
                        "internalformat GL_INVALID_VALUE");
     return error::kNoError;
   }
   if (!validators_->pixel_type.IsValid(dest_type)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glCopyTextureCHROMIUM", dest_type, "dest_type");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glCopyTextureCHROMIUM", dest_type,
+                                    "dest_type");
     return error::kNoError;
   }
-  DoCopyTextureCHROMIUM(
-      target, source_id, dest_id, level, internalformat, dest_type);
+  DoCopyTextureCHROMIUM(target, source_id, dest_id, level, internalformat,
+                        dest_type);
   return error::kNoError;
 }
 
@@ -3045,8 +3039,8 @@
   const GLbyte* mailbox =
       GetImmediateDataAs<const GLbyte*>(c, data_size, immediate_data_size);
   if (!validators_->texture_bind_target.IsValid(target)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glProduceTextureCHROMIUM", target, "target");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glProduceTextureCHROMIUM", target,
+                                    "target");
     return error::kNoError;
   }
   if (mailbox == NULL) {
@@ -3075,8 +3069,8 @@
   const GLbyte* mailbox =
       GetImmediateDataAs<const GLbyte*>(c, data_size, immediate_data_size);
   if (!validators_->texture_bind_target.IsValid(target)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glProduceTextureDirectCHROMIUM", target, "target");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glProduceTextureDirectCHROMIUM", target,
+                                    "target");
     return error::kNoError;
   }
   if (mailbox == NULL) {
@@ -3104,8 +3098,8 @@
   const GLbyte* mailbox =
       GetImmediateDataAs<const GLbyte*>(c, data_size, immediate_data_size);
   if (!validators_->texture_bind_target.IsValid(target)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glConsumeTextureCHROMIUM", target, "target");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glConsumeTextureCHROMIUM", target,
+                                    "target");
     return error::kNoError;
   }
   if (mailbox == NULL) {
@@ -3124,8 +3118,8 @@
   GLenum target = static_cast<GLenum>(c.target);
   GLint imageId = static_cast<GLint>(c.imageId);
   if (!validators_->texture_bind_target.IsValid(target)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glBindTexImage2DCHROMIUM", target, "target");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glBindTexImage2DCHROMIUM", target,
+                                    "target");
     return error::kNoError;
   }
   DoBindTexImage2DCHROMIUM(target, imageId);
@@ -3141,8 +3135,8 @@
   GLenum target = static_cast<GLenum>(c.target);
   GLint imageId = static_cast<GLint>(c.imageId);
   if (!validators_->texture_bind_target.IsValid(target)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glReleaseTexImage2DCHROMIUM", target, "target");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glReleaseTexImage2DCHROMIUM", target,
+                                    "target");
     return error::kNoError;
   }
   DoReleaseTexImage2DCHROMIUM(target, imageId);
@@ -3167,8 +3161,7 @@
           cmd_data);
   (void)c;
   if (!features().ext_discard_framebuffer) {
-    LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION,
-                       "glDiscardFramebufferEXT",
+    LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glDiscardFramebufferEXT",
                        "function not available");
     return error::kNoError;
   }
@@ -3185,8 +3178,8 @@
   const GLenum* attachments =
       GetImmediateDataAs<const GLenum*>(c, data_size, immediate_data_size);
   if (count < 0) {
-    LOCAL_SET_GL_ERROR(
-        GL_INVALID_VALUE, "glDiscardFramebufferEXT", "count < 0");
+    LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glDiscardFramebufferEXT",
+                       "count < 0");
     return error::kNoError;
   }
   if (attachments == NULL) {
@@ -3205,8 +3198,8 @@
   GLenum current = static_cast<GLenum>(c.current);
   GLenum other = static_cast<GLenum>(c.other);
   if (!validators_->reset_status.IsValid(current)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glLoseContextCHROMIUM", current, "current");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glLoseContextCHROMIUM", current,
+                                    "current");
     return error::kNoError;
   }
   if (!validators_->reset_status.IsValid(other)) {
@@ -3251,8 +3244,7 @@
       *static_cast<const gles2::cmds::MatrixLoadfCHROMIUMImmediate*>(cmd_data);
   (void)c;
   if (!features().chromium_path_rendering) {
-    LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION,
-                       "glMatrixLoadfCHROMIUM",
+    LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glMatrixLoadfCHROMIUM",
                        "function not available");
     return error::kNoError;
   }
@@ -3268,8 +3260,8 @@
   const GLfloat* m =
       GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
   if (!validators_->matrix_mode.IsValid(matrixMode)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glMatrixLoadfCHROMIUM", matrixMode, "matrixMode");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glMatrixLoadfCHROMIUM", matrixMode,
+                                    "matrixMode");
     return error::kNoError;
   }
   if (m == NULL) {
@@ -3286,16 +3278,15 @@
       *static_cast<const gles2::cmds::MatrixLoadIdentityCHROMIUM*>(cmd_data);
   (void)c;
   if (!features().chromium_path_rendering) {
-    LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION,
-                       "glMatrixLoadIdentityCHROMIUM",
+    LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glMatrixLoadIdentityCHROMIUM",
                        "function not available");
     return error::kNoError;
   }
 
   GLenum matrixMode = static_cast<GLenum>(c.matrixMode);
   if (!validators_->matrix_mode.IsValid(matrixMode)) {
-    LOCAL_SET_GL_ERROR_INVALID_ENUM(
-        "glMatrixLoadIdentityCHROMIUM", matrixMode, "matrixMode");
+    LOCAL_SET_GL_ERROR_INVALID_ENUM("glMatrixLoadIdentityCHROMIUM", matrixMode,
+                                    "matrixMode");
     return error::kNoError;
   }
   DoMatrixLoadIdentityCHROMIUM(matrixMode);
@@ -3309,8 +3300,8 @@
       *static_cast<const gles2::cmds::BlendBarrierKHR*>(cmd_data);
   (void)c;
   if (!features().blend_equation_advanced) {
-    LOCAL_SET_GL_ERROR(
-        GL_INVALID_OPERATION, "glBlendBarrierKHR", "function not available");
+    LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glBlendBarrierKHR",
+                       "function not available");
     return error::kNoError;
   }
 
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_1_autogen.h b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_1_autogen.h
index b60bd3e..6fe923c 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_1_autogen.h
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_1_autogen.h
@@ -662,16 +662,12 @@
 }
 
 TEST_P(GLES2DecoderTest1, FramebufferRenderbufferValidArgs) {
-  EXPECT_CALL(*gl_,
-              FramebufferRenderbufferEXT(GL_FRAMEBUFFER,
-                                         GL_COLOR_ATTACHMENT0,
-                                         GL_RENDERBUFFER,
-                                         kServiceRenderbufferId));
+  EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(
+                        GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
+                        kServiceRenderbufferId));
   SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(true);
   cmds::FramebufferRenderbuffer cmd;
-  cmd.Init(GL_FRAMEBUFFER,
-           GL_COLOR_ATTACHMENT0,
-           GL_RENDERBUFFER,
+  cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
            client_renderbuffer_id_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(GL_NO_ERROR, GetGLError());
@@ -681,9 +677,7 @@
   EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0);
   SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false);
   cmds::FramebufferRenderbuffer cmd;
-  cmd.Init(GL_DRAW_FRAMEBUFFER,
-           GL_COLOR_ATTACHMENT0,
-           GL_RENDERBUFFER,
+  cmd.Init(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
            client_renderbuffer_id_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
@@ -693,9 +687,7 @@
   EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0);
   SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false);
   cmds::FramebufferRenderbuffer cmd;
-  cmd.Init(GL_READ_FRAMEBUFFER,
-           GL_COLOR_ATTACHMENT0,
-           GL_RENDERBUFFER,
+  cmd.Init(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
            client_renderbuffer_id_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
@@ -705,9 +697,7 @@
   EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0);
   SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false);
   cmds::FramebufferRenderbuffer cmd;
-  cmd.Init(GL_FRAMEBUFFER,
-           GL_COLOR_ATTACHMENT0,
-           GL_FRAMEBUFFER,
+  cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_FRAMEBUFFER,
            client_renderbuffer_id_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
@@ -715,15 +705,12 @@
 
 TEST_P(GLES2DecoderTest1, FramebufferTexture2DValidArgs) {
   EXPECT_CALL(*gl_,
-              FramebufferTexture2DEXT(GL_FRAMEBUFFER,
-                                      GL_COLOR_ATTACHMENT0,
-                                      GL_TEXTURE_2D,
-                                      kServiceTextureId,
-                                      0));
+              FramebufferTexture2DEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+                                      GL_TEXTURE_2D, kServiceTextureId, 0));
   SpecializedSetup<cmds::FramebufferTexture2D, 0>(true);
   cmds::FramebufferTexture2D cmd;
-  cmd.Init(
-      GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, client_texture_id_);
+  cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
+           client_texture_id_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(GL_NO_ERROR, GetGLError());
 }
@@ -732,9 +719,7 @@
   EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0);
   SpecializedSetup<cmds::FramebufferTexture2D, 0>(false);
   cmds::FramebufferTexture2D cmd;
-  cmd.Init(GL_DRAW_FRAMEBUFFER,
-           GL_COLOR_ATTACHMENT0,
-           GL_TEXTURE_2D,
+  cmd.Init(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
            client_texture_id_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
@@ -744,9 +729,7 @@
   EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0);
   SpecializedSetup<cmds::FramebufferTexture2D, 0>(false);
   cmds::FramebufferTexture2D cmd;
-  cmd.Init(GL_READ_FRAMEBUFFER,
-           GL_COLOR_ATTACHMENT0,
-           GL_TEXTURE_2D,
+  cmd.Init(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
            client_texture_id_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
@@ -756,9 +739,7 @@
   EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0);
   SpecializedSetup<cmds::FramebufferTexture2D, 0>(false);
   cmds::FramebufferTexture2D cmd;
-  cmd.Init(GL_FRAMEBUFFER,
-           GL_COLOR_ATTACHMENT0,
-           GL_PROXY_TEXTURE_CUBE_MAP,
+  cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_PROXY_TEXTURE_CUBE_MAP,
            client_texture_id_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
@@ -958,9 +939,7 @@
   Result* result = static_cast<Result*>(shared_memory_address_);
   result->size = 0;
   cmds::GetBufferParameteriv cmd;
-  cmd.Init(GL_ARRAY_BUFFER,
-           GL_BUFFER_SIZE,
-           shared_memory_id_,
+  cmd.Init(GL_ARRAY_BUFFER, GL_BUFFER_SIZE, shared_memory_id_,
            shared_memory_offset_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_BUFFER_SIZE),
@@ -975,9 +954,7 @@
       static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
   result->size = 0;
   cmds::GetBufferParameteriv cmd;
-  cmd.Init(GL_RENDERBUFFER,
-           GL_BUFFER_SIZE,
-           shared_memory_id_,
+  cmd.Init(GL_RENDERBUFFER, GL_BUFFER_SIZE, shared_memory_id_,
            shared_memory_offset_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(0u, result->size);
@@ -991,9 +968,7 @@
       static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
   result->size = 0;
   cmds::GetBufferParameteriv cmd;
-  cmd.Init(GL_ARRAY_BUFFER,
-           GL_PIXEL_PACK_BUFFER,
-           shared_memory_id_,
+  cmd.Init(GL_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, shared_memory_id_,
            shared_memory_offset_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(0u, result->size);
@@ -1019,9 +994,7 @@
       static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
   result->size = 0;
   cmds::GetBufferParameteriv cmd;
-  cmd.Init(GL_ARRAY_BUFFER,
-           GL_BUFFER_SIZE,
-           shared_memory_id_,
+  cmd.Init(GL_ARRAY_BUFFER, GL_BUFFER_SIZE, shared_memory_id_,
            kInvalidSharedMemoryOffset);
   EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
   EXPECT_EQ(0u, result->size);
@@ -1111,16 +1084,12 @@
   Result* result = static_cast<Result*>(shared_memory_address_);
   EXPECT_CALL(*gl_,
               GetFramebufferAttachmentParameterivEXT(
-                  GL_FRAMEBUFFER,
-                  GL_COLOR_ATTACHMENT0,
-                  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
-                  result->GetData()));
+                  GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+                  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, result->GetData()));
   result->size = 0;
   cmds::GetFramebufferAttachmentParameteriv cmd;
-  cmd.Init(GL_FRAMEBUFFER,
-           GL_COLOR_ATTACHMENT0,
-           GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
-           shared_memory_id_,
+  cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+           GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_,
            shared_memory_offset_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
@@ -1138,10 +1107,8 @@
           shared_memory_address_);
   result->size = 0;
   cmds::GetFramebufferAttachmentParameteriv cmd;
-  cmd.Init(GL_DRAW_FRAMEBUFFER,
-           GL_COLOR_ATTACHMENT0,
-           GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
-           shared_memory_id_,
+  cmd.Init(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+           GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_,
            shared_memory_offset_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(0u, result->size);
@@ -1157,10 +1124,8 @@
           shared_memory_address_);
   result->size = 0;
   cmds::GetFramebufferAttachmentParameteriv cmd;
-  cmd.Init(GL_READ_FRAMEBUFFER,
-           GL_COLOR_ATTACHMENT0,
-           GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
-           shared_memory_id_,
+  cmd.Init(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+           GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_,
            shared_memory_offset_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(0u, result->size);
@@ -1176,11 +1141,8 @@
           shared_memory_address_);
   result->size = 0;
   cmds::GetFramebufferAttachmentParameteriv cmd;
-  cmd.Init(GL_FRAMEBUFFER,
-           GL_COLOR_ATTACHMENT0,
-           GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
-           kInvalidSharedMemoryId,
-           0);
+  cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+           GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, kInvalidSharedMemoryId, 0);
   EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
   EXPECT_EQ(0u, result->size);
 }
@@ -1194,10 +1156,8 @@
           shared_memory_address_);
   result->size = 0;
   cmds::GetFramebufferAttachmentParameteriv cmd;
-  cmd.Init(GL_FRAMEBUFFER,
-           GL_COLOR_ATTACHMENT0,
-           GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
-           shared_memory_id_,
+  cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+           GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_,
            kInvalidSharedMemoryOffset);
   EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
   EXPECT_EQ(0u, result->size);
@@ -1264,9 +1224,7 @@
   Result* result = static_cast<Result*>(shared_memory_address_);
   result->size = 0;
   cmds::GetProgramiv cmd;
-  cmd.Init(client_program_id_,
-           GL_DELETE_STATUS,
-           shared_memory_id_,
+  cmd.Init(client_program_id_, GL_DELETE_STATUS, shared_memory_id_,
            shared_memory_offset_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_DELETE_STATUS),
@@ -1293,9 +1251,7 @@
       static_cast<cmds::GetProgramiv::Result*>(shared_memory_address_);
   result->size = 0;
   cmds::GetProgramiv cmd;
-  cmd.Init(client_program_id_,
-           GL_DELETE_STATUS,
-           shared_memory_id_,
+  cmd.Init(client_program_id_, GL_DELETE_STATUS, shared_memory_id_,
            kInvalidSharedMemoryOffset);
   EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
   EXPECT_EQ(0u, result->size);
@@ -1334,14 +1290,11 @@
   typedef cmds::GetRenderbufferParameteriv::Result Result;
   Result* result = static_cast<Result*>(shared_memory_address_);
   EXPECT_CALL(
-      *gl_,
-      GetRenderbufferParameterivEXT(
-          GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, result->GetData()));
+      *gl_, GetRenderbufferParameterivEXT(
+                GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, result->GetData()));
   result->size = 0;
   cmds::GetRenderbufferParameteriv cmd;
-  cmd.Init(GL_RENDERBUFFER,
-           GL_RENDERBUFFER_RED_SIZE,
-           shared_memory_id_,
+  cmd.Init(GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, shared_memory_id_,
            shared_memory_offset_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
@@ -1358,9 +1311,7 @@
           shared_memory_address_);
   result->size = 0;
   cmds::GetRenderbufferParameteriv cmd;
-  cmd.Init(GL_FRAMEBUFFER,
-           GL_RENDERBUFFER_RED_SIZE,
-           shared_memory_id_,
+  cmd.Init(GL_FRAMEBUFFER, GL_RENDERBUFFER_RED_SIZE, shared_memory_id_,
            shared_memory_offset_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(0u, result->size);
@@ -1375,8 +1326,8 @@
           shared_memory_address_);
   result->size = 0;
   cmds::GetRenderbufferParameteriv cmd;
-  cmd.Init(
-      GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, kInvalidSharedMemoryId, 0);
+  cmd.Init(GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, kInvalidSharedMemoryId,
+           0);
   EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
   EXPECT_EQ(0u, result->size);
 }
@@ -1389,9 +1340,7 @@
           shared_memory_address_);
   result->size = 0;
   cmds::GetRenderbufferParameteriv cmd;
-  cmd.Init(GL_RENDERBUFFER,
-           GL_RENDERBUFFER_RED_SIZE,
-           shared_memory_id_,
+  cmd.Init(GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, shared_memory_id_,
            kInvalidSharedMemoryOffset);
   EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
   EXPECT_EQ(0u, result->size);
@@ -1409,9 +1358,7 @@
               GetShaderiv(kServiceShaderId, GL_SHADER_TYPE, result->GetData()));
   result->size = 0;
   cmds::GetShaderiv cmd;
-  cmd.Init(client_shader_id_,
-           GL_SHADER_TYPE,
-           shared_memory_id_,
+  cmd.Init(client_shader_id_, GL_SHADER_TYPE, shared_memory_id_,
            shared_memory_offset_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_SHADER_TYPE),
@@ -1438,9 +1385,7 @@
       static_cast<cmds::GetShaderiv::Result*>(shared_memory_address_);
   result->size = 0;
   cmds::GetShaderiv cmd;
-  cmd.Init(client_shader_id_,
-           GL_SHADER_TYPE,
-           shared_memory_id_,
+  cmd.Init(client_shader_id_, GL_SHADER_TYPE, shared_memory_id_,
            kInvalidSharedMemoryOffset);
   EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
   EXPECT_EQ(0u, result->size);
@@ -1459,14 +1404,11 @@
   SpecializedSetup<cmds::GetTexParameterfv, 0>(true);
   typedef cmds::GetTexParameterfv::Result Result;
   Result* result = static_cast<Result*>(shared_memory_address_);
-  EXPECT_CALL(*gl_,
-              GetTexParameterfv(
-                  GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, result->GetData()));
+  EXPECT_CALL(*gl_, GetTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
+                                      result->GetData()));
   result->size = 0;
   cmds::GetTexParameterfv cmd;
-  cmd.Init(GL_TEXTURE_2D,
-           GL_TEXTURE_MAG_FILTER,
-           shared_memory_id_,
+  cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
            shared_memory_offset_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(
@@ -1482,9 +1424,7 @@
       static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_);
   result->size = 0;
   cmds::GetTexParameterfv cmd;
-  cmd.Init(GL_PROXY_TEXTURE_CUBE_MAP,
-           GL_TEXTURE_MAG_FILTER,
-           shared_memory_id_,
+  cmd.Init(GL_PROXY_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
            shared_memory_offset_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(0u, result->size);
@@ -1498,9 +1438,7 @@
       static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_);
   result->size = 0;
   cmds::GetTexParameterfv cmd;
-  cmd.Init(GL_TEXTURE_2D,
-           GL_GENERATE_MIPMAP,
-           shared_memory_id_,
+  cmd.Init(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, shared_memory_id_,
            shared_memory_offset_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(0u, result->size);
@@ -1526,9 +1464,7 @@
       static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_);
   result->size = 0;
   cmds::GetTexParameterfv cmd;
-  cmd.Init(GL_TEXTURE_2D,
-           GL_TEXTURE_MAG_FILTER,
-           shared_memory_id_,
+  cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
            kInvalidSharedMemoryOffset);
   EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
   EXPECT_EQ(0u, result->size);
@@ -1542,14 +1478,11 @@
   SpecializedSetup<cmds::GetTexParameteriv, 0>(true);
   typedef cmds::GetTexParameteriv::Result Result;
   Result* result = static_cast<Result*>(shared_memory_address_);
-  EXPECT_CALL(*gl_,
-              GetTexParameteriv(
-                  GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, result->GetData()));
+  EXPECT_CALL(*gl_, GetTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
+                                      result->GetData()));
   result->size = 0;
   cmds::GetTexParameteriv cmd;
-  cmd.Init(GL_TEXTURE_2D,
-           GL_TEXTURE_MAG_FILTER,
-           shared_memory_id_,
+  cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
            shared_memory_offset_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(
@@ -1565,9 +1498,7 @@
       static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_);
   result->size = 0;
   cmds::GetTexParameteriv cmd;
-  cmd.Init(GL_PROXY_TEXTURE_CUBE_MAP,
-           GL_TEXTURE_MAG_FILTER,
-           shared_memory_id_,
+  cmd.Init(GL_PROXY_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
            shared_memory_offset_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(0u, result->size);
@@ -1581,9 +1512,7 @@
       static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_);
   result->size = 0;
   cmds::GetTexParameteriv cmd;
-  cmd.Init(GL_TEXTURE_2D,
-           GL_GENERATE_MIPMAP,
-           shared_memory_id_,
+  cmd.Init(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, shared_memory_id_,
            shared_memory_offset_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(0u, result->size);
@@ -1609,9 +1538,7 @@
       static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_);
   result->size = 0;
   cmds::GetTexParameteriv cmd;
-  cmd.Init(GL_TEXTURE_2D,
-           GL_TEXTURE_MAG_FILTER,
-           shared_memory_id_,
+  cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
            kInvalidSharedMemoryOffset);
   EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
   EXPECT_EQ(0u, result->size);
@@ -1628,9 +1555,7 @@
   Result* result = static_cast<Result*>(shared_memory_address_);
   result->size = 0;
   cmds::GetVertexAttribfv cmd;
-  cmd.Init(1,
-           GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
-           shared_memory_id_,
+  cmd.Init(1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, shared_memory_id_,
            shared_memory_offset_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
@@ -1658,9 +1583,7 @@
       static_cast<cmds::GetVertexAttribfv::Result*>(shared_memory_address_);
   result->size = 0;
   cmds::GetVertexAttribfv cmd;
-  cmd.Init(1,
-           GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
-           shared_memory_id_,
+  cmd.Init(1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, shared_memory_id_,
            kInvalidSharedMemoryOffset);
   EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
   EXPECT_EQ(0u, result->size);
@@ -1672,9 +1595,7 @@
   Result* result = static_cast<Result*>(shared_memory_address_);
   result->size = 0;
   cmds::GetVertexAttribiv cmd;
-  cmd.Init(1,
-           GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
-           shared_memory_id_,
+  cmd.Init(1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, shared_memory_id_,
            shared_memory_offset_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
   EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
@@ -1702,9 +1623,7 @@
       static_cast<cmds::GetVertexAttribiv::Result*>(shared_memory_address_);
   result->size = 0;
   cmds::GetVertexAttribiv cmd;
-  cmd.Init(1,
-           GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
-           shared_memory_id_,
+  cmd.Init(1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, shared_memory_id_,
            kInvalidSharedMemoryOffset);
   EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
   EXPECT_EQ(0u, result->size);
@@ -1792,11 +1711,11 @@
 TEST_P(GLES2DecoderTest1, IsFramebufferInvalidArgsBadSharedMemoryId) {
   SpecializedSetup<cmds::IsFramebuffer, 0>(false);
   cmds::IsFramebuffer cmd;
-  cmd.Init(
-      client_framebuffer_id_, kInvalidSharedMemoryId, shared_memory_offset_);
+  cmd.Init(client_framebuffer_id_, kInvalidSharedMemoryId,
+           shared_memory_offset_);
   EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
-  cmd.Init(
-      client_framebuffer_id_, shared_memory_id_, kInvalidSharedMemoryOffset);
+  cmd.Init(client_framebuffer_id_, shared_memory_id_,
+           kInvalidSharedMemoryOffset);
   EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
 }
 
@@ -1828,11 +1747,11 @@
 TEST_P(GLES2DecoderTest1, IsRenderbufferInvalidArgsBadSharedMemoryId) {
   SpecializedSetup<cmds::IsRenderbuffer, 0>(false);
   cmds::IsRenderbuffer cmd;
-  cmd.Init(
-      client_renderbuffer_id_, kInvalidSharedMemoryId, shared_memory_offset_);
+  cmd.Init(client_renderbuffer_id_, kInvalidSharedMemoryId,
+           shared_memory_offset_);
   EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
-  cmd.Init(
-      client_renderbuffer_id_, shared_memory_id_, kInvalidSharedMemoryOffset);
+  cmd.Init(client_renderbuffer_id_, shared_memory_id_,
+           kInvalidSharedMemoryOffset);
   EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
 }
 
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h
index 95c2027..b29b243 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h
@@ -142,8 +142,7 @@
   cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, &temp[0]);
   EXPECT_CALL(
       *gl_,
-      TexParameterf(GL_TEXTURE_2D,
-                    GL_TEXTURE_MAG_FILTER,
+      TexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
                     *reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
   EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
   EXPECT_EQ(GL_NO_ERROR, GetGLError());
@@ -233,11 +232,9 @@
       GL_NEAREST,
   };
   cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, &temp[0]);
-  EXPECT_CALL(
-      *gl_,
-      TexParameteri(GL_TEXTURE_2D,
-                    GL_TEXTURE_MAG_FILTER,
-                    *reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd))));
+  EXPECT_CALL(*gl_, TexParameteri(
+                        GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
+                        *reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd))));
   EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
   EXPECT_EQ(GL_NO_ERROR, GetGLError());
 }
@@ -448,10 +445,9 @@
 TEST_P(GLES2DecoderTest2, UniformMatrix2fvImmediateValidArgs) {
   cmds::UniformMatrix2fvImmediate& cmd =
       *GetImmediateAs<cmds::UniformMatrix2fvImmediate>();
-  EXPECT_CALL(
-      *gl_,
-      UniformMatrix2fv(
-          1, 2, false, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
+  EXPECT_CALL(*gl_,
+              UniformMatrix2fv(1, 2, false, reinterpret_cast<GLfloat*>(
+                                                ImmediateDataAddress(&cmd))));
   SpecializedSetup<cmds::UniformMatrix2fvImmediate, 0>(true);
   GLfloat temp[4 * 2] = {
       0,
@@ -464,10 +460,9 @@
 TEST_P(GLES2DecoderTest2, UniformMatrix3fvImmediateValidArgs) {
   cmds::UniformMatrix3fvImmediate& cmd =
       *GetImmediateAs<cmds::UniformMatrix3fvImmediate>();
-  EXPECT_CALL(
-      *gl_,
-      UniformMatrix3fv(
-          1, 2, false, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
+  EXPECT_CALL(*gl_,
+              UniformMatrix3fv(1, 2, false, reinterpret_cast<GLfloat*>(
+                                                ImmediateDataAddress(&cmd))));
   SpecializedSetup<cmds::UniformMatrix3fvImmediate, 0>(true);
   GLfloat temp[9 * 2] = {
       0,
@@ -480,10 +475,9 @@
 TEST_P(GLES2DecoderTest2, UniformMatrix4fvImmediateValidArgs) {
   cmds::UniformMatrix4fvImmediate& cmd =
       *GetImmediateAs<cmds::UniformMatrix4fvImmediate>();
-  EXPECT_CALL(
-      *gl_,
-      UniformMatrix4fv(
-          1, 2, false, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
+  EXPECT_CALL(*gl_,
+              UniformMatrix4fv(1, 2, false, reinterpret_cast<GLfloat*>(
+                                                ImmediateDataAddress(&cmd))));
   SpecializedSetup<cmds::UniformMatrix4fvImmediate, 0>(true);
   GLfloat temp[16 * 2] = {
       0,
@@ -537,9 +531,8 @@
       0,
   };
   cmd.Init(1, &temp[0]);
-  EXPECT_CALL(*gl_,
-              VertexAttrib1fv(
-                  1, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
+  EXPECT_CALL(*gl_, VertexAttrib1fv(1, reinterpret_cast<GLfloat*>(
+                                           ImmediateDataAddress(&cmd))));
   EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
   EXPECT_EQ(GL_NO_ERROR, GetGLError());
 }
@@ -561,9 +554,8 @@
       0,
   };
   cmd.Init(1, &temp[0]);
-  EXPECT_CALL(*gl_,
-              VertexAttrib2fv(
-                  1, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
+  EXPECT_CALL(*gl_, VertexAttrib2fv(1, reinterpret_cast<GLfloat*>(
+                                           ImmediateDataAddress(&cmd))));
   EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
   EXPECT_EQ(GL_NO_ERROR, GetGLError());
 }
@@ -585,9 +577,8 @@
       0,
   };
   cmd.Init(1, &temp[0]);
-  EXPECT_CALL(*gl_,
-              VertexAttrib3fv(
-                  1, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
+  EXPECT_CALL(*gl_, VertexAttrib3fv(1, reinterpret_cast<GLfloat*>(
+                                           ImmediateDataAddress(&cmd))));
   EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
   EXPECT_EQ(GL_NO_ERROR, GetGLError());
 }
@@ -609,9 +600,8 @@
       0,
   };
   cmd.Init(1, &temp[0]);
-  EXPECT_CALL(*gl_,
-              VertexAttrib4fv(
-                  1, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
+  EXPECT_CALL(*gl_, VertexAttrib4fv(1, reinterpret_cast<GLfloat*>(
+                                           ImmediateDataAddress(&cmd))));
   EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
   EXPECT_EQ(GL_NO_ERROR, GetGLError());
 }
diff --git a/gpu/command_buffer/service/gpu_scheduler.cc b/gpu/command_buffer/service/gpu_scheduler.cc
index 015d808..058a546 100644
--- a/gpu/command_buffer/service/gpu_scheduler.cc
+++ b/gpu/command_buffer/service/gpu_scheduler.cc
@@ -51,11 +51,11 @@
 
   // If there is no parser, exit.
   if (!parser_.get()) {
-    DCHECK_EQ(state.get_offset, state.put_offset);
+    DCHECK_EQ(state.get_offset, command_buffer_->GetPutOffset());
     return;
   }
 
-  parser_->set_put(state.put_offset);
+  parser_->set_put(command_buffer_->GetPutOffset());
   if (state.error != error::kNoError)
     return;
 
diff --git a/gpu/command_buffer/service/gpu_scheduler_unittest.cc b/gpu/command_buffer/service/gpu_scheduler_unittest.cc
index d8233ec..c1c0d1c 100644
--- a/gpu/command_buffer/service/gpu_scheduler_unittest.cc
+++ b/gpu/command_buffer/service/gpu_scheduler_unittest.cc
@@ -26,7 +26,6 @@
 namespace gpu {
 
 const size_t kRingBufferSize = 1024;
-const size_t kRingBufferEntries = kRingBufferSize / sizeof(CommandBufferEntry);
 
 class GpuSchedulerTest : public testing::Test {
  protected:
@@ -43,9 +42,10 @@
     command_buffer_.reset(new MockCommandBuffer);
 
     CommandBuffer::State default_state;
-    default_state.num_entries = kRingBufferEntries;
     ON_CALL(*command_buffer_.get(), GetLastState())
         .WillByDefault(Return(default_state));
+    ON_CALL(*command_buffer_.get(), GetPutOffset())
+        .WillByDefault(Return(0));
 
     decoder_.reset(new gles2::MockGLES2Decoder());
     // Install FakeDoCommands handler so we can use individual DoCommand()
@@ -86,7 +86,6 @@
 TEST_F(GpuSchedulerTest, SchedulerDoesNothingIfRingBufferIsEmpty) {
   CommandBuffer::State state;
 
-  state.put_offset = 0;
   EXPECT_CALL(*command_buffer_, GetLastState())
     .WillRepeatedly(Return(state));
 
@@ -122,9 +121,10 @@
 
   CommandBuffer::State state;
 
-  state.put_offset = 2;
   EXPECT_CALL(*command_buffer_, GetLastState())
     .WillRepeatedly(Return(state));
+  EXPECT_CALL(*command_buffer_, GetPutOffset())
+    .WillRepeatedly(Return(2));
   EXPECT_CALL(*command_buffer_, SetGetOffset(2));
 
   EXPECT_CALL(*decoder_, DoCommand(7, 1, &buffer_[0]))
@@ -146,9 +146,10 @@
 
   CommandBuffer::State state;
 
-  state.put_offset = 3;
   EXPECT_CALL(*command_buffer_, GetLastState())
     .WillRepeatedly(Return(state));
+  EXPECT_CALL(*command_buffer_, GetPutOffset())
+    .WillRepeatedly(Return(3));
 
   EXPECT_CALL(*decoder_, DoCommand(7, 1, &buffer_[0]))
     .WillOnce(Return(error::kNoError));
@@ -167,9 +168,10 @@
 
   CommandBuffer::State state;
 
-  state.put_offset = 1;
   EXPECT_CALL(*command_buffer_, GetLastState())
     .WillRepeatedly(Return(state));
+  EXPECT_CALL(*command_buffer_, GetPutOffset())
+    .WillRepeatedly(Return(1));
 
   EXPECT_CALL(*decoder_, DoCommand(7, 0, &buffer_[0]))
     .WillOnce(Return(
diff --git a/gpu/ipc/gpu_command_buffer_traits.cc b/gpu/ipc/gpu_command_buffer_traits.cc
index db482a9..46395fb 100644
--- a/gpu/ipc/gpu_command_buffer_traits.cc
+++ b/gpu/ipc/gpu_command_buffer_traits.cc
@@ -9,9 +9,7 @@
 
 void ParamTraits<gpu::CommandBuffer::State> ::Write(Message* m,
                                                     const param_type& p) {
-  WriteParam(m, p.num_entries);
   WriteParam(m, p.get_offset);
-  WriteParam(m, p.put_offset);
   WriteParam(m, p.token);
   WriteParam(m, static_cast<int32>(p.error));
   WriteParam(m, p.generation);
@@ -21,9 +19,7 @@
                                                    PickleIterator* iter,
                                                    param_type* p) {
   int32 temp;
-  if (ReadParam(m, iter, &p->num_entries) &&
-      ReadParam(m, iter, &p->get_offset) &&
-      ReadParam(m, iter, &p->put_offset) &&
+  if (ReadParam(m, iter, &p->get_offset) &&
       ReadParam(m, iter, &p->token) &&
       ReadParam(m, iter, &temp) &&
       ReadParam(m, iter, &p->generation)) {
diff --git a/mojo/services/gles2/command_buffer_type_conversions.cc b/mojo/services/gles2/command_buffer_type_conversions.cc
index a279f15..edb7093 100644
--- a/mojo/services/gles2/command_buffer_type_conversions.cc
+++ b/mojo/services/gles2/command_buffer_type_conversions.cc
@@ -12,9 +12,7 @@
 TypeConverter<CommandBufferStatePtr, gpu::CommandBuffer::State>::Convert(
     const gpu::CommandBuffer::State& input) {
   CommandBufferStatePtr result(CommandBufferState::New());
-  result->num_entries = input.num_entries;
   result->get_offset = input.get_offset;
-  result->put_offset = input.put_offset;
   result->token = input.token;
   result->error = input.error;
   result->context_lost_reason = input.context_lost_reason;
@@ -26,9 +24,7 @@
 TypeConverter<gpu::CommandBuffer::State, CommandBufferStatePtr>::Convert(
     const CommandBufferStatePtr& input) {
   gpu::CommandBuffer::State state;
-  state.num_entries = input->num_entries;
   state.get_offset = input->get_offset;
-  state.put_offset = input->put_offset;
   state.token = input->token;
   state.error = static_cast<gpu::error::Error>(input->error);
   state.context_lost_reason =
diff --git a/mojo/tools/roll/cc_strip_video.patch b/mojo/tools/roll/cc_strip_video.patch
index 2bd6fb8..07c6fae 100644
--- a/mojo/tools/roll/cc_strip_video.patch
+++ b/mojo/tools/roll/cc_strip_video.patch
@@ -1,5 +1,5 @@
 diff --git a/cc/BUILD.gn b/cc/BUILD.gn
-index 24c5833..8cb8e8a 100644
+index 9b417f0..f753895 100644
 --- a/cc/BUILD.gn
 +++ b/cc/BUILD.gn
 @@ -208,13 +208,6 @@ component("cc") {
@@ -16,7 +16,7 @@
      "output/begin_frame_args.cc",
      "output/begin_frame_args.h",
      "output/bsp_tree.cc",
-@@ -426,8 +419,6 @@ component("cc") {
+@@ -427,8 +420,6 @@ component("cc") {
      "resources/ui_resource_client.h",
      "resources/ui_resource_request.cc",
      "resources/ui_resource_request.h",
@@ -25,7 +25,7 @@
      "resources/zero_copy_raster_worker_pool.cc",
      "resources/zero_copy_raster_worker_pool.h",
      "scheduler/begin_frame_source.cc",
-@@ -489,7 +480,6 @@ component("cc") {
+@@ -490,7 +481,6 @@ component("cc") {
      "//gpu",
      "//gpu/command_buffer/client:gles2_interface",
      "//gpu/command_buffer/client:gpu_memory_buffer_manager",
@@ -33,7 +33,7 @@
      "//ui/events:events_base",
      "//ui/gfx",
      "//ui/gfx/geometry",
-@@ -558,8 +548,6 @@ source_set("test_support") {
+@@ -559,8 +549,6 @@ source_set("test_support") {
      "test/fake_tile_manager_client.h",
      "test/fake_ui_resource_layer_tree_host_impl.cc",
      "test/fake_ui_resource_layer_tree_host_impl.h",
@@ -42,7 +42,7 @@
      "test/geometry_test_utils.cc",
      "test/geometry_test_utils.h",
      "test/test_in_process_context_provider.cc",
-@@ -707,7 +695,6 @@ test("cc_unittests") {
+@@ -713,7 +701,6 @@ test("cc_unittests") {
      "layers/tiled_layer_unittest.cc",
      "layers/ui_resource_layer_impl_unittest.cc",
      "layers/ui_resource_layer_unittest.cc",
@@ -50,7 +50,7 @@
      "output/begin_frame_args_unittest.cc",
      "output/delegating_renderer_unittest.cc",
      "output/filter_operations_unittest.cc",
-@@ -737,7 +724,6 @@ test("cc_unittests") {
+@@ -743,7 +730,6 @@ test("cc_unittests") {
      "resources/texture_uploader_unittest.cc",
      "resources/tile_manager_unittest.cc",
      "resources/tile_priority_unittest.cc",
@@ -58,7 +58,7 @@
      "scheduler/begin_frame_source_unittest.cc",
      "scheduler/delay_based_time_source_unittest.cc",
      "scheduler/scheduler_state_machine_unittest.cc",
-@@ -765,7 +751,6 @@ test("cc_unittests") {
+@@ -772,7 +758,6 @@ test("cc_unittests") {
      "trees/layer_tree_host_unittest_picture.cc",
      "trees/layer_tree_host_unittest_proxy.cc",
      "trees/layer_tree_host_unittest_scroll.cc",
@@ -66,7 +66,7 @@
      "trees/layer_tree_impl_unittest.cc",
      "trees/occlusion_tracker_unittest.cc",
      "trees/occlusion_unittest.cc",
-@@ -792,7 +777,6 @@ test("cc_unittests") {
+@@ -799,7 +784,6 @@ test("cc_unittests") {
      "//gpu:test_support",
      "//gpu/command_buffer/client:gles2_interface",
      "//gpu/command_buffer/common:gles2_utils",
@@ -74,7 +74,7 @@
      "//testing/gmock",
      "//testing/gtest",
      "//ui/events:events_base",
-@@ -824,7 +808,6 @@ test("cc_perftests") {
+@@ -831,7 +815,6 @@ test("cc_perftests") {
      "//gpu",
      "//gpu:test_support",
      "//gpu/command_buffer/common:gles2_utils",
@@ -253,7 +253,7 @@
 -
 -}  // namespace cc
 diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc
-index a302f7e..b93ddcf 100644
+index a472475..4eb1324 100644
 --- a/cc/output/gl_renderer.cc
 +++ b/cc/output/gl_renderer.cc
 @@ -13,7 +13,6 @@
@@ -636,7 +636,7 @@
  
  namespace cc {
 diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc
-index fb23ba6..8e7fa0f 100644
+index 9395639..5d2d939 100644
 --- a/cc/trees/layer_tree_host_impl_unittest.cc
 +++ b/cc/trees/layer_tree_host_impl_unittest.cc
 @@ -27,7 +27,6 @@
@@ -647,15 +647,15 @@
  #include "cc/output/begin_frame_args.h"
  #include "cc/output/compositor_frame_ack.h"
  #include "cc/output/compositor_frame_metadata.h"
-@@ -48,7 +47,6 @@
+@@ -47,7 +46,6 @@
+ #include "cc/test/fake_picture_layer_impl.h"
  #include "cc/test/fake_picture_pile_impl.h"
  #include "cc/test/fake_proxy.h"
- #include "cc/test/fake_rendering_stats_instrumentation.h"
 -#include "cc/test/fake_video_frame_provider.h"
  #include "cc/test/geometry_test_utils.h"
  #include "cc/test/layer_test_common.h"
  #include "cc/test/render_pass_test_common.h"
-@@ -57,7 +55,6 @@
+@@ -56,7 +54,6 @@
  #include "cc/test/test_web_graphics_context_3d.h"
  #include "cc/trees/layer_tree_impl.h"
  #include "cc/trees/single_thread_proxy.h"
@@ -663,7 +663,7 @@
  #include "testing/gmock/include/gmock/gmock.h"
  #include "testing/gtest/include/gtest/gtest.h"
  #include "third_party/skia/include/core/SkMallocPixelRef.h"
-@@ -71,7 +68,6 @@ using ::testing::Return;
+@@ -70,7 +67,6 @@ using ::testing::Return;
  using ::testing::AnyNumber;
  using ::testing::AtLeast;
  using ::testing::_;
@@ -671,7 +671,7 @@
  
  namespace cc {
  namespace {
-@@ -96,7 +92,6 @@ class LayerTreeHostImplTest : public testing::Test,
+@@ -95,7 +91,6 @@ class LayerTreeHostImplTest : public testing::Test,
          reduce_memory_result_(true),
          current_limit_bytes_(0),
          current_priority_cutoff_value_(0) {
@@ -679,7 +679,7 @@
    }
  
    LayerTreeSettings DefaultSettings() {
-@@ -5090,18 +5085,6 @@ TEST_F(LayerTreeHostImplTest, LayersFreeTextures) {
+@@ -5066,18 +5061,6 @@ TEST_F(LayerTreeHostImplTest, LayersFreeTextures) {
        LayerImpl::Create(host_impl_->active_tree(), 1);
    root_layer->SetBounds(gfx::Size(10, 10));
  
@@ -698,7 +698,7 @@
    scoped_ptr<IOSurfaceLayerImpl> io_surface_layer =
        IOSurfaceLayerImpl::Create(host_impl_->active_tree(), 5);
    io_surface_layer->SetBounds(gfx::Size(10, 10));
-@@ -6165,16 +6148,6 @@ TEST_F(LayerTreeHostImplTest,
+@@ -6139,16 +6122,6 @@ TEST_F(LayerTreeHostImplTest,
    scoped_ptr<SolidColorLayerImpl> root_layer =
        SolidColorLayerImpl::Create(host_impl_->active_tree(), 1);
  
@@ -716,7 +716,7 @@
    EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
    host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
 diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc
-index 8d554dc..d15c6a3 100644
+index aedd0d9..0859d86 100644
 --- a/cc/trees/layer_tree_host_unittest.cc
 +++ b/cc/trees/layer_tree_host_unittest.cc
 @@ -18,7 +18,6 @@
diff --git a/mojo/tools/roll/skia_build.patch b/mojo/tools/roll/skia_build.patch
index 8fab3a0..dcceab3 100644
--- a/mojo/tools/roll/skia_build.patch
+++ b/mojo/tools/roll/skia_build.patch
@@ -1,10 +1,10 @@
 diff --git a/skia/BUILD.gn b/skia/BUILD.gn
-index 356c6ae..042d03d 100644
+index 1944183..a57b6a1 100644
 --- a/skia/BUILD.gn
 +++ b/skia/BUILD.gn
 @@ -11,15 +11,6 @@ if (cpu_arch == "arm") {
  skia_support_gpu = !is_ios
- skia_support_pdf = !is_ios && printing_mode != 0
+ skia_support_pdf = !is_ios && (enable_basic_printing || enable_print_preview)
  
 -# The list of Skia defines that are to be set for blink.
 -gypi_blink_skia_defines = exec_script(
@@ -18,7 +18,7 @@
  # The list of Skia defines that are to be set for chromium.
  gypi_skia_defines = exec_script(
      "//build/gypi_to_gn.py",
-@@ -107,8 +98,7 @@ config("skia_config") {
+@@ -108,8 +99,7 @@ config("skia_config") {
      "//third_party/skia/src/lazy",
    ]
  
diff --git a/net/base/filename_util_internal.cc b/net/base/filename_util_internal.cc
index cda7f62..be9139d 100644
--- a/net/base/filename_util_internal.cc
+++ b/net/base/filename_util_internal.cc
@@ -6,7 +6,6 @@
 
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
-#include "base/path_service.h"
 #include "base/strings/string_util.h"
 #include "base/strings/sys_string_conversions.h"
 #include "base/strings/utf_string_conversions.h"
diff --git a/net/base/keygen_handler_win.cc b/net/base/keygen_handler_win.cc
index ffa3b2e..44365fa 100644
--- a/net/base/keygen_handler_win.cc
+++ b/net/base/keygen_handler_win.cc
@@ -65,7 +65,7 @@
 bool GetSignedPublicKeyAndChallenge(HCRYPTPROV prov,
                                     const std::string& challenge,
                                     std::string* output) {
-  std::wstring wide_challenge = base::ASCIIToWide(challenge);
+  base::string16 challenge16 = base::ASCIIToUTF16(challenge);
   std::vector<BYTE> spki;
 
   if (!GetSubjectPublicKeyInfo(prov, &spki))
@@ -79,7 +79,7 @@
   pkac.dwVersion = CERT_KEYGEN_REQUEST_V1;
   pkac.SubjectPublicKeyInfo =
       *reinterpret_cast<PCERT_PUBLIC_KEY_INFO>(&spki[0]);
-  pkac.pwszChallengeString = const_cast<wchar_t*>(wide_challenge.c_str());
+  pkac.pwszChallengeString = const_cast<base::char16*>(challenge16.c_str());
 
   CRYPT_ALGORITHM_IDENTIFIER sig_alg;
   memset(&sig_alg, 0, sizeof(sig_alg));
diff --git a/net/base/network_delegate.cc b/net/base/network_delegate.cc
index 1c315ec..9cad50a 100644
--- a/net/base/network_delegate.cc
+++ b/net/base/network_delegate.cc
@@ -5,6 +5,7 @@
 #include "net/base/network_delegate.h"
 
 #include "base/logging.h"
+#include "base/profiler/scoped_tracker.h"
 #include "net/base/load_flags.h"
 #include "net/base/net_errors.h"
 #include "net/proxy/proxy_info.h"
@@ -18,6 +19,10 @@
   DCHECK(CalledOnValidThread());
   DCHECK(request);
   DCHECK(!callback.is_null());
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 NetworkDelegate::OnBeforeURLRequest"));
   return OnBeforeURLRequest(request, callback, new_url);
 }
 
@@ -28,6 +33,10 @@
     ProxyInfo* result) {
   DCHECK(CalledOnValidThread());
   DCHECK(result);
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 NetworkDelegate::OnResolveProxy"));
   OnResolveProxy(url, load_flags, proxy_service, result);
 }
 
@@ -35,6 +44,10 @@
     const ProxyServer& bad_proxy,
     int net_error) {
   DCHECK(CalledOnValidThread());
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 NetworkDelegate::OnProxyFallback"));
   OnProxyFallback(bad_proxy, net_error);
 }
 
@@ -44,6 +57,10 @@
   DCHECK(CalledOnValidThread());
   DCHECK(headers);
   DCHECK(!callback.is_null());
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 NetworkDelegate::OnBeforeSendHeaders"));
   return OnBeforeSendHeaders(request, callback, headers);
 }
 
@@ -53,12 +70,20 @@
     HttpRequestHeaders* headers) {
   DCHECK(CalledOnValidThread());
   DCHECK(headers);
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 NetworkDelegate::OnBeforeSendProxyHeaders"));
   OnBeforeSendProxyHeaders(request, proxy_info, headers);
 }
 
 void NetworkDelegate::NotifySendHeaders(URLRequest* request,
                                         const HttpRequestHeaders& headers) {
   DCHECK(CalledOnValidThread());
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 NetworkDelegate::OnSendHeaders"));
   OnSendHeaders(request, headers);
 }
 
@@ -71,6 +96,10 @@
   DCHECK(CalledOnValidThread());
   DCHECK(original_response_headers);
   DCHECK(!callback.is_null());
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 NetworkDelegate::OnHeadersReceived"));
   return OnHeadersReceived(request,
                            callback,
                            original_response_headers,
@@ -81,12 +110,20 @@
 void NetworkDelegate::NotifyResponseStarted(URLRequest* request) {
   DCHECK(CalledOnValidThread());
   DCHECK(request);
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 NetworkDelegate::OnResponseStarted"));
   OnResponseStarted(request);
 }
 
 void NetworkDelegate::NotifyRawBytesRead(const URLRequest& request,
                                          int bytes_read) {
   DCHECK(CalledOnValidThread());
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 NetworkDelegate::OnRawBytesRead"));
   OnRawBytesRead(request, bytes_read);
 }
 
@@ -94,24 +131,39 @@
                                            const GURL& new_location) {
   DCHECK(CalledOnValidThread());
   DCHECK(request);
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 NetworkDelegate::OnBeforeRedirect"));
   OnBeforeRedirect(request, new_location);
 }
 
 void NetworkDelegate::NotifyCompleted(URLRequest* request, bool started) {
   DCHECK(CalledOnValidThread());
   DCHECK(request);
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION("423948 NetworkDelegate::OnCompleted"));
   OnCompleted(request, started);
 }
 
 void NetworkDelegate::NotifyURLRequestDestroyed(URLRequest* request) {
   DCHECK(CalledOnValidThread());
   DCHECK(request);
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 NetworkDelegate::OnURLRequestDestroyed"));
   OnURLRequestDestroyed(request);
 }
 
 void NetworkDelegate::NotifyPACScriptError(int line_number,
                                            const base::string16& error) {
   DCHECK(CalledOnValidThread());
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 NetworkDelegate::OnPACScriptError"));
   OnPACScriptError(line_number, error);
 }
 
@@ -130,6 +182,10 @@
   DCHECK(CalledOnValidThread());
   DCHECK(socket);
   DCHECK(!callback.is_null());
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 NetworkDelegate::OnBeforeSocketStreamConnect"));
   return OnBeforeSocketStreamConnect(socket, callback);
 }
 
@@ -137,6 +193,10 @@
                                     const CookieList& cookie_list) {
   DCHECK(CalledOnValidThread());
   DCHECK(!(request.load_flags() & net::LOAD_DO_NOT_SEND_COOKIES));
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 NetworkDelegate::OnCanGetCookies"));
   return OnCanGetCookies(request, cookie_list);
 }
 
@@ -145,17 +205,29 @@
                                    CookieOptions* options) {
   DCHECK(CalledOnValidThread());
   DCHECK(!(request.load_flags() & net::LOAD_DO_NOT_SAVE_COOKIES));
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 NetworkDelegate::OnCanSetCookie"));
   return OnCanSetCookie(request, cookie_line, options);
 }
 
 bool NetworkDelegate::CanAccessFile(const URLRequest& request,
                                     const base::FilePath& path) const {
   DCHECK(CalledOnValidThread());
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 NetworkDelegate::OnCanAccessFile"));
   return OnCanAccessFile(request, path);
 }
 
 bool NetworkDelegate::CanThrottleRequest(const URLRequest& request) const {
   DCHECK(CalledOnValidThread());
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 NetworkDelegate::OnCanThrottleRequest"));
   return OnCanThrottleRequest(request);
 }
 
@@ -163,6 +235,10 @@
     const GURL& url,
     const GURL& first_party_for_cookies) const {
   DCHECK(CalledOnValidThread());
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 NetworkDelegate::OnCanEnablePrivacyMode"));
   return OnCanEnablePrivacyMode(url, first_party_for_cookies);
 }
 
@@ -171,6 +247,10 @@
     const GURL& target_url,
     const GURL& referrer_url) const {
   DCHECK(CalledOnValidThread());
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 NetworkDelegate::OnCancelURLRequestWithPolicy..."));
   return OnCancelURLRequestWithPolicyViolatingReferrerHeader(
       request, target_url, referrer_url);
 }
diff --git a/net/base/sdch_manager.cc b/net/base/sdch_manager.cc
index 122f01f..1285ad9 100644
--- a/net/base/sdch_manager.cc
+++ b/net/base/sdch_manager.cc
@@ -11,6 +11,7 @@
 #include "base/strings/string_util.h"
 #include "crypto/sha2.h"
 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
+#include "net/base/sdch_observer.h"
 #include "net/url_request/url_request_http_job.h"
 
 namespace {
@@ -51,12 +52,7 @@
 #endif
 
 // static
-#if defined(OS_IOS)
-// Workaround for http://crbug.com/418975; remove when fixed.
-bool SdchManager::g_sdch_enabled_ = false;
-#else
 bool SdchManager::g_sdch_enabled_ = true;
-#endif
 
 // static
 bool SdchManager::g_secure_scheme_supported_ = true;
@@ -246,13 +242,12 @@
 }
 
 //------------------------------------------------------------------------------
-SdchManager::SdchManager()
-    : fetches_count_for_testing_(0) {
-  DCHECK(CalledOnValidThread());
+SdchManager::SdchManager() {
+  DCHECK(thread_checker_.CalledOnValidThread());
 }
 
 SdchManager::~SdchManager() {
-  DCHECK(CalledOnValidThread());
+  DCHECK(thread_checker_.CalledOnValidThread());
   while (!dictionaries_.empty()) {
     DictionaryMap::iterator it = dictionaries_.begin();
     dictionaries_.erase(it->first);
@@ -262,14 +257,14 @@
 void SdchManager::ClearData() {
   blacklisted_domains_.clear();
   allow_latency_experiment_.clear();
-  if (fetcher_.get())
-    fetcher_->Cancel();
 
   // Note that this may result in not having dictionaries we've advertised
   // for incoming responses.  The window is relatively small (as ClearData()
   // is not expected to be called frequently), so we rely on meta-refresh
   // to handle this case.
   dictionaries_.clear();
+
+  FOR_EACH_OBSERVER(SdchObserver, observers_, OnClearDictionaries(this));
 }
 
 // static
@@ -277,11 +272,6 @@
   UMA_HISTOGRAM_ENUMERATION("Sdch3.ProblemCodes_4", problem, MAX_PROBLEM_CODE);
 }
 
-void SdchManager::set_sdch_fetcher(scoped_ptr<SdchFetcher> fetcher) {
-  DCHECK(CalledOnValidThread());
-  fetcher_ = fetcher.Pass();
-}
-
 // static
 void SdchManager::EnableSdchSupport(bool enabled) {
   g_sdch_enabled_ = enabled;
@@ -352,7 +342,7 @@
 }
 
 bool SdchManager::IsInSupportedDomain(const GURL& url) {
-  DCHECK(CalledOnValidThread());
+  DCHECK(thread_checker_.CalledOnValidThread());
   if (!g_sdch_enabled_ )
     return false;
 
@@ -382,18 +372,19 @@
   return false;
 }
 
-void SdchManager::FetchDictionary(const GURL& request_url,
+void SdchManager::OnGetDictionary(const GURL& request_url,
                                   const GURL& dictionary_url) {
-  DCHECK(CalledOnValidThread());
-  if (CanFetchDictionary(request_url, dictionary_url) && fetcher_.get()) {
-    ++fetches_count_for_testing_;
-    fetcher_->Schedule(dictionary_url);
-  }
+  if (!CanFetchDictionary(request_url, dictionary_url))
+    return;
+
+  FOR_EACH_OBSERVER(SdchObserver,
+                    observers_,
+                    OnGetDictionary(this, request_url, dictionary_url));
 }
 
 bool SdchManager::CanFetchDictionary(const GURL& referring_url,
                                      const GURL& dictionary_url) const {
-  DCHECK(CalledOnValidThread());
+  DCHECK(thread_checker_.CalledOnValidThread());
   /* The user agent may retrieve a dictionary from the dictionary URL if all of
      the following are true:
        1 The dictionary URL host name matches the referrer URL host name and
@@ -402,7 +393,6 @@
            referrer URL host name
        3 The parent domain of the referrer URL host name is not a top level
            domain
-       4 The dictionary URL is not an HTTPS URL.
    */
   // Item (1) above implies item (2).  Spec should be updated.
   // I take "host name match" to be "is identical to"
@@ -430,7 +420,7 @@
     const std::string& server_hash,
     const GURL& referring_url,
     scoped_refptr<Dictionary>* dictionary) {
-  DCHECK(CalledOnValidThread());
+  DCHECK(thread_checker_.CalledOnValidThread());
   *dictionary = NULL;
   DictionaryMap::iterator it = dictionaries_.find(server_hash);
   if (it == dictionaries_.end()) {
@@ -449,7 +439,7 @@
 // instances that can be used if/when a server specifies one.
 void SdchManager::GetAvailDictionaryList(const GURL& target_url,
                                          std::string* list) {
-  DCHECK(CalledOnValidThread());
+  DCHECK(thread_checker_.CalledOnValidThread());
   int count = 0;
   for (DictionaryMap::iterator it = dictionaries_.begin();
        it != dictionaries_.end(); ++it) {
@@ -486,13 +476,13 @@
 // Methods for supporting latency experiments.
 
 bool SdchManager::AllowLatencyExperiment(const GURL& url) const {
-  DCHECK(CalledOnValidThread());
+  DCHECK(thread_checker_.CalledOnValidThread());
   return allow_latency_experiment_.end() !=
       allow_latency_experiment_.find(url.host());
 }
 
 void SdchManager::SetAllowLatencyExperiment(const GURL& url, bool enable) {
-  DCHECK(CalledOnValidThread());
+  DCHECK(thread_checker_.CalledOnValidThread());
   if (enable) {
     allow_latency_experiment_.insert(url.host());
     return;
@@ -504,9 +494,17 @@
   allow_latency_experiment_.erase(it);
 }
 
+void SdchManager::AddObserver(SdchObserver* observer) {
+  observers_.AddObserver(observer);
+}
+
+void SdchManager::RemoveObserver(SdchObserver* observer) {
+  observers_.RemoveObserver(observer);
+}
+
 void SdchManager::AddSdchDictionary(const std::string& dictionary_text,
     const GURL& dictionary_url) {
-  DCHECK(CalledOnValidThread());
+  DCHECK(thread_checker_.CalledOnValidThread());
   std::string client_hash;
   std::string server_hash;
   GenerateHash(dictionary_text, &client_hash, &server_hash);
diff --git a/net/base/sdch_manager.h b/net/base/sdch_manager.h
index b5f901b..ff157e5 100644
--- a/net/base/sdch_manager.h
+++ b/net/base/sdch_manager.h
@@ -2,21 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Provides global database of differential decompression dictionaries for the
-// SDCH filter (processes sdch enconded content).
-
-// Exactly one instance of SdchManager is built, and all references are made
-// into that collection.
-//
-// The SdchManager maintains a collection of memory resident dictionaries. It
-// can find a dictionary (based on a server specification of a hash), store a
-// dictionary, and make judgements about what URLs can use, set, etc. a
-// dictionary.
-
-// These dictionaries are acquired over the net, and include a header
-// (containing metadata) as well as a VCDIFF dictionary (for use by a VCDIFF
-// module) to decompress data.
-
 #ifndef NET_BASE_SDCH_MANAGER_H_
 #define NET_BASE_SDCH_MANAGER_H_
 
@@ -27,53 +12,28 @@
 #include "base/gtest_prod_util.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/scoped_ptr.h"
-#include "base/threading/non_thread_safe.h"
+#include "base/observer_list.h"
+#include "base/threading/thread_checker.h"
 #include "base/time/time.h"
 #include "net/base/net_export.h"
 #include "url/gurl.h"
 
 namespace net {
 
-//------------------------------------------------------------------------------
-// Create a public interface to help us load SDCH dictionaries.
-// The SdchManager class allows registration to support this interface.
-// A browser may register a fetcher that is used by the dictionary managers to
-// get data from a specified URL. This allows us to use very high level browser
-// functionality in this base (when the functionality can be provided).
-class NET_EXPORT SdchFetcher {
- public:
-  class NET_EXPORT Delegate {
-   public:
-    virtual ~Delegate() {}
+class SdchObserver;
 
-    // Called whenever the SdchFetcher has successfully retrieved a
-    // dictionary.  |dictionary_text| contains the body of the dictionary
-    // retrieved from |dictionary_url|.
-    virtual void AddSdchDictionary(const std::string& dictionary_text,
-                                   const GURL& dictionary_url) = 0;
-  };
+// Provides global database of differential decompression dictionaries for the
+// SDCH filter (processes sdch enconded content).
+//
+// The SdchManager maintains a collection of memory resident dictionaries. It
+// can find a dictionary (based on a server specification of a hash), store a
+// dictionary, and make judgements about what URLs can use, set, etc. a
+// dictionary.
 
-  SdchFetcher() {}
-  virtual ~SdchFetcher() {}
-
-  // The Schedule() method is called when there is a need to get a dictionary
-  // from a server. The callee is responsible for getting that dictionary_text,
-  // and then calling back to AddSdchDictionary() in the Delegate instance.
-  virtual void Schedule(const GURL& dictionary_url) = 0;
-
-  // The Cancel() method is called to cancel all pending dictionary fetches.
-  // This is used for implementation of ClearData() below.
-  virtual void Cancel() = 0;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(SdchFetcher);
-};
-
-//------------------------------------------------------------------------------
-
-class NET_EXPORT SdchManager
-    : public SdchFetcher::Delegate,
-      public NON_EXPORTED_BASE(base::NonThreadSafe) {
+// These dictionaries are acquired over the net, and include a header
+// (containing metadata) as well as a VCDIFF dictionary (for use by a VCDIFF
+// module) to decompress data.
+class NET_EXPORT SdchManager {
  public:
   // A list of errors that appeared and were either resolved, or used to turn
   // off sdch encoding.
@@ -252,7 +212,7 @@
   };
 
   SdchManager();
-  ~SdchManager() override;
+  ~SdchManager();
 
   // Clear data (for browser data removal).
   void ClearData();
@@ -260,9 +220,6 @@
   // Record stats on various errors.
   static void SdchErrorRecovery(ProblemCodes problem);
 
-  // Register a fetcher that this class can use to obtain dictionaries.
-  void set_sdch_fetcher(scoped_ptr<SdchFetcher> fetcher);
-
   // Enables or disables SDCH compression.
   static void EnableSdchSupport(bool enabled);
 
@@ -305,16 +262,9 @@
   // by 1 the number of times it will be reported as blacklisted.
   bool IsInSupportedDomain(const GURL& url);
 
-  // Schedule the URL fetching to load a dictionary. This will always return
-  // before the dictionary is actually loaded and added.
-  // After the implied task does completes, the dictionary will have been
-  // cached in memory.
-  void FetchDictionary(const GURL& request_url, const GURL& dictionary_url);
-
-  // Security test function used before initiating a FetchDictionary.
-  // Return true if fetch is legal.
-  bool CanFetchDictionary(const GURL& referring_url,
-                          const GURL& dictionary_url) const;
+  // Send out appropriate events notifying observers that a Get-Dictionary
+  // header has been seen.
+  void OnGetDictionary(const GURL& request_url, const GURL& dictionary_url);
 
   // Find the vcdiff dictionary (the body of the sdch dictionary that appears
   // after the meta-data headers like Domain:...) with the given |server_hash|
@@ -345,18 +295,16 @@
 
   void SetAllowLatencyExperiment(const GURL& url, bool enable);
 
-  int GetFetchesCountForTesting() const {
-    return fetches_count_for_testing_;
-  }
-
-  // Implementation of SdchFetcher::Delegate.
-
   // Add an SDCH dictionary to our list of availible
   // dictionaries. This addition will fail if addition is illegal
   // (data in the dictionary is not acceptable from the
   // dictionary_url; dictionary already added, etc.).
   void AddSdchDictionary(const std::string& dictionary_text,
-                         const GURL& dictionary_url) override;
+                         const GURL& dictionary_url);
+
+  // Registration for events generated by the SDCH subsystem.
+  void AddObserver(SdchObserver* observer);
+  void RemoveObserver(SdchObserver* observer);
 
  private:
   struct BlacklistInfo {
@@ -373,6 +321,12 @@
   typedef std::map<std::string, BlacklistInfo> DomainBlacklistInfo;
   typedef std::set<std::string> ExperimentSet;
 
+  // Determines whether a "Get-Dictionary" header is legal (dictionary
+  // url has appropriate relationship to referrer url) in the SDCH
+  // protocol.  Return true if fetch is legal.
+  bool CanFetchDictionary(const GURL& referring_url,
+                          const GURL& dictionary_url) const;
+
   // A map of dictionaries info indexed by the hash that the server provides.
   typedef std::map<std::string, scoped_refptr<Dictionary> > DictionaryMap;
 
@@ -388,9 +342,6 @@
                                   std::string* output);
   DictionaryMap dictionaries_;
 
-  // An instance that can fetch a dictionary given a URL.
-  scoped_ptr<SdchFetcher> fetcher_;
-
   // List domains where decode failures have required disabling sdch.
   DomainBlacklistInfo blacklisted_domains_;
 
@@ -398,7 +349,13 @@
   // round trip test has recently passed).
   ExperimentSet allow_latency_experiment_;
 
-  int fetches_count_for_testing_;
+  // Observers that want to be notified of SDCH events.
+  // Assert list is empty on destruction since if there is an observer
+  // that hasn't removed itself from the list, that observer probably
+  // has a reference to the SdchManager.
+  ObserverList<SdchObserver, true> observers_;
+
+  base::ThreadChecker thread_checker_;
 
   DISALLOW_COPY_AND_ASSIGN(SdchManager);
 };
diff --git a/net/base/sdch_manager_unittest.cc b/net/base/sdch_manager_unittest.cc
index 40b55c6..d986879 100644
--- a/net/base/sdch_manager_unittest.cc
+++ b/net/base/sdch_manager_unittest.cc
@@ -9,15 +9,13 @@
 #include "base/logging.h"
 #include "base/memory/scoped_ptr.h"
 #include "net/base/sdch_manager.h"
+#include "net/base/sdch_observer.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
 
 namespace net {
 
 //------------------------------------------------------------------------------
-// Workaround for http://crbug.com/418975; remove when fixed.
-#if !defined(OS_IOS)
-
-//------------------------------------------------------------------------------
 // Provide sample data and compression results with a sample VCDIFF dictionary.
 // Note an SDCH dictionary has extra meta-data before the VCDIFF dictionary.
 static const char kTestVcdiffDictionary[] = "DictionaryFor"
@@ -25,6 +23,32 @@
 
 //------------------------------------------------------------------------------
 
+class MockSdchObserver : public SdchObserver {
+ public:
+  MockSdchObserver() : get_dictionary_notifications_(0) {}
+
+  const GURL& last_dictionary_request_url() {
+    return last_dictionary_request_url_;
+  }
+  const GURL& last_dictionary_url() { return last_dictionary_url_; }
+  int get_dictionary_notifications() { return get_dictionary_notifications_; }
+
+  // SdchObserver implementation
+  void OnGetDictionary(SdchManager* manager,
+                       const GURL& request_url,
+                       const GURL& dictionary_url) override {
+    ++get_dictionary_notifications_;
+    last_dictionary_request_url_ = request_url;
+    last_dictionary_url_ = dictionary_url;
+  }
+  void OnClearDictionaries(SdchManager* manager) override {}
+
+ private:
+  int get_dictionary_notifications_;
+  GURL last_dictionary_request_url_;
+  GURL last_dictionary_url_;
+};
+
 class SdchManagerTest : public testing::Test {
  protected:
   SdchManagerTest()
@@ -35,6 +59,8 @@
     default_https_support_ = sdch_manager_->secure_scheme_supported();
   }
 
+  virtual ~SdchManagerTest() {}
+
   SdchManager* sdch_manager() { return sdch_manager_.get(); }
 
   // Reset globals back to default state.
@@ -521,12 +547,7 @@
   GURL url("http://www.google.com");
   GURL secure_url("https://www.google.com");
 
-#if !defined(OS_IOS)
-  // Workaround for http://crbug.com/418975; remove when fixed.
   bool expect_https_support = true;
-#else
-  bool expect_https_support = false;
-#endif
 
   EXPECT_TRUE(sdch_manager()->IsInSupportedDomain(url));
   EXPECT_EQ(expect_https_support,
@@ -572,17 +593,23 @@
   EXPECT_TRUE(sdch_manager()->IsInSupportedDomain(blacklist_url));
 }
 
-#else
+TEST_F(SdchManagerTest, GetDictionaryNotification) {
+  GURL test_request_gurl(GURL("http://www.example.com/data"));
+  GURL test_dictionary_gurl(GURL("http://www.example.com/dict"));
+  MockSdchObserver observer;
+  sdch_manager()->AddObserver(&observer);
 
-TEST(SdchManagerTest, SdchOffByDefault) {
-  GURL google_url("http://www.google.com");
-  SdchManager* sdch_manager(new SdchManager);
+  EXPECT_EQ(0, observer.get_dictionary_notifications());
+  sdch_manager()->OnGetDictionary(test_request_gurl, test_dictionary_gurl);
+  EXPECT_EQ(1, observer.get_dictionary_notifications());
+  EXPECT_EQ(test_request_gurl, observer.last_dictionary_request_url());
+  EXPECT_EQ(test_dictionary_gurl, observer.last_dictionary_url());
 
-  EXPECT_FALSE(sdch_manager->IsInSupportedDomain(google_url));
-  SdchManager::EnableSdchSupport(true);
-  EXPECT_TRUE(sdch_manager->IsInSupportedDomain(google_url));
+  sdch_manager()->RemoveObserver(&observer);
+  sdch_manager()->OnGetDictionary(test_request_gurl, test_dictionary_gurl);
+  EXPECT_EQ(1, observer.get_dictionary_notifications());
+  EXPECT_EQ(test_request_gurl, observer.last_dictionary_request_url());
+  EXPECT_EQ(test_dictionary_gurl, observer.last_dictionary_url());
 }
 
-#endif  // !defined(OS_IOS)
-
 }  // namespace net
diff --git a/net/base/sdch_observer.cc b/net/base/sdch_observer.cc
new file mode 100644
index 0000000..9bf44ad
--- /dev/null
+++ b/net/base/sdch_observer.cc
@@ -0,0 +1,14 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "net/base/sdch_observer.h"
+
+#include "base/logging.h"
+#include "net/base/sdch_manager.h"
+
+namespace net {
+
+SdchObserver::~SdchObserver() {
+}
+}
diff --git a/net/base/sdch_observer.h b/net/base/sdch_observer.h
new file mode 100644
index 0000000..2c5987d
--- /dev/null
+++ b/net/base/sdch_observer.h
@@ -0,0 +1,34 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef NET_BASE_SDCH_OBSERVER_H_
+#define NET_BASE_SDCH_OBSERVER_H_
+
+#include "net/base/net_export.h"
+
+class GURL;
+
+namespace net {
+
+class SdchManager;
+
+// Observer interface for SDCH.  Observers can register with
+// the SdchManager to receive notifications of various SDCH events.
+class NET_EXPORT SdchObserver {
+ public:
+  virtual ~SdchObserver();
+
+  // Notification that SDCH has seen a "Get-Dictionary" header.
+  virtual void OnGetDictionary(SdchManager* manager,
+                               const GURL& request_url,
+                               const GURL& dictionary_url) = 0;
+
+  // Notification that SDCH has received a request to clear all
+  // its dictionaries.
+  virtual void OnClearDictionaries(SdchManager* manager) = 0;
+};
+
+}  // namespace net
+
+#endif  // NET_BASE_SDCH_MANAGER_H_
diff --git a/net/cert/cert_verify_proc_win.cc b/net/cert/cert_verify_proc_win.cc
index 60e2286..13a337b 100644
--- a/net/cert/cert_verify_proc_win.cc
+++ b/net/cert/cert_verify_proc_win.cc
@@ -741,7 +741,7 @@
   if (CertSubjectCommonNameHasNull(cert_handle))
     verify_result->cert_status |= CERT_STATUS_INVALID;
 
-  std::wstring wstr_hostname = base::ASCIIToWide(hostname);
+  base::string16 hostname16 = base::ASCIIToUTF16(hostname);
 
   SSL_EXTRA_CERT_CHAIN_POLICY_PARA extra_policy_para;
   memset(&extra_policy_para, 0, sizeof(extra_policy_para));
@@ -752,7 +752,7 @@
   extra_policy_para.fdwChecks =
       0x00001000;  // SECURITY_FLAG_IGNORE_CERT_CN_INVALID
   extra_policy_para.pwszServerName =
-      const_cast<wchar_t*>(wstr_hostname.c_str());
+      const_cast<base::char16*>(hostname16.c_str());
 
   CERT_CHAIN_POLICY_PARA policy_para;
   memset(&policy_para, 0, sizeof(policy_para));
diff --git a/net/cert/nss_cert_database_unittest.cc b/net/cert/nss_cert_database_unittest.cc
index c5f05b5..3c83d05 100644
--- a/net/cert/nss_cert_database_unittest.cc
+++ b/net/cert/nss_cert_database_unittest.cc
@@ -14,7 +14,6 @@
 #include "base/lazy_instance.h"
 #include "base/message_loop/message_loop.h"
 #include "base/message_loop/message_loop_proxy.h"
-#include "base/path_service.h"
 #include "base/run_loop.h"
 #include "base/strings/string16.h"
 #include "base/strings/string_util.h"
diff --git a/net/disk_cache/disk_cache_test_util.cc b/net/disk_cache/disk_cache_test_util.cc
index e3f8fba..69738d3 100644
--- a/net/disk_cache/disk_cache_test_util.cc
+++ b/net/disk_cache/disk_cache_test_util.cc
@@ -7,7 +7,6 @@
 #include "base/files/file.h"
 #include "base/files/file_path.h"
 #include "base/logging.h"
-#include "base/path_service.h"
 #include "base/thread_task_runner_handle.h"
 #include "net/base/net_errors.h"
 #include "net/disk_cache/blockfile/backend_impl.h"
diff --git a/net/disk_cache/simple/simple_index.cc b/net/disk_cache/simple/simple_index.cc
index ca4d58e..66d9f42 100644
--- a/net/disk_cache/simple/simple_index.cc
+++ b/net/disk_cache/simple/simple_index.cc
@@ -470,7 +470,7 @@
   last_write_to_disk_ = start;
 
   index_file_->WriteToDisk(entries_set_, cache_size_,
-                           start, app_on_background_);
+                           start, app_on_background_, base::Closure());
 }
 
 }  // namespace disk_cache
diff --git a/net/disk_cache/simple/simple_index_file.cc b/net/disk_cache/simple/simple_index_file.cc
index ac71330..95b2bae 100644
--- a/net/disk_cache/simple/simple_index_file.cc
+++ b/net/disk_cache/simple/simple_index_file.cc
@@ -278,18 +278,18 @@
 void SimpleIndexFile::WriteToDisk(const SimpleIndex::EntrySet& entry_set,
                                   uint64 cache_size,
                                   const base::TimeTicks& start,
-                                  bool app_on_background) {
+                                  bool app_on_background,
+                                  const base::Closure& callback) {
   IndexMetadata index_metadata(entry_set.size(), cache_size);
   scoped_ptr<Pickle> pickle = Serialize(index_metadata, entry_set);
-  cache_thread_->PostTask(FROM_HERE,
-                          base::Bind(&SimpleIndexFile::SyncWriteToDisk,
-                                     cache_type_,
-                                     cache_directory_,
-                                     index_file_,
-                                     temp_index_file_,
-                                     base::Passed(&pickle),
-                                     base::TimeTicks::Now(),
-                                     app_on_background));
+  base::Closure task =
+      base::Bind(&SimpleIndexFile::SyncWriteToDisk,
+                 cache_type_, cache_directory_, index_file_, temp_index_file_,
+                 base::Passed(&pickle), start, app_on_background);
+  if (callback.is_null())
+    cache_thread_->PostTask(FROM_HERE, task);
+  else
+    cache_thread_->PostTaskAndReply(FROM_HERE, task, callback);
 }
 
 // static
diff --git a/net/disk_cache/simple/simple_index_file.h b/net/disk_cache/simple/simple_index_file.h
index b1f8961..91f2a48 100644
--- a/net/disk_cache/simple/simple_index_file.h
+++ b/net/disk_cache/simple/simple_index_file.h
@@ -90,7 +90,8 @@
   virtual void WriteToDisk(const SimpleIndex::EntrySet& entry_set,
                            uint64 cache_size,
                            const base::TimeTicks& start,
-                           bool app_on_background);
+                           bool app_on_background,
+                           const base::Closure& callback);
 
  private:
   friend class WrappedSimpleIndexFile;
diff --git a/net/disk_cache/simple/simple_index_file_unittest.cc b/net/disk_cache/simple/simple_index_file_unittest.cc
index 77db225..4cedab2 100644
--- a/net/disk_cache/simple/simple_index_file_unittest.cc
+++ b/net/disk_cache/simple/simple_index_file_unittest.cc
@@ -98,24 +98,6 @@
             b.last_used_time_seconds_since_epoch_ &&
         a.entry_size_ == b.entry_size_;
   }
-
- protected:
-  SimpleIndexFileTest() : callback_called_(false) {}
-
-  base::Closure GetCallback() {
-    return base::Bind(&SimpleIndexFileTest::LoadIndexEntriesCallback,
-                      base::Unretained(this));
-  }
-
-  bool callback_called() { return callback_called_; }
-
- private:
-  void LoadIndexEntriesCallback() {
-    EXPECT_FALSE(callback_called_);
-    callback_called_ = true;
-  }
-
-  bool callback_called_;
 };
 
 TEST_F(SimpleIndexFileTest, Serialize) {
@@ -203,11 +185,12 @@
   }
 
   const uint64 kCacheSize = 456U;
+  net::TestClosure closure;
   {
     WrappedSimpleIndexFile simple_index_file(cache_dir.path());
-    simple_index_file.WriteToDisk(entries, kCacheSize,
-                                  base::TimeTicks(), false);
-    base::RunLoop().RunUntilIdle();
+    simple_index_file.WriteToDisk(entries, kCacheSize, base::TimeTicks(),
+                                  false, closure.closure());
+    closure.WaitForResult();
     EXPECT_TRUE(base::PathExists(simple_index_file.GetIndexFilePath()));
   }
 
@@ -215,13 +198,11 @@
   base::Time fake_cache_mtime;
   ASSERT_TRUE(simple_util::GetMTime(cache_dir.path(), &fake_cache_mtime));
   SimpleIndexLoadResult load_index_result;
-  simple_index_file.LoadIndexEntries(fake_cache_mtime,
-                                     GetCallback(),
+  simple_index_file.LoadIndexEntries(fake_cache_mtime, closure.closure(),
                                      &load_index_result);
-  base::RunLoop().RunUntilIdle();
+  closure.WaitForResult();
 
   EXPECT_TRUE(base::PathExists(simple_index_file.GetIndexFilePath()));
-  ASSERT_TRUE(callback_called());
   EXPECT_TRUE(load_index_result.did_load);
   EXPECT_FALSE(load_index_result.flush_required);
 
@@ -246,15 +227,13 @@
                                     &fake_cache_mtime));
   EXPECT_FALSE(WrappedSimpleIndexFile::LegacyIsIndexFileStale(fake_cache_mtime,
                                                               index_path));
-
   SimpleIndexLoadResult load_index_result;
-  simple_index_file.LoadIndexEntries(fake_cache_mtime,
-                                     GetCallback(),
+  net::TestClosure closure;
+  simple_index_file.LoadIndexEntries(fake_cache_mtime, closure.closure(),
                                      &load_index_result);
-  base::RunLoop().RunUntilIdle();
+  closure.WaitForResult();
 
   EXPECT_FALSE(base::PathExists(index_path));
-  ASSERT_TRUE(callback_called());
   EXPECT_TRUE(load_index_result.did_load);
   EXPECT_TRUE(load_index_result.flush_required);
 }
diff --git a/net/disk_cache/simple/simple_index_unittest.cc b/net/disk_cache/simple/simple_index_unittest.cc
index e5d0830..1096488 100644
--- a/net/disk_cache/simple/simple_index_unittest.cc
+++ b/net/disk_cache/simple/simple_index_unittest.cc
@@ -68,7 +68,8 @@
   void WriteToDisk(const SimpleIndex::EntrySet& entry_set,
                    uint64 cache_size,
                    const base::TimeTicks& start,
-                   bool app_on_background) override {
+                   bool app_on_background,
+                   const base::Closure& callback) override {
     disk_writes_++;
     disk_write_entry_set_ = entry_set;
   }
diff --git a/net/http/http_auth_sspi_win.cc b/net/http/http_auth_sspi_win.cc
index 66038d1..156a55f 100644
--- a/net/http/http_auth_sspi_win.cc
+++ b/net/http/http_auth_sspi_win.cc
@@ -360,11 +360,11 @@
 
   // This returns a token that is passed to the remote server.
   DWORD context_attribute;
-  std::wstring spn_wide = base::ASCIIToWide(spn);
+  base::string16 spn16 = base::ASCIIToUTF16(spn);
   SECURITY_STATUS status = library_->InitializeSecurityContext(
       &cred_,  // phCredential
       ctxt_ptr,  // phContext
-      const_cast<wchar_t *>(spn_wide.c_str()),  // pszTargetName
+      const_cast<base::char16*>(spn16.c_str()),  // pszTargetName
       context_flags,  // fContextReq
       0,  // Reserved1 (must be 0)
       SECURITY_NATIVE_DREP,  // TargetDataRep
diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc
index d29342e..eea7294 100644
--- a/net/http/http_network_transaction.cc
+++ b/net/http/http_network_transaction.cc
@@ -45,7 +45,7 @@
 #include "net/http/http_response_info.h"
 #include "net/http/http_server_properties.h"
 #include "net/http/http_status_code.h"
-#include "net/http/http_stream_base.h"
+#include "net/http/http_stream.h"
 #include "net/http/http_stream_factory.h"
 #include "net/http/http_util.h"
 #include "net/http/transport_security_state.h"
@@ -163,7 +163,7 @@
         stream_->Close(true /* not reusable */);
       } else {
         // Otherwise, we try to drain the response body.
-        HttpStreamBase* stream = stream_.release();
+        HttpStream* stream = stream_.release();
         stream->Drain(session_);
       }
     }
@@ -305,8 +305,7 @@
       // We should call connection_->set_idle_time(), but this doesn't occur
       // often enough to be worth the trouble.
       stream_->SetConnectionReused();
-      new_stream =
-          static_cast<HttpStream*>(stream_.get())->RenewStreamForAuth();
+      new_stream = stream_->RenewStreamForAuth();
     }
 
     if (!new_stream) {
@@ -421,8 +420,7 @@
   if (!stream_.get())
     return UploadProgress();
 
-  // TODO(bashi): This cast is temporary. Remove later.
-  return static_cast<HttpStream*>(stream_.get())->GetUploadProgress();
+  return stream_->GetUploadProgress();
 }
 
 void HttpNetworkTransaction::SetQuicServerInfo(
@@ -471,7 +469,7 @@
 
 void HttpNetworkTransaction::OnStreamReady(const SSLConfig& used_ssl_config,
                                            const ProxyInfo& used_proxy_info,
-                                           HttpStreamBase* stream) {
+                                           HttpStream* stream) {
   DCHECK_EQ(STATE_CREATE_STREAM_COMPLETE, next_state_);
   DCHECK(stream_request_.get());
 
@@ -564,7 +562,7 @@
     const HttpResponseInfo& response_info,
     const SSLConfig& used_ssl_config,
     const ProxyInfo& used_proxy_info,
-    HttpStreamBase* stream) {
+    HttpStream* stream) {
   DCHECK_EQ(STATE_CREATE_STREAM_COMPLETE, next_state_);
 
   headers_valid_ = true;
diff --git a/net/http/http_network_transaction.h b/net/http/http_network_transaction.h
index 47f34eb..e69e550 100644
--- a/net/http/http_network_transaction.h
+++ b/net/http/http_network_transaction.h
@@ -28,7 +28,7 @@
 class ClientSocketHandle;
 class HttpAuthController;
 class HttpNetworkSession;
-class HttpStreamBase;
+class HttpStream;
 class HttpStreamRequest;
 class IOBuffer;
 class ProxyInfo;
@@ -79,7 +79,7 @@
   // HttpStreamRequest::Delegate methods:
   void OnStreamReady(const SSLConfig& used_ssl_config,
                      const ProxyInfo& used_proxy_info,
-                     HttpStreamBase* stream) override;
+                     HttpStream* stream) override;
   void OnWebSocketHandshakeStreamReady(
       const SSLConfig& used_ssl_config,
       const ProxyInfo& used_proxy_info,
@@ -97,7 +97,7 @@
   void OnHttpsProxyTunnelResponse(const HttpResponseInfo& response_info,
                                   const SSLConfig& used_ssl_config,
                                   const ProxyInfo& used_proxy_info,
-                                  HttpStreamBase* stream) override;
+                                  HttpStream* stream) override;
 
  private:
   friend class HttpNetworkTransactionSSLTest;
@@ -247,7 +247,7 @@
   // Debug helper.
   static std::string DescribeState(State state);
 
-  void SetStream(HttpStreamBase* stream);
+  void SetStream(HttpStream* stream);
 
   scoped_refptr<HttpAuthController>
       auth_controllers_[HttpAuth::AUTH_NUM_TARGETS];
@@ -271,7 +271,7 @@
   ProxyInfo proxy_info_;
 
   scoped_ptr<HttpStreamRequest> stream_request_;
-  scoped_ptr<HttpStreamBase> stream_;
+  scoped_ptr<HttpStream> stream_;
 
   // True if we've validated the headers that the stream parser has returned.
   bool headers_valid_;
diff --git a/net/http/http_network_transaction_unittest.cc b/net/http/http_network_transaction_unittest.cc
index be94493..938f1b0 100644
--- a/net/http/http_network_transaction_unittest.cc
+++ b/net/http/http_network_transaction_unittest.cc
@@ -8511,7 +8511,7 @@
   const AlternateProtocolInfo alternate =
       http_server_properties->GetAlternateProtocol(
           HostPortPair::FromURL(request.url));
-  EXPECT_EQ(ALTERNATE_PROTOCOL_BROKEN, alternate.protocol);
+  EXPECT_TRUE(alternate.is_broken);
 }
 
 TEST_P(HttpNetworkTransactionTest,
@@ -12193,8 +12193,8 @@
 
 namespace {
 
-// Fake HttpStreamBase that simply records calls to SetPriority().
-class FakeStream : public HttpStreamBase,
+// Fake HttpStream that simply records calls to SetPriority().
+class FakeStream : public HttpStream,
                    public base::SupportsWeakPtr<FakeStream> {
  public:
   explicit FakeStream(RequestPriority priority) : priority_(priority) {}
@@ -12274,6 +12274,10 @@
 
   void SetPriority(RequestPriority priority) override { priority_ = priority; }
 
+  UploadProgress GetUploadProgress() const override { return UploadProgress(); }
+
+  HttpStream* RenewStreamForAuth() override { return NULL; }
+
  private:
   RequestPriority priority_;
 
diff --git a/net/http/http_response_body_drainer.cc b/net/http/http_response_body_drainer.cc
index 91dbbf7..fdcec31 100644
--- a/net/http/http_response_body_drainer.cc
+++ b/net/http/http_response_body_drainer.cc
@@ -9,11 +9,11 @@
 #include "net/base/io_buffer.h"
 #include "net/base/net_errors.h"
 #include "net/http/http_network_session.h"
-#include "net/http/http_stream_base.h"
+#include "net/http/http_stream.h"
 
 namespace net {
 
-HttpResponseBodyDrainer::HttpResponseBodyDrainer(HttpStreamBase* stream)
+HttpResponseBodyDrainer::HttpResponseBodyDrainer(HttpStream* stream)
     : stream_(stream),
       next_state_(STATE_NONE),
       total_read_(0),
diff --git a/net/http/http_response_body_drainer.h b/net/http/http_response_body_drainer.h
index 5c7713e..a4255d0 100644
--- a/net/http/http_response_body_drainer.h
+++ b/net/http/http_response_body_drainer.h
@@ -15,7 +15,7 @@
 
 namespace net {
 
-class HttpStreamBase;
+class HttpStream;
 class IOBuffer;
 
 class NET_EXPORT_PRIVATE HttpResponseBodyDrainer {
@@ -27,7 +27,7 @@
   static const int kDrainBodyBufferSize = 16384;
   static const int kTimeoutInSeconds = 5;
 
-  explicit HttpResponseBodyDrainer(HttpStreamBase* stream);
+  explicit HttpResponseBodyDrainer(HttpStream* stream);
   ~HttpResponseBodyDrainer();
 
   // Starts reading the body until completion, or we hit the buffer limit, or we
@@ -52,7 +52,7 @@
   void Finish(int result);
 
   scoped_refptr<IOBuffer> read_buf_;
-  const scoped_ptr<HttpStreamBase> stream_;
+  const scoped_ptr<HttpStream> stream_;
   State next_state_;
   int total_read_;
   CompletionCallback user_callback_;
diff --git a/net/http/http_response_info.cc b/net/http/http_response_info.cc
index 9569b38..2ec0fb5 100644
--- a/net/http/http_response_info.cc
+++ b/net/http/http_response_info.cc
@@ -396,9 +396,9 @@
     case CONNECTION_INFO_SPDY3:
       return "spdy/3";
     case CONNECTION_INFO_SPDY4:
-      // This is the HTTP/2 draft 14 identifier. For internal
+      // This is the HTTP/2 draft-15 identifier. For internal
       // consistency, HTTP/2 is named SPDY4 within Chromium.
-      return "h2-14";
+      return "h2-15";
     case CONNECTION_INFO_QUIC1_SPDY3:
       return "quic/1+spdy/3";
     case NUM_OF_CONNECTION_INFOS:
diff --git a/net/http/http_server_properties.cc b/net/http/http_server_properties.cc
index a9cbd72..cc41ea8 100644
--- a/net/http/http_server_properties.cc
+++ b/net/http/http_server_properties.cc
@@ -20,10 +20,9 @@
   "npn-spdy/2",
   "npn-spdy/3",
   "npn-spdy/3.1",
-  "npn-h2-14",  // HTTP/2 draft 14. Called SPDY4 internally.
+  "npn-h2-15",  // HTTP/2 draft-15. Called SPDY4 internally.
   "quic"
 };
-const char kBrokenAlternateProtocol[] = "Broken";
 
 COMPILE_ASSERT(
     arraysize(kAlternateProtocolStrings) == NUM_VALID_ALTERNATE_PROTOCOLS,
@@ -57,8 +56,6 @@
       DCHECK(IsAlternateProtocolValid(protocol));
       return kAlternateProtocolStrings[
           protocol - ALTERNATE_PROTOCOL_MINIMUM_VALID_VERSION];
-    case ALTERNATE_PROTOCOL_BROKEN:
-      return kBrokenAlternateProtocol;
     case UNINITIALIZED_ALTERNATE_PROTOCOL:
       return "Uninitialized";
   }
@@ -73,8 +70,6 @@
     if (str == AlternateProtocolToString(protocol))
       return protocol;
   }
-  if (str == kBrokenAlternateProtocol)
-    return ALTERNATE_PROTOCOL_BROKEN;
   return UNINITIALIZED_ALTERNATE_PROTOCOL;
 }
 
@@ -101,9 +96,10 @@
 }
 
 std::string AlternateProtocolInfo::ToString() const {
-  return base::StringPrintf("%d:%s p=%f", port,
+  return base::StringPrintf("%d:%s p=%f%s", port,
                             AlternateProtocolToString(protocol),
-                            probability);
+                            probability,
+                            is_broken ? " (broken)" : "");
 }
 
 }  // namespace net
diff --git a/net/http/http_server_properties.h b/net/http/http_server_properties.h
index edf598f..337f22d 100644
--- a/net/http/http_server_properties.h
+++ b/net/http/http_server_properties.h
@@ -61,7 +61,6 @@
   NPN_SPDY_MAXIMUM_VERSION = NPN_SPDY_4,
   QUIC,
   ALTERNATE_PROTOCOL_MAXIMUM_VALID_VERSION = QUIC,
-  ALTERNATE_PROTOCOL_BROKEN,  // The alternate protocol is known to be broken.
   UNINITIALIZED_ALTERNATE_PROTOCOL,
 };
 
@@ -88,7 +87,17 @@
                         double probability)
       : port(port),
         protocol(protocol),
-        probability(probability) {}
+        probability(probability),
+        is_broken(false) {}
+
+  AlternateProtocolInfo(uint16 port,
+                        AlternateProtocol protocol,
+                        double probability,
+                        bool is_broken)
+      : port(port),
+        protocol(protocol),
+        probability(probability),
+        is_broken(is_broken) {}
 
   bool Equals(const AlternateProtocolInfo& other) const {
     return port == other.port &&
@@ -101,6 +110,7 @@
   uint16 port;
   AlternateProtocol protocol;
   double probability;
+  bool is_broken;
 };
 
 struct NET_EXPORT SupportsQuic {
diff --git a/net/http/http_server_properties_impl.cc b/net/http/http_server_properties_impl.cc
index 103d0e1..65ecd11 100644
--- a/net/http/http_server_properties_impl.cc
+++ b/net/http/http_server_properties_impl.cc
@@ -49,13 +49,12 @@
 
 void HttpServerPropertiesImpl::InitializeAlternateProtocolServers(
     AlternateProtocolMap* alternate_protocol_map) {
-  // Keep all the ALTERNATE_PROTOCOL_BROKEN ones since those don't
-  // get persisted.
+  // Keep all the broken ones since those don't get persisted.
   for (AlternateProtocolMap::iterator it = alternate_protocol_map_.begin();
        it != alternate_protocol_map_.end();) {
     AlternateProtocolMap::iterator old_it = it;
     ++it;
-    if (old_it->second.protocol != ALTERNATE_PROTOCOL_BROKEN) {
+    if (!old_it->second.is_broken) {
       alternate_protocol_map_.Erase(old_it);
     }
   }
@@ -251,10 +250,6 @@
     uint16 alternate_port,
     AlternateProtocol alternate_protocol,
     double alternate_probability) {
-  if (alternate_protocol == ALTERNATE_PROTOCOL_BROKEN) {
-    LOG(DFATAL) << "Call SetBrokenAlternateProtocol() instead.";
-    return;
-  }
 
   AlternateProtocolInfo alternate(alternate_port,
                                   alternate_protocol,
@@ -263,13 +258,12 @@
     const AlternateProtocolInfo existing_alternate =
         GetAlternateProtocol(server);
 
-    if (existing_alternate.protocol == ALTERNATE_PROTOCOL_BROKEN) {
+    if (existing_alternate.is_broken) {
       DVLOG(1) << "Ignore alternate protocol since it's known to be broken.";
       return;
     }
 
-    if (alternate_protocol != ALTERNATE_PROTOCOL_BROKEN &&
-        !existing_alternate.Equals(alternate)) {
+    if (!existing_alternate.Equals(alternate)) {
       LOG(WARNING) << "Changing the alternate protocol for: "
                    << server.ToString()
                    << " from [Port: " << existing_alternate.port
@@ -306,14 +300,11 @@
 void HttpServerPropertiesImpl::SetBrokenAlternateProtocol(
     const HostPortPair& server) {
   AlternateProtocolMap::iterator it = alternate_protocol_map_.Get(server);
-  if (it != alternate_protocol_map_.end()) {
-    it->second.protocol = ALTERNATE_PROTOCOL_BROKEN;
-  } else {
-    AlternateProtocolInfo alternate(server.port(),
-                                    ALTERNATE_PROTOCOL_BROKEN,
-                                    1);
-    alternate_protocol_map_.Put(server, alternate);
+  if (it == alternate_protocol_map_.end()) {
+    LOG(DFATAL) << "Trying to mark unknown alternate protocol broken.";
+    return;
   }
+  it->second.is_broken = true;
   int count = ++broken_alternate_protocol_map_[server];
   base::TimeDelta delay =
       base::TimeDelta::FromSeconds(kBrokenAlternateProtocolDelaySecs);
diff --git a/net/http/http_server_properties_impl_unittest.cc b/net/http/http_server_properties_impl_unittest.cc
index a23ebbe..1c016b7 100644
--- a/net/http/http_server_properties_impl_unittest.cc
+++ b/net/http/http_server_properties_impl_unittest.cc
@@ -286,19 +286,18 @@
 
 TEST_F(AlternateProtocolServerPropertiesTest, Initialize) {
   HostPortPair test_host_port_pair1("foo1", 80);
+  impl_.SetAlternateProtocol(test_host_port_pair1, 443, NPN_SPDY_3, 1);
   impl_.SetBrokenAlternateProtocol(test_host_port_pair1);
   HostPortPair test_host_port_pair2("foo2", 80);
   impl_.SetAlternateProtocol(test_host_port_pair2, 443, NPN_SPDY_3, 1);
 
   AlternateProtocolMap alternate_protocol_map(
       AlternateProtocolMap::NO_AUTO_EVICT);
-  AlternateProtocolInfo port_alternate_protocol_pair(123, NPN_SPDY_3, 1);
-  alternate_protocol_map.Put(test_host_port_pair2,
-                             port_alternate_protocol_pair);
+  AlternateProtocolInfo alternate(123, NPN_SPDY_3, 1);
+  alternate_protocol_map.Put(test_host_port_pair2, alternate);
   HostPortPair test_host_port_pair3("foo3", 80);
-  port_alternate_protocol_pair.port = 1234;
-  alternate_protocol_map.Put(test_host_port_pair3,
-                             port_alternate_protocol_pair);
+  alternate.port = 1234;
+  alternate_protocol_map.Put(test_host_port_pair3, alternate);
   impl_.InitializeAlternateProtocolServers(&alternate_protocol_map);
 
   // Verify test_host_port_pair3 is the MRU server.
@@ -311,13 +310,11 @@
 
   ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair1));
   ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair2));
-  port_alternate_protocol_pair =
-      impl_.GetAlternateProtocol(test_host_port_pair1);
-  EXPECT_EQ(ALTERNATE_PROTOCOL_BROKEN, port_alternate_protocol_pair.protocol);
-  port_alternate_protocol_pair =
-      impl_.GetAlternateProtocol(test_host_port_pair2);
-  EXPECT_EQ(123, port_alternate_protocol_pair.port);
-  EXPECT_EQ(NPN_SPDY_3, port_alternate_protocol_pair.protocol);
+  alternate = impl_.GetAlternateProtocol(test_host_port_pair1);
+  EXPECT_TRUE(alternate.is_broken);
+  alternate = impl_.GetAlternateProtocol(test_host_port_pair2);
+  EXPECT_EQ(123, alternate.port);
+  EXPECT_EQ(NPN_SPDY_3, alternate.protocol);
 }
 
 TEST_F(AlternateProtocolServerPropertiesTest, MRUOfHasAlternateProtocol) {
@@ -365,11 +362,12 @@
 
 TEST_F(AlternateProtocolServerPropertiesTest, SetBroken) {
   HostPortPair test_host_port_pair("foo", 80);
+  impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1);
   impl_.SetBrokenAlternateProtocol(test_host_port_pair);
   ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair));
   AlternateProtocolInfo alternate =
       impl_.GetAlternateProtocol(test_host_port_pair);
-  EXPECT_EQ(ALTERNATE_PROTOCOL_BROKEN, alternate.protocol);
+  EXPECT_TRUE(alternate.is_broken);
 
   impl_.SetAlternateProtocol(
       test_host_port_pair,
@@ -377,17 +375,17 @@
       NPN_SPDY_3,
       1);
   alternate = impl_.GetAlternateProtocol(test_host_port_pair);
-  EXPECT_EQ(ALTERNATE_PROTOCOL_BROKEN, alternate.protocol)
-      << "Second attempt should be ignored.";
+  EXPECT_TRUE(alternate.is_broken) << "Second attempt should be ignored.";
 }
 
 TEST_F(AlternateProtocolServerPropertiesTest, ClearBroken) {
   HostPortPair test_host_port_pair("foo", 80);
+  impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1);
   impl_.SetBrokenAlternateProtocol(test_host_port_pair);
   ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair));
   AlternateProtocolInfo alternate =
       impl_.GetAlternateProtocol(test_host_port_pair);
-  EXPECT_EQ(ALTERNATE_PROTOCOL_BROKEN, alternate.protocol);
+  EXPECT_TRUE(alternate.is_broken);
   impl_.ClearAlternateProtocol(test_host_port_pair);
   EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
 }
diff --git a/net/http/http_server_properties_manager.cc b/net/http/http_server_properties_manager.cc
index 6796fb1..794030d 100644
--- a/net/http/http_server_properties_manager.cc
+++ b/net/http/http_server_properties_manager.cc
@@ -746,11 +746,11 @@
     }
 
     // Save alternate_protocol.
-    if (server_pref.alternate_protocol) {
+    const net::AlternateProtocolInfo* port_alternate_protocol =
+        server_pref.alternate_protocol;
+    if (port_alternate_protocol && !port_alternate_protocol->is_broken) {
       base::DictionaryValue* port_alternate_protocol_dict =
           new base::DictionaryValue;
-      const net::AlternateProtocolInfo* port_alternate_protocol =
-          server_pref.alternate_protocol;
       port_alternate_protocol_dict->SetInteger("port",
                                                port_alternate_protocol->port);
       const char* protocol_str =
diff --git a/net/http/http_stream.h b/net/http/http_stream.h
index 3dda50b..3e8703d 100644
--- a/net/http/http_stream.h
+++ b/net/http/http_stream.h
@@ -12,19 +12,148 @@
 #define NET_HTTP_HTTP_STREAM_H_
 
 #include "base/basictypes.h"
+#include "base/memory/scoped_ptr.h"
 #include "net/base/completion_callback.h"
 #include "net/base/net_export.h"
+#include "net/base/request_priority.h"
 #include "net/base/upload_progress.h"
-#include "net/http/http_stream_base.h"
 
 namespace net {
 
+class BoundNetLog;
+class HttpNetworkSession;
+class HttpRequestHeaders;
+struct HttpRequestInfo;
+class HttpResponseInfo;
 class IOBuffer;
+struct LoadTimingInfo;
+class SSLCertRequestInfo;
+class SSLInfo;
 
-class NET_EXPORT_PRIVATE HttpStream : public HttpStreamBase {
+class NET_EXPORT_PRIVATE HttpStream {
  public:
   HttpStream() {}
-  ~HttpStream() override {}
+  virtual ~HttpStream() {}
+
+  // Initialize stream.  Must be called before calling SendRequest().
+  // |request_info| must outlive the HttpStream.
+  // Returns a net error code, possibly ERR_IO_PENDING.
+  virtual int InitializeStream(const HttpRequestInfo* request_info,
+                               RequestPriority priority,
+                               const BoundNetLog& net_log,
+                               const CompletionCallback& callback) = 0;
+
+  // Writes the headers and uploads body data to the underlying socket.
+  // ERR_IO_PENDING is returned if the operation could not be completed
+  // synchronously, in which case the result will be passed to the callback
+  // when available. Returns OK on success.
+  //
+  // The callback will only be invoked once the first full set of headers have
+  // been received, at which point |response| will have been populated with that
+  // set of headers, and is safe to read, until/unless ReadResponseHeaders is
+  // called.
+  //
+  // |response| must remain valid until all sets of headers has been read, or
+  // the HttpStream is destroyed. There's typically only one set of
+  // headers, except in the case of 1xx responses (See ReadResponseHeaders).
+  virtual int SendRequest(const HttpRequestHeaders& request_headers,
+                          HttpResponseInfo* response,
+                          const CompletionCallback& callback) = 0;
+
+  // Reads from the underlying socket until the next set of response headers
+  // have been completely received.  This may only be called on 1xx responses
+  // after SendRequest has completed successfully, to read the next set of
+  // headers.
+  //
+  // ERR_IO_PENDING is returned if the operation could not be completed
+  // synchronously, in which case the result will be passed to the callback when
+  // available. Returns OK on success. The response headers are available in
+  // the HttpResponseInfo passed in to original call to SendRequest.
+  virtual int ReadResponseHeaders(const CompletionCallback& callback) = 0;
+
+  // Reads response body data, up to |buf_len| bytes. |buf_len| should be a
+  // reasonable size (<2MB). The number of bytes read is returned, or an
+  // error is returned upon failure.  0 indicates that the request has been
+  // fully satisfied and there is no more data to read.
+  // ERR_CONNECTION_CLOSED is returned when the connection has been closed
+  // prematurely.  ERR_IO_PENDING is returned if the operation could not be
+  // completed synchronously, in which case the result will be passed to the
+  // callback when available. If the operation is not completed immediately,
+  // the socket acquires a reference to the provided buffer until the callback
+  // is invoked or the socket is destroyed.
+  virtual int ReadResponseBody(IOBuffer* buf, int buf_len,
+                               const CompletionCallback& callback) = 0;
+
+  // Closes the stream.
+  // |not_reusable| indicates if the stream can be used for further requests.
+  // In the case of HTTP, where we re-use the byte-stream (e.g. the connection)
+  // this means we need to close the connection; in the case of SPDY, where the
+  // underlying stream is never reused, it has no effect.
+  // TODO(mbelshe): We should figure out how to fold the not_reusable flag
+  //                into the stream implementation itself so that the caller
+  //                does not need to pass it at all.  We might also be able to
+  //                eliminate the SetConnectionReused() below.
+  virtual void Close(bool not_reusable) = 0;
+
+  // Indicates if the response body has been completely read.
+  virtual bool IsResponseBodyComplete() const = 0;
+
+  // Indicates that the end of the response is detectable. This means that
+  // the response headers indicate either chunked encoding or content length.
+  // If neither is sent, the server must close the connection for us to detect
+  // the end of the response.
+  // TODO(rch): Rename this method, so that it is clear why it exists
+  // particularly as it applies to QUIC and SPDY for which the end of the
+  // response is always findable.
+  virtual bool CanFindEndOfResponse() const = 0;
+
+  // A stream exists on top of a connection.  If the connection has been used
+  // to successfully exchange data in the past, error handling for the
+  // stream is done differently.  This method returns true if the underlying
+  // connection is reused or has been connected and idle for some time.
+  virtual bool IsConnectionReused() const = 0;
+  virtual void SetConnectionReused() = 0;
+
+  // Checks whether the current state of the underlying connection
+  // allows it to be reused.
+  virtual bool IsConnectionReusable() const = 0;
+
+  // Get the total number of bytes received from network for this stream.
+  virtual int64 GetTotalReceivedBytes() const = 0;
+
+  // Populates the connection establishment part of |load_timing_info|, and
+  // socket ID.  |load_timing_info| must have all null times when called.
+  // Returns false and does nothing if there is no underlying connection, either
+  // because one has yet to be assigned to the stream, or because the underlying
+  // socket has been closed.
+  //
+  // In practice, this means that this function will always succeed any time
+  // between when the full headers have been received and the stream has been
+  // closed.
+  virtual bool GetLoadTimingInfo(LoadTimingInfo* load_timing_info) const = 0;
+
+  // Get the SSLInfo associated with this stream's connection.  This should
+  // only be called for streams over SSL sockets, otherwise the behavior is
+  // undefined.
+  virtual void GetSSLInfo(SSLInfo* ssl_info) = 0;
+
+  // Get the SSLCertRequestInfo associated with this stream's connection.
+  // This should only be called for streams over SSL sockets, otherwise the
+  // behavior is undefined.
+  virtual void GetSSLCertRequestInfo(SSLCertRequestInfo* cert_request_info) = 0;
+
+  // HACK(willchan): Really, we should move the HttpResponseDrainer logic into
+  // the HttpStream implementation. This is just a quick hack.
+  virtual bool IsSpdyHttpStream() const = 0;
+
+  // In the case of an HTTP error or redirect, flush the response body (usually
+  // a simple error or "this page has moved") so that we can re-use the
+  // underlying connection. This stream is responsible for deleting itself when
+  // draining is complete.
+  virtual void Drain(HttpNetworkSession* session) = 0;
+
+  // Called when the priority of the parent transaction changes.
+  virtual void SetPriority(RequestPriority priority) = 0;
 
   // Queries the UploadDataStream for its progress (bytes sent).
   virtual UploadProgress GetUploadProgress() const = 0;
diff --git a/net/http/http_stream_base.h b/net/http/http_stream_base.h
deleted file mode 100644
index 76e57ef..0000000
--- a/net/http/http_stream_base.h
+++ /dev/null
@@ -1,165 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// HttpStreamBase is an interface for reading and writing data to an
-// HTTP-like stream that keeps the client agnostic of the actual underlying
-// transport layer.  This provides an abstraction for HttpStream and
-// WebSocketHandshakeStreamBase.
-
-#ifndef NET_HTTP_HTTP_STREAM_BASE_H_
-#define NET_HTTP_HTTP_STREAM_BASE_H_
-
-#include <string>
-
-#include "base/basictypes.h"
-#include "base/memory/scoped_ptr.h"
-#include "net/base/completion_callback.h"
-#include "net/base/net_export.h"
-#include "net/base/request_priority.h"
-#include "net/base/upload_progress.h"
-
-namespace net {
-
-class BoundNetLog;
-class HttpNetworkSession;
-class HttpRequestHeaders;
-struct HttpRequestInfo;
-class HttpResponseInfo;
-class IOBuffer;
-struct LoadTimingInfo;
-class SSLCertRequestInfo;
-class SSLInfo;
-
-class NET_EXPORT_PRIVATE HttpStreamBase {
- public:
-  HttpStreamBase() {}
-  virtual ~HttpStreamBase() {}
-
-  // Initialize stream.  Must be called before calling SendRequest().
-  // |request_info| must outlive the HttpStreamBase.
-  // Returns a net error code, possibly ERR_IO_PENDING.
-  virtual int InitializeStream(const HttpRequestInfo* request_info,
-                               RequestPriority priority,
-                               const BoundNetLog& net_log,
-                               const CompletionCallback& callback) = 0;
-
-  // Writes the headers and uploads body data to the underlying socket.
-  // ERR_IO_PENDING is returned if the operation could not be completed
-  // synchronously, in which case the result will be passed to the callback
-  // when available. Returns OK on success.
-  //
-  // The callback will only be invoked once the first full set of headers have
-  // been received, at which point |response| will have been populated with that
-  // set of headers, and is safe to read, until/unless ReadResponseHeaders is
-  // called.
-  //
-  // |response| must remain valid until all sets of headers has been read, or
-  // the HttpStreamBase is destroyed. There's typically only one set of
-  // headers, except in the case of 1xx responses (See ReadResponseHeaders).
-  virtual int SendRequest(const HttpRequestHeaders& request_headers,
-                          HttpResponseInfo* response,
-                          const CompletionCallback& callback) = 0;
-
-  // Reads from the underlying socket until the next set of response headers
-  // have been completely received.  This may only be called on 1xx responses
-  // after SendRequest has completed successfully, to read the next set of
-  // headers.
-  //
-  // ERR_IO_PENDING is returned if the operation could not be completed
-  // synchronously, in which case the result will be passed to the callback when
-  // available. Returns OK on success. The response headers are available in
-  // the HttpResponseInfo passed in to original call to SendRequest.
-  virtual int ReadResponseHeaders(const CompletionCallback& callback) = 0;
-
-  // Reads response body data, up to |buf_len| bytes. |buf_len| should be a
-  // reasonable size (<2MB). The number of bytes read is returned, or an
-  // error is returned upon failure.  0 indicates that the request has been
-  // fully satisfied and there is no more data to read.
-  // ERR_CONNECTION_CLOSED is returned when the connection has been closed
-  // prematurely.  ERR_IO_PENDING is returned if the operation could not be
-  // completed synchronously, in which case the result will be passed to the
-  // callback when available. If the operation is not completed immediately,
-  // the socket acquires a reference to the provided buffer until the callback
-  // is invoked or the socket is destroyed.
-  virtual int ReadResponseBody(IOBuffer* buf, int buf_len,
-                               const CompletionCallback& callback) = 0;
-
-  // Closes the stream.
-  // |not_reusable| indicates if the stream can be used for further requests.
-  // In the case of HTTP, where we re-use the byte-stream (e.g. the connection)
-  // this means we need to close the connection; in the case of SPDY, where the
-  // underlying stream is never reused, it has no effect.
-  // TODO(mbelshe): We should figure out how to fold the not_reusable flag
-  //                into the stream implementation itself so that the caller
-  //                does not need to pass it at all.  We might also be able to
-  //                eliminate the SetConnectionReused() below.
-  virtual void Close(bool not_reusable) = 0;
-
-  // Indicates if the response body has been completely read.
-  virtual bool IsResponseBodyComplete() const = 0;
-
-  // Indicates that the end of the response is detectable. This means that
-  // the response headers indicate either chunked encoding or content length.
-  // If neither is sent, the server must close the connection for us to detect
-  // the end of the response.
-  // TODO(rch): Rename this method, so that it is clear why it exists
-  // particularly as it applies to QUIC and SPDY for which the end of the
-  // response is always findable.
-  virtual bool CanFindEndOfResponse() const = 0;
-
-  // A stream exists on top of a connection.  If the connection has been used
-  // to successfully exchange data in the past, error handling for the
-  // stream is done differently.  This method returns true if the underlying
-  // connection is reused or has been connected and idle for some time.
-  virtual bool IsConnectionReused() const = 0;
-  virtual void SetConnectionReused() = 0;
-
-  // Checks whether the current state of the underlying connection
-  // allows it to be reused.
-  virtual bool IsConnectionReusable() const = 0;
-
-  // Get the total number of bytes received from network for this stream.
-  virtual int64 GetTotalReceivedBytes() const = 0;
-
-  // Populates the connection establishment part of |load_timing_info|, and
-  // socket ID.  |load_timing_info| must have all null times when called.
-  // Returns false and does nothing if there is no underlying connection, either
-  // because one has yet to be assigned to the stream, or because the underlying
-  // socket has been closed.
-  //
-  // In practice, this means that this function will always succeed any time
-  // between when the full headers have been received and the stream has been
-  // closed.
-  virtual bool GetLoadTimingInfo(LoadTimingInfo* load_timing_info) const = 0;
-
-  // Get the SSLInfo associated with this stream's connection.  This should
-  // only be called for streams over SSL sockets, otherwise the behavior is
-  // undefined.
-  virtual void GetSSLInfo(SSLInfo* ssl_info) = 0;
-
-  // Get the SSLCertRequestInfo associated with this stream's connection.
-  // This should only be called for streams over SSL sockets, otherwise the
-  // behavior is undefined.
-  virtual void GetSSLCertRequestInfo(SSLCertRequestInfo* cert_request_info) = 0;
-
-  // HACK(willchan): Really, we should move the HttpResponseDrainer logic into
-  // the HttpStream implementation. This is just a quick hack.
-  virtual bool IsSpdyHttpStream() const = 0;
-
-  // In the case of an HTTP error or redirect, flush the response body (usually
-  // a simple error or "this page has moved") so that we can re-use the
-  // underlying connection. This stream is responsible for deleting itself when
-  // draining is complete.
-  virtual void Drain(HttpNetworkSession* session) = 0;
-
-  // Called when the priority of the parent transaction changes.
-  virtual void SetPriority(RequestPriority priority) = 0;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(HttpStreamBase);
-};
-
-}  // namespace net
-
-#endif  // NET_HTTP_HTTP_STREAM_BASE_H_
diff --git a/net/http/http_stream_factory.cc b/net/http/http_stream_factory.cc
index e86d8f8..29d9b26 100644
--- a/net/http/http_stream_factory.cc
+++ b/net/http/http_stream_factory.cc
@@ -67,14 +67,10 @@
       return;
     }
 
-    protocol =
-        AlternateProtocolFromString(port_protocol_vector[1]);
+    protocol = AlternateProtocolFromString(port_protocol_vector[1]);
+
     if (IsAlternateProtocolValid(protocol) &&
         !session.IsProtocolEnabled(protocol)) {
-      protocol = ALTERNATE_PROTOCOL_BROKEN;
-    }
-
-    if (protocol == ALTERNATE_PROTOCOL_BROKEN) {
       DVLOG(1) << kAlternateProtocolHeader
                << " header has unrecognized protocol: "
                << port_protocol_vector[1];
@@ -94,7 +90,7 @@
     const AlternateProtocolInfo existing_alternate =
         http_server_properties->GetAlternateProtocol(host_port);
     // If we think the alternate protocol is broken, don't change it.
-    if (existing_alternate.protocol == ALTERNATE_PROTOCOL_BROKEN)
+    if (existing_alternate.is_broken)
       return;
   }
 
diff --git a/net/http/http_stream_factory.h b/net/http/http_stream_factory.h
index 8f6d892..e671262 100644
--- a/net/http/http_stream_factory.h
+++ b/net/http/http_stream_factory.h
@@ -37,7 +37,7 @@
 class HttpNetworkSession;
 class HttpResponseInfo;
 class HttpServerProperties;
-class HttpStreamBase;
+class HttpStream;
 class ProxyInfo;
 class SSLCertRequestInfo;
 class SSLInfo;
@@ -68,7 +68,7 @@
     virtual void OnStreamReady(
         const SSLConfig& used_ssl_config,
         const ProxyInfo& used_proxy_info,
-        HttpStreamBase* stream) = 0;
+        HttpStream* stream) = 0;
 
     // This is the success case for RequestWebSocketHandshakeStream.
     // |stream| is now owned by the delegate.
@@ -143,7 +143,7 @@
         const HttpResponseInfo& response_info,
         const SSLConfig& used_ssl_config,
         const ProxyInfo& used_proxy_info,
-        HttpStreamBase* stream) = 0;
+        HttpStream* stream) = 0;
   };
 
   virtual ~HttpStreamRequest() {}
diff --git a/net/http/http_stream_factory_impl.cc b/net/http/http_stream_factory_impl.cc
index 689bcf9..8304694 100644
--- a/net/http/http_stream_factory_impl.cc
+++ b/net/http/http_stream_factory_impl.cc
@@ -194,7 +194,7 @@
 
   AlternateProtocolInfo alternate =
       http_server_properties.GetAlternateProtocol(origin);
-  if (alternate.protocol == ALTERNATE_PROTOCOL_BROKEN) {
+  if (alternate.is_broken) {
     HistogramAlternateProtocolUsage(ALTERNATE_PROTOCOL_USAGE_BROKEN);
     return kNoAlternateProtocol;
   }
diff --git a/net/http/http_stream_factory_impl_request.cc b/net/http/http_stream_factory_impl_request.cc
index 2cc497f..c4d1d07 100644
--- a/net/http/http_stream_factory_impl_request.cc
+++ b/net/http/http_stream_factory_impl_request.cc
@@ -90,7 +90,7 @@
     Job* job,
     const SSLConfig& used_ssl_config,
     const ProxyInfo& used_proxy_info,
-    HttpStreamBase* stream) {
+    HttpStream* stream) {
   DCHECK(!factory_->for_websockets_);
   DCHECK(stream);
   DCHECK(completed_);
@@ -185,7 +185,7 @@
     const HttpResponseInfo& response_info,
     const SSLConfig& used_ssl_config,
     const ProxyInfo& used_proxy_info,
-    HttpStreamBase* stream) {
+    HttpStream* stream) {
   if (!bound_job_.get())
     OrphanJobsExcept(job);
   else
diff --git a/net/http/http_stream_factory_impl_request.h b/net/http/http_stream_factory_impl_request.h
index 70def25..fd786f2 100644
--- a/net/http/http_stream_factory_impl_request.h
+++ b/net/http/http_stream_factory_impl_request.h
@@ -71,7 +71,7 @@
   void OnStreamReady(Job* job,
                      const SSLConfig& used_ssl_config,
                      const ProxyInfo& used_proxy_info,
-                     HttpStreamBase* stream);
+                     HttpStream* stream);
   void OnWebSocketHandshakeStreamReady(Job* job,
                                        const SSLConfig& used_ssl_config,
                                        const ProxyInfo& used_proxy_info,
@@ -94,7 +94,7 @@
       const HttpResponseInfo& response_info,
       const SSLConfig& used_ssl_config,
       const ProxyInfo& used_proxy_info,
-      HttpStreamBase* stream);
+      HttpStream* stream);
 
   // HttpStreamRequest methods.
 
diff --git a/net/http/http_stream_factory_impl_request_unittest.cc b/net/http/http_stream_factory_impl_request_unittest.cc
index e204c61..4695067 100644
--- a/net/http/http_stream_factory_impl_request_unittest.cc
+++ b/net/http/http_stream_factory_impl_request_unittest.cc
@@ -33,7 +33,7 @@
   // HttpStreamRequest::Delegate
   void OnStreamReady(const SSLConfig& used_ssl_config,
                      const ProxyInfo& used_proxy_info,
-                     HttpStreamBase* stream) override {}
+                     HttpStream* stream) override {}
   void OnWebSocketHandshakeStreamReady(
       const SSLConfig& used_ssl_config,
       const ProxyInfo& used_proxy_info,
@@ -51,7 +51,7 @@
   void OnHttpsProxyTunnelResponse(const HttpResponseInfo& response_info,
                                   const SSLConfig& used_ssl_config,
                                   const ProxyInfo& used_proxy_info,
-                                  HttpStreamBase* stream) override {}
+                                  HttpStream* stream) override {}
 };
 
 }  // namespace
diff --git a/net/http/http_stream_factory_impl_unittest.cc b/net/http/http_stream_factory_impl_unittest.cc
index 1efbd46..4bf1659 100644
--- a/net/http/http_stream_factory_impl_unittest.cc
+++ b/net/http/http_stream_factory_impl_unittest.cc
@@ -58,7 +58,7 @@
     return type_;
   }
 
-  // HttpStreamBase methods
+  // HttpStream methods
   int InitializeStream(const HttpRequestInfo* request_info,
                        RequestPriority priority,
                        const BoundNetLog& net_log,
@@ -93,6 +93,8 @@
   bool IsSpdyHttpStream() const override { return false; }
   void Drain(HttpNetworkSession* session) override {}
   void SetPriority(RequestPriority priority) override {}
+  UploadProgress GetUploadProgress() const override { return UploadProgress(); }
+  HttpStream* RenewStreamForAuth() override { return nullptr; }
 
   scoped_ptr<WebSocketStream> Upgrade() override {
     return scoped_ptr<WebSocketStream>();
@@ -142,7 +144,7 @@
 
   void OnStreamReady(const SSLConfig& used_ssl_config,
                      const ProxyInfo& used_proxy_info,
-                     HttpStreamBase* stream) override {
+                     HttpStream* stream) override {
     stream_done_ = true;
     if (waiting_for_stream_)
       base::MessageLoop::current()->Quit();
@@ -180,7 +182,7 @@
   void OnHttpsProxyTunnelResponse(const HttpResponseInfo& response_info,
                                   const SSLConfig& used_ssl_config,
                                   const ProxyInfo& used_proxy_info,
-                                  HttpStreamBase* stream) override {}
+                                  HttpStream* stream) override {}
 
   void WaitForStream() {
     while (!stream_done_) {
@@ -198,7 +200,7 @@
     return used_proxy_info_;
   }
 
-  HttpStreamBase* stream() {
+  HttpStream* stream() {
     return stream_.get();
   }
 
@@ -211,7 +213,7 @@
  private:
   bool waiting_for_stream_;
   bool stream_done_;
-  scoped_ptr<HttpStreamBase> stream_;
+  scoped_ptr<HttpStream> stream_;
   scoped_ptr<WebSocketHandshakeStreamBase> websocket_stream_;
   SSLConfig used_ssl_config_;
   ProxyInfo used_proxy_info_;
@@ -382,14 +384,14 @@
 template<typename ParentPool>
 CapturePreconnectsSocketPool<ParentPool>::CapturePreconnectsSocketPool(
     HostResolver* host_resolver, CertVerifier* /* cert_verifier */)
-    : ParentPool(0, 0, NULL, host_resolver, NULL, NULL),
+    : ParentPool(0, 0, nullptr, host_resolver, nullptr, nullptr),
       last_num_streams_(-1) {}
 
 template<>
 CapturePreconnectsHttpProxySocketPool::CapturePreconnectsSocketPool(
     HostResolver* host_resolver, CertVerifier* /* cert_verifier */)
     : HttpProxyClientSocketPool(
-          0, 0, NULL, host_resolver, NULL, NULL, NULL, NULL),
+          0, 0, nullptr, host_resolver, nullptr, nullptr, nullptr, nullptr),
       last_num_streams_(-1) {}
 
 template <>
@@ -398,20 +400,20 @@
     CertVerifier* cert_verifier)
     : SSLClientSocketPool(0,
                           0,
-                          NULL,  // ssl_histograms
+                          nullptr,  // ssl_histograms
                           host_resolver,
                           cert_verifier,
-                          NULL,           // channel_id_store
-                          NULL,           // transport_security_state
-                          NULL,           // cert_transparency_verifier
+                          nullptr,           // channel_id_store
+                          nullptr,           // transport_security_state
+                          nullptr,           // cert_transparency_verifier
                           std::string(),  // ssl_session_cache_shard
-                          NULL,           // deterministic_socket_factory
-                          NULL,           // transport_socket_pool
-                          NULL,
-                          NULL,
-                          NULL,   // ssl_config_service
+                          nullptr,           // deterministic_socket_factory
+                          nullptr,           // transport_socket_pool
+                          nullptr,
+                          nullptr,
+                          nullptr,   // ssl_config_service
                           false,  // enable_ssl_connect_job_waiting
-                          NULL),  // net_log
+                          nullptr),  // net_log
       last_num_streams_(-1) {
 }
 
@@ -659,9 +661,9 @@
 int GetSocketPoolGroupCount(ClientSocketPool* pool) {
   int count = 0;
   scoped_ptr<base::DictionaryValue> dict(pool->GetInfoAsValue("", "", false));
-  EXPECT_TRUE(dict != NULL);
-  base::DictionaryValue* groups = NULL;
-  if (dict->GetDictionary("groups", &groups) && (groups != NULL)) {
+  EXPECT_TRUE(dict != nullptr);
+  base::DictionaryValue* groups = nullptr;
+  if (dict->GetDictionary("groups", &groups) && (groups != nullptr)) {
     count = static_cast<int>(groups->size());
   }
   return count;
@@ -778,8 +780,8 @@
           BoundNetLog()));
   waiter.WaitForStream();
   EXPECT_TRUE(waiter.stream_done());
-  ASSERT_TRUE(NULL != waiter.stream());
-  EXPECT_TRUE(NULL == waiter.websocket_stream());
+  ASSERT_TRUE(nullptr != waiter.stream());
+  EXPECT_TRUE(nullptr == waiter.websocket_stream());
   EXPECT_FALSE(waiter.stream()->IsSpdyHttpStream());
 
   EXPECT_EQ(1, GetSocketPoolGroupCount(
@@ -799,7 +801,7 @@
       GetParam(), ProxyService::CreateDirect());
 
   MockRead mock_read(ASYNC, OK);
-  StaticSocketDataProvider socket_data(&mock_read, 1, NULL, 0);
+  StaticSocketDataProvider socket_data(&mock_read, 1, nullptr, 0);
   socket_data.set_connect_data(MockConnect(ASYNC, OK));
   session_deps.socket_factory->AddSocketDataProvider(&socket_data);
 
@@ -827,8 +829,8 @@
           BoundNetLog()));
   waiter.WaitForStream();
   EXPECT_TRUE(waiter.stream_done());
-  ASSERT_TRUE(NULL != waiter.stream());
-  EXPECT_TRUE(NULL == waiter.websocket_stream());
+  ASSERT_TRUE(nullptr != waiter.stream());
+  EXPECT_TRUE(nullptr == waiter.websocket_stream());
   EXPECT_FALSE(waiter.stream()->IsSpdyHttpStream());
   EXPECT_EQ(1, GetSocketPoolGroupCount(
       session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL)));
@@ -872,8 +874,8 @@
           BoundNetLog()));
   waiter.WaitForStream();
   EXPECT_TRUE(waiter.stream_done());
-  ASSERT_TRUE(NULL != waiter.stream());
-  EXPECT_TRUE(NULL == waiter.websocket_stream());
+  ASSERT_TRUE(nullptr != waiter.stream());
+  EXPECT_TRUE(nullptr == waiter.websocket_stream());
   EXPECT_FALSE(waiter.stream()->IsSpdyHttpStream());
   EXPECT_EQ(0, GetSocketPoolGroupCount(
       session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL)));
@@ -925,8 +927,8 @@
                                             BoundNetLog()));
   waiter.WaitForStream();
   EXPECT_TRUE(waiter.stream_done());
-  EXPECT_TRUE(NULL == waiter.stream());
-  ASSERT_TRUE(NULL != waiter.websocket_stream());
+  EXPECT_TRUE(nullptr == waiter.stream());
+  ASSERT_TRUE(nullptr != waiter.websocket_stream());
   EXPECT_EQ(MockWebSocketHandshakeStream::kStreamTypeBasic,
             waiter.websocket_stream()->type());
   EXPECT_EQ(0, GetSocketPoolGroupCount(
@@ -943,7 +945,7 @@
       GetParam(), ProxyService::CreateDirect());
 
   MockRead mock_read(ASYNC, OK);
-  StaticSocketDataProvider socket_data(&mock_read, 1, NULL, 0);
+  StaticSocketDataProvider socket_data(&mock_read, 1, nullptr, 0);
   socket_data.set_connect_data(MockConnect(ASYNC, OK));
   session_deps.socket_factory->AddSocketDataProvider(&socket_data);
 
@@ -973,8 +975,8 @@
                                             BoundNetLog()));
   waiter.WaitForStream();
   EXPECT_TRUE(waiter.stream_done());
-  EXPECT_TRUE(NULL == waiter.stream());
-  ASSERT_TRUE(NULL != waiter.websocket_stream());
+  EXPECT_TRUE(nullptr == waiter.stream());
+  ASSERT_TRUE(nullptr != waiter.websocket_stream());
   EXPECT_EQ(MockWebSocketHandshakeStream::kStreamTypeBasic,
             waiter.websocket_stream()->type());
   EXPECT_EQ(0, GetSocketPoolGroupCount(
@@ -1018,8 +1020,8 @@
                                             BoundNetLog()));
   waiter.WaitForStream();
   EXPECT_TRUE(waiter.stream_done());
-  EXPECT_TRUE(NULL == waiter.stream());
-  ASSERT_TRUE(NULL != waiter.websocket_stream());
+  EXPECT_TRUE(nullptr == waiter.stream());
+  ASSERT_TRUE(nullptr != waiter.websocket_stream());
   EXPECT_EQ(MockWebSocketHandshakeStream::kStreamTypeBasic,
             waiter.websocket_stream()->type());
   EXPECT_EQ(0, GetSocketPoolGroupCount(
@@ -1047,7 +1049,7 @@
                                        ProxyService::CreateDirect());
 
   MockRead mock_read(ASYNC, OK);
-  DeterministicSocketData socket_data(&mock_read, 1, NULL, 0);
+  DeterministicSocketData socket_data(&mock_read, 1, nullptr, 0);
   socket_data.set_connect_data(MockConnect(ASYNC, OK));
   session_deps.deterministic_socket_factory->AddSocketDataProvider(
       &socket_data);
@@ -1080,8 +1082,8 @@
           BoundNetLog()));
   waiter.WaitForStream();
   EXPECT_TRUE(waiter.stream_done());
-  EXPECT_TRUE(NULL == waiter.websocket_stream());
-  ASSERT_TRUE(NULL != waiter.stream());
+  EXPECT_TRUE(nullptr == waiter.websocket_stream());
+  ASSERT_TRUE(nullptr != waiter.stream());
   EXPECT_TRUE(waiter.stream()->IsSpdyHttpStream());
   EXPECT_EQ(1, GetSocketPoolGroupCount(
       session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL)));
@@ -1103,7 +1105,7 @@
                                        ProxyService::CreateDirect());
 
   MockRead mock_read(SYNCHRONOUS, ERR_IO_PENDING);
-  StaticSocketDataProvider socket_data(&mock_read, 1, NULL, 0);
+  StaticSocketDataProvider socket_data(&mock_read, 1, nullptr, 0);
   socket_data.set_connect_data(MockConnect(ASYNC, OK));
   session_deps.socket_factory->AddSocketDataProvider(&socket_data);
 
@@ -1134,10 +1136,10 @@
                                             BoundNetLog()));
   waiter1.WaitForStream();
   EXPECT_TRUE(waiter1.stream_done());
-  ASSERT_TRUE(NULL != waiter1.websocket_stream());
+  ASSERT_TRUE(nullptr != waiter1.websocket_stream());
   EXPECT_EQ(MockWebSocketHandshakeStream::kStreamTypeBasic,
             waiter1.websocket_stream()->type());
-  EXPECT_TRUE(NULL == waiter1.stream());
+  EXPECT_TRUE(nullptr == waiter1.stream());
 
   EXPECT_EQ(0, GetSocketPoolGroupCount(
       session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL)));
@@ -1154,7 +1156,7 @@
                                        ProxyService::CreateDirect());
 
   MockRead mock_read(SYNCHRONOUS, ERR_IO_PENDING);
-  StaticSocketDataProvider socket_data(&mock_read, 1, NULL, 0);
+  StaticSocketDataProvider socket_data(&mock_read, 1, nullptr, 0);
   socket_data.set_connect_data(MockConnect(ASYNC, OK));
   session_deps.socket_factory->AddSocketDataProvider(&socket_data);
 
@@ -1186,10 +1188,10 @@
                                             BoundNetLog()));
   waiter1.WaitForStream();
   EXPECT_TRUE(waiter1.stream_done());
-  ASSERT_TRUE(NULL != waiter1.websocket_stream());
+  ASSERT_TRUE(nullptr != waiter1.websocket_stream());
   EXPECT_EQ(MockWebSocketHandshakeStream::kStreamTypeSpdy,
             waiter1.websocket_stream()->type());
-  EXPECT_TRUE(NULL == waiter1.stream());
+  EXPECT_TRUE(nullptr == waiter1.stream());
 
   StreamRequestWaiter waiter2;
   scoped_ptr<HttpStreamRequest> request2(
@@ -1203,10 +1205,10 @@
                                             BoundNetLog()));
   waiter2.WaitForStream();
   EXPECT_TRUE(waiter2.stream_done());
-  ASSERT_TRUE(NULL != waiter2.websocket_stream());
+  ASSERT_TRUE(nullptr != waiter2.websocket_stream());
   EXPECT_EQ(MockWebSocketHandshakeStream::kStreamTypeSpdy,
             waiter2.websocket_stream()->type());
-  EXPECT_TRUE(NULL == waiter2.stream());
+  EXPECT_TRUE(nullptr == waiter2.stream());
   EXPECT_NE(waiter2.websocket_stream(), waiter1.websocket_stream());
   EXPECT_EQ(static_cast<WebSocketSpdyHandshakeStream*>(
                 waiter2.websocket_stream())->spdy_session(),
@@ -1232,13 +1234,13 @@
   session_deps.use_alternate_protocols = true;
 
   MockRead mock_read(ASYNC, OK);
-  DeterministicSocketData socket_data(&mock_read, 1, NULL, 0);
+  DeterministicSocketData socket_data(&mock_read, 1, nullptr, 0);
   socket_data.set_connect_data(MockConnect(ASYNC, OK));
   session_deps.deterministic_socket_factory->AddSocketDataProvider(
       &socket_data);
 
   MockRead mock_read2(ASYNC, OK);
-  DeterministicSocketData socket_data2(&mock_read2, 1, NULL, 0);
+  DeterministicSocketData socket_data2(&mock_read2, 1, nullptr, 0);
   socket_data2.set_connect_data(MockConnect(ASYNC, ERR_IO_PENDING));
   session_deps.deterministic_socket_factory->AddSocketDataProvider(
       &socket_data2);
@@ -1278,8 +1280,8 @@
                                             BoundNetLog()));
   waiter.WaitForStream();
   EXPECT_TRUE(waiter.stream_done());
-  EXPECT_TRUE(NULL == waiter.stream());
-  ASSERT_TRUE(NULL != waiter.websocket_stream());
+  EXPECT_TRUE(nullptr == waiter.stream());
+  ASSERT_TRUE(nullptr != waiter.websocket_stream());
   EXPECT_EQ(MockWebSocketHandshakeStream::kStreamTypeSpdy,
             waiter.websocket_stream()->type());
 
diff --git a/net/http/http_util.cc b/net/http/http_util.cc
index 4574c7f..9bdc045 100644
--- a/net/http/http_util.cc
+++ b/net/http/http_util.cc
@@ -275,6 +275,29 @@
 }
 
 // static
+bool HttpUtil::ParseRetryAfterHeader(const std::string& retry_after_string,
+                                     base::Time now,
+                                     base::TimeDelta* retry_after) {
+  int seconds;
+  base::Time time;
+  base::TimeDelta interval;
+
+  if (base::StringToInt(retry_after_string, &seconds)) {
+    interval = base::TimeDelta::FromSeconds(seconds);
+  } else if (base::Time::FromUTCString(retry_after_string.c_str(), &time)) {
+    interval = time - now;
+  } else {
+    return false;
+  }
+
+  if (interval < base::TimeDelta::FromSeconds(0))
+    return false;
+
+  *retry_after = interval;
+  return true;
+}
+
+// static
 bool HttpUtil::HasHeader(const std::string& headers, const char* name) {
   size_t name_len = strlen(name);
   std::string::const_iterator it =
diff --git a/net/http/http_util.h b/net/http/http_util.h
index bde65dc..211e634 100644
--- a/net/http/http_util.h
+++ b/net/http/http_util.h
@@ -10,6 +10,7 @@
 
 #include "base/memory/ref_counted.h"
 #include "base/strings/string_tokenizer.h"
+#include "base/time/time.h"
 #include "net/base/net_export.h"
 #include "net/http/http_byte_range.h"
 #include "net/http/http_version.h"
@@ -66,6 +67,15 @@
   static bool ParseRangeHeader(const std::string& range_specifier,
                                std::vector<HttpByteRange>* ranges);
 
+  // Parses a Retry-After header that is either an absolute date/time or a
+  // number of seconds in the future. Interprets absolute times as relative to
+  // |now|. If |retry_after_string| is successfully parsed and indicates a time
+  // that is not in the past, fills in |*retry_after| and returns true;
+  // otherwise, returns false.
+  static bool ParseRetryAfterHeader(const std::string& retry_after_string,
+                                    base::Time now,
+                                    base::TimeDelta* retry_after);
+
   // Scans the '\r\n'-delimited headers for the given header name.  Returns
   // true if a match is found.  Input is assumed to be well-formed.
   // TODO(darin): kill this
diff --git a/net/http/http_util_unittest.cc b/net/http/http_util_unittest.cc
index acb2693..e20bbdc 100644
--- a/net/http/http_util_unittest.cc
+++ b/net/http/http_util_unittest.cc
@@ -872,6 +872,49 @@
   }
 }
 
+TEST(HttpUtilTest, ParseRetryAfterHeader) {
+  base::Time::Exploded now_exploded = { 2014, 11, -1, 5, 22, 39, 30, 0 };
+  base::Time now = base::Time::FromUTCExploded(now_exploded);
+
+  base::Time::Exploded later_exploded = { 2015, 1, -1, 1, 12, 34, 56, 0 };
+  base::Time later = base::Time::FromUTCExploded(later_exploded);
+
+  const struct {
+    const char* retry_after_string;
+    bool expected_return_value;
+    base::TimeDelta expected_retry_after;
+  } tests[] = {
+    { "", false, base::TimeDelta() },
+    { "-3", false, base::TimeDelta() },
+    { "-2", false, base::TimeDelta() },
+    { "-1", false, base::TimeDelta() },
+    { "0", true, base::TimeDelta::FromSeconds(0) },
+    { "1", true, base::TimeDelta::FromSeconds(1) },
+    { "2", true, base::TimeDelta::FromSeconds(2) },
+    { "3", true, base::TimeDelta::FromSeconds(3) },
+    { "60", true, base::TimeDelta::FromSeconds(60) },
+    { "3600", true, base::TimeDelta::FromSeconds(3600) },
+    { "86400", true, base::TimeDelta::FromSeconds(86400) },
+    { "Thu, 1 Jan 2015 12:34:56 GMT", true, later - now },
+    { "Mon, 1 Jan 1900 12:34:56 GMT", false, base::TimeDelta() }
+  };
+
+  for (size_t i = 0; i < arraysize(tests); ++i) {
+    base::TimeDelta retry_after;
+    bool return_value = HttpUtil::ParseRetryAfterHeader(
+        tests[i].retry_after_string, now, &retry_after);
+    EXPECT_EQ(tests[i].expected_return_value, return_value)
+        << "Test case " << i << ": expected " << tests[i].expected_return_value
+        << " but got " << return_value << ".";
+    if (tests[i].expected_return_value && return_value) {
+      EXPECT_EQ(tests[i].expected_retry_after, retry_after)
+          << "Test case " << i << ": expected "
+          << tests[i].expected_retry_after.InSeconds() << "s but got "
+          << retry_after.InSeconds() << "s.";
+    }
+  }
+}
+
 namespace {
 void CheckCurrentNameValuePair(HttpUtil::NameValuePairsIterator* parser,
                                bool expect_valid,
diff --git a/net/http/transport_security_state_static.h b/net/http/transport_security_state_static.h
index 27a21df..e757950 100644
--- a/net/http/transport_security_state_static.h
+++ b/net/http/transport_security_state_static.h
@@ -960,1235 +960,1234 @@
   0xe0, 0x2e, 0x5f, 0xdf, 0x09, 0x51, 0x89, 0xfe,
   0xeb, 0x30, 0xa6, 0x10, 0xde, 0x29, 0x11, 0xfb,
   0x39, 0xf1, 0x08, 0x0e, 0x67, 0xfe, 0xb7, 0x96,
-  0xf6, 0xed, 0x79, 0xf0, 0x1d, 0x3f, 0xff, 0xaf,
-  0x7e, 0x7d, 0x73, 0xea, 0xce, 0xcb, 0xdd, 0x58,
-  0x74, 0xff, 0xf6, 0x52, 0xfb, 0xe9, 0x43, 0xad,
-  0xcc, 0xf5, 0x4e, 0x9a, 0xce, 0xc4, 0x7b, 0x79,
-  0x17, 0xeb, 0xd0, 0xe4, 0xea, 0x16, 0x36, 0xd9,
-  0xfc, 0xec, 0x14, 0xee, 0x43, 0x45, 0x9b, 0x3f,
-  0xf9, 0xcc, 0xe7, 0xbb, 0x05, 0x3b, 0x90, 0xd1,
-  0x40, 0x4f, 0xef, 0xe5, 0xc1, 0xbf, 0xed, 0x1d,
-  0x36, 0xea, 0x9d, 0x3c, 0x9d, 0xc8, 0x68, 0xb7,
-  0xe7, 0xed, 0xf7, 0xe4, 0xe1, 0x3a, 0x04, 0xf5,
-  0xc0, 0x57, 0x3e, 0xbb, 0xeb, 0xbe, 0xa7, 0x4f,
-  0xe5, 0x6d, 0xbe, 0xff, 0x50, 0x1d, 0x3d, 0xde,
-  0xfd, 0xce, 0x9f, 0xda, 0x53, 0x55, 0x4c, 0x61,
-  0xd3, 0xbf, 0x8f, 0x3a, 0x4e, 0x54, 0xe5, 0x5e,
-  0x6d, 0x8d, 0xe2, 0x43, 0x62, 0xa0, 0x1b, 0x7c,
-  0x86, 0xe6, 0x73, 0xfe, 0xe7, 0xbb, 0x05, 0x3b,
-  0x90, 0xd1, 0x4a, 0x4f, 0xf3, 0xdd, 0x82, 0x9d,
-  0xc8, 0x68, 0x93, 0xa4, 0xe6, 0x22, 0x1f, 0x91,
-  0xa1, 0x5d, 0xc9, 0x25, 0x11, 0x91, 0x6d, 0x6b,
-  0x54, 0x72, 0x3a, 0x74, 0x85, 0x8f, 0x89, 0xf5,
-  0x70, 0xac, 0x68, 0x99, 0x92, 0xfc, 0x6c, 0x52,
-  0x03, 0xba, 0xc7, 0xce, 0xda, 0x1f, 0x93, 0xe1,
-  0x4e, 0xe4, 0x34, 0x43, 0xf3, 0xfe, 0xe7, 0xbb,
-  0x05, 0x3b, 0x90, 0xd1, 0x29, 0xc9, 0xd8, 0x7e,
-  0xcc, 0x30, 0x9f, 0xce, 0xc1, 0x4e, 0xe4, 0x34,
-  0x44, 0xf3, 0xf9, 0xd8, 0x29, 0xdc, 0x86, 0x88,
-  0xc6, 0x7f, 0xf3, 0x99, 0xcf, 0x76, 0x0a, 0x77,
-  0x21, 0xa2, 0x79, 0x85, 0x47, 0x7d, 0x04, 0xef,
-  0x3b, 0xb1, 0xdc, 0xf8, 0x53, 0xb9, 0x0d, 0x11,
-  0x04, 0xff, 0xb9, 0xee, 0xc1, 0x4e, 0xe4, 0x34,
-  0x4a, 0x92, 0x76, 0x1f, 0xb3, 0x0c, 0x27, 0xf3,
-  0xb0, 0x53, 0xb9, 0x0d, 0x11, 0x44, 0xfe, 0x76,
-  0x0a, 0x77, 0x21, 0xa2, 0x32, 0x9f, 0xfc, 0xe6,
-  0x73, 0xdd, 0x82, 0x9d, 0xc8, 0x68, 0x99, 0x67,
-  0xf3, 0xb0, 0x53, 0xb9, 0x0d, 0x15, 0x24, 0xfe,
-  0x76, 0x0a, 0x77, 0x21, 0xa2, 0xba, 0x9f, 0xce,
-  0xc1, 0x4e, 0xe4, 0x34, 0x58, 0xb3, 0xff, 0x33,
-  0x9e, 0xec, 0x14, 0xee, 0x43, 0x44, 0xf5, 0x3f,
-  0xc1, 0x77, 0x2f, 0xb5, 0x3c, 0xde, 0x74, 0x39,
-  0x11, 0x4a, 0x99, 0x3f, 0x6a, 0xbb, 0x2f, 0xed,
-  0x2a, 0x74, 0xf0, 0xb2, 0xf4, 0x9d, 0x39, 0x32,
-  0xc5, 0x4f, 0xff, 0xd6, 0xff, 0x6b, 0xf0, 0xab,
-  0xdf, 0x95, 0x00, 0x14, 0xe9, 0xff, 0xf8, 0x7c,
-  0xdf, 0xcc, 0x72, 0x88, 0xf9, 0xbd, 0x34, 0xa0,
-  0xe9, 0xf2, 0x7a, 0xdb, 0xd8, 0x74, 0xff, 0xee,
-  0xaf, 0xf0, 0x0e, 0xb7, 0x93, 0x84, 0xe9, 0xf5,
-  0xec, 0xac, 0x43, 0xa7, 0xff, 0x7f, 0x72, 0xaf,
-  0xd5, 0x9b, 0xb7, 0x5b, 0x50, 0xe9, 0xba, 0x93,
-  0xa7, 0xf7, 0x57, 0xad, 0xa7, 0xe8, 0x3a, 0x3e,
-  0x79, 0x5a, 0x0b, 0x47, 0x95, 0x08, 0x0a, 0xdb,
-  0x18, 0x2c, 0x53, 0xf4, 0x7b, 0x93, 0x37, 0xc2,
-  0x72, 0x77, 0xfa, 0xe6, 0xa8, 0x5a, 0x77, 0xfd,
-  0x53, 0xa4, 0x1d, 0x50, 0xf1, 0x14, 0xa2, 0x78,
-  0x5b, 0x73, 0x0e, 0x8c, 0x3c, 0xef, 0x16, 0x4f,
-  0xfb, 0xd6, 0xeb, 0xab, 0x55, 0xf3, 0x0e, 0x9f,
-  0xbd, 0xfd, 0x7e, 0xca, 0x9d, 0x3d, 0xfd, 0xb7,
-  0x6b, 0x3a, 0x7e, 0xca, 0x87, 0xbf, 0x41, 0xd1,
-  0xc7, 0xa9, 0xf2, 0x79, 0xf6, 0x9a, 0xeb, 0xb2,
-  0x9d, 0x18, 0x8c, 0xff, 0x42, 0x0e, 0xc4, 0x33,
-  0xff, 0xff, 0xac, 0xbe, 0x11, 0x5d, 0xf7, 0xf7,
-  0xf4, 0x7e, 0x57, 0x6d, 0x38, 0x5e, 0x74, 0xfa,
-  0x8d, 0x87, 0xc1, 0x3a, 0x7e, 0xdb, 0x84, 0x1a,
-  0x98, 0x74, 0xff, 0xbf, 0xe7, 0xde, 0xd8, 0x3e,
-  0xa9, 0xd3, 0xfe, 0xec, 0x02, 0xff, 0xb6, 0xcd,
-  0x67, 0x43, 0xcf, 0xf0, 0x07, 0xd3, 0xff, 0x97,
-  0x29, 0xbd, 0x96, 0xff, 0x50, 0x54, 0xe9, 0xd5,
-  0xb3, 0x0e, 0x8b, 0x9f, 0x2e, 0x89, 0x33, 0xf6,
-  0x95, 0xbd, 0x72, 0xe7, 0x4e, 0x08, 0x42, 0x54,
-  0xff, 0xeb, 0xfa, 0xf5, 0xb7, 0xb5, 0x37, 0x8a,
-  0xbc, 0xa7, 0x17, 0x91, 0xe4, 0x54, 0x68, 0x95,
-  0x0f, 0x55, 0x89, 0x8f, 0x5e, 0x29, 0x18, 0x55,
-  0xfe, 0x10, 0xf7, 0x86, 0x5c, 0xda, 0xf0, 0xe9,
-  0xf0, 0x6e, 0xb4, 0x84, 0xe9, 0xfc, 0xbc, 0x36,
-  0x0f, 0x6c, 0x54, 0xc1, 0x09, 0x51, 0xb1, 0xe3,
-  0x84, 0xc6, 0x7a, 0xb7, 0xf6, 0xac, 0xa7, 0x1a,
-  0x39, 0xff, 0xda, 0x56, 0xbb, 0x7d, 0x76, 0xb2,
-  0xde, 0xa7, 0x4f, 0xfa, 0xfe, 0x1e, 0x03, 0x7d,
-  0xf2, 0xc7, 0x43, 0xd1, 0x1b, 0xe4, 0xd9, 0xf6,
-  0x51, 0x9e, 0x13, 0xa7, 0xeb, 0xa8, 0xed, 0x9f,
-  0x3a, 0x7f, 0x6d, 0x65, 0xf8, 0x7a, 0x93, 0xa7,
-  0xff, 0xfd, 0xe6, 0x77, 0xe9, 0x7b, 0x83, 0x9e,
-  0x6d, 0x9f, 0xcd, 0xb9, 0xe7, 0x8b, 0xd6, 0x15,
-  0x1b, 0x9c, 0x59, 0xa1, 0xa4, 0xff, 0xf6, 0x5e,
-  0xb8, 0xd5, 0x95, 0xb6, 0x5a, 0xca, 0x74, 0xff,
-  0xff, 0xfb, 0xd9, 0x4d, 0x7d, 0x81, 0xdd, 0x94,
-  0xbe, 0xbe, 0xbd, 0x7d, 0x4e, 0xdb, 0x69, 0x41,
-  0xd1, 0xf4, 0x6f, 0x5d, 0x42, 0x6f, 0x04, 0xe9,
-  0xb7, 0x80, 0xe8, 0x68, 0xd7, 0x00, 0x5a, 0x73,
-  0xfb, 0x63, 0xa6, 0x08, 0x4e, 0x8f, 0x1e, 0xa5,
-  0x48, 0x82, 0x39, 0x3a, 0xfb, 0xc0, 0x53, 0x8d,
-  0x7c, 0xff, 0xff, 0xeb, 0xae, 0xd6, 0xd3, 0xb5,
-  0xb3, 0xb6, 0xcc, 0xfe, 0xba, 0xd7, 0x3e, 0x03,
-  0xa2, 0x94, 0x55, 0xf8, 0xba, 0x7f, 0xb2, 0xf6,
-  0x51, 0xbe, 0x21, 0xd3, 0x94, 0x5a, 0x3a, 0x31,
-  0x3f, 0x3e, 0x8d, 0xff, 0xe4, 0x9a, 0x86, 0xb3,
-  0xef, 0xe5, 0xf9, 0xbc, 0xe9, 0xff, 0xb0, 0x47,
-  0x1a, 0xb6, 0x57, 0xbe, 0x74, 0xfe, 0xfa, 0x8e,
-  0x89, 0x65, 0x3a, 0x7d, 0xed, 0x76, 0xe7, 0x9d,
-  0x3f, 0x79, 0x59, 0x46, 0x04, 0xe9, 0x82, 0x13,
-  0xa1, 0x0f, 0xb0, 0x4a, 0x42, 0x5b, 0x3f, 0xd8,
-  0xd7, 0x35, 0xd4, 0xbe, 0xa5, 0x38, 0xd6, 0xcf,
-  0xfe, 0xcf, 0x83, 0x2d, 0xea, 0x6b, 0x6d, 0x2a,
-  0x74, 0xfd, 0xfe, 0x06, 0xd9, 0xf3, 0xa7, 0xe6,
-  0x7b, 0x53, 0x07, 0x59, 0xd3, 0x82, 0x10, 0x95,
-  0x3f, 0xf2, 0x8f, 0xf4, 0xed, 0xf8, 0xd2, 0xb0,
-  0xe7, 0x17, 0x91, 0xab, 0x54, 0x5c, 0xd4, 0x32,
-  0xaa, 0x95, 0x74, 0xcd, 0x0b, 0x42, 0x9b, 0x3b,
-  0x86, 0x83, 0xc8, 0x25, 0x3c, 0xfc, 0xa5, 0xe7,
-  0x90, 0x4a, 0x75, 0x7d, 0xb1, 0xe4, 0x12, 0x98,
-  0x21, 0x3c, 0x82, 0x50, 0x88, 0xa4, 0x68, 0xa2,
-  0xe5, 0xe1, 0x2a, 0x9b, 0xae, 0x59, 0x04, 0x9c,
-  0x6f, 0x67, 0xec, 0xb6, 0x67, 0xf5, 0x9d, 0x3b,
-  0xbe, 0x0f, 0x9e, 0xfd, 0xcc, 0xa7, 0xb5, 0x33,
-  0xac, 0x74, 0xb3, 0x56, 0x7a, 0xc0, 0x33, 0x9f,
-  0xcd, 0x3f, 0x4a, 0x2f, 0xea, 0x0a, 0x9f, 0xde,
-  0x7e, 0x9d, 0x5b, 0x78, 0xe9, 0x3c, 0xa9, 0xdc,
-  0x34, 0x15, 0x05, 0x42, 0x9b, 0x54, 0x10, 0x60,
-  0xdc, 0xf7, 0xd4, 0x08, 0x53, 0x8d, 0x64, 0x2a,
-  0x31, 0x72, 0x12, 0xb3, 0xda, 0x70, 0xbc, 0xe9,
-  0x30, 0xe9, 0xb1, 0xfb, 0x1b, 0x16, 0x88, 0x67,
-  0xc1, 0xc6, 0xbc, 0xc3, 0xa7, 0xe4, 0x56, 0x9e,
-  0xa0, 0x2a, 0x5e, 0x3a, 0x7f, 0xa8, 0xd1, 0xfb,
-  0x5b, 0x4e, 0xf9, 0xd3, 0xf7, 0x95, 0x94, 0x60,
-  0x4e, 0x9f, 0x65, 0x0c, 0xc6, 0x1d, 0x3a, 0xbe,
-  0x13, 0xa3, 0xe7, 0x85, 0x72, 0x79, 0xfb, 0xfc,
-  0x00, 0x69, 0x53, 0xa7, 0xef, 0x6b, 0xde, 0xac,
-  0x76, 0xc9, 0x86, 0x60, 0x80, 0x9e, 0xd5, 0xbe,
-  0xe4, 0x51, 0x89, 0xe8, 0xf8, 0xa3, 0xf1, 0x9c,
-  0x4f, 0x7f, 0x28, 0xd0, 0xe8, 0x7a, 0xbd, 0x7c,
-  0x2b, 0xb4, 0x3f, 0x7e, 0xaf, 0x58, 0xff, 0xee,
-  0x6d, 0x3f, 0xfe, 0xa0, 0x47, 0x36, 0xe6, 0x5b,
-  0xaf, 0xf5, 0x68, 0xe9, 0xc1, 0x08, 0x4a, 0x99,
-  0xea, 0x53, 0x8b, 0xc8, 0x54, 0x4a, 0x8b, 0x8c,
-  0xfd, 0x43, 0x4f, 0x6e, 0x0d, 0x07, 0x4f, 0x5b,
-  0xa9, 0x09, 0xd3, 0xea, 0x07, 0xca, 0xc3, 0xa7,
-  0xff, 0x97, 0x7d, 0xfe, 0xa0, 0xeb, 0x83, 0x7f,
-  0xde, 0x74, 0x6a, 0xa4, 0x68, 0x78, 0xd3, 0x88,
-  0xae, 0x4f, 0x39, 0xfe, 0xf9, 0xd3, 0xf5, 0xd5,
-  0xaf, 0xe9, 0x53, 0xa1, 0xe7, 0x97, 0x71, 0xc9,
-  0xda, 0x68, 0xdd, 0x9d, 0x37, 0x39, 0xba, 0x37,
-  0x21, 0x1a, 0xac, 0x6d, 0xaa, 0xfc, 0x89, 0x65,
-  0x15, 0x51, 0x0f, 0xf7, 0x90, 0xed, 0x18, 0x76,
-  0x4a, 0xf8, 0xd6, 0xcc, 0x82, 0xfe, 0x84, 0x93,
-  0x50, 0xc3, 0x12, 0x36, 0x46, 0x05, 0x69, 0x60,
-  0x1c, 0x8b, 0xf2, 0x9a, 0xca, 0x6f, 0xbc, 0xee,
-  0x8e, 0x90, 0xf8, 0xd4, 0x87, 0x8e, 0xf8, 0x46,
-  0xb7, 0x91, 0x4f, 0xfe, 0x73, 0x39, 0xee, 0xc1,
-  0x4e, 0xe4, 0x34, 0x51, 0x53, 0xf9, 0xd8, 0x29,
-  0xdc, 0x86, 0x8b, 0xa2, 0x7f, 0xe7, 0x73, 0xdd,
-  0x82, 0x9d, 0xc8, 0x68, 0x92, 0xe7, 0xf3, 0xb0,
-  0x53, 0xb9, 0x0d, 0x17, 0x94, 0x2b, 0x7c, 0x35,
-  0x41, 0x3b, 0xce, 0xf0, 0xed, 0x14, 0x9a, 0x3b,
-  0x61, 0xdd, 0xa1, 0x8b, 0xfa, 0xe4, 0xaa, 0xb1,
-  0xd9, 0x5d, 0x4b, 0x43, 0xb6, 0xc9, 0x93, 0xff,
-  0x9c, 0xce, 0x7b, 0xb0, 0x53, 0xb9, 0x0d, 0x12,
-  0xcc, 0xf2, 0x77, 0x21, 0xa2, 0x33, 0x9f, 0xbc,
-  0xac, 0xa3, 0x02, 0x74, 0xdf, 0x79, 0xd2, 0x61,
-  0xd3, 0xef, 0x0d, 0xb9, 0xc2, 0x7a, 0x6c, 0x2d,
-  0xde, 0x2d, 0x3f, 0x73, 0xfc, 0x3c, 0x27, 0x4e,
-  0xaa, 0xd2, 0x74, 0x0a, 0x62, 0x0c, 0x7e, 0xfa,
-  0x65, 0xca, 0xa7, 0xfe, 0xbf, 0x87, 0x81, 0xba,
-  0x97, 0xab, 0x0e, 0x9f, 0x7d, 0x5f, 0x5e, 0x3a,
-  0x3c, 0x7d, 0x8d, 0x91, 0xa7, 0xff, 0xef, 0x6d,
-  0xa5, 0xeb, 0x4b, 0xd7, 0xe0, 0xae, 0xed, 0x3e,
-  0x74, 0xff, 0xd8, 0xcb, 0xf8, 0x35, 0x5b, 0x76,
-  0xac, 0xe9, 0xff, 0x59, 0x7d, 0x6f, 0x2f, 0xda,
-  0xd0, 0xe9, 0x3b, 0x13, 0xb7, 0x6a, 0x15, 0x3c,
-  0x49, 0xf6, 0x3a, 0xa3, 0xcf, 0xfe, 0x73, 0x39,
-  0xee, 0xc1, 0x4e, 0xe4, 0x34, 0x4d, 0x33, 0xff,
-  0x9c, 0xce, 0x7b, 0xb0, 0x53, 0xb9, 0x0d, 0x13,
-  0x8c, 0xff, 0xe7, 0x33, 0x9e, 0xec, 0x14, 0xee,
-  0x43, 0x45, 0x03, 0x3e, 0x14, 0xee, 0x43, 0x45,
-  0xc1, 0x32, 0xf8, 0xe9, 0xfd, 0xf7, 0xaf, 0xb6,
-  0xc6, 0x1d, 0x27, 0x61, 0xfc, 0x58, 0xc3, 0x41,
-  0x59, 0xfd, 0xe7, 0x6f, 0x50, 0x60, 0x4e, 0x9f,
-  0xe7, 0xbb, 0x05, 0x3b, 0x90, 0xd1, 0x24, 0xc9,
-  0xd6, 0x3f, 0x5e, 0x34, 0x8a, 0x17, 0x6b, 0x5f,
-  0x2c, 0x65, 0x15, 0x5a, 0x52, 0x02, 0x95, 0x61,
-  0x95, 0x78, 0x55, 0x4f, 0xfb, 0x5f, 0x3b, 0x05,
-  0x3b, 0x90, 0xd1, 0x6a, 0x4f, 0xfb, 0x9e, 0xec,
-  0x14, 0xee, 0x43, 0x44, 0xab, 0x07, 0x49, 0xda,
-  0xd1, 0x30, 0xc4, 0x86, 0xf4, 0x69, 0xfc, 0xec,
-  0x14, 0xee, 0x43, 0x44, 0x53, 0x3f, 0x9d, 0x82,
-  0x9d, 0xc8, 0x68, 0x8d, 0x27, 0xf3, 0xb0, 0x53,
-  0xb9, 0x0d, 0x14, 0xfc, 0xff, 0xe7, 0x33, 0x9e,
-  0xec, 0x14, 0xee, 0x43, 0x44, 0xd5, 0x3f, 0x9d,
-  0x82, 0x9d, 0xc8, 0x68, 0xae, 0xe7, 0x93, 0xb9,
-  0x0d, 0x15, 0xf4, 0xe0, 0x84, 0x25, 0x4b, 0xe5,
-  0x38, 0xbc, 0x81, 0x3e, 0x66, 0x23, 0xce, 0x7a,
-  0xd2, 0x74, 0xff, 0xb2, 0xc1, 0xeb, 0xd5, 0x72,
-  0x83, 0xa7, 0xfd, 0xde, 0x1c, 0xa3, 0xcf, 0xcd,
-  0x8e, 0x93, 0xb1, 0x17, 0x0d, 0x10, 0xfc, 0x72,
-  0xa7, 0xb3, 0xff, 0x9c, 0xce, 0x7b, 0xb0, 0x53,
-  0xb9, 0x0d, 0x13, 0xdc, 0xfe, 0x76, 0x0a, 0x77,
-  0x21, 0xa2, 0xe1, 0x9f, 0xf9, 0xdc, 0xf7, 0x60,
-  0xa7, 0x72, 0x1a, 0x24, 0xf8, 0x55, 0x76, 0x74,
-  0x1d, 0xbc, 0xef, 0x59, 0xda, 0x1d, 0xb4, 0xa4,
-  0x31, 0xac, 0xd9, 0x0e, 0xaa, 0x4d, 0x8e, 0xe7,
-  0xf3, 0xb0, 0x53, 0xb9, 0x0d, 0x11, 0x54, 0xfe,
-  0x76, 0x0a, 0x77, 0x21, 0xa2, 0x99, 0x9f, 0xfc,
-  0xe6, 0x73, 0xdd, 0x82, 0x9d, 0xc8, 0x68, 0x99,
-  0xe7, 0xff, 0x39, 0x9c, 0xf7, 0x60, 0xa7, 0x72,
-  0x1a, 0x28, 0xd8, 0xa1, 0x31, 0xad, 0x8e, 0xf5,
-  0x9d, 0xdd, 0x4a, 0x7f, 0xe7, 0x73, 0xdd, 0x82,
-  0x9d, 0xc8, 0x68, 0x8e, 0xa7, 0xef, 0x67, 0xf6,
-  0xca, 0x0e, 0x9f, 0x0a, 0x77, 0x21, 0xa2, 0x9a,
-  0x9f, 0xbc, 0xac, 0xa3, 0x02, 0x74, 0xff, 0xf6,
-  0x5e, 0xd8, 0xf1, 0xef, 0xde, 0xdc, 0xf3, 0xa6,
-  0x50, 0x1d, 0x3f, 0xd5, 0xea, 0x55, 0x3c, 0x8e,
-  0x14, 0x47, 0xfc, 0xb7, 0x7a, 0x6c, 0x9d, 0xb2,
-  0x69, 0x78, 0x5d, 0x78, 0x5f, 0xcf, 0x85, 0x3b,
-  0x90, 0xd1, 0x55, 0x4f, 0xfb, 0x9e, 0xec, 0x14,
-  0xee, 0x43, 0x44, 0xdb, 0x27, 0x61, 0xfb, 0x30,
-  0xc2, 0x7f, 0x3b, 0x05, 0x3b, 0x90, 0xd1, 0x5f,
-  0xcf, 0xe7, 0x60, 0xa7, 0x72, 0x1a, 0x2c, 0x69,
-  0xf0, 0xa7, 0x72, 0x1a, 0x2d, 0x59, 0xff, 0x73,
-  0xdd, 0x82, 0x9d, 0xc8, 0x68, 0xa0, 0xa4, 0xec,
-  0x3f, 0x66, 0x18, 0x4f, 0xe7, 0x60, 0xa7, 0x72,
-  0x1a, 0x2e, 0x29, 0xfc, 0xec, 0x14, 0xee, 0x43,
-  0x45, 0xd3, 0x3f, 0xff, 0x96, 0xdf, 0xd3, 0xb5,
-  0x78, 0xfb, 0x66, 0xbc, 0xd9, 0xad, 0x0e, 0x9f,
-  0xf3, 0xf0, 0x47, 0x9f, 0x46, 0x04, 0xe9, 0xdf,
-  0xe7, 0x0a, 0x29, 0x6e, 0xd3, 0x3f, 0xe1, 0x5a,
-  0x6d, 0xd5, 0xba, 0x84, 0xe9, 0xfb, 0x54, 0xfe,
-  0x5b, 0xae, 0x74, 0xfc, 0x0e, 0x69, 0xfe, 0xb9,
-  0xd3, 0xff, 0xfe, 0xd6, 0xbb, 0x5b, 0x29, 0xbf,
-  0xfa, 0xc0, 0xea, 0xd7, 0x85, 0x0e, 0x9e, 0x4e,
-  0xe4, 0x34, 0x49, 0x93, 0xfc, 0x39, 0x4d, 0xef,
-  0xcf, 0xa9, 0xd0, 0x27, 0xc6, 0xc2, 0xb9, 0xfb,
-  0x60, 0x6a, 0x95, 0x06, 0xa1, 0xd3, 0xec, 0xbf,
-  0x99, 0xc7, 0x4f, 0xff, 0xb9, 0x05, 0x6d, 0xfc,
-  0xbe, 0x38, 0x21, 0x09, 0x50, 0xf3, 0xf8, 0xb9,
-  0x34, 0xff, 0xed, 0x3f, 0xd7, 0x51, 0xad, 0x97,
-  0xf7, 0x3a, 0x70, 0x42, 0x12, 0xa7, 0xe1, 0xea,
-  0x19, 0xea, 0x94, 0xe2, 0xf2, 0x7d, 0x8c, 0x1c,
-  0xd5, 0x9d, 0x3f, 0xe6, 0x2a, 0x5b, 0xfa, 0x5d,
-  0x6a, 0x74, 0xff, 0x67, 0x03, 0x76, 0x6d, 0xcf,
-  0x3a, 0x7f, 0xf7, 0x51, 0x6f, 0x2f, 0xf1, 0xaf,
-  0x0f, 0x8e, 0x8c, 0x46, 0x0d, 0xcf, 0x82, 0x73,
-  0x3e, 0xfe, 0x5b, 0xae, 0x74, 0xff, 0x9e, 0xbf,
-  0xa3, 0x78, 0xff, 0x47, 0x9d, 0x1a, 0xb3, 0xe8,
-  0x68, 0x9a, 0x7a, 0xf4, 0x66, 0xc7, 0x4f, 0xf7,
-  0xb5, 0xef, 0x10, 0x33, 0xd5, 0x3a, 0x1a, 0x3e,
-  0x0d, 0x42, 0x39, 0xc1, 0x08, 0x4e, 0x9f, 0xff,
-  0x63, 0x2f, 0xf5, 0x06, 0x6d, 0x5c, 0x62, 0xa1,
-  0x4e, 0x2f, 0x23, 0x13, 0x2b, 0xf4, 0x21, 0xec,
-  0x85, 0x3f, 0x59, 0x77, 0x27, 0xa8, 0x3a, 0x7e,
-  0x1e, 0x1f, 0xab, 0xce, 0x8d, 0x8f, 0x64, 0x4b,
-  0xe6, 0x7b, 0x9b, 0x8b, 0xc3, 0xca, 0x62, 0xf2,
-  0xec, 0x86, 0x86, 0xb2, 0x1a, 0x61, 0x5e, 0xd1,
-  0x17, 0x32, 0xfc, 0xf2, 0xb0, 0xea, 0xbc, 0x78,
-  0x5b, 0xe1, 0x1d, 0x3e, 0xc6, 0x0e, 0x6a, 0xce,
-  0x9f, 0xfb, 0x2d, 0xf5, 0xa3, 0x7d, 0xad, 0xda,
-  0xb3, 0xa7, 0xee, 0x47, 0x04, 0x21, 0x3a, 0x4e,
-  0x46, 0x40, 0x10, 0x99, 0xf4, 0xf2, 0xdf, 0xe1,
-  0xab, 0x52, 0x96, 0xc9, 0x50, 0xf6, 0x68, 0x6e,
-  0xd1, 0xcb, 0xd3, 0x0b, 0x21, 0x27, 0x61, 0xd8,
-  0x21, 0x63, 0x52, 0x7b, 0x9d, 0xe9, 0x48, 0xe2,
-  0x9f, 0xce, 0xc1, 0x4e, 0xe4, 0x34, 0x46, 0xb3,
-  0xe1, 0x4e, 0xe4, 0x34, 0x54, 0xb3, 0x72, 0x1a,
-  0x21, 0xa9, 0x3b, 0x0f, 0x47, 0x8c, 0x27, 0xfe,
-  0x77, 0x3d, 0xd8, 0x29, 0xdc, 0x86, 0x88, 0xfa,
-  0x7f, 0x3b, 0x05, 0x3b, 0x90, 0xd1, 0x63, 0xcf,
-  0xda, 0xa7, 0xf2, 0xdd, 0x73, 0xa7, 0xfb, 0xfc,
-  0x0a, 0xf5, 0xef, 0xc7, 0x4f, 0x01, 0x9e, 0x13,
-  0xa7, 0xff, 0xf9, 0x47, 0xf9, 0xb6, 0x5a, 0xde,
-  0x4b, 0x7a, 0xf5, 0xea, 0x4e, 0x8f, 0x22, 0x1e,
-  0xc4, 0x33, 0xbb, 0x90, 0xd1, 0x68, 0x4f, 0xfb,
-  0x82, 0xde, 0x9c, 0x34, 0x60, 0x4e, 0x90, 0xa1,
-  0xf2, 0x89, 0x34, 0xfc, 0xdb, 0x7d, 0xfe, 0xa0,
-  0x3a, 0x7c, 0xb7, 0xcb, 0x29, 0xd3, 0xff, 0xd9,
-  0x7a, 0xe3, 0x56, 0x56, 0xd9, 0x6b, 0x29, 0xd1,
-  0x41, 0xfa, 0xfc, 0x96, 0x15, 0x19, 0x39, 0x0a,
-  0x69, 0xff, 0xb2, 0xbe, 0xd3, 0xef, 0x15, 0xcd,
-  0x8e, 0x9f, 0x5e, 0xdd, 0xfd, 0x67, 0x4f, 0xf7,
-  0xf4, 0xa3, 0x6b, 0x67, 0xd4, 0xe9, 0xbf, 0x98,
-  0x7c, 0x88, 0x53, 0x3f, 0xb2, 0xcd, 0x7a, 0xde,
-  0x61, 0xd3, 0xf9, 0xf8, 0x35, 0xfa, 0xd0, 0x74,
-  0xf6, 0xd9, 0x6e, 0x3a, 0x7f, 0xb3, 0x03, 0x88,
-  0x98, 0x13, 0xa3, 0x11, 0x77, 0x49, 0xa7, 0x19,
-  0x54, 0x86, 0x7b, 0x2d, 0xd7, 0x3a, 0x7f, 0x6b,
-  0xf7, 0xf4, 0x7e, 0x54, 0xe9, 0x39, 0xb8, 0xb9,
-  0x56, 0xa6, 0x3b, 0x42, 0xfb, 0x21, 0x11, 0x68,
-  0x77, 0x7c, 0x9a, 0xb0, 0xa8, 0xbc, 0x39, 0xb5,
-  0x0f, 0x37, 0x90, 0x4f, 0xcd, 0xfe, 0xdb, 0xea,
-  0xd1, 0xd3, 0xd9, 0x6e, 0xb9, 0xd2, 0xd5, 0x30,
-  0xf4, 0xbe, 0x65, 0x3e, 0x14, 0xee, 0x43, 0x45,
-  0xad, 0x3f, 0xee, 0x7b, 0xb0, 0x53, 0xb9, 0x0d,
-  0x14, 0x1c, 0x9c, 0xdc, 0x45, 0x16, 0x16, 0x30,
-  0xc2, 0x7f, 0xf3, 0x99, 0xcf, 0x76, 0x0a, 0x77,
-  0x21, 0xa2, 0x8b, 0x9f, 0xce, 0xc1, 0x4e, 0xe4,
-  0x34, 0x5d, 0x50, 0xf6, 0x42, 0x9a, 0x42, 0x33,
-  0xc4, 0xcc, 0x4c, 0xb4, 0xe7, 0x30, 0x23, 0xa9,
-  0xa9, 0xcd, 0xd4, 0xa7, 0xc2, 0x9d, 0xc8, 0x68,
-  0x88, 0x67, 0x5b, 0x36, 0x3a, 0x4e, 0xc3, 0xcc,
-  0xa4, 0xc2, 0x7f, 0x3b, 0x05, 0x3b, 0x90, 0xd1,
-  0x1b, 0x4f, 0xe7, 0x60, 0xa7, 0x72, 0x1a, 0x29,
-  0xb9, 0xfc, 0xec, 0x14, 0xee, 0x43, 0x45, 0x41,
-  0x3f, 0x9d, 0x82, 0x9d, 0xc8, 0x68, 0xa9, 0xa7,
-  0xc2, 0x9d, 0xc8, 0x68, 0xac, 0x27, 0xde, 0x0e,
-  0xda, 0x09, 0xd3, 0xfc, 0xf7, 0x60, 0xa7, 0x72,
-  0x1a, 0x23, 0xf9, 0xd8, 0xb4, 0x1d, 0x27, 0x62,
-  0x2d, 0x50, 0xc3, 0x8a, 0x7e, 0x83, 0x3f, 0xf9,
-  0xcc, 0xe7, 0xbb, 0x05, 0x3b, 0x90, 0xd1, 0x37,
-  0xcf, 0xfc, 0xce, 0x7b, 0xb0, 0x53, 0xb9, 0x0d,
-  0x13, 0xf4, 0xfc, 0xdd, 0x75, 0x56, 0xa9, 0xa9,
-  0x94, 0x9d, 0x3f, 0xfc, 0xaa, 0xaa, 0xaa, 0xaa,
-  0xab, 0x4d, 0x4e, 0x9f, 0x0f, 0xa8, 0xe6, 0x15,
-  0x30, 0x42, 0x54, 0x61, 0xbd, 0x09, 0x3c, 0xb4,
-  0x29, 0xc6, 0x82, 0x15, 0x18, 0xf5, 0x85, 0x34,
-  0xfc, 0x3c, 0x96, 0xf0, 0x9d, 0x3d, 0x43, 0x3c,
-  0xf3, 0xa7, 0xd5, 0xfe, 0x9c, 0xf3, 0xa7, 0xf5,
-  0x95, 0x8e, 0x00, 0x14, 0xe9, 0x0a, 0x9f, 0xee,
-  0x11, 0xf8, 0xa2, 0x70, 0x2b, 0x87, 0x4f, 0xfd,
-  0xb2, 0xdf, 0xab, 0x96, 0xb7, 0x98, 0x74, 0xeb,
-  0xf9, 0xa3, 0xa1, 0x4f, 0x86, 0xa8, 0x90, 0xa9,
-  0xce, 0xf8, 0x9c, 0x61, 0x4f, 0xf3, 0x2b, 0xbe,
-  0x4f, 0x73, 0x5b, 0xd8, 0x74, 0xdd, 0xf3, 0xa0,
-  0x4d, 0xcb, 0x09, 0x27, 0x04, 0x21, 0x3a, 0x7a,
-  0x8f, 0xf9, 0x4a, 0x71, 0x79, 0x3d, 0x4d, 0xfc,
-  0x87, 0x42, 0xa2, 0x3e, 0xc7, 0x9a, 0x18, 0xcf,
-  0xfd, 0x46, 0x80, 0xcf, 0xe8, 0xd2, 0xdf, 0x8e,
-  0x9e, 0x5b, 0xd5, 0x0d, 0x10, 0x74, 0xfd, 0xd6,
-  0x5d, 0x5e, 0x8f, 0x3a, 0x05, 0x14, 0xb7, 0x47,
-  0x6c, 0x5b, 0x30, 0xec, 0x74, 0xc1, 0x09, 0xd0,
-  0xf3, 0x58, 0x11, 0x69, 0xea, 0xaf, 0x9b, 0x14,
-  0xe3, 0x43, 0x3e, 0xae, 0xfd, 0x81, 0x53, 0xa3,
-  0xc7, 0xbd, 0xbc, 0xce, 0x70, 0x42, 0x12, 0xa0,
-  0xa7, 0x17, 0x93, 0xde, 0x0f, 0x9a, 0x2a, 0x10,
-  0xde, 0x78, 0x66, 0x3c, 0x9b, 0xc5, 0xa1, 0xb9,
-  0xf7, 0xc9, 0xdf, 0xf5, 0x4e, 0x9e, 0xdb, 0xbe,
-  0x03, 0xa7, 0xfe, 0x5f, 0x83, 0xeb, 0x4b, 0x4b,
-  0xf0, 0x1d, 0x1e, 0x44, 0x18, 0x07, 0x2a, 0x45,
-  0x3f, 0x34, 0xb8, 0x36, 0xf1, 0xd3, 0xf5, 0xf1,
-  0xaf, 0xab, 0x0f, 0x10, 0x14, 0xfb, 0xbf, 0xb5,
-  0x94, 0xd1, 0x01, 0x38, 0xdd, 0x4f, 0x94, 0x1e,
-  0xa6, 0xa7, 0x4f, 0xe1, 0x6a, 0xbe, 0xfd, 0xfc,
-  0x74, 0xf5, 0x20, 0x15, 0x2a, 0x60, 0x84, 0xa8,
-  0x53, 0x6e, 0x12, 0x19, 0xfb, 0x85, 0xef, 0xff,
-  0x8a, 0x71, 0xa0, 0x85, 0x4f, 0x27, 0x0c, 0x3c,
-  0xcd, 0xf4, 0x4b, 0x94, 0x69, 0x08, 0xb9, 0xf6,
-  0x97, 0xd3, 0xb7, 0x9a, 0x20, 0x79, 0xff, 0x5b,
-  0x4a, 0x17, 0x72, 0xdd, 0x76, 0x3a, 0x77, 0x0d,
-  0x07, 0x4c, 0x10, 0x9d, 0x3f, 0x87, 0xd8, 0xdb,
-  0x7b, 0xdc, 0x86, 0xc4, 0x23, 0x71, 0xb2, 0x2f,
-  0xc5, 0xce, 0x7f, 0xef, 0xe6, 0xbb, 0x73, 0xf7,
-  0xf5, 0x2a, 0x74, 0x29, 0xf5, 0x61, 0x1c, 0xff,
-  0xec, 0x63, 0x39, 0xf8, 0x29, 0xdc, 0x86, 0x88,
-  0x62, 0x2c, 0x7e, 0x3f, 0x20, 0x9f, 0xb0, 0x53,
-  0xb9, 0x0d, 0x10, 0x54, 0xf5, 0xea, 0xa0, 0x2a,
-  0x77, 0x0d, 0x05, 0x4f, 0x69, 0xfe, 0xd6, 0x54,
-  0xfe, 0xf5, 0x19, 0x7a, 0xa8, 0x0a, 0x82, 0xa7,
-  0xec, 0x45, 0xb2, 0xb0, 0xa9, 0x82, 0x12, 0xa7,
-  0xef, 0xaf, 0xe8, 0xf0, 0x95, 0x18, 0x98, 0x52,
-  0x10, 0xb0, 0x6e, 0xc4, 0x80, 0x33, 0xf8, 0x50,
-  0x4a, 0xb7, 0x8b, 0x4d, 0xe1, 0x29, 0xc7, 0xe5,
-  0x2e, 0x7a, 0x7a, 0xf6, 0x8e, 0xc6, 0x7f, 0xca,
-  0xfe, 0xfe, 0x54, 0x56, 0xa7, 0x4f, 0xf5, 0xec,
-  0xad, 0xb6, 0x50, 0x29, 0xd3, 0xfc, 0xb4, 0xbf,
-  0x51, 0x53, 0x18, 0x74, 0x29, 0xfa, 0x58, 0xea,
-  0x7f, 0xfe, 0x6b, 0xb9, 0xfd, 0x6d, 0xd9, 0x46,
-  0x97, 0xd3, 0xb7, 0x9a, 0x2f, 0xb9, 0xf7, 0xaf,
-  0xfc, 0x79, 0xd3, 0xfe, 0xff, 0x9f, 0x7b, 0x60,
-  0xfa, 0xa7, 0x4f, 0xeb, 0x83, 0x7f, 0xdf, 0x6c,
-  0x3c, 0x40, 0x33, 0xb8, 0x5e, 0x78, 0x80, 0x63,
-  0x0f, 0xa7, 0x44, 0x29, 0xb9, 0xe7, 0x88, 0x06,
-  0x7b, 0xbf, 0x4b, 0xcf, 0x10, 0x0c, 0xfe, 0xf2,
-  0x5b, 0x00, 0x05, 0x3c, 0x40, 0x33, 0xbd, 0xfd,
-  0x8f, 0x10, 0x0c, 0x6c, 0x8b, 0x96, 0x11, 0x58,
-  0xbd, 0xb1, 0xf4, 0xe1, 0x5b, 0x9e, 0x20, 0x18,
-  0x3c, 0x40, 0x33, 0x2b, 0x0f, 0x10, 0x0c, 0x6c,
-  0x6e, 0x7c, 0x2f, 0x3d, 0xe6, 0x6c, 0xa7, 0x88,
-  0x06, 0x75, 0xf9, 0x0f, 0x10, 0x0c, 0xff, 0xbf,
-  0xcf, 0x75, 0xbc, 0x9c, 0x27, 0x88, 0x06, 0x6e,
-  0xd8, 0xf1, 0x00, 0xcf, 0xef, 0xf0, 0x6b, 0x55,
-  0x01, 0xe2, 0x01, 0x9f, 0x7b, 0x5f, 0x7c, 0x07,
-  0x88, 0x06, 0x6f, 0x54, 0xf1, 0x00, 0xc0, 0x9e,
-  0xcd, 0xcd, 0xa7, 0xd7, 0xfa, 0xd2, 0xf3, 0x44,
-  0x03, 0x30, 0x14, 0xf1, 0x00, 0xb8, 0xda, 0xcf,
-  0xbc, 0xac, 0xed, 0x8f, 0x10, 0x0c, 0xf6, 0x9d,
-  0xf4, 0x3c, 0x40, 0x33, 0x94, 0x50, 0xf1, 0x00,
-  0xcf, 0xfb, 0x29, 0xae, 0xcb, 0x9f, 0x05, 0x4f,
-  0x10, 0x0c, 0xfb, 0x4e, 0x7b, 0xd4, 0xf1, 0x00,
-  0xc6, 0x22, 0x02, 0xc9, 0x93, 0x08, 0x0f, 0x10,
-  0x0c, 0x3d, 0x54, 0x7e, 0xc4, 0x79, 0x09, 0x8f,
-  0x2b, 0x58, 0xc8, 0x06, 0x95, 0x2e, 0xbc, 0x29,
-  0xb4, 0x22, 0x9f, 0x65, 0xeb, 0xd4, 0x9e, 0x20,
-  0x19, 0xfd, 0xb2, 0xa3, 0x42, 0xb7, 0x3c, 0x40,
-  0x3b, 0x1b, 0x49, 0xc2, 0xa1, 0x3c, 0x40, 0x30,
-  0x87, 0xee, 0x2a, 0x13, 0xde, 0xfb, 0xea, 0x78,
-  0x80, 0x67, 0xee, 0x69, 0xf9, 0x4b, 0xcf, 0x10,
-  0x0c, 0x62, 0x22, 0x80, 0x41, 0xa1, 0x7c, 0xff,
-  0x59, 0x6a, 0xea, 0xe8, 0x20, 0x3c, 0x40, 0x32,
-  0xf1, 0xe2, 0x01, 0x9b, 0xa8, 0xd8, 0xf8, 0xec,
-  0x8d, 0x30, 0x80, 0xf1, 0x00, 0xcf, 0xba, 0xf5,
-  0xf5, 0x27, 0x88, 0x06, 0x7e, 0xf7, 0xf4, 0x7e,
-  0x54, 0xf1, 0x00, 0xc2, 0xa2, 0x4b, 0xe4, 0x57,
-  0x35, 0x8d, 0x99, 0x01, 0xd9, 0x0d, 0xb6, 0x90,
-  0x05, 0x82, 0xc4, 0x5c, 0x5e, 0x02, 0x7a, 0xca,
-  0xd8, 0xbc, 0x78, 0x1a, 0x90, 0x93, 0xdf, 0x0c,
-  0x19, 0xdd, 0xc8, 0x68, 0x80, 0x5c, 0x8b, 0xc9,
-  0xed, 0x7a, 0xad, 0xb3, 0x0e, 0x98, 0x0a, 0x54,
-  0xb5, 0x95, 0x3a, 0xcb, 0x41, 0xd3, 0x04, 0x25,
-  0x47, 0x8f, 0x67, 0x56, 0x2a, 0xd0, 0x90, 0x47,
-  0x27, 0x33, 0xd5, 0x29, 0xc7, 0x83, 0x3d, 0x7a,
-  0xb7, 0xe8, 0x74, 0x50, 0xca, 0xe9, 0x79, 0x3a,
-  0x52, 0x5c, 0x7c, 0x70, 0x08, 0x63, 0x6f, 0x2d,
-  0x9f, 0x85, 0xa7, 0xa8, 0xd0, 0x74, 0xff, 0x9f,
-  0x5d, 0xdf, 0xc6, 0x28, 0xeb, 0x3a, 0x7f, 0xe1,
-  0xb7, 0x63, 0xd4, 0x41, 0xbd, 0x87, 0x4f, 0xdb,
-  0xc2, 0x3e, 0xcb, 0x15, 0x3c, 0xd5, 0xb9, 0xa3,
-  0xa7, 0xd8, 0xd3, 0xd6, 0x93, 0xa7, 0xb3, 0xea,
-  0xf2, 0xa0, 0x4f, 0xaf, 0xe4, 0x6d, 0xe5, 0x10,
-  0xa9, 0xbd, 0xe1, 0x6f, 0x90, 0x6c, 0x87, 0xd0,
-  0x99, 0x9e, 0xf7, 0xef, 0x53, 0xa7, 0x68, 0xdd,
-  0xd4, 0xe9, 0xff, 0x80, 0xcc, 0x4b, 0x7b, 0x6b,
-  0x69, 0xac, 0xe9, 0xff, 0xaf, 0x5c, 0xd9, 0x69,
-  0xae, 0x53, 0x73, 0xa7, 0xf3, 0xf2, 0xbb, 0xeb,
-  0x7c, 0x3a, 0x15, 0x1c, 0x9e, 0x22, 0xe4, 0x8d,
-  0x11, 0xa7, 0xdc, 0xdb, 0x6d, 0x94, 0xe9, 0xab,
-  0x53, 0xa7, 0x04, 0x21, 0x3a, 0x60, 0x71, 0x4e,
-  0x2f, 0x20, 0x4f, 0x5a, 0xa6, 0x53, 0xb8, 0x18,
-  0x54, 0x3d, 0x17, 0x6c, 0x84, 0x06, 0xa1, 0x0c,
-  0xfe, 0xbf, 0xf2, 0x90, 0x6f, 0x79, 0xd3, 0xfd,
-  0xfc, 0x6d, 0x8e, 0x08, 0x42, 0x54, 0xe6, 0x75,
-  0xce, 0x8b, 0x1e, 0xab, 0x63, 0xa8, 0x54, 0x73,
-  0xf8, 0xe3, 0xa1, 0x17, 0x35, 0xb8, 0xe9, 0x9a,
-  0xa9, 0xd3, 0xf3, 0xb1, 0xb7, 0xbf, 0xb6, 0x1a,
-  0xcd, 0xe2, 0xb3, 0xdb, 0x65, 0xb8, 0xe9, 0xff,
-  0x97, 0x3e, 0xfb, 0x67, 0xfe, 0xa1, 0x3a, 0x5e,
-  0x14, 0x55, 0xfd, 0x22, 0xe4, 0x31, 0x43, 0x6c,
-  0xee, 0xf8, 0xf4, 0xb6, 0x8f, 0xe7, 0x59, 0x7a,
-  0x42, 0xbf, 0xc4, 0x23, 0x4b, 0x57, 0xb4, 0x7c,
-  0xc0, 0x4d, 0xfc, 0x60, 0xd7, 0x8f, 0x79, 0xb4,
-  0x61, 0x53, 0xfd, 0x83, 0xf5, 0xbb, 0xf2, 0xc7,
-  0x4f, 0xdf, 0x06, 0x6d, 0xcf, 0x3a, 0x7d, 0xbd,
-  0xa7, 0xae, 0xac, 0xa8, 0x54, 0x48, 0xe1, 0xb6,
-  0xf2, 0xd9, 0xff, 0xc3, 0xaf, 0xfa, 0x76, 0xfc,
-  0xaf, 0x97, 0xe7, 0x4b, 0x79, 0xa2, 0x05, 0x95,
-  0xcd, 0x40, 0xa4, 0xbd, 0x73, 0x78, 0x11, 0xf9,
-  0xff, 0x7b, 0x52, 0xde, 0xde, 0xe0, 0x01, 0x4a,
-  0x9f, 0xfd, 0x7a, 0xf5, 0x3b, 0x98, 0xb9, 0xfb,
-  0xea, 0x1d, 0x0a, 0x89, 0x3f, 0x22, 0x4e, 0xa3,
-  0xef, 0x3a, 0x15, 0x38, 0x26, 0x42, 0x26, 0xd0,
-  0xba, 0xd0, 0x8a, 0x7f, 0x3d, 0xac, 0xff, 0x5b,
-  0x0e, 0x9f, 0xfc, 0x29, 0xfc, 0x6d, 0xfc, 0x51,
-  0x5a, 0x9d, 0x3f, 0xb9, 0xab, 0x63, 0x32, 0xa7,
-  0x46, 0x1f, 0xcb, 0x64, 0x79, 0xfb, 0xda, 0xef,
-  0x98, 0xc3, 0xa7, 0xd9, 0xb7, 0x86, 0xa7, 0x4f,
-  0xff, 0x56, 0xf4, 0xa7, 0xad, 0xb9, 0xbf, 0x2d,
-  0xe6, 0x1d, 0x25, 0xa0, 0xff, 0x42, 0x4f, 0x1e,
-  0x47, 0xb5, 0x88, 0xef, 0x0a, 0xb9, 0xdb, 0x70,
-  0x9d, 0x3e, 0x07, 0x7f, 0x1b, 0xce, 0x85, 0x3c,
-  0x4d, 0x06, 0xe7, 0x95, 0x94, 0xb4, 0x74, 0x2a,
-  0xa5, 0xf7, 0xc7, 0x43, 0x57, 0x9b, 0x91, 0x4f,
-  0x03, 0xa9, 0xa9, 0xd3, 0x04, 0x27, 0x45, 0x4d,
-  0xc0, 0x48, 0xa7, 0xea, 0xfa, 0xdd, 0x96, 0x29,
-  0xc6, 0x86, 0x70, 0x42, 0x12, 0xa7, 0x9f, 0x7c,
-  0x42, 0x9c, 0x5e, 0x4f, 0xb3, 0x6f, 0x02, 0xa7,
-  0x4b, 0x84, 0xf5, 0xfe, 0x5f, 0x3f, 0x7e, 0x9a,
-  0xb5, 0x97, 0x3a, 0x7d, 0x46, 0xaf, 0xd9, 0x49,
-  0xd3, 0xef, 0x55, 0x68, 0x61, 0xf2, 0xfd, 0x9f,
-  0x2f, 0x08, 0x34, 0x3e, 0x5f, 0xb3, 0x73, 0xcf,
-  0x97, 0xec, 0xf6, 0x8f, 0xca, 0x9f, 0x2f, 0xd8,
-  0xd8, 0xf4, 0x7e, 0x45, 0x3e, 0x5c, 0xae, 0x7c,
-  0xf9, 0x7e, 0xc1, 0xf2, 0xfd, 0x9b, 0xae, 0x7c,
-  0xbf, 0x58, 0x5b, 0xc9, 0xff, 0x3f, 0xad, 0x12,
-  0x67, 0xb3, 0x53, 0xc0, 0x3e, 0x5f, 0xb0, 0x7c,
-  0xbf, 0x66, 0x02, 0x9f, 0x2f, 0xd9, 0xfe, 0xc0,
-  0x70, 0xe3, 0x6c, 0xd8, 0xf9, 0x7e, 0xcf, 0xd9,
-  0x6f, 0x57, 0x4a, 0x0f, 0x97, 0xec, 0x01, 0x14,
-  0x7f, 0x22, 0xaa, 0x2c, 0xf0, 0xd0, 0xb7, 0x3e,
-  0x5f, 0xb0, 0x7c, 0xbf, 0x70, 0xd7, 0x4c, 0x10,
-  0x9f, 0x2f, 0xd8, 0x7a, 0xb1, 0x1d, 0x8d, 0x72,
-  0x10, 0x94, 0xc2, 0x74, 0x4a, 0x58, 0x63, 0x58,
-  0x5d, 0x5d, 0x78, 0x24, 0xd3, 0xd8, 0xf5, 0xd6,
-  0x5c, 0xbf, 0x5c, 0x88, 0xf9, 0xff, 0x62, 0x6d,
-  0x82, 0x1e, 0xb3, 0x47, 0x4c, 0xfa, 0x0a, 0x8a,
-  0x11, 0x2b, 0x4a, 0x0f, 0xcf, 0x60, 0x57, 0x25,
-  0x3a, 0x71, 0x8a, 0x7f, 0xfe, 0xa5, 0xe2, 0xad,
-  0xb9, 0xa5, 0xda, 0xca, 0xce, 0x68, 0xe8, 0x55,
-  0xd7, 0x3c, 0x26, 0xe9, 0xcc, 0x3d, 0x0b, 0x27,
-  0xfd, 0xad, 0x69, 0xfa, 0xda, 0xda, 0x21, 0xd3,
-  0xf7, 0xfb, 0x5d, 0xb9, 0xe7, 0x4e, 0x08, 0x42,
-  0x54, 0xed, 0xea, 0x02, 0x9c, 0x5e, 0x4f, 0xfb,
-  0xfc, 0xfd, 0xe3, 0x8d, 0xb8, 0x4e, 0x9f, 0xef,
-  0xf0, 0x37, 0x3d, 0x41, 0x49, 0xd1, 0xb2, 0x66,
-  0x2c, 0x41, 0x02, 0x57, 0xcb, 0x2e, 0x7f, 0x3f,
-  0xef, 0xff, 0xda, 0x37, 0x75, 0xd4, 0x5b, 0x9d,
-  0x38, 0x21, 0x09, 0x62, 0x10, 0x9f, 0x0a, 0x77,
-  0x21, 0x62, 0x10, 0x71, 0xa9, 0x9c, 0x10, 0x84,
-  0xb1, 0x07, 0xc1, 0x62, 0x0f, 0x71, 0xa9, 0x99,
-  0x59, 0x88, 0x90, 0x46, 0x99, 0xf5, 0xd6, 0xea,
-  0xc3, 0xa7, 0xbf, 0xe5, 0xd6, 0x74, 0xed, 0xea,
-  0x03, 0xa2, 0x83, 0xc0, 0x61, 0x1c, 0xf9, 0x16,
-  0xca, 0xc2, 0xa7, 0xdf, 0xef, 0xff, 0x0a, 0x9b,
-  0x10, 0xa9, 0x82, 0x12, 0xa3, 0x0f, 0xd6, 0xa4,
-  0xb7, 0x26, 0x08, 0xa4, 0xfe, 0xfe, 0xf5, 0x05,
-  0xb1, 0xbc, 0xa7, 0x1b, 0xb8, 0x54, 0xe0, 0x3c,
-  0xcd, 0xd0, 0xd3, 0x9f, 0xfd, 0x65, 0x05, 0x73,
-  0x36, 0xef, 0xf6, 0xb3, 0xa7, 0xf5, 0x77, 0xb2,
-  0xa1, 0xea, 0x4e, 0x85, 0x57, 0x5b, 0x89, 0x9e,
-  0x8c, 0x04, 0x63, 0xac, 0xe3, 0x4a, 0xa5, 0x4e,
-  0x08, 0x42, 0x54, 0xf9, 0xe0, 0xef, 0xec, 0x53,
-  0x8b, 0xc9, 0xff, 0xef, 0xd3, 0xba, 0x90, 0x2f,
-  0xd3, 0xa8, 0xff, 0x1d, 0x3f, 0xfd, 0x8a, 0xed,
-  0xbe, 0xba, 0x26, 0x6b, 0xf0, 0x9d, 0x3c, 0xdf,
-  0x60, 0x36, 0x3a, 0x1e, 0x7e, 0xfc, 0xa1, 0x3f,
-  0xf9, 0xf8, 0x20, 0x67, 0xab, 0xbe, 0xab, 0x87,
-  0x4f, 0x7b, 0x6c, 0x61, 0xd0, 0xa9, 0xc7, 0x3c,
-  0xdf, 0xa1, 0x95, 0xf2, 0x1d, 0x12, 0xa7, 0xed,
-  0x5d, 0x7d, 0xfa, 0x5e, 0x74, 0xff, 0xb8, 0x75,
-  0x3d, 0x6c, 0xea, 0x40, 0x74, 0xff, 0xab, 0x55,
-  0x1b, 0xab, 0xb6, 0xf1, 0xd3, 0xfe, 0xff, 0x35,
-  0x6e, 0x11, 0xf6, 0xc7, 0x46, 0x23, 0xbd, 0x0c,
-  0xfc, 0x80, 0xc3, 0xe9, 0xe7, 0xef, 0xc6, 0x8e,
-  0x9f, 0x0e, 0xd9, 0x9f, 0x3a, 0x7f, 0xed, 0x5f,
-  0xb2, 0xca, 0xda, 0xb6, 0x5a, 0x4e, 0x8e, 0x3f,
-  0x0a, 0x93, 0x4f, 0xff, 0x65, 0xeb, 0x8d, 0x59,
-  0x5b, 0x65, 0xac, 0xa7, 0x4f, 0xeb, 0xb7, 0x56,
-  0xbe, 0xdd, 0x28, 0xd0, 0xe8, 0xd9, 0x16, 0x9f,
-  0x21, 0xba, 0x84, 0xff, 0xf7, 0xab, 0x9b, 0x5e,
-  0xbe, 0xd7, 0x6e, 0xff, 0x8e, 0x9f, 0xff, 0xdf,
-  0xbe, 0x5b, 0xcb, 0x7f, 0x01, 0x5e, 0xe0, 0x84,
-  0x25, 0x4f, 0x6d, 0x99, 0xac, 0xa9, 0xcf, 0xfe,
-  0x86, 0x88, 0x66, 0x70, 0x42, 0x12, 0xa7, 0x67,
-  0xd0, 0xa7, 0x17, 0x93, 0xfe, 0xca, 0x33, 0x6e,
-  0x7f, 0xd6, 0x83, 0xa0, 0x07, 0xd1, 0xf2, 0x99,
-  0xfc, 0xff, 0xe5, 0xef, 0xa5, 0x07, 0x42, 0xa7,
-  0x13, 0x43, 0x0d, 0x24, 0x63, 0x0a, 0xee, 0x22,
-  0x9e, 0xf5, 0xfc, 0xa7, 0x4f, 0xed, 0x30, 0x40,
-  0x0f, 0x7c, 0xe9, 0xff, 0xf2, 0xbf, 0xdb, 0x5b,
-  0x7d, 0x70, 0x53, 0xb9, 0x0d, 0x10, 0x64, 0x59,
-  0x12, 0x97, 0x33, 0x9f, 0xda, 0x99, 0x5d, 0x4c,
-  0x15, 0x3a, 0x1e, 0x98, 0x77, 0xa1, 0x6b, 0x72,
-  0x39, 0xff, 0xe5, 0xfd, 0x1b, 0x9a, 0xf7, 0xf3,
-  0x6c, 0xfe, 0xb3, 0xa7, 0x28, 0xb4, 0x74, 0x2a,
-  0xec, 0xa6, 0xc7, 0x79, 0x1a, 0x42, 0x18, 0xfa,
-  0x3d, 0xce, 0x8d, 0x77, 0x43, 0x6d, 0x45, 0x69,
-  0xfd, 0xff, 0xab, 0xd8, 0xbe, 0x3a, 0x7f, 0x5f,
-  0xcd, 0xbd, 0x77, 0xa9, 0x52, 0x61, 0xd3, 0xf6,
-  0x7f, 0x58, 0xab, 0xbc, 0x78, 0xbb, 0xcd, 0x63,
-  0xc8, 0xbe, 0xab, 0xbc, 0xf0, 0xe9, 0x4b, 0xce,
-  0x9f, 0xdf, 0x7f, 0xf1, 0x8a, 0x87, 0x4e, 0x66,
-  0xd8, 0x74, 0x29, 0xf8, 0x61, 0x1f, 0x18, 0xce,
-  0xbf, 0xa8, 0x3a, 0x7f, 0xda, 0x5e, 0xbb, 0xc4,
-  0x0c, 0xf5, 0x4e, 0x9f, 0xf9, 0x7f, 0xd6, 0x50,
-  0x38, 0x6b, 0x52, 0xa3, 0x64, 0x42, 0x31, 0x0a,
-  0x7d, 0x6f, 0x7a, 0x9a, 0x9d, 0x05, 0x4f, 0xd5,
-  0xde, 0xa2, 0xac, 0x2a, 0x0a, 0x82, 0xa0, 0xa8,
-  0x2a, 0x1e, 0x7b, 0xfe, 0x0a, 0x01, 0x6e, 0x81,
-  0x5a, 0x81, 0x4d, 0xe1, 0x53, 0x5b, 0x0a, 0x9f,
-  0xbb, 0xae, 0xd2, 0xb0, 0xad, 0xc5, 0xac, 0x9b,
-  0xb2, 0xa0, 0xa8, 0x2a, 0x1e, 0x5a, 0x78, 0x2a,
-  0x0a, 0x82, 0xa0, 0xa8, 0x2a, 0x0a, 0x82, 0xa2,
-  0x83, 0x79, 0xb0, 0x57, 0x82, 0x80, 0x15, 0x50,
-  0xa6, 0xc1, 0x50, 0x54, 0x15, 0x0f, 0x2d, 0x2a,
-  0x15, 0x05, 0x41, 0x50, 0x54, 0x15, 0x0f, 0x35,
-  0x00, 0x0a, 0xb8, 0x53, 0x78, 0x54, 0x15, 0x05,
-  0x41, 0x50, 0x54, 0x50, 0x6a, 0x35, 0x85, 0x08,
-  0x55, 0x82, 0xa5, 0xac, 0xa8, 0x2a, 0x0a, 0x82,
-  0xa0, 0xa8, 0xd8, 0xd4, 0x52, 0x14, 0x00, 0xad,
-  0x02, 0xa0, 0xa8, 0x2a, 0x0a, 0x9f, 0x59, 0x41,
-  0x5c, 0x2a, 0x0a, 0x87, 0x9e, 0x72, 0x05, 0x58,
-  0x2b, 0x82, 0x80, 0x4d, 0x24, 0x2a, 0x0a, 0x82,
-  0xa0, 0xa8, 0x2a, 0x1e, 0x6a, 0x29, 0x0a, 0xf0,
-  0x53, 0x60, 0xa8, 0x2a, 0x0a, 0x82, 0xa0, 0xa8,
-  0x79, 0xa8, 0xd8, 0x2a, 0xc1, 0x5f, 0x0a, 0x95,
-  0x8a, 0x82, 0xa0, 0xa9, 0x3c, 0xa8, 0x2a, 0x92,
-  0xc2, 0x0a, 0x82, 0xa0, 0xa8, 0x2a, 0x28, 0x3e,
-  0x67, 0x85, 0x6b, 0x1a, 0x41, 0xa6, 0x82, 0x80,
-  0x15, 0x70, 0xa9, 0x61, 0x50, 0x54, 0x15, 0x27,
-  0x95, 0x05, 0x52, 0x58, 0x41, 0x50, 0x54, 0x29,
-  0xe9, 0x3c, 0x2b, 0xc3, 0x42, 0x34, 0xc0, 0xa8,
-  0x2a, 0x0a, 0x82, 0xa0, 0xa8, 0x2a, 0x14, 0xd9,
-  0x52, 0x14, 0x21, 0x4c, 0x0a, 0xf8, 0x54, 0x15,
-  0x05, 0x41, 0x50, 0x25, 0xf5, 0x42, 0xae, 0x15,
-  0x05, 0x41, 0x50, 0x54, 0x30, 0xbe, 0xf8, 0x55,
-  0xc2, 0xa4, 0xc2, 0xa0, 0xa8, 0x2a, 0x00, 0x5a,
-  0x68, 0x15, 0x05, 0x41, 0x50, 0x54, 0x15, 0x0a,
-  0x6a, 0x1a, 0x0a, 0xb0, 0x56, 0x81, 0x50, 0xab,
-  0xf5, 0xb4, 0x39, 0x3c, 0xf7, 0x62, 0x9c, 0x5c,
-  0x46, 0xda, 0x52, 0x3c, 0xcd, 0xab, 0x3d, 0x68,
-  0xe8, 0x61, 0x18, 0xc4, 0x7b, 0x1b, 0xf3, 0x30,
-  0x0f, 0x3e, 0xed, 0x56, 0x6b, 0xb0, 0xe8, 0xf2,
-  0xd9, 0x94, 0x29, 0x5a, 0x85, 0xbb, 0xc9, 0x1b,
-  0xd2, 0x67, 0xcf, 0xfa, 0xe5, 0x4a, 0x72, 0x6a,
-  0xf3, 0xbc, 0xac, 0x2a, 0x7b, 0xc9, 0xc2, 0x74,
-  0xef, 0x6d, 0x87, 0x4e, 0x5d, 0xee, 0xa5, 0x11,
-  0xe2, 0x73, 0x61, 0xbb, 0x8f, 0xcf, 0xeb, 0x78,
-  0x3b, 0x0a, 0xd0, 0x74, 0x52, 0x88, 0x46, 0x94,
-  0x26, 0x02, 0x9d, 0x3f, 0x0f, 0x7f, 0x7a, 0x80,
-  0xe9, 0xb8, 0x4e, 0x97, 0x8e, 0x42, 0xd2, 0x48,
-  0x74, 0x98, 0x74, 0xec, 0xd4, 0x77, 0x91, 0x26,
-  0x22, 0xb6, 0x41, 0xe1, 0xed, 0xe1, 0xf3, 0xff,
-  0xed, 0x17, 0x77, 0x08, 0xf0, 0x15, 0xc1, 0x08,
-  0x4e, 0x87, 0xb3, 0x63, 0xb6, 0x84, 0x9a, 0x16,
-  0x7a, 0x14, 0x2d, 0x12, 0x75, 0x2a, 0x7f, 0xf0,
-  0xb8, 0xba, 0xf4, 0xfe, 0x5f, 0xdf, 0xbf, 0xa6,
-  0x1d, 0x3f, 0x3f, 0xfe, 0x7d, 0xb0, 0xe9, 0xf5,
-  0x1e, 0x15, 0x79, 0xd0, 0x27, 0xa9, 0xf2, 0xd9,
-  0xff, 0x59, 0x44, 0x1f, 0xc0, 0xf0, 0x0e, 0x9d,
-  0x98, 0xd1, 0xd2, 0xcb, 0x1e, 0xb8, 0x0f, 0x27,
-  0xea, 0xe3, 0x6f, 0xad, 0x27, 0x4f, 0x2f, 0xee,
-  0x87, 0x49, 0x71, 0x1d, 0xdf, 0x78, 0xb9, 0x3e,
-  0xa1, 0x7c, 0xf6, 0x9c, 0x2f, 0x3a, 0x79, 0x74,
-  0x6e, 0xea, 0x54, 0xf9, 0xee, 0x08, 0x42, 0x74,
-  0x7c, 0xf3, 0xf4, 0x27, 0x8d, 0x91, 0x27, 0x8e,
-  0x10, 0xc5, 0x4d, 0xc0, 0x8d, 0xd3, 0x48, 0x6b,
-  0xcf, 0xc3, 0xa0, 0x33, 0xe8, 0x74, 0xff, 0x51,
-  0xfc, 0x7d, 0xb0, 0x15, 0x3a, 0x7b, 0x6d, 0x95,
-  0xb1, 0xd3, 0xff, 0xe5, 0xb2, 0xb1, 0x16, 0xf8,
-  0x29, 0xdc, 0x86, 0x8b, 0xe2, 0x7f, 0x07, 0xaf,
-  0x55, 0xca, 0x0e, 0x9f, 0xff, 0xb2, 0xfb, 0xde,
-  0xad, 0xbd, 0xf0, 0x0f, 0x95, 0x98, 0x54, 0xd7,
-  0xc3, 0xa7, 0xc3, 0xea, 0x39, 0x86, 0x98, 0x4e,
-  0x7a, 0xfa, 0x2f, 0x1a, 0x61, 0x39, 0x80, 0xa6,
-  0xa0, 0x4e, 0x7f, 0x7f, 0xb5, 0xdd, 0x44, 0x06,
-  0xa0, 0x4e, 0x7f, 0x57, 0x2d, 0xea, 0xe9, 0x41,
-  0xa6, 0x13, 0x9b, 0x36, 0x34, 0xc2, 0x73, 0x04,
-  0x27, 0x98, 0x4e, 0x31, 0x34, 0xca, 0x4d, 0x3c,
-  0x5c, 0xc2, 0x2a, 0xa0, 0x36, 0x42, 0x09, 0x1c,
-  0xae, 0x59, 0x84, 0xdc, 0x7c, 0xf2, 0xf5, 0x29,
-  0xfb, 0x06, 0x3c, 0x88, 0xaa, 0xa8, 0x4b, 0xca,
-  0x53, 0x85, 0x57, 0x37, 0xb1, 0xca, 0x12, 0xd9,
-  0x6e, 0xf2, 0xad, 0xa7, 0xdb, 0x60, 0xfb, 0x59,
-  0xd3, 0xef, 0xe6, 0xfc, 0x68, 0xe9, 0xfe, 0xb7,
-  0x32, 0xde, 0x5a, 0x5e, 0x74, 0xfd, 0xbf, 0xef,
-  0xd4, 0xea, 0x0e, 0x8f, 0x1f, 0x60, 0x0e, 0x63,
-  0xe8, 0xb7, 0xbc, 0x25, 0x61, 0x57, 0x48, 0x72,
-  0x5e, 0x3f, 0x94, 0xba, 0x1c, 0x13, 0xff, 0x99,
-  0x7a, 0xfb, 0xf4, 0xbe, 0xfe, 0xaf, 0x8e, 0x9f,
-  0xff, 0xdf, 0xca, 0x72, 0xbd, 0xfb, 0x79, 0x6f,
-  0x6d, 0x39, 0x87, 0x4f, 0xdf, 0xd1, 0x9e, 0xb2,
-  0x9d, 0x3f, 0xfe, 0xef, 0xdf, 0xba, 0xdf, 0x5b,
-  0xd4, 0x39, 0x63, 0xa7, 0x0d, 0x6a, 0x78, 0x80,
-  0xe7, 0xff, 0xb7, 0x8a, 0xd9, 0x77, 0x60, 0xa7,
-  0x72, 0x1a, 0x20, 0x37, 0x1a, 0x88, 0x02, 0x39,
-  0x6e, 0xf7, 0x18, 0x99, 0xb7, 0xa3, 0x13, 0x9f,
-  0xff, 0xdc, 0xfc, 0xaf, 0x84, 0x7c, 0xcd, 0xf7,
-  0xb6, 0x06, 0xe7, 0x4f, 0xff, 0xf7, 0x3f, 0x3e,
-  0xd3, 0xf2, 0x97, 0xef, 0x50, 0x38, 0x21, 0x09,
-  0x51, 0x64, 0x65, 0xfd, 0x86, 0x7f, 0x2e, 0x0a,
-  0x77, 0x21, 0xa2, 0x09, 0x9f, 0xe5, 0xbe, 0x0a,
-  0x77, 0x21, 0xa2, 0xf9, 0x9f, 0x79, 0xb7, 0xf2,
-  0xbb, 0x1f, 0xd2, 0x1d, 0x4f, 0xfa, 0x8e, 0xa7,
-  0x53, 0x2f, 0xfe, 0x6c, 0x74, 0xe0, 0x84, 0x25,
-  0x4f, 0xd7, 0xb6, 0x27, 0x09, 0x4e, 0x2f, 0x22,
-  0x84, 0x4c, 0xfd, 0x82, 0x7f, 0xea, 0x18, 0xb4,
-  0xd7, 0xf9, 0x46, 0xf7, 0x9d, 0x3f, 0xfd, 0xbe,
-  0x9f, 0xee, 0x4b, 0x78, 0x00, 0x51, 0x79, 0xd3,
-  0x82, 0x10, 0x95, 0x3f, 0xb7, 0x81, 0x7f, 0x94,
-  0xdc, 0xa7, 0x17, 0x93, 0xff, 0xf3, 0x77, 0xb9,
-  0x2d, 0xed, 0xb6, 0xc0, 0xee, 0xbd, 0x72, 0x83,
-  0xa5, 0xd6, 0x45, 0x5e, 0x88, 0x90, 0xf5, 0x51,
-  0x7e, 0x86, 0xd0, 0x92, 0x31, 0x26, 0xf1, 0x8d,
-  0xcf, 0xfb, 0x2e, 0xa3, 0x5b, 0x2f, 0xee, 0x78,
-  0x82, 0x27, 0xf2, 0xe0, 0xa7, 0x72, 0x1a, 0x20,
-  0x87, 0x1e, 0x4c, 0xfd, 0xd6, 0x11, 0xf0, 0x4e,
-  0x9f, 0xb5, 0x7b, 0x07, 0xbe, 0xf3, 0xa3, 0xe7,
-  0xbb, 0xa1, 0x5c, 0x01, 0x19, 0x7f, 0x85, 0x44,
-  0xff, 0x2f, 0xef, 0xbf, 0x2d, 0xd4, 0x9d, 0x3f,
-  0xfd, 0xc1, 0xbe, 0x59, 0x7d, 0x7f, 0xe5, 0xbc,
-  0x74, 0x3d, 0x11, 0x1f, 0x3a, 0x9f, 0xd7, 0xde,
-  0xca, 0x87, 0xa9, 0x3a, 0x7b, 0xcd, 0x78, 0x27,
-  0x4f, 0xff, 0xb4, 0xa3, 0xeb, 0x96, 0x72, 0xdf,
-  0x2d, 0xa0, 0x9d, 0x3e, 0xcb, 0xd7, 0x7d, 0x76,
-  0x3f, 0x9d, 0xe4, 0x73, 0xf2, 0x5b, 0xda, 0x9e,
-  0xd6, 0x74, 0xfc, 0xc5, 0xd5, 0xdb, 0x28, 0x3a,
-  0x7f, 0xff, 0xfb, 0xd7, 0xe6, 0x77, 0xc0, 0xff,
-  0x57, 0x46, 0x5b, 0xcb, 0x7b, 0x69, 0xcc, 0x3a,
-  0x36, 0x47, 0x1f, 0x8c, 0xb8, 0xc6, 0x70, 0xef,
-  0xa9, 0xd3, 0xfe, 0xef, 0xa6, 0x0a, 0x77, 0x21,
-  0xa2, 0x11, 0x85, 0x3e, 0x2d, 0x07, 0x67, 0xff,
-  0x2e, 0x53, 0xbe, 0xfe, 0xfe, 0x8f, 0xca, 0x9d,
-  0x3f, 0xfd, 0xdd, 0x46, 0xfc, 0xb7, 0x31, 0xc1,
-  0x08, 0x4e, 0x96, 0x6c, 0x89, 0xe6, 0x93, 0x67,
-  0x04, 0x21, 0x2a, 0x7f, 0xb0, 0x1c, 0x38, 0xdb,
-  0x36, 0x29, 0xc5, 0xe4, 0xc1, 0x09, 0x53, 0x82,
-  0x10, 0x95, 0x3f, 0x75, 0x1b, 0x59, 0x6a, 0x53,
-  0x8b, 0xc8, 0xfa, 0x2d, 0x82, 0x8f, 0xa8, 0x65,
-  0x3e, 0x4f, 0x6d, 0xbd, 0x85, 0x38, 0xd9, 0xce,
-  0x08, 0x42, 0x54, 0xea, 0xa8, 0x94, 0xe2, 0xf2,
-  0x40, 0xf1, 0xff, 0xdd, 0x5a, 0x7e, 0xdb, 0xea,
-  0xfe, 0x43, 0xa7, 0xf6, 0xf1, 0xdb, 0xcd, 0x97,
-  0x63, 0xa7, 0xf5, 0xed, 0x8d, 0xb2, 0xf5, 0x3a,
-  0x05, 0x13, 0x16, 0x2c, 0xf9, 0xc4, 0x2a, 0x3b,
-  0xf2, 0x18, 0x13, 0xa9, 0xd5, 0x73, 0x75, 0x3a,
-  0x7f, 0xf6, 0x6a, 0xfb, 0xe0, 0xc4, 0x5b, 0x2b,
-  0x0e, 0x9f, 0x93, 0xd5, 0xb7, 0x9a, 0x2a, 0x7f,
-  0x7f, 0x29, 0x7d, 0x7d, 0xac, 0xe9, 0xee, 0xe1,
-  0xd6, 0x74, 0x6e, 0x3d, 0x7a, 0x0d, 0xa7, 0x97,
-  0x98, 0xd8, 0xa9, 0xc1, 0x08, 0x4a, 0x9f, 0xfe,
-  0xde, 0xa0, 0xcc, 0xfd, 0xed, 0xe5, 0xfd, 0x05,
-  0x38, 0xbc, 0x96, 0x22, 0x27, 0x98, 0x7d, 0x0a,
-  0x9f, 0x23, 0xca, 0xe9, 0x4a, 0xf4, 0x21, 0x6d,
-  0x0c, 0x39, 0xff, 0xf3, 0x31, 0x17, 0xfd, 0x7a,
-  0xed, 0xa7, 0x0b, 0xce, 0x9f, 0x2d, 0xea, 0xdb,
-  0x0e, 0x85, 0x3f, 0xcb, 0xaa, 0x4f, 0xff, 0x79,
-  0xb6, 0x7f, 0x6f, 0xf0, 0x73, 0xfd, 0xac, 0xe9,
-  0xff, 0xfe, 0xda, 0xde, 0x0e, 0x37, 0xf9, 0x9d,
-  0x7a, 0xe8, 0xfc, 0xa6, 0xe7, 0x46, 0x23, 0x03,
-  0x94, 0xe1, 0x5b, 0x1d, 0xfa, 0x13, 0x5f, 0x1c,
-  0xbe, 0xd0, 0xf4, 0xc9, 0x65, 0x1e, 0x8d, 0xa9,
-  0xa8, 0x58, 0x09, 0x1b, 0x21, 0x5f, 0x68, 0xc9,
-  0xc1, 0x09, 0x2f, 0xc3, 0x02, 0xb2, 0xa7, 0x6f,
-  0x28, 0x2b, 0x48, 0x68, 0x86, 0x1c, 0x33, 0x9b,
-  0x2f, 0xce, 0x9f, 0xfe, 0xcf, 0xba, 0xfa, 0xfd,
-  0x4d, 0x6d, 0x80, 0xe3, 0xa5, 0x4b, 0xcf, 0xbf,
-  0x61, 0xd9, 0xfa, 0xcd, 0x7a, 0xde, 0x61, 0xd3,
-  0xfe, 0xfa, 0xde, 0xdc, 0x0e, 0xa6, 0xa7, 0x4e,
-  0x6b, 0x41, 0x3a, 0x7f, 0xdd, 0xe1, 0xca, 0x5c,
-  0x10, 0x84, 0xe8, 0xe3, 0xdb, 0xa8, 0xec, 0xff,
-  0xf7, 0xd5, 0xfb, 0xb7, 0xdf, 0xdf, 0xd1, 0xf9,
-  0x53, 0xa3, 0x13, 0x3e, 0x42, 0xfb, 0x42, 0x64,
-  0x04, 0x33, 0xf9, 0x7e, 0xff, 0xe6, 0x00, 0xe9,
-  0xfc, 0xfc, 0x1a, 0xfd, 0x68, 0x3a, 0x7f, 0xf9,
-  0x5b, 0x28, 0xbb, 0x7d, 0xff, 0x94, 0x78, 0x4f,
-  0x77, 0xbc, 0xff, 0xf6, 0x5d, 0x7e, 0x99, 0x7b,
-  0x78, 0x40, 0x87, 0x4f, 0xba, 0xb9, 0xfb, 0x9d,
-  0x3a, 0xfd, 0xab, 0x3a, 0x7f, 0x5e, 0xde, 0x70,
-  0x3b, 0xc7, 0x45, 0x09, 0x91, 0xec, 0xbf, 0xf4,
-  0xcb, 0x93, 0x68, 0x3f, 0x3f, 0xb4, 0x02, 0xdb,
-  0xdc, 0xf3, 0xa7, 0xff, 0xef, 0xe5, 0x74, 0xdd,
-  0x96, 0xef, 0xe3, 0x4f, 0x5a, 0x4e, 0x9f, 0xf6,
-  0x57, 0x4c, 0x14, 0xee, 0x43, 0x44, 0x0d, 0x3e,
-  0xcb, 0xdb, 0x9f, 0xb9, 0x14, 0xbf, 0x5e, 0x9f,
-  0xff, 0xff, 0xb2, 0xf6, 0xef, 0xeb, 0xdd, 0x51,
-  0xee, 0xbb, 0x6c, 0xdb, 0x76, 0x33, 0xbf, 0x4b,
-  0xcf, 0x10, 0x5c, 0xff, 0xbb, 0xb5, 0xa7, 0x6d,
-  0xbb, 0x58, 0x4f, 0x10, 0x5c, 0xff, 0xd6, 0xf5,
-  0xbc, 0xbf, 0xbe, 0xed, 0x61, 0x3c, 0x41, 0x73,
-  0xf9, 0x7d, 0xfb, 0xee, 0xd6, 0x13, 0xc4, 0x17,
-  0x3f, 0x33, 0x36, 0xdd, 0xac, 0x27, 0x88, 0x2e,
-  0x7f, 0xff, 0xbb, 0xff, 0xf3, 0x37, 0x55, 0x2d,
-  0xe1, 0xf6, 0xba, 0x30, 0x27, 0x88, 0x2e, 0x6a,
-  0x77, 0x6c, 0x9d, 0x0a, 0x28, 0x0a, 0xb7, 0x22,
-  0x7c, 0xfe, 0x2c, 0xaa, 0x5b, 0xf2, 0x8f, 0xa7,
-  0xb8, 0x41, 0xc7, 0x4f, 0xfd, 0x6f, 0x5b, 0xcb,
-  0xfb, 0xee, 0xd6, 0x13, 0xc4, 0x17, 0x3f, 0xcd,
-  0x55, 0x3d, 0x46, 0xed, 0x61, 0x3c, 0x41, 0x73,
-  0xeb, 0xd5, 0x59, 0xb9, 0x11, 0x45, 0xbd, 0x5a,
-  0x7f, 0xf6, 0xe4, 0xb7, 0x91, 0x6f, 0x5d, 0xda,
-  0xc2, 0x78, 0x82, 0xe7, 0xff, 0xfe, 0xff, 0xfc,
-  0xcd, 0xda, 0x66, 0xea, 0xa5, 0xbc, 0x3e, 0xd7,
-  0x46, 0x04, 0xf1, 0x05, 0xc6, 0x26, 0x4d, 0x4a,
-  0x1f, 0x2e, 0x4f, 0xf5, 0xbc, 0x3e, 0xd7, 0x46,
-  0x04, 0xf1, 0x05, 0xcf, 0xff, 0x77, 0x52, 0xfa,
-  0xdb, 0xdb, 0x6c, 0xa2, 0xa5, 0x4f, 0xfb, 0x1e,
-  0xfd, 0x2a, 0x3f, 0xa3, 0x50, 0xf1, 0x05, 0xc2,
-  0x23, 0xa0, 0x52, 0x2a, 0xa1, 0x3f, 0xe4, 0xf0,
-  0xdf, 0x81, 0x5d, 0xc1, 0x3c, 0x41, 0x73, 0xf5,
-  0xbd, 0x6b, 0x78, 0x06, 0x80, 0x2e, 0x7d, 0x80,
-  0xdd, 0xac, 0x27, 0x88, 0x2e, 0x6c, 0xba, 0x1f,
-  0x9d, 0x8e, 0xe2, 0x94, 0x75, 0xd6, 0x17, 0xf3,
-  0xf3, 0x33, 0x6d, 0xda, 0xc2, 0x78, 0x82, 0xe7,
-  0xfc, 0x96, 0xf0, 0xfb, 0x5d, 0x18, 0x13, 0xc4,
-  0x17, 0x36, 0x6e, 0xe4, 0x46, 0x54, 0xfe, 0x7f,
-  0x69, 0xe6, 0x77, 0xe9, 0x79, 0xe2, 0x0b, 0x9f,
-  0xf6, 0x79, 0xb6, 0x7f, 0x36, 0xe7, 0x9e, 0x20,
-  0xb6, 0x1e, 0x14, 0x6c, 0xbb, 0x8e, 0x02, 0xcf,
-  0xc7, 0xcf, 0x58, 0xc6, 0x2f, 0x18, 0xce, 0x90,
-  0xb5, 0x0b, 0x8c, 0xf8, 0x15, 0x00, 0x14, 0xd1,
-  0x05, 0xb9, 0x10, 0x13, 0xfe, 0xc7, 0xdb, 0x9e,
-  0xde, 0xdf, 0xa5, 0x07, 0x4f, 0xe1, 0xfe, 0x6d,
-  0x6d, 0x02, 0x74, 0xfa, 0x9b, 0xf0, 0x80, 0xe9,
-  0xfb, 0x28, 0xeb, 0x2e, 0xac, 0xe8, 0xf2, 0x22,
-  0xf8, 0xd3, 0xe4, 0xf3, 0xb8, 0x68, 0x3a, 0x60,
-  0x29, 0xd3, 0xde, 0x56, 0x61, 0xd0, 0x74, 0xfd,
-  0xda, 0xee, 0xa2, 0x03, 0xa3, 0x63, 0x6f, 0xf0,
-  0xa9, 0xff, 0xfc, 0xbe, 0xdb, 0xeb, 0xa2, 0x5f,
-  0x13, 0x65, 0x4d, 0xec, 0x3a, 0x60, 0x29, 0xd3,
-  0x2e, 0xb3, 0xa7, 0xfb, 0x2f, 0x55, 0x66, 0xfc,
-  0x68, 0xe9, 0xfd, 0x5c, 0xb7, 0xab, 0xa5, 0x07,
-  0x4c, 0x10, 0x95, 0x3f, 0xdf, 0xc6, 0xdc, 0xfa,
-  0xfb, 0x63, 0xa1, 0x13, 0xf7, 0xf0, 0xd8, 0x8a,
-  0xb1, 0x5e, 0xc4, 0x40, 0x62, 0x6e, 0xc5, 0x7e,
-  0x2f, 0x53, 0xa0, 0x9a, 0xef, 0x16, 0x9c, 0x10,
-  0x84, 0xa9, 0x30, 0xa7, 0x17, 0x93, 0xee, 0x6b,
-  0xb8, 0x4a, 0x72, 0x36, 0x77, 0xc2, 0xea, 0x7f,
-  0x53, 0x75, 0xcb, 0x65, 0x07, 0x42, 0xb6, 0x40,
-  0xf9, 0x1b, 0x46, 0xb4, 0x1a, 0x4c, 0x7d, 0x1a,
-  0xa8, 0xa7, 0x5a, 0x1b, 0x1d, 0x49, 0x1e, 0xfa,
-  0x35, 0x61, 0xa3, 0xa4, 0xaf, 0xf6, 0xc9, 0x73,
-  0xd8, 0x8b, 0x73, 0xa7, 0xb1, 0x99, 0x73, 0xa7,
-  0xba, 0x8d, 0xef, 0x3a, 0x14, 0xf8, 0xe9, 0x1f,
-  0x6f, 0x20, 0x9f, 0xbf, 0xa6, 0xcc, 0xe7, 0x9d,
-  0x3f, 0xfd, 0x4b, 0xfe, 0xbb, 0x99, 0xf5, 0xd7,
-  0x7f, 0x50, 0x74, 0xfe, 0xad, 0xdb, 0x67, 0xf3,
-  0x63, 0xa1, 0x51, 0x75, 0xe2, 0xfe, 0x56, 0x9d,
-  0xdb, 0xb7, 0x9d, 0x3f, 0xfd, 0xf7, 0xee, 0xcd,
-  0xbd, 0x5a, 0x6f, 0xa7, 0x54, 0xe8, 0xdc, 0x7e,
-  0x98, 0x3f, 0x3f, 0x50, 0xd3, 0xdb, 0x83, 0x41,
-  0xd3, 0x3e, 0x83, 0xa7, 0xd6, 0xcf, 0x3e, 0xa7,
-  0x4f, 0xff, 0x59, 0x77, 0xba, 0xff, 0xe0, 0x56,
-  0xaa, 0x02, 0xa7, 0xf0, 0x30, 0x53, 0xb9, 0x0f,
-  0x10, 0x24, 0x3d, 0x16, 0x7b, 0x13, 0x8a, 0x8c,
-  0xcd, 0xef, 0x3a, 0x7a, 0xf4, 0x77, 0xce, 0x9e,
-  0xa6, 0xbd, 0x73, 0xa2, 0x83, 0xdd, 0xc1, 0x9b,
-  0x11, 0x4f, 0xef, 0xf0, 0x6b, 0x55, 0x01, 0xd3,
-  0x82, 0x10, 0x9f, 0x0f, 0xa9, 0xdd, 0xfd, 0x8b,
-  0x87, 0xd3, 0x8d, 0x4c, 0x6c, 0x89, 0x40, 0x2d,
-  0xcf, 0xff, 0xb3, 0xfe, 0xd6, 0xea, 0xde, 0xda,
-  0x73, 0xde, 0xa7, 0x45, 0x07, 0xf9, 0xac, 0x92,
-  0x35, 0x52, 0xae, 0xf7, 0x9a, 0x64, 0x32, 0xbd,
-  0x08, 0xde, 0x8c, 0xfe, 0x7d, 0xeb, 0xad, 0xea,
-  0x54, 0xf2, 0x2d, 0xea, 0x54, 0xc1, 0x09, 0x50,
-  0xf3, 0xdd, 0xc2, 0x70, 0x90, 0x4d, 0x81, 0x29,
-  0xc6, 0xba, 0x7f, 0xfd, 0x97, 0x54, 0xcc, 0xfd,
-  0xed, 0xe5, 0xfd, 0x07, 0x40, 0x0f, 0xe0, 0x24,
-  0xb3, 0xff, 0xf9, 0x5b, 0x7b, 0xe0, 0xdd, 0x7a,
-  0xe2, 0x5b, 0xbf, 0x7a, 0x9d, 0x3f, 0x9a, 0xa5,
-  0xf6, 0xd1, 0x44, 0xe9, 0xcf, 0xe1, 0x3a, 0x7c,
-  0xfc, 0xbe, 0x6c, 0x54, 0xbc, 0xd1, 0xe0, 0xdc,
-  0x6a, 0x60, 0x29, 0xd3, 0x01, 0x4e, 0x9f, 0xbf,
-  0xa3, 0xf3, 0xee, 0xf1, 0xaa, 0x00, 0xac, 0xff,
-  0xd7, 0xb6, 0x33, 0x7a, 0x83, 0x29, 0xb9, 0xd3,
-  0xfa, 0x94, 0xf0, 0xef, 0x5d, 0x8e, 0x9e, 0x03,
-  0x39, 0xf5, 0x3f, 0xbb, 0xa3, 0x4e, 0xd4, 0xca,
-  0x4e, 0x85, 0x3d, 0x8e, 0x39, 0x9c, 0x10, 0x84,
-  0xa9, 0xf6, 0x6b, 0xfe, 0x95, 0x29, 0xc5, 0xe4,
-  0xfb, 0x1c, 0x10, 0x84, 0xe8, 0x53, 0xe0, 0xb9,
-  0xcc, 0xf0, 0x7b, 0xef, 0x3a, 0x64, 0xb1, 0xd3,
-  0x82, 0x10, 0x95, 0x3f, 0x7b, 0xb5, 0xdb, 0xd7,
-  0x29, 0xc5, 0xe4, 0xfb, 0x01, 0x98, 0xd1, 0xd2,
-  0xae, 0xe4, 0x4a, 0x89, 0x8f, 0xcf, 0xa7, 0xbd,
-  0xfd, 0x1f, 0xb2, 0x3b, 0x72, 0x16, 0xd0, 0xab,
-  0x8a, 0x4f, 0x22, 0xc6, 0x4d, 0x6e, 0xc2, 0xa7,
-  0x68, 0xc6, 0x2b, 0x09, 0xcb, 0xc6, 0x1d, 0x3f,
-  0x2b, 0x04, 0x7a, 0xe7, 0x4f, 0xff, 0x79, 0x94,
-  0xbe, 0xbb, 0xb3, 0xff, 0xcf, 0x00, 0xe8, 0xb1,
-  0xfe, 0xdc, 0xaa, 0x4e, 0x6e, 0x90, 0x83, 0x89,
-  0x59, 0x54, 0xd4, 0x46, 0x2c, 0xf9, 0x49, 0xbb,
-  0x4a, 0x82, 0xca, 0xdb, 0x4f, 0x5c, 0x6e, 0x29,
-  0x1d, 0x95, 0x32, 0xa9, 0xfd, 0x09, 0xd6, 0xa7,
-  0x88, 0x86, 0x74, 0x91, 0x92, 0x82, 0xed, 0x3d,
-  0xa5, 0xd4, 0xed, 0x30, 0x4a, 0xfb, 0xfc, 0xea,
-  0xfd, 0x6b, 0x22, 0x8b, 0xd6, 0x73, 0xfa, 0x46,
-  0x6a, 0xda, 0x1d, 0x81, 0x85, 0x16, 0xa4, 0xb1,
-  0x2d, 0xf3, 0xb6, 0xad, 0xf1, 0x80, 0xc3, 0xa1,
-  0x0b, 0xe0, 0xfc, 0x41, 0xea, 0xcf, 0xe7, 0x60,
-  0xa7, 0x72, 0x1a, 0x2e, 0x39, 0xfc, 0xec, 0x14,
-  0xee, 0x43, 0x45, 0xd7, 0x3f, 0xf3, 0xb9, 0xee,
-  0xc1, 0x4e, 0xe4, 0x34, 0x4a, 0x30, 0xb0, 0x89,
-  0x45, 0x79, 0x46, 0xc7, 0x7a, 0xce, 0xd0, 0xef,
-  0xd0, 0xf0, 0xd5, 0xa0, 0x76, 0x21, 0x90, 0xaa,
-  0x71, 0x73, 0xb6, 0xf3, 0xb9, 0xff, 0xce, 0x67,
-  0x3d, 0xd8, 0x29, 0xdc, 0x86, 0x89, 0x6a, 0x7c,
-  0x29, 0xdc, 0x86, 0x88, 0xde, 0x7f, 0xdc, 0xf7,
-  0x60, 0xa7, 0x72, 0x1a, 0x25, 0xf9, 0x3b, 0x0f,
-  0xd9, 0x86, 0x13, 0xf9, 0xd8, 0x29, 0xdc, 0x86,
-  0x8a, 0xae, 0x7f, 0xb5, 0xe7, 0xf2, 0x9b, 0xf3,
-  0x0e, 0x9b, 0x6f, 0x1d, 0x3f, 0x60, 0xa7, 0x72,
-  0x1a, 0x24, 0x08, 0xdc, 0x79, 0x8e, 0x17, 0x9f,
-  0x57, 0xbf, 0xd4, 0x9d, 0x0f, 0x3c, 0xba, 0x49,
-  0x23, 0x5a, 0x3d, 0x3a, 0x1a, 0x33, 0xff, 0x7f,
-  0x28, 0x76, 0xa2, 0xff, 0xf9, 0x73, 0xa1, 0xc7,
-  0xe0, 0x25, 0x33, 0xf9, 0xd8, 0x29, 0xdc, 0x86,
-  0x8b, 0x22, 0x7f, 0x3b, 0x05, 0x3b, 0x90, 0xd1,
-  0x6b, 0xcf, 0xe7, 0x60, 0xa7, 0x72, 0x1a, 0x2e,
-  0x49, 0xf0, 0xa7, 0x72, 0x1a, 0x2e, 0xc9, 0xff,
-  0x73, 0xdd, 0x82, 0x9d, 0xc8, 0x68, 0xa3, 0xa4,
-  0xec, 0x3f, 0x66, 0x18, 0x4f, 0x85, 0x3b, 0x90,
-  0xd1, 0x4a, 0xcf, 0xff, 0xff, 0x59, 0x68, 0x5b,
-  0x79, 0xb7, 0x6d, 0x6f, 0x39, 0x2d, 0xe6, 0xac,
-  0xb4, 0x61, 0xd3, 0xe7, 0x33, 0x9e, 0xec, 0x45,
-  0x93, 0x46, 0x11, 0x42, 0xe7, 0x7b, 0xe1, 0x91,
-  0x49, 0x3f, 0xa3, 0x9f, 0x61, 0x08, 0x0e, 0xea,
-  0x77, 0x78, 0x58, 0xb6, 0x86, 0xcc, 0xff, 0x3d,
-  0xd8, 0x29, 0xdc, 0x86, 0x88, 0xe2, 0x7f, 0xbc,
-  0xec, 0x14, 0xee, 0x43, 0x45, 0x6b, 0x27, 0x72,
-  0x20, 0xae, 0x83, 0x3f, 0xf9, 0xcc, 0xe7, 0xbb,
-  0x05, 0x3b, 0x90, 0xd1, 0x2d, 0xcd, 0x94, 0x9d,
-  0x3f, 0xb6, 0xc6, 0x31, 0x7d, 0x53, 0xa2, 0x93,
-  0xc9, 0xf0, 0xb4, 0xeb, 0x6c, 0xf3, 0xa7, 0x3d,
-  0x88, 0x74, 0x1a, 0x21, 0xb9, 0xff, 0x73, 0xdd,
-  0x82, 0x9d, 0xc8, 0x68, 0x98, 0x27, 0x0e, 0x80,
-  0x2a, 0x7f, 0x7f, 0x2f, 0x75, 0x1a, 0x9d, 0x27,
-  0x2a, 0x60, 0xb4, 0x11, 0xec, 0x3a, 0x83, 0x6c,
-  0x17, 0xba, 0x36, 0xf1, 0xc9, 0xcc, 0xd0, 0x4a,
-  0x9f, 0xf7, 0x3d, 0xd8, 0x29, 0xdc, 0x86, 0x89,
-  0x8e, 0x4e, 0xf1, 0xf1, 0x30, 0x72, 0x7e, 0x5a,
-  0xee, 0xbe, 0x58, 0xe9, 0xff, 0xff, 0xe7, 0xd6,
-  0xd9, 0xa0, 0x6b, 0x6c, 0x4c, 0xae, 0xec, 0xa5,
-  0xf5, 0xf7, 0xfc, 0x74, 0xf2, 0x77, 0x21, 0xa2,
-  0xb1, 0x9f, 0xf6, 0xa6, 0x5f, 0xf9, 0xa2, 0xfe,
-  0xe7, 0x46, 0xb4, 0xc6, 0xe9, 0x2e, 0x18, 0x40,
-  0xdc, 0xae, 0x7f, 0xf2, 0xfe, 0xfa, 0xf4, 0x5f,
-  0xe2, 0x28, 0x9d, 0x3f, 0xec, 0xda, 0xd9, 0x5a,
-  0x5e, 0xb6, 0x3a, 0x7f, 0xff, 0xef, 0xe9, 0x46,
-  0x26, 0xef, 0xe8, 0xdf, 0xbb, 0x29, 0x7e, 0x69,
-  0xf0, 0x54, 0xe9, 0xfd, 0xaa, 0xa8, 0x69, 0xed,
-  0xc1, 0xa0, 0xe9, 0xd6, 0xf3, 0xb1, 0x38, 0xb4,
-  0x45, 0xb2, 0x4d, 0xcf, 0xf5, 0x1f, 0xa6, 0xd1,
-  0xa3, 0xa7, 0xdd, 0xfa, 0x34, 0xa9, 0xd1, 0xf3,
-  0xc1, 0xa8, 0xc4, 0xf2, 0x8f, 0x7c, 0xe9, 0xea,
-  0xd5, 0x40, 0x74, 0x58, 0xf0, 0x02, 0x3f, 0x3e,
-  0x57, 0x83, 0x47, 0x9d, 0x39, 0x7e, 0xf3, 0xa1,
-  0xa3, 0xc3, 0xb9, 0x44, 0xfc, 0xac, 0xcf, 0xfb,
-  0x59, 0xd2, 0xa9, 0xd1, 0xe3, 0x7d, 0xc5, 0xd3,
-  0x01, 0x4a, 0x98, 0x21, 0x2a, 0x3c, 0x6a, 0xc2,
-  0x2b, 0x3f, 0xb9, 0xff, 0xcb, 0xdb, 0xc5, 0x38,
-  0xd0, 0xcf, 0x6d, 0xd4, 0xd4, 0xe9, 0xcb, 0xf6,
-  0x8e, 0x9b, 0xea, 0x74, 0x34, 0x6c, 0x44, 0x72,
-  0x78, 0x41, 0x8d, 0xe7, 0x4e, 0xde, 0x3a, 0xce,
-  0x85, 0x45, 0xbe, 0x2a, 0x78, 0x86, 0xc4, 0x73,
-  0x5a, 0xe7, 0x4e, 0x08, 0x42, 0x54, 0xff, 0xd8,
-  0x9b, 0x2d, 0x1b, 0xf2, 0xdd, 0x49, 0x4e, 0x2f,
-  0x27, 0xbc, 0x2d, 0xfb, 0x1d, 0x21, 0x3a, 0x7c,
-  0xcf, 0x5c, 0x1c, 0x74, 0x50, 0x7b, 0x7a, 0xb2,
-  0x5d, 0x03, 0xe7, 0xf2, 0x7a, 0xbf, 0xc6, 0xdc,
-  0x74, 0xd9, 0x73, 0xa2, 0x93, 0xc8, 0xb1, 0x9c,
-  0xff, 0xf5, 0xfd, 0x5b, 0x66, 0xdf, 0xc6, 0xdf,
-  0xca, 0x9d, 0x27, 0x2a, 0xe4, 0xe6, 0xcc, 0x58,
-  0xca, 0x2c, 0x2c, 0x6c, 0xb4, 0x3e, 0x78, 0xef,
-  0xe6, 0x55, 0x85, 0x85, 0xdf, 0x77, 0x91, 0xcf,
-  0x85, 0x3b, 0x90, 0xd1, 0x5b, 0xcf, 0xfb, 0x9e,
-  0xec, 0x14, 0xee, 0x43, 0x44, 0xe1, 0x27, 0x61,
-  0xfb, 0x30, 0xc2, 0x7c, 0x29, 0xdc, 0x86, 0x8b,
-  0x46, 0x7b, 0x1a, 0xf6, 0xb3, 0xa4, 0xec, 0x3d,
-  0x4b, 0x18, 0x4f, 0x27, 0x72, 0x1a, 0x2d, 0xa9,
-  0xfa, 0xca, 0xc5, 0xf6, 0xc7, 0x4c, 0xec, 0x13,
-  0xd8, 0xb9, 0x5c, 0xfe, 0x76, 0x0a, 0x77, 0x21,
-  0xa2, 0xe5, 0x9f, 0xce, 0xc1, 0x4e, 0xe4, 0x34,
-  0x5d, 0xb0, 0xac, 0xd5, 0xca, 0x0a, 0x1f, 0x1d,
-  0x06, 0xd0, 0xcf, 0xd7, 0x2b, 0x3b, 0xd3, 0xa7,
-  0x7a, 0xb8, 0xc8, 0x2c, 0xf7, 0xf7, 0xfa, 0x96,
-  0x5c, 0xee, 0x7f, 0x3b, 0x05, 0x3b, 0x90, 0xd1,
-  0x53, 0xcf, 0x27, 0x72, 0x1a, 0x2b, 0x99, 0xfc,
-  0xec, 0x14, 0xee, 0x43, 0x45, 0x9d, 0x02, 0x7c,
-  0xd6, 0x2b, 0x9f, 0x0a, 0x77, 0x21, 0xa2, 0x42,
-  0x9f, 0xef, 0x53, 0x5b, 0xfd, 0x59, 0x53, 0xa6,
-  0x7b, 0xb0, 0xfa, 0x80, 0x61, 0x3c, 0xdd, 0x2c,
-  0xac, 0x3a, 0x7f, 0x65, 0xab, 0x5c, 0x1a, 0x0e,
-  0x93, 0xb1, 0x31, 0x1e, 0x84, 0x5d, 0x4b, 0x6e,
-  0x4f, 0x3f, 0xf9, 0xcc, 0xe7, 0xbb, 0x05, 0x3b,
-  0x90, 0xd1, 0x3e, 0x42, 0x2a, 0x4b, 0xd5, 0xc7,
-  0x65, 0x64, 0x79, 0xf0, 0xa7, 0x72, 0x1a, 0x2b,
-  0x29, 0xff, 0x73, 0xdd, 0x82, 0x9d, 0xc8, 0x68,
-  0x9b, 0xa6, 0xf3, 0xb0, 0xfd, 0x98, 0x61, 0x3e,
-  0x14, 0xee, 0x43, 0x44, 0xad, 0x3f, 0xda, 0xed,
-  0xed, 0xda, 0x26, 0x54, 0xe9, 0xf3, 0x99, 0xcf,
-  0x76, 0x1f, 0x6f, 0x18, 0x4f, 0x85, 0x3b, 0x90,
-  0xd1, 0x2e, 0x4f, 0xf7, 0xb9, 0xf7, 0xfa, 0xb2,
-  0xa7, 0x4f, 0x36, 0xf7, 0xd4, 0xe9, 0xf3, 0x99,
-  0xcf, 0x76, 0x22, 0x2e, 0xc6, 0x1c, 0x71, 0x3f,
-  0xf3, 0xb9, 0xee, 0xc1, 0x4e, 0xe4, 0x34, 0x47,
-  0x73, 0xfd, 0x7b, 0x63, 0xdd, 0xdf, 0xa9, 0xd3,
-  0xf3, 0x73, 0xea, 0x99, 0xf3, 0xa7, 0xed, 0x53,
-  0xf9, 0x6e, 0xb9, 0xd3, 0xe1, 0x4e, 0xe4, 0x34,
-  0x54, 0x33, 0xec, 0xb5, 0xf2, 0x83, 0xa4, 0xed,
-  0x51, 0x16, 0xed, 0xc2, 0xfc, 0x31, 0xb9, 0x84,
-  0xf8, 0x53, 0xb9, 0x0d, 0x15, 0x44, 0xff, 0xb9,
-  0xee, 0xc1, 0x4e, 0xe4, 0x34, 0x4d, 0x72, 0x76,
-  0x1f, 0xb3, 0x0c, 0x27, 0xf3, 0xb0, 0x53, 0xb9,
-  0x0d, 0x15, 0x64, 0xff, 0xce, 0xe7, 0xbb, 0x05,
-  0x3b, 0x90, 0xd1, 0x22, 0x4f, 0x85, 0x3b, 0x90,
-  0xd1, 0x69, 0x4f, 0xfb, 0x9e, 0xec, 0x14, 0xee,
-  0x43, 0x44, 0xfb, 0x27, 0x61, 0xfb, 0x30, 0xc2,
-  0x7f, 0xf3, 0x99, 0xcf, 0x76, 0x0a, 0x77, 0x21,
-  0xa2, 0x84, 0x9f, 0x5b, 0xd4, 0x28, 0x9d, 0x3e,
-  0x14, 0xee, 0x43, 0x45, 0x1f, 0x3f, 0xff, 0x66,
-  0xd6, 0x5d, 0xee, 0xbf, 0xf8, 0x15, 0xaa, 0x80,
-  0xa9, 0xf3, 0x99, 0xcf, 0x72, 0xa2, 0xd3, 0x09,
-  0xf5, 0x0c, 0x21, 0x57, 0x6b, 0xa8, 0x86, 0x43,
-  0xd2, 0xf1, 0x33, 0x5c, 0x3b, 0xd2, 0x18, 0x34,
-  0x93, 0xb4, 0x77, 0x68, 0x61, 0x00, 0x9e, 0xf1,
-  0x83, 0x4f, 0xe7, 0x60, 0xa7, 0x72, 0x1a, 0x22,
-  0x29, 0xfb, 0x05, 0x3b, 0x90, 0xd1, 0x15, 0xcf,
-  0xf6, 0xad, 0xd8, 0x29, 0xdc, 0x86, 0x8a, 0xe2,
-  0x1c, 0x7f, 0x5c, 0x6b, 0x3d, 0x96, 0xeb, 0x9d,
-  0x3f, 0xb3, 0xc2, 0x00, 0x69, 0x53, 0xa5, 0xaa,
-  0x7c, 0xf4, 0xea, 0x41, 0x3f, 0xf7, 0x79, 0xfe,
-  0xfd, 0xf4, 0xb0, 0xe1, 0xd3, 0xec, 0xf6, 0xc3,
-  0x87, 0x4e, 0xbd, 0x7d, 0x63, 0xea, 0xba, 0x24,
-  0xf8, 0x53, 0xb9, 0x0d, 0x14, 0xf4, 0x37, 0x11,
-  0xf6, 0xb0, 0x97, 0xc3, 0x49, 0xff, 0xdc, 0xf7,
-  0x6d, 0xfe, 0x0d, 0x6a, 0xa0, 0x3a, 0x1c, 0x88,
-  0x1d, 0x8d, 0xe7, 0x3b, 0x6c, 0x3a, 0x7c, 0xaf,
-  0x06, 0x8f, 0x3a, 0x79, 0x3b, 0x90, 0xd1, 0x59,
-  0xc3, 0x47, 0xa6, 0x25, 0x13, 0xf5, 0x0c, 0x5f,
-  0xbe, 0xa7, 0x4e, 0x5a, 0x3c, 0x74, 0xfa, 0xe0,
-  0xdf, 0xf7, 0x9d, 0x3e, 0xc6, 0xa8, 0xd0, 0x07,
-  0x49, 0xd8, 0x8c, 0x01, 0x22, 0xb1, 0x77, 0x0e,
-  0x6f, 0x2a, 0x9f, 0xf9, 0xdc, 0xf7, 0x60, 0xa7,
-  0x72, 0x1a, 0x24, 0x59, 0xfc, 0xec, 0x14, 0xee,
-  0x43, 0x45, 0x93, 0x3f, 0x9d, 0x82, 0x9d, 0xc8,
-  0x68, 0xb6, 0x27, 0x65, 0x70, 0xe9, 0xf0, 0xa7,
-  0x72, 0x1a, 0x2d, 0xb9, 0x39, 0xe7, 0x95, 0x83,
-  0x53, 0xfe, 0x6e, 0x37, 0x35, 0x5a, 0xf6, 0xcf,
-  0xa8, 0x0e, 0x9f, 0x97, 0xef, 0xdb, 0x46, 0x1d,
-  0x3e, 0x14, 0xee, 0x43, 0x45, 0xe1, 0x3d, 0x7d,
-  0x4c, 0xb1, 0xd3, 0xff, 0x2e, 0xf6, 0x52, 0xfb,
-  0xe7, 0xef, 0x53, 0xa7, 0xd9, 0xf0, 0x37, 0xa9,
-  0xd3, 0xe5, 0xdf, 0xa7, 0x54, 0xe9, 0xd7, 0x50,
-  0x1d, 0x27, 0x6a, 0xbc, 0x9c, 0x25, 0x09, 0xb8,
-  0x5f, 0x49, 0x85, 0x89, 0x00, 0x8f, 0xf2, 0x9b,
-  0x94, 0xce, 0xf6, 0x52, 0x74, 0xf8, 0x53, 0xb9,
-  0x0d, 0x17, 0xa4, 0xff, 0xbf, 0xd7, 0x7a, 0xeb,
-  0xbf, 0xa8, 0x3a, 0x7d, 0x8c, 0xb7, 0x6c, 0x74,
-  0x9d, 0xb2, 0x2d, 0x30, 0x73, 0x79, 0x83, 0x7a,
-  0x0c, 0x2b, 0x21, 0xf2, 0x88, 0x5a, 0xe4, 0x7e,
-  0x08, 0x49, 0xe8, 0xcb, 0xc5, 0x3d, 0x89, 0x80,
-  0x3b, 0xfc, 0x21, 0x74, 0x8e, 0xac, 0x31, 0x9b,
-  0x4f, 0x65, 0xba, 0xe7, 0x4f, 0xec, 0xf0, 0x80,
-  0x1a, 0x54, 0xe9, 0x6a, 0x9f, 0x3d, 0x3a, 0x90,
-  0x4f, 0x85, 0x3b, 0x90, 0xd1, 0x11, 0xcf, 0xff,
-  0x5b, 0x4a, 0xd7, 0x19, 0xfc, 0x6d, 0xb9, 0x5b,
-  0xa9, 0xd3, 0xfe, 0x7a, 0xd0, 0x39, 0x7b, 0xfa,
-  0xe7, 0x4f, 0xff, 0xf2, 0xdb, 0xbd, 0x75, 0xb7,
-  0xf2, 0xf6, 0xf5, 0xb3, 0xc1, 0x3a, 0x6a, 0x18,
-  0x54, 0xc1, 0x09, 0x53, 0xff, 0x3d, 0xc9, 0x6f,
-  0x35, 0x65, 0xa1, 0xc0, 0x35, 0xa1, 0x17, 0x9f,
-  0xd9, 0xab, 0xfe, 0x5b, 0xae, 0x74, 0xff, 0xfc,
-  0x8e, 0x1e, 0xff, 0xae, 0xe1, 0x5b, 0xff, 0x80,
-  0x74, 0x37, 0x15, 0x38, 0xe1, 0x6a, 0x18, 0x52,
-  0xb4, 0x27, 0xdd, 0x09, 0x2b, 0xae, 0xb6, 0x35,
-  0x9f, 0x0a, 0x77, 0x21, 0xa2, 0x2e, 0x9f, 0x5c,
-  0x1b, 0xfe, 0xf2, 0xd9, 0xed, 0x27, 0x61, 0xf3,
-  0xf1, 0x84, 0x39, 0x30, 0x87, 0xc3, 0x8a, 0x7f,
-  0xe6, 0x73, 0xdd, 0x82, 0x9d, 0xc8, 0x68, 0x99,
-  0xa7, 0x52, 0xb5, 0x3a, 0x72, 0x79, 0x87, 0x4e,
-  0xd5, 0x5a, 0x9a, 0xa8, 0xe9, 0xf2, 0x75, 0xbc,
-  0xd1, 0xd3, 0xff, 0x37, 0xfa, 0xfe, 0x4f, 0x6d,
-  0x7c, 0x43, 0xa7, 0xff, 0xfb, 0x4e, 0xfa, 0x7f,
-  0x36, 0xb6, 0x9b, 0xac, 0xaf, 0x15, 0xa0, 0xe8,
-  0xc4, 0x58, 0xd9, 0x1e, 0x7f, 0xfd, 0xb7, 0xbf,
-  0x46, 0x57, 0xdd, 0x67, 0x04, 0x21, 0x2a, 0x79,
-  0x3b, 0x90, 0xd1, 0x67, 0xcf, 0xff, 0x78, 0x6d,
-  0xdb, 0xb1, 0xb7, 0xf2, 0xb9, 0xf3, 0xa7, 0x04,
-  0x21, 0x2a, 0x7f, 0xdc, 0xfa, 0xff, 0x13, 0x6c,
-  0x12, 0x9c, 0x5e, 0x4f, 0xf2, 0xdb, 0xdb, 0x7f,
-  0xb9, 0xa3, 0xa7, 0xfb, 0xdf, 0xdb, 0x7e, 0xda,
-  0x5e, 0xa7, 0x42, 0x27, 0x66, 0x2b, 0x16, 0x2b,
-  0x03, 0x6d, 0xd2, 0xdb, 0x1c, 0xcf, 0xff, 0xff,
-  0xd9, 0x80, 0xae, 0x67, 0xf5, 0xef, 0x1f, 0xae,
-  0x59, 0xd5, 0xfe, 0x50, 0xcc, 0x61, 0xd3, 0xaa,
-  0xb4, 0x1d, 0x3b, 0x53, 0x2c, 0x74, 0x3d, 0x18,
-  0x95, 0x84, 0x55, 0xc7, 0x27, 0xa9, 0x06, 0x88,
-  0x74, 0xfa, 0xdf, 0x5c, 0x13, 0x27, 0xfd, 0xe1,
-  0x7e, 0x0d, 0x1a, 0x76, 0xc6, 0x88, 0x35, 0xc6,
-  0x96, 0x7d, 0xc9, 0xe6, 0x29, 0xd3, 0xf3, 0xed,
-  0xfe, 0xa6, 0xe7, 0x4b, 0x10, 0xf4, 0xfe, 0x4b,
-  0x3f, 0xff, 0xee, 0x0d, 0xf2, 0xd7, 0x5c, 0xfd,
-  0x37, 0xc1, 0xf5, 0x1c, 0xc3, 0xa1, 0xe9, 0xa0,
-  0x64, 0x2b, 0xfe, 0x4d, 0x3f, 0x0e, 0x6d, 0x5b,
-  0x29, 0xd3, 0xff, 0xfb, 0x4f, 0xf6, 0xbd, 0xdb,
-  0xff, 0xd7, 0xaf, 0xa9, 0xb7, 0x82, 0x74, 0xff,
-  0xff, 0x56, 0xaa, 0x37, 0x57, 0x33, 0x2f, 0x5d,
-  0xf5, 0xe7, 0xe1, 0xd3, 0xd6, 0xcf, 0x36, 0x3a,
-  0x3c, 0x88, 0x9b, 0x33, 0x4c, 0xcd, 0x50, 0xd1,
-  0x7e, 0x4f, 0xfc, 0xfb, 0xe8, 0xf7, 0xb2, 0xf7,
-  0x56, 0x1d, 0x3f, 0xf7, 0xb3, 0xf9, 0x95, 0xdc,
-  0xfa, 0xb0, 0xe8, 0xa5, 0x11, 0x75, 0x46, 0x9e,
-  0xff, 0xd5, 0x0e, 0x85, 0x4c, 0x6b, 0x62, 0x3c,
-  0x85, 0x9f, 0x12, 0x4f, 0xff, 0xfc, 0xde, 0xb6,
-  0xf3, 0x1c, 0xd3, 0xf8, 0x77, 0xdb, 0xd4, 0xd5,
-  0x3d, 0x41, 0xd3, 0xed, 0x32, 0xbe, 0xf9, 0xd3,
-  0xdb, 0xf4, 0xea, 0x9d, 0x3f, 0xeb, 0xd4, 0x1e,
-  0xa6, 0x97, 0xe5, 0xce, 0x85, 0x3e, 0x5c, 0x24,
-  0x99, 0xad, 0x0e, 0x93, 0x0e, 0x8a, 0x4d, 0x43,
-  0x76, 0x31, 0x3f, 0xff, 0xeb, 0x7a, 0x9b, 0xe5,
-  0x37, 0x11, 0x5b, 0x83, 0x7f, 0xdf, 0x6c, 0x3a,
-  0x70, 0x42, 0x12, 0xa7, 0xb6, 0xdb, 0xbe, 0x53,
-  0x8b, 0xc9, 0xff, 0x75, 0x93, 0xdd, 0xba, 0xbd,
-  0x63, 0xa1, 0x53, 0x22, 0x42, 0x7f, 0x42, 0x2e,
-  0xc6, 0x53, 0xff, 0x67, 0xe9, 0xbe, 0x0f, 0xa8,
-  0xe6, 0x1d, 0x3e, 0xcb, 0xbd, 0x96, 0x3a, 0x14,
-  0xfa, 0xea, 0x89, 0x30, 0x2c, 0x74, 0xfd, 0x43,
-  0x4f, 0x6e, 0x0d, 0x07, 0x4f, 0xed, 0x76, 0xcb,
-  0xdb, 0xd7, 0x3a, 0x6f, 0x09, 0xd1, 0xaa, 0x8f,
-  0xfb, 0xc6, 0x96, 0x35, 0x9f, 0xfd, 0xb6, 0xcb,
-  0xb0, 0xad, 0xfc, 0x9e, 0xd8, 0xe9, 0x39, 0xba,
-  0x33, 0x3a, 0xb5, 0x58, 0x71, 0x46, 0xe8, 0x2b,
-  0xda, 0x1b, 0x19, 0x1e, 0xad, 0x31, 0x8e, 0x78,
-  0xd5, 0xa8, 0xe2, 0x04, 0xd5, 0x85, 0x96, 0x94,
-  0x1b, 0xc8, 0x20, 0x7a, 0xfc, 0x23, 0x6b, 0x1b,
-  0x55, 0xe1, 0x58, 0x12, 0x1d, 0x48, 0x4a, 0x6f,
-  0x35, 0x87, 0x33, 0xa4, 0xad, 0x4d, 0x36, 0x9f,
-  0xfc, 0xe6, 0x73, 0xdd, 0x82, 0x9d, 0xc8, 0x68,
-  0x9b, 0x27, 0xf3, 0xb0, 0x53, 0xb9, 0x0d, 0x15,
-  0x6c, 0xfe, 0x7b, 0xf4, 0xbf, 0xd5, 0xe7, 0x4f,
-  0x65, 0xba, 0xe7, 0x4b, 0x54, 0xc3, 0xd4, 0xf9,
-  0xa4, 0xf8, 0x53, 0xb9, 0x0d, 0x15, 0xa4, 0xff,
-  0xf2, 0x28, 0xe0, 0x39, 0x9c, 0xf5, 0xf2, 0x1d,
-  0x3f, 0xfc, 0xfa, 0xe7, 0xd5, 0x9d, 0x97, 0xba,
-  0xb0, 0xe9, 0xaf, 0x75, 0x44, 0xbf, 0x25, 0x4f,
-  0xe5, 0x6d, 0xbe, 0xff, 0x50, 0x1d, 0x3f, 0x51,
-  0x96, 0xf6, 0x30, 0xe9, 0xfe, 0xc6, 0xff, 0xa8,
-  0x69, 0x7d, 0x4e, 0x9f, 0xcf, 0xcb, 0xf7, 0xc1,
-  0xa1, 0xd2, 0x73, 0x71, 0x3f, 0x2c, 0x2c, 0xf4,
-  0x31, 0xec, 0x5b, 0xc6, 0xdf, 0x2d, 0xb9, 0xe4,
-  0xfe, 0x76, 0x0a, 0x77, 0x21, 0xa2, 0xc0, 0x9f,
-  0x0a, 0x77, 0x21, 0xa2, 0x75, 0x9f, 0xff, 0xd6,
-  0x5a, 0x36, 0xc6, 0x3a, 0xb5, 0xcb, 0x7a, 0xba,
-  0x50, 0x74, 0xf9, 0xcc, 0xe7, 0xbb, 0x11, 0x2a,
-  0xd1, 0x84, 0xf8, 0x53, 0xb9, 0x0d, 0x16, 0xcc,
-  0xff, 0x80, 0xb5, 0x75, 0xbc, 0x9c, 0x27, 0x49,
-  0xd8, 0x7d, 0x9c, 0x61, 0x3c, 0x9d, 0xc8, 0x68,
-  0xb9, 0xa4, 0xc3, 0xa6, 0x76, 0x09, 0xbb, 0x09,
-  0x5c, 0xfe, 0x76, 0x0a, 0x77, 0x21, 0xa2, 0xef,
-  0x9e, 0x76, 0xbd, 0x80, 0x74, 0x2b, 0x69, 0x31,
-  0x94, 0xeb, 0xb4, 0x30, 0xa5, 0x4b, 0xd2, 0xa0,
-  0x45, 0xc9, 0x90, 0xd0, 0x04, 0x2b, 0x2a, 0xc3,
-  0x72, 0xbd, 0xe7, 0x73, 0xfe, 0xff, 0x39, 0x6b,
-  0x56, 0x73, 0xce, 0x9f, 0xdf, 0xa3, 0x1b, 0xee,
-  0xba, 0xce, 0x9f, 0x0a, 0x77, 0x21, 0xa2, 0x57,
-  0x9e, 0xd3, 0x85, 0xe7, 0x4f, 0xff, 0xef, 0x5f,
-  0x99, 0xdf, 0x05, 0x83, 0xdf, 0xa1, 0x3d, 0x41,
-  0xd2, 0xb6, 0xc8, 0x83, 0xe2, 0x19, 0xdc, 0xf7,
-  0x2a, 0x62, 0x98, 0x71, 0x58, 0x59, 0xce, 0xba,
-  0xec, 0x54, 0xff, 0xeb, 0x77, 0xae, 0xaf, 0xf0,
-  0xd1, 0xa0, 0x0a, 0x9f, 0xdc, 0x8e, 0xd8, 0x5b,
-  0xb7, 0x29, 0xf3, 0xd4, 0x72, 0x4e, 0x45, 0x49,
-  0x6c, 0x8d, 0x45, 0xb4, 0x2b, 0x27, 0xff, 0x39,
-  0x9c, 0xf7, 0x60, 0xa7, 0x72, 0x1a, 0x26, 0x19,
-  0xff, 0xfb, 0x1d, 0xbc, 0x78, 0x0e, 0xd7, 0x77,
-  0x85, 0x6a, 0xf3, 0xa7, 0xfe, 0xd5, 0x32, 0x97,
-  0xe9, 0xd7, 0xfa, 0xbc, 0xe9, 0xfe, 0xfa, 0xf5,
-  0x17, 0xd7, 0xc2, 0x74, 0xfc, 0xc5, 0xcf, 0xdf,
-  0x50, 0xe9, 0xf2, 0xe7, 0xef, 0xa8, 0x74, 0xfd,
-  0x6f, 0x5e, 0xbd, 0x4e, 0xe3, 0xd8, 0x61, 0x7c,
-  0xff, 0xff, 0xbf, 0x81, 0x6f, 0xbe, 0x5b, 0x77,
-  0xf2, 0x8f, 0x67, 0xe9, 0x7d, 0x4e, 0x9f, 0x9b,
-  0x6f, 0xbf, 0xd4, 0x07, 0x4f, 0xfe, 0x5b, 0x81,
-  0x5f, 0x94, 0xde, 0x8d, 0x02, 0x74, 0x29, 0xfe,
-  0xf8, 0xc6, 0x7e, 0xaf, 0xb5, 0xb3, 0xae, 0x74,
-  0xff, 0xff, 0x87, 0x1b, 0x2f, 0xef, 0xbb, 0x7f,
-  0xd6, 0xdd, 0xeb, 0xad, 0xea, 0x74, 0xb2, 0x94,
-  0x4f, 0x89, 0x7c, 0xf7, 0xd4, 0x1b, 0xce, 0x9e,
-  0xed, 0xfb, 0x61, 0xd2, 0x73, 0x71, 0x5a, 0x0e,
-  0xc9, 0x49, 0x09, 0x16, 0x92, 0x2d, 0x0f, 0x0f,
-  0xc3, 0x02, 0xe5, 0x1a, 0x11, 0xcf, 0x85, 0x3b,
-  0x90, 0xd1, 0x57, 0x4f, 0xf3, 0xdd, 0x82, 0x9d,
-  0xc8, 0x68, 0x8f, 0x24, 0xec, 0x3f, 0x1e, 0x30,
-  0x9f, 0xce, 0xc1, 0x4e, 0xe4, 0x34, 0x58, 0x33,
-  0xf9, 0xd8, 0x29, 0xdc, 0x86, 0x8b, 0x2a, 0x7f,
-  0x3b, 0x05, 0x3b, 0x90, 0xd1, 0x69, 0xcf, 0x27,
-  0x72, 0x1a, 0x2d, 0xc9, 0xff, 0x97, 0x07, 0x3f,
-  0xba, 0xd9, 0x48, 0x4e, 0x81, 0x3e, 0xfa, 0x95,
+  0xf6, 0xed, 0x79, 0xf0, 0x1d, 0x3f, 0xfd, 0x94,
+  0xbe, 0xfa, 0x50, 0xeb, 0x73, 0x3d, 0x53, 0xa6,
+  0xb3, 0xb1, 0x13, 0x1f, 0x45, 0x87, 0x26, 0x7a,
+  0xb1, 0x87, 0xcf, 0xe7, 0x60, 0xa7, 0x72, 0x1a,
+  0x2c, 0xd9, 0xff, 0xce, 0x67, 0x3d, 0xd8, 0x29,
+  0xdc, 0x86, 0x8a, 0x02, 0x7f, 0x7f, 0x2e, 0x0d,
+  0xff, 0x68, 0xe9, 0xb7, 0x54, 0xe9, 0xe4, 0xee,
+  0x43, 0x45, 0xbf, 0x3f, 0x6f, 0xbf, 0x27, 0x09,
+  0xd0, 0x27, 0xae, 0x02, 0xb9, 0xf5, 0xdf, 0x5d,
+  0xf5, 0x3a, 0x7f, 0x2b, 0x6d, 0xf7, 0xfa, 0x80,
+  0xe9, 0xee, 0xf7, 0xee, 0x74, 0xfe, 0xd2, 0x9a,
+  0xaa, 0x63, 0x0e, 0x9d, 0xfc, 0x79, 0xd2, 0x72,
+  0xa7, 0x2a, 0xf3, 0x6c, 0x6f, 0x12, 0x1b, 0x15,
+  0x00, 0xdb, 0xe4, 0x37, 0x33, 0x9f, 0xf7, 0x3d,
+  0xd8, 0x29, 0xdc, 0x86, 0x8a, 0x52, 0x7f, 0x9e,
+  0xec, 0x14, 0xee, 0x43, 0x44, 0x9d, 0x27, 0x31,
+  0x10, 0xfc, 0x8d, 0x0a, 0xee, 0x2e, 0x68, 0x8c,
+  0x8b, 0x6b, 0x5a, 0xa3, 0x91, 0xd3, 0xa4, 0x2c,
+  0x7c, 0x4f, 0xab, 0x85, 0x63, 0x44, 0xcc, 0x97,
+  0x0d, 0x62, 0x90, 0x1d, 0xd6, 0x3e, 0x76, 0xd0,
+  0xfc, 0x9f, 0x0a, 0x77, 0x21, 0xa2, 0x1f, 0x9f,
+  0xf7, 0x3d, 0xd8, 0x29, 0xdc, 0x86, 0x89, 0x4e,
+  0x4e, 0xc3, 0xf6, 0x61, 0x84, 0xfe, 0x76, 0x0a,
+  0x77, 0x21, 0xa2, 0x27, 0x9f, 0xce, 0xc1, 0x4e,
+  0xe4, 0x34, 0x46, 0x33, 0xff, 0x9c, 0xce, 0x7b,
+  0xb0, 0x53, 0xb9, 0x0d, 0x13, 0xcc, 0x2a, 0x3b,
+  0xe8, 0x27, 0x79, 0xdd, 0x8e, 0xe7, 0xc2, 0x9d,
+  0xc8, 0x68, 0x88, 0x27, 0xfd, 0xcf, 0x76, 0x0a,
+  0x77, 0x21, 0xa2, 0x54, 0x93, 0xb0, 0xfd, 0x98,
+  0x61, 0x3f, 0x9d, 0x82, 0x9d, 0xc8, 0x68, 0x8a,
+  0x27, 0xf3, 0xb0, 0x53, 0xb9, 0x0d, 0x11, 0x94,
+  0xff, 0xe7, 0x33, 0x9e, 0xec, 0x14, 0xee, 0x43,
+  0x44, 0xcb, 0x3f, 0x9d, 0x82, 0x9d, 0xc8, 0x68,
+  0xa9, 0x27, 0xf3, 0xb0, 0x53, 0xb9, 0x0d, 0x15,
+  0xd4, 0xfe, 0x76, 0x0a, 0x77, 0x21, 0xa2, 0xc5,
+  0x9f, 0xf9, 0x9c, 0xf7, 0x60, 0xa7, 0x72, 0x1a,
+  0x27, 0xa9, 0xfe, 0x0b, 0xb9, 0x7d, 0xa9, 0xe6,
+  0xf3, 0xa1, 0xc8, 0x8a, 0x54, 0xc9, 0xfb, 0x55,
+  0xd9, 0x7f, 0x69, 0x53, 0xa7, 0x85, 0x97, 0xa4,
+  0xe9, 0xc9, 0x96, 0x2a, 0x7f, 0xfe, 0xb7, 0xfb,
+  0x5f, 0x85, 0x5e, 0xfc, 0xa8, 0x00, 0xa7, 0x4f,
+  0xff, 0xc3, 0xe6, 0xfe, 0x63, 0x94, 0x47, 0xcd,
+  0xe9, 0xa5, 0x07, 0x4f, 0x93, 0xd6, 0xde, 0xc3,
+  0xa7, 0xff, 0x75, 0x7f, 0x80, 0x75, 0xbc, 0x9c,
+  0x27, 0x4f, 0xaf, 0x65, 0x62, 0x1d, 0x3f, 0xfb,
+  0xfb, 0x95, 0x7e, 0xac, 0xdd, 0xba, 0xda, 0x87,
+  0x4d, 0xd4, 0x9d, 0x3f, 0xba, 0xbd, 0x6d, 0x3f,
+  0x41, 0xd1, 0xf3, 0xca, 0xd0, 0x5a, 0x3c, 0xa8,
+  0x40, 0x56, 0xd8, 0xc1, 0x62, 0x9f, 0xa3, 0xdc,
+  0x99, 0xbe, 0x13, 0x93, 0xbf, 0xd7, 0x35, 0x42,
+  0xd3, 0xbf, 0xea, 0x9d, 0x20, 0xea, 0x87, 0x88,
+  0xa5, 0x13, 0xc2, 0xdb, 0x98, 0x74, 0x61, 0xe7,
+  0x78, 0xb2, 0x7f, 0xde, 0xb7, 0x5d, 0x5a, 0xaf,
+  0x98, 0x74, 0xfd, 0xef, 0xeb, 0xf6, 0x54, 0xe9,
+  0xef, 0xed, 0xbb, 0x59, 0xd3, 0xf6, 0x54, 0x3d,
+  0xfa, 0x0e, 0x8e, 0x3d, 0x4f, 0x93, 0xcf, 0xb4,
+  0xd7, 0x5d, 0x94, 0xe8, 0xc4, 0x67, 0xfa, 0x10,
+  0x76, 0x21, 0x9f, 0xff, 0xfd, 0x65, 0xf0, 0x8a,
+  0xef, 0xbf, 0xbf, 0xa3, 0xf2, 0xbb, 0x69, 0xc2,
+  0xf3, 0xa7, 0xd4, 0x6c, 0x3e, 0x09, 0xd3, 0xf6,
+  0xdc, 0x20, 0xd4, 0xc3, 0xa7, 0xfd, 0xff, 0x3e,
+  0xf6, 0xc1, 0xf5, 0x4e, 0x9f, 0xf7, 0x60, 0x17,
+  0xfd, 0xb6, 0x6b, 0x3a, 0x1e, 0x7f, 0x80, 0x3e,
+  0x9f, 0xfc, 0xb9, 0x4d, 0xec, 0xb7, 0xfa, 0x82,
+  0xa7, 0x4e, 0xad, 0x98, 0x74, 0x5c, 0xf9, 0x74,
+  0x49, 0x9f, 0xb4, 0xad, 0xeb, 0x97, 0x3a, 0x70,
+  0x42, 0x12, 0xa7, 0xff, 0x5f, 0xd7, 0xad, 0xbd,
+  0xa9, 0xbc, 0x55, 0xe5, 0x38, 0xbc, 0x8f, 0x22,
+  0xa3, 0x44, 0xa8, 0x7a, 0xac, 0x4c, 0x7a, 0xf1,
+  0x48, 0xc2, 0xaf, 0xf0, 0x87, 0xbc, 0x32, 0xe6,
+  0xd7, 0x87, 0x4f, 0x83, 0x75, 0xa4, 0x27, 0x4f,
+  0xe5, 0xe1, 0xb0, 0x7b, 0x62, 0xa6, 0x08, 0x4a,
+  0x8d, 0x8f, 0x1c, 0x26, 0x33, 0xd5, 0xbf, 0xb5,
+  0x65, 0x38, 0xd1, 0xcf, 0xfe, 0xd2, 0xb5, 0xdb,
+  0xeb, 0xb5, 0x96, 0xf5, 0x3a, 0x7f, 0xd7, 0xf0,
+  0xf0, 0x1b, 0xef, 0x96, 0x3a, 0x1e, 0x88, 0xdf,
+  0x26, 0xcf, 0xb2, 0x8c, 0xf0, 0x9d, 0x3f, 0x5d,
+  0x47, 0x6c, 0xf9, 0xd3, 0xfb, 0x6b, 0x2f, 0xc3,
+  0xd4, 0x9d, 0x3f, 0xff, 0xef, 0x33, 0xbf, 0x4b,
+  0xdc, 0x1c, 0xf3, 0x6c, 0xfe, 0x6d, 0xcf, 0x3c,
+  0x5e, 0xb0, 0xa8, 0xdc, 0xe2, 0xcd, 0x0d, 0x27,
+  0xff, 0xb2, 0xf5, 0xc6, 0xac, 0xad, 0xb2, 0xd6,
+  0x53, 0xa7, 0xff, 0xff, 0xde, 0xca, 0x6b, 0xec,
+  0x0e, 0xec, 0xa5, 0xf5, 0xf5, 0xeb, 0xea, 0x76,
+  0xdb, 0x4a, 0x0e, 0x8f, 0xa3, 0x7a, 0xea, 0x13,
+  0x78, 0x27, 0x4d, 0xbc, 0x07, 0x43, 0x46, 0xb8,
+  0x02, 0xd3, 0x9f, 0xdb, 0x1d, 0x30, 0x42, 0x74,
+  0x78, 0xf5, 0x2a, 0x44, 0x11, 0xc9, 0xd7, 0xde,
+  0x02, 0x9c, 0x6b, 0xe7, 0xff, 0xff, 0x5d, 0x76,
+  0xb6, 0x9d, 0xad, 0x9d, 0xb6, 0x67, 0xf5, 0xd6,
+  0xb9, 0xf0, 0x1d, 0x14, 0xa2, 0xaf, 0xc5, 0xd3,
+  0xfd, 0x97, 0xb2, 0x8d, 0xf1, 0x0e, 0x9c, 0xa2,
+  0xd1, 0xd1, 0x89, 0xf9, 0xf4, 0x6f, 0xff, 0x24,
+  0xd4, 0x35, 0x9f, 0x7f, 0x2f, 0xcd, 0xe7, 0x4f,
+  0xfd, 0x82, 0x38, 0xd5, 0xb2, 0xbd, 0xf3, 0xa7,
+  0xf7, 0xd4, 0x74, 0x4b, 0x29, 0xd3, 0xef, 0x6b,
+  0xb7, 0x3c, 0xe9, 0xfb, 0xca, 0xca, 0x30, 0x27,
+  0x4c, 0x10, 0x9d, 0x08, 0x7d, 0x82, 0x52, 0x12,
+  0xd9, 0xfe, 0xc6, 0xb9, 0xae, 0xa5, 0xf5, 0x29,
+  0xc6, 0xb6, 0x7f, 0xf6, 0x7c, 0x19, 0x6f, 0x53,
+  0x5b, 0x69, 0x53, 0xa7, 0xef, 0xf0, 0x36, 0xcf,
+  0x9d, 0x3f, 0x33, 0xda, 0x98, 0x3a, 0xce, 0x9c,
+  0x10, 0x84, 0xa9, 0xff, 0x94, 0x7f, 0xa7, 0x6f,
+  0xc6, 0x95, 0x87, 0x38, 0xbc, 0x8d, 0x5a, 0xa2,
+  0xe6, 0xa1, 0x95, 0x54, 0xab, 0xa6, 0x68, 0x5a,
+  0x14, 0xd9, 0xdc, 0x34, 0x1e, 0x41, 0x29, 0xe7,
+  0xe5, 0x2f, 0x3c, 0x82, 0x53, 0xab, 0xed, 0x8f,
+  0x20, 0x94, 0xc1, 0x09, 0xe4, 0x12, 0x84, 0x45,
+  0x23, 0x45, 0x17, 0x2f, 0x09, 0x54, 0xdd, 0x72,
+  0xc8, 0x24, 0xe3, 0x7b, 0x3f, 0x65, 0xb3, 0x3f,
+  0xac, 0xe9, 0xdd, 0xf0, 0x7c, 0xf7, 0xee, 0x65,
+  0x3d, 0xa9, 0x9d, 0x63, 0xa5, 0x9a, 0xb3, 0xd6,
+  0x01, 0x9c, 0xfe, 0x69, 0xfa, 0x51, 0x7f, 0x50,
+  0x54, 0xfe, 0xf3, 0xf4, 0xea, 0xdb, 0xc7, 0x49,
+  0xe5, 0x4e, 0xe1, 0xa0, 0xa8, 0x2a, 0x14, 0xda,
+  0xa0, 0x83, 0x06, 0xe7, 0xbe, 0xa0, 0x42, 0x9c,
+  0x6b, 0x21, 0x51, 0x8b, 0x90, 0x95, 0x9e, 0xd3,
+  0x85, 0xe7, 0x49, 0x87, 0x4d, 0x8f, 0xd8, 0xd8,
+  0xb4, 0x43, 0x3e, 0x0e, 0x35, 0xe6, 0x1d, 0x3f,
+  0x22, 0xb4, 0xf5, 0x01, 0x52, 0xf1, 0xd3, 0xfd,
+  0x46, 0x8f, 0xda, 0xda, 0x77, 0xce, 0x9f, 0xbc,
+  0xac, 0xa3, 0x02, 0x74, 0xfb, 0x28, 0x66, 0x30,
+  0xe9, 0xd5, 0xf0, 0x9d, 0x1f, 0x3c, 0x2b, 0x93,
+  0xcf, 0xdf, 0xe0, 0x03, 0x4a, 0x9d, 0x3f, 0x7b,
+  0x5e, 0xf5, 0x63, 0xb6, 0x4c, 0x33, 0x04, 0x04,
+  0xf6, 0xad, 0xf7, 0x22, 0x8c, 0x4f, 0x47, 0xc5,
+  0x1f, 0x8c, 0xe2, 0x7b, 0xf9, 0x46, 0x87, 0x43,
+  0xd5, 0xeb, 0xe1, 0x5d, 0xa1, 0xfb, 0xf5, 0x7a,
+  0xc7, 0xff, 0x73, 0x69, 0xff, 0xf5, 0x02, 0x39,
+  0xb7, 0x32, 0xdd, 0x7f, 0xab, 0x47, 0x4e, 0x08,
+  0x42, 0x54, 0xcf, 0x52, 0x9c, 0x5e, 0x42, 0xa2,
+  0x54, 0x5c, 0x67, 0xea, 0x1a, 0x7b, 0x70, 0x68,
+  0x3a, 0x7a, 0xdd, 0x48, 0x4e, 0x9f, 0x50, 0x3e,
+  0x56, 0x1d, 0x3f, 0xfc, 0xbb, 0xef, 0xf5, 0x07,
+  0x5c, 0x1b, 0xfe, 0xf3, 0xa3, 0x55, 0x23, 0x43,
+  0xc6, 0x9c, 0x45, 0x72, 0x79, 0xcf, 0xf7, 0xce,
+  0x9f, 0xae, 0xad, 0x7f, 0x4a, 0x9d, 0x0f, 0x3c,
+  0xbb, 0x8e, 0x4e, 0xd3, 0x46, 0xec, 0xe9, 0xb9,
+  0xcd, 0xd1, 0xb9, 0x08, 0xd5, 0x63, 0x6d, 0x57,
+  0xe4, 0x4b, 0x28, 0xaa, 0x88, 0x7f, 0xbc, 0x87,
+  0x68, 0xc3, 0xb2, 0x57, 0xc6, 0xb6, 0x64, 0x17,
+  0xf4, 0x24, 0x9a, 0x86, 0x18, 0x91, 0xb2, 0x30,
+  0x2b, 0x4b, 0x00, 0xe4, 0x5f, 0x94, 0xd6, 0x53,
+  0x7d, 0xe7, 0x74, 0x74, 0x87, 0xc6, 0xa4, 0x3c,
+  0x77, 0xc2, 0x35, 0xbc, 0x8a, 0x7f, 0xf3, 0x99,
+  0xcf, 0x76, 0x0a, 0x77, 0x21, 0xa2, 0x8a, 0x9f,
+  0xce, 0xc1, 0x4e, 0xe4, 0x34, 0x5d, 0x13, 0xff,
+  0x3b, 0x9e, 0xec, 0x14, 0xee, 0x43, 0x44, 0x97,
+  0x3f, 0x9d, 0x82, 0x9d, 0xc8, 0x68, 0xbc, 0xa1,
+  0x5b, 0xe1, 0xaa, 0x09, 0xde, 0x77, 0x87, 0x68,
+  0xa4, 0xd1, 0xdb, 0x0e, 0xed, 0x0c, 0x5f, 0xd7,
+  0x25, 0x55, 0x8e, 0xca, 0xea, 0x5a, 0x1d, 0xb6,
+  0x4c, 0x9f, 0xfc, 0xe6, 0x73, 0xdd, 0x82, 0x9d,
+  0xc8, 0x68, 0x96, 0x67, 0x93, 0xb9, 0x0d, 0x11,
+  0x9c, 0xfd, 0xe5, 0x65, 0x18, 0x13, 0xa6, 0xfb,
+  0xce, 0x93, 0x0e, 0x9f, 0x78, 0x6d, 0xce, 0x13,
+  0xd3, 0x61, 0x6e, 0xf1, 0x69, 0xfb, 0x9f, 0xe1,
+  0xe1, 0x3a, 0x75, 0x56, 0x93, 0xa0, 0x53, 0x10,
+  0x63, 0xf7, 0xd3, 0x2e, 0x55, 0x3f, 0xf5, 0xfc,
+  0x3c, 0x0d, 0xd4, 0xbd, 0x58, 0x74, 0xfb, 0xea,
+  0xfa, 0xf1, 0xd1, 0xe3, 0xec, 0x6c, 0x8d, 0x3f,
+  0xff, 0x7b, 0x6d, 0x2f, 0x5a, 0x5e, 0xbf, 0x05,
+  0x77, 0x69, 0xf3, 0xa7, 0xfe, 0xc6, 0x5f, 0xc1,
+  0xaa, 0xdb, 0xb5, 0x67, 0x4f, 0xfa, 0xcb, 0xeb,
+  0x79, 0x7e, 0xd6, 0x87, 0x49, 0xd8, 0x9d, 0xbb,
+  0x50, 0xa9, 0xe2, 0x4f, 0xb1, 0xd5, 0x1e, 0x7f,
+  0xf3, 0x99, 0xcf, 0x76, 0x0a, 0x77, 0x21, 0xa2,
+  0x69, 0x9f, 0xfc, 0xe6, 0x73, 0xdd, 0x82, 0x9d,
+  0xc8, 0x68, 0x9c, 0x67, 0xff, 0x39, 0x9c, 0xf7,
+  0x60, 0xa7, 0x72, 0x1a, 0x28, 0x19, 0xf0, 0xa7,
+  0x72, 0x1a, 0x2e, 0x09, 0x97, 0xc7, 0x4f, 0xef,
+  0xbd, 0x7d, 0xb6, 0x30, 0xe9, 0x3b, 0x0f, 0xe2,
+  0xc6, 0x1a, 0x0a, 0xcf, 0xef, 0x3b, 0x7a, 0x83,
+  0x02, 0x74, 0xff, 0x3d, 0xd8, 0x29, 0xdc, 0x86,
+  0x89, 0x26, 0x4e, 0xb1, 0xfa, 0xf1, 0xa4, 0x50,
+  0xbb, 0x5a, 0xf9, 0x63, 0x28, 0xaa, 0xd2, 0x90,
+  0x14, 0xab, 0x0c, 0xab, 0xc2, 0xaa, 0x7f, 0xda,
+  0xf9, 0xd8, 0x29, 0xdc, 0x86, 0x8b, 0x52, 0x7f,
+  0xdc, 0xf7, 0x60, 0xa7, 0x72, 0x1a, 0x25, 0x58,
+  0x3a, 0x4e, 0xd6, 0x89, 0x86, 0x24, 0x37, 0xa3,
+  0x4f, 0xe7, 0x60, 0xa7, 0x72, 0x1a, 0x22, 0x99,
+  0xfc, 0xec, 0x14, 0xee, 0x43, 0x44, 0x69, 0x3f,
+  0x9d, 0x82, 0x9d, 0xc8, 0x68, 0xa7, 0xe7, 0xff,
+  0x39, 0x9c, 0xf7, 0x60, 0xa7, 0x72, 0x1a, 0x26,
+  0xa9, 0xfc, 0xec, 0x14, 0xee, 0x43, 0x45, 0x77,
+  0x3c, 0x9d, 0xc8, 0x68, 0xaf, 0xa7, 0x04, 0x21,
+  0x2a, 0x5f, 0x29, 0xc5, 0xe4, 0x09, 0xf3, 0x31,
+  0x1e, 0x73, 0xd6, 0x93, 0xa7, 0xfd, 0x96, 0x0f,
+  0x5e, 0xab, 0x94, 0x1d, 0x3f, 0xee, 0xf0, 0xe5,
+  0x1e, 0x7e, 0x6c, 0x74, 0x9d, 0x88, 0xb8, 0x68,
+  0x87, 0xe3, 0x95, 0x3d, 0x9f, 0xfc, 0xe6, 0x73,
+  0xdd, 0x82, 0x9d, 0xc8, 0x68, 0x9e, 0xe7, 0xf3,
+  0xb0, 0x53, 0xb9, 0x0d, 0x17, 0x0c, 0xff, 0xce,
+  0xe7, 0xbb, 0x05, 0x3b, 0x90, 0xd1, 0x27, 0xc2,
+  0xab, 0xb3, 0xa0, 0xed, 0xe7, 0x7a, 0xce, 0xd0,
+  0xed, 0xa5, 0x21, 0x8d, 0x66, 0xc8, 0x75, 0x52,
+  0x6c, 0x77, 0x3f, 0x9d, 0x82, 0x9d, 0xc8, 0x68,
+  0x8a, 0xa7, 0xf3, 0xb0, 0x53, 0xb9, 0x0d, 0x14,
+  0xcc, 0xff, 0xe7, 0x33, 0x9e, 0xec, 0x14, 0xee,
+  0x43, 0x44, 0xcf, 0x3f, 0xf9, 0xcc, 0xe7, 0xbb,
+  0x05, 0x3b, 0x90, 0xd1, 0x46, 0xc5, 0x09, 0x8d,
+  0x6c, 0x77, 0xac, 0xee, 0xea, 0x53, 0xff, 0x3b,
+  0x9e, 0xec, 0x14, 0xee, 0x43, 0x44, 0x75, 0x3f,
+  0x7b, 0x3f, 0xb6, 0x50, 0x74, 0xf8, 0x53, 0xb9,
+  0x0d, 0x14, 0xd4, 0xfd, 0xe5, 0x65, 0x18, 0x13,
+  0xa7, 0xff, 0xb2, 0xf6, 0xc7, 0x8f, 0x7e, 0xf6,
+  0xe7, 0x9d, 0x32, 0x80, 0xe9, 0xfe, 0xaf, 0x52,
+  0xa9, 0xe4, 0x70, 0xa2, 0x3f, 0xe5, 0xbb, 0xd3,
+  0x64, 0xed, 0x93, 0x4b, 0xc2, 0xeb, 0xc2, 0xfe,
+  0x7c, 0x29, 0xdc, 0x86, 0x8a, 0xaa, 0x7f, 0xdc,
+  0xf7, 0x60, 0xa7, 0x72, 0x1a, 0x26, 0xd9, 0x3b,
+  0x0f, 0xd9, 0x86, 0x13, 0xf9, 0xd8, 0x29, 0xdc,
+  0x86, 0x8a, 0xfe, 0x7f, 0x3b, 0x05, 0x3b, 0x90,
+  0xd1, 0x63, 0x4f, 0x85, 0x3b, 0x90, 0xd1, 0x6a,
   0xcf, 0xfb, 0x9e, 0xec, 0x14, 0xee, 0x43, 0x45,
-  0x0f, 0x3f, 0x7d, 0xb9, 0x82, 0xb5, 0x3a, 0x7f,
-  0xfe, 0xcd, 0xac, 0xbb, 0xdd, 0x7f, 0xf0, 0x2b,
-  0x55, 0x01, 0x52, 0x76, 0x23, 0xcd, 0x84, 0x3a,
-  0x23, 0x6a, 0x17, 0xcf, 0xe7, 0x60, 0xa7, 0x72,
-  0x1a, 0x2f, 0x38, 0x55, 0xfe, 0xe7, 0xa2, 0x6c,
-  0xa5, 0x92, 0xe7, 0xe9, 0x87, 0xf8, 0x93, 0x30,
-  0xee, 0xc7, 0x7f, 0x8e, 0x75, 0xb2, 0x34, 0xfe,
-  0x76, 0x0a, 0x77, 0x21, 0xa2, 0x96, 0x9f, 0xce,
-  0xc1, 0x4e, 0xe4, 0x34, 0x58, 0x53, 0xf9, 0xd8,
-  0x29, 0xdc, 0x86, 0x8b, 0x2e, 0x79, 0xda, 0xf5,
-  0x5f, 0x37, 0x53, 0xa7, 0x3b, 0x7b, 0x0e, 0x9e,
-  0x47, 0x2d, 0x50, 0xf4, 0xb4, 0x34, 0x9f, 0xfc,
-  0xe6, 0x73, 0xdd, 0x82, 0x9d, 0xc8, 0x68, 0xa3,
-  0x27, 0xf3, 0x95, 0xb2, 0x8a, 0x80, 0xe8, 0x7a,
-  0x77, 0xe2, 0x76, 0xc3, 0xbe, 0x84, 0x6d, 0x4e,
-  0x2e, 0xa5, 0x3f, 0xf3, 0xb9, 0xee, 0xc1, 0x4e,
-  0xe4, 0x34, 0x47, 0x33, 0xff, 0x9c, 0xce, 0x7b,
-  0xb0, 0x53, 0xb9, 0x0d, 0x13, 0x94, 0xfe, 0x76,
-  0x0a, 0x77, 0x21, 0xa2, 0xcc, 0x9f, 0xce, 0xc1,
-  0x4e, 0xe4, 0x34, 0x5b, 0xb3, 0xff, 0x9c, 0xce,
-  0x7b, 0xb0, 0x53, 0xb9, 0x0d, 0x14, 0x84, 0xff,
-  0xce, 0xe7, 0xbb, 0x05, 0x3b, 0x90, 0xd1, 0x29,
-  0x45, 0x09, 0xd9, 0x34, 0x98, 0xc5, 0x2f, 0x9d,
-  0xdc, 0xed, 0xbd, 0x4a, 0x7f, 0xdc, 0xf7, 0x60,
-  0xa7, 0x72, 0x1a, 0x27, 0x69, 0xff, 0xf7, 0xb6,
-  0xd1, 0x8a, 0xdf, 0xdb, 0x7d, 0x7f, 0x88, 0x74,
-  0x9c, 0xc4, 0x4f, 0xf2, 0x34, 0xff, 0xdc, 0xcb,
-  0x62, 0x75, 0x97, 0x7b, 0xce, 0x9f, 0xfb, 0xf9,
-  0x6e, 0xa3, 0x2b, 0xfe, 0xa4, 0xe9, 0xb5, 0x1d,
-  0xb2, 0x21, 0xea, 0x87, 0x0c, 0x47, 0x16, 0xa4,
-  0x2b, 0xe7, 0xc2, 0x9d, 0xc8, 0x68, 0x8b, 0x27,
-  0xfd, 0xcf, 0x76, 0x0a, 0x77, 0x21, 0xa2, 0x5d,
-  0x9f, 0xff, 0xb3, 0x6b, 0x2e, 0xf7, 0x5f, 0xfc,
-  0x0a, 0xd5, 0x40, 0x54, 0x9d, 0x88, 0xd3, 0x61,
-  0x86, 0xa2, 0x34, 0xff, 0xe7, 0x33, 0x9e, 0xec,
-  0x14, 0xee, 0x43, 0x44, 0xc5, 0x3f, 0x9d, 0x82,
-  0x9d, 0xc8, 0x68, 0xaa, 0x67, 0xff, 0x39, 0x9c,
-  0xf7, 0x60, 0xa7, 0x72, 0x1a, 0x27, 0x49, 0xfd,
-  0xee, 0x15, 0x7f, 0x36, 0x3a, 0x7c, 0xd2, 0xb4,
-  0xb5, 0x3a, 0x7e, 0x0e, 0x79, 0xb6, 0x7c, 0xe9,
-  0xef, 0x59, 0x5d, 0xe3, 0xd6, 0xa9, 0x44, 0xff,
-  0xda, 0x56, 0xeb, 0x4b, 0xb4, 0x6b, 0xcc, 0x3a,
-  0x18, 0x88, 0x2b, 0x1c, 0xcf, 0xfb, 0x9e, 0xec,
-  0x14, 0xee, 0x43, 0x44, 0xef, 0x3e, 0xbe, 0x9c,
-  0xcf, 0x15, 0x27, 0x6c, 0x9c, 0xde, 0x46, 0x14,
-  0xc2, 0x3e, 0x46, 0x9f, 0xfc, 0xe6, 0x73, 0xdd,
-  0x82, 0x9d, 0xc8, 0x68, 0xa1, 0x67, 0xff, 0x39,
-  0x9c, 0xf7, 0x60, 0xa7, 0x72, 0x1a, 0x29, 0x29,
-  0xff, 0xfd, 0x95, 0x76, 0xfc, 0x6a, 0xdc, 0xcb,
-  0xd9, 0x6f, 0xa3, 0x0e, 0x8a, 0x17, 0x00, 0xde,
-  0x70, 0x8a, 0x42, 0x76, 0xc8, 0xfb, 0x40, 0x93,
-  0xa2, 0x96, 0xa2, 0x94, 0xfe, 0x76, 0x0a, 0x77,
-  0x21, 0xa2, 0x24, 0x9f, 0xfc, 0xe6, 0x73, 0xdd,
-  0x82, 0x9d, 0xc8, 0x68, 0x97, 0xa7, 0xc2, 0x9d,
-  0xc8, 0x68, 0xa5, 0xe7, 0xf2, 0xec, 0xdf, 0xe6,
-  0x2d, 0x4e, 0x93, 0xb0, 0xf9, 0xae, 0x61, 0x3f,
-  0x9d, 0x82, 0x9d, 0xc8, 0x68, 0xa7, 0x27, 0xfd,
-  0xe1, 0xea, 0xdb, 0x33, 0xe8, 0x74, 0xff, 0xb2,
-  0xca, 0x38, 0xe0, 0x84, 0x25, 0x4d, 0xe0, 0x9d,
-  0x35, 0x0e, 0xd9, 0x11, 0xba, 0x87, 0x6d, 0xe7,
-  0x93, 0xe1, 0x4e, 0xe4, 0x34, 0x57, 0x93, 0xff,
-  0xf6, 0x6d, 0x65, 0xde, 0xeb, 0xff, 0x81, 0x5a,
-  0xa8, 0x0a, 0x93, 0xb1, 0x11, 0xba, 0x86, 0x13,
-  0xff, 0x3b, 0x9e, 0xec, 0x14, 0xee, 0x43, 0x44,
-  0x8f, 0x3b, 0xc0, 0x53, 0xa7, 0x26, 0x30, 0xa7,
-  0x17, 0x73, 0xe1, 0x4e, 0xe4, 0x34, 0x49, 0x13,
-  0xce, 0xe7, 0xb9, 0x4f, 0x67, 0x0a, 0x67, 0xfe,
-  0x77, 0x3d, 0xd8, 0x29, 0xdc, 0x86, 0x89, 0x2a,
-  0x7c, 0x29, 0xdc, 0x86, 0x8b, 0xc6, 0x7e, 0xd3,
-  0xf4, 0xf5, 0x35, 0x3a, 0x7d, 0x5a, 0xdf, 0x10,
-  0xe9, 0xfe, 0x7b, 0xb0, 0x53, 0xb9, 0x0d, 0x12,
-  0x6c, 0x9d, 0x88, 0xc7, 0xa4, 0xc0, 0x4c, 0x38,
-  0x9a, 0x15, 0x74, 0xa6, 0x83, 0xb7, 0xc2, 0xe3,
-  0x62, 0x7f, 0x43, 0x21, 0xa8, 0x68, 0xb0, 0xae,
-  0xd0, 0xc0, 0xb9, 0xbe, 0x91, 0x89, 0xc2, 0xc6,
-  0xd4, 0x79, 0x44, 0x75, 0xcf, 0x8f, 0x27, 0x68,
-  0xf6, 0xb2, 0xdc, 0xbe, 0x6b, 0x94, 0xac, 0x95,
-  0xf6, 0x6d, 0x33, 0xcf, 0x7e, 0x9c, 0xc4, 0xd5,
-  0xc7, 0x60, 0xd5, 0x35, 0x3c, 0x69, 0x1e, 0x0c,
-  0xc4, 0x50, 0xc5, 0xa7, 0x6a, 0x3a, 0x9c, 0xf0,
-  0x09, 0x61, 0xcd, 0xdc, 0x2c, 0x7f, 0x3c, 0x91,
-  0x5a, 0x49, 0x9d, 0xeb, 0x92, 0x0d, 0x29, 0x5d,
-  0xed, 0xa5, 0x30, 0x06, 0x50, 0x6e, 0xa4, 0x7b,
-  0xdb, 0xe7, 0x40, 0x5b, 0xe7, 0x69, 0xa0,
+  0x05, 0x27, 0x61, 0xfb, 0x30, 0xc2, 0x7f, 0x3b,
+  0x05, 0x3b, 0x90, 0xd1, 0x71, 0x4f, 0xe7, 0x60,
+  0xa7, 0x72, 0x1a, 0x2e, 0x99, 0xff, 0xfc, 0xb6,
+  0xfe, 0x9d, 0xab, 0xc7, 0xdb, 0x35, 0xe6, 0xcd,
+  0x68, 0x74, 0xff, 0x9f, 0x82, 0x3c, 0xfa, 0x30,
+  0x27, 0x4e, 0xff, 0x38, 0x51, 0x4b, 0x76, 0x99,
+  0xff, 0x0a, 0xd3, 0x6e, 0xad, 0xd4, 0x27, 0x4f,
+  0xda, 0xa7, 0xf2, 0xdd, 0x73, 0xa7, 0xe0, 0x73,
+  0x4f, 0xf5, 0xce, 0x9f, 0xff, 0xf6, 0xb5, 0xda,
+  0xd9, 0x4d, 0xff, 0xd6, 0x07, 0x56, 0xbc, 0x28,
+  0x74, 0xf2, 0x77, 0x21, 0xa2, 0x4c, 0x9f, 0xe1,
+  0xca, 0x6f, 0x7e, 0x7d, 0x4e, 0x81, 0x3e, 0x36,
+  0x15, 0xcf, 0xdb, 0x03, 0x54, 0xa8, 0x35, 0x0e,
+  0x9f, 0x65, 0xfc, 0xce, 0x3a, 0x7f, 0xfd, 0xc8,
+  0x2b, 0x6f, 0xe5, 0xf1, 0xc1, 0x08, 0x4a, 0x87,
+  0x9f, 0xc5, 0xc9, 0xa7, 0xff, 0x69, 0xfe, 0xba,
+  0x8d, 0x6c, 0xbf, 0xb9, 0xd3, 0x82, 0x10, 0x95,
+  0x3f, 0x0f, 0x50, 0xcf, 0x54, 0xa7, 0x17, 0x93,
+  0xec, 0x60, 0xe6, 0xac, 0xe9, 0xff, 0x31, 0x52,
+  0xdf, 0xd2, 0xeb, 0x53, 0xa7, 0xfb, 0x38, 0x1b,
+  0xb3, 0x6e, 0x79, 0xd3, 0xff, 0xba, 0x8b, 0x79,
+  0x7f, 0x8d, 0x78, 0x7c, 0x74, 0x62, 0x30, 0x6e,
+  0x7c, 0x13, 0x99, 0xf7, 0xf2, 0xdd, 0x73, 0xa7,
+  0xfc, 0xf5, 0xfd, 0x1b, 0xc7, 0xfa, 0x3c, 0xe8,
+  0xd5, 0x9f, 0x43, 0x44, 0xd3, 0xd7, 0xa3, 0x36,
+  0x3a, 0x7f, 0xbd, 0xaf, 0x78, 0x81, 0x9e, 0xa9,
+  0xd0, 0xd1, 0xf0, 0x6a, 0x11, 0xce, 0x08, 0x42,
+  0x74, 0xff, 0xfb, 0x19, 0x7f, 0xa8, 0x33, 0x6a,
+  0xe3, 0x15, 0x0a, 0x71, 0x79, 0x18, 0x99, 0x5f,
+  0xa1, 0x0f, 0x64, 0x29, 0xfa, 0xcb, 0xb9, 0x3d,
+  0x41, 0xd3, 0xf0, 0xf0, 0xfd, 0x5e, 0x74, 0x6c,
+  0x7b, 0x22, 0x5f, 0x33, 0xdc, 0xdc, 0x5e, 0x1e,
+  0x53, 0x17, 0x97, 0x64, 0x34, 0x35, 0x90, 0xd3,
+  0x0a, 0xf6, 0x88, 0xb9, 0x97, 0xe7, 0x95, 0x87,
+  0x55, 0xe3, 0xc2, 0xdf, 0x08, 0xe9, 0xf6, 0x30,
+  0x73, 0x56, 0x74, 0xff, 0xd9, 0x6f, 0xad, 0x1b,
+  0xed, 0x6e, 0xd5, 0x9d, 0x3f, 0x72, 0x38, 0x21,
+  0x09, 0xd2, 0x72, 0x32, 0x00, 0x84, 0xcf, 0xa7,
+  0x96, 0xff, 0x0d, 0x5a, 0x94, 0xb6, 0x4a, 0x87,
+  0xb3, 0x43, 0x76, 0x8e, 0x5e, 0x98, 0x59, 0x09,
+  0x3b, 0x0e, 0xc1, 0x0b, 0x1a, 0x93, 0xdc, 0xef,
+  0x4a, 0x47, 0x14, 0xfe, 0x76, 0x0a, 0x77, 0x21,
+  0xa2, 0x35, 0x9f, 0x0a, 0x77, 0x21, 0xa2, 0xa5,
+  0x9b, 0x90, 0xd1, 0x0d, 0x49, 0xd8, 0x7a, 0x3c,
+  0x61, 0x3f, 0xf3, 0xb9, 0xee, 0xc1, 0x4e, 0xe4,
+  0x34, 0x47, 0xd3, 0xf9, 0xd8, 0x29, 0xdc, 0x86,
+  0x8b, 0x1e, 0x7e, 0xd5, 0x3f, 0x96, 0xeb, 0x9d,
+  0x3f, 0xdf, 0xe0, 0x57, 0xaf, 0x7e, 0x3a, 0x78,
+  0x0c, 0xf0, 0x9d, 0x3f, 0xff, 0xca, 0x3f, 0xcd,
+  0xb2, 0xd6, 0xf2, 0x5b, 0xd7, 0xaf, 0x52, 0x74,
+  0x79, 0x10, 0xf6, 0x21, 0x9d, 0xdc, 0x86, 0x8b,
+  0x42, 0x7f, 0xdc, 0x16, 0xf4, 0xe1, 0xa3, 0x02,
+  0x74, 0x85, 0x0f, 0x94, 0x49, 0xa7, 0xe6, 0xdb,
+  0xef, 0xf5, 0x01, 0xd3, 0xe5, 0xbe, 0x59, 0x4e,
+  0x9f, 0xfe, 0xcb, 0xd7, 0x1a, 0xb2, 0xb6, 0xcb,
+  0x59, 0x4e, 0x8a, 0x0f, 0xd7, 0xe4, 0xb0, 0xa8,
+  0xc9, 0xc8, 0x53, 0x4f, 0xfd, 0x95, 0xf6, 0x9f,
+  0x78, 0xae, 0x6c, 0x74, 0xfa, 0xf6, 0xef, 0xeb,
+  0x3a, 0x7f, 0xbf, 0xa5, 0x1b, 0x5b, 0x3e, 0xa7,
+  0x4d, 0xfc, 0xc3, 0xe4, 0x42, 0x99, 0xfd, 0x96,
+  0x6b, 0xd6, 0xf3, 0x0e, 0x9f, 0xcf, 0xc1, 0xaf,
+  0xd6, 0x83, 0xa7, 0xb6, 0xcb, 0x71, 0xd3, 0xfd,
+  0x98, 0x1c, 0x44, 0xc0, 0x9d, 0x18, 0x8b, 0xba,
+  0x4d, 0x38, 0xca, 0xa4, 0x33, 0xd9, 0x6e, 0xb9,
+  0xd3, 0xfb, 0x5f, 0xbf, 0xa3, 0xf2, 0xa7, 0x49,
+  0xcd, 0xc5, 0xca, 0xb5, 0x31, 0xda, 0x17, 0xd9,
+  0x08, 0x8b, 0x43, 0xbb, 0xe4, 0xd5, 0x85, 0x45,
+  0xe1, 0xcd, 0xa8, 0x79, 0xbc, 0x82, 0x7e, 0x6f,
+  0xf6, 0xdf, 0x56, 0x8e, 0x9e, 0xcb, 0x75, 0xce,
+  0x96, 0xa9, 0x87, 0xa5, 0xf3, 0x29, 0xf0, 0xa7,
+  0x72, 0x1a, 0x2d, 0x69, 0xff, 0x73, 0xdd, 0x82,
+  0x9d, 0xc8, 0x68, 0xa0, 0xe4, 0xe6, 0xe2, 0x28,
+  0xb0, 0xb1, 0x86, 0x13, 0xff, 0x9c, 0xce, 0x7b,
+  0xb0, 0x53, 0xb9, 0x0d, 0x14, 0x5c, 0xfe, 0x76,
+  0x0a, 0x77, 0x21, 0xa2, 0xea, 0x87, 0xb2, 0x14,
+  0xd2, 0x11, 0x9e, 0x26, 0x62, 0x65, 0xa7, 0x39,
+  0x81, 0x1d, 0x4d, 0x4e, 0x6e, 0xa5, 0x3e, 0x14,
+  0xee, 0x43, 0x44, 0x43, 0x3a, 0xd9, 0xb1, 0xd2,
+  0x76, 0x1e, 0x65, 0x26, 0x13, 0xf9, 0xd8, 0x29,
+  0xdc, 0x86, 0x88, 0xda, 0x7f, 0x3b, 0x05, 0x3b,
+  0x90, 0xd1, 0x4d, 0xcf, 0xe7, 0x60, 0xa7, 0x72,
+  0x1a, 0x2a, 0x09, 0xfc, 0xec, 0x14, 0xee, 0x43,
+  0x45, 0x4d, 0x3e, 0x14, 0xee, 0x43, 0x45, 0x61,
+  0x3e, 0xf0, 0x76, 0xd0, 0x4e, 0x9f, 0xe7, 0xbb,
+  0x05, 0x3b, 0x90, 0xd1, 0x1f, 0xce, 0xc5, 0xa0,
+  0xe9, 0x3b, 0x11, 0x6a, 0x86, 0x1c, 0x53, 0xf4,
+  0x19, 0xff, 0xce, 0x67, 0x3d, 0xd8, 0x29, 0xdc,
+  0x86, 0x89, 0xbe, 0x7f, 0xe6, 0x73, 0xdd, 0x82,
+  0x9d, 0xc8, 0x68, 0x9f, 0xa7, 0xe6, 0xeb, 0xaa,
+  0xb5, 0x4d, 0x4c, 0xa4, 0xe9, 0xff, 0xe5, 0x55,
+  0x55, 0x55, 0x55, 0x5a, 0x6a, 0x74, 0xf8, 0x7d,
+  0x47, 0x30, 0xa9, 0x82, 0x12, 0xa3, 0x0d, 0xe8,
+  0x49, 0xe5, 0xa1, 0x4e, 0x34, 0x10, 0xa8, 0xc7,
+  0xac, 0x29, 0xa7, 0xe1, 0xe4, 0xb7, 0x84, 0xe9,
+  0xea, 0x19, 0xe7, 0x9d, 0x3e, 0xaf, 0xf4, 0xe7,
+  0x9d, 0x3f, 0xac, 0xac, 0x70, 0x00, 0xa7, 0x48,
+  0x54, 0xff, 0x70, 0x8f, 0xc5, 0x13, 0x81, 0x5c,
+  0x3a, 0x7f, 0xed, 0x96, 0xfd, 0x5c, 0xb5, 0xbc,
+  0xc3, 0xa7, 0x5f, 0xcd, 0x1d, 0x0a, 0x7c, 0x35,
+  0x44, 0x85, 0x4e, 0x77, 0xc4, 0xe3, 0x0a, 0x7f,
+  0x99, 0x5d, 0xf2, 0x7b, 0x9a, 0xde, 0xc3, 0xa6,
+  0xef, 0x9d, 0x02, 0x6e, 0x58, 0x49, 0x38, 0x21,
+  0x09, 0xd3, 0xd4, 0x7f, 0xca, 0x53, 0x8b, 0xc9,
+  0xea, 0x6f, 0xe4, 0x3a, 0x15, 0x11, 0xf6, 0x3c,
+  0xd0, 0xc6, 0x7f, 0xea, 0x34, 0x06, 0x7f, 0x46,
+  0x96, 0xfc, 0x74, 0xf2, 0xde, 0xa8, 0x68, 0x83,
+  0xa7, 0xee, 0xb2, 0xea, 0xf4, 0x79, 0xd0, 0x28,
+  0xa5, 0xba, 0x3b, 0x62, 0xd9, 0x87, 0x63, 0xa6,
+  0x08, 0x4e, 0x87, 0x9a, 0xc0, 0x8b, 0x4f, 0x55,
+  0x7c, 0xd8, 0xa7, 0x1a, 0x19, 0xf5, 0x77, 0xec,
+  0x0a, 0x9d, 0x1e, 0x3d, 0xed, 0xe6, 0x73, 0x82,
+  0x10, 0x95, 0x05, 0x38, 0xbc, 0x9e, 0xf0, 0x7c,
+  0xd1, 0x50, 0x86, 0xf3, 0xc3, 0x31, 0xe4, 0xde,
+  0x2d, 0x0d, 0xcf, 0xbe, 0x4e, 0xff, 0xaa, 0x74,
+  0xf6, 0xdd, 0xf0, 0x1d, 0x3f, 0xf2, 0xfc, 0x1f,
+  0x5a, 0x5a, 0x5f, 0x80, 0xe8, 0xf2, 0x20, 0xc0,
+  0x39, 0x52, 0x29, 0xf9, 0xa5, 0xc1, 0xb7, 0x8e,
+  0x9f, 0xaf, 0x8d, 0x7d, 0x58, 0x78, 0x80, 0xa7,
+  0xdd, 0xfd, 0xac, 0xa6, 0x88, 0x09, 0xc6, 0xea,
+  0x7c, 0xa0, 0xf5, 0x35, 0x3a, 0x7f, 0x0b, 0x55,
+  0xf7, 0xef, 0xe3, 0xa7, 0xa9, 0x00, 0xa9, 0x53,
+  0x04, 0x25, 0x42, 0x9b, 0x70, 0x90, 0xcf, 0xdc,
+  0x2f, 0x7f, 0xfc, 0x53, 0x8d, 0x04, 0x2a, 0x79,
+  0x38, 0x61, 0xe6, 0x6f, 0xa2, 0x5c, 0xa3, 0x48,
+  0x45, 0xcf, 0xb4, 0xbe, 0x9d, 0xbc, 0xd1, 0x03,
+  0xcf, 0xfa, 0xda, 0x50, 0xbb, 0x96, 0xeb, 0xb1,
+  0xd3, 0xb8, 0x68, 0x3a, 0x60, 0x84, 0xe9, 0xfc,
+  0x3e, 0xc6, 0xdb, 0xde, 0xe4, 0x36, 0x21, 0x1b,
+  0x8d, 0x91, 0x7e, 0x2e, 0x73, 0xff, 0x7f, 0x35,
+  0xdb, 0x9f, 0xbf, 0xa9, 0x53, 0xa1, 0x4f, 0xab,
+  0x08, 0xe7, 0xff, 0x63, 0x19, 0xcf, 0xc1, 0x4e,
+  0xe4, 0x34, 0x43, 0x11, 0x63, 0xf1, 0xf9, 0x04,
+  0xfd, 0x82, 0x9d, 0xc8, 0x68, 0x82, 0xa7, 0xaf,
+  0x55, 0x01, 0x53, 0xb8, 0x68, 0x2a, 0x7b, 0x4f,
+  0xf6, 0xb2, 0xa7, 0xf7, 0xa8, 0xcb, 0xd5, 0x40,
+  0x54, 0x15, 0x3f, 0x62, 0x2d, 0x95, 0x85, 0x4c,
+  0x10, 0x95, 0x3f, 0x7d, 0x7f, 0x47, 0x84, 0xa8,
+  0xc4, 0xc2, 0x90, 0x85, 0x83, 0x76, 0x24, 0x01,
+  0x9f, 0xc2, 0x82, 0x55, 0xbc, 0x5a, 0x6f, 0x09,
+  0x4e, 0x3f, 0x29, 0x73, 0xd3, 0xd7, 0xb4, 0x76,
+  0x33, 0xfe, 0x57, 0xf7, 0xf2, 0xa2, 0xb5, 0x3a,
+  0x7f, 0xaf, 0x65, 0x6d, 0xb2, 0x81, 0x4e, 0x9f,
+  0xe5, 0xa5, 0xfa, 0x8a, 0x98, 0xc3, 0xa1, 0x4f,
+  0xd2, 0xc7, 0x53, 0xff, 0xf3, 0x5d, 0xcf, 0xeb,
+  0x6e, 0xca, 0x34, 0xbe, 0x9d, 0xbc, 0xd1, 0x7d,
+  0xcf, 0xbd, 0x7f, 0xe3, 0xce, 0x9f, 0xf7, 0xfc,
+  0xfb, 0xdb, 0x07, 0xd5, 0x3a, 0x7f, 0x5c, 0x1b,
+  0xfe, 0xfb, 0x61, 0xe2, 0x01, 0x9d, 0xc2, 0xf3,
+  0xc4, 0x03, 0x18, 0x7d, 0x3a, 0x21, 0x4d, 0xcf,
+  0x3c, 0x40, 0x33, 0xdd, 0xfa, 0x5e, 0x78, 0x80,
+  0x67, 0xf7, 0x92, 0xd8, 0x00, 0x29, 0xe2, 0x01,
+  0x9d, 0xef, 0xec, 0x78, 0x80, 0x63, 0x64, 0x5c,
+  0xb0, 0x8a, 0xc5, 0xed, 0x8f, 0xa7, 0x0a, 0xdc,
+  0xf1, 0x00, 0xc1, 0xe2, 0x01, 0x99, 0x58, 0x78,
+  0x80, 0x63, 0x63, 0x73, 0xe1, 0x79, 0xef, 0x33,
+  0x65, 0x3c, 0x40, 0x33, 0xaf, 0xc8, 0x78, 0x80,
+  0x67, 0xfd, 0xfe, 0x7b, 0xad, 0xe4, 0xe1, 0x3c,
+  0x40, 0x33, 0x76, 0xc7, 0x88, 0x06, 0x7f, 0x7f,
+  0x83, 0x5a, 0xa8, 0x0f, 0x10, 0x0c, 0xfb, 0xda,
+  0xfb, 0xe0, 0x3c, 0x40, 0x33, 0x7a, 0xa7, 0x88,
+  0x06, 0x04, 0xf6, 0x6e, 0x6d, 0x3e, 0xbf, 0xd6,
+  0x97, 0x9a, 0x20, 0x19, 0x80, 0xa7, 0x88, 0x05,
+  0xc6, 0xd6, 0x7d, 0xe5, 0x67, 0x6c, 0x78, 0x80,
+  0x67, 0xb4, 0xef, 0xa1, 0xe2, 0x01, 0x9c, 0xa2,
+  0x87, 0x88, 0x06, 0x7f, 0xd9, 0x4d, 0x76, 0x5c,
+  0xf8, 0x2a, 0x78, 0x80, 0x67, 0xda, 0x73, 0xde,
+  0xa7, 0x88, 0x06, 0x31, 0x10, 0x16, 0x4c, 0x98,
+  0x40, 0x78, 0x80, 0x61, 0xea, 0xa3, 0xf6, 0x23,
+  0xc8, 0x4c, 0x79, 0x5a, 0xc6, 0x40, 0x34, 0xa9,
+  0x75, 0xe1, 0x4d, 0xa1, 0x14, 0xfb, 0x2f, 0x5e,
+  0xa4, 0xf1, 0x00, 0xcf, 0xed, 0x95, 0x1a, 0x15,
+  0xb9, 0xe2, 0x01, 0xd8, 0xda, 0x4e, 0x15, 0x09,
+  0xe2, 0x01, 0x84, 0x3f, 0x71, 0x50, 0x9e, 0xf7,
+  0xdf, 0x53, 0xc4, 0x03, 0x3f, 0x73, 0x4f, 0xca,
+  0x5e, 0x78, 0x80, 0x63, 0x11, 0x14, 0x02, 0x0d,
+  0x0b, 0xe7, 0xfa, 0xcb, 0x57, 0x57, 0x41, 0x01,
+  0xe2, 0x01, 0x97, 0x8f, 0x10, 0x0c, 0xdd, 0x46,
+  0xc7, 0xc7, 0x64, 0x69, 0x84, 0x07, 0x88, 0x06,
+  0x7d, 0xd7, 0xaf, 0xa9, 0x3c, 0x40, 0x33, 0xf7,
+  0xbf, 0xa3, 0xf2, 0xa7, 0x88, 0x06, 0x15, 0x12,
+  0x5f, 0x22, 0xb9, 0xac, 0x6c, 0xc8, 0x0e, 0xc8,
+  0x6d, 0xb4, 0x80, 0x2c, 0x16, 0x22, 0xe2, 0xf0,
+  0x13, 0xd6, 0x56, 0xc5, 0xe3, 0xc0, 0xd4, 0x84,
+  0x9e, 0xf8, 0x60, 0xce, 0xee, 0x43, 0x44, 0x02,
+  0xe4, 0x5e, 0x4f, 0x6b, 0xd5, 0x6d, 0x98, 0x74,
+  0xc0, 0x52, 0xa5, 0xac, 0xa9, 0xd6, 0x5a, 0x0e,
+  0x98, 0x21, 0x2a, 0x3c, 0x7b, 0x3a, 0xb1, 0x56,
+  0x84, 0x82, 0x39, 0x39, 0x9e, 0xa9, 0x4e, 0x3c,
+  0x19, 0xeb, 0xd5, 0xbf, 0x43, 0xa2, 0x86, 0x57,
+  0x4b, 0xc9, 0xd2, 0x92, 0xe3, 0xe3, 0x80, 0x43,
+  0x1b, 0x79, 0x6c, 0xfc, 0x2d, 0x3d, 0x46, 0x83,
+  0xa7, 0xfc, 0xfa, 0xee, 0xfe, 0x31, 0x47, 0x59,
+  0xd3, 0xff, 0x0d, 0xbb, 0x1e, 0xa2, 0x0d, 0xec,
+  0x3a, 0x7e, 0xde, 0x11, 0xf6, 0x58, 0xa9, 0xe6,
+  0xad, 0xcd, 0x1d, 0x3e, 0xc6, 0x9e, 0xb4, 0x9d,
+  0x3d, 0x9f, 0x57, 0x95, 0x02, 0x7d, 0x7f, 0x23,
+  0x6f, 0x28, 0x85, 0x4d, 0xef, 0x0b, 0x7c, 0x83,
+  0x64, 0x3e, 0x84, 0xcc, 0xf7, 0xbf, 0x7a, 0x9d,
+  0x3b, 0x46, 0xee, 0xa7, 0x4f, 0xfc, 0x06, 0x62,
+  0x5b, 0xdb, 0x5b, 0x4d, 0x67, 0x4f, 0xfd, 0x7a,
+  0xe6, 0xcb, 0x4d, 0x72, 0x9b, 0x9d, 0x3f, 0x9f,
+  0x95, 0xdf, 0x5b, 0xe1, 0xd0, 0xa8, 0xe4, 0xf1,
+  0x17, 0x24, 0x68, 0x8d, 0x3e, 0xe6, 0xdb, 0x6c,
+  0xa7, 0x4d, 0x5a, 0x9d, 0x38, 0x21, 0x09, 0xd3,
+  0x03, 0x8a, 0x71, 0x79, 0x02, 0x7a, 0xd5, 0x32,
+  0x9d, 0xc0, 0xc2, 0xa1, 0xe8, 0xbb, 0x64, 0x20,
+  0x35, 0x08, 0x67, 0xf5, 0xff, 0x94, 0x83, 0x7b,
+  0xce, 0x9f, 0xef, 0xe3, 0x6c, 0x70, 0x42, 0x12,
+  0xa7, 0x33, 0xae, 0x74, 0x58, 0xf5, 0x5b, 0x1d,
+  0x42, 0xa3, 0x9f, 0xc7, 0x1d, 0x08, 0xb9, 0xad,
+  0xc7, 0x4c, 0xd5, 0x4e, 0x9f, 0x9d, 0x8d, 0xbd,
+  0xfd, 0xb0, 0xd6, 0x6f, 0x15, 0x9e, 0xdb, 0x2d,
+  0xc7, 0x4f, 0xfc, 0xb9, 0xf7, 0xdb, 0x3f, 0xf5,
+  0x09, 0xd2, 0xf0, 0xa2, 0xaf, 0xe9, 0x17, 0x21,
+  0x8a, 0x1b, 0x67, 0x77, 0xc7, 0xa5, 0xb4, 0x7f,
+  0x3a, 0xcb, 0xd2, 0x15, 0xfe, 0x21, 0x1a, 0x5a,
+  0xbd, 0xa3, 0xe6, 0x02, 0x6f, 0xe3, 0x06, 0xbc,
+  0x7b, 0xcd, 0xa3, 0x0a, 0x9f, 0xec, 0x1f, 0xad,
+  0xdf, 0x96, 0x3a, 0x7e, 0xf8, 0x33, 0x6e, 0x79,
+  0xd3, 0xed, 0xed, 0x3d, 0x75, 0x65, 0x42, 0xa2,
+  0x47, 0x0d, 0xb7, 0x96, 0xcf, 0xfe, 0x1d, 0x7f,
+  0xd3, 0xb7, 0xe5, 0x7c, 0xbf, 0x3a, 0x5b, 0xcd,
+  0x10, 0x2c, 0xae, 0x6a, 0x05, 0x25, 0xeb, 0x9b,
+  0xc0, 0x8f, 0xcf, 0xfb, 0xda, 0x96, 0xf6, 0xf7,
+  0x00, 0x0a, 0x54, 0xff, 0xeb, 0xd7, 0xa9, 0xdc,
+  0xc5, 0xcf, 0xdf, 0x50, 0xe8, 0x54, 0x49, 0xf9,
+  0x12, 0x75, 0x1f, 0x79, 0xd0, 0xa9, 0xc1, 0x32,
+  0x11, 0x36, 0x85, 0xd6, 0x84, 0x53, 0xf9, 0xed,
+  0x67, 0xfa, 0xd8, 0x74, 0xff, 0xe1, 0x4f, 0xe3,
+  0x6f, 0xe2, 0x8a, 0xd4, 0xe9, 0xfd, 0xcd, 0x5b,
+  0x19, 0x95, 0x3a, 0x30, 0xfe, 0x5b, 0x23, 0xcf,
+  0xde, 0xd7, 0x7c, 0xc6, 0x1d, 0x3e, 0xcd, 0xbc,
+  0x35, 0x3a, 0x7f, 0xfa, 0xb7, 0xa5, 0x3d, 0x6d,
+  0xcd, 0xf9, 0x6f, 0x30, 0xe9, 0x2d, 0x07, 0xfa,
+  0x12, 0x78, 0xf2, 0x3d, 0xac, 0x47, 0x78, 0x55,
+  0xce, 0xdb, 0x84, 0xe9, 0xf0, 0x3b, 0xf8, 0xde,
+  0x74, 0x29, 0xe2, 0x68, 0x37, 0x3c, 0xac, 0xa5,
+  0xa3, 0xa1, 0x55, 0x2f, 0xbe, 0x3a, 0x1a, 0xbc,
+  0xdc, 0x8a, 0x78, 0x1d, 0x4d, 0x4e, 0x98, 0x21,
+  0x3a, 0x2a, 0x6e, 0x02, 0x45, 0x3f, 0x57, 0xd6,
+  0xec, 0xb1, 0x4e, 0x34, 0x33, 0x82, 0x10, 0x95,
+  0x3c, 0xfb, 0xe2, 0x14, 0xe2, 0xf2, 0x7d, 0x9b,
+  0x78, 0x15, 0x3a, 0x5c, 0x27, 0xaf, 0xf2, 0xf9,
+  0xfb, 0xf4, 0xd5, 0xac, 0xb9, 0xd3, 0xea, 0x35,
+  0x7e, 0xca, 0x4e, 0x9f, 0x7a, 0xab, 0x43, 0x0f,
+  0x97, 0xec, 0xf9, 0x78, 0x41, 0xa1, 0xf2, 0xfd,
+  0x9b, 0x9e, 0x7c, 0xbf, 0x67, 0xb4, 0x7e, 0x54,
+  0xf9, 0x7e, 0xc6, 0xc7, 0xa3, 0xf2, 0x29, 0xf2,
+  0xe5, 0x73, 0xe7, 0xcb, 0xf6, 0x0f, 0x97, 0xec,
+  0xdd, 0x73, 0xe5, 0xfa, 0xc2, 0xde, 0x4f, 0xf9,
+  0xfd, 0x68, 0x93, 0x3d, 0x9a, 0x9e, 0x01, 0xf2,
+  0xfd, 0x83, 0xe5, 0xfb, 0x30, 0x14, 0xf9, 0x7e,
+  0xcf, 0xf6, 0x03, 0x87, 0x1b, 0x66, 0xc7, 0xcb,
+  0xf6, 0x7e, 0xcb, 0x7a, 0xba, 0x50, 0x7c, 0xbf,
+  0x60, 0x08, 0xa3, 0xf9, 0x15, 0x51, 0x67, 0x86,
+  0x85, 0xb9, 0xf2, 0xfd, 0x83, 0xe5, 0xfb, 0x86,
+  0xba, 0x60, 0x84, 0xf9, 0x7e, 0xc3, 0xd5, 0x88,
+  0xec, 0x6b, 0x90, 0x84, 0xa6, 0x13, 0xa2, 0x52,
+  0xc3, 0x1a, 0xc2, 0xea, 0xeb, 0xc1, 0x26, 0x9e,
+  0xc7, 0xae, 0xb2, 0xe5, 0xfa, 0xe4, 0x47, 0xcf,
+  0xfb, 0x13, 0x6c, 0x10, 0xf5, 0x9a, 0x3a, 0x67,
+  0xd0, 0x54, 0x50, 0x89, 0x5a, 0x50, 0x7e, 0x7b,
+  0x02, 0xb9, 0x29, 0xd3, 0x8c, 0x53, 0xff, 0xf5,
+  0x2f, 0x15, 0x6d, 0xcd, 0x2e, 0xd6, 0x56, 0x73,
+  0x47, 0x42, 0xae, 0xb9, 0xe1, 0x37, 0x4e, 0x61,
+  0xe8, 0x59, 0x3f, 0xed, 0x6b, 0x4f, 0xd6, 0xd6,
+  0xd1, 0x0e, 0x9f, 0xbf, 0xda, 0xed, 0xcf, 0x3a,
+  0x70, 0x42, 0x12, 0xa7, 0x6f, 0x50, 0x14, 0xe2,
+  0xf2, 0x7f, 0xdf, 0xe7, 0xef, 0x1c, 0x6d, 0xc2,
+  0x74, 0xff, 0x7f, 0x81, 0xb9, 0xea, 0x0a, 0x4e,
+  0x8d, 0x93, 0x31, 0x62, 0x08, 0x12, 0xbe, 0x59,
+  0x73, 0xf9, 0xff, 0x7f, 0xfe, 0xd1, 0xbb, 0xae,
+  0xa2, 0xdc, 0xe9, 0xc1, 0x08, 0x4b, 0x10, 0x84,
+  0xf8, 0x53, 0xb9, 0x0b, 0x10, 0x83, 0x8d, 0x4c,
+  0xe0, 0x84, 0x25, 0x88, 0x3e, 0x0b, 0x10, 0x7b,
+  0x8d, 0x4c, 0xca, 0xcc, 0x44, 0x82, 0x34, 0xcf,
+  0xae, 0xb7, 0x56, 0x1d, 0x3d, 0xff, 0x2e, 0xb3,
+  0xa7, 0x6f, 0x50, 0x1d, 0x14, 0x1e, 0x03, 0x08,
+  0xe7, 0xc8, 0xb6, 0x56, 0x15, 0x3e, 0xff, 0x7f,
+  0xf8, 0x54, 0xd8, 0x85, 0x4c, 0x10, 0x95, 0x18,
+  0x7e, 0xb5, 0x25, 0xb9, 0x30, 0x45, 0x27, 0xf7,
+  0xf7, 0xa8, 0x2d, 0x8d, 0xe5, 0x38, 0xdd, 0xc2,
+  0xa7, 0x01, 0xe6, 0x6e, 0x86, 0x9c, 0xff, 0xeb,
+  0x28, 0x2b, 0x99, 0xb7, 0x7f, 0xb5, 0x9d, 0x3f,
+  0xab, 0xbd, 0x95, 0x0f, 0x52, 0x74, 0x2a, 0xba,
+  0xdc, 0x4c, 0xf4, 0x60, 0x23, 0x1d, 0x67, 0x1a,
+  0x55, 0x2a, 0x70, 0x42, 0x12, 0xa7, 0xcf, 0x07,
+  0x7f, 0x62, 0x9c, 0x5e, 0x4f, 0xff, 0x7e, 0x9d,
+  0xd4, 0x81, 0x7e, 0x9d, 0x47, 0xf8, 0xe9, 0xff,
+  0xec, 0x57, 0x6d, 0xf5, 0xd1, 0x33, 0x5f, 0x84,
+  0xe9, 0xe6, 0xfb, 0x01, 0xb1, 0xd0, 0xf3, 0xf7,
+  0xe5, 0x09, 0xff, 0xcf, 0xc1, 0x03, 0x3d, 0x5d,
+  0xf5, 0x5c, 0x3a, 0x7b, 0xdb, 0x63, 0x0e, 0x85,
+  0x4e, 0x39, 0xe6, 0xfd, 0x0c, 0xaf, 0x90, 0xe8,
+  0x95, 0x3f, 0x6a, 0xeb, 0xef, 0xd2, 0xf3, 0xa7,
+  0xfd, 0xc3, 0xa9, 0xeb, 0x67, 0x52, 0x03, 0xa7,
+  0xfd, 0x5a, 0xa8, 0xdd, 0x5d, 0xb7, 0x8e, 0x9f,
+  0xf7, 0xf9, 0xab, 0x70, 0x8f, 0xb6, 0x3a, 0x31,
+  0x1d, 0xe8, 0x67, 0xe4, 0x06, 0x1f, 0x4f, 0x3f,
+  0x7e, 0x34, 0x74, 0xf8, 0x76, 0xcc, 0xf9, 0xd3,
+  0xff, 0x6a, 0xfd, 0x96, 0x56, 0xd5, 0xb2, 0xd2,
+  0x74, 0x71, 0xf8, 0x54, 0x9a, 0x7f, 0xfb, 0x2f,
+  0x5c, 0x6a, 0xca, 0xdb, 0x2d, 0x65, 0x3a, 0x7f,
+  0x5d, 0xba, 0xb5, 0xf6, 0xe9, 0x46, 0x87, 0x46,
+  0xc8, 0xb4, 0xf9, 0x0d, 0xd4, 0x27, 0xff, 0xbd,
+  0x5c, 0xda, 0xf5, 0xf6, 0xbb, 0x77, 0xfc, 0x74,
+  0xff, 0xfe, 0xfd, 0xf2, 0xde, 0x5b, 0xf8, 0x0a,
+  0xf7, 0x04, 0x21, 0x2a, 0x7b, 0x6c, 0xcd, 0x65,
+  0x4e, 0x7f, 0xf4, 0x34, 0x43, 0x33, 0x82, 0x10,
+  0x95, 0x3b, 0x3e, 0x85, 0x38, 0xbc, 0x9f, 0xf6,
+  0x51, 0x9b, 0x73, 0xfe, 0xb4, 0x1d, 0x00, 0x3e,
+  0x8f, 0x94, 0xcf, 0xe7, 0xff, 0x2f, 0x7d, 0x28,
+  0x3a, 0x15, 0x38, 0x9a, 0x18, 0x69, 0x23, 0x18,
+  0x57, 0x71, 0x14, 0xf7, 0xaf, 0xe5, 0x3a, 0x7f,
+  0x69, 0x82, 0x00, 0x7b, 0xe7, 0x4f, 0xff, 0x95,
+  0xfe, 0xda, 0xdb, 0xeb, 0x82, 0x9d, 0xc8, 0x68,
+  0x83, 0x22, 0xc8, 0x94, 0xb9, 0x9c, 0xfe, 0xd4,
+  0xca, 0xea, 0x60, 0xa9, 0xd0, 0xf4, 0xc3, 0xbd,
+  0x0b, 0x5b, 0x91, 0xcf, 0xff, 0x2f, 0xe8, 0xdc,
+  0xd7, 0xbf, 0x9b, 0x67, 0xf5, 0x9d, 0x39, 0x45,
+  0xa3, 0xa1, 0x57, 0x65, 0x36, 0x3b, 0xc8, 0xd2,
+  0x10, 0xc7, 0xd1, 0xee, 0x74, 0x6b, 0xba, 0x1b,
+  0x6a, 0x2b, 0x4f, 0xef, 0xfd, 0x5e, 0xc5, 0xf1,
+  0xd3, 0xfa, 0xfe, 0x6d, 0xeb, 0xbd, 0x4a, 0x93,
+  0x0e, 0x9f, 0xb3, 0xfa, 0xc5, 0x5d, 0xe3, 0xc5,
+  0xde, 0x6b, 0x1e, 0x45, 0xf5, 0x5d, 0xe7, 0x87,
+  0x4a, 0x5e, 0x74, 0xfe, 0xfb, 0xff, 0x8c, 0x54,
+  0x3a, 0x73, 0x36, 0xc3, 0xa1, 0x4f, 0xc3, 0x08,
+  0xf8, 0xc6, 0x75, 0xfd, 0x41, 0xd3, 0xfe, 0xd2,
+  0xf5, 0xde, 0x20, 0x67, 0xaa, 0x74, 0xff, 0xcb,
+  0xfe, 0xb2, 0x81, 0xc3, 0x5a, 0x95, 0x1b, 0x22,
+  0x11, 0x88, 0x53, 0xeb, 0x7b, 0xd4, 0xd4, 0xe8,
+  0x2a, 0x7e, 0xae, 0xf5, 0x15, 0x61, 0x50, 0x54,
+  0x15, 0x05, 0x41, 0x50, 0xf3, 0xdf, 0xf0, 0x50,
+  0x0b, 0x74, 0x0a, 0xd4, 0x0a, 0x6f, 0x0a, 0x9a,
+  0xd8, 0x54, 0xfd, 0xdd, 0x76, 0x95, 0x85, 0x6e,
+  0x2d, 0x64, 0xdd, 0x95, 0x05, 0x41, 0x50, 0xf2,
+  0xd3, 0xc1, 0x50, 0x54, 0x15, 0x05, 0x41, 0x50,
+  0x54, 0x15, 0x14, 0x1b, 0xcd, 0x82, 0xbc, 0x14,
+  0x00, 0xaa, 0x85, 0x36, 0x0a, 0x82, 0xa0, 0xa8,
+  0x79, 0x69, 0x50, 0xa8, 0x2a, 0x0a, 0x82, 0xa0,
+  0xa8, 0x79, 0xa8, 0x00, 0x55, 0xc2, 0x9b, 0xc2,
+  0xa0, 0xa8, 0x2a, 0x0a, 0x82, 0xa2, 0x83, 0x51,
+  0xac, 0x28, 0x42, 0xac, 0x15, 0x2d, 0x65, 0x41,
+  0x50, 0x54, 0x15, 0x05, 0x46, 0xc6, 0xa2, 0x90,
+  0xa0, 0x05, 0x68, 0x15, 0x05, 0x41, 0x50, 0x54,
+  0xfa, 0xca, 0x0a, 0xe1, 0x50, 0x54, 0x3c, 0xf3,
+  0x90, 0x2a, 0xc1, 0x5c, 0x14, 0x02, 0x69, 0x21,
+  0x50, 0x54, 0x15, 0x05, 0x41, 0x50, 0xf3, 0x51,
+  0x48, 0x57, 0x82, 0x9b, 0x05, 0x41, 0x50, 0x54,
+  0x15, 0x05, 0x43, 0xcd, 0x46, 0xc1, 0x56, 0x0a,
+  0xf8, 0x54, 0xac, 0x54, 0x15, 0x05, 0x49, 0xe5,
+  0x41, 0x54, 0x96, 0x10, 0x54, 0x15, 0x05, 0x41,
+  0x51, 0x41, 0xf3, 0x3c, 0x2b, 0x58, 0xd2, 0x0d,
+  0x34, 0x14, 0x00, 0xab, 0x85, 0x4b, 0x0a, 0x82,
+  0xa0, 0xa9, 0x3c, 0xa8, 0x2a, 0x92, 0xc2, 0x0a,
+  0x82, 0xa1, 0x4f, 0x49, 0xe1, 0x5e, 0x1a, 0x11,
+  0xa6, 0x05, 0x41, 0x50, 0x54, 0x15, 0x05, 0x41,
+  0x50, 0xa6, 0xca, 0x90, 0xa1, 0x0a, 0x60, 0x57,
+  0xc2, 0xa0, 0xa8, 0x2a, 0x0a, 0x81, 0x2f, 0xaa,
+  0x15, 0x70, 0xa8, 0x2a, 0x0a, 0x82, 0xa1, 0x85,
+  0xf7, 0xc2, 0xae, 0x15, 0x26, 0x15, 0x05, 0x41,
+  0x50, 0x02, 0xd3, 0x40, 0xa8, 0x2a, 0x0a, 0x82,
+  0xa0, 0xa8, 0x53, 0x50, 0xd0, 0x55, 0x82, 0xb4,
+  0x0a, 0x85, 0x5f, 0xad, 0xa1, 0xc9, 0xe7, 0xbb,
+  0x14, 0xe2, 0xe2, 0x36, 0xd2, 0x91, 0xe6, 0x6d,
+  0x59, 0xeb, 0x47, 0x43, 0x08, 0xc6, 0x23, 0xd8,
+  0xdf, 0x99, 0x80, 0x79, 0xf7, 0x6a, 0xb3, 0x5d,
+  0x87, 0x47, 0x96, 0xcc, 0xa1, 0x4a, 0xd4, 0x2d,
+  0xde, 0x48, 0xde, 0x93, 0x3e, 0x7f, 0xd7, 0x2a,
+  0x53, 0x93, 0x57, 0x9d, 0xe5, 0x61, 0x53, 0xde,
+  0x4e, 0x13, 0xa7, 0x7b, 0x6c, 0x3a, 0x72, 0xef,
+  0x75, 0x28, 0x8f, 0x13, 0x9b, 0x0d, 0xdc, 0x7e,
+  0x7f, 0x5b, 0xc1, 0xd8, 0x56, 0x83, 0xa2, 0x94,
+  0x42, 0x34, 0xa1, 0x30, 0x14, 0xe9, 0xf8, 0x7b,
+  0xfb, 0xd4, 0x07, 0x4d, 0xc2, 0x74, 0xbc, 0x72,
+  0x16, 0x92, 0x43, 0xa4, 0xc3, 0xa7, 0x66, 0xa3,
+  0xbc, 0x89, 0x31, 0x15, 0xb2, 0x0f, 0x0f, 0x6f,
+  0x0f, 0x9f, 0xff, 0x68, 0xbb, 0xb8, 0x47, 0x80,
+  0xae, 0x08, 0x42, 0x74, 0x3d, 0x9b, 0x1d, 0xb4,
+  0x24, 0xd0, 0xb3, 0xd0, 0xa1, 0x68, 0x93, 0xa9,
+  0x53, 0xff, 0x85, 0xc5, 0xd7, 0xa7, 0xf2, 0xfe,
+  0xfd, 0xfd, 0x30, 0xe9, 0xf9, 0xff, 0xf3, 0xed,
+  0x87, 0x4f, 0xa8, 0xf0, 0xab, 0xce, 0x81, 0x3d,
+  0x4f, 0x96, 0xcf, 0xfa, 0xca, 0x20, 0xfe, 0x07,
+  0x80, 0x74, 0xec, 0xc6, 0x8e, 0x96, 0x58, 0xf5,
+  0xc0, 0x79, 0x3f, 0x57, 0x1b, 0x7d, 0x69, 0x3a,
+  0x79, 0x7f, 0x74, 0x3a, 0x4b, 0x88, 0xee, 0xfb,
+  0xc5, 0xc9, 0xf5, 0x0b, 0xe7, 0xb4, 0xe1, 0x79,
+  0xd3, 0xcb, 0xa3, 0x77, 0x52, 0xa7, 0xcf, 0x70,
+  0x42, 0x13, 0xa3, 0xe7, 0x9f, 0xa1, 0x3c, 0x6c,
+  0x89, 0x3c, 0x70, 0x86, 0x2a, 0x6e, 0x04, 0x6e,
+  0x9a, 0x43, 0x5e, 0x7e, 0x1d, 0x01, 0x9f, 0x43,
+  0xa7, 0xfa, 0x8f, 0xe3, 0xed, 0x80, 0xa9, 0xd3,
+  0xdb, 0x6c, 0xad, 0x8e, 0x9f, 0xff, 0x2d, 0x95,
+  0x88, 0xb7, 0xc1, 0x4e, 0xe4, 0x34, 0x5f, 0x13,
+  0xf8, 0x3d, 0x7a, 0xae, 0x50, 0x74, 0xff, 0xfd,
+  0x97, 0xde, 0xf5, 0x6d, 0xef, 0x80, 0x7c, 0xac,
+  0xc2, 0xa6, 0xbe, 0x1d, 0x3e, 0x1f, 0x51, 0xcc,
+  0x34, 0xc2, 0x73, 0xd7, 0xd1, 0x78, 0xd3, 0x09,
+  0xcc, 0x05, 0x35, 0x02, 0x73, 0xfb, 0xfd, 0xae,
+  0xea, 0x20, 0x35, 0x02, 0x73, 0xfa, 0xb9, 0x6f,
+  0x57, 0x4a, 0x0d, 0x30, 0x9c, 0xd9, 0xb1, 0xa6,
+  0x13, 0x98, 0x21, 0x3c, 0xc2, 0x71, 0x89, 0xa6,
+  0x52, 0x69, 0xe2, 0xe6, 0x11, 0x55, 0x01, 0xb2,
+  0x10, 0x48, 0xe5, 0x72, 0xcc, 0x26, 0xe3, 0xe7,
+  0x97, 0xa9, 0x4f, 0xd8, 0x31, 0xe4, 0x45, 0x55,
+  0x42, 0x5e, 0x52, 0x9c, 0x2a, 0xb9, 0xbd, 0x8e,
+  0x50, 0x96, 0xcb, 0x77, 0x95, 0x6d, 0x3e, 0xdb,
+  0x07, 0xda, 0xce, 0x9f, 0x7f, 0x37, 0xe3, 0x47,
+  0x4f, 0xf5, 0xb9, 0x96, 0xf2, 0xd2, 0xf3, 0xa7,
+  0xed, 0xff, 0x7e, 0xa7, 0x50, 0x74, 0x78, 0xfb,
+  0x00, 0x73, 0x1f, 0x45, 0xbd, 0xe1, 0x2b, 0x0a,
+  0xba, 0x43, 0x92, 0xf1, 0xfc, 0xa5, 0xd0, 0xe0,
+  0x9f, 0xfc, 0xcb, 0xd7, 0xdf, 0xa5, 0xf7, 0xf5,
+  0x7c, 0x74, 0xff, 0xfe, 0xfe, 0x53, 0x95, 0xef,
+  0xdb, 0xcb, 0x7b, 0x69, 0xcc, 0x3a, 0x7e, 0xfe,
+  0x8c, 0xf5, 0x94, 0xe9, 0xff, 0xf7, 0x7e, 0xfd,
+  0xd6, 0xfa, 0xde, 0xa1, 0xcb, 0x1d, 0x38, 0x6b,
+  0x53, 0xc4, 0x07, 0x3f, 0xfd, 0xbc, 0x56, 0xcb,
+  0xbb, 0x05, 0x3b, 0x90, 0xd1, 0x01, 0xb8, 0xd4,
+  0x40, 0x11, 0xcb, 0x77, 0xb8, 0xc4, 0xcd, 0xbd,
+  0x18, 0x9c, 0xff, 0xfe, 0xe7, 0xe5, 0x7c, 0x23,
+  0xe6, 0x6f, 0xbd, 0xb0, 0x37, 0x3a, 0x7f, 0xff,
+  0xb9, 0xf9, 0xf6, 0x9f, 0x94, 0xbf, 0x7a, 0x81,
+  0xc1, 0x08, 0x4a, 0x8b, 0x23, 0x2f, 0xec, 0x33,
+  0xf9, 0x70, 0x53, 0xb9, 0x0d, 0x10, 0x4c, 0xff,
+  0x2d, 0xf0, 0x53, 0xb9, 0x0d, 0x17, 0xcc, 0xfb,
+  0xcd, 0xbf, 0x95, 0xd8, 0xfe, 0x90, 0xea, 0x7f,
+  0xd4, 0x75, 0x3a, 0x99, 0x7f, 0xf3, 0x63, 0xa7,
+  0x04, 0x21, 0x2a, 0x7e, 0xbd, 0xb1, 0x38, 0x4a,
+  0x71, 0x79, 0x14, 0x22, 0x67, 0xec, 0x13, 0xff,
+  0x50, 0xc5, 0xa6, 0xbf, 0xca, 0x37, 0xbc, 0xe9,
+  0xff, 0xed, 0xf4, 0xff, 0x72, 0x5b, 0xc0, 0x02,
+  0x8b, 0xce, 0x9c, 0x10, 0x84, 0xa9, 0xfd, 0xbc,
+  0x0b, 0xfc, 0xa6, 0xe5, 0x38, 0xbc, 0x9f, 0xff,
+  0x9b, 0xbd, 0xc9, 0x6f, 0x6d, 0xb6, 0x07, 0x75,
+  0xeb, 0x94, 0x1d, 0x2e, 0xb2, 0x2a, 0xf4, 0x44,
+  0x87, 0xaa, 0x8b, 0xf4, 0x36, 0x84, 0x91, 0x89,
+  0x37, 0x8c, 0x6e, 0x7f, 0xd9, 0x75, 0x1a, 0xd9,
+  0x7f, 0x73, 0xc4, 0x11, 0x3f, 0x97, 0x05, 0x3b,
+  0x90, 0xd1, 0x04, 0x38, 0xf2, 0x67, 0xee, 0xb0,
+  0x8f, 0x82, 0x74, 0xfd, 0xab, 0xd8, 0x3d, 0xf7,
+  0x9d, 0x1f, 0x3d, 0xdd, 0x0a, 0xe0, 0x08, 0xcb,
+  0xfc, 0x2a, 0x27, 0xf9, 0x7f, 0x7d, 0xf9, 0x6e,
+  0xa4, 0xe9, 0xff, 0xee, 0x0d, 0xf2, 0xcb, 0xeb,
+  0xff, 0x2d, 0xe3, 0xa1, 0xe8, 0x88, 0xf9, 0xd4,
+  0xfe, 0xbe, 0xf6, 0x54, 0x3d, 0x49, 0xd3, 0xde,
+  0x6b, 0xc1, 0x3a, 0x7f, 0xfd, 0xa5, 0x1f, 0x5c,
+  0xb3, 0x96, 0xf9, 0x6d, 0x04, 0xe9, 0xf6, 0x5e,
+  0xbb, 0xeb, 0xb1, 0xfc, 0xef, 0x23, 0x9f, 0x92,
+  0xde, 0xd4, 0xf6, 0xb3, 0xa7, 0xe6, 0x2e, 0xae,
+  0xd9, 0x41, 0xd3, 0xff, 0xff, 0xde, 0xbf, 0x33,
+  0xbe, 0x07, 0xfa, 0xba, 0x32, 0xde, 0x5b, 0xdb,
+  0x4e, 0x61, 0xd1, 0xb2, 0x38, 0xfc, 0x65, 0xc6,
+  0x33, 0x87, 0x7d, 0x4e, 0x9f, 0xf7, 0x7d, 0x30,
+  0x53, 0xb9, 0x0d, 0x10, 0x8c, 0x29, 0xf1, 0x68,
+  0x3b, 0x3f, 0xf9, 0x72, 0x9d, 0xf7, 0xf7, 0xf4,
+  0x7e, 0x54, 0xe9, 0xff, 0xee, 0xea, 0x37, 0xe5,
+  0xb9, 0x8e, 0x08, 0x42, 0x74, 0xb3, 0x64, 0x4f,
+  0x34, 0x9b, 0x38, 0x21, 0x09, 0x53, 0xfd, 0x80,
+  0xe1, 0xc6, 0xd9, 0xb1, 0x4e, 0x2f, 0x26, 0x08,
+  0x4a, 0x9c, 0x10, 0x84, 0xa9, 0xfb, 0xa8, 0xda,
+  0xcb, 0x52, 0x9c, 0x5e, 0x47, 0xd1, 0x6c, 0x14,
+  0x7d, 0x43, 0x29, 0xf2, 0x7b, 0x6d, 0xec, 0x29,
+  0xc6, 0xce, 0x70, 0x42, 0x12, 0xa7, 0x55, 0x44,
+  0xa7, 0x17, 0x92, 0x07, 0x8f, 0xfe, 0xea, 0xd3,
+  0xf6, 0xdf, 0x57, 0xf2, 0x1d, 0x3f, 0xb7, 0x8e,
+  0xde, 0x6c, 0xbb, 0x1d, 0x3f, 0xaf, 0x6c, 0x6d,
+  0x97, 0xa9, 0xd0, 0x28, 0x98, 0xb1, 0x67, 0xce,
+  0x21, 0x51, 0xdf, 0x90, 0xc0, 0x9d, 0x4e, 0xab,
+  0x9b, 0xa9, 0xd3, 0xff, 0xb3, 0x57, 0xdf, 0x06,
+  0x22, 0xd9, 0x58, 0x74, 0xfc, 0x9e, 0xad, 0xbc,
+  0xd1, 0x53, 0xfb, 0xf9, 0x4b, 0xeb, 0xed, 0x67,
+  0x4f, 0x77, 0x0e, 0xb3, 0xa3, 0x71, 0xeb, 0xd0,
+  0x6d, 0x3c, 0xbc, 0xc6, 0xc5, 0x4e, 0x08, 0x42,
+  0x54, 0xff, 0xf6, 0xf5, 0x06, 0x67, 0xef, 0x6f,
+  0x2f, 0xe8, 0x29, 0xc5, 0xe4, 0xb1, 0x11, 0x3c,
+  0xc3, 0xe8, 0x54, 0xf9, 0x1e, 0x57, 0x4a, 0x57,
+  0xa1, 0x0b, 0x68, 0x61, 0xcf, 0xff, 0x99, 0x88,
+  0xbf, 0xeb, 0xd7, 0x6d, 0x38, 0x5e, 0x74, 0xf9,
+  0x6f, 0x56, 0xd8, 0x74, 0x29, 0xfe, 0x5d, 0x52,
+  0x7f, 0xfb, 0xcd, 0xb3, 0xfb, 0x7f, 0x83, 0x9f,
+  0xed, 0x67, 0x4f, 0xff, 0xf6, 0xd6, 0xf0, 0x71,
+  0xbf, 0xcc, 0xeb, 0xd7, 0x47, 0xe5, 0x37, 0x3a,
+  0x31, 0x18, 0x1c, 0xa7, 0x0a, 0xd8, 0xef, 0xd0,
+  0x9a, 0xf8, 0xe5, 0xf6, 0x87, 0xa6, 0x4b, 0x28,
+  0xf4, 0x6d, 0x4d, 0x42, 0xc0, 0x48, 0xd9, 0x0a,
+  0xfb, 0x46, 0x4e, 0x08, 0x49, 0x7e, 0x18, 0x15,
+  0x95, 0x3b, 0x79, 0x41, 0x5a, 0x43, 0x44, 0x30,
+  0xe1, 0x9c, 0xd9, 0x7e, 0x74, 0xff, 0xf6, 0x7d,
+  0xd7, 0xd7, 0xea, 0x6b, 0x6c, 0x07, 0x1d, 0x2a,
+  0x5e, 0x7d, 0xfb, 0x0e, 0xcf, 0xd6, 0x6b, 0xd6,
+  0xf3, 0x0e, 0x9f, 0xf7, 0xd6, 0xf6, 0xe0, 0x75,
+  0x35, 0x3a, 0x73, 0x5a, 0x09, 0xd3, 0xfe, 0xef,
+  0x0e, 0x52, 0xe0, 0x84, 0x27, 0x47, 0x1e, 0xdd,
+  0x47, 0x67, 0xff, 0xbe, 0xaf, 0xdd, 0xbe, 0xfe,
+  0xfe, 0x8f, 0xca, 0x9d, 0x18, 0x99, 0xf2, 0x17,
+  0xda, 0x13, 0x20, 0x21, 0x9f, 0xcb, 0xf7, 0xff,
+  0x30, 0x07, 0x4f, 0xe7, 0xe0, 0xd7, 0xeb, 0x41,
+  0xd3, 0xff, 0xca, 0xd9, 0x45, 0xdb, 0xef, 0xfc,
+  0xa3, 0xc2, 0x7b, 0xbd, 0xe7, 0xff, 0xb2, 0xeb,
+  0xf4, 0xcb, 0xdb, 0xc2, 0x04, 0x3a, 0x7d, 0xd5,
+  0xcf, 0xdc, 0xe9, 0xd7, 0xed, 0x59, 0xd3, 0xfa,
+  0xf6, 0xf3, 0x81, 0xde, 0x3a, 0x28, 0x4c, 0x8f,
+  0x65, 0xff, 0xa6, 0x5c, 0x9b, 0x41, 0xf9, 0xfd,
+  0xa0, 0x16, 0xde, 0xe7, 0x9d, 0x3f, 0xff, 0x7f,
+  0x2b, 0xa6, 0xec, 0xb7, 0x7f, 0x1a, 0x7a, 0xd2,
+  0x74, 0xff, 0xb2, 0xba, 0x60, 0xa7, 0x72, 0x1a,
+  0x20, 0x69, 0xf6, 0x5e, 0xdc, 0xfd, 0xc8, 0xa5,
+  0xfa, 0xf4, 0xff, 0xff, 0xfd, 0x97, 0xb7, 0x7f,
+  0x5e, 0xea, 0x8f, 0x75, 0xdb, 0x66, 0xdb, 0xb1,
+  0x9d, 0xfa, 0x5e, 0x78, 0x82, 0xe7, 0xfd, 0xdd,
+  0xad, 0x3b, 0x6d, 0xda, 0xc2, 0x78, 0x82, 0xe7,
+  0xfe, 0xb7, 0xad, 0xe5, 0xfd, 0xf7, 0x6b, 0x09,
+  0xe2, 0x0b, 0x9f, 0xcb, 0xef, 0xdf, 0x76, 0xb0,
+  0x9e, 0x20, 0xb9, 0xf9, 0x99, 0xb6, 0xed, 0x61,
+  0x3c, 0x41, 0x73, 0xff, 0xfd, 0xdf, 0xff, 0x99,
+  0xba, 0xa9, 0x6f, 0x0f, 0xb5, 0xd1, 0x81, 0x3c,
+  0x41, 0x73, 0x53, 0xbb, 0x64, 0xe8, 0x51, 0x40,
+  0x55, 0xb9, 0x13, 0xe7, 0xf1, 0x65, 0x52, 0xdf,
+  0x94, 0x7d, 0x3d, 0xc2, 0x0e, 0x3a, 0x7f, 0xeb,
+  0x7a, 0xde, 0x5f, 0xdf, 0x76, 0xb0, 0x9e, 0x20,
+  0xb9, 0xfe, 0x6a, 0xa9, 0xea, 0x37, 0x6b, 0x09,
+  0xe2, 0x0b, 0x9f, 0x5e, 0xaa, 0xcd, 0xc8, 0x8a,
+  0x2d, 0xea, 0xd3, 0xff, 0xb7, 0x25, 0xbc, 0x8b,
+  0x7a, 0xee, 0xd6, 0x13, 0xc4, 0x17, 0x3f, 0xff,
+  0xf7, 0xff, 0xe6, 0x6e, 0xd3, 0x37, 0x55, 0x2d,
+  0xe1, 0xf6, 0xba, 0x30, 0x27, 0x88, 0x2e, 0x31,
+  0x32, 0x6a, 0x50, 0xf9, 0x72, 0x7f, 0xad, 0xe1,
+  0xf6, 0xba, 0x30, 0x27, 0x88, 0x2e, 0x7f, 0xfb,
+  0xba, 0x97, 0xd6, 0xde, 0xdb, 0x65, 0x15, 0x2a,
+  0x7f, 0xd8, 0xf7, 0xe9, 0x51, 0xfd, 0x1a, 0x87,
+  0x88, 0x2e, 0x11, 0x1d, 0x02, 0x91, 0x55, 0x09,
+  0xff, 0x27, 0x86, 0xfc, 0x0a, 0xee, 0x09, 0xe2,
+  0x0b, 0x9f, 0xad, 0xeb, 0x5b, 0xc0, 0x34, 0x01,
+  0x73, 0xec, 0x06, 0xed, 0x61, 0x3c, 0x41, 0x73,
+  0x65, 0xd0, 0xfc, 0xec, 0x77, 0x14, 0xa3, 0xae,
+  0xb0, 0xbf, 0x9f, 0x99, 0x9b, 0x6e, 0xd6, 0x13,
+  0xc4, 0x17, 0x3f, 0xe4, 0xb7, 0x87, 0xda, 0xe8,
+  0xc0, 0x9e, 0x20, 0xb9, 0xb3, 0x77, 0x22, 0x32,
+  0xa7, 0xf3, 0xfb, 0x4f, 0x33, 0xbf, 0x4b, 0xcf,
+  0x10, 0x5c, 0xff, 0xb3, 0xcd, 0xb3, 0xf9, 0xb7,
+  0x3c, 0xf1, 0x05, 0xb0, 0xf0, 0xa3, 0x65, 0xdc,
+  0x70, 0x16, 0x7e, 0x3e, 0x7a, 0xc6, 0x31, 0x78,
+  0xc6, 0x74, 0x85, 0xa8, 0x5c, 0x67, 0xc0, 0xa8,
+  0x00, 0xa6, 0x88, 0x2d, 0xc8, 0x80, 0x9f, 0xf6,
+  0x3e, 0xdc, 0xf6, 0xf6, 0xfd, 0x28, 0x3a, 0x7f,
+  0x0f, 0xf3, 0x6b, 0x68, 0x13, 0xa7, 0xd4, 0xdf,
+  0x84, 0x07, 0x4f, 0xd9, 0x47, 0x59, 0x75, 0x67,
+  0x47, 0x91, 0x17, 0xc6, 0x9f, 0x27, 0x9d, 0xc3,
+  0x41, 0xd3, 0x01, 0x4e, 0x9e, 0xf2, 0xb3, 0x0e,
+  0x83, 0xa7, 0xee, 0xd7, 0x75, 0x10, 0x1d, 0x1b,
+  0x1b, 0x7f, 0x85, 0x4f, 0xff, 0xe5, 0xf6, 0xdf,
+  0x5d, 0x12, 0xf8, 0x9b, 0x2a, 0x6f, 0x61, 0xd3,
+  0x01, 0x4e, 0x99, 0x75, 0x9d, 0x3f, 0xd9, 0x7a,
+  0xab, 0x37, 0xe3, 0x47, 0x4f, 0xea, 0xe5, 0xbd,
+  0x5d, 0x28, 0x3a, 0x60, 0x84, 0xa9, 0xfe, 0xfe,
+  0x36, 0xe7, 0xd7, 0xdb, 0x1d, 0x08, 0x9f, 0xbf,
+  0x86, 0xc4, 0x55, 0x8a, 0xf6, 0x22, 0x03, 0x13,
+  0x76, 0x2b, 0xf1, 0x7a, 0x9d, 0x04, 0xd7, 0x78,
+  0xb4, 0xe0, 0x84, 0x25, 0x49, 0x85, 0x38, 0xbc,
+  0x9f, 0x73, 0x5d, 0xc2, 0x53, 0x91, 0xb3, 0xbe,
+  0x17, 0x53, 0xfa, 0x9b, 0xae, 0x5b, 0x28, 0x3a,
+  0x15, 0xb2, 0x07, 0xc8, 0xda, 0x35, 0xa0, 0xd2,
+  0x63, 0xe8, 0xd5, 0x45, 0x3a, 0xd0, 0xd8, 0xea,
+  0x48, 0xf7, 0xd1, 0xab, 0x0d, 0x1d, 0x25, 0x7f,
+  0xb6, 0x4b, 0x9e, 0xc4, 0x5b, 0x9d, 0x3d, 0x8c,
+  0xcb, 0x9d, 0x3d, 0xd4, 0x6f, 0x79, 0xd0, 0xa7,
+  0xc7, 0x48, 0xfb, 0x79, 0x04, 0xfd, 0xfd, 0x36,
+  0x67, 0x3c, 0xe9, 0xff, 0xea, 0x5f, 0xf5, 0xdc,
+  0xcf, 0xae, 0xbb, 0xfa, 0x83, 0xa7, 0xf5, 0x6e,
+  0xdb, 0x3f, 0x9b, 0x1d, 0x0a, 0x8b, 0xaf, 0x17,
+  0xf2, 0xb4, 0xee, 0xdd, 0xbc, 0xe9, 0xff, 0xef,
+  0xbf, 0x76, 0x6d, 0xea, 0xd3, 0x7d, 0x3a, 0xa7,
+  0x46, 0xe3, 0xf4, 0xc1, 0xf9, 0xfa, 0x86, 0x9e,
+  0xdc, 0x1a, 0x0e, 0x99, 0xf4, 0x1d, 0x3e, 0xb6,
+  0x79, 0xf5, 0x3a, 0x7f, 0xfa, 0xcb, 0xbd, 0xd7,
+  0xff, 0x02, 0xb5, 0x50, 0x15, 0x3f, 0x81, 0x82,
+  0x9d, 0xc8, 0x78, 0x81, 0x21, 0xe8, 0xb3, 0xd8,
+  0x9c, 0x54, 0x66, 0x6f, 0x79, 0xd3, 0xd7, 0xa3,
+  0xbe, 0x74, 0xf5, 0x35, 0xeb, 0x9d, 0x14, 0x1e,
+  0xee, 0x0c, 0xd8, 0x8a, 0x7f, 0x7f, 0x83, 0x5a,
+  0xa8, 0x0e, 0x9c, 0x10, 0x84, 0xf8, 0x7d, 0x4e,
+  0xef, 0xec, 0x5c, 0x3e, 0x9c, 0x6a, 0x63, 0x64,
+  0x4a, 0x01, 0x6e, 0x7f, 0xfd, 0x9f, 0xf6, 0xb7,
+  0x56, 0xf6, 0xd3, 0x9e, 0xf5, 0x3a, 0x28, 0x3f,
+  0xcd, 0x64, 0x91, 0xaa, 0x95, 0x77, 0xbc, 0xd3,
+  0x21, 0x95, 0xe8, 0x46, 0xf4, 0x67, 0xf3, 0xef,
+  0x5d, 0x6f, 0x52, 0xa7, 0x91, 0x6f, 0x52, 0xa6,
+  0x08, 0x4a, 0x87, 0x9e, 0xee, 0x13, 0x84, 0x82,
+  0x6c, 0x09, 0x4e, 0x35, 0xd3, 0xff, 0xec, 0xba,
+  0xa6, 0x67, 0xef, 0x6f, 0x2f, 0xe8, 0x3a, 0x00,
+  0x7f, 0x01, 0x25, 0x9f, 0xff, 0xca, 0xdb, 0xdf,
+  0x06, 0xeb, 0xd7, 0x12, 0xdd, 0xfb, 0xd4, 0xe9,
+  0xfc, 0xd5, 0x2f, 0xb6, 0x8a, 0x27, 0x4e, 0x7f,
+  0x09, 0xd3, 0xe7, 0xe5, 0xf3, 0x62, 0xa5, 0xe6,
+  0x8f, 0x06, 0xe3, 0x53, 0x01, 0x4e, 0x98, 0x0a,
+  0x74, 0xfd, 0xfd, 0x1f, 0x9f, 0x77, 0x8d, 0x50,
+  0x05, 0x67, 0xfe, 0xbd, 0xb1, 0x9b, 0xd4, 0x19,
+  0x4d, 0xce, 0x9f, 0xd4, 0xa7, 0x87, 0x7a, 0xec,
+  0x74, 0xf0, 0x19, 0xcf, 0xa9, 0xfd, 0xdd, 0x1a,
+  0x76, 0xa6, 0x52, 0x74, 0x29, 0xec, 0x71, 0xcc,
+  0xe0, 0x84, 0x25, 0x4f, 0xb3, 0x5f, 0xf4, 0xa9,
+  0x4e, 0x2f, 0x27, 0xd8, 0xe0, 0x84, 0x27, 0x42,
+  0x9f, 0x05, 0xce, 0x67, 0x83, 0xdf, 0x79, 0xd3,
+  0x25, 0x8e, 0x9c, 0x10, 0x84, 0xa9, 0xfb, 0xdd,
+  0xae, 0xde, 0xb9, 0x4e, 0x2f, 0x27, 0xd8, 0x0c,
+  0xc6, 0x8e, 0x95, 0x77, 0x22, 0x54, 0x4c, 0x7e,
+  0x7d, 0x3d, 0xef, 0xe8, 0xfd, 0x91, 0xdb, 0x90,
+  0xb6, 0x85, 0x5c, 0x52, 0x79, 0x16, 0x32, 0x6b,
+  0x76, 0x15, 0x3b, 0x46, 0x31, 0x58, 0x4e, 0x5e,
+  0x30, 0xe9, 0xf9, 0x58, 0x23, 0xd7, 0x3a, 0x7f,
+  0xfb, 0xcc, 0xa5, 0xf5, 0xdd, 0x9f, 0xfe, 0x78,
+  0x07, 0x45, 0x8f, 0xf6, 0xe5, 0x52, 0x73, 0x74,
+  0x84, 0x1c, 0x4a, 0xca, 0xa6, 0xa2, 0x31, 0x67,
+  0xca, 0x4d, 0xda, 0x54, 0x16, 0x56, 0xda, 0x7a,
+  0xe3, 0x71, 0x48, 0xec, 0xa9, 0x95, 0x4f, 0xe8,
+  0x4e, 0xb5, 0x3c, 0x44, 0x33, 0xa4, 0x8c, 0x94,
+  0x17, 0x69, 0xed, 0x2e, 0xa7, 0x69, 0x82, 0x57,
+  0xdf, 0xe7, 0x57, 0xeb, 0x59, 0x14, 0x5e, 0xb3,
+  0x9f, 0xd2, 0x33, 0x56, 0xd0, 0xec, 0x0c, 0x28,
+  0xb5, 0x25, 0x89, 0x6f, 0x9d, 0xb5, 0x6f, 0x8c,
+  0x06, 0x1d, 0x08, 0x5f, 0x07, 0xe2, 0x0f, 0x56,
+  0x7f, 0x3b, 0x05, 0x3b, 0x90, 0xd1, 0x71, 0xcf,
+  0xe7, 0x60, 0xa7, 0x72, 0x1a, 0x2e, 0xb9, 0xff,
+  0x9d, 0xcf, 0x76, 0x0a, 0x77, 0x21, 0xa2, 0x51,
+  0x85, 0x84, 0x4a, 0x2b, 0xca, 0x36, 0x3b, 0xd6,
+  0x76, 0x87, 0x7e, 0x87, 0x86, 0xad, 0x03, 0xb1,
+  0x0c, 0x85, 0x53, 0x8b, 0x9d, 0xb7, 0x9d, 0xcf,
+  0xfe, 0x73, 0x39, 0xee, 0xc1, 0x4e, 0xe4, 0x34,
+  0x4b, 0x53, 0xe1, 0x4e, 0xe4, 0x34, 0x46, 0xf3,
+  0xfe, 0xe7, 0xbb, 0x05, 0x3b, 0x90, 0xd1, 0x2f,
+  0xc9, 0xd8, 0x7e, 0xcc, 0x30, 0x9f, 0xce, 0xc1,
+  0x4e, 0xe4, 0x34, 0x55, 0x73, 0xfd, 0xaf, 0x3f,
+  0x94, 0xdf, 0x98, 0x74, 0xdb, 0x78, 0xe9, 0xfb,
+  0x05, 0x3b, 0x90, 0xd1, 0x20, 0x46, 0xe3, 0xcc,
+  0x70, 0xbc, 0xfa, 0xbd, 0xfe, 0xa4, 0xe8, 0x79,
+  0xe5, 0xd2, 0x49, 0x1a, 0xd1, 0xe9, 0xd0, 0xd1,
+  0x9f, 0xfb, 0xf9, 0x43, 0xb5, 0x17, 0xff, 0xcb,
+  0x9d, 0x0e, 0x3f, 0x01, 0x29, 0x9f, 0xce, 0xc1,
+  0x4e, 0xe4, 0x34, 0x59, 0x13, 0xf9, 0xd8, 0x29,
+  0xdc, 0x86, 0x8b, 0x5e, 0x7f, 0x3b, 0x05, 0x3b,
+  0x90, 0xd1, 0x72, 0x4f, 0x85, 0x3b, 0x90, 0xd1,
+  0x76, 0x4f, 0xfb, 0x9e, 0xec, 0x14, 0xee, 0x43,
+  0x45, 0x1d, 0x27, 0x61, 0xfb, 0x30, 0xc2, 0x7c,
+  0x29, 0xdc, 0x86, 0x8a, 0x56, 0x7f, 0xff, 0xfa,
+  0xcb, 0x42, 0xdb, 0xcd, 0xbb, 0x6b, 0x79, 0xc9,
+  0x6f, 0x35, 0x65, 0xa3, 0x0e, 0x9f, 0x39, 0x9c,
+  0xf7, 0x62, 0x2c, 0x9a, 0x30, 0x8a, 0x17, 0x3b,
+  0xdf, 0x0c, 0x8a, 0x49, 0xfd, 0x1c, 0xfb, 0x08,
+  0x40, 0x77, 0x53, 0xbb, 0xc2, 0xc5, 0xb4, 0x36,
+  0x67, 0xf9, 0xee, 0xc1, 0x4e, 0xe4, 0x34, 0x47,
+  0x13, 0xfd, 0xe7, 0x60, 0xa7, 0x72, 0x1a, 0x2b,
+  0x59, 0x3b, 0x91, 0x05, 0x74, 0x19, 0xff, 0xce,
+  0x67, 0x3d, 0xd8, 0x29, 0xdc, 0x86, 0x89, 0x6e,
+  0x6c, 0xa4, 0xe9, 0xfd, 0xb6, 0x31, 0x8b, 0xea,
+  0x9d, 0x14, 0x9e, 0x4f, 0x85, 0xa7, 0x5b, 0x67,
+  0x9d, 0x39, 0xec, 0x43, 0xa0, 0xd1, 0x0d, 0xcf,
+  0xfb, 0x9e, 0xec, 0x14, 0xee, 0x43, 0x44, 0xc1,
+  0x38, 0x74, 0x01, 0x53, 0xfb, 0xf9, 0x7b, 0xa8,
+  0xd4, 0xe9, 0x39, 0x53, 0x05, 0xa0, 0x8f, 0x61,
+  0xd4, 0x1b, 0x60, 0xbd, 0xd1, 0xb7, 0x8e, 0x4e,
+  0x66, 0x82, 0x54, 0xff, 0xb9, 0xee, 0xc1, 0x4e,
+  0xe4, 0x34, 0x4c, 0x72, 0x77, 0x8f, 0x89, 0x83,
+  0x93, 0xf2, 0xd7, 0x75, 0xf2, 0xc7, 0x4f, 0xff,
+  0xff, 0x3e, 0xb6, 0xcd, 0x03, 0x5b, 0x62, 0x65,
+  0x77, 0x65, 0x2f, 0xaf, 0xbf, 0xe3, 0xa7, 0x93,
+  0xb9, 0x0d, 0x15, 0x8c, 0xff, 0xb5, 0x32, 0xff,
+  0xcd, 0x17, 0xf7, 0x3a, 0x35, 0xa6, 0x37, 0x49,
+  0x70, 0xc2, 0x06, 0xe5, 0x73, 0xff, 0x97, 0xf7,
+  0xd7, 0xa2, 0xff, 0x11, 0x44, 0xe9, 0xff, 0x66,
+  0xd6, 0xca, 0xd2, 0xf5, 0xb1, 0xd3, 0xff, 0xff,
+  0x7f, 0x4a, 0x31, 0x37, 0x7f, 0x46, 0xfd, 0xd9,
+  0x4b, 0xf3, 0x4f, 0x82, 0xa7, 0x4f, 0xed, 0x55,
+  0x43, 0x4f, 0x6e, 0x0d, 0x07, 0x4e, 0xb7, 0x9d,
+  0x89, 0xc5, 0xa2, 0x2d, 0x92, 0x6e, 0x7f, 0xa8,
+  0xfd, 0x36, 0x8d, 0x1d, 0x3e, 0xef, 0xd1, 0xa5,
+  0x4e, 0x8f, 0x9e, 0x0d, 0x46, 0x27, 0x94, 0x7b,
+  0xe7, 0x4f, 0x56, 0xaa, 0x03, 0xa2, 0xc7, 0x80,
+  0x11, 0xf9, 0xf2, 0xbc, 0x1a, 0x3c, 0xe9, 0xcb,
+  0xf7, 0x9d, 0x0d, 0x1e, 0x1d, 0xca, 0x27, 0xe5,
+  0x66, 0x7f, 0xda, 0xce, 0x95, 0x4e, 0x8f, 0x1b,
+  0xee, 0x2e, 0x98, 0x0a, 0x54, 0xc1, 0x09, 0x51,
+  0xe3, 0x56, 0x11, 0x59, 0xfd, 0xcf, 0xfe, 0x5e,
+  0xde, 0x29, 0xc6, 0x86, 0x7b, 0x6e, 0xa6, 0xa7,
+  0x4e, 0x5f, 0xb4, 0x74, 0xdf, 0x53, 0xa1, 0xa3,
+  0x62, 0x23, 0x93, 0xc2, 0x0c, 0x6f, 0x3a, 0x76,
+  0xf1, 0xd6, 0x74, 0x2a, 0x2d, 0xf1, 0x53, 0xc4,
+  0x36, 0x23, 0x9a, 0xd7, 0x3a, 0x70, 0x42, 0x12,
+  0xa7, 0xfe, 0xc4, 0xd9, 0x68, 0xdf, 0x96, 0xea,
+  0x4a, 0x71, 0x79, 0x3d, 0xe1, 0x6f, 0xd8, 0xe9,
+  0x09, 0xd3, 0xe6, 0x7a, 0xe0, 0xe3, 0xa2, 0x83,
+  0xdb, 0xd5, 0x92, 0xe8, 0x1f, 0x3f, 0x93, 0xd5,
+  0xfe, 0x36, 0xe3, 0xa6, 0xcb, 0x9d, 0x14, 0x9e,
+  0x45, 0x8c, 0xe7, 0xff, 0xaf, 0xea, 0xdb, 0x36,
+  0xfe, 0x36, 0xfe, 0x54, 0xe9, 0x39, 0x57, 0x27,
+  0x36, 0x62, 0xc6, 0x51, 0x61, 0x63, 0x65, 0xa1,
+  0xf3, 0xc7, 0x7f, 0x32, 0xac, 0x2c, 0x2e, 0xfb,
+  0xbc, 0x8e, 0x7c, 0x29, 0xdc, 0x86, 0x8a, 0xde,
+  0x7f, 0xdc, 0xf7, 0x60, 0xa7, 0x72, 0x1a, 0x27,
+  0x09, 0x3b, 0x0f, 0xd9, 0x86, 0x13, 0xe1, 0x4e,
+  0xe4, 0x34, 0x5a, 0x33, 0xd8, 0xd7, 0xb5, 0x9d,
+  0x27, 0x61, 0xea, 0x58, 0xc2, 0x79, 0x3b, 0x90,
+  0xd1, 0x6d, 0x4f, 0xd6, 0x56, 0x2f, 0xb6, 0x3a,
+  0x67, 0x60, 0x9e, 0xc5, 0xca, 0xe7, 0xf3, 0xb0,
+  0x53, 0xb9, 0x0d, 0x17, 0x2c, 0xfe, 0x76, 0x0a,
+  0x77, 0x21, 0xa2, 0xed, 0x85, 0x66, 0xae, 0x50,
+  0x50, 0xf8, 0xe8, 0x36, 0x86, 0x7e, 0xb9, 0x59,
+  0xde, 0x9d, 0x3b, 0xd5, 0xc6, 0x41, 0x67, 0xbf,
+  0xbf, 0xd4, 0xb2, 0xe7, 0x73, 0xf9, 0xd8, 0x29,
+  0xdc, 0x86, 0x8a, 0x9e, 0x79, 0x3b, 0x90, 0xd1,
+  0x5c, 0xcf, 0xe7, 0x60, 0xa7, 0x72, 0x1a, 0x2c,
+  0xe8, 0x13, 0xe6, 0xb1, 0x5c, 0xf8, 0x53, 0xb9,
+  0x0d, 0x12, 0x14, 0xff, 0x7a, 0x9a, 0xdf, 0xea,
+  0xca, 0x9d, 0x33, 0xdd, 0x87, 0xd4, 0x03, 0x09,
+  0xe6, 0xe9, 0x65, 0x61, 0xd3, 0xfb, 0x2d, 0x5a,
+  0xe0, 0xd0, 0x74, 0x9d, 0x89, 0x88, 0xf4, 0x22,
+  0xea, 0x5b, 0x72, 0x79, 0xff, 0xce, 0x67, 0x3d,
+  0xd8, 0x29, 0xdc, 0x86, 0x89, 0xf2, 0x11, 0x52,
+  0x5e, 0xae, 0x3b, 0x2b, 0x23, 0xcf, 0x85, 0x3b,
+  0x90, 0xd1, 0x59, 0x4f, 0xfb, 0x9e, 0xec, 0x14,
+  0xee, 0x43, 0x44, 0xdd, 0x37, 0x9d, 0x87, 0xec,
+  0xc3, 0x09, 0xf0, 0xa7, 0x72, 0x1a, 0x25, 0x69,
+  0xfe, 0xd7, 0x6f, 0x6e, 0xd1, 0x32, 0xa7, 0x4f,
+  0x9c, 0xce, 0x7b, 0xb0, 0xfb, 0x78, 0xc2, 0x7c,
+  0x29, 0xdc, 0x86, 0x89, 0x72, 0x7f, 0xbd, 0xcf,
+  0xbf, 0xd5, 0x95, 0x3a, 0x79, 0xb7, 0xbe, 0xa7,
+  0x4f, 0x9c, 0xce, 0x7b, 0xb1, 0x11, 0x76, 0x30,
+  0xe3, 0x89, 0xff, 0x9d, 0xcf, 0x76, 0x0a, 0x77,
+  0x21, 0xa2, 0x3b, 0x9f, 0xeb, 0xdb, 0x1e, 0xee,
+  0xfd, 0x4e, 0x9f, 0x9b, 0x9f, 0x54, 0xcf, 0x9d,
+  0x3f, 0x6a, 0x9f, 0xcb, 0x75, 0xce, 0x9f, 0x0a,
+  0x77, 0x21, 0xa2, 0xa1, 0x9f, 0x65, 0xaf, 0x94,
+  0x1d, 0x27, 0x6a, 0x88, 0xb7, 0x6e, 0x17, 0xe1,
+  0x8d, 0xcc, 0x27, 0xc2, 0x9d, 0xc8, 0x68, 0xaa,
+  0x27, 0xfd, 0xcf, 0x76, 0x0a, 0x77, 0x21, 0xa2,
+  0x6b, 0x93, 0xb0, 0xfd, 0x98, 0x61, 0x3f, 0x9d,
+  0x82, 0x9d, 0xc8, 0x68, 0xab, 0x27, 0xfe, 0x77,
+  0x3d, 0xd8, 0x29, 0xdc, 0x86, 0x89, 0x12, 0x7c,
+  0x29, 0xdc, 0x86, 0x8b, 0x4a, 0x7f, 0xdc, 0xf7,
+  0x60, 0xa7, 0x72, 0x1a, 0x27, 0xd9, 0x3b, 0x0f,
+  0xd9, 0x86, 0x13, 0xff, 0x9c, 0xce, 0x7b, 0xb0,
+  0x53, 0xb9, 0x0d, 0x14, 0x24, 0xfa, 0xde, 0xa1,
+  0x44, 0xe9, 0xf0, 0xa7, 0x72, 0x1a, 0x28, 0xf9,
+  0xff, 0xfb, 0x36, 0xb2, 0xef, 0x75, 0xff, 0xc0,
+  0xad, 0x54, 0x05, 0x4f, 0x9c, 0xce, 0x7b, 0x95,
+  0x16, 0x98, 0x4f, 0xa8, 0x61, 0x0a, 0xbb, 0x5d,
+  0x44, 0x32, 0x1e, 0x97, 0x89, 0x9a, 0xe1, 0xde,
+  0x90, 0xc1, 0xa4, 0x9d, 0xa3, 0xbb, 0x43, 0x08,
+  0x04, 0xf7, 0x8c, 0x1a, 0x7f, 0x3b, 0x05, 0x3b,
+  0x90, 0xd1, 0x11, 0x4f, 0xd8, 0x29, 0xdc, 0x86,
+  0x88, 0xae, 0x7f, 0xb5, 0x6e, 0xc1, 0x4e, 0xe4,
+  0x34, 0x57, 0x10, 0xe3, 0xfa, 0xe3, 0x59, 0xec,
+  0xb7, 0x5c, 0xe9, 0xfd, 0x9e, 0x10, 0x03, 0x4a,
+  0x9d, 0x2d, 0x53, 0xe7, 0xa7, 0x52, 0x09, 0xff,
+  0xbb, 0xcf, 0xf7, 0xef, 0xa5, 0x87, 0x0e, 0x9f,
+  0x67, 0xb6, 0x1c, 0x3a, 0x75, 0xeb, 0xeb, 0x1f,
+  0x55, 0xd1, 0x27, 0xc2, 0x9d, 0xc8, 0x68, 0xa7,
+  0xa1, 0xb8, 0x8f, 0xb5, 0x84, 0xbe, 0x1a, 0x4f,
+  0xfe, 0xe7, 0xbb, 0x6f, 0xf0, 0x6b, 0x55, 0x01,
+  0xd0, 0xe4, 0x40, 0xec, 0x6f, 0x39, 0xdb, 0x61,
+  0xd3, 0xe5, 0x78, 0x34, 0x79, 0xd3, 0xc9, 0xdc,
+  0x86, 0x8a, 0xce, 0x1a, 0x3d, 0x31, 0x28, 0x9f,
+  0xa8, 0x62, 0xfd, 0xf5, 0x3a, 0x72, 0xd1, 0xe3,
+  0xa7, 0xd7, 0x06, 0xff, 0xbc, 0xe9, 0xf6, 0x35,
+  0x46, 0x80, 0x3a, 0x4e, 0xc4, 0x60, 0x09, 0x15,
+  0x8b, 0xb8, 0x73, 0x79, 0x54, 0xff, 0xce, 0xe7,
+  0xbb, 0x05, 0x3b, 0x90, 0xd1, 0x22, 0xcf, 0xe7,
+  0x60, 0xa7, 0x72, 0x1a, 0x2c, 0x99, 0xfc, 0xec,
+  0x14, 0xee, 0x43, 0x45, 0xb1, 0x3b, 0x2b, 0x87,
+  0x4f, 0x85, 0x3b, 0x90, 0xd1, 0x6d, 0xc9, 0xcf,
+  0x3c, 0xac, 0x1a, 0x9f, 0xf3, 0x71, 0xb9, 0xaa,
+  0xd7, 0xb6, 0x7d, 0x40, 0x74, 0xfc, 0xbf, 0x7e,
+  0xda, 0x30, 0xe9, 0xf0, 0xa7, 0x72, 0x1a, 0x2f,
+  0x09, 0xeb, 0xea, 0x65, 0x8e, 0x9f, 0xf9, 0x77,
+  0xb2, 0x97, 0xdf, 0x3f, 0x7a, 0x9d, 0x3e, 0xcf,
+  0x81, 0xbd, 0x4e, 0x9f, 0x2e, 0xfd, 0x3a, 0xa7,
+  0x4e, 0xba, 0x80, 0xe9, 0x3b, 0x55, 0xe4, 0xe1,
+  0x28, 0x4d, 0xc2, 0xfa, 0x4c, 0x2c, 0x48, 0x04,
+  0x7f, 0x94, 0xdc, 0xa6, 0x77, 0xb2, 0x93, 0xa7,
+  0xc2, 0x9d, 0xc8, 0x68, 0xbd, 0x27, 0xfd, 0xfe,
+  0xbb, 0xd7, 0x5d, 0xfd, 0x41, 0xd3, 0xec, 0x65,
+  0xbb, 0x63, 0xa4, 0xed, 0x91, 0x69, 0x83, 0x9b,
+  0xcc, 0x1b, 0xd0, 0x61, 0x59, 0x0f, 0x94, 0x42,
+  0xd7, 0x23, 0xf0, 0x42, 0x4f, 0x46, 0x5e, 0x29,
+  0xec, 0x4c, 0x01, 0xdf, 0xe1, 0x0b, 0xa4, 0x75,
+  0x61, 0x8c, 0xda, 0x7b, 0x2d, 0xd7, 0x3a, 0x7f,
+  0x67, 0x84, 0x00, 0xd2, 0xa7, 0x4b, 0x54, 0xf9,
+  0xe9, 0xd4, 0x82, 0x7c, 0x29, 0xdc, 0x86, 0x88,
+  0x8e, 0x7f, 0xfa, 0xda, 0x56, 0xb8, 0xcf, 0xe3,
+  0x6d, 0xca, 0xdd, 0x4e, 0x9f, 0xf3, 0xd6, 0x81,
+  0xcb, 0xdf, 0xd7, 0x3a, 0x7f, 0xff, 0x96, 0xdd,
+  0xeb, 0xad, 0xbf, 0x97, 0xb7, 0xad, 0x9e, 0x09,
+  0xd3, 0x50, 0xc2, 0xa6, 0x08, 0x4a, 0x9f, 0xf9,
+  0xee, 0x4b, 0x79, 0xab, 0x2d, 0x0e, 0x01, 0xad,
+  0x08, 0xbc, 0xfe, 0xcd, 0x5f, 0xf2, 0xdd, 0x73,
+  0xa7, 0xff, 0xe4, 0x70, 0xf7, 0xfd, 0x77, 0x0a,
+  0xdf, 0xfc, 0x03, 0xa1, 0xb8, 0xa9, 0xc7, 0x0b,
+  0x50, 0xc2, 0x95, 0xa1, 0x3e, 0xe8, 0x49, 0x5d,
+  0x75, 0xb1, 0xac, 0xf8, 0x53, 0xb9, 0x0d, 0x11,
+  0x74, 0xfa, 0xe0, 0xdf, 0xf7, 0x96, 0xcf, 0x69,
+  0x3b, 0x0f, 0x9f, 0x8c, 0x21, 0xc9, 0x84, 0x3e,
+  0x1c, 0x53, 0xff, 0x33, 0x9e, 0xec, 0x14, 0xee,
+  0x43, 0x44, 0xcd, 0x3a, 0x95, 0xa9, 0xd3, 0x93,
+  0xcc, 0x3a, 0x76, 0xaa, 0xd4, 0xd5, 0x47, 0x4f,
+  0x93, 0xad, 0xe6, 0x8e, 0x9f, 0xf9, 0xbf, 0xd7,
+  0xf2, 0x7b, 0x6b, 0xe2, 0x1d, 0x3f, 0xff, 0xda,
+  0x77, 0xd3, 0xf9, 0xb5, 0xb4, 0xdd, 0x65, 0x78,
+  0xad, 0x07, 0x46, 0x22, 0xc6, 0xc8, 0xf3, 0xff,
+  0xed, 0xbd, 0xfa, 0x32, 0xbe, 0xeb, 0x38, 0x21,
+  0x09, 0x53, 0xc9, 0xdc, 0x86, 0x8b, 0x3e, 0x7f,
+  0xfb, 0xc3, 0x6e, 0xdd, 0x8d, 0xbf, 0x95, 0xcf,
+  0x9d, 0x38, 0x21, 0x09, 0x53, 0xfe, 0xe7, 0xd7,
+  0xf8, 0x9b, 0x60, 0x94, 0xe2, 0xf2, 0x7f, 0x96,
+  0xde, 0xdb, 0xfd, 0xcd, 0x1d, 0x3f, 0xde, 0xfe,
+  0xdb, 0xf6, 0xd2, 0xf5, 0x3a, 0x11, 0x3b, 0x31,
+  0x58, 0xb1, 0x58, 0x1b, 0x6e, 0x96, 0xd8, 0xe6,
+  0x7f, 0xff, 0xfe, 0xcc, 0x05, 0x73, 0x3f, 0xaf,
+  0x78, 0xfd, 0x72, 0xce, 0xaf, 0xf2, 0x86, 0x63,
+  0x0e, 0x9d, 0x55, 0xa0, 0xe9, 0xda, 0x99, 0x63,
+  0xa1, 0xe8, 0xc4, 0xac, 0x22, 0xae, 0x39, 0x3d,
+  0x48, 0x34, 0x43, 0xa7, 0xd6, 0xfa, 0xe0, 0x99,
+  0x3f, 0xef, 0x0b, 0xf0, 0x68, 0xd3, 0xb6, 0x34,
+  0x41, 0xae, 0x34, 0xb3, 0xee, 0x4f, 0x31, 0x4e,
+  0x9f, 0x9f, 0x6f, 0xf5, 0x37, 0x3a, 0x58, 0x87,
+  0xa7, 0xf2, 0x59, 0xff, 0xff, 0x70, 0x6f, 0x96,
+  0xba, 0xe7, 0xe9, 0xbe, 0x0f, 0xa8, 0xe6, 0x1d,
+  0x0f, 0x4d, 0x03, 0x21, 0x5f, 0xf2, 0x69, 0xf8,
+  0x73, 0x6a, 0xd9, 0x4e, 0x9f, 0xff, 0xda, 0x7f,
+  0xb5, 0xee, 0xdf, 0xfe, 0xbd, 0x7d, 0x4d, 0xbc,
+  0x13, 0xa7, 0xff, 0xfa, 0xb5, 0x51, 0xba, 0xb9,
+  0x99, 0x7a, 0xef, 0xaf, 0x3f, 0x0e, 0x9e, 0xb6,
+  0x79, 0xb1, 0xd1, 0xe4, 0x44, 0xd9, 0x9a, 0x66,
+  0x6a, 0x86, 0x8b, 0xf2, 0x7f, 0xe7, 0xdf, 0x47,
+  0xbd, 0x97, 0xba, 0xb0, 0xe9, 0xff, 0xbd, 0x9f,
+  0xcc, 0xae, 0xe7, 0xd5, 0x87, 0x45, 0x28, 0x8b,
+  0xaa, 0x34, 0xf7, 0xfe, 0xa8, 0x74, 0x2a, 0x63,
+  0x5b, 0x11, 0xe4, 0x2c, 0xf8, 0x92, 0x7f, 0xff,
+  0xe6, 0xf5, 0xb7, 0x98, 0xe6, 0x9f, 0xc3, 0xbe,
+  0xde, 0xa6, 0xa9, 0xea, 0x0e, 0x9f, 0x69, 0x95,
+  0xf7, 0xce, 0x9e, 0xdf, 0xa7, 0x54, 0xe9, 0xff,
+  0x5e, 0xa0, 0xf5, 0x34, 0xbf, 0x2e, 0x74, 0x29,
+  0xf2, 0xe1, 0x24, 0xcd, 0x68, 0x74, 0x98, 0x74,
+  0x52, 0x6a, 0x1b, 0xb1, 0x89, 0xff, 0xff, 0x5b,
+  0xd4, 0xdf, 0x29, 0xb8, 0x8a, 0xdc, 0x1b, 0xfe,
+  0xfb, 0x61, 0xd3, 0x82, 0x10, 0x95, 0x3d, 0xb6,
+  0xdd, 0xf2, 0x9c, 0x5e, 0x4f, 0xfb, 0xac, 0x9e,
+  0xed, 0xd5, 0xeb, 0x1d, 0x0a, 0x99, 0x12, 0x13,
+  0xfa, 0x11, 0x76, 0x32, 0x9f, 0xfb, 0x3f, 0x4d,
+  0xf0, 0x7d, 0x47, 0x30, 0xe9, 0xf6, 0x5d, 0xec,
+  0xb1, 0xd0, 0xa7, 0xd7, 0x54, 0x49, 0x81, 0x63,
+  0xa7, 0xea, 0x1a, 0x7b, 0x70, 0x68, 0x3a, 0x7f,
+  0x6b, 0xb6, 0x5e, 0xde, 0xb9, 0xd3, 0x78, 0x4e,
+  0x8d, 0x54, 0x7f, 0xde, 0x34, 0xb1, 0xac, 0xff,
+  0xed, 0xb6, 0x5d, 0x85, 0x6f, 0xe4, 0xf6, 0xc7,
+  0x49, 0xcd, 0xd1, 0x99, 0xd5, 0xaa, 0xc3, 0x8a,
+  0x37, 0x41, 0x5e, 0xd0, 0xd8, 0xc8, 0xf5, 0x69,
+  0x8c, 0x73, 0xc6, 0xad, 0x47, 0x10, 0x26, 0xac,
+  0x2c, 0xb4, 0xa0, 0xde, 0x41, 0x03, 0xd7, 0xe1,
+  0x1b, 0x58, 0xda, 0xaf, 0x0a, 0xc0, 0x90, 0xea,
+  0x42, 0x53, 0x79, 0xac, 0x39, 0x9d, 0x25, 0x6a,
+  0x69, 0xb4, 0xff, 0xe7, 0x33, 0x9e, 0xec, 0x14,
+  0xee, 0x43, 0x44, 0xd9, 0x3f, 0x9d, 0x82, 0x9d,
+  0xc8, 0x68, 0xab, 0x67, 0xf3, 0xdf, 0xa5, 0xfe,
+  0xaf, 0x3a, 0x7b, 0x2d, 0xd7, 0x3a, 0x5a, 0xa6,
+  0x1e, 0xa7, 0xcd, 0x27, 0xc2, 0x9d, 0xc8, 0x68,
+  0xad, 0x27, 0xff, 0x91, 0x47, 0x01, 0xcc, 0xe7,
+  0xaf, 0x90, 0xe9, 0xff, 0xe7, 0xd7, 0x3e, 0xac,
+  0xec, 0xbd, 0xd5, 0x87, 0x4d, 0x7b, 0xaa, 0x25,
+  0xf9, 0x2a, 0x7f, 0x2b, 0x6d, 0xf7, 0xfa, 0x80,
+  0xe9, 0xfa, 0x8c, 0xb7, 0xb1, 0x87, 0x4f, 0xf6,
+  0x37, 0xfd, 0x43, 0x4b, 0xea, 0x74, 0xfe, 0x7e,
+  0x5f, 0xbe, 0x0d, 0x0e, 0x93, 0x9b, 0x89, 0xf9,
+  0x61, 0x67, 0xa1, 0x8f, 0x62, 0xde, 0x36, 0xf9,
+  0x6d, 0xcf, 0x27, 0xf3, 0xb0, 0x53, 0xb9, 0x0d,
+  0x16, 0x04, 0xf8, 0x53, 0xb9, 0x0d, 0x13, 0xac,
+  0xff, 0xfe, 0xb2, 0xd1, 0xb6, 0x31, 0xd5, 0xae,
+  0x5b, 0xd5, 0xd2, 0x83, 0xa7, 0xce, 0x67, 0x3d,
+  0xd8, 0x89, 0x56, 0x8c, 0x27, 0xc2, 0x9d, 0xc8,
+  0x68, 0xb6, 0x67, 0xfc, 0x05, 0xab, 0xad, 0xe4,
+  0xe1, 0x3a, 0x4e, 0xc3, 0xec, 0xe3, 0x09, 0xe4,
+  0xee, 0x43, 0x45, 0xcd, 0x26, 0x1d, 0x33, 0xb0,
+  0x4d, 0xd8, 0x4a, 0xe7, 0xf3, 0xb0, 0x53, 0xb9,
+  0x0d, 0x17, 0x7c, 0xf3, 0xb5, 0xec, 0x03, 0xa1,
+  0x5b, 0x49, 0x8c, 0xa7, 0x5d, 0xa1, 0x85, 0x2a,
+  0x5e, 0x95, 0x02, 0x2e, 0x4c, 0x86, 0x80, 0x21,
+  0x59, 0x56, 0x1b, 0x95, 0xef, 0x3b, 0x9f, 0xf7,
+  0xf9, 0xcb, 0x5a, 0xb3, 0x9e, 0x74, 0xfe, 0xfd,
+  0x18, 0xdf, 0x75, 0xd6, 0x74, 0xf8, 0x53, 0xb9,
+  0x0d, 0x12, 0xbc, 0xf6, 0x9c, 0x2f, 0x3a, 0x7f,
+  0xff, 0x7a, 0xfc, 0xce, 0xf8, 0x2c, 0x1e, 0xfd,
+  0x09, 0xea, 0x0e, 0x95, 0xb6, 0x44, 0x1f, 0x10,
+  0xce, 0xe7, 0xb9, 0x53, 0x14, 0xc3, 0x8a, 0xc2,
+  0xce, 0x75, 0xd7, 0x62, 0xa7, 0xff, 0x5b, 0xbd,
+  0x75, 0x7f, 0x86, 0x8d, 0x00, 0x54, 0xfe, 0xe4,
+  0x76, 0xc2, 0xdd, 0xb9, 0x4f, 0x9e, 0xa3, 0x92,
+  0x72, 0x2a, 0x4b, 0x64, 0x6a, 0x2d, 0xa1, 0x59,
+  0x3f, 0xf9, 0xcc, 0xe7, 0xbb, 0x05, 0x3b, 0x90,
+  0xd1, 0x30, 0xcf, 0xff, 0xd8, 0xed, 0xe3, 0xc0,
+  0x76, 0xbb, 0xbc, 0x2b, 0x57, 0x9d, 0x3f, 0xf6,
+  0xa9, 0x94, 0xbf, 0x4e, 0xbf, 0xd5, 0xe7, 0x4f,
+  0xf7, 0xd7, 0xa8, 0xbe, 0xbe, 0x13, 0xa7, 0xe6,
+  0x2e, 0x7e, 0xfa, 0x87, 0x4f, 0x97, 0x3f, 0x7d,
+  0x43, 0xa7, 0xeb, 0x7a, 0xf5, 0xea, 0x77, 0x1e,
+  0xc3, 0x0b, 0xe7, 0xff, 0xfd, 0xfc, 0x0b, 0x7d,
+  0xf2, 0xdb, 0xbf, 0x94, 0x7b, 0x3f, 0x4b, 0xea,
+  0x74, 0xfc, 0xdb, 0x7d, 0xfe, 0xa0, 0x3a, 0x7f,
+  0xf2, 0xdc, 0x0a, 0xfc, 0xa6, 0xf4, 0x68, 0x13,
+  0xa1, 0x4f, 0xf7, 0xc6, 0x33, 0xf5, 0x7d, 0xad,
+  0x9d, 0x73, 0xa7, 0xff, 0xfc, 0x38, 0xd9, 0x7f,
+  0x7d, 0xdb, 0xfe, 0xb6, 0xef, 0x5d, 0x6f, 0x53,
+  0xa5, 0x94, 0xa2, 0x7c, 0x4b, 0xe7, 0xbe, 0xa0,
+  0xde, 0x74, 0xf7, 0x6f, 0xdb, 0x0e, 0x93, 0x9b,
+  0x8a, 0xd0, 0x76, 0x4a, 0x48, 0x48, 0xb4, 0x91,
+  0x68, 0x78, 0x7e, 0x18, 0x17, 0x28, 0xd0, 0x8e,
+  0x7c, 0x29, 0xdc, 0x86, 0x8a, 0xba, 0x7f, 0x9e,
+  0xec, 0x14, 0xee, 0x43, 0x44, 0x79, 0x27, 0x61,
+  0xf8, 0xf1, 0x84, 0xfe, 0x76, 0x0a, 0x77, 0x21,
+  0xa2, 0xc1, 0x9f, 0xce, 0xc1, 0x4e, 0xe4, 0x34,
+  0x59, 0x53, 0xf9, 0xd8, 0x29, 0xdc, 0x86, 0x8b,
+  0x4e, 0x79, 0x3b, 0x90, 0xd1, 0x6e, 0x4f, 0xfc,
+  0xb8, 0x39, 0xfd, 0xd6, 0xca, 0x42, 0x74, 0x09,
+  0xf7, 0xd4, 0xae, 0x7f, 0xdc, 0xf7, 0x60, 0xa7,
+  0x72, 0x1a, 0x28, 0x79, 0xfb, 0xed, 0xcc, 0x15,
+  0xa9, 0xd3, 0xff, 0xf6, 0x6d, 0x65, 0xde, 0xeb,
+  0xff, 0x81, 0x5a, 0xa8, 0x0a, 0x93, 0xb1, 0x1e,
+  0x6c, 0x21, 0xd1, 0x1b, 0x50, 0xbe, 0x7f, 0x3b,
+  0x05, 0x3b, 0x90, 0xd1, 0x79, 0xc2, 0xaf, 0xf7,
+  0x3d, 0x13, 0x65, 0x2c, 0x97, 0x3f, 0x4c, 0x3f,
+  0xc4, 0x99, 0x87, 0x76, 0x3b, 0xfc, 0x73, 0xad,
+  0x91, 0xa7, 0xf3, 0xb0, 0x53, 0xb9, 0x0d, 0x14,
+  0xb4, 0xfe, 0x76, 0x0a, 0x77, 0x21, 0xa2, 0xc2,
+  0x9f, 0xce, 0xc1, 0x4e, 0xe4, 0x34, 0x59, 0x73,
+  0xce, 0xd7, 0xaa, 0xf9, 0xba, 0x9d, 0x39, 0xdb,
+  0xd8, 0x74, 0xf2, 0x39, 0x6a, 0x87, 0xa5, 0xa1,
+  0xa4, 0xff, 0xe7, 0x33, 0x9e, 0xec, 0x14, 0xee,
+  0x43, 0x45, 0x19, 0x3f, 0x9c, 0xad, 0x94, 0x54,
+  0x07, 0x43, 0xd3, 0xbf, 0x13, 0xb6, 0x1d, 0xf4,
+  0x23, 0x6a, 0x71, 0x75, 0x29, 0xff, 0x9d, 0xcf,
+  0x76, 0x0a, 0x77, 0x21, 0xa2, 0x39, 0x9f, 0xfc,
+  0xe6, 0x73, 0xdd, 0x82, 0x9d, 0xc8, 0x68, 0x9c,
+  0xa7, 0xf3, 0xb0, 0x53, 0xb9, 0x0d, 0x16, 0x64,
+  0xfe, 0x76, 0x0a, 0x77, 0x21, 0xa2, 0xdd, 0x9f,
+  0xfc, 0xe6, 0x73, 0xdd, 0x82, 0x9d, 0xc8, 0x68,
+  0xa4, 0x27, 0xfe, 0x77, 0x3d, 0xd8, 0x29, 0xdc,
+  0x86, 0x89, 0x4a, 0x28, 0x4e, 0xc9, 0xa4, 0xc6,
+  0x29, 0x7c, 0xee, 0xe7, 0x6d, 0xea, 0x53, 0xfe,
+  0xe7, 0xbb, 0x05, 0x3b, 0x90, 0xd1, 0x3b, 0x4f,
+  0xff, 0xbd, 0xb6, 0x8c, 0x56, 0xfe, 0xdb, 0xeb,
+  0xfc, 0x43, 0xa4, 0xe6, 0x22, 0x7f, 0x91, 0xa7,
+  0xfe, 0xe6, 0x5b, 0x13, 0xac, 0xbb, 0xde, 0x74,
+  0xff, 0xdf, 0xcb, 0x75, 0x19, 0x5f, 0xf5, 0x27,
+  0x4d, 0xa8, 0xed, 0x91, 0x0f, 0x54, 0x38, 0x62,
+  0x38, 0xb5, 0x21, 0x5f, 0x3e, 0x14, 0xee, 0x43,
+  0x44, 0x59, 0x3f, 0xee, 0x7b, 0xb0, 0x53, 0xb9,
+  0x0d, 0x12, 0xec, 0xff, 0xfd, 0x9b, 0x59, 0x77,
+  0xba, 0xff, 0xe0, 0x56, 0xaa, 0x02, 0xa4, 0xec,
+  0x46, 0x9b, 0x0c, 0x35, 0x11, 0xa7, 0xff, 0x39,
+  0x9c, 0xf7, 0x60, 0xa7, 0x72, 0x1a, 0x26, 0x29,
+  0xfc, 0xec, 0x14, 0xee, 0x43, 0x45, 0x53, 0x3f,
+  0xf9, 0xcc, 0xe7, 0xbb, 0x05, 0x3b, 0x90, 0xd1,
+  0x3a, 0x4f, 0xef, 0x70, 0xab, 0xf9, 0xb1, 0xd3,
+  0xe6, 0x95, 0xa5, 0xa9, 0xd3, 0xf0, 0x73, 0xcd,
+  0xb3, 0xe7, 0x4f, 0x7a, 0xca, 0xef, 0x1e, 0xb5,
+  0x4a, 0x27, 0xfe, 0xd2, 0xb7, 0x5a, 0x5d, 0xa3,
+  0x5e, 0x61, 0xd0, 0xc4, 0x41, 0x58, 0xe6, 0x7f,
+  0xdc, 0xf7, 0x60, 0xa7, 0x72, 0x1a, 0x27, 0x79,
+  0xf5, 0xf4, 0xe6, 0x78, 0xa9, 0x3b, 0x64, 0xe6,
+  0xf2, 0x30, 0xa6, 0x11, 0xf2, 0x34, 0xff, 0xe7,
+  0x33, 0x9e, 0xec, 0x14, 0xee, 0x43, 0x45, 0x0b,
+  0x3f, 0xf9, 0xcc, 0xe7, 0xbb, 0x05, 0x3b, 0x90,
+  0xd1, 0x49, 0x4f, 0xff, 0xec, 0xab, 0xb7, 0xe3,
+  0x56, 0xe6, 0x5e, 0xcb, 0x7d, 0x18, 0x74, 0x50,
+  0xb8, 0x06, 0xf3, 0x84, 0x52, 0x13, 0xb6, 0x47,
+  0xda, 0x04, 0x9d, 0x14, 0xb5, 0x14, 0xa7, 0xf3,
+  0xb0, 0x53, 0xb9, 0x0d, 0x11, 0x24, 0xff, 0xe7,
+  0x33, 0x9e, 0xec, 0x14, 0xee, 0x43, 0x44, 0xbd,
+  0x3e, 0x14, 0xee, 0x43, 0x45, 0x2f, 0x3f, 0x97,
+  0x66, 0xff, 0x31, 0x6a, 0x74, 0x9d, 0x87, 0xcd,
+  0x73, 0x09, 0xfc, 0xec, 0x14, 0xee, 0x43, 0x45,
+  0x39, 0x3f, 0xef, 0x0f, 0x56, 0xd9, 0x9f, 0x43,
+  0xa7, 0xfd, 0x96, 0x51, 0xc7, 0x04, 0x21, 0x2a,
+  0x6f, 0x04, 0xe9, 0xa8, 0x76, 0xc8, 0x8d, 0xd4,
+  0x3b, 0x6f, 0x3c, 0x9f, 0x0a, 0x77, 0x21, 0xa2,
+  0xbc, 0x9f, 0xff, 0xb3, 0x6b, 0x2e, 0xf7, 0x5f,
+  0xfc, 0x0a, 0xd5, 0x40, 0x54, 0x9d, 0x88, 0x8d,
+  0xd4, 0x30, 0x9f, 0xf9, 0xdc, 0xf7, 0x60, 0xa7,
+  0x72, 0x1a, 0x24, 0x79, 0xde, 0x02, 0x9d, 0x39,
+  0x31, 0x85, 0x38, 0xbb, 0x9f, 0x0a, 0x77, 0x21,
+  0xa2, 0x48, 0x9e, 0x77, 0x3d, 0xca, 0x7b, 0x38,
+  0x53, 0x3f, 0xf3, 0xb9, 0xee, 0xc1, 0x4e, 0xe4,
+  0x34, 0x49, 0x53, 0xe1, 0x4e, 0xe4, 0x34, 0x5e,
+  0x33, 0xf6, 0x9f, 0xa7, 0xa9, 0xa9, 0xd3, 0xea,
+  0xd6, 0xf8, 0x87, 0x4f, 0xf3, 0xdd, 0x82, 0x9d,
+  0xc8, 0x68, 0x93, 0x64, 0xec, 0x46, 0x3d, 0x26,
+  0x02, 0x61, 0xc4, 0xd0, 0xab, 0xa5, 0x34, 0x1d,
+  0xbe, 0x17, 0x1b, 0x13, 0xfa, 0x19, 0x0d, 0x43,
+  0x45, 0x85, 0x76, 0x86, 0x05, 0xcd, 0xf4, 0x8c,
+  0x4e, 0x16, 0x36, 0x9d, 0x1a, 0x23, 0xae, 0x7c,
+  0x79, 0x3b, 0x47, 0xb5, 0x96, 0xe4, 0x47, 0x5c,
+  0xa5, 0x64, 0xaf, 0xb3, 0x69, 0x9e, 0x7b, 0xf4,
+  0xe6, 0x26, 0xae, 0x3b, 0x06, 0xa9, 0xa9, 0xe3,
+  0x48, 0xf0, 0x66, 0x22, 0x86, 0x2d, 0x3b, 0x51,
+  0xd4, 0xe7, 0x80, 0x4b, 0x0e, 0x6e, 0xe1, 0x63,
+  0xf9, 0xe4, 0x8a, 0xd2, 0x4c, 0xef, 0x5c, 0x90,
+  0x69, 0x4a, 0xef, 0x6d, 0x29, 0x80, 0x32, 0x83,
+  0x75, 0x23, 0xde, 0xdf, 0x3a, 0x02, 0xdf, 0x3b,
+  0x4d, 0x00,
 };
 
-static const unsigned kPreloadedHSTSBits = 94645;
+static const unsigned kPreloadedHSTSBits = 94538;
 
-static const unsigned kHSTSRootPosition = 94068;
+static const unsigned kHSTSRootPosition = 93961;
 
 #endif // NET_HTTP_TRANSPORT_SECURITY_STATE_STATIC_H_
diff --git a/net/http/transport_security_state_static.json b/net/http/transport_security_state_static.json
index 2423f5a..2517d20 100644
--- a/net/http/transport_security_state_static.json
+++ b/net/http/transport_security_state_static.json
@@ -756,7 +756,6 @@
     { "name": "mnsure.org", "include_subdomains": true, "mode": "force-https" },
     { "name": "getcloak.com", "mode": "force-https" },
     { "name": "www.getcloak.com", "mode": "force-https" },
-    { "name": "matteomarescotti.name", "include_subdomains": true, "mode": "force-https" },
     { "name": "www.heliosnet.com", "include_subdomains": true, "mode": "force-https" },
     { "name": "opsmate.com", "mode": "force-https" },
     { "name": "www.opsmate.com", "include_subdomains": true, "mode": "force-https" },
diff --git a/net/http/url_security_manager_win.cc b/net/http/url_security_manager_win.cc
index 4e2d938..db5620f 100644
--- a/net/http/url_security_manager_win.cc
+++ b/net/http/url_security_manager_win.cc
@@ -53,10 +53,10 @@
   if (!const_cast<URLSecurityManagerWin*>(this)->EnsureSystemSecurityManager())
     return false;
 
-  std::wstring url_w = base::ASCIIToWide(auth_origin.spec());
+  base::string16 url16 = base::ASCIIToUTF16(auth_origin.spec());
   DWORD policy = 0;
   HRESULT hr;
-  hr = security_manager_->ProcessUrlAction(url_w.c_str(),
+  hr = security_manager_->ProcessUrlAction(url16.c_str(),
                                            URLACTION_CREDENTIALS_USE,
                                            reinterpret_cast<BYTE*>(&policy),
                                            sizeof(policy), NULL, 0,
@@ -84,7 +84,7 @@
       // URLZONE_INTERNET      3
       // URLZONE_UNTRUSTED     4
       DWORD zone = 0;
-      hr = security_manager_->MapUrlToZone(url_w.c_str(), &zone, 0);
+      hr = security_manager_->MapUrlToZone(url16.c_str(), &zone, 0);
       if (FAILED(hr)) {
         LOG(ERROR) << "IInternetSecurityManager::MapUrlToZone failed: " << hr;
         return false;
diff --git a/net/net.gyp b/net/net.gyp
index 8a292aa..7b4b5d6 100644
--- a/net/net.gyp
+++ b/net/net.gyp
@@ -299,8 +299,6 @@
                 ],
               }]
             ],
-            # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
-            'msvs_disabled_warnings': [4267, ],
           },
         ],
         [ 'use_openssl_certs == 0', {
@@ -410,6 +408,8 @@
               'udp/udp_socket_libevent.cc',
               'udp/udp_socket_libevent.h',
             ],
+             # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
+            'msvs_disabled_warnings': [4267, ],
           }, { # else: OS != "win"
             'sources!': [
               'base/winsock_init.cc',
@@ -597,8 +597,6 @@
               ],
             }],
           ],
-          # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
-          'msvs_disabled_warnings': [4267, ],
         }],
         [ 'os_posix == 1 and OS != "mac" and OS != "android" and OS != "ios"', {
           'conditions': [
@@ -712,6 +710,8 @@
               'dns/dns_config_service_posix_unittest.cc',
               'http/http_auth_gssapi_posix_unittest.cc',
             ],
+            # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
+            'msvs_disabled_warnings': [4267, ],
             'conditions': [
               [ 'icu_use_data_file_flag == 0', {
                 # This is needed to trigger the dll copy step on windows.
@@ -976,8 +976,6 @@
               ],
             }],
           ],
-          # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
-          'msvs_disabled_warnings': [4267, ],
         }],
         ['os_posix == 1 and OS != "mac" and OS != "android" and OS != "ios"', {
           'conditions': [
diff --git a/net/net.gypi b/net/net.gypi
index e3068be..f43c67f 100644
--- a/net/net.gypi
+++ b/net/net.gypi
@@ -273,10 +273,10 @@
       'base/proxy_delegate.h',
       'base/request_priority.cc',
       'base/request_priority.h',
-      'base/sdch_dictionary_fetcher.cc',
-      'base/sdch_dictionary_fetcher.h',
       'base/sdch_manager.cc',
       'base/sdch_manager.h',
+      'base/sdch_observer.cc',
+      'base/sdch_observer.h',
       'base/static_cookie_policy.cc',
       'base/static_cookie_policy.h',
       'base/test_data_stream.cc',
@@ -656,7 +656,6 @@
       'http/http_status_code.cc',
       'http/http_status_code.h',
       'http/http_stream.h',
-      'http/http_stream_base.h',
       'http/http_stream_factory.cc',
       'http/http_stream_factory.h',
       'http/http_stream_factory_impl.cc',
@@ -1138,6 +1137,8 @@
       'url_request/http_user_agent_settings.h',
       'url_request/redirect_info.cc',
       'url_request/redirect_info.h',
+      'url_request/sdch_dictionary_fetcher.cc',
+      'url_request/sdch_dictionary_fetcher.h',
       'url_request/static_http_user_agent_settings.cc',
       'url_request/static_http_user_agent_settings.h',
       'url_request/url_fetcher.cc',
@@ -1296,7 +1297,6 @@
       'base/prioritized_dispatcher_unittest.cc',
       'base/priority_queue_unittest.cc',
       'base/registry_controlled_domains/registry_controlled_domain_unittest.cc',
-      'base/sdch_dictionary_fetcher_unittest.cc',
       'base/sdch_manager_unittest.cc',
       'base/static_cookie_policy_unittest.cc',
       'base/test_completion_callback_unittest.cc',
@@ -1695,6 +1695,7 @@
       'tools/dump_cache/url_utilities_unittest.cc',
       'tools/tld_cleanup/tld_cleanup_util_unittest.cc',
       'udp/udp_socket_unittest.cc',
+      'url_request/sdch_dictionary_fetcher_unittest.cc',
       'url_request/url_fetcher_impl_unittest.cc',
       'url_request/url_fetcher_response_writer_unittest.cc',
       'url_request/url_request_context_builder_unittest.cc',
diff --git a/net/proxy/proxy_resolver_winhttp.cc b/net/proxy/proxy_resolver_winhttp.cc
index 2d90dab..755a1bf 100644
--- a/net/proxy/proxy_resolver_winhttp.cc
+++ b/net/proxy/proxy_resolver_winhttp.cc
@@ -54,8 +54,8 @@
   WINHTTP_AUTOPROXY_OPTIONS options = {0};
   options.fAutoLogonIfChallenged = FALSE;
   options.dwFlags = WINHTTP_AUTOPROXY_CONFIG_URL;
-  std::wstring pac_url_wide = base::ASCIIToWide(pac_url_.spec());
-  options.lpszAutoConfigUrl = pac_url_wide.c_str();
+  base::string16 pac_url16 = base::ASCIIToUTF16(pac_url_.spec());
+  options.lpszAutoConfigUrl = pac_url16.c_str();
 
   WINHTTP_PROXY_INFO info = {0};
   DCHECK(session_handle_);
@@ -66,13 +66,13 @@
   // get good performance in the case where WinHTTP uses an out-of-process
   // resolver.  This is important for Vista and Win2k3.
   BOOL ok = WinHttpGetProxyForUrl(session_handle_,
-                                  base::ASCIIToWide(query_url.spec()).c_str(),
+                                  base::ASCIIToUTF16(query_url.spec()).c_str(),
                                   &options, &info);
   if (!ok) {
     if (ERROR_WINHTTP_LOGIN_FAILURE == GetLastError()) {
       options.fAutoLogonIfChallenged = TRUE;
       ok = WinHttpGetProxyForUrl(
-          session_handle_, base::ASCIIToWide(query_url.spec()).c_str(),
+          session_handle_, base::ASCIIToUTF16(query_url.spec()).c_str(),
           &options, &info);
     }
     if (!ok) {
diff --git a/net/quic/congestion_control/rtt_stats.cc b/net/quic/congestion_control/rtt_stats.cc
index 7b25b6c..dfb50ef 100644
--- a/net/quic/congestion_control/rtt_stats.cc
+++ b/net/quic/congestion_control/rtt_stats.cc
@@ -32,10 +32,6 @@
       num_min_rtt_samples_remaining_(0),
       recent_min_rtt_window_(QuicTime::Delta::Infinite()) {}
 
-bool RttStats::HasUpdates() const {
-  return !smoothed_rtt_.IsZero();
-}
-
 void RttStats::SampleNewRecentMinRtt(uint32 num_samples) {
   num_min_rtt_samples_remaining_ = num_samples;
   new_min_rtt_ = RttSample();
@@ -78,7 +74,7 @@
   }
   latest_rtt_ = rtt_sample;
   // First time call.
-  if (!HasUpdates()) {
+  if (smoothed_rtt_.IsZero()) {
     smoothed_rtt_ = rtt_sample;
     mean_deviation_ = QuicTime::Delta::FromMicroseconds(
         rtt_sample.ToMicroseconds() / 2);
@@ -131,18 +127,4 @@
   }
 }
 
-QuicTime::Delta RttStats::SmoothedRtt() const {
-  if (!HasUpdates()) {
-    return QuicTime::Delta::FromMicroseconds(initial_rtt_us_);
-  }
-  return smoothed_rtt_;
-}
-
-QuicTime::Delta RttStats::MinRtt() const {
-  if (!HasUpdates()) {
-    return QuicTime::Delta::FromMicroseconds(initial_rtt_us_);
-  }
-  return min_rtt_;
-}
-
 }  // namespace net
diff --git a/net/quic/congestion_control/rtt_stats.h b/net/quic/congestion_control/rtt_stats.h
index b7ec6b9..9dd5620 100644
--- a/net/quic/congestion_control/rtt_stats.h
+++ b/net/quic/congestion_control/rtt_stats.h
@@ -41,12 +41,11 @@
   // |num_samples| UpdateRtt calls.
   void SampleNewRecentMinRtt(uint32 num_samples);
 
-  QuicTime::Delta SmoothedRtt() const;
-
-  // Returns the min_rtt for the entire connection if a min has been measured.
-  // This returns an initial non-zero RTT estimate if no measurements have yet
-  // been made.
-  QuicTime::Delta MinRtt() const;
+  // Returns the EWMA smoothed RTT for the connection.
+  // May return Zero if no valid updates have occurred.
+  QuicTime::Delta smoothed_rtt() const {
+    return smoothed_rtt_;
+  }
 
   int64 initial_rtt_us() const {
     return initial_rtt_us_;
@@ -57,10 +56,18 @@
     initial_rtt_us_ = initial_rtt_us;
   }
 
+  // The most recent rtt measurement.
+  // May return Zero if no valid updates have occurred.
   QuicTime::Delta latest_rtt() const {
     return latest_rtt_;
   }
 
+  // Returns the min_rtt for the entire connection.
+  // May return Zero if no valid updates have occurred.
+  QuicTime::Delta min_rtt() const {
+    return min_rtt_;
+  }
+
   // Returns the min_rtt since SampleNewRecentMinRtt has been called, or the
   // min_rtt for the entire connection if SampleNewMinRtt was never called.
   QuicTime::Delta recent_min_rtt() const {
diff --git a/net/quic/congestion_control/rtt_stats_test.cc b/net/quic/congestion_control/rtt_stats_test.cc
index d3a683e..6aaf2a6 100644
--- a/net/quic/congestion_control/rtt_stats_test.cc
+++ b/net/quic/congestion_control/rtt_stats_test.cc
@@ -37,10 +37,8 @@
 
 TEST_F(RttStatsTest, DefaultsBeforeUpdate) {
   EXPECT_LT(0u, rtt_stats_.initial_rtt_us());
-  EXPECT_EQ(QuicTime::Delta::FromMicroseconds(rtt_stats_.initial_rtt_us()),
-            rtt_stats_.MinRtt());
-  EXPECT_EQ(QuicTime::Delta::FromMicroseconds(rtt_stats_.initial_rtt_us()),
-            rtt_stats_.SmoothedRtt());
+  EXPECT_EQ(QuicTime::Delta::Zero(), rtt_stats_.min_rtt());
+  EXPECT_EQ(QuicTime::Delta::Zero(), rtt_stats_.smoothed_rtt());
 }
 
 TEST_F(RttStatsTest, SmoothedRtt) {
@@ -49,58 +47,58 @@
                        QuicTime::Delta::FromMilliseconds(100),
                        QuicTime::Zero());
   EXPECT_EQ(QuicTime::Delta::FromMilliseconds(200), rtt_stats_.latest_rtt());
-  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(200), rtt_stats_.SmoothedRtt());
+  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(200), rtt_stats_.smoothed_rtt());
   // Verify that effective RTT of zero does not change Smoothed RTT.
   rtt_stats_.UpdateRtt(QuicTime::Delta::FromMilliseconds(200),
                        QuicTime::Delta::FromMilliseconds(200),
                        QuicTime::Zero());
   EXPECT_EQ(QuicTime::Delta::FromMilliseconds(200), rtt_stats_.latest_rtt());
-  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(200), rtt_stats_.SmoothedRtt());
+  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(200), rtt_stats_.smoothed_rtt());
   // Verify that large erroneous ack_delay does not change Smoothed RTT.
   rtt_stats_.UpdateRtt(QuicTime::Delta::FromMilliseconds(200),
                        QuicTime::Delta::FromMilliseconds(300),
                        QuicTime::Zero());
   EXPECT_EQ(QuicTime::Delta::FromMilliseconds(200), rtt_stats_.latest_rtt());
-  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(200), rtt_stats_.SmoothedRtt());
+  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(200), rtt_stats_.smoothed_rtt());
 }
 
 TEST_F(RttStatsTest, MinRtt) {
   rtt_stats_.UpdateRtt(QuicTime::Delta::FromMilliseconds(200),
                        QuicTime::Delta::Zero(),
                        QuicTime::Zero());
-  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(200), rtt_stats_.MinRtt());
+  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(200), rtt_stats_.min_rtt());
   EXPECT_EQ(QuicTime::Delta::FromMilliseconds(200),
             rtt_stats_.recent_min_rtt());
   rtt_stats_.UpdateRtt(QuicTime::Delta::FromMilliseconds(10),
                        QuicTime::Delta::Zero(),
                        QuicTime::Zero().Add(
                            QuicTime::Delta::FromMilliseconds(10)));
-  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.MinRtt());
+  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.min_rtt());
   EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.recent_min_rtt());
   rtt_stats_.UpdateRtt(QuicTime::Delta::FromMilliseconds(50),
                        QuicTime::Delta::Zero(),
                        QuicTime::Zero().Add(
                            QuicTime::Delta::FromMilliseconds(20)));
-  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.MinRtt());
+  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.min_rtt());
   EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.recent_min_rtt());
   rtt_stats_.UpdateRtt(QuicTime::Delta::FromMilliseconds(50),
                        QuicTime::Delta::Zero(),
                        QuicTime::Zero().Add(
                            QuicTime::Delta::FromMilliseconds(30)));
-  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.MinRtt());
+  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.min_rtt());
   EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.recent_min_rtt());
   rtt_stats_.UpdateRtt(QuicTime::Delta::FromMilliseconds(50),
                        QuicTime::Delta::Zero(),
                        QuicTime::Zero().Add(
                            QuicTime::Delta::FromMilliseconds(40)));
-  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.MinRtt());
+  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.min_rtt());
   EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.recent_min_rtt());
   // Verify that ack_delay does not go into recording of min_rtt_.
   rtt_stats_.UpdateRtt(QuicTime::Delta::FromMilliseconds(7),
                        QuicTime::Delta::FromMilliseconds(2),
                        QuicTime::Zero().Add(
                            QuicTime::Delta::FromMilliseconds(50)));
-  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(7), rtt_stats_.MinRtt());
+  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(7), rtt_stats_.min_rtt());
   EXPECT_EQ(QuicTime::Delta::FromMilliseconds(7), rtt_stats_.recent_min_rtt());
 }
 
@@ -108,7 +106,7 @@
   rtt_stats_.UpdateRtt(QuicTime::Delta::FromMilliseconds(10),
                        QuicTime::Delta::Zero(),
                        QuicTime::Zero());
-  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.MinRtt());
+  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.min_rtt());
   EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.recent_min_rtt());
 
   rtt_stats_.SampleNewRecentMinRtt(4);
@@ -116,14 +114,14 @@
     rtt_stats_.UpdateRtt(QuicTime::Delta::FromMilliseconds(50),
                        QuicTime::Delta::Zero(),
                        QuicTime::Zero());
-    EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.MinRtt());
+    EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.min_rtt());
     EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10),
               rtt_stats_.recent_min_rtt());
   }
   rtt_stats_.UpdateRtt(QuicTime::Delta::FromMilliseconds(50),
                         QuicTime::Delta::Zero(),
                         QuicTime::Zero());
-  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.MinRtt());
+  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.min_rtt());
   EXPECT_EQ(QuicTime::Delta::FromMilliseconds(50), rtt_stats_.recent_min_rtt());
 }
 
@@ -134,7 +132,7 @@
   QuicTime now = QuicTime::Zero();
   QuicTime::Delta rtt_sample = QuicTime::Delta::FromMilliseconds(10);
   rtt_stats_.UpdateRtt(rtt_sample, QuicTime::Delta::Zero(), now);
-  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.MinRtt());
+  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.min_rtt());
   EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.recent_min_rtt());
 
   // Gradually increase the rtt samples and ensure the recent_min_rtt starts
@@ -143,7 +141,7 @@
     now = now.Add(QuicTime::Delta::FromMilliseconds(25));
     rtt_sample = rtt_sample.Add(QuicTime::Delta::FromMilliseconds(10));
     rtt_stats_.UpdateRtt(rtt_sample, QuicTime::Delta::Zero(), now);
-    EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.MinRtt());
+    EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.min_rtt());
     EXPECT_EQ(rtt_sample, RttStatsPeer::GetQuarterWindowRtt(&rtt_stats_));
     EXPECT_EQ(rtt_sample.Subtract(QuicTime::Delta::FromMilliseconds(10)),
               RttStatsPeer::GetHalfWindowRtt(&rtt_stats_));
@@ -165,7 +163,7 @@
   // A new quarter rtt low sets that, but nothing else.
   rtt_sample = rtt_sample.Subtract(QuicTime::Delta::FromMilliseconds(5));
   rtt_stats_.UpdateRtt(rtt_sample, QuicTime::Delta::Zero(), now);
-  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.MinRtt());
+  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.min_rtt());
   EXPECT_EQ(rtt_sample, RttStatsPeer::GetQuarterWindowRtt(&rtt_stats_));
   EXPECT_EQ(rtt_sample.Subtract(QuicTime::Delta::FromMilliseconds(5)),
             RttStatsPeer::GetHalfWindowRtt(&rtt_stats_));
@@ -175,7 +173,7 @@
   // A new half rtt low sets that and the quarter rtt low.
   rtt_sample = rtt_sample.Subtract(QuicTime::Delta::FromMilliseconds(15));
   rtt_stats_.UpdateRtt(rtt_sample, QuicTime::Delta::Zero(), now);
-  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.MinRtt());
+  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.min_rtt());
   EXPECT_EQ(rtt_sample, RttStatsPeer::GetQuarterWindowRtt(&rtt_stats_));
   EXPECT_EQ(rtt_sample, RttStatsPeer::GetHalfWindowRtt(&rtt_stats_));
   EXPECT_EQ(QuicTime::Delta::FromMilliseconds(70),
@@ -184,7 +182,7 @@
   // A new full window loss sets the recent_min_rtt, but not min_rtt.
   rtt_sample = QuicTime::Delta::FromMilliseconds(65);
   rtt_stats_.UpdateRtt(rtt_sample, QuicTime::Delta::Zero(), now);
-  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.MinRtt());
+  EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), rtt_stats_.min_rtt());
   EXPECT_EQ(rtt_sample, RttStatsPeer::GetQuarterWindowRtt(&rtt_stats_));
   EXPECT_EQ(rtt_sample, RttStatsPeer::GetHalfWindowRtt(&rtt_stats_));
   EXPECT_EQ(rtt_sample, rtt_stats_.recent_min_rtt());
@@ -193,7 +191,7 @@
   rtt_sample = QuicTime::Delta::FromMilliseconds(5);
   rtt_stats_.UpdateRtt(rtt_sample, QuicTime::Delta::Zero(), now);
 
-  EXPECT_EQ(rtt_sample, rtt_stats_.MinRtt());
+  EXPECT_EQ(rtt_sample, rtt_stats_.min_rtt());
   EXPECT_EQ(rtt_sample, RttStatsPeer::GetQuarterWindowRtt(&rtt_stats_));
   EXPECT_EQ(rtt_sample, RttStatsPeer::GetHalfWindowRtt(&rtt_stats_));
   EXPECT_EQ(rtt_sample, rtt_stats_.recent_min_rtt());
@@ -202,27 +200,27 @@
 TEST_F(RttStatsTest, ExpireSmoothedMetrics) {
   QuicTime::Delta initial_rtt = QuicTime::Delta::FromMilliseconds(10);
   rtt_stats_.UpdateRtt(initial_rtt, QuicTime::Delta::Zero(), QuicTime::Zero());
-  EXPECT_EQ(initial_rtt, rtt_stats_.MinRtt());
+  EXPECT_EQ(initial_rtt, rtt_stats_.min_rtt());
   EXPECT_EQ(initial_rtt, rtt_stats_.recent_min_rtt());
-  EXPECT_EQ(initial_rtt, rtt_stats_.SmoothedRtt());
+  EXPECT_EQ(initial_rtt, rtt_stats_.smoothed_rtt());
 
   EXPECT_EQ(initial_rtt.Multiply(0.5), rtt_stats_.mean_deviation());
 
   // Update once with a 20ms RTT.
   QuicTime::Delta doubled_rtt = initial_rtt.Multiply(2);
   rtt_stats_.UpdateRtt(doubled_rtt, QuicTime::Delta::Zero(), QuicTime::Zero());
-  EXPECT_EQ(initial_rtt.Multiply(1.125), rtt_stats_.SmoothedRtt());
+  EXPECT_EQ(initial_rtt.Multiply(1.125), rtt_stats_.smoothed_rtt());
 
   // Expire the smoothed metrics, increasing smoothed rtt and mean deviation.
   rtt_stats_.ExpireSmoothedMetrics();
-  EXPECT_EQ(doubled_rtt, rtt_stats_.SmoothedRtt());
+  EXPECT_EQ(doubled_rtt, rtt_stats_.smoothed_rtt());
   EXPECT_EQ(initial_rtt.Multiply(0.875), rtt_stats_.mean_deviation());
 
   // Now go back down to 5ms and expire the smoothed metrics, and ensure the
   // mean deviation increases to 15ms.
   QuicTime::Delta half_rtt = initial_rtt.Multiply(0.5);
   rtt_stats_.UpdateRtt(half_rtt, QuicTime::Delta::Zero(), QuicTime::Zero());
-  EXPECT_GT(doubled_rtt, rtt_stats_.SmoothedRtt());
+  EXPECT_GT(doubled_rtt, rtt_stats_.smoothed_rtt());
   EXPECT_LT(initial_rtt, rtt_stats_.mean_deviation());
 }
 
@@ -232,9 +230,9 @@
 
   QuicTime::Delta initial_rtt = QuicTime::Delta::FromMilliseconds(10);
   rtt_stats_.UpdateRtt(initial_rtt, QuicTime::Delta::Zero(), QuicTime::Zero());
-  EXPECT_EQ(initial_rtt, rtt_stats_.MinRtt());
+  EXPECT_EQ(initial_rtt, rtt_stats_.min_rtt());
   EXPECT_EQ(initial_rtt, rtt_stats_.recent_min_rtt());
-  EXPECT_EQ(initial_rtt, rtt_stats_.SmoothedRtt());
+  EXPECT_EQ(initial_rtt, rtt_stats_.smoothed_rtt());
 
   vector<QuicTime::Delta> bad_send_deltas;
   bad_send_deltas.push_back(QuicTime::Delta::Zero());
@@ -249,9 +247,9 @@
     rtt_stats_.UpdateRtt(bad_send_delta,
                          QuicTime::Delta::Zero(),
                          QuicTime::Zero());
-    EXPECT_EQ(initial_rtt, rtt_stats_.MinRtt());
+    EXPECT_EQ(initial_rtt, rtt_stats_.min_rtt());
     EXPECT_EQ(initial_rtt, rtt_stats_.recent_min_rtt());
-    EXPECT_EQ(initial_rtt, rtt_stats_.SmoothedRtt());
+    EXPECT_EQ(initial_rtt, rtt_stats_.smoothed_rtt());
   }
 }
 
diff --git a/net/quic/congestion_control/tcp_cubic_sender.cc b/net/quic/congestion_control/tcp_cubic_sender.cc
index 44e4b3e..5f20597 100644
--- a/net/quic/congestion_control/tcp_cubic_sender.cc
+++ b/net/quic/congestion_control/tcp_cubic_sender.cc
@@ -22,7 +22,6 @@
 // fast retransmission.  The cwnd after a timeout is still 1.
 const QuicPacketCount kMinimumCongestionWindow = 2;
 const QuicByteCount kMaxSegmentSize = kDefaultTCPMSS;
-const int64 kInitialCongestionWindow = 10;
 const int kMaxBurstLength = 3;
 const float kRenoBeta = 0.7f;  // Reno backoff factor.
 const uint32 kDefaultNumConnections = 2;  // N-connection emulation.
@@ -44,7 +43,7 @@
       largest_sent_sequence_number_(0),
       largest_acked_sequence_number_(0),
       largest_sent_at_last_cutback_(0),
-      congestion_window_(kInitialCongestionWindow),
+      congestion_window_(kDefaultInitialWindow),
       previous_congestion_window_(0),
       slowstart_threshold_(max_tcp_congestion_window),
       previous_slowstart_threshold_(0),
@@ -63,11 +62,13 @@
       // Initial window experiment.  Ignore the initial congestion
       // window suggested by the client and use the default ICWND of
       // 10 instead.
-      congestion_window_ = kInitialCongestionWindow;
+      congestion_window_ = kDefaultInitialWindow;
     } else if (config.HasReceivedInitialCongestionWindow()) {
       // Set the initial window size.
-      congestion_window_ = min(kMaxInitialWindow,
-                               config.ReceivedInitialCongestionWindow());
+      congestion_window_ = max(kMinimumCongestionWindow,
+          min(kMaxInitialWindow,
+              static_cast<QuicPacketCount>(
+                  config.ReceivedInitialCongestionWindow())));
     }
   }
 }
@@ -92,7 +93,7 @@
     const CongestionVector& lost_packets) {
   if (rtt_updated && InSlowStart() &&
       hybrid_slow_start_.ShouldExitSlowStart(rtt_stats_->latest_rtt(),
-                                             rtt_stats_->MinRtt(),
+                                             rtt_stats_->min_rtt(),
                                              congestion_window_)) {
     slowstart_threshold_ = congestion_window_;
   }
@@ -203,27 +204,34 @@
   // We pace at twice the rate of the underlying sender's bandwidth estimate
   // during slow start and 1.25x during congestion avoidance to ensure pacing
   // doesn't prevent us from filling the window.
-  return BandwidthEstimate().Scale(InSlowStart() ? 2 : 1.25);
+  QuicTime::Delta srtt = rtt_stats_->smoothed_rtt();
+  if (srtt.IsZero()) {
+    srtt = QuicTime::Delta::FromMicroseconds(rtt_stats_->initial_rtt_us());
+  }
+  const QuicBandwidth bandwidth =
+      QuicBandwidth::FromBytesAndTimeDelta(GetCongestionWindow(), srtt);
+  return bandwidth.Scale(InSlowStart() ? 2 : 1.25);
 }
 
 QuicBandwidth TcpCubicSender::BandwidthEstimate() const {
-  if (rtt_stats_->SmoothedRtt().IsZero()) {
-    LOG(DFATAL) << "In BandwidthEstimate(), smoothed RTT is zero!";
+  QuicTime::Delta srtt = rtt_stats_->smoothed_rtt();
+  if (srtt.IsZero()) {
+    // If we haven't measured an rtt, the bandwidth estimate is unknown.
     return QuicBandwidth::Zero();
   }
-  return QuicBandwidth::FromBytesAndTimeDelta(GetCongestionWindow(),
-                                              rtt_stats_->SmoothedRtt());
+  return QuicBandwidth::FromBytesAndTimeDelta(GetCongestionWindow(), srtt);
 }
 
 bool TcpCubicSender::HasReliableBandwidthEstimate() const {
-  return !InSlowStart() && !InRecovery();
+  return !InSlowStart() && !InRecovery() &&
+      !rtt_stats_->smoothed_rtt().IsZero();;
 }
 
 QuicTime::Delta TcpCubicSender::RetransmissionDelay() const {
-  if (!rtt_stats_->HasUpdates()) {
+  if (rtt_stats_->smoothed_rtt().IsZero()) {
     return QuicTime::Delta::Zero();
   }
-  return rtt_stats_->SmoothedRtt().Add(
+  return rtt_stats_->smoothed_rtt().Add(
       rtt_stats_->mean_deviation().Multiply(4));
 }
 
@@ -299,7 +307,7 @@
   } else {
     congestion_window_ = min(max_tcp_congestion_window_,
                              cubic_.CongestionWindowAfterAck(
-                                 congestion_window_, rtt_stats_->MinRtt()));
+                                 congestion_window_, rtt_stats_->min_rtt()));
     DVLOG(1) << "Cubic; congestion window: " << congestion_window_
              << " slowstart threshold: " << slowstart_threshold_;
   }
diff --git a/net/quic/congestion_control/tcp_cubic_sender_test.cc b/net/quic/congestion_control/tcp_cubic_sender_test.cc
index 4fe8dbf..48a1300 100644
--- a/net/quic/congestion_control/tcp_cubic_sender_test.cc
+++ b/net/quic/congestion_control/tcp_cubic_sender_test.cc
@@ -21,8 +21,7 @@
 namespace net {
 namespace test {
 
-const int64 kInitialCongestionWindow = 10;
-const uint32 kDefaultWindowTCP = kInitialCongestionWindow * kDefaultTCPMSS;
+const uint32 kDefaultWindowTCP = kDefaultInitialWindow * kDefaultTCPMSS;
 const float kRenoBeta = 0.7f;  // Reno backoff factor.
 
 // TODO(ianswett): Remove 10000 once b/10075719 is fixed.
@@ -188,6 +187,8 @@
   EXPECT_TRUE(sender_->TimeUntilSend(clock_.Now(),
       0,
       HAS_RETRANSMITTABLE_DATA).IsZero());
+  EXPECT_FALSE(sender_->HasReliableBandwidthEstimate());
+  EXPECT_EQ(QuicBandwidth::Zero(), sender_->BandwidthEstimate());
   // Make sure we can send.
   EXPECT_TRUE(sender_->TimeUntilSend(clock_.Now(),
                                      0,
@@ -198,9 +199,12 @@
     SendAvailableSendWindow();
     AckNPackets(2);
   }
-  QuicByteCount bytes_to_send = sender_->GetCongestionWindow();
-  EXPECT_EQ(kDefaultWindowTCP + kDefaultTCPMSS * 2 * kNumberOfAcks,
-            bytes_to_send);
+  const QuicByteCount cwnd = sender_->GetCongestionWindow();
+  EXPECT_EQ(kDefaultWindowTCP + kDefaultTCPMSS * 2 * kNumberOfAcks, cwnd);
+  EXPECT_FALSE(sender_->HasReliableBandwidthEstimate());
+  EXPECT_EQ(QuicBandwidth::FromBytesAndTimeDelta(
+                cwnd, sender_->rtt_stats_.smoothed_rtt()),
+            sender_->BandwidthEstimate());
 }
 
 TEST_F(TcpCubicSenderTest, SlowStartAckTrain) {
@@ -301,7 +305,7 @@
 
 TEST_F(TcpCubicSenderTest, NoPRRWhenLessThanOnePacketInFlight) {
   SendAvailableSendWindow();
-  LoseNPackets(kInitialCongestionWindow - 1);
+  LoseNPackets(kDefaultInitialWindow - 1);
   AckNPackets(1);
   // PRR will allow 2 packets for every ack during recovery.
   EXPECT_EQ(2, SendAvailableSendWindow());
@@ -469,13 +473,13 @@
   }
   expected_delay = QuicTime::Delta::FromMilliseconds(kRttMs + kDeviationMs * 4);
 
-  EXPECT_NEAR(kRttMs, sender_->rtt_stats_.SmoothedRtt().ToMilliseconds(), 1);
+  EXPECT_NEAR(kRttMs, sender_->rtt_stats_.smoothed_rtt().ToMilliseconds(), 1);
   EXPECT_NEAR(expected_delay.ToMilliseconds(),
               sender_->RetransmissionDelay().ToMilliseconds(),
               1);
   EXPECT_EQ(static_cast<int64>(
                 sender_->GetCongestionWindow() * kNumMicrosPerSecond /
-                sender_->rtt_stats_.SmoothedRtt().ToMicroseconds()),
+                sender_->rtt_stats_.smoothed_rtt().ToMicroseconds()),
             sender_->BandwidthEstimate().ToBytesPerSecond());
 }
 
diff --git a/net/quic/congestion_control/tcp_loss_algorithm.cc b/net/quic/congestion_control/tcp_loss_algorithm.cc
index e609122..6cf56d8 100644
--- a/net/quic/congestion_control/tcp_loss_algorithm.cc
+++ b/net/quic/congestion_control/tcp_loss_algorithm.cc
@@ -31,7 +31,7 @@
   SequenceNumberSet lost_packets;
   loss_detection_timeout_ = QuicTime::Zero();
   QuicTime::Delta loss_delay =
-      rtt_stats.SmoothedRtt().Multiply(kEarlyRetransmitLossDelayMultiplier);
+      rtt_stats.smoothed_rtt().Multiply(kEarlyRetransmitLossDelayMultiplier);
   QuicPacketSequenceNumber sequence_number = unacked_packets.GetLeastUnacked();
   for (QuicUnackedPacketMap::const_iterator it = unacked_packets.begin();
        it != unacked_packets.end() && sequence_number <= largest_observed;
diff --git a/net/quic/congestion_control/tcp_loss_algorithm_test.cc b/net/quic/congestion_control/tcp_loss_algorithm_test.cc
index 34bcc16..5819fb1 100644
--- a/net/quic/congestion_control/tcp_loss_algorithm_test.cc
+++ b/net/quic/congestion_control/tcp_loss_algorithm_test.cc
@@ -118,7 +118,7 @@
   unacked_packets_.RemoveFromInFlight(2);
   unacked_packets_.NackPacket(1, 1);
   VerifyLosses(2, nullptr, 0);
-  EXPECT_EQ(clock_.Now().Add(rtt_stats_.SmoothedRtt().Multiply(1.25)),
+  EXPECT_EQ(clock_.Now().Add(rtt_stats_.smoothed_rtt().Multiply(1.25)),
             loss_algorithm_.GetLossTimeout());
 
   clock_.AdvanceTime(rtt_stats_.latest_rtt().Multiply(1.25));
@@ -133,7 +133,7 @@
     SendDataPacket(i);
     // Advance the time 1/4 RTT between 3 and 4.
     if (i == 3) {
-      clock_.AdvanceTime(rtt_stats_.SmoothedRtt().Multiply(0.25));
+      clock_.AdvanceTime(rtt_stats_.smoothed_rtt().Multiply(0.25));
     }
   }
 
@@ -148,15 +148,15 @@
   VerifyLosses(kNumSentPackets, lost, arraysize(lost));
   // The time has already advanced 1/4 an RTT, so ensure the timeout is set
   // 1.25 RTTs after the earliest pending packet(3), not the last(4).
-  EXPECT_EQ(clock_.Now().Add(rtt_stats_.SmoothedRtt()),
+  EXPECT_EQ(clock_.Now().Add(rtt_stats_.smoothed_rtt()),
             loss_algorithm_.GetLossTimeout());
 
-  clock_.AdvanceTime(rtt_stats_.SmoothedRtt());
+  clock_.AdvanceTime(rtt_stats_.smoothed_rtt());
   QuicPacketSequenceNumber lost2[] = { 1, 2, 3 };
   VerifyLosses(kNumSentPackets, lost2, arraysize(lost2));
-  EXPECT_EQ(clock_.Now().Add(rtt_stats_.SmoothedRtt().Multiply(0.25)),
+  EXPECT_EQ(clock_.Now().Add(rtt_stats_.smoothed_rtt().Multiply(0.25)),
             loss_algorithm_.GetLossTimeout());
-  clock_.AdvanceTime(rtt_stats_.SmoothedRtt().Multiply(0.25));
+  clock_.AdvanceTime(rtt_stats_.smoothed_rtt().Multiply(0.25));
   QuicPacketSequenceNumber lost3[] = { 1, 2, 3, 4 };
   VerifyLosses(kNumSentPackets, lost3, arraysize(lost3));
   EXPECT_EQ(QuicTime::Zero(), loss_algorithm_.GetLossTimeout());
diff --git a/net/quic/congestion_control/time_loss_algorithm.cc b/net/quic/congestion_control/time_loss_algorithm.cc
index 3a7b42d..9dd9ae9 100644
--- a/net/quic/congestion_control/time_loss_algorithm.cc
+++ b/net/quic/congestion_control/time_loss_algorithm.cc
@@ -36,7 +36,7 @@
   loss_detection_timeout_ = QuicTime::Zero();
   QuicTime::Delta loss_delay = QuicTime::Delta::Max(
       QuicTime::Delta::FromMilliseconds(kMinLossDelayMs),
-      QuicTime::Delta::Max(rtt_stats.SmoothedRtt(), rtt_stats.latest_rtt())
+      QuicTime::Delta::Max(rtt_stats.smoothed_rtt(), rtt_stats.latest_rtt())
           .Multiply(kLossDelayMultiplier));
 
   QuicPacketSequenceNumber sequence_number = unacked_packets.GetLeastUnacked();
diff --git a/net/quic/congestion_control/time_loss_algorithm_test.cc b/net/quic/congestion_control/time_loss_algorithm_test.cc
index 374e563..b964d28 100644
--- a/net/quic/congestion_control/time_loss_algorithm_test.cc
+++ b/net/quic/congestion_control/time_loss_algorithm_test.cc
@@ -60,7 +60,7 @@
     unacked_packets_.NackPacket(1, i);
     VerifyLosses(2, nullptr, 0);
   }
-  EXPECT_EQ(rtt_stats_.SmoothedRtt().Multiply(1.25),
+  EXPECT_EQ(rtt_stats_.smoothed_rtt().Multiply(1.25),
             loss_algorithm_.GetLossTimeout().Subtract(clock_.Now()));
 }
 
@@ -69,7 +69,7 @@
   // Transmit 10 packets at 1/10th an RTT interval.
   for (size_t i = 1; i <= kNumSentPackets; ++i) {
     SendDataPacket(i);
-    clock_.AdvanceTime(rtt_stats_.SmoothedRtt().Multiply(0.1));
+    clock_.AdvanceTime(rtt_stats_.smoothed_rtt().Multiply(0.1));
   }
   // Expect the timer to not be set.
   EXPECT_EQ(QuicTime::Zero(), loss_algorithm_.GetLossTimeout());
@@ -78,11 +78,11 @@
   unacked_packets_.RemoveFromInFlight(2);
   VerifyLosses(2, nullptr, 0);
   // Expect the timer to be set to 0.25 RTT's in the future.
-  EXPECT_EQ(rtt_stats_.SmoothedRtt().Multiply(0.25),
+  EXPECT_EQ(rtt_stats_.smoothed_rtt().Multiply(0.25),
             loss_algorithm_.GetLossTimeout().Subtract(clock_.Now()));
   unacked_packets_.NackPacket(1, 5);
   VerifyLosses(2, nullptr, 0);
-  clock_.AdvanceTime(rtt_stats_.SmoothedRtt().Multiply(0.25));
+  clock_.AdvanceTime(rtt_stats_.smoothed_rtt().Multiply(0.25));
   QuicPacketSequenceNumber lost[] = { 1 };
   VerifyLosses(2, lost, arraysize(lost));
   EXPECT_EQ(QuicTime::Zero(), loss_algorithm_.GetLossTimeout());
@@ -93,7 +93,7 @@
   // Transmit 10 packets at 1/10th an RTT interval.
   for (size_t i = 1; i <= kNumSentPackets; ++i) {
     SendDataPacket(i);
-    clock_.AdvanceTime(rtt_stats_.SmoothedRtt().Multiply(0.1));
+    clock_.AdvanceTime(rtt_stats_.smoothed_rtt().Multiply(0.1));
   }
   // Expect the timer to not be set.
   EXPECT_EQ(QuicTime::Zero(), loss_algorithm_.GetLossTimeout());
@@ -102,9 +102,9 @@
   VerifyLosses(1, nullptr, 0);
   // The timer should still not be set.
   EXPECT_EQ(QuicTime::Zero(), loss_algorithm_.GetLossTimeout());
-  clock_.AdvanceTime(rtt_stats_.SmoothedRtt().Multiply(0.25));
+  clock_.AdvanceTime(rtt_stats_.smoothed_rtt().Multiply(0.25));
   VerifyLosses(1, nullptr, 0);
-  clock_.AdvanceTime(rtt_stats_.SmoothedRtt());
+  clock_.AdvanceTime(rtt_stats_.smoothed_rtt());
   VerifyLosses(1, nullptr, 0);
 
   EXPECT_EQ(QuicTime::Zero(), loss_algorithm_.GetLossTimeout());
@@ -116,7 +116,7 @@
   for (size_t i = 1; i <= kNumSentPackets; ++i) {
     SendDataPacket(i);
   }
-  clock_.AdvanceTime(rtt_stats_.SmoothedRtt());
+  clock_.AdvanceTime(rtt_stats_.smoothed_rtt());
   // Expect the timer to not be set.
   EXPECT_EQ(QuicTime::Zero(), loss_algorithm_.GetLossTimeout());
   // The packet should not be lost until 1.25 RTTs pass.
@@ -126,9 +126,9 @@
   unacked_packets_.RemoveFromInFlight(10);
   VerifyLosses(10, nullptr, 0);
   // Expect the timer to be set to 0.25 RTT's in the future.
-  EXPECT_EQ(rtt_stats_.SmoothedRtt().Multiply(0.25),
+  EXPECT_EQ(rtt_stats_.smoothed_rtt().Multiply(0.25),
             loss_algorithm_.GetLossTimeout().Subtract(clock_.Now()));
-  clock_.AdvanceTime(rtt_stats_.SmoothedRtt().Multiply(0.25));
+  clock_.AdvanceTime(rtt_stats_.smoothed_rtt().Multiply(0.25));
   QuicPacketSequenceNumber lost[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
   VerifyLosses(10, lost, arraysize(lost));
   EXPECT_EQ(QuicTime::Zero(), loss_algorithm_.GetLossTimeout());
diff --git a/net/quic/crypto/quic_crypto_server_config.cc b/net/quic/crypto/quic_crypto_server_config.cc
index a5c5d08..5a650b6 100644
--- a/net/quic/crypto/quic_crypto_server_config.cc
+++ b/net/quic/crypto/quic_crypto_server_config.cc
@@ -1420,6 +1420,10 @@
       rand, source_address_token.SerializeAsString());
 }
 
+bool QuicCryptoServerConfig::HasProofSource() const {
+  return proof_source_ != nullptr;
+}
+
 HandshakeFailureReason QuicCryptoServerConfig::ValidateSourceAddressToken(
     const Config& config,
     StringPiece token,
diff --git a/net/quic/crypto/quic_crypto_server_config.h b/net/quic/crypto/quic_crypto_server_config.h
index 30e0f6d..dbbff1a 100644
--- a/net/quic/crypto/quic_crypto_server_config.h
+++ b/net/quic/crypto/quic_crypto_server_config.h
@@ -326,6 +326,9 @@
   // Set and take ownership of the callback to invoke on primary config changes.
   void AcquirePrimaryConfigChangedCb(PrimaryConfigChangedCallback* cb);
 
+  // Returns true if this config has a |proof_source_|.
+  bool HasProofSource() const;
+
  private:
   friend class test::QuicCryptoServerConfigPeer;
 
diff --git a/net/quic/quic_client_session.cc b/net/quic/quic_client_session.cc
index a12b1d0..7c220ad 100644
--- a/net/quic/quic_client_session.cc
+++ b/net/quic/quic_client_session.cc
@@ -155,9 +155,10 @@
     TransportSecurityState* transport_security_state,
     scoped_ptr<QuicServerInfo> server_info,
     const QuicConfig& config,
+    bool is_secure,
     base::TaskRunner* task_runner,
     NetLog* net_log)
-    : QuicClientSessionBase(connection, config),
+    : QuicClientSessionBase(connection, config, is_secure),
       require_confirmation_(false),
       stream_factory_(stream_factory),
       socket_(socket.Pass()),
diff --git a/net/quic/quic_client_session.h b/net/quic/quic_client_session.h
index b1a35d9..6c33eb5 100644
--- a/net/quic/quic_client_session.h
+++ b/net/quic/quic_client_session.h
@@ -96,6 +96,7 @@
                     TransportSecurityState* transport_security_state,
                     scoped_ptr<QuicServerInfo> server_info,
                     const QuicConfig& config,
+                    bool is_secure,
                     base::TaskRunner* task_runner,
                     NetLog* net_log);
   ~QuicClientSession() override;
diff --git a/net/quic/quic_client_session_base.cc b/net/quic/quic_client_session_base.cc
index 40d4b86..5b5902b 100644
--- a/net/quic/quic_client_session_base.cc
+++ b/net/quic/quic_client_session_base.cc
@@ -10,8 +10,9 @@
 
 QuicClientSessionBase::QuicClientSessionBase(
     QuicConnection* connection,
-    const QuicConfig& config)
-    : QuicSession(connection, config) {}
+    const QuicConfig& config,
+    bool is_secure)
+    : QuicSession(connection, config, is_secure) {}
 
 QuicClientSessionBase::~QuicClientSessionBase() {}
 
diff --git a/net/quic/quic_client_session_base.h b/net/quic/quic_client_session_base.h
index d72996c..a7f64fb 100644
--- a/net/quic/quic_client_session_base.h
+++ b/net/quic/quic_client_session_base.h
@@ -14,7 +14,8 @@
 class NET_EXPORT_PRIVATE QuicClientSessionBase : public QuicSession {
  public:
   QuicClientSessionBase(QuicConnection* connection,
-                        const QuicConfig& config);
+                        const QuicConfig& config,
+                        bool is_secure);
 
   ~QuicClientSessionBase() override;
 
diff --git a/net/quic/quic_client_session_test.cc b/net/quic/quic_client_session_test.cc
index cae2220..8860f2e 100644
--- a/net/quic/quic_client_session_test.cc
+++ b/net/quic/quic_client_session_test.cc
@@ -46,11 +46,13 @@
         session_(connection_, GetSocket().Pass(), nullptr,
                  &transport_security_state_,
                  make_scoped_ptr((QuicServerInfo*)nullptr), DefaultQuicConfig(),
+                 /*is_secure=*/false,
                  base::MessageLoop::current()->message_loop_proxy().get(),
                  &net_log_) {
-    session_.InitializeSession(QuicServerId(kServerHostname, kServerPort, false,
+    session_.InitializeSession(QuicServerId(kServerHostname, kServerPort,
+                                            /*is_secure=*/false,
                                             PRIVACY_MODE_DISABLED),
-                                &crypto_config_, nullptr);
+        &crypto_config_, nullptr);
   }
 
   void TearDown() override { session_.CloseSessionOnError(ERR_ABORTED); }
diff --git a/net/quic/quic_connection.cc b/net/quic/quic_connection.cc
index 21ea41a..6308d88 100644
--- a/net/quic/quic_connection.cc
+++ b/net/quic/quic_connection.cc
@@ -1139,13 +1139,11 @@
 const QuicConnectionStats& QuicConnection::GetStats() {
   // Update rtt and estimated bandwidth.
   stats_.min_rtt_us =
-      sent_packet_manager_.GetRttStats()->MinRtt().ToMicroseconds();
+      sent_packet_manager_.GetRttStats()->min_rtt().ToMicroseconds();
   stats_.srtt_us =
-      sent_packet_manager_.GetRttStats()->SmoothedRtt().ToMicroseconds();
+      sent_packet_manager_.GetRttStats()->smoothed_rtt().ToMicroseconds();
   stats_.estimated_bandwidth =
       sent_packet_manager_.BandwidthEstimate().ToBytesPerSecond();
-  stats_.congestion_window = sent_packet_manager_.GetCongestionWindow();
-  stats_.slow_start_threshold = sent_packet_manager_.GetSlowStartThreshold();
   stats_.max_packet_size = packet_generator_.max_packet_length();
   return stats_;
 }
@@ -1276,7 +1274,7 @@
 
   if (is_server_ && encryption_level_ == ENCRYPTION_NONE &&
       last_size_ > packet_generator_.max_packet_length()) {
-    packet_generator_.set_max_packet_length(last_size_);
+    set_max_packet_length(last_size_);
   }
   return true;
 }
@@ -1496,7 +1494,7 @@
   // perhaps via the NetworkChangeVisitor.
   packet_generator_.UpdateSequenceNumberLength(
       sent_packet_manager_.least_packet_awaited_by_peer(),
-      sent_packet_manager_.GetCongestionWindow());
+      sent_packet_manager_.EstimateMaxPacketsInFlight(max_packet_length()));
 
   bool reset_retransmission_alarm = sent_packet_manager_.OnPacketSent(
       &packet->serialized_packet,
@@ -1586,7 +1584,7 @@
 
 void QuicConnection::OnCongestionWindowChange() {
   packet_generator_.OnCongestionWindowChange(
-      sent_packet_manager_.GetCongestionWindow());
+      sent_packet_manager_.EstimateMaxPacketsInFlight(max_packet_length()));
   visitor_->OnCongestionWindowChange(clock_->ApproximateNow());
 }
 
@@ -1686,7 +1684,8 @@
         // 3 times the current congestion window (in slow start) should cover
         // about two full round trips worth of packets, which should be
         // sufficient.
-        3 * sent_packet_manager_.GetCongestionWindow() / max_packet_length();
+        3 * sent_packet_manager_.EstimateMaxPacketsInFlight(
+            max_packet_length());
   }
 }
 
@@ -1940,11 +1939,7 @@
 
   if (timeout < idle_network_timeout_) {
     idle_network_timeout_ = timeout;
-    if (FLAGS_quic_timeouts_only_from_alarms) {
-      SetTimeoutAlarm();
-    } else {
-      CheckForTimeout();
-    }
+    SetTimeoutAlarm();
   } else {
     idle_network_timeout_ = timeout;
   }
@@ -1953,11 +1948,7 @@
 void QuicConnection::SetOverallConnectionTimeout(QuicTime::Delta timeout) {
   if (timeout < overall_connection_timeout_) {
     overall_connection_timeout_ = timeout;
-    if (FLAGS_quic_timeouts_only_from_alarms) {
-      SetTimeoutAlarm();
-    } else {
-      CheckForTimeout();
-    }
+    SetTimeoutAlarm();
   } else {
     overall_connection_timeout_ = timeout;
   }
diff --git a/net/quic/quic_connection.h b/net/quic/quic_connection.h
index 7a9e55d..f9f8733 100644
--- a/net/quic/quic_connection.h
+++ b/net/quic/quic_connection.h
@@ -431,14 +431,11 @@
   void SetIdleNetworkTimeout(QuicTime::Delta timeout);
 
   // Sets (or resets) the total time delta the connection can be alive for.
-  // Also, checks and times out the connection if timer has expired for
-  // |timeout|. Used to limit the time a connection can be alive before crypto
-  // handshake finishes.
+  // Used to limit the time a connection can be alive before crypto handshake
+  // finishes.
   void SetOverallConnectionTimeout(QuicTime::Delta timeout);
 
   // Sets the overall and idle state connection timeouts.
-  // Times out the connection if the timeout has been reached and
-  // the quic_timeouts_only_from_alarms flag is false.
   void SetNetworkTimeouts(QuicTime::Delta overall_timeout,
                           QuicTime::Delta idle_timeout);
 
diff --git a/net/quic/quic_connection_stats.cc b/net/quic/quic_connection_stats.cc
index 7081d0d..6625c61 100644
--- a/net/quic/quic_connection_stats.cc
+++ b/net/quic/quic_connection_stats.cc
@@ -34,8 +34,6 @@
       srtt_us(0),
       max_packet_size(0),
       estimated_bandwidth(0),
-      congestion_window(0),
-      slow_start_threshold(0),
       packets_reordered(0),
       max_sequence_reordering(0),
       max_time_reordering_us(0),
@@ -73,8 +71,6 @@
      << ", srtt(us): " << s.srtt_us
      << ", max packet size: " << s.max_packet_size
      << ", estimated bandwidth: " << s.estimated_bandwidth
-     << ", congestion window: " << s.congestion_window
-     << ", slow start threshold: " << s.slow_start_threshold
      << ", tcp_loss_events: " << s.tcp_loss_events
      << ", packets reordered: " << s.packets_reordered
      << ", max sequence reordering: " << s.max_sequence_reordering
diff --git a/net/quic/quic_connection_stats.h b/net/quic/quic_connection_stats.h
index c681dea..2abdb59 100644
--- a/net/quic/quic_connection_stats.h
+++ b/net/quic/quic_connection_stats.h
@@ -55,8 +55,6 @@
   int64 srtt_us;  // Smoothed RTT in microseconds.
   uint32 max_packet_size;  // In bytes.
   uint64 estimated_bandwidth;  // In bytes per second.
-  uint32 congestion_window;  // In bytes
-  uint32 slow_start_threshold;  // In bytes
 
   // Reordering stats for received packets.
   // Number of packets received out of sequence number order.
diff --git a/net/quic/quic_connection_test.cc b/net/quic/quic_connection_test.cc
index b230fd5..66cb89c 100644
--- a/net/quic/quic_connection_test.cc
+++ b/net/quic/quic_connection_test.cc
@@ -3676,10 +3676,6 @@
   EXPECT_CALL(*send_algorithm_, BandwidthEstimate()).WillOnce(
       Return(QuicBandwidth::Zero()));
 
-  const uint32 kSlowStartThreshold = 23u;
-  EXPECT_CALL(*send_algorithm_, GetSlowStartThreshold()).WillOnce(
-      Return(kSlowStartThreshold));
-
   const QuicConnectionStats& stats = connection_.GetStats();
   EXPECT_EQ(3 * first_packet_size + 2 * second_packet_size - kQuicVersionSize,
             stats.bytes_sent);
@@ -3688,8 +3684,6 @@
             stats.bytes_retransmitted);
   EXPECT_EQ(3u, stats.packets_retransmitted);
   EXPECT_EQ(1u, stats.rto_count);
-  EXPECT_EQ(kMaxPacketSize, stats.congestion_window);
-  EXPECT_EQ(kSlowStartThreshold, stats.slow_start_threshold);
   EXPECT_EQ(kDefaultMaxPacketSize, stats.max_packet_size);
 }
 
@@ -3705,9 +3699,6 @@
 
   EXPECT_CALL(*send_algorithm_, BandwidthEstimate()).WillOnce(
       Return(QuicBandwidth::Zero()));
-  const uint32 kSlowStartThreshold = 23u;
-  EXPECT_CALL(*send_algorithm_, GetSlowStartThreshold()).WillOnce(
-      Return(kSlowStartThreshold));
 
   const QuicConnectionStats& stats = connection_.GetStats();
   EXPECT_EQ(received_bytes, stats.bytes_received);
@@ -3715,8 +3706,6 @@
 
   EXPECT_EQ(1u, stats.packets_revived);
   EXPECT_EQ(1u, stats.packets_dropped);
-
-  EXPECT_EQ(kSlowStartThreshold, stats.slow_start_threshold);
 }
 
 TEST_P(QuicConnectionTest, TestFecGroupLimits) {
diff --git a/net/quic/quic_dispatcher.cc b/net/quic/quic_dispatcher.cc
index cbdd540..aede7c2 100644
--- a/net/quic/quic_dispatcher.cc
+++ b/net/quic/quic_dispatcher.cc
@@ -352,7 +352,8 @@
   QuicServerSession* session = new QuicServerSession(
       config_,
       CreateQuicConnection(connection_id, server_address, client_address),
-      this);
+      this,
+      crypto_config_.HasProofSource());
   session->InitializeSession(crypto_config_);
   return session;
 }
diff --git a/net/quic/quic_flags.cc b/net/quic/quic_flags.cc
index 682e06e..8d6dd86 100644
--- a/net/quic/quic_flags.cc
+++ b/net/quic/quic_flags.cc
@@ -36,10 +36,6 @@
 // limit.
 bool FLAGS_quic_allow_more_open_streams = false;
 
-// If true, then QUIC connections will only timeout when an alarm fires, never
-// when setting a timeout.
-bool FLAGS_quic_timeouts_only_from_alarms = true;
-
 // If true, then QUIC connections will set both idle and overall timeouts in a
 // single method.
 bool FLAGS_quic_unified_timeouts = true;
diff --git a/net/quic/quic_flags.h b/net/quic/quic_flags.h
index 271b02e..d49f47a 100644
--- a/net/quic/quic_flags.h
+++ b/net/quic/quic_flags.h
@@ -15,7 +15,6 @@
 NET_EXPORT_PRIVATE extern bool FLAGS_enable_quic_fec;
 NET_EXPORT_PRIVATE extern bool FLAGS_quic_use_bbr_congestion_control;
 NET_EXPORT_PRIVATE extern bool FLAGS_quic_allow_more_open_streams;
-NET_EXPORT_PRIVATE extern bool FLAGS_quic_timeouts_only_from_alarms;
 NET_EXPORT_PRIVATE extern bool FLAGS_quic_unified_timeouts;
 NET_EXPORT_PRIVATE extern bool FLAGS_quic_drop_junk_packets;
 NET_EXPORT_PRIVATE extern bool FLAGS_quic_allow_bbr;
diff --git a/net/quic/quic_http_stream_test.cc b/net/quic/quic_http_stream_test.cc
index 53be4dd..db97aac 100644
--- a/net/quic/quic_http_stream_test.cc
+++ b/net/quic/quic_http_stream_test.cc
@@ -232,11 +232,13 @@
                               &transport_security_state_,
                               make_scoped_ptr((QuicServerInfo*)nullptr),
                               DefaultQuicConfig(),
+                              /*is_secure=*/false,
                               base::MessageLoop::current()->
                                   message_loop_proxy().get(),
                               nullptr));
     session_->InitializeSession(QuicServerId(kServerHostname, kServerPort,
-                                             false, PRIVACY_MODE_DISABLED),
+                                             /*is_secure=*/false,
+                                             PRIVACY_MODE_DISABLED),
                                 &crypto_config_,
                                 &crypto_client_stream_factory_);
     session_->GetCryptoStream()->CryptoConnect();
@@ -285,7 +287,7 @@
       QuicPacketSequenceNumber sequence_number) {
     return maker_.MakeRstPacket(
         sequence_number, true, stream_id_,
-        AdjustErrorForVersion(QUIC_RST_FLOW_CONTROL_ACCOUNTING, GetParam()));
+        AdjustErrorForVersion(QUIC_RST_ACKNOWLEDGEMENT, GetParam()));
   }
 
   scoped_ptr<QuicEncryptedPacket> ConstructAckAndRstStreamPacket(
diff --git a/net/quic/quic_network_transaction_unittest.cc b/net/quic/quic_network_transaction_unittest.cc
index ab698f3..62fe895 100644
--- a/net/quic/quic_network_transaction_unittest.cc
+++ b/net/quic/quic_network_transaction_unittest.cc
@@ -286,7 +286,7 @@
     const AlternateProtocolInfo alternate =
         session_->http_server_properties()->GetAlternateProtocol(
             HostPortPair::FromURL(request_.url));
-    EXPECT_EQ(ALTERNATE_PROTOCOL_BROKEN, alternate.protocol);
+    EXPECT_TRUE(alternate.is_broken);
   }
 
   void ExpectQuicAlternateProtocolMapping() {
diff --git a/net/quic/quic_packet_creator.cc b/net/quic/quic_packet_creator.cc
index c1700c0..866f05f 100644
--- a/net/quic/quic_packet_creator.cc
+++ b/net/quic/quic_packet_creator.cc
@@ -187,16 +187,14 @@
 
 void QuicPacketCreator::UpdateSequenceNumberLength(
       QuicPacketSequenceNumber least_packet_awaited_by_peer,
-      QuicByteCount congestion_window) {
+      QuicPacketCount max_packets_in_flight) {
   DCHECK_LE(least_packet_awaited_by_peer, sequence_number_ + 1);
   // Since the packet creator will not change sequence number length mid FEC
   // group, include the size of an FEC group to be safe.
   const QuicPacketSequenceNumber current_delta =
       max_packets_per_fec_group_ + sequence_number_ + 1
       - least_packet_awaited_by_peer;
-  const uint64 congestion_window_packets =
-      congestion_window / max_packet_length_;
-  const uint64 delta = max(current_delta, congestion_window_packets);
+  const uint64 delta = max(current_delta, max_packets_in_flight);
   next_sequence_number_length_ =
       QuicFramer::GetMinSequenceNumberLength(delta * 4);
 }
@@ -505,16 +503,31 @@
 }
 
 void QuicPacketCreator::MaybeAddPadding() {
-  if (queued_retransmittable_frames_.get() == nullptr) {
-    return;
-  }
-  if (!queued_retransmittable_frames_->HasCryptoHandshake()) {
-    return;
-  }
   if (BytesFree() == 0) {
     // Don't pad full packets.
     return;
   }
+
+  // Since ReserializeAllFrames does not populate queued_retransmittable_frames_
+  // it's not sufficient to simply call
+  // queued_retransmittable_frames_->HasCryptoHandshake().
+  // TODO(rch): we should really make ReserializeAllFrames not be a special
+  // case!
+
+  // If any of the frames in the current packet are on the crypto stream
+  // then they contain handshake messagses, and we should pad them.
+  bool is_handshake = false;
+  for (const QuicFrame& frame : queued_frames_) {
+    if (frame.type == STREAM_FRAME &&
+        frame.stream_frame->stream_id == kCryptoStreamId) {
+      is_handshake = true;
+      break;
+    }
+  }
+  if (!is_handshake) {
+    return;
+  }
+
   QuicPaddingFrame padding;
   bool success = AddFrame(QuicFrame(&padding), false);
   DCHECK(success);
diff --git a/net/quic/quic_packet_creator.h b/net/quic/quic_packet_creator.h
index 1ca8b09..287cde1 100644
--- a/net/quic/quic_packet_creator.h
+++ b/net/quic/quic_packet_creator.h
@@ -65,7 +65,7 @@
   // can be safely changed.
   void UpdateSequenceNumberLength(
       QuicPacketSequenceNumber least_packet_awaited_by_peer,
-      QuicByteCount congestion_window);
+      QuicPacketCount max_packets_in_flight);
 
   // The overhead the framing will add for a packet with one frame.
   static size_t StreamFramePacketOverhead(
diff --git a/net/quic/quic_packet_creator_test.cc b/net/quic/quic_packet_creator_test.cc
index 08acdc7..4e03e3a 100644
--- a/net/quic/quic_packet_creator_test.cc
+++ b/net/quic/quic_packet_creator_test.cc
@@ -466,6 +466,52 @@
   delete serialized.packet;
 }
 
+TEST_P(QuicPacketCreatorTest, ReserializeFramesWithPadding) {
+  scoped_ptr<QuicStreamFrame> stream_frame(
+      new QuicStreamFrame(kCryptoStreamId, /*fin=*/ false, /*offset=*/ 0,
+                          MakeIOVector("fake handshake message data")));
+  frames_.push_back(QuicFrame(stream_frame.get()));
+  SerializedPacket serialized =
+      creator_.ReserializeAllFrames(frames_,
+                                    creator_.next_sequence_number_length());
+
+  EXPECT_EQ(client_framer_.GetMaxPlaintextSize(kDefaultMaxPacketSize),
+            serialized.packet->length());
+  delete serialized.packet;
+}
+
+TEST_P(QuicPacketCreatorTest, ReserializeFramesWithFullPacketAndPadding) {
+  const size_t overhead = GetPacketHeaderOverhead(NOT_IN_FEC_GROUP)
+      + GetEncryptionOverhead() + GetStreamFrameOverhead(NOT_IN_FEC_GROUP);
+  size_t capacity = kDefaultMaxPacketSize - overhead;
+  for (int delta = -5; delta <= 0; ++delta) {
+    string data(capacity + delta, 'A');
+    size_t bytes_free = 0 - delta;
+
+    scoped_ptr<QuicStreamFrame> stream_frame(
+        new QuicStreamFrame(kCryptoStreamId, /*fin=*/ false, kOffset,
+                            MakeIOVector(data)));
+    frames_.push_back(QuicFrame(stream_frame.get()));
+    SerializedPacket serialized =
+        creator_.ReserializeAllFrames(frames_,
+                                      creator_.next_sequence_number_length());
+
+    // If there is not enough space in the packet to fit a padding frame
+    // (1 byte) and to expand the stream frame (another 2 bytes) the packet
+    // will not be padded.
+    if (bytes_free < 3) {
+      EXPECT_EQ(client_framer_.GetMaxPlaintextSize(kDefaultMaxPacketSize)
+                - bytes_free, serialized.packet->length());
+    } else {
+      EXPECT_EQ(client_framer_.GetMaxPlaintextSize(kDefaultMaxPacketSize),
+                serialized.packet->length());
+    }
+
+    delete serialized.packet;
+    frames_.clear();
+  }
+}
+
 TEST_P(QuicPacketCreatorTest, SerializeConnectionClose) {
   QuicConnectionCloseFrame frame;
   frame.error_code = QUIC_NO_ERROR;
@@ -760,23 +806,23 @@
   size_t max_packets_per_fec_group = 10;
   creator_.set_max_packets_per_fec_group(max_packets_per_fec_group);
   creator_.set_sequence_number(64 - max_packets_per_fec_group);
-  creator_.UpdateSequenceNumberLength(2, 10000);
+  creator_.UpdateSequenceNumberLength(2, 10000 / kDefaultMaxPacketSize);
   EXPECT_EQ(PACKET_1BYTE_SEQUENCE_NUMBER,
             creator_.next_sequence_number_length());
 
   creator_.set_sequence_number(64 * 256 - max_packets_per_fec_group);
-  creator_.UpdateSequenceNumberLength(2, 10000);
+  creator_.UpdateSequenceNumberLength(2, 10000 / kDefaultMaxPacketSize);
   EXPECT_EQ(PACKET_2BYTE_SEQUENCE_NUMBER,
             creator_.next_sequence_number_length());
 
   creator_.set_sequence_number(64 * 256 * 256 - max_packets_per_fec_group);
-  creator_.UpdateSequenceNumberLength(2, 10000);
+  creator_.UpdateSequenceNumberLength(2, 10000 / kDefaultMaxPacketSize);
   EXPECT_EQ(PACKET_4BYTE_SEQUENCE_NUMBER,
             creator_.next_sequence_number_length());
 
   creator_.set_sequence_number(
       GG_UINT64_C(64) * 256 * 256 * 256 * 256 - max_packets_per_fec_group);
-  creator_.UpdateSequenceNumberLength(2, 10000);
+  creator_.UpdateSequenceNumberLength(2, 10000 / kDefaultMaxPacketSize);
   EXPECT_EQ(PACKET_6BYTE_SEQUENCE_NUMBER,
             creator_.next_sequence_number_length());
 }
@@ -785,20 +831,21 @@
   EXPECT_EQ(PACKET_1BYTE_SEQUENCE_NUMBER,
             creator_.next_sequence_number_length());
 
-  creator_.UpdateSequenceNumberLength(1, 10000);
+  creator_.UpdateSequenceNumberLength(1, 10000 / kDefaultMaxPacketSize);
   EXPECT_EQ(PACKET_1BYTE_SEQUENCE_NUMBER,
             creator_.next_sequence_number_length());
 
-  creator_.UpdateSequenceNumberLength(1, 10000 * 256);
+  creator_.UpdateSequenceNumberLength(1, 10000 * 256 / kDefaultMaxPacketSize);
   EXPECT_EQ(PACKET_2BYTE_SEQUENCE_NUMBER,
             creator_.next_sequence_number_length());
 
-  creator_.UpdateSequenceNumberLength(1, 10000 * 256 * 256);
+  creator_.UpdateSequenceNumberLength(
+      1, 10000 * 256 * 256 / kDefaultMaxPacketSize);
   EXPECT_EQ(PACKET_4BYTE_SEQUENCE_NUMBER,
             creator_.next_sequence_number_length());
 
   creator_.UpdateSequenceNumberLength(
-      1, GG_UINT64_C(1000) * 256 * 256 * 256 * 256);
+      1, GG_UINT64_C(1000) * 256 * 256 * 256 * 256 / kDefaultMaxPacketSize);
   EXPECT_EQ(PACKET_6BYTE_SEQUENCE_NUMBER,
             creator_.next_sequence_number_length());
 }
diff --git a/net/quic/quic_packet_generator.cc b/net/quic/quic_packet_generator.cc
index deb6a9e..2481ddc 100644
--- a/net/quic/quic_packet_generator.cc
+++ b/net/quic/quic_packet_generator.cc
@@ -19,10 +19,10 @@
 // avoid losing them both within the same loss episode. On the other hand,
 // we expect to be able to recover from any loss in about an RTT.
 // We resolve this tradeoff by sending an FEC packet atmost half an RTT,
-// or equivalently, half a cwnd, after the first protected packet. Since we
-// don't want to delay an FEC packet past half an RTT, we set the max FEC
-// group size to be half the current congestion window.
-const float kCongestionWindowMultiplierForFecGroupSize = 0.5;
+// or equivalently, half the max number of in-flight packets,  the first
+// protected packet. Since we don't want to delay an FEC packet past half an
+// RTT, we set the max FEC group size to be half the current congestion window.
+const float kMaxPacketsInFlightMultiplierForFecGroupSize = 0.5;
 
 }  // namespace
 
@@ -85,10 +85,10 @@
 }
 
 void QuicPacketGenerator::OnCongestionWindowChange(
-    QuicByteCount congestion_window) {
+    QuicPacketCount max_packets_in_flight) {
   packet_creator_.set_max_packets_per_fec_group(
-      static_cast<size_t>(kCongestionWindowMultiplierForFecGroupSize *
-                          congestion_window / kDefaultTCPMSS));
+      static_cast<size_t>(kMaxPacketsInFlightMultiplierForFecGroupSize *
+                          max_packets_in_flight));
 }
 
 void QuicPacketGenerator::SetShouldSendAck(bool also_send_feedback,
@@ -378,9 +378,9 @@
 
 void QuicPacketGenerator::UpdateSequenceNumberLength(
       QuicPacketSequenceNumber least_packet_awaited_by_peer,
-      QuicByteCount congestion_window) {
+      QuicPacketCount max_packets_in_flight) {
   return packet_creator_.UpdateSequenceNumberLength(
-      least_packet_awaited_by_peer, congestion_window);
+      least_packet_awaited_by_peer, max_packets_in_flight);
 }
 
 void QuicPacketGenerator::SetConnectionIdLength(uint32 length) {
diff --git a/net/quic/quic_packet_generator.h b/net/quic/quic_packet_generator.h
index 56c3694..3fec02a 100644
--- a/net/quic/quic_packet_generator.h
+++ b/net/quic/quic_packet_generator.h
@@ -100,7 +100,7 @@
   virtual ~QuicPacketGenerator();
 
   // Called by the connection in the event of the congestion window changing.
-  void OnCongestionWindowChange(QuicByteCount congestion_window);
+  void OnCongestionWindowChange(QuicPacketCount max_packets_in_flight);
 
   // Indicates that an ACK frame should be sent.  If |also_send_feedback| is
   // true, then it also indicates a CONGESTION_FEEDBACK frame should be sent.
@@ -165,7 +165,7 @@
   // can be safely changed.
   void UpdateSequenceNumberLength(
       QuicPacketSequenceNumber least_packet_awaited_by_peer,
-      QuicByteCount congestion_window);
+      QuicPacketCount max_packets_in_flight);
 
   // Set the minimum number of bytes for the connection id length;
   void SetConnectionIdLength(uint32 length);
diff --git a/net/quic/quic_packet_generator_test.cc b/net/quic/quic_packet_generator_test.cc
index 8ffa34b..3f2472c 100644
--- a/net/quic/quic_packet_generator_test.cc
+++ b/net/quic/quic_packet_generator_test.cc
@@ -560,15 +560,15 @@
   EXPECT_FALSE(creator_->IsFecGroupOpen());
 
   // On reduced cwnd.
-  generator_.OnCongestionWindowChange(7 * kDefaultTCPMSS);
+  generator_.OnCongestionWindowChange(7);
   EXPECT_EQ(3u, creator_->max_packets_per_fec_group());
 
   // On increased cwnd.
-  generator_.OnCongestionWindowChange(100 * kDefaultTCPMSS);
+  generator_.OnCongestionWindowChange(100);
   EXPECT_EQ(50u, creator_->max_packets_per_fec_group());
 
   // On collapsed cwnd.
-  generator_.OnCongestionWindowChange(1 * kDefaultTCPMSS);
+  generator_.OnCongestionWindowChange(1);
   EXPECT_EQ(2u, creator_->max_packets_per_fec_group());
 }
 
@@ -599,7 +599,7 @@
   EXPECT_TRUE(creator_->IsFecGroupOpen());
 
   // Change FEC groupsize.
-  generator_.OnCongestionWindowChange(2 * kDefaultTCPMSS);
+  generator_.OnCongestionWindowChange(2);
   EXPECT_EQ(2u, creator_->max_packets_per_fec_group());
 
   // Send enough data to trigger one unprotected data packet,
diff --git a/net/quic/quic_protocol.h b/net/quic/quic_protocol.h
index 64d0c23..afd5ed4 100644
--- a/net/quic/quic_protocol.h
+++ b/net/quic/quic_protocol.h
@@ -60,8 +60,8 @@
 const QuicByteCount kDefaultTCPMSS = 1460;
 
 // Maximum size of the initial congestion window in packets.
-const size_t kDefaultInitialWindow = 10;
-const uint32 kMaxInitialWindow = 100;
+const QuicPacketCount kDefaultInitialWindow = 10;
+const QuicPacketCount kMaxInitialWindow = 100;
 
 // Default size of initial flow control window, for both stream and session.
 const uint32 kDefaultFlowControlSendWindow = 16 * 1024;  // 16 KB
@@ -396,8 +396,9 @@
   QUIC_STREAM_PEER_GOING_AWAY,
   // The stream has been cancelled.
   QUIC_STREAM_CANCELLED,
-  // Sending a RST to allow for proper flow control accounting.
-  QUIC_RST_FLOW_CONTROL_ACCOUNTING,
+  // Closing stream locally, sending a RST to allow for proper flow control
+  // accounting. Sent in response to a RST from the peer.
+  QUIC_RST_ACKNOWLEDGEMENT,
 
   // No error. Used as bound while iterating.
   QUIC_STREAM_LAST_ERROR,
diff --git a/net/quic/quic_protocol_test.cc b/net/quic/quic_protocol_test.cc
index 43a009a..9460906 100644
--- a/net/quic/quic_protocol_test.cc
+++ b/net/quic/quic_protocol_test.cc
@@ -18,9 +18,9 @@
 
   // If we ever add different RST codes, we should have a test akin to the
   // following.
-  //  EXPECT_EQ(QUIC_RST_FLOW_CONTROL_ACCOUNTING, AdjustErrorForVersion(
-  //      QUIC_RST_FLOW_CONTROL_ACCOUNTING,
-  //      QUIC_VERSION_18));
+  //  EXPECT_EQ(QUIC_RST_ACKNOWLEDGEMENT, AdjustErrorForVersion(
+  //      QUIC_RST_ACKNOWLEDGEMENT,
+  //      QUIC_VERSION_23));
 }
 
 TEST(QuicProtocolTest, MakeQuicTag) {
diff --git a/net/quic/quic_sent_packet_manager.cc b/net/quic/quic_sent_packet_manager.cc
index 6370d9f..bdf8690 100644
--- a/net/quic/quic_sent_packet_manager.cc
+++ b/net/quic/quic_sent_packet_manager.cc
@@ -192,7 +192,7 @@
       send_algorithm_->BandwidthEstimate(),
       ack_receive_time,
       clock_->WallNow(),
-      rtt_stats_.SmoothedRtt());
+      rtt_stats_.smoothed_rtt());
 
   // If we have received a truncated ack, then we need to clear out some
   // previous transmissions to allow the peer to actually ACK new packets.
@@ -819,15 +819,21 @@
     const {
   // This is equivalent to the TailLossProbeDelay, but slightly more aggressive
   // because crypto handshake messages don't incur a delayed ack time.
-  int64 delay_ms =
-      max(kMinHandshakeTimeoutMs,
-          static_cast<int64>(1.5 * rtt_stats_.SmoothedRtt().ToMilliseconds()));
+  QuicTime::Delta srtt = rtt_stats_.smoothed_rtt();
+  if (srtt.IsZero()) {
+    srtt = QuicTime::Delta::FromMicroseconds(rtt_stats_.initial_rtt_us());
+  }
+  int64 delay_ms = max(kMinHandshakeTimeoutMs,
+                       static_cast<int64>(1.5 * srtt.ToMilliseconds()));
   return QuicTime::Delta::FromMilliseconds(
       delay_ms << consecutive_crypto_retransmission_count_);
 }
 
 const QuicTime::Delta QuicSentPacketManager::GetTailLossProbeDelay() const {
-  QuicTime::Delta srtt = rtt_stats_.SmoothedRtt();
+  QuicTime::Delta srtt = rtt_stats_.smoothed_rtt();
+  if (srtt.IsZero()) {
+    srtt = QuicTime::Delta::FromMicroseconds(rtt_stats_.initial_rtt_us());
+  }
   if (!unacked_packets_.HasMultipleInFlightPackets()) {
     return QuicTime::Delta::Max(
         srtt.Multiply(2), srtt.Multiply(1.5).Add(
@@ -865,6 +871,8 @@
 }
 
 QuicBandwidth QuicSentPacketManager::BandwidthEstimate() const {
+  // TODO(ianswett): Remove BandwidthEstimate from SendAlgorithmInterface
+  // and implement the logic here.
   return send_algorithm_->BandwidthEstimate();
 }
 
@@ -877,12 +885,17 @@
   return sustained_bandwidth_recorder_;
 }
 
-QuicByteCount QuicSentPacketManager::GetCongestionWindow() const {
-  return send_algorithm_->GetCongestionWindow();
+QuicPacketCount QuicSentPacketManager::EstimateMaxPacketsInFlight(
+    QuicByteCount max_packet_length) const {
+  return send_algorithm_->GetCongestionWindow() / max_packet_length;
 }
 
-QuicByteCount QuicSentPacketManager::GetSlowStartThreshold() const {
-  return send_algorithm_->GetSlowStartThreshold();
+QuicPacketCount QuicSentPacketManager::GetCongestionWindowInTcpMss() const {
+  return send_algorithm_->GetCongestionWindow() / kDefaultTCPMSS;
+}
+
+QuicPacketCount QuicSentPacketManager::GetSlowStartThresholdInTcpMss() const {
+  return send_algorithm_->GetSlowStartThreshold() / kDefaultTCPMSS;
 }
 
 void QuicSentPacketManager::EnablePacing() {
diff --git a/net/quic/quic_sent_packet_manager.h b/net/quic/quic_sent_packet_manager.h
index cccacab..f82e34b 100644
--- a/net/quic/quic_sent_packet_manager.h
+++ b/net/quic/quic_sent_packet_manager.h
@@ -182,15 +182,22 @@
 
   const QuicSustainedBandwidthRecorder& SustainedBandwidthRecorder() const;
 
-  // Returns the size of the current congestion window in bytes.  Note, this is
-  // not the *available* window.  Some send algorithms may not use a congestion
-  // window and will return 0.
-  QuicByteCount GetCongestionWindow() const;
+  // Returns the size of the current congestion window in number of
+  // kDefaultTCPMSS-sized segments. Note, this is not the *available* window.
+  // Some send algorithms may not use a congestion window and will return 0.
+  QuicPacketCount GetCongestionWindowInTcpMss() const;
 
-  // Returns the size of the slow start congestion window in bytes,
-  // aka ssthresh.  Some send algorithms do not define a slow start
-  // threshold and will return 0.
-  QuicByteCount GetSlowStartThreshold() const;
+  // Returns the number of packets of length |max_packet_length| which fit in
+  // the current congestion window. More packets may end up in flight if the
+  // congestion window has been recently reduced, of if non-full packets are
+  // sent.
+  QuicPacketCount EstimateMaxPacketsInFlight(
+      QuicByteCount max_packet_length) const;
+
+  // Returns the size of the slow start congestion window in nume of 1460 byte
+  // TCP segments, aka ssthresh.  Some send algorithms do not define a slow
+  // start threshold and will return 0.
+  QuicPacketCount GetSlowStartThresholdInTcpMss() const;
 
   // Enables pacing if it has not already been enabled.
   void EnablePacing();
diff --git a/net/quic/quic_sent_packet_manager_test.cc b/net/quic/quic_sent_packet_manager_test.cc
index bf8c99c..d7a846a 100644
--- a/net/quic/quic_sent_packet_manager_test.cc
+++ b/net/quic/quic_sent_packet_manager_test.cc
@@ -1025,7 +1025,7 @@
   QuicSentPacketManagerPeer::GetRttStats(&manager_)->UpdateRtt(
       min_rtt, QuicTime::Delta::Zero(), QuicTime::Zero());
   EXPECT_EQ(min_rtt,
-            QuicSentPacketManagerPeer::GetRttStats(&manager_)->MinRtt());
+            QuicSentPacketManagerPeer::GetRttStats(&manager_)->min_rtt());
   EXPECT_EQ(min_rtt,
             QuicSentPacketManagerPeer::GetRttStats(
                 &manager_)->recent_min_rtt());
@@ -1052,7 +1052,7 @@
   manager_.OnIncomingAck(ack_frame, clock_.Now());
 
   EXPECT_EQ(min_rtt,
-            QuicSentPacketManagerPeer::GetRttStats(&manager_)->MinRtt());
+            QuicSentPacketManagerPeer::GetRttStats(&manager_)->min_rtt());
   EXPECT_EQ(QuicTime::Delta::FromMilliseconds(100),
             QuicSentPacketManagerPeer::GetRttStats(
                 &manager_)->recent_min_rtt());
@@ -1079,16 +1079,16 @@
   SendCryptoPacket(1);
 
   // Check the min.
-  QuicSentPacketManagerPeer::GetRttStats(&manager_)->set_initial_rtt_us(
-      1 * base::Time::kMicrosecondsPerMillisecond);
+  RttStats* rtt_stats = QuicSentPacketManagerPeer::GetRttStats(&manager_);
+  rtt_stats->set_initial_rtt_us(1 * base::Time::kMicrosecondsPerMillisecond);
   EXPECT_EQ(clock_.Now().Add(QuicTime::Delta::FromMilliseconds(10)),
             manager_.GetRetransmissionTime());
 
   // Test with a standard smoothed RTT.
-  QuicSentPacketManagerPeer::GetRttStats(&manager_)->set_initial_rtt_us(
-      100 * base::Time::kMicrosecondsPerMillisecond);
+  rtt_stats->set_initial_rtt_us(100 * base::Time::kMicrosecondsPerMillisecond);
 
-  QuicTime::Delta srtt = manager_.GetRttStats()->SmoothedRtt();
+  QuicTime::Delta srtt =
+      QuicTime::Delta::FromMicroseconds(rtt_stats->initial_rtt_us());
   QuicTime expected_time = clock_.Now().Add(srtt.Multiply(1.5));
   EXPECT_EQ(expected_time, manager_.GetRetransmissionTime());
 
@@ -1108,15 +1108,15 @@
   SendDataPacket(2);
 
   // Check the min.
-  QuicSentPacketManagerPeer::GetRttStats(&manager_)->set_initial_rtt_us(
-      1 * base::Time::kMicrosecondsPerMillisecond);
+  RttStats* rtt_stats = QuicSentPacketManagerPeer::GetRttStats(&manager_);
+  rtt_stats->set_initial_rtt_us(1 * base::Time::kMicrosecondsPerMillisecond);
   EXPECT_EQ(clock_.Now().Add(QuicTime::Delta::FromMilliseconds(10)),
             manager_.GetRetransmissionTime());
 
   // Test with a standard smoothed RTT.
-  QuicSentPacketManagerPeer::GetRttStats(&manager_)->set_initial_rtt_us(
-      100 * base::Time::kMicrosecondsPerMillisecond);
-  QuicTime::Delta srtt = manager_.GetRttStats()->SmoothedRtt();
+  rtt_stats->set_initial_rtt_us(100 * base::Time::kMicrosecondsPerMillisecond);
+  QuicTime::Delta srtt =
+      QuicTime::Delta::FromMicroseconds(rtt_stats->initial_rtt_us());
   QuicTime::Delta expected_tlp_delay = srtt.Multiply(2);
   QuicTime expected_time = clock_.Now().Add(expected_tlp_delay);
   EXPECT_EQ(expected_time, manager_.GetRetransmissionTime());
@@ -1420,7 +1420,7 @@
 TEST_F(QuicSentPacketManagerTest, UseInitialRoundTripTimeToSend) {
   uint32 initial_rtt_us = 325000;
   EXPECT_NE(initial_rtt_us,
-            manager_.GetRttStats()->SmoothedRtt().ToMicroseconds());
+            manager_.GetRttStats()->smoothed_rtt().ToMicroseconds());
 
   QuicConfig config;
   config.SetInitialRoundTripTimeUsToSend(initial_rtt_us);
@@ -1428,8 +1428,8 @@
   EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
   manager_.SetFromConfig(config);
 
-  EXPECT_EQ(initial_rtt_us,
-            manager_.GetRttStats()->SmoothedRtt().ToMicroseconds());
+  EXPECT_EQ(0, manager_.GetRttStats()->smoothed_rtt().ToMicroseconds());
+  EXPECT_EQ(initial_rtt_us, manager_.GetRttStats()->initial_rtt_us());
 }
 
 }  // namespace
diff --git a/net/quic/quic_server.cc b/net/quic/quic_server.cc
index b8013c4..fecb4e5 100644
--- a/net/quic/quic_server.cc
+++ b/net/quic/quic_server.cc
@@ -29,8 +29,6 @@
 // the limit.
 const int kReadBufferSize = 2 * kMaxPacketSize;
 
-const uint32 kServerInitialFlowControlWindow = 100 * kMaxPacketSize;
-
 } // namespace
 
 QuicServer::QuicServer(const QuicConfig& config,
@@ -53,11 +51,9 @@
   QuicInMemoryCache::GetInstance();
 
   scoped_ptr<CryptoHandshakeMessage> scfg(
-      crypto_config_.AddDefaultConfig(helper_.GetRandomGenerator(),
-                                      helper_.GetClock(),
-                                      QuicCryptoServerConfig::ConfigOptions()));
-
-  config_.SetInitialCongestionWindowToSend(kServerInitialFlowControlWindow);
+      crypto_config_.AddDefaultConfig(
+          helper_.GetRandomGenerator(), helper_.GetClock(),
+          QuicCryptoServerConfig::ConfigOptions()));
 }
 
 QuicServer::~QuicServer() {
diff --git a/net/quic/quic_server_session.cc b/net/quic/quic_server_session.cc
index efb0bcf..7fab509 100644
--- a/net/quic/quic_server_session.cc
+++ b/net/quic/quic_server_session.cc
@@ -15,8 +15,9 @@
 
 QuicServerSession::QuicServerSession(const QuicConfig& config,
                                      QuicConnection* connection,
-                                     QuicServerSessionVisitor* visitor)
-    : QuicSession(connection, config),
+                                     QuicServerSessionVisitor* visitor,
+                                     bool is_secure)
+    : QuicSession(connection, config, is_secure),
       visitor_(visitor),
       bandwidth_estimate_sent_to_client_(QuicBandwidth::Zero()),
       last_scup_time_(QuicTime::Zero()),
@@ -73,7 +74,7 @@
   const QuicSentPacketManager& sent_packet_manager =
       connection()->sent_packet_manager();
   int64 srtt_ms =
-      sent_packet_manager.GetRttStats()->SmoothedRtt().ToMilliseconds();
+      sent_packet_manager.GetRttStats()->smoothed_rtt().ToMilliseconds();
   int64 now_ms = now.Subtract(last_scup_time_).ToMilliseconds();
   int64 packets_since_last_scup =
       connection()->sequence_number_of_last_sent_packet() -
@@ -127,7 +128,7 @@
   cached_network_params.set_max_bandwidth_timestamp_seconds(
       max_bandwidth_timestamp);
   cached_network_params.set_min_rtt_ms(
-      sent_packet_manager.GetRttStats()->MinRtt().ToMilliseconds());
+      sent_packet_manager.GetRttStats()->min_rtt().ToMilliseconds());
   cached_network_params.set_previous_connection_state(
       bandwidth_recorder.EstimateRecordedDuringSlowStart()
           ? CachedNetworkParameters::SLOW_START
diff --git a/net/quic/quic_server_session.h b/net/quic/quic_server_session.h
index 43107a0..a402005 100644
--- a/net/quic/quic_server_session.h
+++ b/net/quic/quic_server_session.h
@@ -46,7 +46,8 @@
  public:
   QuicServerSession(const QuicConfig& config,
                     QuicConnection* connection,
-                    QuicServerSessionVisitor* visitor);
+                    QuicServerSessionVisitor* visitor,
+                    bool is_secure);
 
   // Override the base class to notify the owner of the connection close.
   void OnConnectionClosed(QuicErrorCode error, bool from_peer) override;
diff --git a/net/quic/quic_session.cc b/net/quic/quic_session.cc
index 4e1fc7b..34a668d 100644
--- a/net/quic/quic_session.cc
+++ b/net/quic/quic_session.cc
@@ -95,7 +95,8 @@
   QuicSession* session_;
 };
 
-QuicSession::QuicSession(QuicConnection* connection, const QuicConfig& config)
+QuicSession::QuicSession(QuicConnection* connection, const QuicConfig& config,
+                         bool is_secure)
     : connection_(connection),
       visitor_shim_(new VisitorShim(this)),
       config_(config),
@@ -105,7 +106,8 @@
       error_(QUIC_NO_ERROR),
       goaway_received_(false),
       goaway_sent_(false),
-      has_pending_handshake_(false) {
+      has_pending_handshake_(false),
+      is_secure_(is_secure) {
   if (connection_->version() == QUIC_VERSION_19) {
     flow_controller_.reset(new QuicFlowController(
         connection_.get(), 0, is_server(), kDefaultFlowControlSendWindow,
diff --git a/net/quic/quic_session.h b/net/quic/quic_session.h
index 1bca3aa..6ca9ce0 100644
--- a/net/quic/quic_session.h
+++ b/net/quic/quic_session.h
@@ -52,7 +52,9 @@
     HANDSHAKE_CONFIRMED,
   };
 
-  QuicSession(QuicConnection* connection, const QuicConfig& config);
+  QuicSession(QuicConnection* connection,
+              const QuicConfig& config,
+              bool is_secure);
   void InitializeSession();
 
   ~QuicSession() override;
@@ -209,6 +211,11 @@
   // Returns true if any stream is flow controller blocked.
   bool IsStreamFlowControlBlocked();
 
+  // Returns true if this is a secure QUIC session.
+  bool is_secure() const {
+    return is_secure_;
+  }
+
   size_t get_max_open_streams() const { return max_open_streams_; }
 
  protected:
@@ -326,6 +333,9 @@
   // Used for session level flow control.
   scoped_ptr<QuicFlowController> flow_controller_;
 
+  // True if this is a secure (HTTPS) QUIC session.
+  bool is_secure_;
+
   DISALLOW_COPY_AND_ASSIGN(QuicSession);
 };
 
diff --git a/net/quic/quic_session_test.cc b/net/quic/quic_session_test.cc
index c248460..edbfbee 100644
--- a/net/quic/quic_session_test.cc
+++ b/net/quic/quic_session_test.cc
@@ -126,7 +126,8 @@
  public:
   explicit TestSession(QuicConnection* connection)
       : QuicSession(connection,
-                    DefaultQuicConfig()),
+                    DefaultQuicConfig(),
+                    false),
         crypto_stream_(this),
         writev_consumes_all_data_(false) {
     InitializeSession();
@@ -399,7 +400,7 @@
   EXPECT_CALL(*send_algorithm, TimeUntilSend(_, _, _)).WillRepeatedly(
       Return(QuicTime::Delta::Zero()));
   EXPECT_CALL(*send_algorithm, GetCongestionWindow())
-      .WillOnce(Return(kMaxPacketSize * 10));
+      .WillRepeatedly(Return(kMaxPacketSize * 10));
   EXPECT_CALL(*stream2, OnCanWrite())
       .WillOnce(IgnoreResult(Invoke(CreateFunctor(
           &session_, &TestSession::SendStreamData, stream2->id()))));
diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc
index 678463e..cf70608 100644
--- a/net/quic/quic_stream_factory.cc
+++ b/net/quic/quic_stream_factory.cc
@@ -946,7 +946,7 @@
 
   *session = new QuicClientSession(
       connection, socket.Pass(), this, transport_security_state_,
-      server_info.Pass(), config,
+      server_info.Pass(), config, server_id.is_https(),
       base::MessageLoop::current()->message_loop_proxy().get(),
       net_log.net_log());
   all_sessions_[*session] = server_id;  // owning pointer
diff --git a/net/quic/quic_stream_factory_test.cc b/net/quic/quic_stream_factory_test.cc
index 4818620..1165b9c 100644
--- a/net/quic/quic_stream_factory_test.cc
+++ b/net/quic/quic_stream_factory_test.cc
@@ -240,7 +240,7 @@
     QuicStreamId stream_id = kClientDataStreamId1;
     return maker_.MakeRstPacket(
         1, true, stream_id,
-        AdjustErrorForVersion(QUIC_RST_FLOW_CONTROL_ACCOUNTING, GetParam()));
+        AdjustErrorForVersion(QUIC_RST_ACKNOWLEDGEMENT, GetParam()));
   }
 
   MockQuicServerInfoFactory quic_server_info_factory_;
diff --git a/net/quic/quic_time_wait_list_manager.cc b/net/quic/quic_time_wait_list_manager.cc
index 42dae00..d59cbc4 100644
--- a/net/quic/quic_time_wait_list_manager.cc
+++ b/net/quic/quic_time_wait_list_manager.cc
@@ -27,8 +27,9 @@
 
 namespace {
 
-// Time period for which the connection_id should live in time wait state..
-const int kTimeWaitSeconds = 5;
+// Time period for which a given connection_id should live in the time-wait
+// state.
+int64 FLAGS_quic_time_wait_list_seconds = 5;
 
 }  // namespace
 
@@ -86,7 +87,8 @@
     QuicConnectionHelperInterface* helper,
     const QuicVersionVector& supported_versions)
     : helper_(helper),
-      kTimeWaitPeriod_(QuicTime::Delta::FromSeconds(kTimeWaitSeconds)),
+      kTimeWaitPeriod_(
+          QuicTime::Delta::FromSeconds(FLAGS_quic_time_wait_list_seconds)),
       connection_id_clean_up_alarm_(
           helper_->CreateAlarm(new ConnectionIdCleanUpAlarm(this))),
       writer_(writer),
@@ -274,6 +276,7 @@
       break;
     }
     // This connection_id has lived its age, retire it now.
+    DVLOG(1) << "Retiring " << it->first << " from the time-wait state.";
     delete it->second.close_packet;
     connection_id_map_.erase(it);
   }
diff --git a/net/quic/quic_utils.cc b/net/quic/quic_utils.cc
index 908e26f..d786a95 100644
--- a/net/quic/quic_utils.cc
+++ b/net/quic/quic_utils.cc
@@ -138,7 +138,7 @@
     RETURN_STRING_LITERAL(QUIC_BAD_APPLICATION_PAYLOAD);
     RETURN_STRING_LITERAL(QUIC_STREAM_PEER_GOING_AWAY);
     RETURN_STRING_LITERAL(QUIC_STREAM_CANCELLED);
-    RETURN_STRING_LITERAL(QUIC_RST_FLOW_CONTROL_ACCOUNTING);
+    RETURN_STRING_LITERAL(QUIC_RST_ACKNOWLEDGEMENT);
     RETURN_STRING_LITERAL(QUIC_STREAM_LAST_ERROR);
   }
   // Return a default value so that we return this when |error| doesn't match
diff --git a/net/quic/reliable_quic_stream.cc b/net/quic/reliable_quic_stream.cc
index 7db9a57..70b6d9a 100644
--- a/net/quic/reliable_quic_stream.cc
+++ b/net/quic/reliable_quic_stream.cc
@@ -457,7 +457,7 @@
     // written on this stream before termination. Done here if needed, using a
     // RST frame.
     DVLOG(1) << ENDPOINT << "Sending RST in OnClose: " << id();
-    session_->SendRstStream(id(), QUIC_RST_FLOW_CONTROL_ACCOUNTING,
+    session_->SendRstStream(id(), QUIC_RST_ACKNOWLEDGEMENT,
                             stream_bytes_written_);
     rst_sent_ = true;
   }
diff --git a/net/quic/test_tools/quic_test_utils.cc b/net/quic/test_tools/quic_test_utils.cc
index fad194b..ae3abfe 100644
--- a/net/quic/test_tools/quic_test_utils.cc
+++ b/net/quic/test_tools/quic_test_utils.cc
@@ -316,7 +316,7 @@
 }
 
 MockSession::MockSession(QuicConnection* connection)
-    : QuicSession(connection, DefaultQuicConfig()) {
+    : QuicSession(connection, DefaultQuicConfig(), /*is_secure=*/false) {
   InitializeSession();
   ON_CALL(*this, WritevData(_, _, _, _, _, _))
       .WillByDefault(testing::Return(QuicConsumedData(0, false)));
@@ -326,7 +326,8 @@
 }
 
 TestSession::TestSession(QuicConnection* connection, const QuicConfig& config)
-    : QuicSession(connection, config), crypto_stream_(nullptr) {
+    : QuicSession(connection, config, /*is_secure=*/false),
+      crypto_stream_(nullptr) {
   InitializeSession();
 }
 
@@ -342,7 +343,7 @@
 
 TestClientSession::TestClientSession(QuicConnection* connection,
                                      const QuicConfig& config)
-    : QuicClientSessionBase(connection, config),
+    : QuicClientSessionBase(connection, config, /*is_secure=*/false),
       crypto_stream_(nullptr) {
   EXPECT_CALL(*this, OnProofValid(_)).Times(AnyNumber());
   InitializeSession();
diff --git a/net/socket/next_proto.cc b/net/socket/next_proto.cc
index c917236..4ae4511 100644
--- a/net/socket/next_proto.cc
+++ b/net/socket/next_proto.cc
@@ -15,7 +15,6 @@
 NextProtoVector NextProtosDefaults() {
   NextProtoVector next_protos;
   next_protos.push_back(kProtoHTTP11);
-  next_protos.push_back(kProtoSPDY3);
   next_protos.push_back(kProtoSPDY31);
   return next_protos;
 }
@@ -27,7 +26,6 @@
   if (quic_enabled)
     next_protos.push_back(kProtoQUIC1SPDY3);
   if (spdy_enabled) {
-    next_protos.push_back(kProtoSPDY3);
     next_protos.push_back(kProtoSPDY31);
   }
   return next_protos;
@@ -37,7 +35,6 @@
   NextProtoVector next_protos;
   next_protos.push_back(kProtoHTTP11);
   next_protos.push_back(kProtoQUIC1SPDY3);
-  next_protos.push_back(kProtoSPDY3);
   return next_protos;
 }
 
@@ -45,7 +42,6 @@
   NextProtoVector next_protos;
   next_protos.push_back(kProtoHTTP11);
   next_protos.push_back(kProtoQUIC1SPDY3);
-  next_protos.push_back(kProtoSPDY3);
   next_protos.push_back(kProtoSPDY31);
   return next_protos;
 }
@@ -55,7 +51,6 @@
   next_protos.push_back(kProtoHTTP11);
   next_protos.push_back(kProtoQUIC1SPDY3);
   next_protos.push_back(kProtoDeprecatedSPDY2);
-  next_protos.push_back(kProtoSPDY3);
   next_protos.push_back(kProtoSPDY31);
   return next_protos;
 }
@@ -64,7 +59,6 @@
   NextProtoVector next_protos;
   next_protos.push_back(kProtoHTTP11);
   next_protos.push_back(kProtoQUIC1SPDY3);
-  next_protos.push_back(kProtoSPDY3);
   next_protos.push_back(kProtoSPDY31);
   next_protos.push_back(kProtoSPDY4);
   return next_protos;
diff --git a/net/socket/next_proto.h b/net/socket/next_proto.h
index e715aca..465001d 100644
--- a/net/socket/next_proto.h
+++ b/net/socket/next_proto.h
@@ -27,7 +27,8 @@
   kProtoSPDYMinimumVersion = kProtoDeprecatedSPDY2,
   kProtoSPDY3 = 101,
   kProtoSPDY31 = 102,
-  kProtoSPDY4 = 103,  // SPDY4 is HTTP/2.
+  // HTTP/2 draft-14 was 103,
+  kProtoSPDY4 = 104,  // SPDY4 is HTTP/2 draft-15.
   kProtoSPDYMaximumVersion = kProtoSPDY4,
 
   kProtoQUIC1SPDY3 = 200,
diff --git a/net/socket/ssl_client_socket.cc b/net/socket/ssl_client_socket.cc
index da2d6ba..269ca7e 100644
--- a/net/socket/ssl_client_socket.cc
+++ b/net/socket/ssl_client_socket.cc
@@ -8,9 +8,11 @@
 #include "base/metrics/sparse_histogram.h"
 #include "base/strings/string_util.h"
 #include "crypto/ec_private_key.h"
+#include "net/base/connection_type_histograms.h"
 #include "net/base/host_port_pair.h"
 #include "net/ssl/channel_id_service.h"
 #include "net/ssl/ssl_config_service.h"
+#include "net/ssl/ssl_connection_status_flags.h"
 
 namespace net {
 
@@ -35,8 +37,8 @@
     return kProtoSPDY3;
   } else if (proto_string == "spdy/3.1") {
     return kProtoSPDY31;
-  } else if (proto_string == "h2-14") {
-    // This is the HTTP/2 draft 14 identifier. For internal
+  } else if (proto_string == "h2-15") {
+    // This is the HTTP/2 draft-15 identifier. For internal
     // consistency, HTTP/2 is named SPDY4 within Chromium.
     return kProtoSPDY4;
   } else if (proto_string == "quic/1+spdy/3") {
@@ -58,9 +60,9 @@
     case kProtoSPDY31:
       return "spdy/3.1";
     case kProtoSPDY4:
-      // This is the HTTP/2 draft 14 identifier. For internal
+      // This is the HTTP/2 draft-15 identifier. For internal
       // consistency, HTTP/2 is named SPDY4 within Chromium.
-      return "h2-14";
+      return "h2-15";
     case kProtoQUIC1SPDY3:
       return "quic/1+spdy/3";
     case kProtoUnknown:
@@ -182,6 +184,28 @@
 }
 
 // static
+void SSLClientSocket::RecordConnectionTypeMetrics(int ssl_version) {
+  UpdateConnectionTypeHistograms(CONNECTION_SSL);
+  switch (ssl_version) {
+    case SSL_CONNECTION_VERSION_SSL2:
+      UpdateConnectionTypeHistograms(CONNECTION_SSL_SSL2);
+      break;
+    case SSL_CONNECTION_VERSION_SSL3:
+      UpdateConnectionTypeHistograms(CONNECTION_SSL_SSL3);
+      break;
+    case SSL_CONNECTION_VERSION_TLS1:
+      UpdateConnectionTypeHistograms(CONNECTION_SSL_TLS1);
+      break;
+    case SSL_CONNECTION_VERSION_TLS1_1:
+      UpdateConnectionTypeHistograms(CONNECTION_SSL_TLS1_1);
+      break;
+    case SSL_CONNECTION_VERSION_TLS1_2:
+      UpdateConnectionTypeHistograms(CONNECTION_SSL_TLS1_2);
+      break;
+  }
+}
+
+// static
 bool SSLClientSocket::IsChannelIDEnabled(
     const SSLConfig& ssl_config,
     ChannelIDService* channel_id_service) {
diff --git a/net/socket/ssl_client_socket.h b/net/socket/ssl_client_socket.h
index c6bd366..7adfa8c 100644
--- a/net/socket/ssl_client_socket.h
+++ b/net/socket/ssl_client_socket.h
@@ -192,6 +192,9 @@
       bool channel_id_enabled,
       bool supports_ecc);
 
+  // Records ConnectionType histograms for a successful SSL connection.
+  static void RecordConnectionTypeMetrics(int ssl_version);
+
   // Returns whether TLS channel ID is enabled.
   static bool IsChannelIDEnabled(
       const SSLConfig& ssl_config,
diff --git a/net/socket/ssl_client_socket_nss.cc b/net/socket/ssl_client_socket_nss.cc
index a7821b2..31a9b8d 100644
--- a/net/socket/ssl_client_socket_nss.cc
+++ b/net/socket/ssl_client_socket_nss.cc
@@ -86,7 +86,6 @@
 #include "crypto/rsa_private_key.h"
 #include "crypto/scoped_nss_types.h"
 #include "net/base/address_list.h"
-#include "net/base/connection_type_histograms.h"
 #include "net/base/dns_util.h"
 #include "net/base/io_buffer.h"
 #include "net/base/net_errors.h"
@@ -1631,6 +1630,11 @@
 }
 
 void SSLClientSocketNSS::Core::HandshakeSucceeded() {
+  // TODO(vadimt): Remove ScopedProfile below once crbug.com/424386 is fixed.
+  tracked_objects::ScopedProfile tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "424386 SSLClientSocketNSS::Core::HandshakeSucceeded"));
+
   DCHECK(OnNSSTaskRunner());
 
   PRBool last_handshake_resumed;
@@ -1657,6 +1661,11 @@
 }
 
 int SSLClientSocketNSS::Core::HandleNSSError(PRErrorCode nss_error) {
+  // TODO(vadimt): Remove ScopedProfile below once crbug.com/424386 is fixed.
+  tracked_objects::ScopedProfile tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "424386 SSLClientSocketNSS::Core::HandleNSSError"));
+
   DCHECK(OnNSSTaskRunner());
 
   int net_error = MapNSSClientError(nss_error);
@@ -1804,6 +1813,11 @@
   int net_error = OK;
   SECStatus rv = SSL_ForceHandshake(nss_fd_);
 
+  // TODO(vadimt): Remove ScopedProfile below once crbug.com/424386 is fixed.
+  tracked_objects::ScopedProfile tracking_profile1(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "424386 SSLClientSocketNSS::Core::DoHandshake 1"));
+
   // Note: this function may be called multiple times during the handshake, so
   // even though channel id and client auth are separate else cases, they can
   // both be used during a single SSL handshake.
@@ -2473,8 +2487,6 @@
          SSL_CONNECTION_COMPRESSION_MASK) <<
         SSL_CONNECTION_COMPRESSION_SHIFT;
 
-    // NSS 3.14.x doesn't have a version macro for TLS 1.2 (because NSS didn't
-    // support it yet), so use 0x0303 directly.
     int version = SSL_CONNECTION_VERSION_UNKNOWN;
     if (channel_info.protocolVersion < SSL_LIBRARY_VERSION_3_0) {
       // All versions less than SSL_LIBRARY_VERSION_3_0 are treated as SSL
@@ -2482,11 +2494,11 @@
       version = SSL_CONNECTION_VERSION_SSL2;
     } else if (channel_info.protocolVersion == SSL_LIBRARY_VERSION_3_0) {
       version = SSL_CONNECTION_VERSION_SSL3;
-    } else if (channel_info.protocolVersion == SSL_LIBRARY_VERSION_3_1_TLS) {
+    } else if (channel_info.protocolVersion == SSL_LIBRARY_VERSION_TLS_1_0) {
       version = SSL_CONNECTION_VERSION_TLS1;
     } else if (channel_info.protocolVersion == SSL_LIBRARY_VERSION_TLS_1_1) {
       version = SSL_CONNECTION_VERSION_TLS1_1;
-    } else if (channel_info.protocolVersion == 0x0303) {
+    } else if (channel_info.protocolVersion == SSL_LIBRARY_VERSION_TLS_1_2) {
       version = SSL_CONNECTION_VERSION_TLS1_2;
     }
     nss_handshake_state_.ssl_connection_status |=
@@ -3492,8 +3504,11 @@
   // TODO(hclam): Skip logging if server cert was expected to be bad because
   // |server_cert_verify_result_| doesn't contain all the information about
   // the cert.
-  if (result == OK)
-    LogConnectionTypeMetrics();
+  if (result == OK) {
+    int ssl_version =
+        SSLConnectionStatusToVersion(core_->state().ssl_connection_status);
+    RecordConnectionTypeMetrics(ssl_version);
+  }
 
   const CertStatus cert_status = server_cert_verify_result_.cert_status;
   if (transport_security_state_ &&
@@ -3561,29 +3576,6 @@
           << ct_verify_result_.unknown_logs_scts.size();
 }
 
-void SSLClientSocketNSS::LogConnectionTypeMetrics() const {
-  UpdateConnectionTypeHistograms(CONNECTION_SSL);
-  int ssl_version = SSLConnectionStatusToVersion(
-      core_->state().ssl_connection_status);
-  switch (ssl_version) {
-    case SSL_CONNECTION_VERSION_SSL2:
-      UpdateConnectionTypeHistograms(CONNECTION_SSL_SSL2);
-      break;
-    case SSL_CONNECTION_VERSION_SSL3:
-      UpdateConnectionTypeHistograms(CONNECTION_SSL_SSL3);
-      break;
-    case SSL_CONNECTION_VERSION_TLS1:
-      UpdateConnectionTypeHistograms(CONNECTION_SSL_TLS1);
-      break;
-    case SSL_CONNECTION_VERSION_TLS1_1:
-      UpdateConnectionTypeHistograms(CONNECTION_SSL_TLS1_1);
-      break;
-    case SSL_CONNECTION_VERSION_TLS1_2:
-      UpdateConnectionTypeHistograms(CONNECTION_SSL_TLS1_2);
-      break;
-  };
-}
-
 void SSLClientSocketNSS::EnsureThreadIdAssigned() const {
   base::AutoLock auto_lock(lock_);
   if (valid_thread_id_ != base::kInvalidThreadId)
diff --git a/net/socket/ssl_client_socket_nss.h b/net/socket/ssl_client_socket_nss.h
index 3f89a94..71f09c0 100644
--- a/net/socket/ssl_client_socket_nss.h
+++ b/net/socket/ssl_client_socket_nss.h
@@ -144,8 +144,6 @@
 
   void VerifyCT();
 
-  void LogConnectionTypeMetrics() const;
-
   // The following methods are for debugging bug 65948. Will remove this code
   // after fixing bug 65948.
   void EnsureThreadIdAssigned() const;
diff --git a/net/socket/ssl_client_socket_openssl.cc b/net/socket/ssl_client_socket_openssl.cc
index 2d1830f..9fdfe38 100644
--- a/net/socket/ssl_client_socket_openssl.cc
+++ b/net/socket/ssl_client_socket_openssl.cc
@@ -101,9 +101,9 @@
       return SSL_CONNECTION_VERSION_SSL3;
     case TLS1_VERSION:
       return SSL_CONNECTION_VERSION_TLS1;
-    case 0x0302:
+    case TLS1_1_VERSION:
       return SSL_CONNECTION_VERSION_TLS1_1;
-    case 0x0303:
+    case TLS1_2_VERSION:
       return SSL_CONNECTION_VERSION_TLS1_2;
     default:
       return SSL_CONNECTION_VERSION_UNKNOWN;
@@ -1095,6 +1095,9 @@
     }
   }
 
+  if (result == OK)
+    RecordConnectionTypeMetrics(GetNetSSLVersion(ssl_));
+
   const CertStatus cert_status = server_cert_verify_result_.cert_status;
   if (transport_security_state_ &&
       (result == OK ||
diff --git a/net/socket/ssl_server_socket_unittest.cc b/net/socket/ssl_server_socket_unittest.cc
index e9957f5..5fabdd2 100644
--- a/net/socket/ssl_server_socket_unittest.cc
+++ b/net/socket/ssl_server_socket_unittest.cc
@@ -23,7 +23,6 @@
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
 #include "base/message_loop/message_loop.h"
-#include "base/path_service.h"
 #include "crypto/nss_util.h"
 #include "crypto/rsa_private_key.h"
 #include "net/base/address_list.h"
diff --git a/net/spdy/spdy_framer_test.cc b/net/spdy/spdy_framer_test.cc
index e7eb092..7a1c3df 100644
--- a/net/spdy/spdy_framer_test.cc
+++ b/net/spdy/spdy_framer_test.cc
@@ -2045,8 +2045,8 @@
   {
     const char kDescription[] =
         "SYN_STREAM frame, low pri, no FIN";
-
     const SpdyPriority priority = IsSpdy2() ? 2 : 4;
+
     const unsigned char kV2FrameData[] = {
       0x80, spdy_version_ch_, 0x00, 0x01,
       0x00, 0x00, 0x00, 0x36,
@@ -2083,15 +2083,70 @@
       0x80, 0x00, 0x00, 0x00,
       0x00, 0xFF, 0xFF,
     };
+    const unsigned char kV2SIMDFrameData[] = {
+      0x80, spdy_version_ch_, 0x00, 0x01,
+      0x00, 0x00, 0x00, 0x33,
+      0x00, 0x00, 0x00, 0x01,
+      0x00, 0x00, 0x00, 0x00,
+      0x80, 0x00, 0x38, 0xea,
+      0xdf, 0xa2, 0x51, 0xb2,
+      0x62, 0x60, 0x62, 0x60,
+      0x4e, 0x4a, 0x2c, 0x62,
+      0x60, 0x06, 0x08, 0xa0,
+      0xb4, 0xfc, 0x7c, 0x80,
+      0x00, 0x62, 0x60, 0x06,
+      0x13, 0x00, 0x01, 0x94,
+      0x94, 0x58, 0x04, 0x10,
+      0x40, 0x00, 0x00, 0x00,
+      0x00, 0xff, 0xff,
+    };
+    const unsigned char kV3SIMDFrameData[] = {
+      0x80, spdy_version_ch_, 0x00, 0x01,
+      0x00, 0x00, 0x00, 0x32,
+      0x00, 0x00, 0x00, 0x01,
+      0x00, 0x00, 0x00, 0x00,
+      0x80, 0x00, 0x38, 0xea,
+      0xe3, 0xc6, 0xa7, 0xc2,
+      0x02, 0xe5, 0x0e, 0x50,
+      0xc2, 0x4b, 0x4a, 0x04,
+      0xe5, 0x0b, 0x66, 0x80,
+      0x00, 0x4a, 0xcb, 0xcf,
+      0x07, 0x08, 0x20, 0x24,
+      0x0a, 0x20, 0x80, 0x92,
+      0x12, 0x8b, 0x00, 0x02,
+      0x08, 0x00, 0x00, 0x00,
+      0xff, 0xff,
+    };
+
     SpdySynStreamIR syn_stream(1);
     syn_stream.set_priority(priority);
     syn_stream.SetHeader("bar", "foo");
     syn_stream.SetHeader("foo", "bar");
     scoped_ptr<SpdyFrame> frame(framer.SerializeSynStream(syn_stream));
+    const unsigned char* frame_data =
+        reinterpret_cast<const unsigned char*>(frame->data());
     if (IsSpdy2()) {
-      CompareFrame(kDescription, *frame, kV2FrameData, arraysize(kV2FrameData));
+      // Try comparing with SIMD version, if that fails, do a failing check
+      // with pretty printing against non-SIMD version
+      if (memcmp(frame_data,
+                 kV2SIMDFrameData,
+                 std::min(arraysize(kV2SIMDFrameData), frame->size())) != 0) {
+        CompareCharArraysWithHexError(kDescription,
+                                      frame_data,
+                                      frame->size(),
+                                      kV2FrameData,
+                                      arraysize(kV2FrameData));
+      }
     } else if (IsSpdy3()) {
-      CompareFrame(kDescription, *frame, kV3FrameData, arraysize(kV3FrameData));
+      if (memcmp(frame_data,
+                 kV3SIMDFrameData,
+                 std::min(arraysize(kV3SIMDFrameData), frame->size())) != 0) {
+        CompareCharArraysWithHexError(kDescription,
+                                      frame_data,
+                                      frame->size(),
+                                      kV3FrameData,
+                                      arraysize(kV3FrameData));
+      }
     } else {
       LOG(FATAL) << "Unsupported version in test.";
     }
@@ -2280,14 +2335,66 @@
       0x00, 0x00, 0x00, 0xff,
       0xff,
     };
+    const unsigned char kV2SIMDFrameData[] = {
+      0x80, spdy_version_ch_, 0x00, 0x02,
+      0x00, 0x00, 0x00, 0x2f,
+      0x00, 0x00, 0x00, 0x01,
+      0x00, 0x00, 0x38, 0xea,
+      0xdf, 0xa2, 0x51, 0xb2,
+      0x62, 0x60, 0x62, 0x60,
+      0x4e, 0x4a, 0x2c, 0x62,
+      0x60, 0x06, 0x08, 0xa0,
+      0xb4, 0xfc, 0x7c, 0x80,
+      0x00, 0x62, 0x60, 0x06,
+      0x13, 0x00, 0x01, 0x94,
+      0x94, 0x58, 0x04, 0x10,
+      0x40, 0x00, 0x00, 0x00,
+      0x00, 0xff, 0xff,
+    };
+    const unsigned char kV3SIMDFrameData[] = {
+      0x80, spdy_version_ch_, 0x00, 0x02,
+      0x00, 0x00, 0x00, 0x2c,
+      0x00, 0x00, 0x00, 0x01,
+      0x38, 0xea, 0xe3, 0xc6,
+      0xa7, 0xc2, 0x02, 0xe5,
+      0x0e, 0x50, 0xc2, 0x4b,
+      0x4a, 0x04, 0xe5, 0x0b,
+      0x66, 0x80, 0x00, 0x4a,
+      0xcb, 0xcf, 0x07, 0x08,
+      0x20, 0x24, 0x0a, 0x20,
+      0x80, 0x92, 0x12, 0x8b,
+      0x00, 0x02, 0x08, 0x00,
+      0x00, 0x00, 0xff, 0xff,
+    };
+
     SpdySynReplyIR syn_reply(1);
     syn_reply.SetHeader("bar", "foo");
     syn_reply.SetHeader("foo", "bar");
     scoped_ptr<SpdyFrame> frame(framer.SerializeSynReply(syn_reply));
+    const unsigned char* frame_data =
+        reinterpret_cast<const unsigned char*>(frame->data());
     if (IsSpdy2()) {
-      CompareFrame(kDescription, *frame, kV2FrameData, arraysize(kV2FrameData));
+      // Try comparing with SIMD version, if that fails, do a failing check
+      // with pretty printing against non-SIMD version
+      if (memcmp(frame_data,
+                 kV2SIMDFrameData,
+                 std::min(arraysize(kV2SIMDFrameData), frame->size())) != 0) {
+        CompareCharArraysWithHexError(kDescription,
+                                      frame_data,
+                                      frame->size(),
+                                      kV2FrameData,
+                                      arraysize(kV2FrameData));
+      }
     } else if (IsSpdy3()) {
-      CompareFrame(kDescription, *frame, kV3FrameData, arraysize(kV3FrameData));
+      if (memcmp(frame_data,
+                 kV3SIMDFrameData,
+                 std::min(arraysize(kV3SIMDFrameData), frame->size())) != 0) {
+        CompareCharArraysWithHexError(kDescription,
+                                      frame_data,
+                                      frame->size(),
+                                      kV3FrameData,
+                                      arraysize(kV3FrameData));
+      }
     } else {
       LOG(FATAL) << "Unsupported version in test.";
     }
@@ -2886,14 +2993,66 @@
       0x00, 0x00, 0x00, 0xff,
       0xff,
     };
+    const unsigned char kV2SIMDFrameData[] = {
+      0x80, spdy_version_ch_, 0x00, 0x08,
+      0x00, 0x00, 0x00, 0x2f,
+      0x00, 0x00, 0x00, 0x01,
+      0x00, 0x00, 0x38, 0xea,
+      0xdf, 0xa2, 0x51, 0xb2,
+      0x62, 0x60, 0x62, 0x60,
+      0x4e, 0x4a, 0x2c, 0x62,
+      0x60, 0x06, 0x08, 0xa0,
+      0xb4, 0xfc, 0x7c, 0x80,
+      0x00, 0x62, 0x60, 0x06,
+      0x13, 0x00, 0x01, 0x94,
+      0x94, 0x58, 0x04, 0x10,
+      0x40, 0x00, 0x00, 0x00,
+      0x00, 0xff, 0xff,
+    };
+    const unsigned char kV3SIMDFrameData[] = {
+      0x80, spdy_version_ch_, 0x00, 0x08,
+      0x00, 0x00, 0x00, 0x2c,
+      0x00, 0x00, 0x00, 0x01,
+      0x38, 0xea, 0xe3, 0xc6,
+      0xa7, 0xc2, 0x02, 0xe5,
+      0x0e, 0x50, 0xc2, 0x4b,
+      0x4a, 0x04, 0xe5, 0x0b,
+      0x66, 0x80, 0x00, 0x4a,
+      0xcb, 0xcf, 0x07, 0x08,
+      0x20, 0x24, 0x0a, 0x20,
+      0x80, 0x92, 0x12, 0x8b,
+      0x00, 0x02, 0x08, 0x00,
+      0x00, 0x00, 0xff, 0xff,
+    };
+
     SpdyHeadersIR headers_ir(1);
     headers_ir.SetHeader("bar", "foo");
     headers_ir.SetHeader("foo", "bar");
     scoped_ptr<SpdyFrame> frame(framer.SerializeHeaders(headers_ir));
+    const unsigned char* frame_data =
+        reinterpret_cast<const unsigned char*>(frame->data());
     if (IsSpdy2()) {
-      CompareFrame(kDescription, *frame, kV2FrameData, arraysize(kV2FrameData));
+      // Try comparing with SIMD version, if that fails, do a failing check
+      // with pretty printing against non-SIMD version
+      if (memcmp(frame_data,
+                 kV2SIMDFrameData,
+                 std::min(arraysize(kV2SIMDFrameData), frame->size())) != 0) {
+        CompareCharArraysWithHexError(kDescription,
+                                      frame_data,
+                                      frame->size(),
+                                      kV2FrameData,
+                                      arraysize(kV2FrameData));
+      }
     } else if (IsSpdy3()) {
-      CompareFrame(kDescription, *frame, kV3FrameData, arraysize(kV3FrameData));
+      if (memcmp(frame_data,
+                 kV3SIMDFrameData,
+                 std::min(arraysize(kV3SIMDFrameData), frame->size())) != 0) {
+        CompareCharArraysWithHexError(kDescription,
+                                      frame_data,
+                                      frame->size(),
+                                      kV3FrameData,
+                                      arraysize(kV3FrameData));
+      }
     } else {
       // Deflate compression doesn't apply to HPACK.
     }
diff --git a/net/spdy/spdy_session_pool.cc b/net/spdy/spdy_session_pool.cc
index d839785..ddcc574 100644
--- a/net/spdy/spdy_session_pool.cc
+++ b/net/spdy/spdy_session_pool.cc
@@ -55,7 +55,7 @@
       // |default_protocol_|.
       default_protocol_(
           (default_protocol == kProtoUnknown) ?
-          kProtoSPDY3 : default_protocol),
+          kProtoSPDY31 : default_protocol),
       stream_initial_recv_window_size_(stream_initial_recv_window_size),
       initial_max_concurrent_streams_(initial_max_concurrent_streams),
       max_concurrent_streams_limit_(max_concurrent_streams_limit),
diff --git a/net/test/cert_test_util.cc b/net/test/cert_test_util.cc
index acf2c60..c6c412d 100644
--- a/net/test/cert_test_util.cc
+++ b/net/test/cert_test_util.cc
@@ -6,7 +6,6 @@
 
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
-#include "base/path_service.h"
 #include "net/cert/ev_root_ca_metadata.h"
 #include "net/cert/x509_certificate.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/net/test/cert_test_util_nss.cc b/net/test/cert_test_util_nss.cc
index d377e46..ee929e5 100644
--- a/net/test/cert_test_util_nss.cc
+++ b/net/test/cert_test_util_nss.cc
@@ -9,7 +9,6 @@
 
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
-#include "base/path_service.h"
 #include "crypto/nss_util.h"
 #include "crypto/rsa_private_key.h"
 #include "net/cert/cert_type.h"
diff --git a/net/test/embedded_test_server/embedded_test_server.cc b/net/test/embedded_test_server/embedded_test_server.cc
index 9856b64..7ac764f 100644
--- a/net/test/embedded_test_server/embedded_test_server.cc
+++ b/net/test/embedded_test_server/embedded_test_server.cc
@@ -8,7 +8,6 @@
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
 #include "base/message_loop/message_loop.h"
-#include "base/path_service.h"
 #include "base/process/process_metrics.h"
 #include "base/run_loop.h"
 #include "base/stl_util.h"
diff --git a/net/test/embedded_test_server/embedded_test_server_unittest.cc b/net/test/embedded_test_server/embedded_test_server_unittest.cc
index 2f614df..28d909e 100644
--- a/net/test/embedded_test_server/embedded_test_server_unittest.cc
+++ b/net/test/embedded_test_server/embedded_test_server_unittest.cc
@@ -4,6 +4,7 @@
 
 #include "net/test/embedded_test_server/embedded_test_server.h"
 
+#include "base/path_service.h"
 #include "base/strings/stringprintf.h"
 #include "base/threading/thread.h"
 #include "net/http/http_response_headers.h"
diff --git a/net/test/spawned_test_server/local_test_server_win.cc b/net/test/spawned_test_server/local_test_server_win.cc
index 401cfac..412e4e1 100644
--- a/net/test/spawned_test_server/local_test_server_win.cc
+++ b/net/test/spawned_test_server/local_test_server_win.cc
@@ -12,7 +12,6 @@
 #include "base/environment.h"
 #include "base/files/file_path.h"
 #include "base/message_loop/message_loop.h"
-#include "base/path_service.h"
 #include "base/process/launch.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
diff --git a/net/tools/quic/end_to_end_test.cc b/net/tools/quic/end_to_end_test.cc
index e3b9ef8..55e2d88 100644
--- a/net/tools/quic/end_to_end_test.cc
+++ b/net/tools/quic/end_to_end_test.cc
@@ -940,11 +940,11 @@
   const QuicSentPacketManager& server_sent_packet_manager =
       *GetSentPacketManagerFromFirstServerSession();
 
-  // The client shouldn't set it's initial window based on the negotiated value.
-  EXPECT_EQ(kDefaultInitialWindow * kDefaultTCPMSS,
-            client_sent_packet_manager.GetCongestionWindow());
-  EXPECT_EQ(kMaxInitialWindow * kDefaultTCPMSS,
-            server_sent_packet_manager.GetCongestionWindow());
+  // The client shouldn't set its initial window based on the negotiated value.
+  EXPECT_EQ(kDefaultInitialWindow,
+            client_sent_packet_manager.GetCongestionWindowInTcpMss());
+  EXPECT_EQ(kMaxInitialWindow,
+            server_sent_packet_manager.GetCongestionWindowInTcpMss());
 
   EXPECT_EQ(GetParam().use_pacing, server_sent_packet_manager.using_pacing());
   EXPECT_EQ(GetParam().use_pacing, client_sent_packet_manager.using_pacing());
@@ -987,18 +987,17 @@
   QuicSession* session = dispatcher->session_map().begin()->second;
   const QuicSentPacketManager& client_sent_packet_manager =
       client_->client()->session()->connection()->sent_packet_manager();
-  const QuicSentPacketManager& server_sent_packet_manager =
-      session->connection()->sent_packet_manager();
 
   // Now that acks have been exchanged, the RTT estimate has decreased on the
   // server and is not infinite on the client.
   EXPECT_FALSE(
-      client_sent_packet_manager.GetRttStats()->SmoothedRtt().IsInfinite());
+      client_sent_packet_manager.GetRttStats()->smoothed_rtt().IsInfinite());
+  const RttStats& server_rtt_stats =
+      *session->connection()->sent_packet_manager().GetRttStats();
   EXPECT_EQ(static_cast<int64>(kMaxInitialRoundTripTimeUs),
-            server_sent_packet_manager.GetRttStats()->initial_rtt_us());
-  EXPECT_GE(
-      static_cast<int64>(kMaxInitialRoundTripTimeUs),
-      server_sent_packet_manager.GetRttStats()->SmoothedRtt().ToMicroseconds());
+            server_rtt_stats.initial_rtt_us());
+  EXPECT_GE(static_cast<int64>(kMaxInitialRoundTripTimeUs),
+            server_rtt_stats.smoothed_rtt().ToMicroseconds());
   server_thread_->Resume();
 }
 
@@ -1024,7 +1023,7 @@
   // Now that acks have been exchanged, the RTT estimate has decreased on the
   // server and is not infinite on the client.
   EXPECT_FALSE(
-      client_sent_packet_manager.GetRttStats()->SmoothedRtt().IsInfinite());
+      client_sent_packet_manager.GetRttStats()->smoothed_rtt().IsInfinite());
   // Expect the default rtt of 100ms.
   EXPECT_EQ(static_cast<int64>(100 * base::Time::kMicrosecondsPerMillisecond),
             server_sent_packet_manager.GetRttStats()->initial_rtt_us());
diff --git a/net/tools/quic/quic_client.cc b/net/tools/quic/quic_client.cc
index 7b2c994..b28ec2b 100644
--- a/net/tools/quic/quic_client.cc
+++ b/net/tools/quic/quic_client.cc
@@ -199,7 +199,8 @@
                          factory,
                          /* owns_writer= */ false,
                          /* is_server= */ false,
-                         supported_versions_)));
+                         supported_versions_),
+      server_id_.is_https()));
 
   // Reset |writer_| after |session_| so that the old writer outlives the old
   // session.
diff --git a/net/tools/quic/quic_client_session.cc b/net/tools/quic/quic_client_session.cc
index db885dc..87ca0ce 100644
--- a/net/tools/quic/quic_client_session.cc
+++ b/net/tools/quic/quic_client_session.cc
@@ -15,8 +15,9 @@
 namespace tools {
 
 QuicClientSession::QuicClientSession(const QuicConfig& config,
-                                     QuicConnection* connection)
-    : QuicClientSessionBase(connection, config) {
+                                     QuicConnection* connection,
+                                     bool is_secure)
+    : QuicClientSessionBase(connection, config, is_secure) {
 }
 
 QuicClientSession::~QuicClientSession() {
diff --git a/net/tools/quic/quic_client_session.h b/net/tools/quic/quic_client_session.h
index 3c92efa..d1cd38c 100644
--- a/net/tools/quic/quic_client_session.h
+++ b/net/tools/quic/quic_client_session.h
@@ -25,7 +25,9 @@
 
 class QuicClientSession : public QuicClientSessionBase {
  public:
-  QuicClientSession(const QuicConfig& config, QuicConnection* connection);
+  QuicClientSession(const QuicConfig& config,
+                    QuicConnection* connection,
+                    bool is_secure);
   ~QuicClientSession() override;
 
   void InitializeSession(const QuicServerId& server_id,
diff --git a/net/tools/quic/quic_client_session_test.cc b/net/tools/quic/quic_client_session_test.cc
index 5b5c415..61422e1 100644
--- a/net/tools/quic/quic_client_session_test.cc
+++ b/net/tools/quic/quic_client_session_test.cc
@@ -42,7 +42,8 @@
   ToolsQuicClientSessionTest()
       : connection_(
             new PacketSavingConnection(false, SupportedVersions(GetParam()))) {
-    session_.reset(new QuicClientSession(DefaultQuicConfig(), connection_));
+    session_.reset(new QuicClientSession(DefaultQuicConfig(), connection_,
+                                         /*is_secure=*/false));
     session_->InitializeSession(
         QuicServerId(kServerHostname, kPort, false, PRIVACY_MODE_DISABLED),
         &crypto_config_);
diff --git a/net/tools/quic/quic_dispatcher.cc b/net/tools/quic/quic_dispatcher.cc
index 747785e..16cee2b 100644
--- a/net/tools/quic/quic_dispatcher.cc
+++ b/net/tools/quic/quic_dispatcher.cc
@@ -364,7 +364,8 @@
   QuicServerSession* session = new QuicServerSession(
       config_,
       CreateQuicConnection(connection_id, server_address, client_address),
-      this);
+      this,
+      crypto_config_.HasProofSource());
   session->InitializeSession(crypto_config_);
   return session;
 }
diff --git a/net/tools/quic/quic_server.cc b/net/tools/quic/quic_server.cc
index 9d36909..2694365 100644
--- a/net/tools/quic/quic_server.cc
+++ b/net/tools/quic/quic_server.cc
@@ -36,7 +36,6 @@
 
 const int kEpollFlags = EPOLLIN | EPOLLOUT | EPOLLET;
 const char kSourceAddressTokenSecret[] = "secret";
-const uint32 kServerInitialFlowControlWindow = 100 * net::kMaxPacketSize;
 
 }  // namespace
 
@@ -78,9 +77,6 @@
       crypto_config_.AddDefaultConfig(
           QuicRandom::GetInstance(), &clock,
           QuicCryptoServerConfig::ConfigOptions()));
-
-  // Set flow control options in the config.
-  config_.SetInitialCongestionWindowToSend(kServerInitialFlowControlWindow);
 }
 
 QuicServer::~QuicServer() {
diff --git a/net/tools/quic/quic_server_session.cc b/net/tools/quic/quic_server_session.cc
index 64e664d..1dd5748 100644
--- a/net/tools/quic/quic_server_session.cc
+++ b/net/tools/quic/quic_server_session.cc
@@ -16,8 +16,9 @@
 
 QuicServerSession::QuicServerSession(const QuicConfig& config,
                                      QuicConnection* connection,
-                                     QuicServerSessionVisitor* visitor)
-    : QuicSession(connection, config),
+                                     QuicServerSessionVisitor* visitor,
+                                     bool is_secure)
+    : QuicSession(connection, config, is_secure),
       visitor_(visitor),
       bandwidth_estimate_sent_to_client_(QuicBandwidth::Zero()),
       last_scup_time_(QuicTime::Zero()),
@@ -74,7 +75,7 @@
   const QuicSentPacketManager& sent_packet_manager =
       connection()->sent_packet_manager();
   int64 srtt_ms =
-      sent_packet_manager.GetRttStats()->SmoothedRtt().ToMilliseconds();
+      sent_packet_manager.GetRttStats()->smoothed_rtt().ToMilliseconds();
   int64 now_ms = now.Subtract(last_scup_time_).ToMilliseconds();
   int64 packets_since_last_scup =
       connection()->sequence_number_of_last_sent_packet() -
@@ -128,7 +129,7 @@
   cached_network_params.set_max_bandwidth_timestamp_seconds(
       max_bandwidth_timestamp);
   cached_network_params.set_min_rtt_ms(
-      sent_packet_manager.GetRttStats()->MinRtt().ToMilliseconds());
+      sent_packet_manager.GetRttStats()->min_rtt().ToMilliseconds());
   cached_network_params.set_previous_connection_state(
       bandwidth_recorder.EstimateRecordedDuringSlowStart()
           ? CachedNetworkParameters::SLOW_START
diff --git a/net/tools/quic/quic_server_session.h b/net/tools/quic/quic_server_session.h
index 603ad35..cdc2bf3 100644
--- a/net/tools/quic/quic_server_session.h
+++ b/net/tools/quic/quic_server_session.h
@@ -47,7 +47,8 @@
  public:
   QuicServerSession(const QuicConfig& config,
                     QuicConnection* connection,
-                    QuicServerSessionVisitor* visitor);
+                    QuicServerSessionVisitor* visitor,
+                    bool is_secure);
 
   // Override the base class to notify the owner of the connection close.
   void OnConnectionClosed(QuicErrorCode error, bool from_peer) override;
diff --git a/net/tools/quic/quic_server_session_test.cc b/net/tools/quic/quic_server_session_test.cc
index 9f36241..202022f 100644
--- a/net/tools/quic/quic_server_session_test.cc
+++ b/net/tools/quic/quic_server_session_test.cc
@@ -79,7 +79,8 @@
 
     connection_ =
         new StrictMock<MockConnection>(true, SupportedVersions(GetParam()));
-    session_.reset(new QuicServerSession(config_, connection_, &owner_));
+    session_.reset(new QuicServerSession(config_, connection_, &owner_,
+                                         /*is_secure=*/false));
     MockClock clock;
     handshake_message_.reset(crypto_config_.AddDefaultConfig(
         QuicRandom::GetInstance(), &clock,
@@ -129,8 +130,8 @@
 
   // Send a reset (and expect the peer to send a RST in response).
   QuicRstStreamFrame rst1(kClientDataStreamId1, QUIC_STREAM_NO_ERROR, 0);
-  EXPECT_CALL(*connection_, SendRstStream(kClientDataStreamId1,
-                                          QUIC_RST_FLOW_CONTROL_ACCOUNTING, 0));
+  EXPECT_CALL(*connection_,
+              SendRstStream(kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT, 0));
   visitor_->OnRstStream(rst1);
   EXPECT_EQ(0u, session_->GetNumOpenStreams());
 
@@ -145,8 +146,8 @@
 TEST_P(QuicServerSessionTest, NeverOpenStreamDueToReset) {
   // Send a reset (and expect the peer to send a RST in response).
   QuicRstStreamFrame rst1(kClientDataStreamId1, QUIC_STREAM_NO_ERROR, 0);
-  EXPECT_CALL(*connection_, SendRstStream(kClientDataStreamId1,
-                                          QUIC_RST_FLOW_CONTROL_ACCOUNTING, 0));
+  EXPECT_CALL(*connection_,
+              SendRstStream(kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT, 0));
   visitor_->OnRstStream(rst1);
   EXPECT_EQ(0u, session_->GetNumOpenStreams());
 
@@ -173,8 +174,8 @@
 
   // Send a reset (and expect the peer to send a RST in response).
   QuicRstStreamFrame rst(kClientDataStreamId1, QUIC_STREAM_NO_ERROR, 0);
-  EXPECT_CALL(*connection_, SendRstStream(kClientDataStreamId1,
-                                          QUIC_RST_FLOW_CONTROL_ACCOUNTING, 0));
+  EXPECT_CALL(*connection_,
+              SendRstStream(kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT, 0));
   visitor_->OnRstStream(rst);
 
   // If we were tracking, we'd probably want to reject this because it's data
@@ -305,6 +306,7 @@
   if (version() <= QUIC_VERSION_21) {
     return;
   }
+
   // Test that bandwidth estimate updates are sent to the client, only after the
   // bandwidth estimate has changes sufficiently, and enough time has passed.
 
@@ -323,6 +325,11 @@
       QuicConnectionPeer::GetSentPacketManager(session_->connection());
   QuicSustainedBandwidthRecorder& bandwidth_recorder =
       QuicSentPacketManagerPeer::GetBandwidthRecorder(sent_packet_manager);
+  // Seed an rtt measurement equal to the initial default rtt.
+  RttStats* rtt_stats =
+      QuicSentPacketManagerPeer::GetRttStats(sent_packet_manager);
+  rtt_stats->UpdateRtt(QuicTime::Delta::FromMicroseconds(
+      rtt_stats->initial_rtt_us()), QuicTime::Delta::Zero(), QuicTime::Zero());
   QuicSustainedBandwidthRecorderPeer::SetBandwidthEstimate(
       &bandwidth_recorder, bandwidth_estimate_kbytes_per_second);
   QuicSustainedBandwidthRecorderPeer::SetMaxBandwidthEstimate(
@@ -342,7 +349,7 @@
   // Bandwidth estimate has now changed sufficiently and enough time has passed,
   // but not enough packets have been sent.
   int64 srtt_ms =
-      sent_packet_manager->GetRttStats()->SmoothedRtt().ToMilliseconds();
+      sent_packet_manager->GetRttStats()->smoothed_rtt().ToMilliseconds();
   now = now.Add(QuicTime::Delta::FromMilliseconds(
       kMinIntervalBetweenServerConfigUpdatesRTTs * srtt_ms));
   session_->OnCongestionWindowChange(now);
@@ -363,7 +370,7 @@
   expected_network_params.set_min_rtt_ms(session_->connection()
                                              ->sent_packet_manager()
                                              .GetRttStats()
-                                             ->MinRtt()
+                                             ->min_rtt()
                                              .ToMilliseconds());
   expected_network_params.set_previous_connection_state(
       CachedNetworkParameters::CONGESTION_AVOIDANCE);
diff --git a/net/tools/quic/quic_spdy_client_stream_test.cc b/net/tools/quic/quic_spdy_client_stream_test.cc
index 090e2da..d2106d9 100644
--- a/net/tools/quic/quic_spdy_client_stream_test.cc
+++ b/net/tools/quic/quic_spdy_client_stream_test.cc
@@ -29,7 +29,7 @@
   QuicSpdyClientStreamTest()
       : connection_(new StrictMock<MockConnection>(
             false, SupportedVersions(GetParam()))),
-        session_(DefaultQuicConfig(), connection_),
+        session_(DefaultQuicConfig(), connection_, /*is_secure=*/false),
         body_("hello world") {
     session_.InitializeSession(
         QuicServerId("example.com", 80, false, PRIVACY_MODE_DISABLED),
diff --git a/net/tools/quic/quic_time_wait_list_manager.cc b/net/tools/quic/quic_time_wait_list_manager.cc
index eb32282..58f50fe 100644
--- a/net/tools/quic/quic_time_wait_list_manager.cc
+++ b/net/tools/quic/quic_time_wait_list_manager.cc
@@ -28,8 +28,9 @@
 
 namespace {
 
-// Time period for which the connection_id should live in time wait state..
-const int kTimeWaitSeconds = 5;
+// Time period for which a given connection_id should live in the time-wait
+// state.
+int64 FLAGS_quic_time_wait_list_seconds = 5;
 
 }  // namespace
 
@@ -90,7 +91,8 @@
     EpollServer* epoll_server,
     const QuicVersionVector& supported_versions)
     : epoll_server_(epoll_server),
-      kTimeWaitPeriod_(QuicTime::Delta::FromSeconds(kTimeWaitSeconds)),
+      kTimeWaitPeriod_(
+          QuicTime::Delta::FromSeconds(FLAGS_quic_time_wait_list_seconds)),
       connection_id_clean_up_alarm_(new ConnectionIdCleanUpAlarm(this)),
       clock_(epoll_server_),
       writer_(writer),
@@ -280,6 +282,7 @@
       break;
     }
     // This connection_id has lived its age, retire it now.
+    DVLOG(1) << "Retiring " << it->first << " from the time-wait state.";
     delete it->second.close_packet;
     connection_id_map_.erase(it);
   }
diff --git a/net/tools/quic/test_tools/quic_test_client.cc b/net/tools/quic/test_tools/quic_test_client.cc
index 16fa4ef..d8e23e7 100644
--- a/net/tools/quic/test_tools/quic_test_client.cc
+++ b/net/tools/quic/test_tools/quic_test_client.cc
@@ -159,19 +159,6 @@
 
 QuicTestClient::QuicTestClient(IPEndPoint server_address,
                                const string& server_hostname,
-                               const QuicVersionVector& supported_versions)
-    : client_(new MockableQuicClient(server_address,
-                                     QuicServerId(server_hostname,
-                                                  server_address.port(),
-                                                  false,
-                                                  PRIVACY_MODE_DISABLED),
-                                     supported_versions,
-                                     &epoll_server_)) {
-  Initialize(true);
-}
-
-QuicTestClient::QuicTestClient(IPEndPoint server_address,
-                               const string& server_hostname,
                                bool secure,
                                const QuicVersionVector& supported_versions)
     : client_(new MockableQuicClient(server_address,
diff --git a/net/tools/quic/test_tools/quic_test_client.h b/net/tools/quic/test_tools/quic_test_client.h
index c5b7a3b..a1dea9e 100644
--- a/net/tools/quic/test_tools/quic_test_client.h
+++ b/net/tools/quic/test_tools/quic_test_client.h
@@ -64,9 +64,6 @@
  public:
   QuicTestClient(IPEndPoint server_address,
                  const string& server_hostname,
-                 const QuicVersionVector& supported_versions);
-  QuicTestClient(IPEndPoint server_address,
-                 const string& server_hostname,
                  bool secure,
                  const QuicVersionVector& supported_versions);
   QuicTestClient(IPEndPoint server_address,
diff --git a/net/tools/quic/test_tools/quic_test_utils.cc b/net/tools/quic/test_tools/quic_test_utils.cc
index 2477483..40b7e88 100644
--- a/net/tools/quic/test_tools/quic_test_utils.cc
+++ b/net/tools/quic/test_tools/quic_test_utils.cc
@@ -95,7 +95,7 @@
 
 TestSession::TestSession(QuicConnection* connection,
                          const QuicConfig& config)
-    : QuicSession(connection, config),
+    : QuicSession(connection, config, /*is_secure=*/false),
       crypto_stream_(nullptr) {
   InitializeSession();
 }
diff --git a/net/tools/testserver/testserver.py b/net/tools/testserver/testserver.py
index 2fc58cf..0dcbd25 100755
--- a/net/tools/testserver/testserver.py
+++ b/net/tools/testserver/testserver.py
@@ -1428,7 +1428,6 @@
 
     test_name = "/cross-site"
     if not self._ShouldHandleRequest(test_name):
-      print "CSRH: not handling request for " + test_name
       return False
 
     params = urllib.unquote(self.path[(len(test_name) + 1):])
diff --git a/net/tools/tld_cleanup/tld_cleanup_util_unittest.cc b/net/tools/tld_cleanup/tld_cleanup_util_unittest.cc
index 6b1d02a..6c7cbad 100644
--- a/net/tools/tld_cleanup/tld_cleanup_util_unittest.cc
+++ b/net/tools/tld_cleanup/tld_cleanup_util_unittest.cc
@@ -5,7 +5,6 @@
 #include "net/tools/tld_cleanup/tld_cleanup_util.h"
 
 #include "base/files/file_path.h"
-#include "base/path_service.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace net {
diff --git a/net/base/sdch_dictionary_fetcher.cc b/net/url_request/sdch_dictionary_fetcher.cc
similarity index 93%
rename from net/base/sdch_dictionary_fetcher.cc
rename to net/url_request/sdch_dictionary_fetcher.cc
index 8d08b9a..5806193 100644
--- a/net/base/sdch_dictionary_fetcher.cc
+++ b/net/url_request/sdch_dictionary_fetcher.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "net/base/sdch_dictionary_fetcher.h"
+#include "net/url_request/sdch_dictionary_fetcher.h"
 
 #include <stdint.h>
 
@@ -24,15 +24,14 @@
 namespace net {
 
 SdchDictionaryFetcher::SdchDictionaryFetcher(
-    SdchFetcher::Delegate* consumer,
-    URLRequestContext* context)
+    URLRequestContext* context,
+    const OnDictionaryFetchedCallback& callback)
     : next_state_(STATE_NONE),
       in_loop_(false),
-      consumer_(consumer),
       context_(context),
+      dictionary_fetched_callback_(callback),
       weak_factory_(this) {
   DCHECK(CalledOnValidThread());
-  DCHECK(consumer);
   DCHECK(context);
 }
 
@@ -158,8 +157,8 @@
     return OK;
   }
 
-  current_request_ = context_->CreateRequest(
-      fetch_queue_.front(), IDLE, this, NULL);
+  current_request_ =
+      context_->CreateRequest(fetch_queue_.front(), IDLE, this, NULL);
   current_request_->SetLoadFlags(LOAD_DO_NOT_SEND_COOKIES |
                                  LOAD_DO_NOT_SAVE_COOKIES);
   buffer_ = new IOBuffer(kBufferSize);
@@ -209,8 +208,8 @@
       // without a promise to invoke the callback at some point in the future,
       // so the request is failed.
       SdchManager::SdchErrorRecovery(SdchManager::DICTIONARY_FETCH_READ_FAILED);
-      DLOG(FATAL) <<
-          "URLRequest::Read() returned false without IO pending or error!";
+      DLOG(FATAL)
+          << "URLRequest::Read() returned false without IO pending or error!";
       return ERR_FAILED;
     }
 
@@ -230,7 +229,7 @@
 
   // If the dictionary was successfully fetched, add it to the manager.
   if (rv == OK)
-    consumer_->AddSdchDictionary(dictionary_, current_request_->url());
+    dictionary_fetched_callback_.Run(dictionary_, current_request_->url());
 
   current_request_.reset();
   buffer_ = NULL;
diff --git a/net/base/sdch_dictionary_fetcher.h b/net/url_request/sdch_dictionary_fetcher.h
similarity index 63%
rename from net/base/sdch_dictionary_fetcher.h
rename to net/url_request/sdch_dictionary_fetcher.h
index d74f643..5b6f269 100644
--- a/net/base/sdch_dictionary_fetcher.h
+++ b/net/url_request/sdch_dictionary_fetcher.h
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// TODO(rdsmith): This class needs to be moved out to the net/ embedder and
-// hooked into whatever mechanisms the embedder uses for authentication.
-// Specifically, this class needs methods overriding
-// URLRequest::Delegate::{OnAuthRequired,OnCertificateRequested} and can't
-// implement them at the net/ layer.
+// TODO(rdsmith): This class needs to delegate URLRequest::Delegate methods
+// to the net/ embedder for correct implementation of authentication.
+// Specifically, this class needs the embedder to provide functionality
+// corresponding to
+// URLRequest::Delegate::{OnAuthRequired,OnCertificateRequested}.
 
-#ifndef NET_BASE_SDCH_DICTIONARY_FETCHER_H_
-#define NET_BASE_SDCH_DICTIONARY_FETCHER_H_
+#ifndef NET_URL_REQUEST_SDCH_DICTIONARY_FETCHER_H_
+#define NET_URL_REQUEST_SDCH_DICTIONARY_FETCHER_H_
 
 #include <queue>
 #include <set>
@@ -27,25 +27,31 @@
 class URLRequest;
 class URLRequestThrottlerEntryInterface;
 
-// This class implements the SdchFetcher interface. It queues requests
-// for dictionaries and dispatches them serially, implementing
-// the URLRequest::Delegate interface to handle callbacks (but see above
-// TODO). It tracks all requests, only attempting to fetch each dictionary
-// once.
-class NET_EXPORT SdchDictionaryFetcher
-    : public SdchFetcher,
-      public URLRequest::Delegate,
-      public base::NonThreadSafe {
+// This class is used by embedder SDCH policy object to fetch
+// dictionaries. It queues requests for dictionaries and dispatches
+// them serially, implementing the URLRequest::Delegate interface to
+// handle callbacks (but see above TODO). It tracks all requests, only
+// attempting to fetch each dictionary once.
+class NET_EXPORT SdchDictionaryFetcher : public URLRequest::Delegate,
+                                         public base::NonThreadSafe {
  public:
-  // The consumer must guarantee that |*consumer| and |*context| outlive
-  // this object.
-  SdchDictionaryFetcher(SdchFetcher::Delegate* consumer,
-                        URLRequestContext* context);
+  typedef base::Callback<void(const std::string& dictionary_text,
+                              const GURL& dictionary_url)>
+      OnDictionaryFetchedCallback;
+
+  // The consumer must guarantee that |*context| outlives this object.
+  // |callback| will be called on successful dictionary fetch
+  // requested through Schedule().  |callback| will not be called
+  // after object destruction.
+  SdchDictionaryFetcher(URLRequestContext* context,
+                        const OnDictionaryFetchedCallback& callback);
   ~SdchDictionaryFetcher() override;
 
-  // Implementation of SdchFetcher methods.
-  void Schedule(const GURL& dictionary_url) override;
-  void Cancel() override;
+  // Request a new dictionary fetch.
+  void Schedule(const GURL& dictionary_url);
+
+  // Cancel any in-progress requests.
+  void Cancel();
 
   // Implementation of URLRequest::Delegate methods.
   void OnResponseStarted(URLRequest* request) override;
@@ -70,8 +76,6 @@
   State next_state_;
   bool in_loop_;
 
-  SdchFetcher::Delegate* const consumer_;
-
   // A queue of URLs that are being used to download dictionaries.
   std::queue<GURL> fetch_queue_;
 
@@ -100,7 +104,9 @@
 
   // Store the URLRequestContext associated with the owning SdchManager for
   // use while fetching.
-  URLRequestContext* context_;
+  URLRequestContext* const context_;
+
+  const OnDictionaryFetchedCallback dictionary_fetched_callback_;
 
   base::WeakPtrFactory<SdchDictionaryFetcher> weak_factory_;
 
@@ -109,4 +115,4 @@
 
 }  // namespace net
 
-#endif  // NET_BASE_SDCH_DICTIONARY_FETCHER_H_
+#endif  // NET_URL_REQUEST_SDCH_DICTIONARY_FETCHER_H_
diff --git a/net/base/sdch_dictionary_fetcher_unittest.cc b/net/url_request/sdch_dictionary_fetcher_unittest.cc
similarity index 74%
rename from net/base/sdch_dictionary_fetcher_unittest.cc
rename to net/url_request/sdch_dictionary_fetcher_unittest.cc
index a8b814e..0febd7e 100644
--- a/net/base/sdch_dictionary_fetcher_unittest.cc
+++ b/net/url_request/sdch_dictionary_fetcher_unittest.cc
@@ -2,10 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "net/base/sdch_dictionary_fetcher.h"
+#include "net/url_request/sdch_dictionary_fetcher.h"
 
 #include <string>
 
+#include "base/bind.h"
 #include "base/run_loop.h"
 #include "base/strings/stringprintf.h"
 #include "base/thread_task_runner_handle.h"
@@ -31,8 +32,8 @@
   static void AddUrlHandler() {
     net::URLRequestFilter* filter = net::URLRequestFilter::GetInstance();
     jobs_requested_ = 0;
-    filter->AddHostnameHandler("http", kTestDomain,
-                               &URLRequestSpecifiedResponseJob::Factory);
+    filter->AddHostnameHandler(
+        "http", kTestDomain, &URLRequestSpecifiedResponseJob::Factory);
   }
 
   static void RemoveUrlHandler() {
@@ -41,17 +42,17 @@
     jobs_requested_ = 0;
   }
 
-  static URLRequestJob* Factory(
-      URLRequest* request,
-      net::NetworkDelegate* network_delegate,
-      const std::string& scheme) {
+  static URLRequestJob* Factory(URLRequest* request,
+                                net::NetworkDelegate* network_delegate,
+                                const std::string& scheme) {
     ++jobs_requested_;
     return new URLRequestSpecifiedResponseJob(request, network_delegate);
   }
 
   static std::string ExpectedResponseForURL(const GURL& url) {
     return base::StringPrintf("Response for %s\n%s\nEnd Response for %s\n",
-                              url.spec().c_str(), kSampleBufferContext,
+                              url.spec().c_str(),
+                              kSampleBufferContext,
                               url.spec().c_str());
   }
 
@@ -73,21 +74,32 @@
 
 int URLRequestSpecifiedResponseJob::jobs_requested_(0);
 
-class SdchTestDelegate : public SdchFetcher::Delegate {
+class SdchDictionaryFetcherTest : public ::testing::Test {
  public:
   struct DictionaryAdditions {
     DictionaryAdditions(const std::string& dictionary_text,
                         const GURL& dictionary_url)
-        : dictionary_text(dictionary_text),
-          dictionary_url(dictionary_url) {}
-
+        : dictionary_text(dictionary_text), dictionary_url(dictionary_url) {}
 
     std::string dictionary_text;
     GURL dictionary_url;
   };
 
-  void AddSdchDictionary(const std::string& dictionary_text,
-                         const GURL& dictionary_url) override {
+  SdchDictionaryFetcherTest() {
+    URLRequestSpecifiedResponseJob::AddUrlHandler();
+    context_.reset(new TestURLRequestContext);
+    fetcher_.reset(new SdchDictionaryFetcher(
+        context_.get(),
+        base::Bind(&SdchDictionaryFetcherTest::OnDictionaryFetched,
+                   base::Unretained(this))));
+  }
+
+  ~SdchDictionaryFetcherTest() {
+    URLRequestSpecifiedResponseJob::RemoveUrlHandler();
+  }
+
+  void OnDictionaryFetched(const std::string& dictionary_text,
+                           const GURL& dictionary_url) {
     dictionary_additions.push_back(
         DictionaryAdditions(dictionary_text, dictionary_url));
   }
@@ -97,33 +109,7 @@
     dictionary_additions.clear();
   }
 
- private:
-  std::vector<DictionaryAdditions> dictionary_additions;
-};
-
-class SdchDictionaryFetcherTest : public ::testing::Test {
- public:
-  SdchDictionaryFetcherTest() {}
-
-  void SetUp() override {
-    DCHECK(!fetcher_.get());
-
-    URLRequestSpecifiedResponseJob::AddUrlHandler();
-    fetcher_delegate_.reset(new SdchTestDelegate);
-    context_.reset(new TestURLRequestContext);
-    fetcher_.reset(new SdchDictionaryFetcher(
-        fetcher_delegate_.get(), context_.get()));
-  }
-
-  void TearDown() override {
-    URLRequestSpecifiedResponseJob::RemoveUrlHandler();
-    fetcher_.reset();
-    context_.reset();
-    fetcher_delegate_.reset();
-  }
-
   SdchDictionaryFetcher* fetcher() { return fetcher_.get(); }
-  SdchTestDelegate* manager() { return fetcher_delegate_.get(); }
 
   // May not be called outside the SetUp()/TearDown() interval.
   int JobsRequested() {
@@ -139,9 +125,9 @@
   }
 
  private:
-  scoped_ptr<SdchTestDelegate> fetcher_delegate_;
   scoped_ptr<TestURLRequestContext> context_;
   scoped_ptr<SdchDictionaryFetcher> fetcher_;
+  std::vector<DictionaryAdditions> dictionary_additions;
 };
 
 // Schedule a fetch and make sure it happens.
@@ -151,11 +137,12 @@
 
   base::RunLoop().RunUntilIdle();
   EXPECT_EQ(1, JobsRequested());
-  std::vector<SdchTestDelegate::DictionaryAdditions> additions;
-  manager()->GetDictionaryAdditions(&additions);
+  std::vector<DictionaryAdditions> additions;
+  GetDictionaryAdditions(&additions);
   ASSERT_EQ(1u, additions.size());
-  EXPECT_EQ(URLRequestSpecifiedResponseJob::ExpectedResponseForURL(
-      dictionary_url), additions[0].dictionary_text);
+  EXPECT_EQ(
+      URLRequestSpecifiedResponseJob::ExpectedResponseForURL(dictionary_url),
+      additions[0].dictionary_text);
 }
 
 // Multiple fetches of the same URL should result in only one request.
@@ -167,11 +154,12 @@
   base::RunLoop().RunUntilIdle();
 
   EXPECT_EQ(1, JobsRequested());
-  std::vector<SdchTestDelegate::DictionaryAdditions> additions;
-  manager()->GetDictionaryAdditions(&additions);
+  std::vector<DictionaryAdditions> additions;
+  GetDictionaryAdditions(&additions);
   ASSERT_EQ(1u, additions.size());
-  EXPECT_EQ(URLRequestSpecifiedResponseJob::ExpectedResponseForURL(
-      dictionary_url), additions[0].dictionary_text);
+  EXPECT_EQ(
+      URLRequestSpecifiedResponseJob::ExpectedResponseForURL(dictionary_url),
+      additions[0].dictionary_text);
 }
 
 // A cancel should result in no actual requests being generated.
@@ -189,5 +177,4 @@
   // Synchronous execution may have resulted in a single job being scheduled.
   EXPECT_GE(1, JobsRequested());
 }
-
 }
diff --git a/net/url_request/url_fetcher_impl_unittest.cc b/net/url_request/url_fetcher_impl_unittest.cc
index 9b36621..fce7ace 100644
--- a/net/url_request/url_fetcher_impl_unittest.cc
+++ b/net/url_request/url_fetcher_impl_unittest.cc
@@ -11,6 +11,7 @@
 #include "base/files/file_util.h"
 #include "base/files/scoped_temp_dir.h"
 #include "base/message_loop/message_loop_proxy.h"
+#include "base/path_service.h"
 #include "base/strings/stringprintf.h"
 #include "base/synchronization/waitable_event.h"
 #include "base/threading/thread.h"
diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
index 7ae48e8..613d9bb 100644
--- a/net/url_request/url_request.cc
+++ b/net/url_request/url_request.cc
@@ -13,6 +13,7 @@
 #include "base/memory/singleton.h"
 #include "base/message_loop/message_loop.h"
 #include "base/metrics/stats_counters.h"
+#include "base/profiler/scoped_tracker.h"
 #include "base/stl_util.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/synchronization/lock.h"
@@ -832,6 +833,11 @@
     RestartWithJob(job);
   } else if (delegate_) {
     OnCallToDelegate();
+
+    // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+    tracked_objects::ScopedTracker tracking_profile(
+        FROM_HERE_WITH_EXPLICIT_FUNCTION(
+            "423948 URLRequest::Delegate::OnReceivedRedirect"));
     delegate_->OnReceivedRedirect(this, redirect_info, defer_redirect);
     // |this| may be have been destroyed here.
   }
@@ -840,7 +846,14 @@
 void URLRequest::NotifyBeforeNetworkStart(bool* defer) {
   if (delegate_ && !notified_before_network_start_) {
     OnCallToDelegate();
-    delegate_->OnBeforeNetworkStart(this, defer);
+    {
+      // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is
+      // fixed.
+      tracked_objects::ScopedTracker tracking_profile(
+          FROM_HERE_WITH_EXPLICIT_FUNCTION(
+              "423948 URLRequest::Delegate::OnBeforeNetworkStart"));
+      delegate_->OnBeforeNetworkStart(this, defer);
+    }
     if (!*defer)
       OnCallToDelegateComplete();
     notified_before_network_start_ = true;
@@ -881,6 +894,11 @@
         NotifyRequestCompleted();
 
       OnCallToDelegate();
+      // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is
+      // fixed.
+      tracked_objects::ScopedTracker tracking_profile(
+          FROM_HERE_WITH_EXPLICIT_FUNCTION(
+              "423948 URLRequest::Delegate::OnResponseStarted"));
       delegate_->OnResponseStarted(this);
       // Nothing may appear below this line as OnResponseStarted may delete
       // |this|.
@@ -1097,8 +1115,14 @@
     case NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION:
       // Defer to the URLRequest::Delegate, since the NetworkDelegate
       // didn't take an action.
-      if (delegate_)
+      if (delegate_) {
+        // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is
+        // fixed.
+        tracked_objects::ScopedTracker tracking_profile(
+            FROM_HERE_WITH_EXPLICIT_FUNCTION(
+                "423948 URLRequest::Delegate::OnAuthRequired"));
         delegate_->OnAuthRequired(this, auth_info.get());
+      }
       break;
 
     case NetworkDelegate::AUTH_REQUIRED_RESPONSE_SET_AUTH:
@@ -1117,14 +1141,24 @@
 
 void URLRequest::NotifyCertificateRequested(
     SSLCertRequestInfo* cert_request_info) {
-  if (delegate_)
+  if (delegate_) {
+    // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+    tracked_objects::ScopedTracker tracking_profile(
+        FROM_HERE_WITH_EXPLICIT_FUNCTION(
+            "423948 URLRequest::Delegate::OnCertificateRequested"));
     delegate_->OnCertificateRequested(this, cert_request_info);
+  }
 }
 
 void URLRequest::NotifySSLCertificateError(const SSLInfo& ssl_info,
                                            bool fatal) {
-  if (delegate_)
+  if (delegate_) {
+    // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+    tracked_objects::ScopedTracker tracking_profile(
+        FROM_HERE_WITH_EXPLICIT_FUNCTION(
+            "423948 URLRequest::Delegate::OnSSLCertificateError"));
     delegate_->OnSSLCertificateError(this, ssl_info, fatal);
+  }
 }
 
 bool URLRequest::CanGetCookies(const CookieList& cookie_list) const {
@@ -1165,8 +1199,13 @@
   if (bytes_read > 0 && !was_cached())
     NetworkChangeNotifier::NotifyDataReceived(*this, bytes_read);
 
-  if (delegate_)
+  if (delegate_) {
+    // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+    tracked_objects::ScopedTracker tracking_profile(
+        FROM_HERE_WITH_EXPLICIT_FUNCTION(
+            "423948 URLRequest::Delegate::OnReadCompleted"));
     delegate_->OnReadCompleted(this, bytes_read);
+  }
 
   // Nothing below this line as OnReadCompleted may delete |this|.
 }
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
index a53bbab..4261b92 100644
--- a/net/url_request/url_request_http_job.cc
+++ b/net/url_request/url_request_http_job.cc
@@ -13,6 +13,7 @@
 #include "base/message_loop/message_loop.h"
 #include "base/metrics/field_trial.h"
 #include "base/metrics/histogram.h"
+#include "base/profiler/scoped_tracker.h"
 #include "base/rand_util.h"
 #include "base/strings/string_util.h"
 #include "base/time/time.h"
@@ -334,7 +335,7 @@
       // Resolve suggested URL relative to request url.
       GURL sdch_dictionary_url = request_->url().Resolve(url_text);
       if (sdch_dictionary_url.is_valid()) {
-        sdch_manager->FetchDictionary(request_->url(), sdch_dictionary_url);
+        sdch_manager->OnGetDictionary(request_->url(), sdch_dictionary_url);
       }
     }
   }
@@ -783,6 +784,11 @@
 }
 
 void URLRequestHttpJob::OnStartCompleted(int result) {
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/424359 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "424359 URLRequestHttpJob::OnStartCompleted"));
+
   RecordTimer();
 
   // If the request was destroyed, then there is no more work to do.
@@ -886,6 +892,11 @@
 }
 
 void URLRequestHttpJob::OnReadCompleted(int result) {
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/424359 is fixed.
+  tracked_objects::ScopedTracker tracking_profile(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "424359 URLRequestHttpJob::OnReadCompleted"));
+
   read_in_progress_ = false;
 
   if (ShouldFixMismatchedContentLength(result))
diff --git a/net/url_request/url_request_http_job_unittest.cc b/net/url_request/url_request_http_job_unittest.cc
index b8892c7..84fd7c0 100644
--- a/net/url_request/url_request_http_job_unittest.cc
+++ b/net/url_request/url_request_http_job_unittest.cc
@@ -52,7 +52,7 @@
       : req_(context_.CreateRequest(GURL("http://www.example.com"),
                                     DEFAULT_PRIORITY,
                                     &delegate_,
-                                    NULL)) {
+                                    nullptr)) {
     context_.set_http_transaction_factory(&network_layer_);
   }
 
@@ -186,7 +186,7 @@
 // constructor is called.
 class URLRequestHttpJobWebSocketTestBase : public ::testing::Test {
  protected:
-  URLRequestHttpJobWebSocketTestBase() : socket_data_(NULL, 0, NULL, 0),
+  URLRequestHttpJobWebSocketTestBase() : socket_data_(nullptr, 0, nullptr, 0),
                                          context_(true) {
     // A Network Delegate is required for the WebSocketHandshakeStreamBase
     // object to be passed on to the HttpNetworkTransaction.
@@ -212,7 +212,7 @@
       : req_(context_.CreateRequest(GURL("ws://www.example.com"),
                                     DEFAULT_PRIORITY,
                                     &delegate_,
-                                    NULL)) {
+                                    nullptr)) {
     // The TestNetworkDelegate expects a call to NotifyBeforeURLRequest before
     // anything else happens.
     GURL url("ws://localhost/");
@@ -304,6 +304,12 @@
 
   void SetPriority(RequestPriority priority) override {}
 
+  UploadProgress GetUploadProgress() const override {
+    return UploadProgress();
+  }
+
+  HttpStream* RenewStreamForAuth() override { return nullptr; }
+
   // Fake implementation of WebSocketHandshakeStreamBase method(s)
   scoped_ptr<WebSocketStream> Upgrade() override {
     return scoped_ptr<WebSocketStream>();
diff --git a/net/url_request/url_request_job.cc b/net/url_request/url_request_job.cc
index 16f7b71..3610195 100644
--- a/net/url_request/url_request_job.cc
+++ b/net/url_request/url_request_job.cc
@@ -326,19 +326,45 @@
   // survival until we can get out of this method.
   scoped_refptr<URLRequestJob> self_preservation(this);
 
-  if (request_)
+  if (request_) {
+    // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+    tracked_objects::ScopedTracker tracking_profile1(
+        FROM_HERE_WITH_EXPLICIT_FUNCTION(
+            "423948 URLRequestJob::NotifyHeadersComplete 1"));
+
     request_->OnHeadersComplete();
+  }
+
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile2(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 URLRequestJob::NotifyHeadersComplete 2"));
 
   GURL new_location;
   int http_status_code;
   if (IsRedirectResponse(&new_location, &http_status_code)) {
+    // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+    tracked_objects::ScopedTracker tracking_profile3(
+        FROM_HERE_WITH_EXPLICIT_FUNCTION(
+            "423948 URLRequestJob::NotifyHeadersComplete 3"));
+
     // Redirect response bodies are not read. Notify the transaction
     // so it does not treat being stopped as an error.
     DoneReadingRedirectResponse();
 
+    // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+    tracked_objects::ScopedTracker tracking_profile4(
+        FROM_HERE_WITH_EXPLICIT_FUNCTION(
+            "423948 URLRequestJob::NotifyHeadersComplete 4"));
+
     RedirectInfo redirect_info =
         ComputeRedirectInfo(new_location, http_status_code);
 
+    // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+    tracked_objects::ScopedTracker tracking_profile5(
+        FROM_HERE_WITH_EXPLICIT_FUNCTION(
+            "423948 URLRequestJob::NotifyHeadersComplete 5"));
+
     bool defer_redirect = false;
     request_->NotifyReceivedRedirect(redirect_info, &defer_redirect);
 
@@ -347,6 +373,11 @@
     if (!request_ || !request_->has_delegate())
       return;
 
+    // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+    tracked_objects::ScopedTracker tracking_profile6(
+        FROM_HERE_WITH_EXPLICIT_FUNCTION(
+            "423948 URLRequestJob::NotifyHeadersComplete 6"));
+
     // If we were not cancelled, then maybe follow the redirect.
     if (request_->status().is_success()) {
       if (defer_redirect) {
@@ -357,8 +388,19 @@
       return;
     }
   } else if (NeedsAuth()) {
+    // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+    tracked_objects::ScopedTracker tracking_profile7(
+        FROM_HERE_WITH_EXPLICIT_FUNCTION(
+            "423948 URLRequestJob::NotifyHeadersComplete 7"));
+
     scoped_refptr<AuthChallengeInfo> auth_info;
     GetAuthChallengeInfo(&auth_info);
+
+    // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+    tracked_objects::ScopedTracker tracking_profile8(
+        FROM_HERE_WITH_EXPLICIT_FUNCTION(
+            "423948 URLRequestJob::NotifyHeadersComplete 8"));
+
     // Need to check for a NULL auth_info because the server may have failed
     // to send a challenge with the 401 response.
     if (auth_info.get()) {
@@ -368,6 +410,11 @@
     }
   }
 
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile9(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 URLRequestJob::NotifyHeadersComplete 9"));
+
   has_handled_response_ = true;
   if (request_->status().is_success())
     filter_.reset(SetupFilter());
@@ -379,6 +426,11 @@
       base::StringToInt64(content_length, &expected_content_size_);
   }
 
+  // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
+  tracked_objects::ScopedTracker tracking_profile10(
+      FROM_HERE_WITH_EXPLICIT_FUNCTION(
+          "423948 URLRequestJob::NotifyHeadersComplete 10"));
+
   request_->NotifyResponseStarted();
 }
 
diff --git a/net/websockets/websocket_basic_handshake_stream.cc b/net/websockets/websocket_basic_handshake_stream.cc
index 6255d8f..769b802 100644
--- a/net/websockets/websocket_basic_handshake_stream.cc
+++ b/net/websockets/websocket_basic_handshake_stream.cc
@@ -127,7 +127,7 @@
 GetHeaderResult GetSingleHeaderValue(const HttpResponseHeaders* headers,
                                      const base::StringPiece& name,
                                      std::string* value) {
-  void* state = NULL;
+  void* state = nullptr;
   size_t num_values = 0;
   std::string temp_value;
   while (headers->EnumerateHeader(&state, name, &temp_value)) {
@@ -211,7 +211,7 @@
     const std::vector<std::string>& requested_sub_protocols,
     std::string* sub_protocol,
     std::string* failure_message) {
-  void* state = NULL;
+  void* state = nullptr;
   std::string value;
   base::hash_set<std::string> requested_set(requested_sub_protocols.begin(),
                                             requested_sub_protocols.end());
@@ -329,7 +329,7 @@
                         std::string* extensions,
                         std::string* failure_message,
                         WebSocketExtensionParams* params) {
-  void* state = NULL;
+  void* state = nullptr;
   std::string value;
   std::vector<std::string> accepted_extensions;
   // TODO(ricea): If adding support for additional extensions, generalise this
@@ -380,7 +380,7 @@
     std::string* failure_message)
     : state_(connection.release(), using_proxy),
       connect_delegate_(connect_delegate),
-      http_response_info_(NULL),
+      http_response_info_(nullptr),
       requested_sub_protocols_(requested_sub_protocols),
       requested_extensions_(requested_extensions),
       failure_message_(failure_message) {
@@ -530,6 +530,15 @@
   // gone, then copy whatever has happened there over here.
 }
 
+UploadProgress WebSocketBasicHandshakeStream::GetUploadProgress() const {
+  return UploadProgress();
+}
+
+HttpStream* WebSocketBasicHandshakeStream::RenewStreamForAuth() {
+  // Return null because we don't support renewing the stream.
+  return nullptr;
+}
+
 scoped_ptr<WebSocketStream> WebSocketBasicHandshakeStream::Upgrade() {
   // The HttpStreamParser object has a pointer to our ClientSocketHandle. Make
   // sure it does not touch it again before it is destroyed.
diff --git a/net/websockets/websocket_basic_handshake_stream.h b/net/websockets/websocket_basic_handshake_stream.h
index 9508ec7..67458b0 100644
--- a/net/websockets/websocket_basic_handshake_stream.h
+++ b/net/websockets/websocket_basic_handshake_stream.h
@@ -63,6 +63,9 @@
   bool IsSpdyHttpStream() const override;
   void Drain(HttpNetworkSession* session) override;
   void SetPriority(RequestPriority priority) override;
+  UploadProgress GetUploadProgress() const override;
+  HttpStream* RenewStreamForAuth() override;
+
 
   // This is called from the top level once correct handshake response headers
   // have been received. It creates an appropriate subclass of WebSocketStream
diff --git a/net/websockets/websocket_channel.cc b/net/websockets/websocket_channel.cc
index 70c080f..598b5e6 100644
--- a/net/websockets/websocket_channel.cc
+++ b/net/websockets/websocket_channel.cc
@@ -582,7 +582,8 @@
     // |this| has been deleted.
     return;
   }
-  ignore_result(event_interface_->OnFailChannel(message_copy));
+  ChannelState result = event_interface_->OnFailChannel(message_copy);
+  DCHECK_EQ(CHANNEL_DELETED, result);
   // |this| has been deleted.
 }
 
@@ -1000,7 +1001,9 @@
   // handshake.
   stream_->Close();
   SetState(CLOSED);
-  return event_interface_->OnFailChannel(message);
+  ChannelState result = event_interface_->OnFailChannel(message);
+  DCHECK_EQ(CHANNEL_DELETED, result);
+  return result;
 }
 
 ChannelState WebSocketChannel::SendClose(uint16 code,
diff --git a/net/websockets/websocket_handshake_stream_base.h b/net/websockets/websocket_handshake_stream_base.h
index 6ad0f6b..a858feb 100644
--- a/net/websockets/websocket_handshake_stream_base.h
+++ b/net/websockets/websocket_handshake_stream_base.h
@@ -15,7 +15,7 @@
 #include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/supports_user_data.h"
-#include "net/http/http_stream_base.h"
+#include "net/http/http_stream.h"
 #include "net/url_request/websocket_handshake_userdata_key.h"
 #include "net/websockets/websocket_stream.h"
 
@@ -28,7 +28,7 @@
 // WebSocketBasicHandshakeStream.  net/http code uses this interface to handle
 // WebSocketBasicHandshakeStream when it needs to be treated differently from
 // HttpStreamBase.
-class NET_EXPORT WebSocketHandshakeStreamBase : public HttpStreamBase {
+class NET_EXPORT WebSocketHandshakeStreamBase : public HttpStream {
  public:
   // An object that stores data needed for the creation of a
   // WebSocketBasicHandshakeStream object. A new CreateHelper is used for each
diff --git a/skia/BUILD.gn b/skia/BUILD.gn
index 5dd70ac..a57b6a1 100644
--- a/skia/BUILD.gn
+++ b/skia/BUILD.gn
@@ -9,7 +9,7 @@
 }
 
 skia_support_gpu = !is_ios
-skia_support_pdf = !is_ios && printing_mode != 0
+skia_support_pdf = !is_ios && (enable_basic_printing || enable_print_preview)
 
 # The list of Skia defines that are to be set for chromium.
 gypi_skia_defines = exec_script(
@@ -422,7 +422,7 @@
   if (is_win) {
     sources -= [ "ext/SkThread_chrome.cc" ]
   }
-  if (is_android && printing_mode == 0) {
+  if (is_android && (!enable_basic_printing && !enable_print_preview)) {
     sources -= [
       "ext/skia_utils_base.cc",
       "ext/vector_platform_device_skia.cc"
diff --git a/skia/skia_chrome.gypi b/skia/skia_chrome.gypi
index f023b28..0f97556 100644
--- a/skia/skia_chrome.gypi
+++ b/skia/skia_chrome.gypi
@@ -87,12 +87,13 @@
     'ext/vector_platform_device_skia.h',
   ],
   'conditions': [
-    [ 'OS == "android" and enable_printing == 0', {
+    [ 'OS == "android" and '
+      'enable_basic_printing==0 and enable_print_preview==0', {
       'sources!': [
         'ext/skia_utils_base.cc',
       ],
     }],
-    [ 'enable_printing == 0', {
+    [ 'enable_basic_printing==0 and enable_print_preview==0', {
       'sources!': [
         'ext/vector_platform_device_skia.cc',
       ],
diff --git a/skia/skia_common.gypi b/skia/skia_common.gypi
index ff42074..13a4974 100644
--- a/skia/skia_common.gypi
+++ b/skia/skia_common.gypi
@@ -134,7 +134,7 @@
         }, {
           'skia_support_gpu': 1,
         }],
-        ['OS=="ios" or enable_printing == 0', {
+        ['OS=="ios" or (enable_basic_printing==0 and enable_print_preview==0)', {
           'skia_support_pdf': 0,
         }, {
           'skia_support_pdf': 1,
diff --git a/testing/buildbot/chromium.mac.json b/testing/buildbot/chromium.mac.json
index 3d656b3..c1bdf11 100644
--- a/testing/buildbot/chromium.mac.json
+++ b/testing/buildbot/chromium.mac.json
@@ -1,5 +1,5 @@
 {
-  "Mac10.6 Tests (1)": {
+  "Mac10.6 Tests": {
     "gtest_tests": [
       "accessibility_unittests",
       "app_list_unittests",
@@ -97,7 +97,7 @@
       }
     ]
   },
-  "Mac10.7 Tests (1)": {
+  "Mac10.8 Tests": {
     "gtest_tests": [
       "accessibility_unittests",
       "app_list_unittests",
@@ -195,7 +195,7 @@
       }
     ]
   },
-  "Mac 10.6 Tests (dbg)(1)": {
+  "Mac10.9 Tests": {
     "gtest_tests": [
       "accessibility_unittests",
       "app_list_unittests",
@@ -280,20 +280,12 @@
     ],
     "scripts": [
       {
-        "name": "telemetry_unittests",
-        "script": "telemetry_unittests.py"
-      },
-      {
-        "name": "telemetry_perf_unittests",
-        "script": "telemetry_perf_unittests.py"
-      },
-      {
         "name": "nacl_integration",
         "script": "nacl_integration.py"
       }
     ]
   },
-  "Mac 10.7 Tests (dbg)(1)": {
+  "Mac10.9 Tests (dbg)": {
     "gtest_tests": [
       "accessibility_unittests",
       "app_list_unittests",
@@ -379,14 +371,6 @@
     ],
     "scripts": [
       {
-        "name": "telemetry_unittests",
-        "script": "telemetry_unittests.py"
-      },
-      {
-        "name": "telemetry_perf_unittests",
-        "script": "telemetry_perf_unittests.py"
-      },
-      {
         "name": "nacl_integration",
         "script": "nacl_integration.py"
       }
diff --git a/testing/buildbot/chromium_trybot.json b/testing/buildbot/chromium_trybot.json
index e0f6955..9c7f5c9 100644
--- a/testing/buildbot/chromium_trybot.json
+++ b/testing/buildbot/chromium_trybot.json
@@ -118,10 +118,6 @@
     "mojo_public_environment_unittests",
     "mojo_public_system_unittests",
     "mojo_public_utility_unittests",
-    {
-      "test": "mojo_application_manager_unittests",
-      "platforms": ["linux"]
-    },
     "mojo_system_unittests",
     {
       "test": "nacl_loader_unittests",
diff --git a/testing/chromoting/chromoting_integration_tests.isolate b/testing/chromoting/chromoting_integration_tests.isolate
index b0c2d00..db21d82 100644
--- a/testing/chromoting/chromoting_integration_tests.isolate
+++ b/testing/chromoting/chromoting_integration_tests.isolate
@@ -49,6 +49,23 @@
         ],
       },
     }],
+    ['OS=="win"', {
+      'variables': {
+        'files': [
+          '<(PRODUCT_DIR)/chrome_elf.dll',
+          '<(PRODUCT_DIR)/ffmpegsumo.dll',
+        ],
+      },
+    }],
+    ['OS=="mac"', {
+      'variables': {
+        'files': [
+          '<(PRODUCT_DIR)/<(mac_product_name).app/',
+          '<(PRODUCT_DIR)/exif.so',
+          '<(PRODUCT_DIR)/ffmpegsumo.so',
+        ],
+      },
+    }],
     ['OS=="mac" or OS=="win"', {
       'variables': {
         'command': [
diff --git a/third_party/boringssl/BUILD.gn b/third_party/boringssl/BUILD.gn
index 5dffa65..ccd8424 100644
--- a/third_party/boringssl/BUILD.gn
+++ b/third_party/boringssl/BUILD.gn
@@ -25,11 +25,16 @@
     "scope",
     [ "//third_party/boringssl/boringssl.gypi" ])
 
-# Win32's assembly is built by Yasm. The other ports use the platform assembler.
-if (cpu_arch == "x86" && is_win) {
+# Windows' assembly is built with Yasm. The other platforms use the platform
+# assembler.
+if (is_win) {
   import("//third_party/yasm/yasm_assemble.gni")
   yasm_assemble("boringssl_asm") {
-    sources = gypi_values.boringssl_win_x86_sources
+    if (cpu_arch == "x64") {
+      sources = gypi_values.boringssl_win_x86_64_sources
+    } else if (cpu_arch == "x86") {
+      sources = gypi_values.boringssl_win_x86_sources
+    }
   }
 }
 
@@ -61,13 +66,19 @@
     "src/crypto",
   ]
 
+  if (is_win) {
+    # TODO(davidben): Fix size_t truncations in BoringSSL.
+    # https://crbug.com/429039
+    cflags += [ "/wd4267"]
+  }
+
   if (cpu_arch == "x64") {
     if (is_mac) {
       sources += gypi_values.boringssl_mac_x86_64_sources
     } else if (is_linux || is_android) {
       sources += gypi_values.boringssl_linux_x86_64_sources
     } else if (is_win) {
-      sources += gypi_values.boringssl_win_x86_64_sources
+      deps += [ ":boringssl_asm" ]
     } else {
       defines += [ "OPENSSL_NO_ASM" ]
     }
diff --git a/third_party/boringssl/boringssl.gyp b/third_party/boringssl/boringssl.gyp
index c3760c0..d0b716a 100644
--- a/third_party/boringssl/boringssl.gyp
+++ b/third_party/boringssl/boringssl.gyp
@@ -17,6 +17,9 @@
         'BORINGSSL_IMPLEMENTATION',
         'BORINGSSL_NO_STATIC_INITIALIZER',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
       'conditions': [
         ['component == "shared_library"', {
           'defines': [
@@ -36,8 +39,8 @@
             }],
             ['OS == "win"', {
               'sources': [ '<@(boringssl_win_x86_sources)' ],
-              # Win32 is built with Yasm. The other ports use the platform
-              # assembler.
+              # Windows' assembly is built with Yasm. The other platforms use
+              # the platform assembler.
               'variables': {
                 'yasm_output_path': '<(SHARED_INTERMEDIATE_DIR)/third_party/boringssl',
               },
@@ -60,6 +63,14 @@
             }],
             ['OS == "win"', {
               'sources': [ '<@(boringssl_win_x86_64_sources)' ],
+              # Windows' assembly is built with Yasm. The other platforms use
+              # the platform assembler.
+              'variables': {
+                'yasm_output_path': '<(SHARED_INTERMEDIATE_DIR)/third_party/boringssl',
+              },
+              'includes': [
+                '../yasm/yasm_compile.gypi',
+              ],
             }],
             ['OS != "mac" and OS != "linux" and OS != "win" and OS != "android"', {
               'defines': [ 'OPENSSL_NO_ASM' ],
diff --git a/third_party/boringssl/boringssl_tests.gypi b/third_party/boringssl/boringssl_tests.gypi
index 04f0c43..3f7cd53 100644
--- a/third_party/boringssl/boringssl_tests.gypi
+++ b/third_party/boringssl/boringssl_tests.gypi
@@ -15,6 +15,9 @@
       'sources': [
         'src/crypto/base64/base64_test.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
     {
       'target_name': 'boringssl_bio_test',
@@ -25,6 +28,9 @@
       'sources': [
         'src/crypto/bio/bio_test.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
     {
       'target_name': 'boringssl_bn_test',
@@ -35,6 +41,9 @@
       'sources': [
         'src/crypto/bn/bn_test.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
     {
       'target_name': 'boringssl_bytestring_test',
@@ -45,6 +54,9 @@
       'sources': [
         'src/crypto/bytestring/bytestring_test.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
     {
       'target_name': 'boringssl_aead_test',
@@ -55,6 +67,9 @@
       'sources': [
         'src/crypto/cipher/aead_test.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
     {
       'target_name': 'boringssl_cipher_test',
@@ -65,6 +80,9 @@
       'sources': [
         'src/crypto/cipher/cipher_test.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
     {
       'target_name': 'boringssl_dh_test',
@@ -75,6 +93,9 @@
       'sources': [
         'src/crypto/dh/dh_test.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
     {
       'target_name': 'boringssl_dsa_test',
@@ -85,6 +106,9 @@
       'sources': [
         'src/crypto/dsa/dsa_test.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
     {
       'target_name': 'boringssl_example_mul',
@@ -95,6 +119,9 @@
       'sources': [
         'src/crypto/ec/example_mul.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
     {
       'target_name': 'boringssl_ecdsa_test',
@@ -105,6 +132,9 @@
       'sources': [
         'src/crypto/ecdsa/ecdsa_test.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
     {
       'target_name': 'boringssl_err_test',
@@ -115,16 +145,22 @@
       'sources': [
         'src/crypto/err/err_test.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
     {
-      'target_name': 'boringssl_example_sign',
+      'target_name': 'boringssl_evp_test',
       'type': 'executable',
       'dependencies': [
         'boringssl.gyp:boringssl',
       ],
       'sources': [
-        'src/crypto/evp/example_sign.c',
+        'src/crypto/evp/evp_test.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
     {
       'target_name': 'boringssl_hmac_test',
@@ -135,6 +171,9 @@
       'sources': [
         'src/crypto/hmac/hmac_test.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
     {
       'target_name': 'boringssl_lhash_test',
@@ -145,6 +184,9 @@
       'sources': [
         'src/crypto/lhash/lhash_test.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
     {
       'target_name': 'boringssl_md5_test',
@@ -155,6 +197,9 @@
       'sources': [
         'src/crypto/md5/md5_test.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
     {
       'target_name': 'boringssl_gcm_test',
@@ -165,6 +210,9 @@
       'sources': [
         'src/crypto/modes/gcm_test.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
     {
       'target_name': 'boringssl_pkcs12_test',
@@ -175,6 +223,9 @@
       'sources': [
         'src/crypto/pkcs8/pkcs12_test.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
     {
       'target_name': 'boringssl_rsa_test',
@@ -185,6 +236,9 @@
       'sources': [
         'src/crypto/rsa/rsa_test.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
     {
       'target_name': 'boringssl_sha1_test',
@@ -195,6 +249,9 @@
       'sources': [
         'src/crypto/sha/sha1_test.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
     {
       'target_name': 'boringssl_pkcs7_test',
@@ -205,6 +262,9 @@
       'sources': [
         'src/crypto/x509/pkcs7_test.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
     {
       'target_name': 'boringssl_pqueue_test',
@@ -215,6 +275,9 @@
       'sources': [
         'src/ssl/pqueue/pqueue_test.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
     {
       'target_name': 'boringssl_ssl_test',
@@ -225,6 +288,9 @@
       'sources': [
         'src/ssl/ssl_test.c',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },
   ],
   'variables': {
@@ -239,8 +305,8 @@
       'boringssl_dsa_test',
       'boringssl_ecdsa_test',
       'boringssl_err_test',
+      'boringssl_evp_test',
       'boringssl_example_mul',
-      'boringssl_example_sign',
       'boringssl_gcm_test',
       'boringssl_hmac_test',
       'boringssl_lhash_test',
diff --git a/third_party/boringssl/boringssl_unittest.cc b/third_party/boringssl/boringssl_unittest.cc
index b028921..1a62cac 100644
--- a/third_party/boringssl/boringssl_unittest.cc
+++ b/third_party/boringssl/boringssl_unittest.cc
@@ -219,8 +219,8 @@
   TestSimple("example_mul");
 }
 
-TEST(BoringSSL, ExampleSign) {
-  TestSimple("example_sign");
+TEST(BoringSSL, EVP) {
+  TestSimple("evp_test");
 }
 
 TEST(BoringSSL, SSL) {
diff --git a/third_party/boringssl/update_gypi_and_asm.py b/third_party/boringssl/update_gypi_and_asm.py
index 41196a5..751b2db 100644
--- a/third_party/boringssl/update_gypi_and_asm.py
+++ b/third_party/boringssl/update_gypi_and_asm.py
@@ -19,7 +19,7 @@
     ('mac', 'x86', 'macosx', ['-fPIC'], 'S'),
     ('mac', 'x86_64', 'macosx', [''], 'S'),
     ('win', 'x86', 'win32n', [''], 'asm'),
-    ('win', 'x86_64', 'masm', [''], 'asm'),
+    ('win', 'x86_64', 'nasm', [''], 'asm'),
 ]
 
 # NON_PERL_FILES enumerates assembly files that are not processed by the
@@ -220,6 +220,9 @@
       'sources': [
         '%s',
       ],
+      # TODO(davidben): Fix size_t truncations in BoringSSL.
+      # https://crbug.com/429039
+      'msvs_disabled_warnings': [ 4267, ],
     },\n""" % (test_name, test))
       test_names.append(test_name)
 
diff --git a/third_party/boringssl/win-x86_64/crypto/aes/aes-x86_64.asm b/third_party/boringssl/win-x86_64/crypto/aes/aes-x86_64.asm
index 96cbb4b..53394f0 100644
--- a/third_party/boringssl/win-x86_64/crypto/aes/aes-x86_64.asm
+++ b/third_party/boringssl/win-x86_64/crypto/aes/aes-x86_64.asm
@@ -1,89 +1,93 @@
-OPTION	DOTNAME
-.text$	SEGMENT ALIGN(256) 'CODE'
+default	rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section	.text code align=64
+
 
 ALIGN	16
-_x86_64_AES_encrypt	PROC PRIVATE
-	xor	eax,DWORD PTR[r15]
-	xor	ebx,DWORD PTR[4+r15]
-	xor	ecx,DWORD PTR[8+r15]
-	xor	edx,DWORD PTR[12+r15]
+_x86_64_AES_encrypt:
+	xor	eax,DWORD[r15]
+	xor	ebx,DWORD[4+r15]
+	xor	ecx,DWORD[8+r15]
+	xor	edx,DWORD[12+r15]
 
-	mov	r13d,DWORD PTR[240+r15]
+	mov	r13d,DWORD[240+r15]
 	sub	r13d,1
-	jmp	$L$enc_loop
+	jmp	NEAR $L$enc_loop
 ALIGN	16
-$L$enc_loop::
+$L$enc_loop:
 
 	movzx	esi,al
 	movzx	edi,bl
 	movzx	ebp,cl
-	mov	r10d,DWORD PTR[rsi*8+r14]
-	mov	r11d,DWORD PTR[rdi*8+r14]
-	mov	r12d,DWORD PTR[rbp*8+r14]
+	mov	r10d,DWORD[rsi*8+r14]
+	mov	r11d,DWORD[rdi*8+r14]
+	mov	r12d,DWORD[rbp*8+r14]
 
 	movzx	esi,bh
 	movzx	edi,ch
 	movzx	ebp,dl
-	xor	r10d,DWORD PTR[3+rsi*8+r14]
-	xor	r11d,DWORD PTR[3+rdi*8+r14]
-	mov	r8d,DWORD PTR[rbp*8+r14]
+	xor	r10d,DWORD[3+rsi*8+r14]
+	xor	r11d,DWORD[3+rdi*8+r14]
+	mov	r8d,DWORD[rbp*8+r14]
 
 	movzx	esi,dh
 	shr	ecx,16
 	movzx	ebp,ah
-	xor	r12d,DWORD PTR[3+rsi*8+r14]
+	xor	r12d,DWORD[3+rsi*8+r14]
 	shr	edx,16
-	xor	r8d,DWORD PTR[3+rbp*8+r14]
+	xor	r8d,DWORD[3+rbp*8+r14]
 
 	shr	ebx,16
-	lea	r15,QWORD PTR[16+r15]
+	lea	r15,[16+r15]
 	shr	eax,16
 
 	movzx	esi,cl
 	movzx	edi,dl
 	movzx	ebp,al
-	xor	r10d,DWORD PTR[2+rsi*8+r14]
-	xor	r11d,DWORD PTR[2+rdi*8+r14]
-	xor	r12d,DWORD PTR[2+rbp*8+r14]
+	xor	r10d,DWORD[2+rsi*8+r14]
+	xor	r11d,DWORD[2+rdi*8+r14]
+	xor	r12d,DWORD[2+rbp*8+r14]
 
 	movzx	esi,dh
 	movzx	edi,ah
 	movzx	ebp,bl
-	xor	r10d,DWORD PTR[1+rsi*8+r14]
-	xor	r11d,DWORD PTR[1+rdi*8+r14]
-	xor	r8d,DWORD PTR[2+rbp*8+r14]
+	xor	r10d,DWORD[1+rsi*8+r14]
+	xor	r11d,DWORD[1+rdi*8+r14]
+	xor	r8d,DWORD[2+rbp*8+r14]
 
-	mov	edx,DWORD PTR[12+r15]
+	mov	edx,DWORD[12+r15]
 	movzx	edi,bh
 	movzx	ebp,ch
-	mov	eax,DWORD PTR[r15]
-	xor	r12d,DWORD PTR[1+rdi*8+r14]
-	xor	r8d,DWORD PTR[1+rbp*8+r14]
+	mov	eax,DWORD[r15]
+	xor	r12d,DWORD[1+rdi*8+r14]
+	xor	r8d,DWORD[1+rbp*8+r14]
 
-	mov	ebx,DWORD PTR[4+r15]
-	mov	ecx,DWORD PTR[8+r15]
+	mov	ebx,DWORD[4+r15]
+	mov	ecx,DWORD[8+r15]
 	xor	eax,r10d
 	xor	ebx,r11d
 	xor	ecx,r12d
 	xor	edx,r8d
 	sub	r13d,1
-	jnz	$L$enc_loop
+	jnz	NEAR $L$enc_loop
 	movzx	esi,al
 	movzx	edi,bl
 	movzx	ebp,cl
-	movzx	r10d,BYTE PTR[2+rsi*8+r14]
-	movzx	r11d,BYTE PTR[2+rdi*8+r14]
-	movzx	r12d,BYTE PTR[2+rbp*8+r14]
+	movzx	r10d,BYTE[2+rsi*8+r14]
+	movzx	r11d,BYTE[2+rdi*8+r14]
+	movzx	r12d,BYTE[2+rbp*8+r14]
 
 	movzx	esi,dl
 	movzx	edi,bh
 	movzx	ebp,ch
-	movzx	r8d,BYTE PTR[2+rsi*8+r14]
-	mov	edi,DWORD PTR[rdi*8+r14]
-	mov	ebp,DWORD PTR[rbp*8+r14]
+	movzx	r8d,BYTE[2+rsi*8+r14]
+	mov	edi,DWORD[rdi*8+r14]
+	mov	ebp,DWORD[rbp*8+r14]
 
-	and	edi,00000ff00h
-	and	ebp,00000ff00h
+	and	edi,0x0000ff00
+	and	ebp,0x0000ff00
 
 	xor	r10d,edi
 	xor	r11d,ebp
@@ -92,11 +96,11 @@
 	movzx	esi,dh
 	movzx	edi,ah
 	shr	edx,16
-	mov	esi,DWORD PTR[rsi*8+r14]
-	mov	edi,DWORD PTR[rdi*8+r14]
+	mov	esi,DWORD[rsi*8+r14]
+	mov	edi,DWORD[rdi*8+r14]
 
-	and	esi,00000ff00h
-	and	edi,00000ff00h
+	and	esi,0x0000ff00
+	and	edi,0x0000ff00
 	shr	ebx,16
 	xor	r12d,esi
 	xor	r8d,edi
@@ -105,13 +109,13 @@
 	movzx	esi,cl
 	movzx	edi,dl
 	movzx	ebp,al
-	mov	esi,DWORD PTR[rsi*8+r14]
-	mov	edi,DWORD PTR[rdi*8+r14]
-	mov	ebp,DWORD PTR[rbp*8+r14]
+	mov	esi,DWORD[rsi*8+r14]
+	mov	edi,DWORD[rdi*8+r14]
+	mov	ebp,DWORD[rbp*8+r14]
 
-	and	esi,000ff0000h
-	and	edi,000ff0000h
-	and	ebp,000ff0000h
+	and	esi,0x00ff0000
+	and	edi,0x00ff0000
+	and	ebp,0x00ff0000
 
 	xor	r10d,esi
 	xor	r11d,edi
@@ -120,13 +124,13 @@
 	movzx	esi,bl
 	movzx	edi,dh
 	movzx	ebp,ah
-	mov	esi,DWORD PTR[rsi*8+r14]
-	mov	edi,DWORD PTR[2+rdi*8+r14]
-	mov	ebp,DWORD PTR[2+rbp*8+r14]
+	mov	esi,DWORD[rsi*8+r14]
+	mov	edi,DWORD[2+rdi*8+r14]
+	mov	ebp,DWORD[2+rbp*8+r14]
 
-	and	esi,000ff0000h
-	and	edi,0ff000000h
-	and	ebp,0ff000000h
+	and	esi,0x00ff0000
+	and	edi,0xff000000
+	and	ebp,0xff000000
 
 	xor	r8d,esi
 	xor	r10d,edi
@@ -134,45 +138,45 @@
 
 	movzx	esi,bh
 	movzx	edi,ch
-	mov	edx,DWORD PTR[((16+12))+r15]
-	mov	esi,DWORD PTR[2+rsi*8+r14]
-	mov	edi,DWORD PTR[2+rdi*8+r14]
-	mov	eax,DWORD PTR[((16+0))+r15]
+	mov	edx,DWORD[((16+12))+r15]
+	mov	esi,DWORD[2+rsi*8+r14]
+	mov	edi,DWORD[2+rdi*8+r14]
+	mov	eax,DWORD[((16+0))+r15]
 
-	and	esi,0ff000000h
-	and	edi,0ff000000h
+	and	esi,0xff000000
+	and	edi,0xff000000
 
 	xor	r12d,esi
 	xor	r8d,edi
 
-	mov	ebx,DWORD PTR[((16+4))+r15]
-	mov	ecx,DWORD PTR[((16+8))+r15]
+	mov	ebx,DWORD[((16+4))+r15]
+	mov	ecx,DWORD[((16+8))+r15]
 	xor	eax,r10d
 	xor	ebx,r11d
 	xor	ecx,r12d
 	xor	edx,r8d
-DB	0f3h,0c3h
-_x86_64_AES_encrypt	ENDP
+DB	0xf3,0xc3
+
 
 ALIGN	16
-_x86_64_AES_encrypt_compact	PROC PRIVATE
-	lea	r8,QWORD PTR[128+r14]
-	mov	edi,DWORD PTR[((0-128))+r8]
-	mov	ebp,DWORD PTR[((32-128))+r8]
-	mov	r10d,DWORD PTR[((64-128))+r8]
-	mov	r11d,DWORD PTR[((96-128))+r8]
-	mov	edi,DWORD PTR[((128-128))+r8]
-	mov	ebp,DWORD PTR[((160-128))+r8]
-	mov	r10d,DWORD PTR[((192-128))+r8]
-	mov	r11d,DWORD PTR[((224-128))+r8]
-	jmp	$L$enc_loop_compact
+_x86_64_AES_encrypt_compact:
+	lea	r8,[128+r14]
+	mov	edi,DWORD[((0-128))+r8]
+	mov	ebp,DWORD[((32-128))+r8]
+	mov	r10d,DWORD[((64-128))+r8]
+	mov	r11d,DWORD[((96-128))+r8]
+	mov	edi,DWORD[((128-128))+r8]
+	mov	ebp,DWORD[((160-128))+r8]
+	mov	r10d,DWORD[((192-128))+r8]
+	mov	r11d,DWORD[((224-128))+r8]
+	jmp	NEAR $L$enc_loop_compact
 ALIGN	16
-$L$enc_loop_compact::
-	xor	eax,DWORD PTR[r15]
-	xor	ebx,DWORD PTR[4+r15]
-	xor	ecx,DWORD PTR[8+r15]
-	xor	edx,DWORD PTR[12+r15]
-	lea	r15,QWORD PTR[16+r15]
+$L$enc_loop_compact:
+	xor	eax,DWORD[r15]
+	xor	ebx,DWORD[4+r15]
+	xor	ecx,DWORD[8+r15]
+	xor	edx,DWORD[12+r15]
+	lea	r15,[16+r15]
 	movzx	r10d,al
 	movzx	r11d,bl
 	movzx	r12d,cl
@@ -181,17 +185,17 @@
 	movzx	edi,ch
 	shr	ecx,16
 	movzx	ebp,dh
-	movzx	r10d,BYTE PTR[r10*1+r14]
-	movzx	r11d,BYTE PTR[r11*1+r14]
-	movzx	r12d,BYTE PTR[r12*1+r14]
-	movzx	r8d,BYTE PTR[r8*1+r14]
+	movzx	r10d,BYTE[r10*1+r14]
+	movzx	r11d,BYTE[r11*1+r14]
+	movzx	r12d,BYTE[r12*1+r14]
+	movzx	r8d,BYTE[r8*1+r14]
 
-	movzx	r9d,BYTE PTR[rsi*1+r14]
+	movzx	r9d,BYTE[rsi*1+r14]
 	movzx	esi,ah
-	movzx	r13d,BYTE PTR[rdi*1+r14]
+	movzx	r13d,BYTE[rdi*1+r14]
 	movzx	edi,cl
-	movzx	ebp,BYTE PTR[rbp*1+r14]
-	movzx	esi,BYTE PTR[rsi*1+r14]
+	movzx	ebp,BYTE[rbp*1+r14]
+	movzx	esi,BYTE[rsi*1+r14]
 
 	shl	r9d,8
 	shr	edx,16
@@ -203,16 +207,16 @@
 	xor	r11d,r13d
 	shl	ebp,8
 	movzx	r13d,al
-	movzx	edi,BYTE PTR[rdi*1+r14]
+	movzx	edi,BYTE[rdi*1+r14]
 	xor	r12d,ebp
 
 	shl	esi,8
 	movzx	ebp,bl
 	shl	edi,16
 	xor	r8d,esi
-	movzx	r9d,BYTE PTR[r9*1+r14]
+	movzx	r9d,BYTE[r9*1+r14]
 	movzx	esi,dh
-	movzx	r13d,BYTE PTR[r13*1+r14]
+	movzx	r13d,BYTE[r13*1+r14]
 	xor	r10d,edi
 
 	shr	ecx,8
@@ -221,11 +225,11 @@
 	shr	ebx,8
 	shl	r13d,16
 	xor	r11d,r9d
-	movzx	ebp,BYTE PTR[rbp*1+r14]
-	movzx	esi,BYTE PTR[rsi*1+r14]
-	movzx	edi,BYTE PTR[rdi*1+r14]
-	movzx	edx,BYTE PTR[rcx*1+r14]
-	movzx	ecx,BYTE PTR[rbx*1+r14]
+	movzx	ebp,BYTE[rbp*1+r14]
+	movzx	esi,BYTE[rsi*1+r14]
+	movzx	edi,BYTE[rdi*1+r14]
+	movzx	edx,BYTE[rcx*1+r14]
+	movzx	ecx,BYTE[rbx*1+r14]
 
 	shl	ebp,16
 	xor	r12d,r13d
@@ -240,24 +244,24 @@
 	mov	ebx,r11d
 	xor	ecx,r12d
 	xor	edx,r8d
-	cmp	r15,QWORD PTR[16+rsp]
-	je	$L$enc_compact_done
-	mov	r10d,080808080h
-	mov	r11d,080808080h
+	cmp	r15,QWORD[16+rsp]
+	je	NEAR $L$enc_compact_done
+	mov	r10d,0x80808080
+	mov	r11d,0x80808080
 	and	r10d,eax
 	and	r11d,ebx
 	mov	esi,r10d
 	mov	edi,r11d
 	shr	r10d,7
-	lea	r8d,DWORD PTR[rax*1+rax]
+	lea	r8d,[rax*1+rax]
 	shr	r11d,7
-	lea	r9d,DWORD PTR[rbx*1+rbx]
+	lea	r9d,[rbx*1+rbx]
 	sub	esi,r10d
 	sub	edi,r11d
-	and	r8d,0fefefefeh
-	and	r9d,0fefefefeh
-	and	esi,01b1b1b1bh
-	and	edi,01b1b1b1bh
+	and	r8d,0xfefefefe
+	and	r9d,0xfefefefe
+	and	esi,0x1b1b1b1b
+	and	edi,0x1b1b1b1b
 	mov	r10d,eax
 	mov	r11d,ebx
 	xor	r8d,esi
@@ -265,9 +269,9 @@
 
 	xor	eax,r8d
 	xor	ebx,r9d
-	mov	r12d,080808080h
+	mov	r12d,0x80808080
 	rol	eax,24
-	mov	ebp,080808080h
+	mov	ebp,0x80808080
 	rol	ebx,24
 	and	r12d,ecx
 	and	ebp,edx
@@ -277,23 +281,23 @@
 	ror	r10d,16
 	mov	edi,ebp
 	ror	r11d,16
-	lea	r8d,DWORD PTR[rcx*1+rcx]
+	lea	r8d,[rcx*1+rcx]
 	shr	r12d,7
 	xor	eax,r10d
 	shr	ebp,7
 	xor	ebx,r11d
 	ror	r10d,8
-	lea	r9d,DWORD PTR[rdx*1+rdx]
+	lea	r9d,[rdx*1+rdx]
 	ror	r11d,8
 	sub	esi,r12d
 	sub	edi,ebp
 	xor	eax,r10d
 	xor	ebx,r11d
 
-	and	r8d,0fefefefeh
-	and	r9d,0fefefefeh
-	and	esi,01b1b1b1bh
-	and	edi,01b1b1b1bh
+	and	r8d,0xfefefefe
+	and	r9d,0xfefefefe
+	and	esi,0x1b1b1b1b
+	and	edi,0x1b1b1b1b
 	mov	r12d,ecx
 	mov	ebp,edx
 	xor	r8d,esi
@@ -304,37 +308,37 @@
 	ror	ebp,16
 	xor	edx,r9d
 	rol	ecx,24
-	mov	esi,DWORD PTR[r14]
+	mov	esi,DWORD[r14]
 	rol	edx,24
 	xor	ecx,r8d
-	mov	edi,DWORD PTR[64+r14]
+	mov	edi,DWORD[64+r14]
 	xor	edx,r9d
-	mov	r8d,DWORD PTR[128+r14]
+	mov	r8d,DWORD[128+r14]
 	xor	ecx,r12d
 	ror	r12d,8
 	xor	edx,ebp
 	ror	ebp,8
 	xor	ecx,r12d
-	mov	r9d,DWORD PTR[192+r14]
+	mov	r9d,DWORD[192+r14]
 	xor	edx,ebp
-	jmp	$L$enc_loop_compact
+	jmp	NEAR $L$enc_loop_compact
 ALIGN	16
-$L$enc_compact_done::
-	xor	eax,DWORD PTR[r15]
-	xor	ebx,DWORD PTR[4+r15]
-	xor	ecx,DWORD PTR[8+r15]
-	xor	edx,DWORD PTR[12+r15]
-DB	0f3h,0c3h
-_x86_64_AES_encrypt_compact	ENDP
+$L$enc_compact_done:
+	xor	eax,DWORD[r15]
+	xor	ebx,DWORD[4+r15]
+	xor	ecx,DWORD[8+r15]
+	xor	edx,DWORD[12+r15]
+DB	0xf3,0xc3
+
 ALIGN	16
-PUBLIC	asm_AES_encrypt
+global	asm_AES_encrypt
 
 
-asm_AES_encrypt	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+asm_AES_encrypt:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_asm_AES_encrypt::
+$L$SEH_begin_asm_AES_encrypt:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
@@ -349,142 +353,141 @@
 
 
 	mov	r10,rsp
-	lea	rcx,QWORD PTR[((-63))+rdx]
+	lea	rcx,[((-63))+rdx]
 	and	rsp,-64
 	sub	rcx,rsp
 	neg	rcx
-	and	rcx,03c0h
+	and	rcx,0x3c0
 	sub	rsp,rcx
 	sub	rsp,32
 
-	mov	QWORD PTR[16+rsp],rsi
-	mov	QWORD PTR[24+rsp],r10
-$L$enc_prologue::
+	mov	QWORD[16+rsp],rsi
+	mov	QWORD[24+rsp],r10
+$L$enc_prologue:
 
 	mov	r15,rdx
-	mov	r13d,DWORD PTR[240+r15]
+	mov	r13d,DWORD[240+r15]
 
-	mov	eax,DWORD PTR[rdi]
-	mov	ebx,DWORD PTR[4+rdi]
-	mov	ecx,DWORD PTR[8+rdi]
-	mov	edx,DWORD PTR[12+rdi]
+	mov	eax,DWORD[rdi]
+	mov	ebx,DWORD[4+rdi]
+	mov	ecx,DWORD[8+rdi]
+	mov	edx,DWORD[12+rdi]
 
 	shl	r13d,4
-	lea	rbp,QWORD PTR[r13*1+r15]
-	mov	QWORD PTR[rsp],r15
-	mov	QWORD PTR[8+rsp],rbp
+	lea	rbp,[r13*1+r15]
+	mov	QWORD[rsp],r15
+	mov	QWORD[8+rsp],rbp
 
 
-	lea	r14,QWORD PTR[(($L$AES_Te+2048))]
-	lea	rbp,QWORD PTR[768+rsp]
+	lea	r14,[(($L$AES_Te+2048))]
+	lea	rbp,[768+rsp]
 	sub	rbp,r14
-	and	rbp,0300h
-	lea	r14,QWORD PTR[rbp*1+r14]
+	and	rbp,0x300
+	lea	r14,[rbp*1+r14]
 
 	call	_x86_64_AES_encrypt_compact
 
-	mov	r9,QWORD PTR[16+rsp]
-	mov	rsi,QWORD PTR[24+rsp]
-	mov	DWORD PTR[r9],eax
-	mov	DWORD PTR[4+r9],ebx
-	mov	DWORD PTR[8+r9],ecx
-	mov	DWORD PTR[12+r9],edx
+	mov	r9,QWORD[16+rsp]
+	mov	rsi,QWORD[24+rsp]
+	mov	DWORD[r9],eax
+	mov	DWORD[4+r9],ebx
+	mov	DWORD[8+r9],ecx
+	mov	DWORD[12+r9],edx
 
-	mov	r15,QWORD PTR[rsi]
-	mov	r14,QWORD PTR[8+rsi]
-	mov	r13,QWORD PTR[16+rsi]
-	mov	r12,QWORD PTR[24+rsi]
-	mov	rbp,QWORD PTR[32+rsi]
-	mov	rbx,QWORD PTR[40+rsi]
-	lea	rsp,QWORD PTR[48+rsi]
-$L$enc_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	mov	r15,QWORD[rsi]
+	mov	r14,QWORD[8+rsi]
+	mov	r13,QWORD[16+rsi]
+	mov	r12,QWORD[24+rsi]
+	mov	rbp,QWORD[32+rsi]
+	mov	rbx,QWORD[40+rsi]
+	lea	rsp,[48+rsi]
+$L$enc_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_asm_AES_encrypt::
-asm_AES_encrypt	ENDP
+$L$SEH_end_asm_AES_encrypt:
 
 ALIGN	16
-_x86_64_AES_decrypt	PROC PRIVATE
-	xor	eax,DWORD PTR[r15]
-	xor	ebx,DWORD PTR[4+r15]
-	xor	ecx,DWORD PTR[8+r15]
-	xor	edx,DWORD PTR[12+r15]
+_x86_64_AES_decrypt:
+	xor	eax,DWORD[r15]
+	xor	ebx,DWORD[4+r15]
+	xor	ecx,DWORD[8+r15]
+	xor	edx,DWORD[12+r15]
 
-	mov	r13d,DWORD PTR[240+r15]
+	mov	r13d,DWORD[240+r15]
 	sub	r13d,1
-	jmp	$L$dec_loop
+	jmp	NEAR $L$dec_loop
 ALIGN	16
-$L$dec_loop::
+$L$dec_loop:
 
 	movzx	esi,al
 	movzx	edi,bl
 	movzx	ebp,cl
-	mov	r10d,DWORD PTR[rsi*8+r14]
-	mov	r11d,DWORD PTR[rdi*8+r14]
-	mov	r12d,DWORD PTR[rbp*8+r14]
+	mov	r10d,DWORD[rsi*8+r14]
+	mov	r11d,DWORD[rdi*8+r14]
+	mov	r12d,DWORD[rbp*8+r14]
 
 	movzx	esi,dh
 	movzx	edi,ah
 	movzx	ebp,dl
-	xor	r10d,DWORD PTR[3+rsi*8+r14]
-	xor	r11d,DWORD PTR[3+rdi*8+r14]
-	mov	r8d,DWORD PTR[rbp*8+r14]
+	xor	r10d,DWORD[3+rsi*8+r14]
+	xor	r11d,DWORD[3+rdi*8+r14]
+	mov	r8d,DWORD[rbp*8+r14]
 
 	movzx	esi,bh
 	shr	eax,16
 	movzx	ebp,ch
-	xor	r12d,DWORD PTR[3+rsi*8+r14]
+	xor	r12d,DWORD[3+rsi*8+r14]
 	shr	edx,16
-	xor	r8d,DWORD PTR[3+rbp*8+r14]
+	xor	r8d,DWORD[3+rbp*8+r14]
 
 	shr	ebx,16
-	lea	r15,QWORD PTR[16+r15]
+	lea	r15,[16+r15]
 	shr	ecx,16
 
 	movzx	esi,cl
 	movzx	edi,dl
 	movzx	ebp,al
-	xor	r10d,DWORD PTR[2+rsi*8+r14]
-	xor	r11d,DWORD PTR[2+rdi*8+r14]
-	xor	r12d,DWORD PTR[2+rbp*8+r14]
+	xor	r10d,DWORD[2+rsi*8+r14]
+	xor	r11d,DWORD[2+rdi*8+r14]
+	xor	r12d,DWORD[2+rbp*8+r14]
 
 	movzx	esi,bh
 	movzx	edi,ch
 	movzx	ebp,bl
-	xor	r10d,DWORD PTR[1+rsi*8+r14]
-	xor	r11d,DWORD PTR[1+rdi*8+r14]
-	xor	r8d,DWORD PTR[2+rbp*8+r14]
+	xor	r10d,DWORD[1+rsi*8+r14]
+	xor	r11d,DWORD[1+rdi*8+r14]
+	xor	r8d,DWORD[2+rbp*8+r14]
 
 	movzx	esi,dh
-	mov	edx,DWORD PTR[12+r15]
+	mov	edx,DWORD[12+r15]
 	movzx	ebp,ah
-	xor	r12d,DWORD PTR[1+rsi*8+r14]
-	mov	eax,DWORD PTR[r15]
-	xor	r8d,DWORD PTR[1+rbp*8+r14]
+	xor	r12d,DWORD[1+rsi*8+r14]
+	mov	eax,DWORD[r15]
+	xor	r8d,DWORD[1+rbp*8+r14]
 
 	xor	eax,r10d
-	mov	ebx,DWORD PTR[4+r15]
-	mov	ecx,DWORD PTR[8+r15]
+	mov	ebx,DWORD[4+r15]
+	mov	ecx,DWORD[8+r15]
 	xor	ecx,r12d
 	xor	ebx,r11d
 	xor	edx,r8d
 	sub	r13d,1
-	jnz	$L$dec_loop
-	lea	r14,QWORD PTR[2048+r14]
+	jnz	NEAR $L$dec_loop
+	lea	r14,[2048+r14]
 	movzx	esi,al
 	movzx	edi,bl
 	movzx	ebp,cl
-	movzx	r10d,BYTE PTR[rsi*1+r14]
-	movzx	r11d,BYTE PTR[rdi*1+r14]
-	movzx	r12d,BYTE PTR[rbp*1+r14]
+	movzx	r10d,BYTE[rsi*1+r14]
+	movzx	r11d,BYTE[rdi*1+r14]
+	movzx	r12d,BYTE[rbp*1+r14]
 
 	movzx	esi,dl
 	movzx	edi,dh
 	movzx	ebp,ah
-	movzx	r8d,BYTE PTR[rsi*1+r14]
-	movzx	edi,BYTE PTR[rdi*1+r14]
-	movzx	ebp,BYTE PTR[rbp*1+r14]
+	movzx	r8d,BYTE[rsi*1+r14]
+	movzx	edi,BYTE[rdi*1+r14]
+	movzx	ebp,BYTE[rbp*1+r14]
 
 	shl	edi,8
 	shl	ebp,8
@@ -496,8 +499,8 @@
 	movzx	esi,bh
 	movzx	edi,ch
 	shr	eax,16
-	movzx	esi,BYTE PTR[rsi*1+r14]
-	movzx	edi,BYTE PTR[rdi*1+r14]
+	movzx	esi,BYTE[rsi*1+r14]
+	movzx	edi,BYTE[rdi*1+r14]
 
 	shl	esi,8
 	shl	edi,8
@@ -509,9 +512,9 @@
 	movzx	esi,cl
 	movzx	edi,dl
 	movzx	ebp,al
-	movzx	esi,BYTE PTR[rsi*1+r14]
-	movzx	edi,BYTE PTR[rdi*1+r14]
-	movzx	ebp,BYTE PTR[rbp*1+r14]
+	movzx	esi,BYTE[rsi*1+r14]
+	movzx	edi,BYTE[rdi*1+r14]
+	movzx	ebp,BYTE[rbp*1+r14]
 
 	shl	esi,16
 	shl	edi,16
@@ -524,9 +527,9 @@
 	movzx	esi,bl
 	movzx	edi,bh
 	movzx	ebp,ch
-	movzx	esi,BYTE PTR[rsi*1+r14]
-	movzx	edi,BYTE PTR[rdi*1+r14]
-	movzx	ebp,BYTE PTR[rbp*1+r14]
+	movzx	esi,BYTE[rsi*1+r14]
+	movzx	edi,BYTE[rdi*1+r14]
+	movzx	ebp,BYTE[rbp*1+r14]
 
 	shl	esi,16
 	shl	edi,24
@@ -538,10 +541,10 @@
 
 	movzx	esi,dh
 	movzx	edi,ah
-	mov	edx,DWORD PTR[((16+12))+r15]
-	movzx	esi,BYTE PTR[rsi*1+r14]
-	movzx	edi,BYTE PTR[rdi*1+r14]
-	mov	eax,DWORD PTR[((16+0))+r15]
+	mov	edx,DWORD[((16+12))+r15]
+	movzx	esi,BYTE[rsi*1+r14]
+	movzx	edi,BYTE[rdi*1+r14]
+	mov	eax,DWORD[((16+0))+r15]
 
 	shl	esi,24
 	shl	edi,24
@@ -549,36 +552,36 @@
 	xor	r12d,esi
 	xor	r8d,edi
 
-	mov	ebx,DWORD PTR[((16+4))+r15]
-	mov	ecx,DWORD PTR[((16+8))+r15]
-	lea	r14,QWORD PTR[((-2048))+r14]
+	mov	ebx,DWORD[((16+4))+r15]
+	mov	ecx,DWORD[((16+8))+r15]
+	lea	r14,[((-2048))+r14]
 	xor	eax,r10d
 	xor	ebx,r11d
 	xor	ecx,r12d
 	xor	edx,r8d
-DB	0f3h,0c3h
-_x86_64_AES_decrypt	ENDP
+DB	0xf3,0xc3
+
 
 ALIGN	16
-_x86_64_AES_decrypt_compact	PROC PRIVATE
-	lea	r8,QWORD PTR[128+r14]
-	mov	edi,DWORD PTR[((0-128))+r8]
-	mov	ebp,DWORD PTR[((32-128))+r8]
-	mov	r10d,DWORD PTR[((64-128))+r8]
-	mov	r11d,DWORD PTR[((96-128))+r8]
-	mov	edi,DWORD PTR[((128-128))+r8]
-	mov	ebp,DWORD PTR[((160-128))+r8]
-	mov	r10d,DWORD PTR[((192-128))+r8]
-	mov	r11d,DWORD PTR[((224-128))+r8]
-	jmp	$L$dec_loop_compact
+_x86_64_AES_decrypt_compact:
+	lea	r8,[128+r14]
+	mov	edi,DWORD[((0-128))+r8]
+	mov	ebp,DWORD[((32-128))+r8]
+	mov	r10d,DWORD[((64-128))+r8]
+	mov	r11d,DWORD[((96-128))+r8]
+	mov	edi,DWORD[((128-128))+r8]
+	mov	ebp,DWORD[((160-128))+r8]
+	mov	r10d,DWORD[((192-128))+r8]
+	mov	r11d,DWORD[((224-128))+r8]
+	jmp	NEAR $L$dec_loop_compact
 
 ALIGN	16
-$L$dec_loop_compact::
-	xor	eax,DWORD PTR[r15]
-	xor	ebx,DWORD PTR[4+r15]
-	xor	ecx,DWORD PTR[8+r15]
-	xor	edx,DWORD PTR[12+r15]
-	lea	r15,QWORD PTR[16+r15]
+$L$dec_loop_compact:
+	xor	eax,DWORD[r15]
+	xor	ebx,DWORD[4+r15]
+	xor	ecx,DWORD[8+r15]
+	xor	edx,DWORD[12+r15]
+	lea	r15,[16+r15]
 	movzx	r10d,al
 	movzx	r11d,bl
 	movzx	r12d,cl
@@ -587,16 +590,16 @@
 	movzx	edi,ah
 	shr	edx,16
 	movzx	ebp,bh
-	movzx	r10d,BYTE PTR[r10*1+r14]
-	movzx	r11d,BYTE PTR[r11*1+r14]
-	movzx	r12d,BYTE PTR[r12*1+r14]
-	movzx	r8d,BYTE PTR[r8*1+r14]
+	movzx	r10d,BYTE[r10*1+r14]
+	movzx	r11d,BYTE[r11*1+r14]
+	movzx	r12d,BYTE[r12*1+r14]
+	movzx	r8d,BYTE[r8*1+r14]
 
-	movzx	r9d,BYTE PTR[rsi*1+r14]
+	movzx	r9d,BYTE[rsi*1+r14]
 	movzx	esi,ch
-	movzx	r13d,BYTE PTR[rdi*1+r14]
-	movzx	ebp,BYTE PTR[rbp*1+r14]
-	movzx	esi,BYTE PTR[rsi*1+r14]
+	movzx	r13d,BYTE[rdi*1+r14]
+	movzx	ebp,BYTE[rbp*1+r14]
+	movzx	esi,BYTE[rsi*1+r14]
 
 	shr	ecx,16
 	shl	r13d,8
@@ -611,17 +614,17 @@
 	xor	r11d,r13d
 	shl	esi,8
 	movzx	r13d,al
-	movzx	edi,BYTE PTR[rdi*1+r14]
+	movzx	edi,BYTE[rdi*1+r14]
 	xor	r12d,ebp
 	movzx	ebp,bl
 
 	shl	edi,16
 	xor	r8d,esi
-	movzx	r9d,BYTE PTR[r9*1+r14]
+	movzx	r9d,BYTE[r9*1+r14]
 	movzx	esi,bh
-	movzx	ebp,BYTE PTR[rbp*1+r14]
+	movzx	ebp,BYTE[rbp*1+r14]
 	xor	r10d,edi
-	movzx	r13d,BYTE PTR[r13*1+r14]
+	movzx	r13d,BYTE[r13*1+r14]
 	movzx	edi,ch
 
 	shl	ebp,16
@@ -633,10 +636,10 @@
 	shr	eax,8
 	xor	r12d,r13d
 
-	movzx	esi,BYTE PTR[rsi*1+r14]
-	movzx	ebx,BYTE PTR[rdi*1+r14]
-	movzx	ecx,BYTE PTR[rbp*1+r14]
-	movzx	edx,BYTE PTR[rax*1+r14]
+	movzx	esi,BYTE[rsi*1+r14]
+	movzx	ebx,BYTE[rdi*1+r14]
+	movzx	ecx,BYTE[rbp*1+r14]
+	movzx	edx,BYTE[rax*1+r14]
 
 	mov	eax,r10d
 	shl	esi,24
@@ -647,16 +650,16 @@
 	xor	ebx,r11d
 	xor	ecx,r12d
 	xor	edx,r8d
-	cmp	r15,QWORD PTR[16+rsp]
-	je	$L$dec_compact_done
+	cmp	r15,QWORD[16+rsp]
+	je	NEAR $L$dec_compact_done
 
-	mov	rsi,QWORD PTR[((256+0))+r14]
+	mov	rsi,QWORD[((256+0))+r14]
 	shl	rbx,32
 	shl	rdx,32
-	mov	rdi,QWORD PTR[((256+8))+r14]
+	mov	rdi,QWORD[((256+8))+r14]
 	or	rax,rbx
 	or	rcx,rdx
-	mov	rbp,QWORD PTR[((256+16))+r14]
+	mov	rbp,QWORD[((256+16))+r14]
 	mov	r9,rsi
 	mov	r12,rsi
 	and	r9,rax
@@ -664,9 +667,9 @@
 	mov	rbx,r9
 	mov	rdx,r12
 	shr	r9,7
-	lea	r8,QWORD PTR[rax*1+rax]
+	lea	r8,[rax*1+rax]
 	shr	r12,7
-	lea	r11,QWORD PTR[rcx*1+rcx]
+	lea	r11,[rcx*1+rcx]
 	sub	rbx,r9
 	sub	rdx,r12
 	and	r8,rdi
@@ -683,9 +686,9 @@
 	mov	rbx,r10
 	mov	rdx,r13
 	shr	r10,7
-	lea	r9,QWORD PTR[r8*1+r8]
+	lea	r9,[r8*1+r8]
 	shr	r13,7
-	lea	r12,QWORD PTR[r11*1+r11]
+	lea	r12,[r11*1+r11]
 	sub	rbx,r10
 	sub	rdx,r13
 	and	r9,rdi
@@ -707,8 +710,8 @@
 	xor	r11,rcx
 	sub	rbx,r10
 	sub	rdx,r13
-	lea	r10,QWORD PTR[r9*1+r9]
-	lea	r13,QWORD PTR[r12*1+r12]
+	lea	r10,[r9*1+r9]
+	lea	r13,[r12*1+r12]
 	xor	r9,rax
 	xor	r12,rcx
 	and	r10,rdi
@@ -761,37 +764,37 @@
 	shr	r11,32
 	xor	edx,r13d
 
-	mov	rsi,QWORD PTR[r14]
+	mov	rsi,QWORD[r14]
 	rol	r9d,16
-	mov	rdi,QWORD PTR[64+r14]
+	mov	rdi,QWORD[64+r14]
 	rol	r12d,16
-	mov	rbp,QWORD PTR[128+r14]
+	mov	rbp,QWORD[128+r14]
 	rol	r8d,16
-	mov	r10,QWORD PTR[192+r14]
+	mov	r10,QWORD[192+r14]
 	xor	eax,r9d
 	rol	r11d,16
 	xor	ecx,r12d
-	mov	r13,QWORD PTR[256+r14]
+	mov	r13,QWORD[256+r14]
 	xor	ebx,r8d
 	xor	edx,r11d
-	jmp	$L$dec_loop_compact
+	jmp	NEAR $L$dec_loop_compact
 ALIGN	16
-$L$dec_compact_done::
-	xor	eax,DWORD PTR[r15]
-	xor	ebx,DWORD PTR[4+r15]
-	xor	ecx,DWORD PTR[8+r15]
-	xor	edx,DWORD PTR[12+r15]
-DB	0f3h,0c3h
-_x86_64_AES_decrypt_compact	ENDP
+$L$dec_compact_done:
+	xor	eax,DWORD[r15]
+	xor	ebx,DWORD[4+r15]
+	xor	ecx,DWORD[8+r15]
+	xor	edx,DWORD[12+r15]
+DB	0xf3,0xc3
+
 ALIGN	16
-PUBLIC	asm_AES_decrypt
+global	asm_AES_decrypt
 
 
-asm_AES_decrypt	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+asm_AES_decrypt:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_asm_AES_decrypt::
+$L$SEH_begin_asm_AES_decrypt:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
@@ -806,70 +809,69 @@
 
 
 	mov	r10,rsp
-	lea	rcx,QWORD PTR[((-63))+rdx]
+	lea	rcx,[((-63))+rdx]
 	and	rsp,-64
 	sub	rcx,rsp
 	neg	rcx
-	and	rcx,03c0h
+	and	rcx,0x3c0
 	sub	rsp,rcx
 	sub	rsp,32
 
-	mov	QWORD PTR[16+rsp],rsi
-	mov	QWORD PTR[24+rsp],r10
-$L$dec_prologue::
+	mov	QWORD[16+rsp],rsi
+	mov	QWORD[24+rsp],r10
+$L$dec_prologue:
 
 	mov	r15,rdx
-	mov	r13d,DWORD PTR[240+r15]
+	mov	r13d,DWORD[240+r15]
 
-	mov	eax,DWORD PTR[rdi]
-	mov	ebx,DWORD PTR[4+rdi]
-	mov	ecx,DWORD PTR[8+rdi]
-	mov	edx,DWORD PTR[12+rdi]
+	mov	eax,DWORD[rdi]
+	mov	ebx,DWORD[4+rdi]
+	mov	ecx,DWORD[8+rdi]
+	mov	edx,DWORD[12+rdi]
 
 	shl	r13d,4
-	lea	rbp,QWORD PTR[r13*1+r15]
-	mov	QWORD PTR[rsp],r15
-	mov	QWORD PTR[8+rsp],rbp
+	lea	rbp,[r13*1+r15]
+	mov	QWORD[rsp],r15
+	mov	QWORD[8+rsp],rbp
 
 
-	lea	r14,QWORD PTR[(($L$AES_Td+2048))]
-	lea	rbp,QWORD PTR[768+rsp]
+	lea	r14,[(($L$AES_Td+2048))]
+	lea	rbp,[768+rsp]
 	sub	rbp,r14
-	and	rbp,0300h
-	lea	r14,QWORD PTR[rbp*1+r14]
+	and	rbp,0x300
+	lea	r14,[rbp*1+r14]
 	shr	rbp,3
 	add	r14,rbp
 
 	call	_x86_64_AES_decrypt_compact
 
-	mov	r9,QWORD PTR[16+rsp]
-	mov	rsi,QWORD PTR[24+rsp]
-	mov	DWORD PTR[r9],eax
-	mov	DWORD PTR[4+r9],ebx
-	mov	DWORD PTR[8+r9],ecx
-	mov	DWORD PTR[12+r9],edx
+	mov	r9,QWORD[16+rsp]
+	mov	rsi,QWORD[24+rsp]
+	mov	DWORD[r9],eax
+	mov	DWORD[4+r9],ebx
+	mov	DWORD[8+r9],ecx
+	mov	DWORD[12+r9],edx
 
-	mov	r15,QWORD PTR[rsi]
-	mov	r14,QWORD PTR[8+rsi]
-	mov	r13,QWORD PTR[16+rsi]
-	mov	r12,QWORD PTR[24+rsi]
-	mov	rbp,QWORD PTR[32+rsi]
-	mov	rbx,QWORD PTR[40+rsi]
-	lea	rsp,QWORD PTR[48+rsi]
-$L$dec_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	mov	r15,QWORD[rsi]
+	mov	r14,QWORD[8+rsi]
+	mov	r13,QWORD[16+rsi]
+	mov	r12,QWORD[24+rsi]
+	mov	rbp,QWORD[32+rsi]
+	mov	rbx,QWORD[40+rsi]
+	lea	rsp,[48+rsi]
+$L$dec_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_asm_AES_decrypt::
-asm_AES_decrypt	ENDP
+$L$SEH_end_asm_AES_decrypt:
 ALIGN	16
-PUBLIC	asm_AES_set_encrypt_key
+global	asm_AES_set_encrypt_key
 
-asm_AES_set_encrypt_key	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+asm_AES_set_encrypt_key:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_asm_AES_set_encrypt_key::
+$L$SEH_begin_asm_AES_set_encrypt_key:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
@@ -882,267 +884,266 @@
 	push	r14
 	push	r15
 	sub	rsp,8
-$L$enc_key_prologue::
+$L$enc_key_prologue:
 
 	call	_x86_64_AES_set_encrypt_key
 
-	mov	rbp,QWORD PTR[40+rsp]
-	mov	rbx,QWORD PTR[48+rsp]
+	mov	rbp,QWORD[40+rsp]
+	mov	rbx,QWORD[48+rsp]
 	add	rsp,56
-$L$enc_key_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+$L$enc_key_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_asm_AES_set_encrypt_key::
-asm_AES_set_encrypt_key	ENDP
+$L$SEH_end_asm_AES_set_encrypt_key:
 
 
 ALIGN	16
-_x86_64_AES_set_encrypt_key	PROC PRIVATE
+_x86_64_AES_set_encrypt_key:
 	mov	ecx,esi
 	mov	rsi,rdi
 	mov	rdi,rdx
 
 	test	rsi,-1
-	jz	$L$badpointer
+	jz	NEAR $L$badpointer
 	test	rdi,-1
-	jz	$L$badpointer
+	jz	NEAR $L$badpointer
 
-	lea	rbp,QWORD PTR[$L$AES_Te]
-	lea	rbp,QWORD PTR[((2048+128))+rbp]
+	lea	rbp,[$L$AES_Te]
+	lea	rbp,[((2048+128))+rbp]
 
 
-	mov	eax,DWORD PTR[((0-128))+rbp]
-	mov	ebx,DWORD PTR[((32-128))+rbp]
-	mov	r8d,DWORD PTR[((64-128))+rbp]
-	mov	edx,DWORD PTR[((96-128))+rbp]
-	mov	eax,DWORD PTR[((128-128))+rbp]
-	mov	ebx,DWORD PTR[((160-128))+rbp]
-	mov	r8d,DWORD PTR[((192-128))+rbp]
-	mov	edx,DWORD PTR[((224-128))+rbp]
+	mov	eax,DWORD[((0-128))+rbp]
+	mov	ebx,DWORD[((32-128))+rbp]
+	mov	r8d,DWORD[((64-128))+rbp]
+	mov	edx,DWORD[((96-128))+rbp]
+	mov	eax,DWORD[((128-128))+rbp]
+	mov	ebx,DWORD[((160-128))+rbp]
+	mov	r8d,DWORD[((192-128))+rbp]
+	mov	edx,DWORD[((224-128))+rbp]
 
 	cmp	ecx,128
-	je	$L$10rounds
+	je	NEAR $L$10rounds
 	cmp	ecx,192
-	je	$L$12rounds
+	je	NEAR $L$12rounds
 	cmp	ecx,256
-	je	$L$14rounds
+	je	NEAR $L$14rounds
 	mov	rax,-2
-	jmp	$L$exit
+	jmp	NEAR $L$exit
 
-$L$10rounds::
-	mov	rax,QWORD PTR[rsi]
-	mov	rdx,QWORD PTR[8+rsi]
-	mov	QWORD PTR[rdi],rax
-	mov	QWORD PTR[8+rdi],rdx
+$L$10rounds:
+	mov	rax,QWORD[rsi]
+	mov	rdx,QWORD[8+rsi]
+	mov	QWORD[rdi],rax
+	mov	QWORD[8+rdi],rdx
 
 	shr	rdx,32
 	xor	ecx,ecx
-	jmp	$L$10shortcut
+	jmp	NEAR $L$10shortcut
 ALIGN	4
-$L$10loop::
-	mov	eax,DWORD PTR[rdi]
-	mov	edx,DWORD PTR[12+rdi]
-$L$10shortcut::
+$L$10loop:
+	mov	eax,DWORD[rdi]
+	mov	edx,DWORD[12+rdi]
+$L$10shortcut:
 	movzx	esi,dl
-	movzx	ebx,BYTE PTR[((-128))+rsi*1+rbp]
+	movzx	ebx,BYTE[((-128))+rsi*1+rbp]
 	movzx	esi,dh
 	shl	ebx,24
 	xor	eax,ebx
 
-	movzx	ebx,BYTE PTR[((-128))+rsi*1+rbp]
+	movzx	ebx,BYTE[((-128))+rsi*1+rbp]
 	shr	edx,16
 	movzx	esi,dl
 	xor	eax,ebx
 
-	movzx	ebx,BYTE PTR[((-128))+rsi*1+rbp]
+	movzx	ebx,BYTE[((-128))+rsi*1+rbp]
 	movzx	esi,dh
 	shl	ebx,8
 	xor	eax,ebx
 
-	movzx	ebx,BYTE PTR[((-128))+rsi*1+rbp]
+	movzx	ebx,BYTE[((-128))+rsi*1+rbp]
 	shl	ebx,16
 	xor	eax,ebx
 
-	xor	eax,DWORD PTR[((1024-128))+rcx*4+rbp]
-	mov	DWORD PTR[16+rdi],eax
-	xor	eax,DWORD PTR[4+rdi]
-	mov	DWORD PTR[20+rdi],eax
-	xor	eax,DWORD PTR[8+rdi]
-	mov	DWORD PTR[24+rdi],eax
-	xor	eax,DWORD PTR[12+rdi]
-	mov	DWORD PTR[28+rdi],eax
+	xor	eax,DWORD[((1024-128))+rcx*4+rbp]
+	mov	DWORD[16+rdi],eax
+	xor	eax,DWORD[4+rdi]
+	mov	DWORD[20+rdi],eax
+	xor	eax,DWORD[8+rdi]
+	mov	DWORD[24+rdi],eax
+	xor	eax,DWORD[12+rdi]
+	mov	DWORD[28+rdi],eax
 	add	ecx,1
-	lea	rdi,QWORD PTR[16+rdi]
+	lea	rdi,[16+rdi]
 	cmp	ecx,10
-	jl	$L$10loop
+	jl	NEAR $L$10loop
 
-	mov	DWORD PTR[80+rdi],10
+	mov	DWORD[80+rdi],10
 	xor	rax,rax
-	jmp	$L$exit
+	jmp	NEAR $L$exit
 
-$L$12rounds::
-	mov	rax,QWORD PTR[rsi]
-	mov	rbx,QWORD PTR[8+rsi]
-	mov	rdx,QWORD PTR[16+rsi]
-	mov	QWORD PTR[rdi],rax
-	mov	QWORD PTR[8+rdi],rbx
-	mov	QWORD PTR[16+rdi],rdx
+$L$12rounds:
+	mov	rax,QWORD[rsi]
+	mov	rbx,QWORD[8+rsi]
+	mov	rdx,QWORD[16+rsi]
+	mov	QWORD[rdi],rax
+	mov	QWORD[8+rdi],rbx
+	mov	QWORD[16+rdi],rdx
 
 	shr	rdx,32
 	xor	ecx,ecx
-	jmp	$L$12shortcut
+	jmp	NEAR $L$12shortcut
 ALIGN	4
-$L$12loop::
-	mov	eax,DWORD PTR[rdi]
-	mov	edx,DWORD PTR[20+rdi]
-$L$12shortcut::
+$L$12loop:
+	mov	eax,DWORD[rdi]
+	mov	edx,DWORD[20+rdi]
+$L$12shortcut:
 	movzx	esi,dl
-	movzx	ebx,BYTE PTR[((-128))+rsi*1+rbp]
+	movzx	ebx,BYTE[((-128))+rsi*1+rbp]
 	movzx	esi,dh
 	shl	ebx,24
 	xor	eax,ebx
 
-	movzx	ebx,BYTE PTR[((-128))+rsi*1+rbp]
+	movzx	ebx,BYTE[((-128))+rsi*1+rbp]
 	shr	edx,16
 	movzx	esi,dl
 	xor	eax,ebx
 
-	movzx	ebx,BYTE PTR[((-128))+rsi*1+rbp]
+	movzx	ebx,BYTE[((-128))+rsi*1+rbp]
 	movzx	esi,dh
 	shl	ebx,8
 	xor	eax,ebx
 
-	movzx	ebx,BYTE PTR[((-128))+rsi*1+rbp]
+	movzx	ebx,BYTE[((-128))+rsi*1+rbp]
 	shl	ebx,16
 	xor	eax,ebx
 
-	xor	eax,DWORD PTR[((1024-128))+rcx*4+rbp]
-	mov	DWORD PTR[24+rdi],eax
-	xor	eax,DWORD PTR[4+rdi]
-	mov	DWORD PTR[28+rdi],eax
-	xor	eax,DWORD PTR[8+rdi]
-	mov	DWORD PTR[32+rdi],eax
-	xor	eax,DWORD PTR[12+rdi]
-	mov	DWORD PTR[36+rdi],eax
+	xor	eax,DWORD[((1024-128))+rcx*4+rbp]
+	mov	DWORD[24+rdi],eax
+	xor	eax,DWORD[4+rdi]
+	mov	DWORD[28+rdi],eax
+	xor	eax,DWORD[8+rdi]
+	mov	DWORD[32+rdi],eax
+	xor	eax,DWORD[12+rdi]
+	mov	DWORD[36+rdi],eax
 
 	cmp	ecx,7
-	je	$L$12break
+	je	NEAR $L$12break
 	add	ecx,1
 
-	xor	eax,DWORD PTR[16+rdi]
-	mov	DWORD PTR[40+rdi],eax
-	xor	eax,DWORD PTR[20+rdi]
-	mov	DWORD PTR[44+rdi],eax
+	xor	eax,DWORD[16+rdi]
+	mov	DWORD[40+rdi],eax
+	xor	eax,DWORD[20+rdi]
+	mov	DWORD[44+rdi],eax
 
-	lea	rdi,QWORD PTR[24+rdi]
-	jmp	$L$12loop
-$L$12break::
-	mov	DWORD PTR[72+rdi],12
+	lea	rdi,[24+rdi]
+	jmp	NEAR $L$12loop
+$L$12break:
+	mov	DWORD[72+rdi],12
 	xor	rax,rax
-	jmp	$L$exit
+	jmp	NEAR $L$exit
 
-$L$14rounds::
-	mov	rax,QWORD PTR[rsi]
-	mov	rbx,QWORD PTR[8+rsi]
-	mov	rcx,QWORD PTR[16+rsi]
-	mov	rdx,QWORD PTR[24+rsi]
-	mov	QWORD PTR[rdi],rax
-	mov	QWORD PTR[8+rdi],rbx
-	mov	QWORD PTR[16+rdi],rcx
-	mov	QWORD PTR[24+rdi],rdx
+$L$14rounds:
+	mov	rax,QWORD[rsi]
+	mov	rbx,QWORD[8+rsi]
+	mov	rcx,QWORD[16+rsi]
+	mov	rdx,QWORD[24+rsi]
+	mov	QWORD[rdi],rax
+	mov	QWORD[8+rdi],rbx
+	mov	QWORD[16+rdi],rcx
+	mov	QWORD[24+rdi],rdx
 
 	shr	rdx,32
 	xor	ecx,ecx
-	jmp	$L$14shortcut
+	jmp	NEAR $L$14shortcut
 ALIGN	4
-$L$14loop::
-	mov	eax,DWORD PTR[rdi]
-	mov	edx,DWORD PTR[28+rdi]
-$L$14shortcut::
+$L$14loop:
+	mov	eax,DWORD[rdi]
+	mov	edx,DWORD[28+rdi]
+$L$14shortcut:
 	movzx	esi,dl
-	movzx	ebx,BYTE PTR[((-128))+rsi*1+rbp]
+	movzx	ebx,BYTE[((-128))+rsi*1+rbp]
 	movzx	esi,dh
 	shl	ebx,24
 	xor	eax,ebx
 
-	movzx	ebx,BYTE PTR[((-128))+rsi*1+rbp]
+	movzx	ebx,BYTE[((-128))+rsi*1+rbp]
 	shr	edx,16
 	movzx	esi,dl
 	xor	eax,ebx
 
-	movzx	ebx,BYTE PTR[((-128))+rsi*1+rbp]
+	movzx	ebx,BYTE[((-128))+rsi*1+rbp]
 	movzx	esi,dh
 	shl	ebx,8
 	xor	eax,ebx
 
-	movzx	ebx,BYTE PTR[((-128))+rsi*1+rbp]
+	movzx	ebx,BYTE[((-128))+rsi*1+rbp]
 	shl	ebx,16
 	xor	eax,ebx
 
-	xor	eax,DWORD PTR[((1024-128))+rcx*4+rbp]
-	mov	DWORD PTR[32+rdi],eax
-	xor	eax,DWORD PTR[4+rdi]
-	mov	DWORD PTR[36+rdi],eax
-	xor	eax,DWORD PTR[8+rdi]
-	mov	DWORD PTR[40+rdi],eax
-	xor	eax,DWORD PTR[12+rdi]
-	mov	DWORD PTR[44+rdi],eax
+	xor	eax,DWORD[((1024-128))+rcx*4+rbp]
+	mov	DWORD[32+rdi],eax
+	xor	eax,DWORD[4+rdi]
+	mov	DWORD[36+rdi],eax
+	xor	eax,DWORD[8+rdi]
+	mov	DWORD[40+rdi],eax
+	xor	eax,DWORD[12+rdi]
+	mov	DWORD[44+rdi],eax
 
 	cmp	ecx,6
-	je	$L$14break
+	je	NEAR $L$14break
 	add	ecx,1
 
 	mov	edx,eax
-	mov	eax,DWORD PTR[16+rdi]
+	mov	eax,DWORD[16+rdi]
 	movzx	esi,dl
-	movzx	ebx,BYTE PTR[((-128))+rsi*1+rbp]
+	movzx	ebx,BYTE[((-128))+rsi*1+rbp]
 	movzx	esi,dh
 	xor	eax,ebx
 
-	movzx	ebx,BYTE PTR[((-128))+rsi*1+rbp]
+	movzx	ebx,BYTE[((-128))+rsi*1+rbp]
 	shr	edx,16
 	shl	ebx,8
 	movzx	esi,dl
 	xor	eax,ebx
 
-	movzx	ebx,BYTE PTR[((-128))+rsi*1+rbp]
+	movzx	ebx,BYTE[((-128))+rsi*1+rbp]
 	movzx	esi,dh
 	shl	ebx,16
 	xor	eax,ebx
 
-	movzx	ebx,BYTE PTR[((-128))+rsi*1+rbp]
+	movzx	ebx,BYTE[((-128))+rsi*1+rbp]
 	shl	ebx,24
 	xor	eax,ebx
 
-	mov	DWORD PTR[48+rdi],eax
-	xor	eax,DWORD PTR[20+rdi]
-	mov	DWORD PTR[52+rdi],eax
-	xor	eax,DWORD PTR[24+rdi]
-	mov	DWORD PTR[56+rdi],eax
-	xor	eax,DWORD PTR[28+rdi]
-	mov	DWORD PTR[60+rdi],eax
+	mov	DWORD[48+rdi],eax
+	xor	eax,DWORD[20+rdi]
+	mov	DWORD[52+rdi],eax
+	xor	eax,DWORD[24+rdi]
+	mov	DWORD[56+rdi],eax
+	xor	eax,DWORD[28+rdi]
+	mov	DWORD[60+rdi],eax
 
-	lea	rdi,QWORD PTR[32+rdi]
-	jmp	$L$14loop
-$L$14break::
-	mov	DWORD PTR[48+rdi],14
+	lea	rdi,[32+rdi]
+	jmp	NEAR $L$14loop
+$L$14break:
+	mov	DWORD[48+rdi],14
 	xor	rax,rax
-	jmp	$L$exit
+	jmp	NEAR $L$exit
 
-$L$badpointer::
+$L$badpointer:
 	mov	rax,-1
-$L$exit::
-DB	0f3h,0c3h
-_x86_64_AES_set_encrypt_key	ENDP
-ALIGN	16
-PUBLIC	asm_AES_set_decrypt_key
+$L$exit:
+DB	0xf3,0xc3
 
-asm_AES_set_decrypt_key	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+ALIGN	16
+global	asm_AES_set_decrypt_key
+
+asm_AES_set_decrypt_key:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_asm_AES_set_decrypt_key::
+$L$SEH_begin_asm_AES_set_decrypt_key:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
@@ -1155,46 +1156,46 @@
 	push	r14
 	push	r15
 	push	rdx
-$L$dec_key_prologue::
+$L$dec_key_prologue:
 
 	call	_x86_64_AES_set_encrypt_key
-	mov	r8,QWORD PTR[rsp]
+	mov	r8,QWORD[rsp]
 	cmp	eax,0
-	jne	$L$abort
+	jne	NEAR $L$abort
 
-	mov	r14d,DWORD PTR[240+r8]
+	mov	r14d,DWORD[240+r8]
 	xor	rdi,rdi
-	lea	rcx,QWORD PTR[r14*4+rdi]
+	lea	rcx,[r14*4+rdi]
 	mov	rsi,r8
-	lea	rdi,QWORD PTR[rcx*4+r8]
+	lea	rdi,[rcx*4+r8]
 ALIGN	4
-$L$invert::
-	mov	rax,QWORD PTR[rsi]
-	mov	rbx,QWORD PTR[8+rsi]
-	mov	rcx,QWORD PTR[rdi]
-	mov	rdx,QWORD PTR[8+rdi]
-	mov	QWORD PTR[rdi],rax
-	mov	QWORD PTR[8+rdi],rbx
-	mov	QWORD PTR[rsi],rcx
-	mov	QWORD PTR[8+rsi],rdx
-	lea	rsi,QWORD PTR[16+rsi]
-	lea	rdi,QWORD PTR[((-16))+rdi]
+$L$invert:
+	mov	rax,QWORD[rsi]
+	mov	rbx,QWORD[8+rsi]
+	mov	rcx,QWORD[rdi]
+	mov	rdx,QWORD[8+rdi]
+	mov	QWORD[rdi],rax
+	mov	QWORD[8+rdi],rbx
+	mov	QWORD[rsi],rcx
+	mov	QWORD[8+rsi],rdx
+	lea	rsi,[16+rsi]
+	lea	rdi,[((-16))+rdi]
 	cmp	rdi,rsi
-	jne	$L$invert
+	jne	NEAR $L$invert
 
-	lea	rax,QWORD PTR[(($L$AES_Te+2048+1024))]
+	lea	rax,[(($L$AES_Te+2048+1024))]
 
-	mov	rsi,QWORD PTR[40+rax]
-	mov	rdi,QWORD PTR[48+rax]
-	mov	rbp,QWORD PTR[56+rax]
+	mov	rsi,QWORD[40+rax]
+	mov	rdi,QWORD[48+rax]
+	mov	rbp,QWORD[56+rax]
 
 	mov	r15,r8
 	sub	r14d,1
 ALIGN	4
-$L$permute::
-	lea	r15,QWORD PTR[16+r15]
-	mov	rax,QWORD PTR[r15]
-	mov	rcx,QWORD PTR[8+r15]
+$L$permute:
+	lea	r15,[16+r15]
+	mov	rax,QWORD[r15]
+	mov	rcx,QWORD[8+r15]
 	mov	r9,rsi
 	mov	r12,rsi
 	and	r9,rax
@@ -1202,9 +1203,9 @@
 	mov	rbx,r9
 	mov	rdx,r12
 	shr	r9,7
-	lea	r8,QWORD PTR[rax*1+rax]
+	lea	r8,[rax*1+rax]
 	shr	r12,7
-	lea	r11,QWORD PTR[rcx*1+rcx]
+	lea	r11,[rcx*1+rcx]
 	sub	rbx,r9
 	sub	rdx,r12
 	and	r8,rdi
@@ -1221,9 +1222,9 @@
 	mov	rbx,r10
 	mov	rdx,r13
 	shr	r10,7
-	lea	r9,QWORD PTR[r8*1+r8]
+	lea	r9,[r8*1+r8]
 	shr	r13,7
-	lea	r12,QWORD PTR[r11*1+r11]
+	lea	r12,[r11*1+r11]
 	sub	rbx,r10
 	sub	rdx,r13
 	and	r9,rdi
@@ -1245,8 +1246,8 @@
 	xor	r11,rcx
 	sub	rbx,r10
 	sub	rdx,r13
-	lea	r10,QWORD PTR[r9*1+r9]
-	lea	r13,QWORD PTR[r12*1+r12]
+	lea	r10,[r9*1+r9]
+	lea	r13,[r12*1+r12]
 	xor	r9,rax
 	xor	r12,rcx
 	and	r10,rdi
@@ -1312,48 +1313,47 @@
 
 	xor	ebx,r8d
 	xor	edx,r11d
-	mov	DWORD PTR[r15],eax
-	mov	DWORD PTR[4+r15],ebx
-	mov	DWORD PTR[8+r15],ecx
-	mov	DWORD PTR[12+r15],edx
+	mov	DWORD[r15],eax
+	mov	DWORD[4+r15],ebx
+	mov	DWORD[8+r15],ecx
+	mov	DWORD[12+r15],edx
 	sub	r14d,1
-	jnz	$L$permute
+	jnz	NEAR $L$permute
 
 	xor	rax,rax
-$L$abort::
-	mov	r15,QWORD PTR[8+rsp]
-	mov	r14,QWORD PTR[16+rsp]
-	mov	r13,QWORD PTR[24+rsp]
-	mov	r12,QWORD PTR[32+rsp]
-	mov	rbp,QWORD PTR[40+rsp]
-	mov	rbx,QWORD PTR[48+rsp]
+$L$abort:
+	mov	r15,QWORD[8+rsp]
+	mov	r14,QWORD[16+rsp]
+	mov	r13,QWORD[24+rsp]
+	mov	r12,QWORD[32+rsp]
+	mov	rbp,QWORD[40+rsp]
+	mov	rbx,QWORD[48+rsp]
 	add	rsp,56
-$L$dec_key_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+$L$dec_key_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_asm_AES_set_decrypt_key::
-asm_AES_set_decrypt_key	ENDP
+$L$SEH_end_asm_AES_set_decrypt_key:
 ALIGN	16
-PUBLIC	asm_AES_cbc_encrypt
+global	asm_AES_cbc_encrypt
 
-EXTERN	OPENSSL_ia32cap_P:NEAR
+EXTERN	OPENSSL_ia32cap_P
 
-asm_AES_cbc_encrypt	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+asm_AES_cbc_encrypt:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_asm_AES_cbc_encrypt::
+$L$SEH_begin_asm_AES_cbc_encrypt:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 	mov	rcx,r9
-	mov	r8,QWORD PTR[40+rsp]
-	mov	r9,QWORD PTR[48+rsp]
+	mov	r8,QWORD[40+rsp]
+	mov	r9,QWORD[48+rsp]
 
 
 	cmp	rdx,0
-	je	$L$cbc_epilogue
+	je	NEAR $L$cbc_epilogue
 	pushfq
 	push	rbx
 	push	rbp
@@ -1361,269 +1361,269 @@
 	push	r13
 	push	r14
 	push	r15
-$L$cbc_prologue::
+$L$cbc_prologue:
 
 	cld
 	mov	r9d,r9d
 
-	lea	r14,QWORD PTR[$L$AES_Te]
+	lea	r14,[$L$AES_Te]
 	cmp	r9,0
-	jne	$L$cbc_picked_te
-	lea	r14,QWORD PTR[$L$AES_Td]
-$L$cbc_picked_te::
+	jne	NEAR $L$cbc_picked_te
+	lea	r14,[$L$AES_Td]
+$L$cbc_picked_te:
 
-	mov	r10d,DWORD PTR[OPENSSL_ia32cap_P]
+	mov	r10d,DWORD[OPENSSL_ia32cap_P]
 	cmp	rdx,512
-	jb	$L$cbc_slow_prologue
+	jb	NEAR $L$cbc_slow_prologue
 	test	rdx,15
-	jnz	$L$cbc_slow_prologue
+	jnz	NEAR $L$cbc_slow_prologue
 	bt	r10d,28
-	jc	$L$cbc_slow_prologue
+	jc	NEAR $L$cbc_slow_prologue
 
 
-	lea	r15,QWORD PTR[((-88-248))+rsp]
+	lea	r15,[((-88-248))+rsp]
 	and	r15,-64
 
 
 	mov	r10,r14
-	lea	r11,QWORD PTR[2304+r14]
+	lea	r11,[2304+r14]
 	mov	r12,r15
-	and	r10,0FFFh
-	and	r11,0FFFh
-	and	r12,0FFFh
+	and	r10,0xFFF
+	and	r11,0xFFF
+	and	r12,0xFFF
 
 	cmp	r12,r11
-	jb	$L$cbc_te_break_out
+	jb	NEAR $L$cbc_te_break_out
 	sub	r12,r11
 	sub	r15,r12
-	jmp	$L$cbc_te_ok
-$L$cbc_te_break_out::
+	jmp	NEAR $L$cbc_te_ok
+$L$cbc_te_break_out:
 	sub	r12,r10
-	and	r12,0FFFh
+	and	r12,0xFFF
 	add	r12,320
 	sub	r15,r12
 ALIGN	4
-$L$cbc_te_ok::
+$L$cbc_te_ok:
 
 	xchg	r15,rsp
 
-	mov	QWORD PTR[16+rsp],r15
-$L$cbc_fast_body::
-	mov	QWORD PTR[24+rsp],rdi
-	mov	QWORD PTR[32+rsp],rsi
-	mov	QWORD PTR[40+rsp],rdx
-	mov	QWORD PTR[48+rsp],rcx
-	mov	QWORD PTR[56+rsp],r8
-	mov	DWORD PTR[((80+240))+rsp],0
+	mov	QWORD[16+rsp],r15
+$L$cbc_fast_body:
+	mov	QWORD[24+rsp],rdi
+	mov	QWORD[32+rsp],rsi
+	mov	QWORD[40+rsp],rdx
+	mov	QWORD[48+rsp],rcx
+	mov	QWORD[56+rsp],r8
+	mov	DWORD[((80+240))+rsp],0
 	mov	rbp,r8
 	mov	rbx,r9
 	mov	r9,rsi
 	mov	r8,rdi
 	mov	r15,rcx
 
-	mov	eax,DWORD PTR[240+r15]
+	mov	eax,DWORD[240+r15]
 
 	mov	r10,r15
 	sub	r10,r14
-	and	r10,0fffh
+	and	r10,0xfff
 	cmp	r10,2304
-	jb	$L$cbc_do_ecopy
+	jb	NEAR $L$cbc_do_ecopy
 	cmp	r10,4096-248
-	jb	$L$cbc_skip_ecopy
+	jb	NEAR $L$cbc_skip_ecopy
 ALIGN	4
-$L$cbc_do_ecopy::
+$L$cbc_do_ecopy:
 	mov	rsi,r15
-	lea	rdi,QWORD PTR[80+rsp]
-	lea	r15,QWORD PTR[80+rsp]
+	lea	rdi,[80+rsp]
+	lea	r15,[80+rsp]
 	mov	ecx,240/8
-	DD	090A548F3h
-	mov	DWORD PTR[rdi],eax
-$L$cbc_skip_ecopy::
-	mov	QWORD PTR[rsp],r15
+	DD	0x90A548F3
+	mov	DWORD[rdi],eax
+$L$cbc_skip_ecopy:
+	mov	QWORD[rsp],r15
 
 	mov	ecx,18
 ALIGN	4
-$L$cbc_prefetch_te::
-	mov	r10,QWORD PTR[r14]
-	mov	r11,QWORD PTR[32+r14]
-	mov	r12,QWORD PTR[64+r14]
-	mov	r13,QWORD PTR[96+r14]
-	lea	r14,QWORD PTR[128+r14]
+$L$cbc_prefetch_te:
+	mov	r10,QWORD[r14]
+	mov	r11,QWORD[32+r14]
+	mov	r12,QWORD[64+r14]
+	mov	r13,QWORD[96+r14]
+	lea	r14,[128+r14]
 	sub	ecx,1
-	jnz	$L$cbc_prefetch_te
-	lea	r14,QWORD PTR[((-2304))+r14]
+	jnz	NEAR $L$cbc_prefetch_te
+	lea	r14,[((-2304))+r14]
 
 	cmp	rbx,0
-	je	$L$FAST_DECRYPT
+	je	NEAR $L$FAST_DECRYPT
 
 
-	mov	eax,DWORD PTR[rbp]
-	mov	ebx,DWORD PTR[4+rbp]
-	mov	ecx,DWORD PTR[8+rbp]
-	mov	edx,DWORD PTR[12+rbp]
+	mov	eax,DWORD[rbp]
+	mov	ebx,DWORD[4+rbp]
+	mov	ecx,DWORD[8+rbp]
+	mov	edx,DWORD[12+rbp]
 
 ALIGN	4
-$L$cbc_fast_enc_loop::
-	xor	eax,DWORD PTR[r8]
-	xor	ebx,DWORD PTR[4+r8]
-	xor	ecx,DWORD PTR[8+r8]
-	xor	edx,DWORD PTR[12+r8]
-	mov	r15,QWORD PTR[rsp]
-	mov	QWORD PTR[24+rsp],r8
+$L$cbc_fast_enc_loop:
+	xor	eax,DWORD[r8]
+	xor	ebx,DWORD[4+r8]
+	xor	ecx,DWORD[8+r8]
+	xor	edx,DWORD[12+r8]
+	mov	r15,QWORD[rsp]
+	mov	QWORD[24+rsp],r8
 
 	call	_x86_64_AES_encrypt
 
-	mov	r8,QWORD PTR[24+rsp]
-	mov	r10,QWORD PTR[40+rsp]
-	mov	DWORD PTR[r9],eax
-	mov	DWORD PTR[4+r9],ebx
-	mov	DWORD PTR[8+r9],ecx
-	mov	DWORD PTR[12+r9],edx
+	mov	r8,QWORD[24+rsp]
+	mov	r10,QWORD[40+rsp]
+	mov	DWORD[r9],eax
+	mov	DWORD[4+r9],ebx
+	mov	DWORD[8+r9],ecx
+	mov	DWORD[12+r9],edx
 
-	lea	r8,QWORD PTR[16+r8]
-	lea	r9,QWORD PTR[16+r9]
+	lea	r8,[16+r8]
+	lea	r9,[16+r9]
 	sub	r10,16
 	test	r10,-16
-	mov	QWORD PTR[40+rsp],r10
-	jnz	$L$cbc_fast_enc_loop
-	mov	rbp,QWORD PTR[56+rsp]
-	mov	DWORD PTR[rbp],eax
-	mov	DWORD PTR[4+rbp],ebx
-	mov	DWORD PTR[8+rbp],ecx
-	mov	DWORD PTR[12+rbp],edx
+	mov	QWORD[40+rsp],r10
+	jnz	NEAR $L$cbc_fast_enc_loop
+	mov	rbp,QWORD[56+rsp]
+	mov	DWORD[rbp],eax
+	mov	DWORD[4+rbp],ebx
+	mov	DWORD[8+rbp],ecx
+	mov	DWORD[12+rbp],edx
 
-	jmp	$L$cbc_fast_cleanup
+	jmp	NEAR $L$cbc_fast_cleanup
 
 
 ALIGN	16
-$L$FAST_DECRYPT::
+$L$FAST_DECRYPT:
 	cmp	r9,r8
-	je	$L$cbc_fast_dec_in_place
+	je	NEAR $L$cbc_fast_dec_in_place
 
-	mov	QWORD PTR[64+rsp],rbp
+	mov	QWORD[64+rsp],rbp
 ALIGN	4
-$L$cbc_fast_dec_loop::
-	mov	eax,DWORD PTR[r8]
-	mov	ebx,DWORD PTR[4+r8]
-	mov	ecx,DWORD PTR[8+r8]
-	mov	edx,DWORD PTR[12+r8]
-	mov	r15,QWORD PTR[rsp]
-	mov	QWORD PTR[24+rsp],r8
+$L$cbc_fast_dec_loop:
+	mov	eax,DWORD[r8]
+	mov	ebx,DWORD[4+r8]
+	mov	ecx,DWORD[8+r8]
+	mov	edx,DWORD[12+r8]
+	mov	r15,QWORD[rsp]
+	mov	QWORD[24+rsp],r8
 
 	call	_x86_64_AES_decrypt
 
-	mov	rbp,QWORD PTR[64+rsp]
-	mov	r8,QWORD PTR[24+rsp]
-	mov	r10,QWORD PTR[40+rsp]
-	xor	eax,DWORD PTR[rbp]
-	xor	ebx,DWORD PTR[4+rbp]
-	xor	ecx,DWORD PTR[8+rbp]
-	xor	edx,DWORD PTR[12+rbp]
+	mov	rbp,QWORD[64+rsp]
+	mov	r8,QWORD[24+rsp]
+	mov	r10,QWORD[40+rsp]
+	xor	eax,DWORD[rbp]
+	xor	ebx,DWORD[4+rbp]
+	xor	ecx,DWORD[8+rbp]
+	xor	edx,DWORD[12+rbp]
 	mov	rbp,r8
 
 	sub	r10,16
-	mov	QWORD PTR[40+rsp],r10
-	mov	QWORD PTR[64+rsp],rbp
+	mov	QWORD[40+rsp],r10
+	mov	QWORD[64+rsp],rbp
 
-	mov	DWORD PTR[r9],eax
-	mov	DWORD PTR[4+r9],ebx
-	mov	DWORD PTR[8+r9],ecx
-	mov	DWORD PTR[12+r9],edx
+	mov	DWORD[r9],eax
+	mov	DWORD[4+r9],ebx
+	mov	DWORD[8+r9],ecx
+	mov	DWORD[12+r9],edx
 
-	lea	r8,QWORD PTR[16+r8]
-	lea	r9,QWORD PTR[16+r9]
-	jnz	$L$cbc_fast_dec_loop
-	mov	r12,QWORD PTR[56+rsp]
-	mov	r10,QWORD PTR[rbp]
-	mov	r11,QWORD PTR[8+rbp]
-	mov	QWORD PTR[r12],r10
-	mov	QWORD PTR[8+r12],r11
-	jmp	$L$cbc_fast_cleanup
+	lea	r8,[16+r8]
+	lea	r9,[16+r9]
+	jnz	NEAR $L$cbc_fast_dec_loop
+	mov	r12,QWORD[56+rsp]
+	mov	r10,QWORD[rbp]
+	mov	r11,QWORD[8+rbp]
+	mov	QWORD[r12],r10
+	mov	QWORD[8+r12],r11
+	jmp	NEAR $L$cbc_fast_cleanup
 
 ALIGN	16
-$L$cbc_fast_dec_in_place::
-	mov	r10,QWORD PTR[rbp]
-	mov	r11,QWORD PTR[8+rbp]
-	mov	QWORD PTR[((0+64))+rsp],r10
-	mov	QWORD PTR[((8+64))+rsp],r11
+$L$cbc_fast_dec_in_place:
+	mov	r10,QWORD[rbp]
+	mov	r11,QWORD[8+rbp]
+	mov	QWORD[((0+64))+rsp],r10
+	mov	QWORD[((8+64))+rsp],r11
 ALIGN	4
-$L$cbc_fast_dec_in_place_loop::
-	mov	eax,DWORD PTR[r8]
-	mov	ebx,DWORD PTR[4+r8]
-	mov	ecx,DWORD PTR[8+r8]
-	mov	edx,DWORD PTR[12+r8]
-	mov	r15,QWORD PTR[rsp]
-	mov	QWORD PTR[24+rsp],r8
+$L$cbc_fast_dec_in_place_loop:
+	mov	eax,DWORD[r8]
+	mov	ebx,DWORD[4+r8]
+	mov	ecx,DWORD[8+r8]
+	mov	edx,DWORD[12+r8]
+	mov	r15,QWORD[rsp]
+	mov	QWORD[24+rsp],r8
 
 	call	_x86_64_AES_decrypt
 
-	mov	r8,QWORD PTR[24+rsp]
-	mov	r10,QWORD PTR[40+rsp]
-	xor	eax,DWORD PTR[((0+64))+rsp]
-	xor	ebx,DWORD PTR[((4+64))+rsp]
-	xor	ecx,DWORD PTR[((8+64))+rsp]
-	xor	edx,DWORD PTR[((12+64))+rsp]
+	mov	r8,QWORD[24+rsp]
+	mov	r10,QWORD[40+rsp]
+	xor	eax,DWORD[((0+64))+rsp]
+	xor	ebx,DWORD[((4+64))+rsp]
+	xor	ecx,DWORD[((8+64))+rsp]
+	xor	edx,DWORD[((12+64))+rsp]
 
-	mov	r11,QWORD PTR[r8]
-	mov	r12,QWORD PTR[8+r8]
+	mov	r11,QWORD[r8]
+	mov	r12,QWORD[8+r8]
 	sub	r10,16
-	jz	$L$cbc_fast_dec_in_place_done
+	jz	NEAR $L$cbc_fast_dec_in_place_done
 
-	mov	QWORD PTR[((0+64))+rsp],r11
-	mov	QWORD PTR[((8+64))+rsp],r12
+	mov	QWORD[((0+64))+rsp],r11
+	mov	QWORD[((8+64))+rsp],r12
 
-	mov	DWORD PTR[r9],eax
-	mov	DWORD PTR[4+r9],ebx
-	mov	DWORD PTR[8+r9],ecx
-	mov	DWORD PTR[12+r9],edx
+	mov	DWORD[r9],eax
+	mov	DWORD[4+r9],ebx
+	mov	DWORD[8+r9],ecx
+	mov	DWORD[12+r9],edx
 
-	lea	r8,QWORD PTR[16+r8]
-	lea	r9,QWORD PTR[16+r9]
-	mov	QWORD PTR[40+rsp],r10
-	jmp	$L$cbc_fast_dec_in_place_loop
-$L$cbc_fast_dec_in_place_done::
-	mov	rdi,QWORD PTR[56+rsp]
-	mov	QWORD PTR[rdi],r11
-	mov	QWORD PTR[8+rdi],r12
+	lea	r8,[16+r8]
+	lea	r9,[16+r9]
+	mov	QWORD[40+rsp],r10
+	jmp	NEAR $L$cbc_fast_dec_in_place_loop
+$L$cbc_fast_dec_in_place_done:
+	mov	rdi,QWORD[56+rsp]
+	mov	QWORD[rdi],r11
+	mov	QWORD[8+rdi],r12
 
-	mov	DWORD PTR[r9],eax
-	mov	DWORD PTR[4+r9],ebx
-	mov	DWORD PTR[8+r9],ecx
-	mov	DWORD PTR[12+r9],edx
+	mov	DWORD[r9],eax
+	mov	DWORD[4+r9],ebx
+	mov	DWORD[8+r9],ecx
+	mov	DWORD[12+r9],edx
 
 ALIGN	4
-$L$cbc_fast_cleanup::
-	cmp	DWORD PTR[((80+240))+rsp],0
-	lea	rdi,QWORD PTR[80+rsp]
-	je	$L$cbc_exit
+$L$cbc_fast_cleanup:
+	cmp	DWORD[((80+240))+rsp],0
+	lea	rdi,[80+rsp]
+	je	NEAR $L$cbc_exit
 	mov	ecx,240/8
 	xor	rax,rax
-	DD	090AB48F3h
+	DD	0x90AB48F3
 
-	jmp	$L$cbc_exit
+	jmp	NEAR $L$cbc_exit
 
 
 ALIGN	16
-$L$cbc_slow_prologue::
+$L$cbc_slow_prologue:
 
-	lea	rbp,QWORD PTR[((-88))+rsp]
+	lea	rbp,[((-88))+rsp]
 	and	rbp,-64
 
-	lea	r10,QWORD PTR[((-88-63))+rcx]
+	lea	r10,[((-88-63))+rcx]
 	sub	r10,rbp
 	neg	r10
-	and	r10,03c0h
+	and	r10,0x3c0
 	sub	rbp,r10
 
 	xchg	rbp,rsp
 
-	mov	QWORD PTR[16+rsp],rbp
-$L$cbc_slow_body::
+	mov	QWORD[16+rsp],rbp
+$L$cbc_slow_body:
 
 
 
 
-	mov	QWORD PTR[56+rsp],r8
+	mov	QWORD[56+rsp],r8
 	mov	rbp,r8
 	mov	rbx,r9
 	mov	r9,rsi
@@ -1631,972 +1631,971 @@
 	mov	r15,rcx
 	mov	r10,rdx
 
-	mov	eax,DWORD PTR[240+r15]
-	mov	QWORD PTR[rsp],r15
+	mov	eax,DWORD[240+r15]
+	mov	QWORD[rsp],r15
 	shl	eax,4
-	lea	rax,QWORD PTR[rax*1+r15]
-	mov	QWORD PTR[8+rsp],rax
+	lea	rax,[rax*1+r15]
+	mov	QWORD[8+rsp],rax
 
 
-	lea	r14,QWORD PTR[2048+r14]
-	lea	rax,QWORD PTR[((768-8))+rsp]
+	lea	r14,[2048+r14]
+	lea	rax,[((768-8))+rsp]
 	sub	rax,r14
-	and	rax,0300h
-	lea	r14,QWORD PTR[rax*1+r14]
+	and	rax,0x300
+	lea	r14,[rax*1+r14]
 
 	cmp	rbx,0
-	je	$L$SLOW_DECRYPT
+	je	NEAR $L$SLOW_DECRYPT
 
 
 	test	r10,-16
-	mov	eax,DWORD PTR[rbp]
-	mov	ebx,DWORD PTR[4+rbp]
-	mov	ecx,DWORD PTR[8+rbp]
-	mov	edx,DWORD PTR[12+rbp]
-	jz	$L$cbc_slow_enc_tail
+	mov	eax,DWORD[rbp]
+	mov	ebx,DWORD[4+rbp]
+	mov	ecx,DWORD[8+rbp]
+	mov	edx,DWORD[12+rbp]
+	jz	NEAR $L$cbc_slow_enc_tail
 
 ALIGN	4
-$L$cbc_slow_enc_loop::
-	xor	eax,DWORD PTR[r8]
-	xor	ebx,DWORD PTR[4+r8]
-	xor	ecx,DWORD PTR[8+r8]
-	xor	edx,DWORD PTR[12+r8]
-	mov	r15,QWORD PTR[rsp]
-	mov	QWORD PTR[24+rsp],r8
-	mov	QWORD PTR[32+rsp],r9
-	mov	QWORD PTR[40+rsp],r10
+$L$cbc_slow_enc_loop:
+	xor	eax,DWORD[r8]
+	xor	ebx,DWORD[4+r8]
+	xor	ecx,DWORD[8+r8]
+	xor	edx,DWORD[12+r8]
+	mov	r15,QWORD[rsp]
+	mov	QWORD[24+rsp],r8
+	mov	QWORD[32+rsp],r9
+	mov	QWORD[40+rsp],r10
 
 	call	_x86_64_AES_encrypt_compact
 
-	mov	r8,QWORD PTR[24+rsp]
-	mov	r9,QWORD PTR[32+rsp]
-	mov	r10,QWORD PTR[40+rsp]
-	mov	DWORD PTR[r9],eax
-	mov	DWORD PTR[4+r9],ebx
-	mov	DWORD PTR[8+r9],ecx
-	mov	DWORD PTR[12+r9],edx
+	mov	r8,QWORD[24+rsp]
+	mov	r9,QWORD[32+rsp]
+	mov	r10,QWORD[40+rsp]
+	mov	DWORD[r9],eax
+	mov	DWORD[4+r9],ebx
+	mov	DWORD[8+r9],ecx
+	mov	DWORD[12+r9],edx
 
-	lea	r8,QWORD PTR[16+r8]
-	lea	r9,QWORD PTR[16+r9]
+	lea	r8,[16+r8]
+	lea	r9,[16+r9]
 	sub	r10,16
 	test	r10,-16
-	jnz	$L$cbc_slow_enc_loop
+	jnz	NEAR $L$cbc_slow_enc_loop
 	test	r10,15
-	jnz	$L$cbc_slow_enc_tail
-	mov	rbp,QWORD PTR[56+rsp]
-	mov	DWORD PTR[rbp],eax
-	mov	DWORD PTR[4+rbp],ebx
-	mov	DWORD PTR[8+rbp],ecx
-	mov	DWORD PTR[12+rbp],edx
+	jnz	NEAR $L$cbc_slow_enc_tail
+	mov	rbp,QWORD[56+rsp]
+	mov	DWORD[rbp],eax
+	mov	DWORD[4+rbp],ebx
+	mov	DWORD[8+rbp],ecx
+	mov	DWORD[12+rbp],edx
 
-	jmp	$L$cbc_exit
+	jmp	NEAR $L$cbc_exit
 
 ALIGN	4
-$L$cbc_slow_enc_tail::
+$L$cbc_slow_enc_tail:
 	mov	r11,rax
 	mov	r12,rcx
 	mov	rcx,r10
 	mov	rsi,r8
 	mov	rdi,r9
-	DD	09066A4F3h
+	DD	0x9066A4F3
 	mov	rcx,16
 	sub	rcx,r10
 	xor	rax,rax
-	DD	09066AAF3h
+	DD	0x9066AAF3
 	mov	r8,r9
 	mov	r10,16
 	mov	rax,r11
 	mov	rcx,r12
-	jmp	$L$cbc_slow_enc_loop
+	jmp	NEAR $L$cbc_slow_enc_loop
 
 ALIGN	16
-$L$SLOW_DECRYPT::
+$L$SLOW_DECRYPT:
 	shr	rax,3
 	add	r14,rax
 
-	mov	r11,QWORD PTR[rbp]
-	mov	r12,QWORD PTR[8+rbp]
-	mov	QWORD PTR[((0+64))+rsp],r11
-	mov	QWORD PTR[((8+64))+rsp],r12
+	mov	r11,QWORD[rbp]
+	mov	r12,QWORD[8+rbp]
+	mov	QWORD[((0+64))+rsp],r11
+	mov	QWORD[((8+64))+rsp],r12
 
 ALIGN	4
-$L$cbc_slow_dec_loop::
-	mov	eax,DWORD PTR[r8]
-	mov	ebx,DWORD PTR[4+r8]
-	mov	ecx,DWORD PTR[8+r8]
-	mov	edx,DWORD PTR[12+r8]
-	mov	r15,QWORD PTR[rsp]
-	mov	QWORD PTR[24+rsp],r8
-	mov	QWORD PTR[32+rsp],r9
-	mov	QWORD PTR[40+rsp],r10
+$L$cbc_slow_dec_loop:
+	mov	eax,DWORD[r8]
+	mov	ebx,DWORD[4+r8]
+	mov	ecx,DWORD[8+r8]
+	mov	edx,DWORD[12+r8]
+	mov	r15,QWORD[rsp]
+	mov	QWORD[24+rsp],r8
+	mov	QWORD[32+rsp],r9
+	mov	QWORD[40+rsp],r10
 
 	call	_x86_64_AES_decrypt_compact
 
-	mov	r8,QWORD PTR[24+rsp]
-	mov	r9,QWORD PTR[32+rsp]
-	mov	r10,QWORD PTR[40+rsp]
-	xor	eax,DWORD PTR[((0+64))+rsp]
-	xor	ebx,DWORD PTR[((4+64))+rsp]
-	xor	ecx,DWORD PTR[((8+64))+rsp]
-	xor	edx,DWORD PTR[((12+64))+rsp]
+	mov	r8,QWORD[24+rsp]
+	mov	r9,QWORD[32+rsp]
+	mov	r10,QWORD[40+rsp]
+	xor	eax,DWORD[((0+64))+rsp]
+	xor	ebx,DWORD[((4+64))+rsp]
+	xor	ecx,DWORD[((8+64))+rsp]
+	xor	edx,DWORD[((12+64))+rsp]
 
-	mov	r11,QWORD PTR[r8]
-	mov	r12,QWORD PTR[8+r8]
+	mov	r11,QWORD[r8]
+	mov	r12,QWORD[8+r8]
 	sub	r10,16
-	jc	$L$cbc_slow_dec_partial
-	jz	$L$cbc_slow_dec_done
+	jc	NEAR $L$cbc_slow_dec_partial
+	jz	NEAR $L$cbc_slow_dec_done
 
-	mov	QWORD PTR[((0+64))+rsp],r11
-	mov	QWORD PTR[((8+64))+rsp],r12
+	mov	QWORD[((0+64))+rsp],r11
+	mov	QWORD[((8+64))+rsp],r12
 
-	mov	DWORD PTR[r9],eax
-	mov	DWORD PTR[4+r9],ebx
-	mov	DWORD PTR[8+r9],ecx
-	mov	DWORD PTR[12+r9],edx
+	mov	DWORD[r9],eax
+	mov	DWORD[4+r9],ebx
+	mov	DWORD[8+r9],ecx
+	mov	DWORD[12+r9],edx
 
-	lea	r8,QWORD PTR[16+r8]
-	lea	r9,QWORD PTR[16+r9]
-	jmp	$L$cbc_slow_dec_loop
-$L$cbc_slow_dec_done::
-	mov	rdi,QWORD PTR[56+rsp]
-	mov	QWORD PTR[rdi],r11
-	mov	QWORD PTR[8+rdi],r12
+	lea	r8,[16+r8]
+	lea	r9,[16+r9]
+	jmp	NEAR $L$cbc_slow_dec_loop
+$L$cbc_slow_dec_done:
+	mov	rdi,QWORD[56+rsp]
+	mov	QWORD[rdi],r11
+	mov	QWORD[8+rdi],r12
 
-	mov	DWORD PTR[r9],eax
-	mov	DWORD PTR[4+r9],ebx
-	mov	DWORD PTR[8+r9],ecx
-	mov	DWORD PTR[12+r9],edx
+	mov	DWORD[r9],eax
+	mov	DWORD[4+r9],ebx
+	mov	DWORD[8+r9],ecx
+	mov	DWORD[12+r9],edx
 
-	jmp	$L$cbc_exit
+	jmp	NEAR $L$cbc_exit
 
 ALIGN	4
-$L$cbc_slow_dec_partial::
-	mov	rdi,QWORD PTR[56+rsp]
-	mov	QWORD PTR[rdi],r11
-	mov	QWORD PTR[8+rdi],r12
+$L$cbc_slow_dec_partial:
+	mov	rdi,QWORD[56+rsp]
+	mov	QWORD[rdi],r11
+	mov	QWORD[8+rdi],r12
 
-	mov	DWORD PTR[((0+64))+rsp],eax
-	mov	DWORD PTR[((4+64))+rsp],ebx
-	mov	DWORD PTR[((8+64))+rsp],ecx
-	mov	DWORD PTR[((12+64))+rsp],edx
+	mov	DWORD[((0+64))+rsp],eax
+	mov	DWORD[((4+64))+rsp],ebx
+	mov	DWORD[((8+64))+rsp],ecx
+	mov	DWORD[((12+64))+rsp],edx
 
 	mov	rdi,r9
-	lea	rsi,QWORD PTR[64+rsp]
-	lea	rcx,QWORD PTR[16+r10]
-	DD	09066A4F3h
-	jmp	$L$cbc_exit
+	lea	rsi,[64+rsp]
+	lea	rcx,[16+r10]
+	DD	0x9066A4F3
+	jmp	NEAR $L$cbc_exit
 
 ALIGN	16
-$L$cbc_exit::
-	mov	rsi,QWORD PTR[16+rsp]
-	mov	r15,QWORD PTR[rsi]
-	mov	r14,QWORD PTR[8+rsi]
-	mov	r13,QWORD PTR[16+rsi]
-	mov	r12,QWORD PTR[24+rsi]
-	mov	rbp,QWORD PTR[32+rsi]
-	mov	rbx,QWORD PTR[40+rsi]
-	lea	rsp,QWORD PTR[48+rsi]
-$L$cbc_popfq::
+$L$cbc_exit:
+	mov	rsi,QWORD[16+rsp]
+	mov	r15,QWORD[rsi]
+	mov	r14,QWORD[8+rsi]
+	mov	r13,QWORD[16+rsi]
+	mov	r12,QWORD[24+rsi]
+	mov	rbp,QWORD[32+rsi]
+	mov	rbx,QWORD[40+rsi]
+	lea	rsp,[48+rsi]
+$L$cbc_popfq:
 	popfq
-$L$cbc_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+$L$cbc_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_asm_AES_cbc_encrypt::
-asm_AES_cbc_encrypt	ENDP
+$L$SEH_end_asm_AES_cbc_encrypt:
 ALIGN	64
-$L$AES_Te::
-	DD	0a56363c6h,0a56363c6h
-	DD	0847c7cf8h,0847c7cf8h
-	DD	0997777eeh,0997777eeh
-	DD	08d7b7bf6h,08d7b7bf6h
-	DD	00df2f2ffh,00df2f2ffh
-	DD	0bd6b6bd6h,0bd6b6bd6h
-	DD	0b16f6fdeh,0b16f6fdeh
-	DD	054c5c591h,054c5c591h
-	DD	050303060h,050303060h
-	DD	003010102h,003010102h
-	DD	0a96767ceh,0a96767ceh
-	DD	07d2b2b56h,07d2b2b56h
-	DD	019fefee7h,019fefee7h
-	DD	062d7d7b5h,062d7d7b5h
-	DD	0e6abab4dh,0e6abab4dh
-	DD	09a7676ech,09a7676ech
-	DD	045caca8fh,045caca8fh
-	DD	09d82821fh,09d82821fh
-	DD	040c9c989h,040c9c989h
-	DD	0877d7dfah,0877d7dfah
-	DD	015fafaefh,015fafaefh
-	DD	0eb5959b2h,0eb5959b2h
-	DD	0c947478eh,0c947478eh
-	DD	00bf0f0fbh,00bf0f0fbh
-	DD	0ecadad41h,0ecadad41h
-	DD	067d4d4b3h,067d4d4b3h
-	DD	0fda2a25fh,0fda2a25fh
-	DD	0eaafaf45h,0eaafaf45h
-	DD	0bf9c9c23h,0bf9c9c23h
-	DD	0f7a4a453h,0f7a4a453h
-	DD	0967272e4h,0967272e4h
-	DD	05bc0c09bh,05bc0c09bh
-	DD	0c2b7b775h,0c2b7b775h
-	DD	01cfdfde1h,01cfdfde1h
-	DD	0ae93933dh,0ae93933dh
-	DD	06a26264ch,06a26264ch
-	DD	05a36366ch,05a36366ch
-	DD	0413f3f7eh,0413f3f7eh
-	DD	002f7f7f5h,002f7f7f5h
-	DD	04fcccc83h,04fcccc83h
-	DD	05c343468h,05c343468h
-	DD	0f4a5a551h,0f4a5a551h
-	DD	034e5e5d1h,034e5e5d1h
-	DD	008f1f1f9h,008f1f1f9h
-	DD	0937171e2h,0937171e2h
-	DD	073d8d8abh,073d8d8abh
-	DD	053313162h,053313162h
-	DD	03f15152ah,03f15152ah
-	DD	00c040408h,00c040408h
-	DD	052c7c795h,052c7c795h
-	DD	065232346h,065232346h
-	DD	05ec3c39dh,05ec3c39dh
-	DD	028181830h,028181830h
-	DD	0a1969637h,0a1969637h
-	DD	00f05050ah,00f05050ah
-	DD	0b59a9a2fh,0b59a9a2fh
-	DD	00907070eh,00907070eh
-	DD	036121224h,036121224h
-	DD	09b80801bh,09b80801bh
-	DD	03de2e2dfh,03de2e2dfh
-	DD	026ebebcdh,026ebebcdh
-	DD	06927274eh,06927274eh
-	DD	0cdb2b27fh,0cdb2b27fh
-	DD	09f7575eah,09f7575eah
-	DD	01b090912h,01b090912h
-	DD	09e83831dh,09e83831dh
-	DD	0742c2c58h,0742c2c58h
-	DD	02e1a1a34h,02e1a1a34h
-	DD	02d1b1b36h,02d1b1b36h
-	DD	0b26e6edch,0b26e6edch
-	DD	0ee5a5ab4h,0ee5a5ab4h
-	DD	0fba0a05bh,0fba0a05bh
-	DD	0f65252a4h,0f65252a4h
-	DD	04d3b3b76h,04d3b3b76h
-	DD	061d6d6b7h,061d6d6b7h
-	DD	0ceb3b37dh,0ceb3b37dh
-	DD	07b292952h,07b292952h
-	DD	03ee3e3ddh,03ee3e3ddh
-	DD	0712f2f5eh,0712f2f5eh
-	DD	097848413h,097848413h
-	DD	0f55353a6h,0f55353a6h
-	DD	068d1d1b9h,068d1d1b9h
-	DD	000000000h,000000000h
-	DD	02cededc1h,02cededc1h
-	DD	060202040h,060202040h
-	DD	01ffcfce3h,01ffcfce3h
-	DD	0c8b1b179h,0c8b1b179h
-	DD	0ed5b5bb6h,0ed5b5bb6h
-	DD	0be6a6ad4h,0be6a6ad4h
-	DD	046cbcb8dh,046cbcb8dh
-	DD	0d9bebe67h,0d9bebe67h
-	DD	04b393972h,04b393972h
-	DD	0de4a4a94h,0de4a4a94h
-	DD	0d44c4c98h,0d44c4c98h
-	DD	0e85858b0h,0e85858b0h
-	DD	04acfcf85h,04acfcf85h
-	DD	06bd0d0bbh,06bd0d0bbh
-	DD	02aefefc5h,02aefefc5h
-	DD	0e5aaaa4fh,0e5aaaa4fh
-	DD	016fbfbedh,016fbfbedh
-	DD	0c5434386h,0c5434386h
-	DD	0d74d4d9ah,0d74d4d9ah
-	DD	055333366h,055333366h
-	DD	094858511h,094858511h
-	DD	0cf45458ah,0cf45458ah
-	DD	010f9f9e9h,010f9f9e9h
-	DD	006020204h,006020204h
-	DD	0817f7ffeh,0817f7ffeh
-	DD	0f05050a0h,0f05050a0h
-	DD	0443c3c78h,0443c3c78h
-	DD	0ba9f9f25h,0ba9f9f25h
-	DD	0e3a8a84bh,0e3a8a84bh
-	DD	0f35151a2h,0f35151a2h
-	DD	0fea3a35dh,0fea3a35dh
-	DD	0c0404080h,0c0404080h
-	DD	08a8f8f05h,08a8f8f05h
-	DD	0ad92923fh,0ad92923fh
-	DD	0bc9d9d21h,0bc9d9d21h
-	DD	048383870h,048383870h
-	DD	004f5f5f1h,004f5f5f1h
-	DD	0dfbcbc63h,0dfbcbc63h
-	DD	0c1b6b677h,0c1b6b677h
-	DD	075dadaafh,075dadaafh
-	DD	063212142h,063212142h
-	DD	030101020h,030101020h
-	DD	01affffe5h,01affffe5h
-	DD	00ef3f3fdh,00ef3f3fdh
-	DD	06dd2d2bfh,06dd2d2bfh
-	DD	04ccdcd81h,04ccdcd81h
-	DD	0140c0c18h,0140c0c18h
-	DD	035131326h,035131326h
-	DD	02fececc3h,02fececc3h
-	DD	0e15f5fbeh,0e15f5fbeh
-	DD	0a2979735h,0a2979735h
-	DD	0cc444488h,0cc444488h
-	DD	03917172eh,03917172eh
-	DD	057c4c493h,057c4c493h
-	DD	0f2a7a755h,0f2a7a755h
-	DD	0827e7efch,0827e7efch
-	DD	0473d3d7ah,0473d3d7ah
-	DD	0ac6464c8h,0ac6464c8h
-	DD	0e75d5dbah,0e75d5dbah
-	DD	02b191932h,02b191932h
-	DD	0957373e6h,0957373e6h
-	DD	0a06060c0h,0a06060c0h
-	DD	098818119h,098818119h
-	DD	0d14f4f9eh,0d14f4f9eh
-	DD	07fdcdca3h,07fdcdca3h
-	DD	066222244h,066222244h
-	DD	07e2a2a54h,07e2a2a54h
-	DD	0ab90903bh,0ab90903bh
-	DD	08388880bh,08388880bh
-	DD	0ca46468ch,0ca46468ch
-	DD	029eeeec7h,029eeeec7h
-	DD	0d3b8b86bh,0d3b8b86bh
-	DD	03c141428h,03c141428h
-	DD	079dedea7h,079dedea7h
-	DD	0e25e5ebch,0e25e5ebch
-	DD	01d0b0b16h,01d0b0b16h
-	DD	076dbdbadh,076dbdbadh
-	DD	03be0e0dbh,03be0e0dbh
-	DD	056323264h,056323264h
-	DD	04e3a3a74h,04e3a3a74h
-	DD	01e0a0a14h,01e0a0a14h
-	DD	0db494992h,0db494992h
-	DD	00a06060ch,00a06060ch
-	DD	06c242448h,06c242448h
-	DD	0e45c5cb8h,0e45c5cb8h
-	DD	05dc2c29fh,05dc2c29fh
-	DD	06ed3d3bdh,06ed3d3bdh
-	DD	0efacac43h,0efacac43h
-	DD	0a66262c4h,0a66262c4h
-	DD	0a8919139h,0a8919139h
-	DD	0a4959531h,0a4959531h
-	DD	037e4e4d3h,037e4e4d3h
-	DD	08b7979f2h,08b7979f2h
-	DD	032e7e7d5h,032e7e7d5h
-	DD	043c8c88bh,043c8c88bh
-	DD	05937376eh,05937376eh
-	DD	0b76d6ddah,0b76d6ddah
-	DD	08c8d8d01h,08c8d8d01h
-	DD	064d5d5b1h,064d5d5b1h
-	DD	0d24e4e9ch,0d24e4e9ch
-	DD	0e0a9a949h,0e0a9a949h
-	DD	0b46c6cd8h,0b46c6cd8h
-	DD	0fa5656ach,0fa5656ach
-	DD	007f4f4f3h,007f4f4f3h
-	DD	025eaeacfh,025eaeacfh
-	DD	0af6565cah,0af6565cah
-	DD	08e7a7af4h,08e7a7af4h
-	DD	0e9aeae47h,0e9aeae47h
-	DD	018080810h,018080810h
-	DD	0d5baba6fh,0d5baba6fh
-	DD	0887878f0h,0887878f0h
-	DD	06f25254ah,06f25254ah
-	DD	0722e2e5ch,0722e2e5ch
-	DD	0241c1c38h,0241c1c38h
-	DD	0f1a6a657h,0f1a6a657h
-	DD	0c7b4b473h,0c7b4b473h
-	DD	051c6c697h,051c6c697h
-	DD	023e8e8cbh,023e8e8cbh
-	DD	07cdddda1h,07cdddda1h
-	DD	09c7474e8h,09c7474e8h
-	DD	0211f1f3eh,0211f1f3eh
-	DD	0dd4b4b96h,0dd4b4b96h
-	DD	0dcbdbd61h,0dcbdbd61h
-	DD	0868b8b0dh,0868b8b0dh
-	DD	0858a8a0fh,0858a8a0fh
-	DD	0907070e0h,0907070e0h
-	DD	0423e3e7ch,0423e3e7ch
-	DD	0c4b5b571h,0c4b5b571h
-	DD	0aa6666cch,0aa6666cch
-	DD	0d8484890h,0d8484890h
-	DD	005030306h,005030306h
-	DD	001f6f6f7h,001f6f6f7h
-	DD	0120e0e1ch,0120e0e1ch
-	DD	0a36161c2h,0a36161c2h
-	DD	05f35356ah,05f35356ah
-	DD	0f95757aeh,0f95757aeh
-	DD	0d0b9b969h,0d0b9b969h
-	DD	091868617h,091868617h
-	DD	058c1c199h,058c1c199h
-	DD	0271d1d3ah,0271d1d3ah
-	DD	0b99e9e27h,0b99e9e27h
-	DD	038e1e1d9h,038e1e1d9h
-	DD	013f8f8ebh,013f8f8ebh
-	DD	0b398982bh,0b398982bh
-	DD	033111122h,033111122h
-	DD	0bb6969d2h,0bb6969d2h
-	DD	070d9d9a9h,070d9d9a9h
-	DD	0898e8e07h,0898e8e07h
-	DD	0a7949433h,0a7949433h
-	DD	0b69b9b2dh,0b69b9b2dh
-	DD	0221e1e3ch,0221e1e3ch
-	DD	092878715h,092878715h
-	DD	020e9e9c9h,020e9e9c9h
-	DD	049cece87h,049cece87h
-	DD	0ff5555aah,0ff5555aah
-	DD	078282850h,078282850h
-	DD	07adfdfa5h,07adfdfa5h
-	DD	08f8c8c03h,08f8c8c03h
-	DD	0f8a1a159h,0f8a1a159h
-	DD	080898909h,080898909h
-	DD	0170d0d1ah,0170d0d1ah
-	DD	0dabfbf65h,0dabfbf65h
-	DD	031e6e6d7h,031e6e6d7h
-	DD	0c6424284h,0c6424284h
-	DD	0b86868d0h,0b86868d0h
-	DD	0c3414182h,0c3414182h
-	DD	0b0999929h,0b0999929h
-	DD	0772d2d5ah,0772d2d5ah
-	DD	0110f0f1eh,0110f0f1eh
-	DD	0cbb0b07bh,0cbb0b07bh
-	DD	0fc5454a8h,0fc5454a8h
-	DD	0d6bbbb6dh,0d6bbbb6dh
-	DD	03a16162ch,03a16162ch
-DB	063h,07ch,077h,07bh,0f2h,06bh,06fh,0c5h
-DB	030h,001h,067h,02bh,0feh,0d7h,0abh,076h
-DB	0cah,082h,0c9h,07dh,0fah,059h,047h,0f0h
-DB	0adh,0d4h,0a2h,0afh,09ch,0a4h,072h,0c0h
-DB	0b7h,0fdh,093h,026h,036h,03fh,0f7h,0cch
-DB	034h,0a5h,0e5h,0f1h,071h,0d8h,031h,015h
-DB	004h,0c7h,023h,0c3h,018h,096h,005h,09ah
-DB	007h,012h,080h,0e2h,0ebh,027h,0b2h,075h
-DB	009h,083h,02ch,01ah,01bh,06eh,05ah,0a0h
-DB	052h,03bh,0d6h,0b3h,029h,0e3h,02fh,084h
-DB	053h,0d1h,000h,0edh,020h,0fch,0b1h,05bh
-DB	06ah,0cbh,0beh,039h,04ah,04ch,058h,0cfh
-DB	0d0h,0efh,0aah,0fbh,043h,04dh,033h,085h
-DB	045h,0f9h,002h,07fh,050h,03ch,09fh,0a8h
-DB	051h,0a3h,040h,08fh,092h,09dh,038h,0f5h
-DB	0bch,0b6h,0dah,021h,010h,0ffh,0f3h,0d2h
-DB	0cdh,00ch,013h,0ech,05fh,097h,044h,017h
-DB	0c4h,0a7h,07eh,03dh,064h,05dh,019h,073h
-DB	060h,081h,04fh,0dch,022h,02ah,090h,088h
-DB	046h,0eeh,0b8h,014h,0deh,05eh,00bh,0dbh
-DB	0e0h,032h,03ah,00ah,049h,006h,024h,05ch
-DB	0c2h,0d3h,0ach,062h,091h,095h,0e4h,079h
-DB	0e7h,0c8h,037h,06dh,08dh,0d5h,04eh,0a9h
-DB	06ch,056h,0f4h,0eah,065h,07ah,0aeh,008h
-DB	0bah,078h,025h,02eh,01ch,0a6h,0b4h,0c6h
-DB	0e8h,0ddh,074h,01fh,04bh,0bdh,08bh,08ah
-DB	070h,03eh,0b5h,066h,048h,003h,0f6h,00eh
-DB	061h,035h,057h,0b9h,086h,0c1h,01dh,09eh
-DB	0e1h,0f8h,098h,011h,069h,0d9h,08eh,094h
-DB	09bh,01eh,087h,0e9h,0ceh,055h,028h,0dfh
-DB	08ch,0a1h,089h,00dh,0bfh,0e6h,042h,068h
-DB	041h,099h,02dh,00fh,0b0h,054h,0bbh,016h
-DB	063h,07ch,077h,07bh,0f2h,06bh,06fh,0c5h
-DB	030h,001h,067h,02bh,0feh,0d7h,0abh,076h
-DB	0cah,082h,0c9h,07dh,0fah,059h,047h,0f0h
-DB	0adh,0d4h,0a2h,0afh,09ch,0a4h,072h,0c0h
-DB	0b7h,0fdh,093h,026h,036h,03fh,0f7h,0cch
-DB	034h,0a5h,0e5h,0f1h,071h,0d8h,031h,015h
-DB	004h,0c7h,023h,0c3h,018h,096h,005h,09ah
-DB	007h,012h,080h,0e2h,0ebh,027h,0b2h,075h
-DB	009h,083h,02ch,01ah,01bh,06eh,05ah,0a0h
-DB	052h,03bh,0d6h,0b3h,029h,0e3h,02fh,084h
-DB	053h,0d1h,000h,0edh,020h,0fch,0b1h,05bh
-DB	06ah,0cbh,0beh,039h,04ah,04ch,058h,0cfh
-DB	0d0h,0efh,0aah,0fbh,043h,04dh,033h,085h
-DB	045h,0f9h,002h,07fh,050h,03ch,09fh,0a8h
-DB	051h,0a3h,040h,08fh,092h,09dh,038h,0f5h
-DB	0bch,0b6h,0dah,021h,010h,0ffh,0f3h,0d2h
-DB	0cdh,00ch,013h,0ech,05fh,097h,044h,017h
-DB	0c4h,0a7h,07eh,03dh,064h,05dh,019h,073h
-DB	060h,081h,04fh,0dch,022h,02ah,090h,088h
-DB	046h,0eeh,0b8h,014h,0deh,05eh,00bh,0dbh
-DB	0e0h,032h,03ah,00ah,049h,006h,024h,05ch
-DB	0c2h,0d3h,0ach,062h,091h,095h,0e4h,079h
-DB	0e7h,0c8h,037h,06dh,08dh,0d5h,04eh,0a9h
-DB	06ch,056h,0f4h,0eah,065h,07ah,0aeh,008h
-DB	0bah,078h,025h,02eh,01ch,0a6h,0b4h,0c6h
-DB	0e8h,0ddh,074h,01fh,04bh,0bdh,08bh,08ah
-DB	070h,03eh,0b5h,066h,048h,003h,0f6h,00eh
-DB	061h,035h,057h,0b9h,086h,0c1h,01dh,09eh
-DB	0e1h,0f8h,098h,011h,069h,0d9h,08eh,094h
-DB	09bh,01eh,087h,0e9h,0ceh,055h,028h,0dfh
-DB	08ch,0a1h,089h,00dh,0bfh,0e6h,042h,068h
-DB	041h,099h,02dh,00fh,0b0h,054h,0bbh,016h
-DB	063h,07ch,077h,07bh,0f2h,06bh,06fh,0c5h
-DB	030h,001h,067h,02bh,0feh,0d7h,0abh,076h
-DB	0cah,082h,0c9h,07dh,0fah,059h,047h,0f0h
-DB	0adh,0d4h,0a2h,0afh,09ch,0a4h,072h,0c0h
-DB	0b7h,0fdh,093h,026h,036h,03fh,0f7h,0cch
-DB	034h,0a5h,0e5h,0f1h,071h,0d8h,031h,015h
-DB	004h,0c7h,023h,0c3h,018h,096h,005h,09ah
-DB	007h,012h,080h,0e2h,0ebh,027h,0b2h,075h
-DB	009h,083h,02ch,01ah,01bh,06eh,05ah,0a0h
-DB	052h,03bh,0d6h,0b3h,029h,0e3h,02fh,084h
-DB	053h,0d1h,000h,0edh,020h,0fch,0b1h,05bh
-DB	06ah,0cbh,0beh,039h,04ah,04ch,058h,0cfh
-DB	0d0h,0efh,0aah,0fbh,043h,04dh,033h,085h
-DB	045h,0f9h,002h,07fh,050h,03ch,09fh,0a8h
-DB	051h,0a3h,040h,08fh,092h,09dh,038h,0f5h
-DB	0bch,0b6h,0dah,021h,010h,0ffh,0f3h,0d2h
-DB	0cdh,00ch,013h,0ech,05fh,097h,044h,017h
-DB	0c4h,0a7h,07eh,03dh,064h,05dh,019h,073h
-DB	060h,081h,04fh,0dch,022h,02ah,090h,088h
-DB	046h,0eeh,0b8h,014h,0deh,05eh,00bh,0dbh
-DB	0e0h,032h,03ah,00ah,049h,006h,024h,05ch
-DB	0c2h,0d3h,0ach,062h,091h,095h,0e4h,079h
-DB	0e7h,0c8h,037h,06dh,08dh,0d5h,04eh,0a9h
-DB	06ch,056h,0f4h,0eah,065h,07ah,0aeh,008h
-DB	0bah,078h,025h,02eh,01ch,0a6h,0b4h,0c6h
-DB	0e8h,0ddh,074h,01fh,04bh,0bdh,08bh,08ah
-DB	070h,03eh,0b5h,066h,048h,003h,0f6h,00eh
-DB	061h,035h,057h,0b9h,086h,0c1h,01dh,09eh
-DB	0e1h,0f8h,098h,011h,069h,0d9h,08eh,094h
-DB	09bh,01eh,087h,0e9h,0ceh,055h,028h,0dfh
-DB	08ch,0a1h,089h,00dh,0bfh,0e6h,042h,068h
-DB	041h,099h,02dh,00fh,0b0h,054h,0bbh,016h
-DB	063h,07ch,077h,07bh,0f2h,06bh,06fh,0c5h
-DB	030h,001h,067h,02bh,0feh,0d7h,0abh,076h
-DB	0cah,082h,0c9h,07dh,0fah,059h,047h,0f0h
-DB	0adh,0d4h,0a2h,0afh,09ch,0a4h,072h,0c0h
-DB	0b7h,0fdh,093h,026h,036h,03fh,0f7h,0cch
-DB	034h,0a5h,0e5h,0f1h,071h,0d8h,031h,015h
-DB	004h,0c7h,023h,0c3h,018h,096h,005h,09ah
-DB	007h,012h,080h,0e2h,0ebh,027h,0b2h,075h
-DB	009h,083h,02ch,01ah,01bh,06eh,05ah,0a0h
-DB	052h,03bh,0d6h,0b3h,029h,0e3h,02fh,084h
-DB	053h,0d1h,000h,0edh,020h,0fch,0b1h,05bh
-DB	06ah,0cbh,0beh,039h,04ah,04ch,058h,0cfh
-DB	0d0h,0efh,0aah,0fbh,043h,04dh,033h,085h
-DB	045h,0f9h,002h,07fh,050h,03ch,09fh,0a8h
-DB	051h,0a3h,040h,08fh,092h,09dh,038h,0f5h
-DB	0bch,0b6h,0dah,021h,010h,0ffh,0f3h,0d2h
-DB	0cdh,00ch,013h,0ech,05fh,097h,044h,017h
-DB	0c4h,0a7h,07eh,03dh,064h,05dh,019h,073h
-DB	060h,081h,04fh,0dch,022h,02ah,090h,088h
-DB	046h,0eeh,0b8h,014h,0deh,05eh,00bh,0dbh
-DB	0e0h,032h,03ah,00ah,049h,006h,024h,05ch
-DB	0c2h,0d3h,0ach,062h,091h,095h,0e4h,079h
-DB	0e7h,0c8h,037h,06dh,08dh,0d5h,04eh,0a9h
-DB	06ch,056h,0f4h,0eah,065h,07ah,0aeh,008h
-DB	0bah,078h,025h,02eh,01ch,0a6h,0b4h,0c6h
-DB	0e8h,0ddh,074h,01fh,04bh,0bdh,08bh,08ah
-DB	070h,03eh,0b5h,066h,048h,003h,0f6h,00eh
-DB	061h,035h,057h,0b9h,086h,0c1h,01dh,09eh
-DB	0e1h,0f8h,098h,011h,069h,0d9h,08eh,094h
-DB	09bh,01eh,087h,0e9h,0ceh,055h,028h,0dfh
-DB	08ch,0a1h,089h,00dh,0bfh,0e6h,042h,068h
-DB	041h,099h,02dh,00fh,0b0h,054h,0bbh,016h
-	DD	000000001h,000000002h,000000004h,000000008h
-	DD	000000010h,000000020h,000000040h,000000080h
-	DD	00000001bh,000000036h,080808080h,080808080h
-	DD	0fefefefeh,0fefefefeh,01b1b1b1bh,01b1b1b1bh
+$L$AES_Te:
+	DD	0xa56363c6,0xa56363c6
+	DD	0x847c7cf8,0x847c7cf8
+	DD	0x997777ee,0x997777ee
+	DD	0x8d7b7bf6,0x8d7b7bf6
+	DD	0x0df2f2ff,0x0df2f2ff
+	DD	0xbd6b6bd6,0xbd6b6bd6
+	DD	0xb16f6fde,0xb16f6fde
+	DD	0x54c5c591,0x54c5c591
+	DD	0x50303060,0x50303060
+	DD	0x03010102,0x03010102
+	DD	0xa96767ce,0xa96767ce
+	DD	0x7d2b2b56,0x7d2b2b56
+	DD	0x19fefee7,0x19fefee7
+	DD	0x62d7d7b5,0x62d7d7b5
+	DD	0xe6abab4d,0xe6abab4d
+	DD	0x9a7676ec,0x9a7676ec
+	DD	0x45caca8f,0x45caca8f
+	DD	0x9d82821f,0x9d82821f
+	DD	0x40c9c989,0x40c9c989
+	DD	0x877d7dfa,0x877d7dfa
+	DD	0x15fafaef,0x15fafaef
+	DD	0xeb5959b2,0xeb5959b2
+	DD	0xc947478e,0xc947478e
+	DD	0x0bf0f0fb,0x0bf0f0fb
+	DD	0xecadad41,0xecadad41
+	DD	0x67d4d4b3,0x67d4d4b3
+	DD	0xfda2a25f,0xfda2a25f
+	DD	0xeaafaf45,0xeaafaf45
+	DD	0xbf9c9c23,0xbf9c9c23
+	DD	0xf7a4a453,0xf7a4a453
+	DD	0x967272e4,0x967272e4
+	DD	0x5bc0c09b,0x5bc0c09b
+	DD	0xc2b7b775,0xc2b7b775
+	DD	0x1cfdfde1,0x1cfdfde1
+	DD	0xae93933d,0xae93933d
+	DD	0x6a26264c,0x6a26264c
+	DD	0x5a36366c,0x5a36366c
+	DD	0x413f3f7e,0x413f3f7e
+	DD	0x02f7f7f5,0x02f7f7f5
+	DD	0x4fcccc83,0x4fcccc83
+	DD	0x5c343468,0x5c343468
+	DD	0xf4a5a551,0xf4a5a551
+	DD	0x34e5e5d1,0x34e5e5d1
+	DD	0x08f1f1f9,0x08f1f1f9
+	DD	0x937171e2,0x937171e2
+	DD	0x73d8d8ab,0x73d8d8ab
+	DD	0x53313162,0x53313162
+	DD	0x3f15152a,0x3f15152a
+	DD	0x0c040408,0x0c040408
+	DD	0x52c7c795,0x52c7c795
+	DD	0x65232346,0x65232346
+	DD	0x5ec3c39d,0x5ec3c39d
+	DD	0x28181830,0x28181830
+	DD	0xa1969637,0xa1969637
+	DD	0x0f05050a,0x0f05050a
+	DD	0xb59a9a2f,0xb59a9a2f
+	DD	0x0907070e,0x0907070e
+	DD	0x36121224,0x36121224
+	DD	0x9b80801b,0x9b80801b
+	DD	0x3de2e2df,0x3de2e2df
+	DD	0x26ebebcd,0x26ebebcd
+	DD	0x6927274e,0x6927274e
+	DD	0xcdb2b27f,0xcdb2b27f
+	DD	0x9f7575ea,0x9f7575ea
+	DD	0x1b090912,0x1b090912
+	DD	0x9e83831d,0x9e83831d
+	DD	0x742c2c58,0x742c2c58
+	DD	0x2e1a1a34,0x2e1a1a34
+	DD	0x2d1b1b36,0x2d1b1b36
+	DD	0xb26e6edc,0xb26e6edc
+	DD	0xee5a5ab4,0xee5a5ab4
+	DD	0xfba0a05b,0xfba0a05b
+	DD	0xf65252a4,0xf65252a4
+	DD	0x4d3b3b76,0x4d3b3b76
+	DD	0x61d6d6b7,0x61d6d6b7
+	DD	0xceb3b37d,0xceb3b37d
+	DD	0x7b292952,0x7b292952
+	DD	0x3ee3e3dd,0x3ee3e3dd
+	DD	0x712f2f5e,0x712f2f5e
+	DD	0x97848413,0x97848413
+	DD	0xf55353a6,0xf55353a6
+	DD	0x68d1d1b9,0x68d1d1b9
+	DD	0x00000000,0x00000000
+	DD	0x2cededc1,0x2cededc1
+	DD	0x60202040,0x60202040
+	DD	0x1ffcfce3,0x1ffcfce3
+	DD	0xc8b1b179,0xc8b1b179
+	DD	0xed5b5bb6,0xed5b5bb6
+	DD	0xbe6a6ad4,0xbe6a6ad4
+	DD	0x46cbcb8d,0x46cbcb8d
+	DD	0xd9bebe67,0xd9bebe67
+	DD	0x4b393972,0x4b393972
+	DD	0xde4a4a94,0xde4a4a94
+	DD	0xd44c4c98,0xd44c4c98
+	DD	0xe85858b0,0xe85858b0
+	DD	0x4acfcf85,0x4acfcf85
+	DD	0x6bd0d0bb,0x6bd0d0bb
+	DD	0x2aefefc5,0x2aefefc5
+	DD	0xe5aaaa4f,0xe5aaaa4f
+	DD	0x16fbfbed,0x16fbfbed
+	DD	0xc5434386,0xc5434386
+	DD	0xd74d4d9a,0xd74d4d9a
+	DD	0x55333366,0x55333366
+	DD	0x94858511,0x94858511
+	DD	0xcf45458a,0xcf45458a
+	DD	0x10f9f9e9,0x10f9f9e9
+	DD	0x06020204,0x06020204
+	DD	0x817f7ffe,0x817f7ffe
+	DD	0xf05050a0,0xf05050a0
+	DD	0x443c3c78,0x443c3c78
+	DD	0xba9f9f25,0xba9f9f25
+	DD	0xe3a8a84b,0xe3a8a84b
+	DD	0xf35151a2,0xf35151a2
+	DD	0xfea3a35d,0xfea3a35d
+	DD	0xc0404080,0xc0404080
+	DD	0x8a8f8f05,0x8a8f8f05
+	DD	0xad92923f,0xad92923f
+	DD	0xbc9d9d21,0xbc9d9d21
+	DD	0x48383870,0x48383870
+	DD	0x04f5f5f1,0x04f5f5f1
+	DD	0xdfbcbc63,0xdfbcbc63
+	DD	0xc1b6b677,0xc1b6b677
+	DD	0x75dadaaf,0x75dadaaf
+	DD	0x63212142,0x63212142
+	DD	0x30101020,0x30101020
+	DD	0x1affffe5,0x1affffe5
+	DD	0x0ef3f3fd,0x0ef3f3fd
+	DD	0x6dd2d2bf,0x6dd2d2bf
+	DD	0x4ccdcd81,0x4ccdcd81
+	DD	0x140c0c18,0x140c0c18
+	DD	0x35131326,0x35131326
+	DD	0x2fececc3,0x2fececc3
+	DD	0xe15f5fbe,0xe15f5fbe
+	DD	0xa2979735,0xa2979735
+	DD	0xcc444488,0xcc444488
+	DD	0x3917172e,0x3917172e
+	DD	0x57c4c493,0x57c4c493
+	DD	0xf2a7a755,0xf2a7a755
+	DD	0x827e7efc,0x827e7efc
+	DD	0x473d3d7a,0x473d3d7a
+	DD	0xac6464c8,0xac6464c8
+	DD	0xe75d5dba,0xe75d5dba
+	DD	0x2b191932,0x2b191932
+	DD	0x957373e6,0x957373e6
+	DD	0xa06060c0,0xa06060c0
+	DD	0x98818119,0x98818119
+	DD	0xd14f4f9e,0xd14f4f9e
+	DD	0x7fdcdca3,0x7fdcdca3
+	DD	0x66222244,0x66222244
+	DD	0x7e2a2a54,0x7e2a2a54
+	DD	0xab90903b,0xab90903b
+	DD	0x8388880b,0x8388880b
+	DD	0xca46468c,0xca46468c
+	DD	0x29eeeec7,0x29eeeec7
+	DD	0xd3b8b86b,0xd3b8b86b
+	DD	0x3c141428,0x3c141428
+	DD	0x79dedea7,0x79dedea7
+	DD	0xe25e5ebc,0xe25e5ebc
+	DD	0x1d0b0b16,0x1d0b0b16
+	DD	0x76dbdbad,0x76dbdbad
+	DD	0x3be0e0db,0x3be0e0db
+	DD	0x56323264,0x56323264
+	DD	0x4e3a3a74,0x4e3a3a74
+	DD	0x1e0a0a14,0x1e0a0a14
+	DD	0xdb494992,0xdb494992
+	DD	0x0a06060c,0x0a06060c
+	DD	0x6c242448,0x6c242448
+	DD	0xe45c5cb8,0xe45c5cb8
+	DD	0x5dc2c29f,0x5dc2c29f
+	DD	0x6ed3d3bd,0x6ed3d3bd
+	DD	0xefacac43,0xefacac43
+	DD	0xa66262c4,0xa66262c4
+	DD	0xa8919139,0xa8919139
+	DD	0xa4959531,0xa4959531
+	DD	0x37e4e4d3,0x37e4e4d3
+	DD	0x8b7979f2,0x8b7979f2
+	DD	0x32e7e7d5,0x32e7e7d5
+	DD	0x43c8c88b,0x43c8c88b
+	DD	0x5937376e,0x5937376e
+	DD	0xb76d6dda,0xb76d6dda
+	DD	0x8c8d8d01,0x8c8d8d01
+	DD	0x64d5d5b1,0x64d5d5b1
+	DD	0xd24e4e9c,0xd24e4e9c
+	DD	0xe0a9a949,0xe0a9a949
+	DD	0xb46c6cd8,0xb46c6cd8
+	DD	0xfa5656ac,0xfa5656ac
+	DD	0x07f4f4f3,0x07f4f4f3
+	DD	0x25eaeacf,0x25eaeacf
+	DD	0xaf6565ca,0xaf6565ca
+	DD	0x8e7a7af4,0x8e7a7af4
+	DD	0xe9aeae47,0xe9aeae47
+	DD	0x18080810,0x18080810
+	DD	0xd5baba6f,0xd5baba6f
+	DD	0x887878f0,0x887878f0
+	DD	0x6f25254a,0x6f25254a
+	DD	0x722e2e5c,0x722e2e5c
+	DD	0x241c1c38,0x241c1c38
+	DD	0xf1a6a657,0xf1a6a657
+	DD	0xc7b4b473,0xc7b4b473
+	DD	0x51c6c697,0x51c6c697
+	DD	0x23e8e8cb,0x23e8e8cb
+	DD	0x7cdddda1,0x7cdddda1
+	DD	0x9c7474e8,0x9c7474e8
+	DD	0x211f1f3e,0x211f1f3e
+	DD	0xdd4b4b96,0xdd4b4b96
+	DD	0xdcbdbd61,0xdcbdbd61
+	DD	0x868b8b0d,0x868b8b0d
+	DD	0x858a8a0f,0x858a8a0f
+	DD	0x907070e0,0x907070e0
+	DD	0x423e3e7c,0x423e3e7c
+	DD	0xc4b5b571,0xc4b5b571
+	DD	0xaa6666cc,0xaa6666cc
+	DD	0xd8484890,0xd8484890
+	DD	0x05030306,0x05030306
+	DD	0x01f6f6f7,0x01f6f6f7
+	DD	0x120e0e1c,0x120e0e1c
+	DD	0xa36161c2,0xa36161c2
+	DD	0x5f35356a,0x5f35356a
+	DD	0xf95757ae,0xf95757ae
+	DD	0xd0b9b969,0xd0b9b969
+	DD	0x91868617,0x91868617
+	DD	0x58c1c199,0x58c1c199
+	DD	0x271d1d3a,0x271d1d3a
+	DD	0xb99e9e27,0xb99e9e27
+	DD	0x38e1e1d9,0x38e1e1d9
+	DD	0x13f8f8eb,0x13f8f8eb
+	DD	0xb398982b,0xb398982b
+	DD	0x33111122,0x33111122
+	DD	0xbb6969d2,0xbb6969d2
+	DD	0x70d9d9a9,0x70d9d9a9
+	DD	0x898e8e07,0x898e8e07
+	DD	0xa7949433,0xa7949433
+	DD	0xb69b9b2d,0xb69b9b2d
+	DD	0x221e1e3c,0x221e1e3c
+	DD	0x92878715,0x92878715
+	DD	0x20e9e9c9,0x20e9e9c9
+	DD	0x49cece87,0x49cece87
+	DD	0xff5555aa,0xff5555aa
+	DD	0x78282850,0x78282850
+	DD	0x7adfdfa5,0x7adfdfa5
+	DD	0x8f8c8c03,0x8f8c8c03
+	DD	0xf8a1a159,0xf8a1a159
+	DD	0x80898909,0x80898909
+	DD	0x170d0d1a,0x170d0d1a
+	DD	0xdabfbf65,0xdabfbf65
+	DD	0x31e6e6d7,0x31e6e6d7
+	DD	0xc6424284,0xc6424284
+	DD	0xb86868d0,0xb86868d0
+	DD	0xc3414182,0xc3414182
+	DD	0xb0999929,0xb0999929
+	DD	0x772d2d5a,0x772d2d5a
+	DD	0x110f0f1e,0x110f0f1e
+	DD	0xcbb0b07b,0xcbb0b07b
+	DD	0xfc5454a8,0xfc5454a8
+	DD	0xd6bbbb6d,0xd6bbbb6d
+	DD	0x3a16162c,0x3a16162c
+DB	0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5
+DB	0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76
+DB	0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0
+DB	0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0
+DB	0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc
+DB	0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15
+DB	0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a
+DB	0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75
+DB	0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0
+DB	0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84
+DB	0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b
+DB	0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf
+DB	0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85
+DB	0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8
+DB	0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5
+DB	0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2
+DB	0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17
+DB	0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73
+DB	0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88
+DB	0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb
+DB	0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c
+DB	0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79
+DB	0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9
+DB	0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08
+DB	0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6
+DB	0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a
+DB	0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e
+DB	0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e
+DB	0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94
+DB	0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf
+DB	0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68
+DB	0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16
+DB	0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5
+DB	0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76
+DB	0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0
+DB	0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0
+DB	0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc
+DB	0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15
+DB	0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a
+DB	0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75
+DB	0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0
+DB	0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84
+DB	0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b
+DB	0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf
+DB	0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85
+DB	0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8
+DB	0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5
+DB	0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2
+DB	0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17
+DB	0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73
+DB	0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88
+DB	0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb
+DB	0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c
+DB	0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79
+DB	0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9
+DB	0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08
+DB	0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6
+DB	0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a
+DB	0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e
+DB	0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e
+DB	0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94
+DB	0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf
+DB	0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68
+DB	0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16
+DB	0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5
+DB	0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76
+DB	0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0
+DB	0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0
+DB	0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc
+DB	0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15
+DB	0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a
+DB	0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75
+DB	0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0
+DB	0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84
+DB	0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b
+DB	0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf
+DB	0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85
+DB	0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8
+DB	0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5
+DB	0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2
+DB	0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17
+DB	0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73
+DB	0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88
+DB	0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb
+DB	0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c
+DB	0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79
+DB	0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9
+DB	0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08
+DB	0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6
+DB	0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a
+DB	0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e
+DB	0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e
+DB	0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94
+DB	0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf
+DB	0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68
+DB	0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16
+DB	0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5
+DB	0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76
+DB	0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0
+DB	0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0
+DB	0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc
+DB	0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15
+DB	0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a
+DB	0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75
+DB	0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0
+DB	0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84
+DB	0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b
+DB	0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf
+DB	0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85
+DB	0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8
+DB	0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5
+DB	0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2
+DB	0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17
+DB	0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73
+DB	0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88
+DB	0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb
+DB	0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c
+DB	0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79
+DB	0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9
+DB	0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08
+DB	0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6
+DB	0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a
+DB	0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e
+DB	0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e
+DB	0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94
+DB	0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf
+DB	0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68
+DB	0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16
+	DD	0x00000001,0x00000002,0x00000004,0x00000008
+	DD	0x00000010,0x00000020,0x00000040,0x00000080
+	DD	0x0000001b,0x00000036,0x80808080,0x80808080
+	DD	0xfefefefe,0xfefefefe,0x1b1b1b1b,0x1b1b1b1b
 ALIGN	64
-$L$AES_Td::
-	DD	050a7f451h,050a7f451h
-	DD	05365417eh,05365417eh
-	DD	0c3a4171ah,0c3a4171ah
-	DD	0965e273ah,0965e273ah
-	DD	0cb6bab3bh,0cb6bab3bh
-	DD	0f1459d1fh,0f1459d1fh
-	DD	0ab58faach,0ab58faach
-	DD	09303e34bh,09303e34bh
-	DD	055fa3020h,055fa3020h
-	DD	0f66d76adh,0f66d76adh
-	DD	09176cc88h,09176cc88h
-	DD	0254c02f5h,0254c02f5h
-	DD	0fcd7e54fh,0fcd7e54fh
-	DD	0d7cb2ac5h,0d7cb2ac5h
-	DD	080443526h,080443526h
-	DD	08fa362b5h,08fa362b5h
-	DD	0495ab1deh,0495ab1deh
-	DD	0671bba25h,0671bba25h
-	DD	0980eea45h,0980eea45h
-	DD	0e1c0fe5dh,0e1c0fe5dh
-	DD	002752fc3h,002752fc3h
-	DD	012f04c81h,012f04c81h
-	DD	0a397468dh,0a397468dh
-	DD	0c6f9d36bh,0c6f9d36bh
-	DD	0e75f8f03h,0e75f8f03h
-	DD	0959c9215h,0959c9215h
-	DD	0eb7a6dbfh,0eb7a6dbfh
-	DD	0da595295h,0da595295h
-	DD	02d83bed4h,02d83bed4h
-	DD	0d3217458h,0d3217458h
-	DD	02969e049h,02969e049h
-	DD	044c8c98eh,044c8c98eh
-	DD	06a89c275h,06a89c275h
-	DD	078798ef4h,078798ef4h
-	DD	06b3e5899h,06b3e5899h
-	DD	0dd71b927h,0dd71b927h
-	DD	0b64fe1beh,0b64fe1beh
-	DD	017ad88f0h,017ad88f0h
-	DD	066ac20c9h,066ac20c9h
-	DD	0b43ace7dh,0b43ace7dh
-	DD	0184adf63h,0184adf63h
-	DD	082311ae5h,082311ae5h
-	DD	060335197h,060335197h
-	DD	0457f5362h,0457f5362h
-	DD	0e07764b1h,0e07764b1h
-	DD	084ae6bbbh,084ae6bbbh
-	DD	01ca081feh,01ca081feh
-	DD	0942b08f9h,0942b08f9h
-	DD	058684870h,058684870h
-	DD	019fd458fh,019fd458fh
-	DD	0876cde94h,0876cde94h
-	DD	0b7f87b52h,0b7f87b52h
-	DD	023d373abh,023d373abh
-	DD	0e2024b72h,0e2024b72h
-	DD	0578f1fe3h,0578f1fe3h
-	DD	02aab5566h,02aab5566h
-	DD	00728ebb2h,00728ebb2h
-	DD	003c2b52fh,003c2b52fh
-	DD	09a7bc586h,09a7bc586h
-	DD	0a50837d3h,0a50837d3h
-	DD	0f2872830h,0f2872830h
-	DD	0b2a5bf23h,0b2a5bf23h
-	DD	0ba6a0302h,0ba6a0302h
-	DD	05c8216edh,05c8216edh
-	DD	02b1ccf8ah,02b1ccf8ah
-	DD	092b479a7h,092b479a7h
-	DD	0f0f207f3h,0f0f207f3h
-	DD	0a1e2694eh,0a1e2694eh
-	DD	0cdf4da65h,0cdf4da65h
-	DD	0d5be0506h,0d5be0506h
-	DD	01f6234d1h,01f6234d1h
-	DD	08afea6c4h,08afea6c4h
-	DD	09d532e34h,09d532e34h
-	DD	0a055f3a2h,0a055f3a2h
-	DD	032e18a05h,032e18a05h
-	DD	075ebf6a4h,075ebf6a4h
-	DD	039ec830bh,039ec830bh
-	DD	0aaef6040h,0aaef6040h
-	DD	0069f715eh,0069f715eh
-	DD	051106ebdh,051106ebdh
-	DD	0f98a213eh,0f98a213eh
-	DD	03d06dd96h,03d06dd96h
-	DD	0ae053eddh,0ae053eddh
-	DD	046bde64dh,046bde64dh
-	DD	0b58d5491h,0b58d5491h
-	DD	0055dc471h,0055dc471h
-	DD	06fd40604h,06fd40604h
-	DD	0ff155060h,0ff155060h
-	DD	024fb9819h,024fb9819h
-	DD	097e9bdd6h,097e9bdd6h
-	DD	0cc434089h,0cc434089h
-	DD	0779ed967h,0779ed967h
-	DD	0bd42e8b0h,0bd42e8b0h
-	DD	0888b8907h,0888b8907h
-	DD	0385b19e7h,0385b19e7h
-	DD	0dbeec879h,0dbeec879h
-	DD	0470a7ca1h,0470a7ca1h
-	DD	0e90f427ch,0e90f427ch
-	DD	0c91e84f8h,0c91e84f8h
-	DD	000000000h,000000000h
-	DD	083868009h,083868009h
-	DD	048ed2b32h,048ed2b32h
-	DD	0ac70111eh,0ac70111eh
-	DD	04e725a6ch,04e725a6ch
-	DD	0fbff0efdh,0fbff0efdh
-	DD	05638850fh,05638850fh
-	DD	01ed5ae3dh,01ed5ae3dh
-	DD	027392d36h,027392d36h
-	DD	064d90f0ah,064d90f0ah
-	DD	021a65c68h,021a65c68h
-	DD	0d1545b9bh,0d1545b9bh
-	DD	03a2e3624h,03a2e3624h
-	DD	0b1670a0ch,0b1670a0ch
-	DD	00fe75793h,00fe75793h
-	DD	0d296eeb4h,0d296eeb4h
-	DD	09e919b1bh,09e919b1bh
-	DD	04fc5c080h,04fc5c080h
-	DD	0a220dc61h,0a220dc61h
-	DD	0694b775ah,0694b775ah
-	DD	0161a121ch,0161a121ch
-	DD	00aba93e2h,00aba93e2h
-	DD	0e52aa0c0h,0e52aa0c0h
-	DD	043e0223ch,043e0223ch
-	DD	01d171b12h,01d171b12h
-	DD	00b0d090eh,00b0d090eh
-	DD	0adc78bf2h,0adc78bf2h
-	DD	0b9a8b62dh,0b9a8b62dh
-	DD	0c8a91e14h,0c8a91e14h
-	DD	08519f157h,08519f157h
-	DD	04c0775afh,04c0775afh
-	DD	0bbdd99eeh,0bbdd99eeh
-	DD	0fd607fa3h,0fd607fa3h
-	DD	09f2601f7h,09f2601f7h
-	DD	0bcf5725ch,0bcf5725ch
-	DD	0c53b6644h,0c53b6644h
-	DD	0347efb5bh,0347efb5bh
-	DD	07629438bh,07629438bh
-	DD	0dcc623cbh,0dcc623cbh
-	DD	068fcedb6h,068fcedb6h
-	DD	063f1e4b8h,063f1e4b8h
-	DD	0cadc31d7h,0cadc31d7h
-	DD	010856342h,010856342h
-	DD	040229713h,040229713h
-	DD	02011c684h,02011c684h
-	DD	07d244a85h,07d244a85h
-	DD	0f83dbbd2h,0f83dbbd2h
-	DD	01132f9aeh,01132f9aeh
-	DD	06da129c7h,06da129c7h
-	DD	04b2f9e1dh,04b2f9e1dh
-	DD	0f330b2dch,0f330b2dch
-	DD	0ec52860dh,0ec52860dh
-	DD	0d0e3c177h,0d0e3c177h
-	DD	06c16b32bh,06c16b32bh
-	DD	099b970a9h,099b970a9h
-	DD	0fa489411h,0fa489411h
-	DD	02264e947h,02264e947h
-	DD	0c48cfca8h,0c48cfca8h
-	DD	01a3ff0a0h,01a3ff0a0h
-	DD	0d82c7d56h,0d82c7d56h
-	DD	0ef903322h,0ef903322h
-	DD	0c74e4987h,0c74e4987h
-	DD	0c1d138d9h,0c1d138d9h
-	DD	0fea2ca8ch,0fea2ca8ch
-	DD	0360bd498h,0360bd498h
-	DD	0cf81f5a6h,0cf81f5a6h
-	DD	028de7aa5h,028de7aa5h
-	DD	0268eb7dah,0268eb7dah
-	DD	0a4bfad3fh,0a4bfad3fh
-	DD	0e49d3a2ch,0e49d3a2ch
-	DD	00d927850h,00d927850h
-	DD	09bcc5f6ah,09bcc5f6ah
-	DD	062467e54h,062467e54h
-	DD	0c2138df6h,0c2138df6h
-	DD	0e8b8d890h,0e8b8d890h
-	DD	05ef7392eh,05ef7392eh
-	DD	0f5afc382h,0f5afc382h
-	DD	0be805d9fh,0be805d9fh
-	DD	07c93d069h,07c93d069h
-	DD	0a92dd56fh,0a92dd56fh
-	DD	0b31225cfh,0b31225cfh
-	DD	03b99acc8h,03b99acc8h
-	DD	0a77d1810h,0a77d1810h
-	DD	06e639ce8h,06e639ce8h
-	DD	07bbb3bdbh,07bbb3bdbh
-	DD	0097826cdh,0097826cdh
-	DD	0f418596eh,0f418596eh
-	DD	001b79aech,001b79aech
-	DD	0a89a4f83h,0a89a4f83h
-	DD	0656e95e6h,0656e95e6h
-	DD	07ee6ffaah,07ee6ffaah
-	DD	008cfbc21h,008cfbc21h
-	DD	0e6e815efh,0e6e815efh
-	DD	0d99be7bah,0d99be7bah
-	DD	0ce366f4ah,0ce366f4ah
-	DD	0d4099feah,0d4099feah
-	DD	0d67cb029h,0d67cb029h
-	DD	0afb2a431h,0afb2a431h
-	DD	031233f2ah,031233f2ah
-	DD	03094a5c6h,03094a5c6h
-	DD	0c066a235h,0c066a235h
-	DD	037bc4e74h,037bc4e74h
-	DD	0a6ca82fch,0a6ca82fch
-	DD	0b0d090e0h,0b0d090e0h
-	DD	015d8a733h,015d8a733h
-	DD	04a9804f1h,04a9804f1h
-	DD	0f7daec41h,0f7daec41h
-	DD	00e50cd7fh,00e50cd7fh
-	DD	02ff69117h,02ff69117h
-	DD	08dd64d76h,08dd64d76h
-	DD	04db0ef43h,04db0ef43h
-	DD	0544daacch,0544daacch
-	DD	0df0496e4h,0df0496e4h
-	DD	0e3b5d19eh,0e3b5d19eh
-	DD	01b886a4ch,01b886a4ch
-	DD	0b81f2cc1h,0b81f2cc1h
-	DD	07f516546h,07f516546h
-	DD	004ea5e9dh,004ea5e9dh
-	DD	05d358c01h,05d358c01h
-	DD	0737487fah,0737487fah
-	DD	02e410bfbh,02e410bfbh
-	DD	05a1d67b3h,05a1d67b3h
-	DD	052d2db92h,052d2db92h
-	DD	0335610e9h,0335610e9h
-	DD	01347d66dh,01347d66dh
-	DD	08c61d79ah,08c61d79ah
-	DD	07a0ca137h,07a0ca137h
-	DD	08e14f859h,08e14f859h
-	DD	0893c13ebh,0893c13ebh
-	DD	0ee27a9ceh,0ee27a9ceh
-	DD	035c961b7h,035c961b7h
-	DD	0ede51ce1h,0ede51ce1h
-	DD	03cb1477ah,03cb1477ah
-	DD	059dfd29ch,059dfd29ch
-	DD	03f73f255h,03f73f255h
-	DD	079ce1418h,079ce1418h
-	DD	0bf37c773h,0bf37c773h
-	DD	0eacdf753h,0eacdf753h
-	DD	05baafd5fh,05baafd5fh
-	DD	0146f3ddfh,0146f3ddfh
-	DD	086db4478h,086db4478h
-	DD	081f3afcah,081f3afcah
-	DD	03ec468b9h,03ec468b9h
-	DD	02c342438h,02c342438h
-	DD	05f40a3c2h,05f40a3c2h
-	DD	072c31d16h,072c31d16h
-	DD	00c25e2bch,00c25e2bch
-	DD	08b493c28h,08b493c28h
-	DD	041950dffh,041950dffh
-	DD	07101a839h,07101a839h
-	DD	0deb30c08h,0deb30c08h
-	DD	09ce4b4d8h,09ce4b4d8h
-	DD	090c15664h,090c15664h
-	DD	06184cb7bh,06184cb7bh
-	DD	070b632d5h,070b632d5h
-	DD	0745c6c48h,0745c6c48h
-	DD	04257b8d0h,04257b8d0h
-DB	052h,009h,06ah,0d5h,030h,036h,0a5h,038h
-DB	0bfh,040h,0a3h,09eh,081h,0f3h,0d7h,0fbh
-DB	07ch,0e3h,039h,082h,09bh,02fh,0ffh,087h
-DB	034h,08eh,043h,044h,0c4h,0deh,0e9h,0cbh
-DB	054h,07bh,094h,032h,0a6h,0c2h,023h,03dh
-DB	0eeh,04ch,095h,00bh,042h,0fah,0c3h,04eh
-DB	008h,02eh,0a1h,066h,028h,0d9h,024h,0b2h
-DB	076h,05bh,0a2h,049h,06dh,08bh,0d1h,025h
-DB	072h,0f8h,0f6h,064h,086h,068h,098h,016h
-DB	0d4h,0a4h,05ch,0cch,05dh,065h,0b6h,092h
-DB	06ch,070h,048h,050h,0fdh,0edh,0b9h,0dah
-DB	05eh,015h,046h,057h,0a7h,08dh,09dh,084h
-DB	090h,0d8h,0abh,000h,08ch,0bch,0d3h,00ah
-DB	0f7h,0e4h,058h,005h,0b8h,0b3h,045h,006h
-DB	0d0h,02ch,01eh,08fh,0cah,03fh,00fh,002h
-DB	0c1h,0afh,0bdh,003h,001h,013h,08ah,06bh
-DB	03ah,091h,011h,041h,04fh,067h,0dch,0eah
-DB	097h,0f2h,0cfh,0ceh,0f0h,0b4h,0e6h,073h
-DB	096h,0ach,074h,022h,0e7h,0adh,035h,085h
-DB	0e2h,0f9h,037h,0e8h,01ch,075h,0dfh,06eh
-DB	047h,0f1h,01ah,071h,01dh,029h,0c5h,089h
-DB	06fh,0b7h,062h,00eh,0aah,018h,0beh,01bh
-DB	0fch,056h,03eh,04bh,0c6h,0d2h,079h,020h
-DB	09ah,0dbh,0c0h,0feh,078h,0cdh,05ah,0f4h
-DB	01fh,0ddh,0a8h,033h,088h,007h,0c7h,031h
-DB	0b1h,012h,010h,059h,027h,080h,0ech,05fh
-DB	060h,051h,07fh,0a9h,019h,0b5h,04ah,00dh
-DB	02dh,0e5h,07ah,09fh,093h,0c9h,09ch,0efh
-DB	0a0h,0e0h,03bh,04dh,0aeh,02ah,0f5h,0b0h
-DB	0c8h,0ebh,0bbh,03ch,083h,053h,099h,061h
-DB	017h,02bh,004h,07eh,0bah,077h,0d6h,026h
-DB	0e1h,069h,014h,063h,055h,021h,00ch,07dh
-	DD	080808080h,080808080h,0fefefefeh,0fefefefeh
-	DD	01b1b1b1bh,01b1b1b1bh,0,0
-DB	052h,009h,06ah,0d5h,030h,036h,0a5h,038h
-DB	0bfh,040h,0a3h,09eh,081h,0f3h,0d7h,0fbh
-DB	07ch,0e3h,039h,082h,09bh,02fh,0ffh,087h
-DB	034h,08eh,043h,044h,0c4h,0deh,0e9h,0cbh
-DB	054h,07bh,094h,032h,0a6h,0c2h,023h,03dh
-DB	0eeh,04ch,095h,00bh,042h,0fah,0c3h,04eh
-DB	008h,02eh,0a1h,066h,028h,0d9h,024h,0b2h
-DB	076h,05bh,0a2h,049h,06dh,08bh,0d1h,025h
-DB	072h,0f8h,0f6h,064h,086h,068h,098h,016h
-DB	0d4h,0a4h,05ch,0cch,05dh,065h,0b6h,092h
-DB	06ch,070h,048h,050h,0fdh,0edh,0b9h,0dah
-DB	05eh,015h,046h,057h,0a7h,08dh,09dh,084h
-DB	090h,0d8h,0abh,000h,08ch,0bch,0d3h,00ah
-DB	0f7h,0e4h,058h,005h,0b8h,0b3h,045h,006h
-DB	0d0h,02ch,01eh,08fh,0cah,03fh,00fh,002h
-DB	0c1h,0afh,0bdh,003h,001h,013h,08ah,06bh
-DB	03ah,091h,011h,041h,04fh,067h,0dch,0eah
-DB	097h,0f2h,0cfh,0ceh,0f0h,0b4h,0e6h,073h
-DB	096h,0ach,074h,022h,0e7h,0adh,035h,085h
-DB	0e2h,0f9h,037h,0e8h,01ch,075h,0dfh,06eh
-DB	047h,0f1h,01ah,071h,01dh,029h,0c5h,089h
-DB	06fh,0b7h,062h,00eh,0aah,018h,0beh,01bh
-DB	0fch,056h,03eh,04bh,0c6h,0d2h,079h,020h
-DB	09ah,0dbh,0c0h,0feh,078h,0cdh,05ah,0f4h
-DB	01fh,0ddh,0a8h,033h,088h,007h,0c7h,031h
-DB	0b1h,012h,010h,059h,027h,080h,0ech,05fh
-DB	060h,051h,07fh,0a9h,019h,0b5h,04ah,00dh
-DB	02dh,0e5h,07ah,09fh,093h,0c9h,09ch,0efh
-DB	0a0h,0e0h,03bh,04dh,0aeh,02ah,0f5h,0b0h
-DB	0c8h,0ebh,0bbh,03ch,083h,053h,099h,061h
-DB	017h,02bh,004h,07eh,0bah,077h,0d6h,026h
-DB	0e1h,069h,014h,063h,055h,021h,00ch,07dh
-	DD	080808080h,080808080h,0fefefefeh,0fefefefeh
-	DD	01b1b1b1bh,01b1b1b1bh,0,0
-DB	052h,009h,06ah,0d5h,030h,036h,0a5h,038h
-DB	0bfh,040h,0a3h,09eh,081h,0f3h,0d7h,0fbh
-DB	07ch,0e3h,039h,082h,09bh,02fh,0ffh,087h
-DB	034h,08eh,043h,044h,0c4h,0deh,0e9h,0cbh
-DB	054h,07bh,094h,032h,0a6h,0c2h,023h,03dh
-DB	0eeh,04ch,095h,00bh,042h,0fah,0c3h,04eh
-DB	008h,02eh,0a1h,066h,028h,0d9h,024h,0b2h
-DB	076h,05bh,0a2h,049h,06dh,08bh,0d1h,025h
-DB	072h,0f8h,0f6h,064h,086h,068h,098h,016h
-DB	0d4h,0a4h,05ch,0cch,05dh,065h,0b6h,092h
-DB	06ch,070h,048h,050h,0fdh,0edh,0b9h,0dah
-DB	05eh,015h,046h,057h,0a7h,08dh,09dh,084h
-DB	090h,0d8h,0abh,000h,08ch,0bch,0d3h,00ah
-DB	0f7h,0e4h,058h,005h,0b8h,0b3h,045h,006h
-DB	0d0h,02ch,01eh,08fh,0cah,03fh,00fh,002h
-DB	0c1h,0afh,0bdh,003h,001h,013h,08ah,06bh
-DB	03ah,091h,011h,041h,04fh,067h,0dch,0eah
-DB	097h,0f2h,0cfh,0ceh,0f0h,0b4h,0e6h,073h
-DB	096h,0ach,074h,022h,0e7h,0adh,035h,085h
-DB	0e2h,0f9h,037h,0e8h,01ch,075h,0dfh,06eh
-DB	047h,0f1h,01ah,071h,01dh,029h,0c5h,089h
-DB	06fh,0b7h,062h,00eh,0aah,018h,0beh,01bh
-DB	0fch,056h,03eh,04bh,0c6h,0d2h,079h,020h
-DB	09ah,0dbh,0c0h,0feh,078h,0cdh,05ah,0f4h
-DB	01fh,0ddh,0a8h,033h,088h,007h,0c7h,031h
-DB	0b1h,012h,010h,059h,027h,080h,0ech,05fh
-DB	060h,051h,07fh,0a9h,019h,0b5h,04ah,00dh
-DB	02dh,0e5h,07ah,09fh,093h,0c9h,09ch,0efh
-DB	0a0h,0e0h,03bh,04dh,0aeh,02ah,0f5h,0b0h
-DB	0c8h,0ebh,0bbh,03ch,083h,053h,099h,061h
-DB	017h,02bh,004h,07eh,0bah,077h,0d6h,026h
-DB	0e1h,069h,014h,063h,055h,021h,00ch,07dh
-	DD	080808080h,080808080h,0fefefefeh,0fefefefeh
-	DD	01b1b1b1bh,01b1b1b1bh,0,0
-DB	052h,009h,06ah,0d5h,030h,036h,0a5h,038h
-DB	0bfh,040h,0a3h,09eh,081h,0f3h,0d7h,0fbh
-DB	07ch,0e3h,039h,082h,09bh,02fh,0ffh,087h
-DB	034h,08eh,043h,044h,0c4h,0deh,0e9h,0cbh
-DB	054h,07bh,094h,032h,0a6h,0c2h,023h,03dh
-DB	0eeh,04ch,095h,00bh,042h,0fah,0c3h,04eh
-DB	008h,02eh,0a1h,066h,028h,0d9h,024h,0b2h
-DB	076h,05bh,0a2h,049h,06dh,08bh,0d1h,025h
-DB	072h,0f8h,0f6h,064h,086h,068h,098h,016h
-DB	0d4h,0a4h,05ch,0cch,05dh,065h,0b6h,092h
-DB	06ch,070h,048h,050h,0fdh,0edh,0b9h,0dah
-DB	05eh,015h,046h,057h,0a7h,08dh,09dh,084h
-DB	090h,0d8h,0abh,000h,08ch,0bch,0d3h,00ah
-DB	0f7h,0e4h,058h,005h,0b8h,0b3h,045h,006h
-DB	0d0h,02ch,01eh,08fh,0cah,03fh,00fh,002h
-DB	0c1h,0afh,0bdh,003h,001h,013h,08ah,06bh
-DB	03ah,091h,011h,041h,04fh,067h,0dch,0eah
-DB	097h,0f2h,0cfh,0ceh,0f0h,0b4h,0e6h,073h
-DB	096h,0ach,074h,022h,0e7h,0adh,035h,085h
-DB	0e2h,0f9h,037h,0e8h,01ch,075h,0dfh,06eh
-DB	047h,0f1h,01ah,071h,01dh,029h,0c5h,089h
-DB	06fh,0b7h,062h,00eh,0aah,018h,0beh,01bh
-DB	0fch,056h,03eh,04bh,0c6h,0d2h,079h,020h
-DB	09ah,0dbh,0c0h,0feh,078h,0cdh,05ah,0f4h
-DB	01fh,0ddh,0a8h,033h,088h,007h,0c7h,031h
-DB	0b1h,012h,010h,059h,027h,080h,0ech,05fh
-DB	060h,051h,07fh,0a9h,019h,0b5h,04ah,00dh
-DB	02dh,0e5h,07ah,09fh,093h,0c9h,09ch,0efh
-DB	0a0h,0e0h,03bh,04dh,0aeh,02ah,0f5h,0b0h
-DB	0c8h,0ebh,0bbh,03ch,083h,053h,099h,061h
-DB	017h,02bh,004h,07eh,0bah,077h,0d6h,026h
-DB	0e1h,069h,014h,063h,055h,021h,00ch,07dh
-	DD	080808080h,080808080h,0fefefefeh,0fefefefeh
-	DD	01b1b1b1bh,01b1b1b1bh,0,0
+$L$AES_Td:
+	DD	0x50a7f451,0x50a7f451
+	DD	0x5365417e,0x5365417e
+	DD	0xc3a4171a,0xc3a4171a
+	DD	0x965e273a,0x965e273a
+	DD	0xcb6bab3b,0xcb6bab3b
+	DD	0xf1459d1f,0xf1459d1f
+	DD	0xab58faac,0xab58faac
+	DD	0x9303e34b,0x9303e34b
+	DD	0x55fa3020,0x55fa3020
+	DD	0xf66d76ad,0xf66d76ad
+	DD	0x9176cc88,0x9176cc88
+	DD	0x254c02f5,0x254c02f5
+	DD	0xfcd7e54f,0xfcd7e54f
+	DD	0xd7cb2ac5,0xd7cb2ac5
+	DD	0x80443526,0x80443526
+	DD	0x8fa362b5,0x8fa362b5
+	DD	0x495ab1de,0x495ab1de
+	DD	0x671bba25,0x671bba25
+	DD	0x980eea45,0x980eea45
+	DD	0xe1c0fe5d,0xe1c0fe5d
+	DD	0x02752fc3,0x02752fc3
+	DD	0x12f04c81,0x12f04c81
+	DD	0xa397468d,0xa397468d
+	DD	0xc6f9d36b,0xc6f9d36b
+	DD	0xe75f8f03,0xe75f8f03
+	DD	0x959c9215,0x959c9215
+	DD	0xeb7a6dbf,0xeb7a6dbf
+	DD	0xda595295,0xda595295
+	DD	0x2d83bed4,0x2d83bed4
+	DD	0xd3217458,0xd3217458
+	DD	0x2969e049,0x2969e049
+	DD	0x44c8c98e,0x44c8c98e
+	DD	0x6a89c275,0x6a89c275
+	DD	0x78798ef4,0x78798ef4
+	DD	0x6b3e5899,0x6b3e5899
+	DD	0xdd71b927,0xdd71b927
+	DD	0xb64fe1be,0xb64fe1be
+	DD	0x17ad88f0,0x17ad88f0
+	DD	0x66ac20c9,0x66ac20c9
+	DD	0xb43ace7d,0xb43ace7d
+	DD	0x184adf63,0x184adf63
+	DD	0x82311ae5,0x82311ae5
+	DD	0x60335197,0x60335197
+	DD	0x457f5362,0x457f5362
+	DD	0xe07764b1,0xe07764b1
+	DD	0x84ae6bbb,0x84ae6bbb
+	DD	0x1ca081fe,0x1ca081fe
+	DD	0x942b08f9,0x942b08f9
+	DD	0x58684870,0x58684870
+	DD	0x19fd458f,0x19fd458f
+	DD	0x876cde94,0x876cde94
+	DD	0xb7f87b52,0xb7f87b52
+	DD	0x23d373ab,0x23d373ab
+	DD	0xe2024b72,0xe2024b72
+	DD	0x578f1fe3,0x578f1fe3
+	DD	0x2aab5566,0x2aab5566
+	DD	0x0728ebb2,0x0728ebb2
+	DD	0x03c2b52f,0x03c2b52f
+	DD	0x9a7bc586,0x9a7bc586
+	DD	0xa50837d3,0xa50837d3
+	DD	0xf2872830,0xf2872830
+	DD	0xb2a5bf23,0xb2a5bf23
+	DD	0xba6a0302,0xba6a0302
+	DD	0x5c8216ed,0x5c8216ed
+	DD	0x2b1ccf8a,0x2b1ccf8a
+	DD	0x92b479a7,0x92b479a7
+	DD	0xf0f207f3,0xf0f207f3
+	DD	0xa1e2694e,0xa1e2694e
+	DD	0xcdf4da65,0xcdf4da65
+	DD	0xd5be0506,0xd5be0506
+	DD	0x1f6234d1,0x1f6234d1
+	DD	0x8afea6c4,0x8afea6c4
+	DD	0x9d532e34,0x9d532e34
+	DD	0xa055f3a2,0xa055f3a2
+	DD	0x32e18a05,0x32e18a05
+	DD	0x75ebf6a4,0x75ebf6a4
+	DD	0x39ec830b,0x39ec830b
+	DD	0xaaef6040,0xaaef6040
+	DD	0x069f715e,0x069f715e
+	DD	0x51106ebd,0x51106ebd
+	DD	0xf98a213e,0xf98a213e
+	DD	0x3d06dd96,0x3d06dd96
+	DD	0xae053edd,0xae053edd
+	DD	0x46bde64d,0x46bde64d
+	DD	0xb58d5491,0xb58d5491
+	DD	0x055dc471,0x055dc471
+	DD	0x6fd40604,0x6fd40604
+	DD	0xff155060,0xff155060
+	DD	0x24fb9819,0x24fb9819
+	DD	0x97e9bdd6,0x97e9bdd6
+	DD	0xcc434089,0xcc434089
+	DD	0x779ed967,0x779ed967
+	DD	0xbd42e8b0,0xbd42e8b0
+	DD	0x888b8907,0x888b8907
+	DD	0x385b19e7,0x385b19e7
+	DD	0xdbeec879,0xdbeec879
+	DD	0x470a7ca1,0x470a7ca1
+	DD	0xe90f427c,0xe90f427c
+	DD	0xc91e84f8,0xc91e84f8
+	DD	0x00000000,0x00000000
+	DD	0x83868009,0x83868009
+	DD	0x48ed2b32,0x48ed2b32
+	DD	0xac70111e,0xac70111e
+	DD	0x4e725a6c,0x4e725a6c
+	DD	0xfbff0efd,0xfbff0efd
+	DD	0x5638850f,0x5638850f
+	DD	0x1ed5ae3d,0x1ed5ae3d
+	DD	0x27392d36,0x27392d36
+	DD	0x64d90f0a,0x64d90f0a
+	DD	0x21a65c68,0x21a65c68
+	DD	0xd1545b9b,0xd1545b9b
+	DD	0x3a2e3624,0x3a2e3624
+	DD	0xb1670a0c,0xb1670a0c
+	DD	0x0fe75793,0x0fe75793
+	DD	0xd296eeb4,0xd296eeb4
+	DD	0x9e919b1b,0x9e919b1b
+	DD	0x4fc5c080,0x4fc5c080
+	DD	0xa220dc61,0xa220dc61
+	DD	0x694b775a,0x694b775a
+	DD	0x161a121c,0x161a121c
+	DD	0x0aba93e2,0x0aba93e2
+	DD	0xe52aa0c0,0xe52aa0c0
+	DD	0x43e0223c,0x43e0223c
+	DD	0x1d171b12,0x1d171b12
+	DD	0x0b0d090e,0x0b0d090e
+	DD	0xadc78bf2,0xadc78bf2
+	DD	0xb9a8b62d,0xb9a8b62d
+	DD	0xc8a91e14,0xc8a91e14
+	DD	0x8519f157,0x8519f157
+	DD	0x4c0775af,0x4c0775af
+	DD	0xbbdd99ee,0xbbdd99ee
+	DD	0xfd607fa3,0xfd607fa3
+	DD	0x9f2601f7,0x9f2601f7
+	DD	0xbcf5725c,0xbcf5725c
+	DD	0xc53b6644,0xc53b6644
+	DD	0x347efb5b,0x347efb5b
+	DD	0x7629438b,0x7629438b
+	DD	0xdcc623cb,0xdcc623cb
+	DD	0x68fcedb6,0x68fcedb6
+	DD	0x63f1e4b8,0x63f1e4b8
+	DD	0xcadc31d7,0xcadc31d7
+	DD	0x10856342,0x10856342
+	DD	0x40229713,0x40229713
+	DD	0x2011c684,0x2011c684
+	DD	0x7d244a85,0x7d244a85
+	DD	0xf83dbbd2,0xf83dbbd2
+	DD	0x1132f9ae,0x1132f9ae
+	DD	0x6da129c7,0x6da129c7
+	DD	0x4b2f9e1d,0x4b2f9e1d
+	DD	0xf330b2dc,0xf330b2dc
+	DD	0xec52860d,0xec52860d
+	DD	0xd0e3c177,0xd0e3c177
+	DD	0x6c16b32b,0x6c16b32b
+	DD	0x99b970a9,0x99b970a9
+	DD	0xfa489411,0xfa489411
+	DD	0x2264e947,0x2264e947
+	DD	0xc48cfca8,0xc48cfca8
+	DD	0x1a3ff0a0,0x1a3ff0a0
+	DD	0xd82c7d56,0xd82c7d56
+	DD	0xef903322,0xef903322
+	DD	0xc74e4987,0xc74e4987
+	DD	0xc1d138d9,0xc1d138d9
+	DD	0xfea2ca8c,0xfea2ca8c
+	DD	0x360bd498,0x360bd498
+	DD	0xcf81f5a6,0xcf81f5a6
+	DD	0x28de7aa5,0x28de7aa5
+	DD	0x268eb7da,0x268eb7da
+	DD	0xa4bfad3f,0xa4bfad3f
+	DD	0xe49d3a2c,0xe49d3a2c
+	DD	0x0d927850,0x0d927850
+	DD	0x9bcc5f6a,0x9bcc5f6a
+	DD	0x62467e54,0x62467e54
+	DD	0xc2138df6,0xc2138df6
+	DD	0xe8b8d890,0xe8b8d890
+	DD	0x5ef7392e,0x5ef7392e
+	DD	0xf5afc382,0xf5afc382
+	DD	0xbe805d9f,0xbe805d9f
+	DD	0x7c93d069,0x7c93d069
+	DD	0xa92dd56f,0xa92dd56f
+	DD	0xb31225cf,0xb31225cf
+	DD	0x3b99acc8,0x3b99acc8
+	DD	0xa77d1810,0xa77d1810
+	DD	0x6e639ce8,0x6e639ce8
+	DD	0x7bbb3bdb,0x7bbb3bdb
+	DD	0x097826cd,0x097826cd
+	DD	0xf418596e,0xf418596e
+	DD	0x01b79aec,0x01b79aec
+	DD	0xa89a4f83,0xa89a4f83
+	DD	0x656e95e6,0x656e95e6
+	DD	0x7ee6ffaa,0x7ee6ffaa
+	DD	0x08cfbc21,0x08cfbc21
+	DD	0xe6e815ef,0xe6e815ef
+	DD	0xd99be7ba,0xd99be7ba
+	DD	0xce366f4a,0xce366f4a
+	DD	0xd4099fea,0xd4099fea
+	DD	0xd67cb029,0xd67cb029
+	DD	0xafb2a431,0xafb2a431
+	DD	0x31233f2a,0x31233f2a
+	DD	0x3094a5c6,0x3094a5c6
+	DD	0xc066a235,0xc066a235
+	DD	0x37bc4e74,0x37bc4e74
+	DD	0xa6ca82fc,0xa6ca82fc
+	DD	0xb0d090e0,0xb0d090e0
+	DD	0x15d8a733,0x15d8a733
+	DD	0x4a9804f1,0x4a9804f1
+	DD	0xf7daec41,0xf7daec41
+	DD	0x0e50cd7f,0x0e50cd7f
+	DD	0x2ff69117,0x2ff69117
+	DD	0x8dd64d76,0x8dd64d76
+	DD	0x4db0ef43,0x4db0ef43
+	DD	0x544daacc,0x544daacc
+	DD	0xdf0496e4,0xdf0496e4
+	DD	0xe3b5d19e,0xe3b5d19e
+	DD	0x1b886a4c,0x1b886a4c
+	DD	0xb81f2cc1,0xb81f2cc1
+	DD	0x7f516546,0x7f516546
+	DD	0x04ea5e9d,0x04ea5e9d
+	DD	0x5d358c01,0x5d358c01
+	DD	0x737487fa,0x737487fa
+	DD	0x2e410bfb,0x2e410bfb
+	DD	0x5a1d67b3,0x5a1d67b3
+	DD	0x52d2db92,0x52d2db92
+	DD	0x335610e9,0x335610e9
+	DD	0x1347d66d,0x1347d66d
+	DD	0x8c61d79a,0x8c61d79a
+	DD	0x7a0ca137,0x7a0ca137
+	DD	0x8e14f859,0x8e14f859
+	DD	0x893c13eb,0x893c13eb
+	DD	0xee27a9ce,0xee27a9ce
+	DD	0x35c961b7,0x35c961b7
+	DD	0xede51ce1,0xede51ce1
+	DD	0x3cb1477a,0x3cb1477a
+	DD	0x59dfd29c,0x59dfd29c
+	DD	0x3f73f255,0x3f73f255
+	DD	0x79ce1418,0x79ce1418
+	DD	0xbf37c773,0xbf37c773
+	DD	0xeacdf753,0xeacdf753
+	DD	0x5baafd5f,0x5baafd5f
+	DD	0x146f3ddf,0x146f3ddf
+	DD	0x86db4478,0x86db4478
+	DD	0x81f3afca,0x81f3afca
+	DD	0x3ec468b9,0x3ec468b9
+	DD	0x2c342438,0x2c342438
+	DD	0x5f40a3c2,0x5f40a3c2
+	DD	0x72c31d16,0x72c31d16
+	DD	0x0c25e2bc,0x0c25e2bc
+	DD	0x8b493c28,0x8b493c28
+	DD	0x41950dff,0x41950dff
+	DD	0x7101a839,0x7101a839
+	DD	0xdeb30c08,0xdeb30c08
+	DD	0x9ce4b4d8,0x9ce4b4d8
+	DD	0x90c15664,0x90c15664
+	DD	0x6184cb7b,0x6184cb7b
+	DD	0x70b632d5,0x70b632d5
+	DD	0x745c6c48,0x745c6c48
+	DD	0x4257b8d0,0x4257b8d0
+DB	0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38
+DB	0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb
+DB	0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87
+DB	0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb
+DB	0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d
+DB	0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e
+DB	0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2
+DB	0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25
+DB	0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16
+DB	0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92
+DB	0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda
+DB	0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84
+DB	0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a
+DB	0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06
+DB	0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02
+DB	0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b
+DB	0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea
+DB	0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73
+DB	0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85
+DB	0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e
+DB	0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89
+DB	0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b
+DB	0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20
+DB	0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4
+DB	0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31
+DB	0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f
+DB	0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d
+DB	0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef
+DB	0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0
+DB	0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61
+DB	0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26
+DB	0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
+	DD	0x80808080,0x80808080,0xfefefefe,0xfefefefe
+	DD	0x1b1b1b1b,0x1b1b1b1b,0,0
+DB	0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38
+DB	0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb
+DB	0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87
+DB	0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb
+DB	0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d
+DB	0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e
+DB	0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2
+DB	0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25
+DB	0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16
+DB	0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92
+DB	0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda
+DB	0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84
+DB	0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a
+DB	0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06
+DB	0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02
+DB	0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b
+DB	0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea
+DB	0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73
+DB	0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85
+DB	0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e
+DB	0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89
+DB	0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b
+DB	0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20
+DB	0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4
+DB	0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31
+DB	0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f
+DB	0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d
+DB	0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef
+DB	0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0
+DB	0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61
+DB	0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26
+DB	0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
+	DD	0x80808080,0x80808080,0xfefefefe,0xfefefefe
+	DD	0x1b1b1b1b,0x1b1b1b1b,0,0
+DB	0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38
+DB	0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb
+DB	0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87
+DB	0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb
+DB	0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d
+DB	0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e
+DB	0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2
+DB	0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25
+DB	0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16
+DB	0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92
+DB	0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda
+DB	0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84
+DB	0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a
+DB	0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06
+DB	0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02
+DB	0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b
+DB	0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea
+DB	0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73
+DB	0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85
+DB	0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e
+DB	0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89
+DB	0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b
+DB	0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20
+DB	0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4
+DB	0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31
+DB	0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f
+DB	0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d
+DB	0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef
+DB	0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0
+DB	0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61
+DB	0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26
+DB	0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
+	DD	0x80808080,0x80808080,0xfefefefe,0xfefefefe
+	DD	0x1b1b1b1b,0x1b1b1b1b,0,0
+DB	0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38
+DB	0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb
+DB	0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87
+DB	0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb
+DB	0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d
+DB	0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e
+DB	0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2
+DB	0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25
+DB	0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16
+DB	0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92
+DB	0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda
+DB	0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84
+DB	0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a
+DB	0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06
+DB	0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02
+DB	0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b
+DB	0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea
+DB	0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73
+DB	0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85
+DB	0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e
+DB	0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89
+DB	0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b
+DB	0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20
+DB	0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4
+DB	0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31
+DB	0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f
+DB	0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d
+DB	0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef
+DB	0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0
+DB	0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61
+DB	0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26
+DB	0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
+	DD	0x80808080,0x80808080,0xfefefefe,0xfefefefe
+	DD	0x1b1b1b1b,0x1b1b1b1b,0,0
 DB	65,69,83,32,102,111,114,32,120,56,54,95,54,52,44,32
 DB	67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
 DB	112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
 DB	62,0
 ALIGN	64
-EXTERN	__imp_RtlVirtualUnwind:NEAR
+EXTERN	__imp_RtlVirtualUnwind
 
 ALIGN	16
-block_se_handler	PROC PRIVATE
+block_se_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -2608,53 +2607,53 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[120+r8]
-	mov	rbx,QWORD PTR[248+r8]
+	mov	rax,QWORD[120+r8]
+	mov	rbx,QWORD[248+r8]
 
-	mov	rsi,QWORD PTR[8+r9]
-	mov	r11,QWORD PTR[56+r9]
+	mov	rsi,QWORD[8+r9]
+	mov	r11,QWORD[56+r9]
 
-	mov	r10d,DWORD PTR[r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jb	$L$in_block_prologue
+	jb	NEAR $L$in_block_prologue
 
-	mov	rax,QWORD PTR[152+r8]
+	mov	rax,QWORD[152+r8]
 
-	mov	r10d,DWORD PTR[4+r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[4+r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jae	$L$in_block_prologue
+	jae	NEAR $L$in_block_prologue
 
-	mov	rax,QWORD PTR[24+rax]
-	lea	rax,QWORD PTR[48+rax]
+	mov	rax,QWORD[24+rax]
+	lea	rax,[48+rax]
 
-	mov	rbx,QWORD PTR[((-8))+rax]
-	mov	rbp,QWORD PTR[((-16))+rax]
-	mov	r12,QWORD PTR[((-24))+rax]
-	mov	r13,QWORD PTR[((-32))+rax]
-	mov	r14,QWORD PTR[((-40))+rax]
-	mov	r15,QWORD PTR[((-48))+rax]
-	mov	QWORD PTR[144+r8],rbx
-	mov	QWORD PTR[160+r8],rbp
-	mov	QWORD PTR[216+r8],r12
-	mov	QWORD PTR[224+r8],r13
-	mov	QWORD PTR[232+r8],r14
-	mov	QWORD PTR[240+r8],r15
+	mov	rbx,QWORD[((-8))+rax]
+	mov	rbp,QWORD[((-16))+rax]
+	mov	r12,QWORD[((-24))+rax]
+	mov	r13,QWORD[((-32))+rax]
+	mov	r14,QWORD[((-40))+rax]
+	mov	r15,QWORD[((-48))+rax]
+	mov	QWORD[144+r8],rbx
+	mov	QWORD[160+r8],rbp
+	mov	QWORD[216+r8],r12
+	mov	QWORD[224+r8],r13
+	mov	QWORD[232+r8],r14
+	mov	QWORD[240+r8],r15
 
-$L$in_block_prologue::
-	mov	rdi,QWORD PTR[8+rax]
-	mov	rsi,QWORD PTR[16+rax]
-	mov	QWORD PTR[152+r8],rax
-	mov	QWORD PTR[168+r8],rsi
-	mov	QWORD PTR[176+r8],rdi
+$L$in_block_prologue:
+	mov	rdi,QWORD[8+rax]
+	mov	rsi,QWORD[16+rax]
+	mov	QWORD[152+r8],rax
+	mov	QWORD[168+r8],rsi
+	mov	QWORD[176+r8],rdi
 
-	jmp	$L$common_seh_exit
-block_se_handler	ENDP
+	jmp	NEAR $L$common_seh_exit
+
 
 
 ALIGN	16
-key_se_handler	PROC PRIVATE
+key_se_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -2666,52 +2665,52 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[120+r8]
-	mov	rbx,QWORD PTR[248+r8]
+	mov	rax,QWORD[120+r8]
+	mov	rbx,QWORD[248+r8]
 
-	mov	rsi,QWORD PTR[8+r9]
-	mov	r11,QWORD PTR[56+r9]
+	mov	rsi,QWORD[8+r9]
+	mov	r11,QWORD[56+r9]
 
-	mov	r10d,DWORD PTR[r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jb	$L$in_key_prologue
+	jb	NEAR $L$in_key_prologue
 
-	mov	rax,QWORD PTR[152+r8]
+	mov	rax,QWORD[152+r8]
 
-	mov	r10d,DWORD PTR[4+r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[4+r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jae	$L$in_key_prologue
+	jae	NEAR $L$in_key_prologue
 
-	lea	rax,QWORD PTR[56+rax]
+	lea	rax,[56+rax]
 
-	mov	rbx,QWORD PTR[((-8))+rax]
-	mov	rbp,QWORD PTR[((-16))+rax]
-	mov	r12,QWORD PTR[((-24))+rax]
-	mov	r13,QWORD PTR[((-32))+rax]
-	mov	r14,QWORD PTR[((-40))+rax]
-	mov	r15,QWORD PTR[((-48))+rax]
-	mov	QWORD PTR[144+r8],rbx
-	mov	QWORD PTR[160+r8],rbp
-	mov	QWORD PTR[216+r8],r12
-	mov	QWORD PTR[224+r8],r13
-	mov	QWORD PTR[232+r8],r14
-	mov	QWORD PTR[240+r8],r15
+	mov	rbx,QWORD[((-8))+rax]
+	mov	rbp,QWORD[((-16))+rax]
+	mov	r12,QWORD[((-24))+rax]
+	mov	r13,QWORD[((-32))+rax]
+	mov	r14,QWORD[((-40))+rax]
+	mov	r15,QWORD[((-48))+rax]
+	mov	QWORD[144+r8],rbx
+	mov	QWORD[160+r8],rbp
+	mov	QWORD[216+r8],r12
+	mov	QWORD[224+r8],r13
+	mov	QWORD[232+r8],r14
+	mov	QWORD[240+r8],r15
 
-$L$in_key_prologue::
-	mov	rdi,QWORD PTR[8+rax]
-	mov	rsi,QWORD PTR[16+rax]
-	mov	QWORD PTR[152+r8],rax
-	mov	QWORD PTR[168+r8],rsi
-	mov	QWORD PTR[176+r8],rdi
+$L$in_key_prologue:
+	mov	rdi,QWORD[8+rax]
+	mov	rsi,QWORD[16+rax]
+	mov	QWORD[152+r8],rax
+	mov	QWORD[168+r8],rsi
+	mov	QWORD[176+r8],rdi
 
-	jmp	$L$common_seh_exit
-key_se_handler	ENDP
+	jmp	NEAR $L$common_seh_exit
+
 
 
 ALIGN	16
-cbc_se_handler	PROC PRIVATE
+cbc_se_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -2723,82 +2722,82 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[120+r8]
-	mov	rbx,QWORD PTR[248+r8]
+	mov	rax,QWORD[120+r8]
+	mov	rbx,QWORD[248+r8]
 
-	lea	r10,QWORD PTR[$L$cbc_prologue]
+	lea	r10,[$L$cbc_prologue]
 	cmp	rbx,r10
-	jb	$L$in_cbc_prologue
+	jb	NEAR $L$in_cbc_prologue
 
-	lea	r10,QWORD PTR[$L$cbc_fast_body]
+	lea	r10,[$L$cbc_fast_body]
 	cmp	rbx,r10
-	jb	$L$in_cbc_frame_setup
+	jb	NEAR $L$in_cbc_frame_setup
 
-	lea	r10,QWORD PTR[$L$cbc_slow_prologue]
+	lea	r10,[$L$cbc_slow_prologue]
 	cmp	rbx,r10
-	jb	$L$in_cbc_body
+	jb	NEAR $L$in_cbc_body
 
-	lea	r10,QWORD PTR[$L$cbc_slow_body]
+	lea	r10,[$L$cbc_slow_body]
 	cmp	rbx,r10
-	jb	$L$in_cbc_frame_setup
+	jb	NEAR $L$in_cbc_frame_setup
 
-$L$in_cbc_body::
-	mov	rax,QWORD PTR[152+r8]
+$L$in_cbc_body:
+	mov	rax,QWORD[152+r8]
 
-	lea	r10,QWORD PTR[$L$cbc_epilogue]
+	lea	r10,[$L$cbc_epilogue]
 	cmp	rbx,r10
-	jae	$L$in_cbc_prologue
+	jae	NEAR $L$in_cbc_prologue
 
-	lea	rax,QWORD PTR[8+rax]
+	lea	rax,[8+rax]
 
-	lea	r10,QWORD PTR[$L$cbc_popfq]
+	lea	r10,[$L$cbc_popfq]
 	cmp	rbx,r10
-	jae	$L$in_cbc_prologue
+	jae	NEAR $L$in_cbc_prologue
 
-	mov	rax,QWORD PTR[8+rax]
-	lea	rax,QWORD PTR[56+rax]
+	mov	rax,QWORD[8+rax]
+	lea	rax,[56+rax]
 
-$L$in_cbc_frame_setup::
-	mov	rbx,QWORD PTR[((-16))+rax]
-	mov	rbp,QWORD PTR[((-24))+rax]
-	mov	r12,QWORD PTR[((-32))+rax]
-	mov	r13,QWORD PTR[((-40))+rax]
-	mov	r14,QWORD PTR[((-48))+rax]
-	mov	r15,QWORD PTR[((-56))+rax]
-	mov	QWORD PTR[144+r8],rbx
-	mov	QWORD PTR[160+r8],rbp
-	mov	QWORD PTR[216+r8],r12
-	mov	QWORD PTR[224+r8],r13
-	mov	QWORD PTR[232+r8],r14
-	mov	QWORD PTR[240+r8],r15
+$L$in_cbc_frame_setup:
+	mov	rbx,QWORD[((-16))+rax]
+	mov	rbp,QWORD[((-24))+rax]
+	mov	r12,QWORD[((-32))+rax]
+	mov	r13,QWORD[((-40))+rax]
+	mov	r14,QWORD[((-48))+rax]
+	mov	r15,QWORD[((-56))+rax]
+	mov	QWORD[144+r8],rbx
+	mov	QWORD[160+r8],rbp
+	mov	QWORD[216+r8],r12
+	mov	QWORD[224+r8],r13
+	mov	QWORD[232+r8],r14
+	mov	QWORD[240+r8],r15
 
-$L$in_cbc_prologue::
-	mov	rdi,QWORD PTR[8+rax]
-	mov	rsi,QWORD PTR[16+rax]
-	mov	QWORD PTR[152+r8],rax
-	mov	QWORD PTR[168+r8],rsi
-	mov	QWORD PTR[176+r8],rdi
+$L$in_cbc_prologue:
+	mov	rdi,QWORD[8+rax]
+	mov	rsi,QWORD[16+rax]
+	mov	QWORD[152+r8],rax
+	mov	QWORD[168+r8],rsi
+	mov	QWORD[176+r8],rdi
 
-$L$common_seh_exit::
+$L$common_seh_exit:
 
-	mov	rdi,QWORD PTR[40+r9]
+	mov	rdi,QWORD[40+r9]
 	mov	rsi,r8
 	mov	ecx,154
-	DD	0a548f3fch
+	DD	0xa548f3fc
 
 	mov	rsi,r9
 	xor	rcx,rcx
-	mov	rdx,QWORD PTR[8+rsi]
-	mov	r8,QWORD PTR[rsi]
-	mov	r9,QWORD PTR[16+rsi]
-	mov	r10,QWORD PTR[40+rsi]
-	lea	r11,QWORD PTR[56+rsi]
-	lea	r12,QWORD PTR[24+rsi]
-	mov	QWORD PTR[32+rsp],r10
-	mov	QWORD PTR[40+rsp],r11
-	mov	QWORD PTR[48+rsp],r12
-	mov	QWORD PTR[56+rsp],rcx
-	call	QWORD PTR[__imp_RtlVirtualUnwind]
+	mov	rdx,QWORD[8+rsi]
+	mov	r8,QWORD[rsi]
+	mov	r9,QWORD[16+rsi]
+	mov	r10,QWORD[40+rsi]
+	lea	r11,[56+rsi]
+	lea	r12,[24+rsi]
+	mov	QWORD[32+rsp],r10
+	mov	QWORD[40+rsp],r11
+	mov	QWORD[48+rsp],r12
+	mov	QWORD[56+rsp],rcx
+	call	QWORD[__imp_RtlVirtualUnwind]
 
 	mov	eax,1
 	add	rsp,64
@@ -2812,53 +2811,48 @@
 	pop	rdi
 	pop	rsi
 	DB	0F3h,0C3h		;repret
-cbc_se_handler	ENDP
 
-.text$	ENDS
-.pdata	SEGMENT READONLY ALIGN(4)
+
+section	.pdata rdata align=4
 ALIGN	4
-	DD	imagerel $L$SEH_begin_asm_AES_encrypt
-	DD	imagerel $L$SEH_end_asm_AES_encrypt
-	DD	imagerel $L$SEH_info_asm_AES_encrypt
+	DD	$L$SEH_begin_asm_AES_encrypt wrt ..imagebase
+	DD	$L$SEH_end_asm_AES_encrypt wrt ..imagebase
+	DD	$L$SEH_info_asm_AES_encrypt wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_asm_AES_decrypt
-	DD	imagerel $L$SEH_end_asm_AES_decrypt
-	DD	imagerel $L$SEH_info_asm_AES_decrypt
+	DD	$L$SEH_begin_asm_AES_decrypt wrt ..imagebase
+	DD	$L$SEH_end_asm_AES_decrypt wrt ..imagebase
+	DD	$L$SEH_info_asm_AES_decrypt wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_asm_AES_set_encrypt_key
-	DD	imagerel $L$SEH_end_asm_AES_set_encrypt_key
-	DD	imagerel $L$SEH_info_asm_AES_set_encrypt_key
+	DD	$L$SEH_begin_asm_AES_set_encrypt_key wrt ..imagebase
+	DD	$L$SEH_end_asm_AES_set_encrypt_key wrt ..imagebase
+	DD	$L$SEH_info_asm_AES_set_encrypt_key wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_asm_AES_set_decrypt_key
-	DD	imagerel $L$SEH_end_asm_AES_set_decrypt_key
-	DD	imagerel $L$SEH_info_asm_AES_set_decrypt_key
+	DD	$L$SEH_begin_asm_AES_set_decrypt_key wrt ..imagebase
+	DD	$L$SEH_end_asm_AES_set_decrypt_key wrt ..imagebase
+	DD	$L$SEH_info_asm_AES_set_decrypt_key wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_asm_AES_cbc_encrypt
-	DD	imagerel $L$SEH_end_asm_AES_cbc_encrypt
-	DD	imagerel $L$SEH_info_asm_AES_cbc_encrypt
+	DD	$L$SEH_begin_asm_AES_cbc_encrypt wrt ..imagebase
+	DD	$L$SEH_end_asm_AES_cbc_encrypt wrt ..imagebase
+	DD	$L$SEH_info_asm_AES_cbc_encrypt wrt ..imagebase
 
-.pdata	ENDS
-.xdata	SEGMENT READONLY ALIGN(8)
+section	.xdata rdata align=8
 ALIGN	8
-$L$SEH_info_asm_AES_encrypt::
+$L$SEH_info_asm_AES_encrypt:
 DB	9,0,0,0
-	DD	imagerel block_se_handler
-	DD	imagerel $L$enc_prologue,imagerel $L$enc_epilogue
-$L$SEH_info_asm_AES_decrypt::
+	DD	block_se_handler wrt ..imagebase
+	DD	$L$enc_prologue wrt ..imagebase,$L$enc_epilogue wrt ..imagebase
+$L$SEH_info_asm_AES_decrypt:
 DB	9,0,0,0
-	DD	imagerel block_se_handler
-	DD	imagerel $L$dec_prologue,imagerel $L$dec_epilogue
-$L$SEH_info_asm_AES_set_encrypt_key::
+	DD	block_se_handler wrt ..imagebase
+	DD	$L$dec_prologue wrt ..imagebase,$L$dec_epilogue wrt ..imagebase
+$L$SEH_info_asm_AES_set_encrypt_key:
 DB	9,0,0,0
-	DD	imagerel key_se_handler
-	DD	imagerel $L$enc_key_prologue,imagerel $L$enc_key_epilogue
-$L$SEH_info_asm_AES_set_decrypt_key::
+	DD	key_se_handler wrt ..imagebase
+	DD	$L$enc_key_prologue wrt ..imagebase,$L$enc_key_epilogue wrt ..imagebase
+$L$SEH_info_asm_AES_set_decrypt_key:
 DB	9,0,0,0
-	DD	imagerel key_se_handler
-	DD	imagerel $L$dec_key_prologue,imagerel $L$dec_key_epilogue
-$L$SEH_info_asm_AES_cbc_encrypt::
+	DD	key_se_handler wrt ..imagebase
+	DD	$L$dec_key_prologue wrt ..imagebase,$L$dec_key_epilogue wrt ..imagebase
+$L$SEH_info_asm_AES_cbc_encrypt:
 DB	9,0,0,0
-	DD	imagerel cbc_se_handler
-
-.xdata	ENDS
-END
+	DD	cbc_se_handler wrt ..imagebase
diff --git a/third_party/boringssl/win-x86_64/crypto/aes/aesni-x86_64.asm b/third_party/boringssl/win-x86_64/crypto/aes/aesni-x86_64.asm
index 798784e..30e8a85 100644
--- a/third_party/boringssl/win-x86_64/crypto/aes/aesni-x86_64.asm
+++ b/third_party/boringssl/win-x86_64/crypto/aes/aesni-x86_64.asm
@@ -1,130 +1,134 @@
-OPTION	DOTNAME
-.text$	SEGMENT ALIGN(256) 'CODE'
-EXTERN	OPENSSL_ia32cap_P:NEAR
-PUBLIC	aesni_encrypt
+default	rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section	.text code align=64
+
+EXTERN	OPENSSL_ia32cap_P
+global	aesni_encrypt
 
 ALIGN	16
-aesni_encrypt	PROC PUBLIC
-	movups	xmm2,XMMWORD PTR[rcx]
-	mov	eax,DWORD PTR[240+r8]
-	movups	xmm0,XMMWORD PTR[r8]
-	movups	xmm1,XMMWORD PTR[16+r8]
-	lea	r8,QWORD PTR[32+r8]
+aesni_encrypt:
+	movups	xmm2,XMMWORD[rcx]
+	mov	eax,DWORD[240+r8]
+	movups	xmm0,XMMWORD[r8]
+	movups	xmm1,XMMWORD[16+r8]
+	lea	r8,[32+r8]
 	xorps	xmm2,xmm0
-$L$oop_enc1_1::
+$L$oop_enc1_1:
 DB	102,15,56,220,209
 	dec	eax
-	movups	xmm1,XMMWORD PTR[r8]
-	lea	r8,QWORD PTR[16+r8]
-	jnz	$L$oop_enc1_1
+	movups	xmm1,XMMWORD[r8]
+	lea	r8,[16+r8]
+	jnz	NEAR $L$oop_enc1_1
 DB	102,15,56,221,209
-	movups	XMMWORD PTR[rdx],xmm2
+	movups	XMMWORD[rdx],xmm2
 	DB	0F3h,0C3h		;repret
-aesni_encrypt	ENDP
 
-PUBLIC	aesni_decrypt
+
+global	aesni_decrypt
 
 ALIGN	16
-aesni_decrypt	PROC PUBLIC
-	movups	xmm2,XMMWORD PTR[rcx]
-	mov	eax,DWORD PTR[240+r8]
-	movups	xmm0,XMMWORD PTR[r8]
-	movups	xmm1,XMMWORD PTR[16+r8]
-	lea	r8,QWORD PTR[32+r8]
+aesni_decrypt:
+	movups	xmm2,XMMWORD[rcx]
+	mov	eax,DWORD[240+r8]
+	movups	xmm0,XMMWORD[r8]
+	movups	xmm1,XMMWORD[16+r8]
+	lea	r8,[32+r8]
 	xorps	xmm2,xmm0
-$L$oop_dec1_2::
+$L$oop_dec1_2:
 DB	102,15,56,222,209
 	dec	eax
-	movups	xmm1,XMMWORD PTR[r8]
-	lea	r8,QWORD PTR[16+r8]
-	jnz	$L$oop_dec1_2
+	movups	xmm1,XMMWORD[r8]
+	lea	r8,[16+r8]
+	jnz	NEAR $L$oop_dec1_2
 DB	102,15,56,223,209
-	movups	XMMWORD PTR[rdx],xmm2
+	movups	XMMWORD[rdx],xmm2
 	DB	0F3h,0C3h		;repret
-aesni_decrypt	ENDP
+
 
 ALIGN	16
-_aesni_encrypt2	PROC PRIVATE
-	movups	xmm0,XMMWORD PTR[rcx]
+_aesni_encrypt2:
+	movups	xmm0,XMMWORD[rcx]
 	shl	eax,4
-	movups	xmm1,XMMWORD PTR[16+rcx]
+	movups	xmm1,XMMWORD[16+rcx]
 	xorps	xmm2,xmm0
 	xorps	xmm3,xmm0
-	movups	xmm0,XMMWORD PTR[32+rcx]
-	lea	rcx,QWORD PTR[32+rax*1+rcx]
+	movups	xmm0,XMMWORD[32+rcx]
+	lea	rcx,[32+rax*1+rcx]
 	neg	rax
 	add	rax,16
 
-$L$enc_loop2::
+$L$enc_loop2:
 DB	102,15,56,220,209
 DB	102,15,56,220,217
-	movups	xmm1,XMMWORD PTR[rax*1+rcx]
+	movups	xmm1,XMMWORD[rax*1+rcx]
 	add	rax,32
 DB	102,15,56,220,208
 DB	102,15,56,220,216
-	movups	xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
-	jnz	$L$enc_loop2
+	movups	xmm0,XMMWORD[((-16))+rax*1+rcx]
+	jnz	NEAR $L$enc_loop2
 
 DB	102,15,56,220,209
 DB	102,15,56,220,217
 DB	102,15,56,221,208
 DB	102,15,56,221,216
 	DB	0F3h,0C3h		;repret
-_aesni_encrypt2	ENDP
+
 
 ALIGN	16
-_aesni_decrypt2	PROC PRIVATE
-	movups	xmm0,XMMWORD PTR[rcx]
+_aesni_decrypt2:
+	movups	xmm0,XMMWORD[rcx]
 	shl	eax,4
-	movups	xmm1,XMMWORD PTR[16+rcx]
+	movups	xmm1,XMMWORD[16+rcx]
 	xorps	xmm2,xmm0
 	xorps	xmm3,xmm0
-	movups	xmm0,XMMWORD PTR[32+rcx]
-	lea	rcx,QWORD PTR[32+rax*1+rcx]
+	movups	xmm0,XMMWORD[32+rcx]
+	lea	rcx,[32+rax*1+rcx]
 	neg	rax
 	add	rax,16
 
-$L$dec_loop2::
+$L$dec_loop2:
 DB	102,15,56,222,209
 DB	102,15,56,222,217
-	movups	xmm1,XMMWORD PTR[rax*1+rcx]
+	movups	xmm1,XMMWORD[rax*1+rcx]
 	add	rax,32
 DB	102,15,56,222,208
 DB	102,15,56,222,216
-	movups	xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
-	jnz	$L$dec_loop2
+	movups	xmm0,XMMWORD[((-16))+rax*1+rcx]
+	jnz	NEAR $L$dec_loop2
 
 DB	102,15,56,222,209
 DB	102,15,56,222,217
 DB	102,15,56,223,208
 DB	102,15,56,223,216
 	DB	0F3h,0C3h		;repret
-_aesni_decrypt2	ENDP
+
 
 ALIGN	16
-_aesni_encrypt3	PROC PRIVATE
-	movups	xmm0,XMMWORD PTR[rcx]
+_aesni_encrypt3:
+	movups	xmm0,XMMWORD[rcx]
 	shl	eax,4
-	movups	xmm1,XMMWORD PTR[16+rcx]
+	movups	xmm1,XMMWORD[16+rcx]
 	xorps	xmm2,xmm0
 	xorps	xmm3,xmm0
 	xorps	xmm4,xmm0
-	movups	xmm0,XMMWORD PTR[32+rcx]
-	lea	rcx,QWORD PTR[32+rax*1+rcx]
+	movups	xmm0,XMMWORD[32+rcx]
+	lea	rcx,[32+rax*1+rcx]
 	neg	rax
 	add	rax,16
 
-$L$enc_loop3::
+$L$enc_loop3:
 DB	102,15,56,220,209
 DB	102,15,56,220,217
 DB	102,15,56,220,225
-	movups	xmm1,XMMWORD PTR[rax*1+rcx]
+	movups	xmm1,XMMWORD[rax*1+rcx]
 	add	rax,32
 DB	102,15,56,220,208
 DB	102,15,56,220,216
 DB	102,15,56,220,224
-	movups	xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
-	jnz	$L$enc_loop3
+	movups	xmm0,XMMWORD[((-16))+rax*1+rcx]
+	jnz	NEAR $L$enc_loop3
 
 DB	102,15,56,220,209
 DB	102,15,56,220,217
@@ -133,32 +137,32 @@
 DB	102,15,56,221,216
 DB	102,15,56,221,224
 	DB	0F3h,0C3h		;repret
-_aesni_encrypt3	ENDP
+
 
 ALIGN	16
-_aesni_decrypt3	PROC PRIVATE
-	movups	xmm0,XMMWORD PTR[rcx]
+_aesni_decrypt3:
+	movups	xmm0,XMMWORD[rcx]
 	shl	eax,4
-	movups	xmm1,XMMWORD PTR[16+rcx]
+	movups	xmm1,XMMWORD[16+rcx]
 	xorps	xmm2,xmm0
 	xorps	xmm3,xmm0
 	xorps	xmm4,xmm0
-	movups	xmm0,XMMWORD PTR[32+rcx]
-	lea	rcx,QWORD PTR[32+rax*1+rcx]
+	movups	xmm0,XMMWORD[32+rcx]
+	lea	rcx,[32+rax*1+rcx]
 	neg	rax
 	add	rax,16
 
-$L$dec_loop3::
+$L$dec_loop3:
 DB	102,15,56,222,209
 DB	102,15,56,222,217
 DB	102,15,56,222,225
-	movups	xmm1,XMMWORD PTR[rax*1+rcx]
+	movups	xmm1,XMMWORD[rax*1+rcx]
 	add	rax,32
 DB	102,15,56,222,208
 DB	102,15,56,222,216
 DB	102,15,56,222,224
-	movups	xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
-	jnz	$L$dec_loop3
+	movups	xmm0,XMMWORD[((-16))+rax*1+rcx]
+	jnz	NEAR $L$dec_loop3
 
 DB	102,15,56,222,209
 DB	102,15,56,222,217
@@ -167,36 +171,36 @@
 DB	102,15,56,223,216
 DB	102,15,56,223,224
 	DB	0F3h,0C3h		;repret
-_aesni_decrypt3	ENDP
+
 
 ALIGN	16
-_aesni_encrypt4	PROC PRIVATE
-	movups	xmm0,XMMWORD PTR[rcx]
+_aesni_encrypt4:
+	movups	xmm0,XMMWORD[rcx]
 	shl	eax,4
-	movups	xmm1,XMMWORD PTR[16+rcx]
+	movups	xmm1,XMMWORD[16+rcx]
 	xorps	xmm2,xmm0
 	xorps	xmm3,xmm0
 	xorps	xmm4,xmm0
 	xorps	xmm5,xmm0
-	movups	xmm0,XMMWORD PTR[32+rcx]
-	lea	rcx,QWORD PTR[32+rax*1+rcx]
+	movups	xmm0,XMMWORD[32+rcx]
+	lea	rcx,[32+rax*1+rcx]
 	neg	rax
-DB	00fh,01fh,000h
+DB	0x0f,0x1f,0x00
 	add	rax,16
 
-$L$enc_loop4::
+$L$enc_loop4:
 DB	102,15,56,220,209
 DB	102,15,56,220,217
 DB	102,15,56,220,225
 DB	102,15,56,220,233
-	movups	xmm1,XMMWORD PTR[rax*1+rcx]
+	movups	xmm1,XMMWORD[rax*1+rcx]
 	add	rax,32
 DB	102,15,56,220,208
 DB	102,15,56,220,216
 DB	102,15,56,220,224
 DB	102,15,56,220,232
-	movups	xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
-	jnz	$L$enc_loop4
+	movups	xmm0,XMMWORD[((-16))+rax*1+rcx]
+	jnz	NEAR $L$enc_loop4
 
 DB	102,15,56,220,209
 DB	102,15,56,220,217
@@ -207,36 +211,36 @@
 DB	102,15,56,221,224
 DB	102,15,56,221,232
 	DB	0F3h,0C3h		;repret
-_aesni_encrypt4	ENDP
+
 
 ALIGN	16
-_aesni_decrypt4	PROC PRIVATE
-	movups	xmm0,XMMWORD PTR[rcx]
+_aesni_decrypt4:
+	movups	xmm0,XMMWORD[rcx]
 	shl	eax,4
-	movups	xmm1,XMMWORD PTR[16+rcx]
+	movups	xmm1,XMMWORD[16+rcx]
 	xorps	xmm2,xmm0
 	xorps	xmm3,xmm0
 	xorps	xmm4,xmm0
 	xorps	xmm5,xmm0
-	movups	xmm0,XMMWORD PTR[32+rcx]
-	lea	rcx,QWORD PTR[32+rax*1+rcx]
+	movups	xmm0,XMMWORD[32+rcx]
+	lea	rcx,[32+rax*1+rcx]
 	neg	rax
-DB	00fh,01fh,000h
+DB	0x0f,0x1f,0x00
 	add	rax,16
 
-$L$dec_loop4::
+$L$dec_loop4:
 DB	102,15,56,222,209
 DB	102,15,56,222,217
 DB	102,15,56,222,225
 DB	102,15,56,222,233
-	movups	xmm1,XMMWORD PTR[rax*1+rcx]
+	movups	xmm1,XMMWORD[rax*1+rcx]
 	add	rax,32
 DB	102,15,56,222,208
 DB	102,15,56,222,216
 DB	102,15,56,222,224
 DB	102,15,56,222,232
-	movups	xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
-	jnz	$L$dec_loop4
+	movups	xmm0,XMMWORD[((-16))+rax*1+rcx]
+	jnz	NEAR $L$dec_loop4
 
 DB	102,15,56,222,209
 DB	102,15,56,222,217
@@ -247,18 +251,18 @@
 DB	102,15,56,223,224
 DB	102,15,56,223,232
 	DB	0F3h,0C3h		;repret
-_aesni_decrypt4	ENDP
+
 
 ALIGN	16
-_aesni_encrypt6	PROC PRIVATE
-	movups	xmm0,XMMWORD PTR[rcx]
+_aesni_encrypt6:
+	movups	xmm0,XMMWORD[rcx]
 	shl	eax,4
-	movups	xmm1,XMMWORD PTR[16+rcx]
+	movups	xmm1,XMMWORD[16+rcx]
 	xorps	xmm2,xmm0
 	pxor	xmm3,xmm0
 	pxor	xmm4,xmm0
 DB	102,15,56,220,209
-	lea	rcx,QWORD PTR[32+rax*1+rcx]
+	lea	rcx,[32+rax*1+rcx]
 	neg	rax
 DB	102,15,56,220,217
 	pxor	xmm5,xmm0
@@ -269,18 +273,18 @@
 DB	102,15,56,220,233
 DB	102,15,56,220,241
 DB	102,15,56,220,249
-	movups	xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
-	jmp	$L$enc_loop6_enter
+	movups	xmm0,XMMWORD[((-16))+rax*1+rcx]
+	jmp	NEAR $L$enc_loop6_enter
 ALIGN	16
-$L$enc_loop6::
+$L$enc_loop6:
 DB	102,15,56,220,209
 DB	102,15,56,220,217
 DB	102,15,56,220,225
 DB	102,15,56,220,233
 DB	102,15,56,220,241
 DB	102,15,56,220,249
-$L$enc_loop6_enter::
-	movups	xmm1,XMMWORD PTR[rax*1+rcx]
+$L$enc_loop6_enter:
+	movups	xmm1,XMMWORD[rax*1+rcx]
 	add	rax,32
 DB	102,15,56,220,208
 DB	102,15,56,220,216
@@ -288,8 +292,8 @@
 DB	102,15,56,220,232
 DB	102,15,56,220,240
 DB	102,15,56,220,248
-	movups	xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
-	jnz	$L$enc_loop6
+	movups	xmm0,XMMWORD[((-16))+rax*1+rcx]
+	jnz	NEAR $L$enc_loop6
 
 DB	102,15,56,220,209
 DB	102,15,56,220,217
@@ -304,18 +308,18 @@
 DB	102,15,56,221,240
 DB	102,15,56,221,248
 	DB	0F3h,0C3h		;repret
-_aesni_encrypt6	ENDP
+
 
 ALIGN	16
-_aesni_decrypt6	PROC PRIVATE
-	movups	xmm0,XMMWORD PTR[rcx]
+_aesni_decrypt6:
+	movups	xmm0,XMMWORD[rcx]
 	shl	eax,4
-	movups	xmm1,XMMWORD PTR[16+rcx]
+	movups	xmm1,XMMWORD[16+rcx]
 	xorps	xmm2,xmm0
 	pxor	xmm3,xmm0
 	pxor	xmm4,xmm0
 DB	102,15,56,222,209
-	lea	rcx,QWORD PTR[32+rax*1+rcx]
+	lea	rcx,[32+rax*1+rcx]
 	neg	rax
 DB	102,15,56,222,217
 	pxor	xmm5,xmm0
@@ -326,18 +330,18 @@
 DB	102,15,56,222,233
 DB	102,15,56,222,241
 DB	102,15,56,222,249
-	movups	xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
-	jmp	$L$dec_loop6_enter
+	movups	xmm0,XMMWORD[((-16))+rax*1+rcx]
+	jmp	NEAR $L$dec_loop6_enter
 ALIGN	16
-$L$dec_loop6::
+$L$dec_loop6:
 DB	102,15,56,222,209
 DB	102,15,56,222,217
 DB	102,15,56,222,225
 DB	102,15,56,222,233
 DB	102,15,56,222,241
 DB	102,15,56,222,249
-$L$dec_loop6_enter::
-	movups	xmm1,XMMWORD PTR[rax*1+rcx]
+$L$dec_loop6_enter:
+	movups	xmm1,XMMWORD[rax*1+rcx]
 	add	rax,32
 DB	102,15,56,222,208
 DB	102,15,56,222,216
@@ -345,8 +349,8 @@
 DB	102,15,56,222,232
 DB	102,15,56,222,240
 DB	102,15,56,222,248
-	movups	xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
-	jnz	$L$dec_loop6
+	movups	xmm0,XMMWORD[((-16))+rax*1+rcx]
+	jnz	NEAR $L$dec_loop6
 
 DB	102,15,56,222,209
 DB	102,15,56,222,217
@@ -361,19 +365,19 @@
 DB	102,15,56,223,240
 DB	102,15,56,223,248
 	DB	0F3h,0C3h		;repret
-_aesni_decrypt6	ENDP
+
 
 ALIGN	16
-_aesni_encrypt8	PROC PRIVATE
-	movups	xmm0,XMMWORD PTR[rcx]
+_aesni_encrypt8:
+	movups	xmm0,XMMWORD[rcx]
 	shl	eax,4
-	movups	xmm1,XMMWORD PTR[16+rcx]
+	movups	xmm1,XMMWORD[16+rcx]
 	xorps	xmm2,xmm0
 	xorps	xmm3,xmm0
 	pxor	xmm4,xmm0
 	pxor	xmm5,xmm0
 	pxor	xmm6,xmm0
-	lea	rcx,QWORD PTR[32+rax*1+rcx]
+	lea	rcx,[32+rax*1+rcx]
 	neg	rax
 DB	102,15,56,220,209
 	add	rax,16
@@ -387,10 +391,10 @@
 DB	102,15,56,220,249
 DB	102,68,15,56,220,193
 DB	102,68,15,56,220,201
-	movups	xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
-	jmp	$L$enc_loop8_enter
+	movups	xmm0,XMMWORD[((-16))+rax*1+rcx]
+	jmp	NEAR $L$enc_loop8_enter
 ALIGN	16
-$L$enc_loop8::
+$L$enc_loop8:
 DB	102,15,56,220,209
 DB	102,15,56,220,217
 DB	102,15,56,220,225
@@ -399,8 +403,8 @@
 DB	102,15,56,220,249
 DB	102,68,15,56,220,193
 DB	102,68,15,56,220,201
-$L$enc_loop8_enter::
-	movups	xmm1,XMMWORD PTR[rax*1+rcx]
+$L$enc_loop8_enter:
+	movups	xmm1,XMMWORD[rax*1+rcx]
 	add	rax,32
 DB	102,15,56,220,208
 DB	102,15,56,220,216
@@ -410,8 +414,8 @@
 DB	102,15,56,220,248
 DB	102,68,15,56,220,192
 DB	102,68,15,56,220,200
-	movups	xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
-	jnz	$L$enc_loop8
+	movups	xmm0,XMMWORD[((-16))+rax*1+rcx]
+	jnz	NEAR $L$enc_loop8
 
 DB	102,15,56,220,209
 DB	102,15,56,220,217
@@ -430,19 +434,19 @@
 DB	102,68,15,56,221,192
 DB	102,68,15,56,221,200
 	DB	0F3h,0C3h		;repret
-_aesni_encrypt8	ENDP
+
 
 ALIGN	16
-_aesni_decrypt8	PROC PRIVATE
-	movups	xmm0,XMMWORD PTR[rcx]
+_aesni_decrypt8:
+	movups	xmm0,XMMWORD[rcx]
 	shl	eax,4
-	movups	xmm1,XMMWORD PTR[16+rcx]
+	movups	xmm1,XMMWORD[16+rcx]
 	xorps	xmm2,xmm0
 	xorps	xmm3,xmm0
 	pxor	xmm4,xmm0
 	pxor	xmm5,xmm0
 	pxor	xmm6,xmm0
-	lea	rcx,QWORD PTR[32+rax*1+rcx]
+	lea	rcx,[32+rax*1+rcx]
 	neg	rax
 DB	102,15,56,222,209
 	add	rax,16
@@ -456,10 +460,10 @@
 DB	102,15,56,222,249
 DB	102,68,15,56,222,193
 DB	102,68,15,56,222,201
-	movups	xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
-	jmp	$L$dec_loop8_enter
+	movups	xmm0,XMMWORD[((-16))+rax*1+rcx]
+	jmp	NEAR $L$dec_loop8_enter
 ALIGN	16
-$L$dec_loop8::
+$L$dec_loop8:
 DB	102,15,56,222,209
 DB	102,15,56,222,217
 DB	102,15,56,222,225
@@ -468,8 +472,8 @@
 DB	102,15,56,222,249
 DB	102,68,15,56,222,193
 DB	102,68,15,56,222,201
-$L$dec_loop8_enter::
-	movups	xmm1,XMMWORD PTR[rax*1+rcx]
+$L$dec_loop8_enter:
+	movups	xmm1,XMMWORD[rax*1+rcx]
 	add	rax,32
 DB	102,15,56,222,208
 DB	102,15,56,222,216
@@ -479,8 +483,8 @@
 DB	102,15,56,222,248
 DB	102,68,15,56,222,192
 DB	102,68,15,56,222,200
-	movups	xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
-	jnz	$L$dec_loop8
+	movups	xmm0,XMMWORD[((-16))+rax*1+rcx]
+	jnz	NEAR $L$dec_loop8
 
 DB	102,15,56,222,209
 DB	102,15,56,222,217
@@ -499,378 +503,377 @@
 DB	102,68,15,56,223,192
 DB	102,68,15,56,223,200
 	DB	0F3h,0C3h		;repret
-_aesni_decrypt8	ENDP
-PUBLIC	aesni_ecb_encrypt
+
+global	aesni_ecb_encrypt
 
 ALIGN	16
-aesni_ecb_encrypt	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+aesni_ecb_encrypt:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_aesni_ecb_encrypt::
+$L$SEH_begin_aesni_ecb_encrypt:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 	mov	rcx,r9
-	mov	r8,QWORD PTR[40+rsp]
+	mov	r8,QWORD[40+rsp]
 
 
 	and	rdx,-16
-	jz	$L$ecb_ret
+	jz	NEAR $L$ecb_ret
 
-	mov	eax,DWORD PTR[240+rcx]
-	movups	xmm0,XMMWORD PTR[rcx]
+	mov	eax,DWORD[240+rcx]
+	movups	xmm0,XMMWORD[rcx]
 	mov	r11,rcx
 	mov	r10d,eax
 	test	r8d,r8d
-	jz	$L$ecb_decrypt
+	jz	NEAR $L$ecb_decrypt
 
-	cmp	rdx,080h
-	jb	$L$ecb_enc_tail
+	cmp	rdx,0x80
+	jb	NEAR $L$ecb_enc_tail
 
-	movdqu	xmm2,XMMWORD PTR[rdi]
-	movdqu	xmm3,XMMWORD PTR[16+rdi]
-	movdqu	xmm4,XMMWORD PTR[32+rdi]
-	movdqu	xmm5,XMMWORD PTR[48+rdi]
-	movdqu	xmm6,XMMWORD PTR[64+rdi]
-	movdqu	xmm7,XMMWORD PTR[80+rdi]
-	movdqu	xmm8,XMMWORD PTR[96+rdi]
-	movdqu	xmm9,XMMWORD PTR[112+rdi]
-	lea	rdi,QWORD PTR[128+rdi]
-	sub	rdx,080h
-	jmp	$L$ecb_enc_loop8_enter
+	movdqu	xmm2,XMMWORD[rdi]
+	movdqu	xmm3,XMMWORD[16+rdi]
+	movdqu	xmm4,XMMWORD[32+rdi]
+	movdqu	xmm5,XMMWORD[48+rdi]
+	movdqu	xmm6,XMMWORD[64+rdi]
+	movdqu	xmm7,XMMWORD[80+rdi]
+	movdqu	xmm8,XMMWORD[96+rdi]
+	movdqu	xmm9,XMMWORD[112+rdi]
+	lea	rdi,[128+rdi]
+	sub	rdx,0x80
+	jmp	NEAR $L$ecb_enc_loop8_enter
 ALIGN	16
-$L$ecb_enc_loop8::
-	movups	XMMWORD PTR[rsi],xmm2
+$L$ecb_enc_loop8:
+	movups	XMMWORD[rsi],xmm2
 	mov	rcx,r11
-	movdqu	xmm2,XMMWORD PTR[rdi]
+	movdqu	xmm2,XMMWORD[rdi]
 	mov	eax,r10d
-	movups	XMMWORD PTR[16+rsi],xmm3
-	movdqu	xmm3,XMMWORD PTR[16+rdi]
-	movups	XMMWORD PTR[32+rsi],xmm4
-	movdqu	xmm4,XMMWORD PTR[32+rdi]
-	movups	XMMWORD PTR[48+rsi],xmm5
-	movdqu	xmm5,XMMWORD PTR[48+rdi]
-	movups	XMMWORD PTR[64+rsi],xmm6
-	movdqu	xmm6,XMMWORD PTR[64+rdi]
-	movups	XMMWORD PTR[80+rsi],xmm7
-	movdqu	xmm7,XMMWORD PTR[80+rdi]
-	movups	XMMWORD PTR[96+rsi],xmm8
-	movdqu	xmm8,XMMWORD PTR[96+rdi]
-	movups	XMMWORD PTR[112+rsi],xmm9
-	lea	rsi,QWORD PTR[128+rsi]
-	movdqu	xmm9,XMMWORD PTR[112+rdi]
-	lea	rdi,QWORD PTR[128+rdi]
-$L$ecb_enc_loop8_enter::
+	movups	XMMWORD[16+rsi],xmm3
+	movdqu	xmm3,XMMWORD[16+rdi]
+	movups	XMMWORD[32+rsi],xmm4
+	movdqu	xmm4,XMMWORD[32+rdi]
+	movups	XMMWORD[48+rsi],xmm5
+	movdqu	xmm5,XMMWORD[48+rdi]
+	movups	XMMWORD[64+rsi],xmm6
+	movdqu	xmm6,XMMWORD[64+rdi]
+	movups	XMMWORD[80+rsi],xmm7
+	movdqu	xmm7,XMMWORD[80+rdi]
+	movups	XMMWORD[96+rsi],xmm8
+	movdqu	xmm8,XMMWORD[96+rdi]
+	movups	XMMWORD[112+rsi],xmm9
+	lea	rsi,[128+rsi]
+	movdqu	xmm9,XMMWORD[112+rdi]
+	lea	rdi,[128+rdi]
+$L$ecb_enc_loop8_enter:
 
 	call	_aesni_encrypt8
 
-	sub	rdx,080h
-	jnc	$L$ecb_enc_loop8
+	sub	rdx,0x80
+	jnc	NEAR $L$ecb_enc_loop8
 
-	movups	XMMWORD PTR[rsi],xmm2
+	movups	XMMWORD[rsi],xmm2
 	mov	rcx,r11
-	movups	XMMWORD PTR[16+rsi],xmm3
+	movups	XMMWORD[16+rsi],xmm3
 	mov	eax,r10d
-	movups	XMMWORD PTR[32+rsi],xmm4
-	movups	XMMWORD PTR[48+rsi],xmm5
-	movups	XMMWORD PTR[64+rsi],xmm6
-	movups	XMMWORD PTR[80+rsi],xmm7
-	movups	XMMWORD PTR[96+rsi],xmm8
-	movups	XMMWORD PTR[112+rsi],xmm9
-	lea	rsi,QWORD PTR[128+rsi]
-	add	rdx,080h
-	jz	$L$ecb_ret
+	movups	XMMWORD[32+rsi],xmm4
+	movups	XMMWORD[48+rsi],xmm5
+	movups	XMMWORD[64+rsi],xmm6
+	movups	XMMWORD[80+rsi],xmm7
+	movups	XMMWORD[96+rsi],xmm8
+	movups	XMMWORD[112+rsi],xmm9
+	lea	rsi,[128+rsi]
+	add	rdx,0x80
+	jz	NEAR $L$ecb_ret
 
-$L$ecb_enc_tail::
-	movups	xmm2,XMMWORD PTR[rdi]
-	cmp	rdx,020h
-	jb	$L$ecb_enc_one
-	movups	xmm3,XMMWORD PTR[16+rdi]
-	je	$L$ecb_enc_two
-	movups	xmm4,XMMWORD PTR[32+rdi]
-	cmp	rdx,040h
-	jb	$L$ecb_enc_three
-	movups	xmm5,XMMWORD PTR[48+rdi]
-	je	$L$ecb_enc_four
-	movups	xmm6,XMMWORD PTR[64+rdi]
-	cmp	rdx,060h
-	jb	$L$ecb_enc_five
-	movups	xmm7,XMMWORD PTR[80+rdi]
-	je	$L$ecb_enc_six
-	movdqu	xmm8,XMMWORD PTR[96+rdi]
+$L$ecb_enc_tail:
+	movups	xmm2,XMMWORD[rdi]
+	cmp	rdx,0x20
+	jb	NEAR $L$ecb_enc_one
+	movups	xmm3,XMMWORD[16+rdi]
+	je	NEAR $L$ecb_enc_two
+	movups	xmm4,XMMWORD[32+rdi]
+	cmp	rdx,0x40
+	jb	NEAR $L$ecb_enc_three
+	movups	xmm5,XMMWORD[48+rdi]
+	je	NEAR $L$ecb_enc_four
+	movups	xmm6,XMMWORD[64+rdi]
+	cmp	rdx,0x60
+	jb	NEAR $L$ecb_enc_five
+	movups	xmm7,XMMWORD[80+rdi]
+	je	NEAR $L$ecb_enc_six
+	movdqu	xmm8,XMMWORD[96+rdi]
 	call	_aesni_encrypt8
-	movups	XMMWORD PTR[rsi],xmm2
-	movups	XMMWORD PTR[16+rsi],xmm3
-	movups	XMMWORD PTR[32+rsi],xmm4
-	movups	XMMWORD PTR[48+rsi],xmm5
-	movups	XMMWORD PTR[64+rsi],xmm6
-	movups	XMMWORD PTR[80+rsi],xmm7
-	movups	XMMWORD PTR[96+rsi],xmm8
-	jmp	$L$ecb_ret
+	movups	XMMWORD[rsi],xmm2
+	movups	XMMWORD[16+rsi],xmm3
+	movups	XMMWORD[32+rsi],xmm4
+	movups	XMMWORD[48+rsi],xmm5
+	movups	XMMWORD[64+rsi],xmm6
+	movups	XMMWORD[80+rsi],xmm7
+	movups	XMMWORD[96+rsi],xmm8
+	jmp	NEAR $L$ecb_ret
 ALIGN	16
-$L$ecb_enc_one::
-	movups	xmm0,XMMWORD PTR[rcx]
-	movups	xmm1,XMMWORD PTR[16+rcx]
-	lea	rcx,QWORD PTR[32+rcx]
+$L$ecb_enc_one:
+	movups	xmm0,XMMWORD[rcx]
+	movups	xmm1,XMMWORD[16+rcx]
+	lea	rcx,[32+rcx]
 	xorps	xmm2,xmm0
-$L$oop_enc1_3::
+$L$oop_enc1_3:
 DB	102,15,56,220,209
 	dec	eax
-	movups	xmm1,XMMWORD PTR[rcx]
-	lea	rcx,QWORD PTR[16+rcx]
-	jnz	$L$oop_enc1_3
+	movups	xmm1,XMMWORD[rcx]
+	lea	rcx,[16+rcx]
+	jnz	NEAR $L$oop_enc1_3
 DB	102,15,56,221,209
-	movups	XMMWORD PTR[rsi],xmm2
-	jmp	$L$ecb_ret
+	movups	XMMWORD[rsi],xmm2
+	jmp	NEAR $L$ecb_ret
 ALIGN	16
-$L$ecb_enc_two::
+$L$ecb_enc_two:
 	call	_aesni_encrypt2
-	movups	XMMWORD PTR[rsi],xmm2
-	movups	XMMWORD PTR[16+rsi],xmm3
-	jmp	$L$ecb_ret
+	movups	XMMWORD[rsi],xmm2
+	movups	XMMWORD[16+rsi],xmm3
+	jmp	NEAR $L$ecb_ret
 ALIGN	16
-$L$ecb_enc_three::
+$L$ecb_enc_three:
 	call	_aesni_encrypt3
-	movups	XMMWORD PTR[rsi],xmm2
-	movups	XMMWORD PTR[16+rsi],xmm3
-	movups	XMMWORD PTR[32+rsi],xmm4
-	jmp	$L$ecb_ret
+	movups	XMMWORD[rsi],xmm2
+	movups	XMMWORD[16+rsi],xmm3
+	movups	XMMWORD[32+rsi],xmm4
+	jmp	NEAR $L$ecb_ret
 ALIGN	16
-$L$ecb_enc_four::
+$L$ecb_enc_four:
 	call	_aesni_encrypt4
-	movups	XMMWORD PTR[rsi],xmm2
-	movups	XMMWORD PTR[16+rsi],xmm3
-	movups	XMMWORD PTR[32+rsi],xmm4
-	movups	XMMWORD PTR[48+rsi],xmm5
-	jmp	$L$ecb_ret
+	movups	XMMWORD[rsi],xmm2
+	movups	XMMWORD[16+rsi],xmm3
+	movups	XMMWORD[32+rsi],xmm4
+	movups	XMMWORD[48+rsi],xmm5
+	jmp	NEAR $L$ecb_ret
 ALIGN	16
-$L$ecb_enc_five::
+$L$ecb_enc_five:
 	xorps	xmm7,xmm7
 	call	_aesni_encrypt6
-	movups	XMMWORD PTR[rsi],xmm2
-	movups	XMMWORD PTR[16+rsi],xmm3
-	movups	XMMWORD PTR[32+rsi],xmm4
-	movups	XMMWORD PTR[48+rsi],xmm5
-	movups	XMMWORD PTR[64+rsi],xmm6
-	jmp	$L$ecb_ret
+	movups	XMMWORD[rsi],xmm2
+	movups	XMMWORD[16+rsi],xmm3
+	movups	XMMWORD[32+rsi],xmm4
+	movups	XMMWORD[48+rsi],xmm5
+	movups	XMMWORD[64+rsi],xmm6
+	jmp	NEAR $L$ecb_ret
 ALIGN	16
-$L$ecb_enc_six::
+$L$ecb_enc_six:
 	call	_aesni_encrypt6
-	movups	XMMWORD PTR[rsi],xmm2
-	movups	XMMWORD PTR[16+rsi],xmm3
-	movups	XMMWORD PTR[32+rsi],xmm4
-	movups	XMMWORD PTR[48+rsi],xmm5
-	movups	XMMWORD PTR[64+rsi],xmm6
-	movups	XMMWORD PTR[80+rsi],xmm7
-	jmp	$L$ecb_ret
+	movups	XMMWORD[rsi],xmm2
+	movups	XMMWORD[16+rsi],xmm3
+	movups	XMMWORD[32+rsi],xmm4
+	movups	XMMWORD[48+rsi],xmm5
+	movups	XMMWORD[64+rsi],xmm6
+	movups	XMMWORD[80+rsi],xmm7
+	jmp	NEAR $L$ecb_ret
 
 ALIGN	16
-$L$ecb_decrypt::
-	cmp	rdx,080h
-	jb	$L$ecb_dec_tail
+$L$ecb_decrypt:
+	cmp	rdx,0x80
+	jb	NEAR $L$ecb_dec_tail
 
-	movdqu	xmm2,XMMWORD PTR[rdi]
-	movdqu	xmm3,XMMWORD PTR[16+rdi]
-	movdqu	xmm4,XMMWORD PTR[32+rdi]
-	movdqu	xmm5,XMMWORD PTR[48+rdi]
-	movdqu	xmm6,XMMWORD PTR[64+rdi]
-	movdqu	xmm7,XMMWORD PTR[80+rdi]
-	movdqu	xmm8,XMMWORD PTR[96+rdi]
-	movdqu	xmm9,XMMWORD PTR[112+rdi]
-	lea	rdi,QWORD PTR[128+rdi]
-	sub	rdx,080h
-	jmp	$L$ecb_dec_loop8_enter
+	movdqu	xmm2,XMMWORD[rdi]
+	movdqu	xmm3,XMMWORD[16+rdi]
+	movdqu	xmm4,XMMWORD[32+rdi]
+	movdqu	xmm5,XMMWORD[48+rdi]
+	movdqu	xmm6,XMMWORD[64+rdi]
+	movdqu	xmm7,XMMWORD[80+rdi]
+	movdqu	xmm8,XMMWORD[96+rdi]
+	movdqu	xmm9,XMMWORD[112+rdi]
+	lea	rdi,[128+rdi]
+	sub	rdx,0x80
+	jmp	NEAR $L$ecb_dec_loop8_enter
 ALIGN	16
-$L$ecb_dec_loop8::
-	movups	XMMWORD PTR[rsi],xmm2
+$L$ecb_dec_loop8:
+	movups	XMMWORD[rsi],xmm2
 	mov	rcx,r11
-	movdqu	xmm2,XMMWORD PTR[rdi]
+	movdqu	xmm2,XMMWORD[rdi]
 	mov	eax,r10d
-	movups	XMMWORD PTR[16+rsi],xmm3
-	movdqu	xmm3,XMMWORD PTR[16+rdi]
-	movups	XMMWORD PTR[32+rsi],xmm4
-	movdqu	xmm4,XMMWORD PTR[32+rdi]
-	movups	XMMWORD PTR[48+rsi],xmm5
-	movdqu	xmm5,XMMWORD PTR[48+rdi]
-	movups	XMMWORD PTR[64+rsi],xmm6
-	movdqu	xmm6,XMMWORD PTR[64+rdi]
-	movups	XMMWORD PTR[80+rsi],xmm7
-	movdqu	xmm7,XMMWORD PTR[80+rdi]
-	movups	XMMWORD PTR[96+rsi],xmm8
-	movdqu	xmm8,XMMWORD PTR[96+rdi]
-	movups	XMMWORD PTR[112+rsi],xmm9
-	lea	rsi,QWORD PTR[128+rsi]
-	movdqu	xmm9,XMMWORD PTR[112+rdi]
-	lea	rdi,QWORD PTR[128+rdi]
-$L$ecb_dec_loop8_enter::
+	movups	XMMWORD[16+rsi],xmm3
+	movdqu	xmm3,XMMWORD[16+rdi]
+	movups	XMMWORD[32+rsi],xmm4
+	movdqu	xmm4,XMMWORD[32+rdi]
+	movups	XMMWORD[48+rsi],xmm5
+	movdqu	xmm5,XMMWORD[48+rdi]
+	movups	XMMWORD[64+rsi],xmm6
+	movdqu	xmm6,XMMWORD[64+rdi]
+	movups	XMMWORD[80+rsi],xmm7
+	movdqu	xmm7,XMMWORD[80+rdi]
+	movups	XMMWORD[96+rsi],xmm8
+	movdqu	xmm8,XMMWORD[96+rdi]
+	movups	XMMWORD[112+rsi],xmm9
+	lea	rsi,[128+rsi]
+	movdqu	xmm9,XMMWORD[112+rdi]
+	lea	rdi,[128+rdi]
+$L$ecb_dec_loop8_enter:
 
 	call	_aesni_decrypt8
 
-	movups	xmm0,XMMWORD PTR[r11]
-	sub	rdx,080h
-	jnc	$L$ecb_dec_loop8
+	movups	xmm0,XMMWORD[r11]
+	sub	rdx,0x80
+	jnc	NEAR $L$ecb_dec_loop8
 
-	movups	XMMWORD PTR[rsi],xmm2
+	movups	XMMWORD[rsi],xmm2
 	mov	rcx,r11
-	movups	XMMWORD PTR[16+rsi],xmm3
+	movups	XMMWORD[16+rsi],xmm3
 	mov	eax,r10d
-	movups	XMMWORD PTR[32+rsi],xmm4
-	movups	XMMWORD PTR[48+rsi],xmm5
-	movups	XMMWORD PTR[64+rsi],xmm6
-	movups	XMMWORD PTR[80+rsi],xmm7
-	movups	XMMWORD PTR[96+rsi],xmm8
-	movups	XMMWORD PTR[112+rsi],xmm9
-	lea	rsi,QWORD PTR[128+rsi]
-	add	rdx,080h
-	jz	$L$ecb_ret
+	movups	XMMWORD[32+rsi],xmm4
+	movups	XMMWORD[48+rsi],xmm5
+	movups	XMMWORD[64+rsi],xmm6
+	movups	XMMWORD[80+rsi],xmm7
+	movups	XMMWORD[96+rsi],xmm8
+	movups	XMMWORD[112+rsi],xmm9
+	lea	rsi,[128+rsi]
+	add	rdx,0x80
+	jz	NEAR $L$ecb_ret
 
-$L$ecb_dec_tail::
-	movups	xmm2,XMMWORD PTR[rdi]
-	cmp	rdx,020h
-	jb	$L$ecb_dec_one
-	movups	xmm3,XMMWORD PTR[16+rdi]
-	je	$L$ecb_dec_two
-	movups	xmm4,XMMWORD PTR[32+rdi]
-	cmp	rdx,040h
-	jb	$L$ecb_dec_three
-	movups	xmm5,XMMWORD PTR[48+rdi]
-	je	$L$ecb_dec_four
-	movups	xmm6,XMMWORD PTR[64+rdi]
-	cmp	rdx,060h
-	jb	$L$ecb_dec_five
-	movups	xmm7,XMMWORD PTR[80+rdi]
-	je	$L$ecb_dec_six
-	movups	xmm8,XMMWORD PTR[96+rdi]
-	movups	xmm0,XMMWORD PTR[rcx]
+$L$ecb_dec_tail:
+	movups	xmm2,XMMWORD[rdi]
+	cmp	rdx,0x20
+	jb	NEAR $L$ecb_dec_one
+	movups	xmm3,XMMWORD[16+rdi]
+	je	NEAR $L$ecb_dec_two
+	movups	xmm4,XMMWORD[32+rdi]
+	cmp	rdx,0x40
+	jb	NEAR $L$ecb_dec_three
+	movups	xmm5,XMMWORD[48+rdi]
+	je	NEAR $L$ecb_dec_four
+	movups	xmm6,XMMWORD[64+rdi]
+	cmp	rdx,0x60
+	jb	NEAR $L$ecb_dec_five
+	movups	xmm7,XMMWORD[80+rdi]
+	je	NEAR $L$ecb_dec_six
+	movups	xmm8,XMMWORD[96+rdi]
+	movups	xmm0,XMMWORD[rcx]
 	call	_aesni_decrypt8
-	movups	XMMWORD PTR[rsi],xmm2
-	movups	XMMWORD PTR[16+rsi],xmm3
-	movups	XMMWORD PTR[32+rsi],xmm4
-	movups	XMMWORD PTR[48+rsi],xmm5
-	movups	XMMWORD PTR[64+rsi],xmm6
-	movups	XMMWORD PTR[80+rsi],xmm7
-	movups	XMMWORD PTR[96+rsi],xmm8
-	jmp	$L$ecb_ret
+	movups	XMMWORD[rsi],xmm2
+	movups	XMMWORD[16+rsi],xmm3
+	movups	XMMWORD[32+rsi],xmm4
+	movups	XMMWORD[48+rsi],xmm5
+	movups	XMMWORD[64+rsi],xmm6
+	movups	XMMWORD[80+rsi],xmm7
+	movups	XMMWORD[96+rsi],xmm8
+	jmp	NEAR $L$ecb_ret
 ALIGN	16
-$L$ecb_dec_one::
-	movups	xmm0,XMMWORD PTR[rcx]
-	movups	xmm1,XMMWORD PTR[16+rcx]
-	lea	rcx,QWORD PTR[32+rcx]
+$L$ecb_dec_one:
+	movups	xmm0,XMMWORD[rcx]
+	movups	xmm1,XMMWORD[16+rcx]
+	lea	rcx,[32+rcx]
 	xorps	xmm2,xmm0
-$L$oop_dec1_4::
+$L$oop_dec1_4:
 DB	102,15,56,222,209
 	dec	eax
-	movups	xmm1,XMMWORD PTR[rcx]
-	lea	rcx,QWORD PTR[16+rcx]
-	jnz	$L$oop_dec1_4
+	movups	xmm1,XMMWORD[rcx]
+	lea	rcx,[16+rcx]
+	jnz	NEAR $L$oop_dec1_4
 DB	102,15,56,223,209
-	movups	XMMWORD PTR[rsi],xmm2
-	jmp	$L$ecb_ret
+	movups	XMMWORD[rsi],xmm2
+	jmp	NEAR $L$ecb_ret
 ALIGN	16
-$L$ecb_dec_two::
+$L$ecb_dec_two:
 	call	_aesni_decrypt2
-	movups	XMMWORD PTR[rsi],xmm2
-	movups	XMMWORD PTR[16+rsi],xmm3
-	jmp	$L$ecb_ret
+	movups	XMMWORD[rsi],xmm2
+	movups	XMMWORD[16+rsi],xmm3
+	jmp	NEAR $L$ecb_ret
 ALIGN	16
-$L$ecb_dec_three::
+$L$ecb_dec_three:
 	call	_aesni_decrypt3
-	movups	XMMWORD PTR[rsi],xmm2
-	movups	XMMWORD PTR[16+rsi],xmm3
-	movups	XMMWORD PTR[32+rsi],xmm4
-	jmp	$L$ecb_ret
+	movups	XMMWORD[rsi],xmm2
+	movups	XMMWORD[16+rsi],xmm3
+	movups	XMMWORD[32+rsi],xmm4
+	jmp	NEAR $L$ecb_ret
 ALIGN	16
-$L$ecb_dec_four::
+$L$ecb_dec_four:
 	call	_aesni_decrypt4
-	movups	XMMWORD PTR[rsi],xmm2
-	movups	XMMWORD PTR[16+rsi],xmm3
-	movups	XMMWORD PTR[32+rsi],xmm4
-	movups	XMMWORD PTR[48+rsi],xmm5
-	jmp	$L$ecb_ret
+	movups	XMMWORD[rsi],xmm2
+	movups	XMMWORD[16+rsi],xmm3
+	movups	XMMWORD[32+rsi],xmm4
+	movups	XMMWORD[48+rsi],xmm5
+	jmp	NEAR $L$ecb_ret
 ALIGN	16
-$L$ecb_dec_five::
+$L$ecb_dec_five:
 	xorps	xmm7,xmm7
 	call	_aesni_decrypt6
-	movups	XMMWORD PTR[rsi],xmm2
-	movups	XMMWORD PTR[16+rsi],xmm3
-	movups	XMMWORD PTR[32+rsi],xmm4
-	movups	XMMWORD PTR[48+rsi],xmm5
-	movups	XMMWORD PTR[64+rsi],xmm6
-	jmp	$L$ecb_ret
+	movups	XMMWORD[rsi],xmm2
+	movups	XMMWORD[16+rsi],xmm3
+	movups	XMMWORD[32+rsi],xmm4
+	movups	XMMWORD[48+rsi],xmm5
+	movups	XMMWORD[64+rsi],xmm6
+	jmp	NEAR $L$ecb_ret
 ALIGN	16
-$L$ecb_dec_six::
+$L$ecb_dec_six:
 	call	_aesni_decrypt6
-	movups	XMMWORD PTR[rsi],xmm2
-	movups	XMMWORD PTR[16+rsi],xmm3
-	movups	XMMWORD PTR[32+rsi],xmm4
-	movups	XMMWORD PTR[48+rsi],xmm5
-	movups	XMMWORD PTR[64+rsi],xmm6
-	movups	XMMWORD PTR[80+rsi],xmm7
+	movups	XMMWORD[rsi],xmm2
+	movups	XMMWORD[16+rsi],xmm3
+	movups	XMMWORD[32+rsi],xmm4
+	movups	XMMWORD[48+rsi],xmm5
+	movups	XMMWORD[64+rsi],xmm6
+	movups	XMMWORD[80+rsi],xmm7
 
-$L$ecb_ret::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+$L$ecb_ret:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_aesni_ecb_encrypt::
-aesni_ecb_encrypt	ENDP
-PUBLIC	aesni_ccm64_encrypt_blocks
+$L$SEH_end_aesni_ecb_encrypt:
+global	aesni_ccm64_encrypt_blocks
 
 ALIGN	16
-aesni_ccm64_encrypt_blocks	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+aesni_ccm64_encrypt_blocks:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_aesni_ccm64_encrypt_blocks::
+$L$SEH_begin_aesni_ccm64_encrypt_blocks:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 	mov	rcx,r9
-	mov	r8,QWORD PTR[40+rsp]
-	mov	r9,QWORD PTR[48+rsp]
+	mov	r8,QWORD[40+rsp]
+	mov	r9,QWORD[48+rsp]
 
 
-	lea	rsp,QWORD PTR[((-88))+rsp]
-	movaps	XMMWORD PTR[rsp],xmm6
-	movaps	XMMWORD PTR[16+rsp],xmm7
-	movaps	XMMWORD PTR[32+rsp],xmm8
-	movaps	XMMWORD PTR[48+rsp],xmm9
-$L$ccm64_enc_body::
-	mov	eax,DWORD PTR[240+rcx]
-	movdqu	xmm6,XMMWORD PTR[r8]
-	movdqa	xmm9,XMMWORD PTR[$L$increment64]
-	movdqa	xmm7,XMMWORD PTR[$L$bswap_mask]
+	lea	rsp,[((-88))+rsp]
+	movaps	XMMWORD[rsp],xmm6
+	movaps	XMMWORD[16+rsp],xmm7
+	movaps	XMMWORD[32+rsp],xmm8
+	movaps	XMMWORD[48+rsp],xmm9
+$L$ccm64_enc_body:
+	mov	eax,DWORD[240+rcx]
+	movdqu	xmm6,XMMWORD[r8]
+	movdqa	xmm9,XMMWORD[$L$increment64]
+	movdqa	xmm7,XMMWORD[$L$bswap_mask]
 
 	shl	eax,4
 	mov	r10d,16
-	lea	r11,QWORD PTR[rcx]
-	movdqu	xmm3,XMMWORD PTR[r9]
+	lea	r11,[rcx]
+	movdqu	xmm3,XMMWORD[r9]
 	movdqa	xmm2,xmm6
-	lea	rcx,QWORD PTR[32+rax*1+rcx]
+	lea	rcx,[32+rax*1+rcx]
 DB	102,15,56,0,247
 	sub	r10,rax
-	jmp	$L$ccm64_enc_outer
+	jmp	NEAR $L$ccm64_enc_outer
 ALIGN	16
-$L$ccm64_enc_outer::
-	movups	xmm0,XMMWORD PTR[r11]
+$L$ccm64_enc_outer:
+	movups	xmm0,XMMWORD[r11]
 	mov	rax,r10
-	movups	xmm8,XMMWORD PTR[rdi]
+	movups	xmm8,XMMWORD[rdi]
 
 	xorps	xmm2,xmm0
-	movups	xmm1,XMMWORD PTR[16+r11]
+	movups	xmm1,XMMWORD[16+r11]
 	xorps	xmm0,xmm8
 	xorps	xmm3,xmm0
-	movups	xmm0,XMMWORD PTR[32+r11]
+	movups	xmm0,XMMWORD[32+r11]
 
-$L$ccm64_enc2_loop::
+$L$ccm64_enc2_loop:
 DB	102,15,56,220,209
 DB	102,15,56,220,217
-	movups	xmm1,XMMWORD PTR[rax*1+rcx]
+	movups	xmm1,XMMWORD[rax*1+rcx]
 	add	rax,32
 DB	102,15,56,220,208
 DB	102,15,56,220,216
-	movups	xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
-	jnz	$L$ccm64_enc2_loop
+	movups	xmm0,XMMWORD[((-16))+rax*1+rcx]
+	jnz	NEAR $L$ccm64_enc2_loop
 DB	102,15,56,220,209
 DB	102,15,56,220,217
 	paddq	xmm6,xmm9
@@ -878,458 +881,456 @@
 DB	102,15,56,221,208
 DB	102,15,56,221,216
 
-	lea	rdi,QWORD PTR[16+rdi]
+	lea	rdi,[16+rdi]
 	xorps	xmm8,xmm2
 	movdqa	xmm2,xmm6
-	movups	XMMWORD PTR[rsi],xmm8
+	movups	XMMWORD[rsi],xmm8
 DB	102,15,56,0,215
-	lea	rsi,QWORD PTR[16+rsi]
-	jnz	$L$ccm64_enc_outer
+	lea	rsi,[16+rsi]
+	jnz	NEAR $L$ccm64_enc_outer
 
-	movups	XMMWORD PTR[r9],xmm3
-	movaps	xmm6,XMMWORD PTR[rsp]
-	movaps	xmm7,XMMWORD PTR[16+rsp]
-	movaps	xmm8,XMMWORD PTR[32+rsp]
-	movaps	xmm9,XMMWORD PTR[48+rsp]
-	lea	rsp,QWORD PTR[88+rsp]
-$L$ccm64_enc_ret::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	movups	XMMWORD[r9],xmm3
+	movaps	xmm6,XMMWORD[rsp]
+	movaps	xmm7,XMMWORD[16+rsp]
+	movaps	xmm8,XMMWORD[32+rsp]
+	movaps	xmm9,XMMWORD[48+rsp]
+	lea	rsp,[88+rsp]
+$L$ccm64_enc_ret:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_aesni_ccm64_encrypt_blocks::
-aesni_ccm64_encrypt_blocks	ENDP
-PUBLIC	aesni_ccm64_decrypt_blocks
+$L$SEH_end_aesni_ccm64_encrypt_blocks:
+global	aesni_ccm64_decrypt_blocks
 
 ALIGN	16
-aesni_ccm64_decrypt_blocks	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+aesni_ccm64_decrypt_blocks:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_aesni_ccm64_decrypt_blocks::
+$L$SEH_begin_aesni_ccm64_decrypt_blocks:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 	mov	rcx,r9
-	mov	r8,QWORD PTR[40+rsp]
-	mov	r9,QWORD PTR[48+rsp]
+	mov	r8,QWORD[40+rsp]
+	mov	r9,QWORD[48+rsp]
 
 
-	lea	rsp,QWORD PTR[((-88))+rsp]
-	movaps	XMMWORD PTR[rsp],xmm6
-	movaps	XMMWORD PTR[16+rsp],xmm7
-	movaps	XMMWORD PTR[32+rsp],xmm8
-	movaps	XMMWORD PTR[48+rsp],xmm9
-$L$ccm64_dec_body::
-	mov	eax,DWORD PTR[240+rcx]
-	movups	xmm6,XMMWORD PTR[r8]
-	movdqu	xmm3,XMMWORD PTR[r9]
-	movdqa	xmm9,XMMWORD PTR[$L$increment64]
-	movdqa	xmm7,XMMWORD PTR[$L$bswap_mask]
+	lea	rsp,[((-88))+rsp]
+	movaps	XMMWORD[rsp],xmm6
+	movaps	XMMWORD[16+rsp],xmm7
+	movaps	XMMWORD[32+rsp],xmm8
+	movaps	XMMWORD[48+rsp],xmm9
+$L$ccm64_dec_body:
+	mov	eax,DWORD[240+rcx]
+	movups	xmm6,XMMWORD[r8]
+	movdqu	xmm3,XMMWORD[r9]
+	movdqa	xmm9,XMMWORD[$L$increment64]
+	movdqa	xmm7,XMMWORD[$L$bswap_mask]
 
 	movaps	xmm2,xmm6
 	mov	r10d,eax
 	mov	r11,rcx
 DB	102,15,56,0,247
-	movups	xmm0,XMMWORD PTR[rcx]
-	movups	xmm1,XMMWORD PTR[16+rcx]
-	lea	rcx,QWORD PTR[32+rcx]
+	movups	xmm0,XMMWORD[rcx]
+	movups	xmm1,XMMWORD[16+rcx]
+	lea	rcx,[32+rcx]
 	xorps	xmm2,xmm0
-$L$oop_enc1_5::
+$L$oop_enc1_5:
 DB	102,15,56,220,209
 	dec	eax
-	movups	xmm1,XMMWORD PTR[rcx]
-	lea	rcx,QWORD PTR[16+rcx]
-	jnz	$L$oop_enc1_5
+	movups	xmm1,XMMWORD[rcx]
+	lea	rcx,[16+rcx]
+	jnz	NEAR $L$oop_enc1_5
 DB	102,15,56,221,209
 	shl	r10d,4
 	mov	eax,16
-	movups	xmm8,XMMWORD PTR[rdi]
+	movups	xmm8,XMMWORD[rdi]
 	paddq	xmm6,xmm9
-	lea	rdi,QWORD PTR[16+rdi]
+	lea	rdi,[16+rdi]
 	sub	rax,r10
-	lea	rcx,QWORD PTR[32+r10*1+r11]
+	lea	rcx,[32+r10*1+r11]
 	mov	r10,rax
-	jmp	$L$ccm64_dec_outer
+	jmp	NEAR $L$ccm64_dec_outer
 ALIGN	16
-$L$ccm64_dec_outer::
+$L$ccm64_dec_outer:
 	xorps	xmm8,xmm2
 	movdqa	xmm2,xmm6
-	movups	XMMWORD PTR[rsi],xmm8
-	lea	rsi,QWORD PTR[16+rsi]
+	movups	XMMWORD[rsi],xmm8
+	lea	rsi,[16+rsi]
 DB	102,15,56,0,215
 
 	sub	rdx,1
-	jz	$L$ccm64_dec_break
+	jz	NEAR $L$ccm64_dec_break
 
-	movups	xmm0,XMMWORD PTR[r11]
+	movups	xmm0,XMMWORD[r11]
 	mov	rax,r10
-	movups	xmm1,XMMWORD PTR[16+r11]
+	movups	xmm1,XMMWORD[16+r11]
 	xorps	xmm8,xmm0
 	xorps	xmm2,xmm0
 	xorps	xmm3,xmm8
-	movups	xmm0,XMMWORD PTR[32+r11]
-	jmp	$L$ccm64_dec2_loop
+	movups	xmm0,XMMWORD[32+r11]
+	jmp	NEAR $L$ccm64_dec2_loop
 ALIGN	16
-$L$ccm64_dec2_loop::
+$L$ccm64_dec2_loop:
 DB	102,15,56,220,209
 DB	102,15,56,220,217
-	movups	xmm1,XMMWORD PTR[rax*1+rcx]
+	movups	xmm1,XMMWORD[rax*1+rcx]
 	add	rax,32
 DB	102,15,56,220,208
 DB	102,15,56,220,216
-	movups	xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
-	jnz	$L$ccm64_dec2_loop
-	movups	xmm8,XMMWORD PTR[rdi]
+	movups	xmm0,XMMWORD[((-16))+rax*1+rcx]
+	jnz	NEAR $L$ccm64_dec2_loop
+	movups	xmm8,XMMWORD[rdi]
 	paddq	xmm6,xmm9
 DB	102,15,56,220,209
 DB	102,15,56,220,217
 DB	102,15,56,221,208
 DB	102,15,56,221,216
-	lea	rdi,QWORD PTR[16+rdi]
-	jmp	$L$ccm64_dec_outer
+	lea	rdi,[16+rdi]
+	jmp	NEAR $L$ccm64_dec_outer
 
 ALIGN	16
-$L$ccm64_dec_break::
+$L$ccm64_dec_break:
 
-	mov	eax,DWORD PTR[240+r11]
-	movups	xmm0,XMMWORD PTR[r11]
-	movups	xmm1,XMMWORD PTR[16+r11]
+	mov	eax,DWORD[240+r11]
+	movups	xmm0,XMMWORD[r11]
+	movups	xmm1,XMMWORD[16+r11]
 	xorps	xmm8,xmm0
-	lea	r11,QWORD PTR[32+r11]
+	lea	r11,[32+r11]
 	xorps	xmm3,xmm8
-$L$oop_enc1_6::
+$L$oop_enc1_6:
 DB	102,15,56,220,217
 	dec	eax
-	movups	xmm1,XMMWORD PTR[r11]
-	lea	r11,QWORD PTR[16+r11]
-	jnz	$L$oop_enc1_6
+	movups	xmm1,XMMWORD[r11]
+	lea	r11,[16+r11]
+	jnz	NEAR $L$oop_enc1_6
 DB	102,15,56,221,217
-	movups	XMMWORD PTR[r9],xmm3
-	movaps	xmm6,XMMWORD PTR[rsp]
-	movaps	xmm7,XMMWORD PTR[16+rsp]
-	movaps	xmm8,XMMWORD PTR[32+rsp]
-	movaps	xmm9,XMMWORD PTR[48+rsp]
-	lea	rsp,QWORD PTR[88+rsp]
-$L$ccm64_dec_ret::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	movups	XMMWORD[r9],xmm3
+	movaps	xmm6,XMMWORD[rsp]
+	movaps	xmm7,XMMWORD[16+rsp]
+	movaps	xmm8,XMMWORD[32+rsp]
+	movaps	xmm9,XMMWORD[48+rsp]
+	lea	rsp,[88+rsp]
+$L$ccm64_dec_ret:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_aesni_ccm64_decrypt_blocks::
-aesni_ccm64_decrypt_blocks	ENDP
-PUBLIC	aesni_ctr32_encrypt_blocks
+$L$SEH_end_aesni_ccm64_decrypt_blocks:
+global	aesni_ctr32_encrypt_blocks
 
 ALIGN	16
-aesni_ctr32_encrypt_blocks	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+aesni_ctr32_encrypt_blocks:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_aesni_ctr32_encrypt_blocks::
+$L$SEH_begin_aesni_ctr32_encrypt_blocks:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 	mov	rcx,r9
-	mov	r8,QWORD PTR[40+rsp]
+	mov	r8,QWORD[40+rsp]
 
 
-	lea	rax,QWORD PTR[rsp]
+	lea	rax,[rsp]
 	push	rbp
 	sub	rsp,288
 	and	rsp,-16
-	movaps	XMMWORD PTR[(-168)+rax],xmm6
-	movaps	XMMWORD PTR[(-152)+rax],xmm7
-	movaps	XMMWORD PTR[(-136)+rax],xmm8
-	movaps	XMMWORD PTR[(-120)+rax],xmm9
-	movaps	XMMWORD PTR[(-104)+rax],xmm10
-	movaps	XMMWORD PTR[(-88)+rax],xmm11
-	movaps	XMMWORD PTR[(-72)+rax],xmm12
-	movaps	XMMWORD PTR[(-56)+rax],xmm13
-	movaps	XMMWORD PTR[(-40)+rax],xmm14
-	movaps	XMMWORD PTR[(-24)+rax],xmm15
-$L$ctr32_body::
-	lea	rbp,QWORD PTR[((-8))+rax]
+	movaps	XMMWORD[(-168)+rax],xmm6
+	movaps	XMMWORD[(-152)+rax],xmm7
+	movaps	XMMWORD[(-136)+rax],xmm8
+	movaps	XMMWORD[(-120)+rax],xmm9
+	movaps	XMMWORD[(-104)+rax],xmm10
+	movaps	XMMWORD[(-88)+rax],xmm11
+	movaps	XMMWORD[(-72)+rax],xmm12
+	movaps	XMMWORD[(-56)+rax],xmm13
+	movaps	XMMWORD[(-40)+rax],xmm14
+	movaps	XMMWORD[(-24)+rax],xmm15
+$L$ctr32_body:
+	lea	rbp,[((-8))+rax]
 
 	cmp	rdx,1
-	je	$L$ctr32_one_shortcut
+	je	NEAR $L$ctr32_one_shortcut
 
-	movdqu	xmm2,XMMWORD PTR[r8]
-	movdqu	xmm0,XMMWORD PTR[rcx]
-	mov	r8d,DWORD PTR[12+r8]
+	movdqu	xmm2,XMMWORD[r8]
+	movdqu	xmm0,XMMWORD[rcx]
+	mov	r8d,DWORD[12+r8]
 	pxor	xmm2,xmm0
-	mov	r11d,DWORD PTR[12+rcx]
-	movdqa	XMMWORD PTR[rsp],xmm2
+	mov	r11d,DWORD[12+rcx]
+	movdqa	XMMWORD[rsp],xmm2
 	bswap	r8d
 	movdqa	xmm3,xmm2
 	movdqa	xmm4,xmm2
 	movdqa	xmm5,xmm2
-	movdqa	XMMWORD PTR[64+rsp],xmm2
-	movdqa	XMMWORD PTR[80+rsp],xmm2
-	movdqa	XMMWORD PTR[96+rsp],xmm2
+	movdqa	XMMWORD[64+rsp],xmm2
+	movdqa	XMMWORD[80+rsp],xmm2
+	movdqa	XMMWORD[96+rsp],xmm2
 	mov	r10,rdx
-	movdqa	XMMWORD PTR[112+rsp],xmm2
+	movdqa	XMMWORD[112+rsp],xmm2
 
-	lea	rax,QWORD PTR[1+r8]
-	lea	rdx,QWORD PTR[2+r8]
+	lea	rax,[1+r8]
+	lea	rdx,[2+r8]
 	bswap	eax
 	bswap	edx
 	xor	eax,r11d
 	xor	edx,r11d
 DB	102,15,58,34,216,3
-	lea	rax,QWORD PTR[3+r8]
-	movdqa	XMMWORD PTR[16+rsp],xmm3
+	lea	rax,[3+r8]
+	movdqa	XMMWORD[16+rsp],xmm3
 DB	102,15,58,34,226,3
 	bswap	eax
 	mov	rdx,r10
-	lea	r10,QWORD PTR[4+r8]
-	movdqa	XMMWORD PTR[32+rsp],xmm4
+	lea	r10,[4+r8]
+	movdqa	XMMWORD[32+rsp],xmm4
 	xor	eax,r11d
 	bswap	r10d
 DB	102,15,58,34,232,3
 	xor	r10d,r11d
-	movdqa	XMMWORD PTR[48+rsp],xmm5
-	lea	r9,QWORD PTR[5+r8]
-	mov	DWORD PTR[((64+12))+rsp],r10d
+	movdqa	XMMWORD[48+rsp],xmm5
+	lea	r9,[5+r8]
+	mov	DWORD[((64+12))+rsp],r10d
 	bswap	r9d
-	lea	r10,QWORD PTR[6+r8]
-	mov	eax,DWORD PTR[240+rcx]
+	lea	r10,[6+r8]
+	mov	eax,DWORD[240+rcx]
 	xor	r9d,r11d
 	bswap	r10d
-	mov	DWORD PTR[((80+12))+rsp],r9d
+	mov	DWORD[((80+12))+rsp],r9d
 	xor	r10d,r11d
-	lea	r9,QWORD PTR[7+r8]
-	mov	DWORD PTR[((96+12))+rsp],r10d
+	lea	r9,[7+r8]
+	mov	DWORD[((96+12))+rsp],r10d
 	bswap	r9d
-	mov	r10d,DWORD PTR[((OPENSSL_ia32cap_P+4))]
+	mov	r10d,DWORD[((OPENSSL_ia32cap_P+4))]
 	xor	r9d,r11d
 	and	r10d,71303168
-	mov	DWORD PTR[((112+12))+rsp],r9d
+	mov	DWORD[((112+12))+rsp],r9d
 
-	movups	xmm1,XMMWORD PTR[16+rcx]
+	movups	xmm1,XMMWORD[16+rcx]
 
-	movdqa	xmm6,XMMWORD PTR[64+rsp]
-	movdqa	xmm7,XMMWORD PTR[80+rsp]
+	movdqa	xmm6,XMMWORD[64+rsp]
+	movdqa	xmm7,XMMWORD[80+rsp]
 
 	cmp	rdx,8
-	jb	$L$ctr32_tail
+	jb	NEAR $L$ctr32_tail
 
 	sub	rdx,6
 	cmp	r10d,4194304
-	je	$L$ctr32_6x
+	je	NEAR $L$ctr32_6x
 
-	lea	rcx,QWORD PTR[128+rcx]
+	lea	rcx,[128+rcx]
 	sub	rdx,2
-	jmp	$L$ctr32_loop8
+	jmp	NEAR $L$ctr32_loop8
 
 ALIGN	16
-$L$ctr32_6x::
+$L$ctr32_6x:
 	shl	eax,4
 	mov	r10d,48
 	bswap	r11d
-	lea	rcx,QWORD PTR[32+rax*1+rcx]
+	lea	rcx,[32+rax*1+rcx]
 	sub	r10,rax
-	jmp	$L$ctr32_loop6
+	jmp	NEAR $L$ctr32_loop6
 
 ALIGN	16
-$L$ctr32_loop6::
+$L$ctr32_loop6:
 	add	r8d,6
-	movups	xmm0,XMMWORD PTR[((-48))+r10*1+rcx]
+	movups	xmm0,XMMWORD[((-48))+r10*1+rcx]
 DB	102,15,56,220,209
 	mov	eax,r8d
 	xor	eax,r11d
 DB	102,15,56,220,217
-DB	00fh,038h,0f1h,044h,024h,12
-	lea	eax,DWORD PTR[1+r8]
+DB	0x0f,0x38,0xf1,0x44,0x24,12
+	lea	eax,[1+r8]
 DB	102,15,56,220,225
 	xor	eax,r11d
-DB	00fh,038h,0f1h,044h,024h,28
+DB	0x0f,0x38,0xf1,0x44,0x24,28
 DB	102,15,56,220,233
-	lea	eax,DWORD PTR[2+r8]
+	lea	eax,[2+r8]
 	xor	eax,r11d
 DB	102,15,56,220,241
-DB	00fh,038h,0f1h,044h,024h,44
-	lea	eax,DWORD PTR[3+r8]
+DB	0x0f,0x38,0xf1,0x44,0x24,44
+	lea	eax,[3+r8]
 DB	102,15,56,220,249
-	movups	xmm1,XMMWORD PTR[((-32))+r10*1+rcx]
+	movups	xmm1,XMMWORD[((-32))+r10*1+rcx]
 	xor	eax,r11d
 
 DB	102,15,56,220,208
-DB	00fh,038h,0f1h,044h,024h,60
-	lea	eax,DWORD PTR[4+r8]
+DB	0x0f,0x38,0xf1,0x44,0x24,60
+	lea	eax,[4+r8]
 DB	102,15,56,220,216
 	xor	eax,r11d
-DB	00fh,038h,0f1h,044h,024h,76
+DB	0x0f,0x38,0xf1,0x44,0x24,76
 DB	102,15,56,220,224
-	lea	eax,DWORD PTR[5+r8]
+	lea	eax,[5+r8]
 	xor	eax,r11d
 DB	102,15,56,220,232
-DB	00fh,038h,0f1h,044h,024h,92
+DB	0x0f,0x38,0xf1,0x44,0x24,92
 	mov	rax,r10
 DB	102,15,56,220,240
 DB	102,15,56,220,248
-	movups	xmm0,XMMWORD PTR[((-16))+r10*1+rcx]
+	movups	xmm0,XMMWORD[((-16))+r10*1+rcx]
 
 	call	$L$enc_loop6
 
-	movdqu	xmm8,XMMWORD PTR[rdi]
-	movdqu	xmm9,XMMWORD PTR[16+rdi]
-	movdqu	xmm10,XMMWORD PTR[32+rdi]
-	movdqu	xmm11,XMMWORD PTR[48+rdi]
-	movdqu	xmm12,XMMWORD PTR[64+rdi]
-	movdqu	xmm13,XMMWORD PTR[80+rdi]
-	lea	rdi,QWORD PTR[96+rdi]
-	movups	xmm1,XMMWORD PTR[((-64))+r10*1+rcx]
+	movdqu	xmm8,XMMWORD[rdi]
+	movdqu	xmm9,XMMWORD[16+rdi]
+	movdqu	xmm10,XMMWORD[32+rdi]
+	movdqu	xmm11,XMMWORD[48+rdi]
+	movdqu	xmm12,XMMWORD[64+rdi]
+	movdqu	xmm13,XMMWORD[80+rdi]
+	lea	rdi,[96+rdi]
+	movups	xmm1,XMMWORD[((-64))+r10*1+rcx]
 	pxor	xmm8,xmm2
-	movaps	xmm2,XMMWORD PTR[rsp]
+	movaps	xmm2,XMMWORD[rsp]
 	pxor	xmm9,xmm3
-	movaps	xmm3,XMMWORD PTR[16+rsp]
+	movaps	xmm3,XMMWORD[16+rsp]
 	pxor	xmm10,xmm4
-	movaps	xmm4,XMMWORD PTR[32+rsp]
+	movaps	xmm4,XMMWORD[32+rsp]
 	pxor	xmm11,xmm5
-	movaps	xmm5,XMMWORD PTR[48+rsp]
+	movaps	xmm5,XMMWORD[48+rsp]
 	pxor	xmm12,xmm6
-	movaps	xmm6,XMMWORD PTR[64+rsp]
+	movaps	xmm6,XMMWORD[64+rsp]
 	pxor	xmm13,xmm7
-	movaps	xmm7,XMMWORD PTR[80+rsp]
-	movdqu	XMMWORD PTR[rsi],xmm8
-	movdqu	XMMWORD PTR[16+rsi],xmm9
-	movdqu	XMMWORD PTR[32+rsi],xmm10
-	movdqu	XMMWORD PTR[48+rsi],xmm11
-	movdqu	XMMWORD PTR[64+rsi],xmm12
-	movdqu	XMMWORD PTR[80+rsi],xmm13
-	lea	rsi,QWORD PTR[96+rsi]
+	movaps	xmm7,XMMWORD[80+rsp]
+	movdqu	XMMWORD[rsi],xmm8
+	movdqu	XMMWORD[16+rsi],xmm9
+	movdqu	XMMWORD[32+rsi],xmm10
+	movdqu	XMMWORD[48+rsi],xmm11
+	movdqu	XMMWORD[64+rsi],xmm12
+	movdqu	XMMWORD[80+rsi],xmm13
+	lea	rsi,[96+rsi]
 
 	sub	rdx,6
-	jnc	$L$ctr32_loop6
+	jnc	NEAR $L$ctr32_loop6
 
 	add	rdx,6
-	jz	$L$ctr32_done
+	jz	NEAR $L$ctr32_done
 
-	lea	eax,DWORD PTR[((-48))+r10]
-	lea	rcx,QWORD PTR[((-80))+r10*1+rcx]
+	lea	eax,[((-48))+r10]
+	lea	rcx,[((-80))+r10*1+rcx]
 	neg	eax
 	shr	eax,4
-	jmp	$L$ctr32_tail
+	jmp	NEAR $L$ctr32_tail
 
 ALIGN	32
-$L$ctr32_loop8::
+$L$ctr32_loop8:
 	add	r8d,8
-	movdqa	xmm8,XMMWORD PTR[96+rsp]
+	movdqa	xmm8,XMMWORD[96+rsp]
 DB	102,15,56,220,209
 	mov	r9d,r8d
-	movdqa	xmm9,XMMWORD PTR[112+rsp]
+	movdqa	xmm9,XMMWORD[112+rsp]
 DB	102,15,56,220,217
 	bswap	r9d
-	movups	xmm0,XMMWORD PTR[((32-128))+rcx]
+	movups	xmm0,XMMWORD[((32-128))+rcx]
 DB	102,15,56,220,225
 	xor	r9d,r11d
 	nop
 DB	102,15,56,220,233
-	mov	DWORD PTR[((0+12))+rsp],r9d
-	lea	r9,QWORD PTR[1+r8]
+	mov	DWORD[((0+12))+rsp],r9d
+	lea	r9,[1+r8]
 DB	102,15,56,220,241
 DB	102,15,56,220,249
 DB	102,68,15,56,220,193
 DB	102,68,15,56,220,201
-	movups	xmm1,XMMWORD PTR[((48-128))+rcx]
+	movups	xmm1,XMMWORD[((48-128))+rcx]
 	bswap	r9d
 DB	102,15,56,220,208
 DB	102,15,56,220,216
 	xor	r9d,r11d
-DB	066h,090h
+DB	0x66,0x90
 DB	102,15,56,220,224
 DB	102,15,56,220,232
-	mov	DWORD PTR[((16+12))+rsp],r9d
-	lea	r9,QWORD PTR[2+r8]
+	mov	DWORD[((16+12))+rsp],r9d
+	lea	r9,[2+r8]
 DB	102,15,56,220,240
 DB	102,15,56,220,248
 DB	102,68,15,56,220,192
 DB	102,68,15,56,220,200
-	movups	xmm0,XMMWORD PTR[((64-128))+rcx]
+	movups	xmm0,XMMWORD[((64-128))+rcx]
 	bswap	r9d
 DB	102,15,56,220,209
 DB	102,15,56,220,217
 	xor	r9d,r11d
-DB	066h,090h
+DB	0x66,0x90
 DB	102,15,56,220,225
 DB	102,15,56,220,233
-	mov	DWORD PTR[((32+12))+rsp],r9d
-	lea	r9,QWORD PTR[3+r8]
+	mov	DWORD[((32+12))+rsp],r9d
+	lea	r9,[3+r8]
 DB	102,15,56,220,241
 DB	102,15,56,220,249
 DB	102,68,15,56,220,193
 DB	102,68,15,56,220,201
-	movups	xmm1,XMMWORD PTR[((80-128))+rcx]
+	movups	xmm1,XMMWORD[((80-128))+rcx]
 	bswap	r9d
 DB	102,15,56,220,208
 DB	102,15,56,220,216
 	xor	r9d,r11d
-DB	066h,090h
+DB	0x66,0x90
 DB	102,15,56,220,224
 DB	102,15,56,220,232
-	mov	DWORD PTR[((48+12))+rsp],r9d
-	lea	r9,QWORD PTR[4+r8]
+	mov	DWORD[((48+12))+rsp],r9d
+	lea	r9,[4+r8]
 DB	102,15,56,220,240
 DB	102,15,56,220,248
 DB	102,68,15,56,220,192
 DB	102,68,15,56,220,200
-	movups	xmm0,XMMWORD PTR[((96-128))+rcx]
+	movups	xmm0,XMMWORD[((96-128))+rcx]
 	bswap	r9d
 DB	102,15,56,220,209
 DB	102,15,56,220,217
 	xor	r9d,r11d
-DB	066h,090h
+DB	0x66,0x90
 DB	102,15,56,220,225
 DB	102,15,56,220,233
-	mov	DWORD PTR[((64+12))+rsp],r9d
-	lea	r9,QWORD PTR[5+r8]
+	mov	DWORD[((64+12))+rsp],r9d
+	lea	r9,[5+r8]
 DB	102,15,56,220,241
 DB	102,15,56,220,249
 DB	102,68,15,56,220,193
 DB	102,68,15,56,220,201
-	movups	xmm1,XMMWORD PTR[((112-128))+rcx]
+	movups	xmm1,XMMWORD[((112-128))+rcx]
 	bswap	r9d
 DB	102,15,56,220,208
 DB	102,15,56,220,216
 	xor	r9d,r11d
-DB	066h,090h
+DB	0x66,0x90
 DB	102,15,56,220,224
 DB	102,15,56,220,232
-	mov	DWORD PTR[((80+12))+rsp],r9d
-	lea	r9,QWORD PTR[6+r8]
+	mov	DWORD[((80+12))+rsp],r9d
+	lea	r9,[6+r8]
 DB	102,15,56,220,240
 DB	102,15,56,220,248
 DB	102,68,15,56,220,192
 DB	102,68,15,56,220,200
-	movups	xmm0,XMMWORD PTR[((128-128))+rcx]
+	movups	xmm0,XMMWORD[((128-128))+rcx]
 	bswap	r9d
 DB	102,15,56,220,209
 DB	102,15,56,220,217
 	xor	r9d,r11d
-DB	066h,090h
+DB	0x66,0x90
 DB	102,15,56,220,225
 DB	102,15,56,220,233
-	mov	DWORD PTR[((96+12))+rsp],r9d
-	lea	r9,QWORD PTR[7+r8]
+	mov	DWORD[((96+12))+rsp],r9d
+	lea	r9,[7+r8]
 DB	102,15,56,220,241
 DB	102,15,56,220,249
 DB	102,68,15,56,220,193
 DB	102,68,15,56,220,201
-	movups	xmm1,XMMWORD PTR[((144-128))+rcx]
+	movups	xmm1,XMMWORD[((144-128))+rcx]
 	bswap	r9d
 DB	102,15,56,220,208
 DB	102,15,56,220,216
 DB	102,15,56,220,224
 	xor	r9d,r11d
-	movdqu	xmm10,XMMWORD PTR[rdi]
+	movdqu	xmm10,XMMWORD[rdi]
 DB	102,15,56,220,232
-	mov	DWORD PTR[((112+12))+rsp],r9d
+	mov	DWORD[((112+12))+rsp],r9d
 	cmp	eax,11
 DB	102,15,56,220,240
 DB	102,15,56,220,248
 DB	102,68,15,56,220,192
 DB	102,68,15,56,220,200
-	movups	xmm0,XMMWORD PTR[((160-128))+rcx]
+	movups	xmm0,XMMWORD[((160-128))+rcx]
 
-	jb	$L$ctr32_enc_done
+	jb	NEAR $L$ctr32_enc_done
 
 DB	102,15,56,220,209
 DB	102,15,56,220,217
@@ -1339,7 +1340,7 @@
 DB	102,15,56,220,249
 DB	102,68,15,56,220,193
 DB	102,68,15,56,220,201
-	movups	xmm1,XMMWORD PTR[((176-128))+rcx]
+	movups	xmm1,XMMWORD[((176-128))+rcx]
 
 DB	102,15,56,220,208
 DB	102,15,56,220,216
@@ -1349,8 +1350,8 @@
 DB	102,15,56,220,248
 DB	102,68,15,56,220,192
 DB	102,68,15,56,220,200
-	movups	xmm0,XMMWORD PTR[((192-128))+rcx]
-	je	$L$ctr32_enc_done
+	movups	xmm0,XMMWORD[((192-128))+rcx]
+	je	NEAR $L$ctr32_enc_done
 
 DB	102,15,56,220,209
 DB	102,15,56,220,217
@@ -1360,7 +1361,7 @@
 DB	102,15,56,220,249
 DB	102,68,15,56,220,193
 DB	102,68,15,56,220,201
-	movups	xmm1,XMMWORD PTR[((208-128))+rcx]
+	movups	xmm1,XMMWORD[((208-128))+rcx]
 
 DB	102,15,56,220,208
 DB	102,15,56,220,216
@@ -1370,20 +1371,20 @@
 DB	102,15,56,220,248
 DB	102,68,15,56,220,192
 DB	102,68,15,56,220,200
-	movups	xmm0,XMMWORD PTR[((224-128))+rcx]
-	jmp	$L$ctr32_enc_done
+	movups	xmm0,XMMWORD[((224-128))+rcx]
+	jmp	NEAR $L$ctr32_enc_done
 
 ALIGN	16
-$L$ctr32_enc_done::
-	movdqu	xmm11,XMMWORD PTR[16+rdi]
+$L$ctr32_enc_done:
+	movdqu	xmm11,XMMWORD[16+rdi]
 	pxor	xmm10,xmm0
-	movdqu	xmm12,XMMWORD PTR[32+rdi]
+	movdqu	xmm12,XMMWORD[32+rdi]
 	pxor	xmm11,xmm0
-	movdqu	xmm13,XMMWORD PTR[48+rdi]
+	movdqu	xmm13,XMMWORD[48+rdi]
 	pxor	xmm12,xmm0
-	movdqu	xmm14,XMMWORD PTR[64+rdi]
+	movdqu	xmm14,XMMWORD[64+rdi]
 	pxor	xmm13,xmm0
-	movdqu	xmm15,XMMWORD PTR[80+rdi]
+	movdqu	xmm15,XMMWORD[80+rdi]
 	pxor	xmm14,xmm0
 	pxor	xmm15,xmm0
 DB	102,15,56,220,209
@@ -1394,259 +1395,258 @@
 DB	102,15,56,220,249
 DB	102,68,15,56,220,193
 DB	102,68,15,56,220,201
-	movdqu	xmm1,XMMWORD PTR[96+rdi]
-	lea	rdi,QWORD PTR[128+rdi]
+	movdqu	xmm1,XMMWORD[96+rdi]
+	lea	rdi,[128+rdi]
 
 DB	102,65,15,56,221,210
 	pxor	xmm1,xmm0
-	movdqu	xmm10,XMMWORD PTR[((112-128))+rdi]
+	movdqu	xmm10,XMMWORD[((112-128))+rdi]
 DB	102,65,15,56,221,219
 	pxor	xmm10,xmm0
-	movdqa	xmm11,XMMWORD PTR[rsp]
+	movdqa	xmm11,XMMWORD[rsp]
 DB	102,65,15,56,221,228
 DB	102,65,15,56,221,237
-	movdqa	xmm12,XMMWORD PTR[16+rsp]
-	movdqa	xmm13,XMMWORD PTR[32+rsp]
+	movdqa	xmm12,XMMWORD[16+rsp]
+	movdqa	xmm13,XMMWORD[32+rsp]
 DB	102,65,15,56,221,246
 DB	102,65,15,56,221,255
-	movdqa	xmm14,XMMWORD PTR[48+rsp]
-	movdqa	xmm15,XMMWORD PTR[64+rsp]
+	movdqa	xmm14,XMMWORD[48+rsp]
+	movdqa	xmm15,XMMWORD[64+rsp]
 DB	102,68,15,56,221,193
-	movdqa	xmm0,XMMWORD PTR[80+rsp]
-	movups	xmm1,XMMWORD PTR[((16-128))+rcx]
+	movdqa	xmm0,XMMWORD[80+rsp]
+	movups	xmm1,XMMWORD[((16-128))+rcx]
 DB	102,69,15,56,221,202
 
-	movups	XMMWORD PTR[rsi],xmm2
+	movups	XMMWORD[rsi],xmm2
 	movdqa	xmm2,xmm11
-	movups	XMMWORD PTR[16+rsi],xmm3
+	movups	XMMWORD[16+rsi],xmm3
 	movdqa	xmm3,xmm12
-	movups	XMMWORD PTR[32+rsi],xmm4
+	movups	XMMWORD[32+rsi],xmm4
 	movdqa	xmm4,xmm13
-	movups	XMMWORD PTR[48+rsi],xmm5
+	movups	XMMWORD[48+rsi],xmm5
 	movdqa	xmm5,xmm14
-	movups	XMMWORD PTR[64+rsi],xmm6
+	movups	XMMWORD[64+rsi],xmm6
 	movdqa	xmm6,xmm15
-	movups	XMMWORD PTR[80+rsi],xmm7
+	movups	XMMWORD[80+rsi],xmm7
 	movdqa	xmm7,xmm0
-	movups	XMMWORD PTR[96+rsi],xmm8
-	movups	XMMWORD PTR[112+rsi],xmm9
-	lea	rsi,QWORD PTR[128+rsi]
+	movups	XMMWORD[96+rsi],xmm8
+	movups	XMMWORD[112+rsi],xmm9
+	lea	rsi,[128+rsi]
 
 	sub	rdx,8
-	jnc	$L$ctr32_loop8
+	jnc	NEAR $L$ctr32_loop8
 
 	add	rdx,8
-	jz	$L$ctr32_done
-	lea	rcx,QWORD PTR[((-128))+rcx]
+	jz	NEAR $L$ctr32_done
+	lea	rcx,[((-128))+rcx]
 
-$L$ctr32_tail::
-	lea	rcx,QWORD PTR[16+rcx]
+$L$ctr32_tail:
+	lea	rcx,[16+rcx]
 	cmp	rdx,4
-	jb	$L$ctr32_loop3
-	je	$L$ctr32_loop4
+	jb	NEAR $L$ctr32_loop3
+	je	NEAR $L$ctr32_loop4
 
 	shl	eax,4
-	movdqa	xmm8,XMMWORD PTR[96+rsp]
+	movdqa	xmm8,XMMWORD[96+rsp]
 	pxor	xmm9,xmm9
 
-	movups	xmm0,XMMWORD PTR[16+rcx]
+	movups	xmm0,XMMWORD[16+rcx]
 DB	102,15,56,220,209
 DB	102,15,56,220,217
-	lea	rcx,QWORD PTR[((32-16))+rax*1+rcx]
+	lea	rcx,[((32-16))+rax*1+rcx]
 	neg	rax
 DB	102,15,56,220,225
 	add	rax,16
-	movups	xmm10,XMMWORD PTR[rdi]
+	movups	xmm10,XMMWORD[rdi]
 DB	102,15,56,220,233
 DB	102,15,56,220,241
-	movups	xmm11,XMMWORD PTR[16+rdi]
-	movups	xmm12,XMMWORD PTR[32+rdi]
+	movups	xmm11,XMMWORD[16+rdi]
+	movups	xmm12,XMMWORD[32+rdi]
 DB	102,15,56,220,249
 DB	102,68,15,56,220,193
 
 	call	$L$enc_loop8_enter
 
-	movdqu	xmm13,XMMWORD PTR[48+rdi]
+	movdqu	xmm13,XMMWORD[48+rdi]
 	pxor	xmm2,xmm10
-	movdqu	xmm10,XMMWORD PTR[64+rdi]
+	movdqu	xmm10,XMMWORD[64+rdi]
 	pxor	xmm3,xmm11
-	movdqu	XMMWORD PTR[rsi],xmm2
+	movdqu	XMMWORD[rsi],xmm2
 	pxor	xmm4,xmm12
-	movdqu	XMMWORD PTR[16+rsi],xmm3
+	movdqu	XMMWORD[16+rsi],xmm3
 	pxor	xmm5,xmm13
-	movdqu	XMMWORD PTR[32+rsi],xmm4
+	movdqu	XMMWORD[32+rsi],xmm4
 	pxor	xmm6,xmm10
-	movdqu	XMMWORD PTR[48+rsi],xmm5
-	movdqu	XMMWORD PTR[64+rsi],xmm6
+	movdqu	XMMWORD[48+rsi],xmm5
+	movdqu	XMMWORD[64+rsi],xmm6
 	cmp	rdx,6
-	jb	$L$ctr32_done
+	jb	NEAR $L$ctr32_done
 
-	movups	xmm11,XMMWORD PTR[80+rdi]
+	movups	xmm11,XMMWORD[80+rdi]
 	xorps	xmm7,xmm11
-	movups	XMMWORD PTR[80+rsi],xmm7
-	je	$L$ctr32_done
+	movups	XMMWORD[80+rsi],xmm7
+	je	NEAR $L$ctr32_done
 
-	movups	xmm12,XMMWORD PTR[96+rdi]
+	movups	xmm12,XMMWORD[96+rdi]
 	xorps	xmm8,xmm12
-	movups	XMMWORD PTR[96+rsi],xmm8
-	jmp	$L$ctr32_done
+	movups	XMMWORD[96+rsi],xmm8
+	jmp	NEAR $L$ctr32_done
 
 ALIGN	32
-$L$ctr32_loop4::
+$L$ctr32_loop4:
 DB	102,15,56,220,209
-	lea	rcx,QWORD PTR[16+rcx]
+	lea	rcx,[16+rcx]
 	dec	eax
 DB	102,15,56,220,217
 DB	102,15,56,220,225
 DB	102,15,56,220,233
-	movups	xmm1,XMMWORD PTR[rcx]
-	jnz	$L$ctr32_loop4
+	movups	xmm1,XMMWORD[rcx]
+	jnz	NEAR $L$ctr32_loop4
 DB	102,15,56,221,209
 DB	102,15,56,221,217
-	movups	xmm10,XMMWORD PTR[rdi]
-	movups	xmm11,XMMWORD PTR[16+rdi]
+	movups	xmm10,XMMWORD[rdi]
+	movups	xmm11,XMMWORD[16+rdi]
 DB	102,15,56,221,225
 DB	102,15,56,221,233
-	movups	xmm12,XMMWORD PTR[32+rdi]
-	movups	xmm13,XMMWORD PTR[48+rdi]
+	movups	xmm12,XMMWORD[32+rdi]
+	movups	xmm13,XMMWORD[48+rdi]
 
 	xorps	xmm2,xmm10
-	movups	XMMWORD PTR[rsi],xmm2
+	movups	XMMWORD[rsi],xmm2
 	xorps	xmm3,xmm11
-	movups	XMMWORD PTR[16+rsi],xmm3
+	movups	XMMWORD[16+rsi],xmm3
 	pxor	xmm4,xmm12
-	movdqu	XMMWORD PTR[32+rsi],xmm4
+	movdqu	XMMWORD[32+rsi],xmm4
 	pxor	xmm5,xmm13
-	movdqu	XMMWORD PTR[48+rsi],xmm5
-	jmp	$L$ctr32_done
+	movdqu	XMMWORD[48+rsi],xmm5
+	jmp	NEAR $L$ctr32_done
 
 ALIGN	32
-$L$ctr32_loop3::
+$L$ctr32_loop3:
 DB	102,15,56,220,209
-	lea	rcx,QWORD PTR[16+rcx]
+	lea	rcx,[16+rcx]
 	dec	eax
 DB	102,15,56,220,217
 DB	102,15,56,220,225
-	movups	xmm1,XMMWORD PTR[rcx]
-	jnz	$L$ctr32_loop3
+	movups	xmm1,XMMWORD[rcx]
+	jnz	NEAR $L$ctr32_loop3
 DB	102,15,56,221,209
 DB	102,15,56,221,217
 DB	102,15,56,221,225
 
-	movups	xmm10,XMMWORD PTR[rdi]
+	movups	xmm10,XMMWORD[rdi]
 	xorps	xmm2,xmm10
-	movups	XMMWORD PTR[rsi],xmm2
+	movups	XMMWORD[rsi],xmm2
 	cmp	rdx,2
-	jb	$L$ctr32_done
+	jb	NEAR $L$ctr32_done
 
-	movups	xmm11,XMMWORD PTR[16+rdi]
+	movups	xmm11,XMMWORD[16+rdi]
 	xorps	xmm3,xmm11
-	movups	XMMWORD PTR[16+rsi],xmm3
-	je	$L$ctr32_done
+	movups	XMMWORD[16+rsi],xmm3
+	je	NEAR $L$ctr32_done
 
-	movups	xmm12,XMMWORD PTR[32+rdi]
+	movups	xmm12,XMMWORD[32+rdi]
 	xorps	xmm4,xmm12
-	movups	XMMWORD PTR[32+rsi],xmm4
-	jmp	$L$ctr32_done
+	movups	XMMWORD[32+rsi],xmm4
+	jmp	NEAR $L$ctr32_done
 
 ALIGN	16
-$L$ctr32_one_shortcut::
-	movups	xmm2,XMMWORD PTR[r8]
-	movups	xmm10,XMMWORD PTR[rdi]
-	mov	eax,DWORD PTR[240+rcx]
-	movups	xmm0,XMMWORD PTR[rcx]
-	movups	xmm1,XMMWORD PTR[16+rcx]
-	lea	rcx,QWORD PTR[32+rcx]
+$L$ctr32_one_shortcut:
+	movups	xmm2,XMMWORD[r8]
+	movups	xmm10,XMMWORD[rdi]
+	mov	eax,DWORD[240+rcx]
+	movups	xmm0,XMMWORD[rcx]
+	movups	xmm1,XMMWORD[16+rcx]
+	lea	rcx,[32+rcx]
 	xorps	xmm2,xmm0
-$L$oop_enc1_7::
+$L$oop_enc1_7:
 DB	102,15,56,220,209
 	dec	eax
-	movups	xmm1,XMMWORD PTR[rcx]
-	lea	rcx,QWORD PTR[16+rcx]
-	jnz	$L$oop_enc1_7
+	movups	xmm1,XMMWORD[rcx]
+	lea	rcx,[16+rcx]
+	jnz	NEAR $L$oop_enc1_7
 DB	102,15,56,221,209
 	xorps	xmm2,xmm10
-	movups	XMMWORD PTR[rsi],xmm2
-	jmp	$L$ctr32_done
+	movups	XMMWORD[rsi],xmm2
+	jmp	NEAR $L$ctr32_done
 
 ALIGN	16
-$L$ctr32_done::
-	movaps	xmm6,XMMWORD PTR[((-160))+rbp]
-	movaps	xmm7,XMMWORD PTR[((-144))+rbp]
-	movaps	xmm8,XMMWORD PTR[((-128))+rbp]
-	movaps	xmm9,XMMWORD PTR[((-112))+rbp]
-	movaps	xmm10,XMMWORD PTR[((-96))+rbp]
-	movaps	xmm11,XMMWORD PTR[((-80))+rbp]
-	movaps	xmm12,XMMWORD PTR[((-64))+rbp]
-	movaps	xmm13,XMMWORD PTR[((-48))+rbp]
-	movaps	xmm14,XMMWORD PTR[((-32))+rbp]
-	movaps	xmm15,XMMWORD PTR[((-16))+rbp]
-	lea	rsp,QWORD PTR[rbp]
+$L$ctr32_done:
+	movaps	xmm6,XMMWORD[((-160))+rbp]
+	movaps	xmm7,XMMWORD[((-144))+rbp]
+	movaps	xmm8,XMMWORD[((-128))+rbp]
+	movaps	xmm9,XMMWORD[((-112))+rbp]
+	movaps	xmm10,XMMWORD[((-96))+rbp]
+	movaps	xmm11,XMMWORD[((-80))+rbp]
+	movaps	xmm12,XMMWORD[((-64))+rbp]
+	movaps	xmm13,XMMWORD[((-48))+rbp]
+	movaps	xmm14,XMMWORD[((-32))+rbp]
+	movaps	xmm15,XMMWORD[((-16))+rbp]
+	lea	rsp,[rbp]
 	pop	rbp
-$L$ctr32_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+$L$ctr32_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_aesni_ctr32_encrypt_blocks::
-aesni_ctr32_encrypt_blocks	ENDP
-PUBLIC	aesni_xts_encrypt
+$L$SEH_end_aesni_ctr32_encrypt_blocks:
+global	aesni_xts_encrypt
 
 ALIGN	16
-aesni_xts_encrypt	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+aesni_xts_encrypt:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_aesni_xts_encrypt::
+$L$SEH_begin_aesni_xts_encrypt:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 	mov	rcx,r9
-	mov	r8,QWORD PTR[40+rsp]
-	mov	r9,QWORD PTR[48+rsp]
+	mov	r8,QWORD[40+rsp]
+	mov	r9,QWORD[48+rsp]
 
 
-	lea	rax,QWORD PTR[rsp]
+	lea	rax,[rsp]
 	push	rbp
 	sub	rsp,272
 	and	rsp,-16
-	movaps	XMMWORD PTR[(-168)+rax],xmm6
-	movaps	XMMWORD PTR[(-152)+rax],xmm7
-	movaps	XMMWORD PTR[(-136)+rax],xmm8
-	movaps	XMMWORD PTR[(-120)+rax],xmm9
-	movaps	XMMWORD PTR[(-104)+rax],xmm10
-	movaps	XMMWORD PTR[(-88)+rax],xmm11
-	movaps	XMMWORD PTR[(-72)+rax],xmm12
-	movaps	XMMWORD PTR[(-56)+rax],xmm13
-	movaps	XMMWORD PTR[(-40)+rax],xmm14
-	movaps	XMMWORD PTR[(-24)+rax],xmm15
-$L$xts_enc_body::
-	lea	rbp,QWORD PTR[((-8))+rax]
-	movups	xmm2,XMMWORD PTR[r9]
-	mov	eax,DWORD PTR[240+r8]
-	mov	r10d,DWORD PTR[240+rcx]
-	movups	xmm0,XMMWORD PTR[r8]
-	movups	xmm1,XMMWORD PTR[16+r8]
-	lea	r8,QWORD PTR[32+r8]
+	movaps	XMMWORD[(-168)+rax],xmm6
+	movaps	XMMWORD[(-152)+rax],xmm7
+	movaps	XMMWORD[(-136)+rax],xmm8
+	movaps	XMMWORD[(-120)+rax],xmm9
+	movaps	XMMWORD[(-104)+rax],xmm10
+	movaps	XMMWORD[(-88)+rax],xmm11
+	movaps	XMMWORD[(-72)+rax],xmm12
+	movaps	XMMWORD[(-56)+rax],xmm13
+	movaps	XMMWORD[(-40)+rax],xmm14
+	movaps	XMMWORD[(-24)+rax],xmm15
+$L$xts_enc_body:
+	lea	rbp,[((-8))+rax]
+	movups	xmm2,XMMWORD[r9]
+	mov	eax,DWORD[240+r8]
+	mov	r10d,DWORD[240+rcx]
+	movups	xmm0,XMMWORD[r8]
+	movups	xmm1,XMMWORD[16+r8]
+	lea	r8,[32+r8]
 	xorps	xmm2,xmm0
-$L$oop_enc1_8::
+$L$oop_enc1_8:
 DB	102,15,56,220,209
 	dec	eax
-	movups	xmm1,XMMWORD PTR[r8]
-	lea	r8,QWORD PTR[16+r8]
-	jnz	$L$oop_enc1_8
+	movups	xmm1,XMMWORD[r8]
+	lea	r8,[16+r8]
+	jnz	NEAR $L$oop_enc1_8
 DB	102,15,56,221,209
-	movups	xmm0,XMMWORD PTR[rcx]
+	movups	xmm0,XMMWORD[rcx]
 	mov	r11,rcx
 	mov	eax,r10d
 	shl	r10d,4
 	mov	r9,rdx
 	and	rdx,-16
 
-	movups	xmm1,XMMWORD PTR[16+r10*1+rcx]
+	movups	xmm1,XMMWORD[16+r10*1+rcx]
 
-	movdqa	xmm8,XMMWORD PTR[$L$xts_magic]
+	movdqa	xmm8,XMMWORD[$L$xts_magic]
 	movdqa	xmm15,xmm2
-	pshufd	xmm9,xmm2,05fh
+	pshufd	xmm9,xmm2,0x5f
 	pxor	xmm1,xmm0
 	movdqa	xmm14,xmm9
 	paddd	xmm9,xmm9
@@ -1686,76 +1686,76 @@
 	pand	xmm9,xmm8
 	pxor	xmm14,xmm0
 	pxor	xmm15,xmm9
-	movaps	XMMWORD PTR[96+rsp],xmm1
+	movaps	XMMWORD[96+rsp],xmm1
 
 	sub	rdx,16*6
-	jc	$L$xts_enc_short
+	jc	NEAR $L$xts_enc_short
 
 	mov	eax,16+96
-	lea	rcx,QWORD PTR[32+r10*1+r11]
+	lea	rcx,[32+r10*1+r11]
 	sub	rax,r10
-	movups	xmm1,XMMWORD PTR[16+r11]
+	movups	xmm1,XMMWORD[16+r11]
 	mov	r10,rax
-	lea	r8,QWORD PTR[$L$xts_magic]
-	jmp	$L$xts_enc_grandloop
+	lea	r8,[$L$xts_magic]
+	jmp	NEAR $L$xts_enc_grandloop
 
 ALIGN	32
-$L$xts_enc_grandloop::
-	movdqu	xmm2,XMMWORD PTR[rdi]
+$L$xts_enc_grandloop:
+	movdqu	xmm2,XMMWORD[rdi]
 	movdqa	xmm8,xmm0
-	movdqu	xmm3,XMMWORD PTR[16+rdi]
+	movdqu	xmm3,XMMWORD[16+rdi]
 	pxor	xmm2,xmm10
-	movdqu	xmm4,XMMWORD PTR[32+rdi]
+	movdqu	xmm4,XMMWORD[32+rdi]
 	pxor	xmm3,xmm11
 DB	102,15,56,220,209
-	movdqu	xmm5,XMMWORD PTR[48+rdi]
+	movdqu	xmm5,XMMWORD[48+rdi]
 	pxor	xmm4,xmm12
 DB	102,15,56,220,217
-	movdqu	xmm6,XMMWORD PTR[64+rdi]
+	movdqu	xmm6,XMMWORD[64+rdi]
 	pxor	xmm5,xmm13
 DB	102,15,56,220,225
-	movdqu	xmm7,XMMWORD PTR[80+rdi]
+	movdqu	xmm7,XMMWORD[80+rdi]
 	pxor	xmm8,xmm15
-	movdqa	xmm9,XMMWORD PTR[96+rsp]
+	movdqa	xmm9,XMMWORD[96+rsp]
 	pxor	xmm6,xmm14
 DB	102,15,56,220,233
-	movups	xmm0,XMMWORD PTR[32+r11]
-	lea	rdi,QWORD PTR[96+rdi]
+	movups	xmm0,XMMWORD[32+r11]
+	lea	rdi,[96+rdi]
 	pxor	xmm7,xmm8
 
 	pxor	xmm10,xmm9
 DB	102,15,56,220,241
 	pxor	xmm11,xmm9
-	movdqa	XMMWORD PTR[rsp],xmm10
+	movdqa	XMMWORD[rsp],xmm10
 DB	102,15,56,220,249
-	movups	xmm1,XMMWORD PTR[48+r11]
+	movups	xmm1,XMMWORD[48+r11]
 	pxor	xmm12,xmm9
 
 DB	102,15,56,220,208
 	pxor	xmm13,xmm9
-	movdqa	XMMWORD PTR[16+rsp],xmm11
+	movdqa	XMMWORD[16+rsp],xmm11
 DB	102,15,56,220,216
 	pxor	xmm14,xmm9
-	movdqa	XMMWORD PTR[32+rsp],xmm12
+	movdqa	XMMWORD[32+rsp],xmm12
 DB	102,15,56,220,224
 DB	102,15,56,220,232
 	pxor	xmm8,xmm9
-	movdqa	XMMWORD PTR[64+rsp],xmm14
+	movdqa	XMMWORD[64+rsp],xmm14
 DB	102,15,56,220,240
 DB	102,15,56,220,248
-	movups	xmm0,XMMWORD PTR[64+r11]
-	movdqa	XMMWORD PTR[80+rsp],xmm8
-	pshufd	xmm9,xmm15,05fh
-	jmp	$L$xts_enc_loop6
+	movups	xmm0,XMMWORD[64+r11]
+	movdqa	XMMWORD[80+rsp],xmm8
+	pshufd	xmm9,xmm15,0x5f
+	jmp	NEAR $L$xts_enc_loop6
 ALIGN	32
-$L$xts_enc_loop6::
+$L$xts_enc_loop6:
 DB	102,15,56,220,209
 DB	102,15,56,220,217
 DB	102,15,56,220,225
 DB	102,15,56,220,233
 DB	102,15,56,220,241
 DB	102,15,56,220,249
-	movups	xmm1,XMMWORD PTR[((-64))+rax*1+rcx]
+	movups	xmm1,XMMWORD[((-64))+rax*1+rcx]
 	add	rax,32
 
 DB	102,15,56,220,208
@@ -1764,10 +1764,10 @@
 DB	102,15,56,220,232
 DB	102,15,56,220,240
 DB	102,15,56,220,248
-	movups	xmm0,XMMWORD PTR[((-80))+rax*1+rcx]
-	jnz	$L$xts_enc_loop6
+	movups	xmm0,XMMWORD[((-80))+rax*1+rcx]
+	jnz	NEAR $L$xts_enc_loop6
 
-	movdqa	xmm8,XMMWORD PTR[r8]
+	movdqa	xmm8,XMMWORD[r8]
 	movdqa	xmm14,xmm9
 	paddd	xmm9,xmm9
 DB	102,15,56,220,209
@@ -1775,14 +1775,14 @@
 	psrad	xmm14,31
 DB	102,15,56,220,217
 	pand	xmm14,xmm8
-	movups	xmm10,XMMWORD PTR[r11]
+	movups	xmm10,XMMWORD[r11]
 DB	102,15,56,220,225
 DB	102,15,56,220,233
 DB	102,15,56,220,241
 	pxor	xmm15,xmm14
 	movaps	xmm11,xmm10
 DB	102,15,56,220,249
-	movups	xmm1,XMMWORD PTR[((-64))+rcx]
+	movups	xmm1,XMMWORD[((-64))+rcx]
 
 	movdqa	xmm14,xmm9
 DB	102,15,56,220,208
@@ -1799,7 +1799,7 @@
 	pxor	xmm15,xmm14
 	movdqa	xmm14,xmm9
 DB	102,15,56,220,248
-	movups	xmm0,XMMWORD PTR[((-48))+rcx]
+	movups	xmm0,XMMWORD[((-48))+rcx]
 
 	paddd	xmm9,xmm9
 DB	102,15,56,220,209
@@ -1810,13 +1810,13 @@
 	pand	xmm14,xmm8
 DB	102,15,56,220,225
 DB	102,15,56,220,233
-	movdqa	XMMWORD PTR[48+rsp],xmm13
+	movdqa	XMMWORD[48+rsp],xmm13
 	pxor	xmm15,xmm14
 DB	102,15,56,220,241
 	movaps	xmm13,xmm12
 	movdqa	xmm14,xmm9
 DB	102,15,56,220,249
-	movups	xmm1,XMMWORD PTR[((-32))+rcx]
+	movups	xmm1,XMMWORD[((-32))+rcx]
 
 	paddd	xmm9,xmm9
 DB	102,15,56,220,208
@@ -1843,10 +1843,10 @@
 DB	102,15,56,220,225
 DB	102,15,56,220,233
 	pxor	xmm15,xmm0
-	movups	xmm0,XMMWORD PTR[r11]
+	movups	xmm0,XMMWORD[r11]
 DB	102,15,56,220,241
 DB	102,15,56,220,249
-	movups	xmm1,XMMWORD PTR[16+r11]
+	movups	xmm1,XMMWORD[16+r11]
 
 	pxor	xmm14,xmm15
 DB	102,15,56,221,84,36,0
@@ -1861,47 +1861,47 @@
 DB	102,15,56,221,124,36,80
 	pxor	xmm15,xmm9
 
-	lea	rsi,QWORD PTR[96+rsi]
-	movups	XMMWORD PTR[(-96)+rsi],xmm2
-	movups	XMMWORD PTR[(-80)+rsi],xmm3
-	movups	XMMWORD PTR[(-64)+rsi],xmm4
-	movups	XMMWORD PTR[(-48)+rsi],xmm5
-	movups	XMMWORD PTR[(-32)+rsi],xmm6
-	movups	XMMWORD PTR[(-16)+rsi],xmm7
+	lea	rsi,[96+rsi]
+	movups	XMMWORD[(-96)+rsi],xmm2
+	movups	XMMWORD[(-80)+rsi],xmm3
+	movups	XMMWORD[(-64)+rsi],xmm4
+	movups	XMMWORD[(-48)+rsi],xmm5
+	movups	XMMWORD[(-32)+rsi],xmm6
+	movups	XMMWORD[(-16)+rsi],xmm7
 	sub	rdx,16*6
-	jnc	$L$xts_enc_grandloop
+	jnc	NEAR $L$xts_enc_grandloop
 
 	mov	eax,16+96
 	sub	eax,r10d
 	mov	rcx,r11
 	shr	eax,4
 
-$L$xts_enc_short::
+$L$xts_enc_short:
 	mov	r10d,eax
 	pxor	xmm10,xmm0
 	add	rdx,16*6
-	jz	$L$xts_enc_done
+	jz	NEAR $L$xts_enc_done
 
 	pxor	xmm11,xmm0
-	cmp	rdx,020h
-	jb	$L$xts_enc_one
+	cmp	rdx,0x20
+	jb	NEAR $L$xts_enc_one
 	pxor	xmm12,xmm0
-	je	$L$xts_enc_two
+	je	NEAR $L$xts_enc_two
 
 	pxor	xmm13,xmm0
-	cmp	rdx,040h
-	jb	$L$xts_enc_three
+	cmp	rdx,0x40
+	jb	NEAR $L$xts_enc_three
 	pxor	xmm14,xmm0
-	je	$L$xts_enc_four
+	je	NEAR $L$xts_enc_four
 
-	movdqu	xmm2,XMMWORD PTR[rdi]
-	movdqu	xmm3,XMMWORD PTR[16+rdi]
-	movdqu	xmm4,XMMWORD PTR[32+rdi]
+	movdqu	xmm2,XMMWORD[rdi]
+	movdqu	xmm3,XMMWORD[16+rdi]
+	movdqu	xmm4,XMMWORD[32+rdi]
 	pxor	xmm2,xmm10
-	movdqu	xmm5,XMMWORD PTR[48+rdi]
+	movdqu	xmm5,XMMWORD[48+rdi]
 	pxor	xmm3,xmm11
-	movdqu	xmm6,XMMWORD PTR[64+rdi]
-	lea	rdi,QWORD PTR[80+rdi]
+	movdqu	xmm6,XMMWORD[64+rdi]
+	lea	rdi,[80+rdi]
 	pxor	xmm4,xmm12
 	pxor	xmm5,xmm13
 	pxor	xmm6,xmm14
@@ -1912,43 +1912,43 @@
 	movdqa	xmm10,xmm15
 	xorps	xmm3,xmm11
 	xorps	xmm4,xmm12
-	movdqu	XMMWORD PTR[rsi],xmm2
+	movdqu	XMMWORD[rsi],xmm2
 	xorps	xmm5,xmm13
-	movdqu	XMMWORD PTR[16+rsi],xmm3
+	movdqu	XMMWORD[16+rsi],xmm3
 	xorps	xmm6,xmm14
-	movdqu	XMMWORD PTR[32+rsi],xmm4
-	movdqu	XMMWORD PTR[48+rsi],xmm5
-	movdqu	XMMWORD PTR[64+rsi],xmm6
-	lea	rsi,QWORD PTR[80+rsi]
-	jmp	$L$xts_enc_done
+	movdqu	XMMWORD[32+rsi],xmm4
+	movdqu	XMMWORD[48+rsi],xmm5
+	movdqu	XMMWORD[64+rsi],xmm6
+	lea	rsi,[80+rsi]
+	jmp	NEAR $L$xts_enc_done
 
 ALIGN	16
-$L$xts_enc_one::
-	movups	xmm2,XMMWORD PTR[rdi]
-	lea	rdi,QWORD PTR[16+rdi]
+$L$xts_enc_one:
+	movups	xmm2,XMMWORD[rdi]
+	lea	rdi,[16+rdi]
 	xorps	xmm2,xmm10
-	movups	xmm0,XMMWORD PTR[rcx]
-	movups	xmm1,XMMWORD PTR[16+rcx]
-	lea	rcx,QWORD PTR[32+rcx]
+	movups	xmm0,XMMWORD[rcx]
+	movups	xmm1,XMMWORD[16+rcx]
+	lea	rcx,[32+rcx]
 	xorps	xmm2,xmm0
-$L$oop_enc1_9::
+$L$oop_enc1_9:
 DB	102,15,56,220,209
 	dec	eax
-	movups	xmm1,XMMWORD PTR[rcx]
-	lea	rcx,QWORD PTR[16+rcx]
-	jnz	$L$oop_enc1_9
+	movups	xmm1,XMMWORD[rcx]
+	lea	rcx,[16+rcx]
+	jnz	NEAR $L$oop_enc1_9
 DB	102,15,56,221,209
 	xorps	xmm2,xmm10
 	movdqa	xmm10,xmm11
-	movups	XMMWORD PTR[rsi],xmm2
-	lea	rsi,QWORD PTR[16+rsi]
-	jmp	$L$xts_enc_done
+	movups	XMMWORD[rsi],xmm2
+	lea	rsi,[16+rsi]
+	jmp	NEAR $L$xts_enc_done
 
 ALIGN	16
-$L$xts_enc_two::
-	movups	xmm2,XMMWORD PTR[rdi]
-	movups	xmm3,XMMWORD PTR[16+rdi]
-	lea	rdi,QWORD PTR[32+rdi]
+$L$xts_enc_two:
+	movups	xmm2,XMMWORD[rdi]
+	movups	xmm3,XMMWORD[16+rdi]
+	lea	rdi,[32+rdi]
 	xorps	xmm2,xmm10
 	xorps	xmm3,xmm11
 
@@ -1957,17 +1957,17 @@
 	xorps	xmm2,xmm10
 	movdqa	xmm10,xmm12
 	xorps	xmm3,xmm11
-	movups	XMMWORD PTR[rsi],xmm2
-	movups	XMMWORD PTR[16+rsi],xmm3
-	lea	rsi,QWORD PTR[32+rsi]
-	jmp	$L$xts_enc_done
+	movups	XMMWORD[rsi],xmm2
+	movups	XMMWORD[16+rsi],xmm3
+	lea	rsi,[32+rsi]
+	jmp	NEAR $L$xts_enc_done
 
 ALIGN	16
-$L$xts_enc_three::
-	movups	xmm2,XMMWORD PTR[rdi]
-	movups	xmm3,XMMWORD PTR[16+rdi]
-	movups	xmm4,XMMWORD PTR[32+rdi]
-	lea	rdi,QWORD PTR[48+rdi]
+$L$xts_enc_three:
+	movups	xmm2,XMMWORD[rdi]
+	movups	xmm3,XMMWORD[16+rdi]
+	movups	xmm4,XMMWORD[32+rdi]
+	lea	rdi,[48+rdi]
 	xorps	xmm2,xmm10
 	xorps	xmm3,xmm11
 	xorps	xmm4,xmm12
@@ -1978,20 +1978,20 @@
 	movdqa	xmm10,xmm13
 	xorps	xmm3,xmm11
 	xorps	xmm4,xmm12
-	movups	XMMWORD PTR[rsi],xmm2
-	movups	XMMWORD PTR[16+rsi],xmm3
-	movups	XMMWORD PTR[32+rsi],xmm4
-	lea	rsi,QWORD PTR[48+rsi]
-	jmp	$L$xts_enc_done
+	movups	XMMWORD[rsi],xmm2
+	movups	XMMWORD[16+rsi],xmm3
+	movups	XMMWORD[32+rsi],xmm4
+	lea	rsi,[48+rsi]
+	jmp	NEAR $L$xts_enc_done
 
 ALIGN	16
-$L$xts_enc_four::
-	movups	xmm2,XMMWORD PTR[rdi]
-	movups	xmm3,XMMWORD PTR[16+rdi]
-	movups	xmm4,XMMWORD PTR[32+rdi]
+$L$xts_enc_four:
+	movups	xmm2,XMMWORD[rdi]
+	movups	xmm3,XMMWORD[16+rdi]
+	movups	xmm4,XMMWORD[32+rdi]
 	xorps	xmm2,xmm10
-	movups	xmm5,XMMWORD PTR[48+rdi]
-	lea	rdi,QWORD PTR[64+rdi]
+	movups	xmm5,XMMWORD[48+rdi]
+	lea	rdi,[64+rdi]
 	xorps	xmm3,xmm11
 	xorps	xmm4,xmm12
 	xorps	xmm5,xmm13
@@ -2002,114 +2002,113 @@
 	movdqa	xmm10,xmm14
 	pxor	xmm3,xmm11
 	pxor	xmm4,xmm12
-	movdqu	XMMWORD PTR[rsi],xmm2
+	movdqu	XMMWORD[rsi],xmm2
 	pxor	xmm5,xmm13
-	movdqu	XMMWORD PTR[16+rsi],xmm3
-	movdqu	XMMWORD PTR[32+rsi],xmm4
-	movdqu	XMMWORD PTR[48+rsi],xmm5
-	lea	rsi,QWORD PTR[64+rsi]
-	jmp	$L$xts_enc_done
+	movdqu	XMMWORD[16+rsi],xmm3
+	movdqu	XMMWORD[32+rsi],xmm4
+	movdqu	XMMWORD[48+rsi],xmm5
+	lea	rsi,[64+rsi]
+	jmp	NEAR $L$xts_enc_done
 
 ALIGN	16
-$L$xts_enc_done::
+$L$xts_enc_done:
 	and	r9,15
-	jz	$L$xts_enc_ret
+	jz	NEAR $L$xts_enc_ret
 	mov	rdx,r9
 
-$L$xts_enc_steal::
-	movzx	eax,BYTE PTR[rdi]
-	movzx	ecx,BYTE PTR[((-16))+rsi]
-	lea	rdi,QWORD PTR[1+rdi]
-	mov	BYTE PTR[((-16))+rsi],al
-	mov	BYTE PTR[rsi],cl
-	lea	rsi,QWORD PTR[1+rsi]
+$L$xts_enc_steal:
+	movzx	eax,BYTE[rdi]
+	movzx	ecx,BYTE[((-16))+rsi]
+	lea	rdi,[1+rdi]
+	mov	BYTE[((-16))+rsi],al
+	mov	BYTE[rsi],cl
+	lea	rsi,[1+rsi]
 	sub	rdx,1
-	jnz	$L$xts_enc_steal
+	jnz	NEAR $L$xts_enc_steal
 
 	sub	rsi,r9
 	mov	rcx,r11
 	mov	eax,r10d
 
-	movups	xmm2,XMMWORD PTR[((-16))+rsi]
+	movups	xmm2,XMMWORD[((-16))+rsi]
 	xorps	xmm2,xmm10
-	movups	xmm0,XMMWORD PTR[rcx]
-	movups	xmm1,XMMWORD PTR[16+rcx]
-	lea	rcx,QWORD PTR[32+rcx]
+	movups	xmm0,XMMWORD[rcx]
+	movups	xmm1,XMMWORD[16+rcx]
+	lea	rcx,[32+rcx]
 	xorps	xmm2,xmm0
-$L$oop_enc1_10::
+$L$oop_enc1_10:
 DB	102,15,56,220,209
 	dec	eax
-	movups	xmm1,XMMWORD PTR[rcx]
-	lea	rcx,QWORD PTR[16+rcx]
-	jnz	$L$oop_enc1_10
+	movups	xmm1,XMMWORD[rcx]
+	lea	rcx,[16+rcx]
+	jnz	NEAR $L$oop_enc1_10
 DB	102,15,56,221,209
 	xorps	xmm2,xmm10
-	movups	XMMWORD PTR[(-16)+rsi],xmm2
+	movups	XMMWORD[(-16)+rsi],xmm2
 
-$L$xts_enc_ret::
-	movaps	xmm6,XMMWORD PTR[((-160))+rbp]
-	movaps	xmm7,XMMWORD PTR[((-144))+rbp]
-	movaps	xmm8,XMMWORD PTR[((-128))+rbp]
-	movaps	xmm9,XMMWORD PTR[((-112))+rbp]
-	movaps	xmm10,XMMWORD PTR[((-96))+rbp]
-	movaps	xmm11,XMMWORD PTR[((-80))+rbp]
-	movaps	xmm12,XMMWORD PTR[((-64))+rbp]
-	movaps	xmm13,XMMWORD PTR[((-48))+rbp]
-	movaps	xmm14,XMMWORD PTR[((-32))+rbp]
-	movaps	xmm15,XMMWORD PTR[((-16))+rbp]
-	lea	rsp,QWORD PTR[rbp]
+$L$xts_enc_ret:
+	movaps	xmm6,XMMWORD[((-160))+rbp]
+	movaps	xmm7,XMMWORD[((-144))+rbp]
+	movaps	xmm8,XMMWORD[((-128))+rbp]
+	movaps	xmm9,XMMWORD[((-112))+rbp]
+	movaps	xmm10,XMMWORD[((-96))+rbp]
+	movaps	xmm11,XMMWORD[((-80))+rbp]
+	movaps	xmm12,XMMWORD[((-64))+rbp]
+	movaps	xmm13,XMMWORD[((-48))+rbp]
+	movaps	xmm14,XMMWORD[((-32))+rbp]
+	movaps	xmm15,XMMWORD[((-16))+rbp]
+	lea	rsp,[rbp]
 	pop	rbp
-$L$xts_enc_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+$L$xts_enc_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_aesni_xts_encrypt::
-aesni_xts_encrypt	ENDP
-PUBLIC	aesni_xts_decrypt
+$L$SEH_end_aesni_xts_encrypt:
+global	aesni_xts_decrypt
 
 ALIGN	16
-aesni_xts_decrypt	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+aesni_xts_decrypt:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_aesni_xts_decrypt::
+$L$SEH_begin_aesni_xts_decrypt:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 	mov	rcx,r9
-	mov	r8,QWORD PTR[40+rsp]
-	mov	r9,QWORD PTR[48+rsp]
+	mov	r8,QWORD[40+rsp]
+	mov	r9,QWORD[48+rsp]
 
 
-	lea	rax,QWORD PTR[rsp]
+	lea	rax,[rsp]
 	push	rbp
 	sub	rsp,272
 	and	rsp,-16
-	movaps	XMMWORD PTR[(-168)+rax],xmm6
-	movaps	XMMWORD PTR[(-152)+rax],xmm7
-	movaps	XMMWORD PTR[(-136)+rax],xmm8
-	movaps	XMMWORD PTR[(-120)+rax],xmm9
-	movaps	XMMWORD PTR[(-104)+rax],xmm10
-	movaps	XMMWORD PTR[(-88)+rax],xmm11
-	movaps	XMMWORD PTR[(-72)+rax],xmm12
-	movaps	XMMWORD PTR[(-56)+rax],xmm13
-	movaps	XMMWORD PTR[(-40)+rax],xmm14
-	movaps	XMMWORD PTR[(-24)+rax],xmm15
-$L$xts_dec_body::
-	lea	rbp,QWORD PTR[((-8))+rax]
-	movups	xmm2,XMMWORD PTR[r9]
-	mov	eax,DWORD PTR[240+r8]
-	mov	r10d,DWORD PTR[240+rcx]
-	movups	xmm0,XMMWORD PTR[r8]
-	movups	xmm1,XMMWORD PTR[16+r8]
-	lea	r8,QWORD PTR[32+r8]
+	movaps	XMMWORD[(-168)+rax],xmm6
+	movaps	XMMWORD[(-152)+rax],xmm7
+	movaps	XMMWORD[(-136)+rax],xmm8
+	movaps	XMMWORD[(-120)+rax],xmm9
+	movaps	XMMWORD[(-104)+rax],xmm10
+	movaps	XMMWORD[(-88)+rax],xmm11
+	movaps	XMMWORD[(-72)+rax],xmm12
+	movaps	XMMWORD[(-56)+rax],xmm13
+	movaps	XMMWORD[(-40)+rax],xmm14
+	movaps	XMMWORD[(-24)+rax],xmm15
+$L$xts_dec_body:
+	lea	rbp,[((-8))+rax]
+	movups	xmm2,XMMWORD[r9]
+	mov	eax,DWORD[240+r8]
+	mov	r10d,DWORD[240+rcx]
+	movups	xmm0,XMMWORD[r8]
+	movups	xmm1,XMMWORD[16+r8]
+	lea	r8,[32+r8]
 	xorps	xmm2,xmm0
-$L$oop_enc1_11::
+$L$oop_enc1_11:
 DB	102,15,56,220,209
 	dec	eax
-	movups	xmm1,XMMWORD PTR[r8]
-	lea	r8,QWORD PTR[16+r8]
-	jnz	$L$oop_enc1_11
+	movups	xmm1,XMMWORD[r8]
+	lea	r8,[16+r8]
+	jnz	NEAR $L$oop_enc1_11
 DB	102,15,56,221,209
 	xor	eax,eax
 	test	rdx,15
@@ -2117,18 +2116,18 @@
 	shl	rax,4
 	sub	rdx,rax
 
-	movups	xmm0,XMMWORD PTR[rcx]
+	movups	xmm0,XMMWORD[rcx]
 	mov	r11,rcx
 	mov	eax,r10d
 	shl	r10d,4
 	mov	r9,rdx
 	and	rdx,-16
 
-	movups	xmm1,XMMWORD PTR[16+r10*1+rcx]
+	movups	xmm1,XMMWORD[16+r10*1+rcx]
 
-	movdqa	xmm8,XMMWORD PTR[$L$xts_magic]
+	movdqa	xmm8,XMMWORD[$L$xts_magic]
 	movdqa	xmm15,xmm2
-	pshufd	xmm9,xmm2,05fh
+	pshufd	xmm9,xmm2,0x5f
 	pxor	xmm1,xmm0
 	movdqa	xmm14,xmm9
 	paddd	xmm9,xmm9
@@ -2168,76 +2167,76 @@
 	pand	xmm9,xmm8
 	pxor	xmm14,xmm0
 	pxor	xmm15,xmm9
-	movaps	XMMWORD PTR[96+rsp],xmm1
+	movaps	XMMWORD[96+rsp],xmm1
 
 	sub	rdx,16*6
-	jc	$L$xts_dec_short
+	jc	NEAR $L$xts_dec_short
 
 	mov	eax,16+96
-	lea	rcx,QWORD PTR[32+r10*1+r11]
+	lea	rcx,[32+r10*1+r11]
 	sub	rax,r10
-	movups	xmm1,XMMWORD PTR[16+r11]
+	movups	xmm1,XMMWORD[16+r11]
 	mov	r10,rax
-	lea	r8,QWORD PTR[$L$xts_magic]
-	jmp	$L$xts_dec_grandloop
+	lea	r8,[$L$xts_magic]
+	jmp	NEAR $L$xts_dec_grandloop
 
 ALIGN	32
-$L$xts_dec_grandloop::
-	movdqu	xmm2,XMMWORD PTR[rdi]
+$L$xts_dec_grandloop:
+	movdqu	xmm2,XMMWORD[rdi]
 	movdqa	xmm8,xmm0
-	movdqu	xmm3,XMMWORD PTR[16+rdi]
+	movdqu	xmm3,XMMWORD[16+rdi]
 	pxor	xmm2,xmm10
-	movdqu	xmm4,XMMWORD PTR[32+rdi]
+	movdqu	xmm4,XMMWORD[32+rdi]
 	pxor	xmm3,xmm11
 DB	102,15,56,222,209
-	movdqu	xmm5,XMMWORD PTR[48+rdi]
+	movdqu	xmm5,XMMWORD[48+rdi]
 	pxor	xmm4,xmm12
 DB	102,15,56,222,217
-	movdqu	xmm6,XMMWORD PTR[64+rdi]
+	movdqu	xmm6,XMMWORD[64+rdi]
 	pxor	xmm5,xmm13
 DB	102,15,56,222,225
-	movdqu	xmm7,XMMWORD PTR[80+rdi]
+	movdqu	xmm7,XMMWORD[80+rdi]
 	pxor	xmm8,xmm15
-	movdqa	xmm9,XMMWORD PTR[96+rsp]
+	movdqa	xmm9,XMMWORD[96+rsp]
 	pxor	xmm6,xmm14
 DB	102,15,56,222,233
-	movups	xmm0,XMMWORD PTR[32+r11]
-	lea	rdi,QWORD PTR[96+rdi]
+	movups	xmm0,XMMWORD[32+r11]
+	lea	rdi,[96+rdi]
 	pxor	xmm7,xmm8
 
 	pxor	xmm10,xmm9
 DB	102,15,56,222,241
 	pxor	xmm11,xmm9
-	movdqa	XMMWORD PTR[rsp],xmm10
+	movdqa	XMMWORD[rsp],xmm10
 DB	102,15,56,222,249
-	movups	xmm1,XMMWORD PTR[48+r11]
+	movups	xmm1,XMMWORD[48+r11]
 	pxor	xmm12,xmm9
 
 DB	102,15,56,222,208
 	pxor	xmm13,xmm9
-	movdqa	XMMWORD PTR[16+rsp],xmm11
+	movdqa	XMMWORD[16+rsp],xmm11
 DB	102,15,56,222,216
 	pxor	xmm14,xmm9
-	movdqa	XMMWORD PTR[32+rsp],xmm12
+	movdqa	XMMWORD[32+rsp],xmm12
 DB	102,15,56,222,224
 DB	102,15,56,222,232
 	pxor	xmm8,xmm9
-	movdqa	XMMWORD PTR[64+rsp],xmm14
+	movdqa	XMMWORD[64+rsp],xmm14
 DB	102,15,56,222,240
 DB	102,15,56,222,248
-	movups	xmm0,XMMWORD PTR[64+r11]
-	movdqa	XMMWORD PTR[80+rsp],xmm8
-	pshufd	xmm9,xmm15,05fh
-	jmp	$L$xts_dec_loop6
+	movups	xmm0,XMMWORD[64+r11]
+	movdqa	XMMWORD[80+rsp],xmm8
+	pshufd	xmm9,xmm15,0x5f
+	jmp	NEAR $L$xts_dec_loop6
 ALIGN	32
-$L$xts_dec_loop6::
+$L$xts_dec_loop6:
 DB	102,15,56,222,209
 DB	102,15,56,222,217
 DB	102,15,56,222,225
 DB	102,15,56,222,233
 DB	102,15,56,222,241
 DB	102,15,56,222,249
-	movups	xmm1,XMMWORD PTR[((-64))+rax*1+rcx]
+	movups	xmm1,XMMWORD[((-64))+rax*1+rcx]
 	add	rax,32
 
 DB	102,15,56,222,208
@@ -2246,10 +2245,10 @@
 DB	102,15,56,222,232
 DB	102,15,56,222,240
 DB	102,15,56,222,248
-	movups	xmm0,XMMWORD PTR[((-80))+rax*1+rcx]
-	jnz	$L$xts_dec_loop6
+	movups	xmm0,XMMWORD[((-80))+rax*1+rcx]
+	jnz	NEAR $L$xts_dec_loop6
 
-	movdqa	xmm8,XMMWORD PTR[r8]
+	movdqa	xmm8,XMMWORD[r8]
 	movdqa	xmm14,xmm9
 	paddd	xmm9,xmm9
 DB	102,15,56,222,209
@@ -2257,14 +2256,14 @@
 	psrad	xmm14,31
 DB	102,15,56,222,217
 	pand	xmm14,xmm8
-	movups	xmm10,XMMWORD PTR[r11]
+	movups	xmm10,XMMWORD[r11]
 DB	102,15,56,222,225
 DB	102,15,56,222,233
 DB	102,15,56,222,241
 	pxor	xmm15,xmm14
 	movaps	xmm11,xmm10
 DB	102,15,56,222,249
-	movups	xmm1,XMMWORD PTR[((-64))+rcx]
+	movups	xmm1,XMMWORD[((-64))+rcx]
 
 	movdqa	xmm14,xmm9
 DB	102,15,56,222,208
@@ -2281,7 +2280,7 @@
 	pxor	xmm15,xmm14
 	movdqa	xmm14,xmm9
 DB	102,15,56,222,248
-	movups	xmm0,XMMWORD PTR[((-48))+rcx]
+	movups	xmm0,XMMWORD[((-48))+rcx]
 
 	paddd	xmm9,xmm9
 DB	102,15,56,222,209
@@ -2292,13 +2291,13 @@
 	pand	xmm14,xmm8
 DB	102,15,56,222,225
 DB	102,15,56,222,233
-	movdqa	XMMWORD PTR[48+rsp],xmm13
+	movdqa	XMMWORD[48+rsp],xmm13
 	pxor	xmm15,xmm14
 DB	102,15,56,222,241
 	movaps	xmm13,xmm12
 	movdqa	xmm14,xmm9
 DB	102,15,56,222,249
-	movups	xmm1,XMMWORD PTR[((-32))+rcx]
+	movups	xmm1,XMMWORD[((-32))+rcx]
 
 	paddd	xmm9,xmm9
 DB	102,15,56,222,208
@@ -2325,10 +2324,10 @@
 DB	102,15,56,222,225
 DB	102,15,56,222,233
 	pxor	xmm15,xmm0
-	movups	xmm0,XMMWORD PTR[r11]
+	movups	xmm0,XMMWORD[r11]
 DB	102,15,56,222,241
 DB	102,15,56,222,249
-	movups	xmm1,XMMWORD PTR[16+r11]
+	movups	xmm1,XMMWORD[16+r11]
 
 	pxor	xmm14,xmm15
 DB	102,15,56,223,84,36,0
@@ -2343,47 +2342,47 @@
 DB	102,15,56,223,124,36,80
 	pxor	xmm15,xmm9
 
-	lea	rsi,QWORD PTR[96+rsi]
-	movups	XMMWORD PTR[(-96)+rsi],xmm2
-	movups	XMMWORD PTR[(-80)+rsi],xmm3
-	movups	XMMWORD PTR[(-64)+rsi],xmm4
-	movups	XMMWORD PTR[(-48)+rsi],xmm5
-	movups	XMMWORD PTR[(-32)+rsi],xmm6
-	movups	XMMWORD PTR[(-16)+rsi],xmm7
+	lea	rsi,[96+rsi]
+	movups	XMMWORD[(-96)+rsi],xmm2
+	movups	XMMWORD[(-80)+rsi],xmm3
+	movups	XMMWORD[(-64)+rsi],xmm4
+	movups	XMMWORD[(-48)+rsi],xmm5
+	movups	XMMWORD[(-32)+rsi],xmm6
+	movups	XMMWORD[(-16)+rsi],xmm7
 	sub	rdx,16*6
-	jnc	$L$xts_dec_grandloop
+	jnc	NEAR $L$xts_dec_grandloop
 
 	mov	eax,16+96
 	sub	eax,r10d
 	mov	rcx,r11
 	shr	eax,4
 
-$L$xts_dec_short::
+$L$xts_dec_short:
 	mov	r10d,eax
 	pxor	xmm10,xmm0
 	pxor	xmm11,xmm0
 	add	rdx,16*6
-	jz	$L$xts_dec_done
+	jz	NEAR $L$xts_dec_done
 
 	pxor	xmm12,xmm0
-	cmp	rdx,020h
-	jb	$L$xts_dec_one
+	cmp	rdx,0x20
+	jb	NEAR $L$xts_dec_one
 	pxor	xmm13,xmm0
-	je	$L$xts_dec_two
+	je	NEAR $L$xts_dec_two
 
 	pxor	xmm14,xmm0
-	cmp	rdx,040h
-	jb	$L$xts_dec_three
-	je	$L$xts_dec_four
+	cmp	rdx,0x40
+	jb	NEAR $L$xts_dec_three
+	je	NEAR $L$xts_dec_four
 
-	movdqu	xmm2,XMMWORD PTR[rdi]
-	movdqu	xmm3,XMMWORD PTR[16+rdi]
-	movdqu	xmm4,XMMWORD PTR[32+rdi]
+	movdqu	xmm2,XMMWORD[rdi]
+	movdqu	xmm3,XMMWORD[16+rdi]
+	movdqu	xmm4,XMMWORD[32+rdi]
 	pxor	xmm2,xmm10
-	movdqu	xmm5,XMMWORD PTR[48+rdi]
+	movdqu	xmm5,XMMWORD[48+rdi]
 	pxor	xmm3,xmm11
-	movdqu	xmm6,XMMWORD PTR[64+rdi]
-	lea	rdi,QWORD PTR[80+rdi]
+	movdqu	xmm6,XMMWORD[64+rdi]
+	lea	rdi,[80+rdi]
 	pxor	xmm4,xmm12
 	pxor	xmm5,xmm13
 	pxor	xmm6,xmm14
@@ -2393,54 +2392,54 @@
 	xorps	xmm2,xmm10
 	xorps	xmm3,xmm11
 	xorps	xmm4,xmm12
-	movdqu	XMMWORD PTR[rsi],xmm2
+	movdqu	XMMWORD[rsi],xmm2
 	xorps	xmm5,xmm13
-	movdqu	XMMWORD PTR[16+rsi],xmm3
+	movdqu	XMMWORD[16+rsi],xmm3
 	xorps	xmm6,xmm14
-	movdqu	XMMWORD PTR[32+rsi],xmm4
+	movdqu	XMMWORD[32+rsi],xmm4
 	pxor	xmm14,xmm14
-	movdqu	XMMWORD PTR[48+rsi],xmm5
+	movdqu	XMMWORD[48+rsi],xmm5
 	pcmpgtd	xmm14,xmm15
-	movdqu	XMMWORD PTR[64+rsi],xmm6
-	lea	rsi,QWORD PTR[80+rsi]
-	pshufd	xmm11,xmm14,013h
+	movdqu	XMMWORD[64+rsi],xmm6
+	lea	rsi,[80+rsi]
+	pshufd	xmm11,xmm14,0x13
 	and	r9,15
-	jz	$L$xts_dec_ret
+	jz	NEAR $L$xts_dec_ret
 
 	movdqa	xmm10,xmm15
 	paddq	xmm15,xmm15
 	pand	xmm11,xmm8
 	pxor	xmm11,xmm15
-	jmp	$L$xts_dec_done2
+	jmp	NEAR $L$xts_dec_done2
 
 ALIGN	16
-$L$xts_dec_one::
-	movups	xmm2,XMMWORD PTR[rdi]
-	lea	rdi,QWORD PTR[16+rdi]
+$L$xts_dec_one:
+	movups	xmm2,XMMWORD[rdi]
+	lea	rdi,[16+rdi]
 	xorps	xmm2,xmm10
-	movups	xmm0,XMMWORD PTR[rcx]
-	movups	xmm1,XMMWORD PTR[16+rcx]
-	lea	rcx,QWORD PTR[32+rcx]
+	movups	xmm0,XMMWORD[rcx]
+	movups	xmm1,XMMWORD[16+rcx]
+	lea	rcx,[32+rcx]
 	xorps	xmm2,xmm0
-$L$oop_dec1_12::
+$L$oop_dec1_12:
 DB	102,15,56,222,209
 	dec	eax
-	movups	xmm1,XMMWORD PTR[rcx]
-	lea	rcx,QWORD PTR[16+rcx]
-	jnz	$L$oop_dec1_12
+	movups	xmm1,XMMWORD[rcx]
+	lea	rcx,[16+rcx]
+	jnz	NEAR $L$oop_dec1_12
 DB	102,15,56,223,209
 	xorps	xmm2,xmm10
 	movdqa	xmm10,xmm11
-	movups	XMMWORD PTR[rsi],xmm2
+	movups	XMMWORD[rsi],xmm2
 	movdqa	xmm11,xmm12
-	lea	rsi,QWORD PTR[16+rsi]
-	jmp	$L$xts_dec_done
+	lea	rsi,[16+rsi]
+	jmp	NEAR $L$xts_dec_done
 
 ALIGN	16
-$L$xts_dec_two::
-	movups	xmm2,XMMWORD PTR[rdi]
-	movups	xmm3,XMMWORD PTR[16+rdi]
-	lea	rdi,QWORD PTR[32+rdi]
+$L$xts_dec_two:
+	movups	xmm2,XMMWORD[rdi]
+	movups	xmm3,XMMWORD[16+rdi]
+	lea	rdi,[32+rdi]
 	xorps	xmm2,xmm10
 	xorps	xmm3,xmm11
 
@@ -2450,17 +2449,17 @@
 	movdqa	xmm10,xmm12
 	xorps	xmm3,xmm11
 	movdqa	xmm11,xmm13
-	movups	XMMWORD PTR[rsi],xmm2
-	movups	XMMWORD PTR[16+rsi],xmm3
-	lea	rsi,QWORD PTR[32+rsi]
-	jmp	$L$xts_dec_done
+	movups	XMMWORD[rsi],xmm2
+	movups	XMMWORD[16+rsi],xmm3
+	lea	rsi,[32+rsi]
+	jmp	NEAR $L$xts_dec_done
 
 ALIGN	16
-$L$xts_dec_three::
-	movups	xmm2,XMMWORD PTR[rdi]
-	movups	xmm3,XMMWORD PTR[16+rdi]
-	movups	xmm4,XMMWORD PTR[32+rdi]
-	lea	rdi,QWORD PTR[48+rdi]
+$L$xts_dec_three:
+	movups	xmm2,XMMWORD[rdi]
+	movups	xmm3,XMMWORD[16+rdi]
+	movups	xmm4,XMMWORD[32+rdi]
+	lea	rdi,[48+rdi]
 	xorps	xmm2,xmm10
 	xorps	xmm3,xmm11
 	xorps	xmm4,xmm12
@@ -2472,20 +2471,20 @@
 	xorps	xmm3,xmm11
 	movdqa	xmm11,xmm14
 	xorps	xmm4,xmm12
-	movups	XMMWORD PTR[rsi],xmm2
-	movups	XMMWORD PTR[16+rsi],xmm3
-	movups	XMMWORD PTR[32+rsi],xmm4
-	lea	rsi,QWORD PTR[48+rsi]
-	jmp	$L$xts_dec_done
+	movups	XMMWORD[rsi],xmm2
+	movups	XMMWORD[16+rsi],xmm3
+	movups	XMMWORD[32+rsi],xmm4
+	lea	rsi,[48+rsi]
+	jmp	NEAR $L$xts_dec_done
 
 ALIGN	16
-$L$xts_dec_four::
-	movups	xmm2,XMMWORD PTR[rdi]
-	movups	xmm3,XMMWORD PTR[16+rdi]
-	movups	xmm4,XMMWORD PTR[32+rdi]
+$L$xts_dec_four:
+	movups	xmm2,XMMWORD[rdi]
+	movups	xmm3,XMMWORD[16+rdi]
+	movups	xmm4,XMMWORD[32+rdi]
 	xorps	xmm2,xmm10
-	movups	xmm5,XMMWORD PTR[48+rdi]
-	lea	rdi,QWORD PTR[64+rdi]
+	movups	xmm5,XMMWORD[48+rdi]
+	lea	rdi,[64+rdi]
 	xorps	xmm3,xmm11
 	xorps	xmm4,xmm12
 	xorps	xmm5,xmm13
@@ -2497,220 +2496,219 @@
 	pxor	xmm3,xmm11
 	movdqa	xmm11,xmm15
 	pxor	xmm4,xmm12
-	movdqu	XMMWORD PTR[rsi],xmm2
+	movdqu	XMMWORD[rsi],xmm2
 	pxor	xmm5,xmm13
-	movdqu	XMMWORD PTR[16+rsi],xmm3
-	movdqu	XMMWORD PTR[32+rsi],xmm4
-	movdqu	XMMWORD PTR[48+rsi],xmm5
-	lea	rsi,QWORD PTR[64+rsi]
-	jmp	$L$xts_dec_done
+	movdqu	XMMWORD[16+rsi],xmm3
+	movdqu	XMMWORD[32+rsi],xmm4
+	movdqu	XMMWORD[48+rsi],xmm5
+	lea	rsi,[64+rsi]
+	jmp	NEAR $L$xts_dec_done
 
 ALIGN	16
-$L$xts_dec_done::
+$L$xts_dec_done:
 	and	r9,15
-	jz	$L$xts_dec_ret
-$L$xts_dec_done2::
+	jz	NEAR $L$xts_dec_ret
+$L$xts_dec_done2:
 	mov	rdx,r9
 	mov	rcx,r11
 	mov	eax,r10d
 
-	movups	xmm2,XMMWORD PTR[rdi]
+	movups	xmm2,XMMWORD[rdi]
 	xorps	xmm2,xmm11
-	movups	xmm0,XMMWORD PTR[rcx]
-	movups	xmm1,XMMWORD PTR[16+rcx]
-	lea	rcx,QWORD PTR[32+rcx]
+	movups	xmm0,XMMWORD[rcx]
+	movups	xmm1,XMMWORD[16+rcx]
+	lea	rcx,[32+rcx]
 	xorps	xmm2,xmm0
-$L$oop_dec1_13::
+$L$oop_dec1_13:
 DB	102,15,56,222,209
 	dec	eax
-	movups	xmm1,XMMWORD PTR[rcx]
-	lea	rcx,QWORD PTR[16+rcx]
-	jnz	$L$oop_dec1_13
+	movups	xmm1,XMMWORD[rcx]
+	lea	rcx,[16+rcx]
+	jnz	NEAR $L$oop_dec1_13
 DB	102,15,56,223,209
 	xorps	xmm2,xmm11
-	movups	XMMWORD PTR[rsi],xmm2
+	movups	XMMWORD[rsi],xmm2
 
-$L$xts_dec_steal::
-	movzx	eax,BYTE PTR[16+rdi]
-	movzx	ecx,BYTE PTR[rsi]
-	lea	rdi,QWORD PTR[1+rdi]
-	mov	BYTE PTR[rsi],al
-	mov	BYTE PTR[16+rsi],cl
-	lea	rsi,QWORD PTR[1+rsi]
+$L$xts_dec_steal:
+	movzx	eax,BYTE[16+rdi]
+	movzx	ecx,BYTE[rsi]
+	lea	rdi,[1+rdi]
+	mov	BYTE[rsi],al
+	mov	BYTE[16+rsi],cl
+	lea	rsi,[1+rsi]
 	sub	rdx,1
-	jnz	$L$xts_dec_steal
+	jnz	NEAR $L$xts_dec_steal
 
 	sub	rsi,r9
 	mov	rcx,r11
 	mov	eax,r10d
 
-	movups	xmm2,XMMWORD PTR[rsi]
+	movups	xmm2,XMMWORD[rsi]
 	xorps	xmm2,xmm10
-	movups	xmm0,XMMWORD PTR[rcx]
-	movups	xmm1,XMMWORD PTR[16+rcx]
-	lea	rcx,QWORD PTR[32+rcx]
+	movups	xmm0,XMMWORD[rcx]
+	movups	xmm1,XMMWORD[16+rcx]
+	lea	rcx,[32+rcx]
 	xorps	xmm2,xmm0
-$L$oop_dec1_14::
+$L$oop_dec1_14:
 DB	102,15,56,222,209
 	dec	eax
-	movups	xmm1,XMMWORD PTR[rcx]
-	lea	rcx,QWORD PTR[16+rcx]
-	jnz	$L$oop_dec1_14
+	movups	xmm1,XMMWORD[rcx]
+	lea	rcx,[16+rcx]
+	jnz	NEAR $L$oop_dec1_14
 DB	102,15,56,223,209
 	xorps	xmm2,xmm10
-	movups	XMMWORD PTR[rsi],xmm2
+	movups	XMMWORD[rsi],xmm2
 
-$L$xts_dec_ret::
-	movaps	xmm6,XMMWORD PTR[((-160))+rbp]
-	movaps	xmm7,XMMWORD PTR[((-144))+rbp]
-	movaps	xmm8,XMMWORD PTR[((-128))+rbp]
-	movaps	xmm9,XMMWORD PTR[((-112))+rbp]
-	movaps	xmm10,XMMWORD PTR[((-96))+rbp]
-	movaps	xmm11,XMMWORD PTR[((-80))+rbp]
-	movaps	xmm12,XMMWORD PTR[((-64))+rbp]
-	movaps	xmm13,XMMWORD PTR[((-48))+rbp]
-	movaps	xmm14,XMMWORD PTR[((-32))+rbp]
-	movaps	xmm15,XMMWORD PTR[((-16))+rbp]
-	lea	rsp,QWORD PTR[rbp]
+$L$xts_dec_ret:
+	movaps	xmm6,XMMWORD[((-160))+rbp]
+	movaps	xmm7,XMMWORD[((-144))+rbp]
+	movaps	xmm8,XMMWORD[((-128))+rbp]
+	movaps	xmm9,XMMWORD[((-112))+rbp]
+	movaps	xmm10,XMMWORD[((-96))+rbp]
+	movaps	xmm11,XMMWORD[((-80))+rbp]
+	movaps	xmm12,XMMWORD[((-64))+rbp]
+	movaps	xmm13,XMMWORD[((-48))+rbp]
+	movaps	xmm14,XMMWORD[((-32))+rbp]
+	movaps	xmm15,XMMWORD[((-16))+rbp]
+	lea	rsp,[rbp]
 	pop	rbp
-$L$xts_dec_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+$L$xts_dec_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_aesni_xts_decrypt::
-aesni_xts_decrypt	ENDP
-PUBLIC	aesni_cbc_encrypt
+$L$SEH_end_aesni_xts_decrypt:
+global	aesni_cbc_encrypt
 
 ALIGN	16
-aesni_cbc_encrypt	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+aesni_cbc_encrypt:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_aesni_cbc_encrypt::
+$L$SEH_begin_aesni_cbc_encrypt:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 	mov	rcx,r9
-	mov	r8,QWORD PTR[40+rsp]
-	mov	r9,QWORD PTR[48+rsp]
+	mov	r8,QWORD[40+rsp]
+	mov	r9,QWORD[48+rsp]
 
 
 	test	rdx,rdx
-	jz	$L$cbc_ret
+	jz	NEAR $L$cbc_ret
 
-	mov	r10d,DWORD PTR[240+rcx]
+	mov	r10d,DWORD[240+rcx]
 	mov	r11,rcx
 	test	r9d,r9d
-	jz	$L$cbc_decrypt
+	jz	NEAR $L$cbc_decrypt
 
-	movups	xmm2,XMMWORD PTR[r8]
+	movups	xmm2,XMMWORD[r8]
 	mov	eax,r10d
 	cmp	rdx,16
-	jb	$L$cbc_enc_tail
+	jb	NEAR $L$cbc_enc_tail
 	sub	rdx,16
-	jmp	$L$cbc_enc_loop
+	jmp	NEAR $L$cbc_enc_loop
 ALIGN	16
-$L$cbc_enc_loop::
-	movups	xmm3,XMMWORD PTR[rdi]
-	lea	rdi,QWORD PTR[16+rdi]
+$L$cbc_enc_loop:
+	movups	xmm3,XMMWORD[rdi]
+	lea	rdi,[16+rdi]
 
-	movups	xmm0,XMMWORD PTR[rcx]
-	movups	xmm1,XMMWORD PTR[16+rcx]
+	movups	xmm0,XMMWORD[rcx]
+	movups	xmm1,XMMWORD[16+rcx]
 	xorps	xmm3,xmm0
-	lea	rcx,QWORD PTR[32+rcx]
+	lea	rcx,[32+rcx]
 	xorps	xmm2,xmm3
-$L$oop_enc1_15::
+$L$oop_enc1_15:
 DB	102,15,56,220,209
 	dec	eax
-	movups	xmm1,XMMWORD PTR[rcx]
-	lea	rcx,QWORD PTR[16+rcx]
-	jnz	$L$oop_enc1_15
+	movups	xmm1,XMMWORD[rcx]
+	lea	rcx,[16+rcx]
+	jnz	NEAR $L$oop_enc1_15
 DB	102,15,56,221,209
 	mov	eax,r10d
 	mov	rcx,r11
-	movups	XMMWORD PTR[rsi],xmm2
-	lea	rsi,QWORD PTR[16+rsi]
+	movups	XMMWORD[rsi],xmm2
+	lea	rsi,[16+rsi]
 	sub	rdx,16
-	jnc	$L$cbc_enc_loop
+	jnc	NEAR $L$cbc_enc_loop
 	add	rdx,16
-	jnz	$L$cbc_enc_tail
-	movups	XMMWORD PTR[r8],xmm2
-	jmp	$L$cbc_ret
+	jnz	NEAR $L$cbc_enc_tail
+	movups	XMMWORD[r8],xmm2
+	jmp	NEAR $L$cbc_ret
 
-$L$cbc_enc_tail::
+$L$cbc_enc_tail:
 	mov	rcx,rdx
 	xchg	rsi,rdi
-	DD	09066A4F3h
+	DD	0x9066A4F3
 	mov	ecx,16
 	sub	rcx,rdx
 	xor	eax,eax
-	DD	09066AAF3h
-	lea	rdi,QWORD PTR[((-16))+rdi]
+	DD	0x9066AAF3
+	lea	rdi,[((-16))+rdi]
 	mov	eax,r10d
 	mov	rsi,rdi
 	mov	rcx,r11
 	xor	rdx,rdx
-	jmp	$L$cbc_enc_loop
+	jmp	NEAR $L$cbc_enc_loop
 
 ALIGN	16
-$L$cbc_decrypt::
-	lea	rax,QWORD PTR[rsp]
+$L$cbc_decrypt:
+	lea	rax,[rsp]
 	push	rbp
 	sub	rsp,176
 	and	rsp,-16
-	movaps	XMMWORD PTR[16+rsp],xmm6
-	movaps	XMMWORD PTR[32+rsp],xmm7
-	movaps	XMMWORD PTR[48+rsp],xmm8
-	movaps	XMMWORD PTR[64+rsp],xmm9
-	movaps	XMMWORD PTR[80+rsp],xmm10
-	movaps	XMMWORD PTR[96+rsp],xmm11
-	movaps	XMMWORD PTR[112+rsp],xmm12
-	movaps	XMMWORD PTR[128+rsp],xmm13
-	movaps	XMMWORD PTR[144+rsp],xmm14
-	movaps	XMMWORD PTR[160+rsp],xmm15
-$L$cbc_decrypt_body::
-	lea	rbp,QWORD PTR[((-8))+rax]
-	movups	xmm10,XMMWORD PTR[r8]
+	movaps	XMMWORD[16+rsp],xmm6
+	movaps	XMMWORD[32+rsp],xmm7
+	movaps	XMMWORD[48+rsp],xmm8
+	movaps	XMMWORD[64+rsp],xmm9
+	movaps	XMMWORD[80+rsp],xmm10
+	movaps	XMMWORD[96+rsp],xmm11
+	movaps	XMMWORD[112+rsp],xmm12
+	movaps	XMMWORD[128+rsp],xmm13
+	movaps	XMMWORD[144+rsp],xmm14
+	movaps	XMMWORD[160+rsp],xmm15
+$L$cbc_decrypt_body:
+	lea	rbp,[((-8))+rax]
+	movups	xmm10,XMMWORD[r8]
 	mov	eax,r10d
-	cmp	rdx,050h
-	jbe	$L$cbc_dec_tail
+	cmp	rdx,0x50
+	jbe	NEAR $L$cbc_dec_tail
 
-	movups	xmm0,XMMWORD PTR[rcx]
-	movdqu	xmm2,XMMWORD PTR[rdi]
-	movdqu	xmm3,XMMWORD PTR[16+rdi]
+	movups	xmm0,XMMWORD[rcx]
+	movdqu	xmm2,XMMWORD[rdi]
+	movdqu	xmm3,XMMWORD[16+rdi]
 	movdqa	xmm11,xmm2
-	movdqu	xmm4,XMMWORD PTR[32+rdi]
+	movdqu	xmm4,XMMWORD[32+rdi]
 	movdqa	xmm12,xmm3
-	movdqu	xmm5,XMMWORD PTR[48+rdi]
+	movdqu	xmm5,XMMWORD[48+rdi]
 	movdqa	xmm13,xmm4
-	movdqu	xmm6,XMMWORD PTR[64+rdi]
+	movdqu	xmm6,XMMWORD[64+rdi]
 	movdqa	xmm14,xmm5
-	movdqu	xmm7,XMMWORD PTR[80+rdi]
+	movdqu	xmm7,XMMWORD[80+rdi]
 	movdqa	xmm15,xmm6
-	mov	r9d,DWORD PTR[((OPENSSL_ia32cap_P+4))]
-	cmp	rdx,070h
-	jbe	$L$cbc_dec_six_or_seven
+	mov	r9d,DWORD[((OPENSSL_ia32cap_P+4))]
+	cmp	rdx,0x70
+	jbe	NEAR $L$cbc_dec_six_or_seven
 
 	and	r9d,71303168
-	sub	rdx,050h
+	sub	rdx,0x50
 	cmp	r9d,4194304
-	je	$L$cbc_dec_loop6_enter
-	sub	rdx,020h
-	lea	rcx,QWORD PTR[112+rcx]
-	jmp	$L$cbc_dec_loop8_enter
+	je	NEAR $L$cbc_dec_loop6_enter
+	sub	rdx,0x20
+	lea	rcx,[112+rcx]
+	jmp	NEAR $L$cbc_dec_loop8_enter
 ALIGN	16
-$L$cbc_dec_loop8::
-	movups	XMMWORD PTR[rsi],xmm9
-	lea	rsi,QWORD PTR[16+rsi]
-$L$cbc_dec_loop8_enter::
-	movdqu	xmm8,XMMWORD PTR[96+rdi]
+$L$cbc_dec_loop8:
+	movups	XMMWORD[rsi],xmm9
+	lea	rsi,[16+rsi]
+$L$cbc_dec_loop8_enter:
+	movdqu	xmm8,XMMWORD[96+rdi]
 	pxor	xmm2,xmm0
-	movdqu	xmm9,XMMWORD PTR[112+rdi]
+	movdqu	xmm9,XMMWORD[112+rdi]
 	pxor	xmm3,xmm0
-	movups	xmm1,XMMWORD PTR[((16-112))+rcx]
+	movups	xmm1,XMMWORD[((16-112))+rcx]
 	pxor	xmm4,xmm0
 	xor	r11,r11
-	cmp	rdx,070h
+	cmp	rdx,0x70
 	pxor	xmm5,xmm0
 	pxor	xmm6,xmm0
 	pxor	xmm7,xmm0
@@ -2718,7 +2716,7 @@
 
 DB	102,15,56,222,209
 	pxor	xmm9,xmm0
-	movups	xmm0,XMMWORD PTR[((32-112))+rcx]
+	movups	xmm0,XMMWORD[((32-112))+rcx]
 DB	102,15,56,222,217
 DB	102,15,56,222,225
 DB	102,15,56,222,233
@@ -2729,7 +2727,7 @@
 	shl	r11,7
 DB	102,68,15,56,222,201
 	add	r11,rdi
-	movups	xmm1,XMMWORD PTR[((48-112))+rcx]
+	movups	xmm1,XMMWORD[((48-112))+rcx]
 DB	102,15,56,222,208
 DB	102,15,56,222,216
 DB	102,15,56,222,224
@@ -2738,7 +2736,7 @@
 DB	102,15,56,222,248
 DB	102,68,15,56,222,192
 DB	102,68,15,56,222,200
-	movups	xmm0,XMMWORD PTR[((64-112))+rcx]
+	movups	xmm0,XMMWORD[((64-112))+rcx]
 	nop
 DB	102,15,56,222,209
 DB	102,15,56,222,217
@@ -2748,7 +2746,7 @@
 DB	102,15,56,222,249
 DB	102,68,15,56,222,193
 DB	102,68,15,56,222,201
-	movups	xmm1,XMMWORD PTR[((80-112))+rcx]
+	movups	xmm1,XMMWORD[((80-112))+rcx]
 	nop
 DB	102,15,56,222,208
 DB	102,15,56,222,216
@@ -2758,7 +2756,7 @@
 DB	102,15,56,222,248
 DB	102,68,15,56,222,192
 DB	102,68,15,56,222,200
-	movups	xmm0,XMMWORD PTR[((96-112))+rcx]
+	movups	xmm0,XMMWORD[((96-112))+rcx]
 	nop
 DB	102,15,56,222,209
 DB	102,15,56,222,217
@@ -2768,7 +2766,7 @@
 DB	102,15,56,222,249
 DB	102,68,15,56,222,193
 DB	102,68,15,56,222,201
-	movups	xmm1,XMMWORD PTR[((112-112))+rcx]
+	movups	xmm1,XMMWORD[((112-112))+rcx]
 	nop
 DB	102,15,56,222,208
 DB	102,15,56,222,216
@@ -2778,7 +2776,7 @@
 DB	102,15,56,222,248
 DB	102,68,15,56,222,192
 DB	102,68,15,56,222,200
-	movups	xmm0,XMMWORD PTR[((128-112))+rcx]
+	movups	xmm0,XMMWORD[((128-112))+rcx]
 	nop
 DB	102,15,56,222,209
 DB	102,15,56,222,217
@@ -2788,7 +2786,7 @@
 DB	102,15,56,222,249
 DB	102,68,15,56,222,193
 DB	102,68,15,56,222,201
-	movups	xmm1,XMMWORD PTR[((144-112))+rcx]
+	movups	xmm1,XMMWORD[((144-112))+rcx]
 	cmp	eax,11
 DB	102,15,56,222,208
 DB	102,15,56,222,216
@@ -2798,8 +2796,8 @@
 DB	102,15,56,222,248
 DB	102,68,15,56,222,192
 DB	102,68,15,56,222,200
-	movups	xmm0,XMMWORD PTR[((160-112))+rcx]
-	jb	$L$cbc_dec_done
+	movups	xmm0,XMMWORD[((160-112))+rcx]
+	jb	NEAR $L$cbc_dec_done
 DB	102,15,56,222,209
 DB	102,15,56,222,217
 DB	102,15,56,222,225
@@ -2808,7 +2806,7 @@
 DB	102,15,56,222,249
 DB	102,68,15,56,222,193
 DB	102,68,15,56,222,201
-	movups	xmm1,XMMWORD PTR[((176-112))+rcx]
+	movups	xmm1,XMMWORD[((176-112))+rcx]
 	nop
 DB	102,15,56,222,208
 DB	102,15,56,222,216
@@ -2818,8 +2816,8 @@
 DB	102,15,56,222,248
 DB	102,68,15,56,222,192
 DB	102,68,15,56,222,200
-	movups	xmm0,XMMWORD PTR[((192-112))+rcx]
-	je	$L$cbc_dec_done
+	movups	xmm0,XMMWORD[((192-112))+rcx]
+	je	NEAR $L$cbc_dec_done
 DB	102,15,56,222,209
 DB	102,15,56,222,217
 DB	102,15,56,222,225
@@ -2828,7 +2826,7 @@
 DB	102,15,56,222,249
 DB	102,68,15,56,222,193
 DB	102,68,15,56,222,201
-	movups	xmm1,XMMWORD PTR[((208-112))+rcx]
+	movups	xmm1,XMMWORD[((208-112))+rcx]
 	nop
 DB	102,15,56,222,208
 DB	102,15,56,222,216
@@ -2838,10 +2836,10 @@
 DB	102,15,56,222,248
 DB	102,68,15,56,222,192
 DB	102,68,15,56,222,200
-	movups	xmm0,XMMWORD PTR[((224-112))+rcx]
-	jmp	$L$cbc_dec_done
+	movups	xmm0,XMMWORD[((224-112))+rcx]
+	jmp	NEAR $L$cbc_dec_done
 ALIGN	16
-$L$cbc_dec_done::
+$L$cbc_dec_done:
 DB	102,15,56,222,209
 DB	102,15,56,222,217
 	pxor	xmm10,xmm0
@@ -2856,121 +2854,121 @@
 	pxor	xmm15,xmm0
 DB	102,68,15,56,222,193
 DB	102,68,15,56,222,201
-	movdqu	xmm1,XMMWORD PTR[80+rdi]
+	movdqu	xmm1,XMMWORD[80+rdi]
 
 DB	102,65,15,56,223,210
-	movdqu	xmm10,XMMWORD PTR[96+rdi]
+	movdqu	xmm10,XMMWORD[96+rdi]
 	pxor	xmm1,xmm0
 DB	102,65,15,56,223,219
 	pxor	xmm10,xmm0
-	movdqu	xmm0,XMMWORD PTR[112+rdi]
+	movdqu	xmm0,XMMWORD[112+rdi]
 DB	102,65,15,56,223,228
-	lea	rdi,QWORD PTR[128+rdi]
-	movdqu	xmm11,XMMWORD PTR[r11]
+	lea	rdi,[128+rdi]
+	movdqu	xmm11,XMMWORD[r11]
 DB	102,65,15,56,223,237
 DB	102,65,15,56,223,246
-	movdqu	xmm12,XMMWORD PTR[16+r11]
-	movdqu	xmm13,XMMWORD PTR[32+r11]
+	movdqu	xmm12,XMMWORD[16+r11]
+	movdqu	xmm13,XMMWORD[32+r11]
 DB	102,65,15,56,223,255
 DB	102,68,15,56,223,193
-	movdqu	xmm14,XMMWORD PTR[48+r11]
-	movdqu	xmm15,XMMWORD PTR[64+r11]
+	movdqu	xmm14,XMMWORD[48+r11]
+	movdqu	xmm15,XMMWORD[64+r11]
 DB	102,69,15,56,223,202
 	movdqa	xmm10,xmm0
-	movdqu	xmm1,XMMWORD PTR[80+r11]
-	movups	xmm0,XMMWORD PTR[((-112))+rcx]
+	movdqu	xmm1,XMMWORD[80+r11]
+	movups	xmm0,XMMWORD[((-112))+rcx]
 
-	movups	XMMWORD PTR[rsi],xmm2
+	movups	XMMWORD[rsi],xmm2
 	movdqa	xmm2,xmm11
-	movups	XMMWORD PTR[16+rsi],xmm3
+	movups	XMMWORD[16+rsi],xmm3
 	movdqa	xmm3,xmm12
-	movups	XMMWORD PTR[32+rsi],xmm4
+	movups	XMMWORD[32+rsi],xmm4
 	movdqa	xmm4,xmm13
-	movups	XMMWORD PTR[48+rsi],xmm5
+	movups	XMMWORD[48+rsi],xmm5
 	movdqa	xmm5,xmm14
-	movups	XMMWORD PTR[64+rsi],xmm6
+	movups	XMMWORD[64+rsi],xmm6
 	movdqa	xmm6,xmm15
-	movups	XMMWORD PTR[80+rsi],xmm7
+	movups	XMMWORD[80+rsi],xmm7
 	movdqa	xmm7,xmm1
-	movups	XMMWORD PTR[96+rsi],xmm8
-	lea	rsi,QWORD PTR[112+rsi]
+	movups	XMMWORD[96+rsi],xmm8
+	lea	rsi,[112+rsi]
 
-	sub	rdx,080h
-	ja	$L$cbc_dec_loop8
+	sub	rdx,0x80
+	ja	NEAR $L$cbc_dec_loop8
 
 	movaps	xmm2,xmm9
-	lea	rcx,QWORD PTR[((-112))+rcx]
-	add	rdx,070h
-	jle	$L$cbc_dec_tail_collected
-	movups	XMMWORD PTR[rsi],xmm9
-	lea	rsi,QWORD PTR[16+rsi]
-	cmp	rdx,050h
-	jbe	$L$cbc_dec_tail
+	lea	rcx,[((-112))+rcx]
+	add	rdx,0x70
+	jle	NEAR $L$cbc_dec_tail_collected
+	movups	XMMWORD[rsi],xmm9
+	lea	rsi,[16+rsi]
+	cmp	rdx,0x50
+	jbe	NEAR $L$cbc_dec_tail
 
 	movaps	xmm2,xmm11
-$L$cbc_dec_six_or_seven::
-	cmp	rdx,060h
-	ja	$L$cbc_dec_seven
+$L$cbc_dec_six_or_seven:
+	cmp	rdx,0x60
+	ja	NEAR $L$cbc_dec_seven
 
 	movaps	xmm8,xmm7
 	call	_aesni_decrypt6
 	pxor	xmm2,xmm10
 	movaps	xmm10,xmm8
 	pxor	xmm3,xmm11
-	movdqu	XMMWORD PTR[rsi],xmm2
+	movdqu	XMMWORD[rsi],xmm2
 	pxor	xmm4,xmm12
-	movdqu	XMMWORD PTR[16+rsi],xmm3
+	movdqu	XMMWORD[16+rsi],xmm3
 	pxor	xmm5,xmm13
-	movdqu	XMMWORD PTR[32+rsi],xmm4
+	movdqu	XMMWORD[32+rsi],xmm4
 	pxor	xmm6,xmm14
-	movdqu	XMMWORD PTR[48+rsi],xmm5
+	movdqu	XMMWORD[48+rsi],xmm5
 	pxor	xmm7,xmm15
-	movdqu	XMMWORD PTR[64+rsi],xmm6
-	lea	rsi,QWORD PTR[80+rsi]
+	movdqu	XMMWORD[64+rsi],xmm6
+	lea	rsi,[80+rsi]
 	movdqa	xmm2,xmm7
-	jmp	$L$cbc_dec_tail_collected
+	jmp	NEAR $L$cbc_dec_tail_collected
 
 ALIGN	16
-$L$cbc_dec_seven::
-	movups	xmm8,XMMWORD PTR[96+rdi]
+$L$cbc_dec_seven:
+	movups	xmm8,XMMWORD[96+rdi]
 	xorps	xmm9,xmm9
 	call	_aesni_decrypt8
-	movups	xmm9,XMMWORD PTR[80+rdi]
+	movups	xmm9,XMMWORD[80+rdi]
 	pxor	xmm2,xmm10
-	movups	xmm10,XMMWORD PTR[96+rdi]
+	movups	xmm10,XMMWORD[96+rdi]
 	pxor	xmm3,xmm11
-	movdqu	XMMWORD PTR[rsi],xmm2
+	movdqu	XMMWORD[rsi],xmm2
 	pxor	xmm4,xmm12
-	movdqu	XMMWORD PTR[16+rsi],xmm3
+	movdqu	XMMWORD[16+rsi],xmm3
 	pxor	xmm5,xmm13
-	movdqu	XMMWORD PTR[32+rsi],xmm4
+	movdqu	XMMWORD[32+rsi],xmm4
 	pxor	xmm6,xmm14
-	movdqu	XMMWORD PTR[48+rsi],xmm5
+	movdqu	XMMWORD[48+rsi],xmm5
 	pxor	xmm7,xmm15
-	movdqu	XMMWORD PTR[64+rsi],xmm6
+	movdqu	XMMWORD[64+rsi],xmm6
 	pxor	xmm8,xmm9
-	movdqu	XMMWORD PTR[80+rsi],xmm7
-	lea	rsi,QWORD PTR[96+rsi]
+	movdqu	XMMWORD[80+rsi],xmm7
+	lea	rsi,[96+rsi]
 	movdqa	xmm2,xmm8
-	jmp	$L$cbc_dec_tail_collected
+	jmp	NEAR $L$cbc_dec_tail_collected
 
 ALIGN	16
-$L$cbc_dec_loop6::
-	movups	XMMWORD PTR[rsi],xmm7
-	lea	rsi,QWORD PTR[16+rsi]
-	movdqu	xmm2,XMMWORD PTR[rdi]
-	movdqu	xmm3,XMMWORD PTR[16+rdi]
+$L$cbc_dec_loop6:
+	movups	XMMWORD[rsi],xmm7
+	lea	rsi,[16+rsi]
+	movdqu	xmm2,XMMWORD[rdi]
+	movdqu	xmm3,XMMWORD[16+rdi]
 	movdqa	xmm11,xmm2
-	movdqu	xmm4,XMMWORD PTR[32+rdi]
+	movdqu	xmm4,XMMWORD[32+rdi]
 	movdqa	xmm12,xmm3
-	movdqu	xmm5,XMMWORD PTR[48+rdi]
+	movdqu	xmm5,XMMWORD[48+rdi]
 	movdqa	xmm13,xmm4
-	movdqu	xmm6,XMMWORD PTR[64+rdi]
+	movdqu	xmm6,XMMWORD[64+rdi]
 	movdqa	xmm14,xmm5
-	movdqu	xmm7,XMMWORD PTR[80+rdi]
+	movdqu	xmm7,XMMWORD[80+rdi]
 	movdqa	xmm15,xmm6
-$L$cbc_dec_loop6_enter::
-	lea	rdi,QWORD PTR[96+rdi]
+$L$cbc_dec_loop6_enter:
+	lea	rdi,[96+rdi]
 	movdqa	xmm8,xmm7
 
 	call	_aesni_decrypt6
@@ -2978,48 +2976,48 @@
 	pxor	xmm2,xmm10
 	movdqa	xmm10,xmm8
 	pxor	xmm3,xmm11
-	movdqu	XMMWORD PTR[rsi],xmm2
+	movdqu	XMMWORD[rsi],xmm2
 	pxor	xmm4,xmm12
-	movdqu	XMMWORD PTR[16+rsi],xmm3
+	movdqu	XMMWORD[16+rsi],xmm3
 	pxor	xmm5,xmm13
-	movdqu	XMMWORD PTR[32+rsi],xmm4
+	movdqu	XMMWORD[32+rsi],xmm4
 	pxor	xmm6,xmm14
 	mov	rcx,r11
-	movdqu	XMMWORD PTR[48+rsi],xmm5
+	movdqu	XMMWORD[48+rsi],xmm5
 	pxor	xmm7,xmm15
 	mov	eax,r10d
-	movdqu	XMMWORD PTR[64+rsi],xmm6
-	lea	rsi,QWORD PTR[80+rsi]
-	sub	rdx,060h
-	ja	$L$cbc_dec_loop6
+	movdqu	XMMWORD[64+rsi],xmm6
+	lea	rsi,[80+rsi]
+	sub	rdx,0x60
+	ja	NEAR $L$cbc_dec_loop6
 
 	movdqa	xmm2,xmm7
-	add	rdx,050h
-	jle	$L$cbc_dec_tail_collected
-	movups	XMMWORD PTR[rsi],xmm7
-	lea	rsi,QWORD PTR[16+rsi]
+	add	rdx,0x50
+	jle	NEAR $L$cbc_dec_tail_collected
+	movups	XMMWORD[rsi],xmm7
+	lea	rsi,[16+rsi]
 
-$L$cbc_dec_tail::
-	movups	xmm2,XMMWORD PTR[rdi]
-	sub	rdx,010h
-	jbe	$L$cbc_dec_one
+$L$cbc_dec_tail:
+	movups	xmm2,XMMWORD[rdi]
+	sub	rdx,0x10
+	jbe	NEAR $L$cbc_dec_one
 
-	movups	xmm3,XMMWORD PTR[16+rdi]
+	movups	xmm3,XMMWORD[16+rdi]
 	movaps	xmm11,xmm2
-	sub	rdx,010h
-	jbe	$L$cbc_dec_two
+	sub	rdx,0x10
+	jbe	NEAR $L$cbc_dec_two
 
-	movups	xmm4,XMMWORD PTR[32+rdi]
+	movups	xmm4,XMMWORD[32+rdi]
 	movaps	xmm12,xmm3
-	sub	rdx,010h
-	jbe	$L$cbc_dec_three
+	sub	rdx,0x10
+	jbe	NEAR $L$cbc_dec_three
 
-	movups	xmm5,XMMWORD PTR[48+rdi]
+	movups	xmm5,XMMWORD[48+rdi]
 	movaps	xmm13,xmm4
-	sub	rdx,010h
-	jbe	$L$cbc_dec_four
+	sub	rdx,0x10
+	jbe	NEAR $L$cbc_dec_four
 
-	movups	xmm6,XMMWORD PTR[64+rdi]
+	movups	xmm6,XMMWORD[64+rdi]
 	movaps	xmm14,xmm5
 	movaps	xmm15,xmm6
 	xorps	xmm7,xmm7
@@ -3027,173 +3025,172 @@
 	pxor	xmm2,xmm10
 	movaps	xmm10,xmm15
 	pxor	xmm3,xmm11
-	movdqu	XMMWORD PTR[rsi],xmm2
+	movdqu	XMMWORD[rsi],xmm2
 	pxor	xmm4,xmm12
-	movdqu	XMMWORD PTR[16+rsi],xmm3
+	movdqu	XMMWORD[16+rsi],xmm3
 	pxor	xmm5,xmm13
-	movdqu	XMMWORD PTR[32+rsi],xmm4
+	movdqu	XMMWORD[32+rsi],xmm4
 	pxor	xmm6,xmm14
-	movdqu	XMMWORD PTR[48+rsi],xmm5
-	lea	rsi,QWORD PTR[64+rsi]
+	movdqu	XMMWORD[48+rsi],xmm5
+	lea	rsi,[64+rsi]
 	movdqa	xmm2,xmm6
-	sub	rdx,010h
-	jmp	$L$cbc_dec_tail_collected
+	sub	rdx,0x10
+	jmp	NEAR $L$cbc_dec_tail_collected
 
 ALIGN	16
-$L$cbc_dec_one::
+$L$cbc_dec_one:
 	movaps	xmm11,xmm2
-	movups	xmm0,XMMWORD PTR[rcx]
-	movups	xmm1,XMMWORD PTR[16+rcx]
-	lea	rcx,QWORD PTR[32+rcx]
+	movups	xmm0,XMMWORD[rcx]
+	movups	xmm1,XMMWORD[16+rcx]
+	lea	rcx,[32+rcx]
 	xorps	xmm2,xmm0
-$L$oop_dec1_16::
+$L$oop_dec1_16:
 DB	102,15,56,222,209
 	dec	eax
-	movups	xmm1,XMMWORD PTR[rcx]
-	lea	rcx,QWORD PTR[16+rcx]
-	jnz	$L$oop_dec1_16
+	movups	xmm1,XMMWORD[rcx]
+	lea	rcx,[16+rcx]
+	jnz	NEAR $L$oop_dec1_16
 DB	102,15,56,223,209
 	xorps	xmm2,xmm10
 	movaps	xmm10,xmm11
-	jmp	$L$cbc_dec_tail_collected
+	jmp	NEAR $L$cbc_dec_tail_collected
 ALIGN	16
-$L$cbc_dec_two::
+$L$cbc_dec_two:
 	movaps	xmm12,xmm3
 	call	_aesni_decrypt2
 	pxor	xmm2,xmm10
 	movaps	xmm10,xmm12
 	pxor	xmm3,xmm11
-	movdqu	XMMWORD PTR[rsi],xmm2
+	movdqu	XMMWORD[rsi],xmm2
 	movdqa	xmm2,xmm3
-	lea	rsi,QWORD PTR[16+rsi]
-	jmp	$L$cbc_dec_tail_collected
+	lea	rsi,[16+rsi]
+	jmp	NEAR $L$cbc_dec_tail_collected
 ALIGN	16
-$L$cbc_dec_three::
+$L$cbc_dec_three:
 	movaps	xmm13,xmm4
 	call	_aesni_decrypt3
 	pxor	xmm2,xmm10
 	movaps	xmm10,xmm13
 	pxor	xmm3,xmm11
-	movdqu	XMMWORD PTR[rsi],xmm2
+	movdqu	XMMWORD[rsi],xmm2
 	pxor	xmm4,xmm12
-	movdqu	XMMWORD PTR[16+rsi],xmm3
+	movdqu	XMMWORD[16+rsi],xmm3
 	movdqa	xmm2,xmm4
-	lea	rsi,QWORD PTR[32+rsi]
-	jmp	$L$cbc_dec_tail_collected
+	lea	rsi,[32+rsi]
+	jmp	NEAR $L$cbc_dec_tail_collected
 ALIGN	16
-$L$cbc_dec_four::
+$L$cbc_dec_four:
 	movaps	xmm14,xmm5
 	call	_aesni_decrypt4
 	pxor	xmm2,xmm10
 	movaps	xmm10,xmm14
 	pxor	xmm3,xmm11
-	movdqu	XMMWORD PTR[rsi],xmm2
+	movdqu	XMMWORD[rsi],xmm2
 	pxor	xmm4,xmm12
-	movdqu	XMMWORD PTR[16+rsi],xmm3
+	movdqu	XMMWORD[16+rsi],xmm3
 	pxor	xmm5,xmm13
-	movdqu	XMMWORD PTR[32+rsi],xmm4
+	movdqu	XMMWORD[32+rsi],xmm4
 	movdqa	xmm2,xmm5
-	lea	rsi,QWORD PTR[48+rsi]
-	jmp	$L$cbc_dec_tail_collected
+	lea	rsi,[48+rsi]
+	jmp	NEAR $L$cbc_dec_tail_collected
 
 ALIGN	16
-$L$cbc_dec_tail_collected::
-	movups	XMMWORD PTR[r8],xmm10
+$L$cbc_dec_tail_collected:
+	movups	XMMWORD[r8],xmm10
 	and	rdx,15
-	jnz	$L$cbc_dec_tail_partial
-	movups	XMMWORD PTR[rsi],xmm2
-	jmp	$L$cbc_dec_ret
+	jnz	NEAR $L$cbc_dec_tail_partial
+	movups	XMMWORD[rsi],xmm2
+	jmp	NEAR $L$cbc_dec_ret
 ALIGN	16
-$L$cbc_dec_tail_partial::
-	movaps	XMMWORD PTR[rsp],xmm2
+$L$cbc_dec_tail_partial:
+	movaps	XMMWORD[rsp],xmm2
 	mov	rcx,16
 	mov	rdi,rsi
 	sub	rcx,rdx
-	lea	rsi,QWORD PTR[rsp]
-	DD	09066A4F3h
+	lea	rsi,[rsp]
+	DD	0x9066A4F3
 
-$L$cbc_dec_ret::
-	movaps	xmm6,XMMWORD PTR[16+rsp]
-	movaps	xmm7,XMMWORD PTR[32+rsp]
-	movaps	xmm8,XMMWORD PTR[48+rsp]
-	movaps	xmm9,XMMWORD PTR[64+rsp]
-	movaps	xmm10,XMMWORD PTR[80+rsp]
-	movaps	xmm11,XMMWORD PTR[96+rsp]
-	movaps	xmm12,XMMWORD PTR[112+rsp]
-	movaps	xmm13,XMMWORD PTR[128+rsp]
-	movaps	xmm14,XMMWORD PTR[144+rsp]
-	movaps	xmm15,XMMWORD PTR[160+rsp]
-	lea	rsp,QWORD PTR[rbp]
+$L$cbc_dec_ret:
+	movaps	xmm6,XMMWORD[16+rsp]
+	movaps	xmm7,XMMWORD[32+rsp]
+	movaps	xmm8,XMMWORD[48+rsp]
+	movaps	xmm9,XMMWORD[64+rsp]
+	movaps	xmm10,XMMWORD[80+rsp]
+	movaps	xmm11,XMMWORD[96+rsp]
+	movaps	xmm12,XMMWORD[112+rsp]
+	movaps	xmm13,XMMWORD[128+rsp]
+	movaps	xmm14,XMMWORD[144+rsp]
+	movaps	xmm15,XMMWORD[160+rsp]
+	lea	rsp,[rbp]
 	pop	rbp
-$L$cbc_ret::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+$L$cbc_ret:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_aesni_cbc_encrypt::
-aesni_cbc_encrypt	ENDP
-PUBLIC	aesni_set_decrypt_key
+$L$SEH_end_aesni_cbc_encrypt:
+global	aesni_set_decrypt_key
 
 ALIGN	16
-aesni_set_decrypt_key	PROC PUBLIC
-DB	048h,083h,0ECh,008h
+aesni_set_decrypt_key:
+DB	0x48,0x83,0xEC,0x08
 	call	__aesni_set_encrypt_key
 	shl	edx,4
 	test	eax,eax
-	jnz	$L$dec_key_ret
-	lea	rcx,QWORD PTR[16+rdx*1+r8]
+	jnz	NEAR $L$dec_key_ret
+	lea	rcx,[16+rdx*1+r8]
 
-	movups	xmm0,XMMWORD PTR[r8]
-	movups	xmm1,XMMWORD PTR[rcx]
-	movups	XMMWORD PTR[rcx],xmm0
-	movups	XMMWORD PTR[r8],xmm1
-	lea	r8,QWORD PTR[16+r8]
-	lea	rcx,QWORD PTR[((-16))+rcx]
+	movups	xmm0,XMMWORD[r8]
+	movups	xmm1,XMMWORD[rcx]
+	movups	XMMWORD[rcx],xmm0
+	movups	XMMWORD[r8],xmm1
+	lea	r8,[16+r8]
+	lea	rcx,[((-16))+rcx]
 
-$L$dec_key_inverse::
-	movups	xmm0,XMMWORD PTR[r8]
-	movups	xmm1,XMMWORD PTR[rcx]
+$L$dec_key_inverse:
+	movups	xmm0,XMMWORD[r8]
+	movups	xmm1,XMMWORD[rcx]
 DB	102,15,56,219,192
 DB	102,15,56,219,201
-	lea	r8,QWORD PTR[16+r8]
-	lea	rcx,QWORD PTR[((-16))+rcx]
-	movups	XMMWORD PTR[16+rcx],xmm0
-	movups	XMMWORD PTR[(-16)+r8],xmm1
+	lea	r8,[16+r8]
+	lea	rcx,[((-16))+rcx]
+	movups	XMMWORD[16+rcx],xmm0
+	movups	XMMWORD[(-16)+r8],xmm1
 	cmp	rcx,r8
-	ja	$L$dec_key_inverse
+	ja	NEAR $L$dec_key_inverse
 
-	movups	xmm0,XMMWORD PTR[r8]
+	movups	xmm0,XMMWORD[r8]
 DB	102,15,56,219,192
-	movups	XMMWORD PTR[rcx],xmm0
-$L$dec_key_ret::
+	movups	XMMWORD[rcx],xmm0
+$L$dec_key_ret:
 	add	rsp,8
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_set_decrypt_key::
-aesni_set_decrypt_key	ENDP
-PUBLIC	aesni_set_encrypt_key
+$L$SEH_end_set_decrypt_key:
+
+global	aesni_set_encrypt_key
 
 ALIGN	16
-aesni_set_encrypt_key	PROC PUBLIC
-__aesni_set_encrypt_key::
-DB	048h,083h,0ECh,008h
+aesni_set_encrypt_key:
+__aesni_set_encrypt_key:
+DB	0x48,0x83,0xEC,0x08
 	mov	rax,-1
 	test	rcx,rcx
-	jz	$L$enc_key_ret
+	jz	NEAR $L$enc_key_ret
 	test	r8,r8
-	jz	$L$enc_key_ret
+	jz	NEAR $L$enc_key_ret
 
-	movups	xmm0,XMMWORD PTR[rcx]
+	movups	xmm0,XMMWORD[rcx]
 	xorps	xmm4,xmm4
-	lea	rax,QWORD PTR[16+r8]
+	lea	rax,[16+r8]
 	cmp	edx,256
-	je	$L$14rounds
+	je	NEAR $L$14rounds
 	cmp	edx,192
-	je	$L$12rounds
+	je	NEAR $L$12rounds
 	cmp	edx,128
-	jne	$L$bad_keybits
+	jne	NEAR $L$bad_keybits
 
-$L$10rounds::
+$L$10rounds:
 	mov	edx,9
-	movups	XMMWORD PTR[r8],xmm0
+	movups	XMMWORD[r8],xmm0
 DB	102,15,58,223,200,1
 	call	$L$key_expansion_128_cold
 DB	102,15,58,223,200,2
@@ -3214,16 +3211,16 @@
 	call	$L$key_expansion_128
 DB	102,15,58,223,200,54
 	call	$L$key_expansion_128
-	movups	XMMWORD PTR[rax],xmm0
-	mov	DWORD PTR[80+rax],edx
+	movups	XMMWORD[rax],xmm0
+	mov	DWORD[80+rax],edx
 	xor	eax,eax
-	jmp	$L$enc_key_ret
+	jmp	NEAR $L$enc_key_ret
 
 ALIGN	16
-$L$12rounds::
-	movq	xmm2,QWORD PTR[16+rcx]
+$L$12rounds:
+	movq	xmm2,QWORD[16+rcx]
 	mov	edx,11
-	movups	XMMWORD PTR[r8],xmm0
+	movups	XMMWORD[r8],xmm0
 DB	102,15,58,223,202,1
 	call	$L$key_expansion_192a_cold
 DB	102,15,58,223,202,2
@@ -3240,18 +3237,18 @@
 	call	$L$key_expansion_192a
 DB	102,15,58,223,202,128
 	call	$L$key_expansion_192b
-	movups	XMMWORD PTR[rax],xmm0
-	mov	DWORD PTR[48+rax],edx
+	movups	XMMWORD[rax],xmm0
+	mov	DWORD[48+rax],edx
 	xor	rax,rax
-	jmp	$L$enc_key_ret
+	jmp	NEAR $L$enc_key_ret
 
 ALIGN	16
-$L$14rounds::
-	movups	xmm2,XMMWORD PTR[16+rcx]
+$L$14rounds:
+	movups	xmm2,XMMWORD[16+rcx]
 	mov	edx,13
-	lea	rax,QWORD PTR[16+rax]
-	movups	XMMWORD PTR[r8],xmm0
-	movups	XMMWORD PTR[16+r8],xmm2
+	lea	rax,[16+rax]
+	movups	XMMWORD[r8],xmm0
+	movups	XMMWORD[16+r8],xmm2
 DB	102,15,58,223,202,1
 	call	$L$key_expansion_256a_cold
 DB	102,15,58,223,200,1
@@ -3278,24 +3275,24 @@
 	call	$L$key_expansion_256b
 DB	102,15,58,223,202,64
 	call	$L$key_expansion_256a
-	movups	XMMWORD PTR[rax],xmm0
-	mov	DWORD PTR[16+rax],edx
+	movups	XMMWORD[rax],xmm0
+	mov	DWORD[16+rax],edx
 	xor	rax,rax
-	jmp	$L$enc_key_ret
+	jmp	NEAR $L$enc_key_ret
 
 ALIGN	16
-$L$bad_keybits::
+$L$bad_keybits:
 	mov	rax,-2
-$L$enc_key_ret::
+$L$enc_key_ret:
 	add	rsp,8
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_set_encrypt_key::
+$L$SEH_end_set_encrypt_key:
 
 ALIGN	16
-$L$key_expansion_128::
-	movups	XMMWORD PTR[rax],xmm0
-	lea	rax,QWORD PTR[16+rax]
-$L$key_expansion_128_cold::
+$L$key_expansion_128:
+	movups	XMMWORD[rax],xmm0
+	lea	rax,[16+rax]
+$L$key_expansion_128_cold:
 	shufps	xmm4,xmm0,16
 	xorps	xmm0,xmm4
 	shufps	xmm4,xmm0,140
@@ -3305,12 +3302,12 @@
 	DB	0F3h,0C3h		;repret
 
 ALIGN	16
-$L$key_expansion_192a::
-	movups	XMMWORD PTR[rax],xmm0
-	lea	rax,QWORD PTR[16+rax]
-$L$key_expansion_192a_cold::
+$L$key_expansion_192a:
+	movups	XMMWORD[rax],xmm0
+	lea	rax,[16+rax]
+$L$key_expansion_192a_cold:
 	movaps	xmm5,xmm2
-$L$key_expansion_192b_warm::
+$L$key_expansion_192b_warm:
 	shufps	xmm4,xmm0,16
 	movdqa	xmm3,xmm2
 	xorps	xmm0,xmm4
@@ -3325,20 +3322,20 @@
 	DB	0F3h,0C3h		;repret
 
 ALIGN	16
-$L$key_expansion_192b::
+$L$key_expansion_192b:
 	movaps	xmm3,xmm0
 	shufps	xmm5,xmm0,68
-	movups	XMMWORD PTR[rax],xmm5
+	movups	XMMWORD[rax],xmm5
 	shufps	xmm3,xmm2,78
-	movups	XMMWORD PTR[16+rax],xmm3
-	lea	rax,QWORD PTR[32+rax]
-	jmp	$L$key_expansion_192b_warm
+	movups	XMMWORD[16+rax],xmm3
+	lea	rax,[32+rax]
+	jmp	NEAR $L$key_expansion_192b_warm
 
 ALIGN	16
-$L$key_expansion_256a::
-	movups	XMMWORD PTR[rax],xmm2
-	lea	rax,QWORD PTR[16+rax]
-$L$key_expansion_256a_cold::
+$L$key_expansion_256a:
+	movups	XMMWORD[rax],xmm2
+	lea	rax,[16+rax]
+$L$key_expansion_256a_cold:
 	shufps	xmm4,xmm0,16
 	xorps	xmm0,xmm4
 	shufps	xmm4,xmm0,140
@@ -3348,9 +3345,9 @@
 	DB	0F3h,0C3h		;repret
 
 ALIGN	16
-$L$key_expansion_256b::
-	movups	XMMWORD PTR[rax],xmm0
-	lea	rax,QWORD PTR[16+rax]
+$L$key_expansion_256b:
+	movups	XMMWORD[rax],xmm0
+	lea	rax,[16+rax]
 
 	shufps	xmm4,xmm2,16
 	xorps	xmm2,xmm4
@@ -3359,18 +3356,18 @@
 	shufps	xmm1,xmm1,170
 	xorps	xmm2,xmm1
 	DB	0F3h,0C3h		;repret
-aesni_set_encrypt_key	ENDP
+
 
 ALIGN	64
-$L$bswap_mask::
+$L$bswap_mask:
 DB	15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
-$L$increment32::
+$L$increment32:
 	DD	6,6,6,0
-$L$increment64::
+$L$increment64:
 	DD	1,0,0,0
-$L$xts_magic::
-	DD	087h,0,1,0
-$L$increment1::
+$L$xts_magic:
+	DD	0x87,0,1,0
+$L$increment1:
 DB	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
 
 DB	65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
@@ -3378,10 +3375,10 @@
 DB	32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
 DB	115,108,46,111,114,103,62,0
 ALIGN	64
-EXTERN	__imp_RtlVirtualUnwind:NEAR
+EXTERN	__imp_RtlVirtualUnwind
 
 ALIGN	16
-ecb_se_handler	PROC PRIVATE
+ecb_se_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -3393,14 +3390,14 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[152+r8]
+	mov	rax,QWORD[152+r8]
 
-	jmp	$L$common_seh_tail
-ecb_se_handler	ENDP
+	jmp	NEAR $L$common_seh_tail
+
 
 
 ALIGN	16
-ccm64_se_handler	PROC PRIVATE
+ccm64_se_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -3412,36 +3409,36 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[120+r8]
-	mov	rbx,QWORD PTR[248+r8]
+	mov	rax,QWORD[120+r8]
+	mov	rbx,QWORD[248+r8]
 
-	mov	rsi,QWORD PTR[8+r9]
-	mov	r11,QWORD PTR[56+r9]
+	mov	rsi,QWORD[8+r9]
+	mov	r11,QWORD[56+r9]
 
-	mov	r10d,DWORD PTR[r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jb	$L$common_seh_tail
+	jb	NEAR $L$common_seh_tail
 
-	mov	rax,QWORD PTR[152+r8]
+	mov	rax,QWORD[152+r8]
 
-	mov	r10d,DWORD PTR[4+r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[4+r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jae	$L$common_seh_tail
+	jae	NEAR $L$common_seh_tail
 
-	lea	rsi,QWORD PTR[rax]
-	lea	rdi,QWORD PTR[512+r8]
+	lea	rsi,[rax]
+	lea	rdi,[512+r8]
 	mov	ecx,8
-	DD	0a548f3fch
-	lea	rax,QWORD PTR[88+rax]
+	DD	0xa548f3fc
+	lea	rax,[88+rax]
 
-	jmp	$L$common_seh_tail
-ccm64_se_handler	ENDP
+	jmp	NEAR $L$common_seh_tail
+
 
 
 ALIGN	16
-ctr_xts_se_handler	PROC PRIVATE
+ctr_xts_se_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -3453,35 +3450,35 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[120+r8]
-	mov	rbx,QWORD PTR[248+r8]
+	mov	rax,QWORD[120+r8]
+	mov	rbx,QWORD[248+r8]
 
-	mov	rsi,QWORD PTR[8+r9]
-	mov	r11,QWORD PTR[56+r9]
+	mov	rsi,QWORD[8+r9]
+	mov	r11,QWORD[56+r9]
 
-	mov	r10d,DWORD PTR[r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jb	$L$common_seh_tail
+	jb	NEAR $L$common_seh_tail
 
-	mov	rax,QWORD PTR[152+r8]
+	mov	rax,QWORD[152+r8]
 
-	mov	r10d,DWORD PTR[4+r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[4+r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jae	$L$common_seh_tail
+	jae	NEAR $L$common_seh_tail
 
-	mov	rax,QWORD PTR[160+r8]
-	lea	rsi,QWORD PTR[((-160))+rax]
-	lea	rdi,QWORD PTR[512+r8]
+	mov	rax,QWORD[160+r8]
+	lea	rsi,[((-160))+rax]
+	lea	rdi,[512+r8]
 	mov	ecx,20
-	DD	0a548f3fch
+	DD	0xa548f3fc
 
-	jmp	$L$common_rbp_tail
-ctr_xts_se_handler	ENDP
+	jmp	NEAR $L$common_rbp_tail
+
 
 ALIGN	16
-cbc_se_handler	PROC PRIVATE
+cbc_se_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -3493,61 +3490,61 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[152+r8]
-	mov	rbx,QWORD PTR[248+r8]
+	mov	rax,QWORD[152+r8]
+	mov	rbx,QWORD[248+r8]
 
-	lea	r10,QWORD PTR[$L$cbc_decrypt]
+	lea	r10,[$L$cbc_decrypt]
 	cmp	rbx,r10
-	jb	$L$common_seh_tail
+	jb	NEAR $L$common_seh_tail
 
-	lea	r10,QWORD PTR[$L$cbc_decrypt_body]
+	lea	r10,[$L$cbc_decrypt_body]
 	cmp	rbx,r10
-	jb	$L$restore_cbc_rax
+	jb	NEAR $L$restore_cbc_rax
 
-	lea	r10,QWORD PTR[$L$cbc_ret]
+	lea	r10,[$L$cbc_ret]
 	cmp	rbx,r10
-	jae	$L$common_seh_tail
+	jae	NEAR $L$common_seh_tail
 
-	lea	rsi,QWORD PTR[16+rax]
-	lea	rdi,QWORD PTR[512+r8]
+	lea	rsi,[16+rax]
+	lea	rdi,[512+r8]
 	mov	ecx,20
-	DD	0a548f3fch
+	DD	0xa548f3fc
 
-$L$common_rbp_tail::
-	mov	rax,QWORD PTR[160+r8]
-	mov	rbp,QWORD PTR[rax]
-	lea	rax,QWORD PTR[8+rax]
-	mov	QWORD PTR[160+r8],rbp
-	jmp	$L$common_seh_tail
+$L$common_rbp_tail:
+	mov	rax,QWORD[160+r8]
+	mov	rbp,QWORD[rax]
+	lea	rax,[8+rax]
+	mov	QWORD[160+r8],rbp
+	jmp	NEAR $L$common_seh_tail
 
-$L$restore_cbc_rax::
-	mov	rax,QWORD PTR[120+r8]
+$L$restore_cbc_rax:
+	mov	rax,QWORD[120+r8]
 
-$L$common_seh_tail::
-	mov	rdi,QWORD PTR[8+rax]
-	mov	rsi,QWORD PTR[16+rax]
-	mov	QWORD PTR[152+r8],rax
-	mov	QWORD PTR[168+r8],rsi
-	mov	QWORD PTR[176+r8],rdi
+$L$common_seh_tail:
+	mov	rdi,QWORD[8+rax]
+	mov	rsi,QWORD[16+rax]
+	mov	QWORD[152+r8],rax
+	mov	QWORD[168+r8],rsi
+	mov	QWORD[176+r8],rdi
 
-	mov	rdi,QWORD PTR[40+r9]
+	mov	rdi,QWORD[40+r9]
 	mov	rsi,r8
 	mov	ecx,154
-	DD	0a548f3fch
+	DD	0xa548f3fc
 
 	mov	rsi,r9
 	xor	rcx,rcx
-	mov	rdx,QWORD PTR[8+rsi]
-	mov	r8,QWORD PTR[rsi]
-	mov	r9,QWORD PTR[16+rsi]
-	mov	r10,QWORD PTR[40+rsi]
-	lea	r11,QWORD PTR[56+rsi]
-	lea	r12,QWORD PTR[24+rsi]
-	mov	QWORD PTR[32+rsp],r10
-	mov	QWORD PTR[40+rsp],r11
-	mov	QWORD PTR[48+rsp],r12
-	mov	QWORD PTR[56+rsp],rcx
-	call	QWORD PTR[__imp_RtlVirtualUnwind]
+	mov	rdx,QWORD[8+rsi]
+	mov	r8,QWORD[rsi]
+	mov	r9,QWORD[16+rsi]
+	mov	r10,QWORD[40+rsi]
+	lea	r11,[56+rsi]
+	lea	r12,[24+rsi]
+	mov	QWORD[32+rsp],r10
+	mov	QWORD[40+rsp],r11
+	mov	QWORD[48+rsp],r12
+	mov	QWORD[56+rsp],rcx
+	call	QWORD[__imp_RtlVirtualUnwind]
 
 	mov	eax,1
 	add	rsp,64
@@ -3561,77 +3558,72 @@
 	pop	rdi
 	pop	rsi
 	DB	0F3h,0C3h		;repret
-cbc_se_handler	ENDP
 
-.text$	ENDS
-.pdata	SEGMENT READONLY ALIGN(4)
+
+section	.pdata rdata align=4
 ALIGN	4
-	DD	imagerel $L$SEH_begin_aesni_ecb_encrypt
-	DD	imagerel $L$SEH_end_aesni_ecb_encrypt
-	DD	imagerel $L$SEH_info_ecb
+	DD	$L$SEH_begin_aesni_ecb_encrypt wrt ..imagebase
+	DD	$L$SEH_end_aesni_ecb_encrypt wrt ..imagebase
+	DD	$L$SEH_info_ecb wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_aesni_ccm64_encrypt_blocks
-	DD	imagerel $L$SEH_end_aesni_ccm64_encrypt_blocks
-	DD	imagerel $L$SEH_info_ccm64_enc
+	DD	$L$SEH_begin_aesni_ccm64_encrypt_blocks wrt ..imagebase
+	DD	$L$SEH_end_aesni_ccm64_encrypt_blocks wrt ..imagebase
+	DD	$L$SEH_info_ccm64_enc wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_aesni_ccm64_decrypt_blocks
-	DD	imagerel $L$SEH_end_aesni_ccm64_decrypt_blocks
-	DD	imagerel $L$SEH_info_ccm64_dec
+	DD	$L$SEH_begin_aesni_ccm64_decrypt_blocks wrt ..imagebase
+	DD	$L$SEH_end_aesni_ccm64_decrypt_blocks wrt ..imagebase
+	DD	$L$SEH_info_ccm64_dec wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_aesni_ctr32_encrypt_blocks
-	DD	imagerel $L$SEH_end_aesni_ctr32_encrypt_blocks
-	DD	imagerel $L$SEH_info_ctr32
+	DD	$L$SEH_begin_aesni_ctr32_encrypt_blocks wrt ..imagebase
+	DD	$L$SEH_end_aesni_ctr32_encrypt_blocks wrt ..imagebase
+	DD	$L$SEH_info_ctr32 wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_aesni_xts_encrypt
-	DD	imagerel $L$SEH_end_aesni_xts_encrypt
-	DD	imagerel $L$SEH_info_xts_enc
+	DD	$L$SEH_begin_aesni_xts_encrypt wrt ..imagebase
+	DD	$L$SEH_end_aesni_xts_encrypt wrt ..imagebase
+	DD	$L$SEH_info_xts_enc wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_aesni_xts_decrypt
-	DD	imagerel $L$SEH_end_aesni_xts_decrypt
-	DD	imagerel $L$SEH_info_xts_dec
-	DD	imagerel $L$SEH_begin_aesni_cbc_encrypt
-	DD	imagerel $L$SEH_end_aesni_cbc_encrypt
-	DD	imagerel $L$SEH_info_cbc
+	DD	$L$SEH_begin_aesni_xts_decrypt wrt ..imagebase
+	DD	$L$SEH_end_aesni_xts_decrypt wrt ..imagebase
+	DD	$L$SEH_info_xts_dec wrt ..imagebase
+	DD	$L$SEH_begin_aesni_cbc_encrypt wrt ..imagebase
+	DD	$L$SEH_end_aesni_cbc_encrypt wrt ..imagebase
+	DD	$L$SEH_info_cbc wrt ..imagebase
 
-	DD	imagerel aesni_set_decrypt_key
-	DD	imagerel $L$SEH_end_set_decrypt_key
-	DD	imagerel $L$SEH_info_key
+	DD	aesni_set_decrypt_key wrt ..imagebase
+	DD	$L$SEH_end_set_decrypt_key wrt ..imagebase
+	DD	$L$SEH_info_key wrt ..imagebase
 
-	DD	imagerel aesni_set_encrypt_key
-	DD	imagerel $L$SEH_end_set_encrypt_key
-	DD	imagerel $L$SEH_info_key
-.pdata	ENDS
-.xdata	SEGMENT READONLY ALIGN(8)
+	DD	aesni_set_encrypt_key wrt ..imagebase
+	DD	$L$SEH_end_set_encrypt_key wrt ..imagebase
+	DD	$L$SEH_info_key wrt ..imagebase
+section	.xdata rdata align=8
 ALIGN	8
-$L$SEH_info_ecb::
+$L$SEH_info_ecb:
 DB	9,0,0,0
-	DD	imagerel ecb_se_handler
-$L$SEH_info_ccm64_enc::
+	DD	ecb_se_handler wrt ..imagebase
+$L$SEH_info_ccm64_enc:
 DB	9,0,0,0
-	DD	imagerel ccm64_se_handler
-	DD	imagerel $L$ccm64_enc_body,imagerel $L$ccm64_enc_ret
-$L$SEH_info_ccm64_dec::
+	DD	ccm64_se_handler wrt ..imagebase
+	DD	$L$ccm64_enc_body wrt ..imagebase,$L$ccm64_enc_ret wrt ..imagebase
+$L$SEH_info_ccm64_dec:
 DB	9,0,0,0
-	DD	imagerel ccm64_se_handler
-	DD	imagerel $L$ccm64_dec_body,imagerel $L$ccm64_dec_ret
-$L$SEH_info_ctr32::
+	DD	ccm64_se_handler wrt ..imagebase
+	DD	$L$ccm64_dec_body wrt ..imagebase,$L$ccm64_dec_ret wrt ..imagebase
+$L$SEH_info_ctr32:
 DB	9,0,0,0
-	DD	imagerel ctr_xts_se_handler
-	DD	imagerel $L$ctr32_body,imagerel $L$ctr32_epilogue
-$L$SEH_info_xts_enc::
+	DD	ctr_xts_se_handler wrt ..imagebase
+	DD	$L$ctr32_body wrt ..imagebase,$L$ctr32_epilogue wrt ..imagebase
+$L$SEH_info_xts_enc:
 DB	9,0,0,0
-	DD	imagerel ctr_xts_se_handler
-	DD	imagerel $L$xts_enc_body,imagerel $L$xts_enc_epilogue
-$L$SEH_info_xts_dec::
+	DD	ctr_xts_se_handler wrt ..imagebase
+	DD	$L$xts_enc_body wrt ..imagebase,$L$xts_enc_epilogue wrt ..imagebase
+$L$SEH_info_xts_dec:
 DB	9,0,0,0
-	DD	imagerel ctr_xts_se_handler
-	DD	imagerel $L$xts_dec_body,imagerel $L$xts_dec_epilogue
-$L$SEH_info_cbc::
+	DD	ctr_xts_se_handler wrt ..imagebase
+	DD	$L$xts_dec_body wrt ..imagebase,$L$xts_dec_epilogue wrt ..imagebase
+$L$SEH_info_cbc:
 DB	9,0,0,0
-	DD	imagerel cbc_se_handler
-$L$SEH_info_key::
-DB	001h,004h,001h,000h
-DB	004h,002h,000h,000h
-
-.xdata	ENDS
-END
+	DD	cbc_se_handler wrt ..imagebase
+$L$SEH_info_key:
+DB	0x01,0x04,0x01,0x00
+DB	0x04,0x02,0x00,0x00
diff --git a/third_party/boringssl/win-x86_64/crypto/aes/bsaes-x86_64.asm b/third_party/boringssl/win-x86_64/crypto/aes/bsaes-x86_64.asm
index 3346a7e..6d75248 100644
--- a/third_party/boringssl/win-x86_64/crypto/aes/bsaes-x86_64.asm
+++ b/third_party/boringssl/win-x86_64/crypto/aes/bsaes-x86_64.asm
@@ -1,17 +1,21 @@
-OPTION	DOTNAME
-.text$	SEGMENT ALIGN(256) 'CODE'
+default	rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section	.text code align=64
 
-EXTERN	asm_AES_encrypt:NEAR
-EXTERN	asm_AES_decrypt:NEAR
+
+EXTERN	asm_AES_encrypt
+EXTERN	asm_AES_decrypt
 
 
 ALIGN	64
-_bsaes_encrypt8	PROC PRIVATE
-	lea	r11,QWORD PTR[$L$BS0]
+_bsaes_encrypt8:
+	lea	r11,[$L$BS0]
 
-	movdqa	xmm8,XMMWORD PTR[rax]
-	lea	rax,QWORD PTR[16+rax]
-	movdqa	xmm7,XMMWORD PTR[80+r11]
+	movdqa	xmm8,XMMWORD[rax]
+	lea	rax,[16+rax]
+	movdqa	xmm7,XMMWORD[80+r11]
 	pxor	xmm15,xmm8
 	pxor	xmm0,xmm8
 	pxor	xmm1,xmm8
@@ -28,9 +32,9 @@
 DB	102,15,56,0,231
 DB	102,15,56,0,239
 DB	102,15,56,0,247
-_bsaes_encrypt8_bitslice::
-	movdqa	xmm7,XMMWORD PTR[r11]
-	movdqa	xmm8,XMMWORD PTR[16+r11]
+_bsaes_encrypt8_bitslice:
+	movdqa	xmm7,XMMWORD[r11]
+	movdqa	xmm8,XMMWORD[16+r11]
 	movdqa	xmm9,xmm5
 	psrlq	xmm5,1
 	movdqa	xmm10,xmm3
@@ -59,7 +63,7 @@
 	psllq	xmm15,1
 	pxor	xmm1,xmm9
 	pxor	xmm15,xmm10
-	movdqa	xmm7,XMMWORD PTR[32+r11]
+	movdqa	xmm7,XMMWORD[32+r11]
 	movdqa	xmm9,xmm4
 	psrlq	xmm4,2
 	movdqa	xmm10,xmm3
@@ -117,27 +121,27 @@
 	pxor	xmm0,xmm9
 	pxor	xmm15,xmm10
 	dec	r10d
-	jmp	$L$enc_sbox
+	jmp	NEAR $L$enc_sbox
 ALIGN	16
-$L$enc_loop::
-	pxor	xmm15,XMMWORD PTR[rax]
-	pxor	xmm0,XMMWORD PTR[16+rax]
-	pxor	xmm1,XMMWORD PTR[32+rax]
-	pxor	xmm2,XMMWORD PTR[48+rax]
+$L$enc_loop:
+	pxor	xmm15,XMMWORD[rax]
+	pxor	xmm0,XMMWORD[16+rax]
+	pxor	xmm1,XMMWORD[32+rax]
+	pxor	xmm2,XMMWORD[48+rax]
 DB	102,68,15,56,0,255
 DB	102,15,56,0,199
-	pxor	xmm3,XMMWORD PTR[64+rax]
-	pxor	xmm4,XMMWORD PTR[80+rax]
+	pxor	xmm3,XMMWORD[64+rax]
+	pxor	xmm4,XMMWORD[80+rax]
 DB	102,15,56,0,207
 DB	102,15,56,0,215
-	pxor	xmm5,XMMWORD PTR[96+rax]
-	pxor	xmm6,XMMWORD PTR[112+rax]
+	pxor	xmm5,XMMWORD[96+rax]
+	pxor	xmm6,XMMWORD[112+rax]
 DB	102,15,56,0,223
 DB	102,15,56,0,231
 DB	102,15,56,0,239
 DB	102,15,56,0,247
-	lea	rax,QWORD PTR[128+rax]
-$L$enc_sbox::
+	lea	rax,[128+rax]
+$L$enc_sbox:
 	pxor	xmm4,xmm5
 	pxor	xmm1,xmm0
 	pxor	xmm2,xmm15
@@ -324,46 +328,46 @@
 
 	pxor	xmm5,xmm2
 	dec	r10d
-	jl	$L$enc_done
-	pshufd	xmm7,xmm15,093h
-	pshufd	xmm8,xmm0,093h
+	jl	NEAR $L$enc_done
+	pshufd	xmm7,xmm15,0x93
+	pshufd	xmm8,xmm0,0x93
 	pxor	xmm15,xmm7
-	pshufd	xmm9,xmm3,093h
+	pshufd	xmm9,xmm3,0x93
 	pxor	xmm0,xmm8
-	pshufd	xmm10,xmm5,093h
+	pshufd	xmm10,xmm5,0x93
 	pxor	xmm3,xmm9
-	pshufd	xmm11,xmm2,093h
+	pshufd	xmm11,xmm2,0x93
 	pxor	xmm5,xmm10
-	pshufd	xmm12,xmm6,093h
+	pshufd	xmm12,xmm6,0x93
 	pxor	xmm2,xmm11
-	pshufd	xmm13,xmm1,093h
+	pshufd	xmm13,xmm1,0x93
 	pxor	xmm6,xmm12
-	pshufd	xmm14,xmm4,093h
+	pshufd	xmm14,xmm4,0x93
 	pxor	xmm1,xmm13
 	pxor	xmm4,xmm14
 
 	pxor	xmm8,xmm15
 	pxor	xmm7,xmm4
 	pxor	xmm8,xmm4
-	pshufd	xmm15,xmm15,04Eh
+	pshufd	xmm15,xmm15,0x4E
 	pxor	xmm9,xmm0
-	pshufd	xmm0,xmm0,04Eh
+	pshufd	xmm0,xmm0,0x4E
 	pxor	xmm12,xmm2
 	pxor	xmm15,xmm7
 	pxor	xmm13,xmm6
 	pxor	xmm0,xmm8
 	pxor	xmm11,xmm5
-	pshufd	xmm7,xmm2,04Eh
+	pshufd	xmm7,xmm2,0x4E
 	pxor	xmm14,xmm1
-	pshufd	xmm8,xmm6,04Eh
+	pshufd	xmm8,xmm6,0x4E
 	pxor	xmm10,xmm3
-	pshufd	xmm2,xmm5,04Eh
+	pshufd	xmm2,xmm5,0x4E
 	pxor	xmm10,xmm4
-	pshufd	xmm6,xmm4,04Eh
+	pshufd	xmm6,xmm4,0x4E
 	pxor	xmm11,xmm4
-	pshufd	xmm5,xmm1,04Eh
+	pshufd	xmm5,xmm1,0x4E
 	pxor	xmm7,xmm11
-	pshufd	xmm1,xmm3,04Eh
+	pshufd	xmm1,xmm3,0x4E
 	pxor	xmm8,xmm12
 	pxor	xmm2,xmm10
 	pxor	xmm6,xmm14
@@ -371,14 +375,14 @@
 	movdqa	xmm3,xmm7
 	pxor	xmm1,xmm9
 	movdqa	xmm4,xmm8
-	movdqa	xmm7,XMMWORD PTR[48+r11]
-	jnz	$L$enc_loop
-	movdqa	xmm7,XMMWORD PTR[64+r11]
-	jmp	$L$enc_loop
+	movdqa	xmm7,XMMWORD[48+r11]
+	jnz	NEAR $L$enc_loop
+	movdqa	xmm7,XMMWORD[64+r11]
+	jmp	NEAR $L$enc_loop
 ALIGN	16
-$L$enc_done::
-	movdqa	xmm7,XMMWORD PTR[r11]
-	movdqa	xmm8,XMMWORD PTR[16+r11]
+$L$enc_done:
+	movdqa	xmm7,XMMWORD[r11]
+	movdqa	xmm8,XMMWORD[16+r11]
 	movdqa	xmm9,xmm1
 	psrlq	xmm1,1
 	movdqa	xmm10,xmm2
@@ -407,7 +411,7 @@
 	psllq	xmm15,1
 	pxor	xmm3,xmm9
 	pxor	xmm15,xmm10
-	movdqa	xmm7,XMMWORD PTR[32+r11]
+	movdqa	xmm7,XMMWORD[32+r11]
 	movdqa	xmm9,xmm6
 	psrlq	xmm6,2
 	movdqa	xmm10,xmm2
@@ -464,7 +468,7 @@
 	psllq	xmm15,4
 	pxor	xmm0,xmm9
 	pxor	xmm15,xmm10
-	movdqa	xmm7,XMMWORD PTR[rax]
+	movdqa	xmm7,XMMWORD[rax]
 	pxor	xmm3,xmm7
 	pxor	xmm5,xmm7
 	pxor	xmm2,xmm7
@@ -474,16 +478,16 @@
 	pxor	xmm15,xmm7
 	pxor	xmm0,xmm7
 	DB	0F3h,0C3h		;repret
-_bsaes_encrypt8	ENDP
+
 
 
 ALIGN	64
-_bsaes_decrypt8	PROC PRIVATE
-	lea	r11,QWORD PTR[$L$BS0]
+_bsaes_decrypt8:
+	lea	r11,[$L$BS0]
 
-	movdqa	xmm8,XMMWORD PTR[rax]
-	lea	rax,QWORD PTR[16+rax]
-	movdqa	xmm7,XMMWORD PTR[((-48))+r11]
+	movdqa	xmm8,XMMWORD[rax]
+	lea	rax,[16+rax]
+	movdqa	xmm7,XMMWORD[((-48))+r11]
 	pxor	xmm15,xmm8
 	pxor	xmm0,xmm8
 	pxor	xmm1,xmm8
@@ -500,8 +504,8 @@
 DB	102,15,56,0,231
 DB	102,15,56,0,239
 DB	102,15,56,0,247
-	movdqa	xmm7,XMMWORD PTR[r11]
-	movdqa	xmm8,XMMWORD PTR[16+r11]
+	movdqa	xmm7,XMMWORD[r11]
+	movdqa	xmm8,XMMWORD[16+r11]
 	movdqa	xmm9,xmm5
 	psrlq	xmm5,1
 	movdqa	xmm10,xmm3
@@ -530,7 +534,7 @@
 	psllq	xmm15,1
 	pxor	xmm1,xmm9
 	pxor	xmm15,xmm10
-	movdqa	xmm7,XMMWORD PTR[32+r11]
+	movdqa	xmm7,XMMWORD[32+r11]
 	movdqa	xmm9,xmm4
 	psrlq	xmm4,2
 	movdqa	xmm10,xmm3
@@ -588,27 +592,27 @@
 	pxor	xmm0,xmm9
 	pxor	xmm15,xmm10
 	dec	r10d
-	jmp	$L$dec_sbox
+	jmp	NEAR $L$dec_sbox
 ALIGN	16
-$L$dec_loop::
-	pxor	xmm15,XMMWORD PTR[rax]
-	pxor	xmm0,XMMWORD PTR[16+rax]
-	pxor	xmm1,XMMWORD PTR[32+rax]
-	pxor	xmm2,XMMWORD PTR[48+rax]
+$L$dec_loop:
+	pxor	xmm15,XMMWORD[rax]
+	pxor	xmm0,XMMWORD[16+rax]
+	pxor	xmm1,XMMWORD[32+rax]
+	pxor	xmm2,XMMWORD[48+rax]
 DB	102,68,15,56,0,255
 DB	102,15,56,0,199
-	pxor	xmm3,XMMWORD PTR[64+rax]
-	pxor	xmm4,XMMWORD PTR[80+rax]
+	pxor	xmm3,XMMWORD[64+rax]
+	pxor	xmm4,XMMWORD[80+rax]
 DB	102,15,56,0,207
 DB	102,15,56,0,215
-	pxor	xmm5,XMMWORD PTR[96+rax]
-	pxor	xmm6,XMMWORD PTR[112+rax]
+	pxor	xmm5,XMMWORD[96+rax]
+	pxor	xmm6,XMMWORD[112+rax]
 DB	102,15,56,0,223
 DB	102,15,56,0,231
 DB	102,15,56,0,239
 DB	102,15,56,0,247
-	lea	rax,QWORD PTR[128+rax]
-$L$dec_sbox::
+	lea	rax,[128+rax]
+$L$dec_sbox:
 	pxor	xmm2,xmm3
 
 	pxor	xmm3,xmm6
@@ -795,26 +799,26 @@
 	pxor	xmm3,xmm15
 	pxor	xmm6,xmm2
 	dec	r10d
-	jl	$L$dec_done
+	jl	NEAR $L$dec_done
 
-	pshufd	xmm7,xmm15,04Eh
-	pshufd	xmm13,xmm2,04Eh
+	pshufd	xmm7,xmm15,0x4E
+	pshufd	xmm13,xmm2,0x4E
 	pxor	xmm7,xmm15
-	pshufd	xmm14,xmm4,04Eh
+	pshufd	xmm14,xmm4,0x4E
 	pxor	xmm13,xmm2
-	pshufd	xmm8,xmm0,04Eh
+	pshufd	xmm8,xmm0,0x4E
 	pxor	xmm14,xmm4
-	pshufd	xmm9,xmm5,04Eh
+	pshufd	xmm9,xmm5,0x4E
 	pxor	xmm8,xmm0
-	pshufd	xmm10,xmm3,04Eh
+	pshufd	xmm10,xmm3,0x4E
 	pxor	xmm9,xmm5
 	pxor	xmm15,xmm13
 	pxor	xmm0,xmm13
-	pshufd	xmm11,xmm1,04Eh
+	pshufd	xmm11,xmm1,0x4E
 	pxor	xmm10,xmm3
 	pxor	xmm5,xmm7
 	pxor	xmm3,xmm8
-	pshufd	xmm12,xmm6,04Eh
+	pshufd	xmm12,xmm6,0x4E
 	pxor	xmm11,xmm1
 	pxor	xmm0,xmm14
 	pxor	xmm1,xmm9
@@ -828,45 +832,45 @@
 	pxor	xmm1,xmm14
 	pxor	xmm6,xmm14
 	pxor	xmm4,xmm12
-	pshufd	xmm7,xmm15,093h
-	pshufd	xmm8,xmm0,093h
+	pshufd	xmm7,xmm15,0x93
+	pshufd	xmm8,xmm0,0x93
 	pxor	xmm15,xmm7
-	pshufd	xmm9,xmm5,093h
+	pshufd	xmm9,xmm5,0x93
 	pxor	xmm0,xmm8
-	pshufd	xmm10,xmm3,093h
+	pshufd	xmm10,xmm3,0x93
 	pxor	xmm5,xmm9
-	pshufd	xmm11,xmm1,093h
+	pshufd	xmm11,xmm1,0x93
 	pxor	xmm3,xmm10
-	pshufd	xmm12,xmm6,093h
+	pshufd	xmm12,xmm6,0x93
 	pxor	xmm1,xmm11
-	pshufd	xmm13,xmm2,093h
+	pshufd	xmm13,xmm2,0x93
 	pxor	xmm6,xmm12
-	pshufd	xmm14,xmm4,093h
+	pshufd	xmm14,xmm4,0x93
 	pxor	xmm2,xmm13
 	pxor	xmm4,xmm14
 
 	pxor	xmm8,xmm15
 	pxor	xmm7,xmm4
 	pxor	xmm8,xmm4
-	pshufd	xmm15,xmm15,04Eh
+	pshufd	xmm15,xmm15,0x4E
 	pxor	xmm9,xmm0
-	pshufd	xmm0,xmm0,04Eh
+	pshufd	xmm0,xmm0,0x4E
 	pxor	xmm12,xmm1
 	pxor	xmm15,xmm7
 	pxor	xmm13,xmm6
 	pxor	xmm0,xmm8
 	pxor	xmm11,xmm3
-	pshufd	xmm7,xmm1,04Eh
+	pshufd	xmm7,xmm1,0x4E
 	pxor	xmm14,xmm2
-	pshufd	xmm8,xmm6,04Eh
+	pshufd	xmm8,xmm6,0x4E
 	pxor	xmm10,xmm5
-	pshufd	xmm1,xmm3,04Eh
+	pshufd	xmm1,xmm3,0x4E
 	pxor	xmm10,xmm4
-	pshufd	xmm6,xmm4,04Eh
+	pshufd	xmm6,xmm4,0x4E
 	pxor	xmm11,xmm4
-	pshufd	xmm3,xmm2,04Eh
+	pshufd	xmm3,xmm2,0x4E
 	pxor	xmm7,xmm11
-	pshufd	xmm2,xmm5,04Eh
+	pshufd	xmm2,xmm5,0x4E
 	pxor	xmm8,xmm12
 	pxor	xmm10,xmm1
 	pxor	xmm6,xmm14
@@ -877,14 +881,14 @@
 	movdqa	xmm4,xmm8
 	movdqa	xmm1,xmm2
 	movdqa	xmm2,xmm10
-	movdqa	xmm7,XMMWORD PTR[((-16))+r11]
-	jnz	$L$dec_loop
-	movdqa	xmm7,XMMWORD PTR[((-32))+r11]
-	jmp	$L$dec_loop
+	movdqa	xmm7,XMMWORD[((-16))+r11]
+	jnz	NEAR $L$dec_loop
+	movdqa	xmm7,XMMWORD[((-32))+r11]
+	jmp	NEAR $L$dec_loop
 ALIGN	16
-$L$dec_done::
-	movdqa	xmm7,XMMWORD PTR[r11]
-	movdqa	xmm8,XMMWORD PTR[16+r11]
+$L$dec_done:
+	movdqa	xmm7,XMMWORD[r11]
+	movdqa	xmm8,XMMWORD[16+r11]
 	movdqa	xmm9,xmm2
 	psrlq	xmm2,1
 	movdqa	xmm10,xmm1
@@ -913,7 +917,7 @@
 	psllq	xmm15,1
 	pxor	xmm5,xmm9
 	pxor	xmm15,xmm10
-	movdqa	xmm7,XMMWORD PTR[32+r11]
+	movdqa	xmm7,XMMWORD[32+r11]
 	movdqa	xmm9,xmm6
 	psrlq	xmm6,2
 	movdqa	xmm10,xmm1
@@ -970,7 +974,7 @@
 	psllq	xmm15,4
 	pxor	xmm0,xmm9
 	pxor	xmm15,xmm10
-	movdqa	xmm7,XMMWORD PTR[rax]
+	movdqa	xmm7,XMMWORD[rax]
 	pxor	xmm5,xmm7
 	pxor	xmm3,xmm7
 	pxor	xmm1,xmm7
@@ -980,27 +984,27 @@
 	pxor	xmm15,xmm7
 	pxor	xmm0,xmm7
 	DB	0F3h,0C3h		;repret
-_bsaes_decrypt8	ENDP
+
 
 ALIGN	16
-_bsaes_key_convert	PROC PRIVATE
-	lea	r11,QWORD PTR[$L$masks]
-	movdqu	xmm7,XMMWORD PTR[rcx]
-	lea	rcx,QWORD PTR[16+rcx]
-	movdqa	xmm0,XMMWORD PTR[r11]
-	movdqa	xmm1,XMMWORD PTR[16+r11]
-	movdqa	xmm2,XMMWORD PTR[32+r11]
-	movdqa	xmm3,XMMWORD PTR[48+r11]
-	movdqa	xmm4,XMMWORD PTR[64+r11]
+_bsaes_key_convert:
+	lea	r11,[$L$masks]
+	movdqu	xmm7,XMMWORD[rcx]
+	lea	rcx,[16+rcx]
+	movdqa	xmm0,XMMWORD[r11]
+	movdqa	xmm1,XMMWORD[16+r11]
+	movdqa	xmm2,XMMWORD[32+r11]
+	movdqa	xmm3,XMMWORD[48+r11]
+	movdqa	xmm4,XMMWORD[64+r11]
 	pcmpeqd	xmm5,xmm5
 
-	movdqu	xmm6,XMMWORD PTR[rcx]
-	movdqa	XMMWORD PTR[rax],xmm7
-	lea	rax,QWORD PTR[16+rax]
+	movdqu	xmm6,XMMWORD[rcx]
+	movdqa	XMMWORD[rax],xmm7
+	lea	rax,[16+rax]
 	dec	r10d
-	jmp	$L$key_loop
+	jmp	NEAR $L$key_loop
 ALIGN	16
-$L$key_loop::
+$L$key_loop:
 DB	102,15,56,0,244
 
 	movdqa	xmm8,xmm0
@@ -1031,73 +1035,73 @@
 
 	pand	xmm12,xmm6
 	pand	xmm13,xmm6
-	movdqa	XMMWORD PTR[rax],xmm8
+	movdqa	XMMWORD[rax],xmm8
 	pcmpeqb	xmm12,xmm0
 	psrlq	xmm0,4
-	movdqa	XMMWORD PTR[16+rax],xmm9
+	movdqa	XMMWORD[16+rax],xmm9
 	pcmpeqb	xmm13,xmm1
 	psrlq	xmm1,4
-	lea	rcx,QWORD PTR[16+rcx]
+	lea	rcx,[16+rcx]
 
 	pand	xmm14,xmm6
 	pand	xmm15,xmm6
-	movdqa	XMMWORD PTR[32+rax],xmm10
+	movdqa	XMMWORD[32+rax],xmm10
 	pcmpeqb	xmm14,xmm2
 	psrlq	xmm2,4
-	movdqa	XMMWORD PTR[48+rax],xmm11
+	movdqa	XMMWORD[48+rax],xmm11
 	pcmpeqb	xmm15,xmm3
 	psrlq	xmm3,4
-	movdqu	xmm6,XMMWORD PTR[rcx]
+	movdqu	xmm6,XMMWORD[rcx]
 
 	pxor	xmm13,xmm5
 	pxor	xmm14,xmm5
-	movdqa	XMMWORD PTR[64+rax],xmm12
-	movdqa	XMMWORD PTR[80+rax],xmm13
-	movdqa	XMMWORD PTR[96+rax],xmm14
-	movdqa	XMMWORD PTR[112+rax],xmm15
-	lea	rax,QWORD PTR[128+rax]
+	movdqa	XMMWORD[64+rax],xmm12
+	movdqa	XMMWORD[80+rax],xmm13
+	movdqa	XMMWORD[96+rax],xmm14
+	movdqa	XMMWORD[112+rax],xmm15
+	lea	rax,[128+rax]
 	dec	r10d
-	jnz	$L$key_loop
+	jnz	NEAR $L$key_loop
 
-	movdqa	xmm7,XMMWORD PTR[80+r11]
+	movdqa	xmm7,XMMWORD[80+r11]
 
 	DB	0F3h,0C3h		;repret
-_bsaes_key_convert	ENDP
-EXTERN	asm_AES_cbc_encrypt:NEAR
-PUBLIC	bsaes_cbc_encrypt
+
+EXTERN	asm_AES_cbc_encrypt
+global	bsaes_cbc_encrypt
 
 ALIGN	16
-bsaes_cbc_encrypt	PROC PUBLIC
-	mov	r11d,DWORD PTR[48+rsp]
+bsaes_cbc_encrypt:
+	mov	r11d,DWORD[48+rsp]
 	cmp	r11d,0
-	jne	asm_AES_cbc_encrypt
+	jne	NEAR asm_AES_cbc_encrypt
 	cmp	r8,128
-	jb	asm_AES_cbc_encrypt
+	jb	NEAR asm_AES_cbc_encrypt
 
 	mov	rax,rsp
-$L$cbc_dec_prologue::
+$L$cbc_dec_prologue:
 	push	rbp
 	push	rbx
 	push	r12
 	push	r13
 	push	r14
 	push	r15
-	lea	rsp,QWORD PTR[((-72))+rsp]
-	mov	r10,QWORD PTR[160+rsp]
-	lea	rsp,QWORD PTR[((-160))+rsp]
-	movaps	XMMWORD PTR[64+rsp],xmm6
-	movaps	XMMWORD PTR[80+rsp],xmm7
-	movaps	XMMWORD PTR[96+rsp],xmm8
-	movaps	XMMWORD PTR[112+rsp],xmm9
-	movaps	XMMWORD PTR[128+rsp],xmm10
-	movaps	XMMWORD PTR[144+rsp],xmm11
-	movaps	XMMWORD PTR[160+rsp],xmm12
-	movaps	XMMWORD PTR[176+rsp],xmm13
-	movaps	XMMWORD PTR[192+rsp],xmm14
-	movaps	XMMWORD PTR[208+rsp],xmm15
-$L$cbc_dec_body::
+	lea	rsp,[((-72))+rsp]
+	mov	r10,QWORD[160+rsp]
+	lea	rsp,[((-160))+rsp]
+	movaps	XMMWORD[64+rsp],xmm6
+	movaps	XMMWORD[80+rsp],xmm7
+	movaps	XMMWORD[96+rsp],xmm8
+	movaps	XMMWORD[112+rsp],xmm9
+	movaps	XMMWORD[128+rsp],xmm10
+	movaps	XMMWORD[144+rsp],xmm11
+	movaps	XMMWORD[160+rsp],xmm12
+	movaps	XMMWORD[176+rsp],xmm13
+	movaps	XMMWORD[192+rsp],xmm14
+	movaps	XMMWORD[208+rsp],xmm15
+$L$cbc_dec_body:
 	mov	rbp,rsp
-	mov	eax,DWORD PTR[240+r9]
+	mov	eax,DWORD[240+r9]
 	mov	r12,rcx
 	mov	r13,rdx
 	mov	r14,r8
@@ -1114,267 +1118,267 @@
 	mov	rcx,r15
 	mov	r10d,edx
 	call	_bsaes_key_convert
-	pxor	xmm7,XMMWORD PTR[rsp]
-	movdqa	XMMWORD PTR[rax],xmm6
-	movdqa	XMMWORD PTR[rsp],xmm7
+	pxor	xmm7,XMMWORD[rsp]
+	movdqa	XMMWORD[rax],xmm6
+	movdqa	XMMWORD[rsp],xmm7
 
-	movdqu	xmm14,XMMWORD PTR[rbx]
+	movdqu	xmm14,XMMWORD[rbx]
 	sub	r14,8
-$L$cbc_dec_loop::
-	movdqu	xmm15,XMMWORD PTR[r12]
-	movdqu	xmm0,XMMWORD PTR[16+r12]
-	movdqu	xmm1,XMMWORD PTR[32+r12]
-	movdqu	xmm2,XMMWORD PTR[48+r12]
-	movdqu	xmm3,XMMWORD PTR[64+r12]
-	movdqu	xmm4,XMMWORD PTR[80+r12]
+$L$cbc_dec_loop:
+	movdqu	xmm15,XMMWORD[r12]
+	movdqu	xmm0,XMMWORD[16+r12]
+	movdqu	xmm1,XMMWORD[32+r12]
+	movdqu	xmm2,XMMWORD[48+r12]
+	movdqu	xmm3,XMMWORD[64+r12]
+	movdqu	xmm4,XMMWORD[80+r12]
 	mov	rax,rsp
-	movdqu	xmm5,XMMWORD PTR[96+r12]
+	movdqu	xmm5,XMMWORD[96+r12]
 	mov	r10d,edx
-	movdqu	xmm6,XMMWORD PTR[112+r12]
-	movdqa	XMMWORD PTR[32+rbp],xmm14
+	movdqu	xmm6,XMMWORD[112+r12]
+	movdqa	XMMWORD[32+rbp],xmm14
 
 	call	_bsaes_decrypt8
 
-	pxor	xmm15,XMMWORD PTR[32+rbp]
-	movdqu	xmm7,XMMWORD PTR[r12]
-	movdqu	xmm8,XMMWORD PTR[16+r12]
+	pxor	xmm15,XMMWORD[32+rbp]
+	movdqu	xmm7,XMMWORD[r12]
+	movdqu	xmm8,XMMWORD[16+r12]
 	pxor	xmm0,xmm7
-	movdqu	xmm9,XMMWORD PTR[32+r12]
+	movdqu	xmm9,XMMWORD[32+r12]
 	pxor	xmm5,xmm8
-	movdqu	xmm10,XMMWORD PTR[48+r12]
+	movdqu	xmm10,XMMWORD[48+r12]
 	pxor	xmm3,xmm9
-	movdqu	xmm11,XMMWORD PTR[64+r12]
+	movdqu	xmm11,XMMWORD[64+r12]
 	pxor	xmm1,xmm10
-	movdqu	xmm12,XMMWORD PTR[80+r12]
+	movdqu	xmm12,XMMWORD[80+r12]
 	pxor	xmm6,xmm11
-	movdqu	xmm13,XMMWORD PTR[96+r12]
+	movdqu	xmm13,XMMWORD[96+r12]
 	pxor	xmm2,xmm12
-	movdqu	xmm14,XMMWORD PTR[112+r12]
+	movdqu	xmm14,XMMWORD[112+r12]
 	pxor	xmm4,xmm13
-	movdqu	XMMWORD PTR[r13],xmm15
-	lea	r12,QWORD PTR[128+r12]
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	movdqu	XMMWORD PTR[32+r13],xmm5
-	movdqu	XMMWORD PTR[48+r13],xmm3
-	movdqu	XMMWORD PTR[64+r13],xmm1
-	movdqu	XMMWORD PTR[80+r13],xmm6
-	movdqu	XMMWORD PTR[96+r13],xmm2
-	movdqu	XMMWORD PTR[112+r13],xmm4
-	lea	r13,QWORD PTR[128+r13]
+	movdqu	XMMWORD[r13],xmm15
+	lea	r12,[128+r12]
+	movdqu	XMMWORD[16+r13],xmm0
+	movdqu	XMMWORD[32+r13],xmm5
+	movdqu	XMMWORD[48+r13],xmm3
+	movdqu	XMMWORD[64+r13],xmm1
+	movdqu	XMMWORD[80+r13],xmm6
+	movdqu	XMMWORD[96+r13],xmm2
+	movdqu	XMMWORD[112+r13],xmm4
+	lea	r13,[128+r13]
 	sub	r14,8
-	jnc	$L$cbc_dec_loop
+	jnc	NEAR $L$cbc_dec_loop
 
 	add	r14,8
-	jz	$L$cbc_dec_done
+	jz	NEAR $L$cbc_dec_done
 
-	movdqu	xmm15,XMMWORD PTR[r12]
+	movdqu	xmm15,XMMWORD[r12]
 	mov	rax,rsp
 	mov	r10d,edx
 	cmp	r14,2
-	jb	$L$cbc_dec_one
-	movdqu	xmm0,XMMWORD PTR[16+r12]
-	je	$L$cbc_dec_two
-	movdqu	xmm1,XMMWORD PTR[32+r12]
+	jb	NEAR $L$cbc_dec_one
+	movdqu	xmm0,XMMWORD[16+r12]
+	je	NEAR $L$cbc_dec_two
+	movdqu	xmm1,XMMWORD[32+r12]
 	cmp	r14,4
-	jb	$L$cbc_dec_three
-	movdqu	xmm2,XMMWORD PTR[48+r12]
-	je	$L$cbc_dec_four
-	movdqu	xmm3,XMMWORD PTR[64+r12]
+	jb	NEAR $L$cbc_dec_three
+	movdqu	xmm2,XMMWORD[48+r12]
+	je	NEAR $L$cbc_dec_four
+	movdqu	xmm3,XMMWORD[64+r12]
 	cmp	r14,6
-	jb	$L$cbc_dec_five
-	movdqu	xmm4,XMMWORD PTR[80+r12]
-	je	$L$cbc_dec_six
-	movdqu	xmm5,XMMWORD PTR[96+r12]
-	movdqa	XMMWORD PTR[32+rbp],xmm14
+	jb	NEAR $L$cbc_dec_five
+	movdqu	xmm4,XMMWORD[80+r12]
+	je	NEAR $L$cbc_dec_six
+	movdqu	xmm5,XMMWORD[96+r12]
+	movdqa	XMMWORD[32+rbp],xmm14
 	call	_bsaes_decrypt8
-	pxor	xmm15,XMMWORD PTR[32+rbp]
-	movdqu	xmm7,XMMWORD PTR[r12]
-	movdqu	xmm8,XMMWORD PTR[16+r12]
+	pxor	xmm15,XMMWORD[32+rbp]
+	movdqu	xmm7,XMMWORD[r12]
+	movdqu	xmm8,XMMWORD[16+r12]
 	pxor	xmm0,xmm7
-	movdqu	xmm9,XMMWORD PTR[32+r12]
+	movdqu	xmm9,XMMWORD[32+r12]
 	pxor	xmm5,xmm8
-	movdqu	xmm10,XMMWORD PTR[48+r12]
+	movdqu	xmm10,XMMWORD[48+r12]
 	pxor	xmm3,xmm9
-	movdqu	xmm11,XMMWORD PTR[64+r12]
+	movdqu	xmm11,XMMWORD[64+r12]
 	pxor	xmm1,xmm10
-	movdqu	xmm12,XMMWORD PTR[80+r12]
+	movdqu	xmm12,XMMWORD[80+r12]
 	pxor	xmm6,xmm11
-	movdqu	xmm14,XMMWORD PTR[96+r12]
+	movdqu	xmm14,XMMWORD[96+r12]
 	pxor	xmm2,xmm12
-	movdqu	XMMWORD PTR[r13],xmm15
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	movdqu	XMMWORD PTR[32+r13],xmm5
-	movdqu	XMMWORD PTR[48+r13],xmm3
-	movdqu	XMMWORD PTR[64+r13],xmm1
-	movdqu	XMMWORD PTR[80+r13],xmm6
-	movdqu	XMMWORD PTR[96+r13],xmm2
-	jmp	$L$cbc_dec_done
+	movdqu	XMMWORD[r13],xmm15
+	movdqu	XMMWORD[16+r13],xmm0
+	movdqu	XMMWORD[32+r13],xmm5
+	movdqu	XMMWORD[48+r13],xmm3
+	movdqu	XMMWORD[64+r13],xmm1
+	movdqu	XMMWORD[80+r13],xmm6
+	movdqu	XMMWORD[96+r13],xmm2
+	jmp	NEAR $L$cbc_dec_done
 ALIGN	16
-$L$cbc_dec_six::
-	movdqa	XMMWORD PTR[32+rbp],xmm14
+$L$cbc_dec_six:
+	movdqa	XMMWORD[32+rbp],xmm14
 	call	_bsaes_decrypt8
-	pxor	xmm15,XMMWORD PTR[32+rbp]
-	movdqu	xmm7,XMMWORD PTR[r12]
-	movdqu	xmm8,XMMWORD PTR[16+r12]
+	pxor	xmm15,XMMWORD[32+rbp]
+	movdqu	xmm7,XMMWORD[r12]
+	movdqu	xmm8,XMMWORD[16+r12]
 	pxor	xmm0,xmm7
-	movdqu	xmm9,XMMWORD PTR[32+r12]
+	movdqu	xmm9,XMMWORD[32+r12]
 	pxor	xmm5,xmm8
-	movdqu	xmm10,XMMWORD PTR[48+r12]
+	movdqu	xmm10,XMMWORD[48+r12]
 	pxor	xmm3,xmm9
-	movdqu	xmm11,XMMWORD PTR[64+r12]
+	movdqu	xmm11,XMMWORD[64+r12]
 	pxor	xmm1,xmm10
-	movdqu	xmm14,XMMWORD PTR[80+r12]
+	movdqu	xmm14,XMMWORD[80+r12]
 	pxor	xmm6,xmm11
-	movdqu	XMMWORD PTR[r13],xmm15
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	movdqu	XMMWORD PTR[32+r13],xmm5
-	movdqu	XMMWORD PTR[48+r13],xmm3
-	movdqu	XMMWORD PTR[64+r13],xmm1
-	movdqu	XMMWORD PTR[80+r13],xmm6
-	jmp	$L$cbc_dec_done
+	movdqu	XMMWORD[r13],xmm15
+	movdqu	XMMWORD[16+r13],xmm0
+	movdqu	XMMWORD[32+r13],xmm5
+	movdqu	XMMWORD[48+r13],xmm3
+	movdqu	XMMWORD[64+r13],xmm1
+	movdqu	XMMWORD[80+r13],xmm6
+	jmp	NEAR $L$cbc_dec_done
 ALIGN	16
-$L$cbc_dec_five::
-	movdqa	XMMWORD PTR[32+rbp],xmm14
+$L$cbc_dec_five:
+	movdqa	XMMWORD[32+rbp],xmm14
 	call	_bsaes_decrypt8
-	pxor	xmm15,XMMWORD PTR[32+rbp]
-	movdqu	xmm7,XMMWORD PTR[r12]
-	movdqu	xmm8,XMMWORD PTR[16+r12]
+	pxor	xmm15,XMMWORD[32+rbp]
+	movdqu	xmm7,XMMWORD[r12]
+	movdqu	xmm8,XMMWORD[16+r12]
 	pxor	xmm0,xmm7
-	movdqu	xmm9,XMMWORD PTR[32+r12]
+	movdqu	xmm9,XMMWORD[32+r12]
 	pxor	xmm5,xmm8
-	movdqu	xmm10,XMMWORD PTR[48+r12]
+	movdqu	xmm10,XMMWORD[48+r12]
 	pxor	xmm3,xmm9
-	movdqu	xmm14,XMMWORD PTR[64+r12]
+	movdqu	xmm14,XMMWORD[64+r12]
 	pxor	xmm1,xmm10
-	movdqu	XMMWORD PTR[r13],xmm15
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	movdqu	XMMWORD PTR[32+r13],xmm5
-	movdqu	XMMWORD PTR[48+r13],xmm3
-	movdqu	XMMWORD PTR[64+r13],xmm1
-	jmp	$L$cbc_dec_done
+	movdqu	XMMWORD[r13],xmm15
+	movdqu	XMMWORD[16+r13],xmm0
+	movdqu	XMMWORD[32+r13],xmm5
+	movdqu	XMMWORD[48+r13],xmm3
+	movdqu	XMMWORD[64+r13],xmm1
+	jmp	NEAR $L$cbc_dec_done
 ALIGN	16
-$L$cbc_dec_four::
-	movdqa	XMMWORD PTR[32+rbp],xmm14
+$L$cbc_dec_four:
+	movdqa	XMMWORD[32+rbp],xmm14
 	call	_bsaes_decrypt8
-	pxor	xmm15,XMMWORD PTR[32+rbp]
-	movdqu	xmm7,XMMWORD PTR[r12]
-	movdqu	xmm8,XMMWORD PTR[16+r12]
+	pxor	xmm15,XMMWORD[32+rbp]
+	movdqu	xmm7,XMMWORD[r12]
+	movdqu	xmm8,XMMWORD[16+r12]
 	pxor	xmm0,xmm7
-	movdqu	xmm9,XMMWORD PTR[32+r12]
+	movdqu	xmm9,XMMWORD[32+r12]
 	pxor	xmm5,xmm8
-	movdqu	xmm14,XMMWORD PTR[48+r12]
+	movdqu	xmm14,XMMWORD[48+r12]
 	pxor	xmm3,xmm9
-	movdqu	XMMWORD PTR[r13],xmm15
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	movdqu	XMMWORD PTR[32+r13],xmm5
-	movdqu	XMMWORD PTR[48+r13],xmm3
-	jmp	$L$cbc_dec_done
+	movdqu	XMMWORD[r13],xmm15
+	movdqu	XMMWORD[16+r13],xmm0
+	movdqu	XMMWORD[32+r13],xmm5
+	movdqu	XMMWORD[48+r13],xmm3
+	jmp	NEAR $L$cbc_dec_done
 ALIGN	16
-$L$cbc_dec_three::
-	movdqa	XMMWORD PTR[32+rbp],xmm14
+$L$cbc_dec_three:
+	movdqa	XMMWORD[32+rbp],xmm14
 	call	_bsaes_decrypt8
-	pxor	xmm15,XMMWORD PTR[32+rbp]
-	movdqu	xmm7,XMMWORD PTR[r12]
-	movdqu	xmm8,XMMWORD PTR[16+r12]
+	pxor	xmm15,XMMWORD[32+rbp]
+	movdqu	xmm7,XMMWORD[r12]
+	movdqu	xmm8,XMMWORD[16+r12]
 	pxor	xmm0,xmm7
-	movdqu	xmm14,XMMWORD PTR[32+r12]
+	movdqu	xmm14,XMMWORD[32+r12]
 	pxor	xmm5,xmm8
-	movdqu	XMMWORD PTR[r13],xmm15
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	movdqu	XMMWORD PTR[32+r13],xmm5
-	jmp	$L$cbc_dec_done
+	movdqu	XMMWORD[r13],xmm15
+	movdqu	XMMWORD[16+r13],xmm0
+	movdqu	XMMWORD[32+r13],xmm5
+	jmp	NEAR $L$cbc_dec_done
 ALIGN	16
-$L$cbc_dec_two::
-	movdqa	XMMWORD PTR[32+rbp],xmm14
+$L$cbc_dec_two:
+	movdqa	XMMWORD[32+rbp],xmm14
 	call	_bsaes_decrypt8
-	pxor	xmm15,XMMWORD PTR[32+rbp]
-	movdqu	xmm7,XMMWORD PTR[r12]
-	movdqu	xmm14,XMMWORD PTR[16+r12]
+	pxor	xmm15,XMMWORD[32+rbp]
+	movdqu	xmm7,XMMWORD[r12]
+	movdqu	xmm14,XMMWORD[16+r12]
 	pxor	xmm0,xmm7
-	movdqu	XMMWORD PTR[r13],xmm15
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	jmp	$L$cbc_dec_done
+	movdqu	XMMWORD[r13],xmm15
+	movdqu	XMMWORD[16+r13],xmm0
+	jmp	NEAR $L$cbc_dec_done
 ALIGN	16
-$L$cbc_dec_one::
-	lea	rcx,QWORD PTR[r12]
-	lea	rdx,QWORD PTR[32+rbp]
-	lea	r8,QWORD PTR[r15]
+$L$cbc_dec_one:
+	lea	rcx,[r12]
+	lea	rdx,[32+rbp]
+	lea	r8,[r15]
 	call	asm_AES_decrypt
-	pxor	xmm14,XMMWORD PTR[32+rbp]
-	movdqu	XMMWORD PTR[r13],xmm14
+	pxor	xmm14,XMMWORD[32+rbp]
+	movdqu	XMMWORD[r13],xmm14
 	movdqa	xmm14,xmm15
 
-$L$cbc_dec_done::
-	movdqu	XMMWORD PTR[rbx],xmm14
-	lea	rax,QWORD PTR[rsp]
+$L$cbc_dec_done:
+	movdqu	XMMWORD[rbx],xmm14
+	lea	rax,[rsp]
 	pxor	xmm0,xmm0
-$L$cbc_dec_bzero::
-	movdqa	XMMWORD PTR[rax],xmm0
-	movdqa	XMMWORD PTR[16+rax],xmm0
-	lea	rax,QWORD PTR[32+rax]
+$L$cbc_dec_bzero:
+	movdqa	XMMWORD[rax],xmm0
+	movdqa	XMMWORD[16+rax],xmm0
+	lea	rax,[32+rax]
 	cmp	rbp,rax
-	ja	$L$cbc_dec_bzero
+	ja	NEAR $L$cbc_dec_bzero
 
-	lea	rsp,QWORD PTR[rbp]
-	movaps	xmm6,XMMWORD PTR[64+rbp]
-	movaps	xmm7,XMMWORD PTR[80+rbp]
-	movaps	xmm8,XMMWORD PTR[96+rbp]
-	movaps	xmm9,XMMWORD PTR[112+rbp]
-	movaps	xmm10,XMMWORD PTR[128+rbp]
-	movaps	xmm11,XMMWORD PTR[144+rbp]
-	movaps	xmm12,XMMWORD PTR[160+rbp]
-	movaps	xmm13,XMMWORD PTR[176+rbp]
-	movaps	xmm14,XMMWORD PTR[192+rbp]
-	movaps	xmm15,XMMWORD PTR[208+rbp]
-	lea	rsp,QWORD PTR[160+rbp]
-	mov	r15,QWORD PTR[72+rsp]
-	mov	r14,QWORD PTR[80+rsp]
-	mov	r13,QWORD PTR[88+rsp]
-	mov	r12,QWORD PTR[96+rsp]
-	mov	rbx,QWORD PTR[104+rsp]
-	mov	rax,QWORD PTR[112+rsp]
-	lea	rsp,QWORD PTR[120+rsp]
+	lea	rsp,[rbp]
+	movaps	xmm6,XMMWORD[64+rbp]
+	movaps	xmm7,XMMWORD[80+rbp]
+	movaps	xmm8,XMMWORD[96+rbp]
+	movaps	xmm9,XMMWORD[112+rbp]
+	movaps	xmm10,XMMWORD[128+rbp]
+	movaps	xmm11,XMMWORD[144+rbp]
+	movaps	xmm12,XMMWORD[160+rbp]
+	movaps	xmm13,XMMWORD[176+rbp]
+	movaps	xmm14,XMMWORD[192+rbp]
+	movaps	xmm15,XMMWORD[208+rbp]
+	lea	rsp,[160+rbp]
+	mov	r15,QWORD[72+rsp]
+	mov	r14,QWORD[80+rsp]
+	mov	r13,QWORD[88+rsp]
+	mov	r12,QWORD[96+rsp]
+	mov	rbx,QWORD[104+rsp]
+	mov	rax,QWORD[112+rsp]
+	lea	rsp,[120+rsp]
 	mov	rbp,rax
-$L$cbc_dec_epilogue::
+$L$cbc_dec_epilogue:
 	DB	0F3h,0C3h		;repret
-bsaes_cbc_encrypt	ENDP
 
-PUBLIC	bsaes_ctr32_encrypt_blocks
+
+global	bsaes_ctr32_encrypt_blocks
 
 ALIGN	16
-bsaes_ctr32_encrypt_blocks	PROC PUBLIC
+bsaes_ctr32_encrypt_blocks:
 	mov	rax,rsp
-$L$ctr_enc_prologue::
+$L$ctr_enc_prologue:
 	push	rbp
 	push	rbx
 	push	r12
 	push	r13
 	push	r14
 	push	r15
-	lea	rsp,QWORD PTR[((-72))+rsp]
-	mov	r10,QWORD PTR[160+rsp]
-	lea	rsp,QWORD PTR[((-160))+rsp]
-	movaps	XMMWORD PTR[64+rsp],xmm6
-	movaps	XMMWORD PTR[80+rsp],xmm7
-	movaps	XMMWORD PTR[96+rsp],xmm8
-	movaps	XMMWORD PTR[112+rsp],xmm9
-	movaps	XMMWORD PTR[128+rsp],xmm10
-	movaps	XMMWORD PTR[144+rsp],xmm11
-	movaps	XMMWORD PTR[160+rsp],xmm12
-	movaps	XMMWORD PTR[176+rsp],xmm13
-	movaps	XMMWORD PTR[192+rsp],xmm14
-	movaps	XMMWORD PTR[208+rsp],xmm15
-$L$ctr_enc_body::
+	lea	rsp,[((-72))+rsp]
+	mov	r10,QWORD[160+rsp]
+	lea	rsp,[((-160))+rsp]
+	movaps	XMMWORD[64+rsp],xmm6
+	movaps	XMMWORD[80+rsp],xmm7
+	movaps	XMMWORD[96+rsp],xmm8
+	movaps	XMMWORD[112+rsp],xmm9
+	movaps	XMMWORD[128+rsp],xmm10
+	movaps	XMMWORD[144+rsp],xmm11
+	movaps	XMMWORD[160+rsp],xmm12
+	movaps	XMMWORD[176+rsp],xmm13
+	movaps	XMMWORD[192+rsp],xmm14
+	movaps	XMMWORD[208+rsp],xmm15
+$L$ctr_enc_body:
 	mov	rbp,rsp
-	movdqu	xmm0,XMMWORD PTR[r10]
-	mov	eax,DWORD PTR[240+r9]
+	movdqu	xmm0,XMMWORD[r10]
+	mov	eax,DWORD[240+r9]
 	mov	r12,rcx
 	mov	r13,rdx
 	mov	r14,r8
 	mov	r15,r9
-	movdqa	XMMWORD PTR[32+rbp],xmm0
+	movdqa	XMMWORD[32+rbp],xmm0
 	cmp	r8,8
-	jb	$L$ctr_enc_short
+	jb	NEAR $L$ctr_enc_short
 
 	mov	ebx,eax
 	shl	rax,7
@@ -1386,39 +1390,39 @@
 	mov	r10d,ebx
 	call	_bsaes_key_convert
 	pxor	xmm7,xmm6
-	movdqa	XMMWORD PTR[rax],xmm7
+	movdqa	XMMWORD[rax],xmm7
 
-	movdqa	xmm8,XMMWORD PTR[rsp]
-	lea	r11,QWORD PTR[$L$ADD1]
-	movdqa	xmm15,XMMWORD PTR[32+rbp]
-	movdqa	xmm7,XMMWORD PTR[((-32))+r11]
+	movdqa	xmm8,XMMWORD[rsp]
+	lea	r11,[$L$ADD1]
+	movdqa	xmm15,XMMWORD[32+rbp]
+	movdqa	xmm7,XMMWORD[((-32))+r11]
 DB	102,68,15,56,0,199
 DB	102,68,15,56,0,255
-	movdqa	XMMWORD PTR[rsp],xmm8
-	jmp	$L$ctr_enc_loop
+	movdqa	XMMWORD[rsp],xmm8
+	jmp	NEAR $L$ctr_enc_loop
 ALIGN	16
-$L$ctr_enc_loop::
-	movdqa	XMMWORD PTR[32+rbp],xmm15
+$L$ctr_enc_loop:
+	movdqa	XMMWORD[32+rbp],xmm15
 	movdqa	xmm0,xmm15
 	movdqa	xmm1,xmm15
-	paddd	xmm0,XMMWORD PTR[r11]
+	paddd	xmm0,XMMWORD[r11]
 	movdqa	xmm2,xmm15
-	paddd	xmm1,XMMWORD PTR[16+r11]
+	paddd	xmm1,XMMWORD[16+r11]
 	movdqa	xmm3,xmm15
-	paddd	xmm2,XMMWORD PTR[32+r11]
+	paddd	xmm2,XMMWORD[32+r11]
 	movdqa	xmm4,xmm15
-	paddd	xmm3,XMMWORD PTR[48+r11]
+	paddd	xmm3,XMMWORD[48+r11]
 	movdqa	xmm5,xmm15
-	paddd	xmm4,XMMWORD PTR[64+r11]
+	paddd	xmm4,XMMWORD[64+r11]
 	movdqa	xmm6,xmm15
-	paddd	xmm5,XMMWORD PTR[80+r11]
-	paddd	xmm6,XMMWORD PTR[96+r11]
+	paddd	xmm5,XMMWORD[80+r11]
+	paddd	xmm6,XMMWORD[96+r11]
 
 
 
-	movdqa	xmm8,XMMWORD PTR[rsp]
-	lea	rax,QWORD PTR[16+rsp]
-	movdqa	xmm7,XMMWORD PTR[((-16))+r11]
+	movdqa	xmm8,XMMWORD[rsp]
+	lea	rax,[16+rsp]
+	movdqa	xmm7,XMMWORD[((-16))+r11]
 	pxor	xmm15,xmm8
 	pxor	xmm0,xmm8
 	pxor	xmm1,xmm8
@@ -1435,172 +1439,172 @@
 DB	102,15,56,0,231
 DB	102,15,56,0,239
 DB	102,15,56,0,247
-	lea	r11,QWORD PTR[$L$BS0]
+	lea	r11,[$L$BS0]
 	mov	r10d,ebx
 
 	call	_bsaes_encrypt8_bitslice
 
 	sub	r14,8
-	jc	$L$ctr_enc_loop_done
+	jc	NEAR $L$ctr_enc_loop_done
 
-	movdqu	xmm7,XMMWORD PTR[r12]
-	movdqu	xmm8,XMMWORD PTR[16+r12]
-	movdqu	xmm9,XMMWORD PTR[32+r12]
-	movdqu	xmm10,XMMWORD PTR[48+r12]
-	movdqu	xmm11,XMMWORD PTR[64+r12]
-	movdqu	xmm12,XMMWORD PTR[80+r12]
-	movdqu	xmm13,XMMWORD PTR[96+r12]
-	movdqu	xmm14,XMMWORD PTR[112+r12]
-	lea	r12,QWORD PTR[128+r12]
+	movdqu	xmm7,XMMWORD[r12]
+	movdqu	xmm8,XMMWORD[16+r12]
+	movdqu	xmm9,XMMWORD[32+r12]
+	movdqu	xmm10,XMMWORD[48+r12]
+	movdqu	xmm11,XMMWORD[64+r12]
+	movdqu	xmm12,XMMWORD[80+r12]
+	movdqu	xmm13,XMMWORD[96+r12]
+	movdqu	xmm14,XMMWORD[112+r12]
+	lea	r12,[128+r12]
 	pxor	xmm7,xmm15
-	movdqa	xmm15,XMMWORD PTR[32+rbp]
+	movdqa	xmm15,XMMWORD[32+rbp]
 	pxor	xmm0,xmm8
-	movdqu	XMMWORD PTR[r13],xmm7
+	movdqu	XMMWORD[r13],xmm7
 	pxor	xmm3,xmm9
-	movdqu	XMMWORD PTR[16+r13],xmm0
+	movdqu	XMMWORD[16+r13],xmm0
 	pxor	xmm5,xmm10
-	movdqu	XMMWORD PTR[32+r13],xmm3
+	movdqu	XMMWORD[32+r13],xmm3
 	pxor	xmm2,xmm11
-	movdqu	XMMWORD PTR[48+r13],xmm5
+	movdqu	XMMWORD[48+r13],xmm5
 	pxor	xmm6,xmm12
-	movdqu	XMMWORD PTR[64+r13],xmm2
+	movdqu	XMMWORD[64+r13],xmm2
 	pxor	xmm1,xmm13
-	movdqu	XMMWORD PTR[80+r13],xmm6
+	movdqu	XMMWORD[80+r13],xmm6
 	pxor	xmm4,xmm14
-	movdqu	XMMWORD PTR[96+r13],xmm1
-	lea	r11,QWORD PTR[$L$ADD1]
-	movdqu	XMMWORD PTR[112+r13],xmm4
-	lea	r13,QWORD PTR[128+r13]
-	paddd	xmm15,XMMWORD PTR[112+r11]
-	jnz	$L$ctr_enc_loop
+	movdqu	XMMWORD[96+r13],xmm1
+	lea	r11,[$L$ADD1]
+	movdqu	XMMWORD[112+r13],xmm4
+	lea	r13,[128+r13]
+	paddd	xmm15,XMMWORD[112+r11]
+	jnz	NEAR $L$ctr_enc_loop
 
-	jmp	$L$ctr_enc_done
+	jmp	NEAR $L$ctr_enc_done
 ALIGN	16
-$L$ctr_enc_loop_done::
+$L$ctr_enc_loop_done:
 	add	r14,8
-	movdqu	xmm7,XMMWORD PTR[r12]
+	movdqu	xmm7,XMMWORD[r12]
 	pxor	xmm15,xmm7
-	movdqu	XMMWORD PTR[r13],xmm15
+	movdqu	XMMWORD[r13],xmm15
 	cmp	r14,2
-	jb	$L$ctr_enc_done
-	movdqu	xmm8,XMMWORD PTR[16+r12]
+	jb	NEAR $L$ctr_enc_done
+	movdqu	xmm8,XMMWORD[16+r12]
 	pxor	xmm0,xmm8
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	je	$L$ctr_enc_done
-	movdqu	xmm9,XMMWORD PTR[32+r12]
+	movdqu	XMMWORD[16+r13],xmm0
+	je	NEAR $L$ctr_enc_done
+	movdqu	xmm9,XMMWORD[32+r12]
 	pxor	xmm3,xmm9
-	movdqu	XMMWORD PTR[32+r13],xmm3
+	movdqu	XMMWORD[32+r13],xmm3
 	cmp	r14,4
-	jb	$L$ctr_enc_done
-	movdqu	xmm10,XMMWORD PTR[48+r12]
+	jb	NEAR $L$ctr_enc_done
+	movdqu	xmm10,XMMWORD[48+r12]
 	pxor	xmm5,xmm10
-	movdqu	XMMWORD PTR[48+r13],xmm5
-	je	$L$ctr_enc_done
-	movdqu	xmm11,XMMWORD PTR[64+r12]
+	movdqu	XMMWORD[48+r13],xmm5
+	je	NEAR $L$ctr_enc_done
+	movdqu	xmm11,XMMWORD[64+r12]
 	pxor	xmm2,xmm11
-	movdqu	XMMWORD PTR[64+r13],xmm2
+	movdqu	XMMWORD[64+r13],xmm2
 	cmp	r14,6
-	jb	$L$ctr_enc_done
-	movdqu	xmm12,XMMWORD PTR[80+r12]
+	jb	NEAR $L$ctr_enc_done
+	movdqu	xmm12,XMMWORD[80+r12]
 	pxor	xmm6,xmm12
-	movdqu	XMMWORD PTR[80+r13],xmm6
-	je	$L$ctr_enc_done
-	movdqu	xmm13,XMMWORD PTR[96+r12]
+	movdqu	XMMWORD[80+r13],xmm6
+	je	NEAR $L$ctr_enc_done
+	movdqu	xmm13,XMMWORD[96+r12]
 	pxor	xmm1,xmm13
-	movdqu	XMMWORD PTR[96+r13],xmm1
-	jmp	$L$ctr_enc_done
+	movdqu	XMMWORD[96+r13],xmm1
+	jmp	NEAR $L$ctr_enc_done
 
 ALIGN	16
-$L$ctr_enc_short::
-	lea	rcx,QWORD PTR[32+rbp]
-	lea	rdx,QWORD PTR[48+rbp]
-	lea	r8,QWORD PTR[r15]
+$L$ctr_enc_short:
+	lea	rcx,[32+rbp]
+	lea	rdx,[48+rbp]
+	lea	r8,[r15]
 	call	asm_AES_encrypt
-	movdqu	xmm0,XMMWORD PTR[r12]
-	lea	r12,QWORD PTR[16+r12]
-	mov	eax,DWORD PTR[44+rbp]
+	movdqu	xmm0,XMMWORD[r12]
+	lea	r12,[16+r12]
+	mov	eax,DWORD[44+rbp]
 	bswap	eax
-	pxor	xmm0,XMMWORD PTR[48+rbp]
+	pxor	xmm0,XMMWORD[48+rbp]
 	inc	eax
-	movdqu	XMMWORD PTR[r13],xmm0
+	movdqu	XMMWORD[r13],xmm0
 	bswap	eax
-	lea	r13,QWORD PTR[16+r13]
-	mov	DWORD PTR[44+rsp],eax
+	lea	r13,[16+r13]
+	mov	DWORD[44+rsp],eax
 	dec	r14
-	jnz	$L$ctr_enc_short
+	jnz	NEAR $L$ctr_enc_short
 
-$L$ctr_enc_done::
-	lea	rax,QWORD PTR[rsp]
+$L$ctr_enc_done:
+	lea	rax,[rsp]
 	pxor	xmm0,xmm0
-$L$ctr_enc_bzero::
-	movdqa	XMMWORD PTR[rax],xmm0
-	movdqa	XMMWORD PTR[16+rax],xmm0
-	lea	rax,QWORD PTR[32+rax]
+$L$ctr_enc_bzero:
+	movdqa	XMMWORD[rax],xmm0
+	movdqa	XMMWORD[16+rax],xmm0
+	lea	rax,[32+rax]
 	cmp	rbp,rax
-	ja	$L$ctr_enc_bzero
+	ja	NEAR $L$ctr_enc_bzero
 
-	lea	rsp,QWORD PTR[rbp]
-	movaps	xmm6,XMMWORD PTR[64+rbp]
-	movaps	xmm7,XMMWORD PTR[80+rbp]
-	movaps	xmm8,XMMWORD PTR[96+rbp]
-	movaps	xmm9,XMMWORD PTR[112+rbp]
-	movaps	xmm10,XMMWORD PTR[128+rbp]
-	movaps	xmm11,XMMWORD PTR[144+rbp]
-	movaps	xmm12,XMMWORD PTR[160+rbp]
-	movaps	xmm13,XMMWORD PTR[176+rbp]
-	movaps	xmm14,XMMWORD PTR[192+rbp]
-	movaps	xmm15,XMMWORD PTR[208+rbp]
-	lea	rsp,QWORD PTR[160+rbp]
-	mov	r15,QWORD PTR[72+rsp]
-	mov	r14,QWORD PTR[80+rsp]
-	mov	r13,QWORD PTR[88+rsp]
-	mov	r12,QWORD PTR[96+rsp]
-	mov	rbx,QWORD PTR[104+rsp]
-	mov	rax,QWORD PTR[112+rsp]
-	lea	rsp,QWORD PTR[120+rsp]
+	lea	rsp,[rbp]
+	movaps	xmm6,XMMWORD[64+rbp]
+	movaps	xmm7,XMMWORD[80+rbp]
+	movaps	xmm8,XMMWORD[96+rbp]
+	movaps	xmm9,XMMWORD[112+rbp]
+	movaps	xmm10,XMMWORD[128+rbp]
+	movaps	xmm11,XMMWORD[144+rbp]
+	movaps	xmm12,XMMWORD[160+rbp]
+	movaps	xmm13,XMMWORD[176+rbp]
+	movaps	xmm14,XMMWORD[192+rbp]
+	movaps	xmm15,XMMWORD[208+rbp]
+	lea	rsp,[160+rbp]
+	mov	r15,QWORD[72+rsp]
+	mov	r14,QWORD[80+rsp]
+	mov	r13,QWORD[88+rsp]
+	mov	r12,QWORD[96+rsp]
+	mov	rbx,QWORD[104+rsp]
+	mov	rax,QWORD[112+rsp]
+	lea	rsp,[120+rsp]
 	mov	rbp,rax
-$L$ctr_enc_epilogue::
+$L$ctr_enc_epilogue:
 	DB	0F3h,0C3h		;repret
-bsaes_ctr32_encrypt_blocks	ENDP
-PUBLIC	bsaes_xts_encrypt
+
+global	bsaes_xts_encrypt
 
 ALIGN	16
-bsaes_xts_encrypt	PROC PUBLIC
+bsaes_xts_encrypt:
 	mov	rax,rsp
-$L$xts_enc_prologue::
+$L$xts_enc_prologue:
 	push	rbp
 	push	rbx
 	push	r12
 	push	r13
 	push	r14
 	push	r15
-	lea	rsp,QWORD PTR[((-72))+rsp]
-	mov	r10,QWORD PTR[160+rsp]
-	mov	r11,QWORD PTR[168+rsp]
-	lea	rsp,QWORD PTR[((-160))+rsp]
-	movaps	XMMWORD PTR[64+rsp],xmm6
-	movaps	XMMWORD PTR[80+rsp],xmm7
-	movaps	XMMWORD PTR[96+rsp],xmm8
-	movaps	XMMWORD PTR[112+rsp],xmm9
-	movaps	XMMWORD PTR[128+rsp],xmm10
-	movaps	XMMWORD PTR[144+rsp],xmm11
-	movaps	XMMWORD PTR[160+rsp],xmm12
-	movaps	XMMWORD PTR[176+rsp],xmm13
-	movaps	XMMWORD PTR[192+rsp],xmm14
-	movaps	XMMWORD PTR[208+rsp],xmm15
-$L$xts_enc_body::
+	lea	rsp,[((-72))+rsp]
+	mov	r10,QWORD[160+rsp]
+	mov	r11,QWORD[168+rsp]
+	lea	rsp,[((-160))+rsp]
+	movaps	XMMWORD[64+rsp],xmm6
+	movaps	XMMWORD[80+rsp],xmm7
+	movaps	XMMWORD[96+rsp],xmm8
+	movaps	XMMWORD[112+rsp],xmm9
+	movaps	XMMWORD[128+rsp],xmm10
+	movaps	XMMWORD[144+rsp],xmm11
+	movaps	XMMWORD[160+rsp],xmm12
+	movaps	XMMWORD[176+rsp],xmm13
+	movaps	XMMWORD[192+rsp],xmm14
+	movaps	XMMWORD[208+rsp],xmm15
+$L$xts_enc_body:
 	mov	rbp,rsp
 	mov	r12,rcx
 	mov	r13,rdx
 	mov	r14,r8
 	mov	r15,r9
 
-	lea	rcx,QWORD PTR[r11]
-	lea	rdx,QWORD PTR[32+rbp]
-	lea	r8,QWORD PTR[r10]
+	lea	rcx,[r11]
+	lea	rdx,[32+rbp]
+	lea	r8,[r10]
 	call	asm_AES_encrypt
 
-	mov	eax,DWORD PTR[240+r15]
+	mov	eax,DWORD[240+r15]
 	mov	rbx,r14
 
 	mov	edx,eax
@@ -1613,471 +1617,471 @@
 	mov	r10d,edx
 	call	_bsaes_key_convert
 	pxor	xmm7,xmm6
-	movdqa	XMMWORD PTR[rax],xmm7
+	movdqa	XMMWORD[rax],xmm7
 
 	and	r14,-16
-	sub	rsp,080h
-	movdqa	xmm6,XMMWORD PTR[32+rbp]
+	sub	rsp,0x80
+	movdqa	xmm6,XMMWORD[32+rbp]
 
 	pxor	xmm14,xmm14
-	movdqa	xmm12,XMMWORD PTR[$L$xts_magic]
+	movdqa	xmm12,XMMWORD[$L$xts_magic]
 	pcmpgtd	xmm14,xmm6
 
-	sub	r14,080h
-	jc	$L$xts_enc_short
-	jmp	$L$xts_enc_loop
+	sub	r14,0x80
+	jc	NEAR $L$xts_enc_short
+	jmp	NEAR $L$xts_enc_loop
 
 ALIGN	16
-$L$xts_enc_loop::
-	pshufd	xmm13,xmm14,013h
+$L$xts_enc_loop:
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm15,xmm6
-	movdqa	XMMWORD PTR[rsp],xmm6
+	movdqa	XMMWORD[rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm0,xmm6
-	movdqa	XMMWORD PTR[16+rsp],xmm6
+	movdqa	XMMWORD[16+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm7,XMMWORD PTR[r12]
-	pshufd	xmm13,xmm14,013h
+	movdqu	xmm7,XMMWORD[r12]
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm1,xmm6
-	movdqa	XMMWORD PTR[32+rsp],xmm6
+	movdqa	XMMWORD[32+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm8,XMMWORD PTR[16+r12]
+	movdqu	xmm8,XMMWORD[16+r12]
 	pxor	xmm15,xmm7
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm2,xmm6
-	movdqa	XMMWORD PTR[48+rsp],xmm6
+	movdqa	XMMWORD[48+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm9,XMMWORD PTR[32+r12]
+	movdqu	xmm9,XMMWORD[32+r12]
 	pxor	xmm0,xmm8
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm3,xmm6
-	movdqa	XMMWORD PTR[64+rsp],xmm6
+	movdqa	XMMWORD[64+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm10,XMMWORD PTR[48+r12]
+	movdqu	xmm10,XMMWORD[48+r12]
 	pxor	xmm1,xmm9
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm4,xmm6
-	movdqa	XMMWORD PTR[80+rsp],xmm6
+	movdqa	XMMWORD[80+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm11,XMMWORD PTR[64+r12]
+	movdqu	xmm11,XMMWORD[64+r12]
 	pxor	xmm2,xmm10
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm5,xmm6
-	movdqa	XMMWORD PTR[96+rsp],xmm6
+	movdqa	XMMWORD[96+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm12,XMMWORD PTR[80+r12]
+	movdqu	xmm12,XMMWORD[80+r12]
 	pxor	xmm3,xmm11
-	movdqu	xmm13,XMMWORD PTR[96+r12]
+	movdqu	xmm13,XMMWORD[96+r12]
 	pxor	xmm4,xmm12
-	movdqu	xmm14,XMMWORD PTR[112+r12]
-	lea	r12,QWORD PTR[128+r12]
-	movdqa	XMMWORD PTR[112+rsp],xmm6
+	movdqu	xmm14,XMMWORD[112+r12]
+	lea	r12,[128+r12]
+	movdqa	XMMWORD[112+rsp],xmm6
 	pxor	xmm5,xmm13
-	lea	rax,QWORD PTR[128+rsp]
+	lea	rax,[128+rsp]
 	pxor	xmm6,xmm14
 	mov	r10d,edx
 
 	call	_bsaes_encrypt8
 
-	pxor	xmm15,XMMWORD PTR[rsp]
-	pxor	xmm0,XMMWORD PTR[16+rsp]
-	movdqu	XMMWORD PTR[r13],xmm15
-	pxor	xmm3,XMMWORD PTR[32+rsp]
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	pxor	xmm5,XMMWORD PTR[48+rsp]
-	movdqu	XMMWORD PTR[32+r13],xmm3
-	pxor	xmm2,XMMWORD PTR[64+rsp]
-	movdqu	XMMWORD PTR[48+r13],xmm5
-	pxor	xmm6,XMMWORD PTR[80+rsp]
-	movdqu	XMMWORD PTR[64+r13],xmm2
-	pxor	xmm1,XMMWORD PTR[96+rsp]
-	movdqu	XMMWORD PTR[80+r13],xmm6
-	pxor	xmm4,XMMWORD PTR[112+rsp]
-	movdqu	XMMWORD PTR[96+r13],xmm1
-	movdqu	XMMWORD PTR[112+r13],xmm4
-	lea	r13,QWORD PTR[128+r13]
+	pxor	xmm15,XMMWORD[rsp]
+	pxor	xmm0,XMMWORD[16+rsp]
+	movdqu	XMMWORD[r13],xmm15
+	pxor	xmm3,XMMWORD[32+rsp]
+	movdqu	XMMWORD[16+r13],xmm0
+	pxor	xmm5,XMMWORD[48+rsp]
+	movdqu	XMMWORD[32+r13],xmm3
+	pxor	xmm2,XMMWORD[64+rsp]
+	movdqu	XMMWORD[48+r13],xmm5
+	pxor	xmm6,XMMWORD[80+rsp]
+	movdqu	XMMWORD[64+r13],xmm2
+	pxor	xmm1,XMMWORD[96+rsp]
+	movdqu	XMMWORD[80+r13],xmm6
+	pxor	xmm4,XMMWORD[112+rsp]
+	movdqu	XMMWORD[96+r13],xmm1
+	movdqu	XMMWORD[112+r13],xmm4
+	lea	r13,[128+r13]
 
-	movdqa	xmm6,XMMWORD PTR[112+rsp]
+	movdqa	xmm6,XMMWORD[112+rsp]
 	pxor	xmm14,xmm14
-	movdqa	xmm12,XMMWORD PTR[$L$xts_magic]
+	movdqa	xmm12,XMMWORD[$L$xts_magic]
 	pcmpgtd	xmm14,xmm6
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
 
-	sub	r14,080h
-	jnc	$L$xts_enc_loop
+	sub	r14,0x80
+	jnc	NEAR $L$xts_enc_loop
 
-$L$xts_enc_short::
-	add	r14,080h
-	jz	$L$xts_enc_done
-	pshufd	xmm13,xmm14,013h
+$L$xts_enc_short:
+	add	r14,0x80
+	jz	NEAR $L$xts_enc_done
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm15,xmm6
-	movdqa	XMMWORD PTR[rsp],xmm6
+	movdqa	XMMWORD[rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm0,xmm6
-	movdqa	XMMWORD PTR[16+rsp],xmm6
+	movdqa	XMMWORD[16+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm7,XMMWORD PTR[r12]
+	movdqu	xmm7,XMMWORD[r12]
 	cmp	r14,16
-	je	$L$xts_enc_1
-	pshufd	xmm13,xmm14,013h
+	je	NEAR $L$xts_enc_1
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm1,xmm6
-	movdqa	XMMWORD PTR[32+rsp],xmm6
+	movdqa	XMMWORD[32+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm8,XMMWORD PTR[16+r12]
+	movdqu	xmm8,XMMWORD[16+r12]
 	cmp	r14,32
-	je	$L$xts_enc_2
+	je	NEAR $L$xts_enc_2
 	pxor	xmm15,xmm7
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm2,xmm6
-	movdqa	XMMWORD PTR[48+rsp],xmm6
+	movdqa	XMMWORD[48+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm9,XMMWORD PTR[32+r12]
+	movdqu	xmm9,XMMWORD[32+r12]
 	cmp	r14,48
-	je	$L$xts_enc_3
+	je	NEAR $L$xts_enc_3
 	pxor	xmm0,xmm8
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm3,xmm6
-	movdqa	XMMWORD PTR[64+rsp],xmm6
+	movdqa	XMMWORD[64+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm10,XMMWORD PTR[48+r12]
+	movdqu	xmm10,XMMWORD[48+r12]
 	cmp	r14,64
-	je	$L$xts_enc_4
+	je	NEAR $L$xts_enc_4
 	pxor	xmm1,xmm9
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm4,xmm6
-	movdqa	XMMWORD PTR[80+rsp],xmm6
+	movdqa	XMMWORD[80+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm11,XMMWORD PTR[64+r12]
+	movdqu	xmm11,XMMWORD[64+r12]
 	cmp	r14,80
-	je	$L$xts_enc_5
+	je	NEAR $L$xts_enc_5
 	pxor	xmm2,xmm10
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm5,xmm6
-	movdqa	XMMWORD PTR[96+rsp],xmm6
+	movdqa	XMMWORD[96+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm12,XMMWORD PTR[80+r12]
+	movdqu	xmm12,XMMWORD[80+r12]
 	cmp	r14,96
-	je	$L$xts_enc_6
+	je	NEAR $L$xts_enc_6
 	pxor	xmm3,xmm11
-	movdqu	xmm13,XMMWORD PTR[96+r12]
+	movdqu	xmm13,XMMWORD[96+r12]
 	pxor	xmm4,xmm12
-	movdqa	XMMWORD PTR[112+rsp],xmm6
-	lea	r12,QWORD PTR[112+r12]
+	movdqa	XMMWORD[112+rsp],xmm6
+	lea	r12,[112+r12]
 	pxor	xmm5,xmm13
-	lea	rax,QWORD PTR[128+rsp]
+	lea	rax,[128+rsp]
 	mov	r10d,edx
 
 	call	_bsaes_encrypt8
 
-	pxor	xmm15,XMMWORD PTR[rsp]
-	pxor	xmm0,XMMWORD PTR[16+rsp]
-	movdqu	XMMWORD PTR[r13],xmm15
-	pxor	xmm3,XMMWORD PTR[32+rsp]
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	pxor	xmm5,XMMWORD PTR[48+rsp]
-	movdqu	XMMWORD PTR[32+r13],xmm3
-	pxor	xmm2,XMMWORD PTR[64+rsp]
-	movdqu	XMMWORD PTR[48+r13],xmm5
-	pxor	xmm6,XMMWORD PTR[80+rsp]
-	movdqu	XMMWORD PTR[64+r13],xmm2
-	pxor	xmm1,XMMWORD PTR[96+rsp]
-	movdqu	XMMWORD PTR[80+r13],xmm6
-	movdqu	XMMWORD PTR[96+r13],xmm1
-	lea	r13,QWORD PTR[112+r13]
+	pxor	xmm15,XMMWORD[rsp]
+	pxor	xmm0,XMMWORD[16+rsp]
+	movdqu	XMMWORD[r13],xmm15
+	pxor	xmm3,XMMWORD[32+rsp]
+	movdqu	XMMWORD[16+r13],xmm0
+	pxor	xmm5,XMMWORD[48+rsp]
+	movdqu	XMMWORD[32+r13],xmm3
+	pxor	xmm2,XMMWORD[64+rsp]
+	movdqu	XMMWORD[48+r13],xmm5
+	pxor	xmm6,XMMWORD[80+rsp]
+	movdqu	XMMWORD[64+r13],xmm2
+	pxor	xmm1,XMMWORD[96+rsp]
+	movdqu	XMMWORD[80+r13],xmm6
+	movdqu	XMMWORD[96+r13],xmm1
+	lea	r13,[112+r13]
 
-	movdqa	xmm6,XMMWORD PTR[112+rsp]
-	jmp	$L$xts_enc_done
+	movdqa	xmm6,XMMWORD[112+rsp]
+	jmp	NEAR $L$xts_enc_done
 ALIGN	16
-$L$xts_enc_6::
+$L$xts_enc_6:
 	pxor	xmm3,xmm11
-	lea	r12,QWORD PTR[96+r12]
+	lea	r12,[96+r12]
 	pxor	xmm4,xmm12
-	lea	rax,QWORD PTR[128+rsp]
+	lea	rax,[128+rsp]
 	mov	r10d,edx
 
 	call	_bsaes_encrypt8
 
-	pxor	xmm15,XMMWORD PTR[rsp]
-	pxor	xmm0,XMMWORD PTR[16+rsp]
-	movdqu	XMMWORD PTR[r13],xmm15
-	pxor	xmm3,XMMWORD PTR[32+rsp]
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	pxor	xmm5,XMMWORD PTR[48+rsp]
-	movdqu	XMMWORD PTR[32+r13],xmm3
-	pxor	xmm2,XMMWORD PTR[64+rsp]
-	movdqu	XMMWORD PTR[48+r13],xmm5
-	pxor	xmm6,XMMWORD PTR[80+rsp]
-	movdqu	XMMWORD PTR[64+r13],xmm2
-	movdqu	XMMWORD PTR[80+r13],xmm6
-	lea	r13,QWORD PTR[96+r13]
+	pxor	xmm15,XMMWORD[rsp]
+	pxor	xmm0,XMMWORD[16+rsp]
+	movdqu	XMMWORD[r13],xmm15
+	pxor	xmm3,XMMWORD[32+rsp]
+	movdqu	XMMWORD[16+r13],xmm0
+	pxor	xmm5,XMMWORD[48+rsp]
+	movdqu	XMMWORD[32+r13],xmm3
+	pxor	xmm2,XMMWORD[64+rsp]
+	movdqu	XMMWORD[48+r13],xmm5
+	pxor	xmm6,XMMWORD[80+rsp]
+	movdqu	XMMWORD[64+r13],xmm2
+	movdqu	XMMWORD[80+r13],xmm6
+	lea	r13,[96+r13]
 
-	movdqa	xmm6,XMMWORD PTR[96+rsp]
-	jmp	$L$xts_enc_done
+	movdqa	xmm6,XMMWORD[96+rsp]
+	jmp	NEAR $L$xts_enc_done
 ALIGN	16
-$L$xts_enc_5::
+$L$xts_enc_5:
 	pxor	xmm2,xmm10
-	lea	r12,QWORD PTR[80+r12]
+	lea	r12,[80+r12]
 	pxor	xmm3,xmm11
-	lea	rax,QWORD PTR[128+rsp]
+	lea	rax,[128+rsp]
 	mov	r10d,edx
 
 	call	_bsaes_encrypt8
 
-	pxor	xmm15,XMMWORD PTR[rsp]
-	pxor	xmm0,XMMWORD PTR[16+rsp]
-	movdqu	XMMWORD PTR[r13],xmm15
-	pxor	xmm3,XMMWORD PTR[32+rsp]
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	pxor	xmm5,XMMWORD PTR[48+rsp]
-	movdqu	XMMWORD PTR[32+r13],xmm3
-	pxor	xmm2,XMMWORD PTR[64+rsp]
-	movdqu	XMMWORD PTR[48+r13],xmm5
-	movdqu	XMMWORD PTR[64+r13],xmm2
-	lea	r13,QWORD PTR[80+r13]
+	pxor	xmm15,XMMWORD[rsp]
+	pxor	xmm0,XMMWORD[16+rsp]
+	movdqu	XMMWORD[r13],xmm15
+	pxor	xmm3,XMMWORD[32+rsp]
+	movdqu	XMMWORD[16+r13],xmm0
+	pxor	xmm5,XMMWORD[48+rsp]
+	movdqu	XMMWORD[32+r13],xmm3
+	pxor	xmm2,XMMWORD[64+rsp]
+	movdqu	XMMWORD[48+r13],xmm5
+	movdqu	XMMWORD[64+r13],xmm2
+	lea	r13,[80+r13]
 
-	movdqa	xmm6,XMMWORD PTR[80+rsp]
-	jmp	$L$xts_enc_done
+	movdqa	xmm6,XMMWORD[80+rsp]
+	jmp	NEAR $L$xts_enc_done
 ALIGN	16
-$L$xts_enc_4::
+$L$xts_enc_4:
 	pxor	xmm1,xmm9
-	lea	r12,QWORD PTR[64+r12]
+	lea	r12,[64+r12]
 	pxor	xmm2,xmm10
-	lea	rax,QWORD PTR[128+rsp]
+	lea	rax,[128+rsp]
 	mov	r10d,edx
 
 	call	_bsaes_encrypt8
 
-	pxor	xmm15,XMMWORD PTR[rsp]
-	pxor	xmm0,XMMWORD PTR[16+rsp]
-	movdqu	XMMWORD PTR[r13],xmm15
-	pxor	xmm3,XMMWORD PTR[32+rsp]
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	pxor	xmm5,XMMWORD PTR[48+rsp]
-	movdqu	XMMWORD PTR[32+r13],xmm3
-	movdqu	XMMWORD PTR[48+r13],xmm5
-	lea	r13,QWORD PTR[64+r13]
+	pxor	xmm15,XMMWORD[rsp]
+	pxor	xmm0,XMMWORD[16+rsp]
+	movdqu	XMMWORD[r13],xmm15
+	pxor	xmm3,XMMWORD[32+rsp]
+	movdqu	XMMWORD[16+r13],xmm0
+	pxor	xmm5,XMMWORD[48+rsp]
+	movdqu	XMMWORD[32+r13],xmm3
+	movdqu	XMMWORD[48+r13],xmm5
+	lea	r13,[64+r13]
 
-	movdqa	xmm6,XMMWORD PTR[64+rsp]
-	jmp	$L$xts_enc_done
+	movdqa	xmm6,XMMWORD[64+rsp]
+	jmp	NEAR $L$xts_enc_done
 ALIGN	16
-$L$xts_enc_3::
+$L$xts_enc_3:
 	pxor	xmm0,xmm8
-	lea	r12,QWORD PTR[48+r12]
+	lea	r12,[48+r12]
 	pxor	xmm1,xmm9
-	lea	rax,QWORD PTR[128+rsp]
+	lea	rax,[128+rsp]
 	mov	r10d,edx
 
 	call	_bsaes_encrypt8
 
-	pxor	xmm15,XMMWORD PTR[rsp]
-	pxor	xmm0,XMMWORD PTR[16+rsp]
-	movdqu	XMMWORD PTR[r13],xmm15
-	pxor	xmm3,XMMWORD PTR[32+rsp]
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	movdqu	XMMWORD PTR[32+r13],xmm3
-	lea	r13,QWORD PTR[48+r13]
+	pxor	xmm15,XMMWORD[rsp]
+	pxor	xmm0,XMMWORD[16+rsp]
+	movdqu	XMMWORD[r13],xmm15
+	pxor	xmm3,XMMWORD[32+rsp]
+	movdqu	XMMWORD[16+r13],xmm0
+	movdqu	XMMWORD[32+r13],xmm3
+	lea	r13,[48+r13]
 
-	movdqa	xmm6,XMMWORD PTR[48+rsp]
-	jmp	$L$xts_enc_done
+	movdqa	xmm6,XMMWORD[48+rsp]
+	jmp	NEAR $L$xts_enc_done
 ALIGN	16
-$L$xts_enc_2::
+$L$xts_enc_2:
 	pxor	xmm15,xmm7
-	lea	r12,QWORD PTR[32+r12]
+	lea	r12,[32+r12]
 	pxor	xmm0,xmm8
-	lea	rax,QWORD PTR[128+rsp]
+	lea	rax,[128+rsp]
 	mov	r10d,edx
 
 	call	_bsaes_encrypt8
 
-	pxor	xmm15,XMMWORD PTR[rsp]
-	pxor	xmm0,XMMWORD PTR[16+rsp]
-	movdqu	XMMWORD PTR[r13],xmm15
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	lea	r13,QWORD PTR[32+r13]
+	pxor	xmm15,XMMWORD[rsp]
+	pxor	xmm0,XMMWORD[16+rsp]
+	movdqu	XMMWORD[r13],xmm15
+	movdqu	XMMWORD[16+r13],xmm0
+	lea	r13,[32+r13]
 
-	movdqa	xmm6,XMMWORD PTR[32+rsp]
-	jmp	$L$xts_enc_done
+	movdqa	xmm6,XMMWORD[32+rsp]
+	jmp	NEAR $L$xts_enc_done
 ALIGN	16
-$L$xts_enc_1::
+$L$xts_enc_1:
 	pxor	xmm7,xmm15
-	lea	r12,QWORD PTR[16+r12]
-	movdqa	XMMWORD PTR[32+rbp],xmm7
-	lea	rcx,QWORD PTR[32+rbp]
-	lea	rdx,QWORD PTR[32+rbp]
-	lea	r8,QWORD PTR[r15]
+	lea	r12,[16+r12]
+	movdqa	XMMWORD[32+rbp],xmm7
+	lea	rcx,[32+rbp]
+	lea	rdx,[32+rbp]
+	lea	r8,[r15]
 	call	asm_AES_encrypt
-	pxor	xmm15,XMMWORD PTR[32+rbp]
+	pxor	xmm15,XMMWORD[32+rbp]
 
 
 
 
 
-	movdqu	XMMWORD PTR[r13],xmm15
-	lea	r13,QWORD PTR[16+r13]
+	movdqu	XMMWORD[r13],xmm15
+	lea	r13,[16+r13]
 
-	movdqa	xmm6,XMMWORD PTR[16+rsp]
+	movdqa	xmm6,XMMWORD[16+rsp]
 
-$L$xts_enc_done::
+$L$xts_enc_done:
 	and	ebx,15
-	jz	$L$xts_enc_ret
+	jz	NEAR $L$xts_enc_ret
 	mov	rdx,r13
 
-$L$xts_enc_steal::
-	movzx	eax,BYTE PTR[r12]
-	movzx	ecx,BYTE PTR[((-16))+rdx]
-	lea	r12,QWORD PTR[1+r12]
-	mov	BYTE PTR[((-16))+rdx],al
-	mov	BYTE PTR[rdx],cl
-	lea	rdx,QWORD PTR[1+rdx]
+$L$xts_enc_steal:
+	movzx	eax,BYTE[r12]
+	movzx	ecx,BYTE[((-16))+rdx]
+	lea	r12,[1+r12]
+	mov	BYTE[((-16))+rdx],al
+	mov	BYTE[rdx],cl
+	lea	rdx,[1+rdx]
 	sub	ebx,1
-	jnz	$L$xts_enc_steal
+	jnz	NEAR $L$xts_enc_steal
 
-	movdqu	xmm15,XMMWORD PTR[((-16))+r13]
-	lea	rcx,QWORD PTR[32+rbp]
+	movdqu	xmm15,XMMWORD[((-16))+r13]
+	lea	rcx,[32+rbp]
 	pxor	xmm15,xmm6
-	lea	rdx,QWORD PTR[32+rbp]
-	movdqa	XMMWORD PTR[32+rbp],xmm15
-	lea	r8,QWORD PTR[r15]
+	lea	rdx,[32+rbp]
+	movdqa	XMMWORD[32+rbp],xmm15
+	lea	r8,[r15]
 	call	asm_AES_encrypt
-	pxor	xmm6,XMMWORD PTR[32+rbp]
-	movdqu	XMMWORD PTR[(-16)+r13],xmm6
+	pxor	xmm6,XMMWORD[32+rbp]
+	movdqu	XMMWORD[(-16)+r13],xmm6
 
-$L$xts_enc_ret::
-	lea	rax,QWORD PTR[rsp]
+$L$xts_enc_ret:
+	lea	rax,[rsp]
 	pxor	xmm0,xmm0
-$L$xts_enc_bzero::
-	movdqa	XMMWORD PTR[rax],xmm0
-	movdqa	XMMWORD PTR[16+rax],xmm0
-	lea	rax,QWORD PTR[32+rax]
+$L$xts_enc_bzero:
+	movdqa	XMMWORD[rax],xmm0
+	movdqa	XMMWORD[16+rax],xmm0
+	lea	rax,[32+rax]
 	cmp	rbp,rax
-	ja	$L$xts_enc_bzero
+	ja	NEAR $L$xts_enc_bzero
 
-	lea	rsp,QWORD PTR[rbp]
-	movaps	xmm6,XMMWORD PTR[64+rbp]
-	movaps	xmm7,XMMWORD PTR[80+rbp]
-	movaps	xmm8,XMMWORD PTR[96+rbp]
-	movaps	xmm9,XMMWORD PTR[112+rbp]
-	movaps	xmm10,XMMWORD PTR[128+rbp]
-	movaps	xmm11,XMMWORD PTR[144+rbp]
-	movaps	xmm12,XMMWORD PTR[160+rbp]
-	movaps	xmm13,XMMWORD PTR[176+rbp]
-	movaps	xmm14,XMMWORD PTR[192+rbp]
-	movaps	xmm15,XMMWORD PTR[208+rbp]
-	lea	rsp,QWORD PTR[160+rbp]
-	mov	r15,QWORD PTR[72+rsp]
-	mov	r14,QWORD PTR[80+rsp]
-	mov	r13,QWORD PTR[88+rsp]
-	mov	r12,QWORD PTR[96+rsp]
-	mov	rbx,QWORD PTR[104+rsp]
-	mov	rax,QWORD PTR[112+rsp]
-	lea	rsp,QWORD PTR[120+rsp]
+	lea	rsp,[rbp]
+	movaps	xmm6,XMMWORD[64+rbp]
+	movaps	xmm7,XMMWORD[80+rbp]
+	movaps	xmm8,XMMWORD[96+rbp]
+	movaps	xmm9,XMMWORD[112+rbp]
+	movaps	xmm10,XMMWORD[128+rbp]
+	movaps	xmm11,XMMWORD[144+rbp]
+	movaps	xmm12,XMMWORD[160+rbp]
+	movaps	xmm13,XMMWORD[176+rbp]
+	movaps	xmm14,XMMWORD[192+rbp]
+	movaps	xmm15,XMMWORD[208+rbp]
+	lea	rsp,[160+rbp]
+	mov	r15,QWORD[72+rsp]
+	mov	r14,QWORD[80+rsp]
+	mov	r13,QWORD[88+rsp]
+	mov	r12,QWORD[96+rsp]
+	mov	rbx,QWORD[104+rsp]
+	mov	rax,QWORD[112+rsp]
+	lea	rsp,[120+rsp]
 	mov	rbp,rax
-$L$xts_enc_epilogue::
+$L$xts_enc_epilogue:
 	DB	0F3h,0C3h		;repret
-bsaes_xts_encrypt	ENDP
 
-PUBLIC	bsaes_xts_decrypt
+
+global	bsaes_xts_decrypt
 
 ALIGN	16
-bsaes_xts_decrypt	PROC PUBLIC
+bsaes_xts_decrypt:
 	mov	rax,rsp
-$L$xts_dec_prologue::
+$L$xts_dec_prologue:
 	push	rbp
 	push	rbx
 	push	r12
 	push	r13
 	push	r14
 	push	r15
-	lea	rsp,QWORD PTR[((-72))+rsp]
-	mov	r10,QWORD PTR[160+rsp]
-	mov	r11,QWORD PTR[168+rsp]
-	lea	rsp,QWORD PTR[((-160))+rsp]
-	movaps	XMMWORD PTR[64+rsp],xmm6
-	movaps	XMMWORD PTR[80+rsp],xmm7
-	movaps	XMMWORD PTR[96+rsp],xmm8
-	movaps	XMMWORD PTR[112+rsp],xmm9
-	movaps	XMMWORD PTR[128+rsp],xmm10
-	movaps	XMMWORD PTR[144+rsp],xmm11
-	movaps	XMMWORD PTR[160+rsp],xmm12
-	movaps	XMMWORD PTR[176+rsp],xmm13
-	movaps	XMMWORD PTR[192+rsp],xmm14
-	movaps	XMMWORD PTR[208+rsp],xmm15
-$L$xts_dec_body::
+	lea	rsp,[((-72))+rsp]
+	mov	r10,QWORD[160+rsp]
+	mov	r11,QWORD[168+rsp]
+	lea	rsp,[((-160))+rsp]
+	movaps	XMMWORD[64+rsp],xmm6
+	movaps	XMMWORD[80+rsp],xmm7
+	movaps	XMMWORD[96+rsp],xmm8
+	movaps	XMMWORD[112+rsp],xmm9
+	movaps	XMMWORD[128+rsp],xmm10
+	movaps	XMMWORD[144+rsp],xmm11
+	movaps	XMMWORD[160+rsp],xmm12
+	movaps	XMMWORD[176+rsp],xmm13
+	movaps	XMMWORD[192+rsp],xmm14
+	movaps	XMMWORD[208+rsp],xmm15
+$L$xts_dec_body:
 	mov	rbp,rsp
 	mov	r12,rcx
 	mov	r13,rdx
 	mov	r14,r8
 	mov	r15,r9
 
-	lea	rcx,QWORD PTR[r11]
-	lea	rdx,QWORD PTR[32+rbp]
-	lea	r8,QWORD PTR[r10]
+	lea	rcx,[r11]
+	lea	rdx,[32+rbp]
+	lea	r8,[r10]
 	call	asm_AES_encrypt
 
-	mov	eax,DWORD PTR[240+r15]
+	mov	eax,DWORD[240+r15]
 	mov	rbx,r14
 
 	mov	edx,eax
@@ -2089,9 +2093,9 @@
 	mov	rcx,r15
 	mov	r10d,edx
 	call	_bsaes_key_convert
-	pxor	xmm7,XMMWORD PTR[rsp]
-	movdqa	XMMWORD PTR[rax],xmm6
-	movdqa	XMMWORD PTR[rsp],xmm7
+	pxor	xmm7,XMMWORD[rsp]
+	movdqa	XMMWORD[rax],xmm6
+	movdqa	XMMWORD[rsp],xmm7
 
 	xor	eax,eax
 	and	r14,-16
@@ -2100,499 +2104,499 @@
 	shl	rax,4
 	sub	r14,rax
 
-	sub	rsp,080h
-	movdqa	xmm6,XMMWORD PTR[32+rbp]
+	sub	rsp,0x80
+	movdqa	xmm6,XMMWORD[32+rbp]
 
 	pxor	xmm14,xmm14
-	movdqa	xmm12,XMMWORD PTR[$L$xts_magic]
+	movdqa	xmm12,XMMWORD[$L$xts_magic]
 	pcmpgtd	xmm14,xmm6
 
-	sub	r14,080h
-	jc	$L$xts_dec_short
-	jmp	$L$xts_dec_loop
+	sub	r14,0x80
+	jc	NEAR $L$xts_dec_short
+	jmp	NEAR $L$xts_dec_loop
 
 ALIGN	16
-$L$xts_dec_loop::
-	pshufd	xmm13,xmm14,013h
+$L$xts_dec_loop:
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm15,xmm6
-	movdqa	XMMWORD PTR[rsp],xmm6
+	movdqa	XMMWORD[rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm0,xmm6
-	movdqa	XMMWORD PTR[16+rsp],xmm6
+	movdqa	XMMWORD[16+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm7,XMMWORD PTR[r12]
-	pshufd	xmm13,xmm14,013h
+	movdqu	xmm7,XMMWORD[r12]
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm1,xmm6
-	movdqa	XMMWORD PTR[32+rsp],xmm6
+	movdqa	XMMWORD[32+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm8,XMMWORD PTR[16+r12]
+	movdqu	xmm8,XMMWORD[16+r12]
 	pxor	xmm15,xmm7
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm2,xmm6
-	movdqa	XMMWORD PTR[48+rsp],xmm6
+	movdqa	XMMWORD[48+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm9,XMMWORD PTR[32+r12]
+	movdqu	xmm9,XMMWORD[32+r12]
 	pxor	xmm0,xmm8
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm3,xmm6
-	movdqa	XMMWORD PTR[64+rsp],xmm6
+	movdqa	XMMWORD[64+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm10,XMMWORD PTR[48+r12]
+	movdqu	xmm10,XMMWORD[48+r12]
 	pxor	xmm1,xmm9
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm4,xmm6
-	movdqa	XMMWORD PTR[80+rsp],xmm6
+	movdqa	XMMWORD[80+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm11,XMMWORD PTR[64+r12]
+	movdqu	xmm11,XMMWORD[64+r12]
 	pxor	xmm2,xmm10
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm5,xmm6
-	movdqa	XMMWORD PTR[96+rsp],xmm6
+	movdqa	XMMWORD[96+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm12,XMMWORD PTR[80+r12]
+	movdqu	xmm12,XMMWORD[80+r12]
 	pxor	xmm3,xmm11
-	movdqu	xmm13,XMMWORD PTR[96+r12]
+	movdqu	xmm13,XMMWORD[96+r12]
 	pxor	xmm4,xmm12
-	movdqu	xmm14,XMMWORD PTR[112+r12]
-	lea	r12,QWORD PTR[128+r12]
-	movdqa	XMMWORD PTR[112+rsp],xmm6
+	movdqu	xmm14,XMMWORD[112+r12]
+	lea	r12,[128+r12]
+	movdqa	XMMWORD[112+rsp],xmm6
 	pxor	xmm5,xmm13
-	lea	rax,QWORD PTR[128+rsp]
+	lea	rax,[128+rsp]
 	pxor	xmm6,xmm14
 	mov	r10d,edx
 
 	call	_bsaes_decrypt8
 
-	pxor	xmm15,XMMWORD PTR[rsp]
-	pxor	xmm0,XMMWORD PTR[16+rsp]
-	movdqu	XMMWORD PTR[r13],xmm15
-	pxor	xmm5,XMMWORD PTR[32+rsp]
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	pxor	xmm3,XMMWORD PTR[48+rsp]
-	movdqu	XMMWORD PTR[32+r13],xmm5
-	pxor	xmm1,XMMWORD PTR[64+rsp]
-	movdqu	XMMWORD PTR[48+r13],xmm3
-	pxor	xmm6,XMMWORD PTR[80+rsp]
-	movdqu	XMMWORD PTR[64+r13],xmm1
-	pxor	xmm2,XMMWORD PTR[96+rsp]
-	movdqu	XMMWORD PTR[80+r13],xmm6
-	pxor	xmm4,XMMWORD PTR[112+rsp]
-	movdqu	XMMWORD PTR[96+r13],xmm2
-	movdqu	XMMWORD PTR[112+r13],xmm4
-	lea	r13,QWORD PTR[128+r13]
+	pxor	xmm15,XMMWORD[rsp]
+	pxor	xmm0,XMMWORD[16+rsp]
+	movdqu	XMMWORD[r13],xmm15
+	pxor	xmm5,XMMWORD[32+rsp]
+	movdqu	XMMWORD[16+r13],xmm0
+	pxor	xmm3,XMMWORD[48+rsp]
+	movdqu	XMMWORD[32+r13],xmm5
+	pxor	xmm1,XMMWORD[64+rsp]
+	movdqu	XMMWORD[48+r13],xmm3
+	pxor	xmm6,XMMWORD[80+rsp]
+	movdqu	XMMWORD[64+r13],xmm1
+	pxor	xmm2,XMMWORD[96+rsp]
+	movdqu	XMMWORD[80+r13],xmm6
+	pxor	xmm4,XMMWORD[112+rsp]
+	movdqu	XMMWORD[96+r13],xmm2
+	movdqu	XMMWORD[112+r13],xmm4
+	lea	r13,[128+r13]
 
-	movdqa	xmm6,XMMWORD PTR[112+rsp]
+	movdqa	xmm6,XMMWORD[112+rsp]
 	pxor	xmm14,xmm14
-	movdqa	xmm12,XMMWORD PTR[$L$xts_magic]
+	movdqa	xmm12,XMMWORD[$L$xts_magic]
 	pcmpgtd	xmm14,xmm6
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
 
-	sub	r14,080h
-	jnc	$L$xts_dec_loop
+	sub	r14,0x80
+	jnc	NEAR $L$xts_dec_loop
 
-$L$xts_dec_short::
-	add	r14,080h
-	jz	$L$xts_dec_done
-	pshufd	xmm13,xmm14,013h
+$L$xts_dec_short:
+	add	r14,0x80
+	jz	NEAR $L$xts_dec_done
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm15,xmm6
-	movdqa	XMMWORD PTR[rsp],xmm6
+	movdqa	XMMWORD[rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm0,xmm6
-	movdqa	XMMWORD PTR[16+rsp],xmm6
+	movdqa	XMMWORD[16+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm7,XMMWORD PTR[r12]
+	movdqu	xmm7,XMMWORD[r12]
 	cmp	r14,16
-	je	$L$xts_dec_1
-	pshufd	xmm13,xmm14,013h
+	je	NEAR $L$xts_dec_1
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm1,xmm6
-	movdqa	XMMWORD PTR[32+rsp],xmm6
+	movdqa	XMMWORD[32+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm8,XMMWORD PTR[16+r12]
+	movdqu	xmm8,XMMWORD[16+r12]
 	cmp	r14,32
-	je	$L$xts_dec_2
+	je	NEAR $L$xts_dec_2
 	pxor	xmm15,xmm7
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm2,xmm6
-	movdqa	XMMWORD PTR[48+rsp],xmm6
+	movdqa	XMMWORD[48+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm9,XMMWORD PTR[32+r12]
+	movdqu	xmm9,XMMWORD[32+r12]
 	cmp	r14,48
-	je	$L$xts_dec_3
+	je	NEAR $L$xts_dec_3
 	pxor	xmm0,xmm8
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm3,xmm6
-	movdqa	XMMWORD PTR[64+rsp],xmm6
+	movdqa	XMMWORD[64+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm10,XMMWORD PTR[48+r12]
+	movdqu	xmm10,XMMWORD[48+r12]
 	cmp	r14,64
-	je	$L$xts_dec_4
+	je	NEAR $L$xts_dec_4
 	pxor	xmm1,xmm9
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm4,xmm6
-	movdqa	XMMWORD PTR[80+rsp],xmm6
+	movdqa	XMMWORD[80+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm11,XMMWORD PTR[64+r12]
+	movdqu	xmm11,XMMWORD[64+r12]
 	cmp	r14,80
-	je	$L$xts_dec_5
+	je	NEAR $L$xts_dec_5
 	pxor	xmm2,xmm10
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	pxor	xmm14,xmm14
 	movdqa	xmm5,xmm6
-	movdqa	XMMWORD PTR[96+rsp],xmm6
+	movdqa	XMMWORD[96+rsp],xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
 	pcmpgtd	xmm14,xmm6
 	pxor	xmm6,xmm13
-	movdqu	xmm12,XMMWORD PTR[80+r12]
+	movdqu	xmm12,XMMWORD[80+r12]
 	cmp	r14,96
-	je	$L$xts_dec_6
+	je	NEAR $L$xts_dec_6
 	pxor	xmm3,xmm11
-	movdqu	xmm13,XMMWORD PTR[96+r12]
+	movdqu	xmm13,XMMWORD[96+r12]
 	pxor	xmm4,xmm12
-	movdqa	XMMWORD PTR[112+rsp],xmm6
-	lea	r12,QWORD PTR[112+r12]
+	movdqa	XMMWORD[112+rsp],xmm6
+	lea	r12,[112+r12]
 	pxor	xmm5,xmm13
-	lea	rax,QWORD PTR[128+rsp]
+	lea	rax,[128+rsp]
 	mov	r10d,edx
 
 	call	_bsaes_decrypt8
 
-	pxor	xmm15,XMMWORD PTR[rsp]
-	pxor	xmm0,XMMWORD PTR[16+rsp]
-	movdqu	XMMWORD PTR[r13],xmm15
-	pxor	xmm5,XMMWORD PTR[32+rsp]
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	pxor	xmm3,XMMWORD PTR[48+rsp]
-	movdqu	XMMWORD PTR[32+r13],xmm5
-	pxor	xmm1,XMMWORD PTR[64+rsp]
-	movdqu	XMMWORD PTR[48+r13],xmm3
-	pxor	xmm6,XMMWORD PTR[80+rsp]
-	movdqu	XMMWORD PTR[64+r13],xmm1
-	pxor	xmm2,XMMWORD PTR[96+rsp]
-	movdqu	XMMWORD PTR[80+r13],xmm6
-	movdqu	XMMWORD PTR[96+r13],xmm2
-	lea	r13,QWORD PTR[112+r13]
+	pxor	xmm15,XMMWORD[rsp]
+	pxor	xmm0,XMMWORD[16+rsp]
+	movdqu	XMMWORD[r13],xmm15
+	pxor	xmm5,XMMWORD[32+rsp]
+	movdqu	XMMWORD[16+r13],xmm0
+	pxor	xmm3,XMMWORD[48+rsp]
+	movdqu	XMMWORD[32+r13],xmm5
+	pxor	xmm1,XMMWORD[64+rsp]
+	movdqu	XMMWORD[48+r13],xmm3
+	pxor	xmm6,XMMWORD[80+rsp]
+	movdqu	XMMWORD[64+r13],xmm1
+	pxor	xmm2,XMMWORD[96+rsp]
+	movdqu	XMMWORD[80+r13],xmm6
+	movdqu	XMMWORD[96+r13],xmm2
+	lea	r13,[112+r13]
 
-	movdqa	xmm6,XMMWORD PTR[112+rsp]
-	jmp	$L$xts_dec_done
+	movdqa	xmm6,XMMWORD[112+rsp]
+	jmp	NEAR $L$xts_dec_done
 ALIGN	16
-$L$xts_dec_6::
+$L$xts_dec_6:
 	pxor	xmm3,xmm11
-	lea	r12,QWORD PTR[96+r12]
+	lea	r12,[96+r12]
 	pxor	xmm4,xmm12
-	lea	rax,QWORD PTR[128+rsp]
+	lea	rax,[128+rsp]
 	mov	r10d,edx
 
 	call	_bsaes_decrypt8
 
-	pxor	xmm15,XMMWORD PTR[rsp]
-	pxor	xmm0,XMMWORD PTR[16+rsp]
-	movdqu	XMMWORD PTR[r13],xmm15
-	pxor	xmm5,XMMWORD PTR[32+rsp]
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	pxor	xmm3,XMMWORD PTR[48+rsp]
-	movdqu	XMMWORD PTR[32+r13],xmm5
-	pxor	xmm1,XMMWORD PTR[64+rsp]
-	movdqu	XMMWORD PTR[48+r13],xmm3
-	pxor	xmm6,XMMWORD PTR[80+rsp]
-	movdqu	XMMWORD PTR[64+r13],xmm1
-	movdqu	XMMWORD PTR[80+r13],xmm6
-	lea	r13,QWORD PTR[96+r13]
+	pxor	xmm15,XMMWORD[rsp]
+	pxor	xmm0,XMMWORD[16+rsp]
+	movdqu	XMMWORD[r13],xmm15
+	pxor	xmm5,XMMWORD[32+rsp]
+	movdqu	XMMWORD[16+r13],xmm0
+	pxor	xmm3,XMMWORD[48+rsp]
+	movdqu	XMMWORD[32+r13],xmm5
+	pxor	xmm1,XMMWORD[64+rsp]
+	movdqu	XMMWORD[48+r13],xmm3
+	pxor	xmm6,XMMWORD[80+rsp]
+	movdqu	XMMWORD[64+r13],xmm1
+	movdqu	XMMWORD[80+r13],xmm6
+	lea	r13,[96+r13]
 
-	movdqa	xmm6,XMMWORD PTR[96+rsp]
-	jmp	$L$xts_dec_done
+	movdqa	xmm6,XMMWORD[96+rsp]
+	jmp	NEAR $L$xts_dec_done
 ALIGN	16
-$L$xts_dec_5::
+$L$xts_dec_5:
 	pxor	xmm2,xmm10
-	lea	r12,QWORD PTR[80+r12]
+	lea	r12,[80+r12]
 	pxor	xmm3,xmm11
-	lea	rax,QWORD PTR[128+rsp]
+	lea	rax,[128+rsp]
 	mov	r10d,edx
 
 	call	_bsaes_decrypt8
 
-	pxor	xmm15,XMMWORD PTR[rsp]
-	pxor	xmm0,XMMWORD PTR[16+rsp]
-	movdqu	XMMWORD PTR[r13],xmm15
-	pxor	xmm5,XMMWORD PTR[32+rsp]
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	pxor	xmm3,XMMWORD PTR[48+rsp]
-	movdqu	XMMWORD PTR[32+r13],xmm5
-	pxor	xmm1,XMMWORD PTR[64+rsp]
-	movdqu	XMMWORD PTR[48+r13],xmm3
-	movdqu	XMMWORD PTR[64+r13],xmm1
-	lea	r13,QWORD PTR[80+r13]
+	pxor	xmm15,XMMWORD[rsp]
+	pxor	xmm0,XMMWORD[16+rsp]
+	movdqu	XMMWORD[r13],xmm15
+	pxor	xmm5,XMMWORD[32+rsp]
+	movdqu	XMMWORD[16+r13],xmm0
+	pxor	xmm3,XMMWORD[48+rsp]
+	movdqu	XMMWORD[32+r13],xmm5
+	pxor	xmm1,XMMWORD[64+rsp]
+	movdqu	XMMWORD[48+r13],xmm3
+	movdqu	XMMWORD[64+r13],xmm1
+	lea	r13,[80+r13]
 
-	movdqa	xmm6,XMMWORD PTR[80+rsp]
-	jmp	$L$xts_dec_done
+	movdqa	xmm6,XMMWORD[80+rsp]
+	jmp	NEAR $L$xts_dec_done
 ALIGN	16
-$L$xts_dec_4::
+$L$xts_dec_4:
 	pxor	xmm1,xmm9
-	lea	r12,QWORD PTR[64+r12]
+	lea	r12,[64+r12]
 	pxor	xmm2,xmm10
-	lea	rax,QWORD PTR[128+rsp]
+	lea	rax,[128+rsp]
 	mov	r10d,edx
 
 	call	_bsaes_decrypt8
 
-	pxor	xmm15,XMMWORD PTR[rsp]
-	pxor	xmm0,XMMWORD PTR[16+rsp]
-	movdqu	XMMWORD PTR[r13],xmm15
-	pxor	xmm5,XMMWORD PTR[32+rsp]
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	pxor	xmm3,XMMWORD PTR[48+rsp]
-	movdqu	XMMWORD PTR[32+r13],xmm5
-	movdqu	XMMWORD PTR[48+r13],xmm3
-	lea	r13,QWORD PTR[64+r13]
+	pxor	xmm15,XMMWORD[rsp]
+	pxor	xmm0,XMMWORD[16+rsp]
+	movdqu	XMMWORD[r13],xmm15
+	pxor	xmm5,XMMWORD[32+rsp]
+	movdqu	XMMWORD[16+r13],xmm0
+	pxor	xmm3,XMMWORD[48+rsp]
+	movdqu	XMMWORD[32+r13],xmm5
+	movdqu	XMMWORD[48+r13],xmm3
+	lea	r13,[64+r13]
 
-	movdqa	xmm6,XMMWORD PTR[64+rsp]
-	jmp	$L$xts_dec_done
+	movdqa	xmm6,XMMWORD[64+rsp]
+	jmp	NEAR $L$xts_dec_done
 ALIGN	16
-$L$xts_dec_3::
+$L$xts_dec_3:
 	pxor	xmm0,xmm8
-	lea	r12,QWORD PTR[48+r12]
+	lea	r12,[48+r12]
 	pxor	xmm1,xmm9
-	lea	rax,QWORD PTR[128+rsp]
+	lea	rax,[128+rsp]
 	mov	r10d,edx
 
 	call	_bsaes_decrypt8
 
-	pxor	xmm15,XMMWORD PTR[rsp]
-	pxor	xmm0,XMMWORD PTR[16+rsp]
-	movdqu	XMMWORD PTR[r13],xmm15
-	pxor	xmm5,XMMWORD PTR[32+rsp]
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	movdqu	XMMWORD PTR[32+r13],xmm5
-	lea	r13,QWORD PTR[48+r13]
+	pxor	xmm15,XMMWORD[rsp]
+	pxor	xmm0,XMMWORD[16+rsp]
+	movdqu	XMMWORD[r13],xmm15
+	pxor	xmm5,XMMWORD[32+rsp]
+	movdqu	XMMWORD[16+r13],xmm0
+	movdqu	XMMWORD[32+r13],xmm5
+	lea	r13,[48+r13]
 
-	movdqa	xmm6,XMMWORD PTR[48+rsp]
-	jmp	$L$xts_dec_done
+	movdqa	xmm6,XMMWORD[48+rsp]
+	jmp	NEAR $L$xts_dec_done
 ALIGN	16
-$L$xts_dec_2::
+$L$xts_dec_2:
 	pxor	xmm15,xmm7
-	lea	r12,QWORD PTR[32+r12]
+	lea	r12,[32+r12]
 	pxor	xmm0,xmm8
-	lea	rax,QWORD PTR[128+rsp]
+	lea	rax,[128+rsp]
 	mov	r10d,edx
 
 	call	_bsaes_decrypt8
 
-	pxor	xmm15,XMMWORD PTR[rsp]
-	pxor	xmm0,XMMWORD PTR[16+rsp]
-	movdqu	XMMWORD PTR[r13],xmm15
-	movdqu	XMMWORD PTR[16+r13],xmm0
-	lea	r13,QWORD PTR[32+r13]
+	pxor	xmm15,XMMWORD[rsp]
+	pxor	xmm0,XMMWORD[16+rsp]
+	movdqu	XMMWORD[r13],xmm15
+	movdqu	XMMWORD[16+r13],xmm0
+	lea	r13,[32+r13]
 
-	movdqa	xmm6,XMMWORD PTR[32+rsp]
-	jmp	$L$xts_dec_done
+	movdqa	xmm6,XMMWORD[32+rsp]
+	jmp	NEAR $L$xts_dec_done
 ALIGN	16
-$L$xts_dec_1::
+$L$xts_dec_1:
 	pxor	xmm7,xmm15
-	lea	r12,QWORD PTR[16+r12]
-	movdqa	XMMWORD PTR[32+rbp],xmm7
-	lea	rcx,QWORD PTR[32+rbp]
-	lea	rdx,QWORD PTR[32+rbp]
-	lea	r8,QWORD PTR[r15]
+	lea	r12,[16+r12]
+	movdqa	XMMWORD[32+rbp],xmm7
+	lea	rcx,[32+rbp]
+	lea	rdx,[32+rbp]
+	lea	r8,[r15]
 	call	asm_AES_decrypt
-	pxor	xmm15,XMMWORD PTR[32+rbp]
+	pxor	xmm15,XMMWORD[32+rbp]
 
 
 
 
 
-	movdqu	XMMWORD PTR[r13],xmm15
-	lea	r13,QWORD PTR[16+r13]
+	movdqu	XMMWORD[r13],xmm15
+	lea	r13,[16+r13]
 
-	movdqa	xmm6,XMMWORD PTR[16+rsp]
+	movdqa	xmm6,XMMWORD[16+rsp]
 
-$L$xts_dec_done::
+$L$xts_dec_done:
 	and	ebx,15
-	jz	$L$xts_dec_ret
+	jz	NEAR $L$xts_dec_ret
 
 	pxor	xmm14,xmm14
-	movdqa	xmm12,XMMWORD PTR[$L$xts_magic]
+	movdqa	xmm12,XMMWORD[$L$xts_magic]
 	pcmpgtd	xmm14,xmm6
-	pshufd	xmm13,xmm14,013h
+	pshufd	xmm13,xmm14,0x13
 	movdqa	xmm5,xmm6
 	paddq	xmm6,xmm6
 	pand	xmm13,xmm12
-	movdqu	xmm15,XMMWORD PTR[r12]
+	movdqu	xmm15,XMMWORD[r12]
 	pxor	xmm6,xmm13
 
-	lea	rcx,QWORD PTR[32+rbp]
+	lea	rcx,[32+rbp]
 	pxor	xmm15,xmm6
-	lea	rdx,QWORD PTR[32+rbp]
-	movdqa	XMMWORD PTR[32+rbp],xmm15
-	lea	r8,QWORD PTR[r15]
+	lea	rdx,[32+rbp]
+	movdqa	XMMWORD[32+rbp],xmm15
+	lea	r8,[r15]
 	call	asm_AES_decrypt
-	pxor	xmm6,XMMWORD PTR[32+rbp]
+	pxor	xmm6,XMMWORD[32+rbp]
 	mov	rdx,r13
-	movdqu	XMMWORD PTR[r13],xmm6
+	movdqu	XMMWORD[r13],xmm6
 
-$L$xts_dec_steal::
-	movzx	eax,BYTE PTR[16+r12]
-	movzx	ecx,BYTE PTR[rdx]
-	lea	r12,QWORD PTR[1+r12]
-	mov	BYTE PTR[rdx],al
-	mov	BYTE PTR[16+rdx],cl
-	lea	rdx,QWORD PTR[1+rdx]
+$L$xts_dec_steal:
+	movzx	eax,BYTE[16+r12]
+	movzx	ecx,BYTE[rdx]
+	lea	r12,[1+r12]
+	mov	BYTE[rdx],al
+	mov	BYTE[16+rdx],cl
+	lea	rdx,[1+rdx]
 	sub	ebx,1
-	jnz	$L$xts_dec_steal
+	jnz	NEAR $L$xts_dec_steal
 
-	movdqu	xmm15,XMMWORD PTR[r13]
-	lea	rcx,QWORD PTR[32+rbp]
+	movdqu	xmm15,XMMWORD[r13]
+	lea	rcx,[32+rbp]
 	pxor	xmm15,xmm5
-	lea	rdx,QWORD PTR[32+rbp]
-	movdqa	XMMWORD PTR[32+rbp],xmm15
-	lea	r8,QWORD PTR[r15]
+	lea	rdx,[32+rbp]
+	movdqa	XMMWORD[32+rbp],xmm15
+	lea	r8,[r15]
 	call	asm_AES_decrypt
-	pxor	xmm5,XMMWORD PTR[32+rbp]
-	movdqu	XMMWORD PTR[r13],xmm5
+	pxor	xmm5,XMMWORD[32+rbp]
+	movdqu	XMMWORD[r13],xmm5
 
-$L$xts_dec_ret::
-	lea	rax,QWORD PTR[rsp]
+$L$xts_dec_ret:
+	lea	rax,[rsp]
 	pxor	xmm0,xmm0
-$L$xts_dec_bzero::
-	movdqa	XMMWORD PTR[rax],xmm0
-	movdqa	XMMWORD PTR[16+rax],xmm0
-	lea	rax,QWORD PTR[32+rax]
+$L$xts_dec_bzero:
+	movdqa	XMMWORD[rax],xmm0
+	movdqa	XMMWORD[16+rax],xmm0
+	lea	rax,[32+rax]
 	cmp	rbp,rax
-	ja	$L$xts_dec_bzero
+	ja	NEAR $L$xts_dec_bzero
 
-	lea	rsp,QWORD PTR[rbp]
-	movaps	xmm6,XMMWORD PTR[64+rbp]
-	movaps	xmm7,XMMWORD PTR[80+rbp]
-	movaps	xmm8,XMMWORD PTR[96+rbp]
-	movaps	xmm9,XMMWORD PTR[112+rbp]
-	movaps	xmm10,XMMWORD PTR[128+rbp]
-	movaps	xmm11,XMMWORD PTR[144+rbp]
-	movaps	xmm12,XMMWORD PTR[160+rbp]
-	movaps	xmm13,XMMWORD PTR[176+rbp]
-	movaps	xmm14,XMMWORD PTR[192+rbp]
-	movaps	xmm15,XMMWORD PTR[208+rbp]
-	lea	rsp,QWORD PTR[160+rbp]
-	mov	r15,QWORD PTR[72+rsp]
-	mov	r14,QWORD PTR[80+rsp]
-	mov	r13,QWORD PTR[88+rsp]
-	mov	r12,QWORD PTR[96+rsp]
-	mov	rbx,QWORD PTR[104+rsp]
-	mov	rax,QWORD PTR[112+rsp]
-	lea	rsp,QWORD PTR[120+rsp]
+	lea	rsp,[rbp]
+	movaps	xmm6,XMMWORD[64+rbp]
+	movaps	xmm7,XMMWORD[80+rbp]
+	movaps	xmm8,XMMWORD[96+rbp]
+	movaps	xmm9,XMMWORD[112+rbp]
+	movaps	xmm10,XMMWORD[128+rbp]
+	movaps	xmm11,XMMWORD[144+rbp]
+	movaps	xmm12,XMMWORD[160+rbp]
+	movaps	xmm13,XMMWORD[176+rbp]
+	movaps	xmm14,XMMWORD[192+rbp]
+	movaps	xmm15,XMMWORD[208+rbp]
+	lea	rsp,[160+rbp]
+	mov	r15,QWORD[72+rsp]
+	mov	r14,QWORD[80+rsp]
+	mov	r13,QWORD[88+rsp]
+	mov	r12,QWORD[96+rsp]
+	mov	rbx,QWORD[104+rsp]
+	mov	rax,QWORD[112+rsp]
+	lea	rsp,[120+rsp]
 	mov	rbp,rax
-$L$xts_dec_epilogue::
+$L$xts_dec_epilogue:
 	DB	0F3h,0C3h		;repret
-bsaes_xts_decrypt	ENDP
+
 
 ALIGN	64
-_bsaes_const::
-$L$M0ISR::
-	DQ	00a0e0206070b0f03h,00004080c0d010509h
-$L$ISRM0::
-	DQ	001040b0e0205080fh,00306090c00070a0dh
-$L$ISR::
-	DQ	00504070602010003h,00f0e0d0c080b0a09h
-$L$BS0::
-	DQ	05555555555555555h,05555555555555555h
-$L$BS1::
-	DQ	03333333333333333h,03333333333333333h
-$L$BS2::
-	DQ	00f0f0f0f0f0f0f0fh,00f0f0f0f0f0f0f0fh
-$L$SR::
-	DQ	00504070600030201h,00f0e0d0c0a09080bh
-$L$SRM0::
-	DQ	00304090e00050a0fh,001060b0c0207080dh
-$L$M0SR::
-	DQ	00a0e02060f03070bh,00004080c05090d01h
-$L$SWPUP::
-	DQ	00706050403020100h,00c0d0e0f0b0a0908h
-$L$SWPUPM0SR::
-	DQ	00a0d02060c03070bh,00004080f05090e01h
-$L$ADD1::
-	DQ	00000000000000000h,00000000100000000h
-$L$ADD2::
-	DQ	00000000000000000h,00000000200000000h
-$L$ADD3::
-	DQ	00000000000000000h,00000000300000000h
-$L$ADD4::
-	DQ	00000000000000000h,00000000400000000h
-$L$ADD5::
-	DQ	00000000000000000h,00000000500000000h
-$L$ADD6::
-	DQ	00000000000000000h,00000000600000000h
-$L$ADD7::
-	DQ	00000000000000000h,00000000700000000h
-$L$ADD8::
-	DQ	00000000000000000h,00000000800000000h
-$L$xts_magic::
-	DD	087h,0,1,0
-$L$masks::
-	DQ	00101010101010101h,00101010101010101h
-	DQ	00202020202020202h,00202020202020202h
-	DQ	00404040404040404h,00404040404040404h
-	DQ	00808080808080808h,00808080808080808h
-$L$M0::
-	DQ	002060a0e03070b0fh,00004080c0105090dh
-$L$63::
-	DQ	06363636363636363h,06363636363636363h
+_bsaes_const:
+$L$M0ISR:
+	DQ	0x0a0e0206070b0f03,0x0004080c0d010509
+$L$ISRM0:
+	DQ	0x01040b0e0205080f,0x0306090c00070a0d
+$L$ISR:
+	DQ	0x0504070602010003,0x0f0e0d0c080b0a09
+$L$BS0:
+	DQ	0x5555555555555555,0x5555555555555555
+$L$BS1:
+	DQ	0x3333333333333333,0x3333333333333333
+$L$BS2:
+	DQ	0x0f0f0f0f0f0f0f0f,0x0f0f0f0f0f0f0f0f
+$L$SR:
+	DQ	0x0504070600030201,0x0f0e0d0c0a09080b
+$L$SRM0:
+	DQ	0x0304090e00050a0f,0x01060b0c0207080d
+$L$M0SR:
+	DQ	0x0a0e02060f03070b,0x0004080c05090d01
+$L$SWPUP:
+	DQ	0x0706050403020100,0x0c0d0e0f0b0a0908
+$L$SWPUPM0SR:
+	DQ	0x0a0d02060c03070b,0x0004080f05090e01
+$L$ADD1:
+	DQ	0x0000000000000000,0x0000000100000000
+$L$ADD2:
+	DQ	0x0000000000000000,0x0000000200000000
+$L$ADD3:
+	DQ	0x0000000000000000,0x0000000300000000
+$L$ADD4:
+	DQ	0x0000000000000000,0x0000000400000000
+$L$ADD5:
+	DQ	0x0000000000000000,0x0000000500000000
+$L$ADD6:
+	DQ	0x0000000000000000,0x0000000600000000
+$L$ADD7:
+	DQ	0x0000000000000000,0x0000000700000000
+$L$ADD8:
+	DQ	0x0000000000000000,0x0000000800000000
+$L$xts_magic:
+	DD	0x87,0,1,0
+$L$masks:
+	DQ	0x0101010101010101,0x0101010101010101
+	DQ	0x0202020202020202,0x0202020202020202
+	DQ	0x0404040404040404,0x0404040404040404
+	DQ	0x0808080808080808,0x0808080808080808
+$L$M0:
+	DQ	0x02060a0e03070b0f,0x0004080c0105090d
+$L$63:
+	DQ	0x6363636363636363,0x6363636363636363
 DB	66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102
 DB	111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44
 DB	32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44
@@ -2600,10 +2604,10 @@
 DB	65,110,100,121,32,80,111,108,121,97,107,111,118,0
 ALIGN	64
 
-EXTERN	__imp_RtlVirtualUnwind:NEAR
+EXTERN	__imp_RtlVirtualUnwind
 
 ALIGN	16
-se_handler	PROC PRIVATE
+se_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -2615,67 +2619,67 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[120+r8]
-	mov	rbx,QWORD PTR[248+r8]
+	mov	rax,QWORD[120+r8]
+	mov	rbx,QWORD[248+r8]
 
-	mov	rsi,QWORD PTR[8+r9]
-	mov	r11,QWORD PTR[56+r9]
+	mov	rsi,QWORD[8+r9]
+	mov	r11,QWORD[56+r9]
 
-	mov	r10d,DWORD PTR[r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jb	$L$in_prologue
+	jb	NEAR $L$in_prologue
 
-	mov	rax,QWORD PTR[152+r8]
+	mov	rax,QWORD[152+r8]
 
-	mov	r10d,DWORD PTR[4+r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[4+r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jae	$L$in_prologue
+	jae	NEAR $L$in_prologue
 
-	mov	rax,QWORD PTR[160+r8]
+	mov	rax,QWORD[160+r8]
 
-	lea	rsi,QWORD PTR[64+rax]
-	lea	rdi,QWORD PTR[512+r8]
+	lea	rsi,[64+rax]
+	lea	rdi,[512+r8]
 	mov	ecx,20
-	DD	0a548f3fch
-	lea	rax,QWORD PTR[160+rax]
+	DD	0xa548f3fc
+	lea	rax,[160+rax]
 
-	mov	rbp,QWORD PTR[112+rax]
-	mov	rbx,QWORD PTR[104+rax]
-	mov	r12,QWORD PTR[96+rax]
-	mov	r13,QWORD PTR[88+rax]
-	mov	r14,QWORD PTR[80+rax]
-	mov	r15,QWORD PTR[72+rax]
-	lea	rax,QWORD PTR[120+rax]
-	mov	QWORD PTR[144+r8],rbx
-	mov	QWORD PTR[160+r8],rbp
-	mov	QWORD PTR[216+r8],r12
-	mov	QWORD PTR[224+r8],r13
-	mov	QWORD PTR[232+r8],r14
-	mov	QWORD PTR[240+r8],r15
+	mov	rbp,QWORD[112+rax]
+	mov	rbx,QWORD[104+rax]
+	mov	r12,QWORD[96+rax]
+	mov	r13,QWORD[88+rax]
+	mov	r14,QWORD[80+rax]
+	mov	r15,QWORD[72+rax]
+	lea	rax,[120+rax]
+	mov	QWORD[144+r8],rbx
+	mov	QWORD[160+r8],rbp
+	mov	QWORD[216+r8],r12
+	mov	QWORD[224+r8],r13
+	mov	QWORD[232+r8],r14
+	mov	QWORD[240+r8],r15
 
-$L$in_prologue::
-	mov	QWORD PTR[152+r8],rax
+$L$in_prologue:
+	mov	QWORD[152+r8],rax
 
-	mov	rdi,QWORD PTR[40+r9]
+	mov	rdi,QWORD[40+r9]
 	mov	rsi,r8
 	mov	ecx,154
-	DD	0a548f3fch
+	DD	0xa548f3fc
 
 	mov	rsi,r9
 	xor	rcx,rcx
-	mov	rdx,QWORD PTR[8+rsi]
-	mov	r8,QWORD PTR[rsi]
-	mov	r9,QWORD PTR[16+rsi]
-	mov	r10,QWORD PTR[40+rsi]
-	lea	r11,QWORD PTR[56+rsi]
-	lea	r12,QWORD PTR[24+rsi]
-	mov	QWORD PTR[32+rsp],r10
-	mov	QWORD PTR[40+rsp],r11
-	mov	QWORD PTR[48+rsp],r12
-	mov	QWORD PTR[56+rsp],rcx
-	call	QWORD PTR[__imp_RtlVirtualUnwind]
+	mov	rdx,QWORD[8+rsi]
+	mov	r8,QWORD[rsi]
+	mov	r9,QWORD[16+rsi]
+	mov	r10,QWORD[40+rsi]
+	lea	r11,[56+rsi]
+	lea	r12,[24+rsi]
+	mov	QWORD[32+rsp],r10
+	mov	QWORD[40+rsp],r11
+	mov	QWORD[48+rsp],r12
+	mov	QWORD[56+rsp],rcx
+	call	QWORD[__imp_RtlVirtualUnwind]
 
 	mov	eax,1
 	add	rsp,64
@@ -2689,46 +2693,41 @@
 	pop	rdi
 	pop	rsi
 	DB	0F3h,0C3h		;repret
-se_handler	ENDP
 
-.text$	ENDS
-.pdata	SEGMENT READONLY ALIGN(4)
+
+section	.pdata rdata align=4
 ALIGN	4
-	DD	imagerel $L$cbc_dec_prologue
-	DD	imagerel $L$cbc_dec_epilogue
-	DD	imagerel $L$cbc_dec_info
+	DD	$L$cbc_dec_prologue wrt ..imagebase
+	DD	$L$cbc_dec_epilogue wrt ..imagebase
+	DD	$L$cbc_dec_info wrt ..imagebase
 
-	DD	imagerel $L$ctr_enc_prologue
-	DD	imagerel $L$ctr_enc_epilogue
-	DD	imagerel $L$ctr_enc_info
+	DD	$L$ctr_enc_prologue wrt ..imagebase
+	DD	$L$ctr_enc_epilogue wrt ..imagebase
+	DD	$L$ctr_enc_info wrt ..imagebase
 
-	DD	imagerel $L$xts_enc_prologue
-	DD	imagerel $L$xts_enc_epilogue
-	DD	imagerel $L$xts_enc_info
+	DD	$L$xts_enc_prologue wrt ..imagebase
+	DD	$L$xts_enc_epilogue wrt ..imagebase
+	DD	$L$xts_enc_info wrt ..imagebase
 
-	DD	imagerel $L$xts_dec_prologue
-	DD	imagerel $L$xts_dec_epilogue
-	DD	imagerel $L$xts_dec_info
+	DD	$L$xts_dec_prologue wrt ..imagebase
+	DD	$L$xts_dec_epilogue wrt ..imagebase
+	DD	$L$xts_dec_info wrt ..imagebase
 
-.pdata	ENDS
-.xdata	SEGMENT READONLY ALIGN(8)
+section	.xdata rdata align=8
 ALIGN	8
-$L$cbc_dec_info::
+$L$cbc_dec_info:
 DB	9,0,0,0
-	DD	imagerel se_handler
-	DD	imagerel $L$cbc_dec_body,imagerel $L$cbc_dec_epilogue
-$L$ctr_enc_info::
+	DD	se_handler wrt ..imagebase
+	DD	$L$cbc_dec_body wrt ..imagebase,$L$cbc_dec_epilogue wrt ..imagebase
+$L$ctr_enc_info:
 DB	9,0,0,0
-	DD	imagerel se_handler
-	DD	imagerel $L$ctr_enc_body,imagerel $L$ctr_enc_epilogue
-$L$xts_enc_info::
+	DD	se_handler wrt ..imagebase
+	DD	$L$ctr_enc_body wrt ..imagebase,$L$ctr_enc_epilogue wrt ..imagebase
+$L$xts_enc_info:
 DB	9,0,0,0
-	DD	imagerel se_handler
-	DD	imagerel $L$xts_enc_body,imagerel $L$xts_enc_epilogue
-$L$xts_dec_info::
+	DD	se_handler wrt ..imagebase
+	DD	$L$xts_enc_body wrt ..imagebase,$L$xts_enc_epilogue wrt ..imagebase
+$L$xts_dec_info:
 DB	9,0,0,0
-	DD	imagerel se_handler
-	DD	imagerel $L$xts_dec_body,imagerel $L$xts_dec_epilogue
-
-.xdata	ENDS
-END
+	DD	se_handler wrt ..imagebase
+	DD	$L$xts_dec_body wrt ..imagebase,$L$xts_dec_epilogue wrt ..imagebase
diff --git a/third_party/boringssl/win-x86_64/crypto/aes/vpaes-x86_64.asm b/third_party/boringssl/win-x86_64/crypto/aes/vpaes-x86_64.asm
index 292f64d..3edde9f 100644
--- a/third_party/boringssl/win-x86_64/crypto/aes/vpaes-x86_64.asm
+++ b/third_party/boringssl/win-x86_64/crypto/aes/vpaes-x86_64.asm
@@ -1,5 +1,9 @@
-OPTION	DOTNAME
-.text$	SEGMENT ALIGN(256) 'CODE'
+default	rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section	.text code align=64
+
 
 
 
@@ -18,27 +22,27 @@
 
 
 ALIGN	16
-_vpaes_encrypt_core	PROC PRIVATE
+_vpaes_encrypt_core:
 	mov	r9,rdx
 	mov	r11,16
-	mov	eax,DWORD PTR[240+rdx]
+	mov	eax,DWORD[240+rdx]
 	movdqa	xmm1,xmm9
-	movdqa	xmm2,XMMWORD PTR[$L$k_ipt]
+	movdqa	xmm2,XMMWORD[$L$k_ipt]
 	pandn	xmm1,xmm0
-	movdqu	xmm5,XMMWORD PTR[r9]
+	movdqu	xmm5,XMMWORD[r9]
 	psrld	xmm1,4
 	pand	xmm0,xmm9
 DB	102,15,56,0,208
-	movdqa	xmm0,XMMWORD PTR[(($L$k_ipt+16))]
+	movdqa	xmm0,XMMWORD[(($L$k_ipt+16))]
 DB	102,15,56,0,193
 	pxor	xmm2,xmm5
 	add	r9,16
 	pxor	xmm0,xmm2
-	lea	r10,QWORD PTR[$L$k_mc_backward]
-	jmp	$L$enc_entry
+	lea	r10,[$L$k_mc_backward]
+	jmp	NEAR $L$enc_entry
 
 ALIGN	16
-$L$enc_loop::
+$L$enc_loop:
 
 	movdqa	xmm4,xmm13
 	movdqa	xmm0,xmm12
@@ -47,9 +51,9 @@
 	pxor	xmm4,xmm5
 	movdqa	xmm5,xmm15
 	pxor	xmm0,xmm4
-	movdqa	xmm1,XMMWORD PTR[((-64))+r10*1+r11]
+	movdqa	xmm1,XMMWORD[((-64))+r10*1+r11]
 DB	102,15,56,0,234
-	movdqa	xmm4,XMMWORD PTR[r10*1+r11]
+	movdqa	xmm4,XMMWORD[r10*1+r11]
 	movdqa	xmm2,xmm14
 DB	102,15,56,0,211
 	movdqa	xmm3,xmm0
@@ -61,11 +65,11 @@
 	add	r11,16
 	pxor	xmm3,xmm0
 DB	102,15,56,0,193
-	and	r11,030h
+	and	r11,0x30
 	sub	rax,1
 	pxor	xmm0,xmm3
 
-$L$enc_entry::
+$L$enc_entry:
 
 	movdqa	xmm1,xmm9
 	movdqa	xmm5,xmm11
@@ -85,21 +89,21 @@
 	movdqa	xmm3,xmm10
 	pxor	xmm2,xmm0
 DB	102,15,56,0,220
-	movdqu	xmm5,XMMWORD PTR[r9]
+	movdqu	xmm5,XMMWORD[r9]
 	pxor	xmm3,xmm1
-	jnz	$L$enc_loop
+	jnz	NEAR $L$enc_loop
 
 
-	movdqa	xmm4,XMMWORD PTR[((-96))+r10]
-	movdqa	xmm0,XMMWORD PTR[((-80))+r10]
+	movdqa	xmm4,XMMWORD[((-96))+r10]
+	movdqa	xmm0,XMMWORD[((-80))+r10]
 DB	102,15,56,0,226
 	pxor	xmm4,xmm5
 DB	102,15,56,0,195
-	movdqa	xmm1,XMMWORD PTR[64+r10*1+r11]
+	movdqa	xmm1,XMMWORD[64+r10*1+r11]
 	pxor	xmm0,xmm4
 DB	102,15,56,0,193
 	DB	0F3h,0C3h		;repret
-_vpaes_encrypt_core	ENDP
+
 
 
 
@@ -108,59 +112,59 @@
 
 
 ALIGN	16
-_vpaes_decrypt_core	PROC PRIVATE
+_vpaes_decrypt_core:
 	mov	r9,rdx
-	mov	eax,DWORD PTR[240+rdx]
+	mov	eax,DWORD[240+rdx]
 	movdqa	xmm1,xmm9
-	movdqa	xmm2,XMMWORD PTR[$L$k_dipt]
+	movdqa	xmm2,XMMWORD[$L$k_dipt]
 	pandn	xmm1,xmm0
 	mov	r11,rax
 	psrld	xmm1,4
-	movdqu	xmm5,XMMWORD PTR[r9]
+	movdqu	xmm5,XMMWORD[r9]
 	shl	r11,4
 	pand	xmm0,xmm9
 DB	102,15,56,0,208
-	movdqa	xmm0,XMMWORD PTR[(($L$k_dipt+16))]
-	xor	r11,030h
-	lea	r10,QWORD PTR[$L$k_dsbd]
+	movdqa	xmm0,XMMWORD[(($L$k_dipt+16))]
+	xor	r11,0x30
+	lea	r10,[$L$k_dsbd]
 DB	102,15,56,0,193
-	and	r11,030h
+	and	r11,0x30
 	pxor	xmm2,xmm5
-	movdqa	xmm5,XMMWORD PTR[(($L$k_mc_forward+48))]
+	movdqa	xmm5,XMMWORD[(($L$k_mc_forward+48))]
 	pxor	xmm0,xmm2
 	add	r9,16
 	add	r11,r10
-	jmp	$L$dec_entry
+	jmp	NEAR $L$dec_entry
 
 ALIGN	16
-$L$dec_loop::
+$L$dec_loop:
 
 
 
-	movdqa	xmm4,XMMWORD PTR[((-32))+r10]
-	movdqa	xmm1,XMMWORD PTR[((-16))+r10]
+	movdqa	xmm4,XMMWORD[((-32))+r10]
+	movdqa	xmm1,XMMWORD[((-16))+r10]
 DB	102,15,56,0,226
 DB	102,15,56,0,203
 	pxor	xmm0,xmm4
-	movdqa	xmm4,XMMWORD PTR[r10]
+	movdqa	xmm4,XMMWORD[r10]
 	pxor	xmm0,xmm1
-	movdqa	xmm1,XMMWORD PTR[16+r10]
+	movdqa	xmm1,XMMWORD[16+r10]
 
 DB	102,15,56,0,226
 DB	102,15,56,0,197
 DB	102,15,56,0,203
 	pxor	xmm0,xmm4
-	movdqa	xmm4,XMMWORD PTR[32+r10]
+	movdqa	xmm4,XMMWORD[32+r10]
 	pxor	xmm0,xmm1
-	movdqa	xmm1,XMMWORD PTR[48+r10]
+	movdqa	xmm1,XMMWORD[48+r10]
 
 DB	102,15,56,0,226
 DB	102,15,56,0,197
 DB	102,15,56,0,203
 	pxor	xmm0,xmm4
-	movdqa	xmm4,XMMWORD PTR[64+r10]
+	movdqa	xmm4,XMMWORD[64+r10]
 	pxor	xmm0,xmm1
-	movdqa	xmm1,XMMWORD PTR[80+r10]
+	movdqa	xmm1,XMMWORD[80+r10]
 
 DB	102,15,56,0,226
 DB	102,15,56,0,197
@@ -171,7 +175,7 @@
 	pxor	xmm0,xmm1
 	sub	rax,1
 
-$L$dec_entry::
+$L$dec_entry:
 
 	movdqa	xmm1,xmm9
 	pandn	xmm1,xmm0
@@ -191,21 +195,21 @@
 	movdqa	xmm3,xmm10
 	pxor	xmm2,xmm0
 DB	102,15,56,0,220
-	movdqu	xmm0,XMMWORD PTR[r9]
+	movdqu	xmm0,XMMWORD[r9]
 	pxor	xmm3,xmm1
-	jnz	$L$dec_loop
+	jnz	NEAR $L$dec_loop
 
 
-	movdqa	xmm4,XMMWORD PTR[96+r10]
+	movdqa	xmm4,XMMWORD[96+r10]
 DB	102,15,56,0,226
 	pxor	xmm4,xmm0
-	movdqa	xmm0,XMMWORD PTR[112+r10]
-	movdqa	xmm2,XMMWORD PTR[((-352))+r11]
+	movdqa	xmm0,XMMWORD[112+r10]
+	movdqa	xmm2,XMMWORD[((-352))+r11]
 DB	102,15,56,0,195
 	pxor	xmm0,xmm4
 DB	102,15,56,0,194
 	DB	0F3h,0C3h		;repret
-_vpaes_decrypt_core	ENDP
+
 
 
 
@@ -214,41 +218,41 @@
 
 
 ALIGN	16
-_vpaes_schedule_core	PROC PRIVATE
+_vpaes_schedule_core:
 
 
 
 
 
 	call	_vpaes_preheat
-	movdqa	xmm8,XMMWORD PTR[$L$k_rcon]
-	movdqu	xmm0,XMMWORD PTR[rdi]
+	movdqa	xmm8,XMMWORD[$L$k_rcon]
+	movdqu	xmm0,XMMWORD[rdi]
 
 
 	movdqa	xmm3,xmm0
-	lea	r11,QWORD PTR[$L$k_ipt]
+	lea	r11,[$L$k_ipt]
 	call	_vpaes_schedule_transform
 	movdqa	xmm7,xmm0
 
-	lea	r10,QWORD PTR[$L$k_sr]
+	lea	r10,[$L$k_sr]
 	test	rcx,rcx
-	jnz	$L$schedule_am_decrypting
+	jnz	NEAR $L$schedule_am_decrypting
 
 
-	movdqu	XMMWORD PTR[rdx],xmm0
-	jmp	$L$schedule_go
+	movdqu	XMMWORD[rdx],xmm0
+	jmp	NEAR $L$schedule_go
 
-$L$schedule_am_decrypting::
+$L$schedule_am_decrypting:
 
-	movdqa	xmm1,XMMWORD PTR[r10*1+r8]
+	movdqa	xmm1,XMMWORD[r10*1+r8]
 DB	102,15,56,0,217
-	movdqu	XMMWORD PTR[rdx],xmm3
-	xor	r8,030h
+	movdqu	XMMWORD[rdx],xmm3
+	xor	r8,0x30
 
-$L$schedule_go::
+$L$schedule_go:
 	cmp	esi,192
-	ja	$L$schedule_256
-	je	$L$schedule_192
+	ja	NEAR $L$schedule_256
+	je	NEAR $L$schedule_192
 
 
 
@@ -259,15 +263,15 @@
 
 
 
-$L$schedule_128::
+$L$schedule_128:
 	mov	esi,10
 
-$L$oop_schedule_128::
+$L$oop_schedule_128:
 	call	_vpaes_schedule_round
 	dec	rsi
-	jz	$L$schedule_mangle_last
+	jz	NEAR $L$schedule_mangle_last
 	call	_vpaes_schedule_mangle
-	jmp	$L$oop_schedule_128
+	jmp	NEAR $L$oop_schedule_128
 
 
 
@@ -285,15 +289,15 @@
 
 
 ALIGN	16
-$L$schedule_192::
-	movdqu	xmm0,XMMWORD PTR[8+rdi]
+$L$schedule_192:
+	movdqu	xmm0,XMMWORD[8+rdi]
 	call	_vpaes_schedule_transform
 	movdqa	xmm6,xmm0
 	pxor	xmm4,xmm4
 	movhlps	xmm6,xmm4
 	mov	esi,4
 
-$L$oop_schedule_192::
+$L$oop_schedule_192:
 	call	_vpaes_schedule_round
 DB	102,15,58,15,198,8
 	call	_vpaes_schedule_mangle
@@ -301,10 +305,10 @@
 	call	_vpaes_schedule_mangle
 	call	_vpaes_schedule_round
 	dec	rsi
-	jz	$L$schedule_mangle_last
+	jz	NEAR $L$schedule_mangle_last
 	call	_vpaes_schedule_mangle
 	call	_vpaes_schedule_192_smear
-	jmp	$L$oop_schedule_192
+	jmp	NEAR $L$oop_schedule_192
 
 
 
@@ -317,29 +321,29 @@
 
 
 ALIGN	16
-$L$schedule_256::
-	movdqu	xmm0,XMMWORD PTR[16+rdi]
+$L$schedule_256:
+	movdqu	xmm0,XMMWORD[16+rdi]
 	call	_vpaes_schedule_transform
 	mov	esi,7
 
-$L$oop_schedule_256::
+$L$oop_schedule_256:
 	call	_vpaes_schedule_mangle
 	movdqa	xmm6,xmm0
 
 
 	call	_vpaes_schedule_round
 	dec	rsi
-	jz	$L$schedule_mangle_last
+	jz	NEAR $L$schedule_mangle_last
 	call	_vpaes_schedule_mangle
 
 
-	pshufd	xmm0,xmm0,0FFh
+	pshufd	xmm0,xmm0,0xFF
 	movdqa	xmm5,xmm7
 	movdqa	xmm7,xmm6
 	call	_vpaes_schedule_low_round
 	movdqa	xmm7,xmm5
 
-	jmp	$L$oop_schedule_256
+	jmp	NEAR $L$oop_schedule_256
 
 
 
@@ -353,23 +357,23 @@
 
 
 ALIGN	16
-$L$schedule_mangle_last::
+$L$schedule_mangle_last:
 
-	lea	r11,QWORD PTR[$L$k_deskew]
+	lea	r11,[$L$k_deskew]
 	test	rcx,rcx
-	jnz	$L$schedule_mangle_last_dec
+	jnz	NEAR $L$schedule_mangle_last_dec
 
 
-	movdqa	xmm1,XMMWORD PTR[r10*1+r8]
+	movdqa	xmm1,XMMWORD[r10*1+r8]
 DB	102,15,56,0,193
-	lea	r11,QWORD PTR[$L$k_opt]
+	lea	r11,[$L$k_opt]
 	add	rdx,32
 
-$L$schedule_mangle_last_dec::
+$L$schedule_mangle_last_dec:
 	add	rdx,-16
-	pxor	xmm0,XMMWORD PTR[$L$k_s63]
+	pxor	xmm0,XMMWORD[$L$k_s63]
 	call	_vpaes_schedule_transform
-	movdqu	XMMWORD PTR[rdx],xmm0
+	movdqu	XMMWORD[rdx],xmm0
 
 
 	pxor	xmm0,xmm0
@@ -381,7 +385,7 @@
 	pxor	xmm6,xmm6
 	pxor	xmm7,xmm7
 	DB	0F3h,0C3h		;repret
-_vpaes_schedule_core	ENDP
+
 
 
 
@@ -399,16 +403,16 @@
 
 
 ALIGN	16
-_vpaes_schedule_192_smear	PROC PRIVATE
-	pshufd	xmm1,xmm6,080h
-	pshufd	xmm0,xmm7,0FEh
+_vpaes_schedule_192_smear:
+	pshufd	xmm1,xmm6,0x80
+	pshufd	xmm0,xmm7,0xFE
 	pxor	xmm6,xmm1
 	pxor	xmm1,xmm1
 	pxor	xmm6,xmm0
 	movdqa	xmm0,xmm6
 	movhlps	xmm6,xmm1
 	DB	0F3h,0C3h		;repret
-_vpaes_schedule_192_smear	ENDP
+
 
 
 
@@ -430,7 +434,7 @@
 
 
 ALIGN	16
-_vpaes_schedule_round	PROC PRIVATE
+_vpaes_schedule_round:
 
 	pxor	xmm1,xmm1
 DB	102,65,15,58,15,200,15
@@ -438,13 +442,13 @@
 	pxor	xmm7,xmm1
 
 
-	pshufd	xmm0,xmm0,0FFh
+	pshufd	xmm0,xmm0,0xFF
 DB	102,15,58,15,192,1
 
 
 
 
-_vpaes_schedule_low_round::
+_vpaes_schedule_low_round:
 
 	movdqa	xmm1,xmm7
 	pslldq	xmm7,4
@@ -452,7 +456,7 @@
 	movdqa	xmm1,xmm7
 	pslldq	xmm7,8
 	pxor	xmm7,xmm1
-	pxor	xmm7,XMMWORD PTR[$L$k_s63]
+	pxor	xmm7,XMMWORD[$L$k_s63]
 
 
 	movdqa	xmm1,xmm9
@@ -484,7 +488,7 @@
 	pxor	xmm0,xmm7
 	movdqa	xmm7,xmm0
 	DB	0F3h,0C3h		;repret
-_vpaes_schedule_round	ENDP
+
 
 
 
@@ -497,18 +501,18 @@
 
 
 ALIGN	16
-_vpaes_schedule_transform	PROC PRIVATE
+_vpaes_schedule_transform:
 	movdqa	xmm1,xmm9
 	pandn	xmm1,xmm0
 	psrld	xmm1,4
 	pand	xmm0,xmm9
-	movdqa	xmm2,XMMWORD PTR[r11]
+	movdqa	xmm2,XMMWORD[r11]
 DB	102,15,56,0,208
-	movdqa	xmm0,XMMWORD PTR[16+r11]
+	movdqa	xmm0,XMMWORD[16+r11]
 DB	102,15,56,0,193
 	pxor	xmm0,xmm2
 	DB	0F3h,0C3h		;repret
-_vpaes_schedule_transform	ENDP
+
 
 
 
@@ -535,15 +539,15 @@
 
 
 ALIGN	16
-_vpaes_schedule_mangle	PROC PRIVATE
+_vpaes_schedule_mangle:
 	movdqa	xmm4,xmm0
-	movdqa	xmm5,XMMWORD PTR[$L$k_mc_forward]
+	movdqa	xmm5,XMMWORD[$L$k_mc_forward]
 	test	rcx,rcx
-	jnz	$L$schedule_mangle_dec
+	jnz	NEAR $L$schedule_mangle_dec
 
 
 	add	rdx,16
-	pxor	xmm4,XMMWORD PTR[$L$k_s63]
+	pxor	xmm4,XMMWORD[$L$k_s63]
 DB	102,15,56,0,229
 	movdqa	xmm3,xmm4
 DB	102,15,56,0,229
@@ -551,143 +555,142 @@
 DB	102,15,56,0,229
 	pxor	xmm3,xmm4
 
-	jmp	$L$schedule_mangle_both
+	jmp	NEAR $L$schedule_mangle_both
 ALIGN	16
-$L$schedule_mangle_dec::
+$L$schedule_mangle_dec:
 
-	lea	r11,QWORD PTR[$L$k_dksd]
+	lea	r11,[$L$k_dksd]
 	movdqa	xmm1,xmm9
 	pandn	xmm1,xmm4
 	psrld	xmm1,4
 	pand	xmm4,xmm9
 
-	movdqa	xmm2,XMMWORD PTR[r11]
+	movdqa	xmm2,XMMWORD[r11]
 DB	102,15,56,0,212
-	movdqa	xmm3,XMMWORD PTR[16+r11]
+	movdqa	xmm3,XMMWORD[16+r11]
 DB	102,15,56,0,217
 	pxor	xmm3,xmm2
 DB	102,15,56,0,221
 
-	movdqa	xmm2,XMMWORD PTR[32+r11]
+	movdqa	xmm2,XMMWORD[32+r11]
 DB	102,15,56,0,212
 	pxor	xmm2,xmm3
-	movdqa	xmm3,XMMWORD PTR[48+r11]
+	movdqa	xmm3,XMMWORD[48+r11]
 DB	102,15,56,0,217
 	pxor	xmm3,xmm2
 DB	102,15,56,0,221
 
-	movdqa	xmm2,XMMWORD PTR[64+r11]
+	movdqa	xmm2,XMMWORD[64+r11]
 DB	102,15,56,0,212
 	pxor	xmm2,xmm3
-	movdqa	xmm3,XMMWORD PTR[80+r11]
+	movdqa	xmm3,XMMWORD[80+r11]
 DB	102,15,56,0,217
 	pxor	xmm3,xmm2
 DB	102,15,56,0,221
 
-	movdqa	xmm2,XMMWORD PTR[96+r11]
+	movdqa	xmm2,XMMWORD[96+r11]
 DB	102,15,56,0,212
 	pxor	xmm2,xmm3
-	movdqa	xmm3,XMMWORD PTR[112+r11]
+	movdqa	xmm3,XMMWORD[112+r11]
 DB	102,15,56,0,217
 	pxor	xmm3,xmm2
 
 	add	rdx,-16
 
-$L$schedule_mangle_both::
-	movdqa	xmm1,XMMWORD PTR[r10*1+r8]
+$L$schedule_mangle_both:
+	movdqa	xmm1,XMMWORD[r10*1+r8]
 DB	102,15,56,0,217
 	add	r8,-16
-	and	r8,030h
-	movdqu	XMMWORD PTR[rdx],xmm3
+	and	r8,0x30
+	movdqu	XMMWORD[rdx],xmm3
 	DB	0F3h,0C3h		;repret
-_vpaes_schedule_mangle	ENDP
 
 
 
 
-PUBLIC	vpaes_set_encrypt_key
+
+global	vpaes_set_encrypt_key
 
 ALIGN	16
-vpaes_set_encrypt_key	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+vpaes_set_encrypt_key:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_vpaes_set_encrypt_key::
+$L$SEH_begin_vpaes_set_encrypt_key:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 
 
-	lea	rsp,QWORD PTR[((-184))+rsp]
-	movaps	XMMWORD PTR[16+rsp],xmm6
-	movaps	XMMWORD PTR[32+rsp],xmm7
-	movaps	XMMWORD PTR[48+rsp],xmm8
-	movaps	XMMWORD PTR[64+rsp],xmm9
-	movaps	XMMWORD PTR[80+rsp],xmm10
-	movaps	XMMWORD PTR[96+rsp],xmm11
-	movaps	XMMWORD PTR[112+rsp],xmm12
-	movaps	XMMWORD PTR[128+rsp],xmm13
-	movaps	XMMWORD PTR[144+rsp],xmm14
-	movaps	XMMWORD PTR[160+rsp],xmm15
-$L$enc_key_body::
+	lea	rsp,[((-184))+rsp]
+	movaps	XMMWORD[16+rsp],xmm6
+	movaps	XMMWORD[32+rsp],xmm7
+	movaps	XMMWORD[48+rsp],xmm8
+	movaps	XMMWORD[64+rsp],xmm9
+	movaps	XMMWORD[80+rsp],xmm10
+	movaps	XMMWORD[96+rsp],xmm11
+	movaps	XMMWORD[112+rsp],xmm12
+	movaps	XMMWORD[128+rsp],xmm13
+	movaps	XMMWORD[144+rsp],xmm14
+	movaps	XMMWORD[160+rsp],xmm15
+$L$enc_key_body:
 	mov	eax,esi
 	shr	eax,5
 	add	eax,5
-	mov	DWORD PTR[240+rdx],eax
+	mov	DWORD[240+rdx],eax
 
 	mov	ecx,0
-	mov	r8d,030h
+	mov	r8d,0x30
 	call	_vpaes_schedule_core
-	movaps	xmm6,XMMWORD PTR[16+rsp]
-	movaps	xmm7,XMMWORD PTR[32+rsp]
-	movaps	xmm8,XMMWORD PTR[48+rsp]
-	movaps	xmm9,XMMWORD PTR[64+rsp]
-	movaps	xmm10,XMMWORD PTR[80+rsp]
-	movaps	xmm11,XMMWORD PTR[96+rsp]
-	movaps	xmm12,XMMWORD PTR[112+rsp]
-	movaps	xmm13,XMMWORD PTR[128+rsp]
-	movaps	xmm14,XMMWORD PTR[144+rsp]
-	movaps	xmm15,XMMWORD PTR[160+rsp]
-	lea	rsp,QWORD PTR[184+rsp]
-$L$enc_key_epilogue::
+	movaps	xmm6,XMMWORD[16+rsp]
+	movaps	xmm7,XMMWORD[32+rsp]
+	movaps	xmm8,XMMWORD[48+rsp]
+	movaps	xmm9,XMMWORD[64+rsp]
+	movaps	xmm10,XMMWORD[80+rsp]
+	movaps	xmm11,XMMWORD[96+rsp]
+	movaps	xmm12,XMMWORD[112+rsp]
+	movaps	xmm13,XMMWORD[128+rsp]
+	movaps	xmm14,XMMWORD[144+rsp]
+	movaps	xmm15,XMMWORD[160+rsp]
+	lea	rsp,[184+rsp]
+$L$enc_key_epilogue:
 	xor	eax,eax
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_vpaes_set_encrypt_key::
-vpaes_set_encrypt_key	ENDP
+$L$SEH_end_vpaes_set_encrypt_key:
 
-PUBLIC	vpaes_set_decrypt_key
+global	vpaes_set_decrypt_key
 
 ALIGN	16
-vpaes_set_decrypt_key	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+vpaes_set_decrypt_key:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_vpaes_set_decrypt_key::
+$L$SEH_begin_vpaes_set_decrypt_key:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 
 
-	lea	rsp,QWORD PTR[((-184))+rsp]
-	movaps	XMMWORD PTR[16+rsp],xmm6
-	movaps	XMMWORD PTR[32+rsp],xmm7
-	movaps	XMMWORD PTR[48+rsp],xmm8
-	movaps	XMMWORD PTR[64+rsp],xmm9
-	movaps	XMMWORD PTR[80+rsp],xmm10
-	movaps	XMMWORD PTR[96+rsp],xmm11
-	movaps	XMMWORD PTR[112+rsp],xmm12
-	movaps	XMMWORD PTR[128+rsp],xmm13
-	movaps	XMMWORD PTR[144+rsp],xmm14
-	movaps	XMMWORD PTR[160+rsp],xmm15
-$L$dec_key_body::
+	lea	rsp,[((-184))+rsp]
+	movaps	XMMWORD[16+rsp],xmm6
+	movaps	XMMWORD[32+rsp],xmm7
+	movaps	XMMWORD[48+rsp],xmm8
+	movaps	XMMWORD[64+rsp],xmm9
+	movaps	XMMWORD[80+rsp],xmm10
+	movaps	XMMWORD[96+rsp],xmm11
+	movaps	XMMWORD[112+rsp],xmm12
+	movaps	XMMWORD[128+rsp],xmm13
+	movaps	XMMWORD[144+rsp],xmm14
+	movaps	XMMWORD[160+rsp],xmm15
+$L$dec_key_body:
 	mov	eax,esi
 	shr	eax,5
 	add	eax,5
-	mov	DWORD PTR[240+rdx],eax
+	mov	DWORD[240+rdx],eax
 	shl	eax,4
-	lea	rdx,QWORD PTR[16+rax*1+rdx]
+	lea	rdx,[16+rax*1+rdx]
 
 	mov	ecx,1
 	mov	r8d,esi
@@ -695,197 +698,193 @@
 	and	r8d,32
 	xor	r8d,32
 	call	_vpaes_schedule_core
-	movaps	xmm6,XMMWORD PTR[16+rsp]
-	movaps	xmm7,XMMWORD PTR[32+rsp]
-	movaps	xmm8,XMMWORD PTR[48+rsp]
-	movaps	xmm9,XMMWORD PTR[64+rsp]
-	movaps	xmm10,XMMWORD PTR[80+rsp]
-	movaps	xmm11,XMMWORD PTR[96+rsp]
-	movaps	xmm12,XMMWORD PTR[112+rsp]
-	movaps	xmm13,XMMWORD PTR[128+rsp]
-	movaps	xmm14,XMMWORD PTR[144+rsp]
-	movaps	xmm15,XMMWORD PTR[160+rsp]
-	lea	rsp,QWORD PTR[184+rsp]
-$L$dec_key_epilogue::
+	movaps	xmm6,XMMWORD[16+rsp]
+	movaps	xmm7,XMMWORD[32+rsp]
+	movaps	xmm8,XMMWORD[48+rsp]
+	movaps	xmm9,XMMWORD[64+rsp]
+	movaps	xmm10,XMMWORD[80+rsp]
+	movaps	xmm11,XMMWORD[96+rsp]
+	movaps	xmm12,XMMWORD[112+rsp]
+	movaps	xmm13,XMMWORD[128+rsp]
+	movaps	xmm14,XMMWORD[144+rsp]
+	movaps	xmm15,XMMWORD[160+rsp]
+	lea	rsp,[184+rsp]
+$L$dec_key_epilogue:
 	xor	eax,eax
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_vpaes_set_decrypt_key::
-vpaes_set_decrypt_key	ENDP
+$L$SEH_end_vpaes_set_decrypt_key:
 
-PUBLIC	vpaes_encrypt
+global	vpaes_encrypt
 
 ALIGN	16
-vpaes_encrypt	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+vpaes_encrypt:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_vpaes_encrypt::
+$L$SEH_begin_vpaes_encrypt:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 
 
-	lea	rsp,QWORD PTR[((-184))+rsp]
-	movaps	XMMWORD PTR[16+rsp],xmm6
-	movaps	XMMWORD PTR[32+rsp],xmm7
-	movaps	XMMWORD PTR[48+rsp],xmm8
-	movaps	XMMWORD PTR[64+rsp],xmm9
-	movaps	XMMWORD PTR[80+rsp],xmm10
-	movaps	XMMWORD PTR[96+rsp],xmm11
-	movaps	XMMWORD PTR[112+rsp],xmm12
-	movaps	XMMWORD PTR[128+rsp],xmm13
-	movaps	XMMWORD PTR[144+rsp],xmm14
-	movaps	XMMWORD PTR[160+rsp],xmm15
-$L$enc_body::
-	movdqu	xmm0,XMMWORD PTR[rdi]
+	lea	rsp,[((-184))+rsp]
+	movaps	XMMWORD[16+rsp],xmm6
+	movaps	XMMWORD[32+rsp],xmm7
+	movaps	XMMWORD[48+rsp],xmm8
+	movaps	XMMWORD[64+rsp],xmm9
+	movaps	XMMWORD[80+rsp],xmm10
+	movaps	XMMWORD[96+rsp],xmm11
+	movaps	XMMWORD[112+rsp],xmm12
+	movaps	XMMWORD[128+rsp],xmm13
+	movaps	XMMWORD[144+rsp],xmm14
+	movaps	XMMWORD[160+rsp],xmm15
+$L$enc_body:
+	movdqu	xmm0,XMMWORD[rdi]
 	call	_vpaes_preheat
 	call	_vpaes_encrypt_core
-	movdqu	XMMWORD PTR[rsi],xmm0
-	movaps	xmm6,XMMWORD PTR[16+rsp]
-	movaps	xmm7,XMMWORD PTR[32+rsp]
-	movaps	xmm8,XMMWORD PTR[48+rsp]
-	movaps	xmm9,XMMWORD PTR[64+rsp]
-	movaps	xmm10,XMMWORD PTR[80+rsp]
-	movaps	xmm11,XMMWORD PTR[96+rsp]
-	movaps	xmm12,XMMWORD PTR[112+rsp]
-	movaps	xmm13,XMMWORD PTR[128+rsp]
-	movaps	xmm14,XMMWORD PTR[144+rsp]
-	movaps	xmm15,XMMWORD PTR[160+rsp]
-	lea	rsp,QWORD PTR[184+rsp]
-$L$enc_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	movdqu	XMMWORD[rsi],xmm0
+	movaps	xmm6,XMMWORD[16+rsp]
+	movaps	xmm7,XMMWORD[32+rsp]
+	movaps	xmm8,XMMWORD[48+rsp]
+	movaps	xmm9,XMMWORD[64+rsp]
+	movaps	xmm10,XMMWORD[80+rsp]
+	movaps	xmm11,XMMWORD[96+rsp]
+	movaps	xmm12,XMMWORD[112+rsp]
+	movaps	xmm13,XMMWORD[128+rsp]
+	movaps	xmm14,XMMWORD[144+rsp]
+	movaps	xmm15,XMMWORD[160+rsp]
+	lea	rsp,[184+rsp]
+$L$enc_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_vpaes_encrypt::
-vpaes_encrypt	ENDP
+$L$SEH_end_vpaes_encrypt:
 
-PUBLIC	vpaes_decrypt
+global	vpaes_decrypt
 
 ALIGN	16
-vpaes_decrypt	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+vpaes_decrypt:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_vpaes_decrypt::
+$L$SEH_begin_vpaes_decrypt:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 
 
-	lea	rsp,QWORD PTR[((-184))+rsp]
-	movaps	XMMWORD PTR[16+rsp],xmm6
-	movaps	XMMWORD PTR[32+rsp],xmm7
-	movaps	XMMWORD PTR[48+rsp],xmm8
-	movaps	XMMWORD PTR[64+rsp],xmm9
-	movaps	XMMWORD PTR[80+rsp],xmm10
-	movaps	XMMWORD PTR[96+rsp],xmm11
-	movaps	XMMWORD PTR[112+rsp],xmm12
-	movaps	XMMWORD PTR[128+rsp],xmm13
-	movaps	XMMWORD PTR[144+rsp],xmm14
-	movaps	XMMWORD PTR[160+rsp],xmm15
-$L$dec_body::
-	movdqu	xmm0,XMMWORD PTR[rdi]
+	lea	rsp,[((-184))+rsp]
+	movaps	XMMWORD[16+rsp],xmm6
+	movaps	XMMWORD[32+rsp],xmm7
+	movaps	XMMWORD[48+rsp],xmm8
+	movaps	XMMWORD[64+rsp],xmm9
+	movaps	XMMWORD[80+rsp],xmm10
+	movaps	XMMWORD[96+rsp],xmm11
+	movaps	XMMWORD[112+rsp],xmm12
+	movaps	XMMWORD[128+rsp],xmm13
+	movaps	XMMWORD[144+rsp],xmm14
+	movaps	XMMWORD[160+rsp],xmm15
+$L$dec_body:
+	movdqu	xmm0,XMMWORD[rdi]
 	call	_vpaes_preheat
 	call	_vpaes_decrypt_core
-	movdqu	XMMWORD PTR[rsi],xmm0
-	movaps	xmm6,XMMWORD PTR[16+rsp]
-	movaps	xmm7,XMMWORD PTR[32+rsp]
-	movaps	xmm8,XMMWORD PTR[48+rsp]
-	movaps	xmm9,XMMWORD PTR[64+rsp]
-	movaps	xmm10,XMMWORD PTR[80+rsp]
-	movaps	xmm11,XMMWORD PTR[96+rsp]
-	movaps	xmm12,XMMWORD PTR[112+rsp]
-	movaps	xmm13,XMMWORD PTR[128+rsp]
-	movaps	xmm14,XMMWORD PTR[144+rsp]
-	movaps	xmm15,XMMWORD PTR[160+rsp]
-	lea	rsp,QWORD PTR[184+rsp]
-$L$dec_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	movdqu	XMMWORD[rsi],xmm0
+	movaps	xmm6,XMMWORD[16+rsp]
+	movaps	xmm7,XMMWORD[32+rsp]
+	movaps	xmm8,XMMWORD[48+rsp]
+	movaps	xmm9,XMMWORD[64+rsp]
+	movaps	xmm10,XMMWORD[80+rsp]
+	movaps	xmm11,XMMWORD[96+rsp]
+	movaps	xmm12,XMMWORD[112+rsp]
+	movaps	xmm13,XMMWORD[128+rsp]
+	movaps	xmm14,XMMWORD[144+rsp]
+	movaps	xmm15,XMMWORD[160+rsp]
+	lea	rsp,[184+rsp]
+$L$dec_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_vpaes_decrypt::
-vpaes_decrypt	ENDP
-PUBLIC	vpaes_cbc_encrypt
+$L$SEH_end_vpaes_decrypt:
+global	vpaes_cbc_encrypt
 
 ALIGN	16
-vpaes_cbc_encrypt	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+vpaes_cbc_encrypt:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_vpaes_cbc_encrypt::
+$L$SEH_begin_vpaes_cbc_encrypt:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 	mov	rcx,r9
-	mov	r8,QWORD PTR[40+rsp]
-	mov	r9,QWORD PTR[48+rsp]
+	mov	r8,QWORD[40+rsp]
+	mov	r9,QWORD[48+rsp]
 
 
 	xchg	rdx,rcx
 	sub	rcx,16
-	jc	$L$cbc_abort
-	lea	rsp,QWORD PTR[((-184))+rsp]
-	movaps	XMMWORD PTR[16+rsp],xmm6
-	movaps	XMMWORD PTR[32+rsp],xmm7
-	movaps	XMMWORD PTR[48+rsp],xmm8
-	movaps	XMMWORD PTR[64+rsp],xmm9
-	movaps	XMMWORD PTR[80+rsp],xmm10
-	movaps	XMMWORD PTR[96+rsp],xmm11
-	movaps	XMMWORD PTR[112+rsp],xmm12
-	movaps	XMMWORD PTR[128+rsp],xmm13
-	movaps	XMMWORD PTR[144+rsp],xmm14
-	movaps	XMMWORD PTR[160+rsp],xmm15
-$L$cbc_body::
-	movdqu	xmm6,XMMWORD PTR[r8]
+	jc	NEAR $L$cbc_abort
+	lea	rsp,[((-184))+rsp]
+	movaps	XMMWORD[16+rsp],xmm6
+	movaps	XMMWORD[32+rsp],xmm7
+	movaps	XMMWORD[48+rsp],xmm8
+	movaps	XMMWORD[64+rsp],xmm9
+	movaps	XMMWORD[80+rsp],xmm10
+	movaps	XMMWORD[96+rsp],xmm11
+	movaps	XMMWORD[112+rsp],xmm12
+	movaps	XMMWORD[128+rsp],xmm13
+	movaps	XMMWORD[144+rsp],xmm14
+	movaps	XMMWORD[160+rsp],xmm15
+$L$cbc_body:
+	movdqu	xmm6,XMMWORD[r8]
 	sub	rsi,rdi
 	call	_vpaes_preheat
 	cmp	r9d,0
-	je	$L$cbc_dec_loop
-	jmp	$L$cbc_enc_loop
+	je	NEAR $L$cbc_dec_loop
+	jmp	NEAR $L$cbc_enc_loop
 ALIGN	16
-$L$cbc_enc_loop::
-	movdqu	xmm0,XMMWORD PTR[rdi]
+$L$cbc_enc_loop:
+	movdqu	xmm0,XMMWORD[rdi]
 	pxor	xmm0,xmm6
 	call	_vpaes_encrypt_core
 	movdqa	xmm6,xmm0
-	movdqu	XMMWORD PTR[rdi*1+rsi],xmm0
-	lea	rdi,QWORD PTR[16+rdi]
+	movdqu	XMMWORD[rdi*1+rsi],xmm0
+	lea	rdi,[16+rdi]
 	sub	rcx,16
-	jnc	$L$cbc_enc_loop
-	jmp	$L$cbc_done
+	jnc	NEAR $L$cbc_enc_loop
+	jmp	NEAR $L$cbc_done
 ALIGN	16
-$L$cbc_dec_loop::
-	movdqu	xmm0,XMMWORD PTR[rdi]
+$L$cbc_dec_loop:
+	movdqu	xmm0,XMMWORD[rdi]
 	movdqa	xmm7,xmm0
 	call	_vpaes_decrypt_core
 	pxor	xmm0,xmm6
 	movdqa	xmm6,xmm7
-	movdqu	XMMWORD PTR[rdi*1+rsi],xmm0
-	lea	rdi,QWORD PTR[16+rdi]
+	movdqu	XMMWORD[rdi*1+rsi],xmm0
+	lea	rdi,[16+rdi]
 	sub	rcx,16
-	jnc	$L$cbc_dec_loop
-$L$cbc_done::
-	movdqu	XMMWORD PTR[r8],xmm6
-	movaps	xmm6,XMMWORD PTR[16+rsp]
-	movaps	xmm7,XMMWORD PTR[32+rsp]
-	movaps	xmm8,XMMWORD PTR[48+rsp]
-	movaps	xmm9,XMMWORD PTR[64+rsp]
-	movaps	xmm10,XMMWORD PTR[80+rsp]
-	movaps	xmm11,XMMWORD PTR[96+rsp]
-	movaps	xmm12,XMMWORD PTR[112+rsp]
-	movaps	xmm13,XMMWORD PTR[128+rsp]
-	movaps	xmm14,XMMWORD PTR[144+rsp]
-	movaps	xmm15,XMMWORD PTR[160+rsp]
-	lea	rsp,QWORD PTR[184+rsp]
-$L$cbc_epilogue::
-$L$cbc_abort::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	jnc	NEAR $L$cbc_dec_loop
+$L$cbc_done:
+	movdqu	XMMWORD[r8],xmm6
+	movaps	xmm6,XMMWORD[16+rsp]
+	movaps	xmm7,XMMWORD[32+rsp]
+	movaps	xmm8,XMMWORD[48+rsp]
+	movaps	xmm9,XMMWORD[64+rsp]
+	movaps	xmm10,XMMWORD[80+rsp]
+	movaps	xmm11,XMMWORD[96+rsp]
+	movaps	xmm12,XMMWORD[112+rsp]
+	movaps	xmm13,XMMWORD[128+rsp]
+	movaps	xmm14,XMMWORD[144+rsp]
+	movaps	xmm15,XMMWORD[160+rsp]
+	lea	rsp,[184+rsp]
+$L$cbc_epilogue:
+$L$cbc_abort:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_vpaes_cbc_encrypt::
-vpaes_cbc_encrypt	ENDP
+$L$SEH_end_vpaes_cbc_encrypt:
 
 
 
@@ -894,17 +893,17 @@
 
 
 ALIGN	16
-_vpaes_preheat	PROC PRIVATE
-	lea	r10,QWORD PTR[$L$k_s0F]
-	movdqa	xmm10,XMMWORD PTR[((-32))+r10]
-	movdqa	xmm11,XMMWORD PTR[((-16))+r10]
-	movdqa	xmm9,XMMWORD PTR[r10]
-	movdqa	xmm13,XMMWORD PTR[48+r10]
-	movdqa	xmm12,XMMWORD PTR[64+r10]
-	movdqa	xmm15,XMMWORD PTR[80+r10]
-	movdqa	xmm14,XMMWORD PTR[96+r10]
+_vpaes_preheat:
+	lea	r10,[$L$k_s0F]
+	movdqa	xmm10,XMMWORD[((-32))+r10]
+	movdqa	xmm11,XMMWORD[((-16))+r10]
+	movdqa	xmm9,XMMWORD[r10]
+	movdqa	xmm13,XMMWORD[48+r10]
+	movdqa	xmm12,XMMWORD[64+r10]
+	movdqa	xmm15,XMMWORD[80+r10]
+	movdqa	xmm14,XMMWORD[96+r10]
 	DB	0F3h,0C3h		;repret
-_vpaes_preheat	ENDP
+
 
 
 
@@ -912,100 +911,100 @@
 
 
 ALIGN	64
-_vpaes_consts::
-$L$k_inv::
-	DQ	00E05060F0D080180h,0040703090A0B0C02h
-	DQ	001040A060F0B0780h,0030D0E0C02050809h
+_vpaes_consts:
+$L$k_inv:
+	DQ	0x0E05060F0D080180,0x040703090A0B0C02
+	DQ	0x01040A060F0B0780,0x030D0E0C02050809
 
-$L$k_s0F::
-	DQ	00F0F0F0F0F0F0F0Fh,00F0F0F0F0F0F0F0Fh
+$L$k_s0F:
+	DQ	0x0F0F0F0F0F0F0F0F,0x0F0F0F0F0F0F0F0F
 
-$L$k_ipt::
-	DQ	0C2B2E8985A2A7000h,0CABAE09052227808h
-	DQ	04C01307D317C4D00h,0CD80B1FCB0FDCC81h
+$L$k_ipt:
+	DQ	0xC2B2E8985A2A7000,0xCABAE09052227808
+	DQ	0x4C01307D317C4D00,0xCD80B1FCB0FDCC81
 
-$L$k_sb1::
-	DQ	0B19BE18FCB503E00h,0A5DF7A6E142AF544h
-	DQ	03618D415FAE22300h,03BF7CCC10D2ED9EFh
-$L$k_sb2::
-	DQ	0E27A93C60B712400h,05EB7E955BC982FCDh
-	DQ	069EB88400AE12900h,0C2A163C8AB82234Ah
-$L$k_sbo::
-	DQ	0D0D26D176FBDC700h,015AABF7AC502A878h
-	DQ	0CFE474A55FBB6A00h,08E1E90D1412B35FAh
+$L$k_sb1:
+	DQ	0xB19BE18FCB503E00,0xA5DF7A6E142AF544
+	DQ	0x3618D415FAE22300,0x3BF7CCC10D2ED9EF
+$L$k_sb2:
+	DQ	0xE27A93C60B712400,0x5EB7E955BC982FCD
+	DQ	0x69EB88400AE12900,0xC2A163C8AB82234A
+$L$k_sbo:
+	DQ	0xD0D26D176FBDC700,0x15AABF7AC502A878
+	DQ	0xCFE474A55FBB6A00,0x8E1E90D1412B35FA
 
-$L$k_mc_forward::
-	DQ	00407060500030201h,00C0F0E0D080B0A09h
-	DQ	0080B0A0904070605h,0000302010C0F0E0Dh
-	DQ	00C0F0E0D080B0A09h,00407060500030201h
-	DQ	0000302010C0F0E0Dh,0080B0A0904070605h
+$L$k_mc_forward:
+	DQ	0x0407060500030201,0x0C0F0E0D080B0A09
+	DQ	0x080B0A0904070605,0x000302010C0F0E0D
+	DQ	0x0C0F0E0D080B0A09,0x0407060500030201
+	DQ	0x000302010C0F0E0D,0x080B0A0904070605
 
-$L$k_mc_backward::
-	DQ	00605040702010003h,00E0D0C0F0A09080Bh
-	DQ	0020100030E0D0C0Fh,00A09080B06050407h
-	DQ	00E0D0C0F0A09080Bh,00605040702010003h
-	DQ	00A09080B06050407h,0020100030E0D0C0Fh
+$L$k_mc_backward:
+	DQ	0x0605040702010003,0x0E0D0C0F0A09080B
+	DQ	0x020100030E0D0C0F,0x0A09080B06050407
+	DQ	0x0E0D0C0F0A09080B,0x0605040702010003
+	DQ	0x0A09080B06050407,0x020100030E0D0C0F
 
-$L$k_sr::
-	DQ	00706050403020100h,00F0E0D0C0B0A0908h
-	DQ	0030E09040F0A0500h,00B06010C07020D08h
-	DQ	00F060D040B020900h,0070E050C030A0108h
-	DQ	00B0E0104070A0D00h,00306090C0F020508h
+$L$k_sr:
+	DQ	0x0706050403020100,0x0F0E0D0C0B0A0908
+	DQ	0x030E09040F0A0500,0x0B06010C07020D08
+	DQ	0x0F060D040B020900,0x070E050C030A0108
+	DQ	0x0B0E0104070A0D00,0x0306090C0F020508
 
-$L$k_rcon::
-	DQ	01F8391B9AF9DEEB6h,0702A98084D7C7D81h
+$L$k_rcon:
+	DQ	0x1F8391B9AF9DEEB6,0x702A98084D7C7D81
 
-$L$k_s63::
-	DQ	05B5B5B5B5B5B5B5Bh,05B5B5B5B5B5B5B5Bh
+$L$k_s63:
+	DQ	0x5B5B5B5B5B5B5B5B,0x5B5B5B5B5B5B5B5B
 
-$L$k_opt::
-	DQ	0FF9F4929D6B66000h,0F7974121DEBE6808h
-	DQ	001EDBD5150BCEC00h,0E10D5DB1B05C0CE0h
+$L$k_opt:
+	DQ	0xFF9F4929D6B66000,0xF7974121DEBE6808
+	DQ	0x01EDBD5150BCEC00,0xE10D5DB1B05C0CE0
 
-$L$k_deskew::
-	DQ	007E4A34047A4E300h,01DFEB95A5DBEF91Ah
-	DQ	05F36B5DC83EA6900h,02841C2ABF49D1E77h
+$L$k_deskew:
+	DQ	0x07E4A34047A4E300,0x1DFEB95A5DBEF91A
+	DQ	0x5F36B5DC83EA6900,0x2841C2ABF49D1E77
 
 
 
 
 
-$L$k_dksd::
-	DQ	0FEB91A5DA3E44700h,00740E3A45A1DBEF9h
-	DQ	041C277F4B5368300h,05FDC69EAAB289D1Eh
-$L$k_dksb::
-	DQ	09A4FCA1F8550D500h,003D653861CC94C99h
-	DQ	0115BEDA7B6FC4A00h,0D993256F7E3482C8h
-$L$k_dkse::
-	DQ	0D5031CCA1FC9D600h,053859A4C994F5086h
-	DQ	0A23196054FDC7BE8h,0CD5EF96A20B31487h
-$L$k_dks9::
-	DQ	0B6116FC87ED9A700h,04AED933482255BFCh
-	DQ	04576516227143300h,08BB89FACE9DAFDCEh
+$L$k_dksd:
+	DQ	0xFEB91A5DA3E44700,0x0740E3A45A1DBEF9
+	DQ	0x41C277F4B5368300,0x5FDC69EAAB289D1E
+$L$k_dksb:
+	DQ	0x9A4FCA1F8550D500,0x03D653861CC94C99
+	DQ	0x115BEDA7B6FC4A00,0xD993256F7E3482C8
+$L$k_dkse:
+	DQ	0xD5031CCA1FC9D600,0x53859A4C994F5086
+	DQ	0xA23196054FDC7BE8,0xCD5EF96A20B31487
+$L$k_dks9:
+	DQ	0xB6116FC87ED9A700,0x4AED933482255BFC
+	DQ	0x4576516227143300,0x8BB89FACE9DAFDCE
 
 
 
 
 
-$L$k_dipt::
-	DQ	00F505B040B545F00h,0154A411E114E451Ah
-	DQ	086E383E660056500h,012771772F491F194h
+$L$k_dipt:
+	DQ	0x0F505B040B545F00,0x154A411E114E451A
+	DQ	0x86E383E660056500,0x12771772F491F194
 
-$L$k_dsb9::
-	DQ	0851C03539A86D600h,0CAD51F504F994CC9h
-	DQ	0C03B1789ECD74900h,0725E2C9EB2FBA565h
-$L$k_dsbd::
-	DQ	07D57CCDFE6B1A200h,0F56E9B13882A4439h
-	DQ	03CE2FAF724C6CB00h,02931180D15DEEFD3h
-$L$k_dsbb::
-	DQ	0D022649296B44200h,0602646F6B0F2D404h
-	DQ	0C19498A6CD596700h,0F3FF0C3E3255AA6Bh
-$L$k_dsbe::
-	DQ	046F2929626D4D000h,02242600464B4F6B0h
-	DQ	00C55A6CDFFAAC100h,09467F36B98593E32h
-$L$k_dsbo::
-	DQ	01387EA537EF94000h,0C7AA6DB9D4943E2Dh
-	DQ	012D7560F93441D00h,0CA4B8159D8C58E9Ch
+$L$k_dsb9:
+	DQ	0x851C03539A86D600,0xCAD51F504F994CC9
+	DQ	0xC03B1789ECD74900,0x725E2C9EB2FBA565
+$L$k_dsbd:
+	DQ	0x7D57CCDFE6B1A200,0xF56E9B13882A4439
+	DQ	0x3CE2FAF724C6CB00,0x2931180D15DEEFD3
+$L$k_dsbb:
+	DQ	0xD022649296B44200,0x602646F6B0F2D404
+	DQ	0xC19498A6CD596700,0xF3FF0C3E3255AA6B
+$L$k_dsbe:
+	DQ	0x46F2929626D4D000,0x2242600464B4F6B0
+	DQ	0x0C55A6CDFFAAC100,0x9467F36B98593E32
+$L$k_dsbo:
+	DQ	0x1387EA537EF94000,0xC7AA6DB9D4943E2D
+	DQ	0x12D7560F93441D00,0xCA4B8159D8C58E9C
 DB	86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105
 DB	111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54
 DB	52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97
@@ -1013,10 +1012,10 @@
 DB	85,110,105,118,101,114,115,105,116,121,41,0
 ALIGN	64
 
-EXTERN	__imp_RtlVirtualUnwind:NEAR
+EXTERN	__imp_RtlVirtualUnwind
 
 ALIGN	16
-se_handler	PROC PRIVATE
+se_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -1028,55 +1027,55 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[120+r8]
-	mov	rbx,QWORD PTR[248+r8]
+	mov	rax,QWORD[120+r8]
+	mov	rbx,QWORD[248+r8]
 
-	mov	rsi,QWORD PTR[8+r9]
-	mov	r11,QWORD PTR[56+r9]
+	mov	rsi,QWORD[8+r9]
+	mov	r11,QWORD[56+r9]
 
-	mov	r10d,DWORD PTR[r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jb	$L$in_prologue
+	jb	NEAR $L$in_prologue
 
-	mov	rax,QWORD PTR[152+r8]
+	mov	rax,QWORD[152+r8]
 
-	mov	r10d,DWORD PTR[4+r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[4+r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jae	$L$in_prologue
+	jae	NEAR $L$in_prologue
 
-	lea	rsi,QWORD PTR[16+rax]
-	lea	rdi,QWORD PTR[512+r8]
+	lea	rsi,[16+rax]
+	lea	rdi,[512+r8]
 	mov	ecx,20
-	DD	0a548f3fch
-	lea	rax,QWORD PTR[184+rax]
+	DD	0xa548f3fc
+	lea	rax,[184+rax]
 
-$L$in_prologue::
-	mov	rdi,QWORD PTR[8+rax]
-	mov	rsi,QWORD PTR[16+rax]
-	mov	QWORD PTR[152+r8],rax
-	mov	QWORD PTR[168+r8],rsi
-	mov	QWORD PTR[176+r8],rdi
+$L$in_prologue:
+	mov	rdi,QWORD[8+rax]
+	mov	rsi,QWORD[16+rax]
+	mov	QWORD[152+r8],rax
+	mov	QWORD[168+r8],rsi
+	mov	QWORD[176+r8],rdi
 
-	mov	rdi,QWORD PTR[40+r9]
+	mov	rdi,QWORD[40+r9]
 	mov	rsi,r8
 	mov	ecx,154
-	DD	0a548f3fch
+	DD	0xa548f3fc
 
 	mov	rsi,r9
 	xor	rcx,rcx
-	mov	rdx,QWORD PTR[8+rsi]
-	mov	r8,QWORD PTR[rsi]
-	mov	r9,QWORD PTR[16+rsi]
-	mov	r10,QWORD PTR[40+rsi]
-	lea	r11,QWORD PTR[56+rsi]
-	lea	r12,QWORD PTR[24+rsi]
-	mov	QWORD PTR[32+rsp],r10
-	mov	QWORD PTR[40+rsp],r11
-	mov	QWORD PTR[48+rsp],r12
-	mov	QWORD PTR[56+rsp],rcx
-	call	QWORD PTR[__imp_RtlVirtualUnwind]
+	mov	rdx,QWORD[8+rsi]
+	mov	r8,QWORD[rsi]
+	mov	r9,QWORD[16+rsi]
+	mov	r10,QWORD[40+rsi]
+	lea	r11,[56+rsi]
+	lea	r12,[24+rsi]
+	mov	QWORD[32+rsp],r10
+	mov	QWORD[40+rsp],r11
+	mov	QWORD[48+rsp],r12
+	mov	QWORD[56+rsp],rcx
+	call	QWORD[__imp_RtlVirtualUnwind]
 
 	mov	eax,1
 	add	rsp,64
@@ -1090,54 +1089,49 @@
 	pop	rdi
 	pop	rsi
 	DB	0F3h,0C3h		;repret
-se_handler	ENDP
 
-.text$	ENDS
-.pdata	SEGMENT READONLY ALIGN(4)
+
+section	.pdata rdata align=4
 ALIGN	4
-	DD	imagerel $L$SEH_begin_vpaes_set_encrypt_key
-	DD	imagerel $L$SEH_end_vpaes_set_encrypt_key
-	DD	imagerel $L$SEH_info_vpaes_set_encrypt_key
+	DD	$L$SEH_begin_vpaes_set_encrypt_key wrt ..imagebase
+	DD	$L$SEH_end_vpaes_set_encrypt_key wrt ..imagebase
+	DD	$L$SEH_info_vpaes_set_encrypt_key wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_vpaes_set_decrypt_key
-	DD	imagerel $L$SEH_end_vpaes_set_decrypt_key
-	DD	imagerel $L$SEH_info_vpaes_set_decrypt_key
+	DD	$L$SEH_begin_vpaes_set_decrypt_key wrt ..imagebase
+	DD	$L$SEH_end_vpaes_set_decrypt_key wrt ..imagebase
+	DD	$L$SEH_info_vpaes_set_decrypt_key wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_vpaes_encrypt
-	DD	imagerel $L$SEH_end_vpaes_encrypt
-	DD	imagerel $L$SEH_info_vpaes_encrypt
+	DD	$L$SEH_begin_vpaes_encrypt wrt ..imagebase
+	DD	$L$SEH_end_vpaes_encrypt wrt ..imagebase
+	DD	$L$SEH_info_vpaes_encrypt wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_vpaes_decrypt
-	DD	imagerel $L$SEH_end_vpaes_decrypt
-	DD	imagerel $L$SEH_info_vpaes_decrypt
+	DD	$L$SEH_begin_vpaes_decrypt wrt ..imagebase
+	DD	$L$SEH_end_vpaes_decrypt wrt ..imagebase
+	DD	$L$SEH_info_vpaes_decrypt wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_vpaes_cbc_encrypt
-	DD	imagerel $L$SEH_end_vpaes_cbc_encrypt
-	DD	imagerel $L$SEH_info_vpaes_cbc_encrypt
+	DD	$L$SEH_begin_vpaes_cbc_encrypt wrt ..imagebase
+	DD	$L$SEH_end_vpaes_cbc_encrypt wrt ..imagebase
+	DD	$L$SEH_info_vpaes_cbc_encrypt wrt ..imagebase
 
-.pdata	ENDS
-.xdata	SEGMENT READONLY ALIGN(8)
+section	.xdata rdata align=8
 ALIGN	8
-$L$SEH_info_vpaes_set_encrypt_key::
+$L$SEH_info_vpaes_set_encrypt_key:
 DB	9,0,0,0
-	DD	imagerel se_handler
-	DD	imagerel $L$enc_key_body,imagerel $L$enc_key_epilogue
-$L$SEH_info_vpaes_set_decrypt_key::
+	DD	se_handler wrt ..imagebase
+	DD	$L$enc_key_body wrt ..imagebase,$L$enc_key_epilogue wrt ..imagebase
+$L$SEH_info_vpaes_set_decrypt_key:
 DB	9,0,0,0
-	DD	imagerel se_handler
-	DD	imagerel $L$dec_key_body,imagerel $L$dec_key_epilogue
-$L$SEH_info_vpaes_encrypt::
+	DD	se_handler wrt ..imagebase
+	DD	$L$dec_key_body wrt ..imagebase,$L$dec_key_epilogue wrt ..imagebase
+$L$SEH_info_vpaes_encrypt:
 DB	9,0,0,0
-	DD	imagerel se_handler
-	DD	imagerel $L$enc_body,imagerel $L$enc_epilogue
-$L$SEH_info_vpaes_decrypt::
+	DD	se_handler wrt ..imagebase
+	DD	$L$enc_body wrt ..imagebase,$L$enc_epilogue wrt ..imagebase
+$L$SEH_info_vpaes_decrypt:
 DB	9,0,0,0
-	DD	imagerel se_handler
-	DD	imagerel $L$dec_body,imagerel $L$dec_epilogue
-$L$SEH_info_vpaes_cbc_encrypt::
+	DD	se_handler wrt ..imagebase
+	DD	$L$dec_body wrt ..imagebase,$L$dec_epilogue wrt ..imagebase
+$L$SEH_info_vpaes_cbc_encrypt:
 DB	9,0,0,0
-	DD	imagerel se_handler
-	DD	imagerel $L$cbc_body,imagerel $L$cbc_epilogue
-
-.xdata	ENDS
-END
+	DD	se_handler wrt ..imagebase
+	DD	$L$cbc_body wrt ..imagebase,$L$cbc_epilogue wrt ..imagebase
diff --git a/third_party/boringssl/win-x86_64/crypto/bn/modexp512-x86_64.asm b/third_party/boringssl/win-x86_64/crypto/bn/modexp512-x86_64.asm
index d3e4a61..f3b306e 100644
--- a/third_party/boringssl/win-x86_64/crypto/bn/modexp512-x86_64.asm
+++ b/third_party/boringssl/win-x86_64/crypto/bn/modexp512-x86_64.asm
@@ -1,17 +1,21 @@
-OPTION	DOTNAME
-.text$	SEGMENT ALIGN(256) 'CODE'
+default	rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section	.text code align=64
+
 
 
 ALIGN	16
-MULADD_128x512	PROC PRIVATE
-	mov	rax,QWORD PTR[rsi]
+MULADD_128x512:
+	mov	rax,QWORD[rsi]
 	mul	rbp
 	add	r8,rax
 	adc	rdx,0
-	mov	QWORD PTR[rcx],r8
+	mov	QWORD[rcx],r8
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[8+rsi]
+	mov	rax,QWORD[8+rsi]
 	mul	rbp
 	add	r9,rax
 	adc	rdx,0
@@ -19,7 +23,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[16+rsi]
+	mov	rax,QWORD[16+rsi]
 	mul	rbp
 	add	r10,rax
 	adc	rdx,0
@@ -27,7 +31,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[24+rsi]
+	mov	rax,QWORD[24+rsi]
 	mul	rbp
 	add	r11,rax
 	adc	rdx,0
@@ -35,7 +39,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[32+rsi]
+	mov	rax,QWORD[32+rsi]
 	mul	rbp
 	add	r12,rax
 	adc	rdx,0
@@ -43,7 +47,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[40+rsi]
+	mov	rax,QWORD[40+rsi]
 	mul	rbp
 	add	r13,rax
 	adc	rdx,0
@@ -51,7 +55,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	mul	rbp
 	add	r14,rax
 	adc	rdx,0
@@ -59,22 +63,22 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	mul	rbp
 	add	r15,rax
 	adc	rdx,0
 	add	r15,rbx
 	adc	rdx,0
 	mov	r8,rdx
-	mov	rbp,QWORD PTR[8+rdi]
-	mov	rax,QWORD PTR[rsi]
+	mov	rbp,QWORD[8+rdi]
+	mov	rax,QWORD[rsi]
 	mul	rbp
 	add	r9,rax
 	adc	rdx,0
-	mov	QWORD PTR[8+rcx],r9
+	mov	QWORD[8+rcx],r9
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[8+rsi]
+	mov	rax,QWORD[8+rsi]
 	mul	rbp
 	add	r10,rax
 	adc	rdx,0
@@ -82,7 +86,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[16+rsi]
+	mov	rax,QWORD[16+rsi]
 	mul	rbp
 	add	r11,rax
 	adc	rdx,0
@@ -90,7 +94,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[24+rsi]
+	mov	rax,QWORD[24+rsi]
 	mul	rbp
 	add	r12,rax
 	adc	rdx,0
@@ -98,7 +102,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[32+rsi]
+	mov	rax,QWORD[32+rsi]
 	mul	rbp
 	add	r13,rax
 	adc	rdx,0
@@ -106,7 +110,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[40+rsi]
+	mov	rax,QWORD[40+rsi]
 	mul	rbp
 	add	r14,rax
 	adc	rdx,0
@@ -114,7 +118,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	mul	rbp
 	add	r15,rax
 	adc	rdx,0
@@ -122,7 +126,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	mul	rbp
 	add	r8,rax
 	adc	rdx,0
@@ -130,95 +134,95 @@
 	adc	rdx,0
 	mov	r9,rdx
 	DB	0F3h,0C3h		;repret
-MULADD_128x512	ENDP
+
 
 ALIGN	16
-mont_reduce	PROC PRIVATE
-	lea	rdi,QWORD PTR[192+rsp]
-	mov	rsi,QWORD PTR[32+rsp]
+mont_reduce:
+	lea	rdi,[192+rsp]
+	mov	rsi,QWORD[32+rsp]
 	add	rsi,576
-	lea	rcx,QWORD PTR[520+rsp]
+	lea	rcx,[520+rsp]
 
-	mov	rbp,QWORD PTR[96+rcx]
-	mov	rax,QWORD PTR[rsi]
+	mov	rbp,QWORD[96+rcx]
+	mov	rax,QWORD[rsi]
 	mul	rbp
-	mov	r8,QWORD PTR[rcx]
+	mov	r8,QWORD[rcx]
 	add	r8,rax
 	adc	rdx,0
-	mov	QWORD PTR[rdi],r8
+	mov	QWORD[rdi],r8
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[8+rsi]
+	mov	rax,QWORD[8+rsi]
 	mul	rbp
-	mov	r9,QWORD PTR[8+rcx]
+	mov	r9,QWORD[8+rcx]
 	add	r9,rax
 	adc	rdx,0
 	add	r9,rbx
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[16+rsi]
+	mov	rax,QWORD[16+rsi]
 	mul	rbp
-	mov	r10,QWORD PTR[16+rcx]
+	mov	r10,QWORD[16+rcx]
 	add	r10,rax
 	adc	rdx,0
 	add	r10,rbx
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[24+rsi]
+	mov	rax,QWORD[24+rsi]
 	mul	rbp
-	mov	r11,QWORD PTR[24+rcx]
+	mov	r11,QWORD[24+rcx]
 	add	r11,rax
 	adc	rdx,0
 	add	r11,rbx
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[32+rsi]
+	mov	rax,QWORD[32+rsi]
 	mul	rbp
-	mov	r12,QWORD PTR[32+rcx]
+	mov	r12,QWORD[32+rcx]
 	add	r12,rax
 	adc	rdx,0
 	add	r12,rbx
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[40+rsi]
+	mov	rax,QWORD[40+rsi]
 	mul	rbp
-	mov	r13,QWORD PTR[40+rcx]
+	mov	r13,QWORD[40+rcx]
 	add	r13,rax
 	adc	rdx,0
 	add	r13,rbx
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	mul	rbp
-	mov	r14,QWORD PTR[48+rcx]
+	mov	r14,QWORD[48+rcx]
 	add	r14,rax
 	adc	rdx,0
 	add	r14,rbx
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	mul	rbp
-	mov	r15,QWORD PTR[56+rcx]
+	mov	r15,QWORD[56+rcx]
 	add	r15,rax
 	adc	rdx,0
 	add	r15,rbx
 	adc	rdx,0
 	mov	r8,rdx
-	mov	rbp,QWORD PTR[104+rcx]
-	mov	rax,QWORD PTR[rsi]
+	mov	rbp,QWORD[104+rcx]
+	mov	rax,QWORD[rsi]
 	mul	rbp
 	add	r9,rax
 	adc	rdx,0
-	mov	QWORD PTR[8+rdi],r9
+	mov	QWORD[8+rdi],r9
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[8+rsi]
+	mov	rax,QWORD[8+rsi]
 	mul	rbp
 	add	r10,rax
 	adc	rdx,0
@@ -226,7 +230,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[16+rsi]
+	mov	rax,QWORD[16+rsi]
 	mul	rbp
 	add	r11,rax
 	adc	rdx,0
@@ -234,7 +238,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[24+rsi]
+	mov	rax,QWORD[24+rsi]
 	mul	rbp
 	add	r12,rax
 	adc	rdx,0
@@ -242,7 +246,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[32+rsi]
+	mov	rax,QWORD[32+rsi]
 	mul	rbp
 	add	r13,rax
 	adc	rdx,0
@@ -250,7 +254,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[40+rsi]
+	mov	rax,QWORD[40+rsi]
 	mul	rbp
 	add	r14,rax
 	adc	rdx,0
@@ -258,7 +262,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	mul	rbp
 	add	r15,rax
 	adc	rdx,0
@@ -266,22 +270,22 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	mul	rbp
 	add	r8,rax
 	adc	rdx,0
 	add	r8,rbx
 	adc	rdx,0
 	mov	r9,rdx
-	mov	rbp,QWORD PTR[112+rcx]
-	mov	rax,QWORD PTR[rsi]
+	mov	rbp,QWORD[112+rcx]
+	mov	rax,QWORD[rsi]
 	mul	rbp
 	add	r10,rax
 	adc	rdx,0
-	mov	QWORD PTR[16+rdi],r10
+	mov	QWORD[16+rdi],r10
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[8+rsi]
+	mov	rax,QWORD[8+rsi]
 	mul	rbp
 	add	r11,rax
 	adc	rdx,0
@@ -289,7 +293,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[16+rsi]
+	mov	rax,QWORD[16+rsi]
 	mul	rbp
 	add	r12,rax
 	adc	rdx,0
@@ -297,7 +301,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[24+rsi]
+	mov	rax,QWORD[24+rsi]
 	mul	rbp
 	add	r13,rax
 	adc	rdx,0
@@ -305,7 +309,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[32+rsi]
+	mov	rax,QWORD[32+rsi]
 	mul	rbp
 	add	r14,rax
 	adc	rdx,0
@@ -313,7 +317,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[40+rsi]
+	mov	rax,QWORD[40+rsi]
 	mul	rbp
 	add	r15,rax
 	adc	rdx,0
@@ -321,7 +325,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	mul	rbp
 	add	r8,rax
 	adc	rdx,0
@@ -329,22 +333,22 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	mul	rbp
 	add	r9,rax
 	adc	rdx,0
 	add	r9,rbx
 	adc	rdx,0
 	mov	r10,rdx
-	mov	rbp,QWORD PTR[120+rcx]
-	mov	rax,QWORD PTR[rsi]
+	mov	rbp,QWORD[120+rcx]
+	mov	rax,QWORD[rsi]
 	mul	rbp
 	add	r11,rax
 	adc	rdx,0
-	mov	QWORD PTR[24+rdi],r11
+	mov	QWORD[24+rdi],r11
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[8+rsi]
+	mov	rax,QWORD[8+rsi]
 	mul	rbp
 	add	r12,rax
 	adc	rdx,0
@@ -352,7 +356,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[16+rsi]
+	mov	rax,QWORD[16+rsi]
 	mul	rbp
 	add	r13,rax
 	adc	rdx,0
@@ -360,7 +364,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[24+rsi]
+	mov	rax,QWORD[24+rsi]
 	mul	rbp
 	add	r14,rax
 	adc	rdx,0
@@ -368,7 +372,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[32+rsi]
+	mov	rax,QWORD[32+rsi]
 	mul	rbp
 	add	r15,rax
 	adc	rdx,0
@@ -376,7 +380,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[40+rsi]
+	mov	rax,QWORD[40+rsi]
 	mul	rbp
 	add	r8,rax
 	adc	rdx,0
@@ -384,7 +388,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	mul	rbp
 	add	r9,rax
 	adc	rdx,0
@@ -392,7 +396,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	mul	rbp
 	add	r10,rax
 	adc	rdx,0
@@ -401,26 +405,26 @@
 	mov	r11,rdx
 	xor	rax,rax
 
-	add	r8,QWORD PTR[64+rcx]
-	adc	r9,QWORD PTR[72+rcx]
-	adc	r10,QWORD PTR[80+rcx]
-	adc	r11,QWORD PTR[88+rcx]
+	add	r8,QWORD[64+rcx]
+	adc	r9,QWORD[72+rcx]
+	adc	r10,QWORD[80+rcx]
+	adc	r11,QWORD[88+rcx]
 	adc	rax,0
 
 
 
 
-	mov	QWORD PTR[64+rdi],r8
-	mov	QWORD PTR[72+rdi],r9
+	mov	QWORD[64+rdi],r8
+	mov	QWORD[72+rdi],r9
 	mov	rbp,r10
-	mov	QWORD PTR[88+rdi],r11
+	mov	QWORD[88+rdi],r11
 
-	mov	QWORD PTR[384+rsp],rax
+	mov	QWORD[384+rsp],rax
 
-	mov	r8,QWORD PTR[rdi]
-	mov	r9,QWORD PTR[8+rdi]
-	mov	r10,QWORD PTR[16+rdi]
-	mov	r11,QWORD PTR[24+rdi]
+	mov	r8,QWORD[rdi]
+	mov	r9,QWORD[8+rdi]
+	mov	r10,QWORD[16+rdi]
+	mov	r11,QWORD[24+rdi]
 
 
 
@@ -432,67 +436,67 @@
 	add	rdi,8*10
 
 	add	rsi,64
-	lea	rcx,QWORD PTR[296+rsp]
+	lea	rcx,[296+rsp]
 
 	call	MULADD_128x512
 
-	mov	rax,QWORD PTR[384+rsp]
+	mov	rax,QWORD[384+rsp]
 
 
-	add	r8,QWORD PTR[((-16))+rdi]
-	adc	r9,QWORD PTR[((-8))+rdi]
-	mov	QWORD PTR[64+rcx],r8
-	mov	QWORD PTR[72+rcx],r9
+	add	r8,QWORD[((-16))+rdi]
+	adc	r9,QWORD[((-8))+rdi]
+	mov	QWORD[64+rcx],r8
+	mov	QWORD[72+rcx],r9
 
 	adc	rax,rax
-	mov	QWORD PTR[384+rsp],rax
+	mov	QWORD[384+rsp],rax
 
-	lea	rdi,QWORD PTR[192+rsp]
+	lea	rdi,[192+rsp]
 	add	rsi,64
 
 
 
 
 
-	mov	r8,QWORD PTR[rsi]
-	mov	rbx,QWORD PTR[8+rsi]
+	mov	r8,QWORD[rsi]
+	mov	rbx,QWORD[8+rsi]
 
-	mov	rax,QWORD PTR[rcx]
+	mov	rax,QWORD[rcx]
 	mul	r8
 	mov	rbp,rax
 	mov	r9,rdx
 
-	mov	rax,QWORD PTR[8+rcx]
+	mov	rax,QWORD[8+rcx]
 	mul	r8
 	add	r9,rax
 
-	mov	rax,QWORD PTR[rcx]
+	mov	rax,QWORD[rcx]
 	mul	rbx
 	add	r9,rax
 
-	mov	QWORD PTR[8+rdi],r9
+	mov	QWORD[8+rdi],r9
 
 
 	sub	rsi,192
 
-	mov	r8,QWORD PTR[rcx]
-	mov	r9,QWORD PTR[8+rcx]
+	mov	r8,QWORD[rcx]
+	mov	r9,QWORD[8+rcx]
 
 	call	MULADD_128x512
 
 
 
 
-	mov	rax,QWORD PTR[rsi]
-	mov	rbx,QWORD PTR[8+rsi]
-	mov	rdi,QWORD PTR[16+rsi]
-	mov	rdx,QWORD PTR[24+rsi]
+	mov	rax,QWORD[rsi]
+	mov	rbx,QWORD[8+rsi]
+	mov	rdi,QWORD[16+rsi]
+	mov	rdx,QWORD[24+rsi]
 
 
-	mov	rbp,QWORD PTR[384+rsp]
+	mov	rbp,QWORD[384+rsp]
 
-	add	r8,QWORD PTR[64+rcx]
-	adc	r9,QWORD PTR[72+rcx]
+	add	r8,QWORD[64+rcx]
+	adc	r9,QWORD[72+rcx]
 
 
 	adc	rbp,rbp
@@ -500,20 +504,20 @@
 
 
 	shl	rbp,3
-	mov	rcx,QWORD PTR[32+rsp]
+	mov	rcx,QWORD[32+rsp]
 	add	rbp,rcx
 
 
 	xor	rsi,rsi
 
-	add	r10,QWORD PTR[rbp]
-	adc	r11,QWORD PTR[64+rbp]
-	adc	r12,QWORD PTR[128+rbp]
-	adc	r13,QWORD PTR[192+rbp]
-	adc	r14,QWORD PTR[256+rbp]
-	adc	r15,QWORD PTR[320+rbp]
-	adc	r8,QWORD PTR[384+rbp]
-	adc	r9,QWORD PTR[448+rbp]
+	add	r10,QWORD[rbp]
+	adc	r11,QWORD[64+rbp]
+	adc	r12,QWORD[128+rbp]
+	adc	r13,QWORD[192+rbp]
+	adc	r14,QWORD[256+rbp]
+	adc	r15,QWORD[320+rbp]
+	adc	r8,QWORD[384+rbp]
+	adc	r9,QWORD[448+rbp]
 
 
 
@@ -539,10 +543,10 @@
 
 
 	add	rcx,512
-	mov	rax,QWORD PTR[32+rcx]
-	mov	rbx,QWORD PTR[40+rcx]
-	mov	rdi,QWORD PTR[48+rcx]
-	mov	rdx,QWORD PTR[56+rcx]
+	mov	rax,QWORD[32+rcx]
+	mov	rbx,QWORD[40+rcx]
+	mov	rdi,QWORD[48+rcx]
+	mov	rdx,QWORD[56+rcx]
 
 
 
@@ -562,30 +566,30 @@
 
 
 
-	mov	rsi,QWORD PTR[144+rsp]
-	mov	QWORD PTR[rsi],r10
-	mov	QWORD PTR[8+rsi],r11
-	mov	QWORD PTR[16+rsi],r12
-	mov	QWORD PTR[24+rsi],r13
-	mov	QWORD PTR[32+rsi],r14
-	mov	QWORD PTR[40+rsi],r15
-	mov	QWORD PTR[48+rsi],r8
-	mov	QWORD PTR[56+rsi],r9
+	mov	rsi,QWORD[144+rsp]
+	mov	QWORD[rsi],r10
+	mov	QWORD[8+rsi],r11
+	mov	QWORD[16+rsi],r12
+	mov	QWORD[24+rsi],r13
+	mov	QWORD[32+rsi],r14
+	mov	QWORD[40+rsi],r15
+	mov	QWORD[48+rsi],r8
+	mov	QWORD[56+rsi],r9
 
 	DB	0F3h,0C3h		;repret
-mont_reduce	ENDP
+
 
 ALIGN	16
-mont_mul_a3b	PROC PRIVATE
+mont_mul_a3b:
 
 
 
 
-	mov	rbp,QWORD PTR[rdi]
+	mov	rbp,QWORD[rdi]
 
 	mov	rax,r10
 	mul	rbp
-	mov	QWORD PTR[520+rsp],rax
+	mov	QWORD[520+rsp],rax
 	mov	r10,rdx
 	mov	rax,r11
 	mul	rbp
@@ -622,15 +626,15 @@
 	add	r8,rax
 	adc	rdx,0
 	mov	r9,rdx
-	mov	rbp,QWORD PTR[8+rdi]
-	mov	rax,QWORD PTR[rsi]
+	mov	rbp,QWORD[8+rdi]
+	mov	rax,QWORD[rsi]
 	mul	rbp
 	add	r10,rax
 	adc	rdx,0
-	mov	QWORD PTR[528+rsp],r10
+	mov	QWORD[528+rsp],r10
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[8+rsi]
+	mov	rax,QWORD[8+rsi]
 	mul	rbp
 	add	r11,rax
 	adc	rdx,0
@@ -638,7 +642,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[16+rsi]
+	mov	rax,QWORD[16+rsi]
 	mul	rbp
 	add	r12,rax
 	adc	rdx,0
@@ -646,7 +650,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[24+rsi]
+	mov	rax,QWORD[24+rsi]
 	mul	rbp
 	add	r13,rax
 	adc	rdx,0
@@ -654,7 +658,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[32+rsi]
+	mov	rax,QWORD[32+rsi]
 	mul	rbp
 	add	r14,rax
 	adc	rdx,0
@@ -662,7 +666,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[40+rsi]
+	mov	rax,QWORD[40+rsi]
 	mul	rbp
 	add	r15,rax
 	adc	rdx,0
@@ -670,7 +674,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	mul	rbp
 	add	r8,rax
 	adc	rdx,0
@@ -678,22 +682,22 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	mul	rbp
 	add	r9,rax
 	adc	rdx,0
 	add	r9,rbx
 	adc	rdx,0
 	mov	r10,rdx
-	mov	rbp,QWORD PTR[16+rdi]
-	mov	rax,QWORD PTR[rsi]
+	mov	rbp,QWORD[16+rdi]
+	mov	rax,QWORD[rsi]
 	mul	rbp
 	add	r11,rax
 	adc	rdx,0
-	mov	QWORD PTR[536+rsp],r11
+	mov	QWORD[536+rsp],r11
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[8+rsi]
+	mov	rax,QWORD[8+rsi]
 	mul	rbp
 	add	r12,rax
 	adc	rdx,0
@@ -701,7 +705,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[16+rsi]
+	mov	rax,QWORD[16+rsi]
 	mul	rbp
 	add	r13,rax
 	adc	rdx,0
@@ -709,7 +713,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[24+rsi]
+	mov	rax,QWORD[24+rsi]
 	mul	rbp
 	add	r14,rax
 	adc	rdx,0
@@ -717,7 +721,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[32+rsi]
+	mov	rax,QWORD[32+rsi]
 	mul	rbp
 	add	r15,rax
 	adc	rdx,0
@@ -725,7 +729,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[40+rsi]
+	mov	rax,QWORD[40+rsi]
 	mul	rbp
 	add	r8,rax
 	adc	rdx,0
@@ -733,7 +737,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	mul	rbp
 	add	r9,rax
 	adc	rdx,0
@@ -741,22 +745,22 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	mul	rbp
 	add	r10,rax
 	adc	rdx,0
 	add	r10,rbx
 	adc	rdx,0
 	mov	r11,rdx
-	mov	rbp,QWORD PTR[24+rdi]
-	mov	rax,QWORD PTR[rsi]
+	mov	rbp,QWORD[24+rdi]
+	mov	rax,QWORD[rsi]
 	mul	rbp
 	add	r12,rax
 	adc	rdx,0
-	mov	QWORD PTR[544+rsp],r12
+	mov	QWORD[544+rsp],r12
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[8+rsi]
+	mov	rax,QWORD[8+rsi]
 	mul	rbp
 	add	r13,rax
 	adc	rdx,0
@@ -764,7 +768,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[16+rsi]
+	mov	rax,QWORD[16+rsi]
 	mul	rbp
 	add	r14,rax
 	adc	rdx,0
@@ -772,7 +776,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[24+rsi]
+	mov	rax,QWORD[24+rsi]
 	mul	rbp
 	add	r15,rax
 	adc	rdx,0
@@ -780,7 +784,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[32+rsi]
+	mov	rax,QWORD[32+rsi]
 	mul	rbp
 	add	r8,rax
 	adc	rdx,0
@@ -788,7 +792,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[40+rsi]
+	mov	rax,QWORD[40+rsi]
 	mul	rbp
 	add	r9,rax
 	adc	rdx,0
@@ -796,7 +800,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	mul	rbp
 	add	r10,rax
 	adc	rdx,0
@@ -804,22 +808,22 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	mul	rbp
 	add	r11,rax
 	adc	rdx,0
 	add	r11,rbx
 	adc	rdx,0
 	mov	r12,rdx
-	mov	rbp,QWORD PTR[32+rdi]
-	mov	rax,QWORD PTR[rsi]
+	mov	rbp,QWORD[32+rdi]
+	mov	rax,QWORD[rsi]
 	mul	rbp
 	add	r13,rax
 	adc	rdx,0
-	mov	QWORD PTR[552+rsp],r13
+	mov	QWORD[552+rsp],r13
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[8+rsi]
+	mov	rax,QWORD[8+rsi]
 	mul	rbp
 	add	r14,rax
 	adc	rdx,0
@@ -827,7 +831,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[16+rsi]
+	mov	rax,QWORD[16+rsi]
 	mul	rbp
 	add	r15,rax
 	adc	rdx,0
@@ -835,7 +839,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[24+rsi]
+	mov	rax,QWORD[24+rsi]
 	mul	rbp
 	add	r8,rax
 	adc	rdx,0
@@ -843,7 +847,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[32+rsi]
+	mov	rax,QWORD[32+rsi]
 	mul	rbp
 	add	r9,rax
 	adc	rdx,0
@@ -851,7 +855,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[40+rsi]
+	mov	rax,QWORD[40+rsi]
 	mul	rbp
 	add	r10,rax
 	adc	rdx,0
@@ -859,7 +863,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	mul	rbp
 	add	r11,rax
 	adc	rdx,0
@@ -867,22 +871,22 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	mul	rbp
 	add	r12,rax
 	adc	rdx,0
 	add	r12,rbx
 	adc	rdx,0
 	mov	r13,rdx
-	mov	rbp,QWORD PTR[40+rdi]
-	mov	rax,QWORD PTR[rsi]
+	mov	rbp,QWORD[40+rdi]
+	mov	rax,QWORD[rsi]
 	mul	rbp
 	add	r14,rax
 	adc	rdx,0
-	mov	QWORD PTR[560+rsp],r14
+	mov	QWORD[560+rsp],r14
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[8+rsi]
+	mov	rax,QWORD[8+rsi]
 	mul	rbp
 	add	r15,rax
 	adc	rdx,0
@@ -890,7 +894,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[16+rsi]
+	mov	rax,QWORD[16+rsi]
 	mul	rbp
 	add	r8,rax
 	adc	rdx,0
@@ -898,7 +902,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[24+rsi]
+	mov	rax,QWORD[24+rsi]
 	mul	rbp
 	add	r9,rax
 	adc	rdx,0
@@ -906,7 +910,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[32+rsi]
+	mov	rax,QWORD[32+rsi]
 	mul	rbp
 	add	r10,rax
 	adc	rdx,0
@@ -914,7 +918,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[40+rsi]
+	mov	rax,QWORD[40+rsi]
 	mul	rbp
 	add	r11,rax
 	adc	rdx,0
@@ -922,7 +926,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	mul	rbp
 	add	r12,rax
 	adc	rdx,0
@@ -930,22 +934,22 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	mul	rbp
 	add	r13,rax
 	adc	rdx,0
 	add	r13,rbx
 	adc	rdx,0
 	mov	r14,rdx
-	mov	rbp,QWORD PTR[48+rdi]
-	mov	rax,QWORD PTR[rsi]
+	mov	rbp,QWORD[48+rdi]
+	mov	rax,QWORD[rsi]
 	mul	rbp
 	add	r15,rax
 	adc	rdx,0
-	mov	QWORD PTR[568+rsp],r15
+	mov	QWORD[568+rsp],r15
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[8+rsi]
+	mov	rax,QWORD[8+rsi]
 	mul	rbp
 	add	r8,rax
 	adc	rdx,0
@@ -953,7 +957,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[16+rsi]
+	mov	rax,QWORD[16+rsi]
 	mul	rbp
 	add	r9,rax
 	adc	rdx,0
@@ -961,7 +965,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[24+rsi]
+	mov	rax,QWORD[24+rsi]
 	mul	rbp
 	add	r10,rax
 	adc	rdx,0
@@ -969,7 +973,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[32+rsi]
+	mov	rax,QWORD[32+rsi]
 	mul	rbp
 	add	r11,rax
 	adc	rdx,0
@@ -977,7 +981,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[40+rsi]
+	mov	rax,QWORD[40+rsi]
 	mul	rbp
 	add	r12,rax
 	adc	rdx,0
@@ -985,7 +989,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	mul	rbp
 	add	r13,rax
 	adc	rdx,0
@@ -993,22 +997,22 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	mul	rbp
 	add	r14,rax
 	adc	rdx,0
 	add	r14,rbx
 	adc	rdx,0
 	mov	r15,rdx
-	mov	rbp,QWORD PTR[56+rdi]
-	mov	rax,QWORD PTR[rsi]
+	mov	rbp,QWORD[56+rdi]
+	mov	rax,QWORD[rsi]
 	mul	rbp
 	add	r8,rax
 	adc	rdx,0
-	mov	QWORD PTR[576+rsp],r8
+	mov	QWORD[576+rsp],r8
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[8+rsi]
+	mov	rax,QWORD[8+rsi]
 	mul	rbp
 	add	r9,rax
 	adc	rdx,0
@@ -1016,7 +1020,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[16+rsi]
+	mov	rax,QWORD[16+rsi]
 	mul	rbp
 	add	r10,rax
 	adc	rdx,0
@@ -1024,7 +1028,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[24+rsi]
+	mov	rax,QWORD[24+rsi]
 	mul	rbp
 	add	r11,rax
 	adc	rdx,0
@@ -1032,7 +1036,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[32+rsi]
+	mov	rax,QWORD[32+rsi]
 	mul	rbp
 	add	r12,rax
 	adc	rdx,0
@@ -1040,7 +1044,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[40+rsi]
+	mov	rax,QWORD[40+rsi]
 	mul	rbp
 	add	r13,rax
 	adc	rdx,0
@@ -1048,7 +1052,7 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	mul	rbp
 	add	r14,rax
 	adc	rdx,0
@@ -1056,34 +1060,34 @@
 	adc	rdx,0
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	mul	rbp
 	add	r15,rax
 	adc	rdx,0
 	add	r15,rbx
 	adc	rdx,0
 	mov	r8,rdx
-	mov	QWORD PTR[584+rsp],r9
-	mov	QWORD PTR[592+rsp],r10
-	mov	QWORD PTR[600+rsp],r11
-	mov	QWORD PTR[608+rsp],r12
-	mov	QWORD PTR[616+rsp],r13
-	mov	QWORD PTR[624+rsp],r14
-	mov	QWORD PTR[632+rsp],r15
-	mov	QWORD PTR[640+rsp],r8
+	mov	QWORD[584+rsp],r9
+	mov	QWORD[592+rsp],r10
+	mov	QWORD[600+rsp],r11
+	mov	QWORD[608+rsp],r12
+	mov	QWORD[616+rsp],r13
+	mov	QWORD[624+rsp],r14
+	mov	QWORD[632+rsp],r15
+	mov	QWORD[640+rsp],r8
 
 
 
 
 
-	jmp	mont_reduce
+	jmp	NEAR mont_reduce
 
 
-mont_mul_a3b	ENDP
+
 
 ALIGN	16
-sqr_reduce	PROC PRIVATE
-	mov	rcx,QWORD PTR[16+rsp]
+sqr_reduce:
+	mov	rcx,QWORD[16+rsp]
 
 
 
@@ -1091,7 +1095,7 @@
 
 	mov	rax,r11
 	mul	rbx
-	mov	QWORD PTR[528+rsp],rax
+	mov	QWORD[528+rsp],rax
 	mov	r10,rdx
 	mov	rax,r12
 	mul	rbx
@@ -1124,31 +1128,31 @@
 	adc	rdx,0
 	mov	rsi,rdx
 
-	mov	QWORD PTR[536+rsp],r10
+	mov	QWORD[536+rsp],r10
 
 
 
 
 
-	mov	rbx,QWORD PTR[8+rcx]
+	mov	rbx,QWORD[8+rcx]
 
-	mov	rax,QWORD PTR[16+rcx]
+	mov	rax,QWORD[16+rcx]
 	mul	rbx
 	add	r11,rax
 	adc	rdx,0
-	mov	QWORD PTR[544+rsp],r11
+	mov	QWORD[544+rsp],r11
 
 	mov	r10,rdx
-	mov	rax,QWORD PTR[24+rcx]
+	mov	rax,QWORD[24+rcx]
 	mul	rbx
 	add	r12,rax
 	adc	rdx,0
 	add	r12,r10
 	adc	rdx,0
-	mov	QWORD PTR[552+rsp],r12
+	mov	QWORD[552+rsp],r12
 
 	mov	r10,rdx
-	mov	rax,QWORD PTR[32+rcx]
+	mov	rax,QWORD[32+rcx]
 	mul	rbx
 	add	r13,rax
 	adc	rdx,0
@@ -1156,7 +1160,7 @@
 	adc	rdx,0
 
 	mov	r10,rdx
-	mov	rax,QWORD PTR[40+rcx]
+	mov	rax,QWORD[40+rcx]
 	mul	rbx
 	add	r14,rax
 	adc	rdx,0
@@ -1184,25 +1188,25 @@
 
 
 
-	mov	rbx,QWORD PTR[16+rcx]
+	mov	rbx,QWORD[16+rcx]
 
-	mov	rax,QWORD PTR[24+rcx]
+	mov	rax,QWORD[24+rcx]
 	mul	rbx
 	add	r13,rax
 	adc	rdx,0
-	mov	QWORD PTR[560+rsp],r13
+	mov	QWORD[560+rsp],r13
 
 	mov	r10,rdx
-	mov	rax,QWORD PTR[32+rcx]
+	mov	rax,QWORD[32+rcx]
 	mul	rbx
 	add	r14,rax
 	adc	rdx,0
 	add	r14,r10
 	adc	rdx,0
-	mov	QWORD PTR[568+rsp],r14
+	mov	QWORD[568+rsp],r14
 
 	mov	r10,rdx
-	mov	rax,QWORD PTR[40+rcx]
+	mov	rax,QWORD[40+rcx]
 	mul	rbx
 	add	r15,rax
 	adc	rdx,0
@@ -1231,22 +1235,22 @@
 
 
 
-	mov	rbx,QWORD PTR[24+rcx]
+	mov	rbx,QWORD[24+rcx]
 
-	mov	rax,QWORD PTR[32+rcx]
+	mov	rax,QWORD[32+rcx]
 	mul	rbx
 	add	r15,rax
 	adc	rdx,0
-	mov	QWORD PTR[576+rsp],r15
+	mov	QWORD[576+rsp],r15
 
 	mov	r10,rdx
-	mov	rax,QWORD PTR[40+rcx]
+	mov	rax,QWORD[40+rcx]
 	mul	rbx
 	add	rsi,rax
 	adc	rdx,0
 	add	rsi,r10
 	adc	rdx,0
-	mov	QWORD PTR[584+rsp],rsi
+	mov	QWORD[584+rsp],rsi
 
 	mov	r10,rdx
 	mov	rax,r8
@@ -1269,13 +1273,13 @@
 
 
 
-	mov	rbx,QWORD PTR[32+rcx]
+	mov	rbx,QWORD[32+rcx]
 
-	mov	rax,QWORD PTR[40+rcx]
+	mov	rax,QWORD[40+rcx]
 	mul	rbx
 	add	r11,rax
 	adc	rdx,0
-	mov	QWORD PTR[592+rsp],r11
+	mov	QWORD[592+rsp],r11
 
 	mov	r10,rdx
 	mov	rax,r8
@@ -1284,7 +1288,7 @@
 	adc	rdx,0
 	add	r12,r10
 	adc	rdx,0
-	mov	QWORD PTR[600+rsp],r12
+	mov	QWORD[600+rsp],r12
 
 	mov	r10,rdx
 	mov	rax,r9
@@ -1299,13 +1303,13 @@
 
 
 
-	mov	rbx,QWORD PTR[40+rcx]
+	mov	rbx,QWORD[40+rcx]
 
 	mov	rax,r8
 	mul	rbx
 	add	r15,rax
 	adc	rdx,0
-	mov	QWORD PTR[608+rsp],r15
+	mov	QWORD[608+rsp],r15
 
 	mov	r10,rdx
 	mov	rax,r9
@@ -1314,7 +1318,7 @@
 	adc	rdx,0
 	add	r11,r10
 	adc	rdx,0
-	mov	QWORD PTR[616+rsp],r11
+	mov	QWORD[616+rsp],r11
 
 	mov	r12,rdx
 
@@ -1327,19 +1331,19 @@
 	mul	rbx
 	add	r12,rax
 	adc	rdx,0
-	mov	QWORD PTR[624+rsp],r12
+	mov	QWORD[624+rsp],r12
 
-	mov	QWORD PTR[632+rsp],rdx
+	mov	QWORD[632+rsp],rdx
 
 
-	mov	r10,QWORD PTR[528+rsp]
-	mov	r11,QWORD PTR[536+rsp]
-	mov	r12,QWORD PTR[544+rsp]
-	mov	r13,QWORD PTR[552+rsp]
-	mov	r14,QWORD PTR[560+rsp]
-	mov	r15,QWORD PTR[568+rsp]
+	mov	r10,QWORD[528+rsp]
+	mov	r11,QWORD[536+rsp]
+	mov	r12,QWORD[544+rsp]
+	mov	r13,QWORD[552+rsp]
+	mov	r14,QWORD[560+rsp]
+	mov	r15,QWORD[568+rsp]
 
-	mov	rax,QWORD PTR[24+rcx]
+	mov	rax,QWORD[24+rcx]
 	mul	rax
 	mov	rdi,rax
 	mov	r8,rdx
@@ -1352,12 +1356,12 @@
 	adc	r15,r15
 	adc	r8,0
 
-	mov	rax,QWORD PTR[rcx]
+	mov	rax,QWORD[rcx]
 	mul	rax
-	mov	QWORD PTR[520+rsp],rax
+	mov	QWORD[520+rsp],rax
 	mov	rbx,rdx
 
-	mov	rax,QWORD PTR[8+rcx]
+	mov	rax,QWORD[8+rcx]
 	mul	rax
 
 	add	r10,rbx
@@ -1365,10 +1369,10 @@
 	adc	rdx,0
 
 	mov	rbx,rdx
-	mov	QWORD PTR[528+rsp],r10
-	mov	QWORD PTR[536+rsp],r11
+	mov	QWORD[528+rsp],r10
+	mov	QWORD[536+rsp],r11
 
-	mov	rax,QWORD PTR[16+rcx]
+	mov	rax,QWORD[16+rcx]
 	mul	rax
 
 	add	r12,rbx
@@ -1377,28 +1381,28 @@
 
 	mov	rbx,rdx
 
-	mov	QWORD PTR[544+rsp],r12
-	mov	QWORD PTR[552+rsp],r13
+	mov	QWORD[544+rsp],r12
+	mov	QWORD[552+rsp],r13
 
 	xor	rbp,rbp
 	add	r14,rbx
 	adc	r15,rdi
 	adc	rbp,0
 
-	mov	QWORD PTR[560+rsp],r14
-	mov	QWORD PTR[568+rsp],r15
+	mov	QWORD[560+rsp],r14
+	mov	QWORD[568+rsp],r15
 
 
 
 
-	mov	r10,QWORD PTR[576+rsp]
-	mov	r11,QWORD PTR[584+rsp]
-	mov	r12,QWORD PTR[592+rsp]
-	mov	r13,QWORD PTR[600+rsp]
-	mov	r14,QWORD PTR[608+rsp]
-	mov	r15,QWORD PTR[616+rsp]
-	mov	rdi,QWORD PTR[624+rsp]
-	mov	rsi,QWORD PTR[632+rsp]
+	mov	r10,QWORD[576+rsp]
+	mov	r11,QWORD[584+rsp]
+	mov	r12,QWORD[592+rsp]
+	mov	r13,QWORD[600+rsp]
+	mov	r14,QWORD[608+rsp]
+	mov	r15,QWORD[616+rsp]
+	mov	rdi,QWORD[624+rsp]
+	mov	rsi,QWORD[632+rsp]
 
 	mov	rax,r9
 	mul	rax
@@ -1417,7 +1421,7 @@
 
 	add	r10,rbp
 
-	mov	rax,QWORD PTR[32+rcx]
+	mov	rax,QWORD[32+rcx]
 	mul	rax
 
 	add	r10,r8
@@ -1426,10 +1430,10 @@
 
 	mov	rbp,rdx
 
-	mov	QWORD PTR[576+rsp],r10
-	mov	QWORD PTR[584+rsp],r11
+	mov	QWORD[576+rsp],r10
+	mov	QWORD[584+rsp],r11
 
-	mov	rax,QWORD PTR[40+rcx]
+	mov	rax,QWORD[40+rcx]
 	mul	rax
 
 	add	r12,rbp
@@ -1438,38 +1442,38 @@
 
 	mov	rbp,rdx
 
-	mov	QWORD PTR[592+rsp],r12
-	mov	QWORD PTR[600+rsp],r13
+	mov	QWORD[592+rsp],r12
+	mov	QWORD[600+rsp],r13
 
-	mov	rax,QWORD PTR[48+rcx]
+	mov	rax,QWORD[48+rcx]
 	mul	rax
 
 	add	r14,rbp
 	adc	r15,rax
 	adc	rdx,0
 
-	mov	QWORD PTR[608+rsp],r14
-	mov	QWORD PTR[616+rsp],r15
+	mov	QWORD[608+rsp],r14
+	mov	QWORD[616+rsp],r15
 
 	add	rdi,rdx
 	adc	rsi,r9
 	adc	rbx,0
 
-	mov	QWORD PTR[624+rsp],rdi
-	mov	QWORD PTR[632+rsp],rsi
-	mov	QWORD PTR[640+rsp],rbx
+	mov	QWORD[624+rsp],rdi
+	mov	QWORD[632+rsp],rsi
+	mov	QWORD[640+rsp],rbx
 
-	jmp	mont_reduce
+	jmp	NEAR mont_reduce
 
 
-sqr_reduce	ENDP
-PUBLIC	mod_exp_512
 
-mod_exp_512	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+global	mod_exp_512
+
+mod_exp_512:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_mod_exp_512::
+$L$SEH_begin_mod_exp_512:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
@@ -1489,306 +1493,305 @@
 	and	rsp,-64
 
 
-	mov	QWORD PTR[rsp],r8
-	mov	QWORD PTR[8+rsp],rdi
-	mov	QWORD PTR[16+rsp],rsi
-	mov	QWORD PTR[24+rsp],rcx
-$L$body::
+	mov	QWORD[rsp],r8
+	mov	QWORD[8+rsp],rdi
+	mov	QWORD[16+rsp],rsi
+	mov	QWORD[24+rsp],rcx
+$L$body:
 
 
 
 	pxor	xmm4,xmm4
-	movdqu	xmm0,XMMWORD PTR[rsi]
-	movdqu	xmm1,XMMWORD PTR[16+rsi]
-	movdqu	xmm2,XMMWORD PTR[32+rsi]
-	movdqu	xmm3,XMMWORD PTR[48+rsi]
-	movdqa	XMMWORD PTR[512+rsp],xmm4
-	movdqa	XMMWORD PTR[528+rsp],xmm4
-	movdqa	XMMWORD PTR[608+rsp],xmm4
-	movdqa	XMMWORD PTR[624+rsp],xmm4
-	movdqa	XMMWORD PTR[544+rsp],xmm0
-	movdqa	XMMWORD PTR[560+rsp],xmm1
-	movdqa	XMMWORD PTR[576+rsp],xmm2
-	movdqa	XMMWORD PTR[592+rsp],xmm3
+	movdqu	xmm0,XMMWORD[rsi]
+	movdqu	xmm1,XMMWORD[16+rsi]
+	movdqu	xmm2,XMMWORD[32+rsi]
+	movdqu	xmm3,XMMWORD[48+rsi]
+	movdqa	XMMWORD[512+rsp],xmm4
+	movdqa	XMMWORD[528+rsp],xmm4
+	movdqa	XMMWORD[608+rsp],xmm4
+	movdqa	XMMWORD[624+rsp],xmm4
+	movdqa	XMMWORD[544+rsp],xmm0
+	movdqa	XMMWORD[560+rsp],xmm1
+	movdqa	XMMWORD[576+rsp],xmm2
+	movdqa	XMMWORD[592+rsp],xmm3
 
 
-	movdqu	xmm0,XMMWORD PTR[rdx]
-	movdqu	xmm1,XMMWORD PTR[16+rdx]
-	movdqu	xmm2,XMMWORD PTR[32+rdx]
-	movdqu	xmm3,XMMWORD PTR[48+rdx]
+	movdqu	xmm0,XMMWORD[rdx]
+	movdqu	xmm1,XMMWORD[16+rdx]
+	movdqu	xmm2,XMMWORD[32+rdx]
+	movdqu	xmm3,XMMWORD[48+rdx]
 
-	lea	rbx,QWORD PTR[384+rsp]
-	mov	QWORD PTR[136+rsp],rbx
+	lea	rbx,[384+rsp]
+	mov	QWORD[136+rsp],rbx
 	call	mont_reduce
 
 
-	lea	rcx,QWORD PTR[448+rsp]
+	lea	rcx,[448+rsp]
 	xor	rax,rax
-	mov	QWORD PTR[rcx],rax
-	mov	QWORD PTR[8+rcx],rax
-	mov	QWORD PTR[24+rcx],rax
-	mov	QWORD PTR[32+rcx],rax
-	mov	QWORD PTR[40+rcx],rax
-	mov	QWORD PTR[48+rcx],rax
-	mov	QWORD PTR[56+rcx],rax
-	mov	QWORD PTR[128+rsp],rax
-	mov	QWORD PTR[16+rcx],1
+	mov	QWORD[rcx],rax
+	mov	QWORD[8+rcx],rax
+	mov	QWORD[24+rcx],rax
+	mov	QWORD[32+rcx],rax
+	mov	QWORD[40+rcx],rax
+	mov	QWORD[48+rcx],rax
+	mov	QWORD[56+rcx],rax
+	mov	QWORD[128+rsp],rax
+	mov	QWORD[16+rcx],1
 
-	lea	rbp,QWORD PTR[640+rsp]
+	lea	rbp,[640+rsp]
 	mov	rsi,rcx
 	mov	rdi,rbp
 	mov	rax,8
-loop_0::
-	mov	rbx,QWORD PTR[rcx]
-	mov	WORD PTR[rdi],bx
+loop_0:
+	mov	rbx,QWORD[rcx]
+	mov	WORD[rdi],bx
 	shr	rbx,16
-	mov	WORD PTR[64+rdi],bx
+	mov	WORD[64+rdi],bx
 	shr	rbx,16
-	mov	WORD PTR[128+rdi],bx
+	mov	WORD[128+rdi],bx
 	shr	rbx,16
-	mov	WORD PTR[192+rdi],bx
-	lea	rcx,QWORD PTR[8+rcx]
-	lea	rdi,QWORD PTR[256+rdi]
+	mov	WORD[192+rdi],bx
+	lea	rcx,[8+rcx]
+	lea	rdi,[256+rdi]
 	dec	rax
-	jnz	loop_0
+	jnz	NEAR loop_0
 	mov	rax,31
-	mov	QWORD PTR[32+rsp],rax
-	mov	QWORD PTR[40+rsp],rbp
+	mov	QWORD[32+rsp],rax
+	mov	QWORD[40+rsp],rbp
 
-	mov	QWORD PTR[136+rsp],rsi
-	mov	r10,QWORD PTR[rsi]
-	mov	r11,QWORD PTR[8+rsi]
-	mov	r12,QWORD PTR[16+rsi]
-	mov	r13,QWORD PTR[24+rsi]
-	mov	r14,QWORD PTR[32+rsi]
-	mov	r15,QWORD PTR[40+rsi]
-	mov	r8,QWORD PTR[48+rsi]
-	mov	r9,QWORD PTR[56+rsi]
-init_loop::
-	lea	rdi,QWORD PTR[384+rsp]
+	mov	QWORD[136+rsp],rsi
+	mov	r10,QWORD[rsi]
+	mov	r11,QWORD[8+rsi]
+	mov	r12,QWORD[16+rsi]
+	mov	r13,QWORD[24+rsi]
+	mov	r14,QWORD[32+rsi]
+	mov	r15,QWORD[40+rsi]
+	mov	r8,QWORD[48+rsi]
+	mov	r9,QWORD[56+rsi]
+init_loop:
+	lea	rdi,[384+rsp]
 	call	mont_mul_a3b
-	lea	rsi,QWORD PTR[448+rsp]
-	mov	rbp,QWORD PTR[40+rsp]
+	lea	rsi,[448+rsp]
+	mov	rbp,QWORD[40+rsp]
 	add	rbp,2
-	mov	QWORD PTR[40+rsp],rbp
+	mov	QWORD[40+rsp],rbp
 	mov	rcx,rsi
 	mov	rax,8
-loop_1::
-	mov	rbx,QWORD PTR[rcx]
-	mov	WORD PTR[rbp],bx
+loop_1:
+	mov	rbx,QWORD[rcx]
+	mov	WORD[rbp],bx
 	shr	rbx,16
-	mov	WORD PTR[64+rbp],bx
+	mov	WORD[64+rbp],bx
 	shr	rbx,16
-	mov	WORD PTR[128+rbp],bx
+	mov	WORD[128+rbp],bx
 	shr	rbx,16
-	mov	WORD PTR[192+rbp],bx
-	lea	rcx,QWORD PTR[8+rcx]
-	lea	rbp,QWORD PTR[256+rbp]
+	mov	WORD[192+rbp],bx
+	lea	rcx,[8+rcx]
+	lea	rbp,[256+rbp]
 	dec	rax
-	jnz	loop_1
-	mov	rax,QWORD PTR[32+rsp]
+	jnz	NEAR loop_1
+	mov	rax,QWORD[32+rsp]
 	sub	rax,1
-	mov	QWORD PTR[32+rsp],rax
-	jne	init_loop
+	mov	QWORD[32+rsp],rax
+	jne	NEAR init_loop
 
 
 
-	movdqa	XMMWORD PTR[64+rsp],xmm0
-	movdqa	XMMWORD PTR[80+rsp],xmm1
-	movdqa	XMMWORD PTR[96+rsp],xmm2
-	movdqa	XMMWORD PTR[112+rsp],xmm3
+	movdqa	XMMWORD[64+rsp],xmm0
+	movdqa	XMMWORD[80+rsp],xmm1
+	movdqa	XMMWORD[96+rsp],xmm2
+	movdqa	XMMWORD[112+rsp],xmm3
 
 
 
 
 
-	mov	eax,DWORD PTR[126+rsp]
+	mov	eax,DWORD[126+rsp]
 	mov	rdx,rax
 	shr	rax,11
-	and	edx,007FFh
-	mov	DWORD PTR[126+rsp],edx
-	lea	rsi,QWORD PTR[640+rax*2+rsp]
-	mov	rdx,QWORD PTR[8+rsp]
+	and	edx,0x07FF
+	mov	DWORD[126+rsp],edx
+	lea	rsi,[640+rax*2+rsp]
+	mov	rdx,QWORD[8+rsp]
 	mov	rbp,4
-loop_2::
-	movzx	rbx,WORD PTR[192+rsi]
-	movzx	rax,WORD PTR[448+rsi]
+loop_2:
+	movzx	rbx,WORD[192+rsi]
+	movzx	rax,WORD[448+rsi]
 	shl	rbx,16
 	shl	rax,16
-	mov	bx,WORD PTR[128+rsi]
-	mov	ax,WORD PTR[384+rsi]
+	mov	bx,WORD[128+rsi]
+	mov	ax,WORD[384+rsi]
 	shl	rbx,16
 	shl	rax,16
-	mov	bx,WORD PTR[64+rsi]
-	mov	ax,WORD PTR[320+rsi]
+	mov	bx,WORD[64+rsi]
+	mov	ax,WORD[320+rsi]
 	shl	rbx,16
 	shl	rax,16
-	mov	bx,WORD PTR[rsi]
-	mov	ax,WORD PTR[256+rsi]
-	mov	QWORD PTR[rdx],rbx
-	mov	QWORD PTR[8+rdx],rax
-	lea	rsi,QWORD PTR[512+rsi]
-	lea	rdx,QWORD PTR[16+rdx]
+	mov	bx,WORD[rsi]
+	mov	ax,WORD[256+rsi]
+	mov	QWORD[rdx],rbx
+	mov	QWORD[8+rdx],rax
+	lea	rsi,[512+rsi]
+	lea	rdx,[16+rdx]
 	sub	rbp,1
-	jnz	loop_2
-	mov	QWORD PTR[48+rsp],505
+	jnz	NEAR loop_2
+	mov	QWORD[48+rsp],505
 
-	mov	rcx,QWORD PTR[8+rsp]
-	mov	QWORD PTR[136+rsp],rcx
-	mov	r10,QWORD PTR[rcx]
-	mov	r11,QWORD PTR[8+rcx]
-	mov	r12,QWORD PTR[16+rcx]
-	mov	r13,QWORD PTR[24+rcx]
-	mov	r14,QWORD PTR[32+rcx]
-	mov	r15,QWORD PTR[40+rcx]
-	mov	r8,QWORD PTR[48+rcx]
-	mov	r9,QWORD PTR[56+rcx]
-	jmp	sqr_2
+	mov	rcx,QWORD[8+rsp]
+	mov	QWORD[136+rsp],rcx
+	mov	r10,QWORD[rcx]
+	mov	r11,QWORD[8+rcx]
+	mov	r12,QWORD[16+rcx]
+	mov	r13,QWORD[24+rcx]
+	mov	r14,QWORD[32+rcx]
+	mov	r15,QWORD[40+rcx]
+	mov	r8,QWORD[48+rcx]
+	mov	r9,QWORD[56+rcx]
+	jmp	NEAR sqr_2
 
-main_loop_a3b::
+main_loop_a3b:
 	call	sqr_reduce
 	call	sqr_reduce
 	call	sqr_reduce
-sqr_2::
+sqr_2:
 	call	sqr_reduce
 	call	sqr_reduce
 
 
 
-	mov	rcx,QWORD PTR[48+rsp]
+	mov	rcx,QWORD[48+rsp]
 	mov	rax,rcx
 	shr	rax,4
-	mov	edx,DWORD PTR[64+rax*2+rsp]
+	mov	edx,DWORD[64+rax*2+rsp]
 	and	rcx,15
 	shr	rdx,cl
-	and	rdx,01Fh
+	and	rdx,0x1F
 
-	lea	rsi,QWORD PTR[640+rdx*2+rsp]
-	lea	rdx,QWORD PTR[448+rsp]
+	lea	rsi,[640+rdx*2+rsp]
+	lea	rdx,[448+rsp]
 	mov	rdi,rdx
 	mov	rbp,4
-loop_3::
-	movzx	rbx,WORD PTR[192+rsi]
-	movzx	rax,WORD PTR[448+rsi]
+loop_3:
+	movzx	rbx,WORD[192+rsi]
+	movzx	rax,WORD[448+rsi]
 	shl	rbx,16
 	shl	rax,16
-	mov	bx,WORD PTR[128+rsi]
-	mov	ax,WORD PTR[384+rsi]
+	mov	bx,WORD[128+rsi]
+	mov	ax,WORD[384+rsi]
 	shl	rbx,16
 	shl	rax,16
-	mov	bx,WORD PTR[64+rsi]
-	mov	ax,WORD PTR[320+rsi]
+	mov	bx,WORD[64+rsi]
+	mov	ax,WORD[320+rsi]
 	shl	rbx,16
 	shl	rax,16
-	mov	bx,WORD PTR[rsi]
-	mov	ax,WORD PTR[256+rsi]
-	mov	QWORD PTR[rdx],rbx
-	mov	QWORD PTR[8+rdx],rax
-	lea	rsi,QWORD PTR[512+rsi]
-	lea	rdx,QWORD PTR[16+rdx]
+	mov	bx,WORD[rsi]
+	mov	ax,WORD[256+rsi]
+	mov	QWORD[rdx],rbx
+	mov	QWORD[8+rdx],rax
+	lea	rsi,[512+rsi]
+	lea	rdx,[16+rdx]
 	sub	rbp,1
-	jnz	loop_3
-	mov	rsi,QWORD PTR[8+rsp]
+	jnz	NEAR loop_3
+	mov	rsi,QWORD[8+rsp]
 	call	mont_mul_a3b
 
 
 
-	mov	rcx,QWORD PTR[48+rsp]
+	mov	rcx,QWORD[48+rsp]
 	sub	rcx,5
-	mov	QWORD PTR[48+rsp],rcx
-	jge	main_loop_a3b
+	mov	QWORD[48+rsp],rcx
+	jge	NEAR main_loop_a3b
 
 
 
-end_main_loop_a3b::
+end_main_loop_a3b:
 
 
-	mov	rdx,QWORD PTR[8+rsp]
+	mov	rdx,QWORD[8+rsp]
 	pxor	xmm4,xmm4
-	movdqu	xmm0,XMMWORD PTR[rdx]
-	movdqu	xmm1,XMMWORD PTR[16+rdx]
-	movdqu	xmm2,XMMWORD PTR[32+rdx]
-	movdqu	xmm3,XMMWORD PTR[48+rdx]
-	movdqa	XMMWORD PTR[576+rsp],xmm4
-	movdqa	XMMWORD PTR[592+rsp],xmm4
-	movdqa	XMMWORD PTR[608+rsp],xmm4
-	movdqa	XMMWORD PTR[624+rsp],xmm4
-	movdqa	XMMWORD PTR[512+rsp],xmm0
-	movdqa	XMMWORD PTR[528+rsp],xmm1
-	movdqa	XMMWORD PTR[544+rsp],xmm2
-	movdqa	XMMWORD PTR[560+rsp],xmm3
+	movdqu	xmm0,XMMWORD[rdx]
+	movdqu	xmm1,XMMWORD[16+rdx]
+	movdqu	xmm2,XMMWORD[32+rdx]
+	movdqu	xmm3,XMMWORD[48+rdx]
+	movdqa	XMMWORD[576+rsp],xmm4
+	movdqa	XMMWORD[592+rsp],xmm4
+	movdqa	XMMWORD[608+rsp],xmm4
+	movdqa	XMMWORD[624+rsp],xmm4
+	movdqa	XMMWORD[512+rsp],xmm0
+	movdqa	XMMWORD[528+rsp],xmm1
+	movdqa	XMMWORD[544+rsp],xmm2
+	movdqa	XMMWORD[560+rsp],xmm3
 	call	mont_reduce
 
 
 
-	mov	rax,QWORD PTR[8+rsp]
-	mov	r8,QWORD PTR[rax]
-	mov	r9,QWORD PTR[8+rax]
-	mov	r10,QWORD PTR[16+rax]
-	mov	r11,QWORD PTR[24+rax]
-	mov	r12,QWORD PTR[32+rax]
-	mov	r13,QWORD PTR[40+rax]
-	mov	r14,QWORD PTR[48+rax]
-	mov	r15,QWORD PTR[56+rax]
+	mov	rax,QWORD[8+rsp]
+	mov	r8,QWORD[rax]
+	mov	r9,QWORD[8+rax]
+	mov	r10,QWORD[16+rax]
+	mov	r11,QWORD[24+rax]
+	mov	r12,QWORD[32+rax]
+	mov	r13,QWORD[40+rax]
+	mov	r14,QWORD[48+rax]
+	mov	r15,QWORD[56+rax]
 
 
-	mov	rbx,QWORD PTR[24+rsp]
+	mov	rbx,QWORD[24+rsp]
 	add	rbx,512
 
-	sub	r8,QWORD PTR[rbx]
-	sbb	r9,QWORD PTR[8+rbx]
-	sbb	r10,QWORD PTR[16+rbx]
-	sbb	r11,QWORD PTR[24+rbx]
-	sbb	r12,QWORD PTR[32+rbx]
-	sbb	r13,QWORD PTR[40+rbx]
-	sbb	r14,QWORD PTR[48+rbx]
-	sbb	r15,QWORD PTR[56+rbx]
+	sub	r8,QWORD[rbx]
+	sbb	r9,QWORD[8+rbx]
+	sbb	r10,QWORD[16+rbx]
+	sbb	r11,QWORD[24+rbx]
+	sbb	r12,QWORD[32+rbx]
+	sbb	r13,QWORD[40+rbx]
+	sbb	r14,QWORD[48+rbx]
+	sbb	r15,QWORD[56+rbx]
 
 
-	mov	rsi,QWORD PTR[rax]
-	mov	rdi,QWORD PTR[8+rax]
-	mov	rcx,QWORD PTR[16+rax]
-	mov	rdx,QWORD PTR[24+rax]
+	mov	rsi,QWORD[rax]
+	mov	rdi,QWORD[8+rax]
+	mov	rcx,QWORD[16+rax]
+	mov	rdx,QWORD[24+rax]
 	cmovnc	rsi,r8
 	cmovnc	rdi,r9
 	cmovnc	rcx,r10
 	cmovnc	rdx,r11
-	mov	QWORD PTR[rax],rsi
-	mov	QWORD PTR[8+rax],rdi
-	mov	QWORD PTR[16+rax],rcx
-	mov	QWORD PTR[24+rax],rdx
+	mov	QWORD[rax],rsi
+	mov	QWORD[8+rax],rdi
+	mov	QWORD[16+rax],rcx
+	mov	QWORD[24+rax],rdx
 
-	mov	rsi,QWORD PTR[32+rax]
-	mov	rdi,QWORD PTR[40+rax]
-	mov	rcx,QWORD PTR[48+rax]
-	mov	rdx,QWORD PTR[56+rax]
+	mov	rsi,QWORD[32+rax]
+	mov	rdi,QWORD[40+rax]
+	mov	rcx,QWORD[48+rax]
+	mov	rdx,QWORD[56+rax]
 	cmovnc	rsi,r12
 	cmovnc	rdi,r13
 	cmovnc	rcx,r14
 	cmovnc	rdx,r15
-	mov	QWORD PTR[32+rax],rsi
-	mov	QWORD PTR[40+rax],rdi
-	mov	QWORD PTR[48+rax],rcx
-	mov	QWORD PTR[56+rax],rdx
+	mov	QWORD[32+rax],rsi
+	mov	QWORD[40+rax],rdi
+	mov	QWORD[48+rax],rcx
+	mov	QWORD[56+rax],rdx
 
-	mov	rsi,QWORD PTR[rsp]
-	mov	r15,QWORD PTR[rsi]
-	mov	r14,QWORD PTR[8+rsi]
-	mov	r13,QWORD PTR[16+rsi]
-	mov	r12,QWORD PTR[24+rsi]
-	mov	rbx,QWORD PTR[32+rsi]
-	mov	rbp,QWORD PTR[40+rsi]
-	lea	rsp,QWORD PTR[48+rsi]
-$L$epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	mov	rsi,QWORD[rsp]
+	mov	r15,QWORD[rsi]
+	mov	r14,QWORD[8+rsi]
+	mov	r13,QWORD[16+rsi]
+	mov	r12,QWORD[24+rsi]
+	mov	rbx,QWORD[32+rsi]
+	mov	rbp,QWORD[40+rsi]
+	lea	rsp,[48+rsi]
+$L$epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_mod_exp_512::
-mod_exp_512	ENDP
-EXTERN	__imp_RtlVirtualUnwind:NEAR
+$L$SEH_end_mod_exp_512:
+EXTERN	__imp_RtlVirtualUnwind
 
 ALIGN	16
-mod_exp_512_se_handler	PROC PRIVATE
+mod_exp_512_se_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -1800,60 +1803,60 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[120+r8]
-	mov	rbx,QWORD PTR[248+r8]
+	mov	rax,QWORD[120+r8]
+	mov	rbx,QWORD[248+r8]
 
-	lea	r10,QWORD PTR[$L$body]
+	lea	r10,[$L$body]
 	cmp	rbx,r10
-	jb	$L$in_prologue
+	jb	NEAR $L$in_prologue
 
-	mov	rax,QWORD PTR[152+r8]
+	mov	rax,QWORD[152+r8]
 
-	lea	r10,QWORD PTR[$L$epilogue]
+	lea	r10,[$L$epilogue]
 	cmp	rbx,r10
-	jae	$L$in_prologue
+	jae	NEAR $L$in_prologue
 
-	mov	rax,QWORD PTR[rax]
+	mov	rax,QWORD[rax]
 
-	mov	rbx,QWORD PTR[32+rax]
-	mov	rbp,QWORD PTR[40+rax]
-	mov	r12,QWORD PTR[24+rax]
-	mov	r13,QWORD PTR[16+rax]
-	mov	r14,QWORD PTR[8+rax]
-	mov	r15,QWORD PTR[rax]
-	lea	rax,QWORD PTR[48+rax]
-	mov	QWORD PTR[144+r8],rbx
-	mov	QWORD PTR[160+r8],rbp
-	mov	QWORD PTR[216+r8],r12
-	mov	QWORD PTR[224+r8],r13
-	mov	QWORD PTR[232+r8],r14
-	mov	QWORD PTR[240+r8],r15
+	mov	rbx,QWORD[32+rax]
+	mov	rbp,QWORD[40+rax]
+	mov	r12,QWORD[24+rax]
+	mov	r13,QWORD[16+rax]
+	mov	r14,QWORD[8+rax]
+	mov	r15,QWORD[rax]
+	lea	rax,[48+rax]
+	mov	QWORD[144+r8],rbx
+	mov	QWORD[160+r8],rbp
+	mov	QWORD[216+r8],r12
+	mov	QWORD[224+r8],r13
+	mov	QWORD[232+r8],r14
+	mov	QWORD[240+r8],r15
 
-$L$in_prologue::
-	mov	rdi,QWORD PTR[8+rax]
-	mov	rsi,QWORD PTR[16+rax]
-	mov	QWORD PTR[152+r8],rax
-	mov	QWORD PTR[168+r8],rsi
-	mov	QWORD PTR[176+r8],rdi
+$L$in_prologue:
+	mov	rdi,QWORD[8+rax]
+	mov	rsi,QWORD[16+rax]
+	mov	QWORD[152+r8],rax
+	mov	QWORD[168+r8],rsi
+	mov	QWORD[176+r8],rdi
 
-	mov	rdi,QWORD PTR[40+r9]
+	mov	rdi,QWORD[40+r9]
 	mov	rsi,r8
 	mov	ecx,154
-	DD	0a548f3fch
+	DD	0xa548f3fc
 
 	mov	rsi,r9
 	xor	rcx,rcx
-	mov	rdx,QWORD PTR[8+rsi]
-	mov	r8,QWORD PTR[rsi]
-	mov	r9,QWORD PTR[16+rsi]
-	mov	r10,QWORD PTR[40+rsi]
-	lea	r11,QWORD PTR[56+rsi]
-	lea	r12,QWORD PTR[24+rsi]
-	mov	QWORD PTR[32+rsp],r10
-	mov	QWORD PTR[40+rsp],r11
-	mov	QWORD PTR[48+rsp],r12
-	mov	QWORD PTR[56+rsp],rcx
-	call	QWORD PTR[__imp_RtlVirtualUnwind]
+	mov	rdx,QWORD[8+rsi]
+	mov	r8,QWORD[rsi]
+	mov	r9,QWORD[16+rsi]
+	mov	r10,QWORD[40+rsi]
+	lea	r11,[56+rsi]
+	lea	r12,[24+rsi]
+	mov	QWORD[32+rsp],r10
+	mov	QWORD[40+rsp],r11
+	mov	QWORD[48+rsp],r12
+	mov	QWORD[56+rsp],rcx
+	call	QWORD[__imp_RtlVirtualUnwind]
 
 	mov	eax,1
 	add	rsp,64
@@ -1867,21 +1870,16 @@
 	pop	rdi
 	pop	rsi
 	DB	0F3h,0C3h		;repret
-mod_exp_512_se_handler	ENDP
 
-.text$	ENDS
-.pdata	SEGMENT READONLY ALIGN(4)
+
+section	.pdata rdata align=4
 ALIGN	4
-	DD	imagerel $L$SEH_begin_mod_exp_512
-	DD	imagerel $L$SEH_end_mod_exp_512
-	DD	imagerel $L$SEH_info_mod_exp_512
+	DD	$L$SEH_begin_mod_exp_512 wrt ..imagebase
+	DD	$L$SEH_end_mod_exp_512 wrt ..imagebase
+	DD	$L$SEH_info_mod_exp_512 wrt ..imagebase
 
-.pdata	ENDS
-.xdata	SEGMENT READONLY ALIGN(8)
+section	.xdata rdata align=8
 ALIGN	8
-$L$SEH_info_mod_exp_512::
+$L$SEH_info_mod_exp_512:
 DB	9,0,0,0
-	DD	imagerel mod_exp_512_se_handler
-
-.xdata	ENDS
-END
+	DD	mod_exp_512_se_handler wrt ..imagebase
diff --git a/third_party/boringssl/win-x86_64/crypto/bn/rsaz-avx2.asm b/third_party/boringssl/win-x86_64/crypto/bn/rsaz-avx2.asm
index f9188f5..45d0fd4 100644
--- a/third_party/boringssl/win-x86_64/crypto/bn/rsaz-avx2.asm
+++ b/third_party/boringssl/win-x86_64/crypto/bn/rsaz-avx2.asm
@@ -1,29 +1,30 @@
-OPTION	DOTNAME
-.text$	SEGMENT ALIGN(256) 'CODE'
+default	rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section	.text code align=64
 
-PUBLIC	rsaz_avx2_eligible
 
-rsaz_avx2_eligible	PROC PUBLIC
+global	rsaz_avx2_eligible
+
+rsaz_avx2_eligible:
 	xor	eax,eax
 	DB	0F3h,0C3h		;repret
-rsaz_avx2_eligible	ENDP
 
-PUBLIC	rsaz_1024_sqr_avx2
-PUBLIC	rsaz_1024_mul_avx2
-PUBLIC	rsaz_1024_norm2red_avx2
-PUBLIC	rsaz_1024_red2norm_avx2
-PUBLIC	rsaz_1024_scatter5_avx2
-PUBLIC	rsaz_1024_gather5_avx2
 
-rsaz_1024_sqr_avx2	PROC PUBLIC
-rsaz_1024_mul_avx2::
-rsaz_1024_norm2red_avx2::
-rsaz_1024_red2norm_avx2::
-rsaz_1024_scatter5_avx2::
-rsaz_1024_gather5_avx2::
-DB	00fh,00bh
+global	rsaz_1024_sqr_avx2
+global	rsaz_1024_mul_avx2
+global	rsaz_1024_norm2red_avx2
+global	rsaz_1024_red2norm_avx2
+global	rsaz_1024_scatter5_avx2
+global	rsaz_1024_gather5_avx2
+
+rsaz_1024_sqr_avx2:
+rsaz_1024_mul_avx2:
+rsaz_1024_norm2red_avx2:
+rsaz_1024_red2norm_avx2:
+rsaz_1024_scatter5_avx2:
+rsaz_1024_gather5_avx2:
+DB	0x0f,0x0b
 	DB	0F3h,0C3h		;repret
-rsaz_1024_sqr_avx2	ENDP
 
-.text$	ENDS
-END
diff --git a/third_party/boringssl/win-x86_64/crypto/bn/rsaz-x86_64.asm b/third_party/boringssl/win-x86_64/crypto/bn/rsaz-x86_64.asm
index 86e828d..04d5e39 100644
--- a/third_party/boringssl/win-x86_64/crypto/bn/rsaz-x86_64.asm
+++ b/third_party/boringssl/win-x86_64/crypto/bn/rsaz-x86_64.asm
@@ -1,21 +1,25 @@
-OPTION	DOTNAME
-.text$	SEGMENT ALIGN(256) 'CODE'
+default	rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section	.text code align=64
 
-EXTERN	OPENSSL_ia32cap_P:NEAR
 
-PUBLIC	rsaz_512_sqr
+EXTERN	OPENSSL_ia32cap_P
+
+global	rsaz_512_sqr
 
 ALIGN	32
-rsaz_512_sqr	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+rsaz_512_sqr:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_rsaz_512_sqr::
+$L$SEH_begin_rsaz_512_sqr:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 	mov	rcx,r9
-	mov	r8,QWORD PTR[40+rsp]
+	mov	r8,QWORD[40+rsp]
 
 
 	push	rbx
@@ -26,50 +30,50 @@
 	push	r15
 
 	sub	rsp,128+24
-$L$sqr_body::
+$L$sqr_body:
 	mov	rbp,rdx
-	mov	rdx,QWORD PTR[rsi]
-	mov	rax,QWORD PTR[8+rsi]
-	mov	QWORD PTR[128+rsp],rcx
-	jmp	$L$oop_sqr
+	mov	rdx,QWORD[rsi]
+	mov	rax,QWORD[8+rsi]
+	mov	QWORD[128+rsp],rcx
+	jmp	NEAR $L$oop_sqr
 
 ALIGN	32
-$L$oop_sqr::
-	mov	DWORD PTR[((128+8))+rsp],r8d
+$L$oop_sqr:
+	mov	DWORD[((128+8))+rsp],r8d
 
 	mov	rbx,rdx
 	mul	rdx
 	mov	r8,rax
-	mov	rax,QWORD PTR[16+rsi]
+	mov	rax,QWORD[16+rsi]
 	mov	r9,rdx
 
 	mul	rbx
 	add	r9,rax
-	mov	rax,QWORD PTR[24+rsi]
+	mov	rax,QWORD[24+rsi]
 	mov	r10,rdx
 	adc	r10,0
 
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[32+rsi]
+	mov	rax,QWORD[32+rsi]
 	mov	r11,rdx
 	adc	r11,0
 
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[40+rsi]
+	mov	rax,QWORD[40+rsi]
 	mov	r12,rdx
 	adc	r12,0
 
 	mul	rbx
 	add	r12,rax
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	mov	r13,rdx
 	adc	r13,0
 
 	mul	rbx
 	add	r13,rax
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	mov	r14,rdx
 	adc	r14,0
 
@@ -84,25 +88,25 @@
 	adc	r9,r9
 
 	mul	rax
-	mov	QWORD PTR[rsp],rax
+	mov	QWORD[rsp],rax
 	add	r8,rdx
 	adc	r9,0
 
-	mov	QWORD PTR[8+rsp],r8
+	mov	QWORD[8+rsp],r8
 	shr	rcx,63
 
 
-	mov	r8,QWORD PTR[8+rsi]
-	mov	rax,QWORD PTR[16+rsi]
+	mov	r8,QWORD[8+rsi]
+	mov	rax,QWORD[16+rsi]
 	mul	r8
 	add	r10,rax
-	mov	rax,QWORD PTR[24+rsi]
+	mov	rax,QWORD[24+rsi]
 	mov	rbx,rdx
 	adc	rbx,0
 
 	mul	r8
 	add	r11,rax
-	mov	rax,QWORD PTR[32+rsi]
+	mov	rax,QWORD[32+rsi]
 	adc	rdx,0
 	add	r11,rbx
 	mov	rbx,rdx
@@ -110,7 +114,7 @@
 
 	mul	r8
 	add	r12,rax
-	mov	rax,QWORD PTR[40+rsi]
+	mov	rax,QWORD[40+rsi]
 	adc	rdx,0
 	add	r12,rbx
 	mov	rbx,rdx
@@ -118,7 +122,7 @@
 
 	mul	r8
 	add	r13,rax
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	adc	rdx,0
 	add	r13,rbx
 	mov	rbx,rdx
@@ -126,7 +130,7 @@
 
 	mul	r8
 	add	r14,rax
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	adc	rdx,0
 	add	r14,rbx
 	mov	rbx,rdx
@@ -142,7 +146,7 @@
 	adc	r8,0
 
 	add	rdx,rdx
-	lea	r10,QWORD PTR[r10*2+rcx]
+	lea	r10,[r10*2+rcx]
 	mov	rbx,r11
 	adc	r11,r11
 
@@ -151,22 +155,22 @@
 	adc	r10,rdx
 	adc	r11,0
 
-	mov	QWORD PTR[16+rsp],r9
-	mov	QWORD PTR[24+rsp],r10
+	mov	QWORD[16+rsp],r9
+	mov	QWORD[24+rsp],r10
 	shr	rbx,63
 
 
-	mov	r9,QWORD PTR[16+rsi]
-	mov	rax,QWORD PTR[24+rsi]
+	mov	r9,QWORD[16+rsi]
+	mov	rax,QWORD[24+rsi]
 	mul	r9
 	add	r12,rax
-	mov	rax,QWORD PTR[32+rsi]
+	mov	rax,QWORD[32+rsi]
 	mov	rcx,rdx
 	adc	rcx,0
 
 	mul	r9
 	add	r13,rax
-	mov	rax,QWORD PTR[40+rsi]
+	mov	rax,QWORD[40+rsi]
 	adc	rdx,0
 	add	r13,rcx
 	mov	rcx,rdx
@@ -174,7 +178,7 @@
 
 	mul	r9
 	add	r14,rax
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	adc	rdx,0
 	add	r14,rcx
 	mov	rcx,rdx
@@ -182,9 +186,9 @@
 
 	mul	r9
 	mov	r10,r12
-	lea	r12,QWORD PTR[r12*2+rbx]
+	lea	r12,[r12*2+rbx]
 	add	r15,rax
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	adc	rdx,0
 	add	r15,rcx
 	mov	rcx,rdx
@@ -200,29 +204,29 @@
 	adc	r9,0
 
 	mov	rcx,r13
-	lea	r13,QWORD PTR[r13*2+r10]
+	lea	r13,[r13*2+r10]
 
 	mul	rax
 	add	r11,rax
 	adc	r12,rdx
 	adc	r13,0
 
-	mov	QWORD PTR[32+rsp],r11
-	mov	QWORD PTR[40+rsp],r12
+	mov	QWORD[32+rsp],r11
+	mov	QWORD[40+rsp],r12
 	shr	rcx,63
 
 
-	mov	r10,QWORD PTR[24+rsi]
-	mov	rax,QWORD PTR[32+rsi]
+	mov	r10,QWORD[24+rsi]
+	mov	rax,QWORD[32+rsi]
 	mul	r10
 	add	r14,rax
-	mov	rax,QWORD PTR[40+rsi]
+	mov	rax,QWORD[40+rsi]
 	mov	rbx,rdx
 	adc	rbx,0
 
 	mul	r10
 	add	r15,rax
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	adc	rdx,0
 	add	r15,rbx
 	mov	rbx,rdx
@@ -230,9 +234,9 @@
 
 	mul	r10
 	mov	r12,r14
-	lea	r14,QWORD PTR[r14*2+rcx]
+	lea	r14,[r14*2+rcx]
 	add	r8,rax
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	adc	rdx,0
 	add	r8,rbx
 	mov	rbx,rdx
@@ -248,32 +252,32 @@
 	adc	r10,0
 
 	mov	rbx,r15
-	lea	r15,QWORD PTR[r15*2+r12]
+	lea	r15,[r15*2+r12]
 
 	mul	rax
 	add	r13,rax
 	adc	r14,rdx
 	adc	r15,0
 
-	mov	QWORD PTR[48+rsp],r13
-	mov	QWORD PTR[56+rsp],r14
+	mov	QWORD[48+rsp],r13
+	mov	QWORD[56+rsp],r14
 	shr	rbx,63
 
 
-	mov	r11,QWORD PTR[32+rsi]
-	mov	rax,QWORD PTR[40+rsi]
+	mov	r11,QWORD[32+rsi]
+	mov	rax,QWORD[40+rsi]
 	mul	r11
 	add	r8,rax
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	mov	rcx,rdx
 	adc	rcx,0
 
 	mul	r11
 	add	r9,rax
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	adc	rdx,0
 	mov	r12,r8
-	lea	r8,QWORD PTR[r8*2+rbx]
+	lea	r8,[r8*2+rbx]
 	add	r9,rcx
 	mov	rcx,rdx
 	adc	rcx,0
@@ -288,23 +292,23 @@
 	adc	r11,0
 
 	mov	rcx,r9
-	lea	r9,QWORD PTR[r9*2+r12]
+	lea	r9,[r9*2+r12]
 
 	mul	rax
 	add	r15,rax
 	adc	r8,rdx
 	adc	r9,0
 
-	mov	QWORD PTR[64+rsp],r15
-	mov	QWORD PTR[72+rsp],r8
+	mov	QWORD[64+rsp],r15
+	mov	QWORD[72+rsp],r8
 	shr	rcx,63
 
 
-	mov	r12,QWORD PTR[40+rsi]
-	mov	rax,QWORD PTR[48+rsi]
+	mov	r12,QWORD[40+rsi]
+	mov	rax,QWORD[48+rsi]
 	mul	r12
 	add	r10,rax
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	mov	rbx,rdx
 	adc	rbx,0
 
@@ -312,7 +316,7 @@
 	add	r11,rax
 	mov	rax,r12
 	mov	r15,r10
-	lea	r10,QWORD PTR[r10*2+rcx]
+	lea	r10,[r10*2+rcx]
 	adc	rdx,0
 	shr	r15,63
 	add	r11,rbx
@@ -320,19 +324,19 @@
 	adc	r12,0
 
 	mov	rbx,r11
-	lea	r11,QWORD PTR[r11*2+r15]
+	lea	r11,[r11*2+r15]
 
 	mul	rax
 	add	r9,rax
 	adc	r10,rdx
 	adc	r11,0
 
-	mov	QWORD PTR[80+rsp],r9
-	mov	QWORD PTR[88+rsp],r10
+	mov	QWORD[80+rsp],r9
+	mov	QWORD[88+rsp],r10
 
 
-	mov	r13,QWORD PTR[48+rsi]
-	mov	rax,QWORD PTR[56+rsi]
+	mov	r13,QWORD[48+rsi]
+	mov	rax,QWORD[56+rsi]
 	mul	r13
 	add	r12,rax
 	mov	rax,r13
@@ -350,78 +354,77 @@
 	adc	r12,rdx
 	adc	r13,0
 
-	mov	QWORD PTR[96+rsp],r11
-	mov	QWORD PTR[104+rsp],r12
+	mov	QWORD[96+rsp],r11
+	mov	QWORD[104+rsp],r12
 
 
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	mul	rax
 	add	r13,rax
 	adc	rdx,0
 
 	add	r14,rdx
 
-	mov	QWORD PTR[112+rsp],r13
-	mov	QWORD PTR[120+rsp],r14
+	mov	QWORD[112+rsp],r13
+	mov	QWORD[120+rsp],r14
 
-	mov	r8,QWORD PTR[rsp]
-	mov	r9,QWORD PTR[8+rsp]
-	mov	r10,QWORD PTR[16+rsp]
-	mov	r11,QWORD PTR[24+rsp]
-	mov	r12,QWORD PTR[32+rsp]
-	mov	r13,QWORD PTR[40+rsp]
-	mov	r14,QWORD PTR[48+rsp]
-	mov	r15,QWORD PTR[56+rsp]
+	mov	r8,QWORD[rsp]
+	mov	r9,QWORD[8+rsp]
+	mov	r10,QWORD[16+rsp]
+	mov	r11,QWORD[24+rsp]
+	mov	r12,QWORD[32+rsp]
+	mov	r13,QWORD[40+rsp]
+	mov	r14,QWORD[48+rsp]
+	mov	r15,QWORD[56+rsp]
 
 	call	__rsaz_512_reduce
 
-	add	r8,QWORD PTR[64+rsp]
-	adc	r9,QWORD PTR[72+rsp]
-	adc	r10,QWORD PTR[80+rsp]
-	adc	r11,QWORD PTR[88+rsp]
-	adc	r12,QWORD PTR[96+rsp]
-	adc	r13,QWORD PTR[104+rsp]
-	adc	r14,QWORD PTR[112+rsp]
-	adc	r15,QWORD PTR[120+rsp]
+	add	r8,QWORD[64+rsp]
+	adc	r9,QWORD[72+rsp]
+	adc	r10,QWORD[80+rsp]
+	adc	r11,QWORD[88+rsp]
+	adc	r12,QWORD[96+rsp]
+	adc	r13,QWORD[104+rsp]
+	adc	r14,QWORD[112+rsp]
+	adc	r15,QWORD[120+rsp]
 	sbb	rcx,rcx
 
 	call	__rsaz_512_subtract
 
 	mov	rdx,r8
 	mov	rax,r9
-	mov	r8d,DWORD PTR[((128+8))+rsp]
+	mov	r8d,DWORD[((128+8))+rsp]
 	mov	rsi,rdi
 
 	dec	r8d
-	jnz	$L$oop_sqr
+	jnz	NEAR $L$oop_sqr
 
-	lea	rax,QWORD PTR[((128+24+48))+rsp]
-	mov	r15,QWORD PTR[((-48))+rax]
-	mov	r14,QWORD PTR[((-40))+rax]
-	mov	r13,QWORD PTR[((-32))+rax]
-	mov	r12,QWORD PTR[((-24))+rax]
-	mov	rbp,QWORD PTR[((-16))+rax]
-	mov	rbx,QWORD PTR[((-8))+rax]
-	lea	rsp,QWORD PTR[rax]
-$L$sqr_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	lea	rax,[((128+24+48))+rsp]
+	mov	r15,QWORD[((-48))+rax]
+	mov	r14,QWORD[((-40))+rax]
+	mov	r13,QWORD[((-32))+rax]
+	mov	r12,QWORD[((-24))+rax]
+	mov	rbp,QWORD[((-16))+rax]
+	mov	rbx,QWORD[((-8))+rax]
+	lea	rsp,[rax]
+$L$sqr_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_rsaz_512_sqr::
-rsaz_512_sqr	ENDP
-PUBLIC	rsaz_512_mul
+$L$SEH_end_rsaz_512_sqr:
+global	rsaz_512_mul
 
 ALIGN	32
-rsaz_512_mul	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+rsaz_512_mul:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_rsaz_512_mul::
+$L$SEH_begin_rsaz_512_mul:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 	mov	rcx,r9
-	mov	r8,QWORD PTR[40+rsp]
+	mov	r8,QWORD[40+rsp]
 
 
 	push	rbx
@@ -432,67 +435,66 @@
 	push	r15
 
 	sub	rsp,128+24
-$L$mul_body::
+$L$mul_body:
 DB	102,72,15,110,199
 DB	102,72,15,110,201
-	mov	QWORD PTR[128+rsp],r8
-	mov	rbx,QWORD PTR[rdx]
+	mov	QWORD[128+rsp],r8
+	mov	rbx,QWORD[rdx]
 	mov	rbp,rdx
 	call	__rsaz_512_mul
 
 DB	102,72,15,126,199
 DB	102,72,15,126,205
 
-	mov	r8,QWORD PTR[rsp]
-	mov	r9,QWORD PTR[8+rsp]
-	mov	r10,QWORD PTR[16+rsp]
-	mov	r11,QWORD PTR[24+rsp]
-	mov	r12,QWORD PTR[32+rsp]
-	mov	r13,QWORD PTR[40+rsp]
-	mov	r14,QWORD PTR[48+rsp]
-	mov	r15,QWORD PTR[56+rsp]
+	mov	r8,QWORD[rsp]
+	mov	r9,QWORD[8+rsp]
+	mov	r10,QWORD[16+rsp]
+	mov	r11,QWORD[24+rsp]
+	mov	r12,QWORD[32+rsp]
+	mov	r13,QWORD[40+rsp]
+	mov	r14,QWORD[48+rsp]
+	mov	r15,QWORD[56+rsp]
 
 	call	__rsaz_512_reduce
-	add	r8,QWORD PTR[64+rsp]
-	adc	r9,QWORD PTR[72+rsp]
-	adc	r10,QWORD PTR[80+rsp]
-	adc	r11,QWORD PTR[88+rsp]
-	adc	r12,QWORD PTR[96+rsp]
-	adc	r13,QWORD PTR[104+rsp]
-	adc	r14,QWORD PTR[112+rsp]
-	adc	r15,QWORD PTR[120+rsp]
+	add	r8,QWORD[64+rsp]
+	adc	r9,QWORD[72+rsp]
+	adc	r10,QWORD[80+rsp]
+	adc	r11,QWORD[88+rsp]
+	adc	r12,QWORD[96+rsp]
+	adc	r13,QWORD[104+rsp]
+	adc	r14,QWORD[112+rsp]
+	adc	r15,QWORD[120+rsp]
 	sbb	rcx,rcx
 
 	call	__rsaz_512_subtract
 
-	lea	rax,QWORD PTR[((128+24+48))+rsp]
-	mov	r15,QWORD PTR[((-48))+rax]
-	mov	r14,QWORD PTR[((-40))+rax]
-	mov	r13,QWORD PTR[((-32))+rax]
-	mov	r12,QWORD PTR[((-24))+rax]
-	mov	rbp,QWORD PTR[((-16))+rax]
-	mov	rbx,QWORD PTR[((-8))+rax]
-	lea	rsp,QWORD PTR[rax]
-$L$mul_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	lea	rax,[((128+24+48))+rsp]
+	mov	r15,QWORD[((-48))+rax]
+	mov	r14,QWORD[((-40))+rax]
+	mov	r13,QWORD[((-32))+rax]
+	mov	r12,QWORD[((-24))+rax]
+	mov	rbp,QWORD[((-16))+rax]
+	mov	rbx,QWORD[((-8))+rax]
+	lea	rsp,[rax]
+$L$mul_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_rsaz_512_mul::
-rsaz_512_mul	ENDP
-PUBLIC	rsaz_512_mul_gather4
+$L$SEH_end_rsaz_512_mul:
+global	rsaz_512_mul_gather4
 
 ALIGN	32
-rsaz_512_mul_gather4	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+rsaz_512_mul_gather4:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_rsaz_512_mul_gather4::
+$L$SEH_begin_rsaz_512_mul_gather4:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 	mov	rcx,r9
-	mov	r8,QWORD PTR[40+rsp]
-	mov	r9,QWORD PTR[48+rsp]
+	mov	r8,QWORD[40+rsp]
+	mov	r9,QWORD[48+rsp]
 
 
 	push	rbx
@@ -504,97 +506,97 @@
 
 	mov	r9d,r9d
 	sub	rsp,128+24
-$L$mul_gather4_body::
-	mov	eax,DWORD PTR[64+r9*4+rdx]
+$L$mul_gather4_body:
+	mov	eax,DWORD[64+r9*4+rdx]
 DB	102,72,15,110,199
-	mov	ebx,DWORD PTR[r9*4+rdx]
+	mov	ebx,DWORD[r9*4+rdx]
 DB	102,72,15,110,201
-	mov	QWORD PTR[128+rsp],r8
+	mov	QWORD[128+rsp],r8
 
 	shl	rax,32
 	or	rbx,rax
-	mov	rax,QWORD PTR[rsi]
-	mov	rcx,QWORD PTR[8+rsi]
-	lea	rbp,QWORD PTR[128+r9*4+rdx]
+	mov	rax,QWORD[rsi]
+	mov	rcx,QWORD[8+rsi]
+	lea	rbp,[128+r9*4+rdx]
 	mul	rbx
-	mov	QWORD PTR[rsp],rax
+	mov	QWORD[rsp],rax
 	mov	rax,rcx
 	mov	r8,rdx
 
 	mul	rbx
-	movd	xmm4,DWORD PTR[rbp]
+	movd	xmm4,DWORD[rbp]
 	add	r8,rax
-	mov	rax,QWORD PTR[16+rsi]
+	mov	rax,QWORD[16+rsi]
 	mov	r9,rdx
 	adc	r9,0
 
 	mul	rbx
-	movd	xmm5,DWORD PTR[64+rbp]
+	movd	xmm5,DWORD[64+rbp]
 	add	r9,rax
-	mov	rax,QWORD PTR[24+rsi]
+	mov	rax,QWORD[24+rsi]
 	mov	r10,rdx
 	adc	r10,0
 
 	mul	rbx
 	pslldq	xmm5,4
 	add	r10,rax
-	mov	rax,QWORD PTR[32+rsi]
+	mov	rax,QWORD[32+rsi]
 	mov	r11,rdx
 	adc	r11,0
 
 	mul	rbx
 	por	xmm4,xmm5
 	add	r11,rax
-	mov	rax,QWORD PTR[40+rsi]
+	mov	rax,QWORD[40+rsi]
 	mov	r12,rdx
 	adc	r12,0
 
 	mul	rbx
 	add	r12,rax
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	mov	r13,rdx
 	adc	r13,0
 
 	mul	rbx
-	lea	rbp,QWORD PTR[128+rbp]
+	lea	rbp,[128+rbp]
 	add	r13,rax
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	mov	r14,rdx
 	adc	r14,0
 
 	mul	rbx
 DB	102,72,15,126,227
 	add	r14,rax
-	mov	rax,QWORD PTR[rsi]
+	mov	rax,QWORD[rsi]
 	mov	r15,rdx
 	adc	r15,0
 
-	lea	rdi,QWORD PTR[8+rsp]
+	lea	rdi,[8+rsp]
 	mov	ecx,7
-	jmp	$L$oop_mul_gather
+	jmp	NEAR $L$oop_mul_gather
 
 ALIGN	32
-$L$oop_mul_gather::
+$L$oop_mul_gather:
 	mul	rbx
 	add	r8,rax
-	mov	rax,QWORD PTR[8+rsi]
-	mov	QWORD PTR[rdi],r8
+	mov	rax,QWORD[8+rsi]
+	mov	QWORD[rdi],r8
 	mov	r8,rdx
 	adc	r8,0
 
 	mul	rbx
-	movd	xmm4,DWORD PTR[rbp]
+	movd	xmm4,DWORD[rbp]
 	add	r9,rax
-	mov	rax,QWORD PTR[16+rsi]
+	mov	rax,QWORD[16+rsi]
 	adc	rdx,0
 	add	r8,r9
 	mov	r9,rdx
 	adc	r9,0
 
 	mul	rbx
-	movd	xmm5,DWORD PTR[64+rbp]
+	movd	xmm5,DWORD[64+rbp]
 	add	r10,rax
-	mov	rax,QWORD PTR[24+rsi]
+	mov	rax,QWORD[24+rsi]
 	adc	rdx,0
 	add	r9,r10
 	mov	r10,rdx
@@ -603,7 +605,7 @@
 	mul	rbx
 	pslldq	xmm5,4
 	add	r11,rax
-	mov	rax,QWORD PTR[32+rsi]
+	mov	rax,QWORD[32+rsi]
 	adc	rdx,0
 	add	r10,r11
 	mov	r11,rdx
@@ -612,7 +614,7 @@
 	mul	rbx
 	por	xmm4,xmm5
 	add	r12,rax
-	mov	rax,QWORD PTR[40+rsi]
+	mov	rax,QWORD[40+rsi]
 	adc	rdx,0
 	add	r11,r12
 	mov	r12,rdx
@@ -620,7 +622,7 @@
 
 	mul	rbx
 	add	r13,rax
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	adc	rdx,0
 	add	r12,r13
 	mov	r13,rdx
@@ -628,7 +630,7 @@
 
 	mul	rbx
 	add	r14,rax
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	adc	rdx,0
 	add	r13,r14
 	mov	r14,rdx
@@ -637,80 +639,79 @@
 	mul	rbx
 DB	102,72,15,126,227
 	add	r15,rax
-	mov	rax,QWORD PTR[rsi]
+	mov	rax,QWORD[rsi]
 	adc	rdx,0
 	add	r14,r15
 	mov	r15,rdx
 	adc	r15,0
 
-	lea	rbp,QWORD PTR[128+rbp]
-	lea	rdi,QWORD PTR[8+rdi]
+	lea	rbp,[128+rbp]
+	lea	rdi,[8+rdi]
 
 	dec	ecx
-	jnz	$L$oop_mul_gather
+	jnz	NEAR $L$oop_mul_gather
 
-	mov	QWORD PTR[rdi],r8
-	mov	QWORD PTR[8+rdi],r9
-	mov	QWORD PTR[16+rdi],r10
-	mov	QWORD PTR[24+rdi],r11
-	mov	QWORD PTR[32+rdi],r12
-	mov	QWORD PTR[40+rdi],r13
-	mov	QWORD PTR[48+rdi],r14
-	mov	QWORD PTR[56+rdi],r15
+	mov	QWORD[rdi],r8
+	mov	QWORD[8+rdi],r9
+	mov	QWORD[16+rdi],r10
+	mov	QWORD[24+rdi],r11
+	mov	QWORD[32+rdi],r12
+	mov	QWORD[40+rdi],r13
+	mov	QWORD[48+rdi],r14
+	mov	QWORD[56+rdi],r15
 
 DB	102,72,15,126,199
 DB	102,72,15,126,205
 
-	mov	r8,QWORD PTR[rsp]
-	mov	r9,QWORD PTR[8+rsp]
-	mov	r10,QWORD PTR[16+rsp]
-	mov	r11,QWORD PTR[24+rsp]
-	mov	r12,QWORD PTR[32+rsp]
-	mov	r13,QWORD PTR[40+rsp]
-	mov	r14,QWORD PTR[48+rsp]
-	mov	r15,QWORD PTR[56+rsp]
+	mov	r8,QWORD[rsp]
+	mov	r9,QWORD[8+rsp]
+	mov	r10,QWORD[16+rsp]
+	mov	r11,QWORD[24+rsp]
+	mov	r12,QWORD[32+rsp]
+	mov	r13,QWORD[40+rsp]
+	mov	r14,QWORD[48+rsp]
+	mov	r15,QWORD[56+rsp]
 
 	call	__rsaz_512_reduce
-	add	r8,QWORD PTR[64+rsp]
-	adc	r9,QWORD PTR[72+rsp]
-	adc	r10,QWORD PTR[80+rsp]
-	adc	r11,QWORD PTR[88+rsp]
-	adc	r12,QWORD PTR[96+rsp]
-	adc	r13,QWORD PTR[104+rsp]
-	adc	r14,QWORD PTR[112+rsp]
-	adc	r15,QWORD PTR[120+rsp]
+	add	r8,QWORD[64+rsp]
+	adc	r9,QWORD[72+rsp]
+	adc	r10,QWORD[80+rsp]
+	adc	r11,QWORD[88+rsp]
+	adc	r12,QWORD[96+rsp]
+	adc	r13,QWORD[104+rsp]
+	adc	r14,QWORD[112+rsp]
+	adc	r15,QWORD[120+rsp]
 	sbb	rcx,rcx
 
 	call	__rsaz_512_subtract
 
-	lea	rax,QWORD PTR[((128+24+48))+rsp]
-	mov	r15,QWORD PTR[((-48))+rax]
-	mov	r14,QWORD PTR[((-40))+rax]
-	mov	r13,QWORD PTR[((-32))+rax]
-	mov	r12,QWORD PTR[((-24))+rax]
-	mov	rbp,QWORD PTR[((-16))+rax]
-	mov	rbx,QWORD PTR[((-8))+rax]
-	lea	rsp,QWORD PTR[rax]
-$L$mul_gather4_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	lea	rax,[((128+24+48))+rsp]
+	mov	r15,QWORD[((-48))+rax]
+	mov	r14,QWORD[((-40))+rax]
+	mov	r13,QWORD[((-32))+rax]
+	mov	r12,QWORD[((-24))+rax]
+	mov	rbp,QWORD[((-16))+rax]
+	mov	rbx,QWORD[((-8))+rax]
+	lea	rsp,[rax]
+$L$mul_gather4_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_rsaz_512_mul_gather4::
-rsaz_512_mul_gather4	ENDP
-PUBLIC	rsaz_512_mul_scatter4
+$L$SEH_end_rsaz_512_mul_gather4:
+global	rsaz_512_mul_scatter4
 
 ALIGN	32
-rsaz_512_mul_scatter4	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+rsaz_512_mul_scatter4:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_rsaz_512_mul_scatter4::
+$L$SEH_begin_rsaz_512_mul_scatter4:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 	mov	rcx,r9
-	mov	r8,QWORD PTR[40+rsp]
-	mov	r9,QWORD PTR[48+rsp]
+	mov	r8,QWORD[40+rsp]
+	mov	r9,QWORD[48+rsp]
 
 
 	push	rbx
@@ -722,90 +723,89 @@
 
 	mov	r9d,r9d
 	sub	rsp,128+24
-$L$mul_scatter4_body::
-	lea	r8,QWORD PTR[r9*4+r8]
+$L$mul_scatter4_body:
+	lea	r8,[r9*4+r8]
 DB	102,72,15,110,199
 DB	102,72,15,110,202
 DB	102,73,15,110,208
-	mov	QWORD PTR[128+rsp],rcx
+	mov	QWORD[128+rsp],rcx
 
 	mov	rbp,rdi
-	mov	rbx,QWORD PTR[rdi]
+	mov	rbx,QWORD[rdi]
 	call	__rsaz_512_mul
 
 DB	102,72,15,126,199
 DB	102,72,15,126,205
 
-	mov	r8,QWORD PTR[rsp]
-	mov	r9,QWORD PTR[8+rsp]
-	mov	r10,QWORD PTR[16+rsp]
-	mov	r11,QWORD PTR[24+rsp]
-	mov	r12,QWORD PTR[32+rsp]
-	mov	r13,QWORD PTR[40+rsp]
-	mov	r14,QWORD PTR[48+rsp]
-	mov	r15,QWORD PTR[56+rsp]
+	mov	r8,QWORD[rsp]
+	mov	r9,QWORD[8+rsp]
+	mov	r10,QWORD[16+rsp]
+	mov	r11,QWORD[24+rsp]
+	mov	r12,QWORD[32+rsp]
+	mov	r13,QWORD[40+rsp]
+	mov	r14,QWORD[48+rsp]
+	mov	r15,QWORD[56+rsp]
 
 	call	__rsaz_512_reduce
-	add	r8,QWORD PTR[64+rsp]
-	adc	r9,QWORD PTR[72+rsp]
-	adc	r10,QWORD PTR[80+rsp]
-	adc	r11,QWORD PTR[88+rsp]
-	adc	r12,QWORD PTR[96+rsp]
-	adc	r13,QWORD PTR[104+rsp]
-	adc	r14,QWORD PTR[112+rsp]
-	adc	r15,QWORD PTR[120+rsp]
+	add	r8,QWORD[64+rsp]
+	adc	r9,QWORD[72+rsp]
+	adc	r10,QWORD[80+rsp]
+	adc	r11,QWORD[88+rsp]
+	adc	r12,QWORD[96+rsp]
+	adc	r13,QWORD[104+rsp]
+	adc	r14,QWORD[112+rsp]
+	adc	r15,QWORD[120+rsp]
 DB	102,72,15,126,214
 	sbb	rcx,rcx
 
 	call	__rsaz_512_subtract
 
-	mov	DWORD PTR[rsi],r8d
+	mov	DWORD[rsi],r8d
 	shr	r8,32
-	mov	DWORD PTR[128+rsi],r9d
+	mov	DWORD[128+rsi],r9d
 	shr	r9,32
-	mov	DWORD PTR[256+rsi],r10d
+	mov	DWORD[256+rsi],r10d
 	shr	r10,32
-	mov	DWORD PTR[384+rsi],r11d
+	mov	DWORD[384+rsi],r11d
 	shr	r11,32
-	mov	DWORD PTR[512+rsi],r12d
+	mov	DWORD[512+rsi],r12d
 	shr	r12,32
-	mov	DWORD PTR[640+rsi],r13d
+	mov	DWORD[640+rsi],r13d
 	shr	r13,32
-	mov	DWORD PTR[768+rsi],r14d
+	mov	DWORD[768+rsi],r14d
 	shr	r14,32
-	mov	DWORD PTR[896+rsi],r15d
+	mov	DWORD[896+rsi],r15d
 	shr	r15,32
-	mov	DWORD PTR[64+rsi],r8d
-	mov	DWORD PTR[192+rsi],r9d
-	mov	DWORD PTR[320+rsi],r10d
-	mov	DWORD PTR[448+rsi],r11d
-	mov	DWORD PTR[576+rsi],r12d
-	mov	DWORD PTR[704+rsi],r13d
-	mov	DWORD PTR[832+rsi],r14d
-	mov	DWORD PTR[960+rsi],r15d
+	mov	DWORD[64+rsi],r8d
+	mov	DWORD[192+rsi],r9d
+	mov	DWORD[320+rsi],r10d
+	mov	DWORD[448+rsi],r11d
+	mov	DWORD[576+rsi],r12d
+	mov	DWORD[704+rsi],r13d
+	mov	DWORD[832+rsi],r14d
+	mov	DWORD[960+rsi],r15d
 
-	lea	rax,QWORD PTR[((128+24+48))+rsp]
-	mov	r15,QWORD PTR[((-48))+rax]
-	mov	r14,QWORD PTR[((-40))+rax]
-	mov	r13,QWORD PTR[((-32))+rax]
-	mov	r12,QWORD PTR[((-24))+rax]
-	mov	rbp,QWORD PTR[((-16))+rax]
-	mov	rbx,QWORD PTR[((-8))+rax]
-	lea	rsp,QWORD PTR[rax]
-$L$mul_scatter4_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	lea	rax,[((128+24+48))+rsp]
+	mov	r15,QWORD[((-48))+rax]
+	mov	r14,QWORD[((-40))+rax]
+	mov	r13,QWORD[((-32))+rax]
+	mov	r12,QWORD[((-24))+rax]
+	mov	rbp,QWORD[((-16))+rax]
+	mov	rbx,QWORD[((-8))+rax]
+	lea	rsp,[rax]
+$L$mul_scatter4_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_rsaz_512_mul_scatter4::
-rsaz_512_mul_scatter4	ENDP
-PUBLIC	rsaz_512_mul_by_one
+$L$SEH_end_rsaz_512_mul_scatter4:
+global	rsaz_512_mul_by_one
 
 ALIGN	32
-rsaz_512_mul_by_one	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+rsaz_512_mul_by_one:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_rsaz_512_mul_by_one::
+$L$SEH_begin_rsaz_512_mul_by_one:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
@@ -820,71 +820,70 @@
 	push	r15
 
 	sub	rsp,128+24
-$L$mul_by_one_body::
+$L$mul_by_one_body:
 	mov	rbp,rdx
-	mov	QWORD PTR[128+rsp],rcx
+	mov	QWORD[128+rsp],rcx
 
-	mov	r8,QWORD PTR[rsi]
+	mov	r8,QWORD[rsi]
 	pxor	xmm0,xmm0
-	mov	r9,QWORD PTR[8+rsi]
-	mov	r10,QWORD PTR[16+rsi]
-	mov	r11,QWORD PTR[24+rsi]
-	mov	r12,QWORD PTR[32+rsi]
-	mov	r13,QWORD PTR[40+rsi]
-	mov	r14,QWORD PTR[48+rsi]
-	mov	r15,QWORD PTR[56+rsi]
+	mov	r9,QWORD[8+rsi]
+	mov	r10,QWORD[16+rsi]
+	mov	r11,QWORD[24+rsi]
+	mov	r12,QWORD[32+rsi]
+	mov	r13,QWORD[40+rsi]
+	mov	r14,QWORD[48+rsi]
+	mov	r15,QWORD[56+rsi]
 
-	movdqa	XMMWORD PTR[rsp],xmm0
-	movdqa	XMMWORD PTR[16+rsp],xmm0
-	movdqa	XMMWORD PTR[32+rsp],xmm0
-	movdqa	XMMWORD PTR[48+rsp],xmm0
-	movdqa	XMMWORD PTR[64+rsp],xmm0
-	movdqa	XMMWORD PTR[80+rsp],xmm0
-	movdqa	XMMWORD PTR[96+rsp],xmm0
+	movdqa	XMMWORD[rsp],xmm0
+	movdqa	XMMWORD[16+rsp],xmm0
+	movdqa	XMMWORD[32+rsp],xmm0
+	movdqa	XMMWORD[48+rsp],xmm0
+	movdqa	XMMWORD[64+rsp],xmm0
+	movdqa	XMMWORD[80+rsp],xmm0
+	movdqa	XMMWORD[96+rsp],xmm0
 	call	__rsaz_512_reduce
-	mov	QWORD PTR[rdi],r8
-	mov	QWORD PTR[8+rdi],r9
-	mov	QWORD PTR[16+rdi],r10
-	mov	QWORD PTR[24+rdi],r11
-	mov	QWORD PTR[32+rdi],r12
-	mov	QWORD PTR[40+rdi],r13
-	mov	QWORD PTR[48+rdi],r14
-	mov	QWORD PTR[56+rdi],r15
+	mov	QWORD[rdi],r8
+	mov	QWORD[8+rdi],r9
+	mov	QWORD[16+rdi],r10
+	mov	QWORD[24+rdi],r11
+	mov	QWORD[32+rdi],r12
+	mov	QWORD[40+rdi],r13
+	mov	QWORD[48+rdi],r14
+	mov	QWORD[56+rdi],r15
 
-	lea	rax,QWORD PTR[((128+24+48))+rsp]
-	mov	r15,QWORD PTR[((-48))+rax]
-	mov	r14,QWORD PTR[((-40))+rax]
-	mov	r13,QWORD PTR[((-32))+rax]
-	mov	r12,QWORD PTR[((-24))+rax]
-	mov	rbp,QWORD PTR[((-16))+rax]
-	mov	rbx,QWORD PTR[((-8))+rax]
-	lea	rsp,QWORD PTR[rax]
-$L$mul_by_one_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	lea	rax,[((128+24+48))+rsp]
+	mov	r15,QWORD[((-48))+rax]
+	mov	r14,QWORD[((-40))+rax]
+	mov	r13,QWORD[((-32))+rax]
+	mov	r12,QWORD[((-24))+rax]
+	mov	rbp,QWORD[((-16))+rax]
+	mov	rbx,QWORD[((-8))+rax]
+	lea	rsp,[rax]
+$L$mul_by_one_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_rsaz_512_mul_by_one::
-rsaz_512_mul_by_one	ENDP
+$L$SEH_end_rsaz_512_mul_by_one:
 
 ALIGN	32
-__rsaz_512_reduce	PROC PRIVATE
+__rsaz_512_reduce:
 	mov	rbx,r8
-	imul	rbx,QWORD PTR[((128+8))+rsp]
-	mov	rax,QWORD PTR[rbp]
+	imul	rbx,QWORD[((128+8))+rsp]
+	mov	rax,QWORD[rbp]
 	mov	ecx,8
-	jmp	$L$reduction_loop
+	jmp	NEAR $L$reduction_loop
 
 ALIGN	32
-$L$reduction_loop::
+$L$reduction_loop:
 	mul	rbx
-	mov	rax,QWORD PTR[8+rbp]
+	mov	rax,QWORD[8+rbp]
 	neg	r8
 	mov	r8,rdx
 	adc	r8,0
 
 	mul	rbx
 	add	r9,rax
-	mov	rax,QWORD PTR[16+rbp]
+	mov	rax,QWORD[16+rbp]
 	adc	rdx,0
 	add	r8,r9
 	mov	r9,rdx
@@ -892,7 +891,7 @@
 
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[24+rbp]
+	mov	rax,QWORD[24+rbp]
 	adc	rdx,0
 	add	r9,r10
 	mov	r10,rdx
@@ -900,10 +899,10 @@
 
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[32+rbp]
+	mov	rax,QWORD[32+rbp]
 	adc	rdx,0
 	add	r10,r11
-	mov	rsi,QWORD PTR[((128+8))+rsp]
+	mov	rsi,QWORD[((128+8))+rsp]
 
 
 	adc	rdx,0
@@ -911,7 +910,7 @@
 
 	mul	rbx
 	add	r12,rax
-	mov	rax,QWORD PTR[40+rbp]
+	mov	rax,QWORD[40+rbp]
 	adc	rdx,0
 	imul	rsi,r8
 	add	r11,r12
@@ -920,7 +919,7 @@
 
 	mul	rbx
 	add	r13,rax
-	mov	rax,QWORD PTR[48+rbp]
+	mov	rax,QWORD[48+rbp]
 	adc	rdx,0
 	add	r12,r13
 	mov	r13,rdx
@@ -928,7 +927,7 @@
 
 	mul	rbx
 	add	r14,rax
-	mov	rax,QWORD PTR[56+rbp]
+	mov	rax,QWORD[56+rbp]
 	adc	rdx,0
 	add	r13,r14
 	mov	r14,rdx
@@ -937,146 +936,146 @@
 	mul	rbx
 	mov	rbx,rsi
 	add	r15,rax
-	mov	rax,QWORD PTR[rbp]
+	mov	rax,QWORD[rbp]
 	adc	rdx,0
 	add	r14,r15
 	mov	r15,rdx
 	adc	r15,0
 
 	dec	ecx
-	jne	$L$reduction_loop
+	jne	NEAR $L$reduction_loop
 
 	DB	0F3h,0C3h		;repret
-__rsaz_512_reduce	ENDP
+
 
 ALIGN	32
-__rsaz_512_subtract	PROC PRIVATE
-	mov	QWORD PTR[rdi],r8
-	mov	QWORD PTR[8+rdi],r9
-	mov	QWORD PTR[16+rdi],r10
-	mov	QWORD PTR[24+rdi],r11
-	mov	QWORD PTR[32+rdi],r12
-	mov	QWORD PTR[40+rdi],r13
-	mov	QWORD PTR[48+rdi],r14
-	mov	QWORD PTR[56+rdi],r15
+__rsaz_512_subtract:
+	mov	QWORD[rdi],r8
+	mov	QWORD[8+rdi],r9
+	mov	QWORD[16+rdi],r10
+	mov	QWORD[24+rdi],r11
+	mov	QWORD[32+rdi],r12
+	mov	QWORD[40+rdi],r13
+	mov	QWORD[48+rdi],r14
+	mov	QWORD[56+rdi],r15
 
-	mov	r8,QWORD PTR[rbp]
-	mov	r9,QWORD PTR[8+rbp]
+	mov	r8,QWORD[rbp]
+	mov	r9,QWORD[8+rbp]
 	neg	r8
 	not	r9
 	and	r8,rcx
-	mov	r10,QWORD PTR[16+rbp]
+	mov	r10,QWORD[16+rbp]
 	and	r9,rcx
 	not	r10
-	mov	r11,QWORD PTR[24+rbp]
+	mov	r11,QWORD[24+rbp]
 	and	r10,rcx
 	not	r11
-	mov	r12,QWORD PTR[32+rbp]
+	mov	r12,QWORD[32+rbp]
 	and	r11,rcx
 	not	r12
-	mov	r13,QWORD PTR[40+rbp]
+	mov	r13,QWORD[40+rbp]
 	and	r12,rcx
 	not	r13
-	mov	r14,QWORD PTR[48+rbp]
+	mov	r14,QWORD[48+rbp]
 	and	r13,rcx
 	not	r14
-	mov	r15,QWORD PTR[56+rbp]
+	mov	r15,QWORD[56+rbp]
 	and	r14,rcx
 	not	r15
 	and	r15,rcx
 
-	add	r8,QWORD PTR[rdi]
-	adc	r9,QWORD PTR[8+rdi]
-	adc	r10,QWORD PTR[16+rdi]
-	adc	r11,QWORD PTR[24+rdi]
-	adc	r12,QWORD PTR[32+rdi]
-	adc	r13,QWORD PTR[40+rdi]
-	adc	r14,QWORD PTR[48+rdi]
-	adc	r15,QWORD PTR[56+rdi]
+	add	r8,QWORD[rdi]
+	adc	r9,QWORD[8+rdi]
+	adc	r10,QWORD[16+rdi]
+	adc	r11,QWORD[24+rdi]
+	adc	r12,QWORD[32+rdi]
+	adc	r13,QWORD[40+rdi]
+	adc	r14,QWORD[48+rdi]
+	adc	r15,QWORD[56+rdi]
 
-	mov	QWORD PTR[rdi],r8
-	mov	QWORD PTR[8+rdi],r9
-	mov	QWORD PTR[16+rdi],r10
-	mov	QWORD PTR[24+rdi],r11
-	mov	QWORD PTR[32+rdi],r12
-	mov	QWORD PTR[40+rdi],r13
-	mov	QWORD PTR[48+rdi],r14
-	mov	QWORD PTR[56+rdi],r15
+	mov	QWORD[rdi],r8
+	mov	QWORD[8+rdi],r9
+	mov	QWORD[16+rdi],r10
+	mov	QWORD[24+rdi],r11
+	mov	QWORD[32+rdi],r12
+	mov	QWORD[40+rdi],r13
+	mov	QWORD[48+rdi],r14
+	mov	QWORD[56+rdi],r15
 
 	DB	0F3h,0C3h		;repret
-__rsaz_512_subtract	ENDP
+
 
 ALIGN	32
-__rsaz_512_mul	PROC PRIVATE
-	lea	rdi,QWORD PTR[8+rsp]
+__rsaz_512_mul:
+	lea	rdi,[8+rsp]
 
-	mov	rax,QWORD PTR[rsi]
+	mov	rax,QWORD[rsi]
 	mul	rbx
-	mov	QWORD PTR[rdi],rax
-	mov	rax,QWORD PTR[8+rsi]
+	mov	QWORD[rdi],rax
+	mov	rax,QWORD[8+rsi]
 	mov	r8,rdx
 
 	mul	rbx
 	add	r8,rax
-	mov	rax,QWORD PTR[16+rsi]
+	mov	rax,QWORD[16+rsi]
 	mov	r9,rdx
 	adc	r9,0
 
 	mul	rbx
 	add	r9,rax
-	mov	rax,QWORD PTR[24+rsi]
+	mov	rax,QWORD[24+rsi]
 	mov	r10,rdx
 	adc	r10,0
 
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[32+rsi]
+	mov	rax,QWORD[32+rsi]
 	mov	r11,rdx
 	adc	r11,0
 
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[40+rsi]
+	mov	rax,QWORD[40+rsi]
 	mov	r12,rdx
 	adc	r12,0
 
 	mul	rbx
 	add	r12,rax
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	mov	r13,rdx
 	adc	r13,0
 
 	mul	rbx
 	add	r13,rax
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	mov	r14,rdx
 	adc	r14,0
 
 	mul	rbx
 	add	r14,rax
-	mov	rax,QWORD PTR[rsi]
+	mov	rax,QWORD[rsi]
 	mov	r15,rdx
 	adc	r15,0
 
-	lea	rbp,QWORD PTR[8+rbp]
-	lea	rdi,QWORD PTR[8+rdi]
+	lea	rbp,[8+rbp]
+	lea	rdi,[8+rdi]
 
 	mov	ecx,7
-	jmp	$L$oop_mul
+	jmp	NEAR $L$oop_mul
 
 ALIGN	32
-$L$oop_mul::
-	mov	rbx,QWORD PTR[rbp]
+$L$oop_mul:
+	mov	rbx,QWORD[rbp]
 	mul	rbx
 	add	r8,rax
-	mov	rax,QWORD PTR[8+rsi]
-	mov	QWORD PTR[rdi],r8
+	mov	rax,QWORD[8+rsi]
+	mov	QWORD[rdi],r8
 	mov	r8,rdx
 	adc	r8,0
 
 	mul	rbx
 	add	r9,rax
-	mov	rax,QWORD PTR[16+rsi]
+	mov	rax,QWORD[16+rsi]
 	adc	rdx,0
 	add	r8,r9
 	mov	r9,rdx
@@ -1084,7 +1083,7 @@
 
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[24+rsi]
+	mov	rax,QWORD[24+rsi]
 	adc	rdx,0
 	add	r9,r10
 	mov	r10,rdx
@@ -1092,7 +1091,7 @@
 
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[32+rsi]
+	mov	rax,QWORD[32+rsi]
 	adc	rdx,0
 	add	r10,r11
 	mov	r11,rdx
@@ -1100,7 +1099,7 @@
 
 	mul	rbx
 	add	r12,rax
-	mov	rax,QWORD PTR[40+rsi]
+	mov	rax,QWORD[40+rsi]
 	adc	rdx,0
 	add	r11,r12
 	mov	r12,rdx
@@ -1108,7 +1107,7 @@
 
 	mul	rbx
 	add	r13,rax
-	mov	rax,QWORD PTR[48+rsi]
+	mov	rax,QWORD[48+rsi]
 	adc	rdx,0
 	add	r12,r13
 	mov	r13,rdx
@@ -1116,81 +1115,81 @@
 
 	mul	rbx
 	add	r14,rax
-	mov	rax,QWORD PTR[56+rsi]
+	mov	rax,QWORD[56+rsi]
 	adc	rdx,0
 	add	r13,r14
 	mov	r14,rdx
-	lea	rbp,QWORD PTR[8+rbp]
+	lea	rbp,[8+rbp]
 	adc	r14,0
 
 	mul	rbx
 	add	r15,rax
-	mov	rax,QWORD PTR[rsi]
+	mov	rax,QWORD[rsi]
 	adc	rdx,0
 	add	r14,r15
 	mov	r15,rdx
 	adc	r15,0
 
-	lea	rdi,QWORD PTR[8+rdi]
+	lea	rdi,[8+rdi]
 
 	dec	ecx
-	jnz	$L$oop_mul
+	jnz	NEAR $L$oop_mul
 
-	mov	QWORD PTR[rdi],r8
-	mov	QWORD PTR[8+rdi],r9
-	mov	QWORD PTR[16+rdi],r10
-	mov	QWORD PTR[24+rdi],r11
-	mov	QWORD PTR[32+rdi],r12
-	mov	QWORD PTR[40+rdi],r13
-	mov	QWORD PTR[48+rdi],r14
-	mov	QWORD PTR[56+rdi],r15
+	mov	QWORD[rdi],r8
+	mov	QWORD[8+rdi],r9
+	mov	QWORD[16+rdi],r10
+	mov	QWORD[24+rdi],r11
+	mov	QWORD[32+rdi],r12
+	mov	QWORD[40+rdi],r13
+	mov	QWORD[48+rdi],r14
+	mov	QWORD[56+rdi],r15
 
 	DB	0F3h,0C3h		;repret
-__rsaz_512_mul	ENDP
-PUBLIC	rsaz_512_scatter4
+
+global	rsaz_512_scatter4
 
 ALIGN	16
-rsaz_512_scatter4	PROC PUBLIC
-	lea	rcx,QWORD PTR[r8*4+rcx]
+rsaz_512_scatter4:
+	lea	rcx,[r8*4+rcx]
 	mov	r9d,8
-	jmp	$L$oop_scatter
+	jmp	NEAR $L$oop_scatter
 ALIGN	16
-$L$oop_scatter::
-	mov	rax,QWORD PTR[rdx]
-	lea	rdx,QWORD PTR[8+rdx]
-	mov	DWORD PTR[rcx],eax
+$L$oop_scatter:
+	mov	rax,QWORD[rdx]
+	lea	rdx,[8+rdx]
+	mov	DWORD[rcx],eax
 	shr	rax,32
-	mov	DWORD PTR[64+rcx],eax
-	lea	rcx,QWORD PTR[128+rcx]
+	mov	DWORD[64+rcx],eax
+	lea	rcx,[128+rcx]
 	dec	r9d
-	jnz	$L$oop_scatter
+	jnz	NEAR $L$oop_scatter
 	DB	0F3h,0C3h		;repret
-rsaz_512_scatter4	ENDP
 
-PUBLIC	rsaz_512_gather4
+
+global	rsaz_512_gather4
 
 ALIGN	16
-rsaz_512_gather4	PROC PUBLIC
-	lea	rdx,QWORD PTR[r8*4+rdx]
+rsaz_512_gather4:
+	lea	rdx,[r8*4+rdx]
 	mov	r9d,8
-	jmp	$L$oop_gather
+	jmp	NEAR $L$oop_gather
 ALIGN	16
-$L$oop_gather::
-	mov	eax,DWORD PTR[rdx]
-	mov	r8d,DWORD PTR[64+rdx]
-	lea	rdx,QWORD PTR[128+rdx]
+$L$oop_gather:
+	mov	eax,DWORD[rdx]
+	mov	r8d,DWORD[64+rdx]
+	lea	rdx,[128+rdx]
 	shl	r8,32
 	or	rax,r8
-	mov	QWORD PTR[rcx],rax
-	lea	rcx,QWORD PTR[8+rcx]
+	mov	QWORD[rcx],rax
+	lea	rcx,[8+rcx]
 	dec	r9d
-	jnz	$L$oop_gather
+	jnz	NEAR $L$oop_gather
 	DB	0F3h,0C3h		;repret
-rsaz_512_gather4	ENDP
-EXTERN	__imp_RtlVirtualUnwind:NEAR
+
+EXTERN	__imp_RtlVirtualUnwind
 
 ALIGN	16
-se_handler	PROC PRIVATE
+se_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -1202,64 +1201,64 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[120+r8]
-	mov	rbx,QWORD PTR[248+r8]
+	mov	rax,QWORD[120+r8]
+	mov	rbx,QWORD[248+r8]
 
-	mov	rsi,QWORD PTR[8+r9]
-	mov	r11,QWORD PTR[56+r9]
+	mov	rsi,QWORD[8+r9]
+	mov	r11,QWORD[56+r9]
 
-	mov	r10d,DWORD PTR[r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jb	$L$common_seh_tail
+	jb	NEAR $L$common_seh_tail
 
-	mov	rax,QWORD PTR[152+r8]
+	mov	rax,QWORD[152+r8]
 
-	mov	r10d,DWORD PTR[4+r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[4+r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jae	$L$common_seh_tail
+	jae	NEAR $L$common_seh_tail
 
-	lea	rax,QWORD PTR[((128+24+48))+rax]
+	lea	rax,[((128+24+48))+rax]
 
-	mov	rbx,QWORD PTR[((-8))+rax]
-	mov	rbp,QWORD PTR[((-16))+rax]
-	mov	r12,QWORD PTR[((-24))+rax]
-	mov	r13,QWORD PTR[((-32))+rax]
-	mov	r14,QWORD PTR[((-40))+rax]
-	mov	r15,QWORD PTR[((-48))+rax]
-	mov	QWORD PTR[144+r8],rbx
-	mov	QWORD PTR[160+r8],rbp
-	mov	QWORD PTR[216+r8],r12
-	mov	QWORD PTR[224+r8],r13
-	mov	QWORD PTR[232+r8],r14
-	mov	QWORD PTR[240+r8],r15
+	mov	rbx,QWORD[((-8))+rax]
+	mov	rbp,QWORD[((-16))+rax]
+	mov	r12,QWORD[((-24))+rax]
+	mov	r13,QWORD[((-32))+rax]
+	mov	r14,QWORD[((-40))+rax]
+	mov	r15,QWORD[((-48))+rax]
+	mov	QWORD[144+r8],rbx
+	mov	QWORD[160+r8],rbp
+	mov	QWORD[216+r8],r12
+	mov	QWORD[224+r8],r13
+	mov	QWORD[232+r8],r14
+	mov	QWORD[240+r8],r15
 
-$L$common_seh_tail::
-	mov	rdi,QWORD PTR[8+rax]
-	mov	rsi,QWORD PTR[16+rax]
-	mov	QWORD PTR[152+r8],rax
-	mov	QWORD PTR[168+r8],rsi
-	mov	QWORD PTR[176+r8],rdi
+$L$common_seh_tail:
+	mov	rdi,QWORD[8+rax]
+	mov	rsi,QWORD[16+rax]
+	mov	QWORD[152+r8],rax
+	mov	QWORD[168+r8],rsi
+	mov	QWORD[176+r8],rdi
 
-	mov	rdi,QWORD PTR[40+r9]
+	mov	rdi,QWORD[40+r9]
 	mov	rsi,r8
 	mov	ecx,154
-	DD	0a548f3fch
+	DD	0xa548f3fc
 
 	mov	rsi,r9
 	xor	rcx,rcx
-	mov	rdx,QWORD PTR[8+rsi]
-	mov	r8,QWORD PTR[rsi]
-	mov	r9,QWORD PTR[16+rsi]
-	mov	r10,QWORD PTR[40+rsi]
-	lea	r11,QWORD PTR[56+rsi]
-	lea	r12,QWORD PTR[24+rsi]
-	mov	QWORD PTR[32+rsp],r10
-	mov	QWORD PTR[40+rsp],r11
-	mov	QWORD PTR[48+rsp],r12
-	mov	QWORD PTR[56+rsp],rcx
-	call	QWORD PTR[__imp_RtlVirtualUnwind]
+	mov	rdx,QWORD[8+rsi]
+	mov	r8,QWORD[rsi]
+	mov	r9,QWORD[16+rsi]
+	mov	r10,QWORD[40+rsi]
+	lea	r11,[56+rsi]
+	lea	r12,[24+rsi]
+	mov	QWORD[32+rsp],r10
+	mov	QWORD[40+rsp],r11
+	mov	QWORD[48+rsp],r12
+	mov	QWORD[56+rsp],rcx
+	call	QWORD[__imp_RtlVirtualUnwind]
 
 	mov	eax,1
 	add	rsp,64
@@ -1273,54 +1272,49 @@
 	pop	rdi
 	pop	rsi
 	DB	0F3h,0C3h		;repret
-se_handler	ENDP
 
-.text$	ENDS
-.pdata	SEGMENT READONLY ALIGN(4)
+
+section	.pdata rdata align=4
 ALIGN	4
-	DD	imagerel $L$SEH_begin_rsaz_512_sqr
-	DD	imagerel $L$SEH_end_rsaz_512_sqr
-	DD	imagerel $L$SEH_info_rsaz_512_sqr
+	DD	$L$SEH_begin_rsaz_512_sqr wrt ..imagebase
+	DD	$L$SEH_end_rsaz_512_sqr wrt ..imagebase
+	DD	$L$SEH_info_rsaz_512_sqr wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_rsaz_512_mul
-	DD	imagerel $L$SEH_end_rsaz_512_mul
-	DD	imagerel $L$SEH_info_rsaz_512_mul
+	DD	$L$SEH_begin_rsaz_512_mul wrt ..imagebase
+	DD	$L$SEH_end_rsaz_512_mul wrt ..imagebase
+	DD	$L$SEH_info_rsaz_512_mul wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_rsaz_512_mul_gather4
-	DD	imagerel $L$SEH_end_rsaz_512_mul_gather4
-	DD	imagerel $L$SEH_info_rsaz_512_mul_gather4
+	DD	$L$SEH_begin_rsaz_512_mul_gather4 wrt ..imagebase
+	DD	$L$SEH_end_rsaz_512_mul_gather4 wrt ..imagebase
+	DD	$L$SEH_info_rsaz_512_mul_gather4 wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_rsaz_512_mul_scatter4
-	DD	imagerel $L$SEH_end_rsaz_512_mul_scatter4
-	DD	imagerel $L$SEH_info_rsaz_512_mul_scatter4
+	DD	$L$SEH_begin_rsaz_512_mul_scatter4 wrt ..imagebase
+	DD	$L$SEH_end_rsaz_512_mul_scatter4 wrt ..imagebase
+	DD	$L$SEH_info_rsaz_512_mul_scatter4 wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_rsaz_512_mul_by_one
-	DD	imagerel $L$SEH_end_rsaz_512_mul_by_one
-	DD	imagerel $L$SEH_info_rsaz_512_mul_by_one
+	DD	$L$SEH_begin_rsaz_512_mul_by_one wrt ..imagebase
+	DD	$L$SEH_end_rsaz_512_mul_by_one wrt ..imagebase
+	DD	$L$SEH_info_rsaz_512_mul_by_one wrt ..imagebase
 
-.pdata	ENDS
-.xdata	SEGMENT READONLY ALIGN(8)
+section	.xdata rdata align=8
 ALIGN	8
-$L$SEH_info_rsaz_512_sqr::
+$L$SEH_info_rsaz_512_sqr:
 DB	9,0,0,0
-	DD	imagerel se_handler
-	DD	imagerel $L$sqr_body,imagerel $L$sqr_epilogue
-$L$SEH_info_rsaz_512_mul::
+	DD	se_handler wrt ..imagebase
+	DD	$L$sqr_body wrt ..imagebase,$L$sqr_epilogue wrt ..imagebase
+$L$SEH_info_rsaz_512_mul:
 DB	9,0,0,0
-	DD	imagerel se_handler
-	DD	imagerel $L$mul_body,imagerel $L$mul_epilogue
-$L$SEH_info_rsaz_512_mul_gather4::
+	DD	se_handler wrt ..imagebase
+	DD	$L$mul_body wrt ..imagebase,$L$mul_epilogue wrt ..imagebase
+$L$SEH_info_rsaz_512_mul_gather4:
 DB	9,0,0,0
-	DD	imagerel se_handler
-	DD	imagerel $L$mul_gather4_body,imagerel $L$mul_gather4_epilogue
-$L$SEH_info_rsaz_512_mul_scatter4::
+	DD	se_handler wrt ..imagebase
+	DD	$L$mul_gather4_body wrt ..imagebase,$L$mul_gather4_epilogue wrt ..imagebase
+$L$SEH_info_rsaz_512_mul_scatter4:
 DB	9,0,0,0
-	DD	imagerel se_handler
-	DD	imagerel $L$mul_scatter4_body,imagerel $L$mul_scatter4_epilogue
-$L$SEH_info_rsaz_512_mul_by_one::
+	DD	se_handler wrt ..imagebase
+	DD	$L$mul_scatter4_body wrt ..imagebase,$L$mul_scatter4_epilogue wrt ..imagebase
+$L$SEH_info_rsaz_512_mul_by_one:
 DB	9,0,0,0
-	DD	imagerel se_handler
-	DD	imagerel $L$mul_by_one_body,imagerel $L$mul_by_one_epilogue
-
-.xdata	ENDS
-END
+	DD	se_handler wrt ..imagebase
+	DD	$L$mul_by_one_body wrt ..imagebase,$L$mul_by_one_epilogue wrt ..imagebase
diff --git a/third_party/boringssl/win-x86_64/crypto/bn/x86_64-mont.asm b/third_party/boringssl/win-x86_64/crypto/bn/x86_64-mont.asm
index a409325..db0d1b9 100644
--- a/third_party/boringssl/win-x86_64/crypto/bn/x86_64-mont.asm
+++ b/third_party/boringssl/win-x86_64/crypto/bn/x86_64-mont.asm
@@ -1,36 +1,40 @@
-OPTION	DOTNAME
-.text$	SEGMENT ALIGN(256) 'CODE'
+default	rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section	.text code align=64
 
-EXTERN	OPENSSL_ia32cap_P:NEAR
 
-PUBLIC	bn_mul_mont
+EXTERN	OPENSSL_ia32cap_P
+
+global	bn_mul_mont
 
 ALIGN	16
-bn_mul_mont	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+bn_mul_mont:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_bn_mul_mont::
+$L$SEH_begin_bn_mul_mont:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 	mov	rcx,r9
-	mov	r8,QWORD PTR[40+rsp]
-	mov	r9,QWORD PTR[48+rsp]
+	mov	r8,QWORD[40+rsp]
+	mov	r9,QWORD[48+rsp]
 
 
 	test	r9d,3
-	jnz	$L$mul_enter
+	jnz	NEAR $L$mul_enter
 	cmp	r9d,8
-	jb	$L$mul_enter
+	jb	NEAR $L$mul_enter
 	cmp	rdx,rsi
-	jne	$L$mul4x_enter
+	jne	NEAR $L$mul4x_enter
 	test	r9d,7
-	jz	$L$sqr8x_enter
-	jmp	$L$mul4x_enter
+	jz	NEAR $L$sqr8x_enter
+	jmp	NEAR $L$mul4x_enter
 
 ALIGN	16
-$L$mul_enter::
+$L$mul_enter:
 	push	rbx
 	push	rbp
 	push	r12
@@ -39,18 +43,18 @@
 	push	r15
 
 	mov	r9d,r9d
-	lea	r10,QWORD PTR[2+r9]
+	lea	r10,[2+r9]
 	mov	r11,rsp
 	neg	r10
-	lea	rsp,QWORD PTR[r10*8+rsp]
+	lea	rsp,[r10*8+rsp]
 	and	rsp,-1024
 
-	mov	QWORD PTR[8+r9*8+rsp],r11
-$L$mul_body::
+	mov	QWORD[8+r9*8+rsp],r11
+$L$mul_body:
 	mov	r12,rdx
-	mov	r8,QWORD PTR[r8]
-	mov	rbx,QWORD PTR[r12]
-	mov	rax,QWORD PTR[rsi]
+	mov	r8,QWORD[r8]
+	mov	rbx,QWORD[r12]
+	mov	rax,QWORD[rsi]
 
 	xor	r14,r14
 	xor	r15,r15
@@ -58,69 +62,69 @@
 	mov	rbp,r8
 	mul	rbx
 	mov	r10,rax
-	mov	rax,QWORD PTR[rcx]
+	mov	rax,QWORD[rcx]
 
 	imul	rbp,r10
 	mov	r11,rdx
 
 	mul	rbp
 	add	r10,rax
-	mov	rax,QWORD PTR[8+rsi]
+	mov	rax,QWORD[8+rsi]
 	adc	rdx,0
 	mov	r13,rdx
 
-	lea	r15,QWORD PTR[1+r15]
-	jmp	$L$1st_enter
+	lea	r15,[1+r15]
+	jmp	NEAR $L$1st_enter
 
 ALIGN	16
-$L$1st::
+$L$1st:
 	add	r13,rax
-	mov	rax,QWORD PTR[r15*8+rsi]
+	mov	rax,QWORD[r15*8+rsi]
 	adc	rdx,0
 	add	r13,r11
 	mov	r11,r10
 	adc	rdx,0
-	mov	QWORD PTR[((-16))+r15*8+rsp],r13
+	mov	QWORD[((-16))+r15*8+rsp],r13
 	mov	r13,rdx
 
-$L$1st_enter::
+$L$1st_enter:
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[r15*8+rcx]
+	mov	rax,QWORD[r15*8+rcx]
 	adc	rdx,0
-	lea	r15,QWORD PTR[1+r15]
+	lea	r15,[1+r15]
 	mov	r10,rdx
 
 	mul	rbp
 	cmp	r15,r9
-	jne	$L$1st
+	jne	NEAR $L$1st
 
 	add	r13,rax
-	mov	rax,QWORD PTR[rsi]
+	mov	rax,QWORD[rsi]
 	adc	rdx,0
 	add	r13,r11
 	adc	rdx,0
-	mov	QWORD PTR[((-16))+r15*8+rsp],r13
+	mov	QWORD[((-16))+r15*8+rsp],r13
 	mov	r13,rdx
 	mov	r11,r10
 
 	xor	rdx,rdx
 	add	r13,r11
 	adc	rdx,0
-	mov	QWORD PTR[((-8))+r9*8+rsp],r13
-	mov	QWORD PTR[r9*8+rsp],rdx
+	mov	QWORD[((-8))+r9*8+rsp],r13
+	mov	QWORD[r9*8+rsp],rdx
 
-	lea	r14,QWORD PTR[1+r14]
-	jmp	$L$outer
+	lea	r14,[1+r14]
+	jmp	NEAR $L$outer
 ALIGN	16
-$L$outer::
-	mov	rbx,QWORD PTR[r14*8+r12]
+$L$outer:
+	mov	rbx,QWORD[r14*8+r12]
 	xor	r15,r15
 	mov	rbp,r8
-	mov	r10,QWORD PTR[rsp]
+	mov	r10,QWORD[rsp]
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[rcx]
+	mov	rax,QWORD[rcx]
 	adc	rdx,0
 
 	imul	rbp,r10
@@ -128,46 +132,46 @@
 
 	mul	rbp
 	add	r10,rax
-	mov	rax,QWORD PTR[8+rsi]
+	mov	rax,QWORD[8+rsi]
 	adc	rdx,0
-	mov	r10,QWORD PTR[8+rsp]
+	mov	r10,QWORD[8+rsp]
 	mov	r13,rdx
 
-	lea	r15,QWORD PTR[1+r15]
-	jmp	$L$inner_enter
+	lea	r15,[1+r15]
+	jmp	NEAR $L$inner_enter
 
 ALIGN	16
-$L$inner::
+$L$inner:
 	add	r13,rax
-	mov	rax,QWORD PTR[r15*8+rsi]
+	mov	rax,QWORD[r15*8+rsi]
 	adc	rdx,0
 	add	r13,r10
-	mov	r10,QWORD PTR[r15*8+rsp]
+	mov	r10,QWORD[r15*8+rsp]
 	adc	rdx,0
-	mov	QWORD PTR[((-16))+r15*8+rsp],r13
+	mov	QWORD[((-16))+r15*8+rsp],r13
 	mov	r13,rdx
 
-$L$inner_enter::
+$L$inner_enter:
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[r15*8+rcx]
+	mov	rax,QWORD[r15*8+rcx]
 	adc	rdx,0
 	add	r10,r11
 	mov	r11,rdx
 	adc	r11,0
-	lea	r15,QWORD PTR[1+r15]
+	lea	r15,[1+r15]
 
 	mul	rbp
 	cmp	r15,r9
-	jne	$L$inner
+	jne	NEAR $L$inner
 
 	add	r13,rax
-	mov	rax,QWORD PTR[rsi]
+	mov	rax,QWORD[rsi]
 	adc	rdx,0
 	add	r13,r10
-	mov	r10,QWORD PTR[r15*8+rsp]
+	mov	r10,QWORD[r15*8+rsp]
 	adc	rdx,0
-	mov	QWORD PTR[((-16))+r15*8+rsp],r13
+	mov	QWORD[((-16))+r15*8+rsp],r13
 	mov	r13,rdx
 
 	xor	rdx,rdx
@@ -175,73 +179,72 @@
 	adc	rdx,0
 	add	r13,r10
 	adc	rdx,0
-	mov	QWORD PTR[((-8))+r9*8+rsp],r13
-	mov	QWORD PTR[r9*8+rsp],rdx
+	mov	QWORD[((-8))+r9*8+rsp],r13
+	mov	QWORD[r9*8+rsp],rdx
 
-	lea	r14,QWORD PTR[1+r14]
+	lea	r14,[1+r14]
 	cmp	r14,r9
-	jb	$L$outer
+	jb	NEAR $L$outer
 
 	xor	r14,r14
-	mov	rax,QWORD PTR[rsp]
-	lea	rsi,QWORD PTR[rsp]
+	mov	rax,QWORD[rsp]
+	lea	rsi,[rsp]
 	mov	r15,r9
-	jmp	$L$sub
+	jmp	NEAR $L$sub
 ALIGN	16
-$L$sub::	sbb	rax,QWORD PTR[r14*8+rcx]
-	mov	QWORD PTR[r14*8+rdi],rax
-	mov	rax,QWORD PTR[8+r14*8+rsi]
-	lea	r14,QWORD PTR[1+r14]
+$L$sub:	sbb	rax,QWORD[r14*8+rcx]
+	mov	QWORD[r14*8+rdi],rax
+	mov	rax,QWORD[8+r14*8+rsi]
+	lea	r14,[1+r14]
 	dec	r15
-	jnz	$L$sub
+	jnz	NEAR $L$sub
 
 	sbb	rax,0
 	xor	r14,r14
 	mov	r15,r9
 ALIGN	16
-$L$copy::
-	mov	rsi,QWORD PTR[r14*8+rsp]
-	mov	rcx,QWORD PTR[r14*8+rdi]
+$L$copy:
+	mov	rsi,QWORD[r14*8+rsp]
+	mov	rcx,QWORD[r14*8+rdi]
 	xor	rsi,rcx
 	and	rsi,rax
 	xor	rsi,rcx
-	mov	QWORD PTR[r14*8+rsp],r14
-	mov	QWORD PTR[r14*8+rdi],rsi
-	lea	r14,QWORD PTR[1+r14]
+	mov	QWORD[r14*8+rsp],r14
+	mov	QWORD[r14*8+rdi],rsi
+	lea	r14,[1+r14]
 	sub	r15,1
-	jnz	$L$copy
+	jnz	NEAR $L$copy
 
-	mov	rsi,QWORD PTR[8+r9*8+rsp]
+	mov	rsi,QWORD[8+r9*8+rsp]
 	mov	rax,1
-	mov	r15,QWORD PTR[rsi]
-	mov	r14,QWORD PTR[8+rsi]
-	mov	r13,QWORD PTR[16+rsi]
-	mov	r12,QWORD PTR[24+rsi]
-	mov	rbp,QWORD PTR[32+rsi]
-	mov	rbx,QWORD PTR[40+rsi]
-	lea	rsp,QWORD PTR[48+rsi]
-$L$mul_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	mov	r15,QWORD[rsi]
+	mov	r14,QWORD[8+rsi]
+	mov	r13,QWORD[16+rsi]
+	mov	r12,QWORD[24+rsi]
+	mov	rbp,QWORD[32+rsi]
+	mov	rbx,QWORD[40+rsi]
+	lea	rsp,[48+rsi]
+$L$mul_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_bn_mul_mont::
-bn_mul_mont	ENDP
+$L$SEH_end_bn_mul_mont:
 
 ALIGN	16
-bn_mul4x_mont	PROC PRIVATE
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+bn_mul4x_mont:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_bn_mul4x_mont::
+$L$SEH_begin_bn_mul4x_mont:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 	mov	rcx,r9
-	mov	r8,QWORD PTR[40+rsp]
-	mov	r9,QWORD PTR[48+rsp]
+	mov	r8,QWORD[40+rsp]
+	mov	r9,QWORD[48+rsp]
 
 
-$L$mul4x_enter::
+$L$mul4x_enter:
 	push	rbx
 	push	rbp
 	push	r12
@@ -250,19 +253,19 @@
 	push	r15
 
 	mov	r9d,r9d
-	lea	r10,QWORD PTR[4+r9]
+	lea	r10,[4+r9]
 	mov	r11,rsp
 	neg	r10
-	lea	rsp,QWORD PTR[r10*8+rsp]
+	lea	rsp,[r10*8+rsp]
 	and	rsp,-1024
 
-	mov	QWORD PTR[8+r9*8+rsp],r11
-$L$mul4x_body::
-	mov	QWORD PTR[16+r9*8+rsp],rdi
+	mov	QWORD[8+r9*8+rsp],r11
+$L$mul4x_body:
+	mov	QWORD[16+r9*8+rsp],rdi
 	mov	r12,rdx
-	mov	r8,QWORD PTR[r8]
-	mov	rbx,QWORD PTR[r12]
-	mov	rax,QWORD PTR[rsi]
+	mov	r8,QWORD[r8]
+	mov	rbx,QWORD[r12]
+	mov	rax,QWORD[rsi]
 
 	xor	r14,r14
 	xor	r15,r15
@@ -270,144 +273,144 @@
 	mov	rbp,r8
 	mul	rbx
 	mov	r10,rax
-	mov	rax,QWORD PTR[rcx]
+	mov	rax,QWORD[rcx]
 
 	imul	rbp,r10
 	mov	r11,rdx
 
 	mul	rbp
 	add	r10,rax
-	mov	rax,QWORD PTR[8+rsi]
+	mov	rax,QWORD[8+rsi]
 	adc	rdx,0
 	mov	rdi,rdx
 
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[8+rcx]
+	mov	rax,QWORD[8+rcx]
 	adc	rdx,0
 	mov	r10,rdx
 
 	mul	rbp
 	add	rdi,rax
-	mov	rax,QWORD PTR[16+rsi]
+	mov	rax,QWORD[16+rsi]
 	adc	rdx,0
 	add	rdi,r11
-	lea	r15,QWORD PTR[4+r15]
+	lea	r15,[4+r15]
 	adc	rdx,0
-	mov	QWORD PTR[rsp],rdi
+	mov	QWORD[rsp],rdi
 	mov	r13,rdx
-	jmp	$L$1st4x
+	jmp	NEAR $L$1st4x
 ALIGN	16
-$L$1st4x::
+$L$1st4x:
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[((-16))+r15*8+rcx]
+	mov	rax,QWORD[((-16))+r15*8+rcx]
 	adc	rdx,0
 	mov	r11,rdx
 
 	mul	rbp
 	add	r13,rax
-	mov	rax,QWORD PTR[((-8))+r15*8+rsi]
+	mov	rax,QWORD[((-8))+r15*8+rsi]
 	adc	rdx,0
 	add	r13,r10
 	adc	rdx,0
-	mov	QWORD PTR[((-24))+r15*8+rsp],r13
+	mov	QWORD[((-24))+r15*8+rsp],r13
 	mov	rdi,rdx
 
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[((-8))+r15*8+rcx]
+	mov	rax,QWORD[((-8))+r15*8+rcx]
 	adc	rdx,0
 	mov	r10,rdx
 
 	mul	rbp
 	add	rdi,rax
-	mov	rax,QWORD PTR[r15*8+rsi]
+	mov	rax,QWORD[r15*8+rsi]
 	adc	rdx,0
 	add	rdi,r11
 	adc	rdx,0
-	mov	QWORD PTR[((-16))+r15*8+rsp],rdi
+	mov	QWORD[((-16))+r15*8+rsp],rdi
 	mov	r13,rdx
 
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[r15*8+rcx]
+	mov	rax,QWORD[r15*8+rcx]
 	adc	rdx,0
 	mov	r11,rdx
 
 	mul	rbp
 	add	r13,rax
-	mov	rax,QWORD PTR[8+r15*8+rsi]
+	mov	rax,QWORD[8+r15*8+rsi]
 	adc	rdx,0
 	add	r13,r10
 	adc	rdx,0
-	mov	QWORD PTR[((-8))+r15*8+rsp],r13
+	mov	QWORD[((-8))+r15*8+rsp],r13
 	mov	rdi,rdx
 
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[8+r15*8+rcx]
+	mov	rax,QWORD[8+r15*8+rcx]
 	adc	rdx,0
-	lea	r15,QWORD PTR[4+r15]
+	lea	r15,[4+r15]
 	mov	r10,rdx
 
 	mul	rbp
 	add	rdi,rax
-	mov	rax,QWORD PTR[((-16))+r15*8+rsi]
+	mov	rax,QWORD[((-16))+r15*8+rsi]
 	adc	rdx,0
 	add	rdi,r11
 	adc	rdx,0
-	mov	QWORD PTR[((-32))+r15*8+rsp],rdi
+	mov	QWORD[((-32))+r15*8+rsp],rdi
 	mov	r13,rdx
 	cmp	r15,r9
-	jb	$L$1st4x
+	jb	NEAR $L$1st4x
 
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[((-16))+r15*8+rcx]
+	mov	rax,QWORD[((-16))+r15*8+rcx]
 	adc	rdx,0
 	mov	r11,rdx
 
 	mul	rbp
 	add	r13,rax
-	mov	rax,QWORD PTR[((-8))+r15*8+rsi]
+	mov	rax,QWORD[((-8))+r15*8+rsi]
 	adc	rdx,0
 	add	r13,r10
 	adc	rdx,0
-	mov	QWORD PTR[((-24))+r15*8+rsp],r13
+	mov	QWORD[((-24))+r15*8+rsp],r13
 	mov	rdi,rdx
 
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[((-8))+r15*8+rcx]
+	mov	rax,QWORD[((-8))+r15*8+rcx]
 	adc	rdx,0
 	mov	r10,rdx
 
 	mul	rbp
 	add	rdi,rax
-	mov	rax,QWORD PTR[rsi]
+	mov	rax,QWORD[rsi]
 	adc	rdx,0
 	add	rdi,r11
 	adc	rdx,0
-	mov	QWORD PTR[((-16))+r15*8+rsp],rdi
+	mov	QWORD[((-16))+r15*8+rsp],rdi
 	mov	r13,rdx
 
 	xor	rdi,rdi
 	add	r13,r10
 	adc	rdi,0
-	mov	QWORD PTR[((-8))+r15*8+rsp],r13
-	mov	QWORD PTR[r15*8+rsp],rdi
+	mov	QWORD[((-8))+r15*8+rsp],r13
+	mov	QWORD[r15*8+rsp],rdi
 
-	lea	r14,QWORD PTR[1+r14]
+	lea	r14,[1+r14]
 ALIGN	4
-$L$outer4x::
-	mov	rbx,QWORD PTR[r14*8+r12]
+$L$outer4x:
+	mov	rbx,QWORD[r14*8+r12]
 	xor	r15,r15
-	mov	r10,QWORD PTR[rsp]
+	mov	r10,QWORD[rsp]
 	mov	rbp,r8
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[rcx]
+	mov	rax,QWORD[rcx]
 	adc	rdx,0
 
 	imul	rbp,r10
@@ -415,248 +418,247 @@
 
 	mul	rbp
 	add	r10,rax
-	mov	rax,QWORD PTR[8+rsi]
+	mov	rax,QWORD[8+rsi]
 	adc	rdx,0
 	mov	rdi,rdx
 
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[8+rcx]
+	mov	rax,QWORD[8+rcx]
 	adc	rdx,0
-	add	r11,QWORD PTR[8+rsp]
+	add	r11,QWORD[8+rsp]
 	adc	rdx,0
 	mov	r10,rdx
 
 	mul	rbp
 	add	rdi,rax
-	mov	rax,QWORD PTR[16+rsi]
+	mov	rax,QWORD[16+rsi]
 	adc	rdx,0
 	add	rdi,r11
-	lea	r15,QWORD PTR[4+r15]
+	lea	r15,[4+r15]
 	adc	rdx,0
-	mov	QWORD PTR[rsp],rdi
+	mov	QWORD[rsp],rdi
 	mov	r13,rdx
-	jmp	$L$inner4x
+	jmp	NEAR $L$inner4x
 ALIGN	16
-$L$inner4x::
+$L$inner4x:
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[((-16))+r15*8+rcx]
+	mov	rax,QWORD[((-16))+r15*8+rcx]
 	adc	rdx,0
-	add	r10,QWORD PTR[((-16))+r15*8+rsp]
+	add	r10,QWORD[((-16))+r15*8+rsp]
 	adc	rdx,0
 	mov	r11,rdx
 
 	mul	rbp
 	add	r13,rax
-	mov	rax,QWORD PTR[((-8))+r15*8+rsi]
+	mov	rax,QWORD[((-8))+r15*8+rsi]
 	adc	rdx,0
 	add	r13,r10
 	adc	rdx,0
-	mov	QWORD PTR[((-24))+r15*8+rsp],r13
+	mov	QWORD[((-24))+r15*8+rsp],r13
 	mov	rdi,rdx
 
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[((-8))+r15*8+rcx]
+	mov	rax,QWORD[((-8))+r15*8+rcx]
 	adc	rdx,0
-	add	r11,QWORD PTR[((-8))+r15*8+rsp]
+	add	r11,QWORD[((-8))+r15*8+rsp]
 	adc	rdx,0
 	mov	r10,rdx
 
 	mul	rbp
 	add	rdi,rax
-	mov	rax,QWORD PTR[r15*8+rsi]
+	mov	rax,QWORD[r15*8+rsi]
 	adc	rdx,0
 	add	rdi,r11
 	adc	rdx,0
-	mov	QWORD PTR[((-16))+r15*8+rsp],rdi
+	mov	QWORD[((-16))+r15*8+rsp],rdi
 	mov	r13,rdx
 
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[r15*8+rcx]
+	mov	rax,QWORD[r15*8+rcx]
 	adc	rdx,0
-	add	r10,QWORD PTR[r15*8+rsp]
+	add	r10,QWORD[r15*8+rsp]
 	adc	rdx,0
 	mov	r11,rdx
 
 	mul	rbp
 	add	r13,rax
-	mov	rax,QWORD PTR[8+r15*8+rsi]
+	mov	rax,QWORD[8+r15*8+rsi]
 	adc	rdx,0
 	add	r13,r10
 	adc	rdx,0
-	mov	QWORD PTR[((-8))+r15*8+rsp],r13
+	mov	QWORD[((-8))+r15*8+rsp],r13
 	mov	rdi,rdx
 
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[8+r15*8+rcx]
+	mov	rax,QWORD[8+r15*8+rcx]
 	adc	rdx,0
-	add	r11,QWORD PTR[8+r15*8+rsp]
+	add	r11,QWORD[8+r15*8+rsp]
 	adc	rdx,0
-	lea	r15,QWORD PTR[4+r15]
+	lea	r15,[4+r15]
 	mov	r10,rdx
 
 	mul	rbp
 	add	rdi,rax
-	mov	rax,QWORD PTR[((-16))+r15*8+rsi]
+	mov	rax,QWORD[((-16))+r15*8+rsi]
 	adc	rdx,0
 	add	rdi,r11
 	adc	rdx,0
-	mov	QWORD PTR[((-32))+r15*8+rsp],rdi
+	mov	QWORD[((-32))+r15*8+rsp],rdi
 	mov	r13,rdx
 	cmp	r15,r9
-	jb	$L$inner4x
+	jb	NEAR $L$inner4x
 
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[((-16))+r15*8+rcx]
+	mov	rax,QWORD[((-16))+r15*8+rcx]
 	adc	rdx,0
-	add	r10,QWORD PTR[((-16))+r15*8+rsp]
+	add	r10,QWORD[((-16))+r15*8+rsp]
 	adc	rdx,0
 	mov	r11,rdx
 
 	mul	rbp
 	add	r13,rax
-	mov	rax,QWORD PTR[((-8))+r15*8+rsi]
+	mov	rax,QWORD[((-8))+r15*8+rsi]
 	adc	rdx,0
 	add	r13,r10
 	adc	rdx,0
-	mov	QWORD PTR[((-24))+r15*8+rsp],r13
+	mov	QWORD[((-24))+r15*8+rsp],r13
 	mov	rdi,rdx
 
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[((-8))+r15*8+rcx]
+	mov	rax,QWORD[((-8))+r15*8+rcx]
 	adc	rdx,0
-	add	r11,QWORD PTR[((-8))+r15*8+rsp]
+	add	r11,QWORD[((-8))+r15*8+rsp]
 	adc	rdx,0
-	lea	r14,QWORD PTR[1+r14]
+	lea	r14,[1+r14]
 	mov	r10,rdx
 
 	mul	rbp
 	add	rdi,rax
-	mov	rax,QWORD PTR[rsi]
+	mov	rax,QWORD[rsi]
 	adc	rdx,0
 	add	rdi,r11
 	adc	rdx,0
-	mov	QWORD PTR[((-16))+r15*8+rsp],rdi
+	mov	QWORD[((-16))+r15*8+rsp],rdi
 	mov	r13,rdx
 
 	xor	rdi,rdi
 	add	r13,r10
 	adc	rdi,0
-	add	r13,QWORD PTR[r9*8+rsp]
+	add	r13,QWORD[r9*8+rsp]
 	adc	rdi,0
-	mov	QWORD PTR[((-8))+r15*8+rsp],r13
-	mov	QWORD PTR[r15*8+rsp],rdi
+	mov	QWORD[((-8))+r15*8+rsp],r13
+	mov	QWORD[r15*8+rsp],rdi
 
 	cmp	r14,r9
-	jb	$L$outer4x
-	mov	rdi,QWORD PTR[16+r9*8+rsp]
-	mov	rax,QWORD PTR[rsp]
-	mov	rdx,QWORD PTR[8+rsp]
+	jb	NEAR $L$outer4x
+	mov	rdi,QWORD[16+r9*8+rsp]
+	mov	rax,QWORD[rsp]
+	mov	rdx,QWORD[8+rsp]
 	shr	r9,2
-	lea	rsi,QWORD PTR[rsp]
+	lea	rsi,[rsp]
 	xor	r14,r14
 
-	sub	rax,QWORD PTR[rcx]
-	mov	rbx,QWORD PTR[16+rsi]
-	mov	rbp,QWORD PTR[24+rsi]
-	sbb	rdx,QWORD PTR[8+rcx]
-	lea	r15,QWORD PTR[((-1))+r9]
-	jmp	$L$sub4x
+	sub	rax,QWORD[rcx]
+	mov	rbx,QWORD[16+rsi]
+	mov	rbp,QWORD[24+rsi]
+	sbb	rdx,QWORD[8+rcx]
+	lea	r15,[((-1))+r9]
+	jmp	NEAR $L$sub4x
 ALIGN	16
-$L$sub4x::
-	mov	QWORD PTR[r14*8+rdi],rax
-	mov	QWORD PTR[8+r14*8+rdi],rdx
-	sbb	rbx,QWORD PTR[16+r14*8+rcx]
-	mov	rax,QWORD PTR[32+r14*8+rsi]
-	mov	rdx,QWORD PTR[40+r14*8+rsi]
-	sbb	rbp,QWORD PTR[24+r14*8+rcx]
-	mov	QWORD PTR[16+r14*8+rdi],rbx
-	mov	QWORD PTR[24+r14*8+rdi],rbp
-	sbb	rax,QWORD PTR[32+r14*8+rcx]
-	mov	rbx,QWORD PTR[48+r14*8+rsi]
-	mov	rbp,QWORD PTR[56+r14*8+rsi]
-	sbb	rdx,QWORD PTR[40+r14*8+rcx]
-	lea	r14,QWORD PTR[4+r14]
+$L$sub4x:
+	mov	QWORD[r14*8+rdi],rax
+	mov	QWORD[8+r14*8+rdi],rdx
+	sbb	rbx,QWORD[16+r14*8+rcx]
+	mov	rax,QWORD[32+r14*8+rsi]
+	mov	rdx,QWORD[40+r14*8+rsi]
+	sbb	rbp,QWORD[24+r14*8+rcx]
+	mov	QWORD[16+r14*8+rdi],rbx
+	mov	QWORD[24+r14*8+rdi],rbp
+	sbb	rax,QWORD[32+r14*8+rcx]
+	mov	rbx,QWORD[48+r14*8+rsi]
+	mov	rbp,QWORD[56+r14*8+rsi]
+	sbb	rdx,QWORD[40+r14*8+rcx]
+	lea	r14,[4+r14]
 	dec	r15
-	jnz	$L$sub4x
+	jnz	NEAR $L$sub4x
 
-	mov	QWORD PTR[r14*8+rdi],rax
-	mov	rax,QWORD PTR[32+r14*8+rsi]
-	sbb	rbx,QWORD PTR[16+r14*8+rcx]
-	mov	QWORD PTR[8+r14*8+rdi],rdx
-	sbb	rbp,QWORD PTR[24+r14*8+rcx]
-	mov	QWORD PTR[16+r14*8+rdi],rbx
+	mov	QWORD[r14*8+rdi],rax
+	mov	rax,QWORD[32+r14*8+rsi]
+	sbb	rbx,QWORD[16+r14*8+rcx]
+	mov	QWORD[8+r14*8+rdi],rdx
+	sbb	rbp,QWORD[24+r14*8+rcx]
+	mov	QWORD[16+r14*8+rdi],rbx
 
 	sbb	rax,0
 DB 66h, 48h, 0fh, 6eh, 0c0h
 	punpcklqdq	xmm0,xmm0
-	mov	QWORD PTR[24+r14*8+rdi],rbp
+	mov	QWORD[24+r14*8+rdi],rbp
 	xor	r14,r14
 
 	mov	r15,r9
 	pxor	xmm5,xmm5
-	jmp	$L$copy4x
+	jmp	NEAR $L$copy4x
 ALIGN	16
-$L$copy4x::
-	movdqu	xmm2,XMMWORD PTR[r14*1+rsp]
-	movdqu	xmm4,XMMWORD PTR[16+r14*1+rsp]
-	movdqu	xmm1,XMMWORD PTR[r14*1+rdi]
-	movdqu	xmm3,XMMWORD PTR[16+r14*1+rdi]
+$L$copy4x:
+	movdqu	xmm2,XMMWORD[r14*1+rsp]
+	movdqu	xmm4,XMMWORD[16+r14*1+rsp]
+	movdqu	xmm1,XMMWORD[r14*1+rdi]
+	movdqu	xmm3,XMMWORD[16+r14*1+rdi]
 	pxor	xmm2,xmm1
 	pxor	xmm4,xmm3
 	pand	xmm2,xmm0
 	pand	xmm4,xmm0
 	pxor	xmm2,xmm1
 	pxor	xmm4,xmm3
-	movdqu	XMMWORD PTR[r14*1+rdi],xmm2
-	movdqu	XMMWORD PTR[16+r14*1+rdi],xmm4
-	movdqa	XMMWORD PTR[r14*1+rsp],xmm5
-	movdqa	XMMWORD PTR[16+r14*1+rsp],xmm5
+	movdqu	XMMWORD[r14*1+rdi],xmm2
+	movdqu	XMMWORD[16+r14*1+rdi],xmm4
+	movdqa	XMMWORD[r14*1+rsp],xmm5
+	movdqa	XMMWORD[16+r14*1+rsp],xmm5
 
-	lea	r14,QWORD PTR[32+r14]
+	lea	r14,[32+r14]
 	dec	r15
-	jnz	$L$copy4x
+	jnz	NEAR $L$copy4x
 
 	shl	r9,2
-	mov	rsi,QWORD PTR[8+r9*8+rsp]
+	mov	rsi,QWORD[8+r9*8+rsp]
 	mov	rax,1
-	mov	r15,QWORD PTR[rsi]
-	mov	r14,QWORD PTR[8+rsi]
-	mov	r13,QWORD PTR[16+rsi]
-	mov	r12,QWORD PTR[24+rsi]
-	mov	rbp,QWORD PTR[32+rsi]
-	mov	rbx,QWORD PTR[40+rsi]
-	lea	rsp,QWORD PTR[48+rsi]
-$L$mul4x_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	mov	r15,QWORD[rsi]
+	mov	r14,QWORD[8+rsi]
+	mov	r13,QWORD[16+rsi]
+	mov	r12,QWORD[24+rsi]
+	mov	rbp,QWORD[32+rsi]
+	mov	rbx,QWORD[40+rsi]
+	lea	rsp,[48+rsi]
+$L$mul4x_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_bn_mul4x_mont::
-bn_mul4x_mont	ENDP
-EXTERN	bn_sqr8x_internal:NEAR
+$L$SEH_end_bn_mul4x_mont:
+EXTERN	bn_sqr8x_internal
 
 
 ALIGN	32
-bn_sqr8x_mont	PROC PRIVATE
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+bn_sqr8x_mont:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_bn_sqr8x_mont::
+$L$SEH_begin_bn_sqr8x_mont:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 	mov	rcx,r9
-	mov	r8,QWORD PTR[40+rsp]
-	mov	r9,QWORD PTR[48+rsp]
+	mov	r8,QWORD[40+rsp]
+	mov	r9,QWORD[48+rsp]
 
 
-$L$sqr8x_enter::
+$L$sqr8x_enter:
 	mov	rax,rsp
 	push	rbx
 	push	rbp
@@ -675,54 +677,54 @@
 
 
 
-	lea	r11,QWORD PTR[((-64))+r9*4+rsp]
-	mov	r8,QWORD PTR[r8]
+	lea	r11,[((-64))+r9*4+rsp]
+	mov	r8,QWORD[r8]
 	sub	r11,rsi
 	and	r11,4095
 	cmp	r10,r11
-	jb	$L$sqr8x_sp_alt
+	jb	NEAR $L$sqr8x_sp_alt
 	sub	rsp,r11
-	lea	rsp,QWORD PTR[((-64))+r9*4+rsp]
-	jmp	$L$sqr8x_sp_done
+	lea	rsp,[((-64))+r9*4+rsp]
+	jmp	NEAR $L$sqr8x_sp_done
 
 ALIGN	32
-$L$sqr8x_sp_alt::
-	lea	r10,QWORD PTR[((4096-64))+r9*4]
-	lea	rsp,QWORD PTR[((-64))+r9*4+rsp]
+$L$sqr8x_sp_alt:
+	lea	r10,[((4096-64))+r9*4]
+	lea	rsp,[((-64))+r9*4+rsp]
 	sub	r11,r10
 	mov	r10,0
 	cmovc	r11,r10
 	sub	rsp,r11
-$L$sqr8x_sp_done::
+$L$sqr8x_sp_done:
 	and	rsp,-64
 	mov	r10,r9
 	neg	r9
 
-	lea	r11,QWORD PTR[64+r9*2+rsp]
-	mov	QWORD PTR[32+rsp],r8
-	mov	QWORD PTR[40+rsp],rax
-$L$sqr8x_body::
+	lea	r11,[64+r9*2+rsp]
+	mov	QWORD[32+rsp],r8
+	mov	QWORD[40+rsp],rax
+$L$sqr8x_body:
 
 	mov	rbp,r9
 DB	102,73,15,110,211
 	shr	rbp,3+2
-	mov	eax,DWORD PTR[((OPENSSL_ia32cap_P+8))]
-	jmp	$L$sqr8x_copy_n
+	mov	eax,DWORD[((OPENSSL_ia32cap_P+8))]
+	jmp	NEAR $L$sqr8x_copy_n
 
 ALIGN	32
-$L$sqr8x_copy_n::
-	movq	xmm0,QWORD PTR[rcx]
-	movq	xmm1,QWORD PTR[8+rcx]
-	movq	xmm3,QWORD PTR[16+rcx]
-	movq	xmm4,QWORD PTR[24+rcx]
-	lea	rcx,QWORD PTR[32+rcx]
-	movdqa	XMMWORD PTR[r11],xmm0
-	movdqa	XMMWORD PTR[16+r11],xmm1
-	movdqa	XMMWORD PTR[32+r11],xmm3
-	movdqa	XMMWORD PTR[48+r11],xmm4
-	lea	r11,QWORD PTR[64+r11]
+$L$sqr8x_copy_n:
+	movq	xmm0,QWORD[rcx]
+	movq	xmm1,QWORD[8+rcx]
+	movq	xmm3,QWORD[16+rcx]
+	movq	xmm4,QWORD[24+rcx]
+	lea	rcx,[32+rcx]
+	movdqa	XMMWORD[r11],xmm0
+	movdqa	XMMWORD[16+r11],xmm1
+	movdqa	XMMWORD[32+r11],xmm3
+	movdqa	XMMWORD[48+r11],xmm4
+	lea	r11,[64+r11]
 	dec	rbp
-	jnz	$L$sqr8x_copy_n
+	jnz	NEAR $L$sqr8x_copy_n
 
 	pxor	xmm0,xmm0
 DB	102,72,15,110,207
@@ -730,51 +732,50 @@
 	call	bn_sqr8x_internal
 
 	pxor	xmm0,xmm0
-	lea	rax,QWORD PTR[48+rsp]
-	lea	rdx,QWORD PTR[64+r9*2+rsp]
+	lea	rax,[48+rsp]
+	lea	rdx,[64+r9*2+rsp]
 	shr	r9,3+2
-	mov	rsi,QWORD PTR[40+rsp]
-	jmp	$L$sqr8x_zero
+	mov	rsi,QWORD[40+rsp]
+	jmp	NEAR $L$sqr8x_zero
 
 ALIGN	32
-$L$sqr8x_zero::
-	movdqa	XMMWORD PTR[rax],xmm0
-	movdqa	XMMWORD PTR[16+rax],xmm0
-	movdqa	XMMWORD PTR[32+rax],xmm0
-	movdqa	XMMWORD PTR[48+rax],xmm0
-	lea	rax,QWORD PTR[64+rax]
-	movdqa	XMMWORD PTR[rdx],xmm0
-	movdqa	XMMWORD PTR[16+rdx],xmm0
-	movdqa	XMMWORD PTR[32+rdx],xmm0
-	movdqa	XMMWORD PTR[48+rdx],xmm0
-	lea	rdx,QWORD PTR[64+rdx]
+$L$sqr8x_zero:
+	movdqa	XMMWORD[rax],xmm0
+	movdqa	XMMWORD[16+rax],xmm0
+	movdqa	XMMWORD[32+rax],xmm0
+	movdqa	XMMWORD[48+rax],xmm0
+	lea	rax,[64+rax]
+	movdqa	XMMWORD[rdx],xmm0
+	movdqa	XMMWORD[16+rdx],xmm0
+	movdqa	XMMWORD[32+rdx],xmm0
+	movdqa	XMMWORD[48+rdx],xmm0
+	lea	rdx,[64+rdx]
 	dec	r9
-	jnz	$L$sqr8x_zero
+	jnz	NEAR $L$sqr8x_zero
 
 	mov	rax,1
-	mov	r15,QWORD PTR[((-48))+rsi]
-	mov	r14,QWORD PTR[((-40))+rsi]
-	mov	r13,QWORD PTR[((-32))+rsi]
-	mov	r12,QWORD PTR[((-24))+rsi]
-	mov	rbp,QWORD PTR[((-16))+rsi]
-	mov	rbx,QWORD PTR[((-8))+rsi]
-	lea	rsp,QWORD PTR[rsi]
-$L$sqr8x_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	mov	r15,QWORD[((-48))+rsi]
+	mov	r14,QWORD[((-40))+rsi]
+	mov	r13,QWORD[((-32))+rsi]
+	mov	r12,QWORD[((-24))+rsi]
+	mov	rbp,QWORD[((-16))+rsi]
+	mov	rbx,QWORD[((-8))+rsi]
+	lea	rsp,[rsi]
+$L$sqr8x_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_bn_sqr8x_mont::
-bn_sqr8x_mont	ENDP
+$L$SEH_end_bn_sqr8x_mont:
 DB	77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105
 DB	112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56
 DB	54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83
 DB	32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
 DB	115,108,46,111,114,103,62,0
 ALIGN	16
-EXTERN	__imp_RtlVirtualUnwind:NEAR
+EXTERN	__imp_RtlVirtualUnwind
 
 ALIGN	16
-mul_handler	PROC PRIVATE
+mul_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -786,47 +787,47 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[120+r8]
-	mov	rbx,QWORD PTR[248+r8]
+	mov	rax,QWORD[120+r8]
+	mov	rbx,QWORD[248+r8]
 
-	mov	rsi,QWORD PTR[8+r9]
-	mov	r11,QWORD PTR[56+r9]
+	mov	rsi,QWORD[8+r9]
+	mov	r11,QWORD[56+r9]
 
-	mov	r10d,DWORD PTR[r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jb	$L$common_seh_tail
+	jb	NEAR $L$common_seh_tail
 
-	mov	rax,QWORD PTR[152+r8]
+	mov	rax,QWORD[152+r8]
 
-	mov	r10d,DWORD PTR[4+r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[4+r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jae	$L$common_seh_tail
+	jae	NEAR $L$common_seh_tail
 
-	mov	r10,QWORD PTR[192+r8]
-	mov	rax,QWORD PTR[8+r10*8+rax]
-	lea	rax,QWORD PTR[48+rax]
+	mov	r10,QWORD[192+r8]
+	mov	rax,QWORD[8+r10*8+rax]
+	lea	rax,[48+rax]
 
-	mov	rbx,QWORD PTR[((-8))+rax]
-	mov	rbp,QWORD PTR[((-16))+rax]
-	mov	r12,QWORD PTR[((-24))+rax]
-	mov	r13,QWORD PTR[((-32))+rax]
-	mov	r14,QWORD PTR[((-40))+rax]
-	mov	r15,QWORD PTR[((-48))+rax]
-	mov	QWORD PTR[144+r8],rbx
-	mov	QWORD PTR[160+r8],rbp
-	mov	QWORD PTR[216+r8],r12
-	mov	QWORD PTR[224+r8],r13
-	mov	QWORD PTR[232+r8],r14
-	mov	QWORD PTR[240+r8],r15
+	mov	rbx,QWORD[((-8))+rax]
+	mov	rbp,QWORD[((-16))+rax]
+	mov	r12,QWORD[((-24))+rax]
+	mov	r13,QWORD[((-32))+rax]
+	mov	r14,QWORD[((-40))+rax]
+	mov	r15,QWORD[((-48))+rax]
+	mov	QWORD[144+r8],rbx
+	mov	QWORD[160+r8],rbp
+	mov	QWORD[216+r8],r12
+	mov	QWORD[224+r8],r13
+	mov	QWORD[232+r8],r14
+	mov	QWORD[240+r8],r15
 
-	jmp	$L$common_seh_tail
-mul_handler	ENDP
+	jmp	NEAR $L$common_seh_tail
+
 
 
 ALIGN	16
-sqr_handler	PROC PRIVATE
+sqr_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -838,64 +839,64 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[120+r8]
-	mov	rbx,QWORD PTR[248+r8]
+	mov	rax,QWORD[120+r8]
+	mov	rbx,QWORD[248+r8]
 
-	mov	rsi,QWORD PTR[8+r9]
-	mov	r11,QWORD PTR[56+r9]
+	mov	rsi,QWORD[8+r9]
+	mov	r11,QWORD[56+r9]
 
-	mov	r10d,DWORD PTR[r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jb	$L$common_seh_tail
+	jb	NEAR $L$common_seh_tail
 
-	mov	rax,QWORD PTR[152+r8]
+	mov	rax,QWORD[152+r8]
 
-	mov	r10d,DWORD PTR[4+r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[4+r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jae	$L$common_seh_tail
+	jae	NEAR $L$common_seh_tail
 
-	mov	rax,QWORD PTR[40+rax]
+	mov	rax,QWORD[40+rax]
 
-	mov	rbx,QWORD PTR[((-8))+rax]
-	mov	rbp,QWORD PTR[((-16))+rax]
-	mov	r12,QWORD PTR[((-24))+rax]
-	mov	r13,QWORD PTR[((-32))+rax]
-	mov	r14,QWORD PTR[((-40))+rax]
-	mov	r15,QWORD PTR[((-48))+rax]
-	mov	QWORD PTR[144+r8],rbx
-	mov	QWORD PTR[160+r8],rbp
-	mov	QWORD PTR[216+r8],r12
-	mov	QWORD PTR[224+r8],r13
-	mov	QWORD PTR[232+r8],r14
-	mov	QWORD PTR[240+r8],r15
+	mov	rbx,QWORD[((-8))+rax]
+	mov	rbp,QWORD[((-16))+rax]
+	mov	r12,QWORD[((-24))+rax]
+	mov	r13,QWORD[((-32))+rax]
+	mov	r14,QWORD[((-40))+rax]
+	mov	r15,QWORD[((-48))+rax]
+	mov	QWORD[144+r8],rbx
+	mov	QWORD[160+r8],rbp
+	mov	QWORD[216+r8],r12
+	mov	QWORD[224+r8],r13
+	mov	QWORD[232+r8],r14
+	mov	QWORD[240+r8],r15
 
-$L$common_seh_tail::
-	mov	rdi,QWORD PTR[8+rax]
-	mov	rsi,QWORD PTR[16+rax]
-	mov	QWORD PTR[152+r8],rax
-	mov	QWORD PTR[168+r8],rsi
-	mov	QWORD PTR[176+r8],rdi
+$L$common_seh_tail:
+	mov	rdi,QWORD[8+rax]
+	mov	rsi,QWORD[16+rax]
+	mov	QWORD[152+r8],rax
+	mov	QWORD[168+r8],rsi
+	mov	QWORD[176+r8],rdi
 
-	mov	rdi,QWORD PTR[40+r9]
+	mov	rdi,QWORD[40+r9]
 	mov	rsi,r8
 	mov	ecx,154
-	DD	0a548f3fch
+	DD	0xa548f3fc
 
 	mov	rsi,r9
 	xor	rcx,rcx
-	mov	rdx,QWORD PTR[8+rsi]
-	mov	r8,QWORD PTR[rsi]
-	mov	r9,QWORD PTR[16+rsi]
-	mov	r10,QWORD PTR[40+rsi]
-	lea	r11,QWORD PTR[56+rsi]
-	lea	r12,QWORD PTR[24+rsi]
-	mov	QWORD PTR[32+rsp],r10
-	mov	QWORD PTR[40+rsp],r11
-	mov	QWORD PTR[48+rsp],r12
-	mov	QWORD PTR[56+rsp],rcx
-	call	QWORD PTR[__imp_RtlVirtualUnwind]
+	mov	rdx,QWORD[8+rsi]
+	mov	r8,QWORD[rsi]
+	mov	r9,QWORD[16+rsi]
+	mov	r10,QWORD[40+rsi]
+	lea	r11,[56+rsi]
+	lea	r12,[24+rsi]
+	mov	QWORD[32+rsp],r10
+	mov	QWORD[40+rsp],r11
+	mov	QWORD[48+rsp],r12
+	mov	QWORD[56+rsp],rcx
+	call	QWORD[__imp_RtlVirtualUnwind]
 
 	mov	eax,1
 	add	rsp,64
@@ -909,37 +910,32 @@
 	pop	rdi
 	pop	rsi
 	DB	0F3h,0C3h		;repret
-sqr_handler	ENDP
 
-.text$	ENDS
-.pdata	SEGMENT READONLY ALIGN(4)
+
+section	.pdata rdata align=4
 ALIGN	4
-	DD	imagerel $L$SEH_begin_bn_mul_mont
-	DD	imagerel $L$SEH_end_bn_mul_mont
-	DD	imagerel $L$SEH_info_bn_mul_mont
+	DD	$L$SEH_begin_bn_mul_mont wrt ..imagebase
+	DD	$L$SEH_end_bn_mul_mont wrt ..imagebase
+	DD	$L$SEH_info_bn_mul_mont wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_bn_mul4x_mont
-	DD	imagerel $L$SEH_end_bn_mul4x_mont
-	DD	imagerel $L$SEH_info_bn_mul4x_mont
+	DD	$L$SEH_begin_bn_mul4x_mont wrt ..imagebase
+	DD	$L$SEH_end_bn_mul4x_mont wrt ..imagebase
+	DD	$L$SEH_info_bn_mul4x_mont wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_bn_sqr8x_mont
-	DD	imagerel $L$SEH_end_bn_sqr8x_mont
-	DD	imagerel $L$SEH_info_bn_sqr8x_mont
-.pdata	ENDS
-.xdata	SEGMENT READONLY ALIGN(8)
+	DD	$L$SEH_begin_bn_sqr8x_mont wrt ..imagebase
+	DD	$L$SEH_end_bn_sqr8x_mont wrt ..imagebase
+	DD	$L$SEH_info_bn_sqr8x_mont wrt ..imagebase
+section	.xdata rdata align=8
 ALIGN	8
-$L$SEH_info_bn_mul_mont::
+$L$SEH_info_bn_mul_mont:
 DB	9,0,0,0
-	DD	imagerel mul_handler
-	DD	imagerel $L$mul_body,imagerel $L$mul_epilogue
-$L$SEH_info_bn_mul4x_mont::
+	DD	mul_handler wrt ..imagebase
+	DD	$L$mul_body wrt ..imagebase,$L$mul_epilogue wrt ..imagebase
+$L$SEH_info_bn_mul4x_mont:
 DB	9,0,0,0
-	DD	imagerel mul_handler
-	DD	imagerel $L$mul4x_body,imagerel $L$mul4x_epilogue
-$L$SEH_info_bn_sqr8x_mont::
+	DD	mul_handler wrt ..imagebase
+	DD	$L$mul4x_body wrt ..imagebase,$L$mul4x_epilogue wrt ..imagebase
+$L$SEH_info_bn_sqr8x_mont:
 DB	9,0,0,0
-	DD	imagerel sqr_handler
-	DD	imagerel $L$sqr8x_body,imagerel $L$sqr8x_epilogue
-
-.xdata	ENDS
-END
+	DD	sqr_handler wrt ..imagebase
+	DD	$L$sqr8x_body wrt ..imagebase,$L$sqr8x_epilogue wrt ..imagebase
diff --git a/third_party/boringssl/win-x86_64/crypto/bn/x86_64-mont5.asm b/third_party/boringssl/win-x86_64/crypto/bn/x86_64-mont5.asm
index 90c6100..284318a 100644
--- a/third_party/boringssl/win-x86_64/crypto/bn/x86_64-mont5.asm
+++ b/third_party/boringssl/win-x86_64/crypto/bn/x86_64-mont5.asm
@@ -1,95 +1,99 @@
-OPTION	DOTNAME
-.text$	SEGMENT ALIGN(256) 'CODE'
+default	rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section	.text code align=64
 
-EXTERN	OPENSSL_ia32cap_P:NEAR
 
-PUBLIC	bn_mul_mont_gather5
+EXTERN	OPENSSL_ia32cap_P
+
+global	bn_mul_mont_gather5
 
 ALIGN	64
-bn_mul_mont_gather5	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+bn_mul_mont_gather5:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_bn_mul_mont_gather5::
+$L$SEH_begin_bn_mul_mont_gather5:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 	mov	rcx,r9
-	mov	r8,QWORD PTR[40+rsp]
-	mov	r9,QWORD PTR[48+rsp]
+	mov	r8,QWORD[40+rsp]
+	mov	r9,QWORD[48+rsp]
 
 
 	test	r9d,7
-	jnz	$L$mul_enter
-	jmp	$L$mul4x_enter
+	jnz	NEAR $L$mul_enter
+	jmp	NEAR $L$mul4x_enter
 
 ALIGN	16
-$L$mul_enter::
+$L$mul_enter:
 	mov	r9d,r9d
 	mov	rax,rsp
-	mov	r10d,DWORD PTR[56+rsp]
+	mov	r10d,DWORD[56+rsp]
 	push	rbx
 	push	rbp
 	push	r12
 	push	r13
 	push	r14
 	push	r15
-	lea	rsp,QWORD PTR[((-40))+rsp]
-	movaps	XMMWORD PTR[rsp],xmm6
-	movaps	XMMWORD PTR[16+rsp],xmm7
-	lea	r11,QWORD PTR[2+r9]
+	lea	rsp,[((-40))+rsp]
+	movaps	XMMWORD[rsp],xmm6
+	movaps	XMMWORD[16+rsp],xmm7
+	lea	r11,[2+r9]
 	neg	r11
-	lea	rsp,QWORD PTR[r11*8+rsp]
+	lea	rsp,[r11*8+rsp]
 	and	rsp,-1024
 
-	mov	QWORD PTR[8+r9*8+rsp],rax
-$L$mul_body::
+	mov	QWORD[8+r9*8+rsp],rax
+$L$mul_body:
 	mov	r12,rdx
 	mov	r11,r10
 	shr	r10,3
 	and	r11,7
 	not	r10
-	lea	rax,QWORD PTR[$L$magic_masks]
+	lea	rax,[$L$magic_masks]
 	and	r10,3
-	lea	r12,QWORD PTR[96+r11*8+r12]
-	movq	xmm4,QWORD PTR[r10*8+rax]
-	movq	xmm5,QWORD PTR[8+r10*8+rax]
-	movq	xmm6,QWORD PTR[16+r10*8+rax]
-	movq	xmm7,QWORD PTR[24+r10*8+rax]
+	lea	r12,[96+r11*8+r12]
+	movq	xmm4,QWORD[r10*8+rax]
+	movq	xmm5,QWORD[8+r10*8+rax]
+	movq	xmm6,QWORD[16+r10*8+rax]
+	movq	xmm7,QWORD[24+r10*8+rax]
 
-	movq	xmm0,QWORD PTR[(((-96)))+r12]
-	movq	xmm1,QWORD PTR[((-32))+r12]
+	movq	xmm0,QWORD[(((-96)))+r12]
+	movq	xmm1,QWORD[((-32))+r12]
 	pand	xmm0,xmm4
-	movq	xmm2,QWORD PTR[32+r12]
+	movq	xmm2,QWORD[32+r12]
 	pand	xmm1,xmm5
-	movq	xmm3,QWORD PTR[96+r12]
+	movq	xmm3,QWORD[96+r12]
 	pand	xmm2,xmm6
 	por	xmm0,xmm1
 	pand	xmm3,xmm7
 	por	xmm0,xmm2
-	lea	r12,QWORD PTR[256+r12]
+	lea	r12,[256+r12]
 	por	xmm0,xmm3
 
 DB	102,72,15,126,195
 
-	mov	r8,QWORD PTR[r8]
-	mov	rax,QWORD PTR[rsi]
+	mov	r8,QWORD[r8]
+	mov	rax,QWORD[rsi]
 
 	xor	r14,r14
 	xor	r15,r15
 
-	movq	xmm0,QWORD PTR[(((-96)))+r12]
-	movq	xmm1,QWORD PTR[((-32))+r12]
+	movq	xmm0,QWORD[(((-96)))+r12]
+	movq	xmm1,QWORD[((-32))+r12]
 	pand	xmm0,xmm4
-	movq	xmm2,QWORD PTR[32+r12]
+	movq	xmm2,QWORD[32+r12]
 	pand	xmm1,xmm5
 
 	mov	rbp,r8
 	mul	rbx
 	mov	r10,rax
-	mov	rax,QWORD PTR[rcx]
+	mov	rax,QWORD[rcx]
 
-	movq	xmm3,QWORD PTR[96+r12]
+	movq	xmm3,QWORD[96+r12]
 	pand	xmm2,xmm6
 	por	xmm0,xmm1
 	pand	xmm3,xmm7
@@ -98,78 +102,78 @@
 	mov	r11,rdx
 
 	por	xmm0,xmm2
-	lea	r12,QWORD PTR[256+r12]
+	lea	r12,[256+r12]
 	por	xmm0,xmm3
 
 	mul	rbp
 	add	r10,rax
-	mov	rax,QWORD PTR[8+rsi]
+	mov	rax,QWORD[8+rsi]
 	adc	rdx,0
 	mov	r13,rdx
 
-	lea	r15,QWORD PTR[1+r15]
-	jmp	$L$1st_enter
+	lea	r15,[1+r15]
+	jmp	NEAR $L$1st_enter
 
 ALIGN	16
-$L$1st::
+$L$1st:
 	add	r13,rax
-	mov	rax,QWORD PTR[r15*8+rsi]
+	mov	rax,QWORD[r15*8+rsi]
 	adc	rdx,0
 	add	r13,r11
 	mov	r11,r10
 	adc	rdx,0
-	mov	QWORD PTR[((-16))+r15*8+rsp],r13
+	mov	QWORD[((-16))+r15*8+rsp],r13
 	mov	r13,rdx
 
-$L$1st_enter::
+$L$1st_enter:
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[r15*8+rcx]
+	mov	rax,QWORD[r15*8+rcx]
 	adc	rdx,0
-	lea	r15,QWORD PTR[1+r15]
+	lea	r15,[1+r15]
 	mov	r10,rdx
 
 	mul	rbp
 	cmp	r15,r9
-	jne	$L$1st
+	jne	NEAR $L$1st
 
 DB	102,72,15,126,195
 
 	add	r13,rax
-	mov	rax,QWORD PTR[rsi]
+	mov	rax,QWORD[rsi]
 	adc	rdx,0
 	add	r13,r11
 	adc	rdx,0
-	mov	QWORD PTR[((-16))+r15*8+rsp],r13
+	mov	QWORD[((-16))+r15*8+rsp],r13
 	mov	r13,rdx
 	mov	r11,r10
 
 	xor	rdx,rdx
 	add	r13,r11
 	adc	rdx,0
-	mov	QWORD PTR[((-8))+r9*8+rsp],r13
-	mov	QWORD PTR[r9*8+rsp],rdx
+	mov	QWORD[((-8))+r9*8+rsp],r13
+	mov	QWORD[r9*8+rsp],rdx
 
-	lea	r14,QWORD PTR[1+r14]
-	jmp	$L$outer
+	lea	r14,[1+r14]
+	jmp	NEAR $L$outer
 ALIGN	16
-$L$outer::
+$L$outer:
 	xor	r15,r15
 	mov	rbp,r8
-	mov	r10,QWORD PTR[rsp]
+	mov	r10,QWORD[rsp]
 
-	movq	xmm0,QWORD PTR[(((-96)))+r12]
-	movq	xmm1,QWORD PTR[((-32))+r12]
+	movq	xmm0,QWORD[(((-96)))+r12]
+	movq	xmm1,QWORD[((-32))+r12]
 	pand	xmm0,xmm4
-	movq	xmm2,QWORD PTR[32+r12]
+	movq	xmm2,QWORD[32+r12]
 	pand	xmm1,xmm5
 
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[rcx]
+	mov	rax,QWORD[rcx]
 	adc	rdx,0
 
-	movq	xmm3,QWORD PTR[96+r12]
+	movq	xmm3,QWORD[96+r12]
 	pand	xmm2,xmm6
 	por	xmm0,xmm1
 	pand	xmm3,xmm7
@@ -178,53 +182,53 @@
 	mov	r11,rdx
 
 	por	xmm0,xmm2
-	lea	r12,QWORD PTR[256+r12]
+	lea	r12,[256+r12]
 	por	xmm0,xmm3
 
 	mul	rbp
 	add	r10,rax
-	mov	rax,QWORD PTR[8+rsi]
+	mov	rax,QWORD[8+rsi]
 	adc	rdx,0
-	mov	r10,QWORD PTR[8+rsp]
+	mov	r10,QWORD[8+rsp]
 	mov	r13,rdx
 
-	lea	r15,QWORD PTR[1+r15]
-	jmp	$L$inner_enter
+	lea	r15,[1+r15]
+	jmp	NEAR $L$inner_enter
 
 ALIGN	16
-$L$inner::
+$L$inner:
 	add	r13,rax
-	mov	rax,QWORD PTR[r15*8+rsi]
+	mov	rax,QWORD[r15*8+rsi]
 	adc	rdx,0
 	add	r13,r10
-	mov	r10,QWORD PTR[r15*8+rsp]
+	mov	r10,QWORD[r15*8+rsp]
 	adc	rdx,0
-	mov	QWORD PTR[((-16))+r15*8+rsp],r13
+	mov	QWORD[((-16))+r15*8+rsp],r13
 	mov	r13,rdx
 
-$L$inner_enter::
+$L$inner_enter:
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[r15*8+rcx]
+	mov	rax,QWORD[r15*8+rcx]
 	adc	rdx,0
 	add	r10,r11
 	mov	r11,rdx
 	adc	r11,0
-	lea	r15,QWORD PTR[1+r15]
+	lea	r15,[1+r15]
 
 	mul	rbp
 	cmp	r15,r9
-	jne	$L$inner
+	jne	NEAR $L$inner
 
 DB	102,72,15,126,195
 
 	add	r13,rax
-	mov	rax,QWORD PTR[rsi]
+	mov	rax,QWORD[rsi]
 	adc	rdx,0
 	add	r13,r10
-	mov	r10,QWORD PTR[r15*8+rsp]
+	mov	r10,QWORD[r15*8+rsp]
 	adc	rdx,0
-	mov	QWORD PTR[((-16))+r15*8+rsp],r13
+	mov	QWORD[((-16))+r15*8+rsp],r13
 	mov	r13,rdx
 
 	xor	rdx,rdx
@@ -232,76 +236,75 @@
 	adc	rdx,0
 	add	r13,r10
 	adc	rdx,0
-	mov	QWORD PTR[((-8))+r9*8+rsp],r13
-	mov	QWORD PTR[r9*8+rsp],rdx
+	mov	QWORD[((-8))+r9*8+rsp],r13
+	mov	QWORD[r9*8+rsp],rdx
 
-	lea	r14,QWORD PTR[1+r14]
+	lea	r14,[1+r14]
 	cmp	r14,r9
-	jb	$L$outer
+	jb	NEAR $L$outer
 
 	xor	r14,r14
-	mov	rax,QWORD PTR[rsp]
-	lea	rsi,QWORD PTR[rsp]
+	mov	rax,QWORD[rsp]
+	lea	rsi,[rsp]
 	mov	r15,r9
-	jmp	$L$sub
+	jmp	NEAR $L$sub
 ALIGN	16
-$L$sub::	sbb	rax,QWORD PTR[r14*8+rcx]
-	mov	QWORD PTR[r14*8+rdi],rax
-	mov	rax,QWORD PTR[8+r14*8+rsi]
-	lea	r14,QWORD PTR[1+r14]
+$L$sub:	sbb	rax,QWORD[r14*8+rcx]
+	mov	QWORD[r14*8+rdi],rax
+	mov	rax,QWORD[8+r14*8+rsi]
+	lea	r14,[1+r14]
 	dec	r15
-	jnz	$L$sub
+	jnz	NEAR $L$sub
 
 	sbb	rax,0
 	xor	r14,r14
 	mov	r15,r9
 ALIGN	16
-$L$copy::
-	mov	rsi,QWORD PTR[r14*8+rsp]
-	mov	rcx,QWORD PTR[r14*8+rdi]
+$L$copy:
+	mov	rsi,QWORD[r14*8+rsp]
+	mov	rcx,QWORD[r14*8+rdi]
 	xor	rsi,rcx
 	and	rsi,rax
 	xor	rsi,rcx
-	mov	QWORD PTR[r14*8+rsp],r14
-	mov	QWORD PTR[r14*8+rdi],rsi
-	lea	r14,QWORD PTR[1+r14]
+	mov	QWORD[r14*8+rsp],r14
+	mov	QWORD[r14*8+rdi],rsi
+	lea	r14,[1+r14]
 	sub	r15,1
-	jnz	$L$copy
+	jnz	NEAR $L$copy
 
-	mov	rsi,QWORD PTR[8+r9*8+rsp]
+	mov	rsi,QWORD[8+r9*8+rsp]
 	mov	rax,1
-	movaps	xmm6,XMMWORD PTR[((-88))+rsi]
-	movaps	xmm7,XMMWORD PTR[((-72))+rsi]
-	mov	r15,QWORD PTR[((-48))+rsi]
-	mov	r14,QWORD PTR[((-40))+rsi]
-	mov	r13,QWORD PTR[((-32))+rsi]
-	mov	r12,QWORD PTR[((-24))+rsi]
-	mov	rbp,QWORD PTR[((-16))+rsi]
-	mov	rbx,QWORD PTR[((-8))+rsi]
-	lea	rsp,QWORD PTR[rsi]
-$L$mul_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	movaps	xmm6,XMMWORD[((-88))+rsi]
+	movaps	xmm7,XMMWORD[((-72))+rsi]
+	mov	r15,QWORD[((-48))+rsi]
+	mov	r14,QWORD[((-40))+rsi]
+	mov	r13,QWORD[((-32))+rsi]
+	mov	r12,QWORD[((-24))+rsi]
+	mov	rbp,QWORD[((-16))+rsi]
+	mov	rbx,QWORD[((-8))+rsi]
+	lea	rsp,[rsi]
+$L$mul_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_bn_mul_mont_gather5::
-bn_mul_mont_gather5	ENDP
+$L$SEH_end_bn_mul_mont_gather5:
 
 ALIGN	32
-bn_mul4x_mont_gather5	PROC PRIVATE
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+bn_mul4x_mont_gather5:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_bn_mul4x_mont_gather5::
+$L$SEH_begin_bn_mul4x_mont_gather5:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 	mov	rcx,r9
-	mov	r8,QWORD PTR[40+rsp]
-	mov	r9,QWORD PTR[48+rsp]
+	mov	r8,QWORD[40+rsp]
+	mov	r9,QWORD[48+rsp]
 
 
-$L$mul4x_enter::
-DB	067h
+$L$mul4x_enter:
+DB	0x67
 	mov	rax,rsp
 	push	rbx
 	push	rbp
@@ -309,10 +312,10 @@
 	push	r13
 	push	r14
 	push	r15
-	lea	rsp,QWORD PTR[((-40))+rsp]
-	movaps	XMMWORD PTR[rsp],xmm6
-	movaps	XMMWORD PTR[16+rsp],xmm7
-DB	067h
+	lea	rsp,[((-40))+rsp]
+	movaps	XMMWORD[rsp],xmm6
+	movaps	XMMWORD[16+rsp],xmm7
+DB	0x67
 	mov	r10d,r9d
 	shl	r9d,3
 	shl	r10d,3+2
@@ -325,107 +328,106 @@
 
 
 
-	lea	r11,QWORD PTR[((-64))+r9*2+rsp]
+	lea	r11,[((-64))+r9*2+rsp]
 	sub	r11,rsi
 	and	r11,4095
 	cmp	r10,r11
-	jb	$L$mul4xsp_alt
+	jb	NEAR $L$mul4xsp_alt
 	sub	rsp,r11
-	lea	rsp,QWORD PTR[((-64))+r9*2+rsp]
-	jmp	$L$mul4xsp_done
+	lea	rsp,[((-64))+r9*2+rsp]
+	jmp	NEAR $L$mul4xsp_done
 
 ALIGN	32
-$L$mul4xsp_alt::
-	lea	r10,QWORD PTR[((4096-64))+r9*2]
-	lea	rsp,QWORD PTR[((-64))+r9*2+rsp]
+$L$mul4xsp_alt:
+	lea	r10,[((4096-64))+r9*2]
+	lea	rsp,[((-64))+r9*2+rsp]
 	sub	r11,r10
 	mov	r10,0
 	cmovc	r11,r10
 	sub	rsp,r11
-$L$mul4xsp_done::
+$L$mul4xsp_done:
 	and	rsp,-64
 	neg	r9
 
-	mov	QWORD PTR[40+rsp],rax
-$L$mul4x_body::
+	mov	QWORD[40+rsp],rax
+$L$mul4x_body:
 
 	call	mul4x_internal
 
-	mov	rsi,QWORD PTR[40+rsp]
+	mov	rsi,QWORD[40+rsp]
 	mov	rax,1
-	movaps	xmm6,XMMWORD PTR[((-88))+rsi]
-	movaps	xmm7,XMMWORD PTR[((-72))+rsi]
-	mov	r15,QWORD PTR[((-48))+rsi]
-	mov	r14,QWORD PTR[((-40))+rsi]
-	mov	r13,QWORD PTR[((-32))+rsi]
-	mov	r12,QWORD PTR[((-24))+rsi]
-	mov	rbp,QWORD PTR[((-16))+rsi]
-	mov	rbx,QWORD PTR[((-8))+rsi]
-	lea	rsp,QWORD PTR[rsi]
-$L$mul4x_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	movaps	xmm6,XMMWORD[((-88))+rsi]
+	movaps	xmm7,XMMWORD[((-72))+rsi]
+	mov	r15,QWORD[((-48))+rsi]
+	mov	r14,QWORD[((-40))+rsi]
+	mov	r13,QWORD[((-32))+rsi]
+	mov	r12,QWORD[((-24))+rsi]
+	mov	rbp,QWORD[((-16))+rsi]
+	mov	rbx,QWORD[((-8))+rsi]
+	lea	rsp,[rsi]
+$L$mul4x_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_bn_mul4x_mont_gather5::
-bn_mul4x_mont_gather5	ENDP
+$L$SEH_end_bn_mul4x_mont_gather5:
 
 
 ALIGN	32
-mul4x_internal	PROC PRIVATE
+mul4x_internal:
 	shl	r9,5
-	mov	r10d,DWORD PTR[56+rax]
-	lea	r13,QWORD PTR[256+r9*1+rdx]
+	mov	r10d,DWORD[56+rax]
+	lea	r13,[256+r9*1+rdx]
 	shr	r9,5
 	mov	r11,r10
 	shr	r10,3
 	and	r11,7
 	not	r10
-	lea	rax,QWORD PTR[$L$magic_masks]
+	lea	rax,[$L$magic_masks]
 	and	r10,3
-	lea	r12,QWORD PTR[96+r11*8+rdx]
-	movq	xmm4,QWORD PTR[r10*8+rax]
-	movq	xmm5,QWORD PTR[8+r10*8+rax]
+	lea	r12,[96+r11*8+rdx]
+	movq	xmm4,QWORD[r10*8+rax]
+	movq	xmm5,QWORD[8+r10*8+rax]
 	add	r11,7
-	movq	xmm6,QWORD PTR[16+r10*8+rax]
-	movq	xmm7,QWORD PTR[24+r10*8+rax]
+	movq	xmm6,QWORD[16+r10*8+rax]
+	movq	xmm7,QWORD[24+r10*8+rax]
 	and	r11,7
 
-	movq	xmm0,QWORD PTR[(((-96)))+r12]
-	lea	r14,QWORD PTR[256+r12]
-	movq	xmm1,QWORD PTR[((-32))+r12]
+	movq	xmm0,QWORD[(((-96)))+r12]
+	lea	r14,[256+r12]
+	movq	xmm1,QWORD[((-32))+r12]
 	pand	xmm0,xmm4
-	movq	xmm2,QWORD PTR[32+r12]
+	movq	xmm2,QWORD[32+r12]
 	pand	xmm1,xmm5
-	movq	xmm3,QWORD PTR[96+r12]
+	movq	xmm3,QWORD[96+r12]
 	pand	xmm2,xmm6
-DB	067h
+DB	0x67
 	por	xmm0,xmm1
-	movq	xmm1,QWORD PTR[((-96))+r14]
-DB	067h
+	movq	xmm1,QWORD[((-96))+r14]
+DB	0x67
 	pand	xmm3,xmm7
-DB	067h
+DB	0x67
 	por	xmm0,xmm2
-	movq	xmm2,QWORD PTR[((-32))+r14]
-DB	067h
+	movq	xmm2,QWORD[((-32))+r14]
+DB	0x67
 	pand	xmm1,xmm4
-DB	067h
+DB	0x67
 	por	xmm0,xmm3
-	movq	xmm3,QWORD PTR[32+r14]
+	movq	xmm3,QWORD[32+r14]
 
 DB	102,72,15,126,195
-	movq	xmm0,QWORD PTR[96+r14]
-	mov	QWORD PTR[((16+8))+rsp],r13
-	mov	QWORD PTR[((56+8))+rsp],rdi
+	movq	xmm0,QWORD[96+r14]
+	mov	QWORD[((16+8))+rsp],r13
+	mov	QWORD[((56+8))+rsp],rdi
 
-	mov	r8,QWORD PTR[r8]
-	mov	rax,QWORD PTR[rsi]
-	lea	rsi,QWORD PTR[r9*1+rsi]
+	mov	r8,QWORD[r8]
+	mov	rax,QWORD[rsi]
+	lea	rsi,[r9*1+rsi]
 	neg	r9
 
 	mov	rbp,r8
 	mul	rbx
 	mov	r10,rax
-	mov	rax,QWORD PTR[rcx]
+	mov	rax,QWORD[rcx]
 
 	pand	xmm2,xmm5
 	pand	xmm3,xmm6
@@ -439,349 +441,349 @@
 
 
 
-	lea	r14,QWORD PTR[((64+8))+r11*8+rsp]
+	lea	r14,[((64+8))+r11*8+rsp]
 	mov	r11,rdx
 
 	pand	xmm0,xmm7
 	por	xmm1,xmm3
-	lea	r12,QWORD PTR[512+r12]
+	lea	r12,[512+r12]
 	por	xmm0,xmm1
 
 	mul	rbp
 	add	r10,rax
-	mov	rax,QWORD PTR[8+r9*1+rsi]
+	mov	rax,QWORD[8+r9*1+rsi]
 	adc	rdx,0
 	mov	rdi,rdx
 
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[16+rcx]
+	mov	rax,QWORD[16+rcx]
 	adc	rdx,0
 	mov	r10,rdx
 
 	mul	rbp
 	add	rdi,rax
-	mov	rax,QWORD PTR[16+r9*1+rsi]
+	mov	rax,QWORD[16+r9*1+rsi]
 	adc	rdx,0
 	add	rdi,r11
-	lea	r15,QWORD PTR[32+r9]
-	lea	rcx,QWORD PTR[64+rcx]
+	lea	r15,[32+r9]
+	lea	rcx,[64+rcx]
 	adc	rdx,0
-	mov	QWORD PTR[r14],rdi
+	mov	QWORD[r14],rdi
 	mov	r13,rdx
-	jmp	$L$1st4x
+	jmp	NEAR $L$1st4x
 
 ALIGN	32
-$L$1st4x::
+$L$1st4x:
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[((-32))+rcx]
-	lea	r14,QWORD PTR[32+r14]
+	mov	rax,QWORD[((-32))+rcx]
+	lea	r14,[32+r14]
 	adc	rdx,0
 	mov	r11,rdx
 
 	mul	rbp
 	add	r13,rax
-	mov	rax,QWORD PTR[((-8))+r15*1+rsi]
+	mov	rax,QWORD[((-8))+r15*1+rsi]
 	adc	rdx,0
 	add	r13,r10
 	adc	rdx,0
-	mov	QWORD PTR[((-24))+r14],r13
+	mov	QWORD[((-24))+r14],r13
 	mov	rdi,rdx
 
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[((-16))+rcx]
+	mov	rax,QWORD[((-16))+rcx]
 	adc	rdx,0
 	mov	r10,rdx
 
 	mul	rbp
 	add	rdi,rax
-	mov	rax,QWORD PTR[r15*1+rsi]
+	mov	rax,QWORD[r15*1+rsi]
 	adc	rdx,0
 	add	rdi,r11
 	adc	rdx,0
-	mov	QWORD PTR[((-16))+r14],rdi
+	mov	QWORD[((-16))+r14],rdi
 	mov	r13,rdx
 
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[rcx]
+	mov	rax,QWORD[rcx]
 	adc	rdx,0
 	mov	r11,rdx
 
 	mul	rbp
 	add	r13,rax
-	mov	rax,QWORD PTR[8+r15*1+rsi]
+	mov	rax,QWORD[8+r15*1+rsi]
 	adc	rdx,0
 	add	r13,r10
 	adc	rdx,0
-	mov	QWORD PTR[((-8))+r14],r13
+	mov	QWORD[((-8))+r14],r13
 	mov	rdi,rdx
 
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[16+rcx]
+	mov	rax,QWORD[16+rcx]
 	adc	rdx,0
 	mov	r10,rdx
 
 	mul	rbp
 	add	rdi,rax
-	mov	rax,QWORD PTR[16+r15*1+rsi]
+	mov	rax,QWORD[16+r15*1+rsi]
 	adc	rdx,0
 	add	rdi,r11
-	lea	rcx,QWORD PTR[64+rcx]
+	lea	rcx,[64+rcx]
 	adc	rdx,0
-	mov	QWORD PTR[r14],rdi
+	mov	QWORD[r14],rdi
 	mov	r13,rdx
 
 	add	r15,32
-	jnz	$L$1st4x
+	jnz	NEAR $L$1st4x
 
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[((-32))+rcx]
-	lea	r14,QWORD PTR[32+r14]
+	mov	rax,QWORD[((-32))+rcx]
+	lea	r14,[32+r14]
 	adc	rdx,0
 	mov	r11,rdx
 
 	mul	rbp
 	add	r13,rax
-	mov	rax,QWORD PTR[((-8))+rsi]
+	mov	rax,QWORD[((-8))+rsi]
 	adc	rdx,0
 	add	r13,r10
 	adc	rdx,0
-	mov	QWORD PTR[((-24))+r14],r13
+	mov	QWORD[((-24))+r14],r13
 	mov	rdi,rdx
 
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[((-16))+rcx]
+	mov	rax,QWORD[((-16))+rcx]
 	adc	rdx,0
 	mov	r10,rdx
 
 	mul	rbp
 	add	rdi,rax
-	mov	rax,QWORD PTR[r9*1+rsi]
+	mov	rax,QWORD[r9*1+rsi]
 	adc	rdx,0
 	add	rdi,r11
 	adc	rdx,0
-	mov	QWORD PTR[((-16))+r14],rdi
+	mov	QWORD[((-16))+r14],rdi
 	mov	r13,rdx
 
 DB	102,72,15,126,195
-	lea	rcx,QWORD PTR[r9*2+rcx]
+	lea	rcx,[r9*2+rcx]
 
 	xor	rdi,rdi
 	add	r13,r10
 	adc	rdi,0
-	mov	QWORD PTR[((-8))+r14],r13
+	mov	QWORD[((-8))+r14],r13
 
-	jmp	$L$outer4x
+	jmp	NEAR $L$outer4x
 
 ALIGN	32
-$L$outer4x::
-	mov	r10,QWORD PTR[r9*1+r14]
+$L$outer4x:
+	mov	r10,QWORD[r9*1+r14]
 	mov	rbp,r8
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[rcx]
+	mov	rax,QWORD[rcx]
 	adc	rdx,0
 
-	movq	xmm0,QWORD PTR[(((-96)))+r12]
-	movq	xmm1,QWORD PTR[((-32))+r12]
+	movq	xmm0,QWORD[(((-96)))+r12]
+	movq	xmm1,QWORD[((-32))+r12]
 	pand	xmm0,xmm4
-	movq	xmm2,QWORD PTR[32+r12]
+	movq	xmm2,QWORD[32+r12]
 	pand	xmm1,xmm5
-	movq	xmm3,QWORD PTR[96+r12]
+	movq	xmm3,QWORD[96+r12]
 
 	imul	rbp,r10
-DB	067h
+DB	0x67
 	mov	r11,rdx
-	mov	QWORD PTR[r14],rdi
+	mov	QWORD[r14],rdi
 
 	pand	xmm2,xmm6
 	por	xmm0,xmm1
 	pand	xmm3,xmm7
 	por	xmm0,xmm2
-	lea	r14,QWORD PTR[r9*1+r14]
-	lea	r12,QWORD PTR[256+r12]
+	lea	r14,[r9*1+r14]
+	lea	r12,[256+r12]
 	por	xmm0,xmm3
 
 	mul	rbp
 	add	r10,rax
-	mov	rax,QWORD PTR[8+r9*1+rsi]
+	mov	rax,QWORD[8+r9*1+rsi]
 	adc	rdx,0
 	mov	rdi,rdx
 
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[16+rcx]
+	mov	rax,QWORD[16+rcx]
 	adc	rdx,0
-	add	r11,QWORD PTR[8+r14]
+	add	r11,QWORD[8+r14]
 	adc	rdx,0
 	mov	r10,rdx
 
 	mul	rbp
 	add	rdi,rax
-	mov	rax,QWORD PTR[16+r9*1+rsi]
+	mov	rax,QWORD[16+r9*1+rsi]
 	adc	rdx,0
 	add	rdi,r11
-	lea	r15,QWORD PTR[32+r9]
-	lea	rcx,QWORD PTR[64+rcx]
+	lea	r15,[32+r9]
+	lea	rcx,[64+rcx]
 	adc	rdx,0
 	mov	r13,rdx
-	jmp	$L$inner4x
+	jmp	NEAR $L$inner4x
 
 ALIGN	32
-$L$inner4x::
+$L$inner4x:
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[((-32))+rcx]
+	mov	rax,QWORD[((-32))+rcx]
 	adc	rdx,0
-	add	r10,QWORD PTR[16+r14]
-	lea	r14,QWORD PTR[32+r14]
+	add	r10,QWORD[16+r14]
+	lea	r14,[32+r14]
 	adc	rdx,0
 	mov	r11,rdx
 
 	mul	rbp
 	add	r13,rax
-	mov	rax,QWORD PTR[((-8))+r15*1+rsi]
+	mov	rax,QWORD[((-8))+r15*1+rsi]
 	adc	rdx,0
 	add	r13,r10
 	adc	rdx,0
-	mov	QWORD PTR[((-32))+r14],rdi
+	mov	QWORD[((-32))+r14],rdi
 	mov	rdi,rdx
 
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[((-16))+rcx]
+	mov	rax,QWORD[((-16))+rcx]
 	adc	rdx,0
-	add	r11,QWORD PTR[((-8))+r14]
+	add	r11,QWORD[((-8))+r14]
 	adc	rdx,0
 	mov	r10,rdx
 
 	mul	rbp
 	add	rdi,rax
-	mov	rax,QWORD PTR[r15*1+rsi]
+	mov	rax,QWORD[r15*1+rsi]
 	adc	rdx,0
 	add	rdi,r11
 	adc	rdx,0
-	mov	QWORD PTR[((-24))+r14],r13
+	mov	QWORD[((-24))+r14],r13
 	mov	r13,rdx
 
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[rcx]
+	mov	rax,QWORD[rcx]
 	adc	rdx,0
-	add	r10,QWORD PTR[r14]
+	add	r10,QWORD[r14]
 	adc	rdx,0
 	mov	r11,rdx
 
 	mul	rbp
 	add	r13,rax
-	mov	rax,QWORD PTR[8+r15*1+rsi]
+	mov	rax,QWORD[8+r15*1+rsi]
 	adc	rdx,0
 	add	r13,r10
 	adc	rdx,0
-	mov	QWORD PTR[((-16))+r14],rdi
+	mov	QWORD[((-16))+r14],rdi
 	mov	rdi,rdx
 
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[16+rcx]
+	mov	rax,QWORD[16+rcx]
 	adc	rdx,0
-	add	r11,QWORD PTR[8+r14]
+	add	r11,QWORD[8+r14]
 	adc	rdx,0
 	mov	r10,rdx
 
 	mul	rbp
 	add	rdi,rax
-	mov	rax,QWORD PTR[16+r15*1+rsi]
+	mov	rax,QWORD[16+r15*1+rsi]
 	adc	rdx,0
 	add	rdi,r11
-	lea	rcx,QWORD PTR[64+rcx]
+	lea	rcx,[64+rcx]
 	adc	rdx,0
-	mov	QWORD PTR[((-8))+r14],r13
+	mov	QWORD[((-8))+r14],r13
 	mov	r13,rdx
 
 	add	r15,32
-	jnz	$L$inner4x
+	jnz	NEAR $L$inner4x
 
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[((-32))+rcx]
+	mov	rax,QWORD[((-32))+rcx]
 	adc	rdx,0
-	add	r10,QWORD PTR[16+r14]
-	lea	r14,QWORD PTR[32+r14]
+	add	r10,QWORD[16+r14]
+	lea	r14,[32+r14]
 	adc	rdx,0
 	mov	r11,rdx
 
 	mul	rbp
 	add	r13,rax
-	mov	rax,QWORD PTR[((-8))+rsi]
+	mov	rax,QWORD[((-8))+rsi]
 	adc	rdx,0
 	add	r13,r10
 	adc	rdx,0
-	mov	QWORD PTR[((-32))+r14],rdi
+	mov	QWORD[((-32))+r14],rdi
 	mov	rdi,rdx
 
 	mul	rbx
 	add	r11,rax
 	mov	rax,rbp
-	mov	rbp,QWORD PTR[((-16))+rcx]
+	mov	rbp,QWORD[((-16))+rcx]
 	adc	rdx,0
-	add	r11,QWORD PTR[((-8))+r14]
+	add	r11,QWORD[((-8))+r14]
 	adc	rdx,0
 	mov	r10,rdx
 
 	mul	rbp
 	add	rdi,rax
-	mov	rax,QWORD PTR[r9*1+rsi]
+	mov	rax,QWORD[r9*1+rsi]
 	adc	rdx,0
 	add	rdi,r11
 	adc	rdx,0
-	mov	QWORD PTR[((-24))+r14],r13
+	mov	QWORD[((-24))+r14],r13
 	mov	r13,rdx
 
 DB	102,72,15,126,195
-	mov	QWORD PTR[((-16))+r14],rdi
-	lea	rcx,QWORD PTR[r9*2+rcx]
+	mov	QWORD[((-16))+r14],rdi
+	lea	rcx,[r9*2+rcx]
 
 	xor	rdi,rdi
 	add	r13,r10
 	adc	rdi,0
-	add	r13,QWORD PTR[r14]
+	add	r13,QWORD[r14]
 	adc	rdi,0
-	mov	QWORD PTR[((-8))+r14],r13
+	mov	QWORD[((-8))+r14],r13
 
-	cmp	r12,QWORD PTR[((16+8))+rsp]
-	jb	$L$outer4x
+	cmp	r12,QWORD[((16+8))+rsp]
+	jb	NEAR $L$outer4x
 	sub	rbp,r13
 	adc	r15,r15
 	or	rdi,r15
 	xor	rdi,1
-	lea	rbx,QWORD PTR[r9*1+r14]
-	lea	rbp,QWORD PTR[rdi*8+rcx]
+	lea	rbx,[r9*1+r14]
+	lea	rbp,[rdi*8+rcx]
 	mov	rcx,r9
 	sar	rcx,3+2
-	mov	rdi,QWORD PTR[((56+8))+rsp]
-	jmp	$L$sqr4x_sub
-mul4x_internal	ENDP
-PUBLIC	bn_power5
+	mov	rdi,QWORD[((56+8))+rsp]
+	jmp	NEAR $L$sqr4x_sub
+
+global	bn_power5
 
 ALIGN	32
-bn_power5	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+bn_power5:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_bn_power5::
+$L$SEH_begin_bn_power5:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 	mov	rcx,r9
-	mov	r8,QWORD PTR[40+rsp]
-	mov	r9,QWORD PTR[48+rsp]
+	mov	r8,QWORD[40+rsp]
+	mov	r9,QWORD[48+rsp]
 
 
 	mov	rax,rsp
@@ -791,14 +793,14 @@
 	push	r13
 	push	r14
 	push	r15
-	lea	rsp,QWORD PTR[((-40))+rsp]
-	movaps	XMMWORD PTR[rsp],xmm6
-	movaps	XMMWORD PTR[16+rsp],xmm7
+	lea	rsp,[((-40))+rsp]
+	movaps	XMMWORD[rsp],xmm6
+	movaps	XMMWORD[16+rsp],xmm7
 	mov	r10d,r9d
 	shl	r9d,3
 	shl	r10d,3+2
 	neg	r9
-	mov	r8,QWORD PTR[r8]
+	mov	r8,QWORD[r8]
 
 
 
@@ -806,24 +808,24 @@
 
 
 
-	lea	r11,QWORD PTR[((-64))+r9*2+rsp]
+	lea	r11,[((-64))+r9*2+rsp]
 	sub	r11,rsi
 	and	r11,4095
 	cmp	r10,r11
-	jb	$L$pwr_sp_alt
+	jb	NEAR $L$pwr_sp_alt
 	sub	rsp,r11
-	lea	rsp,QWORD PTR[((-64))+r9*2+rsp]
-	jmp	$L$pwr_sp_done
+	lea	rsp,[((-64))+r9*2+rsp]
+	jmp	NEAR $L$pwr_sp_done
 
 ALIGN	32
-$L$pwr_sp_alt::
-	lea	r10,QWORD PTR[((4096-64))+r9*2]
-	lea	rsp,QWORD PTR[((-64))+r9*2+rsp]
+$L$pwr_sp_alt:
+	lea	r10,[((4096-64))+r9*2]
+	lea	rsp,[((-64))+r9*2+rsp]
 	sub	r11,r10
 	mov	r10,0
 	cmovc	r11,r10
 	sub	rsp,r11
-$L$pwr_sp_done::
+$L$pwr_sp_done:
 	and	rsp,-64
 	mov	r10,r9
 	neg	r9
@@ -837,9 +839,9 @@
 
 
 
-	mov	QWORD PTR[32+rsp],r8
-	mov	QWORD PTR[40+rsp],rax
-$L$power5_body::
+	mov	QWORD[32+rsp],r8
+	mov	QWORD[40+rsp],rax
+$L$power5_body:
 DB	102,72,15,110,207
 DB	102,72,15,110,209
 DB	102,73,15,110,218
@@ -854,33 +856,32 @@
 DB	102,72,15,126,209
 DB	102,72,15,126,226
 	mov	rdi,rsi
-	mov	rax,QWORD PTR[40+rsp]
-	lea	r8,QWORD PTR[32+rsp]
+	mov	rax,QWORD[40+rsp]
+	lea	r8,[32+rsp]
 
 	call	mul4x_internal
 
-	mov	rsi,QWORD PTR[40+rsp]
+	mov	rsi,QWORD[40+rsp]
 	mov	rax,1
-	mov	r15,QWORD PTR[((-48))+rsi]
-	mov	r14,QWORD PTR[((-40))+rsi]
-	mov	r13,QWORD PTR[((-32))+rsi]
-	mov	r12,QWORD PTR[((-24))+rsi]
-	mov	rbp,QWORD PTR[((-16))+rsi]
-	mov	rbx,QWORD PTR[((-8))+rsi]
-	lea	rsp,QWORD PTR[rsi]
-$L$power5_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	mov	r15,QWORD[((-48))+rsi]
+	mov	r14,QWORD[((-40))+rsi]
+	mov	r13,QWORD[((-32))+rsi]
+	mov	r12,QWORD[((-24))+rsi]
+	mov	rbp,QWORD[((-16))+rsi]
+	mov	rbx,QWORD[((-8))+rsi]
+	lea	rsp,[rsi]
+$L$power5_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_bn_power5::
-bn_power5	ENDP
+$L$SEH_end_bn_power5:
 
-PUBLIC	bn_sqr8x_internal
+global	bn_sqr8x_internal
 
 
 ALIGN	32
-bn_sqr8x_internal	PROC PUBLIC
-__bn_sqr8x_internal::
+bn_sqr8x_internal:
+__bn_sqr8x_internal:
 
 
 
@@ -954,40 +955,40 @@
 
 
 
-	lea	rbp,QWORD PTR[32+r10]
-	lea	rsi,QWORD PTR[r9*1+rsi]
+	lea	rbp,[32+r10]
+	lea	rsi,[r9*1+rsi]
 
 	mov	rcx,r9
 
 
-	mov	r14,QWORD PTR[((-32))+rbp*1+rsi]
-	lea	rdi,QWORD PTR[((48+8))+r9*2+rsp]
-	mov	rax,QWORD PTR[((-24))+rbp*1+rsi]
-	lea	rdi,QWORD PTR[((-32))+rbp*1+rdi]
-	mov	rbx,QWORD PTR[((-16))+rbp*1+rsi]
+	mov	r14,QWORD[((-32))+rbp*1+rsi]
+	lea	rdi,[((48+8))+r9*2+rsp]
+	mov	rax,QWORD[((-24))+rbp*1+rsi]
+	lea	rdi,[((-32))+rbp*1+rdi]
+	mov	rbx,QWORD[((-16))+rbp*1+rsi]
 	mov	r15,rax
 
 	mul	r14
 	mov	r10,rax
 	mov	rax,rbx
 	mov	r11,rdx
-	mov	QWORD PTR[((-24))+rbp*1+rdi],r10
+	mov	QWORD[((-24))+rbp*1+rdi],r10
 
 	mul	r14
 	add	r11,rax
 	mov	rax,rbx
 	adc	rdx,0
-	mov	QWORD PTR[((-16))+rbp*1+rdi],r11
+	mov	QWORD[((-16))+rbp*1+rdi],r11
 	mov	r10,rdx
 
 
-	mov	rbx,QWORD PTR[((-8))+rbp*1+rsi]
+	mov	rbx,QWORD[((-8))+rbp*1+rsi]
 	mul	r15
 	mov	r12,rax
 	mov	rax,rbx
 	mov	r13,rdx
 
-	lea	rcx,QWORD PTR[rbp]
+	lea	rcx,[rbp]
 	mul	r14
 	add	r10,rax
 	mov	rax,rbx
@@ -995,12 +996,12 @@
 	adc	r11,0
 	add	r10,r12
 	adc	r11,0
-	mov	QWORD PTR[((-8))+rcx*1+rdi],r10
-	jmp	$L$sqr4x_1st
+	mov	QWORD[((-8))+rcx*1+rdi],r10
+	jmp	NEAR $L$sqr4x_1st
 
 ALIGN	32
-$L$sqr4x_1st::
-	mov	rbx,QWORD PTR[rcx*1+rsi]
+$L$sqr4x_1st:
+	mov	rbx,QWORD[rcx*1+rsi]
 	mul	r15
 	add	r13,rax
 	mov	rax,rbx
@@ -1010,7 +1011,7 @@
 	mul	r14
 	add	r11,rax
 	mov	rax,rbx
-	mov	rbx,QWORD PTR[8+rcx*1+rsi]
+	mov	rbx,QWORD[8+rcx*1+rsi]
 	mov	r10,rdx
 	adc	r10,0
 	add	r11,r13
@@ -1020,14 +1021,14 @@
 	mul	r15
 	add	r12,rax
 	mov	rax,rbx
-	mov	QWORD PTR[rcx*1+rdi],r11
+	mov	QWORD[rcx*1+rdi],r11
 	mov	r13,rdx
 	adc	r13,0
 
 	mul	r14
 	add	r10,rax
 	mov	rax,rbx
-	mov	rbx,QWORD PTR[16+rcx*1+rsi]
+	mov	rbx,QWORD[16+rcx*1+rsi]
 	mov	r11,rdx
 	adc	r11,0
 	add	r10,r12
@@ -1036,14 +1037,14 @@
 	mul	r15
 	add	r13,rax
 	mov	rax,rbx
-	mov	QWORD PTR[8+rcx*1+rdi],r10
+	mov	QWORD[8+rcx*1+rdi],r10
 	mov	r12,rdx
 	adc	r12,0
 
 	mul	r14
 	add	r11,rax
 	mov	rax,rbx
-	mov	rbx,QWORD PTR[24+rcx*1+rsi]
+	mov	rbx,QWORD[24+rcx*1+rsi]
 	mov	r10,rdx
 	adc	r10,0
 	add	r11,r13
@@ -1053,10 +1054,10 @@
 	mul	r15
 	add	r12,rax
 	mov	rax,rbx
-	mov	QWORD PTR[16+rcx*1+rdi],r11
+	mov	QWORD[16+rcx*1+rdi],r11
 	mov	r13,rdx
 	adc	r13,0
-	lea	rcx,QWORD PTR[32+rcx]
+	lea	rcx,[32+rcx]
 
 	mul	r14
 	add	r10,rax
@@ -1065,57 +1066,57 @@
 	adc	r11,0
 	add	r10,r12
 	adc	r11,0
-	mov	QWORD PTR[((-8))+rcx*1+rdi],r10
+	mov	QWORD[((-8))+rcx*1+rdi],r10
 
 	cmp	rcx,0
-	jne	$L$sqr4x_1st
+	jne	NEAR $L$sqr4x_1st
 
 	mul	r15
 	add	r13,rax
-	lea	rbp,QWORD PTR[16+rbp]
+	lea	rbp,[16+rbp]
 	adc	rdx,0
 	add	r13,r11
 	adc	rdx,0
 
-	mov	QWORD PTR[rdi],r13
+	mov	QWORD[rdi],r13
 	mov	r12,rdx
-	mov	QWORD PTR[8+rdi],rdx
-	jmp	$L$sqr4x_outer
+	mov	QWORD[8+rdi],rdx
+	jmp	NEAR $L$sqr4x_outer
 
 ALIGN	32
-$L$sqr4x_outer::
-	mov	r14,QWORD PTR[((-32))+rbp*1+rsi]
-	lea	rdi,QWORD PTR[((48+8))+r9*2+rsp]
-	mov	rax,QWORD PTR[((-24))+rbp*1+rsi]
-	lea	rdi,QWORD PTR[((-32))+rbp*1+rdi]
-	mov	rbx,QWORD PTR[((-16))+rbp*1+rsi]
+$L$sqr4x_outer:
+	mov	r14,QWORD[((-32))+rbp*1+rsi]
+	lea	rdi,[((48+8))+r9*2+rsp]
+	mov	rax,QWORD[((-24))+rbp*1+rsi]
+	lea	rdi,[((-32))+rbp*1+rdi]
+	mov	rbx,QWORD[((-16))+rbp*1+rsi]
 	mov	r15,rax
 
 	mul	r14
-	mov	r10,QWORD PTR[((-24))+rbp*1+rdi]
+	mov	r10,QWORD[((-24))+rbp*1+rdi]
 	add	r10,rax
 	mov	rax,rbx
 	adc	rdx,0
-	mov	QWORD PTR[((-24))+rbp*1+rdi],r10
+	mov	QWORD[((-24))+rbp*1+rdi],r10
 	mov	r11,rdx
 
 	mul	r14
 	add	r11,rax
 	mov	rax,rbx
 	adc	rdx,0
-	add	r11,QWORD PTR[((-16))+rbp*1+rdi]
+	add	r11,QWORD[((-16))+rbp*1+rdi]
 	mov	r10,rdx
 	adc	r10,0
-	mov	QWORD PTR[((-16))+rbp*1+rdi],r11
+	mov	QWORD[((-16))+rbp*1+rdi],r11
 
 	xor	r12,r12
 
-	mov	rbx,QWORD PTR[((-8))+rbp*1+rsi]
+	mov	rbx,QWORD[((-8))+rbp*1+rsi]
 	mul	r15
 	add	r12,rax
 	mov	rax,rbx
 	adc	rdx,0
-	add	r12,QWORD PTR[((-8))+rbp*1+rdi]
+	add	r12,QWORD[((-8))+rbp*1+rdi]
 	mov	r13,rdx
 	adc	r13,0
 
@@ -1126,27 +1127,27 @@
 	add	r10,r12
 	mov	r11,rdx
 	adc	r11,0
-	mov	QWORD PTR[((-8))+rbp*1+rdi],r10
+	mov	QWORD[((-8))+rbp*1+rdi],r10
 
-	lea	rcx,QWORD PTR[rbp]
-	jmp	$L$sqr4x_inner
+	lea	rcx,[rbp]
+	jmp	NEAR $L$sqr4x_inner
 
 ALIGN	32
-$L$sqr4x_inner::
-	mov	rbx,QWORD PTR[rcx*1+rsi]
+$L$sqr4x_inner:
+	mov	rbx,QWORD[rcx*1+rsi]
 	mul	r15
 	add	r13,rax
 	mov	rax,rbx
 	mov	r12,rdx
 	adc	r12,0
-	add	r13,QWORD PTR[rcx*1+rdi]
+	add	r13,QWORD[rcx*1+rdi]
 	adc	r12,0
 
-DB	067h
+DB	0x67
 	mul	r14
 	add	r11,rax
 	mov	rax,rbx
-	mov	rbx,QWORD PTR[8+rcx*1+rsi]
+	mov	rbx,QWORD[8+rcx*1+rsi]
 	mov	r10,rdx
 	adc	r10,0
 	add	r11,r13
@@ -1154,12 +1155,12 @@
 
 	mul	r15
 	add	r12,rax
-	mov	QWORD PTR[rcx*1+rdi],r11
+	mov	QWORD[rcx*1+rdi],r11
 	mov	rax,rbx
 	mov	r13,rdx
 	adc	r13,0
-	add	r12,QWORD PTR[8+rcx*1+rdi]
-	lea	rcx,QWORD PTR[16+rcx]
+	add	r12,QWORD[8+rcx*1+rdi]
+	lea	rcx,[16+rcx]
 	adc	r13,0
 
 	mul	r14
@@ -1169,31 +1170,31 @@
 	add	r10,r12
 	mov	r11,rdx
 	adc	r11,0
-	mov	QWORD PTR[((-8))+rcx*1+rdi],r10
+	mov	QWORD[((-8))+rcx*1+rdi],r10
 
 	cmp	rcx,0
-	jne	$L$sqr4x_inner
+	jne	NEAR $L$sqr4x_inner
 
-DB	067h
+DB	0x67
 	mul	r15
 	add	r13,rax
 	adc	rdx,0
 	add	r13,r11
 	adc	rdx,0
 
-	mov	QWORD PTR[rdi],r13
+	mov	QWORD[rdi],r13
 	mov	r12,rdx
-	mov	QWORD PTR[8+rdi],rdx
+	mov	QWORD[8+rdi],rdx
 
 	add	rbp,16
-	jnz	$L$sqr4x_outer
+	jnz	NEAR $L$sqr4x_outer
 
 
-	mov	r14,QWORD PTR[((-32))+rsi]
-	lea	rdi,QWORD PTR[((48+8))+r9*2+rsp]
-	mov	rax,QWORD PTR[((-24))+rsi]
-	lea	rdi,QWORD PTR[((-32))+rbp*1+rdi]
-	mov	rbx,QWORD PTR[((-16))+rsi]
+	mov	r14,QWORD[((-32))+rsi]
+	lea	rdi,[((48+8))+r9*2+rsp]
+	mov	rax,QWORD[((-24))+rsi]
+	lea	rdi,[((-32))+rbp*1+rdi]
+	mov	rbx,QWORD[((-16))+rsi]
 	mov	r15,rax
 
 	mul	r14
@@ -1205,17 +1206,17 @@
 	mul	r14
 	add	r11,rax
 	mov	rax,rbx
-	mov	QWORD PTR[((-24))+rdi],r10
+	mov	QWORD[((-24))+rdi],r10
 	mov	r10,rdx
 	adc	r10,0
 	add	r11,r13
-	mov	rbx,QWORD PTR[((-8))+rsi]
+	mov	rbx,QWORD[((-8))+rsi]
 	adc	r10,0
 
 	mul	r15
 	add	r12,rax
 	mov	rax,rbx
-	mov	QWORD PTR[((-16))+rdi],r11
+	mov	QWORD[((-16))+rdi],r11
 	mov	r13,rdx
 	adc	r13,0
 
@@ -1226,18 +1227,18 @@
 	adc	r11,0
 	add	r10,r12
 	adc	r11,0
-	mov	QWORD PTR[((-8))+rdi],r10
+	mov	QWORD[((-8))+rdi],r10
 
 	mul	r15
 	add	r13,rax
-	mov	rax,QWORD PTR[((-16))+rsi]
+	mov	rax,QWORD[((-16))+rsi]
 	adc	rdx,0
 	add	r13,r11
 	adc	rdx,0
 
-	mov	QWORD PTR[rdi],r13
+	mov	QWORD[rdi],r13
 	mov	r12,rdx
-	mov	QWORD PTR[8+rdi],rdx
+	mov	QWORD[8+rdi],rdx
 
 	mul	rbx
 	add	rbp,16
@@ -1247,216 +1248,216 @@
 
 	add	rax,r12
 	adc	rdx,0
-	mov	QWORD PTR[8+rdi],rax
-	mov	QWORD PTR[16+rdi],rdx
-	mov	QWORD PTR[24+rdi],r15
+	mov	QWORD[8+rdi],rax
+	mov	QWORD[16+rdi],rdx
+	mov	QWORD[24+rdi],r15
 
-	mov	rax,QWORD PTR[((-16))+rbp*1+rsi]
-	lea	rdi,QWORD PTR[((48+8))+rsp]
+	mov	rax,QWORD[((-16))+rbp*1+rsi]
+	lea	rdi,[((48+8))+rsp]
 	xor	r10,r10
-	mov	r11,QWORD PTR[8+rdi]
+	mov	r11,QWORD[8+rdi]
 
-	lea	r12,QWORD PTR[r10*2+r14]
+	lea	r12,[r10*2+r14]
 	shr	r10,63
-	lea	r13,QWORD PTR[r11*2+rcx]
+	lea	r13,[r11*2+rcx]
 	shr	r11,63
 	or	r13,r10
-	mov	r10,QWORD PTR[16+rdi]
+	mov	r10,QWORD[16+rdi]
 	mov	r14,r11
 	mul	rax
 	neg	r15
-	mov	r11,QWORD PTR[24+rdi]
+	mov	r11,QWORD[24+rdi]
 	adc	r12,rax
-	mov	rax,QWORD PTR[((-8))+rbp*1+rsi]
-	mov	QWORD PTR[rdi],r12
+	mov	rax,QWORD[((-8))+rbp*1+rsi]
+	mov	QWORD[rdi],r12
 	adc	r13,rdx
 
-	lea	rbx,QWORD PTR[r10*2+r14]
-	mov	QWORD PTR[8+rdi],r13
+	lea	rbx,[r10*2+r14]
+	mov	QWORD[8+rdi],r13
 	sbb	r15,r15
 	shr	r10,63
-	lea	r8,QWORD PTR[r11*2+rcx]
+	lea	r8,[r11*2+rcx]
 	shr	r11,63
 	or	r8,r10
-	mov	r10,QWORD PTR[32+rdi]
+	mov	r10,QWORD[32+rdi]
 	mov	r14,r11
 	mul	rax
 	neg	r15
-	mov	r11,QWORD PTR[40+rdi]
+	mov	r11,QWORD[40+rdi]
 	adc	rbx,rax
-	mov	rax,QWORD PTR[rbp*1+rsi]
-	mov	QWORD PTR[16+rdi],rbx
+	mov	rax,QWORD[rbp*1+rsi]
+	mov	QWORD[16+rdi],rbx
 	adc	r8,rdx
-	lea	rbp,QWORD PTR[16+rbp]
-	mov	QWORD PTR[24+rdi],r8
+	lea	rbp,[16+rbp]
+	mov	QWORD[24+rdi],r8
 	sbb	r15,r15
-	lea	rdi,QWORD PTR[64+rdi]
-	jmp	$L$sqr4x_shift_n_add
+	lea	rdi,[64+rdi]
+	jmp	NEAR $L$sqr4x_shift_n_add
 
 ALIGN	32
-$L$sqr4x_shift_n_add::
-	lea	r12,QWORD PTR[r10*2+r14]
+$L$sqr4x_shift_n_add:
+	lea	r12,[r10*2+r14]
 	shr	r10,63
-	lea	r13,QWORD PTR[r11*2+rcx]
+	lea	r13,[r11*2+rcx]
 	shr	r11,63
 	or	r13,r10
-	mov	r10,QWORD PTR[((-16))+rdi]
+	mov	r10,QWORD[((-16))+rdi]
 	mov	r14,r11
 	mul	rax
 	neg	r15
-	mov	r11,QWORD PTR[((-8))+rdi]
+	mov	r11,QWORD[((-8))+rdi]
 	adc	r12,rax
-	mov	rax,QWORD PTR[((-8))+rbp*1+rsi]
-	mov	QWORD PTR[((-32))+rdi],r12
+	mov	rax,QWORD[((-8))+rbp*1+rsi]
+	mov	QWORD[((-32))+rdi],r12
 	adc	r13,rdx
 
-	lea	rbx,QWORD PTR[r10*2+r14]
-	mov	QWORD PTR[((-24))+rdi],r13
+	lea	rbx,[r10*2+r14]
+	mov	QWORD[((-24))+rdi],r13
 	sbb	r15,r15
 	shr	r10,63
-	lea	r8,QWORD PTR[r11*2+rcx]
+	lea	r8,[r11*2+rcx]
 	shr	r11,63
 	or	r8,r10
-	mov	r10,QWORD PTR[rdi]
+	mov	r10,QWORD[rdi]
 	mov	r14,r11
 	mul	rax
 	neg	r15
-	mov	r11,QWORD PTR[8+rdi]
+	mov	r11,QWORD[8+rdi]
 	adc	rbx,rax
-	mov	rax,QWORD PTR[rbp*1+rsi]
-	mov	QWORD PTR[((-16))+rdi],rbx
+	mov	rax,QWORD[rbp*1+rsi]
+	mov	QWORD[((-16))+rdi],rbx
 	adc	r8,rdx
 
-	lea	r12,QWORD PTR[r10*2+r14]
-	mov	QWORD PTR[((-8))+rdi],r8
+	lea	r12,[r10*2+r14]
+	mov	QWORD[((-8))+rdi],r8
 	sbb	r15,r15
 	shr	r10,63
-	lea	r13,QWORD PTR[r11*2+rcx]
+	lea	r13,[r11*2+rcx]
 	shr	r11,63
 	or	r13,r10
-	mov	r10,QWORD PTR[16+rdi]
+	mov	r10,QWORD[16+rdi]
 	mov	r14,r11
 	mul	rax
 	neg	r15
-	mov	r11,QWORD PTR[24+rdi]
+	mov	r11,QWORD[24+rdi]
 	adc	r12,rax
-	mov	rax,QWORD PTR[8+rbp*1+rsi]
-	mov	QWORD PTR[rdi],r12
+	mov	rax,QWORD[8+rbp*1+rsi]
+	mov	QWORD[rdi],r12
 	adc	r13,rdx
 
-	lea	rbx,QWORD PTR[r10*2+r14]
-	mov	QWORD PTR[8+rdi],r13
+	lea	rbx,[r10*2+r14]
+	mov	QWORD[8+rdi],r13
 	sbb	r15,r15
 	shr	r10,63
-	lea	r8,QWORD PTR[r11*2+rcx]
+	lea	r8,[r11*2+rcx]
 	shr	r11,63
 	or	r8,r10
-	mov	r10,QWORD PTR[32+rdi]
+	mov	r10,QWORD[32+rdi]
 	mov	r14,r11
 	mul	rax
 	neg	r15
-	mov	r11,QWORD PTR[40+rdi]
+	mov	r11,QWORD[40+rdi]
 	adc	rbx,rax
-	mov	rax,QWORD PTR[16+rbp*1+rsi]
-	mov	QWORD PTR[16+rdi],rbx
+	mov	rax,QWORD[16+rbp*1+rsi]
+	mov	QWORD[16+rdi],rbx
 	adc	r8,rdx
-	mov	QWORD PTR[24+rdi],r8
+	mov	QWORD[24+rdi],r8
 	sbb	r15,r15
-	lea	rdi,QWORD PTR[64+rdi]
+	lea	rdi,[64+rdi]
 	add	rbp,32
-	jnz	$L$sqr4x_shift_n_add
+	jnz	NEAR $L$sqr4x_shift_n_add
 
-	lea	r12,QWORD PTR[r10*2+r14]
-DB	067h
+	lea	r12,[r10*2+r14]
+DB	0x67
 	shr	r10,63
-	lea	r13,QWORD PTR[r11*2+rcx]
+	lea	r13,[r11*2+rcx]
 	shr	r11,63
 	or	r13,r10
-	mov	r10,QWORD PTR[((-16))+rdi]
+	mov	r10,QWORD[((-16))+rdi]
 	mov	r14,r11
 	mul	rax
 	neg	r15
-	mov	r11,QWORD PTR[((-8))+rdi]
+	mov	r11,QWORD[((-8))+rdi]
 	adc	r12,rax
-	mov	rax,QWORD PTR[((-8))+rsi]
-	mov	QWORD PTR[((-32))+rdi],r12
+	mov	rax,QWORD[((-8))+rsi]
+	mov	QWORD[((-32))+rdi],r12
 	adc	r13,rdx
 
-	lea	rbx,QWORD PTR[r10*2+r14]
-	mov	QWORD PTR[((-24))+rdi],r13
+	lea	rbx,[r10*2+r14]
+	mov	QWORD[((-24))+rdi],r13
 	sbb	r15,r15
 	shr	r10,63
-	lea	r8,QWORD PTR[r11*2+rcx]
+	lea	r8,[r11*2+rcx]
 	shr	r11,63
 	or	r8,r10
 	mul	rax
 	neg	r15
 	adc	rbx,rax
 	adc	r8,rdx
-	mov	QWORD PTR[((-16))+rdi],rbx
-	mov	QWORD PTR[((-8))+rdi],r8
+	mov	QWORD[((-16))+rdi],rbx
+	mov	QWORD[((-8))+rdi],r8
 DB	102,72,15,126,213
-sqr8x_reduction::
+sqr8x_reduction:
 	xor	rax,rax
-	lea	rcx,QWORD PTR[r9*2+rbp]
-	lea	rdx,QWORD PTR[((48+8))+r9*2+rsp]
-	mov	QWORD PTR[((0+8))+rsp],rcx
-	lea	rdi,QWORD PTR[((48+8))+r9*1+rsp]
-	mov	QWORD PTR[((8+8))+rsp],rdx
+	lea	rcx,[r9*2+rbp]
+	lea	rdx,[((48+8))+r9*2+rsp]
+	mov	QWORD[((0+8))+rsp],rcx
+	lea	rdi,[((48+8))+r9*1+rsp]
+	mov	QWORD[((8+8))+rsp],rdx
 	neg	r9
-	jmp	$L$8x_reduction_loop
+	jmp	NEAR $L$8x_reduction_loop
 
 ALIGN	32
-$L$8x_reduction_loop::
-	lea	rdi,QWORD PTR[r9*1+rdi]
-DB	066h
-	mov	rbx,QWORD PTR[rdi]
-	mov	r9,QWORD PTR[8+rdi]
-	mov	r10,QWORD PTR[16+rdi]
-	mov	r11,QWORD PTR[24+rdi]
-	mov	r12,QWORD PTR[32+rdi]
-	mov	r13,QWORD PTR[40+rdi]
-	mov	r14,QWORD PTR[48+rdi]
-	mov	r15,QWORD PTR[56+rdi]
-	mov	QWORD PTR[rdx],rax
-	lea	rdi,QWORD PTR[64+rdi]
+$L$8x_reduction_loop:
+	lea	rdi,[r9*1+rdi]
+DB	0x66
+	mov	rbx,QWORD[rdi]
+	mov	r9,QWORD[8+rdi]
+	mov	r10,QWORD[16+rdi]
+	mov	r11,QWORD[24+rdi]
+	mov	r12,QWORD[32+rdi]
+	mov	r13,QWORD[40+rdi]
+	mov	r14,QWORD[48+rdi]
+	mov	r15,QWORD[56+rdi]
+	mov	QWORD[rdx],rax
+	lea	rdi,[64+rdi]
 
-DB	067h
+DB	0x67
 	mov	r8,rbx
-	imul	rbx,QWORD PTR[((32+8))+rsp]
-	mov	rax,QWORD PTR[rbp]
+	imul	rbx,QWORD[((32+8))+rsp]
+	mov	rax,QWORD[rbp]
 	mov	ecx,8
-	jmp	$L$8x_reduce
+	jmp	NEAR $L$8x_reduce
 
 ALIGN	32
-$L$8x_reduce::
+$L$8x_reduce:
 	mul	rbx
-	mov	rax,QWORD PTR[16+rbp]
+	mov	rax,QWORD[16+rbp]
 	neg	r8
 	mov	r8,rdx
 	adc	r8,0
 
 	mul	rbx
 	add	r9,rax
-	mov	rax,QWORD PTR[32+rbp]
+	mov	rax,QWORD[32+rbp]
 	adc	rdx,0
 	add	r8,r9
-	mov	QWORD PTR[((48-8+8))+rcx*8+rsp],rbx
+	mov	QWORD[((48-8+8))+rcx*8+rsp],rbx
 	mov	r9,rdx
 	adc	r9,0
 
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[48+rbp]
+	mov	rax,QWORD[48+rbp]
 	adc	rdx,0
 	add	r9,r10
-	mov	rsi,QWORD PTR[((32+8))+rsp]
+	mov	rsi,QWORD[((32+8))+rsp]
 	mov	r10,rdx
 	adc	r10,0
 
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[64+rbp]
+	mov	rax,QWORD[64+rbp]
 	adc	rdx,0
 	imul	rsi,r8
 	add	r10,r11
@@ -1465,7 +1466,7 @@
 
 	mul	rbx
 	add	r12,rax
-	mov	rax,QWORD PTR[80+rbp]
+	mov	rax,QWORD[80+rbp]
 	adc	rdx,0
 	add	r11,r12
 	mov	r12,rdx
@@ -1473,7 +1474,7 @@
 
 	mul	rbx
 	add	r13,rax
-	mov	rax,QWORD PTR[96+rbp]
+	mov	rax,QWORD[96+rbp]
 	adc	rdx,0
 	add	r12,r13
 	mov	r13,rdx
@@ -1481,7 +1482,7 @@
 
 	mul	rbx
 	add	r14,rax
-	mov	rax,QWORD PTR[112+rbp]
+	mov	rax,QWORD[112+rbp]
 	adc	rdx,0
 	add	r13,r14
 	mov	r14,rdx
@@ -1490,58 +1491,58 @@
 	mul	rbx
 	mov	rbx,rsi
 	add	r15,rax
-	mov	rax,QWORD PTR[rbp]
+	mov	rax,QWORD[rbp]
 	adc	rdx,0
 	add	r14,r15
 	mov	r15,rdx
 	adc	r15,0
 
 	dec	ecx
-	jnz	$L$8x_reduce
+	jnz	NEAR $L$8x_reduce
 
-	lea	rbp,QWORD PTR[128+rbp]
+	lea	rbp,[128+rbp]
 	xor	rax,rax
-	mov	rdx,QWORD PTR[((8+8))+rsp]
-	cmp	rbp,QWORD PTR[((0+8))+rsp]
-	jae	$L$8x_no_tail
+	mov	rdx,QWORD[((8+8))+rsp]
+	cmp	rbp,QWORD[((0+8))+rsp]
+	jae	NEAR $L$8x_no_tail
 
-DB	066h
-	add	r8,QWORD PTR[rdi]
-	adc	r9,QWORD PTR[8+rdi]
-	adc	r10,QWORD PTR[16+rdi]
-	adc	r11,QWORD PTR[24+rdi]
-	adc	r12,QWORD PTR[32+rdi]
-	adc	r13,QWORD PTR[40+rdi]
-	adc	r14,QWORD PTR[48+rdi]
-	adc	r15,QWORD PTR[56+rdi]
+DB	0x66
+	add	r8,QWORD[rdi]
+	adc	r9,QWORD[8+rdi]
+	adc	r10,QWORD[16+rdi]
+	adc	r11,QWORD[24+rdi]
+	adc	r12,QWORD[32+rdi]
+	adc	r13,QWORD[40+rdi]
+	adc	r14,QWORD[48+rdi]
+	adc	r15,QWORD[56+rdi]
 	sbb	rsi,rsi
 
-	mov	rbx,QWORD PTR[((48+56+8))+rsp]
+	mov	rbx,QWORD[((48+56+8))+rsp]
 	mov	ecx,8
-	mov	rax,QWORD PTR[rbp]
-	jmp	$L$8x_tail
+	mov	rax,QWORD[rbp]
+	jmp	NEAR $L$8x_tail
 
 ALIGN	32
-$L$8x_tail::
+$L$8x_tail:
 	mul	rbx
 	add	r8,rax
-	mov	rax,QWORD PTR[16+rbp]
-	mov	QWORD PTR[rdi],r8
+	mov	rax,QWORD[16+rbp]
+	mov	QWORD[rdi],r8
 	mov	r8,rdx
 	adc	r8,0
 
 	mul	rbx
 	add	r9,rax
-	mov	rax,QWORD PTR[32+rbp]
+	mov	rax,QWORD[32+rbp]
 	adc	rdx,0
 	add	r8,r9
-	lea	rdi,QWORD PTR[8+rdi]
+	lea	rdi,[8+rdi]
 	mov	r9,rdx
 	adc	r9,0
 
 	mul	rbx
 	add	r10,rax
-	mov	rax,QWORD PTR[48+rbp]
+	mov	rax,QWORD[48+rbp]
 	adc	rdx,0
 	add	r9,r10
 	mov	r10,rdx
@@ -1549,7 +1550,7 @@
 
 	mul	rbx
 	add	r11,rax
-	mov	rax,QWORD PTR[64+rbp]
+	mov	rax,QWORD[64+rbp]
 	adc	rdx,0
 	add	r10,r11
 	mov	r11,rdx
@@ -1557,7 +1558,7 @@
 
 	mul	rbx
 	add	r12,rax
-	mov	rax,QWORD PTR[80+rbp]
+	mov	rax,QWORD[80+rbp]
 	adc	rdx,0
 	add	r11,r12
 	mov	r12,rdx
@@ -1565,7 +1566,7 @@
 
 	mul	rbx
 	add	r13,rax
-	mov	rax,QWORD PTR[96+rbp]
+	mov	rax,QWORD[96+rbp]
 	adc	rdx,0
 	add	r12,r13
 	mov	r13,rdx
@@ -1573,143 +1574,143 @@
 
 	mul	rbx
 	add	r14,rax
-	mov	rax,QWORD PTR[112+rbp]
+	mov	rax,QWORD[112+rbp]
 	adc	rdx,0
 	add	r13,r14
 	mov	r14,rdx
 	adc	r14,0
 
 	mul	rbx
-	mov	rbx,QWORD PTR[((48-16+8))+rcx*8+rsp]
+	mov	rbx,QWORD[((48-16+8))+rcx*8+rsp]
 	add	r15,rax
 	adc	rdx,0
 	add	r14,r15
-	mov	rax,QWORD PTR[rbp]
+	mov	rax,QWORD[rbp]
 	mov	r15,rdx
 	adc	r15,0
 
 	dec	ecx
-	jnz	$L$8x_tail
+	jnz	NEAR $L$8x_tail
 
-	lea	rbp,QWORD PTR[128+rbp]
-	mov	rdx,QWORD PTR[((8+8))+rsp]
-	cmp	rbp,QWORD PTR[((0+8))+rsp]
-	jae	$L$8x_tail_done
+	lea	rbp,[128+rbp]
+	mov	rdx,QWORD[((8+8))+rsp]
+	cmp	rbp,QWORD[((0+8))+rsp]
+	jae	NEAR $L$8x_tail_done
 
-	mov	rbx,QWORD PTR[((48+56+8))+rsp]
+	mov	rbx,QWORD[((48+56+8))+rsp]
 	neg	rsi
-	mov	rax,QWORD PTR[rbp]
-	adc	r8,QWORD PTR[rdi]
-	adc	r9,QWORD PTR[8+rdi]
-	adc	r10,QWORD PTR[16+rdi]
-	adc	r11,QWORD PTR[24+rdi]
-	adc	r12,QWORD PTR[32+rdi]
-	adc	r13,QWORD PTR[40+rdi]
-	adc	r14,QWORD PTR[48+rdi]
-	adc	r15,QWORD PTR[56+rdi]
+	mov	rax,QWORD[rbp]
+	adc	r8,QWORD[rdi]
+	adc	r9,QWORD[8+rdi]
+	adc	r10,QWORD[16+rdi]
+	adc	r11,QWORD[24+rdi]
+	adc	r12,QWORD[32+rdi]
+	adc	r13,QWORD[40+rdi]
+	adc	r14,QWORD[48+rdi]
+	adc	r15,QWORD[56+rdi]
 	sbb	rsi,rsi
 
 	mov	ecx,8
-	jmp	$L$8x_tail
+	jmp	NEAR $L$8x_tail
 
 ALIGN	32
-$L$8x_tail_done::
-	add	r8,QWORD PTR[rdx]
+$L$8x_tail_done:
+	add	r8,QWORD[rdx]
 	xor	rax,rax
 
 	neg	rsi
-$L$8x_no_tail::
-	adc	r8,QWORD PTR[rdi]
-	adc	r9,QWORD PTR[8+rdi]
-	adc	r10,QWORD PTR[16+rdi]
-	adc	r11,QWORD PTR[24+rdi]
-	adc	r12,QWORD PTR[32+rdi]
-	adc	r13,QWORD PTR[40+rdi]
-	adc	r14,QWORD PTR[48+rdi]
-	adc	r15,QWORD PTR[56+rdi]
+$L$8x_no_tail:
+	adc	r8,QWORD[rdi]
+	adc	r9,QWORD[8+rdi]
+	adc	r10,QWORD[16+rdi]
+	adc	r11,QWORD[24+rdi]
+	adc	r12,QWORD[32+rdi]
+	adc	r13,QWORD[40+rdi]
+	adc	r14,QWORD[48+rdi]
+	adc	r15,QWORD[56+rdi]
 	adc	rax,0
-	mov	rcx,QWORD PTR[((-16))+rbp]
+	mov	rcx,QWORD[((-16))+rbp]
 	xor	rsi,rsi
 
 DB	102,72,15,126,213
 
-	mov	QWORD PTR[rdi],r8
-	mov	QWORD PTR[8+rdi],r9
+	mov	QWORD[rdi],r8
+	mov	QWORD[8+rdi],r9
 DB	102,73,15,126,217
-	mov	QWORD PTR[16+rdi],r10
-	mov	QWORD PTR[24+rdi],r11
-	mov	QWORD PTR[32+rdi],r12
-	mov	QWORD PTR[40+rdi],r13
-	mov	QWORD PTR[48+rdi],r14
-	mov	QWORD PTR[56+rdi],r15
-	lea	rdi,QWORD PTR[64+rdi]
+	mov	QWORD[16+rdi],r10
+	mov	QWORD[24+rdi],r11
+	mov	QWORD[32+rdi],r12
+	mov	QWORD[40+rdi],r13
+	mov	QWORD[48+rdi],r14
+	mov	QWORD[56+rdi],r15
+	lea	rdi,[64+rdi]
 
 	cmp	rdi,rdx
-	jb	$L$8x_reduction_loop
+	jb	NEAR $L$8x_reduction_loop
 
 	sub	rcx,r15
-	lea	rbx,QWORD PTR[r9*1+rdi]
+	lea	rbx,[r9*1+rdi]
 	adc	rsi,rsi
 	mov	rcx,r9
 	or	rax,rsi
 DB	102,72,15,126,207
 	xor	rax,1
 DB	102,72,15,126,206
-	lea	rbp,QWORD PTR[rax*8+rbp]
+	lea	rbp,[rax*8+rbp]
 	sar	rcx,3+2
-	jmp	$L$sqr4x_sub
+	jmp	NEAR $L$sqr4x_sub
 
 ALIGN	32
-$L$sqr4x_sub::
-DB	066h
-	mov	r12,QWORD PTR[rbx]
-	mov	r13,QWORD PTR[8+rbx]
-	sbb	r12,QWORD PTR[rbp]
-	mov	r14,QWORD PTR[16+rbx]
-	sbb	r13,QWORD PTR[16+rbp]
-	mov	r15,QWORD PTR[24+rbx]
-	lea	rbx,QWORD PTR[32+rbx]
-	sbb	r14,QWORD PTR[32+rbp]
-	mov	QWORD PTR[rdi],r12
-	sbb	r15,QWORD PTR[48+rbp]
-	lea	rbp,QWORD PTR[64+rbp]
-	mov	QWORD PTR[8+rdi],r13
-	mov	QWORD PTR[16+rdi],r14
-	mov	QWORD PTR[24+rdi],r15
-	lea	rdi,QWORD PTR[32+rdi]
+$L$sqr4x_sub:
+DB	0x66
+	mov	r12,QWORD[rbx]
+	mov	r13,QWORD[8+rbx]
+	sbb	r12,QWORD[rbp]
+	mov	r14,QWORD[16+rbx]
+	sbb	r13,QWORD[16+rbp]
+	mov	r15,QWORD[24+rbx]
+	lea	rbx,[32+rbx]
+	sbb	r14,QWORD[32+rbp]
+	mov	QWORD[rdi],r12
+	sbb	r15,QWORD[48+rbp]
+	lea	rbp,[64+rbp]
+	mov	QWORD[8+rdi],r13
+	mov	QWORD[16+rdi],r14
+	mov	QWORD[24+rdi],r15
+	lea	rdi,[32+rdi]
 
 	inc	rcx
-	jnz	$L$sqr4x_sub
+	jnz	NEAR $L$sqr4x_sub
 	mov	r10,r9
 	neg	r9
 	DB	0F3h,0C3h		;repret
-bn_sqr8x_internal	ENDP
-PUBLIC	bn_from_montgomery
+
+global	bn_from_montgomery
 
 ALIGN	32
-bn_from_montgomery	PROC PUBLIC
-	test	DWORD PTR[48+rsp],7
-	jz	bn_from_mont8x
+bn_from_montgomery:
+	test	DWORD[48+rsp],7
+	jz	NEAR bn_from_mont8x
 	xor	eax,eax
 	DB	0F3h,0C3h		;repret
-bn_from_montgomery	ENDP
+
 
 
 ALIGN	32
-bn_from_mont8x	PROC PRIVATE
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+bn_from_mont8x:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_bn_from_mont8x::
+$L$SEH_begin_bn_from_mont8x:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 	mov	rcx,r9
-	mov	r8,QWORD PTR[40+rsp]
-	mov	r9,QWORD PTR[48+rsp]
+	mov	r8,QWORD[40+rsp]
+	mov	r9,QWORD[48+rsp]
 
 
-DB	067h
+DB	0x67
 	mov	rax,rsp
 	push	rbx
 	push	rbp
@@ -1717,15 +1718,15 @@
 	push	r13
 	push	r14
 	push	r15
-	lea	rsp,QWORD PTR[((-40))+rsp]
-	movaps	XMMWORD PTR[rsp],xmm6
-	movaps	XMMWORD PTR[16+rsp],xmm7
-DB	067h
+	lea	rsp,[((-40))+rsp]
+	movaps	XMMWORD[rsp],xmm6
+	movaps	XMMWORD[16+rsp],xmm7
+DB	0x67
 	mov	r10d,r9d
 	shl	r9d,3
 	shl	r10d,3+2
 	neg	r9
-	mov	r8,QWORD PTR[r8]
+	mov	r8,QWORD[r8]
 
 
 
@@ -1733,24 +1734,24 @@
 
 
 
-	lea	r11,QWORD PTR[((-64))+r9*2+rsp]
+	lea	r11,[((-64))+r9*2+rsp]
 	sub	r11,rsi
 	and	r11,4095
 	cmp	r10,r11
-	jb	$L$from_sp_alt
+	jb	NEAR $L$from_sp_alt
 	sub	rsp,r11
-	lea	rsp,QWORD PTR[((-64))+r9*2+rsp]
-	jmp	$L$from_sp_done
+	lea	rsp,[((-64))+r9*2+rsp]
+	jmp	NEAR $L$from_sp_done
 
 ALIGN	32
-$L$from_sp_alt::
-	lea	r10,QWORD PTR[((4096-64))+r9*2]
-	lea	rsp,QWORD PTR[((-64))+r9*2+rsp]
+$L$from_sp_alt:
+	lea	r10,[((4096-64))+r9*2]
+	lea	rsp,[((-64))+r9*2+rsp]
 	sub	r11,r10
 	mov	r10,0
 	cmovc	r11,r10
 	sub	rsp,r11
-$L$from_sp_done::
+$L$from_sp_done:
 	and	rsp,-64
 	mov	r10,r9
 	neg	r9
@@ -1764,136 +1765,135 @@
 
 
 
-	mov	QWORD PTR[32+rsp],r8
-	mov	QWORD PTR[40+rsp],rax
-$L$from_body::
+	mov	QWORD[32+rsp],r8
+	mov	QWORD[40+rsp],rax
+$L$from_body:
 	mov	r11,r9
-	lea	rax,QWORD PTR[48+rsp]
+	lea	rax,[48+rsp]
 	pxor	xmm0,xmm0
-	jmp	$L$mul_by_1
+	jmp	NEAR $L$mul_by_1
 
 ALIGN	32
-$L$mul_by_1::
-	movdqu	xmm1,XMMWORD PTR[rsi]
-	movdqu	xmm2,XMMWORD PTR[16+rsi]
-	movdqu	xmm3,XMMWORD PTR[32+rsi]
-	movdqa	XMMWORD PTR[r9*1+rax],xmm0
-	movdqu	xmm4,XMMWORD PTR[48+rsi]
-	movdqa	XMMWORD PTR[16+r9*1+rax],xmm0
-DB	048h,08dh,0b6h,040h,000h,000h,000h
-	movdqa	XMMWORD PTR[rax],xmm1
-	movdqa	XMMWORD PTR[32+r9*1+rax],xmm0
-	movdqa	XMMWORD PTR[16+rax],xmm2
-	movdqa	XMMWORD PTR[48+r9*1+rax],xmm0
-	movdqa	XMMWORD PTR[32+rax],xmm3
-	movdqa	XMMWORD PTR[48+rax],xmm4
-	lea	rax,QWORD PTR[64+rax]
+$L$mul_by_1:
+	movdqu	xmm1,XMMWORD[rsi]
+	movdqu	xmm2,XMMWORD[16+rsi]
+	movdqu	xmm3,XMMWORD[32+rsi]
+	movdqa	XMMWORD[r9*1+rax],xmm0
+	movdqu	xmm4,XMMWORD[48+rsi]
+	movdqa	XMMWORD[16+r9*1+rax],xmm0
+DB	0x48,0x8d,0xb6,0x40,0x00,0x00,0x00
+	movdqa	XMMWORD[rax],xmm1
+	movdqa	XMMWORD[32+r9*1+rax],xmm0
+	movdqa	XMMWORD[16+rax],xmm2
+	movdqa	XMMWORD[48+r9*1+rax],xmm0
+	movdqa	XMMWORD[32+rax],xmm3
+	movdqa	XMMWORD[48+rax],xmm4
+	lea	rax,[64+rax]
 	sub	r11,64
-	jnz	$L$mul_by_1
+	jnz	NEAR $L$mul_by_1
 
 DB	102,72,15,110,207
 DB	102,72,15,110,209
-DB	067h
+DB	0x67
 	mov	rbp,rcx
 DB	102,73,15,110,218
 	call	sqr8x_reduction
 
 	pxor	xmm0,xmm0
-	lea	rax,QWORD PTR[48+rsp]
-	mov	rsi,QWORD PTR[40+rsp]
-	jmp	$L$from_mont_zero
+	lea	rax,[48+rsp]
+	mov	rsi,QWORD[40+rsp]
+	jmp	NEAR $L$from_mont_zero
 
 ALIGN	32
-$L$from_mont_zero::
-	movdqa	XMMWORD PTR[rax],xmm0
-	movdqa	XMMWORD PTR[16+rax],xmm0
-	movdqa	XMMWORD PTR[32+rax],xmm0
-	movdqa	XMMWORD PTR[48+rax],xmm0
-	lea	rax,QWORD PTR[64+rax]
+$L$from_mont_zero:
+	movdqa	XMMWORD[rax],xmm0
+	movdqa	XMMWORD[16+rax],xmm0
+	movdqa	XMMWORD[32+rax],xmm0
+	movdqa	XMMWORD[48+rax],xmm0
+	lea	rax,[64+rax]
 	sub	r9,32
-	jnz	$L$from_mont_zero
+	jnz	NEAR $L$from_mont_zero
 
 	mov	rax,1
-	mov	r15,QWORD PTR[((-48))+rsi]
-	mov	r14,QWORD PTR[((-40))+rsi]
-	mov	r13,QWORD PTR[((-32))+rsi]
-	mov	r12,QWORD PTR[((-24))+rsi]
-	mov	rbp,QWORD PTR[((-16))+rsi]
-	mov	rbx,QWORD PTR[((-8))+rsi]
-	lea	rsp,QWORD PTR[rsi]
-$L$from_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	mov	r15,QWORD[((-48))+rsi]
+	mov	r14,QWORD[((-40))+rsi]
+	mov	r13,QWORD[((-32))+rsi]
+	mov	r12,QWORD[((-24))+rsi]
+	mov	rbp,QWORD[((-16))+rsi]
+	mov	rbx,QWORD[((-8))+rsi]
+	lea	rsp,[rsi]
+$L$from_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_bn_from_mont8x::
-bn_from_mont8x	ENDP
-PUBLIC	bn_scatter5
+$L$SEH_end_bn_from_mont8x:
+global	bn_scatter5
 
 ALIGN	16
-bn_scatter5	PROC PUBLIC
+bn_scatter5:
 	cmp	edx,0
-	jz	$L$scatter_epilogue
-	lea	r8,QWORD PTR[r9*8+r8]
-$L$scatter::
-	mov	rax,QWORD PTR[rcx]
-	lea	rcx,QWORD PTR[8+rcx]
-	mov	QWORD PTR[r8],rax
-	lea	r8,QWORD PTR[256+r8]
+	jz	NEAR $L$scatter_epilogue
+	lea	r8,[r9*8+r8]
+$L$scatter:
+	mov	rax,QWORD[rcx]
+	lea	rcx,[8+rcx]
+	mov	QWORD[r8],rax
+	lea	r8,[256+r8]
 	sub	edx,1
-	jnz	$L$scatter
-$L$scatter_epilogue::
+	jnz	NEAR $L$scatter
+$L$scatter_epilogue:
 	DB	0F3h,0C3h		;repret
-bn_scatter5	ENDP
 
-PUBLIC	bn_gather5
+
+global	bn_gather5
 
 ALIGN	16
-bn_gather5	PROC PUBLIC
-$L$SEH_begin_bn_gather5::
+bn_gather5:
+$L$SEH_begin_bn_gather5:
 
-DB	048h,083h,0ech,028h
-DB	00fh,029h,034h,024h
-DB	00fh,029h,07ch,024h,010h
+DB	0x48,0x83,0xec,0x28
+DB	0x0f,0x29,0x34,0x24
+DB	0x0f,0x29,0x7c,0x24,0x10
 	mov	r11d,r9d
 	shr	r9d,3
 	and	r11,7
 	not	r9d
-	lea	rax,QWORD PTR[$L$magic_masks]
+	lea	rax,[$L$magic_masks]
 	and	r9d,3
-	lea	r8,QWORD PTR[128+r11*8+r8]
-	movq	xmm4,QWORD PTR[r9*8+rax]
-	movq	xmm5,QWORD PTR[8+r9*8+rax]
-	movq	xmm6,QWORD PTR[16+r9*8+rax]
-	movq	xmm7,QWORD PTR[24+r9*8+rax]
-	jmp	$L$gather
+	lea	r8,[128+r11*8+r8]
+	movq	xmm4,QWORD[r9*8+rax]
+	movq	xmm5,QWORD[8+r9*8+rax]
+	movq	xmm6,QWORD[16+r9*8+rax]
+	movq	xmm7,QWORD[24+r9*8+rax]
+	jmp	NEAR $L$gather
 ALIGN	16
-$L$gather::
-	movq	xmm0,QWORD PTR[(((-128)))+r8]
-	movq	xmm1,QWORD PTR[((-64))+r8]
+$L$gather:
+	movq	xmm0,QWORD[(((-128)))+r8]
+	movq	xmm1,QWORD[((-64))+r8]
 	pand	xmm0,xmm4
-	movq	xmm2,QWORD PTR[r8]
+	movq	xmm2,QWORD[r8]
 	pand	xmm1,xmm5
-	movq	xmm3,QWORD PTR[64+r8]
+	movq	xmm3,QWORD[64+r8]
 	pand	xmm2,xmm6
 	por	xmm0,xmm1
 	pand	xmm3,xmm7
-DB	067h,067h
+DB	0x67,0x67
 	por	xmm0,xmm2
-	lea	r8,QWORD PTR[256+r8]
+	lea	r8,[256+r8]
 	por	xmm0,xmm3
 
-	movq	QWORD PTR[rcx],xmm0
-	lea	rcx,QWORD PTR[8+rcx]
+	movq	QWORD[rcx],xmm0
+	lea	rcx,[8+rcx]
 	sub	edx,1
-	jnz	$L$gather
-	movaps	xmm6,XMMWORD PTR[rsp]
-	movaps	xmm7,XMMWORD PTR[16+rsp]
-	lea	rsp,QWORD PTR[40+rsp]
+	jnz	NEAR $L$gather
+	movaps	xmm6,XMMWORD[rsp]
+	movaps	xmm7,XMMWORD[16+rsp]
+	lea	rsp,[40+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_bn_gather5::
-bn_gather5	ENDP
+$L$SEH_end_bn_gather5:
+
 ALIGN	64
-$L$magic_masks::
+$L$magic_masks:
 	DD	0,0,0,0,0,0,-1,-1
 	DD	0,0,0,0,0,0,0,0
 DB	77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105
@@ -1902,10 +1902,10 @@
 DB	114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79
 DB	71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111
 DB	112,101,110,115,115,108,46,111,114,103,62,0
-EXTERN	__imp_RtlVirtualUnwind:NEAR
+EXTERN	__imp_RtlVirtualUnwind
 
 ALIGN	16
-mul_handler	PROC PRIVATE
+mul_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -1917,79 +1917,79 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[120+r8]
-	mov	rbx,QWORD PTR[248+r8]
+	mov	rax,QWORD[120+r8]
+	mov	rbx,QWORD[248+r8]
 
-	mov	rsi,QWORD PTR[8+r9]
-	mov	r11,QWORD PTR[56+r9]
+	mov	rsi,QWORD[8+r9]
+	mov	r11,QWORD[56+r9]
 
-	mov	r10d,DWORD PTR[r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jb	$L$common_seh_tail
+	jb	NEAR $L$common_seh_tail
 
-	mov	rax,QWORD PTR[152+r8]
+	mov	rax,QWORD[152+r8]
 
-	mov	r10d,DWORD PTR[4+r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[4+r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jae	$L$common_seh_tail
+	jae	NEAR $L$common_seh_tail
 
-	lea	r10,QWORD PTR[$L$mul_epilogue]
+	lea	r10,[$L$mul_epilogue]
 	cmp	rbx,r10
-	jb	$L$body_40
+	jb	NEAR $L$body_40
 
-	mov	r10,QWORD PTR[192+r8]
-	mov	rax,QWORD PTR[8+r10*8+rax]
-	jmp	$L$body_proceed
+	mov	r10,QWORD[192+r8]
+	mov	rax,QWORD[8+r10*8+rax]
+	jmp	NEAR $L$body_proceed
 
-$L$body_40::
-	mov	rax,QWORD PTR[40+rax]
-$L$body_proceed::
+$L$body_40:
+	mov	rax,QWORD[40+rax]
+$L$body_proceed:
 
-	movaps	xmm0,XMMWORD PTR[((-88))+rax]
-	movaps	xmm1,XMMWORD PTR[((-72))+rax]
+	movaps	xmm0,XMMWORD[((-88))+rax]
+	movaps	xmm1,XMMWORD[((-72))+rax]
 
-	mov	rbx,QWORD PTR[((-8))+rax]
-	mov	rbp,QWORD PTR[((-16))+rax]
-	mov	r12,QWORD PTR[((-24))+rax]
-	mov	r13,QWORD PTR[((-32))+rax]
-	mov	r14,QWORD PTR[((-40))+rax]
-	mov	r15,QWORD PTR[((-48))+rax]
-	mov	QWORD PTR[144+r8],rbx
-	mov	QWORD PTR[160+r8],rbp
-	mov	QWORD PTR[216+r8],r12
-	mov	QWORD PTR[224+r8],r13
-	mov	QWORD PTR[232+r8],r14
-	mov	QWORD PTR[240+r8],r15
-	movups	XMMWORD PTR[512+r8],xmm0
-	movups	XMMWORD PTR[528+r8],xmm1
+	mov	rbx,QWORD[((-8))+rax]
+	mov	rbp,QWORD[((-16))+rax]
+	mov	r12,QWORD[((-24))+rax]
+	mov	r13,QWORD[((-32))+rax]
+	mov	r14,QWORD[((-40))+rax]
+	mov	r15,QWORD[((-48))+rax]
+	mov	QWORD[144+r8],rbx
+	mov	QWORD[160+r8],rbp
+	mov	QWORD[216+r8],r12
+	mov	QWORD[224+r8],r13
+	mov	QWORD[232+r8],r14
+	mov	QWORD[240+r8],r15
+	movups	XMMWORD[512+r8],xmm0
+	movups	XMMWORD[528+r8],xmm1
 
-$L$common_seh_tail::
-	mov	rdi,QWORD PTR[8+rax]
-	mov	rsi,QWORD PTR[16+rax]
-	mov	QWORD PTR[152+r8],rax
-	mov	QWORD PTR[168+r8],rsi
-	mov	QWORD PTR[176+r8],rdi
+$L$common_seh_tail:
+	mov	rdi,QWORD[8+rax]
+	mov	rsi,QWORD[16+rax]
+	mov	QWORD[152+r8],rax
+	mov	QWORD[168+r8],rsi
+	mov	QWORD[176+r8],rdi
 
-	mov	rdi,QWORD PTR[40+r9]
+	mov	rdi,QWORD[40+r9]
 	mov	rsi,r8
 	mov	ecx,154
-	DD	0a548f3fch
+	DD	0xa548f3fc
 
 	mov	rsi,r9
 	xor	rcx,rcx
-	mov	rdx,QWORD PTR[8+rsi]
-	mov	r8,QWORD PTR[rsi]
-	mov	r9,QWORD PTR[16+rsi]
-	mov	r10,QWORD PTR[40+rsi]
-	lea	r11,QWORD PTR[56+rsi]
-	lea	r12,QWORD PTR[24+rsi]
-	mov	QWORD PTR[32+rsp],r10
-	mov	QWORD PTR[40+rsp],r11
-	mov	QWORD PTR[48+rsp],r12
-	mov	QWORD PTR[56+rsp],rcx
-	call	QWORD PTR[__imp_RtlVirtualUnwind]
+	mov	rdx,QWORD[8+rsi]
+	mov	r8,QWORD[rsi]
+	mov	r9,QWORD[16+rsi]
+	mov	r10,QWORD[40+rsi]
+	lea	r11,[56+rsi]
+	lea	r12,[24+rsi]
+	mov	QWORD[32+rsp],r10
+	mov	QWORD[40+rsp],r11
+	mov	QWORD[48+rsp],r12
+	mov	QWORD[56+rsp],rcx
+	call	QWORD[__imp_RtlVirtualUnwind]
 
 	mov	eax,1
 	add	rsp,64
@@ -2003,59 +2003,54 @@
 	pop	rdi
 	pop	rsi
 	DB	0F3h,0C3h		;repret
-mul_handler	ENDP
 
-.text$	ENDS
-.pdata	SEGMENT READONLY ALIGN(4)
+
+section	.pdata rdata align=4
 ALIGN	4
-	DD	imagerel $L$SEH_begin_bn_mul_mont_gather5
-	DD	imagerel $L$SEH_end_bn_mul_mont_gather5
-	DD	imagerel $L$SEH_info_bn_mul_mont_gather5
+	DD	$L$SEH_begin_bn_mul_mont_gather5 wrt ..imagebase
+	DD	$L$SEH_end_bn_mul_mont_gather5 wrt ..imagebase
+	DD	$L$SEH_info_bn_mul_mont_gather5 wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_bn_mul4x_mont_gather5
-	DD	imagerel $L$SEH_end_bn_mul4x_mont_gather5
-	DD	imagerel $L$SEH_info_bn_mul4x_mont_gather5
+	DD	$L$SEH_begin_bn_mul4x_mont_gather5 wrt ..imagebase
+	DD	$L$SEH_end_bn_mul4x_mont_gather5 wrt ..imagebase
+	DD	$L$SEH_info_bn_mul4x_mont_gather5 wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_bn_power5
-	DD	imagerel $L$SEH_end_bn_power5
-	DD	imagerel $L$SEH_info_bn_power5
+	DD	$L$SEH_begin_bn_power5 wrt ..imagebase
+	DD	$L$SEH_end_bn_power5 wrt ..imagebase
+	DD	$L$SEH_info_bn_power5 wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_bn_from_mont8x
-	DD	imagerel $L$SEH_end_bn_from_mont8x
-	DD	imagerel $L$SEH_info_bn_from_mont8x
-	DD	imagerel $L$SEH_begin_bn_gather5
-	DD	imagerel $L$SEH_end_bn_gather5
-	DD	imagerel $L$SEH_info_bn_gather5
+	DD	$L$SEH_begin_bn_from_mont8x wrt ..imagebase
+	DD	$L$SEH_end_bn_from_mont8x wrt ..imagebase
+	DD	$L$SEH_info_bn_from_mont8x wrt ..imagebase
+	DD	$L$SEH_begin_bn_gather5 wrt ..imagebase
+	DD	$L$SEH_end_bn_gather5 wrt ..imagebase
+	DD	$L$SEH_info_bn_gather5 wrt ..imagebase
 
-.pdata	ENDS
-.xdata	SEGMENT READONLY ALIGN(8)
+section	.xdata rdata align=8
 ALIGN	8
-$L$SEH_info_bn_mul_mont_gather5::
+$L$SEH_info_bn_mul_mont_gather5:
 DB	9,0,0,0
-	DD	imagerel mul_handler
-	DD	imagerel $L$mul_body,imagerel $L$mul_epilogue
+	DD	mul_handler wrt ..imagebase
+	DD	$L$mul_body wrt ..imagebase,$L$mul_epilogue wrt ..imagebase
 ALIGN	8
-$L$SEH_info_bn_mul4x_mont_gather5::
+$L$SEH_info_bn_mul4x_mont_gather5:
 DB	9,0,0,0
-	DD	imagerel mul_handler
-	DD	imagerel $L$mul4x_body,imagerel $L$mul4x_epilogue
+	DD	mul_handler wrt ..imagebase
+	DD	$L$mul4x_body wrt ..imagebase,$L$mul4x_epilogue wrt ..imagebase
 ALIGN	8
-$L$SEH_info_bn_power5::
+$L$SEH_info_bn_power5:
 DB	9,0,0,0
-	DD	imagerel mul_handler
-	DD	imagerel $L$power5_body,imagerel $L$power5_epilogue
+	DD	mul_handler wrt ..imagebase
+	DD	$L$power5_body wrt ..imagebase,$L$power5_epilogue wrt ..imagebase
 ALIGN	8
-$L$SEH_info_bn_from_mont8x::
+$L$SEH_info_bn_from_mont8x:
 DB	9,0,0,0
-	DD	imagerel mul_handler
-	DD	imagerel $L$from_body,imagerel $L$from_epilogue
+	DD	mul_handler wrt ..imagebase
+	DD	$L$from_body wrt ..imagebase,$L$from_epilogue wrt ..imagebase
 ALIGN	8
-$L$SEH_info_bn_gather5::
-DB	001h,00dh,005h,000h
-DB	00dh,078h,001h,000h
-DB	008h,068h,000h,000h
-DB	004h,042h,000h,000h
+$L$SEH_info_bn_gather5:
+DB	0x01,0x0d,0x05,0x00
+DB	0x0d,0x78,0x01,0x00
+DB	0x08,0x68,0x00,0x00
+DB	0x04,0x42,0x00,0x00
 ALIGN	8
-
-.xdata	ENDS
-END
diff --git a/third_party/boringssl/win-x86_64/crypto/cpu-x86_64-asm.asm b/third_party/boringssl/win-x86_64/crypto/cpu-x86_64-asm.asm
index dca66f5..a52e68b 100644
--- a/third_party/boringssl/win-x86_64/crypto/cpu-x86_64-asm.asm
+++ b/third_party/boringssl/win-x86_64/crypto/cpu-x86_64-asm.asm
@@ -1,14 +1,18 @@
-OPTION	DOTNAME
-.text$	SEGMENT ALIGN(256) 'CODE'
+default	rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section	.text code align=64
 
-PUBLIC	OPENSSL_ia32_cpuid
+
+global	OPENSSL_ia32_cpuid
 
 ALIGN	16
-OPENSSL_ia32_cpuid	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+OPENSSL_ia32_cpuid:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_OPENSSL_ia32_cpuid::
+$L$SEH_begin_OPENSSL_ia32_cpuid:
 	mov	rdi,rcx
 
 
@@ -18,54 +22,54 @@
 	mov	r8,rbx
 
 	xor	eax,eax
-	mov	DWORD PTR[8+rdi],eax
+	mov	DWORD[8+rdi],eax
 	cpuid
 	mov	r11d,eax
 
 	xor	eax,eax
-	cmp	ebx,0756e6547h
+	cmp	ebx,0x756e6547
 	setne	al
 	mov	r9d,eax
-	cmp	edx,049656e69h
+	cmp	edx,0x49656e69
 	setne	al
 	or	r9d,eax
-	cmp	ecx,06c65746eh
+	cmp	ecx,0x6c65746e
 	setne	al
 	or	r9d,eax
-	jz	$L$intel
+	jz	NEAR $L$intel
 
-	cmp	ebx,068747541h
+	cmp	ebx,0x68747541
 	setne	al
 	mov	r10d,eax
-	cmp	edx,069746E65h
+	cmp	edx,0x69746E65
 	setne	al
 	or	r10d,eax
-	cmp	ecx,0444D4163h
+	cmp	ecx,0x444D4163
 	setne	al
 	or	r10d,eax
-	jnz	$L$intel
+	jnz	NEAR $L$intel
 
 
 
 
-	mov	eax,080000000h
+	mov	eax,0x80000000
 	cpuid
 
 
-	cmp	eax,080000001h
-	jb	$L$intel
+	cmp	eax,0x80000001
+	jb	NEAR $L$intel
 	mov	r10d,eax
-	mov	eax,080000001h
+	mov	eax,0x80000001
 	cpuid
 
 
 	or	r9d,ecx
-	and	r9d,000000801h
+	and	r9d,0x00000801
 
-	cmp	r10d,080000008h
-	jb	$L$intel
+	cmp	r10d,0x80000008
+	jb	NEAR $L$intel
 
-	mov	eax,080000008h
+	mov	eax,0x80000008
 	cpuid
 
 	movzx	r10,cl
@@ -75,84 +79,80 @@
 	cpuid
 
 	bt	edx,28
-	jnc	$L$generic
+	jnc	NEAR $L$generic
 	shr	ebx,16
 	cmp	bl,r10b
-	ja	$L$generic
-	and	edx,0efffffffh
-	jmp	$L$generic
+	ja	NEAR $L$generic
+	and	edx,0xefffffff
+	jmp	NEAR $L$generic
 
-$L$intel::
+$L$intel:
 	cmp	r11d,4
 	mov	r10d,-1
-	jb	$L$nocacheinfo
+	jb	NEAR $L$nocacheinfo
 
 	mov	eax,4
 	mov	ecx,0
 	cpuid
 	mov	r10d,eax
 	shr	r10d,14
-	and	r10d,0fffh
+	and	r10d,0xfff
 
 	cmp	r11d,7
-	jb	$L$nocacheinfo
+	jb	NEAR $L$nocacheinfo
 
 	mov	eax,7
 	xor	ecx,ecx
 	cpuid
-	mov	DWORD PTR[8+rdi],ebx
+	mov	DWORD[8+rdi],ebx
 
-$L$nocacheinfo::
+$L$nocacheinfo:
 	mov	eax,1
 	cpuid
 
-	and	edx,0bfefffffh
+	and	edx,0xbfefffff
 	cmp	r9d,0
-	jne	$L$notintel
-	or	edx,040000000h
+	jne	NEAR $L$notintel
+	or	edx,0x40000000
 	and	ah,15
 	cmp	ah,15
-	jne	$L$notintel
-	or	edx,000100000h
-$L$notintel::
+	jne	NEAR $L$notintel
+	or	edx,0x00100000
+$L$notintel:
 	bt	edx,28
-	jnc	$L$generic
-	and	edx,0efffffffh
+	jnc	NEAR $L$generic
+	and	edx,0xefffffff
 	cmp	r10d,0
-	je	$L$generic
+	je	NEAR $L$generic
 
-	or	edx,010000000h
+	or	edx,0x10000000
 	shr	ebx,16
 	cmp	bl,1
-	ja	$L$generic
-	and	edx,0efffffffh
-$L$generic::
-	and	r9d,000000800h
-	and	ecx,0fffff7ffh
+	ja	NEAR $L$generic
+	and	edx,0xefffffff
+$L$generic:
+	and	r9d,0x00000800
+	and	ecx,0xfffff7ff
 	or	r9d,ecx
 
 	mov	r10d,edx
 	bt	r9d,27
-	jnc	$L$clear_avx
+	jnc	NEAR $L$clear_avx
 	xor	ecx,ecx
-DB	00fh,001h,0d0h
+DB	0x0f,0x01,0xd0
 	and	eax,6
 	cmp	eax,6
-	je	$L$done
-$L$clear_avx::
-	mov	eax,0efffe7ffh
+	je	NEAR $L$done
+$L$clear_avx:
+	mov	eax,0xefffe7ff
 	and	r9d,eax
-	and	DWORD PTR[8+rdi],0ffffffdfh
-$L$done::
-	mov	DWORD PTR[4+rdi],r9d
-	mov	DWORD PTR[rdi],r10d
+	and	DWORD[8+rdi],0xffffffdf
+$L$done:
+	mov	DWORD[4+rdi],r9d
+	mov	DWORD[rdi],r10d
 	mov	rbx,r8
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_OPENSSL_ia32_cpuid::
-OPENSSL_ia32_cpuid	ENDP
+$L$SEH_end_OPENSSL_ia32_cpuid:
 
-
-.text$	ENDS
-END
diff --git a/third_party/boringssl/win-x86_64/crypto/md5/md5-x86_64.asm b/third_party/boringssl/win-x86_64/crypto/md5/md5-x86_64.asm
index d2faa88..0e9d2c6 100644
--- a/third_party/boringssl/win-x86_64/crypto/md5/md5-x86_64.asm
+++ b/third_party/boringssl/win-x86_64/crypto/md5/md5-x86_64.asm
@@ -1,14 +1,18 @@
-OPTION	DOTNAME
-.text$	SEGMENT ALIGN(256) 'CODE'
+default	rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section	.text code align=64
+
 ALIGN	16
 
-PUBLIC	md5_block_asm_data_order
+global	md5_block_asm_data_order
 
-md5_block_asm_data_order	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+md5_block_asm_data_order:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_md5_block_asm_data_order::
+$L$SEH_begin_md5_block_asm_data_order:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
@@ -19,18 +23,18 @@
 	push	r12
 	push	r14
 	push	r15
-$L$prologue::
+$L$prologue:
 
 
 
 
 	mov	rbp,rdi
 	shl	rdx,6
-	lea	rdi,QWORD PTR[rdx*1+rsi]
-	mov	eax,DWORD PTR[rbp]
-	mov	ebx,DWORD PTR[4+rbp]
-	mov	ecx,DWORD PTR[8+rbp]
-	mov	edx,DWORD PTR[12+rbp]
+	lea	rdi,[rdx*1+rsi]
+	mov	eax,DWORD[rbp]
+	mov	ebx,DWORD[4+rbp]
+	mov	ecx,DWORD[8+rbp]
+	mov	edx,DWORD[12+rbp]
 
 
 
@@ -39,168 +43,168 @@
 
 
 	cmp	rsi,rdi
-	je	$L$end
+	je	NEAR $L$end
 
 
-$L$loop::
+$L$loop:
 	mov	r8d,eax
 	mov	r9d,ebx
 	mov	r14d,ecx
 	mov	r15d,edx
-	mov	r10d,DWORD PTR[rsi]
+	mov	r10d,DWORD[rsi]
 	mov	r11d,edx
 	xor	r11d,ecx
-	lea	eax,DWORD PTR[((-680876936))+r10*1+rax]
+	lea	eax,[((-680876936))+r10*1+rax]
 	and	r11d,ebx
 	xor	r11d,edx
-	mov	r10d,DWORD PTR[4+rsi]
+	mov	r10d,DWORD[4+rsi]
 	add	eax,r11d
 	rol	eax,7
 	mov	r11d,ecx
 	add	eax,ebx
 	xor	r11d,ebx
-	lea	edx,DWORD PTR[((-389564586))+r10*1+rdx]
+	lea	edx,[((-389564586))+r10*1+rdx]
 	and	r11d,eax
 	xor	r11d,ecx
-	mov	r10d,DWORD PTR[8+rsi]
+	mov	r10d,DWORD[8+rsi]
 	add	edx,r11d
 	rol	edx,12
 	mov	r11d,ebx
 	add	edx,eax
 	xor	r11d,eax
-	lea	ecx,DWORD PTR[606105819+r10*1+rcx]
+	lea	ecx,[606105819+r10*1+rcx]
 	and	r11d,edx
 	xor	r11d,ebx
-	mov	r10d,DWORD PTR[12+rsi]
+	mov	r10d,DWORD[12+rsi]
 	add	ecx,r11d
 	rol	ecx,17
 	mov	r11d,eax
 	add	ecx,edx
 	xor	r11d,edx
-	lea	ebx,DWORD PTR[((-1044525330))+r10*1+rbx]
+	lea	ebx,[((-1044525330))+r10*1+rbx]
 	and	r11d,ecx
 	xor	r11d,eax
-	mov	r10d,DWORD PTR[16+rsi]
+	mov	r10d,DWORD[16+rsi]
 	add	ebx,r11d
 	rol	ebx,22
 	mov	r11d,edx
 	add	ebx,ecx
 	xor	r11d,ecx
-	lea	eax,DWORD PTR[((-176418897))+r10*1+rax]
+	lea	eax,[((-176418897))+r10*1+rax]
 	and	r11d,ebx
 	xor	r11d,edx
-	mov	r10d,DWORD PTR[20+rsi]
+	mov	r10d,DWORD[20+rsi]
 	add	eax,r11d
 	rol	eax,7
 	mov	r11d,ecx
 	add	eax,ebx
 	xor	r11d,ebx
-	lea	edx,DWORD PTR[1200080426+r10*1+rdx]
+	lea	edx,[1200080426+r10*1+rdx]
 	and	r11d,eax
 	xor	r11d,ecx
-	mov	r10d,DWORD PTR[24+rsi]
+	mov	r10d,DWORD[24+rsi]
 	add	edx,r11d
 	rol	edx,12
 	mov	r11d,ebx
 	add	edx,eax
 	xor	r11d,eax
-	lea	ecx,DWORD PTR[((-1473231341))+r10*1+rcx]
+	lea	ecx,[((-1473231341))+r10*1+rcx]
 	and	r11d,edx
 	xor	r11d,ebx
-	mov	r10d,DWORD PTR[28+rsi]
+	mov	r10d,DWORD[28+rsi]
 	add	ecx,r11d
 	rol	ecx,17
 	mov	r11d,eax
 	add	ecx,edx
 	xor	r11d,edx
-	lea	ebx,DWORD PTR[((-45705983))+r10*1+rbx]
+	lea	ebx,[((-45705983))+r10*1+rbx]
 	and	r11d,ecx
 	xor	r11d,eax
-	mov	r10d,DWORD PTR[32+rsi]
+	mov	r10d,DWORD[32+rsi]
 	add	ebx,r11d
 	rol	ebx,22
 	mov	r11d,edx
 	add	ebx,ecx
 	xor	r11d,ecx
-	lea	eax,DWORD PTR[1770035416+r10*1+rax]
+	lea	eax,[1770035416+r10*1+rax]
 	and	r11d,ebx
 	xor	r11d,edx
-	mov	r10d,DWORD PTR[36+rsi]
+	mov	r10d,DWORD[36+rsi]
 	add	eax,r11d
 	rol	eax,7
 	mov	r11d,ecx
 	add	eax,ebx
 	xor	r11d,ebx
-	lea	edx,DWORD PTR[((-1958414417))+r10*1+rdx]
+	lea	edx,[((-1958414417))+r10*1+rdx]
 	and	r11d,eax
 	xor	r11d,ecx
-	mov	r10d,DWORD PTR[40+rsi]
+	mov	r10d,DWORD[40+rsi]
 	add	edx,r11d
 	rol	edx,12
 	mov	r11d,ebx
 	add	edx,eax
 	xor	r11d,eax
-	lea	ecx,DWORD PTR[((-42063))+r10*1+rcx]
+	lea	ecx,[((-42063))+r10*1+rcx]
 	and	r11d,edx
 	xor	r11d,ebx
-	mov	r10d,DWORD PTR[44+rsi]
+	mov	r10d,DWORD[44+rsi]
 	add	ecx,r11d
 	rol	ecx,17
 	mov	r11d,eax
 	add	ecx,edx
 	xor	r11d,edx
-	lea	ebx,DWORD PTR[((-1990404162))+r10*1+rbx]
+	lea	ebx,[((-1990404162))+r10*1+rbx]
 	and	r11d,ecx
 	xor	r11d,eax
-	mov	r10d,DWORD PTR[48+rsi]
+	mov	r10d,DWORD[48+rsi]
 	add	ebx,r11d
 	rol	ebx,22
 	mov	r11d,edx
 	add	ebx,ecx
 	xor	r11d,ecx
-	lea	eax,DWORD PTR[1804603682+r10*1+rax]
+	lea	eax,[1804603682+r10*1+rax]
 	and	r11d,ebx
 	xor	r11d,edx
-	mov	r10d,DWORD PTR[52+rsi]
+	mov	r10d,DWORD[52+rsi]
 	add	eax,r11d
 	rol	eax,7
 	mov	r11d,ecx
 	add	eax,ebx
 	xor	r11d,ebx
-	lea	edx,DWORD PTR[((-40341101))+r10*1+rdx]
+	lea	edx,[((-40341101))+r10*1+rdx]
 	and	r11d,eax
 	xor	r11d,ecx
-	mov	r10d,DWORD PTR[56+rsi]
+	mov	r10d,DWORD[56+rsi]
 	add	edx,r11d
 	rol	edx,12
 	mov	r11d,ebx
 	add	edx,eax
 	xor	r11d,eax
-	lea	ecx,DWORD PTR[((-1502002290))+r10*1+rcx]
+	lea	ecx,[((-1502002290))+r10*1+rcx]
 	and	r11d,edx
 	xor	r11d,ebx
-	mov	r10d,DWORD PTR[60+rsi]
+	mov	r10d,DWORD[60+rsi]
 	add	ecx,r11d
 	rol	ecx,17
 	mov	r11d,eax
 	add	ecx,edx
 	xor	r11d,edx
-	lea	ebx,DWORD PTR[1236535329+r10*1+rbx]
+	lea	ebx,[1236535329+r10*1+rbx]
 	and	r11d,ecx
 	xor	r11d,eax
-	mov	r10d,DWORD PTR[rsi]
+	mov	r10d,DWORD[rsi]
 	add	ebx,r11d
 	rol	ebx,22
 	mov	r11d,edx
 	add	ebx,ecx
-	mov	r10d,DWORD PTR[4+rsi]
+	mov	r10d,DWORD[4+rsi]
 	mov	r11d,edx
 	mov	r12d,edx
 	not	r11d
-	lea	eax,DWORD PTR[((-165796510))+r10*1+rax]
+	lea	eax,[((-165796510))+r10*1+rax]
 	and	r12d,ebx
 	and	r11d,ecx
-	mov	r10d,DWORD PTR[24+rsi]
+	mov	r10d,DWORD[24+rsi]
 	or	r12d,r11d
 	mov	r11d,ecx
 	add	eax,r12d
@@ -208,10 +212,10 @@
 	rol	eax,5
 	add	eax,ebx
 	not	r11d
-	lea	edx,DWORD PTR[((-1069501632))+r10*1+rdx]
+	lea	edx,[((-1069501632))+r10*1+rdx]
 	and	r12d,eax
 	and	r11d,ebx
-	mov	r10d,DWORD PTR[44+rsi]
+	mov	r10d,DWORD[44+rsi]
 	or	r12d,r11d
 	mov	r11d,ebx
 	add	edx,r12d
@@ -219,10 +223,10 @@
 	rol	edx,9
 	add	edx,eax
 	not	r11d
-	lea	ecx,DWORD PTR[643717713+r10*1+rcx]
+	lea	ecx,[643717713+r10*1+rcx]
 	and	r12d,edx
 	and	r11d,eax
-	mov	r10d,DWORD PTR[rsi]
+	mov	r10d,DWORD[rsi]
 	or	r12d,r11d
 	mov	r11d,eax
 	add	ecx,r12d
@@ -230,10 +234,10 @@
 	rol	ecx,14
 	add	ecx,edx
 	not	r11d
-	lea	ebx,DWORD PTR[((-373897302))+r10*1+rbx]
+	lea	ebx,[((-373897302))+r10*1+rbx]
 	and	r12d,ecx
 	and	r11d,edx
-	mov	r10d,DWORD PTR[20+rsi]
+	mov	r10d,DWORD[20+rsi]
 	or	r12d,r11d
 	mov	r11d,edx
 	add	ebx,r12d
@@ -241,10 +245,10 @@
 	rol	ebx,20
 	add	ebx,ecx
 	not	r11d
-	lea	eax,DWORD PTR[((-701558691))+r10*1+rax]
+	lea	eax,[((-701558691))+r10*1+rax]
 	and	r12d,ebx
 	and	r11d,ecx
-	mov	r10d,DWORD PTR[40+rsi]
+	mov	r10d,DWORD[40+rsi]
 	or	r12d,r11d
 	mov	r11d,ecx
 	add	eax,r12d
@@ -252,10 +256,10 @@
 	rol	eax,5
 	add	eax,ebx
 	not	r11d
-	lea	edx,DWORD PTR[38016083+r10*1+rdx]
+	lea	edx,[38016083+r10*1+rdx]
 	and	r12d,eax
 	and	r11d,ebx
-	mov	r10d,DWORD PTR[60+rsi]
+	mov	r10d,DWORD[60+rsi]
 	or	r12d,r11d
 	mov	r11d,ebx
 	add	edx,r12d
@@ -263,10 +267,10 @@
 	rol	edx,9
 	add	edx,eax
 	not	r11d
-	lea	ecx,DWORD PTR[((-660478335))+r10*1+rcx]
+	lea	ecx,[((-660478335))+r10*1+rcx]
 	and	r12d,edx
 	and	r11d,eax
-	mov	r10d,DWORD PTR[16+rsi]
+	mov	r10d,DWORD[16+rsi]
 	or	r12d,r11d
 	mov	r11d,eax
 	add	ecx,r12d
@@ -274,10 +278,10 @@
 	rol	ecx,14
 	add	ecx,edx
 	not	r11d
-	lea	ebx,DWORD PTR[((-405537848))+r10*1+rbx]
+	lea	ebx,[((-405537848))+r10*1+rbx]
 	and	r12d,ecx
 	and	r11d,edx
-	mov	r10d,DWORD PTR[36+rsi]
+	mov	r10d,DWORD[36+rsi]
 	or	r12d,r11d
 	mov	r11d,edx
 	add	ebx,r12d
@@ -285,10 +289,10 @@
 	rol	ebx,20
 	add	ebx,ecx
 	not	r11d
-	lea	eax,DWORD PTR[568446438+r10*1+rax]
+	lea	eax,[568446438+r10*1+rax]
 	and	r12d,ebx
 	and	r11d,ecx
-	mov	r10d,DWORD PTR[56+rsi]
+	mov	r10d,DWORD[56+rsi]
 	or	r12d,r11d
 	mov	r11d,ecx
 	add	eax,r12d
@@ -296,10 +300,10 @@
 	rol	eax,5
 	add	eax,ebx
 	not	r11d
-	lea	edx,DWORD PTR[((-1019803690))+r10*1+rdx]
+	lea	edx,[((-1019803690))+r10*1+rdx]
 	and	r12d,eax
 	and	r11d,ebx
-	mov	r10d,DWORD PTR[12+rsi]
+	mov	r10d,DWORD[12+rsi]
 	or	r12d,r11d
 	mov	r11d,ebx
 	add	edx,r12d
@@ -307,10 +311,10 @@
 	rol	edx,9
 	add	edx,eax
 	not	r11d
-	lea	ecx,DWORD PTR[((-187363961))+r10*1+rcx]
+	lea	ecx,[((-187363961))+r10*1+rcx]
 	and	r12d,edx
 	and	r11d,eax
-	mov	r10d,DWORD PTR[32+rsi]
+	mov	r10d,DWORD[32+rsi]
 	or	r12d,r11d
 	mov	r11d,eax
 	add	ecx,r12d
@@ -318,10 +322,10 @@
 	rol	ecx,14
 	add	ecx,edx
 	not	r11d
-	lea	ebx,DWORD PTR[1163531501+r10*1+rbx]
+	lea	ebx,[1163531501+r10*1+rbx]
 	and	r12d,ecx
 	and	r11d,edx
-	mov	r10d,DWORD PTR[52+rsi]
+	mov	r10d,DWORD[52+rsi]
 	or	r12d,r11d
 	mov	r11d,edx
 	add	ebx,r12d
@@ -329,10 +333,10 @@
 	rol	ebx,20
 	add	ebx,ecx
 	not	r11d
-	lea	eax,DWORD PTR[((-1444681467))+r10*1+rax]
+	lea	eax,[((-1444681467))+r10*1+rax]
 	and	r12d,ebx
 	and	r11d,ecx
-	mov	r10d,DWORD PTR[8+rsi]
+	mov	r10d,DWORD[8+rsi]
 	or	r12d,r11d
 	mov	r11d,ecx
 	add	eax,r12d
@@ -340,10 +344,10 @@
 	rol	eax,5
 	add	eax,ebx
 	not	r11d
-	lea	edx,DWORD PTR[((-51403784))+r10*1+rdx]
+	lea	edx,[((-51403784))+r10*1+rdx]
 	and	r12d,eax
 	and	r11d,ebx
-	mov	r10d,DWORD PTR[28+rsi]
+	mov	r10d,DWORD[28+rsi]
 	or	r12d,r11d
 	mov	r11d,ebx
 	add	edx,r12d
@@ -351,10 +355,10 @@
 	rol	edx,9
 	add	edx,eax
 	not	r11d
-	lea	ecx,DWORD PTR[1735328473+r10*1+rcx]
+	lea	ecx,[1735328473+r10*1+rcx]
 	and	r12d,edx
 	and	r11d,eax
-	mov	r10d,DWORD PTR[48+rsi]
+	mov	r10d,DWORD[48+rsi]
 	or	r12d,r11d
 	mov	r11d,eax
 	add	ecx,r12d
@@ -362,290 +366,290 @@
 	rol	ecx,14
 	add	ecx,edx
 	not	r11d
-	lea	ebx,DWORD PTR[((-1926607734))+r10*1+rbx]
+	lea	ebx,[((-1926607734))+r10*1+rbx]
 	and	r12d,ecx
 	and	r11d,edx
-	mov	r10d,DWORD PTR[rsi]
+	mov	r10d,DWORD[rsi]
 	or	r12d,r11d
 	mov	r11d,edx
 	add	ebx,r12d
 	mov	r12d,edx
 	rol	ebx,20
 	add	ebx,ecx
-	mov	r10d,DWORD PTR[20+rsi]
+	mov	r10d,DWORD[20+rsi]
 	mov	r11d,ecx
-	lea	eax,DWORD PTR[((-378558))+r10*1+rax]
-	mov	r10d,DWORD PTR[32+rsi]
+	lea	eax,[((-378558))+r10*1+rax]
+	mov	r10d,DWORD[32+rsi]
 	xor	r11d,edx
 	xor	r11d,ebx
 	add	eax,r11d
 	rol	eax,4
 	mov	r11d,ebx
 	add	eax,ebx
-	lea	edx,DWORD PTR[((-2022574463))+r10*1+rdx]
-	mov	r10d,DWORD PTR[44+rsi]
+	lea	edx,[((-2022574463))+r10*1+rdx]
+	mov	r10d,DWORD[44+rsi]
 	xor	r11d,ecx
 	xor	r11d,eax
 	add	edx,r11d
 	rol	edx,11
 	mov	r11d,eax
 	add	edx,eax
-	lea	ecx,DWORD PTR[1839030562+r10*1+rcx]
-	mov	r10d,DWORD PTR[56+rsi]
+	lea	ecx,[1839030562+r10*1+rcx]
+	mov	r10d,DWORD[56+rsi]
 	xor	r11d,ebx
 	xor	r11d,edx
 	add	ecx,r11d
 	rol	ecx,16
 	mov	r11d,edx
 	add	ecx,edx
-	lea	ebx,DWORD PTR[((-35309556))+r10*1+rbx]
-	mov	r10d,DWORD PTR[4+rsi]
+	lea	ebx,[((-35309556))+r10*1+rbx]
+	mov	r10d,DWORD[4+rsi]
 	xor	r11d,eax
 	xor	r11d,ecx
 	add	ebx,r11d
 	rol	ebx,23
 	mov	r11d,ecx
 	add	ebx,ecx
-	lea	eax,DWORD PTR[((-1530992060))+r10*1+rax]
-	mov	r10d,DWORD PTR[16+rsi]
+	lea	eax,[((-1530992060))+r10*1+rax]
+	mov	r10d,DWORD[16+rsi]
 	xor	r11d,edx
 	xor	r11d,ebx
 	add	eax,r11d
 	rol	eax,4
 	mov	r11d,ebx
 	add	eax,ebx
-	lea	edx,DWORD PTR[1272893353+r10*1+rdx]
-	mov	r10d,DWORD PTR[28+rsi]
+	lea	edx,[1272893353+r10*1+rdx]
+	mov	r10d,DWORD[28+rsi]
 	xor	r11d,ecx
 	xor	r11d,eax
 	add	edx,r11d
 	rol	edx,11
 	mov	r11d,eax
 	add	edx,eax
-	lea	ecx,DWORD PTR[((-155497632))+r10*1+rcx]
-	mov	r10d,DWORD PTR[40+rsi]
+	lea	ecx,[((-155497632))+r10*1+rcx]
+	mov	r10d,DWORD[40+rsi]
 	xor	r11d,ebx
 	xor	r11d,edx
 	add	ecx,r11d
 	rol	ecx,16
 	mov	r11d,edx
 	add	ecx,edx
-	lea	ebx,DWORD PTR[((-1094730640))+r10*1+rbx]
-	mov	r10d,DWORD PTR[52+rsi]
+	lea	ebx,[((-1094730640))+r10*1+rbx]
+	mov	r10d,DWORD[52+rsi]
 	xor	r11d,eax
 	xor	r11d,ecx
 	add	ebx,r11d
 	rol	ebx,23
 	mov	r11d,ecx
 	add	ebx,ecx
-	lea	eax,DWORD PTR[681279174+r10*1+rax]
-	mov	r10d,DWORD PTR[rsi]
+	lea	eax,[681279174+r10*1+rax]
+	mov	r10d,DWORD[rsi]
 	xor	r11d,edx
 	xor	r11d,ebx
 	add	eax,r11d
 	rol	eax,4
 	mov	r11d,ebx
 	add	eax,ebx
-	lea	edx,DWORD PTR[((-358537222))+r10*1+rdx]
-	mov	r10d,DWORD PTR[12+rsi]
+	lea	edx,[((-358537222))+r10*1+rdx]
+	mov	r10d,DWORD[12+rsi]
 	xor	r11d,ecx
 	xor	r11d,eax
 	add	edx,r11d
 	rol	edx,11
 	mov	r11d,eax
 	add	edx,eax
-	lea	ecx,DWORD PTR[((-722521979))+r10*1+rcx]
-	mov	r10d,DWORD PTR[24+rsi]
+	lea	ecx,[((-722521979))+r10*1+rcx]
+	mov	r10d,DWORD[24+rsi]
 	xor	r11d,ebx
 	xor	r11d,edx
 	add	ecx,r11d
 	rol	ecx,16
 	mov	r11d,edx
 	add	ecx,edx
-	lea	ebx,DWORD PTR[76029189+r10*1+rbx]
-	mov	r10d,DWORD PTR[36+rsi]
+	lea	ebx,[76029189+r10*1+rbx]
+	mov	r10d,DWORD[36+rsi]
 	xor	r11d,eax
 	xor	r11d,ecx
 	add	ebx,r11d
 	rol	ebx,23
 	mov	r11d,ecx
 	add	ebx,ecx
-	lea	eax,DWORD PTR[((-640364487))+r10*1+rax]
-	mov	r10d,DWORD PTR[48+rsi]
+	lea	eax,[((-640364487))+r10*1+rax]
+	mov	r10d,DWORD[48+rsi]
 	xor	r11d,edx
 	xor	r11d,ebx
 	add	eax,r11d
 	rol	eax,4
 	mov	r11d,ebx
 	add	eax,ebx
-	lea	edx,DWORD PTR[((-421815835))+r10*1+rdx]
-	mov	r10d,DWORD PTR[60+rsi]
+	lea	edx,[((-421815835))+r10*1+rdx]
+	mov	r10d,DWORD[60+rsi]
 	xor	r11d,ecx
 	xor	r11d,eax
 	add	edx,r11d
 	rol	edx,11
 	mov	r11d,eax
 	add	edx,eax
-	lea	ecx,DWORD PTR[530742520+r10*1+rcx]
-	mov	r10d,DWORD PTR[8+rsi]
+	lea	ecx,[530742520+r10*1+rcx]
+	mov	r10d,DWORD[8+rsi]
 	xor	r11d,ebx
 	xor	r11d,edx
 	add	ecx,r11d
 	rol	ecx,16
 	mov	r11d,edx
 	add	ecx,edx
-	lea	ebx,DWORD PTR[((-995338651))+r10*1+rbx]
-	mov	r10d,DWORD PTR[rsi]
+	lea	ebx,[((-995338651))+r10*1+rbx]
+	mov	r10d,DWORD[rsi]
 	xor	r11d,eax
 	xor	r11d,ecx
 	add	ebx,r11d
 	rol	ebx,23
 	mov	r11d,ecx
 	add	ebx,ecx
-	mov	r10d,DWORD PTR[rsi]
-	mov	r11d,0ffffffffh
+	mov	r10d,DWORD[rsi]
+	mov	r11d,0xffffffff
 	xor	r11d,edx
-	lea	eax,DWORD PTR[((-198630844))+r10*1+rax]
+	lea	eax,[((-198630844))+r10*1+rax]
 	or	r11d,ebx
 	xor	r11d,ecx
 	add	eax,r11d
-	mov	r10d,DWORD PTR[28+rsi]
-	mov	r11d,0ffffffffh
+	mov	r10d,DWORD[28+rsi]
+	mov	r11d,0xffffffff
 	rol	eax,6
 	xor	r11d,ecx
 	add	eax,ebx
-	lea	edx,DWORD PTR[1126891415+r10*1+rdx]
+	lea	edx,[1126891415+r10*1+rdx]
 	or	r11d,eax
 	xor	r11d,ebx
 	add	edx,r11d
-	mov	r10d,DWORD PTR[56+rsi]
-	mov	r11d,0ffffffffh
+	mov	r10d,DWORD[56+rsi]
+	mov	r11d,0xffffffff
 	rol	edx,10
 	xor	r11d,ebx
 	add	edx,eax
-	lea	ecx,DWORD PTR[((-1416354905))+r10*1+rcx]
+	lea	ecx,[((-1416354905))+r10*1+rcx]
 	or	r11d,edx
 	xor	r11d,eax
 	add	ecx,r11d
-	mov	r10d,DWORD PTR[20+rsi]
-	mov	r11d,0ffffffffh
+	mov	r10d,DWORD[20+rsi]
+	mov	r11d,0xffffffff
 	rol	ecx,15
 	xor	r11d,eax
 	add	ecx,edx
-	lea	ebx,DWORD PTR[((-57434055))+r10*1+rbx]
+	lea	ebx,[((-57434055))+r10*1+rbx]
 	or	r11d,ecx
 	xor	r11d,edx
 	add	ebx,r11d
-	mov	r10d,DWORD PTR[48+rsi]
-	mov	r11d,0ffffffffh
+	mov	r10d,DWORD[48+rsi]
+	mov	r11d,0xffffffff
 	rol	ebx,21
 	xor	r11d,edx
 	add	ebx,ecx
-	lea	eax,DWORD PTR[1700485571+r10*1+rax]
+	lea	eax,[1700485571+r10*1+rax]
 	or	r11d,ebx
 	xor	r11d,ecx
 	add	eax,r11d
-	mov	r10d,DWORD PTR[12+rsi]
-	mov	r11d,0ffffffffh
+	mov	r10d,DWORD[12+rsi]
+	mov	r11d,0xffffffff
 	rol	eax,6
 	xor	r11d,ecx
 	add	eax,ebx
-	lea	edx,DWORD PTR[((-1894986606))+r10*1+rdx]
+	lea	edx,[((-1894986606))+r10*1+rdx]
 	or	r11d,eax
 	xor	r11d,ebx
 	add	edx,r11d
-	mov	r10d,DWORD PTR[40+rsi]
-	mov	r11d,0ffffffffh
+	mov	r10d,DWORD[40+rsi]
+	mov	r11d,0xffffffff
 	rol	edx,10
 	xor	r11d,ebx
 	add	edx,eax
-	lea	ecx,DWORD PTR[((-1051523))+r10*1+rcx]
+	lea	ecx,[((-1051523))+r10*1+rcx]
 	or	r11d,edx
 	xor	r11d,eax
 	add	ecx,r11d
-	mov	r10d,DWORD PTR[4+rsi]
-	mov	r11d,0ffffffffh
+	mov	r10d,DWORD[4+rsi]
+	mov	r11d,0xffffffff
 	rol	ecx,15
 	xor	r11d,eax
 	add	ecx,edx
-	lea	ebx,DWORD PTR[((-2054922799))+r10*1+rbx]
+	lea	ebx,[((-2054922799))+r10*1+rbx]
 	or	r11d,ecx
 	xor	r11d,edx
 	add	ebx,r11d
-	mov	r10d,DWORD PTR[32+rsi]
-	mov	r11d,0ffffffffh
+	mov	r10d,DWORD[32+rsi]
+	mov	r11d,0xffffffff
 	rol	ebx,21
 	xor	r11d,edx
 	add	ebx,ecx
-	lea	eax,DWORD PTR[1873313359+r10*1+rax]
+	lea	eax,[1873313359+r10*1+rax]
 	or	r11d,ebx
 	xor	r11d,ecx
 	add	eax,r11d
-	mov	r10d,DWORD PTR[60+rsi]
-	mov	r11d,0ffffffffh
+	mov	r10d,DWORD[60+rsi]
+	mov	r11d,0xffffffff
 	rol	eax,6
 	xor	r11d,ecx
 	add	eax,ebx
-	lea	edx,DWORD PTR[((-30611744))+r10*1+rdx]
+	lea	edx,[((-30611744))+r10*1+rdx]
 	or	r11d,eax
 	xor	r11d,ebx
 	add	edx,r11d
-	mov	r10d,DWORD PTR[24+rsi]
-	mov	r11d,0ffffffffh
+	mov	r10d,DWORD[24+rsi]
+	mov	r11d,0xffffffff
 	rol	edx,10
 	xor	r11d,ebx
 	add	edx,eax
-	lea	ecx,DWORD PTR[((-1560198380))+r10*1+rcx]
+	lea	ecx,[((-1560198380))+r10*1+rcx]
 	or	r11d,edx
 	xor	r11d,eax
 	add	ecx,r11d
-	mov	r10d,DWORD PTR[52+rsi]
-	mov	r11d,0ffffffffh
+	mov	r10d,DWORD[52+rsi]
+	mov	r11d,0xffffffff
 	rol	ecx,15
 	xor	r11d,eax
 	add	ecx,edx
-	lea	ebx,DWORD PTR[1309151649+r10*1+rbx]
+	lea	ebx,[1309151649+r10*1+rbx]
 	or	r11d,ecx
 	xor	r11d,edx
 	add	ebx,r11d
-	mov	r10d,DWORD PTR[16+rsi]
-	mov	r11d,0ffffffffh
+	mov	r10d,DWORD[16+rsi]
+	mov	r11d,0xffffffff
 	rol	ebx,21
 	xor	r11d,edx
 	add	ebx,ecx
-	lea	eax,DWORD PTR[((-145523070))+r10*1+rax]
+	lea	eax,[((-145523070))+r10*1+rax]
 	or	r11d,ebx
 	xor	r11d,ecx
 	add	eax,r11d
-	mov	r10d,DWORD PTR[44+rsi]
-	mov	r11d,0ffffffffh
+	mov	r10d,DWORD[44+rsi]
+	mov	r11d,0xffffffff
 	rol	eax,6
 	xor	r11d,ecx
 	add	eax,ebx
-	lea	edx,DWORD PTR[((-1120210379))+r10*1+rdx]
+	lea	edx,[((-1120210379))+r10*1+rdx]
 	or	r11d,eax
 	xor	r11d,ebx
 	add	edx,r11d
-	mov	r10d,DWORD PTR[8+rsi]
-	mov	r11d,0ffffffffh
+	mov	r10d,DWORD[8+rsi]
+	mov	r11d,0xffffffff
 	rol	edx,10
 	xor	r11d,ebx
 	add	edx,eax
-	lea	ecx,DWORD PTR[718787259+r10*1+rcx]
+	lea	ecx,[718787259+r10*1+rcx]
 	or	r11d,edx
 	xor	r11d,eax
 	add	ecx,r11d
-	mov	r10d,DWORD PTR[36+rsi]
-	mov	r11d,0ffffffffh
+	mov	r10d,DWORD[36+rsi]
+	mov	r11d,0xffffffff
 	rol	ecx,15
 	xor	r11d,eax
 	add	ecx,edx
-	lea	ebx,DWORD PTR[((-343485551))+r10*1+rbx]
+	lea	ebx,[((-343485551))+r10*1+rbx]
 	or	r11d,ecx
 	xor	r11d,edx
 	add	ebx,r11d
-	mov	r10d,DWORD PTR[rsi]
-	mov	r11d,0ffffffffh
+	mov	r10d,DWORD[rsi]
+	mov	r11d,0xffffffff
 	rol	ebx,21
 	xor	r11d,edx
 	add	ebx,ecx
@@ -658,31 +662,30 @@
 
 	add	rsi,64
 	cmp	rsi,rdi
-	jb	$L$loop
+	jb	NEAR $L$loop
 
 
-$L$end::
-	mov	DWORD PTR[rbp],eax
-	mov	DWORD PTR[4+rbp],ebx
-	mov	DWORD PTR[8+rbp],ecx
-	mov	DWORD PTR[12+rbp],edx
+$L$end:
+	mov	DWORD[rbp],eax
+	mov	DWORD[4+rbp],ebx
+	mov	DWORD[8+rbp],ecx
+	mov	DWORD[12+rbp],edx
 
-	mov	r15,QWORD PTR[rsp]
-	mov	r14,QWORD PTR[8+rsp]
-	mov	r12,QWORD PTR[16+rsp]
-	mov	rbx,QWORD PTR[24+rsp]
-	mov	rbp,QWORD PTR[32+rsp]
+	mov	r15,QWORD[rsp]
+	mov	r14,QWORD[8+rsp]
+	mov	r12,QWORD[16+rsp]
+	mov	rbx,QWORD[24+rsp]
+	mov	rbp,QWORD[32+rsp]
 	add	rsp,40
-$L$epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+$L$epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_md5_block_asm_data_order::
-md5_block_asm_data_order	ENDP
-EXTERN	__imp_RtlVirtualUnwind:NEAR
+$L$SEH_end_md5_block_asm_data_order:
+EXTERN	__imp_RtlVirtualUnwind
 
 ALIGN	16
-se_handler	PROC PRIVATE
+se_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -694,57 +697,57 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[120+r8]
-	mov	rbx,QWORD PTR[248+r8]
+	mov	rax,QWORD[120+r8]
+	mov	rbx,QWORD[248+r8]
 
-	lea	r10,QWORD PTR[$L$prologue]
+	lea	r10,[$L$prologue]
 	cmp	rbx,r10
-	jb	$L$in_prologue
+	jb	NEAR $L$in_prologue
 
-	mov	rax,QWORD PTR[152+r8]
+	mov	rax,QWORD[152+r8]
 
-	lea	r10,QWORD PTR[$L$epilogue]
+	lea	r10,[$L$epilogue]
 	cmp	rbx,r10
-	jae	$L$in_prologue
+	jae	NEAR $L$in_prologue
 
-	lea	rax,QWORD PTR[40+rax]
+	lea	rax,[40+rax]
 
-	mov	rbp,QWORD PTR[((-8))+rax]
-	mov	rbx,QWORD PTR[((-16))+rax]
-	mov	r12,QWORD PTR[((-24))+rax]
-	mov	r14,QWORD PTR[((-32))+rax]
-	mov	r15,QWORD PTR[((-40))+rax]
-	mov	QWORD PTR[144+r8],rbx
-	mov	QWORD PTR[160+r8],rbp
-	mov	QWORD PTR[216+r8],r12
-	mov	QWORD PTR[232+r8],r14
-	mov	QWORD PTR[240+r8],r15
+	mov	rbp,QWORD[((-8))+rax]
+	mov	rbx,QWORD[((-16))+rax]
+	mov	r12,QWORD[((-24))+rax]
+	mov	r14,QWORD[((-32))+rax]
+	mov	r15,QWORD[((-40))+rax]
+	mov	QWORD[144+r8],rbx
+	mov	QWORD[160+r8],rbp
+	mov	QWORD[216+r8],r12
+	mov	QWORD[232+r8],r14
+	mov	QWORD[240+r8],r15
 
-$L$in_prologue::
-	mov	rdi,QWORD PTR[8+rax]
-	mov	rsi,QWORD PTR[16+rax]
-	mov	QWORD PTR[152+r8],rax
-	mov	QWORD PTR[168+r8],rsi
-	mov	QWORD PTR[176+r8],rdi
+$L$in_prologue:
+	mov	rdi,QWORD[8+rax]
+	mov	rsi,QWORD[16+rax]
+	mov	QWORD[152+r8],rax
+	mov	QWORD[168+r8],rsi
+	mov	QWORD[176+r8],rdi
 
-	mov	rdi,QWORD PTR[40+r9]
+	mov	rdi,QWORD[40+r9]
 	mov	rsi,r8
 	mov	ecx,154
-	DD	0a548f3fch
+	DD	0xa548f3fc
 
 	mov	rsi,r9
 	xor	rcx,rcx
-	mov	rdx,QWORD PTR[8+rsi]
-	mov	r8,QWORD PTR[rsi]
-	mov	r9,QWORD PTR[16+rsi]
-	mov	r10,QWORD PTR[40+rsi]
-	lea	r11,QWORD PTR[56+rsi]
-	lea	r12,QWORD PTR[24+rsi]
-	mov	QWORD PTR[32+rsp],r10
-	mov	QWORD PTR[40+rsp],r11
-	mov	QWORD PTR[48+rsp],r12
-	mov	QWORD PTR[56+rsp],rcx
-	call	QWORD PTR[__imp_RtlVirtualUnwind]
+	mov	rdx,QWORD[8+rsi]
+	mov	r8,QWORD[rsi]
+	mov	r9,QWORD[16+rsi]
+	mov	r10,QWORD[40+rsi]
+	lea	r11,[56+rsi]
+	lea	r12,[24+rsi]
+	mov	QWORD[32+rsp],r10
+	mov	QWORD[40+rsp],r11
+	mov	QWORD[48+rsp],r12
+	mov	QWORD[56+rsp],rcx
+	call	QWORD[__imp_RtlVirtualUnwind]
 
 	mov	eax,1
 	add	rsp,64
@@ -758,21 +761,16 @@
 	pop	rdi
 	pop	rsi
 	DB	0F3h,0C3h		;repret
-se_handler	ENDP
 
-.text$	ENDS
-.pdata	SEGMENT READONLY ALIGN(4)
+
+section	.pdata rdata align=4
 ALIGN	4
-	DD	imagerel $L$SEH_begin_md5_block_asm_data_order
-	DD	imagerel $L$SEH_end_md5_block_asm_data_order
-	DD	imagerel $L$SEH_info_md5_block_asm_data_order
+	DD	$L$SEH_begin_md5_block_asm_data_order wrt ..imagebase
+	DD	$L$SEH_end_md5_block_asm_data_order wrt ..imagebase
+	DD	$L$SEH_info_md5_block_asm_data_order wrt ..imagebase
 
-.pdata	ENDS
-.xdata	SEGMENT READONLY ALIGN(8)
+section	.xdata rdata align=8
 ALIGN	8
-$L$SEH_info_md5_block_asm_data_order::
+$L$SEH_info_md5_block_asm_data_order:
 DB	9,0,0,0
-	DD	imagerel se_handler
-
-.xdata	ENDS
-END
+	DD	se_handler wrt ..imagebase
diff --git a/third_party/boringssl/win-x86_64/crypto/modes/aesni-gcm-x86_64.asm b/third_party/boringssl/win-x86_64/crypto/modes/aesni-gcm-x86_64.asm
index 828be8d..d7fff6a 100644
--- a/third_party/boringssl/win-x86_64/crypto/modes/aesni-gcm-x86_64.asm
+++ b/third_party/boringssl/win-x86_64/crypto/modes/aesni-gcm-x86_64.asm
@@ -1,19 +1,20 @@
-OPTION	DOTNAME
-.text$	SEGMENT ALIGN(256) 'CODE'
+default	rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section	.text code align=64
 
-PUBLIC	aesni_gcm_encrypt
 
-aesni_gcm_encrypt	PROC PUBLIC
+global	aesni_gcm_encrypt
+
+aesni_gcm_encrypt:
 	xor	eax,eax
 	DB	0F3h,0C3h		;repret
-aesni_gcm_encrypt	ENDP
 
-PUBLIC	aesni_gcm_decrypt
 
-aesni_gcm_decrypt	PROC PUBLIC
+global	aesni_gcm_decrypt
+
+aesni_gcm_decrypt:
 	xor	eax,eax
 	DB	0F3h,0C3h		;repret
-aesni_gcm_decrypt	ENDP
 
-.text$	ENDS
-END
diff --git a/third_party/boringssl/win-x86_64/crypto/modes/ghash-x86_64.asm b/third_party/boringssl/win-x86_64/crypto/modes/ghash-x86_64.asm
index 9993d75..5d8fadc 100644
--- a/third_party/boringssl/win-x86_64/crypto/modes/ghash-x86_64.asm
+++ b/third_party/boringssl/win-x86_64/crypto/modes/ghash-x86_64.asm
@@ -1,15 +1,19 @@
-OPTION	DOTNAME
-.text$	SEGMENT ALIGN(256) 'CODE'
-EXTERN	OPENSSL_ia32cap_P:NEAR
+default	rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section	.text code align=64
 
-PUBLIC	gcm_gmult_4bit
+EXTERN	OPENSSL_ia32cap_P
+
+global	gcm_gmult_4bit
 
 ALIGN	16
-gcm_gmult_4bit	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+gcm_gmult_4bit:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_gcm_gmult_4bit::
+$L$SEH_begin_gcm_gmult_4bit:
 	mov	rdi,rcx
 	mov	rsi,rdx
 
@@ -17,98 +21,97 @@
 	push	rbx
 	push	rbp
 	push	r12
-$L$gmult_prologue::
+$L$gmult_prologue:
 
-	movzx	r8,BYTE PTR[15+rdi]
-	lea	r11,QWORD PTR[$L$rem_4bit]
+	movzx	r8,BYTE[15+rdi]
+	lea	r11,[$L$rem_4bit]
 	xor	rax,rax
 	xor	rbx,rbx
 	mov	al,r8b
 	mov	bl,r8b
 	shl	al,4
 	mov	rcx,14
-	mov	r8,QWORD PTR[8+rax*1+rsi]
-	mov	r9,QWORD PTR[rax*1+rsi]
-	and	bl,0f0h
+	mov	r8,QWORD[8+rax*1+rsi]
+	mov	r9,QWORD[rax*1+rsi]
+	and	bl,0xf0
 	mov	rdx,r8
-	jmp	$L$oop1
+	jmp	NEAR $L$oop1
 
 ALIGN	16
-$L$oop1::
+$L$oop1:
 	shr	r8,4
-	and	rdx,0fh
+	and	rdx,0xf
 	mov	r10,r9
-	mov	al,BYTE PTR[rcx*1+rdi]
+	mov	al,BYTE[rcx*1+rdi]
 	shr	r9,4
-	xor	r8,QWORD PTR[8+rbx*1+rsi]
+	xor	r8,QWORD[8+rbx*1+rsi]
 	shl	r10,60
-	xor	r9,QWORD PTR[rbx*1+rsi]
+	xor	r9,QWORD[rbx*1+rsi]
 	mov	bl,al
-	xor	r9,QWORD PTR[rdx*8+r11]
+	xor	r9,QWORD[rdx*8+r11]
 	mov	rdx,r8
 	shl	al,4
 	xor	r8,r10
 	dec	rcx
-	js	$L$break1
+	js	NEAR $L$break1
 
 	shr	r8,4
-	and	rdx,0fh
+	and	rdx,0xf
 	mov	r10,r9
 	shr	r9,4
-	xor	r8,QWORD PTR[8+rax*1+rsi]
+	xor	r8,QWORD[8+rax*1+rsi]
 	shl	r10,60
-	xor	r9,QWORD PTR[rax*1+rsi]
-	and	bl,0f0h
-	xor	r9,QWORD PTR[rdx*8+r11]
+	xor	r9,QWORD[rax*1+rsi]
+	and	bl,0xf0
+	xor	r9,QWORD[rdx*8+r11]
 	mov	rdx,r8
 	xor	r8,r10
-	jmp	$L$oop1
+	jmp	NEAR $L$oop1
 
 ALIGN	16
-$L$break1::
+$L$break1:
 	shr	r8,4
-	and	rdx,0fh
+	and	rdx,0xf
 	mov	r10,r9
 	shr	r9,4
-	xor	r8,QWORD PTR[8+rax*1+rsi]
+	xor	r8,QWORD[8+rax*1+rsi]
 	shl	r10,60
-	xor	r9,QWORD PTR[rax*1+rsi]
-	and	bl,0f0h
-	xor	r9,QWORD PTR[rdx*8+r11]
+	xor	r9,QWORD[rax*1+rsi]
+	and	bl,0xf0
+	xor	r9,QWORD[rdx*8+r11]
 	mov	rdx,r8
 	xor	r8,r10
 
 	shr	r8,4
-	and	rdx,0fh
+	and	rdx,0xf
 	mov	r10,r9
 	shr	r9,4
-	xor	r8,QWORD PTR[8+rbx*1+rsi]
+	xor	r8,QWORD[8+rbx*1+rsi]
 	shl	r10,60
-	xor	r9,QWORD PTR[rbx*1+rsi]
+	xor	r9,QWORD[rbx*1+rsi]
 	xor	r8,r10
-	xor	r9,QWORD PTR[rdx*8+r11]
+	xor	r9,QWORD[rdx*8+r11]
 
 	bswap	r8
 	bswap	r9
-	mov	QWORD PTR[8+rdi],r8
-	mov	QWORD PTR[rdi],r9
+	mov	QWORD[8+rdi],r8
+	mov	QWORD[rdi],r9
 
-	mov	rbx,QWORD PTR[16+rsp]
-	lea	rsp,QWORD PTR[24+rsp]
-$L$gmult_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	mov	rbx,QWORD[16+rsp]
+	lea	rsp,[24+rsp]
+$L$gmult_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_gcm_gmult_4bit::
-gcm_gmult_4bit	ENDP
-PUBLIC	gcm_ghash_4bit
+$L$SEH_end_gcm_gmult_4bit:
+global	gcm_ghash_4bit
 
 ALIGN	16
-gcm_ghash_4bit	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+gcm_ghash_4bit:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_gcm_ghash_4bit::
+$L$SEH_begin_gcm_ghash_4bit:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
@@ -122,218 +125,218 @@
 	push	r14
 	push	r15
 	sub	rsp,280
-$L$ghash_prologue::
+$L$ghash_prologue:
 	mov	r14,rdx
 	mov	r15,rcx
 	sub	rsi,-128
-	lea	rbp,QWORD PTR[((16+128))+rsp]
+	lea	rbp,[((16+128))+rsp]
 	xor	edx,edx
-	mov	r8,QWORD PTR[((0+0-128))+rsi]
-	mov	rax,QWORD PTR[((0+8-128))+rsi]
+	mov	r8,QWORD[((0+0-128))+rsi]
+	mov	rax,QWORD[((0+8-128))+rsi]
 	mov	dl,al
 	shr	rax,4
 	mov	r10,r8
 	shr	r8,4
-	mov	r9,QWORD PTR[((16+0-128))+rsi]
+	mov	r9,QWORD[((16+0-128))+rsi]
 	shl	dl,4
-	mov	rbx,QWORD PTR[((16+8-128))+rsi]
+	mov	rbx,QWORD[((16+8-128))+rsi]
 	shl	r10,60
-	mov	BYTE PTR[rsp],dl
+	mov	BYTE[rsp],dl
 	or	rax,r10
 	mov	dl,bl
 	shr	rbx,4
 	mov	r10,r9
 	shr	r9,4
-	mov	QWORD PTR[rbp],r8
-	mov	r8,QWORD PTR[((32+0-128))+rsi]
+	mov	QWORD[rbp],r8
+	mov	r8,QWORD[((32+0-128))+rsi]
 	shl	dl,4
-	mov	QWORD PTR[((0-128))+rbp],rax
-	mov	rax,QWORD PTR[((32+8-128))+rsi]
+	mov	QWORD[((0-128))+rbp],rax
+	mov	rax,QWORD[((32+8-128))+rsi]
 	shl	r10,60
-	mov	BYTE PTR[1+rsp],dl
+	mov	BYTE[1+rsp],dl
 	or	rbx,r10
 	mov	dl,al
 	shr	rax,4
 	mov	r10,r8
 	shr	r8,4
-	mov	QWORD PTR[8+rbp],r9
-	mov	r9,QWORD PTR[((48+0-128))+rsi]
+	mov	QWORD[8+rbp],r9
+	mov	r9,QWORD[((48+0-128))+rsi]
 	shl	dl,4
-	mov	QWORD PTR[((8-128))+rbp],rbx
-	mov	rbx,QWORD PTR[((48+8-128))+rsi]
+	mov	QWORD[((8-128))+rbp],rbx
+	mov	rbx,QWORD[((48+8-128))+rsi]
 	shl	r10,60
-	mov	BYTE PTR[2+rsp],dl
+	mov	BYTE[2+rsp],dl
 	or	rax,r10
 	mov	dl,bl
 	shr	rbx,4
 	mov	r10,r9
 	shr	r9,4
-	mov	QWORD PTR[16+rbp],r8
-	mov	r8,QWORD PTR[((64+0-128))+rsi]
+	mov	QWORD[16+rbp],r8
+	mov	r8,QWORD[((64+0-128))+rsi]
 	shl	dl,4
-	mov	QWORD PTR[((16-128))+rbp],rax
-	mov	rax,QWORD PTR[((64+8-128))+rsi]
+	mov	QWORD[((16-128))+rbp],rax
+	mov	rax,QWORD[((64+8-128))+rsi]
 	shl	r10,60
-	mov	BYTE PTR[3+rsp],dl
+	mov	BYTE[3+rsp],dl
 	or	rbx,r10
 	mov	dl,al
 	shr	rax,4
 	mov	r10,r8
 	shr	r8,4
-	mov	QWORD PTR[24+rbp],r9
-	mov	r9,QWORD PTR[((80+0-128))+rsi]
+	mov	QWORD[24+rbp],r9
+	mov	r9,QWORD[((80+0-128))+rsi]
 	shl	dl,4
-	mov	QWORD PTR[((24-128))+rbp],rbx
-	mov	rbx,QWORD PTR[((80+8-128))+rsi]
+	mov	QWORD[((24-128))+rbp],rbx
+	mov	rbx,QWORD[((80+8-128))+rsi]
 	shl	r10,60
-	mov	BYTE PTR[4+rsp],dl
+	mov	BYTE[4+rsp],dl
 	or	rax,r10
 	mov	dl,bl
 	shr	rbx,4
 	mov	r10,r9
 	shr	r9,4
-	mov	QWORD PTR[32+rbp],r8
-	mov	r8,QWORD PTR[((96+0-128))+rsi]
+	mov	QWORD[32+rbp],r8
+	mov	r8,QWORD[((96+0-128))+rsi]
 	shl	dl,4
-	mov	QWORD PTR[((32-128))+rbp],rax
-	mov	rax,QWORD PTR[((96+8-128))+rsi]
+	mov	QWORD[((32-128))+rbp],rax
+	mov	rax,QWORD[((96+8-128))+rsi]
 	shl	r10,60
-	mov	BYTE PTR[5+rsp],dl
+	mov	BYTE[5+rsp],dl
 	or	rbx,r10
 	mov	dl,al
 	shr	rax,4
 	mov	r10,r8
 	shr	r8,4
-	mov	QWORD PTR[40+rbp],r9
-	mov	r9,QWORD PTR[((112+0-128))+rsi]
+	mov	QWORD[40+rbp],r9
+	mov	r9,QWORD[((112+0-128))+rsi]
 	shl	dl,4
-	mov	QWORD PTR[((40-128))+rbp],rbx
-	mov	rbx,QWORD PTR[((112+8-128))+rsi]
+	mov	QWORD[((40-128))+rbp],rbx
+	mov	rbx,QWORD[((112+8-128))+rsi]
 	shl	r10,60
-	mov	BYTE PTR[6+rsp],dl
+	mov	BYTE[6+rsp],dl
 	or	rax,r10
 	mov	dl,bl
 	shr	rbx,4
 	mov	r10,r9
 	shr	r9,4
-	mov	QWORD PTR[48+rbp],r8
-	mov	r8,QWORD PTR[((128+0-128))+rsi]
+	mov	QWORD[48+rbp],r8
+	mov	r8,QWORD[((128+0-128))+rsi]
 	shl	dl,4
-	mov	QWORD PTR[((48-128))+rbp],rax
-	mov	rax,QWORD PTR[((128+8-128))+rsi]
+	mov	QWORD[((48-128))+rbp],rax
+	mov	rax,QWORD[((128+8-128))+rsi]
 	shl	r10,60
-	mov	BYTE PTR[7+rsp],dl
+	mov	BYTE[7+rsp],dl
 	or	rbx,r10
 	mov	dl,al
 	shr	rax,4
 	mov	r10,r8
 	shr	r8,4
-	mov	QWORD PTR[56+rbp],r9
-	mov	r9,QWORD PTR[((144+0-128))+rsi]
+	mov	QWORD[56+rbp],r9
+	mov	r9,QWORD[((144+0-128))+rsi]
 	shl	dl,4
-	mov	QWORD PTR[((56-128))+rbp],rbx
-	mov	rbx,QWORD PTR[((144+8-128))+rsi]
+	mov	QWORD[((56-128))+rbp],rbx
+	mov	rbx,QWORD[((144+8-128))+rsi]
 	shl	r10,60
-	mov	BYTE PTR[8+rsp],dl
+	mov	BYTE[8+rsp],dl
 	or	rax,r10
 	mov	dl,bl
 	shr	rbx,4
 	mov	r10,r9
 	shr	r9,4
-	mov	QWORD PTR[64+rbp],r8
-	mov	r8,QWORD PTR[((160+0-128))+rsi]
+	mov	QWORD[64+rbp],r8
+	mov	r8,QWORD[((160+0-128))+rsi]
 	shl	dl,4
-	mov	QWORD PTR[((64-128))+rbp],rax
-	mov	rax,QWORD PTR[((160+8-128))+rsi]
+	mov	QWORD[((64-128))+rbp],rax
+	mov	rax,QWORD[((160+8-128))+rsi]
 	shl	r10,60
-	mov	BYTE PTR[9+rsp],dl
+	mov	BYTE[9+rsp],dl
 	or	rbx,r10
 	mov	dl,al
 	shr	rax,4
 	mov	r10,r8
 	shr	r8,4
-	mov	QWORD PTR[72+rbp],r9
-	mov	r9,QWORD PTR[((176+0-128))+rsi]
+	mov	QWORD[72+rbp],r9
+	mov	r9,QWORD[((176+0-128))+rsi]
 	shl	dl,4
-	mov	QWORD PTR[((72-128))+rbp],rbx
-	mov	rbx,QWORD PTR[((176+8-128))+rsi]
+	mov	QWORD[((72-128))+rbp],rbx
+	mov	rbx,QWORD[((176+8-128))+rsi]
 	shl	r10,60
-	mov	BYTE PTR[10+rsp],dl
+	mov	BYTE[10+rsp],dl
 	or	rax,r10
 	mov	dl,bl
 	shr	rbx,4
 	mov	r10,r9
 	shr	r9,4
-	mov	QWORD PTR[80+rbp],r8
-	mov	r8,QWORD PTR[((192+0-128))+rsi]
+	mov	QWORD[80+rbp],r8
+	mov	r8,QWORD[((192+0-128))+rsi]
 	shl	dl,4
-	mov	QWORD PTR[((80-128))+rbp],rax
-	mov	rax,QWORD PTR[((192+8-128))+rsi]
+	mov	QWORD[((80-128))+rbp],rax
+	mov	rax,QWORD[((192+8-128))+rsi]
 	shl	r10,60
-	mov	BYTE PTR[11+rsp],dl
+	mov	BYTE[11+rsp],dl
 	or	rbx,r10
 	mov	dl,al
 	shr	rax,4
 	mov	r10,r8
 	shr	r8,4
-	mov	QWORD PTR[88+rbp],r9
-	mov	r9,QWORD PTR[((208+0-128))+rsi]
+	mov	QWORD[88+rbp],r9
+	mov	r9,QWORD[((208+0-128))+rsi]
 	shl	dl,4
-	mov	QWORD PTR[((88-128))+rbp],rbx
-	mov	rbx,QWORD PTR[((208+8-128))+rsi]
+	mov	QWORD[((88-128))+rbp],rbx
+	mov	rbx,QWORD[((208+8-128))+rsi]
 	shl	r10,60
-	mov	BYTE PTR[12+rsp],dl
+	mov	BYTE[12+rsp],dl
 	or	rax,r10
 	mov	dl,bl
 	shr	rbx,4
 	mov	r10,r9
 	shr	r9,4
-	mov	QWORD PTR[96+rbp],r8
-	mov	r8,QWORD PTR[((224+0-128))+rsi]
+	mov	QWORD[96+rbp],r8
+	mov	r8,QWORD[((224+0-128))+rsi]
 	shl	dl,4
-	mov	QWORD PTR[((96-128))+rbp],rax
-	mov	rax,QWORD PTR[((224+8-128))+rsi]
+	mov	QWORD[((96-128))+rbp],rax
+	mov	rax,QWORD[((224+8-128))+rsi]
 	shl	r10,60
-	mov	BYTE PTR[13+rsp],dl
+	mov	BYTE[13+rsp],dl
 	or	rbx,r10
 	mov	dl,al
 	shr	rax,4
 	mov	r10,r8
 	shr	r8,4
-	mov	QWORD PTR[104+rbp],r9
-	mov	r9,QWORD PTR[((240+0-128))+rsi]
+	mov	QWORD[104+rbp],r9
+	mov	r9,QWORD[((240+0-128))+rsi]
 	shl	dl,4
-	mov	QWORD PTR[((104-128))+rbp],rbx
-	mov	rbx,QWORD PTR[((240+8-128))+rsi]
+	mov	QWORD[((104-128))+rbp],rbx
+	mov	rbx,QWORD[((240+8-128))+rsi]
 	shl	r10,60
-	mov	BYTE PTR[14+rsp],dl
+	mov	BYTE[14+rsp],dl
 	or	rax,r10
 	mov	dl,bl
 	shr	rbx,4
 	mov	r10,r9
 	shr	r9,4
-	mov	QWORD PTR[112+rbp],r8
+	mov	QWORD[112+rbp],r8
 	shl	dl,4
-	mov	QWORD PTR[((112-128))+rbp],rax
+	mov	QWORD[((112-128))+rbp],rax
 	shl	r10,60
-	mov	BYTE PTR[15+rsp],dl
+	mov	BYTE[15+rsp],dl
 	or	rbx,r10
-	mov	QWORD PTR[120+rbp],r9
-	mov	QWORD PTR[((120-128))+rbp],rbx
+	mov	QWORD[120+rbp],r9
+	mov	QWORD[((120-128))+rbp],rbx
 	add	rsi,-128
-	mov	r8,QWORD PTR[8+rdi]
-	mov	r9,QWORD PTR[rdi]
+	mov	r8,QWORD[8+rdi]
+	mov	r9,QWORD[rdi]
 	add	r15,r14
-	lea	r11,QWORD PTR[$L$rem_8bit]
-	jmp	$L$outer_loop
+	lea	r11,[$L$rem_8bit]
+	jmp	NEAR $L$outer_loop
 ALIGN	16
-$L$outer_loop::
-	xor	r9,QWORD PTR[r14]
-	mov	rdx,QWORD PTR[8+r14]
-	lea	r14,QWORD PTR[16+r14]
+$L$outer_loop:
+	xor	r9,QWORD[r14]
+	mov	rdx,QWORD[8+r14]
+	lea	r14,[16+r14]
 	xor	rdx,r8
-	mov	QWORD PTR[rdi],r9
-	mov	QWORD PTR[8+rdi],rdx
+	mov	QWORD[rdi],r9
+	mov	QWORD[8+rdi],rdx
 	shr	rdx,32
 	xor	rax,rax
 	rol	edx,8
@@ -342,30 +345,30 @@
 	shl	al,4
 	shr	ebx,4
 	rol	edx,8
-	mov	r8,QWORD PTR[8+rax*1+rsi]
-	mov	r9,QWORD PTR[rax*1+rsi]
+	mov	r8,QWORD[8+rax*1+rsi]
+	mov	r9,QWORD[rax*1+rsi]
 	mov	al,dl
 	movzx	ecx,dl
 	shl	al,4
-	movzx	r12,BYTE PTR[rbx*1+rsp]
+	movzx	r12,BYTE[rbx*1+rsp]
 	shr	ecx,4
 	xor	r12,r8
 	mov	r10,r9
 	shr	r8,8
 	movzx	r12,r12b
 	shr	r9,8
-	xor	r8,QWORD PTR[((-128))+rbx*8+rbp]
+	xor	r8,QWORD[((-128))+rbx*8+rbp]
 	shl	r10,56
-	xor	r9,QWORD PTR[rbx*8+rbp]
+	xor	r9,QWORD[rbx*8+rbp]
 	rol	edx,8
-	xor	r8,QWORD PTR[8+rax*1+rsi]
-	xor	r9,QWORD PTR[rax*1+rsi]
+	xor	r8,QWORD[8+rax*1+rsi]
+	xor	r9,QWORD[rax*1+rsi]
 	mov	al,dl
 	xor	r8,r10
-	movzx	r12,WORD PTR[r12*2+r11]
+	movzx	r12,WORD[r12*2+r11]
 	movzx	ebx,dl
 	shl	al,4
-	movzx	r13,BYTE PTR[rcx*1+rsp]
+	movzx	r13,BYTE[rcx*1+rsp]
 	shr	ebx,4
 	shl	r12,48
 	xor	r13,r8
@@ -374,18 +377,18 @@
 	shr	r8,8
 	movzx	r13,r13b
 	shr	r9,8
-	xor	r8,QWORD PTR[((-128))+rcx*8+rbp]
+	xor	r8,QWORD[((-128))+rcx*8+rbp]
 	shl	r10,56
-	xor	r9,QWORD PTR[rcx*8+rbp]
+	xor	r9,QWORD[rcx*8+rbp]
 	rol	edx,8
-	xor	r8,QWORD PTR[8+rax*1+rsi]
-	xor	r9,QWORD PTR[rax*1+rsi]
+	xor	r8,QWORD[8+rax*1+rsi]
+	xor	r9,QWORD[rax*1+rsi]
 	mov	al,dl
 	xor	r8,r10
-	movzx	r13,WORD PTR[r13*2+r11]
+	movzx	r13,WORD[r13*2+r11]
 	movzx	ecx,dl
 	shl	al,4
-	movzx	r12,BYTE PTR[rbx*1+rsp]
+	movzx	r12,BYTE[rbx*1+rsp]
 	shr	ecx,4
 	shl	r13,48
 	xor	r12,r8
@@ -393,20 +396,20 @@
 	xor	r9,r13
 	shr	r8,8
 	movzx	r12,r12b
-	mov	edx,DWORD PTR[8+rdi]
+	mov	edx,DWORD[8+rdi]
 	shr	r9,8
-	xor	r8,QWORD PTR[((-128))+rbx*8+rbp]
+	xor	r8,QWORD[((-128))+rbx*8+rbp]
 	shl	r10,56
-	xor	r9,QWORD PTR[rbx*8+rbp]
+	xor	r9,QWORD[rbx*8+rbp]
 	rol	edx,8
-	xor	r8,QWORD PTR[8+rax*1+rsi]
-	xor	r9,QWORD PTR[rax*1+rsi]
+	xor	r8,QWORD[8+rax*1+rsi]
+	xor	r9,QWORD[rax*1+rsi]
 	mov	al,dl
 	xor	r8,r10
-	movzx	r12,WORD PTR[r12*2+r11]
+	movzx	r12,WORD[r12*2+r11]
 	movzx	ebx,dl
 	shl	al,4
-	movzx	r13,BYTE PTR[rcx*1+rsp]
+	movzx	r13,BYTE[rcx*1+rsp]
 	shr	ebx,4
 	shl	r12,48
 	xor	r13,r8
@@ -415,18 +418,18 @@
 	shr	r8,8
 	movzx	r13,r13b
 	shr	r9,8
-	xor	r8,QWORD PTR[((-128))+rcx*8+rbp]
+	xor	r8,QWORD[((-128))+rcx*8+rbp]
 	shl	r10,56
-	xor	r9,QWORD PTR[rcx*8+rbp]
+	xor	r9,QWORD[rcx*8+rbp]
 	rol	edx,8
-	xor	r8,QWORD PTR[8+rax*1+rsi]
-	xor	r9,QWORD PTR[rax*1+rsi]
+	xor	r8,QWORD[8+rax*1+rsi]
+	xor	r9,QWORD[rax*1+rsi]
 	mov	al,dl
 	xor	r8,r10
-	movzx	r13,WORD PTR[r13*2+r11]
+	movzx	r13,WORD[r13*2+r11]
 	movzx	ecx,dl
 	shl	al,4
-	movzx	r12,BYTE PTR[rbx*1+rsp]
+	movzx	r12,BYTE[rbx*1+rsp]
 	shr	ecx,4
 	shl	r13,48
 	xor	r12,r8
@@ -435,18 +438,18 @@
 	shr	r8,8
 	movzx	r12,r12b
 	shr	r9,8
-	xor	r8,QWORD PTR[((-128))+rbx*8+rbp]
+	xor	r8,QWORD[((-128))+rbx*8+rbp]
 	shl	r10,56
-	xor	r9,QWORD PTR[rbx*8+rbp]
+	xor	r9,QWORD[rbx*8+rbp]
 	rol	edx,8
-	xor	r8,QWORD PTR[8+rax*1+rsi]
-	xor	r9,QWORD PTR[rax*1+rsi]
+	xor	r8,QWORD[8+rax*1+rsi]
+	xor	r9,QWORD[rax*1+rsi]
 	mov	al,dl
 	xor	r8,r10
-	movzx	r12,WORD PTR[r12*2+r11]
+	movzx	r12,WORD[r12*2+r11]
 	movzx	ebx,dl
 	shl	al,4
-	movzx	r13,BYTE PTR[rcx*1+rsp]
+	movzx	r13,BYTE[rcx*1+rsp]
 	shr	ebx,4
 	shl	r12,48
 	xor	r13,r8
@@ -455,18 +458,18 @@
 	shr	r8,8
 	movzx	r13,r13b
 	shr	r9,8
-	xor	r8,QWORD PTR[((-128))+rcx*8+rbp]
+	xor	r8,QWORD[((-128))+rcx*8+rbp]
 	shl	r10,56
-	xor	r9,QWORD PTR[rcx*8+rbp]
+	xor	r9,QWORD[rcx*8+rbp]
 	rol	edx,8
-	xor	r8,QWORD PTR[8+rax*1+rsi]
-	xor	r9,QWORD PTR[rax*1+rsi]
+	xor	r8,QWORD[8+rax*1+rsi]
+	xor	r9,QWORD[rax*1+rsi]
 	mov	al,dl
 	xor	r8,r10
-	movzx	r13,WORD PTR[r13*2+r11]
+	movzx	r13,WORD[r13*2+r11]
 	movzx	ecx,dl
 	shl	al,4
-	movzx	r12,BYTE PTR[rbx*1+rsp]
+	movzx	r12,BYTE[rbx*1+rsp]
 	shr	ecx,4
 	shl	r13,48
 	xor	r12,r8
@@ -474,20 +477,20 @@
 	xor	r9,r13
 	shr	r8,8
 	movzx	r12,r12b
-	mov	edx,DWORD PTR[4+rdi]
+	mov	edx,DWORD[4+rdi]
 	shr	r9,8
-	xor	r8,QWORD PTR[((-128))+rbx*8+rbp]
+	xor	r8,QWORD[((-128))+rbx*8+rbp]
 	shl	r10,56
-	xor	r9,QWORD PTR[rbx*8+rbp]
+	xor	r9,QWORD[rbx*8+rbp]
 	rol	edx,8
-	xor	r8,QWORD PTR[8+rax*1+rsi]
-	xor	r9,QWORD PTR[rax*1+rsi]
+	xor	r8,QWORD[8+rax*1+rsi]
+	xor	r9,QWORD[rax*1+rsi]
 	mov	al,dl
 	xor	r8,r10
-	movzx	r12,WORD PTR[r12*2+r11]
+	movzx	r12,WORD[r12*2+r11]
 	movzx	ebx,dl
 	shl	al,4
-	movzx	r13,BYTE PTR[rcx*1+rsp]
+	movzx	r13,BYTE[rcx*1+rsp]
 	shr	ebx,4
 	shl	r12,48
 	xor	r13,r8
@@ -496,18 +499,18 @@
 	shr	r8,8
 	movzx	r13,r13b
 	shr	r9,8
-	xor	r8,QWORD PTR[((-128))+rcx*8+rbp]
+	xor	r8,QWORD[((-128))+rcx*8+rbp]
 	shl	r10,56
-	xor	r9,QWORD PTR[rcx*8+rbp]
+	xor	r9,QWORD[rcx*8+rbp]
 	rol	edx,8
-	xor	r8,QWORD PTR[8+rax*1+rsi]
-	xor	r9,QWORD PTR[rax*1+rsi]
+	xor	r8,QWORD[8+rax*1+rsi]
+	xor	r9,QWORD[rax*1+rsi]
 	mov	al,dl
 	xor	r8,r10
-	movzx	r13,WORD PTR[r13*2+r11]
+	movzx	r13,WORD[r13*2+r11]
 	movzx	ecx,dl
 	shl	al,4
-	movzx	r12,BYTE PTR[rbx*1+rsp]
+	movzx	r12,BYTE[rbx*1+rsp]
 	shr	ecx,4
 	shl	r13,48
 	xor	r12,r8
@@ -516,18 +519,18 @@
 	shr	r8,8
 	movzx	r12,r12b
 	shr	r9,8
-	xor	r8,QWORD PTR[((-128))+rbx*8+rbp]
+	xor	r8,QWORD[((-128))+rbx*8+rbp]
 	shl	r10,56
-	xor	r9,QWORD PTR[rbx*8+rbp]
+	xor	r9,QWORD[rbx*8+rbp]
 	rol	edx,8
-	xor	r8,QWORD PTR[8+rax*1+rsi]
-	xor	r9,QWORD PTR[rax*1+rsi]
+	xor	r8,QWORD[8+rax*1+rsi]
+	xor	r9,QWORD[rax*1+rsi]
 	mov	al,dl
 	xor	r8,r10
-	movzx	r12,WORD PTR[r12*2+r11]
+	movzx	r12,WORD[r12*2+r11]
 	movzx	ebx,dl
 	shl	al,4
-	movzx	r13,BYTE PTR[rcx*1+rsp]
+	movzx	r13,BYTE[rcx*1+rsp]
 	shr	ebx,4
 	shl	r12,48
 	xor	r13,r8
@@ -536,18 +539,18 @@
 	shr	r8,8
 	movzx	r13,r13b
 	shr	r9,8
-	xor	r8,QWORD PTR[((-128))+rcx*8+rbp]
+	xor	r8,QWORD[((-128))+rcx*8+rbp]
 	shl	r10,56
-	xor	r9,QWORD PTR[rcx*8+rbp]
+	xor	r9,QWORD[rcx*8+rbp]
 	rol	edx,8
-	xor	r8,QWORD PTR[8+rax*1+rsi]
-	xor	r9,QWORD PTR[rax*1+rsi]
+	xor	r8,QWORD[8+rax*1+rsi]
+	xor	r9,QWORD[rax*1+rsi]
 	mov	al,dl
 	xor	r8,r10
-	movzx	r13,WORD PTR[r13*2+r11]
+	movzx	r13,WORD[r13*2+r11]
 	movzx	ecx,dl
 	shl	al,4
-	movzx	r12,BYTE PTR[rbx*1+rsp]
+	movzx	r12,BYTE[rbx*1+rsp]
 	shr	ecx,4
 	shl	r13,48
 	xor	r12,r8
@@ -555,20 +558,20 @@
 	xor	r9,r13
 	shr	r8,8
 	movzx	r12,r12b
-	mov	edx,DWORD PTR[rdi]
+	mov	edx,DWORD[rdi]
 	shr	r9,8
-	xor	r8,QWORD PTR[((-128))+rbx*8+rbp]
+	xor	r8,QWORD[((-128))+rbx*8+rbp]
 	shl	r10,56
-	xor	r9,QWORD PTR[rbx*8+rbp]
+	xor	r9,QWORD[rbx*8+rbp]
 	rol	edx,8
-	xor	r8,QWORD PTR[8+rax*1+rsi]
-	xor	r9,QWORD PTR[rax*1+rsi]
+	xor	r8,QWORD[8+rax*1+rsi]
+	xor	r9,QWORD[rax*1+rsi]
 	mov	al,dl
 	xor	r8,r10
-	movzx	r12,WORD PTR[r12*2+r11]
+	movzx	r12,WORD[r12*2+r11]
 	movzx	ebx,dl
 	shl	al,4
-	movzx	r13,BYTE PTR[rcx*1+rsp]
+	movzx	r13,BYTE[rcx*1+rsp]
 	shr	ebx,4
 	shl	r12,48
 	xor	r13,r8
@@ -577,18 +580,18 @@
 	shr	r8,8
 	movzx	r13,r13b
 	shr	r9,8
-	xor	r8,QWORD PTR[((-128))+rcx*8+rbp]
+	xor	r8,QWORD[((-128))+rcx*8+rbp]
 	shl	r10,56
-	xor	r9,QWORD PTR[rcx*8+rbp]
+	xor	r9,QWORD[rcx*8+rbp]
 	rol	edx,8
-	xor	r8,QWORD PTR[8+rax*1+rsi]
-	xor	r9,QWORD PTR[rax*1+rsi]
+	xor	r8,QWORD[8+rax*1+rsi]
+	xor	r9,QWORD[rax*1+rsi]
 	mov	al,dl
 	xor	r8,r10
-	movzx	r13,WORD PTR[r13*2+r11]
+	movzx	r13,WORD[r13*2+r11]
 	movzx	ecx,dl
 	shl	al,4
-	movzx	r12,BYTE PTR[rbx*1+rsp]
+	movzx	r12,BYTE[rbx*1+rsp]
 	shr	ecx,4
 	shl	r13,48
 	xor	r12,r8
@@ -597,18 +600,18 @@
 	shr	r8,8
 	movzx	r12,r12b
 	shr	r9,8
-	xor	r8,QWORD PTR[((-128))+rbx*8+rbp]
+	xor	r8,QWORD[((-128))+rbx*8+rbp]
 	shl	r10,56
-	xor	r9,QWORD PTR[rbx*8+rbp]
+	xor	r9,QWORD[rbx*8+rbp]
 	rol	edx,8
-	xor	r8,QWORD PTR[8+rax*1+rsi]
-	xor	r9,QWORD PTR[rax*1+rsi]
+	xor	r8,QWORD[8+rax*1+rsi]
+	xor	r9,QWORD[rax*1+rsi]
 	mov	al,dl
 	xor	r8,r10
-	movzx	r12,WORD PTR[r12*2+r11]
+	movzx	r12,WORD[r12*2+r11]
 	movzx	ebx,dl
 	shl	al,4
-	movzx	r13,BYTE PTR[rcx*1+rsp]
+	movzx	r13,BYTE[rcx*1+rsp]
 	shr	ebx,4
 	shl	r12,48
 	xor	r13,r8
@@ -617,18 +620,18 @@
 	shr	r8,8
 	movzx	r13,r13b
 	shr	r9,8
-	xor	r8,QWORD PTR[((-128))+rcx*8+rbp]
+	xor	r8,QWORD[((-128))+rcx*8+rbp]
 	shl	r10,56
-	xor	r9,QWORD PTR[rcx*8+rbp]
+	xor	r9,QWORD[rcx*8+rbp]
 	rol	edx,8
-	xor	r8,QWORD PTR[8+rax*1+rsi]
-	xor	r9,QWORD PTR[rax*1+rsi]
+	xor	r8,QWORD[8+rax*1+rsi]
+	xor	r9,QWORD[rax*1+rsi]
 	mov	al,dl
 	xor	r8,r10
-	movzx	r13,WORD PTR[r13*2+r11]
+	movzx	r13,WORD[r13*2+r11]
 	movzx	ecx,dl
 	shl	al,4
-	movzx	r12,BYTE PTR[rbx*1+rsp]
+	movzx	r12,BYTE[rbx*1+rsp]
 	and	ecx,240
 	shl	r13,48
 	xor	r12,r8
@@ -636,14 +639,14 @@
 	xor	r9,r13
 	shr	r8,8
 	movzx	r12,r12b
-	mov	edx,DWORD PTR[((-4))+rdi]
+	mov	edx,DWORD[((-4))+rdi]
 	shr	r9,8
-	xor	r8,QWORD PTR[((-128))+rbx*8+rbp]
+	xor	r8,QWORD[((-128))+rbx*8+rbp]
 	shl	r10,56
-	xor	r9,QWORD PTR[rbx*8+rbp]
-	movzx	r12,WORD PTR[r12*2+r11]
-	xor	r8,QWORD PTR[8+rax*1+rsi]
-	xor	r9,QWORD PTR[rax*1+rsi]
+	xor	r9,QWORD[rbx*8+rbp]
+	movzx	r12,WORD[r12*2+r11]
+	xor	r8,QWORD[8+rax*1+rsi]
+	xor	r9,QWORD[rax*1+rsi]
 	shl	r12,48
 	xor	r8,r10
 	xor	r9,r12
@@ -652,44 +655,43 @@
 	mov	r10,r9
 	shl	r13b,4
 	shr	r9,4
-	xor	r8,QWORD PTR[8+rcx*1+rsi]
-	movzx	r13,WORD PTR[r13*2+r11]
+	xor	r8,QWORD[8+rcx*1+rsi]
+	movzx	r13,WORD[r13*2+r11]
 	shl	r10,60
-	xor	r9,QWORD PTR[rcx*1+rsi]
+	xor	r9,QWORD[rcx*1+rsi]
 	xor	r8,r10
 	shl	r13,48
 	bswap	r8
 	xor	r9,r13
 	bswap	r9
 	cmp	r14,r15
-	jb	$L$outer_loop
-	mov	QWORD PTR[8+rdi],r8
-	mov	QWORD PTR[rdi],r9
+	jb	NEAR $L$outer_loop
+	mov	QWORD[8+rdi],r8
+	mov	QWORD[rdi],r9
 
-	lea	rsi,QWORD PTR[280+rsp]
-	mov	r15,QWORD PTR[rsi]
-	mov	r14,QWORD PTR[8+rsi]
-	mov	r13,QWORD PTR[16+rsi]
-	mov	r12,QWORD PTR[24+rsi]
-	mov	rbp,QWORD PTR[32+rsi]
-	mov	rbx,QWORD PTR[40+rsi]
-	lea	rsp,QWORD PTR[48+rsi]
-$L$ghash_epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	lea	rsi,[280+rsp]
+	mov	r15,QWORD[rsi]
+	mov	r14,QWORD[8+rsi]
+	mov	r13,QWORD[16+rsi]
+	mov	r12,QWORD[24+rsi]
+	mov	rbp,QWORD[32+rsi]
+	mov	rbx,QWORD[40+rsi]
+	lea	rsp,[48+rsi]
+$L$ghash_epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_gcm_ghash_4bit::
-gcm_ghash_4bit	ENDP
-PUBLIC	gcm_init_clmul
+$L$SEH_end_gcm_ghash_4bit:
+global	gcm_init_clmul
 
 ALIGN	16
-gcm_init_clmul	PROC PUBLIC
-$L$_init_clmul::
-$L$SEH_begin_gcm_init_clmul::
+gcm_init_clmul:
+$L$_init_clmul:
+$L$SEH_begin_gcm_init_clmul:
 
-DB	048h,083h,0ech,018h
-DB	00fh,029h,034h,024h
-	movdqu	xmm2,XMMWORD PTR[rdx]
+DB	0x48,0x83,0xec,0x18
+DB	0x0f,0x29,0x34,0x24
+	movdqu	xmm2,XMMWORD[rdx]
 	pshufd	xmm2,xmm2,78
 
 
@@ -703,7 +705,7 @@
 	por	xmm2,xmm3
 
 
-	pand	xmm5,XMMWORD PTR[$L$0x1c2_polynomial]
+	pand	xmm5,XMMWORD[$L$0x1c2_polynomial]
 	pxor	xmm2,xmm5
 
 
@@ -750,11 +752,11 @@
 	pshufd	xmm3,xmm2,78
 	pshufd	xmm4,xmm0,78
 	pxor	xmm3,xmm2
-	movdqu	XMMWORD PTR[rcx],xmm2
+	movdqu	XMMWORD[rcx],xmm2
 	pxor	xmm4,xmm0
-	movdqu	XMMWORD PTR[16+rcx],xmm0
+	movdqu	XMMWORD[16+rcx],xmm0
 DB	102,15,58,15,227,8
-	movdqu	XMMWORD PTR[32+rcx],xmm4
+	movdqu	XMMWORD[32+rcx],xmm4
 	movdqa	xmm1,xmm0
 	pshufd	xmm3,xmm0,78
 	pxor	xmm3,xmm0
@@ -833,25 +835,25 @@
 	pshufd	xmm3,xmm5,78
 	pshufd	xmm4,xmm0,78
 	pxor	xmm3,xmm5
-	movdqu	XMMWORD PTR[48+rcx],xmm5
+	movdqu	XMMWORD[48+rcx],xmm5
 	pxor	xmm4,xmm0
-	movdqu	XMMWORD PTR[64+rcx],xmm0
+	movdqu	XMMWORD[64+rcx],xmm0
 DB	102,15,58,15,227,8
-	movdqu	XMMWORD PTR[80+rcx],xmm4
-	movaps	xmm6,XMMWORD PTR[rsp]
-	lea	rsp,QWORD PTR[24+rsp]
-$L$SEH_end_gcm_init_clmul::
+	movdqu	XMMWORD[80+rcx],xmm4
+	movaps	xmm6,XMMWORD[rsp]
+	lea	rsp,[24+rsp]
+$L$SEH_end_gcm_init_clmul:
 	DB	0F3h,0C3h		;repret
-gcm_init_clmul	ENDP
-PUBLIC	gcm_gmult_clmul
+
+global	gcm_gmult_clmul
 
 ALIGN	16
-gcm_gmult_clmul	PROC PUBLIC
-$L$_gmult_clmul::
-	movdqu	xmm0,XMMWORD PTR[rcx]
-	movdqa	xmm5,XMMWORD PTR[$L$bswap_mask]
-	movdqu	xmm2,XMMWORD PTR[rdx]
-	movdqu	xmm4,XMMWORD PTR[32+rdx]
+gcm_gmult_clmul:
+$L$_gmult_clmul:
+	movdqu	xmm0,XMMWORD[rcx]
+	movdqa	xmm5,XMMWORD[$L$bswap_mask]
+	movdqu	xmm2,XMMWORD[rdx]
+	movdqu	xmm4,XMMWORD[32+rdx]
 DB	102,15,56,0,197
 	movdqa	xmm1,xmm0
 	pshufd	xmm3,xmm0,78
@@ -891,57 +893,57 @@
 	psrlq	xmm0,1
 	pxor	xmm0,xmm1
 DB	102,15,56,0,197
-	movdqu	XMMWORD PTR[rcx],xmm0
+	movdqu	XMMWORD[rcx],xmm0
 	DB	0F3h,0C3h		;repret
-gcm_gmult_clmul	ENDP
-PUBLIC	gcm_ghash_clmul
+
+global	gcm_ghash_clmul
 
 ALIGN	32
-gcm_ghash_clmul	PROC PUBLIC
-$L$_ghash_clmul::
-	lea	rax,QWORD PTR[((-136))+rsp]
-$L$SEH_begin_gcm_ghash_clmul::
+gcm_ghash_clmul:
+$L$_ghash_clmul:
+	lea	rax,[((-136))+rsp]
+$L$SEH_begin_gcm_ghash_clmul:
 
-DB	048h,08dh,060h,0e0h
-DB	00fh,029h,070h,0e0h
-DB	00fh,029h,078h,0f0h
-DB	044h,00fh,029h,000h
-DB	044h,00fh,029h,048h,010h
-DB	044h,00fh,029h,050h,020h
-DB	044h,00fh,029h,058h,030h
-DB	044h,00fh,029h,060h,040h
-DB	044h,00fh,029h,068h,050h
-DB	044h,00fh,029h,070h,060h
-DB	044h,00fh,029h,078h,070h
-	movdqa	xmm10,XMMWORD PTR[$L$bswap_mask]
+DB	0x48,0x8d,0x60,0xe0
+DB	0x0f,0x29,0x70,0xe0
+DB	0x0f,0x29,0x78,0xf0
+DB	0x44,0x0f,0x29,0x00
+DB	0x44,0x0f,0x29,0x48,0x10
+DB	0x44,0x0f,0x29,0x50,0x20
+DB	0x44,0x0f,0x29,0x58,0x30
+DB	0x44,0x0f,0x29,0x60,0x40
+DB	0x44,0x0f,0x29,0x68,0x50
+DB	0x44,0x0f,0x29,0x70,0x60
+DB	0x44,0x0f,0x29,0x78,0x70
+	movdqa	xmm10,XMMWORD[$L$bswap_mask]
 
-	movdqu	xmm0,XMMWORD PTR[rcx]
-	movdqu	xmm2,XMMWORD PTR[rdx]
-	movdqu	xmm7,XMMWORD PTR[32+rdx]
+	movdqu	xmm0,XMMWORD[rcx]
+	movdqu	xmm2,XMMWORD[rdx]
+	movdqu	xmm7,XMMWORD[32+rdx]
 DB	102,65,15,56,0,194
 
-	sub	r9,010h
-	jz	$L$odd_tail
+	sub	r9,0x10
+	jz	NEAR $L$odd_tail
 
-	movdqu	xmm6,XMMWORD PTR[16+rdx]
-	mov	eax,DWORD PTR[((OPENSSL_ia32cap_P+4))]
-	cmp	r9,030h
-	jb	$L$skip4x
+	movdqu	xmm6,XMMWORD[16+rdx]
+	mov	eax,DWORD[((OPENSSL_ia32cap_P+4))]
+	cmp	r9,0x30
+	jb	NEAR $L$skip4x
 
 	and	eax,71303168
 	cmp	eax,4194304
-	je	$L$skip4x
+	je	NEAR $L$skip4x
 
-	sub	r9,030h
-	mov	rax,0A040608020C0E000h
-	movdqu	xmm14,XMMWORD PTR[48+rdx]
-	movdqu	xmm15,XMMWORD PTR[64+rdx]
+	sub	r9,0x30
+	mov	rax,0xA040608020C0E000
+	movdqu	xmm14,XMMWORD[48+rdx]
+	movdqu	xmm15,XMMWORD[64+rdx]
 
 
 
 
-	movdqu	xmm3,XMMWORD PTR[48+r8]
-	movdqu	xmm11,XMMWORD PTR[32+r8]
+	movdqu	xmm3,XMMWORD[48+r8]
+	movdqu	xmm11,XMMWORD[32+r8]
 DB	102,65,15,56,0,218
 DB	102,69,15,56,0,218
 	movdqa	xmm5,xmm3
@@ -959,11 +961,11 @@
 DB	102,68,15,58,68,231,16
 	xorps	xmm3,xmm11
 	xorps	xmm5,xmm13
-	movups	xmm7,XMMWORD PTR[80+rdx]
+	movups	xmm7,XMMWORD[80+rdx]
 	xorps	xmm4,xmm12
 
-	movdqu	xmm11,XMMWORD PTR[16+r8]
-	movdqu	xmm8,XMMWORD PTR[r8]
+	movdqu	xmm11,XMMWORD[16+r8]
+	movdqu	xmm8,XMMWORD[r8]
 DB	102,69,15,56,0,218
 DB	102,69,15,56,0,194
 	movdqa	xmm13,xmm11
@@ -979,27 +981,27 @@
 	xorps	xmm3,xmm11
 	xorps	xmm5,xmm13
 
-	lea	r8,QWORD PTR[64+r8]
-	sub	r9,040h
-	jc	$L$tail4x
+	lea	r8,[64+r8]
+	sub	r9,0x40
+	jc	NEAR $L$tail4x
 
-	jmp	$L$mod4_loop
+	jmp	NEAR $L$mod4_loop
 ALIGN	32
-$L$mod4_loop::
+$L$mod4_loop:
 DB	102,65,15,58,68,199,0
 	xorps	xmm4,xmm12
-	movdqu	xmm11,XMMWORD PTR[48+r8]
+	movdqu	xmm11,XMMWORD[48+r8]
 DB	102,69,15,56,0,218
 DB	102,65,15,58,68,207,17
 	xorps	xmm0,xmm3
-	movdqu	xmm3,XMMWORD PTR[32+r8]
+	movdqu	xmm3,XMMWORD[32+r8]
 	movdqa	xmm13,xmm11
 DB	102,68,15,58,68,199,16
 	pshufd	xmm12,xmm11,78
 	xorps	xmm1,xmm5
 	pxor	xmm12,xmm11
 DB	102,65,15,56,0,218
-	movups	xmm7,XMMWORD PTR[32+rdx]
+	movups	xmm7,XMMWORD[32+rdx]
 	xorps	xmm8,xmm4
 DB	102,68,15,58,68,218,0
 	pshufd	xmm4,xmm3,78
@@ -1013,7 +1015,7 @@
 	pslldq	xmm8,8
 	psrldq	xmm9,8
 	pxor	xmm0,xmm8
-	movdqa	xmm8,XMMWORD PTR[$L$7_mask]
+	movdqa	xmm8,XMMWORD[$L$7_mask]
 	pxor	xmm1,xmm9
 DB	102,76,15,110,200
 
@@ -1028,17 +1030,17 @@
 	psrldq	xmm8,8
 	pxor	xmm0,xmm9
 	pxor	xmm1,xmm8
-	movdqu	xmm8,XMMWORD PTR[r8]
+	movdqu	xmm8,XMMWORD[r8]
 
 	movdqa	xmm9,xmm0
 	psrlq	xmm0,1
 DB	102,15,58,68,238,17
 	xorps	xmm3,xmm11
-	movdqu	xmm11,XMMWORD PTR[16+r8]
+	movdqu	xmm11,XMMWORD[16+r8]
 DB	102,69,15,56,0,218
 DB	102,15,58,68,231,16
 	xorps	xmm5,xmm13
-	movups	xmm7,XMMWORD PTR[80+rdx]
+	movups	xmm7,XMMWORD[80+rdx]
 DB	102,69,15,56,0,194
 	pxor	xmm1,xmm9
 	pxor	xmm9,xmm0
@@ -1062,11 +1064,11 @@
 DB	102,68,15,58,68,231,0
 	xorps	xmm5,xmm13
 
-	lea	r8,QWORD PTR[64+r8]
-	sub	r9,040h
-	jnc	$L$mod4_loop
+	lea	r8,[64+r8]
+	sub	r9,0x40
+	jnc	NEAR $L$mod4_loop
 
-$L$tail4x::
+$L$tail4x:
 DB	102,65,15,58,68,199,0
 DB	102,65,15,58,68,207,17
 DB	102,68,15,58,68,199,16
@@ -1107,19 +1109,19 @@
 	pxor	xmm0,xmm4
 	psrlq	xmm0,1
 	pxor	xmm0,xmm1
-	add	r9,040h
-	jz	$L$done
-	movdqu	xmm7,XMMWORD PTR[32+rdx]
-	sub	r9,010h
-	jz	$L$odd_tail
-$L$skip4x::
+	add	r9,0x40
+	jz	NEAR $L$done
+	movdqu	xmm7,XMMWORD[32+rdx]
+	sub	r9,0x10
+	jz	NEAR $L$odd_tail
+$L$skip4x:
 
 
 
 
 
-	movdqu	xmm8,XMMWORD PTR[r8]
-	movdqu	xmm3,XMMWORD PTR[16+r8]
+	movdqu	xmm8,XMMWORD[r8]
+	movdqu	xmm3,XMMWORD[16+r8]
 DB	102,69,15,56,0,194
 DB	102,65,15,56,0,218
 	pxor	xmm0,xmm8
@@ -1131,15 +1133,15 @@
 DB	102,15,58,68,234,17
 DB	102,15,58,68,231,0
 
-	lea	r8,QWORD PTR[32+r8]
+	lea	r8,[32+r8]
 	nop
-	sub	r9,020h
-	jbe	$L$even_tail
+	sub	r9,0x20
+	jbe	NEAR $L$even_tail
 	nop
-	jmp	$L$mod_loop
+	jmp	NEAR $L$mod_loop
 
 ALIGN	32
-$L$mod_loop::
+$L$mod_loop:
 	movdqa	xmm1,xmm0
 	movdqa	xmm8,xmm4
 	pshufd	xmm4,xmm0,78
@@ -1151,10 +1153,10 @@
 
 	pxor	xmm0,xmm3
 	pxor	xmm1,xmm5
-	movdqu	xmm9,XMMWORD PTR[r8]
+	movdqu	xmm9,XMMWORD[r8]
 	pxor	xmm8,xmm0
 DB	102,69,15,56,0,202
-	movdqu	xmm3,XMMWORD PTR[16+r8]
+	movdqu	xmm3,XMMWORD[16+r8]
 
 	pxor	xmm8,xmm1
 	pxor	xmm1,xmm9
@@ -1191,15 +1193,15 @@
 	pxor	xmm9,xmm0
 	psrlq	xmm0,5
 	pxor	xmm0,xmm9
-	lea	r8,QWORD PTR[32+r8]
+	lea	r8,[32+r8]
 	psrlq	xmm0,1
 DB	102,15,58,68,231,0
 	pxor	xmm0,xmm1
 
-	sub	r9,020h
-	ja	$L$mod_loop
+	sub	r9,0x20
+	ja	NEAR $L$mod_loop
 
-$L$even_tail::
+$L$even_tail:
 	movdqa	xmm1,xmm0
 	movdqa	xmm8,xmm4
 	pshufd	xmm4,xmm0,78
@@ -1243,10 +1245,10 @@
 	psrlq	xmm0,1
 	pxor	xmm0,xmm1
 	test	r9,r9
-	jnz	$L$done
+	jnz	NEAR $L$done
 
-$L$odd_tail::
-	movdqu	xmm8,XMMWORD PTR[r8]
+$L$odd_tail:
+	movdqu	xmm8,XMMWORD[r8]
 DB	102,69,15,56,0,194
 	pxor	xmm0,xmm8
 	movdqa	xmm1,xmm0
@@ -1286,101 +1288,101 @@
 	pxor	xmm0,xmm4
 	psrlq	xmm0,1
 	pxor	xmm0,xmm1
-$L$done::
+$L$done:
 DB	102,65,15,56,0,194
-	movdqu	XMMWORD PTR[rcx],xmm0
-	movaps	xmm6,XMMWORD PTR[rsp]
-	movaps	xmm7,XMMWORD PTR[16+rsp]
-	movaps	xmm8,XMMWORD PTR[32+rsp]
-	movaps	xmm9,XMMWORD PTR[48+rsp]
-	movaps	xmm10,XMMWORD PTR[64+rsp]
-	movaps	xmm11,XMMWORD PTR[80+rsp]
-	movaps	xmm12,XMMWORD PTR[96+rsp]
-	movaps	xmm13,XMMWORD PTR[112+rsp]
-	movaps	xmm14,XMMWORD PTR[128+rsp]
-	movaps	xmm15,XMMWORD PTR[144+rsp]
-	lea	rsp,QWORD PTR[168+rsp]
-$L$SEH_end_gcm_ghash_clmul::
+	movdqu	XMMWORD[rcx],xmm0
+	movaps	xmm6,XMMWORD[rsp]
+	movaps	xmm7,XMMWORD[16+rsp]
+	movaps	xmm8,XMMWORD[32+rsp]
+	movaps	xmm9,XMMWORD[48+rsp]
+	movaps	xmm10,XMMWORD[64+rsp]
+	movaps	xmm11,XMMWORD[80+rsp]
+	movaps	xmm12,XMMWORD[96+rsp]
+	movaps	xmm13,XMMWORD[112+rsp]
+	movaps	xmm14,XMMWORD[128+rsp]
+	movaps	xmm15,XMMWORD[144+rsp]
+	lea	rsp,[168+rsp]
+$L$SEH_end_gcm_ghash_clmul:
 	DB	0F3h,0C3h		;repret
-gcm_ghash_clmul	ENDP
-PUBLIC	gcm_init_avx
+
+global	gcm_init_avx
 
 ALIGN	32
-gcm_init_avx	PROC PUBLIC
-	jmp	$L$_init_clmul
-gcm_init_avx	ENDP
-PUBLIC	gcm_gmult_avx
+gcm_init_avx:
+	jmp	NEAR $L$_init_clmul
+
+global	gcm_gmult_avx
 
 ALIGN	32
-gcm_gmult_avx	PROC PUBLIC
-	jmp	$L$_gmult_clmul
-gcm_gmult_avx	ENDP
-PUBLIC	gcm_ghash_avx
+gcm_gmult_avx:
+	jmp	NEAR $L$_gmult_clmul
+
+global	gcm_ghash_avx
 
 ALIGN	32
-gcm_ghash_avx	PROC PUBLIC
-	jmp	$L$_ghash_clmul
-gcm_ghash_avx	ENDP
+gcm_ghash_avx:
+	jmp	NEAR $L$_ghash_clmul
+
 ALIGN	64
-$L$bswap_mask::
+$L$bswap_mask:
 DB	15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
-$L$0x1c2_polynomial::
-DB	1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0c2h
-$L$7_mask::
+$L$0x1c2_polynomial:
+DB	1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2
+$L$7_mask:
 	DD	7,0,7,0
-$L$7_mask_poly::
+$L$7_mask_poly:
 	DD	7,0,450,0
 ALIGN	64
 
-$L$rem_4bit::
+$L$rem_4bit:
 	DD	0,0,0,471859200,0,943718400,0,610271232
 	DD	0,1887436800,0,1822425088,0,1220542464,0,1423966208
 	DD	0,3774873600,0,4246732800,0,3644850176,0,3311403008
 	DD	0,2441084928,0,2376073216,0,2847932416,0,3051356160
 
-$L$rem_8bit::
-	DW	00000h,001C2h,00384h,00246h,00708h,006CAh,0048Ch,0054Eh
-	DW	00E10h,00FD2h,00D94h,00C56h,00918h,008DAh,00A9Ch,00B5Eh
-	DW	01C20h,01DE2h,01FA4h,01E66h,01B28h,01AEAh,018ACh,0196Eh
-	DW	01230h,013F2h,011B4h,01076h,01538h,014FAh,016BCh,0177Eh
-	DW	03840h,03982h,03BC4h,03A06h,03F48h,03E8Ah,03CCCh,03D0Eh
-	DW	03650h,03792h,035D4h,03416h,03158h,0309Ah,032DCh,0331Eh
-	DW	02460h,025A2h,027E4h,02626h,02368h,022AAh,020ECh,0212Eh
-	DW	02A70h,02BB2h,029F4h,02836h,02D78h,02CBAh,02EFCh,02F3Eh
-	DW	07080h,07142h,07304h,072C6h,07788h,0764Ah,0740Ch,075CEh
-	DW	07E90h,07F52h,07D14h,07CD6h,07998h,0785Ah,07A1Ch,07BDEh
-	DW	06CA0h,06D62h,06F24h,06EE6h,06BA8h,06A6Ah,0682Ch,069EEh
-	DW	062B0h,06372h,06134h,060F6h,065B8h,0647Ah,0663Ch,067FEh
-	DW	048C0h,04902h,04B44h,04A86h,04FC8h,04E0Ah,04C4Ch,04D8Eh
-	DW	046D0h,04712h,04554h,04496h,041D8h,0401Ah,0425Ch,0439Eh
-	DW	054E0h,05522h,05764h,056A6h,053E8h,0522Ah,0506Ch,051AEh
-	DW	05AF0h,05B32h,05974h,058B6h,05DF8h,05C3Ah,05E7Ch,05FBEh
-	DW	0E100h,0E0C2h,0E284h,0E346h,0E608h,0E7CAh,0E58Ch,0E44Eh
-	DW	0EF10h,0EED2h,0EC94h,0ED56h,0E818h,0E9DAh,0EB9Ch,0EA5Eh
-	DW	0FD20h,0FCE2h,0FEA4h,0FF66h,0FA28h,0FBEAh,0F9ACh,0F86Eh
-	DW	0F330h,0F2F2h,0F0B4h,0F176h,0F438h,0F5FAh,0F7BCh,0F67Eh
-	DW	0D940h,0D882h,0DAC4h,0DB06h,0DE48h,0DF8Ah,0DDCCh,0DC0Eh
-	DW	0D750h,0D692h,0D4D4h,0D516h,0D058h,0D19Ah,0D3DCh,0D21Eh
-	DW	0C560h,0C4A2h,0C6E4h,0C726h,0C268h,0C3AAh,0C1ECh,0C02Eh
-	DW	0CB70h,0CAB2h,0C8F4h,0C936h,0CC78h,0CDBAh,0CFFCh,0CE3Eh
-	DW	09180h,09042h,09204h,093C6h,09688h,0974Ah,0950Ch,094CEh
-	DW	09F90h,09E52h,09C14h,09DD6h,09898h,0995Ah,09B1Ch,09ADEh
-	DW	08DA0h,08C62h,08E24h,08FE6h,08AA8h,08B6Ah,0892Ch,088EEh
-	DW	083B0h,08272h,08034h,081F6h,084B8h,0857Ah,0873Ch,086FEh
-	DW	0A9C0h,0A802h,0AA44h,0AB86h,0AEC8h,0AF0Ah,0AD4Ch,0AC8Eh
-	DW	0A7D0h,0A612h,0A454h,0A596h,0A0D8h,0A11Ah,0A35Ch,0A29Eh
-	DW	0B5E0h,0B422h,0B664h,0B7A6h,0B2E8h,0B32Ah,0B16Ch,0B0AEh
-	DW	0BBF0h,0BA32h,0B874h,0B9B6h,0BCF8h,0BD3Ah,0BF7Ch,0BEBEh
+$L$rem_8bit:
+	DW	0x0000,0x01C2,0x0384,0x0246,0x0708,0x06CA,0x048C,0x054E
+	DW	0x0E10,0x0FD2,0x0D94,0x0C56,0x0918,0x08DA,0x0A9C,0x0B5E
+	DW	0x1C20,0x1DE2,0x1FA4,0x1E66,0x1B28,0x1AEA,0x18AC,0x196E
+	DW	0x1230,0x13F2,0x11B4,0x1076,0x1538,0x14FA,0x16BC,0x177E
+	DW	0x3840,0x3982,0x3BC4,0x3A06,0x3F48,0x3E8A,0x3CCC,0x3D0E
+	DW	0x3650,0x3792,0x35D4,0x3416,0x3158,0x309A,0x32DC,0x331E
+	DW	0x2460,0x25A2,0x27E4,0x2626,0x2368,0x22AA,0x20EC,0x212E
+	DW	0x2A70,0x2BB2,0x29F4,0x2836,0x2D78,0x2CBA,0x2EFC,0x2F3E
+	DW	0x7080,0x7142,0x7304,0x72C6,0x7788,0x764A,0x740C,0x75CE
+	DW	0x7E90,0x7F52,0x7D14,0x7CD6,0x7998,0x785A,0x7A1C,0x7BDE
+	DW	0x6CA0,0x6D62,0x6F24,0x6EE6,0x6BA8,0x6A6A,0x682C,0x69EE
+	DW	0x62B0,0x6372,0x6134,0x60F6,0x65B8,0x647A,0x663C,0x67FE
+	DW	0x48C0,0x4902,0x4B44,0x4A86,0x4FC8,0x4E0A,0x4C4C,0x4D8E
+	DW	0x46D0,0x4712,0x4554,0x4496,0x41D8,0x401A,0x425C,0x439E
+	DW	0x54E0,0x5522,0x5764,0x56A6,0x53E8,0x522A,0x506C,0x51AE
+	DW	0x5AF0,0x5B32,0x5974,0x58B6,0x5DF8,0x5C3A,0x5E7C,0x5FBE
+	DW	0xE100,0xE0C2,0xE284,0xE346,0xE608,0xE7CA,0xE58C,0xE44E
+	DW	0xEF10,0xEED2,0xEC94,0xED56,0xE818,0xE9DA,0xEB9C,0xEA5E
+	DW	0xFD20,0xFCE2,0xFEA4,0xFF66,0xFA28,0xFBEA,0xF9AC,0xF86E
+	DW	0xF330,0xF2F2,0xF0B4,0xF176,0xF438,0xF5FA,0xF7BC,0xF67E
+	DW	0xD940,0xD882,0xDAC4,0xDB06,0xDE48,0xDF8A,0xDDCC,0xDC0E
+	DW	0xD750,0xD692,0xD4D4,0xD516,0xD058,0xD19A,0xD3DC,0xD21E
+	DW	0xC560,0xC4A2,0xC6E4,0xC726,0xC268,0xC3AA,0xC1EC,0xC02E
+	DW	0xCB70,0xCAB2,0xC8F4,0xC936,0xCC78,0xCDBA,0xCFFC,0xCE3E
+	DW	0x9180,0x9042,0x9204,0x93C6,0x9688,0x974A,0x950C,0x94CE
+	DW	0x9F90,0x9E52,0x9C14,0x9DD6,0x9898,0x995A,0x9B1C,0x9ADE
+	DW	0x8DA0,0x8C62,0x8E24,0x8FE6,0x8AA8,0x8B6A,0x892C,0x88EE
+	DW	0x83B0,0x8272,0x8034,0x81F6,0x84B8,0x857A,0x873C,0x86FE
+	DW	0xA9C0,0xA802,0xAA44,0xAB86,0xAEC8,0xAF0A,0xAD4C,0xAC8E
+	DW	0xA7D0,0xA612,0xA454,0xA596,0xA0D8,0xA11A,0xA35C,0xA29E
+	DW	0xB5E0,0xB422,0xB664,0xB7A6,0xB2E8,0xB32A,0xB16C,0xB0AE
+	DW	0xBBF0,0xBA32,0xB874,0xB9B6,0xBCF8,0xBD3A,0xBF7C,0xBEBE
 
 DB	71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52
 DB	44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32
 DB	60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111
 DB	114,103,62,0
 ALIGN	64
-EXTERN	__imp_RtlVirtualUnwind:NEAR
+EXTERN	__imp_RtlVirtualUnwind
 
 ALIGN	16
-se_handler	PROC PRIVATE
+se_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -1392,58 +1394,58 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[120+r8]
-	mov	rbx,QWORD PTR[248+r8]
+	mov	rax,QWORD[120+r8]
+	mov	rbx,QWORD[248+r8]
 
-	mov	rsi,QWORD PTR[8+r9]
-	mov	r11,QWORD PTR[56+r9]
+	mov	rsi,QWORD[8+r9]
+	mov	r11,QWORD[56+r9]
 
-	mov	r10d,DWORD PTR[r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jb	$L$in_prologue
+	jb	NEAR $L$in_prologue
 
-	mov	rax,QWORD PTR[152+r8]
+	mov	rax,QWORD[152+r8]
 
-	mov	r10d,DWORD PTR[4+r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[4+r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jae	$L$in_prologue
+	jae	NEAR $L$in_prologue
 
-	lea	rax,QWORD PTR[24+rax]
+	lea	rax,[24+rax]
 
-	mov	rbx,QWORD PTR[((-8))+rax]
-	mov	rbp,QWORD PTR[((-16))+rax]
-	mov	r12,QWORD PTR[((-24))+rax]
-	mov	QWORD PTR[144+r8],rbx
-	mov	QWORD PTR[160+r8],rbp
-	mov	QWORD PTR[216+r8],r12
+	mov	rbx,QWORD[((-8))+rax]
+	mov	rbp,QWORD[((-16))+rax]
+	mov	r12,QWORD[((-24))+rax]
+	mov	QWORD[144+r8],rbx
+	mov	QWORD[160+r8],rbp
+	mov	QWORD[216+r8],r12
 
-$L$in_prologue::
-	mov	rdi,QWORD PTR[8+rax]
-	mov	rsi,QWORD PTR[16+rax]
-	mov	QWORD PTR[152+r8],rax
-	mov	QWORD PTR[168+r8],rsi
-	mov	QWORD PTR[176+r8],rdi
+$L$in_prologue:
+	mov	rdi,QWORD[8+rax]
+	mov	rsi,QWORD[16+rax]
+	mov	QWORD[152+r8],rax
+	mov	QWORD[168+r8],rsi
+	mov	QWORD[176+r8],rdi
 
-	mov	rdi,QWORD PTR[40+r9]
+	mov	rdi,QWORD[40+r9]
 	mov	rsi,r8
 	mov	ecx,154
-	DD	0a548f3fch
+	DD	0xa548f3fc
 
 	mov	rsi,r9
 	xor	rcx,rcx
-	mov	rdx,QWORD PTR[8+rsi]
-	mov	r8,QWORD PTR[rsi]
-	mov	r9,QWORD PTR[16+rsi]
-	mov	r10,QWORD PTR[40+rsi]
-	lea	r11,QWORD PTR[56+rsi]
-	lea	r12,QWORD PTR[24+rsi]
-	mov	QWORD PTR[32+rsp],r10
-	mov	QWORD PTR[40+rsp],r11
-	mov	QWORD PTR[48+rsp],r12
-	mov	QWORD PTR[56+rsp],rcx
-	call	QWORD PTR[__imp_RtlVirtualUnwind]
+	mov	rdx,QWORD[8+rsi]
+	mov	r8,QWORD[rsi]
+	mov	r9,QWORD[16+rsi]
+	mov	r10,QWORD[40+rsi]
+	lea	r11,[56+rsi]
+	lea	r12,[24+rsi]
+	mov	QWORD[32+rsp],r10
+	mov	QWORD[40+rsp],r11
+	mov	QWORD[48+rsp],r12
+	mov	QWORD[56+rsp],rcx
+	call	QWORD[__imp_RtlVirtualUnwind]
 
 	mov	eax,1
 	add	rsp,64
@@ -1457,54 +1459,49 @@
 	pop	rdi
 	pop	rsi
 	DB	0F3h,0C3h		;repret
-se_handler	ENDP
 
-.text$	ENDS
-.pdata	SEGMENT READONLY ALIGN(4)
+
+section	.pdata rdata align=4
 ALIGN	4
-	DD	imagerel $L$SEH_begin_gcm_gmult_4bit
-	DD	imagerel $L$SEH_end_gcm_gmult_4bit
-	DD	imagerel $L$SEH_info_gcm_gmult_4bit
+	DD	$L$SEH_begin_gcm_gmult_4bit wrt ..imagebase
+	DD	$L$SEH_end_gcm_gmult_4bit wrt ..imagebase
+	DD	$L$SEH_info_gcm_gmult_4bit wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_gcm_ghash_4bit
-	DD	imagerel $L$SEH_end_gcm_ghash_4bit
-	DD	imagerel $L$SEH_info_gcm_ghash_4bit
+	DD	$L$SEH_begin_gcm_ghash_4bit wrt ..imagebase
+	DD	$L$SEH_end_gcm_ghash_4bit wrt ..imagebase
+	DD	$L$SEH_info_gcm_ghash_4bit wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_gcm_init_clmul
-	DD	imagerel $L$SEH_end_gcm_init_clmul
-	DD	imagerel $L$SEH_info_gcm_init_clmul
+	DD	$L$SEH_begin_gcm_init_clmul wrt ..imagebase
+	DD	$L$SEH_end_gcm_init_clmul wrt ..imagebase
+	DD	$L$SEH_info_gcm_init_clmul wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_gcm_ghash_clmul
-	DD	imagerel $L$SEH_end_gcm_ghash_clmul
-	DD	imagerel $L$SEH_info_gcm_ghash_clmul
-.pdata	ENDS
-.xdata	SEGMENT READONLY ALIGN(8)
+	DD	$L$SEH_begin_gcm_ghash_clmul wrt ..imagebase
+	DD	$L$SEH_end_gcm_ghash_clmul wrt ..imagebase
+	DD	$L$SEH_info_gcm_ghash_clmul wrt ..imagebase
+section	.xdata rdata align=8
 ALIGN	8
-$L$SEH_info_gcm_gmult_4bit::
+$L$SEH_info_gcm_gmult_4bit:
 DB	9,0,0,0
-	DD	imagerel se_handler
-	DD	imagerel $L$gmult_prologue,imagerel $L$gmult_epilogue
-$L$SEH_info_gcm_ghash_4bit::
+	DD	se_handler wrt ..imagebase
+	DD	$L$gmult_prologue wrt ..imagebase,$L$gmult_epilogue wrt ..imagebase
+$L$SEH_info_gcm_ghash_4bit:
 DB	9,0,0,0
-	DD	imagerel se_handler
-	DD	imagerel $L$ghash_prologue,imagerel $L$ghash_epilogue
-$L$SEH_info_gcm_init_clmul::
-DB	001h,008h,003h,000h
-DB	008h,068h,000h,000h
-DB	004h,022h,000h,000h
-$L$SEH_info_gcm_ghash_clmul::
-DB	001h,033h,016h,000h
-DB	033h,0f8h,009h,000h
-DB	02eh,0e8h,008h,000h
-DB	029h,0d8h,007h,000h
-DB	024h,0c8h,006h,000h
-DB	01fh,0b8h,005h,000h
-DB	01ah,0a8h,004h,000h
-DB	015h,098h,003h,000h
-DB	010h,088h,002h,000h
-DB	00ch,078h,001h,000h
-DB	008h,068h,000h,000h
-DB	004h,001h,015h,000h
-
-.xdata	ENDS
-END
+	DD	se_handler wrt ..imagebase
+	DD	$L$ghash_prologue wrt ..imagebase,$L$ghash_epilogue wrt ..imagebase
+$L$SEH_info_gcm_init_clmul:
+DB	0x01,0x08,0x03,0x00
+DB	0x08,0x68,0x00,0x00
+DB	0x04,0x22,0x00,0x00
+$L$SEH_info_gcm_ghash_clmul:
+DB	0x01,0x33,0x16,0x00
+DB	0x33,0xf8,0x09,0x00
+DB	0x2e,0xe8,0x08,0x00
+DB	0x29,0xd8,0x07,0x00
+DB	0x24,0xc8,0x06,0x00
+DB	0x1f,0xb8,0x05,0x00
+DB	0x1a,0xa8,0x04,0x00
+DB	0x15,0x98,0x03,0x00
+DB	0x10,0x88,0x02,0x00
+DB	0x0c,0x78,0x01,0x00
+DB	0x08,0x68,0x00,0x00
+DB	0x04,0x01,0x15,0x00
diff --git a/third_party/boringssl/win-x86_64/crypto/rc4/rc4-md5-x86_64.asm b/third_party/boringssl/win-x86_64/crypto/rc4/rc4-md5-x86_64.asm
index 9d823ae..f1ea965 100644
--- a/third_party/boringssl/win-x86_64/crypto/rc4/rc4-md5-x86_64.asm
+++ b/third_party/boringssl/win-x86_64/crypto/rc4/rc4-md5-x86_64.asm
@@ -1,24 +1,28 @@
-OPTION	DOTNAME
-.text$	SEGMENT ALIGN(256) 'CODE'
+default	rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section	.text code align=64
+
 ALIGN	16
 
-PUBLIC	rc4_md5_enc
+global	rc4_md5_enc
 
-rc4_md5_enc	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+rc4_md5_enc:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_rc4_md5_enc::
+$L$SEH_begin_rc4_md5_enc:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 	mov	rcx,r9
-	mov	r8,QWORD PTR[40+rsp]
-	mov	r9,QWORD PTR[48+rsp]
+	mov	r8,QWORD[40+rsp]
+	mov	r9,QWORD[48+rsp]
 
 
 	cmp	r9,0
-	je	$L$abort
+	je	NEAR $L$abort
 	push	rbx
 	push	rbp
 	push	r12
@@ -26,7 +30,7 @@
 	push	r14
 	push	r15
 	sub	rsp,40
-$L$body::
+$L$body:
 	mov	r11,rcx
 	mov	r12,r9
 	mov	r13,rsi
@@ -35,1194 +39,1194 @@
 	xor	rbp,rbp
 	xor	rcx,rcx
 
-	lea	rdi,QWORD PTR[8+rdi]
-	mov	bpl,BYTE PTR[((-8))+rdi]
-	mov	cl,BYTE PTR[((-4))+rdi]
+	lea	rdi,[8+rdi]
+	mov	bpl,BYTE[((-8))+rdi]
+	mov	cl,BYTE[((-4))+rdi]
 
 	inc	bpl
 	sub	r14,r13
-	mov	eax,DWORD PTR[rbp*4+rdi]
+	mov	eax,DWORD[rbp*4+rdi]
 	add	cl,al
-	lea	rsi,QWORD PTR[rbp*4+rdi]
+	lea	rsi,[rbp*4+rdi]
 	shl	r12,6
 	add	r12,r15
-	mov	QWORD PTR[16+rsp],r12
+	mov	QWORD[16+rsp],r12
 
-	mov	QWORD PTR[24+rsp],r11
-	mov	r8d,DWORD PTR[r11]
-	mov	r9d,DWORD PTR[4+r11]
-	mov	r10d,DWORD PTR[8+r11]
-	mov	r11d,DWORD PTR[12+r11]
-	jmp	$L$oop
+	mov	QWORD[24+rsp],r11
+	mov	r8d,DWORD[r11]
+	mov	r9d,DWORD[4+r11]
+	mov	r10d,DWORD[8+r11]
+	mov	r11d,DWORD[12+r11]
+	jmp	NEAR $L$oop
 
 ALIGN	16
-$L$oop::
-	mov	DWORD PTR[rsp],r8d
-	mov	DWORD PTR[4+rsp],r9d
-	mov	DWORD PTR[8+rsp],r10d
+$L$oop:
+	mov	DWORD[rsp],r8d
+	mov	DWORD[4+rsp],r9d
+	mov	DWORD[8+rsp],r10d
 	mov	r12d,r11d
-	mov	DWORD PTR[12+rsp],r11d
+	mov	DWORD[12+rsp],r11d
 	pxor	xmm0,xmm0
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r10d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	and	r12d,r9d
-	add	r8d,DWORD PTR[r15]
+	add	r8d,DWORD[r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[4+rsi]
+	mov	ebx,DWORD[4+rsi]
 	add	r8d,3614090360
 	xor	r12d,r11d
 	movzx	eax,al
-	mov	DWORD PTR[rsi],edx
+	mov	DWORD[rsi],edx
 	add	r8d,r12d
 	add	cl,bl
 	rol	r8d,7
 	mov	r12d,r10d
-	movd	xmm0,DWORD PTR[rax*4+rdi]
+	movd	xmm0,DWORD[rax*4+rdi]
 
 	add	r8d,r9d
 	pxor	xmm1,xmm1
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r9d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	and	r12d,r8d
-	add	r11d,DWORD PTR[4+r15]
+	add	r11d,DWORD[4+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[8+rsi]
+	mov	eax,DWORD[8+rsi]
 	add	r11d,3905402710
 	xor	r12d,r10d
 	movzx	ebx,bl
-	mov	DWORD PTR[4+rsi],edx
+	mov	DWORD[4+rsi],edx
 	add	r11d,r12d
 	add	cl,al
 	rol	r11d,12
 	mov	r12d,r9d
-	movd	xmm1,DWORD PTR[rbx*4+rdi]
+	movd	xmm1,DWORD[rbx*4+rdi]
 
 	add	r11d,r8d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r8d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	and	r12d,r11d
-	add	r10d,DWORD PTR[8+r15]
+	add	r10d,DWORD[8+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[12+rsi]
+	mov	ebx,DWORD[12+rsi]
 	add	r10d,606105819
 	xor	r12d,r9d
 	movzx	eax,al
-	mov	DWORD PTR[8+rsi],edx
+	mov	DWORD[8+rsi],edx
 	add	r10d,r12d
 	add	cl,bl
 	rol	r10d,17
 	mov	r12d,r8d
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],1
+	pinsrw	xmm0,WORD[rax*4+rdi],1
 
 	add	r10d,r11d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r11d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	and	r12d,r10d
-	add	r9d,DWORD PTR[12+r15]
+	add	r9d,DWORD[12+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[16+rsi]
+	mov	eax,DWORD[16+rsi]
 	add	r9d,3250441966
 	xor	r12d,r8d
 	movzx	ebx,bl
-	mov	DWORD PTR[12+rsi],edx
+	mov	DWORD[12+rsi],edx
 	add	r9d,r12d
 	add	cl,al
 	rol	r9d,22
 	mov	r12d,r11d
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],1
+	pinsrw	xmm1,WORD[rbx*4+rdi],1
 
 	add	r9d,r10d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r10d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	and	r12d,r9d
-	add	r8d,DWORD PTR[16+r15]
+	add	r8d,DWORD[16+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[20+rsi]
+	mov	ebx,DWORD[20+rsi]
 	add	r8d,4118548399
 	xor	r12d,r11d
 	movzx	eax,al
-	mov	DWORD PTR[16+rsi],edx
+	mov	DWORD[16+rsi],edx
 	add	r8d,r12d
 	add	cl,bl
 	rol	r8d,7
 	mov	r12d,r10d
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],2
+	pinsrw	xmm0,WORD[rax*4+rdi],2
 
 	add	r8d,r9d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r9d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	and	r12d,r8d
-	add	r11d,DWORD PTR[20+r15]
+	add	r11d,DWORD[20+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[24+rsi]
+	mov	eax,DWORD[24+rsi]
 	add	r11d,1200080426
 	xor	r12d,r10d
 	movzx	ebx,bl
-	mov	DWORD PTR[20+rsi],edx
+	mov	DWORD[20+rsi],edx
 	add	r11d,r12d
 	add	cl,al
 	rol	r11d,12
 	mov	r12d,r9d
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],2
+	pinsrw	xmm1,WORD[rbx*4+rdi],2
 
 	add	r11d,r8d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r8d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	and	r12d,r11d
-	add	r10d,DWORD PTR[24+r15]
+	add	r10d,DWORD[24+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[28+rsi]
+	mov	ebx,DWORD[28+rsi]
 	add	r10d,2821735955
 	xor	r12d,r9d
 	movzx	eax,al
-	mov	DWORD PTR[24+rsi],edx
+	mov	DWORD[24+rsi],edx
 	add	r10d,r12d
 	add	cl,bl
 	rol	r10d,17
 	mov	r12d,r8d
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],3
+	pinsrw	xmm0,WORD[rax*4+rdi],3
 
 	add	r10d,r11d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r11d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	and	r12d,r10d
-	add	r9d,DWORD PTR[28+r15]
+	add	r9d,DWORD[28+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[32+rsi]
+	mov	eax,DWORD[32+rsi]
 	add	r9d,4249261313
 	xor	r12d,r8d
 	movzx	ebx,bl
-	mov	DWORD PTR[28+rsi],edx
+	mov	DWORD[28+rsi],edx
 	add	r9d,r12d
 	add	cl,al
 	rol	r9d,22
 	mov	r12d,r11d
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],3
+	pinsrw	xmm1,WORD[rbx*4+rdi],3
 
 	add	r9d,r10d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r10d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	and	r12d,r9d
-	add	r8d,DWORD PTR[32+r15]
+	add	r8d,DWORD[32+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[36+rsi]
+	mov	ebx,DWORD[36+rsi]
 	add	r8d,1770035416
 	xor	r12d,r11d
 	movzx	eax,al
-	mov	DWORD PTR[32+rsi],edx
+	mov	DWORD[32+rsi],edx
 	add	r8d,r12d
 	add	cl,bl
 	rol	r8d,7
 	mov	r12d,r10d
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],4
+	pinsrw	xmm0,WORD[rax*4+rdi],4
 
 	add	r8d,r9d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r9d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	and	r12d,r8d
-	add	r11d,DWORD PTR[36+r15]
+	add	r11d,DWORD[36+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[40+rsi]
+	mov	eax,DWORD[40+rsi]
 	add	r11d,2336552879
 	xor	r12d,r10d
 	movzx	ebx,bl
-	mov	DWORD PTR[36+rsi],edx
+	mov	DWORD[36+rsi],edx
 	add	r11d,r12d
 	add	cl,al
 	rol	r11d,12
 	mov	r12d,r9d
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],4
+	pinsrw	xmm1,WORD[rbx*4+rdi],4
 
 	add	r11d,r8d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r8d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	and	r12d,r11d
-	add	r10d,DWORD PTR[40+r15]
+	add	r10d,DWORD[40+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[44+rsi]
+	mov	ebx,DWORD[44+rsi]
 	add	r10d,4294925233
 	xor	r12d,r9d
 	movzx	eax,al
-	mov	DWORD PTR[40+rsi],edx
+	mov	DWORD[40+rsi],edx
 	add	r10d,r12d
 	add	cl,bl
 	rol	r10d,17
 	mov	r12d,r8d
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],5
+	pinsrw	xmm0,WORD[rax*4+rdi],5
 
 	add	r10d,r11d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r11d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	and	r12d,r10d
-	add	r9d,DWORD PTR[44+r15]
+	add	r9d,DWORD[44+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[48+rsi]
+	mov	eax,DWORD[48+rsi]
 	add	r9d,2304563134
 	xor	r12d,r8d
 	movzx	ebx,bl
-	mov	DWORD PTR[44+rsi],edx
+	mov	DWORD[44+rsi],edx
 	add	r9d,r12d
 	add	cl,al
 	rol	r9d,22
 	mov	r12d,r11d
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],5
+	pinsrw	xmm1,WORD[rbx*4+rdi],5
 
 	add	r9d,r10d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r10d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	and	r12d,r9d
-	add	r8d,DWORD PTR[48+r15]
+	add	r8d,DWORD[48+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[52+rsi]
+	mov	ebx,DWORD[52+rsi]
 	add	r8d,1804603682
 	xor	r12d,r11d
 	movzx	eax,al
-	mov	DWORD PTR[48+rsi],edx
+	mov	DWORD[48+rsi],edx
 	add	r8d,r12d
 	add	cl,bl
 	rol	r8d,7
 	mov	r12d,r10d
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],6
+	pinsrw	xmm0,WORD[rax*4+rdi],6
 
 	add	r8d,r9d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r9d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	and	r12d,r8d
-	add	r11d,DWORD PTR[52+r15]
+	add	r11d,DWORD[52+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[56+rsi]
+	mov	eax,DWORD[56+rsi]
 	add	r11d,4254626195
 	xor	r12d,r10d
 	movzx	ebx,bl
-	mov	DWORD PTR[52+rsi],edx
+	mov	DWORD[52+rsi],edx
 	add	r11d,r12d
 	add	cl,al
 	rol	r11d,12
 	mov	r12d,r9d
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],6
+	pinsrw	xmm1,WORD[rbx*4+rdi],6
 
 	add	r11d,r8d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r8d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	and	r12d,r11d
-	add	r10d,DWORD PTR[56+r15]
+	add	r10d,DWORD[56+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[60+rsi]
+	mov	ebx,DWORD[60+rsi]
 	add	r10d,2792965006
 	xor	r12d,r9d
 	movzx	eax,al
-	mov	DWORD PTR[56+rsi],edx
+	mov	DWORD[56+rsi],edx
 	add	r10d,r12d
 	add	cl,bl
 	rol	r10d,17
 	mov	r12d,r8d
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],7
+	pinsrw	xmm0,WORD[rax*4+rdi],7
 
 	add	r10d,r11d
-	movdqu	xmm2,XMMWORD PTR[r13]
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	movdqu	xmm2,XMMWORD[r13]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r11d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	and	r12d,r10d
-	add	r9d,DWORD PTR[60+r15]
+	add	r9d,DWORD[60+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[64+rsi]
+	mov	eax,DWORD[64+rsi]
 	add	r9d,1236535329
 	xor	r12d,r8d
 	movzx	ebx,bl
-	mov	DWORD PTR[60+rsi],edx
+	mov	DWORD[60+rsi],edx
 	add	r9d,r12d
 	add	cl,al
 	rol	r9d,22
 	mov	r12d,r10d
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],7
+	pinsrw	xmm1,WORD[rbx*4+rdi],7
 
 	add	r9d,r10d
 	psllq	xmm1,8
 	pxor	xmm2,xmm0
 	pxor	xmm2,xmm1
 	pxor	xmm0,xmm0
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r9d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	and	r12d,r11d
-	add	r8d,DWORD PTR[4+r15]
+	add	r8d,DWORD[4+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[68+rsi]
+	mov	ebx,DWORD[68+rsi]
 	add	r8d,4129170786
 	xor	r12d,r10d
 	movzx	eax,al
-	mov	DWORD PTR[64+rsi],edx
+	mov	DWORD[64+rsi],edx
 	add	r8d,r12d
 	add	cl,bl
 	rol	r8d,5
 	mov	r12d,r9d
-	movd	xmm0,DWORD PTR[rax*4+rdi]
+	movd	xmm0,DWORD[rax*4+rdi]
 
 	add	r8d,r9d
 	pxor	xmm1,xmm1
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r8d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	and	r12d,r10d
-	add	r11d,DWORD PTR[24+r15]
+	add	r11d,DWORD[24+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[72+rsi]
+	mov	eax,DWORD[72+rsi]
 	add	r11d,3225465664
 	xor	r12d,r9d
 	movzx	ebx,bl
-	mov	DWORD PTR[68+rsi],edx
+	mov	DWORD[68+rsi],edx
 	add	r11d,r12d
 	add	cl,al
 	rol	r11d,9
 	mov	r12d,r8d
-	movd	xmm1,DWORD PTR[rbx*4+rdi]
+	movd	xmm1,DWORD[rbx*4+rdi]
 
 	add	r11d,r8d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r11d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	and	r12d,r9d
-	add	r10d,DWORD PTR[44+r15]
+	add	r10d,DWORD[44+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[76+rsi]
+	mov	ebx,DWORD[76+rsi]
 	add	r10d,643717713
 	xor	r12d,r8d
 	movzx	eax,al
-	mov	DWORD PTR[72+rsi],edx
+	mov	DWORD[72+rsi],edx
 	add	r10d,r12d
 	add	cl,bl
 	rol	r10d,14
 	mov	r12d,r11d
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],1
+	pinsrw	xmm0,WORD[rax*4+rdi],1
 
 	add	r10d,r11d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r10d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	and	r12d,r8d
-	add	r9d,DWORD PTR[r15]
+	add	r9d,DWORD[r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[80+rsi]
+	mov	eax,DWORD[80+rsi]
 	add	r9d,3921069994
 	xor	r12d,r11d
 	movzx	ebx,bl
-	mov	DWORD PTR[76+rsi],edx
+	mov	DWORD[76+rsi],edx
 	add	r9d,r12d
 	add	cl,al
 	rol	r9d,20
 	mov	r12d,r10d
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],1
+	pinsrw	xmm1,WORD[rbx*4+rdi],1
 
 	add	r9d,r10d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r9d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	and	r12d,r11d
-	add	r8d,DWORD PTR[20+r15]
+	add	r8d,DWORD[20+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[84+rsi]
+	mov	ebx,DWORD[84+rsi]
 	add	r8d,3593408605
 	xor	r12d,r10d
 	movzx	eax,al
-	mov	DWORD PTR[80+rsi],edx
+	mov	DWORD[80+rsi],edx
 	add	r8d,r12d
 	add	cl,bl
 	rol	r8d,5
 	mov	r12d,r9d
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],2
+	pinsrw	xmm0,WORD[rax*4+rdi],2
 
 	add	r8d,r9d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r8d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	and	r12d,r10d
-	add	r11d,DWORD PTR[40+r15]
+	add	r11d,DWORD[40+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[88+rsi]
+	mov	eax,DWORD[88+rsi]
 	add	r11d,38016083
 	xor	r12d,r9d
 	movzx	ebx,bl
-	mov	DWORD PTR[84+rsi],edx
+	mov	DWORD[84+rsi],edx
 	add	r11d,r12d
 	add	cl,al
 	rol	r11d,9
 	mov	r12d,r8d
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],2
+	pinsrw	xmm1,WORD[rbx*4+rdi],2
 
 	add	r11d,r8d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r11d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	and	r12d,r9d
-	add	r10d,DWORD PTR[60+r15]
+	add	r10d,DWORD[60+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[92+rsi]
+	mov	ebx,DWORD[92+rsi]
 	add	r10d,3634488961
 	xor	r12d,r8d
 	movzx	eax,al
-	mov	DWORD PTR[88+rsi],edx
+	mov	DWORD[88+rsi],edx
 	add	r10d,r12d
 	add	cl,bl
 	rol	r10d,14
 	mov	r12d,r11d
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],3
+	pinsrw	xmm0,WORD[rax*4+rdi],3
 
 	add	r10d,r11d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r10d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	and	r12d,r8d
-	add	r9d,DWORD PTR[16+r15]
+	add	r9d,DWORD[16+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[96+rsi]
+	mov	eax,DWORD[96+rsi]
 	add	r9d,3889429448
 	xor	r12d,r11d
 	movzx	ebx,bl
-	mov	DWORD PTR[92+rsi],edx
+	mov	DWORD[92+rsi],edx
 	add	r9d,r12d
 	add	cl,al
 	rol	r9d,20
 	mov	r12d,r10d
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],3
+	pinsrw	xmm1,WORD[rbx*4+rdi],3
 
 	add	r9d,r10d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r9d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	and	r12d,r11d
-	add	r8d,DWORD PTR[36+r15]
+	add	r8d,DWORD[36+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[100+rsi]
+	mov	ebx,DWORD[100+rsi]
 	add	r8d,568446438
 	xor	r12d,r10d
 	movzx	eax,al
-	mov	DWORD PTR[96+rsi],edx
+	mov	DWORD[96+rsi],edx
 	add	r8d,r12d
 	add	cl,bl
 	rol	r8d,5
 	mov	r12d,r9d
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],4
+	pinsrw	xmm0,WORD[rax*4+rdi],4
 
 	add	r8d,r9d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r8d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	and	r12d,r10d
-	add	r11d,DWORD PTR[56+r15]
+	add	r11d,DWORD[56+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[104+rsi]
+	mov	eax,DWORD[104+rsi]
 	add	r11d,3275163606
 	xor	r12d,r9d
 	movzx	ebx,bl
-	mov	DWORD PTR[100+rsi],edx
+	mov	DWORD[100+rsi],edx
 	add	r11d,r12d
 	add	cl,al
 	rol	r11d,9
 	mov	r12d,r8d
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],4
+	pinsrw	xmm1,WORD[rbx*4+rdi],4
 
 	add	r11d,r8d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r11d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	and	r12d,r9d
-	add	r10d,DWORD PTR[12+r15]
+	add	r10d,DWORD[12+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[108+rsi]
+	mov	ebx,DWORD[108+rsi]
 	add	r10d,4107603335
 	xor	r12d,r8d
 	movzx	eax,al
-	mov	DWORD PTR[104+rsi],edx
+	mov	DWORD[104+rsi],edx
 	add	r10d,r12d
 	add	cl,bl
 	rol	r10d,14
 	mov	r12d,r11d
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],5
+	pinsrw	xmm0,WORD[rax*4+rdi],5
 
 	add	r10d,r11d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r10d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	and	r12d,r8d
-	add	r9d,DWORD PTR[32+r15]
+	add	r9d,DWORD[32+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[112+rsi]
+	mov	eax,DWORD[112+rsi]
 	add	r9d,1163531501
 	xor	r12d,r11d
 	movzx	ebx,bl
-	mov	DWORD PTR[108+rsi],edx
+	mov	DWORD[108+rsi],edx
 	add	r9d,r12d
 	add	cl,al
 	rol	r9d,20
 	mov	r12d,r10d
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],5
+	pinsrw	xmm1,WORD[rbx*4+rdi],5
 
 	add	r9d,r10d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r9d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	and	r12d,r11d
-	add	r8d,DWORD PTR[52+r15]
+	add	r8d,DWORD[52+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[116+rsi]
+	mov	ebx,DWORD[116+rsi]
 	add	r8d,2850285829
 	xor	r12d,r10d
 	movzx	eax,al
-	mov	DWORD PTR[112+rsi],edx
+	mov	DWORD[112+rsi],edx
 	add	r8d,r12d
 	add	cl,bl
 	rol	r8d,5
 	mov	r12d,r9d
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],6
+	pinsrw	xmm0,WORD[rax*4+rdi],6
 
 	add	r8d,r9d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r8d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	and	r12d,r10d
-	add	r11d,DWORD PTR[8+r15]
+	add	r11d,DWORD[8+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[120+rsi]
+	mov	eax,DWORD[120+rsi]
 	add	r11d,4243563512
 	xor	r12d,r9d
 	movzx	ebx,bl
-	mov	DWORD PTR[116+rsi],edx
+	mov	DWORD[116+rsi],edx
 	add	r11d,r12d
 	add	cl,al
 	rol	r11d,9
 	mov	r12d,r8d
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],6
+	pinsrw	xmm1,WORD[rbx*4+rdi],6
 
 	add	r11d,r8d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r11d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	and	r12d,r9d
-	add	r10d,DWORD PTR[28+r15]
+	add	r10d,DWORD[28+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[124+rsi]
+	mov	ebx,DWORD[124+rsi]
 	add	r10d,1735328473
 	xor	r12d,r8d
 	movzx	eax,al
-	mov	DWORD PTR[120+rsi],edx
+	mov	DWORD[120+rsi],edx
 	add	r10d,r12d
 	add	cl,bl
 	rol	r10d,14
 	mov	r12d,r11d
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],7
+	pinsrw	xmm0,WORD[rax*4+rdi],7
 
 	add	r10d,r11d
-	movdqu	xmm3,XMMWORD PTR[16+r13]
+	movdqu	xmm3,XMMWORD[16+r13]
 	add	bpl,32
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r10d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	and	r12d,r8d
-	add	r9d,DWORD PTR[48+r15]
+	add	r9d,DWORD[48+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[rbp*4+rdi]
+	mov	eax,DWORD[rbp*4+rdi]
 	add	r9d,2368359562
 	xor	r12d,r11d
 	movzx	ebx,bl
-	mov	DWORD PTR[124+rsi],edx
+	mov	DWORD[124+rsi],edx
 	add	r9d,r12d
 	add	cl,al
 	rol	r9d,20
 	mov	r12d,r11d
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],7
+	pinsrw	xmm1,WORD[rbx*4+rdi],7
 
 	add	r9d,r10d
 	mov	rsi,rcx
 	xor	rcx,rcx
 	mov	cl,sil
-	lea	rsi,QWORD PTR[rbp*4+rdi]
+	lea	rsi,[rbp*4+rdi]
 	psllq	xmm1,8
 	pxor	xmm3,xmm0
 	pxor	xmm3,xmm1
 	pxor	xmm0,xmm0
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r10d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	xor	r12d,r9d
-	add	r8d,DWORD PTR[20+r15]
+	add	r8d,DWORD[20+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[4+rsi]
+	mov	ebx,DWORD[4+rsi]
 	add	r8d,4294588738
 	movzx	eax,al
 	add	r8d,r12d
-	mov	DWORD PTR[rsi],edx
+	mov	DWORD[rsi],edx
 	add	cl,bl
 	rol	r8d,4
 	mov	r12d,r10d
-	movd	xmm0,DWORD PTR[rax*4+rdi]
+	movd	xmm0,DWORD[rax*4+rdi]
 
 	add	r8d,r9d
 	pxor	xmm1,xmm1
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r9d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	xor	r12d,r8d
-	add	r11d,DWORD PTR[32+r15]
+	add	r11d,DWORD[32+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[8+rsi]
+	mov	eax,DWORD[8+rsi]
 	add	r11d,2272392833
 	movzx	ebx,bl
 	add	r11d,r12d
-	mov	DWORD PTR[4+rsi],edx
+	mov	DWORD[4+rsi],edx
 	add	cl,al
 	rol	r11d,11
 	mov	r12d,r9d
-	movd	xmm1,DWORD PTR[rbx*4+rdi]
+	movd	xmm1,DWORD[rbx*4+rdi]
 
 	add	r11d,r8d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r8d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	xor	r12d,r11d
-	add	r10d,DWORD PTR[44+r15]
+	add	r10d,DWORD[44+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[12+rsi]
+	mov	ebx,DWORD[12+rsi]
 	add	r10d,1839030562
 	movzx	eax,al
 	add	r10d,r12d
-	mov	DWORD PTR[8+rsi],edx
+	mov	DWORD[8+rsi],edx
 	add	cl,bl
 	rol	r10d,16
 	mov	r12d,r8d
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],1
+	pinsrw	xmm0,WORD[rax*4+rdi],1
 
 	add	r10d,r11d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r11d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	xor	r12d,r10d
-	add	r9d,DWORD PTR[56+r15]
+	add	r9d,DWORD[56+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[16+rsi]
+	mov	eax,DWORD[16+rsi]
 	add	r9d,4259657740
 	movzx	ebx,bl
 	add	r9d,r12d
-	mov	DWORD PTR[12+rsi],edx
+	mov	DWORD[12+rsi],edx
 	add	cl,al
 	rol	r9d,23
 	mov	r12d,r11d
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],1
+	pinsrw	xmm1,WORD[rbx*4+rdi],1
 
 	add	r9d,r10d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r10d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	xor	r12d,r9d
-	add	r8d,DWORD PTR[4+r15]
+	add	r8d,DWORD[4+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[20+rsi]
+	mov	ebx,DWORD[20+rsi]
 	add	r8d,2763975236
 	movzx	eax,al
 	add	r8d,r12d
-	mov	DWORD PTR[16+rsi],edx
+	mov	DWORD[16+rsi],edx
 	add	cl,bl
 	rol	r8d,4
 	mov	r12d,r10d
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],2
+	pinsrw	xmm0,WORD[rax*4+rdi],2
 
 	add	r8d,r9d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r9d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	xor	r12d,r8d
-	add	r11d,DWORD PTR[16+r15]
+	add	r11d,DWORD[16+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[24+rsi]
+	mov	eax,DWORD[24+rsi]
 	add	r11d,1272893353
 	movzx	ebx,bl
 	add	r11d,r12d
-	mov	DWORD PTR[20+rsi],edx
+	mov	DWORD[20+rsi],edx
 	add	cl,al
 	rol	r11d,11
 	mov	r12d,r9d
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],2
+	pinsrw	xmm1,WORD[rbx*4+rdi],2
 
 	add	r11d,r8d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r8d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	xor	r12d,r11d
-	add	r10d,DWORD PTR[28+r15]
+	add	r10d,DWORD[28+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[28+rsi]
+	mov	ebx,DWORD[28+rsi]
 	add	r10d,4139469664
 	movzx	eax,al
 	add	r10d,r12d
-	mov	DWORD PTR[24+rsi],edx
+	mov	DWORD[24+rsi],edx
 	add	cl,bl
 	rol	r10d,16
 	mov	r12d,r8d
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],3
+	pinsrw	xmm0,WORD[rax*4+rdi],3
 
 	add	r10d,r11d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r11d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	xor	r12d,r10d
-	add	r9d,DWORD PTR[40+r15]
+	add	r9d,DWORD[40+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[32+rsi]
+	mov	eax,DWORD[32+rsi]
 	add	r9d,3200236656
 	movzx	ebx,bl
 	add	r9d,r12d
-	mov	DWORD PTR[28+rsi],edx
+	mov	DWORD[28+rsi],edx
 	add	cl,al
 	rol	r9d,23
 	mov	r12d,r11d
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],3
+	pinsrw	xmm1,WORD[rbx*4+rdi],3
 
 	add	r9d,r10d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r10d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	xor	r12d,r9d
-	add	r8d,DWORD PTR[52+r15]
+	add	r8d,DWORD[52+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[36+rsi]
+	mov	ebx,DWORD[36+rsi]
 	add	r8d,681279174
 	movzx	eax,al
 	add	r8d,r12d
-	mov	DWORD PTR[32+rsi],edx
+	mov	DWORD[32+rsi],edx
 	add	cl,bl
 	rol	r8d,4
 	mov	r12d,r10d
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],4
+	pinsrw	xmm0,WORD[rax*4+rdi],4
 
 	add	r8d,r9d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r9d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	xor	r12d,r8d
-	add	r11d,DWORD PTR[r15]
+	add	r11d,DWORD[r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[40+rsi]
+	mov	eax,DWORD[40+rsi]
 	add	r11d,3936430074
 	movzx	ebx,bl
 	add	r11d,r12d
-	mov	DWORD PTR[36+rsi],edx
+	mov	DWORD[36+rsi],edx
 	add	cl,al
 	rol	r11d,11
 	mov	r12d,r9d
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],4
+	pinsrw	xmm1,WORD[rbx*4+rdi],4
 
 	add	r11d,r8d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r8d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	xor	r12d,r11d
-	add	r10d,DWORD PTR[12+r15]
+	add	r10d,DWORD[12+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[44+rsi]
+	mov	ebx,DWORD[44+rsi]
 	add	r10d,3572445317
 	movzx	eax,al
 	add	r10d,r12d
-	mov	DWORD PTR[40+rsi],edx
+	mov	DWORD[40+rsi],edx
 	add	cl,bl
 	rol	r10d,16
 	mov	r12d,r8d
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],5
+	pinsrw	xmm0,WORD[rax*4+rdi],5
 
 	add	r10d,r11d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r11d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	xor	r12d,r10d
-	add	r9d,DWORD PTR[24+r15]
+	add	r9d,DWORD[24+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[48+rsi]
+	mov	eax,DWORD[48+rsi]
 	add	r9d,76029189
 	movzx	ebx,bl
 	add	r9d,r12d
-	mov	DWORD PTR[44+rsi],edx
+	mov	DWORD[44+rsi],edx
 	add	cl,al
 	rol	r9d,23
 	mov	r12d,r11d
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],5
+	pinsrw	xmm1,WORD[rbx*4+rdi],5
 
 	add	r9d,r10d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r10d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	xor	r12d,r9d
-	add	r8d,DWORD PTR[36+r15]
+	add	r8d,DWORD[36+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[52+rsi]
+	mov	ebx,DWORD[52+rsi]
 	add	r8d,3654602809
 	movzx	eax,al
 	add	r8d,r12d
-	mov	DWORD PTR[48+rsi],edx
+	mov	DWORD[48+rsi],edx
 	add	cl,bl
 	rol	r8d,4
 	mov	r12d,r10d
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],6
+	pinsrw	xmm0,WORD[rax*4+rdi],6
 
 	add	r8d,r9d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r9d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	xor	r12d,r8d
-	add	r11d,DWORD PTR[48+r15]
+	add	r11d,DWORD[48+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[56+rsi]
+	mov	eax,DWORD[56+rsi]
 	add	r11d,3873151461
 	movzx	ebx,bl
 	add	r11d,r12d
-	mov	DWORD PTR[52+rsi],edx
+	mov	DWORD[52+rsi],edx
 	add	cl,al
 	rol	r11d,11
 	mov	r12d,r9d
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],6
+	pinsrw	xmm1,WORD[rbx*4+rdi],6
 
 	add	r11d,r8d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r8d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	xor	r12d,r11d
-	add	r10d,DWORD PTR[60+r15]
+	add	r10d,DWORD[60+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[60+rsi]
+	mov	ebx,DWORD[60+rsi]
 	add	r10d,530742520
 	movzx	eax,al
 	add	r10d,r12d
-	mov	DWORD PTR[56+rsi],edx
+	mov	DWORD[56+rsi],edx
 	add	cl,bl
 	rol	r10d,16
 	mov	r12d,r8d
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],7
+	pinsrw	xmm0,WORD[rax*4+rdi],7
 
 	add	r10d,r11d
-	movdqu	xmm4,XMMWORD PTR[32+r13]
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	movdqu	xmm4,XMMWORD[32+r13]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r11d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	xor	r12d,r10d
-	add	r9d,DWORD PTR[8+r15]
+	add	r9d,DWORD[8+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[64+rsi]
+	mov	eax,DWORD[64+rsi]
 	add	r9d,3299628645
 	movzx	ebx,bl
 	add	r9d,r12d
-	mov	DWORD PTR[60+rsi],edx
+	mov	DWORD[60+rsi],edx
 	add	cl,al
 	rol	r9d,23
 	mov	r12d,-1
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],7
+	pinsrw	xmm1,WORD[rbx*4+rdi],7
 
 	add	r9d,r10d
 	psllq	xmm1,8
 	pxor	xmm4,xmm0
 	pxor	xmm4,xmm1
 	pxor	xmm0,xmm0
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r11d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	or	r12d,r9d
-	add	r8d,DWORD PTR[r15]
+	add	r8d,DWORD[r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[68+rsi]
+	mov	ebx,DWORD[68+rsi]
 	add	r8d,4096336452
 	movzx	eax,al
 	xor	r12d,r10d
-	mov	DWORD PTR[64+rsi],edx
+	mov	DWORD[64+rsi],edx
 	add	r8d,r12d
 	add	cl,bl
 	rol	r8d,6
 	mov	r12d,-1
-	movd	xmm0,DWORD PTR[rax*4+rdi]
+	movd	xmm0,DWORD[rax*4+rdi]
 
 	add	r8d,r9d
 	pxor	xmm1,xmm1
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r10d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	or	r12d,r8d
-	add	r11d,DWORD PTR[28+r15]
+	add	r11d,DWORD[28+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[72+rsi]
+	mov	eax,DWORD[72+rsi]
 	add	r11d,1126891415
 	movzx	ebx,bl
 	xor	r12d,r9d
-	mov	DWORD PTR[68+rsi],edx
+	mov	DWORD[68+rsi],edx
 	add	r11d,r12d
 	add	cl,al
 	rol	r11d,10
 	mov	r12d,-1
-	movd	xmm1,DWORD PTR[rbx*4+rdi]
+	movd	xmm1,DWORD[rbx*4+rdi]
 
 	add	r11d,r8d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r9d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	or	r12d,r11d
-	add	r10d,DWORD PTR[56+r15]
+	add	r10d,DWORD[56+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[76+rsi]
+	mov	ebx,DWORD[76+rsi]
 	add	r10d,2878612391
 	movzx	eax,al
 	xor	r12d,r8d
-	mov	DWORD PTR[72+rsi],edx
+	mov	DWORD[72+rsi],edx
 	add	r10d,r12d
 	add	cl,bl
 	rol	r10d,15
 	mov	r12d,-1
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],1
+	pinsrw	xmm0,WORD[rax*4+rdi],1
 
 	add	r10d,r11d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r8d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	or	r12d,r10d
-	add	r9d,DWORD PTR[20+r15]
+	add	r9d,DWORD[20+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[80+rsi]
+	mov	eax,DWORD[80+rsi]
 	add	r9d,4237533241
 	movzx	ebx,bl
 	xor	r12d,r11d
-	mov	DWORD PTR[76+rsi],edx
+	mov	DWORD[76+rsi],edx
 	add	r9d,r12d
 	add	cl,al
 	rol	r9d,21
 	mov	r12d,-1
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],1
+	pinsrw	xmm1,WORD[rbx*4+rdi],1
 
 	add	r9d,r10d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r11d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	or	r12d,r9d
-	add	r8d,DWORD PTR[48+r15]
+	add	r8d,DWORD[48+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[84+rsi]
+	mov	ebx,DWORD[84+rsi]
 	add	r8d,1700485571
 	movzx	eax,al
 	xor	r12d,r10d
-	mov	DWORD PTR[80+rsi],edx
+	mov	DWORD[80+rsi],edx
 	add	r8d,r12d
 	add	cl,bl
 	rol	r8d,6
 	mov	r12d,-1
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],2
+	pinsrw	xmm0,WORD[rax*4+rdi],2
 
 	add	r8d,r9d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r10d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	or	r12d,r8d
-	add	r11d,DWORD PTR[12+r15]
+	add	r11d,DWORD[12+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[88+rsi]
+	mov	eax,DWORD[88+rsi]
 	add	r11d,2399980690
 	movzx	ebx,bl
 	xor	r12d,r9d
-	mov	DWORD PTR[84+rsi],edx
+	mov	DWORD[84+rsi],edx
 	add	r11d,r12d
 	add	cl,al
 	rol	r11d,10
 	mov	r12d,-1
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],2
+	pinsrw	xmm1,WORD[rbx*4+rdi],2
 
 	add	r11d,r8d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r9d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	or	r12d,r11d
-	add	r10d,DWORD PTR[40+r15]
+	add	r10d,DWORD[40+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[92+rsi]
+	mov	ebx,DWORD[92+rsi]
 	add	r10d,4293915773
 	movzx	eax,al
 	xor	r12d,r8d
-	mov	DWORD PTR[88+rsi],edx
+	mov	DWORD[88+rsi],edx
 	add	r10d,r12d
 	add	cl,bl
 	rol	r10d,15
 	mov	r12d,-1
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],3
+	pinsrw	xmm0,WORD[rax*4+rdi],3
 
 	add	r10d,r11d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r8d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	or	r12d,r10d
-	add	r9d,DWORD PTR[4+r15]
+	add	r9d,DWORD[4+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[96+rsi]
+	mov	eax,DWORD[96+rsi]
 	add	r9d,2240044497
 	movzx	ebx,bl
 	xor	r12d,r11d
-	mov	DWORD PTR[92+rsi],edx
+	mov	DWORD[92+rsi],edx
 	add	r9d,r12d
 	add	cl,al
 	rol	r9d,21
 	mov	r12d,-1
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],3
+	pinsrw	xmm1,WORD[rbx*4+rdi],3
 
 	add	r9d,r10d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r11d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	or	r12d,r9d
-	add	r8d,DWORD PTR[32+r15]
+	add	r8d,DWORD[32+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[100+rsi]
+	mov	ebx,DWORD[100+rsi]
 	add	r8d,1873313359
 	movzx	eax,al
 	xor	r12d,r10d
-	mov	DWORD PTR[96+rsi],edx
+	mov	DWORD[96+rsi],edx
 	add	r8d,r12d
 	add	cl,bl
 	rol	r8d,6
 	mov	r12d,-1
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],4
+	pinsrw	xmm0,WORD[rax*4+rdi],4
 
 	add	r8d,r9d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r10d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	or	r12d,r8d
-	add	r11d,DWORD PTR[60+r15]
+	add	r11d,DWORD[60+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[104+rsi]
+	mov	eax,DWORD[104+rsi]
 	add	r11d,4264355552
 	movzx	ebx,bl
 	xor	r12d,r9d
-	mov	DWORD PTR[100+rsi],edx
+	mov	DWORD[100+rsi],edx
 	add	r11d,r12d
 	add	cl,al
 	rol	r11d,10
 	mov	r12d,-1
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],4
+	pinsrw	xmm1,WORD[rbx*4+rdi],4
 
 	add	r11d,r8d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r9d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	or	r12d,r11d
-	add	r10d,DWORD PTR[24+r15]
+	add	r10d,DWORD[24+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[108+rsi]
+	mov	ebx,DWORD[108+rsi]
 	add	r10d,2734768916
 	movzx	eax,al
 	xor	r12d,r8d
-	mov	DWORD PTR[104+rsi],edx
+	mov	DWORD[104+rsi],edx
 	add	r10d,r12d
 	add	cl,bl
 	rol	r10d,15
 	mov	r12d,-1
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],5
+	pinsrw	xmm0,WORD[rax*4+rdi],5
 
 	add	r10d,r11d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r8d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	or	r12d,r10d
-	add	r9d,DWORD PTR[52+r15]
+	add	r9d,DWORD[52+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[112+rsi]
+	mov	eax,DWORD[112+rsi]
 	add	r9d,1309151649
 	movzx	ebx,bl
 	xor	r12d,r11d
-	mov	DWORD PTR[108+rsi],edx
+	mov	DWORD[108+rsi],edx
 	add	r9d,r12d
 	add	cl,al
 	rol	r9d,21
 	mov	r12d,-1
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],5
+	pinsrw	xmm1,WORD[rbx*4+rdi],5
 
 	add	r9d,r10d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r11d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	or	r12d,r9d
-	add	r8d,DWORD PTR[16+r15]
+	add	r8d,DWORD[16+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[116+rsi]
+	mov	ebx,DWORD[116+rsi]
 	add	r8d,4149444226
 	movzx	eax,al
 	xor	r12d,r10d
-	mov	DWORD PTR[112+rsi],edx
+	mov	DWORD[112+rsi],edx
 	add	r8d,r12d
 	add	cl,bl
 	rol	r8d,6
 	mov	r12d,-1
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],6
+	pinsrw	xmm0,WORD[rax*4+rdi],6
 
 	add	r8d,r9d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r10d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	or	r12d,r8d
-	add	r11d,DWORD PTR[44+r15]
+	add	r11d,DWORD[44+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[120+rsi]
+	mov	eax,DWORD[120+rsi]
 	add	r11d,3174756917
 	movzx	ebx,bl
 	xor	r12d,r9d
-	mov	DWORD PTR[116+rsi],edx
+	mov	DWORD[116+rsi],edx
 	add	r11d,r12d
 	add	cl,al
 	rol	r11d,10
 	mov	r12d,-1
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],6
+	pinsrw	xmm1,WORD[rbx*4+rdi],6
 
 	add	r11d,r8d
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r9d
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	or	r12d,r11d
-	add	r10d,DWORD PTR[8+r15]
+	add	r10d,DWORD[8+r15]
 	add	al,dl
-	mov	ebx,DWORD PTR[124+rsi]
+	mov	ebx,DWORD[124+rsi]
 	add	r10d,718787259
 	movzx	eax,al
 	xor	r12d,r8d
-	mov	DWORD PTR[120+rsi],edx
+	mov	DWORD[120+rsi],edx
 	add	r10d,r12d
 	add	cl,bl
 	rol	r10d,15
 	mov	r12d,-1
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],7
+	pinsrw	xmm0,WORD[rax*4+rdi],7
 
 	add	r10d,r11d
-	movdqu	xmm5,XMMWORD PTR[48+r13]
+	movdqu	xmm5,XMMWORD[48+r13]
 	add	bpl,32
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	xor	r12d,r8d
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	or	r12d,r10d
-	add	r9d,DWORD PTR[36+r15]
+	add	r9d,DWORD[36+r15]
 	add	bl,dl
-	mov	eax,DWORD PTR[rbp*4+rdi]
+	mov	eax,DWORD[rbp*4+rdi]
 	add	r9d,3951481745
 	movzx	ebx,bl
 	xor	r12d,r11d
-	mov	DWORD PTR[124+rsi],edx
+	mov	DWORD[124+rsi],edx
 	add	r9d,r12d
 	add	cl,al
 	rol	r9d,21
 	mov	r12d,-1
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],7
+	pinsrw	xmm1,WORD[rbx*4+rdi],7
 
 	add	r9d,r10d
 	mov	rsi,rbp
@@ -1231,52 +1235,51 @@
 	mov	rsi,rcx
 	xor	rcx,rcx
 	mov	cl,sil
-	lea	rsi,QWORD PTR[rbp*4+rdi]
+	lea	rsi,[rbp*4+rdi]
 	psllq	xmm1,8
 	pxor	xmm5,xmm0
 	pxor	xmm5,xmm1
-	add	r8d,DWORD PTR[rsp]
-	add	r9d,DWORD PTR[4+rsp]
-	add	r10d,DWORD PTR[8+rsp]
-	add	r11d,DWORD PTR[12+rsp]
+	add	r8d,DWORD[rsp]
+	add	r9d,DWORD[4+rsp]
+	add	r10d,DWORD[8+rsp]
+	add	r11d,DWORD[12+rsp]
 
-	movdqu	XMMWORD PTR[r13*1+r14],xmm2
-	movdqu	XMMWORD PTR[16+r13*1+r14],xmm3
-	movdqu	XMMWORD PTR[32+r13*1+r14],xmm4
-	movdqu	XMMWORD PTR[48+r13*1+r14],xmm5
-	lea	r15,QWORD PTR[64+r15]
-	lea	r13,QWORD PTR[64+r13]
-	cmp	r15,QWORD PTR[16+rsp]
-	jb	$L$oop
+	movdqu	XMMWORD[r13*1+r14],xmm2
+	movdqu	XMMWORD[16+r13*1+r14],xmm3
+	movdqu	XMMWORD[32+r13*1+r14],xmm4
+	movdqu	XMMWORD[48+r13*1+r14],xmm5
+	lea	r15,[64+r15]
+	lea	r13,[64+r13]
+	cmp	r15,QWORD[16+rsp]
+	jb	NEAR $L$oop
 
-	mov	r12,QWORD PTR[24+rsp]
+	mov	r12,QWORD[24+rsp]
 	sub	cl,al
-	mov	DWORD PTR[r12],r8d
-	mov	DWORD PTR[4+r12],r9d
-	mov	DWORD PTR[8+r12],r10d
-	mov	DWORD PTR[12+r12],r11d
+	mov	DWORD[r12],r8d
+	mov	DWORD[4+r12],r9d
+	mov	DWORD[8+r12],r10d
+	mov	DWORD[12+r12],r11d
 	sub	bpl,1
-	mov	DWORD PTR[((-8))+rdi],ebp
-	mov	DWORD PTR[((-4))+rdi],ecx
+	mov	DWORD[((-8))+rdi],ebp
+	mov	DWORD[((-4))+rdi],ecx
 
-	mov	r15,QWORD PTR[40+rsp]
-	mov	r14,QWORD PTR[48+rsp]
-	mov	r13,QWORD PTR[56+rsp]
-	mov	r12,QWORD PTR[64+rsp]
-	mov	rbp,QWORD PTR[72+rsp]
-	mov	rbx,QWORD PTR[80+rsp]
-	lea	rsp,QWORD PTR[88+rsp]
-$L$epilogue::
-$L$abort::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	mov	r15,QWORD[40+rsp]
+	mov	r14,QWORD[48+rsp]
+	mov	r13,QWORD[56+rsp]
+	mov	r12,QWORD[64+rsp]
+	mov	rbp,QWORD[72+rsp]
+	mov	rbx,QWORD[80+rsp]
+	lea	rsp,[88+rsp]
+$L$epilogue:
+$L$abort:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_rc4_md5_enc::
-rc4_md5_enc	ENDP
-EXTERN	__imp_RtlVirtualUnwind:NEAR
+$L$SEH_end_rc4_md5_enc:
+EXTERN	__imp_RtlVirtualUnwind
 
 ALIGN	16
-se_handler	PROC PRIVATE
+se_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -1288,59 +1291,59 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[120+r8]
-	mov	rbx,QWORD PTR[248+r8]
+	mov	rax,QWORD[120+r8]
+	mov	rbx,QWORD[248+r8]
 
-	lea	r10,QWORD PTR[$L$body]
+	lea	r10,[$L$body]
 	cmp	rbx,r10
-	jb	$L$in_prologue
+	jb	NEAR $L$in_prologue
 
-	mov	rax,QWORD PTR[152+r8]
+	mov	rax,QWORD[152+r8]
 
-	lea	r10,QWORD PTR[$L$epilogue]
+	lea	r10,[$L$epilogue]
 	cmp	rbx,r10
-	jae	$L$in_prologue
+	jae	NEAR $L$in_prologue
 
-	mov	r15,QWORD PTR[40+rax]
-	mov	r14,QWORD PTR[48+rax]
-	mov	r13,QWORD PTR[56+rax]
-	mov	r12,QWORD PTR[64+rax]
-	mov	rbp,QWORD PTR[72+rax]
-	mov	rbx,QWORD PTR[80+rax]
-	lea	rax,QWORD PTR[88+rax]
+	mov	r15,QWORD[40+rax]
+	mov	r14,QWORD[48+rax]
+	mov	r13,QWORD[56+rax]
+	mov	r12,QWORD[64+rax]
+	mov	rbp,QWORD[72+rax]
+	mov	rbx,QWORD[80+rax]
+	lea	rax,[88+rax]
 
-	mov	QWORD PTR[144+r8],rbx
-	mov	QWORD PTR[160+r8],rbp
-	mov	QWORD PTR[216+r8],r12
-	mov	QWORD PTR[224+r8],r13
-	mov	QWORD PTR[232+r8],r14
-	mov	QWORD PTR[240+r8],r15
+	mov	QWORD[144+r8],rbx
+	mov	QWORD[160+r8],rbp
+	mov	QWORD[216+r8],r12
+	mov	QWORD[224+r8],r13
+	mov	QWORD[232+r8],r14
+	mov	QWORD[240+r8],r15
 
-$L$in_prologue::
-	mov	rdi,QWORD PTR[8+rax]
-	mov	rsi,QWORD PTR[16+rax]
-	mov	QWORD PTR[152+r8],rax
-	mov	QWORD PTR[168+r8],rsi
-	mov	QWORD PTR[176+r8],rdi
+$L$in_prologue:
+	mov	rdi,QWORD[8+rax]
+	mov	rsi,QWORD[16+rax]
+	mov	QWORD[152+r8],rax
+	mov	QWORD[168+r8],rsi
+	mov	QWORD[176+r8],rdi
 
-	mov	rdi,QWORD PTR[40+r9]
+	mov	rdi,QWORD[40+r9]
 	mov	rsi,r8
 	mov	ecx,154
-	DD	0a548f3fch
+	DD	0xa548f3fc
 
 	mov	rsi,r9
 	xor	rcx,rcx
-	mov	rdx,QWORD PTR[8+rsi]
-	mov	r8,QWORD PTR[rsi]
-	mov	r9,QWORD PTR[16+rsi]
-	mov	r10,QWORD PTR[40+rsi]
-	lea	r11,QWORD PTR[56+rsi]
-	lea	r12,QWORD PTR[24+rsi]
-	mov	QWORD PTR[32+rsp],r10
-	mov	QWORD PTR[40+rsp],r11
-	mov	QWORD PTR[48+rsp],r12
-	mov	QWORD PTR[56+rsp],rcx
-	call	QWORD PTR[__imp_RtlVirtualUnwind]
+	mov	rdx,QWORD[8+rsi]
+	mov	r8,QWORD[rsi]
+	mov	r9,QWORD[16+rsi]
+	mov	r10,QWORD[40+rsi]
+	lea	r11,[56+rsi]
+	lea	r12,[24+rsi]
+	mov	QWORD[32+rsp],r10
+	mov	QWORD[40+rsp],r11
+	mov	QWORD[48+rsp],r12
+	mov	QWORD[56+rsp],rcx
+	call	QWORD[__imp_RtlVirtualUnwind]
 
 	mov	eax,1
 	add	rsp,64
@@ -1354,21 +1357,16 @@
 	pop	rdi
 	pop	rsi
 	DB	0F3h,0C3h		;repret
-se_handler	ENDP
 
-.text$	ENDS
-.pdata	SEGMENT READONLY ALIGN(4)
+
+section	.pdata rdata align=4
 ALIGN	4
-	DD	imagerel $L$SEH_begin_rc4_md5_enc
-	DD	imagerel $L$SEH_end_rc4_md5_enc
-	DD	imagerel $L$SEH_info_rc4_md5_enc
+	DD	$L$SEH_begin_rc4_md5_enc wrt ..imagebase
+	DD	$L$SEH_end_rc4_md5_enc wrt ..imagebase
+	DD	$L$SEH_info_rc4_md5_enc wrt ..imagebase
 
-.pdata	ENDS
-.xdata	SEGMENT READONLY ALIGN(8)
+section	.xdata rdata align=8
 ALIGN	8
-$L$SEH_info_rc4_md5_enc::
+$L$SEH_info_rc4_md5_enc:
 DB	9,0,0,0
-	DD	imagerel se_handler
-
-.xdata	ENDS
-END
+	DD	se_handler wrt ..imagebase
diff --git a/third_party/boringssl/win-x86_64/crypto/rc4/rc4-x86_64.asm b/third_party/boringssl/win-x86_64/crypto/rc4/rc4-x86_64.asm
index c183cac..18ef62d 100644
--- a/third_party/boringssl/win-x86_64/crypto/rc4/rc4-x86_64.asm
+++ b/third_party/boringssl/win-x86_64/crypto/rc4/rc4-x86_64.asm
@@ -1,15 +1,19 @@
-OPTION	DOTNAME
-.text$	SEGMENT ALIGN(256) 'CODE'
-EXTERN	OPENSSL_ia32cap_P:NEAR
+default	rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section	.text code align=64
 
-PUBLIC	asm_RC4
+EXTERN	OPENSSL_ia32cap_P
+
+global	asm_RC4
 
 ALIGN	16
-asm_RC4	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+asm_RC4:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_asm_RC4::
+$L$SEH_begin_asm_RC4:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
@@ -17,538 +21,537 @@
 
 
 	or	rsi,rsi
-	jne	$L$entry
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	jne	NEAR $L$entry
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$entry::
+$L$entry:
 	push	rbx
 	push	r12
 	push	r13
-$L$prologue::
+$L$prologue:
 	mov	r11,rsi
 	mov	r12,rdx
 	mov	r13,rcx
 	xor	r10,r10
 	xor	rcx,rcx
 
-	lea	rdi,QWORD PTR[8+rdi]
-	mov	r10b,BYTE PTR[((-8))+rdi]
-	mov	cl,BYTE PTR[((-4))+rdi]
-	cmp	DWORD PTR[256+rdi],-1
-	je	$L$RC4_CHAR
-	mov	r8d,DWORD PTR[OPENSSL_ia32cap_P]
+	lea	rdi,[8+rdi]
+	mov	r10b,BYTE[((-8))+rdi]
+	mov	cl,BYTE[((-4))+rdi]
+	cmp	DWORD[256+rdi],-1
+	je	NEAR $L$RC4_CHAR
+	mov	r8d,DWORD[OPENSSL_ia32cap_P]
 	xor	rbx,rbx
 	inc	r10b
 	sub	rbx,r10
 	sub	r13,r12
-	mov	eax,DWORD PTR[r10*4+rdi]
+	mov	eax,DWORD[r10*4+rdi]
 	test	r11,-16
-	jz	$L$loop1
+	jz	NEAR $L$loop1
 	bt	r8d,30
-	jc	$L$intel
+	jc	NEAR $L$intel
 	and	rbx,7
-	lea	rsi,QWORD PTR[1+r10]
-	jz	$L$oop8
+	lea	rsi,[1+r10]
+	jz	NEAR $L$oop8
 	sub	r11,rbx
-$L$oop8_warmup::
+$L$oop8_warmup:
 	add	cl,al
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],eax
-	mov	DWORD PTR[r10*4+rdi],edx
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],eax
+	mov	DWORD[r10*4+rdi],edx
 	add	al,dl
 	inc	r10b
-	mov	edx,DWORD PTR[rax*4+rdi]
-	mov	eax,DWORD PTR[r10*4+rdi]
-	xor	dl,BYTE PTR[r12]
-	mov	BYTE PTR[r13*1+r12],dl
-	lea	r12,QWORD PTR[1+r12]
+	mov	edx,DWORD[rax*4+rdi]
+	mov	eax,DWORD[r10*4+rdi]
+	xor	dl,BYTE[r12]
+	mov	BYTE[r13*1+r12],dl
+	lea	r12,[1+r12]
 	dec	rbx
-	jnz	$L$oop8_warmup
+	jnz	NEAR $L$oop8_warmup
 
-	lea	rsi,QWORD PTR[1+r10]
-	jmp	$L$oop8
+	lea	rsi,[1+r10]
+	jmp	NEAR $L$oop8
 ALIGN	16
-$L$oop8::
+$L$oop8:
 	add	cl,al
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],eax
-	mov	ebx,DWORD PTR[rsi*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],eax
+	mov	ebx,DWORD[rsi*4+rdi]
 	ror	r8,8
-	mov	DWORD PTR[r10*4+rdi],edx
+	mov	DWORD[r10*4+rdi],edx
 	add	dl,al
-	mov	r8b,BYTE PTR[rdx*4+rdi]
+	mov	r8b,BYTE[rdx*4+rdi]
 	add	cl,bl
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],ebx
-	mov	eax,DWORD PTR[4+rsi*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],ebx
+	mov	eax,DWORD[4+rsi*4+rdi]
 	ror	r8,8
-	mov	DWORD PTR[4+r10*4+rdi],edx
+	mov	DWORD[4+r10*4+rdi],edx
 	add	dl,bl
-	mov	r8b,BYTE PTR[rdx*4+rdi]
+	mov	r8b,BYTE[rdx*4+rdi]
 	add	cl,al
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],eax
-	mov	ebx,DWORD PTR[8+rsi*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],eax
+	mov	ebx,DWORD[8+rsi*4+rdi]
 	ror	r8,8
-	mov	DWORD PTR[8+r10*4+rdi],edx
+	mov	DWORD[8+r10*4+rdi],edx
 	add	dl,al
-	mov	r8b,BYTE PTR[rdx*4+rdi]
+	mov	r8b,BYTE[rdx*4+rdi]
 	add	cl,bl
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],ebx
-	mov	eax,DWORD PTR[12+rsi*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],ebx
+	mov	eax,DWORD[12+rsi*4+rdi]
 	ror	r8,8
-	mov	DWORD PTR[12+r10*4+rdi],edx
+	mov	DWORD[12+r10*4+rdi],edx
 	add	dl,bl
-	mov	r8b,BYTE PTR[rdx*4+rdi]
+	mov	r8b,BYTE[rdx*4+rdi]
 	add	cl,al
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],eax
-	mov	ebx,DWORD PTR[16+rsi*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],eax
+	mov	ebx,DWORD[16+rsi*4+rdi]
 	ror	r8,8
-	mov	DWORD PTR[16+r10*4+rdi],edx
+	mov	DWORD[16+r10*4+rdi],edx
 	add	dl,al
-	mov	r8b,BYTE PTR[rdx*4+rdi]
+	mov	r8b,BYTE[rdx*4+rdi]
 	add	cl,bl
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],ebx
-	mov	eax,DWORD PTR[20+rsi*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],ebx
+	mov	eax,DWORD[20+rsi*4+rdi]
 	ror	r8,8
-	mov	DWORD PTR[20+r10*4+rdi],edx
+	mov	DWORD[20+r10*4+rdi],edx
 	add	dl,bl
-	mov	r8b,BYTE PTR[rdx*4+rdi]
+	mov	r8b,BYTE[rdx*4+rdi]
 	add	cl,al
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],eax
-	mov	ebx,DWORD PTR[24+rsi*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],eax
+	mov	ebx,DWORD[24+rsi*4+rdi]
 	ror	r8,8
-	mov	DWORD PTR[24+r10*4+rdi],edx
+	mov	DWORD[24+r10*4+rdi],edx
 	add	dl,al
-	mov	r8b,BYTE PTR[rdx*4+rdi]
+	mov	r8b,BYTE[rdx*4+rdi]
 	add	sil,8
 	add	cl,bl
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],ebx
-	mov	eax,DWORD PTR[((-4))+rsi*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],ebx
+	mov	eax,DWORD[((-4))+rsi*4+rdi]
 	ror	r8,8
-	mov	DWORD PTR[28+r10*4+rdi],edx
+	mov	DWORD[28+r10*4+rdi],edx
 	add	dl,bl
-	mov	r8b,BYTE PTR[rdx*4+rdi]
+	mov	r8b,BYTE[rdx*4+rdi]
 	add	r10b,8
 	ror	r8,8
 	sub	r11,8
 
-	xor	r8,QWORD PTR[r12]
-	mov	QWORD PTR[r13*1+r12],r8
-	lea	r12,QWORD PTR[8+r12]
+	xor	r8,QWORD[r12]
+	mov	QWORD[r13*1+r12],r8
+	lea	r12,[8+r12]
 
 	test	r11,-8
-	jnz	$L$oop8
+	jnz	NEAR $L$oop8
 	cmp	r11,0
-	jne	$L$loop1
-	jmp	$L$exit
+	jne	NEAR $L$loop1
+	jmp	NEAR $L$exit
 
 ALIGN	16
-$L$intel::
+$L$intel:
 	test	r11,-32
-	jz	$L$loop1
+	jz	NEAR $L$loop1
 	and	rbx,15
-	jz	$L$oop16_is_hot
+	jz	NEAR $L$oop16_is_hot
 	sub	r11,rbx
-$L$oop16_warmup::
+$L$oop16_warmup:
 	add	cl,al
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],eax
-	mov	DWORD PTR[r10*4+rdi],edx
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],eax
+	mov	DWORD[r10*4+rdi],edx
 	add	al,dl
 	inc	r10b
-	mov	edx,DWORD PTR[rax*4+rdi]
-	mov	eax,DWORD PTR[r10*4+rdi]
-	xor	dl,BYTE PTR[r12]
-	mov	BYTE PTR[r13*1+r12],dl
-	lea	r12,QWORD PTR[1+r12]
+	mov	edx,DWORD[rax*4+rdi]
+	mov	eax,DWORD[r10*4+rdi]
+	xor	dl,BYTE[r12]
+	mov	BYTE[r13*1+r12],dl
+	lea	r12,[1+r12]
 	dec	rbx
-	jnz	$L$oop16_warmup
+	jnz	NEAR $L$oop16_warmup
 
 	mov	rbx,rcx
 	xor	rcx,rcx
 	mov	cl,bl
 
-$L$oop16_is_hot::
-	lea	rsi,QWORD PTR[r10*4+rdi]
+$L$oop16_is_hot:
+	lea	rsi,[r10*4+rdi]
 	add	cl,al
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	pxor	xmm0,xmm0
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	add	al,dl
-	mov	ebx,DWORD PTR[4+rsi]
+	mov	ebx,DWORD[4+rsi]
 	movzx	eax,al
-	mov	DWORD PTR[rsi],edx
+	mov	DWORD[rsi],edx
 	add	cl,bl
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],0
-	jmp	$L$oop16_enter
+	pinsrw	xmm0,WORD[rax*4+rdi],0
+	jmp	NEAR $L$oop16_enter
 ALIGN	16
-$L$oop16::
+$L$oop16:
 	add	cl,al
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	mov	edx,DWORD[rcx*4+rdi]
 	pxor	xmm2,xmm0
 	psllq	xmm1,8
 	pxor	xmm0,xmm0
-	mov	DWORD PTR[rcx*4+rdi],eax
+	mov	DWORD[rcx*4+rdi],eax
 	add	al,dl
-	mov	ebx,DWORD PTR[4+rsi]
+	mov	ebx,DWORD[4+rsi]
 	movzx	eax,al
-	mov	DWORD PTR[rsi],edx
+	mov	DWORD[rsi],edx
 	pxor	xmm2,xmm1
 	add	cl,bl
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],0
-	movdqu	XMMWORD PTR[r13*1+r12],xmm2
-	lea	r12,QWORD PTR[16+r12]
-$L$oop16_enter::
-	mov	edx,DWORD PTR[rcx*4+rdi]
+	pinsrw	xmm0,WORD[rax*4+rdi],0
+	movdqu	XMMWORD[r13*1+r12],xmm2
+	lea	r12,[16+r12]
+$L$oop16_enter:
+	mov	edx,DWORD[rcx*4+rdi]
 	pxor	xmm1,xmm1
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	mov	DWORD[rcx*4+rdi],ebx
 	add	bl,dl
-	mov	eax,DWORD PTR[8+rsi]
+	mov	eax,DWORD[8+rsi]
 	movzx	ebx,bl
-	mov	DWORD PTR[4+rsi],edx
+	mov	DWORD[4+rsi],edx
 	add	cl,al
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],0
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],eax
+	pinsrw	xmm1,WORD[rbx*4+rdi],0
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],eax
 	add	al,dl
-	mov	ebx,DWORD PTR[12+rsi]
+	mov	ebx,DWORD[12+rsi]
 	movzx	eax,al
-	mov	DWORD PTR[8+rsi],edx
+	mov	DWORD[8+rsi],edx
 	add	cl,bl
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],1
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	pinsrw	xmm0,WORD[rax*4+rdi],1
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],ebx
 	add	bl,dl
-	mov	eax,DWORD PTR[16+rsi]
+	mov	eax,DWORD[16+rsi]
 	movzx	ebx,bl
-	mov	DWORD PTR[12+rsi],edx
+	mov	DWORD[12+rsi],edx
 	add	cl,al
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],1
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],eax
+	pinsrw	xmm1,WORD[rbx*4+rdi],1
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],eax
 	add	al,dl
-	mov	ebx,DWORD PTR[20+rsi]
+	mov	ebx,DWORD[20+rsi]
 	movzx	eax,al
-	mov	DWORD PTR[16+rsi],edx
+	mov	DWORD[16+rsi],edx
 	add	cl,bl
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],2
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	pinsrw	xmm0,WORD[rax*4+rdi],2
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],ebx
 	add	bl,dl
-	mov	eax,DWORD PTR[24+rsi]
+	mov	eax,DWORD[24+rsi]
 	movzx	ebx,bl
-	mov	DWORD PTR[20+rsi],edx
+	mov	DWORD[20+rsi],edx
 	add	cl,al
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],2
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],eax
+	pinsrw	xmm1,WORD[rbx*4+rdi],2
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],eax
 	add	al,dl
-	mov	ebx,DWORD PTR[28+rsi]
+	mov	ebx,DWORD[28+rsi]
 	movzx	eax,al
-	mov	DWORD PTR[24+rsi],edx
+	mov	DWORD[24+rsi],edx
 	add	cl,bl
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],3
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	pinsrw	xmm0,WORD[rax*4+rdi],3
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],ebx
 	add	bl,dl
-	mov	eax,DWORD PTR[32+rsi]
+	mov	eax,DWORD[32+rsi]
 	movzx	ebx,bl
-	mov	DWORD PTR[28+rsi],edx
+	mov	DWORD[28+rsi],edx
 	add	cl,al
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],3
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],eax
+	pinsrw	xmm1,WORD[rbx*4+rdi],3
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],eax
 	add	al,dl
-	mov	ebx,DWORD PTR[36+rsi]
+	mov	ebx,DWORD[36+rsi]
 	movzx	eax,al
-	mov	DWORD PTR[32+rsi],edx
+	mov	DWORD[32+rsi],edx
 	add	cl,bl
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],4
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	pinsrw	xmm0,WORD[rax*4+rdi],4
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],ebx
 	add	bl,dl
-	mov	eax,DWORD PTR[40+rsi]
+	mov	eax,DWORD[40+rsi]
 	movzx	ebx,bl
-	mov	DWORD PTR[36+rsi],edx
+	mov	DWORD[36+rsi],edx
 	add	cl,al
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],4
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],eax
+	pinsrw	xmm1,WORD[rbx*4+rdi],4
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],eax
 	add	al,dl
-	mov	ebx,DWORD PTR[44+rsi]
+	mov	ebx,DWORD[44+rsi]
 	movzx	eax,al
-	mov	DWORD PTR[40+rsi],edx
+	mov	DWORD[40+rsi],edx
 	add	cl,bl
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],5
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	pinsrw	xmm0,WORD[rax*4+rdi],5
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],ebx
 	add	bl,dl
-	mov	eax,DWORD PTR[48+rsi]
+	mov	eax,DWORD[48+rsi]
 	movzx	ebx,bl
-	mov	DWORD PTR[44+rsi],edx
+	mov	DWORD[44+rsi],edx
 	add	cl,al
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],5
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],eax
+	pinsrw	xmm1,WORD[rbx*4+rdi],5
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],eax
 	add	al,dl
-	mov	ebx,DWORD PTR[52+rsi]
+	mov	ebx,DWORD[52+rsi]
 	movzx	eax,al
-	mov	DWORD PTR[48+rsi],edx
+	mov	DWORD[48+rsi],edx
 	add	cl,bl
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],6
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	pinsrw	xmm0,WORD[rax*4+rdi],6
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],ebx
 	add	bl,dl
-	mov	eax,DWORD PTR[56+rsi]
+	mov	eax,DWORD[56+rsi]
 	movzx	ebx,bl
-	mov	DWORD PTR[52+rsi],edx
+	mov	DWORD[52+rsi],edx
 	add	cl,al
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],6
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],eax
+	pinsrw	xmm1,WORD[rbx*4+rdi],6
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],eax
 	add	al,dl
-	mov	ebx,DWORD PTR[60+rsi]
+	mov	ebx,DWORD[60+rsi]
 	movzx	eax,al
-	mov	DWORD PTR[56+rsi],edx
+	mov	DWORD[56+rsi],edx
 	add	cl,bl
-	pinsrw	xmm0,WORD PTR[rax*4+rdi],7
+	pinsrw	xmm0,WORD[rax*4+rdi],7
 	add	r10b,16
-	movdqu	xmm2,XMMWORD PTR[r12]
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],ebx
+	movdqu	xmm2,XMMWORD[r12]
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],ebx
 	add	bl,dl
 	movzx	ebx,bl
-	mov	DWORD PTR[60+rsi],edx
-	lea	rsi,QWORD PTR[r10*4+rdi]
-	pinsrw	xmm1,WORD PTR[rbx*4+rdi],7
-	mov	eax,DWORD PTR[rsi]
+	mov	DWORD[60+rsi],edx
+	lea	rsi,[r10*4+rdi]
+	pinsrw	xmm1,WORD[rbx*4+rdi],7
+	mov	eax,DWORD[rsi]
 	mov	rbx,rcx
 	xor	rcx,rcx
 	sub	r11,16
 	mov	cl,bl
 	test	r11,-16
-	jnz	$L$oop16
+	jnz	NEAR $L$oop16
 
 	psllq	xmm1,8
 	pxor	xmm2,xmm0
 	pxor	xmm2,xmm1
-	movdqu	XMMWORD PTR[r13*1+r12],xmm2
-	lea	r12,QWORD PTR[16+r12]
+	movdqu	XMMWORD[r13*1+r12],xmm2
+	lea	r12,[16+r12]
 
 	cmp	r11,0
-	jne	$L$loop1
-	jmp	$L$exit
+	jne	NEAR $L$loop1
+	jmp	NEAR $L$exit
 
 ALIGN	16
-$L$loop1::
+$L$loop1:
 	add	cl,al
-	mov	edx,DWORD PTR[rcx*4+rdi]
-	mov	DWORD PTR[rcx*4+rdi],eax
-	mov	DWORD PTR[r10*4+rdi],edx
+	mov	edx,DWORD[rcx*4+rdi]
+	mov	DWORD[rcx*4+rdi],eax
+	mov	DWORD[r10*4+rdi],edx
 	add	al,dl
 	inc	r10b
-	mov	edx,DWORD PTR[rax*4+rdi]
-	mov	eax,DWORD PTR[r10*4+rdi]
-	xor	dl,BYTE PTR[r12]
-	mov	BYTE PTR[r13*1+r12],dl
-	lea	r12,QWORD PTR[1+r12]
+	mov	edx,DWORD[rax*4+rdi]
+	mov	eax,DWORD[r10*4+rdi]
+	xor	dl,BYTE[r12]
+	mov	BYTE[r13*1+r12],dl
+	lea	r12,[1+r12]
 	dec	r11
-	jnz	$L$loop1
-	jmp	$L$exit
+	jnz	NEAR $L$loop1
+	jmp	NEAR $L$exit
 
 ALIGN	16
-$L$RC4_CHAR::
+$L$RC4_CHAR:
 	add	r10b,1
-	movzx	eax,BYTE PTR[r10*1+rdi]
+	movzx	eax,BYTE[r10*1+rdi]
 	test	r11,-8
-	jz	$L$cloop1
-	jmp	$L$cloop8
+	jz	NEAR $L$cloop1
+	jmp	NEAR $L$cloop8
 ALIGN	16
-$L$cloop8::
-	mov	r8d,DWORD PTR[r12]
-	mov	r9d,DWORD PTR[4+r12]
+$L$cloop8:
+	mov	r8d,DWORD[r12]
+	mov	r9d,DWORD[4+r12]
 	add	cl,al
-	lea	rsi,QWORD PTR[1+r10]
-	movzx	edx,BYTE PTR[rcx*1+rdi]
+	lea	rsi,[1+r10]
+	movzx	edx,BYTE[rcx*1+rdi]
 	movzx	esi,sil
-	movzx	ebx,BYTE PTR[rsi*1+rdi]
-	mov	BYTE PTR[rcx*1+rdi],al
+	movzx	ebx,BYTE[rsi*1+rdi]
+	mov	BYTE[rcx*1+rdi],al
 	cmp	rcx,rsi
-	mov	BYTE PTR[r10*1+rdi],dl
-	jne	$L$cmov0
+	mov	BYTE[r10*1+rdi],dl
+	jne	NEAR $L$cmov0
 	mov	rbx,rax
-$L$cmov0::
+$L$cmov0:
 	add	dl,al
-	xor	r8b,BYTE PTR[rdx*1+rdi]
+	xor	r8b,BYTE[rdx*1+rdi]
 	ror	r8d,8
 	add	cl,bl
-	lea	r10,QWORD PTR[1+rsi]
-	movzx	edx,BYTE PTR[rcx*1+rdi]
+	lea	r10,[1+rsi]
+	movzx	edx,BYTE[rcx*1+rdi]
 	movzx	r10d,r10b
-	movzx	eax,BYTE PTR[r10*1+rdi]
-	mov	BYTE PTR[rcx*1+rdi],bl
+	movzx	eax,BYTE[r10*1+rdi]
+	mov	BYTE[rcx*1+rdi],bl
 	cmp	rcx,r10
-	mov	BYTE PTR[rsi*1+rdi],dl
-	jne	$L$cmov1
+	mov	BYTE[rsi*1+rdi],dl
+	jne	NEAR $L$cmov1
 	mov	rax,rbx
-$L$cmov1::
+$L$cmov1:
 	add	dl,bl
-	xor	r8b,BYTE PTR[rdx*1+rdi]
+	xor	r8b,BYTE[rdx*1+rdi]
 	ror	r8d,8
 	add	cl,al
-	lea	rsi,QWORD PTR[1+r10]
-	movzx	edx,BYTE PTR[rcx*1+rdi]
+	lea	rsi,[1+r10]
+	movzx	edx,BYTE[rcx*1+rdi]
 	movzx	esi,sil
-	movzx	ebx,BYTE PTR[rsi*1+rdi]
-	mov	BYTE PTR[rcx*1+rdi],al
+	movzx	ebx,BYTE[rsi*1+rdi]
+	mov	BYTE[rcx*1+rdi],al
 	cmp	rcx,rsi
-	mov	BYTE PTR[r10*1+rdi],dl
-	jne	$L$cmov2
+	mov	BYTE[r10*1+rdi],dl
+	jne	NEAR $L$cmov2
 	mov	rbx,rax
-$L$cmov2::
+$L$cmov2:
 	add	dl,al
-	xor	r8b,BYTE PTR[rdx*1+rdi]
+	xor	r8b,BYTE[rdx*1+rdi]
 	ror	r8d,8
 	add	cl,bl
-	lea	r10,QWORD PTR[1+rsi]
-	movzx	edx,BYTE PTR[rcx*1+rdi]
+	lea	r10,[1+rsi]
+	movzx	edx,BYTE[rcx*1+rdi]
 	movzx	r10d,r10b
-	movzx	eax,BYTE PTR[r10*1+rdi]
-	mov	BYTE PTR[rcx*1+rdi],bl
+	movzx	eax,BYTE[r10*1+rdi]
+	mov	BYTE[rcx*1+rdi],bl
 	cmp	rcx,r10
-	mov	BYTE PTR[rsi*1+rdi],dl
-	jne	$L$cmov3
+	mov	BYTE[rsi*1+rdi],dl
+	jne	NEAR $L$cmov3
 	mov	rax,rbx
-$L$cmov3::
+$L$cmov3:
 	add	dl,bl
-	xor	r8b,BYTE PTR[rdx*1+rdi]
+	xor	r8b,BYTE[rdx*1+rdi]
 	ror	r8d,8
 	add	cl,al
-	lea	rsi,QWORD PTR[1+r10]
-	movzx	edx,BYTE PTR[rcx*1+rdi]
+	lea	rsi,[1+r10]
+	movzx	edx,BYTE[rcx*1+rdi]
 	movzx	esi,sil
-	movzx	ebx,BYTE PTR[rsi*1+rdi]
-	mov	BYTE PTR[rcx*1+rdi],al
+	movzx	ebx,BYTE[rsi*1+rdi]
+	mov	BYTE[rcx*1+rdi],al
 	cmp	rcx,rsi
-	mov	BYTE PTR[r10*1+rdi],dl
-	jne	$L$cmov4
+	mov	BYTE[r10*1+rdi],dl
+	jne	NEAR $L$cmov4
 	mov	rbx,rax
-$L$cmov4::
+$L$cmov4:
 	add	dl,al
-	xor	r9b,BYTE PTR[rdx*1+rdi]
+	xor	r9b,BYTE[rdx*1+rdi]
 	ror	r9d,8
 	add	cl,bl
-	lea	r10,QWORD PTR[1+rsi]
-	movzx	edx,BYTE PTR[rcx*1+rdi]
+	lea	r10,[1+rsi]
+	movzx	edx,BYTE[rcx*1+rdi]
 	movzx	r10d,r10b
-	movzx	eax,BYTE PTR[r10*1+rdi]
-	mov	BYTE PTR[rcx*1+rdi],bl
+	movzx	eax,BYTE[r10*1+rdi]
+	mov	BYTE[rcx*1+rdi],bl
 	cmp	rcx,r10
-	mov	BYTE PTR[rsi*1+rdi],dl
-	jne	$L$cmov5
+	mov	BYTE[rsi*1+rdi],dl
+	jne	NEAR $L$cmov5
 	mov	rax,rbx
-$L$cmov5::
+$L$cmov5:
 	add	dl,bl
-	xor	r9b,BYTE PTR[rdx*1+rdi]
+	xor	r9b,BYTE[rdx*1+rdi]
 	ror	r9d,8
 	add	cl,al
-	lea	rsi,QWORD PTR[1+r10]
-	movzx	edx,BYTE PTR[rcx*1+rdi]
+	lea	rsi,[1+r10]
+	movzx	edx,BYTE[rcx*1+rdi]
 	movzx	esi,sil
-	movzx	ebx,BYTE PTR[rsi*1+rdi]
-	mov	BYTE PTR[rcx*1+rdi],al
+	movzx	ebx,BYTE[rsi*1+rdi]
+	mov	BYTE[rcx*1+rdi],al
 	cmp	rcx,rsi
-	mov	BYTE PTR[r10*1+rdi],dl
-	jne	$L$cmov6
+	mov	BYTE[r10*1+rdi],dl
+	jne	NEAR $L$cmov6
 	mov	rbx,rax
-$L$cmov6::
+$L$cmov6:
 	add	dl,al
-	xor	r9b,BYTE PTR[rdx*1+rdi]
+	xor	r9b,BYTE[rdx*1+rdi]
 	ror	r9d,8
 	add	cl,bl
-	lea	r10,QWORD PTR[1+rsi]
-	movzx	edx,BYTE PTR[rcx*1+rdi]
+	lea	r10,[1+rsi]
+	movzx	edx,BYTE[rcx*1+rdi]
 	movzx	r10d,r10b
-	movzx	eax,BYTE PTR[r10*1+rdi]
-	mov	BYTE PTR[rcx*1+rdi],bl
+	movzx	eax,BYTE[r10*1+rdi]
+	mov	BYTE[rcx*1+rdi],bl
 	cmp	rcx,r10
-	mov	BYTE PTR[rsi*1+rdi],dl
-	jne	$L$cmov7
+	mov	BYTE[rsi*1+rdi],dl
+	jne	NEAR $L$cmov7
 	mov	rax,rbx
-$L$cmov7::
+$L$cmov7:
 	add	dl,bl
-	xor	r9b,BYTE PTR[rdx*1+rdi]
+	xor	r9b,BYTE[rdx*1+rdi]
 	ror	r9d,8
-	lea	r11,QWORD PTR[((-8))+r11]
-	mov	DWORD PTR[r13],r8d
-	lea	r12,QWORD PTR[8+r12]
-	mov	DWORD PTR[4+r13],r9d
-	lea	r13,QWORD PTR[8+r13]
+	lea	r11,[((-8))+r11]
+	mov	DWORD[r13],r8d
+	lea	r12,[8+r12]
+	mov	DWORD[4+r13],r9d
+	lea	r13,[8+r13]
 
 	test	r11,-8
-	jnz	$L$cloop8
+	jnz	NEAR $L$cloop8
 	cmp	r11,0
-	jne	$L$cloop1
-	jmp	$L$exit
+	jne	NEAR $L$cloop1
+	jmp	NEAR $L$exit
 ALIGN	16
-$L$cloop1::
+$L$cloop1:
 	add	cl,al
 	movzx	ecx,cl
-	movzx	edx,BYTE PTR[rcx*1+rdi]
-	mov	BYTE PTR[rcx*1+rdi],al
-	mov	BYTE PTR[r10*1+rdi],dl
+	movzx	edx,BYTE[rcx*1+rdi]
+	mov	BYTE[rcx*1+rdi],al
+	mov	BYTE[r10*1+rdi],dl
 	add	dl,al
 	add	r10b,1
 	movzx	edx,dl
 	movzx	r10d,r10b
-	movzx	edx,BYTE PTR[rdx*1+rdi]
-	movzx	eax,BYTE PTR[r10*1+rdi]
-	xor	dl,BYTE PTR[r12]
-	lea	r12,QWORD PTR[1+r12]
-	mov	BYTE PTR[r13],dl
-	lea	r13,QWORD PTR[1+r13]
+	movzx	edx,BYTE[rdx*1+rdi]
+	movzx	eax,BYTE[r10*1+rdi]
+	xor	dl,BYTE[r12]
+	lea	r12,[1+r12]
+	mov	BYTE[r13],dl
+	lea	r13,[1+r13]
 	sub	r11,1
-	jnz	$L$cloop1
-	jmp	$L$exit
+	jnz	NEAR $L$cloop1
+	jmp	NEAR $L$exit
 
 ALIGN	16
-$L$exit::
+$L$exit:
 	sub	r10b,1
-	mov	DWORD PTR[((-8))+rdi],r10d
-	mov	DWORD PTR[((-4))+rdi],ecx
+	mov	DWORD[((-8))+rdi],r10d
+	mov	DWORD[((-4))+rdi],ecx
 
-	mov	r13,QWORD PTR[rsp]
-	mov	r12,QWORD PTR[8+rsp]
-	mov	rbx,QWORD PTR[16+rsp]
+	mov	r13,QWORD[rsp]
+	mov	r12,QWORD[8+rsp]
+	mov	rbx,QWORD[16+rsp]
 	add	rsp,24
-$L$epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+$L$epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_asm_RC4::
-asm_RC4	ENDP
-PUBLIC	asm_RC4_set_key
+$L$SEH_end_asm_RC4:
+global	asm_RC4_set_key
 
 ALIGN	16
-asm_RC4_set_key	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+asm_RC4_set_key:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_asm_RC4_set_key::
+$L$SEH_begin_asm_RC4_set_key:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 
 
-	lea	rdi,QWORD PTR[8+rdi]
-	lea	rdx,QWORD PTR[rsi*1+rdx]
+	lea	rdi,[8+rdi]
+	lea	rdx,[rsi*1+rdx]
 	neg	rsi
 	mov	rcx,rsi
 	xor	eax,eax
@@ -556,87 +559,86 @@
 	xor	r10,r10
 	xor	r11,r11
 
-	mov	r8d,DWORD PTR[OPENSSL_ia32cap_P]
+	mov	r8d,DWORD[OPENSSL_ia32cap_P]
 	bt	r8d,20
-	jc	$L$c1stloop
-	jmp	$L$w1stloop
+	jc	NEAR $L$c1stloop
+	jmp	NEAR $L$w1stloop
 
 ALIGN	16
-$L$w1stloop::
-	mov	DWORD PTR[rax*4+rdi],eax
+$L$w1stloop:
+	mov	DWORD[rax*4+rdi],eax
 	add	al,1
-	jnc	$L$w1stloop
+	jnc	NEAR $L$w1stloop
 
 	xor	r9,r9
 	xor	r8,r8
 ALIGN	16
-$L$w2ndloop::
-	mov	r10d,DWORD PTR[r9*4+rdi]
-	add	r8b,BYTE PTR[rsi*1+rdx]
+$L$w2ndloop:
+	mov	r10d,DWORD[r9*4+rdi]
+	add	r8b,BYTE[rsi*1+rdx]
 	add	r8b,r10b
 	add	rsi,1
-	mov	r11d,DWORD PTR[r8*4+rdi]
+	mov	r11d,DWORD[r8*4+rdi]
 	cmovz	rsi,rcx
-	mov	DWORD PTR[r8*4+rdi],r10d
-	mov	DWORD PTR[r9*4+rdi],r11d
+	mov	DWORD[r8*4+rdi],r10d
+	mov	DWORD[r9*4+rdi],r11d
 	add	r9b,1
-	jnc	$L$w2ndloop
-	jmp	$L$exit_key
+	jnc	NEAR $L$w2ndloop
+	jmp	NEAR $L$exit_key
 
 ALIGN	16
-$L$c1stloop::
-	mov	BYTE PTR[rax*1+rdi],al
+$L$c1stloop:
+	mov	BYTE[rax*1+rdi],al
 	add	al,1
-	jnc	$L$c1stloop
+	jnc	NEAR $L$c1stloop
 
 	xor	r9,r9
 	xor	r8,r8
 ALIGN	16
-$L$c2ndloop::
-	mov	r10b,BYTE PTR[r9*1+rdi]
-	add	r8b,BYTE PTR[rsi*1+rdx]
+$L$c2ndloop:
+	mov	r10b,BYTE[r9*1+rdi]
+	add	r8b,BYTE[rsi*1+rdx]
 	add	r8b,r10b
 	add	rsi,1
-	mov	r11b,BYTE PTR[r8*1+rdi]
-	jnz	$L$cnowrap
+	mov	r11b,BYTE[r8*1+rdi]
+	jnz	NEAR $L$cnowrap
 	mov	rsi,rcx
-$L$cnowrap::
-	mov	BYTE PTR[r8*1+rdi],r10b
-	mov	BYTE PTR[r9*1+rdi],r11b
+$L$cnowrap:
+	mov	BYTE[r8*1+rdi],r10b
+	mov	BYTE[r9*1+rdi],r11b
 	add	r9b,1
-	jnc	$L$c2ndloop
-	mov	DWORD PTR[256+rdi],-1
+	jnc	NEAR $L$c2ndloop
+	mov	DWORD[256+rdi],-1
 
 ALIGN	16
-$L$exit_key::
+$L$exit_key:
 	xor	eax,eax
-	mov	DWORD PTR[((-8))+rdi],eax
-	mov	DWORD PTR[((-4))+rdi],eax
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	mov	DWORD[((-8))+rdi],eax
+	mov	DWORD[((-4))+rdi],eax
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_asm_RC4_set_key::
-asm_RC4_set_key	ENDP
+$L$SEH_end_asm_RC4_set_key:
 
-PUBLIC	RC4_options
+global	RC4_options
 
 ALIGN	16
-RC4_options	PROC PUBLIC
-	lea	rax,QWORD PTR[$L$opts]
-	mov	rdx,QWORD PTR[OPENSSL_ia32cap_P]
-	mov	edx,DWORD PTR[rdx]
+RC4_options:
+	lea	rax,[$L$opts]
+	mov	rdx,QWORD[OPENSSL_ia32cap_P]
+	mov	edx,DWORD[rdx]
 	bt	edx,20
-	jc	$L$8xchar
+	jc	NEAR $L$8xchar
 	bt	edx,30
-	jnc	$L$done
+	jnc	NEAR $L$done
 	add	rax,25
 	DB	0F3h,0C3h		;repret
-$L$8xchar::
+$L$8xchar:
 	add	rax,12
-$L$done::
+$L$done:
 	DB	0F3h,0C3h		;repret
 ALIGN	64
-$L$opts::
+$L$opts:
 DB	114,99,52,40,56,120,44,105,110,116,41,0
 DB	114,99,52,40,56,120,44,99,104,97,114,41,0
 DB	114,99,52,40,49,54,120,44,105,110,116,41,0
@@ -645,11 +647,11 @@
 DB	112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
 DB	62,0
 ALIGN	64
-RC4_options	ENDP
-EXTERN	__imp_RtlVirtualUnwind:NEAR
+
+EXTERN	__imp_RtlVirtualUnwind
 
 ALIGN	16
-stream_se_handler	PROC PRIVATE
+stream_se_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -661,41 +663,41 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[120+r8]
-	mov	rbx,QWORD PTR[248+r8]
+	mov	rax,QWORD[120+r8]
+	mov	rbx,QWORD[248+r8]
 
-	lea	r10,QWORD PTR[$L$prologue]
+	lea	r10,[$L$prologue]
 	cmp	rbx,r10
-	jb	$L$in_prologue
+	jb	NEAR $L$in_prologue
 
-	mov	rax,QWORD PTR[152+r8]
+	mov	rax,QWORD[152+r8]
 
-	lea	r10,QWORD PTR[$L$epilogue]
+	lea	r10,[$L$epilogue]
 	cmp	rbx,r10
-	jae	$L$in_prologue
+	jae	NEAR $L$in_prologue
 
-	lea	rax,QWORD PTR[24+rax]
+	lea	rax,[24+rax]
 
-	mov	rbx,QWORD PTR[((-8))+rax]
-	mov	r12,QWORD PTR[((-16))+rax]
-	mov	r13,QWORD PTR[((-24))+rax]
-	mov	QWORD PTR[144+r8],rbx
-	mov	QWORD PTR[216+r8],r12
-	mov	QWORD PTR[224+r8],r13
+	mov	rbx,QWORD[((-8))+rax]
+	mov	r12,QWORD[((-16))+rax]
+	mov	r13,QWORD[((-24))+rax]
+	mov	QWORD[144+r8],rbx
+	mov	QWORD[216+r8],r12
+	mov	QWORD[224+r8],r13
 
-$L$in_prologue::
-	mov	rdi,QWORD PTR[8+rax]
-	mov	rsi,QWORD PTR[16+rax]
-	mov	QWORD PTR[152+r8],rax
-	mov	QWORD PTR[168+r8],rsi
-	mov	QWORD PTR[176+r8],rdi
+$L$in_prologue:
+	mov	rdi,QWORD[8+rax]
+	mov	rsi,QWORD[16+rax]
+	mov	QWORD[152+r8],rax
+	mov	QWORD[168+r8],rsi
+	mov	QWORD[176+r8],rdi
 
-	jmp	$L$common_seh_exit
-stream_se_handler	ENDP
+	jmp	NEAR $L$common_seh_exit
+
 
 
 ALIGN	16
-key_se_handler	PROC PRIVATE
+key_se_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -707,32 +709,32 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[152+r8]
-	mov	rdi,QWORD PTR[8+rax]
-	mov	rsi,QWORD PTR[16+rax]
-	mov	QWORD PTR[168+r8],rsi
-	mov	QWORD PTR[176+r8],rdi
+	mov	rax,QWORD[152+r8]
+	mov	rdi,QWORD[8+rax]
+	mov	rsi,QWORD[16+rax]
+	mov	QWORD[168+r8],rsi
+	mov	QWORD[176+r8],rdi
 
-$L$common_seh_exit::
+$L$common_seh_exit:
 
-	mov	rdi,QWORD PTR[40+r9]
+	mov	rdi,QWORD[40+r9]
 	mov	rsi,r8
 	mov	ecx,154
-	DD	0a548f3fch
+	DD	0xa548f3fc
 
 	mov	rsi,r9
 	xor	rcx,rcx
-	mov	rdx,QWORD PTR[8+rsi]
-	mov	r8,QWORD PTR[rsi]
-	mov	r9,QWORD PTR[16+rsi]
-	mov	r10,QWORD PTR[40+rsi]
-	lea	r11,QWORD PTR[56+rsi]
-	lea	r12,QWORD PTR[24+rsi]
-	mov	QWORD PTR[32+rsp],r10
-	mov	QWORD PTR[40+rsp],r11
-	mov	QWORD PTR[48+rsp],r12
-	mov	QWORD PTR[56+rsp],rcx
-	call	QWORD PTR[__imp_RtlVirtualUnwind]
+	mov	rdx,QWORD[8+rsi]
+	mov	r8,QWORD[rsi]
+	mov	r9,QWORD[16+rsi]
+	mov	r10,QWORD[40+rsi]
+	lea	r11,[56+rsi]
+	lea	r12,[24+rsi]
+	mov	QWORD[32+rsp],r10
+	mov	QWORD[40+rsp],r11
+	mov	QWORD[48+rsp],r12
+	mov	QWORD[56+rsp],rcx
+	call	QWORD[__imp_RtlVirtualUnwind]
 
 	mov	eax,1
 	add	rsp,64
@@ -746,28 +748,23 @@
 	pop	rdi
 	pop	rsi
 	DB	0F3h,0C3h		;repret
-key_se_handler	ENDP
 
-.text$	ENDS
-.pdata	SEGMENT READONLY ALIGN(4)
+
+section	.pdata rdata align=4
 ALIGN	4
-	DD	imagerel $L$SEH_begin_asm_RC4
-	DD	imagerel $L$SEH_end_asm_RC4
-	DD	imagerel $L$SEH_info_asm_RC4
+	DD	$L$SEH_begin_asm_RC4 wrt ..imagebase
+	DD	$L$SEH_end_asm_RC4 wrt ..imagebase
+	DD	$L$SEH_info_asm_RC4 wrt ..imagebase
 
-	DD	imagerel $L$SEH_begin_asm_RC4_set_key
-	DD	imagerel $L$SEH_end_asm_RC4_set_key
-	DD	imagerel $L$SEH_info_asm_RC4_set_key
+	DD	$L$SEH_begin_asm_RC4_set_key wrt ..imagebase
+	DD	$L$SEH_end_asm_RC4_set_key wrt ..imagebase
+	DD	$L$SEH_info_asm_RC4_set_key wrt ..imagebase
 
-.pdata	ENDS
-.xdata	SEGMENT READONLY ALIGN(8)
+section	.xdata rdata align=8
 ALIGN	8
-$L$SEH_info_asm_RC4::
+$L$SEH_info_asm_RC4:
 DB	9,0,0,0
-	DD	imagerel stream_se_handler
-$L$SEH_info_asm_RC4_set_key::
+	DD	stream_se_handler wrt ..imagebase
+$L$SEH_info_asm_RC4_set_key:
 DB	9,0,0,0
-	DD	imagerel key_se_handler
-
-.xdata	ENDS
-END
+	DD	key_se_handler wrt ..imagebase
diff --git a/third_party/boringssl/win-x86_64/crypto/sha/sha1-x86_64.asm b/third_party/boringssl/win-x86_64/crypto/sha/sha1-x86_64.asm
index ecda6dc..0f5361a 100644
--- a/third_party/boringssl/win-x86_64/crypto/sha/sha1-x86_64.asm
+++ b/third_party/boringssl/win-x86_64/crypto/sha/sha1-x86_64.asm
@@ -1,29 +1,33 @@
-OPTION	DOTNAME
-.text$	SEGMENT ALIGN(256) 'CODE'
-EXTERN	OPENSSL_ia32cap_P:NEAR
+default	rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section	.text code align=64
 
-PUBLIC	sha1_block_data_order
+EXTERN	OPENSSL_ia32cap_P
+
+global	sha1_block_data_order
 
 ALIGN	16
-sha1_block_data_order	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+sha1_block_data_order:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_sha1_block_data_order::
+$L$SEH_begin_sha1_block_data_order:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 
 
-	mov	r9d,DWORD PTR[((OPENSSL_ia32cap_P+0))]
-	mov	r8d,DWORD PTR[((OPENSSL_ia32cap_P+4))]
-	mov	r10d,DWORD PTR[((OPENSSL_ia32cap_P+8))]
+	mov	r9d,DWORD[((OPENSSL_ia32cap_P+0))]
+	mov	r8d,DWORD[((OPENSSL_ia32cap_P+4))]
+	mov	r10d,DWORD[((OPENSSL_ia32cap_P+8))]
 	test	r8d,512
-	jz	$L$ialu
-	jmp	_ssse3_shortcut
+	jz	NEAR $L$ialu
+	jmp	NEAR _ssse3_shortcut
 
 ALIGN	16
-$L$ialu::
+$L$ialu:
 	mov	rax,rsp
 	push	rbx
 	push	rbp
@@ -35,579 +39,579 @@
 	mov	r9,rsi
 	and	rsp,-64
 	mov	r10,rdx
-	mov	QWORD PTR[64+rsp],rax
-$L$prologue::
+	mov	QWORD[64+rsp],rax
+$L$prologue:
 
-	mov	esi,DWORD PTR[r8]
-	mov	edi,DWORD PTR[4+r8]
-	mov	r11d,DWORD PTR[8+r8]
-	mov	r12d,DWORD PTR[12+r8]
-	mov	r13d,DWORD PTR[16+r8]
-	jmp	$L$loop
+	mov	esi,DWORD[r8]
+	mov	edi,DWORD[4+r8]
+	mov	r11d,DWORD[8+r8]
+	mov	r12d,DWORD[12+r8]
+	mov	r13d,DWORD[16+r8]
+	jmp	NEAR $L$loop
 
 ALIGN	16
-$L$loop::
-	mov	edx,DWORD PTR[r9]
+$L$loop:
+	mov	edx,DWORD[r9]
 	bswap	edx
-	mov	ebp,DWORD PTR[4+r9]
+	mov	ebp,DWORD[4+r9]
 	mov	eax,r12d
-	mov	DWORD PTR[rsp],edx
+	mov	DWORD[rsp],edx
 	mov	ecx,esi
 	bswap	ebp
 	xor	eax,r11d
 	rol	ecx,5
 	and	eax,edi
-	lea	r13d,DWORD PTR[1518500249+r13*1+rdx]
+	lea	r13d,[1518500249+r13*1+rdx]
 	add	r13d,ecx
 	xor	eax,r12d
 	rol	edi,30
 	add	r13d,eax
-	mov	r14d,DWORD PTR[8+r9]
+	mov	r14d,DWORD[8+r9]
 	mov	eax,r11d
-	mov	DWORD PTR[4+rsp],ebp
+	mov	DWORD[4+rsp],ebp
 	mov	ecx,r13d
 	bswap	r14d
 	xor	eax,edi
 	rol	ecx,5
 	and	eax,esi
-	lea	r12d,DWORD PTR[1518500249+r12*1+rbp]
+	lea	r12d,[1518500249+r12*1+rbp]
 	add	r12d,ecx
 	xor	eax,r11d
 	rol	esi,30
 	add	r12d,eax
-	mov	edx,DWORD PTR[12+r9]
+	mov	edx,DWORD[12+r9]
 	mov	eax,edi
-	mov	DWORD PTR[8+rsp],r14d
+	mov	DWORD[8+rsp],r14d
 	mov	ecx,r12d
 	bswap	edx
 	xor	eax,esi
 	rol	ecx,5
 	and	eax,r13d
-	lea	r11d,DWORD PTR[1518500249+r11*1+r14]
+	lea	r11d,[1518500249+r11*1+r14]
 	add	r11d,ecx
 	xor	eax,edi
 	rol	r13d,30
 	add	r11d,eax
-	mov	ebp,DWORD PTR[16+r9]
+	mov	ebp,DWORD[16+r9]
 	mov	eax,esi
-	mov	DWORD PTR[12+rsp],edx
+	mov	DWORD[12+rsp],edx
 	mov	ecx,r11d
 	bswap	ebp
 	xor	eax,r13d
 	rol	ecx,5
 	and	eax,r12d
-	lea	edi,DWORD PTR[1518500249+rdi*1+rdx]
+	lea	edi,[1518500249+rdi*1+rdx]
 	add	edi,ecx
 	xor	eax,esi
 	rol	r12d,30
 	add	edi,eax
-	mov	r14d,DWORD PTR[20+r9]
+	mov	r14d,DWORD[20+r9]
 	mov	eax,r13d
-	mov	DWORD PTR[16+rsp],ebp
+	mov	DWORD[16+rsp],ebp
 	mov	ecx,edi
 	bswap	r14d
 	xor	eax,r12d
 	rol	ecx,5
 	and	eax,r11d
-	lea	esi,DWORD PTR[1518500249+rsi*1+rbp]
+	lea	esi,[1518500249+rsi*1+rbp]
 	add	esi,ecx
 	xor	eax,r13d
 	rol	r11d,30
 	add	esi,eax
-	mov	edx,DWORD PTR[24+r9]
+	mov	edx,DWORD[24+r9]
 	mov	eax,r12d
-	mov	DWORD PTR[20+rsp],r14d
+	mov	DWORD[20+rsp],r14d
 	mov	ecx,esi
 	bswap	edx
 	xor	eax,r11d
 	rol	ecx,5
 	and	eax,edi
-	lea	r13d,DWORD PTR[1518500249+r13*1+r14]
+	lea	r13d,[1518500249+r13*1+r14]
 	add	r13d,ecx
 	xor	eax,r12d
 	rol	edi,30
 	add	r13d,eax
-	mov	ebp,DWORD PTR[28+r9]
+	mov	ebp,DWORD[28+r9]
 	mov	eax,r11d
-	mov	DWORD PTR[24+rsp],edx
+	mov	DWORD[24+rsp],edx
 	mov	ecx,r13d
 	bswap	ebp
 	xor	eax,edi
 	rol	ecx,5
 	and	eax,esi
-	lea	r12d,DWORD PTR[1518500249+r12*1+rdx]
+	lea	r12d,[1518500249+r12*1+rdx]
 	add	r12d,ecx
 	xor	eax,r11d
 	rol	esi,30
 	add	r12d,eax
-	mov	r14d,DWORD PTR[32+r9]
+	mov	r14d,DWORD[32+r9]
 	mov	eax,edi
-	mov	DWORD PTR[28+rsp],ebp
+	mov	DWORD[28+rsp],ebp
 	mov	ecx,r12d
 	bswap	r14d
 	xor	eax,esi
 	rol	ecx,5
 	and	eax,r13d
-	lea	r11d,DWORD PTR[1518500249+r11*1+rbp]
+	lea	r11d,[1518500249+r11*1+rbp]
 	add	r11d,ecx
 	xor	eax,edi
 	rol	r13d,30
 	add	r11d,eax
-	mov	edx,DWORD PTR[36+r9]
+	mov	edx,DWORD[36+r9]
 	mov	eax,esi
-	mov	DWORD PTR[32+rsp],r14d
+	mov	DWORD[32+rsp],r14d
 	mov	ecx,r11d
 	bswap	edx
 	xor	eax,r13d
 	rol	ecx,5
 	and	eax,r12d
-	lea	edi,DWORD PTR[1518500249+rdi*1+r14]
+	lea	edi,[1518500249+rdi*1+r14]
 	add	edi,ecx
 	xor	eax,esi
 	rol	r12d,30
 	add	edi,eax
-	mov	ebp,DWORD PTR[40+r9]
+	mov	ebp,DWORD[40+r9]
 	mov	eax,r13d
-	mov	DWORD PTR[36+rsp],edx
+	mov	DWORD[36+rsp],edx
 	mov	ecx,edi
 	bswap	ebp
 	xor	eax,r12d
 	rol	ecx,5
 	and	eax,r11d
-	lea	esi,DWORD PTR[1518500249+rsi*1+rdx]
+	lea	esi,[1518500249+rsi*1+rdx]
 	add	esi,ecx
 	xor	eax,r13d
 	rol	r11d,30
 	add	esi,eax
-	mov	r14d,DWORD PTR[44+r9]
+	mov	r14d,DWORD[44+r9]
 	mov	eax,r12d
-	mov	DWORD PTR[40+rsp],ebp
+	mov	DWORD[40+rsp],ebp
 	mov	ecx,esi
 	bswap	r14d
 	xor	eax,r11d
 	rol	ecx,5
 	and	eax,edi
-	lea	r13d,DWORD PTR[1518500249+r13*1+rbp]
+	lea	r13d,[1518500249+r13*1+rbp]
 	add	r13d,ecx
 	xor	eax,r12d
 	rol	edi,30
 	add	r13d,eax
-	mov	edx,DWORD PTR[48+r9]
+	mov	edx,DWORD[48+r9]
 	mov	eax,r11d
-	mov	DWORD PTR[44+rsp],r14d
+	mov	DWORD[44+rsp],r14d
 	mov	ecx,r13d
 	bswap	edx
 	xor	eax,edi
 	rol	ecx,5
 	and	eax,esi
-	lea	r12d,DWORD PTR[1518500249+r12*1+r14]
+	lea	r12d,[1518500249+r12*1+r14]
 	add	r12d,ecx
 	xor	eax,r11d
 	rol	esi,30
 	add	r12d,eax
-	mov	ebp,DWORD PTR[52+r9]
+	mov	ebp,DWORD[52+r9]
 	mov	eax,edi
-	mov	DWORD PTR[48+rsp],edx
+	mov	DWORD[48+rsp],edx
 	mov	ecx,r12d
 	bswap	ebp
 	xor	eax,esi
 	rol	ecx,5
 	and	eax,r13d
-	lea	r11d,DWORD PTR[1518500249+r11*1+rdx]
+	lea	r11d,[1518500249+r11*1+rdx]
 	add	r11d,ecx
 	xor	eax,edi
 	rol	r13d,30
 	add	r11d,eax
-	mov	r14d,DWORD PTR[56+r9]
+	mov	r14d,DWORD[56+r9]
 	mov	eax,esi
-	mov	DWORD PTR[52+rsp],ebp
+	mov	DWORD[52+rsp],ebp
 	mov	ecx,r11d
 	bswap	r14d
 	xor	eax,r13d
 	rol	ecx,5
 	and	eax,r12d
-	lea	edi,DWORD PTR[1518500249+rdi*1+rbp]
+	lea	edi,[1518500249+rdi*1+rbp]
 	add	edi,ecx
 	xor	eax,esi
 	rol	r12d,30
 	add	edi,eax
-	mov	edx,DWORD PTR[60+r9]
+	mov	edx,DWORD[60+r9]
 	mov	eax,r13d
-	mov	DWORD PTR[56+rsp],r14d
+	mov	DWORD[56+rsp],r14d
 	mov	ecx,edi
 	bswap	edx
 	xor	eax,r12d
 	rol	ecx,5
 	and	eax,r11d
-	lea	esi,DWORD PTR[1518500249+rsi*1+r14]
+	lea	esi,[1518500249+rsi*1+r14]
 	add	esi,ecx
 	xor	eax,r13d
 	rol	r11d,30
 	add	esi,eax
-	xor	ebp,DWORD PTR[rsp]
+	xor	ebp,DWORD[rsp]
 	mov	eax,r12d
-	mov	DWORD PTR[60+rsp],edx
+	mov	DWORD[60+rsp],edx
 	mov	ecx,esi
-	xor	ebp,DWORD PTR[8+rsp]
+	xor	ebp,DWORD[8+rsp]
 	xor	eax,r11d
 	rol	ecx,5
-	xor	ebp,DWORD PTR[32+rsp]
+	xor	ebp,DWORD[32+rsp]
 	and	eax,edi
-	lea	r13d,DWORD PTR[1518500249+r13*1+rdx]
+	lea	r13d,[1518500249+r13*1+rdx]
 	rol	edi,30
 	xor	eax,r12d
 	add	r13d,ecx
 	rol	ebp,1
 	add	r13d,eax
-	xor	r14d,DWORD PTR[4+rsp]
+	xor	r14d,DWORD[4+rsp]
 	mov	eax,r11d
-	mov	DWORD PTR[rsp],ebp
+	mov	DWORD[rsp],ebp
 	mov	ecx,r13d
-	xor	r14d,DWORD PTR[12+rsp]
+	xor	r14d,DWORD[12+rsp]
 	xor	eax,edi
 	rol	ecx,5
-	xor	r14d,DWORD PTR[36+rsp]
+	xor	r14d,DWORD[36+rsp]
 	and	eax,esi
-	lea	r12d,DWORD PTR[1518500249+r12*1+rbp]
+	lea	r12d,[1518500249+r12*1+rbp]
 	rol	esi,30
 	xor	eax,r11d
 	add	r12d,ecx
 	rol	r14d,1
 	add	r12d,eax
-	xor	edx,DWORD PTR[8+rsp]
+	xor	edx,DWORD[8+rsp]
 	mov	eax,edi
-	mov	DWORD PTR[4+rsp],r14d
+	mov	DWORD[4+rsp],r14d
 	mov	ecx,r12d
-	xor	edx,DWORD PTR[16+rsp]
+	xor	edx,DWORD[16+rsp]
 	xor	eax,esi
 	rol	ecx,5
-	xor	edx,DWORD PTR[40+rsp]
+	xor	edx,DWORD[40+rsp]
 	and	eax,r13d
-	lea	r11d,DWORD PTR[1518500249+r11*1+r14]
+	lea	r11d,[1518500249+r11*1+r14]
 	rol	r13d,30
 	xor	eax,edi
 	add	r11d,ecx
 	rol	edx,1
 	add	r11d,eax
-	xor	ebp,DWORD PTR[12+rsp]
+	xor	ebp,DWORD[12+rsp]
 	mov	eax,esi
-	mov	DWORD PTR[8+rsp],edx
+	mov	DWORD[8+rsp],edx
 	mov	ecx,r11d
-	xor	ebp,DWORD PTR[20+rsp]
+	xor	ebp,DWORD[20+rsp]
 	xor	eax,r13d
 	rol	ecx,5
-	xor	ebp,DWORD PTR[44+rsp]
+	xor	ebp,DWORD[44+rsp]
 	and	eax,r12d
-	lea	edi,DWORD PTR[1518500249+rdi*1+rdx]
+	lea	edi,[1518500249+rdi*1+rdx]
 	rol	r12d,30
 	xor	eax,esi
 	add	edi,ecx
 	rol	ebp,1
 	add	edi,eax
-	xor	r14d,DWORD PTR[16+rsp]
+	xor	r14d,DWORD[16+rsp]
 	mov	eax,r13d
-	mov	DWORD PTR[12+rsp],ebp
+	mov	DWORD[12+rsp],ebp
 	mov	ecx,edi
-	xor	r14d,DWORD PTR[24+rsp]
+	xor	r14d,DWORD[24+rsp]
 	xor	eax,r12d
 	rol	ecx,5
-	xor	r14d,DWORD PTR[48+rsp]
+	xor	r14d,DWORD[48+rsp]
 	and	eax,r11d
-	lea	esi,DWORD PTR[1518500249+rsi*1+rbp]
+	lea	esi,[1518500249+rsi*1+rbp]
 	rol	r11d,30
 	xor	eax,r13d
 	add	esi,ecx
 	rol	r14d,1
 	add	esi,eax
-	xor	edx,DWORD PTR[20+rsp]
+	xor	edx,DWORD[20+rsp]
 	mov	eax,edi
-	mov	DWORD PTR[16+rsp],r14d
+	mov	DWORD[16+rsp],r14d
 	mov	ecx,esi
-	xor	edx,DWORD PTR[28+rsp]
+	xor	edx,DWORD[28+rsp]
 	xor	eax,r12d
 	rol	ecx,5
-	xor	edx,DWORD PTR[52+rsp]
-	lea	r13d,DWORD PTR[1859775393+r13*1+r14]
+	xor	edx,DWORD[52+rsp]
+	lea	r13d,[1859775393+r13*1+r14]
 	xor	eax,r11d
 	add	r13d,ecx
 	rol	edi,30
 	add	r13d,eax
 	rol	edx,1
-	xor	ebp,DWORD PTR[24+rsp]
+	xor	ebp,DWORD[24+rsp]
 	mov	eax,esi
-	mov	DWORD PTR[20+rsp],edx
+	mov	DWORD[20+rsp],edx
 	mov	ecx,r13d
-	xor	ebp,DWORD PTR[32+rsp]
+	xor	ebp,DWORD[32+rsp]
 	xor	eax,r11d
 	rol	ecx,5
-	xor	ebp,DWORD PTR[56+rsp]
-	lea	r12d,DWORD PTR[1859775393+r12*1+rdx]
+	xor	ebp,DWORD[56+rsp]
+	lea	r12d,[1859775393+r12*1+rdx]
 	xor	eax,edi
 	add	r12d,ecx
 	rol	esi,30
 	add	r12d,eax
 	rol	ebp,1
-	xor	r14d,DWORD PTR[28+rsp]
+	xor	r14d,DWORD[28+rsp]
 	mov	eax,r13d
-	mov	DWORD PTR[24+rsp],ebp
+	mov	DWORD[24+rsp],ebp
 	mov	ecx,r12d
-	xor	r14d,DWORD PTR[36+rsp]
+	xor	r14d,DWORD[36+rsp]
 	xor	eax,edi
 	rol	ecx,5
-	xor	r14d,DWORD PTR[60+rsp]
-	lea	r11d,DWORD PTR[1859775393+r11*1+rbp]
+	xor	r14d,DWORD[60+rsp]
+	lea	r11d,[1859775393+r11*1+rbp]
 	xor	eax,esi
 	add	r11d,ecx
 	rol	r13d,30
 	add	r11d,eax
 	rol	r14d,1
-	xor	edx,DWORD PTR[32+rsp]
+	xor	edx,DWORD[32+rsp]
 	mov	eax,r12d
-	mov	DWORD PTR[28+rsp],r14d
+	mov	DWORD[28+rsp],r14d
 	mov	ecx,r11d
-	xor	edx,DWORD PTR[40+rsp]
+	xor	edx,DWORD[40+rsp]
 	xor	eax,esi
 	rol	ecx,5
-	xor	edx,DWORD PTR[rsp]
-	lea	edi,DWORD PTR[1859775393+rdi*1+r14]
+	xor	edx,DWORD[rsp]
+	lea	edi,[1859775393+rdi*1+r14]
 	xor	eax,r13d
 	add	edi,ecx
 	rol	r12d,30
 	add	edi,eax
 	rol	edx,1
-	xor	ebp,DWORD PTR[36+rsp]
+	xor	ebp,DWORD[36+rsp]
 	mov	eax,r11d
-	mov	DWORD PTR[32+rsp],edx
+	mov	DWORD[32+rsp],edx
 	mov	ecx,edi
-	xor	ebp,DWORD PTR[44+rsp]
+	xor	ebp,DWORD[44+rsp]
 	xor	eax,r13d
 	rol	ecx,5
-	xor	ebp,DWORD PTR[4+rsp]
-	lea	esi,DWORD PTR[1859775393+rsi*1+rdx]
+	xor	ebp,DWORD[4+rsp]
+	lea	esi,[1859775393+rsi*1+rdx]
 	xor	eax,r12d
 	add	esi,ecx
 	rol	r11d,30
 	add	esi,eax
 	rol	ebp,1
-	xor	r14d,DWORD PTR[40+rsp]
+	xor	r14d,DWORD[40+rsp]
 	mov	eax,edi
-	mov	DWORD PTR[36+rsp],ebp
+	mov	DWORD[36+rsp],ebp
 	mov	ecx,esi
-	xor	r14d,DWORD PTR[48+rsp]
+	xor	r14d,DWORD[48+rsp]
 	xor	eax,r12d
 	rol	ecx,5
-	xor	r14d,DWORD PTR[8+rsp]
-	lea	r13d,DWORD PTR[1859775393+r13*1+rbp]
+	xor	r14d,DWORD[8+rsp]
+	lea	r13d,[1859775393+r13*1+rbp]
 	xor	eax,r11d
 	add	r13d,ecx
 	rol	edi,30
 	add	r13d,eax
 	rol	r14d,1
-	xor	edx,DWORD PTR[44+rsp]
+	xor	edx,DWORD[44+rsp]
 	mov	eax,esi
-	mov	DWORD PTR[40+rsp],r14d
+	mov	DWORD[40+rsp],r14d
 	mov	ecx,r13d
-	xor	edx,DWORD PTR[52+rsp]
+	xor	edx,DWORD[52+rsp]
 	xor	eax,r11d
 	rol	ecx,5
-	xor	edx,DWORD PTR[12+rsp]
-	lea	r12d,DWORD PTR[1859775393+r12*1+r14]
+	xor	edx,DWORD[12+rsp]
+	lea	r12d,[1859775393+r12*1+r14]
 	xor	eax,edi
 	add	r12d,ecx
 	rol	esi,30
 	add	r12d,eax
 	rol	edx,1
-	xor	ebp,DWORD PTR[48+rsp]
+	xor	ebp,DWORD[48+rsp]
 	mov	eax,r13d
-	mov	DWORD PTR[44+rsp],edx
+	mov	DWORD[44+rsp],edx
 	mov	ecx,r12d
-	xor	ebp,DWORD PTR[56+rsp]
+	xor	ebp,DWORD[56+rsp]
 	xor	eax,edi
 	rol	ecx,5
-	xor	ebp,DWORD PTR[16+rsp]
-	lea	r11d,DWORD PTR[1859775393+r11*1+rdx]
+	xor	ebp,DWORD[16+rsp]
+	lea	r11d,[1859775393+r11*1+rdx]
 	xor	eax,esi
 	add	r11d,ecx
 	rol	r13d,30
 	add	r11d,eax
 	rol	ebp,1
-	xor	r14d,DWORD PTR[52+rsp]
+	xor	r14d,DWORD[52+rsp]
 	mov	eax,r12d
-	mov	DWORD PTR[48+rsp],ebp
+	mov	DWORD[48+rsp],ebp
 	mov	ecx,r11d
-	xor	r14d,DWORD PTR[60+rsp]
+	xor	r14d,DWORD[60+rsp]
 	xor	eax,esi
 	rol	ecx,5
-	xor	r14d,DWORD PTR[20+rsp]
-	lea	edi,DWORD PTR[1859775393+rdi*1+rbp]
+	xor	r14d,DWORD[20+rsp]
+	lea	edi,[1859775393+rdi*1+rbp]
 	xor	eax,r13d
 	add	edi,ecx
 	rol	r12d,30
 	add	edi,eax
 	rol	r14d,1
-	xor	edx,DWORD PTR[56+rsp]
+	xor	edx,DWORD[56+rsp]
 	mov	eax,r11d
-	mov	DWORD PTR[52+rsp],r14d
+	mov	DWORD[52+rsp],r14d
 	mov	ecx,edi
-	xor	edx,DWORD PTR[rsp]
+	xor	edx,DWORD[rsp]
 	xor	eax,r13d
 	rol	ecx,5
-	xor	edx,DWORD PTR[24+rsp]
-	lea	esi,DWORD PTR[1859775393+rsi*1+r14]
+	xor	edx,DWORD[24+rsp]
+	lea	esi,[1859775393+rsi*1+r14]
 	xor	eax,r12d
 	add	esi,ecx
 	rol	r11d,30
 	add	esi,eax
 	rol	edx,1
-	xor	ebp,DWORD PTR[60+rsp]
+	xor	ebp,DWORD[60+rsp]
 	mov	eax,edi
-	mov	DWORD PTR[56+rsp],edx
+	mov	DWORD[56+rsp],edx
 	mov	ecx,esi
-	xor	ebp,DWORD PTR[4+rsp]
+	xor	ebp,DWORD[4+rsp]
 	xor	eax,r12d
 	rol	ecx,5
-	xor	ebp,DWORD PTR[28+rsp]
-	lea	r13d,DWORD PTR[1859775393+r13*1+rdx]
+	xor	ebp,DWORD[28+rsp]
+	lea	r13d,[1859775393+r13*1+rdx]
 	xor	eax,r11d
 	add	r13d,ecx
 	rol	edi,30
 	add	r13d,eax
 	rol	ebp,1
-	xor	r14d,DWORD PTR[rsp]
+	xor	r14d,DWORD[rsp]
 	mov	eax,esi
-	mov	DWORD PTR[60+rsp],ebp
+	mov	DWORD[60+rsp],ebp
 	mov	ecx,r13d
-	xor	r14d,DWORD PTR[8+rsp]
+	xor	r14d,DWORD[8+rsp]
 	xor	eax,r11d
 	rol	ecx,5
-	xor	r14d,DWORD PTR[32+rsp]
-	lea	r12d,DWORD PTR[1859775393+r12*1+rbp]
+	xor	r14d,DWORD[32+rsp]
+	lea	r12d,[1859775393+r12*1+rbp]
 	xor	eax,edi
 	add	r12d,ecx
 	rol	esi,30
 	add	r12d,eax
 	rol	r14d,1
-	xor	edx,DWORD PTR[4+rsp]
+	xor	edx,DWORD[4+rsp]
 	mov	eax,r13d
-	mov	DWORD PTR[rsp],r14d
+	mov	DWORD[rsp],r14d
 	mov	ecx,r12d
-	xor	edx,DWORD PTR[12+rsp]
+	xor	edx,DWORD[12+rsp]
 	xor	eax,edi
 	rol	ecx,5
-	xor	edx,DWORD PTR[36+rsp]
-	lea	r11d,DWORD PTR[1859775393+r11*1+r14]
+	xor	edx,DWORD[36+rsp]
+	lea	r11d,[1859775393+r11*1+r14]
 	xor	eax,esi
 	add	r11d,ecx
 	rol	r13d,30
 	add	r11d,eax
 	rol	edx,1
-	xor	ebp,DWORD PTR[8+rsp]
+	xor	ebp,DWORD[8+rsp]
 	mov	eax,r12d
-	mov	DWORD PTR[4+rsp],edx
+	mov	DWORD[4+rsp],edx
 	mov	ecx,r11d
-	xor	ebp,DWORD PTR[16+rsp]
+	xor	ebp,DWORD[16+rsp]
 	xor	eax,esi
 	rol	ecx,5
-	xor	ebp,DWORD PTR[40+rsp]
-	lea	edi,DWORD PTR[1859775393+rdi*1+rdx]
+	xor	ebp,DWORD[40+rsp]
+	lea	edi,[1859775393+rdi*1+rdx]
 	xor	eax,r13d
 	add	edi,ecx
 	rol	r12d,30
 	add	edi,eax
 	rol	ebp,1
-	xor	r14d,DWORD PTR[12+rsp]
+	xor	r14d,DWORD[12+rsp]
 	mov	eax,r11d
-	mov	DWORD PTR[8+rsp],ebp
+	mov	DWORD[8+rsp],ebp
 	mov	ecx,edi
-	xor	r14d,DWORD PTR[20+rsp]
+	xor	r14d,DWORD[20+rsp]
 	xor	eax,r13d
 	rol	ecx,5
-	xor	r14d,DWORD PTR[44+rsp]
-	lea	esi,DWORD PTR[1859775393+rsi*1+rbp]
+	xor	r14d,DWORD[44+rsp]
+	lea	esi,[1859775393+rsi*1+rbp]
 	xor	eax,r12d
 	add	esi,ecx
 	rol	r11d,30
 	add	esi,eax
 	rol	r14d,1
-	xor	edx,DWORD PTR[16+rsp]
+	xor	edx,DWORD[16+rsp]
 	mov	eax,edi
-	mov	DWORD PTR[12+rsp],r14d
+	mov	DWORD[12+rsp],r14d
 	mov	ecx,esi
-	xor	edx,DWORD PTR[24+rsp]
+	xor	edx,DWORD[24+rsp]
 	xor	eax,r12d
 	rol	ecx,5
-	xor	edx,DWORD PTR[48+rsp]
-	lea	r13d,DWORD PTR[1859775393+r13*1+r14]
+	xor	edx,DWORD[48+rsp]
+	lea	r13d,[1859775393+r13*1+r14]
 	xor	eax,r11d
 	add	r13d,ecx
 	rol	edi,30
 	add	r13d,eax
 	rol	edx,1
-	xor	ebp,DWORD PTR[20+rsp]
+	xor	ebp,DWORD[20+rsp]
 	mov	eax,esi
-	mov	DWORD PTR[16+rsp],edx
+	mov	DWORD[16+rsp],edx
 	mov	ecx,r13d
-	xor	ebp,DWORD PTR[28+rsp]
+	xor	ebp,DWORD[28+rsp]
 	xor	eax,r11d
 	rol	ecx,5
-	xor	ebp,DWORD PTR[52+rsp]
-	lea	r12d,DWORD PTR[1859775393+r12*1+rdx]
+	xor	ebp,DWORD[52+rsp]
+	lea	r12d,[1859775393+r12*1+rdx]
 	xor	eax,edi
 	add	r12d,ecx
 	rol	esi,30
 	add	r12d,eax
 	rol	ebp,1
-	xor	r14d,DWORD PTR[24+rsp]
+	xor	r14d,DWORD[24+rsp]
 	mov	eax,r13d
-	mov	DWORD PTR[20+rsp],ebp
+	mov	DWORD[20+rsp],ebp
 	mov	ecx,r12d
-	xor	r14d,DWORD PTR[32+rsp]
+	xor	r14d,DWORD[32+rsp]
 	xor	eax,edi
 	rol	ecx,5
-	xor	r14d,DWORD PTR[56+rsp]
-	lea	r11d,DWORD PTR[1859775393+r11*1+rbp]
+	xor	r14d,DWORD[56+rsp]
+	lea	r11d,[1859775393+r11*1+rbp]
 	xor	eax,esi
 	add	r11d,ecx
 	rol	r13d,30
 	add	r11d,eax
 	rol	r14d,1
-	xor	edx,DWORD PTR[28+rsp]
+	xor	edx,DWORD[28+rsp]
 	mov	eax,r12d
-	mov	DWORD PTR[24+rsp],r14d
+	mov	DWORD[24+rsp],r14d
 	mov	ecx,r11d
-	xor	edx,DWORD PTR[36+rsp]
+	xor	edx,DWORD[36+rsp]
 	xor	eax,esi
 	rol	ecx,5
-	xor	edx,DWORD PTR[60+rsp]
-	lea	edi,DWORD PTR[1859775393+rdi*1+r14]
+	xor	edx,DWORD[60+rsp]
+	lea	edi,[1859775393+rdi*1+r14]
 	xor	eax,r13d
 	add	edi,ecx
 	rol	r12d,30
 	add	edi,eax
 	rol	edx,1
-	xor	ebp,DWORD PTR[32+rsp]
+	xor	ebp,DWORD[32+rsp]
 	mov	eax,r11d
-	mov	DWORD PTR[28+rsp],edx
+	mov	DWORD[28+rsp],edx
 	mov	ecx,edi
-	xor	ebp,DWORD PTR[40+rsp]
+	xor	ebp,DWORD[40+rsp]
 	xor	eax,r13d
 	rol	ecx,5
-	xor	ebp,DWORD PTR[rsp]
-	lea	esi,DWORD PTR[1859775393+rsi*1+rdx]
+	xor	ebp,DWORD[rsp]
+	lea	esi,[1859775393+rsi*1+rdx]
 	xor	eax,r12d
 	add	esi,ecx
 	rol	r11d,30
 	add	esi,eax
 	rol	ebp,1
-	xor	r14d,DWORD PTR[36+rsp]
+	xor	r14d,DWORD[36+rsp]
 	mov	eax,r12d
-	mov	DWORD PTR[32+rsp],ebp
+	mov	DWORD[32+rsp],ebp
 	mov	ebx,r12d
-	xor	r14d,DWORD PTR[44+rsp]
+	xor	r14d,DWORD[44+rsp]
 	and	eax,r11d
 	mov	ecx,esi
-	xor	r14d,DWORD PTR[4+rsp]
-	lea	r13d,DWORD PTR[((-1894007588))+r13*1+rbp]
+	xor	r14d,DWORD[4+rsp]
+	lea	r13d,[((-1894007588))+r13*1+rbp]
 	xor	ebx,r11d
 	rol	ecx,5
 	add	r13d,eax
@@ -616,15 +620,15 @@
 	add	r13d,ecx
 	rol	edi,30
 	add	r13d,ebx
-	xor	edx,DWORD PTR[40+rsp]
+	xor	edx,DWORD[40+rsp]
 	mov	eax,r11d
-	mov	DWORD PTR[36+rsp],r14d
+	mov	DWORD[36+rsp],r14d
 	mov	ebx,r11d
-	xor	edx,DWORD PTR[48+rsp]
+	xor	edx,DWORD[48+rsp]
 	and	eax,edi
 	mov	ecx,r13d
-	xor	edx,DWORD PTR[8+rsp]
-	lea	r12d,DWORD PTR[((-1894007588))+r12*1+r14]
+	xor	edx,DWORD[8+rsp]
+	lea	r12d,[((-1894007588))+r12*1+r14]
 	xor	ebx,edi
 	rol	ecx,5
 	add	r12d,eax
@@ -633,15 +637,15 @@
 	add	r12d,ecx
 	rol	esi,30
 	add	r12d,ebx
-	xor	ebp,DWORD PTR[44+rsp]
+	xor	ebp,DWORD[44+rsp]
 	mov	eax,edi
-	mov	DWORD PTR[40+rsp],edx
+	mov	DWORD[40+rsp],edx
 	mov	ebx,edi
-	xor	ebp,DWORD PTR[52+rsp]
+	xor	ebp,DWORD[52+rsp]
 	and	eax,esi
 	mov	ecx,r12d
-	xor	ebp,DWORD PTR[12+rsp]
-	lea	r11d,DWORD PTR[((-1894007588))+r11*1+rdx]
+	xor	ebp,DWORD[12+rsp]
+	lea	r11d,[((-1894007588))+r11*1+rdx]
 	xor	ebx,esi
 	rol	ecx,5
 	add	r11d,eax
@@ -650,15 +654,15 @@
 	add	r11d,ecx
 	rol	r13d,30
 	add	r11d,ebx
-	xor	r14d,DWORD PTR[48+rsp]
+	xor	r14d,DWORD[48+rsp]
 	mov	eax,esi
-	mov	DWORD PTR[44+rsp],ebp
+	mov	DWORD[44+rsp],ebp
 	mov	ebx,esi
-	xor	r14d,DWORD PTR[56+rsp]
+	xor	r14d,DWORD[56+rsp]
 	and	eax,r13d
 	mov	ecx,r11d
-	xor	r14d,DWORD PTR[16+rsp]
-	lea	edi,DWORD PTR[((-1894007588))+rdi*1+rbp]
+	xor	r14d,DWORD[16+rsp]
+	lea	edi,[((-1894007588))+rdi*1+rbp]
 	xor	ebx,r13d
 	rol	ecx,5
 	add	edi,eax
@@ -667,15 +671,15 @@
 	add	edi,ecx
 	rol	r12d,30
 	add	edi,ebx
-	xor	edx,DWORD PTR[52+rsp]
+	xor	edx,DWORD[52+rsp]
 	mov	eax,r13d
-	mov	DWORD PTR[48+rsp],r14d
+	mov	DWORD[48+rsp],r14d
 	mov	ebx,r13d
-	xor	edx,DWORD PTR[60+rsp]
+	xor	edx,DWORD[60+rsp]
 	and	eax,r12d
 	mov	ecx,edi
-	xor	edx,DWORD PTR[20+rsp]
-	lea	esi,DWORD PTR[((-1894007588))+rsi*1+r14]
+	xor	edx,DWORD[20+rsp]
+	lea	esi,[((-1894007588))+rsi*1+r14]
 	xor	ebx,r12d
 	rol	ecx,5
 	add	esi,eax
@@ -684,15 +688,15 @@
 	add	esi,ecx
 	rol	r11d,30
 	add	esi,ebx
-	xor	ebp,DWORD PTR[56+rsp]
+	xor	ebp,DWORD[56+rsp]
 	mov	eax,r12d
-	mov	DWORD PTR[52+rsp],edx
+	mov	DWORD[52+rsp],edx
 	mov	ebx,r12d
-	xor	ebp,DWORD PTR[rsp]
+	xor	ebp,DWORD[rsp]
 	and	eax,r11d
 	mov	ecx,esi
-	xor	ebp,DWORD PTR[24+rsp]
-	lea	r13d,DWORD PTR[((-1894007588))+r13*1+rdx]
+	xor	ebp,DWORD[24+rsp]
+	lea	r13d,[((-1894007588))+r13*1+rdx]
 	xor	ebx,r11d
 	rol	ecx,5
 	add	r13d,eax
@@ -701,15 +705,15 @@
 	add	r13d,ecx
 	rol	edi,30
 	add	r13d,ebx
-	xor	r14d,DWORD PTR[60+rsp]
+	xor	r14d,DWORD[60+rsp]
 	mov	eax,r11d
-	mov	DWORD PTR[56+rsp],ebp
+	mov	DWORD[56+rsp],ebp
 	mov	ebx,r11d
-	xor	r14d,DWORD PTR[4+rsp]
+	xor	r14d,DWORD[4+rsp]
 	and	eax,edi
 	mov	ecx,r13d
-	xor	r14d,DWORD PTR[28+rsp]
-	lea	r12d,DWORD PTR[((-1894007588))+r12*1+rbp]
+	xor	r14d,DWORD[28+rsp]
+	lea	r12d,[((-1894007588))+r12*1+rbp]
 	xor	ebx,edi
 	rol	ecx,5
 	add	r12d,eax
@@ -718,15 +722,15 @@
 	add	r12d,ecx
 	rol	esi,30
 	add	r12d,ebx
-	xor	edx,DWORD PTR[rsp]
+	xor	edx,DWORD[rsp]
 	mov	eax,edi
-	mov	DWORD PTR[60+rsp],r14d
+	mov	DWORD[60+rsp],r14d
 	mov	ebx,edi
-	xor	edx,DWORD PTR[8+rsp]
+	xor	edx,DWORD[8+rsp]
 	and	eax,esi
 	mov	ecx,r12d
-	xor	edx,DWORD PTR[32+rsp]
-	lea	r11d,DWORD PTR[((-1894007588))+r11*1+r14]
+	xor	edx,DWORD[32+rsp]
+	lea	r11d,[((-1894007588))+r11*1+r14]
 	xor	ebx,esi
 	rol	ecx,5
 	add	r11d,eax
@@ -735,15 +739,15 @@
 	add	r11d,ecx
 	rol	r13d,30
 	add	r11d,ebx
-	xor	ebp,DWORD PTR[4+rsp]
+	xor	ebp,DWORD[4+rsp]
 	mov	eax,esi
-	mov	DWORD PTR[rsp],edx
+	mov	DWORD[rsp],edx
 	mov	ebx,esi
-	xor	ebp,DWORD PTR[12+rsp]
+	xor	ebp,DWORD[12+rsp]
 	and	eax,r13d
 	mov	ecx,r11d
-	xor	ebp,DWORD PTR[36+rsp]
-	lea	edi,DWORD PTR[((-1894007588))+rdi*1+rdx]
+	xor	ebp,DWORD[36+rsp]
+	lea	edi,[((-1894007588))+rdi*1+rdx]
 	xor	ebx,r13d
 	rol	ecx,5
 	add	edi,eax
@@ -752,15 +756,15 @@
 	add	edi,ecx
 	rol	r12d,30
 	add	edi,ebx
-	xor	r14d,DWORD PTR[8+rsp]
+	xor	r14d,DWORD[8+rsp]
 	mov	eax,r13d
-	mov	DWORD PTR[4+rsp],ebp
+	mov	DWORD[4+rsp],ebp
 	mov	ebx,r13d
-	xor	r14d,DWORD PTR[16+rsp]
+	xor	r14d,DWORD[16+rsp]
 	and	eax,r12d
 	mov	ecx,edi
-	xor	r14d,DWORD PTR[40+rsp]
-	lea	esi,DWORD PTR[((-1894007588))+rsi*1+rbp]
+	xor	r14d,DWORD[40+rsp]
+	lea	esi,[((-1894007588))+rsi*1+rbp]
 	xor	ebx,r12d
 	rol	ecx,5
 	add	esi,eax
@@ -769,15 +773,15 @@
 	add	esi,ecx
 	rol	r11d,30
 	add	esi,ebx
-	xor	edx,DWORD PTR[12+rsp]
+	xor	edx,DWORD[12+rsp]
 	mov	eax,r12d
-	mov	DWORD PTR[8+rsp],r14d
+	mov	DWORD[8+rsp],r14d
 	mov	ebx,r12d
-	xor	edx,DWORD PTR[20+rsp]
+	xor	edx,DWORD[20+rsp]
 	and	eax,r11d
 	mov	ecx,esi
-	xor	edx,DWORD PTR[44+rsp]
-	lea	r13d,DWORD PTR[((-1894007588))+r13*1+r14]
+	xor	edx,DWORD[44+rsp]
+	lea	r13d,[((-1894007588))+r13*1+r14]
 	xor	ebx,r11d
 	rol	ecx,5
 	add	r13d,eax
@@ -786,15 +790,15 @@
 	add	r13d,ecx
 	rol	edi,30
 	add	r13d,ebx
-	xor	ebp,DWORD PTR[16+rsp]
+	xor	ebp,DWORD[16+rsp]
 	mov	eax,r11d
-	mov	DWORD PTR[12+rsp],edx
+	mov	DWORD[12+rsp],edx
 	mov	ebx,r11d
-	xor	ebp,DWORD PTR[24+rsp]
+	xor	ebp,DWORD[24+rsp]
 	and	eax,edi
 	mov	ecx,r13d
-	xor	ebp,DWORD PTR[48+rsp]
-	lea	r12d,DWORD PTR[((-1894007588))+r12*1+rdx]
+	xor	ebp,DWORD[48+rsp]
+	lea	r12d,[((-1894007588))+r12*1+rdx]
 	xor	ebx,edi
 	rol	ecx,5
 	add	r12d,eax
@@ -803,15 +807,15 @@
 	add	r12d,ecx
 	rol	esi,30
 	add	r12d,ebx
-	xor	r14d,DWORD PTR[20+rsp]
+	xor	r14d,DWORD[20+rsp]
 	mov	eax,edi
-	mov	DWORD PTR[16+rsp],ebp
+	mov	DWORD[16+rsp],ebp
 	mov	ebx,edi
-	xor	r14d,DWORD PTR[28+rsp]
+	xor	r14d,DWORD[28+rsp]
 	and	eax,esi
 	mov	ecx,r12d
-	xor	r14d,DWORD PTR[52+rsp]
-	lea	r11d,DWORD PTR[((-1894007588))+r11*1+rbp]
+	xor	r14d,DWORD[52+rsp]
+	lea	r11d,[((-1894007588))+r11*1+rbp]
 	xor	ebx,esi
 	rol	ecx,5
 	add	r11d,eax
@@ -820,15 +824,15 @@
 	add	r11d,ecx
 	rol	r13d,30
 	add	r11d,ebx
-	xor	edx,DWORD PTR[24+rsp]
+	xor	edx,DWORD[24+rsp]
 	mov	eax,esi
-	mov	DWORD PTR[20+rsp],r14d
+	mov	DWORD[20+rsp],r14d
 	mov	ebx,esi
-	xor	edx,DWORD PTR[32+rsp]
+	xor	edx,DWORD[32+rsp]
 	and	eax,r13d
 	mov	ecx,r11d
-	xor	edx,DWORD PTR[56+rsp]
-	lea	edi,DWORD PTR[((-1894007588))+rdi*1+r14]
+	xor	edx,DWORD[56+rsp]
+	lea	edi,[((-1894007588))+rdi*1+r14]
 	xor	ebx,r13d
 	rol	ecx,5
 	add	edi,eax
@@ -837,15 +841,15 @@
 	add	edi,ecx
 	rol	r12d,30
 	add	edi,ebx
-	xor	ebp,DWORD PTR[28+rsp]
+	xor	ebp,DWORD[28+rsp]
 	mov	eax,r13d
-	mov	DWORD PTR[24+rsp],edx
+	mov	DWORD[24+rsp],edx
 	mov	ebx,r13d
-	xor	ebp,DWORD PTR[36+rsp]
+	xor	ebp,DWORD[36+rsp]
 	and	eax,r12d
 	mov	ecx,edi
-	xor	ebp,DWORD PTR[60+rsp]
-	lea	esi,DWORD PTR[((-1894007588))+rsi*1+rdx]
+	xor	ebp,DWORD[60+rsp]
+	lea	esi,[((-1894007588))+rsi*1+rdx]
 	xor	ebx,r12d
 	rol	ecx,5
 	add	esi,eax
@@ -854,15 +858,15 @@
 	add	esi,ecx
 	rol	r11d,30
 	add	esi,ebx
-	xor	r14d,DWORD PTR[32+rsp]
+	xor	r14d,DWORD[32+rsp]
 	mov	eax,r12d
-	mov	DWORD PTR[28+rsp],ebp
+	mov	DWORD[28+rsp],ebp
 	mov	ebx,r12d
-	xor	r14d,DWORD PTR[40+rsp]
+	xor	r14d,DWORD[40+rsp]
 	and	eax,r11d
 	mov	ecx,esi
-	xor	r14d,DWORD PTR[rsp]
-	lea	r13d,DWORD PTR[((-1894007588))+r13*1+rbp]
+	xor	r14d,DWORD[rsp]
+	lea	r13d,[((-1894007588))+r13*1+rbp]
 	xor	ebx,r11d
 	rol	ecx,5
 	add	r13d,eax
@@ -871,15 +875,15 @@
 	add	r13d,ecx
 	rol	edi,30
 	add	r13d,ebx
-	xor	edx,DWORD PTR[36+rsp]
+	xor	edx,DWORD[36+rsp]
 	mov	eax,r11d
-	mov	DWORD PTR[32+rsp],r14d
+	mov	DWORD[32+rsp],r14d
 	mov	ebx,r11d
-	xor	edx,DWORD PTR[44+rsp]
+	xor	edx,DWORD[44+rsp]
 	and	eax,edi
 	mov	ecx,r13d
-	xor	edx,DWORD PTR[4+rsp]
-	lea	r12d,DWORD PTR[((-1894007588))+r12*1+r14]
+	xor	edx,DWORD[4+rsp]
+	lea	r12d,[((-1894007588))+r12*1+r14]
 	xor	ebx,edi
 	rol	ecx,5
 	add	r12d,eax
@@ -888,15 +892,15 @@
 	add	r12d,ecx
 	rol	esi,30
 	add	r12d,ebx
-	xor	ebp,DWORD PTR[40+rsp]
+	xor	ebp,DWORD[40+rsp]
 	mov	eax,edi
-	mov	DWORD PTR[36+rsp],edx
+	mov	DWORD[36+rsp],edx
 	mov	ebx,edi
-	xor	ebp,DWORD PTR[48+rsp]
+	xor	ebp,DWORD[48+rsp]
 	and	eax,esi
 	mov	ecx,r12d
-	xor	ebp,DWORD PTR[8+rsp]
-	lea	r11d,DWORD PTR[((-1894007588))+r11*1+rdx]
+	xor	ebp,DWORD[8+rsp]
+	lea	r11d,[((-1894007588))+r11*1+rdx]
 	xor	ebx,esi
 	rol	ecx,5
 	add	r11d,eax
@@ -905,15 +909,15 @@
 	add	r11d,ecx
 	rol	r13d,30
 	add	r11d,ebx
-	xor	r14d,DWORD PTR[44+rsp]
+	xor	r14d,DWORD[44+rsp]
 	mov	eax,esi
-	mov	DWORD PTR[40+rsp],ebp
+	mov	DWORD[40+rsp],ebp
 	mov	ebx,esi
-	xor	r14d,DWORD PTR[52+rsp]
+	xor	r14d,DWORD[52+rsp]
 	and	eax,r13d
 	mov	ecx,r11d
-	xor	r14d,DWORD PTR[12+rsp]
-	lea	edi,DWORD PTR[((-1894007588))+rdi*1+rbp]
+	xor	r14d,DWORD[12+rsp]
+	lea	edi,[((-1894007588))+rdi*1+rbp]
 	xor	ebx,r13d
 	rol	ecx,5
 	add	edi,eax
@@ -922,15 +926,15 @@
 	add	edi,ecx
 	rol	r12d,30
 	add	edi,ebx
-	xor	edx,DWORD PTR[48+rsp]
+	xor	edx,DWORD[48+rsp]
 	mov	eax,r13d
-	mov	DWORD PTR[44+rsp],r14d
+	mov	DWORD[44+rsp],r14d
 	mov	ebx,r13d
-	xor	edx,DWORD PTR[56+rsp]
+	xor	edx,DWORD[56+rsp]
 	and	eax,r12d
 	mov	ecx,edi
-	xor	edx,DWORD PTR[16+rsp]
-	lea	esi,DWORD PTR[((-1894007588))+rsi*1+r14]
+	xor	edx,DWORD[16+rsp]
+	lea	esi,[((-1894007588))+rsi*1+r14]
 	xor	ebx,r12d
 	rol	ecx,5
 	add	esi,eax
@@ -939,267 +943,267 @@
 	add	esi,ecx
 	rol	r11d,30
 	add	esi,ebx
-	xor	ebp,DWORD PTR[52+rsp]
+	xor	ebp,DWORD[52+rsp]
 	mov	eax,edi
-	mov	DWORD PTR[48+rsp],edx
+	mov	DWORD[48+rsp],edx
 	mov	ecx,esi
-	xor	ebp,DWORD PTR[60+rsp]
+	xor	ebp,DWORD[60+rsp]
 	xor	eax,r12d
 	rol	ecx,5
-	xor	ebp,DWORD PTR[20+rsp]
-	lea	r13d,DWORD PTR[((-899497514))+r13*1+rdx]
+	xor	ebp,DWORD[20+rsp]
+	lea	r13d,[((-899497514))+r13*1+rdx]
 	xor	eax,r11d
 	add	r13d,ecx
 	rol	edi,30
 	add	r13d,eax
 	rol	ebp,1
-	xor	r14d,DWORD PTR[56+rsp]
+	xor	r14d,DWORD[56+rsp]
 	mov	eax,esi
-	mov	DWORD PTR[52+rsp],ebp
+	mov	DWORD[52+rsp],ebp
 	mov	ecx,r13d
-	xor	r14d,DWORD PTR[rsp]
+	xor	r14d,DWORD[rsp]
 	xor	eax,r11d
 	rol	ecx,5
-	xor	r14d,DWORD PTR[24+rsp]
-	lea	r12d,DWORD PTR[((-899497514))+r12*1+rbp]
+	xor	r14d,DWORD[24+rsp]
+	lea	r12d,[((-899497514))+r12*1+rbp]
 	xor	eax,edi
 	add	r12d,ecx
 	rol	esi,30
 	add	r12d,eax
 	rol	r14d,1
-	xor	edx,DWORD PTR[60+rsp]
+	xor	edx,DWORD[60+rsp]
 	mov	eax,r13d
-	mov	DWORD PTR[56+rsp],r14d
+	mov	DWORD[56+rsp],r14d
 	mov	ecx,r12d
-	xor	edx,DWORD PTR[4+rsp]
+	xor	edx,DWORD[4+rsp]
 	xor	eax,edi
 	rol	ecx,5
-	xor	edx,DWORD PTR[28+rsp]
-	lea	r11d,DWORD PTR[((-899497514))+r11*1+r14]
+	xor	edx,DWORD[28+rsp]
+	lea	r11d,[((-899497514))+r11*1+r14]
 	xor	eax,esi
 	add	r11d,ecx
 	rol	r13d,30
 	add	r11d,eax
 	rol	edx,1
-	xor	ebp,DWORD PTR[rsp]
+	xor	ebp,DWORD[rsp]
 	mov	eax,r12d
-	mov	DWORD PTR[60+rsp],edx
+	mov	DWORD[60+rsp],edx
 	mov	ecx,r11d
-	xor	ebp,DWORD PTR[8+rsp]
+	xor	ebp,DWORD[8+rsp]
 	xor	eax,esi
 	rol	ecx,5
-	xor	ebp,DWORD PTR[32+rsp]
-	lea	edi,DWORD PTR[((-899497514))+rdi*1+rdx]
+	xor	ebp,DWORD[32+rsp]
+	lea	edi,[((-899497514))+rdi*1+rdx]
 	xor	eax,r13d
 	add	edi,ecx
 	rol	r12d,30
 	add	edi,eax
 	rol	ebp,1
-	xor	r14d,DWORD PTR[4+rsp]
+	xor	r14d,DWORD[4+rsp]
 	mov	eax,r11d
-	mov	DWORD PTR[rsp],ebp
+	mov	DWORD[rsp],ebp
 	mov	ecx,edi
-	xor	r14d,DWORD PTR[12+rsp]
+	xor	r14d,DWORD[12+rsp]
 	xor	eax,r13d
 	rol	ecx,5
-	xor	r14d,DWORD PTR[36+rsp]
-	lea	esi,DWORD PTR[((-899497514))+rsi*1+rbp]
+	xor	r14d,DWORD[36+rsp]
+	lea	esi,[((-899497514))+rsi*1+rbp]
 	xor	eax,r12d
 	add	esi,ecx
 	rol	r11d,30
 	add	esi,eax
 	rol	r14d,1
-	xor	edx,DWORD PTR[8+rsp]
+	xor	edx,DWORD[8+rsp]
 	mov	eax,edi
-	mov	DWORD PTR[4+rsp],r14d
+	mov	DWORD[4+rsp],r14d
 	mov	ecx,esi
-	xor	edx,DWORD PTR[16+rsp]
+	xor	edx,DWORD[16+rsp]
 	xor	eax,r12d
 	rol	ecx,5
-	xor	edx,DWORD PTR[40+rsp]
-	lea	r13d,DWORD PTR[((-899497514))+r13*1+r14]
+	xor	edx,DWORD[40+rsp]
+	lea	r13d,[((-899497514))+r13*1+r14]
 	xor	eax,r11d
 	add	r13d,ecx
 	rol	edi,30
 	add	r13d,eax
 	rol	edx,1
-	xor	ebp,DWORD PTR[12+rsp]
+	xor	ebp,DWORD[12+rsp]
 	mov	eax,esi
-	mov	DWORD PTR[8+rsp],edx
+	mov	DWORD[8+rsp],edx
 	mov	ecx,r13d
-	xor	ebp,DWORD PTR[20+rsp]
+	xor	ebp,DWORD[20+rsp]
 	xor	eax,r11d
 	rol	ecx,5
-	xor	ebp,DWORD PTR[44+rsp]
-	lea	r12d,DWORD PTR[((-899497514))+r12*1+rdx]
+	xor	ebp,DWORD[44+rsp]
+	lea	r12d,[((-899497514))+r12*1+rdx]
 	xor	eax,edi
 	add	r12d,ecx
 	rol	esi,30
 	add	r12d,eax
 	rol	ebp,1
-	xor	r14d,DWORD PTR[16+rsp]
+	xor	r14d,DWORD[16+rsp]
 	mov	eax,r13d
-	mov	DWORD PTR[12+rsp],ebp
+	mov	DWORD[12+rsp],ebp
 	mov	ecx,r12d
-	xor	r14d,DWORD PTR[24+rsp]
+	xor	r14d,DWORD[24+rsp]
 	xor	eax,edi
 	rol	ecx,5
-	xor	r14d,DWORD PTR[48+rsp]
-	lea	r11d,DWORD PTR[((-899497514))+r11*1+rbp]
+	xor	r14d,DWORD[48+rsp]
+	lea	r11d,[((-899497514))+r11*1+rbp]
 	xor	eax,esi
 	add	r11d,ecx
 	rol	r13d,30
 	add	r11d,eax
 	rol	r14d,1
-	xor	edx,DWORD PTR[20+rsp]
+	xor	edx,DWORD[20+rsp]
 	mov	eax,r12d
-	mov	DWORD PTR[16+rsp],r14d
+	mov	DWORD[16+rsp],r14d
 	mov	ecx,r11d
-	xor	edx,DWORD PTR[28+rsp]
+	xor	edx,DWORD[28+rsp]
 	xor	eax,esi
 	rol	ecx,5
-	xor	edx,DWORD PTR[52+rsp]
-	lea	edi,DWORD PTR[((-899497514))+rdi*1+r14]
+	xor	edx,DWORD[52+rsp]
+	lea	edi,[((-899497514))+rdi*1+r14]
 	xor	eax,r13d
 	add	edi,ecx
 	rol	r12d,30
 	add	edi,eax
 	rol	edx,1
-	xor	ebp,DWORD PTR[24+rsp]
+	xor	ebp,DWORD[24+rsp]
 	mov	eax,r11d
-	mov	DWORD PTR[20+rsp],edx
+	mov	DWORD[20+rsp],edx
 	mov	ecx,edi
-	xor	ebp,DWORD PTR[32+rsp]
+	xor	ebp,DWORD[32+rsp]
 	xor	eax,r13d
 	rol	ecx,5
-	xor	ebp,DWORD PTR[56+rsp]
-	lea	esi,DWORD PTR[((-899497514))+rsi*1+rdx]
+	xor	ebp,DWORD[56+rsp]
+	lea	esi,[((-899497514))+rsi*1+rdx]
 	xor	eax,r12d
 	add	esi,ecx
 	rol	r11d,30
 	add	esi,eax
 	rol	ebp,1
-	xor	r14d,DWORD PTR[28+rsp]
+	xor	r14d,DWORD[28+rsp]
 	mov	eax,edi
-	mov	DWORD PTR[24+rsp],ebp
+	mov	DWORD[24+rsp],ebp
 	mov	ecx,esi
-	xor	r14d,DWORD PTR[36+rsp]
+	xor	r14d,DWORD[36+rsp]
 	xor	eax,r12d
 	rol	ecx,5
-	xor	r14d,DWORD PTR[60+rsp]
-	lea	r13d,DWORD PTR[((-899497514))+r13*1+rbp]
+	xor	r14d,DWORD[60+rsp]
+	lea	r13d,[((-899497514))+r13*1+rbp]
 	xor	eax,r11d
 	add	r13d,ecx
 	rol	edi,30
 	add	r13d,eax
 	rol	r14d,1
-	xor	edx,DWORD PTR[32+rsp]
+	xor	edx,DWORD[32+rsp]
 	mov	eax,esi
-	mov	DWORD PTR[28+rsp],r14d
+	mov	DWORD[28+rsp],r14d
 	mov	ecx,r13d
-	xor	edx,DWORD PTR[40+rsp]
+	xor	edx,DWORD[40+rsp]
 	xor	eax,r11d
 	rol	ecx,5
-	xor	edx,DWORD PTR[rsp]
-	lea	r12d,DWORD PTR[((-899497514))+r12*1+r14]
+	xor	edx,DWORD[rsp]
+	lea	r12d,[((-899497514))+r12*1+r14]
 	xor	eax,edi
 	add	r12d,ecx
 	rol	esi,30
 	add	r12d,eax
 	rol	edx,1
-	xor	ebp,DWORD PTR[36+rsp]
+	xor	ebp,DWORD[36+rsp]
 	mov	eax,r13d
 
 	mov	ecx,r12d
-	xor	ebp,DWORD PTR[44+rsp]
+	xor	ebp,DWORD[44+rsp]
 	xor	eax,edi
 	rol	ecx,5
-	xor	ebp,DWORD PTR[4+rsp]
-	lea	r11d,DWORD PTR[((-899497514))+r11*1+rdx]
+	xor	ebp,DWORD[4+rsp]
+	lea	r11d,[((-899497514))+r11*1+rdx]
 	xor	eax,esi
 	add	r11d,ecx
 	rol	r13d,30
 	add	r11d,eax
 	rol	ebp,1
-	xor	r14d,DWORD PTR[40+rsp]
+	xor	r14d,DWORD[40+rsp]
 	mov	eax,r12d
 
 	mov	ecx,r11d
-	xor	r14d,DWORD PTR[48+rsp]
+	xor	r14d,DWORD[48+rsp]
 	xor	eax,esi
 	rol	ecx,5
-	xor	r14d,DWORD PTR[8+rsp]
-	lea	edi,DWORD PTR[((-899497514))+rdi*1+rbp]
+	xor	r14d,DWORD[8+rsp]
+	lea	edi,[((-899497514))+rdi*1+rbp]
 	xor	eax,r13d
 	add	edi,ecx
 	rol	r12d,30
 	add	edi,eax
 	rol	r14d,1
-	xor	edx,DWORD PTR[44+rsp]
+	xor	edx,DWORD[44+rsp]
 	mov	eax,r11d
 
 	mov	ecx,edi
-	xor	edx,DWORD PTR[52+rsp]
+	xor	edx,DWORD[52+rsp]
 	xor	eax,r13d
 	rol	ecx,5
-	xor	edx,DWORD PTR[12+rsp]
-	lea	esi,DWORD PTR[((-899497514))+rsi*1+r14]
+	xor	edx,DWORD[12+rsp]
+	lea	esi,[((-899497514))+rsi*1+r14]
 	xor	eax,r12d
 	add	esi,ecx
 	rol	r11d,30
 	add	esi,eax
 	rol	edx,1
-	xor	ebp,DWORD PTR[48+rsp]
+	xor	ebp,DWORD[48+rsp]
 	mov	eax,edi
 
 	mov	ecx,esi
-	xor	ebp,DWORD PTR[56+rsp]
+	xor	ebp,DWORD[56+rsp]
 	xor	eax,r12d
 	rol	ecx,5
-	xor	ebp,DWORD PTR[16+rsp]
-	lea	r13d,DWORD PTR[((-899497514))+r13*1+rdx]
+	xor	ebp,DWORD[16+rsp]
+	lea	r13d,[((-899497514))+r13*1+rdx]
 	xor	eax,r11d
 	add	r13d,ecx
 	rol	edi,30
 	add	r13d,eax
 	rol	ebp,1
-	xor	r14d,DWORD PTR[52+rsp]
+	xor	r14d,DWORD[52+rsp]
 	mov	eax,esi
 
 	mov	ecx,r13d
-	xor	r14d,DWORD PTR[60+rsp]
+	xor	r14d,DWORD[60+rsp]
 	xor	eax,r11d
 	rol	ecx,5
-	xor	r14d,DWORD PTR[20+rsp]
-	lea	r12d,DWORD PTR[((-899497514))+r12*1+rbp]
+	xor	r14d,DWORD[20+rsp]
+	lea	r12d,[((-899497514))+r12*1+rbp]
 	xor	eax,edi
 	add	r12d,ecx
 	rol	esi,30
 	add	r12d,eax
 	rol	r14d,1
-	xor	edx,DWORD PTR[56+rsp]
+	xor	edx,DWORD[56+rsp]
 	mov	eax,r13d
 
 	mov	ecx,r12d
-	xor	edx,DWORD PTR[rsp]
+	xor	edx,DWORD[rsp]
 	xor	eax,edi
 	rol	ecx,5
-	xor	edx,DWORD PTR[24+rsp]
-	lea	r11d,DWORD PTR[((-899497514))+r11*1+r14]
+	xor	edx,DWORD[24+rsp]
+	lea	r11d,[((-899497514))+r11*1+r14]
 	xor	eax,esi
 	add	r11d,ecx
 	rol	r13d,30
 	add	r11d,eax
 	rol	edx,1
-	xor	ebp,DWORD PTR[60+rsp]
+	xor	ebp,DWORD[60+rsp]
 	mov	eax,r12d
 
 	mov	ecx,r11d
-	xor	ebp,DWORD PTR[4+rsp]
+	xor	ebp,DWORD[4+rsp]
 	xor	eax,esi
 	rol	ecx,5
-	xor	ebp,DWORD PTR[28+rsp]
-	lea	edi,DWORD PTR[((-899497514))+rdi*1+rdx]
+	xor	ebp,DWORD[28+rsp]
+	lea	edi,[((-899497514))+rdi*1+rdx]
 	xor	eax,r13d
 	add	edi,ecx
 	rol	r12d,30
@@ -1208,67 +1212,66 @@
 	mov	eax,r11d
 	mov	ecx,edi
 	xor	eax,r13d
-	lea	esi,DWORD PTR[((-899497514))+rsi*1+rbp]
+	lea	esi,[((-899497514))+rsi*1+rbp]
 	rol	ecx,5
 	xor	eax,r12d
 	add	esi,ecx
 	rol	r11d,30
 	add	esi,eax
-	add	esi,DWORD PTR[r8]
-	add	edi,DWORD PTR[4+r8]
-	add	r11d,DWORD PTR[8+r8]
-	add	r12d,DWORD PTR[12+r8]
-	add	r13d,DWORD PTR[16+r8]
-	mov	DWORD PTR[r8],esi
-	mov	DWORD PTR[4+r8],edi
-	mov	DWORD PTR[8+r8],r11d
-	mov	DWORD PTR[12+r8],r12d
-	mov	DWORD PTR[16+r8],r13d
+	add	esi,DWORD[r8]
+	add	edi,DWORD[4+r8]
+	add	r11d,DWORD[8+r8]
+	add	r12d,DWORD[12+r8]
+	add	r13d,DWORD[16+r8]
+	mov	DWORD[r8],esi
+	mov	DWORD[4+r8],edi
+	mov	DWORD[8+r8],r11d
+	mov	DWORD[12+r8],r12d
+	mov	DWORD[16+r8],r13d
 
 	sub	r10,1
-	lea	r9,QWORD PTR[64+r9]
-	jnz	$L$loop
+	lea	r9,[64+r9]
+	jnz	NEAR $L$loop
 
-	mov	rsi,QWORD PTR[64+rsp]
-	mov	r14,QWORD PTR[((-40))+rsi]
-	mov	r13,QWORD PTR[((-32))+rsi]
-	mov	r12,QWORD PTR[((-24))+rsi]
-	mov	rbp,QWORD PTR[((-16))+rsi]
-	mov	rbx,QWORD PTR[((-8))+rsi]
-	lea	rsp,QWORD PTR[rsi]
-$L$epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	mov	rsi,QWORD[64+rsp]
+	mov	r14,QWORD[((-40))+rsi]
+	mov	r13,QWORD[((-32))+rsi]
+	mov	r12,QWORD[((-24))+rsi]
+	mov	rbp,QWORD[((-16))+rsi]
+	mov	rbx,QWORD[((-8))+rsi]
+	lea	rsp,[rsi]
+$L$epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_sha1_block_data_order::
-sha1_block_data_order	ENDP
+$L$SEH_end_sha1_block_data_order:
 
 ALIGN	16
-sha1_block_data_order_ssse3	PROC PRIVATE
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+sha1_block_data_order_ssse3:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_sha1_block_data_order_ssse3::
+$L$SEH_begin_sha1_block_data_order_ssse3:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 
 
-_ssse3_shortcut::
+_ssse3_shortcut:
 	mov	rax,rsp
 	push	rbx
 	push	rbp
 	push	r12
 	push	r13
 	push	r14
-	lea	rsp,QWORD PTR[((-160))+rsp]
-	movaps	XMMWORD PTR[(-40-96)+rax],xmm6
-	movaps	XMMWORD PTR[(-40-80)+rax],xmm7
-	movaps	XMMWORD PTR[(-40-64)+rax],xmm8
-	movaps	XMMWORD PTR[(-40-48)+rax],xmm9
-	movaps	XMMWORD PTR[(-40-32)+rax],xmm10
-	movaps	XMMWORD PTR[(-40-16)+rax],xmm11
-$L$prologue_ssse3::
+	lea	rsp,[((-160))+rsp]
+	movaps	XMMWORD[(-40-96)+rax],xmm6
+	movaps	XMMWORD[(-40-80)+rax],xmm7
+	movaps	XMMWORD[(-40-64)+rax],xmm8
+	movaps	XMMWORD[(-40-48)+rax],xmm9
+	movaps	XMMWORD[(-40-32)+rax],xmm10
+	movaps	XMMWORD[(-40-16)+rax],xmm11
+$L$prologue_ssse3:
 	mov	r14,rax
 	and	rsp,-64
 	mov	r8,rdi
@@ -1277,24 +1280,24 @@
 
 	shl	r10,6
 	add	r10,r9
-	lea	r11,QWORD PTR[((K_XX_XX+64))]
+	lea	r11,[((K_XX_XX+64))]
 
-	mov	eax,DWORD PTR[r8]
-	mov	ebx,DWORD PTR[4+r8]
-	mov	ecx,DWORD PTR[8+r8]
-	mov	edx,DWORD PTR[12+r8]
+	mov	eax,DWORD[r8]
+	mov	ebx,DWORD[4+r8]
+	mov	ecx,DWORD[8+r8]
+	mov	edx,DWORD[12+r8]
 	mov	esi,ebx
-	mov	ebp,DWORD PTR[16+r8]
+	mov	ebp,DWORD[16+r8]
 	mov	edi,ecx
 	xor	edi,edx
 	and	esi,edi
 
-	movdqa	xmm6,XMMWORD PTR[64+r11]
-	movdqa	xmm9,XMMWORD PTR[((-64))+r11]
-	movdqu	xmm0,XMMWORD PTR[r9]
-	movdqu	xmm1,XMMWORD PTR[16+r9]
-	movdqu	xmm2,XMMWORD PTR[32+r9]
-	movdqu	xmm3,XMMWORD PTR[48+r9]
+	movdqa	xmm6,XMMWORD[64+r11]
+	movdqa	xmm9,XMMWORD[((-64))+r11]
+	movdqu	xmm0,XMMWORD[r9]
+	movdqu	xmm1,XMMWORD[16+r9]
+	movdqu	xmm2,XMMWORD[32+r9]
+	movdqu	xmm3,XMMWORD[48+r9]
 DB	102,15,56,0,198
 DB	102,15,56,0,206
 DB	102,15,56,0,214
@@ -1303,22 +1306,22 @@
 DB	102,15,56,0,222
 	paddd	xmm1,xmm9
 	paddd	xmm2,xmm9
-	movdqa	XMMWORD PTR[rsp],xmm0
+	movdqa	XMMWORD[rsp],xmm0
 	psubd	xmm0,xmm9
-	movdqa	XMMWORD PTR[16+rsp],xmm1
+	movdqa	XMMWORD[16+rsp],xmm1
 	psubd	xmm1,xmm9
-	movdqa	XMMWORD PTR[32+rsp],xmm2
+	movdqa	XMMWORD[32+rsp],xmm2
 	psubd	xmm2,xmm9
-	jmp	$L$oop_ssse3
+	jmp	NEAR $L$oop_ssse3
 ALIGN	16
-$L$oop_ssse3::
+$L$oop_ssse3:
 	ror	ebx,2
 	pshufd	xmm4,xmm0,238
 	xor	esi,edx
 	movdqa	xmm8,xmm3
 	paddd	xmm9,xmm3
 	mov	edi,eax
-	add	ebp,DWORD PTR[rsp]
+	add	ebp,DWORD[rsp]
 	punpcklqdq	xmm4,xmm1
 	xor	ebx,ecx
 	rol	eax,5
@@ -1332,11 +1335,11 @@
 	pxor	xmm8,xmm2
 	xor	edi,ecx
 	mov	esi,ebp
-	add	edx,DWORD PTR[4+rsp]
+	add	edx,DWORD[4+rsp]
 	pxor	xmm4,xmm8
 	xor	eax,ebx
 	rol	ebp,5
-	movdqa	XMMWORD PTR[48+rsp],xmm9
+	movdqa	XMMWORD[48+rsp],xmm9
 	add	edx,edi
 	and	esi,eax
 	movdqa	xmm10,xmm4
@@ -1348,7 +1351,7 @@
 	pslldq	xmm10,12
 	paddd	xmm4,xmm4
 	mov	edi,edx
-	add	ecx,DWORD PTR[8+rsp]
+	add	ecx,DWORD[8+rsp]
 	psrld	xmm8,31
 	xor	ebp,eax
 	rol	edx,5
@@ -1362,11 +1365,11 @@
 	por	xmm4,xmm8
 	xor	edi,eax
 	mov	esi,ecx
-	add	ebx,DWORD PTR[12+rsp]
+	add	ebx,DWORD[12+rsp]
 	pslld	xmm9,2
 	pxor	xmm4,xmm10
 	xor	edx,ebp
-	movdqa	xmm10,XMMWORD PTR[((-64))+r11]
+	movdqa	xmm10,XMMWORD[((-64))+r11]
 	rol	ecx,5
 	add	ebx,edi
 	and	esi,edx
@@ -1379,7 +1382,7 @@
 	movdqa	xmm9,xmm4
 	paddd	xmm10,xmm4
 	mov	edi,ebx
-	add	eax,DWORD PTR[16+rsp]
+	add	eax,DWORD[16+rsp]
 	punpcklqdq	xmm5,xmm2
 	xor	ecx,edx
 	rol	ebx,5
@@ -1393,11 +1396,11 @@
 	pxor	xmm9,xmm3
 	xor	edi,edx
 	mov	esi,eax
-	add	ebp,DWORD PTR[20+rsp]
+	add	ebp,DWORD[20+rsp]
 	pxor	xmm5,xmm9
 	xor	ebx,ecx
 	rol	eax,5
-	movdqa	XMMWORD PTR[rsp],xmm10
+	movdqa	XMMWORD[rsp],xmm10
 	add	ebp,edi
 	and	esi,ebx
 	movdqa	xmm8,xmm5
@@ -1409,7 +1412,7 @@
 	pslldq	xmm8,12
 	paddd	xmm5,xmm5
 	mov	edi,ebp
-	add	edx,DWORD PTR[24+rsp]
+	add	edx,DWORD[24+rsp]
 	psrld	xmm9,31
 	xor	eax,ebx
 	rol	ebp,5
@@ -1423,11 +1426,11 @@
 	por	xmm5,xmm9
 	xor	edi,ebx
 	mov	esi,edx
-	add	ecx,DWORD PTR[28+rsp]
+	add	ecx,DWORD[28+rsp]
 	pslld	xmm10,2
 	pxor	xmm5,xmm8
 	xor	ebp,eax
-	movdqa	xmm8,XMMWORD PTR[((-32))+r11]
+	movdqa	xmm8,XMMWORD[((-32))+r11]
 	rol	edx,5
 	add	ecx,edi
 	and	esi,ebp
@@ -1440,7 +1443,7 @@
 	movdqa	xmm10,xmm5
 	paddd	xmm8,xmm5
 	mov	edi,ecx
-	add	ebx,DWORD PTR[32+rsp]
+	add	ebx,DWORD[32+rsp]
 	punpcklqdq	xmm6,xmm3
 	xor	edx,ebp
 	rol	ecx,5
@@ -1454,11 +1457,11 @@
 	pxor	xmm10,xmm4
 	xor	edi,ebp
 	mov	esi,ebx
-	add	eax,DWORD PTR[36+rsp]
+	add	eax,DWORD[36+rsp]
 	pxor	xmm6,xmm10
 	xor	ecx,edx
 	rol	ebx,5
-	movdqa	XMMWORD PTR[16+rsp],xmm8
+	movdqa	XMMWORD[16+rsp],xmm8
 	add	eax,edi
 	and	esi,ecx
 	movdqa	xmm9,xmm6
@@ -1470,7 +1473,7 @@
 	pslldq	xmm9,12
 	paddd	xmm6,xmm6
 	mov	edi,eax
-	add	ebp,DWORD PTR[40+rsp]
+	add	ebp,DWORD[40+rsp]
 	psrld	xmm10,31
 	xor	ebx,ecx
 	rol	eax,5
@@ -1484,11 +1487,11 @@
 	por	xmm6,xmm10
 	xor	edi,ecx
 	mov	esi,ebp
-	add	edx,DWORD PTR[44+rsp]
+	add	edx,DWORD[44+rsp]
 	pslld	xmm8,2
 	pxor	xmm6,xmm9
 	xor	eax,ebx
-	movdqa	xmm9,XMMWORD PTR[((-32))+r11]
+	movdqa	xmm9,XMMWORD[((-32))+r11]
 	rol	ebp,5
 	add	edx,edi
 	and	esi,eax
@@ -1501,7 +1504,7 @@
 	movdqa	xmm8,xmm6
 	paddd	xmm9,xmm6
 	mov	edi,edx
-	add	ecx,DWORD PTR[48+rsp]
+	add	ecx,DWORD[48+rsp]
 	punpcklqdq	xmm7,xmm4
 	xor	ebp,eax
 	rol	edx,5
@@ -1515,11 +1518,11 @@
 	pxor	xmm8,xmm5
 	xor	edi,eax
 	mov	esi,ecx
-	add	ebx,DWORD PTR[52+rsp]
+	add	ebx,DWORD[52+rsp]
 	pxor	xmm7,xmm8
 	xor	edx,ebp
 	rol	ecx,5
-	movdqa	XMMWORD PTR[32+rsp],xmm9
+	movdqa	XMMWORD[32+rsp],xmm9
 	add	ebx,edi
 	and	esi,edx
 	movdqa	xmm10,xmm7
@@ -1531,7 +1534,7 @@
 	pslldq	xmm10,12
 	paddd	xmm7,xmm7
 	mov	edi,ebx
-	add	eax,DWORD PTR[56+rsp]
+	add	eax,DWORD[56+rsp]
 	psrld	xmm8,31
 	xor	ecx,edx
 	rol	ebx,5
@@ -1545,11 +1548,11 @@
 	por	xmm7,xmm8
 	xor	edi,edx
 	mov	esi,eax
-	add	ebp,DWORD PTR[60+rsp]
+	add	ebp,DWORD[60+rsp]
 	pslld	xmm9,2
 	pxor	xmm7,xmm10
 	xor	ebx,ecx
-	movdqa	xmm10,XMMWORD PTR[((-32))+r11]
+	movdqa	xmm10,XMMWORD[((-32))+r11]
 	rol	eax,5
 	add	ebp,edi
 	and	esi,ebx
@@ -1561,7 +1564,7 @@
 	pxor	xmm0,xmm4
 	xor	esi,ecx
 	mov	edi,ebp
-	add	edx,DWORD PTR[rsp]
+	add	edx,DWORD[rsp]
 	punpcklqdq	xmm9,xmm7
 	xor	eax,ebx
 	rol	ebp,5
@@ -1576,11 +1579,11 @@
 	ror	ebp,7
 	xor	edi,ebx
 	mov	esi,edx
-	add	ecx,DWORD PTR[4+rsp]
+	add	ecx,DWORD[4+rsp]
 	movdqa	xmm9,xmm0
 	xor	ebp,eax
 	rol	edx,5
-	movdqa	XMMWORD PTR[48+rsp],xmm10
+	movdqa	XMMWORD[48+rsp],xmm10
 	add	ecx,edi
 	and	esi,ebp
 	xor	ebp,eax
@@ -1590,7 +1593,7 @@
 	psrld	xmm9,30
 	xor	esi,eax
 	mov	edi,ecx
-	add	ebx,DWORD PTR[8+rsp]
+	add	ebx,DWORD[8+rsp]
 	por	xmm0,xmm9
 	xor	edx,ebp
 	rol	ecx,5
@@ -1599,7 +1602,7 @@
 	and	edi,edx
 	xor	edx,ebp
 	add	ebx,ecx
-	add	eax,DWORD PTR[12+rsp]
+	add	eax,DWORD[12+rsp]
 	xor	edi,ebp
 	mov	esi,ebx
 	rol	ebx,5
@@ -1608,7 +1611,7 @@
 	ror	ecx,7
 	add	eax,ebx
 	pxor	xmm1,xmm5
-	add	ebp,DWORD PTR[16+rsp]
+	add	ebp,DWORD[16+rsp]
 	xor	esi,ecx
 	punpcklqdq	xmm10,xmm0
 	mov	edi,eax
@@ -1621,17 +1624,17 @@
 	paddd	xmm8,xmm0
 	add	ebp,eax
 	pxor	xmm1,xmm10
-	add	edx,DWORD PTR[20+rsp]
+	add	edx,DWORD[20+rsp]
 	xor	edi,ebx
 	mov	esi,ebp
 	rol	ebp,5
 	movdqa	xmm10,xmm1
 	add	edx,edi
 	xor	esi,ebx
-	movdqa	XMMWORD PTR[rsp],xmm8
+	movdqa	XMMWORD[rsp],xmm8
 	ror	eax,7
 	add	edx,ebp
-	add	ecx,DWORD PTR[24+rsp]
+	add	ecx,DWORD[24+rsp]
 	pslld	xmm1,2
 	xor	esi,eax
 	mov	edi,edx
@@ -1642,7 +1645,7 @@
 	ror	ebp,7
 	por	xmm1,xmm10
 	add	ecx,edx
-	add	ebx,DWORD PTR[28+rsp]
+	add	ebx,DWORD[28+rsp]
 	pshufd	xmm8,xmm0,238
 	xor	edi,ebp
 	mov	esi,ecx
@@ -1652,7 +1655,7 @@
 	ror	edx,7
 	add	ebx,ecx
 	pxor	xmm2,xmm6
-	add	eax,DWORD PTR[32+rsp]
+	add	eax,DWORD[32+rsp]
 	xor	esi,edx
 	punpcklqdq	xmm8,xmm1
 	mov	edi,ebx
@@ -1660,22 +1663,22 @@
 	pxor	xmm2,xmm3
 	add	eax,esi
 	xor	edi,edx
-	movdqa	xmm10,XMMWORD PTR[r11]
+	movdqa	xmm10,XMMWORD[r11]
 	ror	ecx,7
 	paddd	xmm9,xmm1
 	add	eax,ebx
 	pxor	xmm2,xmm8
-	add	ebp,DWORD PTR[36+rsp]
+	add	ebp,DWORD[36+rsp]
 	xor	edi,ecx
 	mov	esi,eax
 	rol	eax,5
 	movdqa	xmm8,xmm2
 	add	ebp,edi
 	xor	esi,ecx
-	movdqa	XMMWORD PTR[16+rsp],xmm9
+	movdqa	XMMWORD[16+rsp],xmm9
 	ror	ebx,7
 	add	ebp,eax
-	add	edx,DWORD PTR[40+rsp]
+	add	edx,DWORD[40+rsp]
 	pslld	xmm2,2
 	xor	esi,ebx
 	mov	edi,ebp
@@ -1686,7 +1689,7 @@
 	ror	eax,7
 	por	xmm2,xmm8
 	add	edx,ebp
-	add	ecx,DWORD PTR[44+rsp]
+	add	ecx,DWORD[44+rsp]
 	pshufd	xmm9,xmm1,238
 	xor	edi,eax
 	mov	esi,edx
@@ -1696,7 +1699,7 @@
 	ror	ebp,7
 	add	ecx,edx
 	pxor	xmm3,xmm7
-	add	ebx,DWORD PTR[48+rsp]
+	add	ebx,DWORD[48+rsp]
 	xor	esi,ebp
 	punpcklqdq	xmm9,xmm2
 	mov	edi,ecx
@@ -1709,17 +1712,17 @@
 	paddd	xmm10,xmm2
 	add	ebx,ecx
 	pxor	xmm3,xmm9
-	add	eax,DWORD PTR[52+rsp]
+	add	eax,DWORD[52+rsp]
 	xor	edi,edx
 	mov	esi,ebx
 	rol	ebx,5
 	movdqa	xmm9,xmm3
 	add	eax,edi
 	xor	esi,edx
-	movdqa	XMMWORD PTR[32+rsp],xmm10
+	movdqa	XMMWORD[32+rsp],xmm10
 	ror	ecx,7
 	add	eax,ebx
-	add	ebp,DWORD PTR[56+rsp]
+	add	ebp,DWORD[56+rsp]
 	pslld	xmm3,2
 	xor	esi,ecx
 	mov	edi,eax
@@ -1730,7 +1733,7 @@
 	ror	ebx,7
 	por	xmm3,xmm9
 	add	ebp,eax
-	add	edx,DWORD PTR[60+rsp]
+	add	edx,DWORD[60+rsp]
 	pshufd	xmm10,xmm2,238
 	xor	edi,ebx
 	mov	esi,ebp
@@ -1740,7 +1743,7 @@
 	ror	eax,7
 	add	edx,ebp
 	pxor	xmm4,xmm0
-	add	ecx,DWORD PTR[rsp]
+	add	ecx,DWORD[rsp]
 	xor	esi,eax
 	punpcklqdq	xmm10,xmm3
 	mov	edi,edx
@@ -1753,17 +1756,17 @@
 	paddd	xmm8,xmm3
 	add	ecx,edx
 	pxor	xmm4,xmm10
-	add	ebx,DWORD PTR[4+rsp]
+	add	ebx,DWORD[4+rsp]
 	xor	edi,ebp
 	mov	esi,ecx
 	rol	ecx,5
 	movdqa	xmm10,xmm4
 	add	ebx,edi
 	xor	esi,ebp
-	movdqa	XMMWORD PTR[48+rsp],xmm8
+	movdqa	XMMWORD[48+rsp],xmm8
 	ror	edx,7
 	add	ebx,ecx
-	add	eax,DWORD PTR[8+rsp]
+	add	eax,DWORD[8+rsp]
 	pslld	xmm4,2
 	xor	esi,edx
 	mov	edi,ebx
@@ -1774,7 +1777,7 @@
 	ror	ecx,7
 	por	xmm4,xmm10
 	add	eax,ebx
-	add	ebp,DWORD PTR[12+rsp]
+	add	ebp,DWORD[12+rsp]
 	pshufd	xmm8,xmm3,238
 	xor	edi,ecx
 	mov	esi,eax
@@ -1784,7 +1787,7 @@
 	ror	ebx,7
 	add	ebp,eax
 	pxor	xmm5,xmm1
-	add	edx,DWORD PTR[16+rsp]
+	add	edx,DWORD[16+rsp]
 	xor	esi,ebx
 	punpcklqdq	xmm8,xmm4
 	mov	edi,ebp
@@ -1797,17 +1800,17 @@
 	paddd	xmm9,xmm4
 	add	edx,ebp
 	pxor	xmm5,xmm8
-	add	ecx,DWORD PTR[20+rsp]
+	add	ecx,DWORD[20+rsp]
 	xor	edi,eax
 	mov	esi,edx
 	rol	edx,5
 	movdqa	xmm8,xmm5
 	add	ecx,edi
 	xor	esi,eax
-	movdqa	XMMWORD PTR[rsp],xmm9
+	movdqa	XMMWORD[rsp],xmm9
 	ror	ebp,7
 	add	ecx,edx
-	add	ebx,DWORD PTR[24+rsp]
+	add	ebx,DWORD[24+rsp]
 	pslld	xmm5,2
 	xor	esi,ebp
 	mov	edi,ecx
@@ -1818,7 +1821,7 @@
 	ror	edx,7
 	por	xmm5,xmm8
 	add	ebx,ecx
-	add	eax,DWORD PTR[28+rsp]
+	add	eax,DWORD[28+rsp]
 	pshufd	xmm9,xmm4,238
 	ror	ecx,7
 	mov	esi,ebx
@@ -1829,7 +1832,7 @@
 	xor	ecx,edx
 	add	eax,ebx
 	pxor	xmm6,xmm2
-	add	ebp,DWORD PTR[32+rsp]
+	add	ebp,DWORD[32+rsp]
 	and	esi,ecx
 	xor	ecx,edx
 	ror	ebx,7
@@ -1845,14 +1848,14 @@
 	xor	ebx,ecx
 	pxor	xmm6,xmm9
 	add	ebp,eax
-	add	edx,DWORD PTR[36+rsp]
+	add	edx,DWORD[36+rsp]
 	and	edi,ebx
 	xor	ebx,ecx
 	ror	eax,7
 	movdqa	xmm9,xmm6
 	mov	esi,ebp
 	xor	edi,ebx
-	movdqa	XMMWORD PTR[16+rsp],xmm10
+	movdqa	XMMWORD[16+rsp],xmm10
 	rol	ebp,5
 	add	edx,edi
 	xor	esi,eax
@@ -1860,7 +1863,7 @@
 	xor	eax,ebx
 	add	edx,ebp
 	psrld	xmm9,30
-	add	ecx,DWORD PTR[40+rsp]
+	add	ecx,DWORD[40+rsp]
 	and	esi,eax
 	xor	eax,ebx
 	por	xmm6,xmm9
@@ -1873,7 +1876,7 @@
 	xor	edi,ebp
 	xor	ebp,eax
 	add	ecx,edx
-	add	ebx,DWORD PTR[44+rsp]
+	add	ebx,DWORD[44+rsp]
 	and	edi,ebp
 	xor	ebp,eax
 	ror	edx,7
@@ -1885,7 +1888,7 @@
 	xor	edx,ebp
 	add	ebx,ecx
 	pxor	xmm7,xmm3
-	add	eax,DWORD PTR[48+rsp]
+	add	eax,DWORD[48+rsp]
 	and	esi,edx
 	xor	edx,ebp
 	ror	ecx,7
@@ -1895,20 +1898,20 @@
 	pxor	xmm7,xmm0
 	rol	ebx,5
 	add	eax,esi
-	movdqa	xmm9,XMMWORD PTR[32+r11]
+	movdqa	xmm9,XMMWORD[32+r11]
 	xor	edi,ecx
 	paddd	xmm8,xmm6
 	xor	ecx,edx
 	pxor	xmm7,xmm10
 	add	eax,ebx
-	add	ebp,DWORD PTR[52+rsp]
+	add	ebp,DWORD[52+rsp]
 	and	edi,ecx
 	xor	ecx,edx
 	ror	ebx,7
 	movdqa	xmm10,xmm7
 	mov	esi,eax
 	xor	edi,ecx
-	movdqa	XMMWORD PTR[32+rsp],xmm8
+	movdqa	XMMWORD[32+rsp],xmm8
 	rol	eax,5
 	add	ebp,edi
 	xor	esi,ebx
@@ -1916,7 +1919,7 @@
 	xor	ebx,ecx
 	add	ebp,eax
 	psrld	xmm10,30
-	add	edx,DWORD PTR[56+rsp]
+	add	edx,DWORD[56+rsp]
 	and	esi,ebx
 	xor	ebx,ecx
 	por	xmm7,xmm10
@@ -1929,7 +1932,7 @@
 	xor	edi,eax
 	xor	eax,ebx
 	add	edx,ebp
-	add	ecx,DWORD PTR[60+rsp]
+	add	ecx,DWORD[60+rsp]
 	and	edi,eax
 	xor	eax,ebx
 	ror	ebp,7
@@ -1941,7 +1944,7 @@
 	xor	ebp,eax
 	add	ecx,edx
 	pxor	xmm0,xmm4
-	add	ebx,DWORD PTR[rsp]
+	add	ebx,DWORD[rsp]
 	and	esi,ebp
 	xor	ebp,eax
 	ror	edx,7
@@ -1957,14 +1960,14 @@
 	xor	edx,ebp
 	pxor	xmm0,xmm8
 	add	ebx,ecx
-	add	eax,DWORD PTR[4+rsp]
+	add	eax,DWORD[4+rsp]
 	and	edi,edx
 	xor	edx,ebp
 	ror	ecx,7
 	movdqa	xmm8,xmm0
 	mov	esi,ebx
 	xor	edi,edx
-	movdqa	XMMWORD PTR[48+rsp],xmm9
+	movdqa	XMMWORD[48+rsp],xmm9
 	rol	ebx,5
 	add	eax,edi
 	xor	esi,ecx
@@ -1972,7 +1975,7 @@
 	xor	ecx,edx
 	add	eax,ebx
 	psrld	xmm8,30
-	add	ebp,DWORD PTR[8+rsp]
+	add	ebp,DWORD[8+rsp]
 	and	esi,ecx
 	xor	ecx,edx
 	por	xmm0,xmm8
@@ -1985,7 +1988,7 @@
 	xor	edi,ebx
 	xor	ebx,ecx
 	add	ebp,eax
-	add	edx,DWORD PTR[12+rsp]
+	add	edx,DWORD[12+rsp]
 	and	edi,ebx
 	xor	ebx,ecx
 	ror	eax,7
@@ -1997,7 +2000,7 @@
 	xor	eax,ebx
 	add	edx,ebp
 	pxor	xmm1,xmm5
-	add	ecx,DWORD PTR[16+rsp]
+	add	ecx,DWORD[16+rsp]
 	and	esi,eax
 	xor	eax,ebx
 	ror	ebp,7
@@ -2013,14 +2016,14 @@
 	xor	ebp,eax
 	pxor	xmm1,xmm9
 	add	ecx,edx
-	add	ebx,DWORD PTR[20+rsp]
+	add	ebx,DWORD[20+rsp]
 	and	edi,ebp
 	xor	ebp,eax
 	ror	edx,7
 	movdqa	xmm9,xmm1
 	mov	esi,ecx
 	xor	edi,ebp
-	movdqa	XMMWORD PTR[rsp],xmm10
+	movdqa	XMMWORD[rsp],xmm10
 	rol	ecx,5
 	add	ebx,edi
 	xor	esi,edx
@@ -2028,7 +2031,7 @@
 	xor	edx,ebp
 	add	ebx,ecx
 	psrld	xmm9,30
-	add	eax,DWORD PTR[24+rsp]
+	add	eax,DWORD[24+rsp]
 	and	esi,edx
 	xor	edx,ebp
 	por	xmm1,xmm9
@@ -2041,7 +2044,7 @@
 	xor	edi,ecx
 	xor	ecx,edx
 	add	eax,ebx
-	add	ebp,DWORD PTR[28+rsp]
+	add	ebp,DWORD[28+rsp]
 	and	edi,ecx
 	xor	ecx,edx
 	ror	ebx,7
@@ -2053,7 +2056,7 @@
 	xor	ebx,ecx
 	add	ebp,eax
 	pxor	xmm2,xmm6
-	add	edx,DWORD PTR[32+rsp]
+	add	edx,DWORD[32+rsp]
 	and	esi,ebx
 	xor	ebx,ecx
 	ror	eax,7
@@ -2069,14 +2072,14 @@
 	xor	eax,ebx
 	pxor	xmm2,xmm10
 	add	edx,ebp
-	add	ecx,DWORD PTR[36+rsp]
+	add	ecx,DWORD[36+rsp]
 	and	edi,eax
 	xor	eax,ebx
 	ror	ebp,7
 	movdqa	xmm10,xmm2
 	mov	esi,edx
 	xor	edi,eax
-	movdqa	XMMWORD PTR[16+rsp],xmm8
+	movdqa	XMMWORD[16+rsp],xmm8
 	rol	edx,5
 	add	ecx,edi
 	xor	esi,ebp
@@ -2084,7 +2087,7 @@
 	xor	ebp,eax
 	add	ecx,edx
 	psrld	xmm10,30
-	add	ebx,DWORD PTR[40+rsp]
+	add	ebx,DWORD[40+rsp]
 	and	esi,ebp
 	xor	ebp,eax
 	por	xmm2,xmm10
@@ -2097,7 +2100,7 @@
 	xor	edi,edx
 	xor	edx,ebp
 	add	ebx,ecx
-	add	eax,DWORD PTR[44+rsp]
+	add	eax,DWORD[44+rsp]
 	and	edi,edx
 	xor	edx,ebp
 	ror	ecx,7
@@ -2108,7 +2111,7 @@
 	xor	esi,edx
 	add	eax,ebx
 	pxor	xmm3,xmm7
-	add	ebp,DWORD PTR[48+rsp]
+	add	ebp,DWORD[48+rsp]
 	xor	esi,ecx
 	punpcklqdq	xmm8,xmm2
 	mov	edi,eax
@@ -2121,17 +2124,17 @@
 	paddd	xmm9,xmm2
 	add	ebp,eax
 	pxor	xmm3,xmm8
-	add	edx,DWORD PTR[52+rsp]
+	add	edx,DWORD[52+rsp]
 	xor	edi,ebx
 	mov	esi,ebp
 	rol	ebp,5
 	movdqa	xmm8,xmm3
 	add	edx,edi
 	xor	esi,ebx
-	movdqa	XMMWORD PTR[32+rsp],xmm9
+	movdqa	XMMWORD[32+rsp],xmm9
 	ror	eax,7
 	add	edx,ebp
-	add	ecx,DWORD PTR[56+rsp]
+	add	ecx,DWORD[56+rsp]
 	pslld	xmm3,2
 	xor	esi,eax
 	mov	edi,edx
@@ -2142,7 +2145,7 @@
 	ror	ebp,7
 	por	xmm3,xmm8
 	add	ecx,edx
-	add	ebx,DWORD PTR[60+rsp]
+	add	ebx,DWORD[60+rsp]
 	xor	edi,ebp
 	mov	esi,ecx
 	rol	ecx,5
@@ -2150,17 +2153,17 @@
 	xor	esi,ebp
 	ror	edx,7
 	add	ebx,ecx
-	add	eax,DWORD PTR[rsp]
+	add	eax,DWORD[rsp]
 	xor	esi,edx
 	mov	edi,ebx
 	rol	ebx,5
 	paddd	xmm10,xmm3
 	add	eax,esi
 	xor	edi,edx
-	movdqa	XMMWORD PTR[48+rsp],xmm10
+	movdqa	XMMWORD[48+rsp],xmm10
 	ror	ecx,7
 	add	eax,ebx
-	add	ebp,DWORD PTR[4+rsp]
+	add	ebp,DWORD[4+rsp]
 	xor	edi,ecx
 	mov	esi,eax
 	rol	eax,5
@@ -2168,7 +2171,7 @@
 	xor	esi,ecx
 	ror	ebx,7
 	add	ebp,eax
-	add	edx,DWORD PTR[8+rsp]
+	add	edx,DWORD[8+rsp]
 	xor	esi,ebx
 	mov	edi,ebp
 	rol	ebp,5
@@ -2176,7 +2179,7 @@
 	xor	edi,ebx
 	ror	eax,7
 	add	edx,ebp
-	add	ecx,DWORD PTR[12+rsp]
+	add	ecx,DWORD[12+rsp]
 	xor	edi,eax
 	mov	esi,edx
 	rol	edx,5
@@ -2185,16 +2188,16 @@
 	ror	ebp,7
 	add	ecx,edx
 	cmp	r9,r10
-	je	$L$done_ssse3
-	movdqa	xmm6,XMMWORD PTR[64+r11]
-	movdqa	xmm9,XMMWORD PTR[((-64))+r11]
-	movdqu	xmm0,XMMWORD PTR[r9]
-	movdqu	xmm1,XMMWORD PTR[16+r9]
-	movdqu	xmm2,XMMWORD PTR[32+r9]
-	movdqu	xmm3,XMMWORD PTR[48+r9]
+	je	NEAR $L$done_ssse3
+	movdqa	xmm6,XMMWORD[64+r11]
+	movdqa	xmm9,XMMWORD[((-64))+r11]
+	movdqu	xmm0,XMMWORD[r9]
+	movdqu	xmm1,XMMWORD[16+r9]
+	movdqu	xmm2,XMMWORD[32+r9]
+	movdqu	xmm3,XMMWORD[48+r9]
 DB	102,15,56,0,198
 	add	r9,64
-	add	ebx,DWORD PTR[16+rsp]
+	add	ebx,DWORD[16+rsp]
 	xor	esi,ebp
 	mov	edi,ecx
 DB	102,15,56,0,206
@@ -2204,17 +2207,17 @@
 	ror	edx,7
 	paddd	xmm0,xmm9
 	add	ebx,ecx
-	add	eax,DWORD PTR[20+rsp]
+	add	eax,DWORD[20+rsp]
 	xor	edi,edx
 	mov	esi,ebx
-	movdqa	XMMWORD PTR[rsp],xmm0
+	movdqa	XMMWORD[rsp],xmm0
 	rol	ebx,5
 	add	eax,edi
 	xor	esi,edx
 	ror	ecx,7
 	psubd	xmm0,xmm9
 	add	eax,ebx
-	add	ebp,DWORD PTR[24+rsp]
+	add	ebp,DWORD[24+rsp]
 	xor	esi,ecx
 	mov	edi,eax
 	rol	eax,5
@@ -2222,7 +2225,7 @@
 	xor	edi,ecx
 	ror	ebx,7
 	add	ebp,eax
-	add	edx,DWORD PTR[28+rsp]
+	add	edx,DWORD[28+rsp]
 	xor	edi,ebx
 	mov	esi,ebp
 	rol	ebp,5
@@ -2230,7 +2233,7 @@
 	xor	esi,ebx
 	ror	eax,7
 	add	edx,ebp
-	add	ecx,DWORD PTR[32+rsp]
+	add	ecx,DWORD[32+rsp]
 	xor	esi,eax
 	mov	edi,edx
 DB	102,15,56,0,214
@@ -2240,17 +2243,17 @@
 	ror	ebp,7
 	paddd	xmm1,xmm9
 	add	ecx,edx
-	add	ebx,DWORD PTR[36+rsp]
+	add	ebx,DWORD[36+rsp]
 	xor	edi,ebp
 	mov	esi,ecx
-	movdqa	XMMWORD PTR[16+rsp],xmm1
+	movdqa	XMMWORD[16+rsp],xmm1
 	rol	ecx,5
 	add	ebx,edi
 	xor	esi,ebp
 	ror	edx,7
 	psubd	xmm1,xmm9
 	add	ebx,ecx
-	add	eax,DWORD PTR[40+rsp]
+	add	eax,DWORD[40+rsp]
 	xor	esi,edx
 	mov	edi,ebx
 	rol	ebx,5
@@ -2258,7 +2261,7 @@
 	xor	edi,edx
 	ror	ecx,7
 	add	eax,ebx
-	add	ebp,DWORD PTR[44+rsp]
+	add	ebp,DWORD[44+rsp]
 	xor	edi,ecx
 	mov	esi,eax
 	rol	eax,5
@@ -2266,7 +2269,7 @@
 	xor	esi,ecx
 	ror	ebx,7
 	add	ebp,eax
-	add	edx,DWORD PTR[48+rsp]
+	add	edx,DWORD[48+rsp]
 	xor	esi,ebx
 	mov	edi,ebp
 DB	102,15,56,0,222
@@ -2276,17 +2279,17 @@
 	ror	eax,7
 	paddd	xmm2,xmm9
 	add	edx,ebp
-	add	ecx,DWORD PTR[52+rsp]
+	add	ecx,DWORD[52+rsp]
 	xor	edi,eax
 	mov	esi,edx
-	movdqa	XMMWORD PTR[32+rsp],xmm2
+	movdqa	XMMWORD[32+rsp],xmm2
 	rol	edx,5
 	add	ecx,edi
 	xor	esi,eax
 	ror	ebp,7
 	psubd	xmm2,xmm9
 	add	ecx,edx
-	add	ebx,DWORD PTR[56+rsp]
+	add	ebx,DWORD[56+rsp]
 	xor	esi,ebp
 	mov	edi,ecx
 	rol	ecx,5
@@ -2294,32 +2297,32 @@
 	xor	edi,ebp
 	ror	edx,7
 	add	ebx,ecx
-	add	eax,DWORD PTR[60+rsp]
+	add	eax,DWORD[60+rsp]
 	xor	edi,edx
 	mov	esi,ebx
 	rol	ebx,5
 	add	eax,edi
 	ror	ecx,7
 	add	eax,ebx
-	add	eax,DWORD PTR[r8]
-	add	esi,DWORD PTR[4+r8]
-	add	ecx,DWORD PTR[8+r8]
-	add	edx,DWORD PTR[12+r8]
-	mov	DWORD PTR[r8],eax
-	add	ebp,DWORD PTR[16+r8]
-	mov	DWORD PTR[4+r8],esi
+	add	eax,DWORD[r8]
+	add	esi,DWORD[4+r8]
+	add	ecx,DWORD[8+r8]
+	add	edx,DWORD[12+r8]
+	mov	DWORD[r8],eax
+	add	ebp,DWORD[16+r8]
+	mov	DWORD[4+r8],esi
 	mov	ebx,esi
-	mov	DWORD PTR[8+r8],ecx
+	mov	DWORD[8+r8],ecx
 	mov	edi,ecx
-	mov	DWORD PTR[12+r8],edx
+	mov	DWORD[12+r8],edx
 	xor	edi,edx
-	mov	DWORD PTR[16+r8],ebp
+	mov	DWORD[16+r8],ebp
 	and	esi,edi
-	jmp	$L$oop_ssse3
+	jmp	NEAR $L$oop_ssse3
 
 ALIGN	16
-$L$done_ssse3::
-	add	ebx,DWORD PTR[16+rsp]
+$L$done_ssse3:
+	add	ebx,DWORD[16+rsp]
 	xor	esi,ebp
 	mov	edi,ecx
 	rol	ecx,5
@@ -2327,7 +2330,7 @@
 	xor	edi,ebp
 	ror	edx,7
 	add	ebx,ecx
-	add	eax,DWORD PTR[20+rsp]
+	add	eax,DWORD[20+rsp]
 	xor	edi,edx
 	mov	esi,ebx
 	rol	ebx,5
@@ -2335,7 +2338,7 @@
 	xor	esi,edx
 	ror	ecx,7
 	add	eax,ebx
-	add	ebp,DWORD PTR[24+rsp]
+	add	ebp,DWORD[24+rsp]
 	xor	esi,ecx
 	mov	edi,eax
 	rol	eax,5
@@ -2343,7 +2346,7 @@
 	xor	edi,ecx
 	ror	ebx,7
 	add	ebp,eax
-	add	edx,DWORD PTR[28+rsp]
+	add	edx,DWORD[28+rsp]
 	xor	edi,ebx
 	mov	esi,ebp
 	rol	ebp,5
@@ -2351,7 +2354,7 @@
 	xor	esi,ebx
 	ror	eax,7
 	add	edx,ebp
-	add	ecx,DWORD PTR[32+rsp]
+	add	ecx,DWORD[32+rsp]
 	xor	esi,eax
 	mov	edi,edx
 	rol	edx,5
@@ -2359,7 +2362,7 @@
 	xor	edi,eax
 	ror	ebp,7
 	add	ecx,edx
-	add	ebx,DWORD PTR[36+rsp]
+	add	ebx,DWORD[36+rsp]
 	xor	edi,ebp
 	mov	esi,ecx
 	rol	ecx,5
@@ -2367,7 +2370,7 @@
 	xor	esi,ebp
 	ror	edx,7
 	add	ebx,ecx
-	add	eax,DWORD PTR[40+rsp]
+	add	eax,DWORD[40+rsp]
 	xor	esi,edx
 	mov	edi,ebx
 	rol	ebx,5
@@ -2375,7 +2378,7 @@
 	xor	edi,edx
 	ror	ecx,7
 	add	eax,ebx
-	add	ebp,DWORD PTR[44+rsp]
+	add	ebp,DWORD[44+rsp]
 	xor	edi,ecx
 	mov	esi,eax
 	rol	eax,5
@@ -2383,7 +2386,7 @@
 	xor	esi,ecx
 	ror	ebx,7
 	add	ebp,eax
-	add	edx,DWORD PTR[48+rsp]
+	add	edx,DWORD[48+rsp]
 	xor	esi,ebx
 	mov	edi,ebp
 	rol	ebp,5
@@ -2391,7 +2394,7 @@
 	xor	edi,ebx
 	ror	eax,7
 	add	edx,ebp
-	add	ecx,DWORD PTR[52+rsp]
+	add	ecx,DWORD[52+rsp]
 	xor	edi,eax
 	mov	esi,edx
 	rol	edx,5
@@ -2399,7 +2402,7 @@
 	xor	esi,eax
 	ror	ebp,7
 	add	ecx,edx
-	add	ebx,DWORD PTR[56+rsp]
+	add	ebx,DWORD[56+rsp]
 	xor	esi,ebp
 	mov	edi,ecx
 	rol	ecx,5
@@ -2407,65 +2410,64 @@
 	xor	edi,ebp
 	ror	edx,7
 	add	ebx,ecx
-	add	eax,DWORD PTR[60+rsp]
+	add	eax,DWORD[60+rsp]
 	xor	edi,edx
 	mov	esi,ebx
 	rol	ebx,5
 	add	eax,edi
 	ror	ecx,7
 	add	eax,ebx
-	add	eax,DWORD PTR[r8]
-	add	esi,DWORD PTR[4+r8]
-	add	ecx,DWORD PTR[8+r8]
-	mov	DWORD PTR[r8],eax
-	add	edx,DWORD PTR[12+r8]
-	mov	DWORD PTR[4+r8],esi
-	add	ebp,DWORD PTR[16+r8]
-	mov	DWORD PTR[8+r8],ecx
-	mov	DWORD PTR[12+r8],edx
-	mov	DWORD PTR[16+r8],ebp
-	movaps	xmm6,XMMWORD PTR[((-40-96))+r14]
-	movaps	xmm7,XMMWORD PTR[((-40-80))+r14]
-	movaps	xmm8,XMMWORD PTR[((-40-64))+r14]
-	movaps	xmm9,XMMWORD PTR[((-40-48))+r14]
-	movaps	xmm10,XMMWORD PTR[((-40-32))+r14]
-	movaps	xmm11,XMMWORD PTR[((-40-16))+r14]
-	lea	rsi,QWORD PTR[r14]
-	mov	r14,QWORD PTR[((-40))+rsi]
-	mov	r13,QWORD PTR[((-32))+rsi]
-	mov	r12,QWORD PTR[((-24))+rsi]
-	mov	rbp,QWORD PTR[((-16))+rsi]
-	mov	rbx,QWORD PTR[((-8))+rsi]
-	lea	rsp,QWORD PTR[rsi]
-$L$epilogue_ssse3::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	add	eax,DWORD[r8]
+	add	esi,DWORD[4+r8]
+	add	ecx,DWORD[8+r8]
+	mov	DWORD[r8],eax
+	add	edx,DWORD[12+r8]
+	mov	DWORD[4+r8],esi
+	add	ebp,DWORD[16+r8]
+	mov	DWORD[8+r8],ecx
+	mov	DWORD[12+r8],edx
+	mov	DWORD[16+r8],ebp
+	movaps	xmm6,XMMWORD[((-40-96))+r14]
+	movaps	xmm7,XMMWORD[((-40-80))+r14]
+	movaps	xmm8,XMMWORD[((-40-64))+r14]
+	movaps	xmm9,XMMWORD[((-40-48))+r14]
+	movaps	xmm10,XMMWORD[((-40-32))+r14]
+	movaps	xmm11,XMMWORD[((-40-16))+r14]
+	lea	rsi,[r14]
+	mov	r14,QWORD[((-40))+rsi]
+	mov	r13,QWORD[((-32))+rsi]
+	mov	r12,QWORD[((-24))+rsi]
+	mov	rbp,QWORD[((-16))+rsi]
+	mov	rbx,QWORD[((-8))+rsi]
+	lea	rsp,[rsi]
+$L$epilogue_ssse3:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_sha1_block_data_order_ssse3::
-sha1_block_data_order_ssse3	ENDP
+$L$SEH_end_sha1_block_data_order_ssse3:
 ALIGN	64
-K_XX_XX::
-	DD	05a827999h,05a827999h,05a827999h,05a827999h
-	DD	05a827999h,05a827999h,05a827999h,05a827999h
-	DD	06ed9eba1h,06ed9eba1h,06ed9eba1h,06ed9eba1h
-	DD	06ed9eba1h,06ed9eba1h,06ed9eba1h,06ed9eba1h
-	DD	08f1bbcdch,08f1bbcdch,08f1bbcdch,08f1bbcdch
-	DD	08f1bbcdch,08f1bbcdch,08f1bbcdch,08f1bbcdch
-	DD	0ca62c1d6h,0ca62c1d6h,0ca62c1d6h,0ca62c1d6h
-	DD	0ca62c1d6h,0ca62c1d6h,0ca62c1d6h,0ca62c1d6h
-	DD	000010203h,004050607h,008090a0bh,00c0d0e0fh
-	DD	000010203h,004050607h,008090a0bh,00c0d0e0fh
-DB	0fh,0eh,0dh,0ch,0bh,0ah,09h,08h,07h,06h,05h,04h,03h,02h,01h,00h
+K_XX_XX:
+	DD	0x5a827999,0x5a827999,0x5a827999,0x5a827999
+	DD	0x5a827999,0x5a827999,0x5a827999,0x5a827999
+	DD	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
+	DD	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
+	DD	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
+	DD	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
+	DD	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
+	DD	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
+	DD	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
+	DD	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
+DB	0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
 DB	83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115
 DB	102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44
 DB	32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60
 DB	97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114
 DB	103,62,0
 ALIGN	64
-EXTERN	__imp_RtlVirtualUnwind:NEAR
+EXTERN	__imp_RtlVirtualUnwind
 
 ALIGN	16
-se_handler	PROC PRIVATE
+se_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -2477,37 +2479,37 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[120+r8]
-	mov	rbx,QWORD PTR[248+r8]
+	mov	rax,QWORD[120+r8]
+	mov	rbx,QWORD[248+r8]
 
-	lea	r10,QWORD PTR[$L$prologue]
+	lea	r10,[$L$prologue]
 	cmp	rbx,r10
-	jb	$L$common_seh_tail
+	jb	NEAR $L$common_seh_tail
 
-	mov	rax,QWORD PTR[152+r8]
+	mov	rax,QWORD[152+r8]
 
-	lea	r10,QWORD PTR[$L$epilogue]
+	lea	r10,[$L$epilogue]
 	cmp	rbx,r10
-	jae	$L$common_seh_tail
+	jae	NEAR $L$common_seh_tail
 
-	mov	rax,QWORD PTR[64+rax]
+	mov	rax,QWORD[64+rax]
 
-	mov	rbx,QWORD PTR[((-8))+rax]
-	mov	rbp,QWORD PTR[((-16))+rax]
-	mov	r12,QWORD PTR[((-24))+rax]
-	mov	r13,QWORD PTR[((-32))+rax]
-	mov	r14,QWORD PTR[((-40))+rax]
-	mov	QWORD PTR[144+r8],rbx
-	mov	QWORD PTR[160+r8],rbp
-	mov	QWORD PTR[216+r8],r12
-	mov	QWORD PTR[224+r8],r13
-	mov	QWORD PTR[232+r8],r14
+	mov	rbx,QWORD[((-8))+rax]
+	mov	rbp,QWORD[((-16))+rax]
+	mov	r12,QWORD[((-24))+rax]
+	mov	r13,QWORD[((-32))+rax]
+	mov	r14,QWORD[((-40))+rax]
+	mov	QWORD[144+r8],rbx
+	mov	QWORD[160+r8],rbp
+	mov	QWORD[216+r8],r12
+	mov	QWORD[224+r8],r13
+	mov	QWORD[232+r8],r14
 
-	jmp	$L$common_seh_tail
-se_handler	ENDP
+	jmp	NEAR $L$common_seh_tail
+
 
 ALIGN	16
-ssse3_handler	PROC PRIVATE
+ssse3_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -2519,67 +2521,67 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[120+r8]
-	mov	rbx,QWORD PTR[248+r8]
+	mov	rax,QWORD[120+r8]
+	mov	rbx,QWORD[248+r8]
 
-	mov	rsi,QWORD PTR[8+r9]
-	mov	r11,QWORD PTR[56+r9]
+	mov	rsi,QWORD[8+r9]
+	mov	r11,QWORD[56+r9]
 
-	mov	r10d,DWORD PTR[r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jb	$L$common_seh_tail
+	jb	NEAR $L$common_seh_tail
 
-	mov	rax,QWORD PTR[152+r8]
+	mov	rax,QWORD[152+r8]
 
-	mov	r10d,DWORD PTR[4+r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[4+r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jae	$L$common_seh_tail
+	jae	NEAR $L$common_seh_tail
 
-	mov	rax,QWORD PTR[232+r8]
+	mov	rax,QWORD[232+r8]
 
-	lea	rsi,QWORD PTR[((-40-96))+rax]
-	lea	rdi,QWORD PTR[512+r8]
+	lea	rsi,[((-40-96))+rax]
+	lea	rdi,[512+r8]
 	mov	ecx,12
-	DD	0a548f3fch
+	DD	0xa548f3fc
 
-	mov	rbx,QWORD PTR[((-8))+rax]
-	mov	rbp,QWORD PTR[((-16))+rax]
-	mov	r12,QWORD PTR[((-24))+rax]
-	mov	r13,QWORD PTR[((-32))+rax]
-	mov	r14,QWORD PTR[((-40))+rax]
-	mov	QWORD PTR[144+r8],rbx
-	mov	QWORD PTR[160+r8],rbp
-	mov	QWORD PTR[216+r8],r12
-	mov	QWORD PTR[224+r8],r13
-	mov	QWORD PTR[232+r8],r14
+	mov	rbx,QWORD[((-8))+rax]
+	mov	rbp,QWORD[((-16))+rax]
+	mov	r12,QWORD[((-24))+rax]
+	mov	r13,QWORD[((-32))+rax]
+	mov	r14,QWORD[((-40))+rax]
+	mov	QWORD[144+r8],rbx
+	mov	QWORD[160+r8],rbp
+	mov	QWORD[216+r8],r12
+	mov	QWORD[224+r8],r13
+	mov	QWORD[232+r8],r14
 
-$L$common_seh_tail::
-	mov	rdi,QWORD PTR[8+rax]
-	mov	rsi,QWORD PTR[16+rax]
-	mov	QWORD PTR[152+r8],rax
-	mov	QWORD PTR[168+r8],rsi
-	mov	QWORD PTR[176+r8],rdi
+$L$common_seh_tail:
+	mov	rdi,QWORD[8+rax]
+	mov	rsi,QWORD[16+rax]
+	mov	QWORD[152+r8],rax
+	mov	QWORD[168+r8],rsi
+	mov	QWORD[176+r8],rdi
 
-	mov	rdi,QWORD PTR[40+r9]
+	mov	rdi,QWORD[40+r9]
 	mov	rsi,r8
 	mov	ecx,154
-	DD	0a548f3fch
+	DD	0xa548f3fc
 
 	mov	rsi,r9
 	xor	rcx,rcx
-	mov	rdx,QWORD PTR[8+rsi]
-	mov	r8,QWORD PTR[rsi]
-	mov	r9,QWORD PTR[16+rsi]
-	mov	r10,QWORD PTR[40+rsi]
-	lea	r11,QWORD PTR[56+rsi]
-	lea	r12,QWORD PTR[24+rsi]
-	mov	QWORD PTR[32+rsp],r10
-	mov	QWORD PTR[40+rsp],r11
-	mov	QWORD PTR[48+rsp],r12
-	mov	QWORD PTR[56+rsp],rcx
-	call	QWORD PTR[__imp_RtlVirtualUnwind]
+	mov	rdx,QWORD[8+rsi]
+	mov	r8,QWORD[rsi]
+	mov	r9,QWORD[16+rsi]
+	mov	r10,QWORD[40+rsi]
+	lea	r11,[56+rsi]
+	lea	r12,[24+rsi]
+	mov	QWORD[32+rsp],r10
+	mov	QWORD[40+rsp],r11
+	mov	QWORD[48+rsp],r12
+	mov	QWORD[56+rsp],rcx
+	call	QWORD[__imp_RtlVirtualUnwind]
 
 	mov	eax,1
 	add	rsp,64
@@ -2593,27 +2595,22 @@
 	pop	rdi
 	pop	rsi
 	DB	0F3h,0C3h		;repret
-ssse3_handler	ENDP
 
-.text$	ENDS
-.pdata	SEGMENT READONLY ALIGN(4)
+
+section	.pdata rdata align=4
 ALIGN	4
-	DD	imagerel $L$SEH_begin_sha1_block_data_order
-	DD	imagerel $L$SEH_end_sha1_block_data_order
-	DD	imagerel $L$SEH_info_sha1_block_data_order
-	DD	imagerel $L$SEH_begin_sha1_block_data_order_ssse3
-	DD	imagerel $L$SEH_end_sha1_block_data_order_ssse3
-	DD	imagerel $L$SEH_info_sha1_block_data_order_ssse3
-.pdata	ENDS
-.xdata	SEGMENT READONLY ALIGN(8)
+	DD	$L$SEH_begin_sha1_block_data_order wrt ..imagebase
+	DD	$L$SEH_end_sha1_block_data_order wrt ..imagebase
+	DD	$L$SEH_info_sha1_block_data_order wrt ..imagebase
+	DD	$L$SEH_begin_sha1_block_data_order_ssse3 wrt ..imagebase
+	DD	$L$SEH_end_sha1_block_data_order_ssse3 wrt ..imagebase
+	DD	$L$SEH_info_sha1_block_data_order_ssse3 wrt ..imagebase
+section	.xdata rdata align=8
 ALIGN	8
-$L$SEH_info_sha1_block_data_order::
+$L$SEH_info_sha1_block_data_order:
 DB	9,0,0,0
-	DD	imagerel se_handler
-$L$SEH_info_sha1_block_data_order_ssse3::
+	DD	se_handler wrt ..imagebase
+$L$SEH_info_sha1_block_data_order_ssse3:
 DB	9,0,0,0
-	DD	imagerel ssse3_handler
-	DD	imagerel $L$prologue_ssse3,imagerel $L$epilogue_ssse3
-
-.xdata	ENDS
-END
+	DD	ssse3_handler wrt ..imagebase
+	DD	$L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imagebase
diff --git a/third_party/boringssl/win-x86_64/crypto/sha/sha256-x86_64.asm b/third_party/boringssl/win-x86_64/crypto/sha/sha256-x86_64.asm
index 41f2edd..e6193c5 100644
--- a/third_party/boringssl/win-x86_64/crypto/sha/sha256-x86_64.asm
+++ b/third_party/boringssl/win-x86_64/crypto/sha/sha256-x86_64.asm
@@ -1,26 +1,30 @@
-OPTION	DOTNAME
-.text$	SEGMENT ALIGN(256) 'CODE'
+default	rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section	.text code align=64
 
-EXTERN	OPENSSL_ia32cap_P:NEAR
-PUBLIC	sha256_block_data_order
+
+EXTERN	OPENSSL_ia32cap_P
+global	sha256_block_data_order
 
 ALIGN	16
-sha256_block_data_order	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+sha256_block_data_order:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_sha256_block_data_order::
+$L$SEH_begin_sha256_block_data_order:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 
 
-	lea	r11,QWORD PTR[OPENSSL_ia32cap_P]
-	mov	r9d,DWORD PTR[r11]
-	mov	r10d,DWORD PTR[4+r11]
-	mov	r11d,DWORD PTR[8+r11]
+	lea	r11,[OPENSSL_ia32cap_P]
+	mov	r9d,DWORD[r11]
+	mov	r10d,DWORD[4+r11]
+	mov	r11d,DWORD[8+r11]
 	test	r10d,512
-	jnz	$L$ssse3_shortcut
+	jnz	NEAR $L$ssse3_shortcut
 	push	rbx
 	push	rbp
 	push	r12
@@ -30,30 +34,30 @@
 	mov	r11,rsp
 	shl	rdx,4
 	sub	rsp,16*4+4*8
-	lea	rdx,QWORD PTR[rdx*4+rsi]
+	lea	rdx,[rdx*4+rsi]
 	and	rsp,-64
-	mov	QWORD PTR[((64+0))+rsp],rdi
-	mov	QWORD PTR[((64+8))+rsp],rsi
-	mov	QWORD PTR[((64+16))+rsp],rdx
-	mov	QWORD PTR[((64+24))+rsp],r11
-$L$prologue::
+	mov	QWORD[((64+0))+rsp],rdi
+	mov	QWORD[((64+8))+rsp],rsi
+	mov	QWORD[((64+16))+rsp],rdx
+	mov	QWORD[((64+24))+rsp],r11
+$L$prologue:
 
-	mov	eax,DWORD PTR[rdi]
-	mov	ebx,DWORD PTR[4+rdi]
-	mov	ecx,DWORD PTR[8+rdi]
-	mov	edx,DWORD PTR[12+rdi]
-	mov	r8d,DWORD PTR[16+rdi]
-	mov	r9d,DWORD PTR[20+rdi]
-	mov	r10d,DWORD PTR[24+rdi]
-	mov	r11d,DWORD PTR[28+rdi]
-	jmp	$L$loop
+	mov	eax,DWORD[rdi]
+	mov	ebx,DWORD[4+rdi]
+	mov	ecx,DWORD[8+rdi]
+	mov	edx,DWORD[12+rdi]
+	mov	r8d,DWORD[16+rdi]
+	mov	r9d,DWORD[20+rdi]
+	mov	r10d,DWORD[24+rdi]
+	mov	r11d,DWORD[28+rdi]
+	jmp	NEAR $L$loop
 
 ALIGN	16
-$L$loop::
+$L$loop:
 	mov	edi,ebx
-	lea	rbp,QWORD PTR[K256]
+	lea	rbp,[K256]
 	xor	edi,ecx
-	mov	r12d,DWORD PTR[rsi]
+	mov	r12d,DWORD[rsi]
 	mov	r13d,r8d
 	mov	r14d,eax
 	bswap	r12d
@@ -64,7 +68,7 @@
 	ror	r14d,9
 	xor	r15d,r10d
 
-	mov	DWORD PTR[rsp],r12d
+	mov	DWORD[rsp],r12d
 	xor	r14d,eax
 	and	r15d,r8d
 
@@ -77,7 +81,7 @@
 	add	r12d,r15d
 
 	mov	r15d,eax
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,eax
 
 	xor	r15d,ebx
@@ -92,9 +96,9 @@
 	add	edx,r12d
 	add	r11d,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
+	lea	rbp,[4+rbp]
 	add	r11d,r14d
-	mov	r12d,DWORD PTR[4+rsi]
+	mov	r12d,DWORD[4+rsi]
 	mov	r13d,edx
 	mov	r14d,r11d
 	bswap	r12d
@@ -105,7 +109,7 @@
 	ror	r14d,9
 	xor	edi,r9d
 
-	mov	DWORD PTR[4+rsp],r12d
+	mov	DWORD[4+rsp],r12d
 	xor	r14d,r11d
 	and	edi,edx
 
@@ -118,7 +122,7 @@
 	add	r12d,edi
 
 	mov	edi,r11d
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,r11d
 
 	xor	edi,eax
@@ -133,9 +137,9 @@
 	add	ecx,r12d
 	add	r10d,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
+	lea	rbp,[4+rbp]
 	add	r10d,r14d
-	mov	r12d,DWORD PTR[8+rsi]
+	mov	r12d,DWORD[8+rsi]
 	mov	r13d,ecx
 	mov	r14d,r10d
 	bswap	r12d
@@ -146,7 +150,7 @@
 	ror	r14d,9
 	xor	r15d,r8d
 
-	mov	DWORD PTR[8+rsp],r12d
+	mov	DWORD[8+rsp],r12d
 	xor	r14d,r10d
 	and	r15d,ecx
 
@@ -159,7 +163,7 @@
 	add	r12d,r15d
 
 	mov	r15d,r10d
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,r10d
 
 	xor	r15d,r11d
@@ -174,9 +178,9 @@
 	add	ebx,r12d
 	add	r9d,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
+	lea	rbp,[4+rbp]
 	add	r9d,r14d
-	mov	r12d,DWORD PTR[12+rsi]
+	mov	r12d,DWORD[12+rsi]
 	mov	r13d,ebx
 	mov	r14d,r9d
 	bswap	r12d
@@ -187,7 +191,7 @@
 	ror	r14d,9
 	xor	edi,edx
 
-	mov	DWORD PTR[12+rsp],r12d
+	mov	DWORD[12+rsp],r12d
 	xor	r14d,r9d
 	and	edi,ebx
 
@@ -200,7 +204,7 @@
 	add	r12d,edi
 
 	mov	edi,r9d
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,r9d
 
 	xor	edi,r10d
@@ -215,9 +219,9 @@
 	add	eax,r12d
 	add	r8d,r12d
 
-	lea	rbp,QWORD PTR[20+rbp]
+	lea	rbp,[20+rbp]
 	add	r8d,r14d
-	mov	r12d,DWORD PTR[16+rsi]
+	mov	r12d,DWORD[16+rsi]
 	mov	r13d,eax
 	mov	r14d,r8d
 	bswap	r12d
@@ -228,7 +232,7 @@
 	ror	r14d,9
 	xor	r15d,ecx
 
-	mov	DWORD PTR[16+rsp],r12d
+	mov	DWORD[16+rsp],r12d
 	xor	r14d,r8d
 	and	r15d,eax
 
@@ -241,7 +245,7 @@
 	add	r12d,r15d
 
 	mov	r15d,r8d
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,r8d
 
 	xor	r15d,r9d
@@ -256,9 +260,9 @@
 	add	r11d,r12d
 	add	edx,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
+	lea	rbp,[4+rbp]
 	add	edx,r14d
-	mov	r12d,DWORD PTR[20+rsi]
+	mov	r12d,DWORD[20+rsi]
 	mov	r13d,r11d
 	mov	r14d,edx
 	bswap	r12d
@@ -269,7 +273,7 @@
 	ror	r14d,9
 	xor	edi,ebx
 
-	mov	DWORD PTR[20+rsp],r12d
+	mov	DWORD[20+rsp],r12d
 	xor	r14d,edx
 	and	edi,r11d
 
@@ -282,7 +286,7 @@
 	add	r12d,edi
 
 	mov	edi,edx
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,edx
 
 	xor	edi,r8d
@@ -297,9 +301,9 @@
 	add	r10d,r12d
 	add	ecx,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
+	lea	rbp,[4+rbp]
 	add	ecx,r14d
-	mov	r12d,DWORD PTR[24+rsi]
+	mov	r12d,DWORD[24+rsi]
 	mov	r13d,r10d
 	mov	r14d,ecx
 	bswap	r12d
@@ -310,7 +314,7 @@
 	ror	r14d,9
 	xor	r15d,eax
 
-	mov	DWORD PTR[24+rsp],r12d
+	mov	DWORD[24+rsp],r12d
 	xor	r14d,ecx
 	and	r15d,r10d
 
@@ -323,7 +327,7 @@
 	add	r12d,r15d
 
 	mov	r15d,ecx
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,ecx
 
 	xor	r15d,edx
@@ -338,9 +342,9 @@
 	add	r9d,r12d
 	add	ebx,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
+	lea	rbp,[4+rbp]
 	add	ebx,r14d
-	mov	r12d,DWORD PTR[28+rsi]
+	mov	r12d,DWORD[28+rsi]
 	mov	r13d,r9d
 	mov	r14d,ebx
 	bswap	r12d
@@ -351,7 +355,7 @@
 	ror	r14d,9
 	xor	edi,r11d
 
-	mov	DWORD PTR[28+rsp],r12d
+	mov	DWORD[28+rsp],r12d
 	xor	r14d,ebx
 	and	edi,r9d
 
@@ -364,7 +368,7 @@
 	add	r12d,edi
 
 	mov	edi,ebx
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,ebx
 
 	xor	edi,ecx
@@ -379,9 +383,9 @@
 	add	r8d,r12d
 	add	eax,r12d
 
-	lea	rbp,QWORD PTR[20+rbp]
+	lea	rbp,[20+rbp]
 	add	eax,r14d
-	mov	r12d,DWORD PTR[32+rsi]
+	mov	r12d,DWORD[32+rsi]
 	mov	r13d,r8d
 	mov	r14d,eax
 	bswap	r12d
@@ -392,7 +396,7 @@
 	ror	r14d,9
 	xor	r15d,r10d
 
-	mov	DWORD PTR[32+rsp],r12d
+	mov	DWORD[32+rsp],r12d
 	xor	r14d,eax
 	and	r15d,r8d
 
@@ -405,7 +409,7 @@
 	add	r12d,r15d
 
 	mov	r15d,eax
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,eax
 
 	xor	r15d,ebx
@@ -420,9 +424,9 @@
 	add	edx,r12d
 	add	r11d,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
+	lea	rbp,[4+rbp]
 	add	r11d,r14d
-	mov	r12d,DWORD PTR[36+rsi]
+	mov	r12d,DWORD[36+rsi]
 	mov	r13d,edx
 	mov	r14d,r11d
 	bswap	r12d
@@ -433,7 +437,7 @@
 	ror	r14d,9
 	xor	edi,r9d
 
-	mov	DWORD PTR[36+rsp],r12d
+	mov	DWORD[36+rsp],r12d
 	xor	r14d,r11d
 	and	edi,edx
 
@@ -446,7 +450,7 @@
 	add	r12d,edi
 
 	mov	edi,r11d
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,r11d
 
 	xor	edi,eax
@@ -461,9 +465,9 @@
 	add	ecx,r12d
 	add	r10d,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
+	lea	rbp,[4+rbp]
 	add	r10d,r14d
-	mov	r12d,DWORD PTR[40+rsi]
+	mov	r12d,DWORD[40+rsi]
 	mov	r13d,ecx
 	mov	r14d,r10d
 	bswap	r12d
@@ -474,7 +478,7 @@
 	ror	r14d,9
 	xor	r15d,r8d
 
-	mov	DWORD PTR[40+rsp],r12d
+	mov	DWORD[40+rsp],r12d
 	xor	r14d,r10d
 	and	r15d,ecx
 
@@ -487,7 +491,7 @@
 	add	r12d,r15d
 
 	mov	r15d,r10d
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,r10d
 
 	xor	r15d,r11d
@@ -502,9 +506,9 @@
 	add	ebx,r12d
 	add	r9d,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
+	lea	rbp,[4+rbp]
 	add	r9d,r14d
-	mov	r12d,DWORD PTR[44+rsi]
+	mov	r12d,DWORD[44+rsi]
 	mov	r13d,ebx
 	mov	r14d,r9d
 	bswap	r12d
@@ -515,7 +519,7 @@
 	ror	r14d,9
 	xor	edi,edx
 
-	mov	DWORD PTR[44+rsp],r12d
+	mov	DWORD[44+rsp],r12d
 	xor	r14d,r9d
 	and	edi,ebx
 
@@ -528,7 +532,7 @@
 	add	r12d,edi
 
 	mov	edi,r9d
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,r9d
 
 	xor	edi,r10d
@@ -543,9 +547,9 @@
 	add	eax,r12d
 	add	r8d,r12d
 
-	lea	rbp,QWORD PTR[20+rbp]
+	lea	rbp,[20+rbp]
 	add	r8d,r14d
-	mov	r12d,DWORD PTR[48+rsi]
+	mov	r12d,DWORD[48+rsi]
 	mov	r13d,eax
 	mov	r14d,r8d
 	bswap	r12d
@@ -556,7 +560,7 @@
 	ror	r14d,9
 	xor	r15d,ecx
 
-	mov	DWORD PTR[48+rsp],r12d
+	mov	DWORD[48+rsp],r12d
 	xor	r14d,r8d
 	and	r15d,eax
 
@@ -569,7 +573,7 @@
 	add	r12d,r15d
 
 	mov	r15d,r8d
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,r8d
 
 	xor	r15d,r9d
@@ -584,9 +588,9 @@
 	add	r11d,r12d
 	add	edx,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
+	lea	rbp,[4+rbp]
 	add	edx,r14d
-	mov	r12d,DWORD PTR[52+rsi]
+	mov	r12d,DWORD[52+rsi]
 	mov	r13d,r11d
 	mov	r14d,edx
 	bswap	r12d
@@ -597,7 +601,7 @@
 	ror	r14d,9
 	xor	edi,ebx
 
-	mov	DWORD PTR[52+rsp],r12d
+	mov	DWORD[52+rsp],r12d
 	xor	r14d,edx
 	and	edi,r11d
 
@@ -610,7 +614,7 @@
 	add	r12d,edi
 
 	mov	edi,edx
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,edx
 
 	xor	edi,r8d
@@ -625,9 +629,9 @@
 	add	r10d,r12d
 	add	ecx,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
+	lea	rbp,[4+rbp]
 	add	ecx,r14d
-	mov	r12d,DWORD PTR[56+rsi]
+	mov	r12d,DWORD[56+rsi]
 	mov	r13d,r10d
 	mov	r14d,ecx
 	bswap	r12d
@@ -638,7 +642,7 @@
 	ror	r14d,9
 	xor	r15d,eax
 
-	mov	DWORD PTR[56+rsp],r12d
+	mov	DWORD[56+rsp],r12d
 	xor	r14d,ecx
 	and	r15d,r10d
 
@@ -651,7 +655,7 @@
 	add	r12d,r15d
 
 	mov	r15d,ecx
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,ecx
 
 	xor	r15d,edx
@@ -666,9 +670,9 @@
 	add	r9d,r12d
 	add	ebx,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
+	lea	rbp,[4+rbp]
 	add	ebx,r14d
-	mov	r12d,DWORD PTR[60+rsi]
+	mov	r12d,DWORD[60+rsi]
 	mov	r13d,r9d
 	mov	r14d,ebx
 	bswap	r12d
@@ -679,7 +683,7 @@
 	ror	r14d,9
 	xor	edi,r11d
 
-	mov	DWORD PTR[60+rsp],r12d
+	mov	DWORD[60+rsp],r12d
 	xor	r14d,ebx
 	and	edi,r9d
 
@@ -692,7 +696,7 @@
 	add	r12d,edi
 
 	mov	edi,ebx
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,ebx
 
 	xor	edi,ecx
@@ -707,12 +711,12 @@
 	add	r8d,r12d
 	add	eax,r12d
 
-	lea	rbp,QWORD PTR[20+rbp]
-	jmp	$L$rounds_16_xx
+	lea	rbp,[20+rbp]
+	jmp	NEAR $L$rounds_16_xx
 ALIGN	16
-$L$rounds_16_xx::
-	mov	r13d,DWORD PTR[4+rsp]
-	mov	r15d,DWORD PTR[56+rsp]
+$L$rounds_16_xx:
+	mov	r13d,DWORD[4+rsp]
+	mov	r15d,DWORD[56+rsp]
 
 	mov	r12d,r13d
 	ror	r13d,11
@@ -729,9 +733,9 @@
 	ror	r15d,17
 	xor	r12d,r13d
 	xor	r15d,r14d
-	add	r12d,DWORD PTR[36+rsp]
+	add	r12d,DWORD[36+rsp]
 
-	add	r12d,DWORD PTR[rsp]
+	add	r12d,DWORD[rsp]
 	mov	r13d,r8d
 	add	r12d,r15d
 	mov	r14d,eax
@@ -742,7 +746,7 @@
 	ror	r14d,9
 	xor	r15d,r10d
 
-	mov	DWORD PTR[rsp],r12d
+	mov	DWORD[rsp],r12d
 	xor	r14d,eax
 	and	r15d,r8d
 
@@ -755,7 +759,7 @@
 	add	r12d,r15d
 
 	mov	r15d,eax
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,eax
 
 	xor	r15d,ebx
@@ -770,9 +774,9 @@
 	add	edx,r12d
 	add	r11d,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
-	mov	r13d,DWORD PTR[8+rsp]
-	mov	edi,DWORD PTR[60+rsp]
+	lea	rbp,[4+rbp]
+	mov	r13d,DWORD[8+rsp]
+	mov	edi,DWORD[60+rsp]
 
 	mov	r12d,r13d
 	ror	r13d,11
@@ -789,9 +793,9 @@
 	ror	edi,17
 	xor	r12d,r13d
 	xor	edi,r14d
-	add	r12d,DWORD PTR[40+rsp]
+	add	r12d,DWORD[40+rsp]
 
-	add	r12d,DWORD PTR[4+rsp]
+	add	r12d,DWORD[4+rsp]
 	mov	r13d,edx
 	add	r12d,edi
 	mov	r14d,r11d
@@ -802,7 +806,7 @@
 	ror	r14d,9
 	xor	edi,r9d
 
-	mov	DWORD PTR[4+rsp],r12d
+	mov	DWORD[4+rsp],r12d
 	xor	r14d,r11d
 	and	edi,edx
 
@@ -815,7 +819,7 @@
 	add	r12d,edi
 
 	mov	edi,r11d
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,r11d
 
 	xor	edi,eax
@@ -830,9 +834,9 @@
 	add	ecx,r12d
 	add	r10d,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
-	mov	r13d,DWORD PTR[12+rsp]
-	mov	r15d,DWORD PTR[rsp]
+	lea	rbp,[4+rbp]
+	mov	r13d,DWORD[12+rsp]
+	mov	r15d,DWORD[rsp]
 
 	mov	r12d,r13d
 	ror	r13d,11
@@ -849,9 +853,9 @@
 	ror	r15d,17
 	xor	r12d,r13d
 	xor	r15d,r14d
-	add	r12d,DWORD PTR[44+rsp]
+	add	r12d,DWORD[44+rsp]
 
-	add	r12d,DWORD PTR[8+rsp]
+	add	r12d,DWORD[8+rsp]
 	mov	r13d,ecx
 	add	r12d,r15d
 	mov	r14d,r10d
@@ -862,7 +866,7 @@
 	ror	r14d,9
 	xor	r15d,r8d
 
-	mov	DWORD PTR[8+rsp],r12d
+	mov	DWORD[8+rsp],r12d
 	xor	r14d,r10d
 	and	r15d,ecx
 
@@ -875,7 +879,7 @@
 	add	r12d,r15d
 
 	mov	r15d,r10d
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,r10d
 
 	xor	r15d,r11d
@@ -890,9 +894,9 @@
 	add	ebx,r12d
 	add	r9d,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
-	mov	r13d,DWORD PTR[16+rsp]
-	mov	edi,DWORD PTR[4+rsp]
+	lea	rbp,[4+rbp]
+	mov	r13d,DWORD[16+rsp]
+	mov	edi,DWORD[4+rsp]
 
 	mov	r12d,r13d
 	ror	r13d,11
@@ -909,9 +913,9 @@
 	ror	edi,17
 	xor	r12d,r13d
 	xor	edi,r14d
-	add	r12d,DWORD PTR[48+rsp]
+	add	r12d,DWORD[48+rsp]
 
-	add	r12d,DWORD PTR[12+rsp]
+	add	r12d,DWORD[12+rsp]
 	mov	r13d,ebx
 	add	r12d,edi
 	mov	r14d,r9d
@@ -922,7 +926,7 @@
 	ror	r14d,9
 	xor	edi,edx
 
-	mov	DWORD PTR[12+rsp],r12d
+	mov	DWORD[12+rsp],r12d
 	xor	r14d,r9d
 	and	edi,ebx
 
@@ -935,7 +939,7 @@
 	add	r12d,edi
 
 	mov	edi,r9d
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,r9d
 
 	xor	edi,r10d
@@ -950,9 +954,9 @@
 	add	eax,r12d
 	add	r8d,r12d
 
-	lea	rbp,QWORD PTR[20+rbp]
-	mov	r13d,DWORD PTR[20+rsp]
-	mov	r15d,DWORD PTR[8+rsp]
+	lea	rbp,[20+rbp]
+	mov	r13d,DWORD[20+rsp]
+	mov	r15d,DWORD[8+rsp]
 
 	mov	r12d,r13d
 	ror	r13d,11
@@ -969,9 +973,9 @@
 	ror	r15d,17
 	xor	r12d,r13d
 	xor	r15d,r14d
-	add	r12d,DWORD PTR[52+rsp]
+	add	r12d,DWORD[52+rsp]
 
-	add	r12d,DWORD PTR[16+rsp]
+	add	r12d,DWORD[16+rsp]
 	mov	r13d,eax
 	add	r12d,r15d
 	mov	r14d,r8d
@@ -982,7 +986,7 @@
 	ror	r14d,9
 	xor	r15d,ecx
 
-	mov	DWORD PTR[16+rsp],r12d
+	mov	DWORD[16+rsp],r12d
 	xor	r14d,r8d
 	and	r15d,eax
 
@@ -995,7 +999,7 @@
 	add	r12d,r15d
 
 	mov	r15d,r8d
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,r8d
 
 	xor	r15d,r9d
@@ -1010,9 +1014,9 @@
 	add	r11d,r12d
 	add	edx,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
-	mov	r13d,DWORD PTR[24+rsp]
-	mov	edi,DWORD PTR[12+rsp]
+	lea	rbp,[4+rbp]
+	mov	r13d,DWORD[24+rsp]
+	mov	edi,DWORD[12+rsp]
 
 	mov	r12d,r13d
 	ror	r13d,11
@@ -1029,9 +1033,9 @@
 	ror	edi,17
 	xor	r12d,r13d
 	xor	edi,r14d
-	add	r12d,DWORD PTR[56+rsp]
+	add	r12d,DWORD[56+rsp]
 
-	add	r12d,DWORD PTR[20+rsp]
+	add	r12d,DWORD[20+rsp]
 	mov	r13d,r11d
 	add	r12d,edi
 	mov	r14d,edx
@@ -1042,7 +1046,7 @@
 	ror	r14d,9
 	xor	edi,ebx
 
-	mov	DWORD PTR[20+rsp],r12d
+	mov	DWORD[20+rsp],r12d
 	xor	r14d,edx
 	and	edi,r11d
 
@@ -1055,7 +1059,7 @@
 	add	r12d,edi
 
 	mov	edi,edx
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,edx
 
 	xor	edi,r8d
@@ -1070,9 +1074,9 @@
 	add	r10d,r12d
 	add	ecx,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
-	mov	r13d,DWORD PTR[28+rsp]
-	mov	r15d,DWORD PTR[16+rsp]
+	lea	rbp,[4+rbp]
+	mov	r13d,DWORD[28+rsp]
+	mov	r15d,DWORD[16+rsp]
 
 	mov	r12d,r13d
 	ror	r13d,11
@@ -1089,9 +1093,9 @@
 	ror	r15d,17
 	xor	r12d,r13d
 	xor	r15d,r14d
-	add	r12d,DWORD PTR[60+rsp]
+	add	r12d,DWORD[60+rsp]
 
-	add	r12d,DWORD PTR[24+rsp]
+	add	r12d,DWORD[24+rsp]
 	mov	r13d,r10d
 	add	r12d,r15d
 	mov	r14d,ecx
@@ -1102,7 +1106,7 @@
 	ror	r14d,9
 	xor	r15d,eax
 
-	mov	DWORD PTR[24+rsp],r12d
+	mov	DWORD[24+rsp],r12d
 	xor	r14d,ecx
 	and	r15d,r10d
 
@@ -1115,7 +1119,7 @@
 	add	r12d,r15d
 
 	mov	r15d,ecx
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,ecx
 
 	xor	r15d,edx
@@ -1130,9 +1134,9 @@
 	add	r9d,r12d
 	add	ebx,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
-	mov	r13d,DWORD PTR[32+rsp]
-	mov	edi,DWORD PTR[20+rsp]
+	lea	rbp,[4+rbp]
+	mov	r13d,DWORD[32+rsp]
+	mov	edi,DWORD[20+rsp]
 
 	mov	r12d,r13d
 	ror	r13d,11
@@ -1149,9 +1153,9 @@
 	ror	edi,17
 	xor	r12d,r13d
 	xor	edi,r14d
-	add	r12d,DWORD PTR[rsp]
+	add	r12d,DWORD[rsp]
 
-	add	r12d,DWORD PTR[28+rsp]
+	add	r12d,DWORD[28+rsp]
 	mov	r13d,r9d
 	add	r12d,edi
 	mov	r14d,ebx
@@ -1162,7 +1166,7 @@
 	ror	r14d,9
 	xor	edi,r11d
 
-	mov	DWORD PTR[28+rsp],r12d
+	mov	DWORD[28+rsp],r12d
 	xor	r14d,ebx
 	and	edi,r9d
 
@@ -1175,7 +1179,7 @@
 	add	r12d,edi
 
 	mov	edi,ebx
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,ebx
 
 	xor	edi,ecx
@@ -1190,9 +1194,9 @@
 	add	r8d,r12d
 	add	eax,r12d
 
-	lea	rbp,QWORD PTR[20+rbp]
-	mov	r13d,DWORD PTR[36+rsp]
-	mov	r15d,DWORD PTR[24+rsp]
+	lea	rbp,[20+rbp]
+	mov	r13d,DWORD[36+rsp]
+	mov	r15d,DWORD[24+rsp]
 
 	mov	r12d,r13d
 	ror	r13d,11
@@ -1209,9 +1213,9 @@
 	ror	r15d,17
 	xor	r12d,r13d
 	xor	r15d,r14d
-	add	r12d,DWORD PTR[4+rsp]
+	add	r12d,DWORD[4+rsp]
 
-	add	r12d,DWORD PTR[32+rsp]
+	add	r12d,DWORD[32+rsp]
 	mov	r13d,r8d
 	add	r12d,r15d
 	mov	r14d,eax
@@ -1222,7 +1226,7 @@
 	ror	r14d,9
 	xor	r15d,r10d
 
-	mov	DWORD PTR[32+rsp],r12d
+	mov	DWORD[32+rsp],r12d
 	xor	r14d,eax
 	and	r15d,r8d
 
@@ -1235,7 +1239,7 @@
 	add	r12d,r15d
 
 	mov	r15d,eax
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,eax
 
 	xor	r15d,ebx
@@ -1250,9 +1254,9 @@
 	add	edx,r12d
 	add	r11d,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
-	mov	r13d,DWORD PTR[40+rsp]
-	mov	edi,DWORD PTR[28+rsp]
+	lea	rbp,[4+rbp]
+	mov	r13d,DWORD[40+rsp]
+	mov	edi,DWORD[28+rsp]
 
 	mov	r12d,r13d
 	ror	r13d,11
@@ -1269,9 +1273,9 @@
 	ror	edi,17
 	xor	r12d,r13d
 	xor	edi,r14d
-	add	r12d,DWORD PTR[8+rsp]
+	add	r12d,DWORD[8+rsp]
 
-	add	r12d,DWORD PTR[36+rsp]
+	add	r12d,DWORD[36+rsp]
 	mov	r13d,edx
 	add	r12d,edi
 	mov	r14d,r11d
@@ -1282,7 +1286,7 @@
 	ror	r14d,9
 	xor	edi,r9d
 
-	mov	DWORD PTR[36+rsp],r12d
+	mov	DWORD[36+rsp],r12d
 	xor	r14d,r11d
 	and	edi,edx
 
@@ -1295,7 +1299,7 @@
 	add	r12d,edi
 
 	mov	edi,r11d
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,r11d
 
 	xor	edi,eax
@@ -1310,9 +1314,9 @@
 	add	ecx,r12d
 	add	r10d,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
-	mov	r13d,DWORD PTR[44+rsp]
-	mov	r15d,DWORD PTR[32+rsp]
+	lea	rbp,[4+rbp]
+	mov	r13d,DWORD[44+rsp]
+	mov	r15d,DWORD[32+rsp]
 
 	mov	r12d,r13d
 	ror	r13d,11
@@ -1329,9 +1333,9 @@
 	ror	r15d,17
 	xor	r12d,r13d
 	xor	r15d,r14d
-	add	r12d,DWORD PTR[12+rsp]
+	add	r12d,DWORD[12+rsp]
 
-	add	r12d,DWORD PTR[40+rsp]
+	add	r12d,DWORD[40+rsp]
 	mov	r13d,ecx
 	add	r12d,r15d
 	mov	r14d,r10d
@@ -1342,7 +1346,7 @@
 	ror	r14d,9
 	xor	r15d,r8d
 
-	mov	DWORD PTR[40+rsp],r12d
+	mov	DWORD[40+rsp],r12d
 	xor	r14d,r10d
 	and	r15d,ecx
 
@@ -1355,7 +1359,7 @@
 	add	r12d,r15d
 
 	mov	r15d,r10d
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,r10d
 
 	xor	r15d,r11d
@@ -1370,9 +1374,9 @@
 	add	ebx,r12d
 	add	r9d,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
-	mov	r13d,DWORD PTR[48+rsp]
-	mov	edi,DWORD PTR[36+rsp]
+	lea	rbp,[4+rbp]
+	mov	r13d,DWORD[48+rsp]
+	mov	edi,DWORD[36+rsp]
 
 	mov	r12d,r13d
 	ror	r13d,11
@@ -1389,9 +1393,9 @@
 	ror	edi,17
 	xor	r12d,r13d
 	xor	edi,r14d
-	add	r12d,DWORD PTR[16+rsp]
+	add	r12d,DWORD[16+rsp]
 
-	add	r12d,DWORD PTR[44+rsp]
+	add	r12d,DWORD[44+rsp]
 	mov	r13d,ebx
 	add	r12d,edi
 	mov	r14d,r9d
@@ -1402,7 +1406,7 @@
 	ror	r14d,9
 	xor	edi,edx
 
-	mov	DWORD PTR[44+rsp],r12d
+	mov	DWORD[44+rsp],r12d
 	xor	r14d,r9d
 	and	edi,ebx
 
@@ -1415,7 +1419,7 @@
 	add	r12d,edi
 
 	mov	edi,r9d
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,r9d
 
 	xor	edi,r10d
@@ -1430,9 +1434,9 @@
 	add	eax,r12d
 	add	r8d,r12d
 
-	lea	rbp,QWORD PTR[20+rbp]
-	mov	r13d,DWORD PTR[52+rsp]
-	mov	r15d,DWORD PTR[40+rsp]
+	lea	rbp,[20+rbp]
+	mov	r13d,DWORD[52+rsp]
+	mov	r15d,DWORD[40+rsp]
 
 	mov	r12d,r13d
 	ror	r13d,11
@@ -1449,9 +1453,9 @@
 	ror	r15d,17
 	xor	r12d,r13d
 	xor	r15d,r14d
-	add	r12d,DWORD PTR[20+rsp]
+	add	r12d,DWORD[20+rsp]
 
-	add	r12d,DWORD PTR[48+rsp]
+	add	r12d,DWORD[48+rsp]
 	mov	r13d,eax
 	add	r12d,r15d
 	mov	r14d,r8d
@@ -1462,7 +1466,7 @@
 	ror	r14d,9
 	xor	r15d,ecx
 
-	mov	DWORD PTR[48+rsp],r12d
+	mov	DWORD[48+rsp],r12d
 	xor	r14d,r8d
 	and	r15d,eax
 
@@ -1475,7 +1479,7 @@
 	add	r12d,r15d
 
 	mov	r15d,r8d
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,r8d
 
 	xor	r15d,r9d
@@ -1490,9 +1494,9 @@
 	add	r11d,r12d
 	add	edx,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
-	mov	r13d,DWORD PTR[56+rsp]
-	mov	edi,DWORD PTR[44+rsp]
+	lea	rbp,[4+rbp]
+	mov	r13d,DWORD[56+rsp]
+	mov	edi,DWORD[44+rsp]
 
 	mov	r12d,r13d
 	ror	r13d,11
@@ -1509,9 +1513,9 @@
 	ror	edi,17
 	xor	r12d,r13d
 	xor	edi,r14d
-	add	r12d,DWORD PTR[24+rsp]
+	add	r12d,DWORD[24+rsp]
 
-	add	r12d,DWORD PTR[52+rsp]
+	add	r12d,DWORD[52+rsp]
 	mov	r13d,r11d
 	add	r12d,edi
 	mov	r14d,edx
@@ -1522,7 +1526,7 @@
 	ror	r14d,9
 	xor	edi,ebx
 
-	mov	DWORD PTR[52+rsp],r12d
+	mov	DWORD[52+rsp],r12d
 	xor	r14d,edx
 	and	edi,r11d
 
@@ -1535,7 +1539,7 @@
 	add	r12d,edi
 
 	mov	edi,edx
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,edx
 
 	xor	edi,r8d
@@ -1550,9 +1554,9 @@
 	add	r10d,r12d
 	add	ecx,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
-	mov	r13d,DWORD PTR[60+rsp]
-	mov	r15d,DWORD PTR[48+rsp]
+	lea	rbp,[4+rbp]
+	mov	r13d,DWORD[60+rsp]
+	mov	r15d,DWORD[48+rsp]
 
 	mov	r12d,r13d
 	ror	r13d,11
@@ -1569,9 +1573,9 @@
 	ror	r15d,17
 	xor	r12d,r13d
 	xor	r15d,r14d
-	add	r12d,DWORD PTR[28+rsp]
+	add	r12d,DWORD[28+rsp]
 
-	add	r12d,DWORD PTR[56+rsp]
+	add	r12d,DWORD[56+rsp]
 	mov	r13d,r10d
 	add	r12d,r15d
 	mov	r14d,ecx
@@ -1582,7 +1586,7 @@
 	ror	r14d,9
 	xor	r15d,eax
 
-	mov	DWORD PTR[56+rsp],r12d
+	mov	DWORD[56+rsp],r12d
 	xor	r14d,ecx
 	and	r15d,r10d
 
@@ -1595,7 +1599,7 @@
 	add	r12d,r15d
 
 	mov	r15d,ecx
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,ecx
 
 	xor	r15d,edx
@@ -1610,9 +1614,9 @@
 	add	r9d,r12d
 	add	ebx,r12d
 
-	lea	rbp,QWORD PTR[4+rbp]
-	mov	r13d,DWORD PTR[rsp]
-	mov	edi,DWORD PTR[52+rsp]
+	lea	rbp,[4+rbp]
+	mov	r13d,DWORD[rsp]
+	mov	edi,DWORD[52+rsp]
 
 	mov	r12d,r13d
 	ror	r13d,11
@@ -1629,9 +1633,9 @@
 	ror	edi,17
 	xor	r12d,r13d
 	xor	edi,r14d
-	add	r12d,DWORD PTR[32+rsp]
+	add	r12d,DWORD[32+rsp]
 
-	add	r12d,DWORD PTR[60+rsp]
+	add	r12d,DWORD[60+rsp]
 	mov	r13d,r9d
 	add	r12d,edi
 	mov	r14d,ebx
@@ -1642,7 +1646,7 @@
 	ror	r14d,9
 	xor	edi,r11d
 
-	mov	DWORD PTR[60+rsp],r12d
+	mov	DWORD[60+rsp],r12d
 	xor	r14d,ebx
 	and	edi,r9d
 
@@ -1655,7 +1659,7 @@
 	add	r12d,edi
 
 	mov	edi,ebx
-	add	r12d,DWORD PTR[rbp]
+	add	r12d,DWORD[rbp]
 	xor	r14d,ebx
 
 	xor	edi,ecx
@@ -1670,91 +1674,90 @@
 	add	r8d,r12d
 	add	eax,r12d
 
-	lea	rbp,QWORD PTR[20+rbp]
-	cmp	BYTE PTR[3+rbp],0
-	jnz	$L$rounds_16_xx
+	lea	rbp,[20+rbp]
+	cmp	BYTE[3+rbp],0
+	jnz	NEAR $L$rounds_16_xx
 
-	mov	rdi,QWORD PTR[((64+0))+rsp]
+	mov	rdi,QWORD[((64+0))+rsp]
 	add	eax,r14d
-	lea	rsi,QWORD PTR[64+rsi]
+	lea	rsi,[64+rsi]
 
-	add	eax,DWORD PTR[rdi]
-	add	ebx,DWORD PTR[4+rdi]
-	add	ecx,DWORD PTR[8+rdi]
-	add	edx,DWORD PTR[12+rdi]
-	add	r8d,DWORD PTR[16+rdi]
-	add	r9d,DWORD PTR[20+rdi]
-	add	r10d,DWORD PTR[24+rdi]
-	add	r11d,DWORD PTR[28+rdi]
+	add	eax,DWORD[rdi]
+	add	ebx,DWORD[4+rdi]
+	add	ecx,DWORD[8+rdi]
+	add	edx,DWORD[12+rdi]
+	add	r8d,DWORD[16+rdi]
+	add	r9d,DWORD[20+rdi]
+	add	r10d,DWORD[24+rdi]
+	add	r11d,DWORD[28+rdi]
 
-	cmp	rsi,QWORD PTR[((64+16))+rsp]
+	cmp	rsi,QWORD[((64+16))+rsp]
 
-	mov	DWORD PTR[rdi],eax
-	mov	DWORD PTR[4+rdi],ebx
-	mov	DWORD PTR[8+rdi],ecx
-	mov	DWORD PTR[12+rdi],edx
-	mov	DWORD PTR[16+rdi],r8d
-	mov	DWORD PTR[20+rdi],r9d
-	mov	DWORD PTR[24+rdi],r10d
-	mov	DWORD PTR[28+rdi],r11d
-	jb	$L$loop
+	mov	DWORD[rdi],eax
+	mov	DWORD[4+rdi],ebx
+	mov	DWORD[8+rdi],ecx
+	mov	DWORD[12+rdi],edx
+	mov	DWORD[16+rdi],r8d
+	mov	DWORD[20+rdi],r9d
+	mov	DWORD[24+rdi],r10d
+	mov	DWORD[28+rdi],r11d
+	jb	NEAR $L$loop
 
-	mov	rsi,QWORD PTR[((64+24))+rsp]
-	mov	r15,QWORD PTR[rsi]
-	mov	r14,QWORD PTR[8+rsi]
-	mov	r13,QWORD PTR[16+rsi]
-	mov	r12,QWORD PTR[24+rsi]
-	mov	rbp,QWORD PTR[32+rsi]
-	mov	rbx,QWORD PTR[40+rsi]
-	lea	rsp,QWORD PTR[48+rsi]
-$L$epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	mov	rsi,QWORD[((64+24))+rsp]
+	mov	r15,QWORD[rsi]
+	mov	r14,QWORD[8+rsi]
+	mov	r13,QWORD[16+rsi]
+	mov	r12,QWORD[24+rsi]
+	mov	rbp,QWORD[32+rsi]
+	mov	rbx,QWORD[40+rsi]
+	lea	rsp,[48+rsi]
+$L$epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_sha256_block_data_order::
-sha256_block_data_order	ENDP
+$L$SEH_end_sha256_block_data_order:
 ALIGN	64
 
-K256::
-	DD	0428a2f98h,071374491h,0b5c0fbcfh,0e9b5dba5h
-	DD	0428a2f98h,071374491h,0b5c0fbcfh,0e9b5dba5h
-	DD	03956c25bh,059f111f1h,0923f82a4h,0ab1c5ed5h
-	DD	03956c25bh,059f111f1h,0923f82a4h,0ab1c5ed5h
-	DD	0d807aa98h,012835b01h,0243185beh,0550c7dc3h
-	DD	0d807aa98h,012835b01h,0243185beh,0550c7dc3h
-	DD	072be5d74h,080deb1feh,09bdc06a7h,0c19bf174h
-	DD	072be5d74h,080deb1feh,09bdc06a7h,0c19bf174h
-	DD	0e49b69c1h,0efbe4786h,00fc19dc6h,0240ca1cch
-	DD	0e49b69c1h,0efbe4786h,00fc19dc6h,0240ca1cch
-	DD	02de92c6fh,04a7484aah,05cb0a9dch,076f988dah
-	DD	02de92c6fh,04a7484aah,05cb0a9dch,076f988dah
-	DD	0983e5152h,0a831c66dh,0b00327c8h,0bf597fc7h
-	DD	0983e5152h,0a831c66dh,0b00327c8h,0bf597fc7h
-	DD	0c6e00bf3h,0d5a79147h,006ca6351h,014292967h
-	DD	0c6e00bf3h,0d5a79147h,006ca6351h,014292967h
-	DD	027b70a85h,02e1b2138h,04d2c6dfch,053380d13h
-	DD	027b70a85h,02e1b2138h,04d2c6dfch,053380d13h
-	DD	0650a7354h,0766a0abbh,081c2c92eh,092722c85h
-	DD	0650a7354h,0766a0abbh,081c2c92eh,092722c85h
-	DD	0a2bfe8a1h,0a81a664bh,0c24b8b70h,0c76c51a3h
-	DD	0a2bfe8a1h,0a81a664bh,0c24b8b70h,0c76c51a3h
-	DD	0d192e819h,0d6990624h,0f40e3585h,0106aa070h
-	DD	0d192e819h,0d6990624h,0f40e3585h,0106aa070h
-	DD	019a4c116h,01e376c08h,02748774ch,034b0bcb5h
-	DD	019a4c116h,01e376c08h,02748774ch,034b0bcb5h
-	DD	0391c0cb3h,04ed8aa4ah,05b9cca4fh,0682e6ff3h
-	DD	0391c0cb3h,04ed8aa4ah,05b9cca4fh,0682e6ff3h
-	DD	0748f82eeh,078a5636fh,084c87814h,08cc70208h
-	DD	0748f82eeh,078a5636fh,084c87814h,08cc70208h
-	DD	090befffah,0a4506cebh,0bef9a3f7h,0c67178f2h
-	DD	090befffah,0a4506cebh,0bef9a3f7h,0c67178f2h
+K256:
+	DD	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
+	DD	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
+	DD	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
+	DD	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
+	DD	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
+	DD	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
+	DD	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
+	DD	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
+	DD	0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
+	DD	0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
+	DD	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
+	DD	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
+	DD	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
+	DD	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
+	DD	0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
+	DD	0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
+	DD	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
+	DD	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
+	DD	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
+	DD	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
+	DD	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
+	DD	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
+	DD	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
+	DD	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
+	DD	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
+	DD	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
+	DD	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
+	DD	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
+	DD	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
+	DD	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
+	DD	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
+	DD	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
 
-	DD	000010203h,004050607h,008090a0bh,00c0d0e0fh
-	DD	000010203h,004050607h,008090a0bh,00c0d0e0fh
-	DD	003020100h,00b0a0908h,0ffffffffh,0ffffffffh
-	DD	003020100h,00b0a0908h,0ffffffffh,0ffffffffh
-	DD	0ffffffffh,0ffffffffh,003020100h,00b0a0908h
-	DD	0ffffffffh,0ffffffffh,003020100h,00b0a0908h
+	DD	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
+	DD	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
+	DD	0x03020100,0x0b0a0908,0xffffffff,0xffffffff
+	DD	0x03020100,0x0b0a0908,0xffffffff,0xffffffff
+	DD	0xffffffff,0xffffffff,0x03020100,0x0b0a0908
+	DD	0xffffffff,0xffffffff,0x03020100,0x0b0a0908
 DB	83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97
 DB	110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54
 DB	52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121
@@ -1762,17 +1765,17 @@
 DB	111,114,103,62,0
 
 ALIGN	64
-sha256_block_data_order_ssse3	PROC PRIVATE
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+sha256_block_data_order_ssse3:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_sha256_block_data_order_ssse3::
+$L$SEH_begin_sha256_block_data_order_ssse3:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
 
 
-$L$ssse3_shortcut::
+$L$ssse3_shortcut:
 	push	rbx
 	push	rbp
 	push	r12
@@ -1782,61 +1785,61 @@
 	mov	r11,rsp
 	shl	rdx,4
 	sub	rsp,160
-	lea	rdx,QWORD PTR[rdx*4+rsi]
+	lea	rdx,[rdx*4+rsi]
 	and	rsp,-64
-	mov	QWORD PTR[((64+0))+rsp],rdi
-	mov	QWORD PTR[((64+8))+rsp],rsi
-	mov	QWORD PTR[((64+16))+rsp],rdx
-	mov	QWORD PTR[((64+24))+rsp],r11
-	movaps	XMMWORD PTR[(64+32)+rsp],xmm6
-	movaps	XMMWORD PTR[(64+48)+rsp],xmm7
-	movaps	XMMWORD PTR[(64+64)+rsp],xmm8
-	movaps	XMMWORD PTR[(64+80)+rsp],xmm9
-$L$prologue_ssse3::
+	mov	QWORD[((64+0))+rsp],rdi
+	mov	QWORD[((64+8))+rsp],rsi
+	mov	QWORD[((64+16))+rsp],rdx
+	mov	QWORD[((64+24))+rsp],r11
+	movaps	XMMWORD[(64+32)+rsp],xmm6
+	movaps	XMMWORD[(64+48)+rsp],xmm7
+	movaps	XMMWORD[(64+64)+rsp],xmm8
+	movaps	XMMWORD[(64+80)+rsp],xmm9
+$L$prologue_ssse3:
 
-	mov	eax,DWORD PTR[rdi]
-	mov	ebx,DWORD PTR[4+rdi]
-	mov	ecx,DWORD PTR[8+rdi]
-	mov	edx,DWORD PTR[12+rdi]
-	mov	r8d,DWORD PTR[16+rdi]
-	mov	r9d,DWORD PTR[20+rdi]
-	mov	r10d,DWORD PTR[24+rdi]
-	mov	r11d,DWORD PTR[28+rdi]
+	mov	eax,DWORD[rdi]
+	mov	ebx,DWORD[4+rdi]
+	mov	ecx,DWORD[8+rdi]
+	mov	edx,DWORD[12+rdi]
+	mov	r8d,DWORD[16+rdi]
+	mov	r9d,DWORD[20+rdi]
+	mov	r10d,DWORD[24+rdi]
+	mov	r11d,DWORD[28+rdi]
 
 
-	jmp	$L$loop_ssse3
+	jmp	NEAR $L$loop_ssse3
 ALIGN	16
-$L$loop_ssse3::
-	movdqa	xmm7,XMMWORD PTR[((K256+512))]
-	movdqu	xmm0,XMMWORD PTR[rsi]
-	movdqu	xmm1,XMMWORD PTR[16+rsi]
-	movdqu	xmm2,XMMWORD PTR[32+rsi]
+$L$loop_ssse3:
+	movdqa	xmm7,XMMWORD[((K256+512))]
+	movdqu	xmm0,XMMWORD[rsi]
+	movdqu	xmm1,XMMWORD[16+rsi]
+	movdqu	xmm2,XMMWORD[32+rsi]
 DB	102,15,56,0,199
-	movdqu	xmm3,XMMWORD PTR[48+rsi]
-	lea	rbp,QWORD PTR[K256]
+	movdqu	xmm3,XMMWORD[48+rsi]
+	lea	rbp,[K256]
 DB	102,15,56,0,207
-	movdqa	xmm4,XMMWORD PTR[rbp]
-	movdqa	xmm5,XMMWORD PTR[32+rbp]
+	movdqa	xmm4,XMMWORD[rbp]
+	movdqa	xmm5,XMMWORD[32+rbp]
 DB	102,15,56,0,215
 	paddd	xmm4,xmm0
-	movdqa	xmm6,XMMWORD PTR[64+rbp]
+	movdqa	xmm6,XMMWORD[64+rbp]
 DB	102,15,56,0,223
-	movdqa	xmm7,XMMWORD PTR[96+rbp]
+	movdqa	xmm7,XMMWORD[96+rbp]
 	paddd	xmm5,xmm1
 	paddd	xmm6,xmm2
 	paddd	xmm7,xmm3
-	movdqa	XMMWORD PTR[rsp],xmm4
+	movdqa	XMMWORD[rsp],xmm4
 	mov	r14d,eax
-	movdqa	XMMWORD PTR[16+rsp],xmm5
+	movdqa	XMMWORD[16+rsp],xmm5
 	mov	edi,ebx
-	movdqa	XMMWORD PTR[32+rsp],xmm6
+	movdqa	XMMWORD[32+rsp],xmm6
 	xor	edi,ecx
-	movdqa	XMMWORD PTR[48+rsp],xmm7
+	movdqa	XMMWORD[48+rsp],xmm7
 	mov	r13d,r8d
-	jmp	$L$ssse3_00_47
+	jmp	NEAR $L$ssse3_00_47
 
 ALIGN	16
-$L$ssse3_00_47::
+$L$ssse3_00_47:
 	sub	rbp,-128
 	ror	r13d,14
 	movdqa	xmm4,xmm1
@@ -1852,7 +1855,7 @@
 	and	r12d,r8d
 	xor	r13d,r8d
 DB	102,15,58,15,250,4
-	add	r11d,DWORD PTR[rsp]
+	add	r11d,DWORD[rsp]
 	mov	r15d,eax
 	xor	r12d,r10d
 	ror	r14d,11
@@ -1889,7 +1892,7 @@
 	and	r12d,edx
 	xor	r13d,edx
 	pslld	xmm5,11
-	add	r10d,DWORD PTR[4+rsp]
+	add	r10d,DWORD[4+rsp]
 	mov	edi,r11d
 	pxor	xmm4,xmm6
 	xor	r12d,r9d
@@ -1925,7 +1928,7 @@
 	and	r12d,ecx
 	pshufd	xmm7,xmm7,128
 	xor	r13d,ecx
-	add	r9d,DWORD PTR[8+rsp]
+	add	r9d,DWORD[8+rsp]
 	mov	r15d,r10d
 	psrldq	xmm7,8
 	xor	r12d,r8d
@@ -1959,7 +1962,7 @@
 	psrlq	xmm6,2
 	and	r12d,ebx
 	xor	r13d,ebx
-	add	r8d,DWORD PTR[12+rsp]
+	add	r8d,DWORD[12+rsp]
 	pxor	xmm7,xmm6
 	mov	edi,r9d
 	xor	r12d,edx
@@ -1967,7 +1970,7 @@
 	pshufd	xmm7,xmm7,8
 	xor	edi,r10d
 	add	r8d,r12d
-	movdqa	xmm6,XMMWORD PTR[rbp]
+	movdqa	xmm6,XMMWORD[rbp]
 	ror	r13d,6
 	and	r15d,edi
 	pslldq	xmm7,8
@@ -1981,7 +1984,7 @@
 	paddd	xmm6,xmm0
 	mov	r13d,eax
 	add	r14d,r8d
-	movdqa	XMMWORD PTR[rsp],xmm6
+	movdqa	XMMWORD[rsp],xmm6
 	ror	r13d,14
 	movdqa	xmm4,xmm2
 	mov	r8d,r14d
@@ -1996,7 +1999,7 @@
 	and	r12d,eax
 	xor	r13d,eax
 DB	102,15,58,15,251,4
-	add	edx,DWORD PTR[16+rsp]
+	add	edx,DWORD[16+rsp]
 	mov	r15d,r8d
 	xor	r12d,ecx
 	ror	r14d,11
@@ -2033,7 +2036,7 @@
 	and	r12d,r11d
 	xor	r13d,r11d
 	pslld	xmm5,11
-	add	ecx,DWORD PTR[20+rsp]
+	add	ecx,DWORD[20+rsp]
 	mov	edi,edx
 	pxor	xmm4,xmm6
 	xor	r12d,ebx
@@ -2069,7 +2072,7 @@
 	and	r12d,r10d
 	pshufd	xmm7,xmm7,128
 	xor	r13d,r10d
-	add	ebx,DWORD PTR[24+rsp]
+	add	ebx,DWORD[24+rsp]
 	mov	r15d,ecx
 	psrldq	xmm7,8
 	xor	r12d,eax
@@ -2103,7 +2106,7 @@
 	psrlq	xmm6,2
 	and	r12d,r9d
 	xor	r13d,r9d
-	add	eax,DWORD PTR[28+rsp]
+	add	eax,DWORD[28+rsp]
 	pxor	xmm7,xmm6
 	mov	edi,ebx
 	xor	r12d,r11d
@@ -2111,7 +2114,7 @@
 	pshufd	xmm7,xmm7,8
 	xor	edi,ecx
 	add	eax,r12d
-	movdqa	xmm6,XMMWORD PTR[32+rbp]
+	movdqa	xmm6,XMMWORD[32+rbp]
 	ror	r13d,6
 	and	r15d,edi
 	pslldq	xmm7,8
@@ -2125,7 +2128,7 @@
 	paddd	xmm6,xmm1
 	mov	r13d,r8d
 	add	r14d,eax
-	movdqa	XMMWORD PTR[16+rsp],xmm6
+	movdqa	XMMWORD[16+rsp],xmm6
 	ror	r13d,14
 	movdqa	xmm4,xmm3
 	mov	eax,r14d
@@ -2140,7 +2143,7 @@
 	and	r12d,r8d
 	xor	r13d,r8d
 DB	102,15,58,15,248,4
-	add	r11d,DWORD PTR[32+rsp]
+	add	r11d,DWORD[32+rsp]
 	mov	r15d,eax
 	xor	r12d,r10d
 	ror	r14d,11
@@ -2177,7 +2180,7 @@
 	and	r12d,edx
 	xor	r13d,edx
 	pslld	xmm5,11
-	add	r10d,DWORD PTR[36+rsp]
+	add	r10d,DWORD[36+rsp]
 	mov	edi,r11d
 	pxor	xmm4,xmm6
 	xor	r12d,r9d
@@ -2213,7 +2216,7 @@
 	and	r12d,ecx
 	pshufd	xmm7,xmm7,128
 	xor	r13d,ecx
-	add	r9d,DWORD PTR[40+rsp]
+	add	r9d,DWORD[40+rsp]
 	mov	r15d,r10d
 	psrldq	xmm7,8
 	xor	r12d,r8d
@@ -2247,7 +2250,7 @@
 	psrlq	xmm6,2
 	and	r12d,ebx
 	xor	r13d,ebx
-	add	r8d,DWORD PTR[44+rsp]
+	add	r8d,DWORD[44+rsp]
 	pxor	xmm7,xmm6
 	mov	edi,r9d
 	xor	r12d,edx
@@ -2255,7 +2258,7 @@
 	pshufd	xmm7,xmm7,8
 	xor	edi,r10d
 	add	r8d,r12d
-	movdqa	xmm6,XMMWORD PTR[64+rbp]
+	movdqa	xmm6,XMMWORD[64+rbp]
 	ror	r13d,6
 	and	r15d,edi
 	pslldq	xmm7,8
@@ -2269,7 +2272,7 @@
 	paddd	xmm6,xmm2
 	mov	r13d,eax
 	add	r14d,r8d
-	movdqa	XMMWORD PTR[32+rsp],xmm6
+	movdqa	XMMWORD[32+rsp],xmm6
 	ror	r13d,14
 	movdqa	xmm4,xmm0
 	mov	r8d,r14d
@@ -2284,7 +2287,7 @@
 	and	r12d,eax
 	xor	r13d,eax
 DB	102,15,58,15,249,4
-	add	edx,DWORD PTR[48+rsp]
+	add	edx,DWORD[48+rsp]
 	mov	r15d,r8d
 	xor	r12d,ecx
 	ror	r14d,11
@@ -2321,7 +2324,7 @@
 	and	r12d,r11d
 	xor	r13d,r11d
 	pslld	xmm5,11
-	add	ecx,DWORD PTR[52+rsp]
+	add	ecx,DWORD[52+rsp]
 	mov	edi,edx
 	pxor	xmm4,xmm6
 	xor	r12d,ebx
@@ -2357,7 +2360,7 @@
 	and	r12d,r10d
 	pshufd	xmm7,xmm7,128
 	xor	r13d,r10d
-	add	ebx,DWORD PTR[56+rsp]
+	add	ebx,DWORD[56+rsp]
 	mov	r15d,ecx
 	psrldq	xmm7,8
 	xor	r12d,eax
@@ -2391,7 +2394,7 @@
 	psrlq	xmm6,2
 	and	r12d,r9d
 	xor	r13d,r9d
-	add	eax,DWORD PTR[60+rsp]
+	add	eax,DWORD[60+rsp]
 	pxor	xmm7,xmm6
 	mov	edi,ebx
 	xor	r12d,r11d
@@ -2399,7 +2402,7 @@
 	pshufd	xmm7,xmm7,8
 	xor	edi,ecx
 	add	eax,r12d
-	movdqa	xmm6,XMMWORD PTR[96+rbp]
+	movdqa	xmm6,XMMWORD[96+rbp]
 	ror	r13d,6
 	and	r15d,edi
 	pslldq	xmm7,8
@@ -2413,9 +2416,9 @@
 	paddd	xmm6,xmm3
 	mov	r13d,r8d
 	add	r14d,eax
-	movdqa	XMMWORD PTR[48+rsp],xmm6
-	cmp	BYTE PTR[131+rbp],0
-	jne	$L$ssse3_00_47
+	movdqa	XMMWORD[48+rsp],xmm6
+	cmp	BYTE[131+rbp],0
+	jne	NEAR $L$ssse3_00_47
 	ror	r13d,14
 	mov	eax,r14d
 	mov	r12d,r9d
@@ -2426,7 +2429,7 @@
 	xor	r14d,eax
 	and	r12d,r8d
 	xor	r13d,r8d
-	add	r11d,DWORD PTR[rsp]
+	add	r11d,DWORD[rsp]
 	mov	r15d,eax
 	xor	r12d,r10d
 	ror	r14d,11
@@ -2452,7 +2455,7 @@
 	xor	r14d,r11d
 	and	r12d,edx
 	xor	r13d,edx
-	add	r10d,DWORD PTR[4+rsp]
+	add	r10d,DWORD[4+rsp]
 	mov	edi,r11d
 	xor	r12d,r9d
 	ror	r14d,11
@@ -2478,7 +2481,7 @@
 	xor	r14d,r10d
 	and	r12d,ecx
 	xor	r13d,ecx
-	add	r9d,DWORD PTR[8+rsp]
+	add	r9d,DWORD[8+rsp]
 	mov	r15d,r10d
 	xor	r12d,r8d
 	ror	r14d,11
@@ -2504,7 +2507,7 @@
 	xor	r14d,r9d
 	and	r12d,ebx
 	xor	r13d,ebx
-	add	r8d,DWORD PTR[12+rsp]
+	add	r8d,DWORD[12+rsp]
 	mov	edi,r9d
 	xor	r12d,edx
 	ror	r14d,11
@@ -2530,7 +2533,7 @@
 	xor	r14d,r8d
 	and	r12d,eax
 	xor	r13d,eax
-	add	edx,DWORD PTR[16+rsp]
+	add	edx,DWORD[16+rsp]
 	mov	r15d,r8d
 	xor	r12d,ecx
 	ror	r14d,11
@@ -2556,7 +2559,7 @@
 	xor	r14d,edx
 	and	r12d,r11d
 	xor	r13d,r11d
-	add	ecx,DWORD PTR[20+rsp]
+	add	ecx,DWORD[20+rsp]
 	mov	edi,edx
 	xor	r12d,ebx
 	ror	r14d,11
@@ -2582,7 +2585,7 @@
 	xor	r14d,ecx
 	and	r12d,r10d
 	xor	r13d,r10d
-	add	ebx,DWORD PTR[24+rsp]
+	add	ebx,DWORD[24+rsp]
 	mov	r15d,ecx
 	xor	r12d,eax
 	ror	r14d,11
@@ -2608,7 +2611,7 @@
 	xor	r14d,ebx
 	and	r12d,r9d
 	xor	r13d,r9d
-	add	eax,DWORD PTR[28+rsp]
+	add	eax,DWORD[28+rsp]
 	mov	edi,ebx
 	xor	r12d,r11d
 	ror	r14d,11
@@ -2634,7 +2637,7 @@
 	xor	r14d,eax
 	and	r12d,r8d
 	xor	r13d,r8d
-	add	r11d,DWORD PTR[32+rsp]
+	add	r11d,DWORD[32+rsp]
 	mov	r15d,eax
 	xor	r12d,r10d
 	ror	r14d,11
@@ -2660,7 +2663,7 @@
 	xor	r14d,r11d
 	and	r12d,edx
 	xor	r13d,edx
-	add	r10d,DWORD PTR[36+rsp]
+	add	r10d,DWORD[36+rsp]
 	mov	edi,r11d
 	xor	r12d,r9d
 	ror	r14d,11
@@ -2686,7 +2689,7 @@
 	xor	r14d,r10d
 	and	r12d,ecx
 	xor	r13d,ecx
-	add	r9d,DWORD PTR[40+rsp]
+	add	r9d,DWORD[40+rsp]
 	mov	r15d,r10d
 	xor	r12d,r8d
 	ror	r14d,11
@@ -2712,7 +2715,7 @@
 	xor	r14d,r9d
 	and	r12d,ebx
 	xor	r13d,ebx
-	add	r8d,DWORD PTR[44+rsp]
+	add	r8d,DWORD[44+rsp]
 	mov	edi,r9d
 	xor	r12d,edx
 	ror	r14d,11
@@ -2738,7 +2741,7 @@
 	xor	r14d,r8d
 	and	r12d,eax
 	xor	r13d,eax
-	add	edx,DWORD PTR[48+rsp]
+	add	edx,DWORD[48+rsp]
 	mov	r15d,r8d
 	xor	r12d,ecx
 	ror	r14d,11
@@ -2764,7 +2767,7 @@
 	xor	r14d,edx
 	and	r12d,r11d
 	xor	r13d,r11d
-	add	ecx,DWORD PTR[52+rsp]
+	add	ecx,DWORD[52+rsp]
 	mov	edi,edx
 	xor	r12d,ebx
 	ror	r14d,11
@@ -2790,7 +2793,7 @@
 	xor	r14d,ecx
 	and	r12d,r10d
 	xor	r13d,r10d
-	add	ebx,DWORD PTR[56+rsp]
+	add	ebx,DWORD[56+rsp]
 	mov	r15d,ecx
 	xor	r12d,eax
 	ror	r14d,11
@@ -2816,7 +2819,7 @@
 	xor	r14d,ebx
 	and	r12d,r9d
 	xor	r13d,r9d
-	add	eax,DWORD PTR[60+rsp]
+	add	eax,DWORD[60+rsp]
 	mov	edi,ebx
 	xor	r12d,r11d
 	ror	r14d,11
@@ -2832,53 +2835,52 @@
 	add	eax,r15d
 	mov	r13d,r8d
 	add	r14d,eax
-	mov	rdi,QWORD PTR[((64+0))+rsp]
+	mov	rdi,QWORD[((64+0))+rsp]
 	mov	eax,r14d
 
-	add	eax,DWORD PTR[rdi]
-	lea	rsi,QWORD PTR[64+rsi]
-	add	ebx,DWORD PTR[4+rdi]
-	add	ecx,DWORD PTR[8+rdi]
-	add	edx,DWORD PTR[12+rdi]
-	add	r8d,DWORD PTR[16+rdi]
-	add	r9d,DWORD PTR[20+rdi]
-	add	r10d,DWORD PTR[24+rdi]
-	add	r11d,DWORD PTR[28+rdi]
+	add	eax,DWORD[rdi]
+	lea	rsi,[64+rsi]
+	add	ebx,DWORD[4+rdi]
+	add	ecx,DWORD[8+rdi]
+	add	edx,DWORD[12+rdi]
+	add	r8d,DWORD[16+rdi]
+	add	r9d,DWORD[20+rdi]
+	add	r10d,DWORD[24+rdi]
+	add	r11d,DWORD[28+rdi]
 
-	cmp	rsi,QWORD PTR[((64+16))+rsp]
+	cmp	rsi,QWORD[((64+16))+rsp]
 
-	mov	DWORD PTR[rdi],eax
-	mov	DWORD PTR[4+rdi],ebx
-	mov	DWORD PTR[8+rdi],ecx
-	mov	DWORD PTR[12+rdi],edx
-	mov	DWORD PTR[16+rdi],r8d
-	mov	DWORD PTR[20+rdi],r9d
-	mov	DWORD PTR[24+rdi],r10d
-	mov	DWORD PTR[28+rdi],r11d
-	jb	$L$loop_ssse3
+	mov	DWORD[rdi],eax
+	mov	DWORD[4+rdi],ebx
+	mov	DWORD[8+rdi],ecx
+	mov	DWORD[12+rdi],edx
+	mov	DWORD[16+rdi],r8d
+	mov	DWORD[20+rdi],r9d
+	mov	DWORD[24+rdi],r10d
+	mov	DWORD[28+rdi],r11d
+	jb	NEAR $L$loop_ssse3
 
-	mov	rsi,QWORD PTR[((64+24))+rsp]
-	movaps	xmm6,XMMWORD PTR[((64+32))+rsp]
-	movaps	xmm7,XMMWORD PTR[((64+48))+rsp]
-	movaps	xmm8,XMMWORD PTR[((64+64))+rsp]
-	movaps	xmm9,XMMWORD PTR[((64+80))+rsp]
-	mov	r15,QWORD PTR[rsi]
-	mov	r14,QWORD PTR[8+rsi]
-	mov	r13,QWORD PTR[16+rsi]
-	mov	r12,QWORD PTR[24+rsi]
-	mov	rbp,QWORD PTR[32+rsi]
-	mov	rbx,QWORD PTR[40+rsi]
-	lea	rsp,QWORD PTR[48+rsi]
-$L$epilogue_ssse3::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	mov	rsi,QWORD[((64+24))+rsp]
+	movaps	xmm6,XMMWORD[((64+32))+rsp]
+	movaps	xmm7,XMMWORD[((64+48))+rsp]
+	movaps	xmm8,XMMWORD[((64+64))+rsp]
+	movaps	xmm9,XMMWORD[((64+80))+rsp]
+	mov	r15,QWORD[rsi]
+	mov	r14,QWORD[8+rsi]
+	mov	r13,QWORD[16+rsi]
+	mov	r12,QWORD[24+rsi]
+	mov	rbp,QWORD[32+rsi]
+	mov	rbx,QWORD[40+rsi]
+	lea	rsp,[48+rsi]
+$L$epilogue_ssse3:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_sha256_block_data_order_ssse3::
-sha256_block_data_order_ssse3	ENDP
-EXTERN	__imp_RtlVirtualUnwind:NEAR
+$L$SEH_end_sha256_block_data_order_ssse3:
+EXTERN	__imp_RtlVirtualUnwind
 
 ALIGN	16
-se_handler	PROC PRIVATE
+se_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -2890,74 +2892,74 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[120+r8]
-	mov	rbx,QWORD PTR[248+r8]
+	mov	rax,QWORD[120+r8]
+	mov	rbx,QWORD[248+r8]
 
-	mov	rsi,QWORD PTR[8+r9]
-	mov	r11,QWORD PTR[56+r9]
+	mov	rsi,QWORD[8+r9]
+	mov	r11,QWORD[56+r9]
 
-	mov	r10d,DWORD PTR[r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jb	$L$in_prologue
+	jb	NEAR $L$in_prologue
 
-	mov	rax,QWORD PTR[152+r8]
+	mov	rax,QWORD[152+r8]
 
-	mov	r10d,DWORD PTR[4+r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[4+r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jae	$L$in_prologue
+	jae	NEAR $L$in_prologue
 	mov	rsi,rax
-	mov	rax,QWORD PTR[((64+24))+rax]
-	lea	rax,QWORD PTR[48+rax]
+	mov	rax,QWORD[((64+24))+rax]
+	lea	rax,[48+rax]
 
-	mov	rbx,QWORD PTR[((-8))+rax]
-	mov	rbp,QWORD PTR[((-16))+rax]
-	mov	r12,QWORD PTR[((-24))+rax]
-	mov	r13,QWORD PTR[((-32))+rax]
-	mov	r14,QWORD PTR[((-40))+rax]
-	mov	r15,QWORD PTR[((-48))+rax]
-	mov	QWORD PTR[144+r8],rbx
-	mov	QWORD PTR[160+r8],rbp
-	mov	QWORD PTR[216+r8],r12
-	mov	QWORD PTR[224+r8],r13
-	mov	QWORD PTR[232+r8],r14
-	mov	QWORD PTR[240+r8],r15
+	mov	rbx,QWORD[((-8))+rax]
+	mov	rbp,QWORD[((-16))+rax]
+	mov	r12,QWORD[((-24))+rax]
+	mov	r13,QWORD[((-32))+rax]
+	mov	r14,QWORD[((-40))+rax]
+	mov	r15,QWORD[((-48))+rax]
+	mov	QWORD[144+r8],rbx
+	mov	QWORD[160+r8],rbp
+	mov	QWORD[216+r8],r12
+	mov	QWORD[224+r8],r13
+	mov	QWORD[232+r8],r14
+	mov	QWORD[240+r8],r15
 
-	lea	r10,QWORD PTR[$L$epilogue]
+	lea	r10,[$L$epilogue]
 	cmp	rbx,r10
-	jb	$L$in_prologue
+	jb	NEAR $L$in_prologue
 
-	lea	rsi,QWORD PTR[((64+32))+rsi]
-	lea	rdi,QWORD PTR[512+r8]
+	lea	rsi,[((64+32))+rsi]
+	lea	rdi,[512+r8]
 	mov	ecx,8
-	DD	0a548f3fch
+	DD	0xa548f3fc
 
-$L$in_prologue::
-	mov	rdi,QWORD PTR[8+rax]
-	mov	rsi,QWORD PTR[16+rax]
-	mov	QWORD PTR[152+r8],rax
-	mov	QWORD PTR[168+r8],rsi
-	mov	QWORD PTR[176+r8],rdi
+$L$in_prologue:
+	mov	rdi,QWORD[8+rax]
+	mov	rsi,QWORD[16+rax]
+	mov	QWORD[152+r8],rax
+	mov	QWORD[168+r8],rsi
+	mov	QWORD[176+r8],rdi
 
-	mov	rdi,QWORD PTR[40+r9]
+	mov	rdi,QWORD[40+r9]
 	mov	rsi,r8
 	mov	ecx,154
-	DD	0a548f3fch
+	DD	0xa548f3fc
 
 	mov	rsi,r9
 	xor	rcx,rcx
-	mov	rdx,QWORD PTR[8+rsi]
-	mov	r8,QWORD PTR[rsi]
-	mov	r9,QWORD PTR[16+rsi]
-	mov	r10,QWORD PTR[40+rsi]
-	lea	r11,QWORD PTR[56+rsi]
-	lea	r12,QWORD PTR[24+rsi]
-	mov	QWORD PTR[32+rsp],r10
-	mov	QWORD PTR[40+rsp],r11
-	mov	QWORD PTR[48+rsp],r12
-	mov	QWORD PTR[56+rsp],rcx
-	call	QWORD PTR[__imp_RtlVirtualUnwind]
+	mov	rdx,QWORD[8+rsi]
+	mov	r8,QWORD[rsi]
+	mov	r9,QWORD[16+rsi]
+	mov	r10,QWORD[40+rsi]
+	lea	r11,[56+rsi]
+	lea	r12,[24+rsi]
+	mov	QWORD[32+rsp],r10
+	mov	QWORD[40+rsp],r11
+	mov	QWORD[48+rsp],r12
+	mov	QWORD[56+rsp],rcx
+	call	QWORD[__imp_RtlVirtualUnwind]
 
 	mov	eax,1
 	add	rsp,64
@@ -2971,27 +2973,22 @@
 	pop	rdi
 	pop	rsi
 	DB	0F3h,0C3h		;repret
-se_handler	ENDP
-.text$	ENDS
-.pdata	SEGMENT READONLY ALIGN(4)
-ALIGN	4
-	DD	imagerel $L$SEH_begin_sha256_block_data_order
-	DD	imagerel $L$SEH_end_sha256_block_data_order
-	DD	imagerel $L$SEH_info_sha256_block_data_order
-	DD	imagerel $L$SEH_begin_sha256_block_data_order_ssse3
-	DD	imagerel $L$SEH_end_sha256_block_data_order_ssse3
-	DD	imagerel $L$SEH_info_sha256_block_data_order_ssse3
-.pdata	ENDS
-.xdata	SEGMENT READONLY ALIGN(8)
-ALIGN	8
-$L$SEH_info_sha256_block_data_order::
-DB	9,0,0,0
-	DD	imagerel se_handler
-	DD	imagerel $L$prologue,imagerel $L$epilogue
-$L$SEH_info_sha256_block_data_order_ssse3::
-DB	9,0,0,0
-	DD	imagerel se_handler
-	DD	imagerel $L$prologue_ssse3,imagerel $L$epilogue_ssse3
 
-.xdata	ENDS
-END
+section	.pdata rdata align=4
+ALIGN	4
+	DD	$L$SEH_begin_sha256_block_data_order wrt ..imagebase
+	DD	$L$SEH_end_sha256_block_data_order wrt ..imagebase
+	DD	$L$SEH_info_sha256_block_data_order wrt ..imagebase
+	DD	$L$SEH_begin_sha256_block_data_order_ssse3 wrt ..imagebase
+	DD	$L$SEH_end_sha256_block_data_order_ssse3 wrt ..imagebase
+	DD	$L$SEH_info_sha256_block_data_order_ssse3 wrt ..imagebase
+section	.xdata rdata align=8
+ALIGN	8
+$L$SEH_info_sha256_block_data_order:
+DB	9,0,0,0
+	DD	se_handler wrt ..imagebase
+	DD	$L$prologue wrt ..imagebase,$L$epilogue wrt ..imagebase
+$L$SEH_info_sha256_block_data_order_ssse3:
+DB	9,0,0,0
+	DD	se_handler wrt ..imagebase
+	DD	$L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imagebase
diff --git a/third_party/boringssl/win-x86_64/crypto/sha/sha512-x86_64.asm b/third_party/boringssl/win-x86_64/crypto/sha/sha512-x86_64.asm
index e993c3c..b76cc0e 100644
--- a/third_party/boringssl/win-x86_64/crypto/sha/sha512-x86_64.asm
+++ b/third_party/boringssl/win-x86_64/crypto/sha/sha512-x86_64.asm
@@ -1,15 +1,19 @@
-OPTION	DOTNAME
-.text$	SEGMENT ALIGN(256) 'CODE'
+default	rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section	.text code align=64
 
-EXTERN	OPENSSL_ia32cap_P:NEAR
-PUBLIC	sha512_block_data_order
+
+EXTERN	OPENSSL_ia32cap_P
+global	sha512_block_data_order
 
 ALIGN	16
-sha512_block_data_order	PROC PUBLIC
-	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
-	mov	QWORD PTR[16+rsp],rsi
+sha512_block_data_order:
+	mov	QWORD[8+rsp],rdi	;WIN64 prologue
+	mov	QWORD[16+rsp],rsi
 	mov	rax,rsp
-$L$SEH_begin_sha512_block_data_order::
+$L$SEH_begin_sha512_block_data_order:
 	mov	rdi,rcx
 	mov	rsi,rdx
 	mov	rdx,r8
@@ -24,30 +28,30 @@
 	mov	r11,rsp
 	shl	rdx,4
 	sub	rsp,16*8+4*8
-	lea	rdx,QWORD PTR[rdx*8+rsi]
+	lea	rdx,[rdx*8+rsi]
 	and	rsp,-64
-	mov	QWORD PTR[((128+0))+rsp],rdi
-	mov	QWORD PTR[((128+8))+rsp],rsi
-	mov	QWORD PTR[((128+16))+rsp],rdx
-	mov	QWORD PTR[((128+24))+rsp],r11
-$L$prologue::
+	mov	QWORD[((128+0))+rsp],rdi
+	mov	QWORD[((128+8))+rsp],rsi
+	mov	QWORD[((128+16))+rsp],rdx
+	mov	QWORD[((128+24))+rsp],r11
+$L$prologue:
 
-	mov	rax,QWORD PTR[rdi]
-	mov	rbx,QWORD PTR[8+rdi]
-	mov	rcx,QWORD PTR[16+rdi]
-	mov	rdx,QWORD PTR[24+rdi]
-	mov	r8,QWORD PTR[32+rdi]
-	mov	r9,QWORD PTR[40+rdi]
-	mov	r10,QWORD PTR[48+rdi]
-	mov	r11,QWORD PTR[56+rdi]
-	jmp	$L$loop
+	mov	rax,QWORD[rdi]
+	mov	rbx,QWORD[8+rdi]
+	mov	rcx,QWORD[16+rdi]
+	mov	rdx,QWORD[24+rdi]
+	mov	r8,QWORD[32+rdi]
+	mov	r9,QWORD[40+rdi]
+	mov	r10,QWORD[48+rdi]
+	mov	r11,QWORD[56+rdi]
+	jmp	NEAR $L$loop
 
 ALIGN	16
-$L$loop::
+$L$loop:
 	mov	rdi,rbx
-	lea	rbp,QWORD PTR[K512]
+	lea	rbp,[K512]
 	xor	rdi,rcx
-	mov	r12,QWORD PTR[rsi]
+	mov	r12,QWORD[rsi]
 	mov	r13,r8
 	mov	r14,rax
 	bswap	r12
@@ -58,7 +62,7 @@
 	ror	r14,5
 	xor	r15,r10
 
-	mov	QWORD PTR[rsp],r12
+	mov	QWORD[rsp],r12
 	xor	r14,rax
 	and	r15,r8
 
@@ -71,7 +75,7 @@
 	add	r12,r15
 
 	mov	r15,rax
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,rax
 
 	xor	r15,rbx
@@ -86,9 +90,9 @@
 	add	rdx,r12
 	add	r11,r12
 
-	lea	rbp,QWORD PTR[8+rbp]
+	lea	rbp,[8+rbp]
 	add	r11,r14
-	mov	r12,QWORD PTR[8+rsi]
+	mov	r12,QWORD[8+rsi]
 	mov	r13,rdx
 	mov	r14,r11
 	bswap	r12
@@ -99,7 +103,7 @@
 	ror	r14,5
 	xor	rdi,r9
 
-	mov	QWORD PTR[8+rsp],r12
+	mov	QWORD[8+rsp],r12
 	xor	r14,r11
 	and	rdi,rdx
 
@@ -112,7 +116,7 @@
 	add	r12,rdi
 
 	mov	rdi,r11
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,r11
 
 	xor	rdi,rax
@@ -127,9 +131,9 @@
 	add	rcx,r12
 	add	r10,r12
 
-	lea	rbp,QWORD PTR[24+rbp]
+	lea	rbp,[24+rbp]
 	add	r10,r14
-	mov	r12,QWORD PTR[16+rsi]
+	mov	r12,QWORD[16+rsi]
 	mov	r13,rcx
 	mov	r14,r10
 	bswap	r12
@@ -140,7 +144,7 @@
 	ror	r14,5
 	xor	r15,r8
 
-	mov	QWORD PTR[16+rsp],r12
+	mov	QWORD[16+rsp],r12
 	xor	r14,r10
 	and	r15,rcx
 
@@ -153,7 +157,7 @@
 	add	r12,r15
 
 	mov	r15,r10
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,r10
 
 	xor	r15,r11
@@ -168,9 +172,9 @@
 	add	rbx,r12
 	add	r9,r12
 
-	lea	rbp,QWORD PTR[8+rbp]
+	lea	rbp,[8+rbp]
 	add	r9,r14
-	mov	r12,QWORD PTR[24+rsi]
+	mov	r12,QWORD[24+rsi]
 	mov	r13,rbx
 	mov	r14,r9
 	bswap	r12
@@ -181,7 +185,7 @@
 	ror	r14,5
 	xor	rdi,rdx
 
-	mov	QWORD PTR[24+rsp],r12
+	mov	QWORD[24+rsp],r12
 	xor	r14,r9
 	and	rdi,rbx
 
@@ -194,7 +198,7 @@
 	add	r12,rdi
 
 	mov	rdi,r9
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,r9
 
 	xor	rdi,r10
@@ -209,9 +213,9 @@
 	add	rax,r12
 	add	r8,r12
 
-	lea	rbp,QWORD PTR[24+rbp]
+	lea	rbp,[24+rbp]
 	add	r8,r14
-	mov	r12,QWORD PTR[32+rsi]
+	mov	r12,QWORD[32+rsi]
 	mov	r13,rax
 	mov	r14,r8
 	bswap	r12
@@ -222,7 +226,7 @@
 	ror	r14,5
 	xor	r15,rcx
 
-	mov	QWORD PTR[32+rsp],r12
+	mov	QWORD[32+rsp],r12
 	xor	r14,r8
 	and	r15,rax
 
@@ -235,7 +239,7 @@
 	add	r12,r15
 
 	mov	r15,r8
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,r8
 
 	xor	r15,r9
@@ -250,9 +254,9 @@
 	add	r11,r12
 	add	rdx,r12
 
-	lea	rbp,QWORD PTR[8+rbp]
+	lea	rbp,[8+rbp]
 	add	rdx,r14
-	mov	r12,QWORD PTR[40+rsi]
+	mov	r12,QWORD[40+rsi]
 	mov	r13,r11
 	mov	r14,rdx
 	bswap	r12
@@ -263,7 +267,7 @@
 	ror	r14,5
 	xor	rdi,rbx
 
-	mov	QWORD PTR[40+rsp],r12
+	mov	QWORD[40+rsp],r12
 	xor	r14,rdx
 	and	rdi,r11
 
@@ -276,7 +280,7 @@
 	add	r12,rdi
 
 	mov	rdi,rdx
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,rdx
 
 	xor	rdi,r8
@@ -291,9 +295,9 @@
 	add	r10,r12
 	add	rcx,r12
 
-	lea	rbp,QWORD PTR[24+rbp]
+	lea	rbp,[24+rbp]
 	add	rcx,r14
-	mov	r12,QWORD PTR[48+rsi]
+	mov	r12,QWORD[48+rsi]
 	mov	r13,r10
 	mov	r14,rcx
 	bswap	r12
@@ -304,7 +308,7 @@
 	ror	r14,5
 	xor	r15,rax
 
-	mov	QWORD PTR[48+rsp],r12
+	mov	QWORD[48+rsp],r12
 	xor	r14,rcx
 	and	r15,r10
 
@@ -317,7 +321,7 @@
 	add	r12,r15
 
 	mov	r15,rcx
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,rcx
 
 	xor	r15,rdx
@@ -332,9 +336,9 @@
 	add	r9,r12
 	add	rbx,r12
 
-	lea	rbp,QWORD PTR[8+rbp]
+	lea	rbp,[8+rbp]
 	add	rbx,r14
-	mov	r12,QWORD PTR[56+rsi]
+	mov	r12,QWORD[56+rsi]
 	mov	r13,r9
 	mov	r14,rbx
 	bswap	r12
@@ -345,7 +349,7 @@
 	ror	r14,5
 	xor	rdi,r11
 
-	mov	QWORD PTR[56+rsp],r12
+	mov	QWORD[56+rsp],r12
 	xor	r14,rbx
 	and	rdi,r9
 
@@ -358,7 +362,7 @@
 	add	r12,rdi
 
 	mov	rdi,rbx
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,rbx
 
 	xor	rdi,rcx
@@ -373,9 +377,9 @@
 	add	r8,r12
 	add	rax,r12
 
-	lea	rbp,QWORD PTR[24+rbp]
+	lea	rbp,[24+rbp]
 	add	rax,r14
-	mov	r12,QWORD PTR[64+rsi]
+	mov	r12,QWORD[64+rsi]
 	mov	r13,r8
 	mov	r14,rax
 	bswap	r12
@@ -386,7 +390,7 @@
 	ror	r14,5
 	xor	r15,r10
 
-	mov	QWORD PTR[64+rsp],r12
+	mov	QWORD[64+rsp],r12
 	xor	r14,rax
 	and	r15,r8
 
@@ -399,7 +403,7 @@
 	add	r12,r15
 
 	mov	r15,rax
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,rax
 
 	xor	r15,rbx
@@ -414,9 +418,9 @@
 	add	rdx,r12
 	add	r11,r12
 
-	lea	rbp,QWORD PTR[8+rbp]
+	lea	rbp,[8+rbp]
 	add	r11,r14
-	mov	r12,QWORD PTR[72+rsi]
+	mov	r12,QWORD[72+rsi]
 	mov	r13,rdx
 	mov	r14,r11
 	bswap	r12
@@ -427,7 +431,7 @@
 	ror	r14,5
 	xor	rdi,r9
 
-	mov	QWORD PTR[72+rsp],r12
+	mov	QWORD[72+rsp],r12
 	xor	r14,r11
 	and	rdi,rdx
 
@@ -440,7 +444,7 @@
 	add	r12,rdi
 
 	mov	rdi,r11
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,r11
 
 	xor	rdi,rax
@@ -455,9 +459,9 @@
 	add	rcx,r12
 	add	r10,r12
 
-	lea	rbp,QWORD PTR[24+rbp]
+	lea	rbp,[24+rbp]
 	add	r10,r14
-	mov	r12,QWORD PTR[80+rsi]
+	mov	r12,QWORD[80+rsi]
 	mov	r13,rcx
 	mov	r14,r10
 	bswap	r12
@@ -468,7 +472,7 @@
 	ror	r14,5
 	xor	r15,r8
 
-	mov	QWORD PTR[80+rsp],r12
+	mov	QWORD[80+rsp],r12
 	xor	r14,r10
 	and	r15,rcx
 
@@ -481,7 +485,7 @@
 	add	r12,r15
 
 	mov	r15,r10
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,r10
 
 	xor	r15,r11
@@ -496,9 +500,9 @@
 	add	rbx,r12
 	add	r9,r12
 
-	lea	rbp,QWORD PTR[8+rbp]
+	lea	rbp,[8+rbp]
 	add	r9,r14
-	mov	r12,QWORD PTR[88+rsi]
+	mov	r12,QWORD[88+rsi]
 	mov	r13,rbx
 	mov	r14,r9
 	bswap	r12
@@ -509,7 +513,7 @@
 	ror	r14,5
 	xor	rdi,rdx
 
-	mov	QWORD PTR[88+rsp],r12
+	mov	QWORD[88+rsp],r12
 	xor	r14,r9
 	and	rdi,rbx
 
@@ -522,7 +526,7 @@
 	add	r12,rdi
 
 	mov	rdi,r9
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,r9
 
 	xor	rdi,r10
@@ -537,9 +541,9 @@
 	add	rax,r12
 	add	r8,r12
 
-	lea	rbp,QWORD PTR[24+rbp]
+	lea	rbp,[24+rbp]
 	add	r8,r14
-	mov	r12,QWORD PTR[96+rsi]
+	mov	r12,QWORD[96+rsi]
 	mov	r13,rax
 	mov	r14,r8
 	bswap	r12
@@ -550,7 +554,7 @@
 	ror	r14,5
 	xor	r15,rcx
 
-	mov	QWORD PTR[96+rsp],r12
+	mov	QWORD[96+rsp],r12
 	xor	r14,r8
 	and	r15,rax
 
@@ -563,7 +567,7 @@
 	add	r12,r15
 
 	mov	r15,r8
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,r8
 
 	xor	r15,r9
@@ -578,9 +582,9 @@
 	add	r11,r12
 	add	rdx,r12
 
-	lea	rbp,QWORD PTR[8+rbp]
+	lea	rbp,[8+rbp]
 	add	rdx,r14
-	mov	r12,QWORD PTR[104+rsi]
+	mov	r12,QWORD[104+rsi]
 	mov	r13,r11
 	mov	r14,rdx
 	bswap	r12
@@ -591,7 +595,7 @@
 	ror	r14,5
 	xor	rdi,rbx
 
-	mov	QWORD PTR[104+rsp],r12
+	mov	QWORD[104+rsp],r12
 	xor	r14,rdx
 	and	rdi,r11
 
@@ -604,7 +608,7 @@
 	add	r12,rdi
 
 	mov	rdi,rdx
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,rdx
 
 	xor	rdi,r8
@@ -619,9 +623,9 @@
 	add	r10,r12
 	add	rcx,r12
 
-	lea	rbp,QWORD PTR[24+rbp]
+	lea	rbp,[24+rbp]
 	add	rcx,r14
-	mov	r12,QWORD PTR[112+rsi]
+	mov	r12,QWORD[112+rsi]
 	mov	r13,r10
 	mov	r14,rcx
 	bswap	r12
@@ -632,7 +636,7 @@
 	ror	r14,5
 	xor	r15,rax
 
-	mov	QWORD PTR[112+rsp],r12
+	mov	QWORD[112+rsp],r12
 	xor	r14,rcx
 	and	r15,r10
 
@@ -645,7 +649,7 @@
 	add	r12,r15
 
 	mov	r15,rcx
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,rcx
 
 	xor	r15,rdx
@@ -660,9 +664,9 @@
 	add	r9,r12
 	add	rbx,r12
 
-	lea	rbp,QWORD PTR[8+rbp]
+	lea	rbp,[8+rbp]
 	add	rbx,r14
-	mov	r12,QWORD PTR[120+rsi]
+	mov	r12,QWORD[120+rsi]
 	mov	r13,r9
 	mov	r14,rbx
 	bswap	r12
@@ -673,7 +677,7 @@
 	ror	r14,5
 	xor	rdi,r11
 
-	mov	QWORD PTR[120+rsp],r12
+	mov	QWORD[120+rsp],r12
 	xor	r14,rbx
 	and	rdi,r9
 
@@ -686,7 +690,7 @@
 	add	r12,rdi
 
 	mov	rdi,rbx
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,rbx
 
 	xor	rdi,rcx
@@ -701,12 +705,12 @@
 	add	r8,r12
 	add	rax,r12
 
-	lea	rbp,QWORD PTR[24+rbp]
-	jmp	$L$rounds_16_xx
+	lea	rbp,[24+rbp]
+	jmp	NEAR $L$rounds_16_xx
 ALIGN	16
-$L$rounds_16_xx::
-	mov	r13,QWORD PTR[8+rsp]
-	mov	r15,QWORD PTR[112+rsp]
+$L$rounds_16_xx:
+	mov	r13,QWORD[8+rsp]
+	mov	r15,QWORD[112+rsp]
 
 	mov	r12,r13
 	ror	r13,7
@@ -723,9 +727,9 @@
 	ror	r15,19
 	xor	r12,r13
 	xor	r15,r14
-	add	r12,QWORD PTR[72+rsp]
+	add	r12,QWORD[72+rsp]
 
-	add	r12,QWORD PTR[rsp]
+	add	r12,QWORD[rsp]
 	mov	r13,r8
 	add	r12,r15
 	mov	r14,rax
@@ -736,7 +740,7 @@
 	ror	r14,5
 	xor	r15,r10
 
-	mov	QWORD PTR[rsp],r12
+	mov	QWORD[rsp],r12
 	xor	r14,rax
 	and	r15,r8
 
@@ -749,7 +753,7 @@
 	add	r12,r15
 
 	mov	r15,rax
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,rax
 
 	xor	r15,rbx
@@ -764,9 +768,9 @@
 	add	rdx,r12
 	add	r11,r12
 
-	lea	rbp,QWORD PTR[8+rbp]
-	mov	r13,QWORD PTR[16+rsp]
-	mov	rdi,QWORD PTR[120+rsp]
+	lea	rbp,[8+rbp]
+	mov	r13,QWORD[16+rsp]
+	mov	rdi,QWORD[120+rsp]
 
 	mov	r12,r13
 	ror	r13,7
@@ -783,9 +787,9 @@
 	ror	rdi,19
 	xor	r12,r13
 	xor	rdi,r14
-	add	r12,QWORD PTR[80+rsp]
+	add	r12,QWORD[80+rsp]
 
-	add	r12,QWORD PTR[8+rsp]
+	add	r12,QWORD[8+rsp]
 	mov	r13,rdx
 	add	r12,rdi
 	mov	r14,r11
@@ -796,7 +800,7 @@
 	ror	r14,5
 	xor	rdi,r9
 
-	mov	QWORD PTR[8+rsp],r12
+	mov	QWORD[8+rsp],r12
 	xor	r14,r11
 	and	rdi,rdx
 
@@ -809,7 +813,7 @@
 	add	r12,rdi
 
 	mov	rdi,r11
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,r11
 
 	xor	rdi,rax
@@ -824,9 +828,9 @@
 	add	rcx,r12
 	add	r10,r12
 
-	lea	rbp,QWORD PTR[24+rbp]
-	mov	r13,QWORD PTR[24+rsp]
-	mov	r15,QWORD PTR[rsp]
+	lea	rbp,[24+rbp]
+	mov	r13,QWORD[24+rsp]
+	mov	r15,QWORD[rsp]
 
 	mov	r12,r13
 	ror	r13,7
@@ -843,9 +847,9 @@
 	ror	r15,19
 	xor	r12,r13
 	xor	r15,r14
-	add	r12,QWORD PTR[88+rsp]
+	add	r12,QWORD[88+rsp]
 
-	add	r12,QWORD PTR[16+rsp]
+	add	r12,QWORD[16+rsp]
 	mov	r13,rcx
 	add	r12,r15
 	mov	r14,r10
@@ -856,7 +860,7 @@
 	ror	r14,5
 	xor	r15,r8
 
-	mov	QWORD PTR[16+rsp],r12
+	mov	QWORD[16+rsp],r12
 	xor	r14,r10
 	and	r15,rcx
 
@@ -869,7 +873,7 @@
 	add	r12,r15
 
 	mov	r15,r10
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,r10
 
 	xor	r15,r11
@@ -884,9 +888,9 @@
 	add	rbx,r12
 	add	r9,r12
 
-	lea	rbp,QWORD PTR[8+rbp]
-	mov	r13,QWORD PTR[32+rsp]
-	mov	rdi,QWORD PTR[8+rsp]
+	lea	rbp,[8+rbp]
+	mov	r13,QWORD[32+rsp]
+	mov	rdi,QWORD[8+rsp]
 
 	mov	r12,r13
 	ror	r13,7
@@ -903,9 +907,9 @@
 	ror	rdi,19
 	xor	r12,r13
 	xor	rdi,r14
-	add	r12,QWORD PTR[96+rsp]
+	add	r12,QWORD[96+rsp]
 
-	add	r12,QWORD PTR[24+rsp]
+	add	r12,QWORD[24+rsp]
 	mov	r13,rbx
 	add	r12,rdi
 	mov	r14,r9
@@ -916,7 +920,7 @@
 	ror	r14,5
 	xor	rdi,rdx
 
-	mov	QWORD PTR[24+rsp],r12
+	mov	QWORD[24+rsp],r12
 	xor	r14,r9
 	and	rdi,rbx
 
@@ -929,7 +933,7 @@
 	add	r12,rdi
 
 	mov	rdi,r9
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,r9
 
 	xor	rdi,r10
@@ -944,9 +948,9 @@
 	add	rax,r12
 	add	r8,r12
 
-	lea	rbp,QWORD PTR[24+rbp]
-	mov	r13,QWORD PTR[40+rsp]
-	mov	r15,QWORD PTR[16+rsp]
+	lea	rbp,[24+rbp]
+	mov	r13,QWORD[40+rsp]
+	mov	r15,QWORD[16+rsp]
 
 	mov	r12,r13
 	ror	r13,7
@@ -963,9 +967,9 @@
 	ror	r15,19
 	xor	r12,r13
 	xor	r15,r14
-	add	r12,QWORD PTR[104+rsp]
+	add	r12,QWORD[104+rsp]
 
-	add	r12,QWORD PTR[32+rsp]
+	add	r12,QWORD[32+rsp]
 	mov	r13,rax
 	add	r12,r15
 	mov	r14,r8
@@ -976,7 +980,7 @@
 	ror	r14,5
 	xor	r15,rcx
 
-	mov	QWORD PTR[32+rsp],r12
+	mov	QWORD[32+rsp],r12
 	xor	r14,r8
 	and	r15,rax
 
@@ -989,7 +993,7 @@
 	add	r12,r15
 
 	mov	r15,r8
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,r8
 
 	xor	r15,r9
@@ -1004,9 +1008,9 @@
 	add	r11,r12
 	add	rdx,r12
 
-	lea	rbp,QWORD PTR[8+rbp]
-	mov	r13,QWORD PTR[48+rsp]
-	mov	rdi,QWORD PTR[24+rsp]
+	lea	rbp,[8+rbp]
+	mov	r13,QWORD[48+rsp]
+	mov	rdi,QWORD[24+rsp]
 
 	mov	r12,r13
 	ror	r13,7
@@ -1023,9 +1027,9 @@
 	ror	rdi,19
 	xor	r12,r13
 	xor	rdi,r14
-	add	r12,QWORD PTR[112+rsp]
+	add	r12,QWORD[112+rsp]
 
-	add	r12,QWORD PTR[40+rsp]
+	add	r12,QWORD[40+rsp]
 	mov	r13,r11
 	add	r12,rdi
 	mov	r14,rdx
@@ -1036,7 +1040,7 @@
 	ror	r14,5
 	xor	rdi,rbx
 
-	mov	QWORD PTR[40+rsp],r12
+	mov	QWORD[40+rsp],r12
 	xor	r14,rdx
 	and	rdi,r11
 
@@ -1049,7 +1053,7 @@
 	add	r12,rdi
 
 	mov	rdi,rdx
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,rdx
 
 	xor	rdi,r8
@@ -1064,9 +1068,9 @@
 	add	r10,r12
 	add	rcx,r12
 
-	lea	rbp,QWORD PTR[24+rbp]
-	mov	r13,QWORD PTR[56+rsp]
-	mov	r15,QWORD PTR[32+rsp]
+	lea	rbp,[24+rbp]
+	mov	r13,QWORD[56+rsp]
+	mov	r15,QWORD[32+rsp]
 
 	mov	r12,r13
 	ror	r13,7
@@ -1083,9 +1087,9 @@
 	ror	r15,19
 	xor	r12,r13
 	xor	r15,r14
-	add	r12,QWORD PTR[120+rsp]
+	add	r12,QWORD[120+rsp]
 
-	add	r12,QWORD PTR[48+rsp]
+	add	r12,QWORD[48+rsp]
 	mov	r13,r10
 	add	r12,r15
 	mov	r14,rcx
@@ -1096,7 +1100,7 @@
 	ror	r14,5
 	xor	r15,rax
 
-	mov	QWORD PTR[48+rsp],r12
+	mov	QWORD[48+rsp],r12
 	xor	r14,rcx
 	and	r15,r10
 
@@ -1109,7 +1113,7 @@
 	add	r12,r15
 
 	mov	r15,rcx
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,rcx
 
 	xor	r15,rdx
@@ -1124,9 +1128,9 @@
 	add	r9,r12
 	add	rbx,r12
 
-	lea	rbp,QWORD PTR[8+rbp]
-	mov	r13,QWORD PTR[64+rsp]
-	mov	rdi,QWORD PTR[40+rsp]
+	lea	rbp,[8+rbp]
+	mov	r13,QWORD[64+rsp]
+	mov	rdi,QWORD[40+rsp]
 
 	mov	r12,r13
 	ror	r13,7
@@ -1143,9 +1147,9 @@
 	ror	rdi,19
 	xor	r12,r13
 	xor	rdi,r14
-	add	r12,QWORD PTR[rsp]
+	add	r12,QWORD[rsp]
 
-	add	r12,QWORD PTR[56+rsp]
+	add	r12,QWORD[56+rsp]
 	mov	r13,r9
 	add	r12,rdi
 	mov	r14,rbx
@@ -1156,7 +1160,7 @@
 	ror	r14,5
 	xor	rdi,r11
 
-	mov	QWORD PTR[56+rsp],r12
+	mov	QWORD[56+rsp],r12
 	xor	r14,rbx
 	and	rdi,r9
 
@@ -1169,7 +1173,7 @@
 	add	r12,rdi
 
 	mov	rdi,rbx
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,rbx
 
 	xor	rdi,rcx
@@ -1184,9 +1188,9 @@
 	add	r8,r12
 	add	rax,r12
 
-	lea	rbp,QWORD PTR[24+rbp]
-	mov	r13,QWORD PTR[72+rsp]
-	mov	r15,QWORD PTR[48+rsp]
+	lea	rbp,[24+rbp]
+	mov	r13,QWORD[72+rsp]
+	mov	r15,QWORD[48+rsp]
 
 	mov	r12,r13
 	ror	r13,7
@@ -1203,9 +1207,9 @@
 	ror	r15,19
 	xor	r12,r13
 	xor	r15,r14
-	add	r12,QWORD PTR[8+rsp]
+	add	r12,QWORD[8+rsp]
 
-	add	r12,QWORD PTR[64+rsp]
+	add	r12,QWORD[64+rsp]
 	mov	r13,r8
 	add	r12,r15
 	mov	r14,rax
@@ -1216,7 +1220,7 @@
 	ror	r14,5
 	xor	r15,r10
 
-	mov	QWORD PTR[64+rsp],r12
+	mov	QWORD[64+rsp],r12
 	xor	r14,rax
 	and	r15,r8
 
@@ -1229,7 +1233,7 @@
 	add	r12,r15
 
 	mov	r15,rax
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,rax
 
 	xor	r15,rbx
@@ -1244,9 +1248,9 @@
 	add	rdx,r12
 	add	r11,r12
 
-	lea	rbp,QWORD PTR[8+rbp]
-	mov	r13,QWORD PTR[80+rsp]
-	mov	rdi,QWORD PTR[56+rsp]
+	lea	rbp,[8+rbp]
+	mov	r13,QWORD[80+rsp]
+	mov	rdi,QWORD[56+rsp]
 
 	mov	r12,r13
 	ror	r13,7
@@ -1263,9 +1267,9 @@
 	ror	rdi,19
 	xor	r12,r13
 	xor	rdi,r14
-	add	r12,QWORD PTR[16+rsp]
+	add	r12,QWORD[16+rsp]
 
-	add	r12,QWORD PTR[72+rsp]
+	add	r12,QWORD[72+rsp]
 	mov	r13,rdx
 	add	r12,rdi
 	mov	r14,r11
@@ -1276,7 +1280,7 @@
 	ror	r14,5
 	xor	rdi,r9
 
-	mov	QWORD PTR[72+rsp],r12
+	mov	QWORD[72+rsp],r12
 	xor	r14,r11
 	and	rdi,rdx
 
@@ -1289,7 +1293,7 @@
 	add	r12,rdi
 
 	mov	rdi,r11
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,r11
 
 	xor	rdi,rax
@@ -1304,9 +1308,9 @@
 	add	rcx,r12
 	add	r10,r12
 
-	lea	rbp,QWORD PTR[24+rbp]
-	mov	r13,QWORD PTR[88+rsp]
-	mov	r15,QWORD PTR[64+rsp]
+	lea	rbp,[24+rbp]
+	mov	r13,QWORD[88+rsp]
+	mov	r15,QWORD[64+rsp]
 
 	mov	r12,r13
 	ror	r13,7
@@ -1323,9 +1327,9 @@
 	ror	r15,19
 	xor	r12,r13
 	xor	r15,r14
-	add	r12,QWORD PTR[24+rsp]
+	add	r12,QWORD[24+rsp]
 
-	add	r12,QWORD PTR[80+rsp]
+	add	r12,QWORD[80+rsp]
 	mov	r13,rcx
 	add	r12,r15
 	mov	r14,r10
@@ -1336,7 +1340,7 @@
 	ror	r14,5
 	xor	r15,r8
 
-	mov	QWORD PTR[80+rsp],r12
+	mov	QWORD[80+rsp],r12
 	xor	r14,r10
 	and	r15,rcx
 
@@ -1349,7 +1353,7 @@
 	add	r12,r15
 
 	mov	r15,r10
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,r10
 
 	xor	r15,r11
@@ -1364,9 +1368,9 @@
 	add	rbx,r12
 	add	r9,r12
 
-	lea	rbp,QWORD PTR[8+rbp]
-	mov	r13,QWORD PTR[96+rsp]
-	mov	rdi,QWORD PTR[72+rsp]
+	lea	rbp,[8+rbp]
+	mov	r13,QWORD[96+rsp]
+	mov	rdi,QWORD[72+rsp]
 
 	mov	r12,r13
 	ror	r13,7
@@ -1383,9 +1387,9 @@
 	ror	rdi,19
 	xor	r12,r13
 	xor	rdi,r14
-	add	r12,QWORD PTR[32+rsp]
+	add	r12,QWORD[32+rsp]
 
-	add	r12,QWORD PTR[88+rsp]
+	add	r12,QWORD[88+rsp]
 	mov	r13,rbx
 	add	r12,rdi
 	mov	r14,r9
@@ -1396,7 +1400,7 @@
 	ror	r14,5
 	xor	rdi,rdx
 
-	mov	QWORD PTR[88+rsp],r12
+	mov	QWORD[88+rsp],r12
 	xor	r14,r9
 	and	rdi,rbx
 
@@ -1409,7 +1413,7 @@
 	add	r12,rdi
 
 	mov	rdi,r9
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,r9
 
 	xor	rdi,r10
@@ -1424,9 +1428,9 @@
 	add	rax,r12
 	add	r8,r12
 
-	lea	rbp,QWORD PTR[24+rbp]
-	mov	r13,QWORD PTR[104+rsp]
-	mov	r15,QWORD PTR[80+rsp]
+	lea	rbp,[24+rbp]
+	mov	r13,QWORD[104+rsp]
+	mov	r15,QWORD[80+rsp]
 
 	mov	r12,r13
 	ror	r13,7
@@ -1443,9 +1447,9 @@
 	ror	r15,19
 	xor	r12,r13
 	xor	r15,r14
-	add	r12,QWORD PTR[40+rsp]
+	add	r12,QWORD[40+rsp]
 
-	add	r12,QWORD PTR[96+rsp]
+	add	r12,QWORD[96+rsp]
 	mov	r13,rax
 	add	r12,r15
 	mov	r14,r8
@@ -1456,7 +1460,7 @@
 	ror	r14,5
 	xor	r15,rcx
 
-	mov	QWORD PTR[96+rsp],r12
+	mov	QWORD[96+rsp],r12
 	xor	r14,r8
 	and	r15,rax
 
@@ -1469,7 +1473,7 @@
 	add	r12,r15
 
 	mov	r15,r8
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,r8
 
 	xor	r15,r9
@@ -1484,9 +1488,9 @@
 	add	r11,r12
 	add	rdx,r12
 
-	lea	rbp,QWORD PTR[8+rbp]
-	mov	r13,QWORD PTR[112+rsp]
-	mov	rdi,QWORD PTR[88+rsp]
+	lea	rbp,[8+rbp]
+	mov	r13,QWORD[112+rsp]
+	mov	rdi,QWORD[88+rsp]
 
 	mov	r12,r13
 	ror	r13,7
@@ -1503,9 +1507,9 @@
 	ror	rdi,19
 	xor	r12,r13
 	xor	rdi,r14
-	add	r12,QWORD PTR[48+rsp]
+	add	r12,QWORD[48+rsp]
 
-	add	r12,QWORD PTR[104+rsp]
+	add	r12,QWORD[104+rsp]
 	mov	r13,r11
 	add	r12,rdi
 	mov	r14,rdx
@@ -1516,7 +1520,7 @@
 	ror	r14,5
 	xor	rdi,rbx
 
-	mov	QWORD PTR[104+rsp],r12
+	mov	QWORD[104+rsp],r12
 	xor	r14,rdx
 	and	rdi,r11
 
@@ -1529,7 +1533,7 @@
 	add	r12,rdi
 
 	mov	rdi,rdx
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,rdx
 
 	xor	rdi,r8
@@ -1544,9 +1548,9 @@
 	add	r10,r12
 	add	rcx,r12
 
-	lea	rbp,QWORD PTR[24+rbp]
-	mov	r13,QWORD PTR[120+rsp]
-	mov	r15,QWORD PTR[96+rsp]
+	lea	rbp,[24+rbp]
+	mov	r13,QWORD[120+rsp]
+	mov	r15,QWORD[96+rsp]
 
 	mov	r12,r13
 	ror	r13,7
@@ -1563,9 +1567,9 @@
 	ror	r15,19
 	xor	r12,r13
 	xor	r15,r14
-	add	r12,QWORD PTR[56+rsp]
+	add	r12,QWORD[56+rsp]
 
-	add	r12,QWORD PTR[112+rsp]
+	add	r12,QWORD[112+rsp]
 	mov	r13,r10
 	add	r12,r15
 	mov	r14,rcx
@@ -1576,7 +1580,7 @@
 	ror	r14,5
 	xor	r15,rax
 
-	mov	QWORD PTR[112+rsp],r12
+	mov	QWORD[112+rsp],r12
 	xor	r14,rcx
 	and	r15,r10
 
@@ -1589,7 +1593,7 @@
 	add	r12,r15
 
 	mov	r15,rcx
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,rcx
 
 	xor	r15,rdx
@@ -1604,9 +1608,9 @@
 	add	r9,r12
 	add	rbx,r12
 
-	lea	rbp,QWORD PTR[8+rbp]
-	mov	r13,QWORD PTR[rsp]
-	mov	rdi,QWORD PTR[104+rsp]
+	lea	rbp,[8+rbp]
+	mov	r13,QWORD[rsp]
+	mov	rdi,QWORD[104+rsp]
 
 	mov	r12,r13
 	ror	r13,7
@@ -1623,9 +1627,9 @@
 	ror	rdi,19
 	xor	r12,r13
 	xor	rdi,r14
-	add	r12,QWORD PTR[64+rsp]
+	add	r12,QWORD[64+rsp]
 
-	add	r12,QWORD PTR[120+rsp]
+	add	r12,QWORD[120+rsp]
 	mov	r13,r9
 	add	r12,rdi
 	mov	r14,rbx
@@ -1636,7 +1640,7 @@
 	ror	r14,5
 	xor	rdi,r11
 
-	mov	QWORD PTR[120+rsp],r12
+	mov	QWORD[120+rsp],r12
 	xor	r14,rbx
 	and	rdi,r9
 
@@ -1649,7 +1653,7 @@
 	add	r12,rdi
 
 	mov	rdi,rbx
-	add	r12,QWORD PTR[rbp]
+	add	r12,QWORD[rbp]
 	xor	r14,rbx
 
 	xor	rdi,rcx
@@ -1664,144 +1668,143 @@
 	add	r8,r12
 	add	rax,r12
 
-	lea	rbp,QWORD PTR[24+rbp]
-	cmp	BYTE PTR[7+rbp],0
-	jnz	$L$rounds_16_xx
+	lea	rbp,[24+rbp]
+	cmp	BYTE[7+rbp],0
+	jnz	NEAR $L$rounds_16_xx
 
-	mov	rdi,QWORD PTR[((128+0))+rsp]
+	mov	rdi,QWORD[((128+0))+rsp]
 	add	rax,r14
-	lea	rsi,QWORD PTR[128+rsi]
+	lea	rsi,[128+rsi]
 
-	add	rax,QWORD PTR[rdi]
-	add	rbx,QWORD PTR[8+rdi]
-	add	rcx,QWORD PTR[16+rdi]
-	add	rdx,QWORD PTR[24+rdi]
-	add	r8,QWORD PTR[32+rdi]
-	add	r9,QWORD PTR[40+rdi]
-	add	r10,QWORD PTR[48+rdi]
-	add	r11,QWORD PTR[56+rdi]
+	add	rax,QWORD[rdi]
+	add	rbx,QWORD[8+rdi]
+	add	rcx,QWORD[16+rdi]
+	add	rdx,QWORD[24+rdi]
+	add	r8,QWORD[32+rdi]
+	add	r9,QWORD[40+rdi]
+	add	r10,QWORD[48+rdi]
+	add	r11,QWORD[56+rdi]
 
-	cmp	rsi,QWORD PTR[((128+16))+rsp]
+	cmp	rsi,QWORD[((128+16))+rsp]
 
-	mov	QWORD PTR[rdi],rax
-	mov	QWORD PTR[8+rdi],rbx
-	mov	QWORD PTR[16+rdi],rcx
-	mov	QWORD PTR[24+rdi],rdx
-	mov	QWORD PTR[32+rdi],r8
-	mov	QWORD PTR[40+rdi],r9
-	mov	QWORD PTR[48+rdi],r10
-	mov	QWORD PTR[56+rdi],r11
-	jb	$L$loop
+	mov	QWORD[rdi],rax
+	mov	QWORD[8+rdi],rbx
+	mov	QWORD[16+rdi],rcx
+	mov	QWORD[24+rdi],rdx
+	mov	QWORD[32+rdi],r8
+	mov	QWORD[40+rdi],r9
+	mov	QWORD[48+rdi],r10
+	mov	QWORD[56+rdi],r11
+	jb	NEAR $L$loop
 
-	mov	rsi,QWORD PTR[((128+24))+rsp]
-	mov	r15,QWORD PTR[rsi]
-	mov	r14,QWORD PTR[8+rsi]
-	mov	r13,QWORD PTR[16+rsi]
-	mov	r12,QWORD PTR[24+rsi]
-	mov	rbp,QWORD PTR[32+rsi]
-	mov	rbx,QWORD PTR[40+rsi]
-	lea	rsp,QWORD PTR[48+rsi]
-$L$epilogue::
-	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
-	mov	rsi,QWORD PTR[16+rsp]
+	mov	rsi,QWORD[((128+24))+rsp]
+	mov	r15,QWORD[rsi]
+	mov	r14,QWORD[8+rsi]
+	mov	r13,QWORD[16+rsi]
+	mov	r12,QWORD[24+rsi]
+	mov	rbp,QWORD[32+rsi]
+	mov	rbx,QWORD[40+rsi]
+	lea	rsp,[48+rsi]
+$L$epilogue:
+	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
+	mov	rsi,QWORD[16+rsp]
 	DB	0F3h,0C3h		;repret
-$L$SEH_end_sha512_block_data_order::
-sha512_block_data_order	ENDP
+$L$SEH_end_sha512_block_data_order:
 ALIGN	64
 
-K512::
-	DQ	0428a2f98d728ae22h,07137449123ef65cdh
-	DQ	0428a2f98d728ae22h,07137449123ef65cdh
-	DQ	0b5c0fbcfec4d3b2fh,0e9b5dba58189dbbch
-	DQ	0b5c0fbcfec4d3b2fh,0e9b5dba58189dbbch
-	DQ	03956c25bf348b538h,059f111f1b605d019h
-	DQ	03956c25bf348b538h,059f111f1b605d019h
-	DQ	0923f82a4af194f9bh,0ab1c5ed5da6d8118h
-	DQ	0923f82a4af194f9bh,0ab1c5ed5da6d8118h
-	DQ	0d807aa98a3030242h,012835b0145706fbeh
-	DQ	0d807aa98a3030242h,012835b0145706fbeh
-	DQ	0243185be4ee4b28ch,0550c7dc3d5ffb4e2h
-	DQ	0243185be4ee4b28ch,0550c7dc3d5ffb4e2h
-	DQ	072be5d74f27b896fh,080deb1fe3b1696b1h
-	DQ	072be5d74f27b896fh,080deb1fe3b1696b1h
-	DQ	09bdc06a725c71235h,0c19bf174cf692694h
-	DQ	09bdc06a725c71235h,0c19bf174cf692694h
-	DQ	0e49b69c19ef14ad2h,0efbe4786384f25e3h
-	DQ	0e49b69c19ef14ad2h,0efbe4786384f25e3h
-	DQ	00fc19dc68b8cd5b5h,0240ca1cc77ac9c65h
-	DQ	00fc19dc68b8cd5b5h,0240ca1cc77ac9c65h
-	DQ	02de92c6f592b0275h,04a7484aa6ea6e483h
-	DQ	02de92c6f592b0275h,04a7484aa6ea6e483h
-	DQ	05cb0a9dcbd41fbd4h,076f988da831153b5h
-	DQ	05cb0a9dcbd41fbd4h,076f988da831153b5h
-	DQ	0983e5152ee66dfabh,0a831c66d2db43210h
-	DQ	0983e5152ee66dfabh,0a831c66d2db43210h
-	DQ	0b00327c898fb213fh,0bf597fc7beef0ee4h
-	DQ	0b00327c898fb213fh,0bf597fc7beef0ee4h
-	DQ	0c6e00bf33da88fc2h,0d5a79147930aa725h
-	DQ	0c6e00bf33da88fc2h,0d5a79147930aa725h
-	DQ	006ca6351e003826fh,0142929670a0e6e70h
-	DQ	006ca6351e003826fh,0142929670a0e6e70h
-	DQ	027b70a8546d22ffch,02e1b21385c26c926h
-	DQ	027b70a8546d22ffch,02e1b21385c26c926h
-	DQ	04d2c6dfc5ac42aedh,053380d139d95b3dfh
-	DQ	04d2c6dfc5ac42aedh,053380d139d95b3dfh
-	DQ	0650a73548baf63deh,0766a0abb3c77b2a8h
-	DQ	0650a73548baf63deh,0766a0abb3c77b2a8h
-	DQ	081c2c92e47edaee6h,092722c851482353bh
-	DQ	081c2c92e47edaee6h,092722c851482353bh
-	DQ	0a2bfe8a14cf10364h,0a81a664bbc423001h
-	DQ	0a2bfe8a14cf10364h,0a81a664bbc423001h
-	DQ	0c24b8b70d0f89791h,0c76c51a30654be30h
-	DQ	0c24b8b70d0f89791h,0c76c51a30654be30h
-	DQ	0d192e819d6ef5218h,0d69906245565a910h
-	DQ	0d192e819d6ef5218h,0d69906245565a910h
-	DQ	0f40e35855771202ah,0106aa07032bbd1b8h
-	DQ	0f40e35855771202ah,0106aa07032bbd1b8h
-	DQ	019a4c116b8d2d0c8h,01e376c085141ab53h
-	DQ	019a4c116b8d2d0c8h,01e376c085141ab53h
-	DQ	02748774cdf8eeb99h,034b0bcb5e19b48a8h
-	DQ	02748774cdf8eeb99h,034b0bcb5e19b48a8h
-	DQ	0391c0cb3c5c95a63h,04ed8aa4ae3418acbh
-	DQ	0391c0cb3c5c95a63h,04ed8aa4ae3418acbh
-	DQ	05b9cca4f7763e373h,0682e6ff3d6b2b8a3h
-	DQ	05b9cca4f7763e373h,0682e6ff3d6b2b8a3h
-	DQ	0748f82ee5defb2fch,078a5636f43172f60h
-	DQ	0748f82ee5defb2fch,078a5636f43172f60h
-	DQ	084c87814a1f0ab72h,08cc702081a6439ech
-	DQ	084c87814a1f0ab72h,08cc702081a6439ech
-	DQ	090befffa23631e28h,0a4506cebde82bde9h
-	DQ	090befffa23631e28h,0a4506cebde82bde9h
-	DQ	0bef9a3f7b2c67915h,0c67178f2e372532bh
-	DQ	0bef9a3f7b2c67915h,0c67178f2e372532bh
-	DQ	0ca273eceea26619ch,0d186b8c721c0c207h
-	DQ	0ca273eceea26619ch,0d186b8c721c0c207h
-	DQ	0eada7dd6cde0eb1eh,0f57d4f7fee6ed178h
-	DQ	0eada7dd6cde0eb1eh,0f57d4f7fee6ed178h
-	DQ	006f067aa72176fbah,00a637dc5a2c898a6h
-	DQ	006f067aa72176fbah,00a637dc5a2c898a6h
-	DQ	0113f9804bef90daeh,01b710b35131c471bh
-	DQ	0113f9804bef90daeh,01b710b35131c471bh
-	DQ	028db77f523047d84h,032caab7b40c72493h
-	DQ	028db77f523047d84h,032caab7b40c72493h
-	DQ	03c9ebe0a15c9bebch,0431d67c49c100d4ch
-	DQ	03c9ebe0a15c9bebch,0431d67c49c100d4ch
-	DQ	04cc5d4becb3e42b6h,0597f299cfc657e2ah
-	DQ	04cc5d4becb3e42b6h,0597f299cfc657e2ah
-	DQ	05fcb6fab3ad6faech,06c44198c4a475817h
-	DQ	05fcb6fab3ad6faech,06c44198c4a475817h
+K512:
+	DQ	0x428a2f98d728ae22,0x7137449123ef65cd
+	DQ	0x428a2f98d728ae22,0x7137449123ef65cd
+	DQ	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
+	DQ	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
+	DQ	0x3956c25bf348b538,0x59f111f1b605d019
+	DQ	0x3956c25bf348b538,0x59f111f1b605d019
+	DQ	0x923f82a4af194f9b,0xab1c5ed5da6d8118
+	DQ	0x923f82a4af194f9b,0xab1c5ed5da6d8118
+	DQ	0xd807aa98a3030242,0x12835b0145706fbe
+	DQ	0xd807aa98a3030242,0x12835b0145706fbe
+	DQ	0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
+	DQ	0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
+	DQ	0x72be5d74f27b896f,0x80deb1fe3b1696b1
+	DQ	0x72be5d74f27b896f,0x80deb1fe3b1696b1
+	DQ	0x9bdc06a725c71235,0xc19bf174cf692694
+	DQ	0x9bdc06a725c71235,0xc19bf174cf692694
+	DQ	0xe49b69c19ef14ad2,0xefbe4786384f25e3
+	DQ	0xe49b69c19ef14ad2,0xefbe4786384f25e3
+	DQ	0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
+	DQ	0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
+	DQ	0x2de92c6f592b0275,0x4a7484aa6ea6e483
+	DQ	0x2de92c6f592b0275,0x4a7484aa6ea6e483
+	DQ	0x5cb0a9dcbd41fbd4,0x76f988da831153b5
+	DQ	0x5cb0a9dcbd41fbd4,0x76f988da831153b5
+	DQ	0x983e5152ee66dfab,0xa831c66d2db43210
+	DQ	0x983e5152ee66dfab,0xa831c66d2db43210
+	DQ	0xb00327c898fb213f,0xbf597fc7beef0ee4
+	DQ	0xb00327c898fb213f,0xbf597fc7beef0ee4
+	DQ	0xc6e00bf33da88fc2,0xd5a79147930aa725
+	DQ	0xc6e00bf33da88fc2,0xd5a79147930aa725
+	DQ	0x06ca6351e003826f,0x142929670a0e6e70
+	DQ	0x06ca6351e003826f,0x142929670a0e6e70
+	DQ	0x27b70a8546d22ffc,0x2e1b21385c26c926
+	DQ	0x27b70a8546d22ffc,0x2e1b21385c26c926
+	DQ	0x4d2c6dfc5ac42aed,0x53380d139d95b3df
+	DQ	0x4d2c6dfc5ac42aed,0x53380d139d95b3df
+	DQ	0x650a73548baf63de,0x766a0abb3c77b2a8
+	DQ	0x650a73548baf63de,0x766a0abb3c77b2a8
+	DQ	0x81c2c92e47edaee6,0x92722c851482353b
+	DQ	0x81c2c92e47edaee6,0x92722c851482353b
+	DQ	0xa2bfe8a14cf10364,0xa81a664bbc423001
+	DQ	0xa2bfe8a14cf10364,0xa81a664bbc423001
+	DQ	0xc24b8b70d0f89791,0xc76c51a30654be30
+	DQ	0xc24b8b70d0f89791,0xc76c51a30654be30
+	DQ	0xd192e819d6ef5218,0xd69906245565a910
+	DQ	0xd192e819d6ef5218,0xd69906245565a910
+	DQ	0xf40e35855771202a,0x106aa07032bbd1b8
+	DQ	0xf40e35855771202a,0x106aa07032bbd1b8
+	DQ	0x19a4c116b8d2d0c8,0x1e376c085141ab53
+	DQ	0x19a4c116b8d2d0c8,0x1e376c085141ab53
+	DQ	0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
+	DQ	0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
+	DQ	0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
+	DQ	0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
+	DQ	0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
+	DQ	0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
+	DQ	0x748f82ee5defb2fc,0x78a5636f43172f60
+	DQ	0x748f82ee5defb2fc,0x78a5636f43172f60
+	DQ	0x84c87814a1f0ab72,0x8cc702081a6439ec
+	DQ	0x84c87814a1f0ab72,0x8cc702081a6439ec
+	DQ	0x90befffa23631e28,0xa4506cebde82bde9
+	DQ	0x90befffa23631e28,0xa4506cebde82bde9
+	DQ	0xbef9a3f7b2c67915,0xc67178f2e372532b
+	DQ	0xbef9a3f7b2c67915,0xc67178f2e372532b
+	DQ	0xca273eceea26619c,0xd186b8c721c0c207
+	DQ	0xca273eceea26619c,0xd186b8c721c0c207
+	DQ	0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
+	DQ	0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
+	DQ	0x06f067aa72176fba,0x0a637dc5a2c898a6
+	DQ	0x06f067aa72176fba,0x0a637dc5a2c898a6
+	DQ	0x113f9804bef90dae,0x1b710b35131c471b
+	DQ	0x113f9804bef90dae,0x1b710b35131c471b
+	DQ	0x28db77f523047d84,0x32caab7b40c72493
+	DQ	0x28db77f523047d84,0x32caab7b40c72493
+	DQ	0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
+	DQ	0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
+	DQ	0x4cc5d4becb3e42b6,0x597f299cfc657e2a
+	DQ	0x4cc5d4becb3e42b6,0x597f299cfc657e2a
+	DQ	0x5fcb6fab3ad6faec,0x6c44198c4a475817
+	DQ	0x5fcb6fab3ad6faec,0x6c44198c4a475817
 
-	DQ	00001020304050607h,008090a0b0c0d0e0fh
-	DQ	00001020304050607h,008090a0b0c0d0e0fh
+	DQ	0x0001020304050607,0x08090a0b0c0d0e0f
+	DQ	0x0001020304050607,0x08090a0b0c0d0e0f
 DB	83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97
 DB	110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54
 DB	52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121
 DB	32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46
 DB	111,114,103,62,0
-EXTERN	__imp_RtlVirtualUnwind:NEAR
+EXTERN	__imp_RtlVirtualUnwind
 
 ALIGN	16
-se_handler	PROC PRIVATE
+se_handler:
 	push	rsi
 	push	rdi
 	push	rbx
@@ -1813,74 +1816,74 @@
 	pushfq
 	sub	rsp,64
 
-	mov	rax,QWORD PTR[120+r8]
-	mov	rbx,QWORD PTR[248+r8]
+	mov	rax,QWORD[120+r8]
+	mov	rbx,QWORD[248+r8]
 
-	mov	rsi,QWORD PTR[8+r9]
-	mov	r11,QWORD PTR[56+r9]
+	mov	rsi,QWORD[8+r9]
+	mov	r11,QWORD[56+r9]
 
-	mov	r10d,DWORD PTR[r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jb	$L$in_prologue
+	jb	NEAR $L$in_prologue
 
-	mov	rax,QWORD PTR[152+r8]
+	mov	rax,QWORD[152+r8]
 
-	mov	r10d,DWORD PTR[4+r11]
-	lea	r10,QWORD PTR[r10*1+rsi]
+	mov	r10d,DWORD[4+r11]
+	lea	r10,[r10*1+rsi]
 	cmp	rbx,r10
-	jae	$L$in_prologue
+	jae	NEAR $L$in_prologue
 	mov	rsi,rax
-	mov	rax,QWORD PTR[((128+24))+rax]
-	lea	rax,QWORD PTR[48+rax]
+	mov	rax,QWORD[((128+24))+rax]
+	lea	rax,[48+rax]
 
-	mov	rbx,QWORD PTR[((-8))+rax]
-	mov	rbp,QWORD PTR[((-16))+rax]
-	mov	r12,QWORD PTR[((-24))+rax]
-	mov	r13,QWORD PTR[((-32))+rax]
-	mov	r14,QWORD PTR[((-40))+rax]
-	mov	r15,QWORD PTR[((-48))+rax]
-	mov	QWORD PTR[144+r8],rbx
-	mov	QWORD PTR[160+r8],rbp
-	mov	QWORD PTR[216+r8],r12
-	mov	QWORD PTR[224+r8],r13
-	mov	QWORD PTR[232+r8],r14
-	mov	QWORD PTR[240+r8],r15
+	mov	rbx,QWORD[((-8))+rax]
+	mov	rbp,QWORD[((-16))+rax]
+	mov	r12,QWORD[((-24))+rax]
+	mov	r13,QWORD[((-32))+rax]
+	mov	r14,QWORD[((-40))+rax]
+	mov	r15,QWORD[((-48))+rax]
+	mov	QWORD[144+r8],rbx
+	mov	QWORD[160+r8],rbp
+	mov	QWORD[216+r8],r12
+	mov	QWORD[224+r8],r13
+	mov	QWORD[232+r8],r14
+	mov	QWORD[240+r8],r15
 
-	lea	r10,QWORD PTR[$L$epilogue]
+	lea	r10,[$L$epilogue]
 	cmp	rbx,r10
-	jb	$L$in_prologue
+	jb	NEAR $L$in_prologue
 
-	lea	rsi,QWORD PTR[((128+32))+rsi]
-	lea	rdi,QWORD PTR[512+r8]
+	lea	rsi,[((128+32))+rsi]
+	lea	rdi,[512+r8]
 	mov	ecx,12
-	DD	0a548f3fch
+	DD	0xa548f3fc
 
-$L$in_prologue::
-	mov	rdi,QWORD PTR[8+rax]
-	mov	rsi,QWORD PTR[16+rax]
-	mov	QWORD PTR[152+r8],rax
-	mov	QWORD PTR[168+r8],rsi
-	mov	QWORD PTR[176+r8],rdi
+$L$in_prologue:
+	mov	rdi,QWORD[8+rax]
+	mov	rsi,QWORD[16+rax]
+	mov	QWORD[152+r8],rax
+	mov	QWORD[168+r8],rsi
+	mov	QWORD[176+r8],rdi
 
-	mov	rdi,QWORD PTR[40+r9]
+	mov	rdi,QWORD[40+r9]
 	mov	rsi,r8
 	mov	ecx,154
-	DD	0a548f3fch
+	DD	0xa548f3fc
 
 	mov	rsi,r9
 	xor	rcx,rcx
-	mov	rdx,QWORD PTR[8+rsi]
-	mov	r8,QWORD PTR[rsi]
-	mov	r9,QWORD PTR[16+rsi]
-	mov	r10,QWORD PTR[40+rsi]
-	lea	r11,QWORD PTR[56+rsi]
-	lea	r12,QWORD PTR[24+rsi]
-	mov	QWORD PTR[32+rsp],r10
-	mov	QWORD PTR[40+rsp],r11
-	mov	QWORD PTR[48+rsp],r12
-	mov	QWORD PTR[56+rsp],rcx
-	call	QWORD PTR[__imp_RtlVirtualUnwind]
+	mov	rdx,QWORD[8+rsi]
+	mov	r8,QWORD[rsi]
+	mov	r9,QWORD[16+rsi]
+	mov	r10,QWORD[40+rsi]
+	lea	r11,[56+rsi]
+	lea	r12,[24+rsi]
+	mov	QWORD[32+rsp],r10
+	mov	QWORD[40+rsp],r11
+	mov	QWORD[48+rsp],r12
+	mov	QWORD[56+rsp],rcx
+	call	QWORD[__imp_RtlVirtualUnwind]
 
 	mov	eax,1
 	add	rsp,64
@@ -1894,20 +1897,15 @@
 	pop	rdi
 	pop	rsi
 	DB	0F3h,0C3h		;repret
-se_handler	ENDP
-.text$	ENDS
-.pdata	SEGMENT READONLY ALIGN(4)
-ALIGN	4
-	DD	imagerel $L$SEH_begin_sha512_block_data_order
-	DD	imagerel $L$SEH_end_sha512_block_data_order
-	DD	imagerel $L$SEH_info_sha512_block_data_order
-.pdata	ENDS
-.xdata	SEGMENT READONLY ALIGN(8)
-ALIGN	8
-$L$SEH_info_sha512_block_data_order::
-DB	9,0,0,0
-	DD	imagerel se_handler
-	DD	imagerel $L$prologue,imagerel $L$epilogue
 
-.xdata	ENDS
-END
+section	.pdata rdata align=4
+ALIGN	4
+	DD	$L$SEH_begin_sha512_block_data_order wrt ..imagebase
+	DD	$L$SEH_end_sha512_block_data_order wrt ..imagebase
+	DD	$L$SEH_info_sha512_block_data_order wrt ..imagebase
+section	.xdata rdata align=8
+ALIGN	8
+$L$SEH_info_sha512_block_data_order:
+DB	9,0,0,0
+	DD	se_handler wrt ..imagebase
+	DD	$L$prologue wrt ..imagebase,$L$epilogue wrt ..imagebase
diff --git a/third_party/zlib/BUILD.gn b/third_party/zlib/BUILD.gn
index 0f21450..18cf816 100644
--- a/third_party/zlib/BUILD.gn
+++ b/third_party/zlib/BUILD.gn
@@ -6,6 +6,15 @@
   include_dirs = [ "." ]
 }
 
+static_library("zlib_x86_simd") {
+  if (cpu_arch == "x86" || cpu_arch == "x64") {
+    sources = [ "crc_folding.c", "fill_window_sse.c" ]
+    cflags = [ "-msse2", "-msse4.2", "-mpclmul" ]
+  } else {
+    sources = [ "simd_stub.c"]
+  }
+}
+
 static_library("zlib") {
   if (!is_win) {
     # Don't stomp on "libzlib" on other platforms.
@@ -36,16 +45,22 @@
     "trees.c",
     "trees.h",
     "uncompr.c",
+    "x86.h",
     "zconf.h",
     "zlib.h",
     "zutil.c",
     "zutil.h",
   ]
 
+  if (cpu_arch == "x86" || cpu_arch == "x64") {
+    sources += [ "x86.c" ]
+  }
+
   configs -= [ "//build/config/compiler:chromium_code" ]
   configs += [ "//build/config/compiler:no_chromium_code" ]
 
   public_configs = [ ":zlib_config" ]
+  deps = [ ":zlib_x86_simd" ]
 }
 
 static_library("minizip") {
diff --git a/third_party/zlib/README.chromium b/third_party/zlib/README.chromium
index c9e06ba..b90bcff 100644
--- a/third_party/zlib/README.chromium
+++ b/third_party/zlib/README.chromium
@@ -19,3 +19,19 @@
 
 A more significant change to support mixed-source data compression. See
 crbug.com/139744 and mixed-source.patch.
+
+Integrated Intel SIMD optimisations from: https://github.com/jtkukunas/zlib/
+and modified to accomodate the older version and existing changes in tree.
+
+This introduces new files: simd_stub.c, crc_folding.c, fill_window_sse.c and
+x86.[ch]. All but the latter are built into a static library to allow the
+compiler to use the desired instructions only when valid. The latter version is
+only built on x86 (32-bit and 64-bit) systems with it's functionality stubbed
+on the others.
+
+Other changes to accomodate:
+- fill_window() implementation calls into _sse() variant when supported and the
+  original implementation renamed to _c()
+- read_buf was moved from local to ZLIB_INTERNAL for fill_window_sse.c to use
+- INSERT_STRING macro was made a function, insert_string() and an implementation using CRC instruction added
+- some crc funcionality moved into crc32.c
diff --git a/third_party/zlib/crc32.c b/third_party/zlib/crc32.c
index 91be372..75f2290 100644
--- a/third_party/zlib/crc32.c
+++ b/third_party/zlib/crc32.c
@@ -26,6 +26,8 @@
 #  endif /* !DYNAMIC_CRC_TABLE */
 #endif /* MAKECRCH */
 
+#include "deflate.h"
+#include "x86.h"
 #include "zutil.h"      /* for STDC and FAR definitions */
 
 #define local static
@@ -440,3 +442,28 @@
 {
     return crc32_combine_(crc1, crc2, len2);
 }
+
+ZLIB_INTERNAL void crc_reset(deflate_state *const s)
+{
+    if (x86_cpu_enable_simd) {
+        crc_fold_init(s);
+        return;
+    }
+    s->strm->adler = crc32(0L, Z_NULL, 0);
+}
+
+ZLIB_INTERNAL void crc_finalize(deflate_state *const s)
+{
+    if (x86_cpu_enable_simd)
+        s->strm->adler = crc_fold_512to32(s);
+}
+
+ZLIB_INTERNAL void copy_with_crc(z_streamp strm, Bytef *dst, long size)
+{
+    if (x86_cpu_enable_simd) {
+        crc_fold_copy(strm->state, dst, strm->next_in, size);
+        return;
+    }
+    zmemcpy(dst, strm->next_in, size);
+    strm->adler = crc32(strm->adler, dst, size);
+}
diff --git a/third_party/zlib/crc_folding.c b/third_party/zlib/crc_folding.c
new file mode 100644
index 0000000..98c559c
--- /dev/null
+++ b/third_party/zlib/crc_folding.c
@@ -0,0 +1,493 @@
+/*
+ * Compute the CRC32 using a parallelized folding approach with the PCLMULQDQ
+ * instruction.
+ *
+ * A white paper describing this algorithm can be found at:
+ * http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/fast-crc-computation-generic-polynomials-pclmulqdq-paper.pdf
+ *
+ * Copyright (C) 2013 Intel Corporation. All rights reserved.
+ * Authors:
+ * 	Wajdi Feghali   <wajdi.k.feghali@intel.com>
+ * 	Jim Guilford    <james.guilford@intel.com>
+ * 	Vinodh Gopal    <vinodh.gopal@intel.com>
+ * 	Erdinc Ozturk   <erdinc.ozturk@intel.com>
+ * 	Jim Kukunas     <james.t.kukunas@linux.intel.com>
+ *
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+#include "deflate.h"
+
+#include <inttypes.h>
+#include <emmintrin.h>
+#include <immintrin.h>
+#include <wmmintrin.h>
+
+#define CRC_LOAD(s) \
+    do { \
+        __m128i xmm_crc0 = _mm_loadu_si128((__m128i *)s->crc0 + 0);\
+        __m128i xmm_crc1 = _mm_loadu_si128((__m128i *)s->crc0 + 1);\
+        __m128i xmm_crc2 = _mm_loadu_si128((__m128i *)s->crc0 + 2);\
+        __m128i xmm_crc3 = _mm_loadu_si128((__m128i *)s->crc0 + 3);\
+        __m128i xmm_crc_part = _mm_loadu_si128((__m128i *)s->crc0 + 4);
+
+#define CRC_SAVE(s) \
+        _mm_storeu_si128((__m128i *)s->crc0 + 0, xmm_crc0);\
+        _mm_storeu_si128((__m128i *)s->crc0 + 1, xmm_crc1);\
+        _mm_storeu_si128((__m128i *)s->crc0 + 2, xmm_crc2);\
+        _mm_storeu_si128((__m128i *)s->crc0 + 3, xmm_crc3);\
+        _mm_storeu_si128((__m128i *)s->crc0 + 4, xmm_crc_part);\
+    } while (0);
+
+ZLIB_INTERNAL void crc_fold_init(deflate_state *const s)
+{
+    CRC_LOAD(s)
+
+    xmm_crc0 = _mm_cvtsi32_si128(0x9db42487);
+    xmm_crc1 = _mm_setzero_si128();
+    xmm_crc2 = _mm_setzero_si128();
+    xmm_crc3 = _mm_setzero_si128();
+
+    CRC_SAVE(s)
+
+    s->strm->adler = 0;
+}
+
+local void fold_1(deflate_state *const s,
+        __m128i *xmm_crc0, __m128i *xmm_crc1,
+        __m128i *xmm_crc2, __m128i *xmm_crc3)
+{
+    const __m128i xmm_fold4 = _mm_set_epi32(
+            0x00000001, 0x54442bd4,
+            0x00000001, 0xc6e41596);
+
+    __m128i x_tmp3;
+    __m128 ps_crc0, ps_crc3, ps_res;
+
+    x_tmp3 = *xmm_crc3;
+
+    *xmm_crc3 = *xmm_crc0;
+    *xmm_crc0 = _mm_clmulepi64_si128(*xmm_crc0, xmm_fold4, 0x01);
+    *xmm_crc3 = _mm_clmulepi64_si128(*xmm_crc3, xmm_fold4, 0x10);
+    ps_crc0 = _mm_castsi128_ps(*xmm_crc0);
+    ps_crc3 = _mm_castsi128_ps(*xmm_crc3);
+    ps_res = _mm_xor_ps(ps_crc0, ps_crc3);
+
+    *xmm_crc0 = *xmm_crc1;
+    *xmm_crc1 = *xmm_crc2;
+    *xmm_crc2 = x_tmp3;
+    *xmm_crc3 = _mm_castps_si128(ps_res);
+}
+
+local void fold_2(deflate_state *const s,
+        __m128i *xmm_crc0, __m128i *xmm_crc1,
+        __m128i *xmm_crc2, __m128i *xmm_crc3)
+{
+    const __m128i xmm_fold4 = _mm_set_epi32(
+            0x00000001, 0x54442bd4,
+            0x00000001, 0xc6e41596);
+
+    __m128i x_tmp3, x_tmp2;
+    __m128 ps_crc0, ps_crc1, ps_crc2, ps_crc3, ps_res31, ps_res20;
+
+    x_tmp3 = *xmm_crc3;
+    x_tmp2 = *xmm_crc2;
+
+    *xmm_crc3 = *xmm_crc1;
+    *xmm_crc1 = _mm_clmulepi64_si128(*xmm_crc1, xmm_fold4, 0x01);
+    *xmm_crc3 = _mm_clmulepi64_si128(*xmm_crc3, xmm_fold4, 0x10);
+    ps_crc3 = _mm_castsi128_ps(*xmm_crc3);
+    ps_crc1 = _mm_castsi128_ps(*xmm_crc1);
+    ps_res31= _mm_xor_ps(ps_crc3, ps_crc1);
+
+    *xmm_crc2 = *xmm_crc0;
+    *xmm_crc0 = _mm_clmulepi64_si128(*xmm_crc0, xmm_fold4, 0x01);
+    *xmm_crc2 = _mm_clmulepi64_si128(*xmm_crc2, xmm_fold4, 0x10);
+    ps_crc0 = _mm_castsi128_ps(*xmm_crc0);
+    ps_crc2 = _mm_castsi128_ps(*xmm_crc2);
+    ps_res20= _mm_xor_ps(ps_crc0, ps_crc2);
+
+    *xmm_crc0 = x_tmp2;
+    *xmm_crc1 = x_tmp3;
+    *xmm_crc2 = _mm_castps_si128(ps_res20);
+    *xmm_crc3 = _mm_castps_si128(ps_res31);
+}
+
+local void fold_3(deflate_state *const s,
+        __m128i *xmm_crc0, __m128i *xmm_crc1,
+        __m128i *xmm_crc2, __m128i *xmm_crc3)
+{
+    const __m128i xmm_fold4 = _mm_set_epi32(
+            0x00000001, 0x54442bd4,
+            0x00000001, 0xc6e41596);
+
+    __m128i x_tmp3;
+    __m128 ps_crc0, ps_crc1, ps_crc2, ps_crc3, ps_res32, ps_res21, ps_res10;
+
+    x_tmp3 = *xmm_crc3;
+
+    *xmm_crc3 = *xmm_crc2;
+    *xmm_crc2 = _mm_clmulepi64_si128(*xmm_crc2, xmm_fold4, 0x01);
+    *xmm_crc3 = _mm_clmulepi64_si128(*xmm_crc3, xmm_fold4, 0x10);
+    ps_crc2 = _mm_castsi128_ps(*xmm_crc2);
+    ps_crc3 = _mm_castsi128_ps(*xmm_crc3);
+    ps_res32 = _mm_xor_ps(ps_crc2, ps_crc3);
+
+    *xmm_crc2 = *xmm_crc1;
+    *xmm_crc1 = _mm_clmulepi64_si128(*xmm_crc1, xmm_fold4, 0x01);
+    *xmm_crc2 = _mm_clmulepi64_si128(*xmm_crc2, xmm_fold4, 0x10);
+    ps_crc1 = _mm_castsi128_ps(*xmm_crc1);
+    ps_crc2 = _mm_castsi128_ps(*xmm_crc2);
+    ps_res21= _mm_xor_ps(ps_crc1, ps_crc2);
+
+    *xmm_crc1 = *xmm_crc0;
+    *xmm_crc0 = _mm_clmulepi64_si128(*xmm_crc0, xmm_fold4, 0x01);
+    *xmm_crc1 = _mm_clmulepi64_si128(*xmm_crc1, xmm_fold4, 0x10);
+    ps_crc0 = _mm_castsi128_ps(*xmm_crc0);
+    ps_crc1 = _mm_castsi128_ps(*xmm_crc1);
+    ps_res10= _mm_xor_ps(ps_crc0, ps_crc1);
+
+    *xmm_crc0 = x_tmp3;
+    *xmm_crc1 = _mm_castps_si128(ps_res10);
+    *xmm_crc2 = _mm_castps_si128(ps_res21);
+    *xmm_crc3 = _mm_castps_si128(ps_res32);
+}
+
+local void fold_4(deflate_state *const s,
+        __m128i *xmm_crc0, __m128i *xmm_crc1,
+        __m128i *xmm_crc2, __m128i *xmm_crc3)
+{
+    const __m128i xmm_fold4 = _mm_set_epi32(
+            0x00000001, 0x54442bd4,
+            0x00000001, 0xc6e41596);
+
+    __m128i x_tmp0, x_tmp1, x_tmp2, x_tmp3;
+    __m128 ps_crc0, ps_crc1, ps_crc2, ps_crc3;
+    __m128 ps_t0, ps_t1, ps_t2, ps_t3;
+    __m128 ps_res0, ps_res1, ps_res2, ps_res3;
+
+    x_tmp0 = *xmm_crc0;
+    x_tmp1 = *xmm_crc1;
+    x_tmp2 = *xmm_crc2;
+    x_tmp3 = *xmm_crc3;
+
+    *xmm_crc0 = _mm_clmulepi64_si128(*xmm_crc0, xmm_fold4, 0x01);
+    x_tmp0 = _mm_clmulepi64_si128(x_tmp0, xmm_fold4, 0x10);
+    ps_crc0 = _mm_castsi128_ps(*xmm_crc0);
+    ps_t0 = _mm_castsi128_ps(x_tmp0);
+    ps_res0 = _mm_xor_ps(ps_crc0, ps_t0);
+
+    *xmm_crc1 = _mm_clmulepi64_si128(*xmm_crc1, xmm_fold4, 0x01);
+    x_tmp1 = _mm_clmulepi64_si128(x_tmp1, xmm_fold4, 0x10);
+    ps_crc1 = _mm_castsi128_ps(*xmm_crc1);
+    ps_t1 = _mm_castsi128_ps(x_tmp1);
+    ps_res1 = _mm_xor_ps(ps_crc1, ps_t1);
+
+    *xmm_crc2 = _mm_clmulepi64_si128(*xmm_crc2, xmm_fold4, 0x01);
+    x_tmp2 = _mm_clmulepi64_si128(x_tmp2, xmm_fold4, 0x10);
+    ps_crc2 = _mm_castsi128_ps(*xmm_crc2);
+    ps_t2 = _mm_castsi128_ps(x_tmp2);
+    ps_res2 = _mm_xor_ps(ps_crc2, ps_t2);
+
+    *xmm_crc3 = _mm_clmulepi64_si128(*xmm_crc3, xmm_fold4, 0x01);
+    x_tmp3 = _mm_clmulepi64_si128(x_tmp3, xmm_fold4, 0x10);
+    ps_crc3 = _mm_castsi128_ps(*xmm_crc3);
+    ps_t3 = _mm_castsi128_ps(x_tmp3);
+    ps_res3 = _mm_xor_ps(ps_crc3, ps_t3);
+
+    *xmm_crc0 = _mm_castps_si128(ps_res0);
+    *xmm_crc1 = _mm_castps_si128(ps_res1);
+    *xmm_crc2 = _mm_castps_si128(ps_res2);
+    *xmm_crc3 = _mm_castps_si128(ps_res3);
+}
+
+local const unsigned zalign(32) pshufb_shf_table[60] = {
+	0x84838281,0x88878685,0x8c8b8a89,0x008f8e8d, /* shl 15 (16 - 1)/shr1 */
+	0x85848382,0x89888786,0x8d8c8b8a,0x01008f8e, /* shl 14 (16 - 3)/shr2 */
+	0x86858483,0x8a898887,0x8e8d8c8b,0x0201008f, /* shl 13 (16 - 4)/shr3 */
+	0x87868584,0x8b8a8988,0x8f8e8d8c,0x03020100, /* shl 12 (16 - 4)/shr4 */
+	0x88878685,0x8c8b8a89,0x008f8e8d,0x04030201, /* shl 11 (16 - 5)/shr5 */
+	0x89888786,0x8d8c8b8a,0x01008f8e,0x05040302, /* shl 10 (16 - 6)/shr6 */
+	0x8a898887,0x8e8d8c8b,0x0201008f,0x06050403, /* shl  9 (16 - 7)/shr7 */
+	0x8b8a8988,0x8f8e8d8c,0x03020100,0x07060504, /* shl  8 (16 - 8)/shr8 */
+	0x8c8b8a89,0x008f8e8d,0x04030201,0x08070605, /* shl  7 (16 - 9)/shr9 */
+	0x8d8c8b8a,0x01008f8e,0x05040302,0x09080706, /* shl  6 (16 -10)/shr10*/
+	0x8e8d8c8b,0x0201008f,0x06050403,0x0a090807, /* shl  5 (16 -11)/shr11*/
+	0x8f8e8d8c,0x03020100,0x07060504,0x0b0a0908, /* shl  4 (16 -12)/shr12*/
+	0x008f8e8d,0x04030201,0x08070605,0x0c0b0a09, /* shl  3 (16 -13)/shr13*/
+	0x01008f8e,0x05040302,0x09080706,0x0d0c0b0a, /* shl  2 (16 -14)/shr14*/
+	0x0201008f,0x06050403,0x0a090807,0x0e0d0c0b  /* shl  1 (16 -15)/shr15*/
+};
+
+local void partial_fold(deflate_state *const s, const size_t len,
+        __m128i *xmm_crc0, __m128i *xmm_crc1,
+        __m128i *xmm_crc2, __m128i *xmm_crc3,
+        __m128i *xmm_crc_part)
+{
+
+    const __m128i xmm_fold4 = _mm_set_epi32(
+            0x00000001, 0x54442bd4,
+            0x00000001, 0xc6e41596);
+    const __m128i xmm_mask3 = _mm_set1_epi32(0x80808080);
+
+    __m128i xmm_shl, xmm_shr, xmm_tmp1, xmm_tmp2, xmm_tmp3;
+    __m128i xmm_a0_0, xmm_a0_1;
+    __m128 ps_crc3, psa0_0, psa0_1, ps_res;
+
+    xmm_shl = _mm_load_si128((__m128i *)pshufb_shf_table + (len - 1));
+    xmm_shr = xmm_shl;
+    xmm_shr = _mm_xor_si128(xmm_shr, xmm_mask3);
+
+    xmm_a0_0 = _mm_shuffle_epi8(*xmm_crc0, xmm_shl);
+
+    *xmm_crc0 = _mm_shuffle_epi8(*xmm_crc0, xmm_shr);
+    xmm_tmp1 = _mm_shuffle_epi8(*xmm_crc1, xmm_shl);
+    *xmm_crc0 = _mm_or_si128(*xmm_crc0, xmm_tmp1);
+
+    *xmm_crc1 = _mm_shuffle_epi8(*xmm_crc1, xmm_shr);
+    xmm_tmp2 = _mm_shuffle_epi8(*xmm_crc2, xmm_shl);
+    *xmm_crc1 = _mm_or_si128(*xmm_crc1, xmm_tmp2);
+
+    *xmm_crc2 = _mm_shuffle_epi8(*xmm_crc2, xmm_shr);
+    xmm_tmp3 = _mm_shuffle_epi8(*xmm_crc3, xmm_shl);
+    *xmm_crc2 = _mm_or_si128(*xmm_crc2, xmm_tmp3);
+
+    *xmm_crc3 = _mm_shuffle_epi8(*xmm_crc3, xmm_shr);
+    *xmm_crc_part = _mm_shuffle_epi8(*xmm_crc_part, xmm_shl);
+    *xmm_crc3 = _mm_or_si128(*xmm_crc3, *xmm_crc_part);
+
+    xmm_a0_1 = _mm_clmulepi64_si128(xmm_a0_0, xmm_fold4, 0x10);
+    xmm_a0_0 = _mm_clmulepi64_si128(xmm_a0_0, xmm_fold4, 0x01);
+
+    ps_crc3 = _mm_castsi128_ps(*xmm_crc3);
+    psa0_0 = _mm_castsi128_ps(xmm_a0_0);
+    psa0_1 = _mm_castsi128_ps(xmm_a0_1);
+
+    ps_res = _mm_xor_ps(ps_crc3, psa0_0);
+    ps_res = _mm_xor_ps(ps_res, psa0_1);
+
+    *xmm_crc3 = _mm_castps_si128(ps_res);
+}
+
+ZLIB_INTERNAL void crc_fold_copy(deflate_state *const s,
+        unsigned char *dst, const unsigned char *src, long len)
+{
+    unsigned long algn_diff;
+    __m128i xmm_t0, xmm_t1, xmm_t2, xmm_t3;
+
+    CRC_LOAD(s)
+
+    if (len < 16) {
+        if (len == 0)
+            return;
+        goto partial;
+    }
+
+    algn_diff = 0 - (unsigned long)src & 0xF;
+    if (algn_diff) {
+        xmm_crc_part = _mm_loadu_si128((__m128i *)src);
+        _mm_storeu_si128((__m128i *)dst, xmm_crc_part);
+
+        dst += algn_diff;
+        src += algn_diff;
+        len -= algn_diff;
+
+        partial_fold(s, algn_diff, &xmm_crc0, &xmm_crc1, &xmm_crc2, &xmm_crc3,
+            &xmm_crc_part);
+    }
+
+    while ((len -= 64) >= 0) {
+        xmm_t0 = _mm_load_si128((__m128i *)src);
+        xmm_t1 = _mm_load_si128((__m128i *)src + 1);
+        xmm_t2 = _mm_load_si128((__m128i *)src + 2);
+        xmm_t3 = _mm_load_si128((__m128i *)src + 3);
+
+        fold_4(s, &xmm_crc0, &xmm_crc1, &xmm_crc2, &xmm_crc3);
+
+        _mm_storeu_si128((__m128i *)dst, xmm_t0);
+        _mm_storeu_si128((__m128i *)dst + 1, xmm_t1);
+        _mm_storeu_si128((__m128i *)dst + 2, xmm_t2);
+        _mm_storeu_si128((__m128i *)dst + 3, xmm_t3);
+
+        xmm_crc0 = _mm_xor_si128(xmm_crc0, xmm_t0);
+        xmm_crc1 = _mm_xor_si128(xmm_crc1, xmm_t1);
+        xmm_crc2 = _mm_xor_si128(xmm_crc2, xmm_t2);
+        xmm_crc3 = _mm_xor_si128(xmm_crc3, xmm_t3);
+
+        src += 64;
+        dst += 64;
+    }
+
+    /*
+     * len = num bytes left - 64
+     */
+    if (len + 16 >= 0) {
+        len += 16;
+
+        xmm_t0 = _mm_load_si128((__m128i *)src);
+        xmm_t1 = _mm_load_si128((__m128i *)src + 1);
+        xmm_t2 = _mm_load_si128((__m128i *)src + 2);
+
+        fold_3(s, &xmm_crc0, &xmm_crc1, &xmm_crc2, &xmm_crc3);
+
+        _mm_storeu_si128((__m128i *)dst, xmm_t0);
+        _mm_storeu_si128((__m128i *)dst + 1, xmm_t1);
+        _mm_storeu_si128((__m128i *)dst + 2, xmm_t2);
+
+        xmm_crc1 = _mm_xor_si128(xmm_crc1, xmm_t0);
+        xmm_crc2 = _mm_xor_si128(xmm_crc2, xmm_t1);
+        xmm_crc3 = _mm_xor_si128(xmm_crc3, xmm_t2);
+
+        if (len == 0)
+            goto done;
+
+        dst += 48;
+        src += 48;
+    } else if (len + 32 >= 0) {
+        len += 32;
+
+        xmm_t0 = _mm_load_si128((__m128i *)src);
+        xmm_t1 = _mm_load_si128((__m128i *)src + 1);
+
+        fold_2(s, &xmm_crc0, &xmm_crc1, &xmm_crc2, &xmm_crc3);
+
+        _mm_storeu_si128((__m128i *)dst, xmm_t0);
+        _mm_storeu_si128((__m128i *)dst + 1, xmm_t1);
+
+        xmm_crc2 = _mm_xor_si128(xmm_crc2, xmm_t0);
+        xmm_crc3 = _mm_xor_si128(xmm_crc3, xmm_t1);
+
+        if (len == 0)
+            goto done;
+
+        dst += 32;
+        src += 32;
+    } else if (len + 48 >= 0) {
+        len += 48;
+
+        xmm_t0 = _mm_load_si128((__m128i *)src);
+
+        fold_1(s, &xmm_crc0, &xmm_crc1, &xmm_crc2, &xmm_crc3);
+
+        _mm_storeu_si128((__m128i *)dst, xmm_t0);
+
+        xmm_crc3 = _mm_xor_si128(xmm_crc3, xmm_t0);
+
+        if (len == 0)
+            goto done;
+
+        dst += 16;
+        src += 16;
+    } else {
+        len += 64;
+        if (len == 0)
+            goto done;
+    }
+
+partial:
+
+#if defined(_MSC_VER)
+    /* VS does not permit the use of _mm_set_epi64x in 32-bit builds */
+    {
+        int32_t parts[4] = {0, 0, 0, 0};
+        memcpy(&parts, src, len);
+        xmm_crc_part = _mm_set_epi32(parts[3], parts[2], parts[1], parts[0]);
+    }
+#else
+    {
+        int64_t parts[2] = {0, 0};
+        memcpy(&parts, src, len);
+        xmm_crc_part = _mm_set_epi64x(parts[1], parts[0]);
+    }
+#endif
+
+    _mm_storeu_si128((__m128i *)dst, xmm_crc_part);
+    partial_fold(s, len, &xmm_crc0, &xmm_crc1, &xmm_crc2, &xmm_crc3,
+        &xmm_crc_part);
+done:
+    CRC_SAVE(s)
+}
+
+local const unsigned zalign(16) crc_k[] = {
+    0xccaa009e, 0x00000000, /* rk1 */
+    0x751997d0, 0x00000001, /* rk2 */
+    0xccaa009e, 0x00000000, /* rk5 */
+    0x63cd6124, 0x00000001, /* rk6 */
+    0xf7011640, 0x00000001, /* rk7 */
+    0xdb710640, 0x00000001  /* rk8 */
+};
+
+local const unsigned zalign(16) crc_mask[4] = {
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000
+};
+
+local const unsigned zalign(16) crc_mask2[4] = {
+    0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF
+};
+
+unsigned ZLIB_INTERNAL crc_fold_512to32(deflate_state *const s)
+{
+    const __m128i xmm_mask  = _mm_load_si128((__m128i *)crc_mask);
+    const __m128i xmm_mask2 = _mm_load_si128((__m128i *)crc_mask2);
+
+    unsigned crc;
+    __m128i x_tmp0, x_tmp1, x_tmp2, crc_fold;
+
+    CRC_LOAD(s)
+
+    /*
+     * k1
+     */
+    crc_fold = _mm_load_si128((__m128i *)crc_k);
+
+    x_tmp0 = _mm_clmulepi64_si128(xmm_crc0, crc_fold, 0x10);
+    xmm_crc0 = _mm_clmulepi64_si128(xmm_crc0, crc_fold, 0x01);
+    xmm_crc1 = _mm_xor_si128(xmm_crc1, x_tmp0);
+    xmm_crc1 = _mm_xor_si128(xmm_crc1, xmm_crc0);
+
+    x_tmp1 = _mm_clmulepi64_si128(xmm_crc1, crc_fold, 0x10);
+    xmm_crc1 = _mm_clmulepi64_si128(xmm_crc1, crc_fold, 0x01);
+    xmm_crc2 = _mm_xor_si128(xmm_crc2, x_tmp1);
+    xmm_crc2 = _mm_xor_si128(xmm_crc2, xmm_crc1);
+
+    x_tmp2 = _mm_clmulepi64_si128(xmm_crc2, crc_fold, 0x10);
+    xmm_crc2 = _mm_clmulepi64_si128(xmm_crc2, crc_fold, 0x01);
+    xmm_crc3 = _mm_xor_si128(xmm_crc3, x_tmp2);
+    xmm_crc3 = _mm_xor_si128(xmm_crc3, xmm_crc2);
+
+    /*
+     * k5
+     */
+    crc_fold = _mm_load_si128((__m128i *)crc_k + 1);
+
+    xmm_crc0 = xmm_crc3;
+    xmm_crc3 = _mm_clmulepi64_si128(xmm_crc3, crc_fold, 0);
+    xmm_crc0 = _mm_srli_si128(xmm_crc0, 8);
+    xmm_crc3 = _mm_xor_si128(xmm_crc3, xmm_crc0);
+
+    xmm_crc0 = xmm_crc3;
+    xmm_crc3 = _mm_slli_si128(xmm_crc3, 4);
+    xmm_crc3 = _mm_clmulepi64_si128(xmm_crc3, crc_fold, 0x10);
+    xmm_crc3 = _mm_xor_si128(xmm_crc3, xmm_crc0);
+    xmm_crc3 = _mm_and_si128(xmm_crc3, xmm_mask2);
+
+    /*
+     * k7
+     */
+    xmm_crc1 = xmm_crc3;
+    xmm_crc2 = xmm_crc3;
+    crc_fold = _mm_load_si128((__m128i *)crc_k + 2);
+
+    xmm_crc3 = _mm_clmulepi64_si128(xmm_crc3, crc_fold, 0);
+    xmm_crc3 = _mm_xor_si128(xmm_crc3, xmm_crc2);
+    xmm_crc3 = _mm_and_si128(xmm_crc3, xmm_mask);
+
+    xmm_crc2 = xmm_crc3;
+    xmm_crc3 = _mm_clmulepi64_si128(xmm_crc3, crc_fold, 0x10);
+    xmm_crc3 = _mm_xor_si128(xmm_crc3, xmm_crc2);
+    xmm_crc3 = _mm_xor_si128(xmm_crc3, xmm_crc1);
+
+    crc = _mm_extract_epi32(xmm_crc3, 2);
+    return ~crc;
+    CRC_SAVE(s)
+}
diff --git a/third_party/zlib/deflate.c b/third_party/zlib/deflate.c
index 8043e5b..55ec215 100644
--- a/third_party/zlib/deflate.c
+++ b/third_party/zlib/deflate.c
@@ -49,7 +49,10 @@
 
 /* @(#) $Id$ */
 
+#include <assert.h>
+
 #include "deflate.h"
+#include "x86.h"
 
 const char deflate_copyright[] =
    " deflate 1.2.5 Copyright 1995-2010 Jean-loup Gailly and Mark Adler ";
@@ -85,7 +88,7 @@
 local void lm_init        OF((deflate_state *s));
 local void putShortMSB    OF((deflate_state *s, uInt b));
 local void flush_pending  OF((z_streamp strm));
-local int read_buf        OF((z_streamp strm, Bytef *buf, unsigned size));
+
 #ifdef ASMV
       void match_init OF((void)); /* asm code initialization */
       uInt longest_match  OF((deflate_state *s, IPos cur_match, int clas));
@@ -98,6 +101,23 @@
                             int length));
 #endif
 
+/* For fill_window_sse.c to use */
+ZLIB_INTERNAL int read_buf OF((z_streamp strm, Bytef *buf, unsigned size));
+
+/* From crc32.c */
+extern void ZLIB_INTERNAL crc_reset(deflate_state *const s);
+extern void ZLIB_INTERNAL crc_finalize(deflate_state *const s);
+extern void ZLIB_INTERNAL copy_with_crc(z_streamp strm, Bytef *dst, long size);
+
+#ifdef _MSC_VER
+#define INLINE __inline
+#else
+#define INLINE inline
+#endif
+
+/* Inline optimisation */
+local INLINE Pos insert_string_sse(deflate_state *const s, const Pos str);
+
 /* ===========================================================================
  * Local data
  */
@@ -164,7 +184,6 @@
  */
 #define UPDATE_HASH(s,h,c) (h = (((h)<<s->hash_shift) ^ (c)) & s->hash_mask)
 
-
 /* ===========================================================================
  * Insert string str in the dictionary and set match_head to the previous head
  * of the hash chain (the most recent string with same hash key). Return
@@ -175,17 +194,28 @@
  *    input characters and the first MIN_MATCH bytes of str are valid
  *    (except for the last MIN_MATCH-1 bytes of the input file).
  */
+local INLINE Pos insert_string_c(deflate_state *const s, const Pos str)
+{
+    Pos ret;
+
+    UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]);
 #ifdef FASTEST
-#define INSERT_STRING(s, str, match_head) \
-   (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \
-    match_head = s->head[s->ins_h], \
-    s->head[s->ins_h] = (Pos)(str))
+    ret = s->head[s->ins_h];
 #else
-#define INSERT_STRING(s, str, match_head) \
-   (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \
-    match_head = s->prev[(str) & s->w_mask] = s->head[s->ins_h], \
-    s->head[s->ins_h] = (Pos)(str))
+    ret = s->prev[str & s->w_mask] = s->head[s->ins_h];
 #endif
+    s->head[s->ins_h] = str;
+
+    return ret;
+}
+
+local INLINE Pos insert_string(deflate_state *const s, const Pos str)
+{
+    if (x86_cpu_enable_simd)
+        return insert_string_sse(s, str);
+    return insert_string_c(s, str);
+}
+
 
 /* ===========================================================================
  * Initialize the hash table (avoiding 64K overflow for 16 bit systems).
@@ -219,6 +249,7 @@
     const char *version;
     int stream_size;
 {
+    unsigned window_padding = 8;
     deflate_state *s;
     int wrap = 1;
     static const char my_version[] = ZLIB_VERSION;
@@ -228,6 +259,8 @@
      * output size for (length,distance) codes is <= 24 bits.
      */
 
+    x86_check_features();
+
     if (version == Z_NULL || version[0] != my_version[0] ||
         stream_size != sizeof(z_stream)) {
         return Z_VERSION_ERROR;
@@ -274,12 +307,17 @@
     s->w_size = 1 << s->w_bits;
     s->w_mask = s->w_size - 1;
 
-    s->hash_bits = memLevel + 7;
+    if (x86_cpu_enable_simd) {
+        s->hash_bits = 15;
+    } else {
+        s->hash_bits = memLevel + 7;
+    }
+
     s->hash_size = 1 << s->hash_bits;
     s->hash_mask = s->hash_size - 1;
     s->hash_shift =  ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH);
 
-    s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte));
+    s->window = (Bytef *) ZALLOC(strm, s->w_size + window_padding, 2*sizeof(Byte));
     s->prev   = (Posf *)  ZALLOC(strm, s->w_size, sizeof(Pos));
     s->head   = (Posf *)  ZALLOC(strm, s->hash_size, sizeof(Pos));
     s->class_bitmap = NULL;
@@ -347,7 +385,7 @@
     s->ins_h = s->window[0];
     UPDATE_HASH(s, s->ins_h, s->window[1]);
     for (n = 0; n <= length - MIN_MATCH; n++) {
-        INSERT_STRING(s, n, hash_head);
+        insert_string(s, n);
     }
     if (hash_head) hash_head = 0;  /* to make compiler happy */
     return Z_OK;
@@ -613,7 +651,7 @@
     if (s->status == INIT_STATE) {
 #ifdef GZIP
         if (s->wrap == 2) {
-            strm->adler = crc32(0L, Z_NULL, 0);
+            crc_reset(s);
             put_byte(s, 31);
             put_byte(s, 139);
             put_byte(s, 8);
@@ -891,6 +929,7 @@
     /* Write the trailer */
 #ifdef GZIP
     if (s->wrap == 2) {
+        crc_finalize(s);
         put_byte(s, (Byte)(strm->adler & 0xff));
         put_byte(s, (Byte)((strm->adler >> 8) & 0xff));
         put_byte(s, (Byte)((strm->adler >> 16) & 0xff));
@@ -1013,7 +1052,7 @@
  * allocating a large strm->next_in buffer and copying from it.
  * (See also flush_pending()).
  */
-local int read_buf(strm, buf, size)
+ZLIB_INTERNAL int read_buf(strm, buf, size)
     z_streamp strm;
     Bytef *buf;
     unsigned size;
@@ -1025,15 +1064,17 @@
 
     strm->avail_in  -= len;
 
-    if (strm->state->wrap == 1) {
-        strm->adler = adler32(strm->adler, strm->next_in, len);
-    }
 #ifdef GZIP
-    else if (strm->state->wrap == 2) {
-        strm->adler = crc32(strm->adler, strm->next_in, len);
+    if (strm->state->wrap == 2) {
+        copy_with_crc(strm, buf, len);
     }
+    else
 #endif
-    zmemcpy(buf, strm->next_in, len);
+    {
+        zmemcpy(buf, strm->next_in, len);
+        if (strm->state->wrap == 1)
+            strm->adler = adler32(strm->adler, buf, len);
+    }
     strm->next_in  += len;
     strm->total_in += len;
 
@@ -1445,7 +1486,19 @@
  *    performed for at least two bytes (required for the zip translate_eol
  *    option -- not supported here).
  */
-local void fill_window(s)
+local void fill_window_c(deflate_state *s);
+
+local void fill_window(deflate_state *s)
+{
+    if (x86_cpu_enable_simd) {
+        fill_window_sse(s);
+        return;
+    }
+
+    fill_window_c(s);
+}
+
+local void fill_window_c(s)
     deflate_state *s;
 {
     register unsigned n, m;
@@ -1711,7 +1764,7 @@
          */
         hash_head = NIL;
         if (s->lookahead >= MIN_MATCH) {
-            INSERT_STRING(s, s->strstart, hash_head);
+            hash_head = insert_string(s, s->strstart);
         }
 
         /* Find the longest match, discarding those <= prev_length.
@@ -1742,7 +1795,7 @@
                 s->match_length--; /* string at strstart already in table */
                 do {
                     s->strstart++;
-                    INSERT_STRING(s, s->strstart, hash_head);
+                    hash_head = insert_string(s, s->strstart);
                     /* strstart never exceeds WSIZE-MAX_MATCH, so there are
                      * always MIN_MATCH bytes ahead.
                      */
@@ -1821,7 +1874,7 @@
          */
         hash_head = NIL;
         if (s->lookahead >= MIN_MATCH) {
-            INSERT_STRING(s, s->strstart, hash_head);
+            hash_head = insert_string(s, s->strstart);
         }
 
         /* Find the longest match, discarding those <= prev_length.
@@ -1890,7 +1943,7 @@
             s->prev_length -= 2;
             do {
                 if (++s->strstart <= max_insert) {
-                    INSERT_STRING(s, s->strstart, hash_head);
+                    hash_head = insert_string(s, s->strstart);
                 }
             } while (--s->prev_length != 0);
             s->match_available = 0;
@@ -2031,3 +2084,37 @@
     FLUSH_BLOCK(s, flush == Z_FINISH);
     return flush == Z_FINISH ? finish_done : block_done;
 }
+
+/* Safe to inline this as GCC/clang will use inline asm and Visual Studio will
+ * use intrinsic without extra params
+ */
+local INLINE Pos insert_string_sse(deflate_state *const s, const Pos str)
+{
+    Pos ret;
+    unsigned *ip, val, h = 0;
+
+    ip = (unsigned *)&s->window[str];
+    val = *ip;
+
+    if (s->level >= 6)
+        val &= 0xFFFFFF;
+
+/* Windows clang should use inline asm */
+#if defined(_MSC_VER) && !defined(__clang__)
+    h = _mm_crc32_u32(h, val);
+#elif defined(__i386__) || defined(__amd64__)
+    __asm__ __volatile__ (
+        "crc32 %1,%0\n\t"
+    : "+r" (h)
+    : "r" (val)
+    );
+#else
+    /* This should never happen */
+    assert(0);
+#endif
+
+    ret = s->head[h & s->hash_mask];
+    s->head[h & s->hash_mask] = str;
+    s->prev[str & s->w_mask] = ret;
+    return ret;
+}
diff --git a/third_party/zlib/deflate.h b/third_party/zlib/deflate.h
index 2fe6fd6..d15f2b5 100644
--- a/third_party/zlib/deflate.h
+++ b/third_party/zlib/deflate.h
@@ -107,6 +107,8 @@
     Byte  method;        /* STORED (for zip only) or DEFLATED */
     int   last_flush;    /* value of flush param for previous deflate call */
 
+    unsigned zalign(16) crc0[4 * 5];
+
                 /* used by deflate.c: */
 
     uInt  w_size;        /* LZ77 window size (32K by default) */
@@ -344,4 +346,14 @@
               flush = _tr_tally(s, distance, length)
 #endif
 
+/* Functions that are SIMD optimised on x86 */
+void ZLIB_INTERNAL crc_fold_init(deflate_state* const s);
+void ZLIB_INTERNAL crc_fold_copy(deflate_state* const s,
+                                 unsigned char* dst,
+                                 const unsigned char* src,
+                                 long len);
+unsigned ZLIB_INTERNAL crc_fold_512to32(deflate_state* const s);
+
+void ZLIB_INTERNAL fill_window_sse(deflate_state* s);
+
 #endif /* DEFLATE_H */
diff --git a/third_party/zlib/fill_window_sse.c b/third_party/zlib/fill_window_sse.c
new file mode 100644
index 0000000..949ccce
--- /dev/null
+++ b/third_party/zlib/fill_window_sse.c
@@ -0,0 +1,175 @@
+/*
+ * Fill Window with SSE2-optimized hash shifting
+ *
+ * Copyright (C) 2013 Intel Corporation
+ * Authors:
+ *  Arjan van de Ven    <arjan@linux.intel.com>
+ *  Jim Kukunas         <james.t.kukunas@linux.intel.com>
+ *
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+#include <immintrin.h>
+#include "deflate.h"
+
+#define UPDATE_HASH(s,h,i) \
+    {\
+        if (s->level < 6) { \
+            h = (3483 * (s->window[i]) +\
+                 23081* (s->window[i+1]) +\
+                 6954 * (s->window[i+2]) +\
+                 20947* (s->window[i+3])) & s->hash_mask;\
+        } else {\
+            h = (25881* (s->window[i]) +\
+                 24674* (s->window[i+1]) +\
+                 25811* (s->window[i+2])) & s->hash_mask;\
+        }\
+    }\
+
+extern int read_buf OF((z_streamp strm, Bytef *buf, unsigned size));
+
+void fill_window_sse(deflate_state *s)
+{
+    const __m128i xmm_wsize = _mm_set1_epi16(s->w_size);
+
+    register unsigned n;
+    register Posf *p;
+    unsigned more;    /* Amount of free space at the end of the window. */
+    uInt wsize = s->w_size;
+
+    Assert(s->lookahead < MIN_LOOKAHEAD, "already enough lookahead");
+
+    do {
+        more = (unsigned)(s->window_size -(ulg)s->lookahead -(ulg)s->strstart);
+
+        /* Deal with !@#$% 64K limit: */
+        if (sizeof(int) <= 2) {
+            if (more == 0 && s->strstart == 0 && s->lookahead == 0) {
+                more = wsize;
+
+            } else if (more == (unsigned)(-1)) {
+                /* Very unlikely, but possible on 16 bit machine if
+                 * strstart == 0 && lookahead == 1 (input done a byte at time)
+                 */
+                more--;
+            }
+        }
+
+        /* If the window is almost full and there is insufficient lookahead,
+         * move the upper half to the lower one to make room in the upper half.
+         */
+        if (s->strstart >= wsize+MAX_DIST(s)) {
+
+            zmemcpy(s->window, s->window+wsize, (unsigned)wsize);
+            s->match_start -= wsize;
+            s->strstart    -= wsize; /* we now have strstart >= MAX_DIST */
+            s->block_start -= (long) wsize;
+
+            /* Slide the hash table (could be avoided with 32 bit values
+               at the expense of memory usage). We slide even when level == 0
+               to keep the hash table consistent if we switch back to level > 0
+               later. (Using level 0 permanently is not an optimal usage of
+               zlib, so we don't care about this pathological case.)
+             */
+            n = s->hash_size;
+            p = &s->head[n];
+            p -= 8;
+            do {
+                __m128i value, result;
+
+                value = _mm_loadu_si128((__m128i *)p);
+                result = _mm_subs_epu16(value, xmm_wsize);
+                _mm_storeu_si128((__m128i *)p, result);
+
+                p -= 8;
+                n -= 8;
+            } while (n > 0);
+
+            n = wsize;
+#ifndef FASTEST
+            p = &s->prev[n];
+            p -= 8;
+            do {
+                __m128i value, result;
+
+                value = _mm_loadu_si128((__m128i *)p);
+                result = _mm_subs_epu16(value, xmm_wsize);
+                _mm_storeu_si128((__m128i *)p, result);
+
+                p -= 8;
+                n -= 8;
+            } while (n > 0);
+#endif
+            more += wsize;
+        }
+        if (s->strm->avail_in == 0) break;
+
+        /* If there was no sliding:
+         *    strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
+         *    more == window_size - lookahead - strstart
+         * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
+         * => more >= window_size - 2*WSIZE + 2
+         * In the BIG_MEM or MMAP case (not yet supported),
+         *   window_size == input_size + MIN_LOOKAHEAD  &&
+         *   strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
+         * Otherwise, window_size == 2*WSIZE so more >= 2.
+         * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
+         */
+        Assert(more >= 2, "more < 2");
+
+        n = read_buf(s->strm, s->window + s->strstart + s->lookahead, more);
+        s->lookahead += n;
+
+        /* Initialize the hash value now that we have some input: */
+        if (s->lookahead >= MIN_MATCH) {
+            uInt str = s->strstart;
+            s->ins_h = s->window[str];
+            if (str >= 1)
+                UPDATE_HASH(s, s->ins_h, str + 1 - (MIN_MATCH-1));
+#if MIN_MATCH != 3
+            Call UPDATE_HASH() MIN_MATCH-3 more times
+#endif
+        }
+        /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
+         * but this is not important since only literal bytes will be emitted.
+         */
+
+    } while (s->lookahead < MIN_LOOKAHEAD && s->strm->avail_in != 0);
+
+    /* If the WIN_INIT bytes after the end of the current data have never been
+     * written, then zero those bytes in order to avoid memory check reports of
+     * the use of uninitialized (or uninitialised as Julian writes) bytes by
+     * the longest match routines.  Update the high water mark for the next
+     * time through here.  WIN_INIT is set to MAX_MATCH since the longest match
+     * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.
+     */
+    if (s->high_water < s->window_size) {
+        ulg curr = s->strstart + (ulg)(s->lookahead);
+        ulg init;
+
+        if (s->high_water < curr) {
+            /* Previous high water mark below current data -- zero WIN_INIT
+             * bytes or up to end of window, whichever is less.
+             */
+            init = s->window_size - curr;
+            if (init > WIN_INIT)
+                init = WIN_INIT;
+            zmemzero(s->window + curr, (unsigned)init);
+            s->high_water = curr + init;
+        }
+        else if (s->high_water < (ulg)curr + WIN_INIT) {
+            /* High water mark at or above current data, but below current data
+             * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up
+             * to end of window, whichever is less.
+             */
+            init = (ulg)curr + WIN_INIT - s->high_water;
+            if (init > s->window_size - s->high_water)
+                init = s->window_size - s->high_water;
+            zmemzero(s->window + s->high_water, (unsigned)init);
+            s->high_water += init;
+        }
+    }
+
+    Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,
+           "not enough room for search");
+}
diff --git a/third_party/zlib/simd_stub.c b/third_party/zlib/simd_stub.c
new file mode 100644
index 0000000..bb2ddc3
--- /dev/null
+++ b/third_party/zlib/simd_stub.c
@@ -0,0 +1,35 @@
+/* simd_stub.c -- stub implementations
+* Copyright (C) 2014 Intel Corporation
+* For conditions of distribution and use, see copyright notice in zlib.h
+*/
+#include <assert.h>
+
+#include "deflate.h"
+#include "x86.h"
+
+int x86_cpu_enable_simd;
+
+void ZLIB_INTERNAL crc_fold_init(deflate_state *const s) {
+    assert(0);
+}
+
+void ZLIB_INTERNAL crc_fold_copy(deflate_state *const s,
+                                 unsigned char *dst,
+                                 const unsigned char *src,
+                                 long len) {
+    assert(0);
+}
+
+unsigned ZLIB_INTERNAL crc_fold_512to32(deflate_state *const s) {
+    assert(0);
+    return 0;
+}
+
+void ZLIB_INTERNAL fill_window_sse(deflate_state *s)
+{
+    assert(0);
+}
+
+void x86_check_features(void)
+{
+}
diff --git a/third_party/zlib/x86.c b/third_party/zlib/x86.c
new file mode 100644
index 0000000..35ec516
--- /dev/null
+++ b/third_party/zlib/x86.c
@@ -0,0 +1,112 @@
+/*
+ * x86 feature check
+ *
+ * Copyright (C) 2013 Intel Corporation. All rights reserved.
+ * Author:
+ *  Jim Kukunas
+ * 
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+#include "x86.h"
+
+int x86_cpu_enable_simd;
+
+#ifndef _MSC_VER
+#include <pthread.h>
+
+pthread_once_t cpu_check_inited_once = PTHREAD_ONCE_INIT;
+static void _x86_check_features(void);
+
+void x86_check_features(void)
+{
+  pthread_once(&cpu_check_inited_once, _x86_check_features);
+}
+
+static void _x86_check_features(void)
+{
+    int x86_cpu_has_sse2;
+    int x86_cpu_has_sse42;
+    int x86_cpu_has_pclmulqdq;
+    unsigned eax, ebx, ecx, edx;
+
+    eax = 1;
+#ifdef __i386__
+    __asm__ __volatile__ (
+        "xchg %%ebx, %1\n\t"
+        "cpuid\n\t"
+        "xchg %1, %%ebx\n\t"
+    : "+a" (eax), "=S" (ebx), "=c" (ecx), "=d" (edx)
+    );
+#else
+    __asm__ __volatile__ (
+        "cpuid\n\t"
+    : "+a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
+    );
+#endif  /* (__i386__) */
+
+    x86_cpu_has_sse2 = edx & 0x4000000;
+    x86_cpu_has_sse42 = ecx & 0x100000;
+    x86_cpu_has_pclmulqdq = ecx & 0x2;
+
+    x86_cpu_enable_simd = x86_cpu_has_sse2 &&
+                          x86_cpu_has_sse42 &&
+                          x86_cpu_has_pclmulqdq;
+}
+#else
+#include <intrin.h>
+#include <windows.h>
+#include <stdint.h>
+
+static volatile int32_t once_control = 0;
+static void _x86_check_features(void);
+static int fake_pthread_once(volatile int32_t *once_control,
+                             void (*init_routine)(void));
+
+void x86_check_features(void)
+{
+    fake_pthread_once(&once_control, _x86_check_features);
+}
+
+/* Copied from "perftools_pthread_once" in tcmalloc */
+static int fake_pthread_once(volatile int32_t *once_control,
+                             void (*init_routine)(void)) {
+    // Try for a fast path first. Note: this should be an acquire semantics read
+    // It is on x86 and x64, where Windows runs.
+    if (*once_control != 1) {
+        while (1) {
+            switch (InterlockedCompareExchange(once_control, 2, 0)) {
+                case 0:
+                    init_routine();
+                    InterlockedExchange(once_control, 1);
+                    return 0;
+                case 1:
+                    // The initializer has already been executed
+                    return 0;
+                default:
+                    // The initializer is being processed by another thread
+                    SwitchToThread();
+            }
+        }
+    }
+    return 0;
+}
+
+static void _x86_check_features(void)
+{
+    int x86_cpu_has_sse2;
+    int x86_cpu_has_sse42;
+    int x86_cpu_has_pclmulqdq;
+    int regs[4];
+
+    __cpuid(regs, 1);
+
+    x86_cpu_has_sse2 = regs[3] & 0x4000000;
+    x86_cpu_has_sse42= regs[2] & 0x100000;
+    x86_cpu_has_pclmulqdq = regs[2] & 0x2;
+
+    x86_cpu_enable_simd = x86_cpu_has_sse2 &&
+                          x86_cpu_has_sse42 &&
+                          x86_cpu_has_pclmulqdq;
+}
+#endif  /* _MSC_VER */
diff --git a/third_party/zlib/x86.h b/third_party/zlib/x86.h
new file mode 100644
index 0000000..ac3d180
--- /dev/null
+++ b/third_party/zlib/x86.h
@@ -0,0 +1,13 @@
+/* x86.h -- check for x86 CPU features
+* Copyright (C) 2013 Intel Corporation Jim Kukunas
+* For conditions of distribution and use, see copyright notice in zlib.h
+*/
+
+#ifndef X86_H
+#define X86_H
+
+extern int x86_cpu_enable_simd;
+
+void x86_check_features(void);
+
+#endif  /* X86_H */
diff --git a/third_party/zlib/zlib.gyp b/third_party/zlib/zlib.gyp
index aef41ac..8c5ae44 100644
--- a/third_party/zlib/zlib.gyp
+++ b/third_party/zlib/zlib.gyp
@@ -5,6 +5,22 @@
 {
   'targets': [
     {
+      'target_name' : 'zlib_x86_simd',
+      'type': 'static_library',
+      'conditions': [
+        # See http://crbug.com/420616 gyp on mac & ios doesn't apply cflags
+        ['OS!="ios" and OS!="mac" and (target_arch=="ia32" or target_arch=="x64")', {
+          'cflags' : ["-msse2", "-msse4.2", "-mpclmul"],
+          'sources' : [ 'crc_folding.c',
+                        'fill_window_sse.c']
+        }, {
+          'sources' : [ 'simd_stub.c' ],
+        }], ['OS=="android"', {
+          'toolsets': ['target', 'host'],
+        }],
+      ],
+    },
+    {
       'target_name': 'zlib',
       'type': 'static_library',
       'sources': [
@@ -31,11 +47,15 @@
         'trees.c',
         'trees.h',
         'uncompr.c',
+        'x86.h',
         'zconf.h',
         'zlib.h',
         'zutil.c',
         'zutil.h',
       ],
+      'dependencies' : [
+        'zlib_x86_simd'
+      ],
       'include_dirs': [
         '.',
       ],
@@ -45,6 +65,9 @@
         ],
       },
       'conditions': [
+        ['OS!="ios" and OS!="mac" and (target_arch=="ia32" or target_arch=="x64")', {
+          'sources' : [ 'x86.c', ],
+        }],
         ['OS!="win"', {
           'product_name': 'chrome_zlib',
         }], ['OS=="android"', {
diff --git a/third_party/zlib/zutil.h b/third_party/zlib/zutil.h
index 39cf373..3c8326f 100644
--- a/third_party/zlib/zutil.h
+++ b/third_party/zlib/zutil.h
@@ -142,6 +142,12 @@
 #  define OS_CODE  0x0a
 #endif
 
+#ifdef _MSC_VER
+#define zalign(x) __declspec(align(x))
+#else
+#define zalign(x) __attribute__((aligned((x))))
+#endif
+
 #ifdef WIN32
 #  ifndef __CYGWIN__  /* Cygwin is Unix, not Win32 */
 #    define OS_CODE  0x0b
diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
index c3aa36a..5ee7c30 100755
--- a/tools/clang/scripts/update.py
+++ b/tools/clang/scripts/update.py
@@ -22,7 +22,7 @@
 # in bringup. Use a pinned revision to make it slightly more stable.
 if (re.search(r'\b(asan)=1', os.environ.get('GYP_DEFINES', '')) and
     not 'LLVM_FORCE_HEAD_REVISION' in os.environ):
-  LLVM_WIN_REVISION = '220557'
+  LLVM_WIN_REVISION = '217738'
 
 # Path constants. (All of these should be absolute paths.)
 THIS_DIR = os.path.abspath(os.path.dirname(__file__))
diff --git a/tools/gritsettings/resource_ids b/tools/gritsettings/resource_ids
index a1fce5c..4681b25 100644
--- a/tools/gritsettings/resource_ids
+++ b/tools/gritsettings/resource_ids
@@ -236,6 +236,7 @@
   "android_webview/java/strings/android_webview_strings.grd": {},
   "chrome/android/java/strings/android_chrome_strings.grd": {},
   "content/public/android/java/strings/android_content_strings.grd": {},
+  "ui/accessibility/extensions/strings/accessibility_extensions_strings.grd": {},
   "ui/android/java/strings/android_ui_strings.grd": {},
 
   # Resource ids starting at 31000 are reserved for projects built on Chromium.
diff --git a/tools/msan/blacklist.txt b/tools/msan/blacklist.txt
index 96f5487..07b31c1 100644
--- a/tools/msan/blacklist.txt
+++ b/tools/msan/blacklist.txt
@@ -10,6 +10,9 @@
 # Uninit in zlib. http://crbug.com/116277
 fun:*MOZ_Z_deflate*
 
+# Uninit in zlib with SIMD intrinsic http://crbug.com/426868
+fun:crc_fold512_to_32
+
 # Uninit in OSMesa. http://crbug.com/347967
 fun:unpack_RGBA8888
 fun:unpack_RGB888
diff --git a/tools/valgrind/chrome_tests.py b/tools/valgrind/chrome_tests.py
index e4f62a5..8735e0d 100755
--- a/tools/valgrind/chrome_tests.py
+++ b/tools/valgrind/chrome_tests.py
@@ -148,6 +148,8 @@
       cmd.append("--gtest_repeat=%s" % self._options.gtest_repeat)
     if self._options.gtest_shuffle:
       cmd.append("--gtest_shuffle")
+    if self._options.gtest_break_on_failure:
+      cmd.append("--gtest_break_on_failure")
     if self._options.brave_new_test_launcher:
       cmd.append("--brave-new-test-launcher")
     if self._options.test_launcher_bot_mode:
@@ -737,6 +739,12 @@
   parser.add_option("--gtest_repeat", help="argument for --gtest_repeat")
   parser.add_option("--gtest_shuffle", action="store_true", default=False,
                     help="Randomize tests' orders on every iteration.")
+  parser.add_option("--gtest_break_on_failure", action="store_true",
+                    default=False,
+                    help="Drop in to debugger on assertion failure. Also "
+                         "useful for forcing tests to exit with a stack dump "
+                         "on the first assertion failure when running with "
+                         "--gtest_repeat=-1")
   parser.add_option("-v", "--verbose", action="store_true", default=False,
                     help="verbose output - enable debug log messages")
   parser.add_option("--tool", dest="valgrind_tool", default="memcheck",
diff --git a/tools/valgrind/gtest_exclude/cc_unittests.gtest-drmemory_win32.txt b/tools/valgrind/gtest_exclude/cc_unittests.gtest-drmemory_win32.txt
index 777e3b5..bdc0e84 100644
--- a/tools/valgrind/gtest_exclude/cc_unittests.gtest-drmemory_win32.txt
+++ b/tools/valgrind/gtest_exclude/cc_unittests.gtest-drmemory_win32.txt
@@ -10,3 +10,19 @@
 # http://crbug.com/416643
 LayerTreeHostCopyRequestTestMultipleRequests.GLRenderer_RunSingleThread
 LayerTreeHostCopyRequestTestMultipleRequests.SoftwareRenderer_RunSingleThread
+
+# http://crbug.com/430400
+PixelResourceTest/LayerTreeHostMasksPixelTest.MaskOfLayer/5
+PixelResourceTest/LayerTreeHostMasksPixelTest.MaskOfLayer/6
+PixelResourceTest/LayerTreeHostMasksPixelTest.ImageMaskOfLayer/5
+PixelResourceTest/LayerTreeHostMasksPixelTest.ImageMaskOfLayer/6
+PixelResourceTest/LayerTreeHostMasksPixelTest.MaskOfClippedLayer/5
+PixelResourceTest/LayerTreeHostMasksPixelTest.MaskOfClippedLayer/6
+PixelResourceTest/LayerTreeHostMasksPixelTest.MaskWithReplica/5
+PixelResourceTest/LayerTreeHostMasksPixelTest.MaskWithReplica/6
+PixelResourceTest/LayerTreeHostMasksPixelTest.MaskWithReplicaOfClippedLayer/5
+PixelResourceTest/LayerTreeHostMasksPixelTest.MaskWithReplicaOfClippedLayer/6
+PixelResourceTest/LayerTreeHostMasksPixelTest.MaskOfReplica/5
+PixelResourceTest/LayerTreeHostMasksPixelTest.MaskOfReplica/6
+PixelResourceTest/LayerTreeHostMasksPixelTest.MaskOfReplicaOfClippedLayer/5
+PixelResourceTest/LayerTreeHostMasksPixelTest.MaskOfReplicaOfClippedLayer/6
diff --git a/tools/valgrind/gtest_exclude/content_unittests.gtest.txt b/tools/valgrind/gtest_exclude/content_unittests.gtest.txt
index 54bc307..3376b22 100644
--- a/tools/valgrind/gtest_exclude/content_unittests.gtest.txt
+++ b/tools/valgrind/gtest_exclude/content_unittests.gtest.txt
@@ -7,3 +7,6 @@
 
 # http://crbug.com/418258
 DevToolsManagerTest.TestObserver
+
+# http://crbug.com/430391
+WebDataConsumerHandleImplTest.*
diff --git a/ui/compositor/layer.cc b/ui/compositor/layer.cc
index 7a2caf4..abf7e02 100644
--- a/ui/compositor/layer.cc
+++ b/ui/compositor/layer.cc
@@ -569,10 +569,15 @@
   RecomputeDrawsContentAndUVRect();
 }
 
-void Layer::SetShowSurface(cc::SurfaceId id, gfx::Size frame_size_in_dip) {
+void Layer::SetShowSurface(
+    cc::SurfaceId id,
+    const cc::SurfaceLayer::SatisfyCallback& satisfy_callback,
+    const cc::SurfaceLayer::RequireCallback& require_callback,
+    gfx::Size frame_size_in_dip) {
   DCHECK(type_ == LAYER_TEXTURED || type_ == LAYER_SOLID_COLOR);
 
-  scoped_refptr<cc::SurfaceLayer> new_layer = cc::SurfaceLayer::Create();
+  scoped_refptr<cc::SurfaceLayer> new_layer =
+      cc::SurfaceLayer::Create(satisfy_callback, require_callback);
   new_layer->SetSurfaceId(id);
   SwitchToLayer(new_layer);
   surface_layer_ = new_layer;
diff --git a/ui/compositor/layer.h b/ui/compositor/layer.h
index 16a2578..74781d1 100644
--- a/ui/compositor/layer.h
+++ b/ui/compositor/layer.h
@@ -17,6 +17,7 @@
 #include "cc/base/scoped_ptr_vector.h"
 #include "cc/layers/content_layer_client.h"
 #include "cc/layers/layer_client.h"
+#include "cc/layers/surface_layer.h"
 #include "cc/layers/texture_layer_client.h"
 #include "cc/resources/texture_mailbox.h"
 #include "cc/surfaces/surface_id.h"
@@ -275,7 +276,10 @@
                                gfx::Size frame_size_in_dip);
 
   // Begins showing content from a surface with a particular id.
-  void SetShowSurface(cc::SurfaceId id, gfx::Size frame_size_in_dip);
+  void SetShowSurface(cc::SurfaceId id,
+                      const cc::SurfaceLayer::SatisfyCallback& satisfy_callback,
+                      const cc::SurfaceLayer::RequireCallback& require_callback,
+                      gfx::Size frame_size_in_dip);
 
   bool has_external_content() {
     return texture_layer_.get() || delegated_renderer_layer_.get() ||
diff --git a/ui/gl/gl_context_egl.cc b/ui/gl/gl_context_egl.cc
index 733ad8d..41c10dc 100644
--- a/ui/gl/gl_context_egl.cc
+++ b/ui/gl/gl_context_egl.cc
@@ -183,6 +183,8 @@
   if (!eglSwapInterval(display_, interval)) {
     LOG(ERROR) << "eglSwapInterval failed with error "
                << GetLastEGLErrorString();
+  } else {
+    GLSurface::GetCurrent()->SetSwapInterval(interval);
   }
 }
 
diff --git a/ui/gl/gl_fence_arb.cc b/ui/gl/gl_fence_arb.cc
index da13f10..05bda6b 100644
--- a/ui/gl/gl_fence_arb.cc
+++ b/ui/gl/gl_fence_arb.cc
@@ -4,11 +4,26 @@
 
 #include "ui/gl/gl_fence_arb.h"
 
+#include "base/strings/stringprintf.h"
 #include "ui/gl/gl_bindings.h"
 #include "ui/gl/gl_context.h"
 
 namespace gfx {
 
+namespace {
+
+std::string GetGLErrors() {
+  // Clears and logs all current gl errors.
+  std::string accumulated_errors;
+  GLenum error;
+  while ((error = glGetError()) != GL_NO_ERROR) {
+    accumulated_errors += base::StringPrintf("0x%x ", error);
+  }
+  return accumulated_errors;
+}
+
+}  // namespace
+
 GLFenceARB::GLFenceARB(bool flush) {
   sync_ = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
   DCHECK_EQ(GL_TRUE, glIsSync(sync_));
@@ -28,13 +43,22 @@
   // We could potentially use glGetSynciv here, but it doesn't work
   // on OSX 10.7 (always says the fence is not signaled yet).
   // glClientWaitSync works better, so let's use that instead.
-  return glClientWaitSync(sync_, 0, 0) != GL_TIMEOUT_EXPIRED;
+  GLenum result = glClientWaitSync(sync_, 0, 0);
+  if (result == GL_WAIT_FAILED) {
+    LOG(FATAL) << "Failed to wait for GLFence. error code:" << GetGLErrors();
+  }
+  return result != GL_TIMEOUT_EXPIRED;
 }
 
 void GLFenceARB::ClientWait() {
   DCHECK_EQ(GL_TRUE, glIsSync(sync_));
   if (!flush_event_.get() || flush_event_->IsSignaled()) {
-    glClientWaitSync(sync_, GL_SYNC_FLUSH_COMMANDS_BIT, GL_TIMEOUT_IGNORED);
+    GLenum result =
+        glClientWaitSync(sync_, GL_SYNC_FLUSH_COMMANDS_BIT, GL_TIMEOUT_IGNORED);
+    DCHECK_NE(static_cast<GLenum>(GL_TIMEOUT_EXPIRED), result);
+    if (result == GL_WAIT_FAILED) {
+      LOG(FATAL) << "Failed to wait for GLFence. error code:" << GetGLErrors();
+    }
   } else {
     LOG(ERROR) << "Trying to wait for uncommitted fence. Skipping...";
   }
diff --git a/ui/gl/gl_fence_egl.cc b/ui/gl/gl_fence_egl.cc
index 2ff18fc..c96d6d8 100644
--- a/ui/gl/gl_fence_egl.cc
+++ b/ui/gl/gl_fence_egl.cc
@@ -4,6 +4,7 @@
 
 #include "ui/gl/gl_fence_egl.h"
 
+#include "ui/gl/egl_util.h"
 #include "ui/gl/gl_bindings.h"
 #include "ui/gl/gl_context.h"
 
@@ -24,6 +25,8 @@
   EGLint value = 0;
   if (eglGetSyncAttribKHR(display_, sync_, EGL_SYNC_STATUS_KHR, &value) !=
       EGL_TRUE) {
+    LOG(ERROR) << "Failed to get EGLSync attribute. error code:"
+               << eglGetError();
     return true;
   }
 
@@ -35,7 +38,12 @@
   if (!flush_event_.get() || flush_event_->IsSignaled()) {
     EGLint flags = 0;
     EGLTimeKHR time = EGL_FOREVER_KHR;
-    eglClientWaitSyncKHR(display_, sync_, flags, time);
+    EGLint result = eglClientWaitSyncKHR(display_, sync_, flags, time);
+    DCHECK_NE(EGL_TIMEOUT_EXPIRED_KHR, result);
+    if (result == EGL_FALSE) {
+      LOG(FATAL) << "Failed to wait for EGLSync. error:"
+                 << ui::GetLastEGLErrorString();
+    }
   } else {
     LOG(ERROR) << "Trying to wait for uncommitted fence. Skipping...";
   }
@@ -48,7 +56,10 @@
   }
   if (!flush_event_.get() || flush_event_->IsSignaled()) {
     EGLint flags = 0;
-    eglWaitSyncKHR(display_, sync_, flags);
+    if (eglWaitSyncKHR(display_, sync_, flags) == EGL_FALSE) {
+      LOG(FATAL) << "Failed to wait for EGLSync. error:"
+                 << ui::GetLastEGLErrorString();
+    }
   } else {
     LOG(ERROR) << "Trying to wait for uncommitted fence. Skipping...";
   }
diff --git a/ui/gl/gl_implementation_android.cc b/ui/gl/gl_implementation_android.cc
index 77dcb90..1486a6d 100644
--- a/ui/gl/gl_implementation_android.cc
+++ b/ui/gl/gl_implementation_android.cc
@@ -7,7 +7,6 @@
 #include "base/files/file_path.h"
 #include "base/logging.h"
 #include "base/native_library.h"
-#include "base/path_service.h"
 #include "ui/gl/gl_bindings.h"
 #include "ui/gl/gl_context_stub_with_extensions.h"
 #include "ui/gl/gl_egl_api_implementation.h"
diff --git a/ui/gl/gl_surface.cc b/ui/gl/gl_surface.cc
index 4459d48..a818a60 100644
--- a/ui/gl/gl_surface.cc
+++ b/ui/gl/gl_surface.cc
@@ -266,6 +266,9 @@
   return extensions.find(delimited_name) != std::string::npos;
 }
 
+void GLSurface::SetSwapInterval(int interval) {
+}
+
 GLSurfaceAdapter::GLSurfaceAdapter(GLSurface* surface) : surface_(surface) {}
 
 bool GLSurfaceAdapter::Initialize() {
diff --git a/ui/gl/gl_surface.h b/ui/gl/gl_surface.h
index d458063..0a7607f 100644
--- a/ui/gl/gl_surface.h
+++ b/ui/gl/gl_surface.h
@@ -134,6 +134,8 @@
 
   static GLSurface* GetCurrent();
 
+  virtual void SetSwapInterval(int interval);
+
  protected:
   virtual ~GLSurface();
   static bool InitializeOneOffImplementation(GLImplementation impl,
diff --git a/ui/gl/gl_surface_egl.cc b/ui/gl/gl_surface_egl.cc
index 8c08ff4..c34ca0e 100644
--- a/ui/gl/gl_surface_egl.cc
+++ b/ui/gl/gl_surface_egl.cc
@@ -54,6 +54,8 @@
 
 namespace gfx {
 
+unsigned int NativeViewGLSurfaceEGL::current_swap_generation_ = 0;
+
 namespace {
 
 EGLConfig g_config;
@@ -286,7 +288,9 @@
       surface_(NULL),
       supports_post_sub_buffer_(false),
       config_(NULL),
-      size_(1, 1) {
+      size_(1, 1),
+      swap_interval_(1),
+      swap_generation_(0) {
 #if defined(OS_ANDROID)
   if (window)
     ANativeWindow_acquire(window);
@@ -450,12 +454,37 @@
       "width", GetSize().width(),
       "height", GetSize().height());
 
+#if defined(OS_WIN)
+  bool force_no_vsync = false;
+  if (swap_interval_ != 0) {
+    // This code is a simple way of enforcing that only one surface actually
+    // vsyncs per frame. This provides single window cases a stable refresh
+    // while allowing multi-window cases to not slow down due to multiple syncs
+    // on a single thread. A better way to fix this problem would be to have
+    // each surface present on its own thread.
+    if (current_swap_generation_ == swap_generation_) {
+      current_swap_generation_++;
+    } else {
+      force_no_vsync = true;
+      eglSwapInterval(GetDisplay(), 0);
+    }
+
+    swap_generation_ = current_swap_generation_;
+  }
+#endif
+
   if (!eglSwapBuffers(GetDisplay(), surface_)) {
     DVLOG(1) << "eglSwapBuffers failed with error "
              << GetLastEGLErrorString();
     return false;
   }
 
+#if defined(OS_WIN)
+  if (force_no_vsync) {
+    eglSwapInterval(GetDisplay(), swap_interval_);
+  }
+#endif
+
   return true;
 }
 
@@ -530,6 +559,10 @@
   return vsync_provider_.get();
 }
 
+void NativeViewGLSurfaceEGL::SetSwapInterval(int interval) {
+  swap_interval_ = interval;
+}
+
 NativeViewGLSurfaceEGL::~NativeViewGLSurfaceEGL() {
   Destroy();
 #if defined(OS_ANDROID)
diff --git a/ui/gl/gl_surface_egl.h b/ui/gl/gl_surface_egl.h
index 952ccad..b832ef6 100644
--- a/ui/gl/gl_surface_egl.h
+++ b/ui/gl/gl_surface_egl.h
@@ -82,6 +82,8 @@
 
   EGLNativeWindowType window_;
 
+  virtual void SetSwapInterval(int interval) override;
+
  private:
   EGLSurface surface_;
   bool supports_post_sub_buffer_;
@@ -90,6 +92,10 @@
 
   scoped_ptr<VSyncProvider> vsync_provider_;
 
+  int swap_interval_;
+  unsigned int swap_generation_;
+  static unsigned int current_swap_generation_;
+
   DISALLOW_COPY_AND_ASSIGN(NativeViewGLSurfaceEGL);
 };
 
