diff --git a/.gitignore b/.gitignore index 28cdfc90..337546de 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ */x64 */.vs /StgSharp.Native/lib +obj diff --git a/obj/StgSharp.Native/Debug/x64/CodeAnalysisResultManifest.txt b/obj/StgSharp.Native/Debug/x64/CodeAnalysisResultManifest.txt deleted file mode 100644 index 1d10f245..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/CodeAnalysisResultManifest.txt and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/NativeCodeAnalysis.read.1.tlog b/obj/StgSharp.Native/Debug/x64/NativeCodeAnalysis.read.1.tlog deleted file mode 100644 index 2ae0d71f..00000000 --- a/obj/StgSharp.Native/Debug/x64/NativeCodeAnalysis.read.1.tlog +++ /dev/null @@ -1 +0,0 @@ -C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\COMMUNITY\TEAM TOOLS\STATIC ANALYSIS TOOLS\\RULE SETS\NATIVERECOMMENDEDRULES.RULESET diff --git a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.dll.recipe b/obj/StgSharp.Native/Debug/x64/StgSharp.Native.dll.recipe deleted file mode 100644 index 06ac1409..00000000 --- a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.dll.recipe +++ /dev/null @@ -1,11 +0,0 @@ - - - - - D:\platform-dev\build\win-x64\StgSharp.Native.dll - - - - - - \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.ilk b/obj/StgSharp.Native/Debug/x64/StgSharp.Native.ilk deleted file mode 100644 index 6a6e746c..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.ilk and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.log b/obj/StgSharp.Native/Debug/x64/StgSharp.Native.log deleted file mode 100644 index 125a6fa3..00000000 --- a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.log +++ /dev/null @@ -1,439 +0,0 @@ - m.basic.x86.c - dllmain.c - m.bufop.x86.c - m.solve.x86.c - m.fma_tile.x86.c - s.factorial.x86.c - m.fma.x86.c - s.hash.x86.c - load_intrinsic.x86.c - load_glfw.c - simdid.x86.c - simdid_compare.x86.c - sn_native.c - str_string.c - t.affinity.c - vector.c -D:\platform-dev\StgSharp.Native\sn-src\simdid.x86.c(1,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 -D:\platform-dev\StgSharp.Native\sn-src\simdid_compare.x86.c(1,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 -D:\platform-dev\StgSharp.Native\lib\glfw\glfw3.h(273,10): warning C4005: “GLFWAPI”: 宏重定义 - (编译源文件“sn-src/dllmain.c”) - D:\platform-dev\StgSharp.Native\sn-head\StgSharpNative.h(16,9): - 参见“GLFWAPI”的前一个定义 - -D:\platform-dev\StgSharp.Native\lib\glfw\glfw3.h(273,10): warning C4005: “GLFWAPI”: 宏重定义 - (编译源文件“sn-src/m.fma.x86.c”) - D:\platform-dev\StgSharp.Native\sn-head\StgSharpNative.h(16,9): - 参见“GLFWAPI”的前一个定义 - -D:\platform-dev\StgSharp.Native\lib\glfw\glfw3.h(273,10): warning C4005: “GLFWAPI”: 宏重定义 - (编译源文件“sn-src/m.solve.x86.c”) - D:\platform-dev\StgSharp.Native\sn-head\StgSharpNative.h(16,9): - 参见“GLFWAPI”的前一个定义 - -D:\platform-dev\StgSharp.Native\lib\glfw\glfw3.h(273,10): warning C4005: “GLFWAPI”: 宏重定义 - (编译源文件“sn-src/m.bufop.x86.c”) - D:\platform-dev\StgSharp.Native\sn-head\StgSharpNative.h(16,9): - 参见“GLFWAPI”的前一个定义 - -D:\platform-dev\StgSharp.Native\lib\glfw\glfw3.h(273,10): warning C4005: “GLFWAPI”: 宏重定义 - (编译源文件“sn-src/s.factorial.x86.c”) - D:\platform-dev\StgSharp.Native\sn-head\StgSharpNative.h(16,9): - 参见“GLFWAPI”的前一个定义 - -D:\platform-dev\StgSharp.Native\lib\glfw\glfw3.h(273,10): warning C4005: “GLFWAPI”: 宏重定义 - (编译源文件“sn-src/load_glfw.c”) - D:\platform-dev\StgSharp.Native\sn-head\StgSharpNative.h(16,9): - 参见“GLFWAPI”的前一个定义 - -D:\platform-dev\StgSharp.Native\lib\glfw\glfw3.h(273,10): warning C4005: “GLFWAPI”: 宏重定义 - (编译源文件“sn-src/t.affinity.c”) - D:\platform-dev\StgSharp.Native\sn-head\StgSharpNative.h(16,9): - 参见“GLFWAPI”的前一个定义 - -D:\platform-dev\StgSharp.Native\lib\glfw\glfw3.h(273,10): warning C4005: “GLFWAPI”: 宏重定义 - (编译源文件“sn-src/s.hash.x86.c”) - D:\platform-dev\StgSharp.Native\sn-head\StgSharpNative.h(16,9): - 参见“GLFWAPI”的前一个定义 - -D:\platform-dev\StgSharp.Native\lib\glfw\glfw3.h(273,10): warning C4005: “GLFWAPI”: 宏重定义 - (编译源文件“sn-src/load_intrinsic.x86.c”) - D:\platform-dev\StgSharp.Native\sn-head\StgSharpNative.h(16,9): - 参见“GLFWAPI”的前一个定义 - -D:\platform-dev\StgSharp.Native\lib\glfw\glfw3.h(273,10): warning C4005: “GLFWAPI”: 宏重定义 - (编译源文件“sn-src/simdid.x86.c”) - D:\platform-dev\StgSharp.Native\sn-head\StgSharpNative.h(16,9): - 参见“GLFWAPI”的前一个定义 - -D:\platform-dev\StgSharp.Native\lib\glfw\glfw3.h(273,10): warning C4005: “GLFWAPI”: 宏重定义 - (编译源文件“sn-src/str_string.c”) - D:\platform-dev\StgSharp.Native\sn-head\StgSharpNative.h(16,9): - 参见“GLFWAPI”的前一个定义 - -D:\platform-dev\StgSharp.Native\lib\glfw\glfw3.h(273,10): warning C4005: “GLFWAPI”: 宏重定义 - (编译源文件“sn-src/vector.c”) - D:\platform-dev\StgSharp.Native\sn-head\StgSharpNative.h(16,9): - 参见“GLFWAPI”的前一个定义 - -D:\platform-dev\StgSharp.Native\lib\glfw\glfw3.h(273,10): warning C4005: “GLFWAPI”: 宏重定义 - (编译源文件“sn-src/m.fma_tile.x86.c”) - D:\platform-dev\StgSharp.Native\sn-head\StgSharpNative.h(16,9): - 参见“GLFWAPI”的前一个定义 - -D:\platform-dev\StgSharp.Native\lib\glfw\glfw3.h(273,10): warning C4005: “GLFWAPI”: 宏重定义 - (编译源文件“sn-src/simdid_compare.x86.c”) - D:\platform-dev\StgSharp.Native\sn-head\StgSharpNative.h(16,9): - 参见“GLFWAPI”的前一个定义 - -D:\platform-dev\StgSharp.Native\lib\glfw\glfw3.h(273,10): warning C4005: “GLFWAPI”: 宏重定义 - (编译源文件“sn-src/m.basic.x86.c”) - D:\platform-dev\StgSharp.Native\sn-head\StgSharpNative.h(16,9): - 参见“GLFWAPI”的前一个定义 - -D:\platform-dev\StgSharp.Native\sn-src\m.fma.x86.c(6,1): error C1083: 无法打开包括文件: “sn_intrincontext.x86.h”: No such file or directory -D:\platform-dev\StgSharp.Native\sn-src\load_intrinsic.x86.c(7,1): error C1083: 无法打开包括文件: “sn_intrincontext.x86.h”: No such file or directory -D:\platform-dev\StgSharp.Native\sn-src\simdid.x86.c(9,1): error C1083: 无法打开包括文件: “sn_intrincontext.x86.h”: No such file or directory - vector_dot.c -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(1,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(144,45): error C2059: 语法错误:“,” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(144,47): error C2146: 语法错误: 缺少“)”(在标识符“sub”的前面) - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(144,40): error C2081: “sse”: 形参表中的名称非法 - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(144,47): error C2061: 语法错误: 标识符“sub” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(144,47): error C2059: 语法错误:“;” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(144,50): error C2059: 语法错误:“)” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(145,45): error C2059: 语法错误:“,” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(145,47): error C2146: 语法错误: 缺少“)”(在标识符“sub”的前面) - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(145,40): error C2081: “avx”: 形参表中的名称非法 - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(145,47): error C2061: 语法错误: 标识符“sub” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(145,47): error C2059: 语法错误:“;” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(145,50): error C2059: 语法错误:“)” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(146,40): error C2059: 语法错误:“常数” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(146,45): error C2059: 语法错误:“,” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(146,47): error C2146: 语法错误: 缺少“)”(在标识符“sub”的前面) - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(146,47): error C2061: 语法错误: 标识符“sub” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(146,47): error C2059: 语法错误:“;” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(146,50): error C2059: 语法错误:“)” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(148,46): error C2059: 语法错误:“,” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(148,48): error C2146: 语法错误: 缺少“)”(在标识符“sub”的前面) - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(148,41): error C2081: “sse”: 形参表中的名称非法 - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(148,48): error C2061: 语法错误: 标识符“sub” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(148,48): error C2059: 语法错误:“;” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(148,51): error C2059: 语法错误:“)” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(149,46): error C2059: 语法错误:“,” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(149,48): error C2146: 语法错误: 缺少“)”(在标识符“sub”的前面) - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(149,41): error C2081: “avx”: 形参表中的名称非法 - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(149,48): error C2061: 语法错误: 标识符“sub” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(149,48): error C2059: 语法错误:“;” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(149,51): error C2059: 语法错误:“)” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(150,41): error C2059: 语法错误:“常数” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(150,46): error C2059: 语法错误:“,” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(150,48): error C2146: 语法错误: 缺少“)”(在标识符“sub”的前面) - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(150,48): error C2061: 语法错误: 标识符“sub” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(150,48): error C2059: 语法错误:“;” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(150,51): error C2059: 语法错误:“)” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-src\m.solve.x86.c(10,52): error C2059: 语法错误:“,” -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(152,40): error C2059: 语法错误:“,” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(152,42): error C2146: 语法错误: 缺少“)”(在标识符“transpose”的前面) - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-src\m.solve.x86.c(10,54): error C2146: 语法错误: 缺少“)”(在标识符“try_plu”的前面) -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(152,35): error C2081: “sse”: 形参表中的名称非法 - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-src\m.solve.x86.c(10,47): error C2081: “sse”: 形参表中的名称非法 -D:\platform-dev\StgSharp.Native\sn-src\m.solve.x86.c(10,54): error C2061: 语法错误: 标识符“try_plu” -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(152,42): error C2061: 语法错误: 标识符“transpose” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-src\m.solve.x86.c(10,54): error C2059: 语法错误:“;” -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(152,42): error C2059: 语法错误:“;” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(152,51): error C2059: 语法错误:“)” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-src\m.solve.x86.c(10,61): error C2059: 语法错误:“)” -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(153,40): error C2059: 语法错误:“,” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-src\m.solve.x86.c(11,1): error C2449: 在文件范围内找到“{”(是否缺少函数头?) -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(153,42): error C2146: 语法错误: 缺少“)”(在标识符“transpose”的前面) - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-src\m.solve.x86.c(91,1): error C2059: 语法错误:“}” -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(153,35): error C2081: “avx”: 形参表中的名称非法 - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-src\str_string.c(20,54): warning C4267: “return”: 从“size_t”转换到“int”,可能丢失数据 -D:\platform-dev\StgSharp.Native\sn-src\str_string.c(35,54): warning C4267: “return”: 从“size_t”转换到“int”,可能丢失数据 -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(153,42): error C2061: 语法错误: 标识符“transpose” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(153,42): error C2059: 语法错误:“;” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(153,51): error C2059: 语法错误:“)” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(154,35): error C2059: 语法错误:“常数” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(154,40): error C2059: 语法错误:“,” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(154,42): error C2146: 语法错误: 缺少“)”(在标识符“transpose”的前面) - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(154,42): error C2061: 语法错误: 标识符“transpose” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(154,42): error C2059: 语法错误:“;” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(154,51): error C2059: 语法错误:“)” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(156,47): error C2059: 语法错误:“,” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(156,49): error C2146: 语法错误: 缺少“)”(在标识符“scalar_mul”的前面) - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(156,42): error C2081: “sse”: 形参表中的名称非法 - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(156,49): error C2061: 语法错误: 标识符“scalar_mul” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(156,49): error C2059: 语法错误:“;” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(156,59): error C2059: 语法错误:“)” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(157,47): error C2059: 语法错误:“,” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(157,49): error C2146: 语法错误: 缺少“)”(在标识符“scalar_mul”的前面) - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(157,42): error C2081: “avx”: 形参表中的名称非法 - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(157,49): error C2061: 语法错误: 标识符“scalar_mul” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(157,49): error C2059: 语法错误:“;” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(157,59): error C2059: 语法错误:“)” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-src\s.hash.x86.c(34,43): warning C4244: “函数”: 从“uint64_t”转换到“unsigned char”,可能丢失数据 -D:\platform-dev\StgSharp.Native\sn-src\s.hash.x86.c(35,50): warning C4244: “函数”: 从“uint64_t”转换到“unsigned char”,可能丢失数据 -D:\platform-dev\StgSharp.Native\sn-src\s.hash.x86.c(11,15): warning C4090: “初始化”: 不同的“const”限定符 -D:\platform-dev\StgSharp.Native\sn-src\s.hash.x86.c(11,34): warning C4090: “初始化”: 不同的“const”限定符 -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(158,42): error C2059: 语法错误:“常数” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(158,47): error C2059: 语法错误:“,” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(158,49): error C2146: 语法错误: 缺少“)”(在标识符“scalar_mul”的前面) - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(158,49): error C2061: 语法错误: 标识符“scalar_mul” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(158,49): error C2059: 语法错误:“;” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(158,59): error C2059: 语法错误:“)” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(160,48): error C2059: 语法错误:“,” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(160,50): error C2146: 语法错误: 缺少“)”(在标识符“scalar_mul”的前面) - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(160,43): error C2081: “sse”: 形参表中的名称非法 - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(160,50): error C2061: 语法错误: 标识符“scalar_mul” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(160,50): error C2059: 语法错误:“;” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(160,60): error C2059: 语法错误:“)” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(161,48): error C2059: 语法错误:“,” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(161,50): error C2146: 语法错误: 缺少“)”(在标识符“scalar_mul”的前面) - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(161,43): error C2081: “avx”: 形参表中的名称非法 - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(161,50): error C2061: 语法错误: 标识符“scalar_mul” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(161,50): error C2059: 语法错误:“;” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(161,60): error C2059: 语法错误:“)” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(162,43): error C2059: 语法错误:“常数” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(162,48): error C2059: 语法错误:“,” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(162,50): error C2146: 语法错误: 缺少“)”(在标识符“scalar_mul”的前面) - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(162,50): error C2061: 语法错误: 标识符“scalar_mul” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(162,50): error C2059: 语法错误:“;” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(162,60): error C2059: 语法错误:“)” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(164,41): error C2059: 语法错误:“,” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(164,43): error C2146: 语法错误: 缺少“)”(在标识符“fill”的前面) - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(164,36): error C2081: “sse”: 形参表中的名称非法 - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(164,43): error C2061: 语法错误: 标识符“fill” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(164,43): error C2059: 语法错误:“;” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(164,47): error C2059: 语法错误:“)” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(165,41): error C2059: 语法错误:“,” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(165,43): error C2146: 语法错误: 缺少“)”(在标识符“fill”的前面) - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(165,36): error C2081: “avx”: 形参表中的名称非法 - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(165,43): error C2061: 语法错误: 标识符“fill” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(165,43): error C2059: 语法错误:“;” - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-head\sn_intrinsic.context.x86.h(165,43): error C1003: 错误计数超过 100;正在停止编译 - (编译源文件“sn-src/m.bufop.x86.c”) - -D:\platform-dev\StgSharp.Native\sn-src\m.fma_tile.x86.c(6,1): error C1083: 无法打开包括文件: “sn_intrincontext.x86.h”: No such file or directory -D:\platform-dev\StgSharp.Native\sn-src\simdid_compare.x86.c(7,1): error C1083: 无法打开包括文件: “sn_intrincontext.x86.h”: No such file or directory -D:\platform-dev\StgSharp.Native\sn-src\vector.c(6,41): warning C4047: “函数”:“const float *”与“__m128 (*)[1]”的间接级别不同 -D:\platform-dev\StgSharp.Native\sn-src\vector.c(6,41): warning C4024: “_mm_load_ps”: 形参和实参 1 的类型不同 -D:\platform-dev\StgSharp.Native\lib\glfw\glfw3.h(273,10): warning C4005: “GLFWAPI”: 宏重定义 - (编译源文件“sn-src/sn_native.c”) - D:\platform-dev\StgSharp.Native\sn-head\StgSharpNative.h(16,9): - 参见“GLFWAPI”的前一个定义 - -D:\platform-dev\StgSharp.Native\sn-src\m.basic.x86.c(6,1): error C1083: 无法打开包括文件: “sn_intrincontext.x86.h”: No such file or directory -D:\platform-dev\StgSharp.Native\sn-src\sn_native.c(17,30): warning C4244: “函数”: 从“uint64_t”转换到“GLuint”,可能丢失数据 -D:\platform-dev\StgSharp.Native\sn-src\sn_native.c(19,43): warning C4244: “函数”: 从“uint64_t”转换到“GLuint”,可能丢失数据 -D:\platform-dev\StgSharp.Native\sn-src\sn_native.c(33,57): warning C4028: 形参 1 与声明不一致 -D:\platform-dev\StgSharp.Native\sn-src\sn_native.c(61,47): warning C4028: 形参 1 与声明不一致 -D:\platform-dev\StgSharp.Native\lib\glfw\glfw3.h(273,10): warning C4005: “GLFWAPI”: 宏重定义 - (编译源文件“sn-src/vector_dot.c”) - D:\platform-dev\StgSharp.Native\sn-head\StgSharpNative.h(16,9): - 参见“GLFWAPI”的前一个定义 - diff --git a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/CL.13136.write.1.tlog b/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/CL.13136.write.1.tlog deleted file mode 100644 index 1d9cf28b..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/CL.13136.write.1.tlog and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/CL.command.1.tlog b/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/CL.command.1.tlog deleted file mode 100644 index 6c6afe43..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/CL.command.1.tlog and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/CL.read.1.tlog b/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/CL.read.1.tlog deleted file mode 100644 index a5d59dea..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/CL.read.1.tlog and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/Cl.items.tlog b/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/Cl.items.tlog deleted file mode 100644 index 73ec43b8..00000000 --- a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/Cl.items.tlog +++ /dev/null @@ -1,17 +0,0 @@ -D:\platform-dev\StgSharp.Native\sn-src\m.basic.x86.c;D:\platform-dev\obj\StgSharp.Native\Debug\x64\m.basic.x86.obj -D:\platform-dev\StgSharp.Native\sn-src\dllmain.c;D:\platform-dev\obj\StgSharp.Native\Debug\x64\dllmain.obj -D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c;D:\platform-dev\obj\StgSharp.Native\Debug\x64\m.bufop.x86.obj -D:\platform-dev\StgSharp.Native\sn-src\m.solve.x86.c;D:\platform-dev\obj\StgSharp.Native\Debug\x64\m.solve.x86.obj -D:\platform-dev\StgSharp.Native\sn-src\m.fma_tile.x86.c;D:\platform-dev\obj\StgSharp.Native\Debug\x64\m.fma_tile.x86.obj -D:\platform-dev\StgSharp.Native\sn-src\s.factorial.x86.c;D:\platform-dev\obj\StgSharp.Native\Debug\x64\s.factorial.x86.obj -D:\platform-dev\StgSharp.Native\sn-src\m.fma.x86.c;D:\platform-dev\obj\StgSharp.Native\Debug\x64\m.fma.x86.obj -D:\platform-dev\StgSharp.Native\sn-src\s.hash.x86.c;D:\platform-dev\obj\StgSharp.Native\Debug\x64\s.hash.x86.obj -D:\platform-dev\StgSharp.Native\sn-src\load_intrinsic.x86.c;D:\platform-dev\obj\StgSharp.Native\Debug\x64\load_intrinsic.x86.obj -D:\platform-dev\StgSharp.Native\sn-src\load_glfw.c;D:\platform-dev\obj\StgSharp.Native\Debug\x64\load_glfw.obj -D:\platform-dev\StgSharp.Native\sn-src\simdid.x86.c;D:\platform-dev\obj\StgSharp.Native\Debug\x64\simdid.x86.obj -D:\platform-dev\StgSharp.Native\sn-src\simdid_compare.x86.c;D:\platform-dev\obj\StgSharp.Native\Debug\x64\simdid_compare.x86.obj -D:\platform-dev\StgSharp.Native\sn-src\sn_native.c;D:\platform-dev\obj\StgSharp.Native\Debug\x64\sn_native.obj -D:\platform-dev\StgSharp.Native\sn-src\str_string.c;D:\platform-dev\obj\StgSharp.Native\Debug\x64\str_string.obj -D:\platform-dev\StgSharp.Native\sn-src\t.affinity.c;D:\platform-dev\obj\StgSharp.Native\Debug\x64\t.affinity.obj -D:\platform-dev\StgSharp.Native\sn-src\vector.c;D:\platform-dev\obj\StgSharp.Native\Debug\x64\vector.obj -D:\platform-dev\StgSharp.Native\sn-src\vector_dot.c;D:\platform-dev\obj\StgSharp.Native\Debug\x64\vector_dot.obj diff --git a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/StgSharp.Native.lastbuildstate b/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/StgSharp.Native.lastbuildstate deleted file mode 100644 index 71d59beb..00000000 --- a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/StgSharp.Native.lastbuildstate +++ /dev/null @@ -1,2 +0,0 @@ -PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.44.35207:TargetPlatformVersion=10.0.26100.0: -Debug|x64|D:\platform-dev\| diff --git a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/bscmake.command.1.tlog b/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/bscmake.command.1.tlog deleted file mode 100644 index 7718b557..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/bscmake.command.1.tlog and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/bscmake.read.1.tlog b/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/bscmake.read.1.tlog deleted file mode 100644 index bc4ccb3e..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/bscmake.read.1.tlog and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/bscmake.write.1.tlog b/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/bscmake.write.1.tlog deleted file mode 100644 index 5d2a3105..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/bscmake.write.1.tlog and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/link.command.1.tlog b/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/link.command.1.tlog deleted file mode 100644 index a4586459..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/link.command.1.tlog and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/link.read.1.tlog b/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/link.read.1.tlog deleted file mode 100644 index 4f51fd42..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/link.read.1.tlog and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/link.secondary.1.tlog b/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/link.secondary.1.tlog deleted file mode 100644 index a0bdb59b..00000000 --- a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/link.secondary.1.tlog +++ /dev/null @@ -1,4 +0,0 @@ -^D:\PLATFORM-DEV\OBJ\STGSHARP.NATIVE\DEBUG\X64\DLLMAIN.OBJ|D:\PLATFORM-DEV\OBJ\STGSHARP.NATIVE\DEBUG\X64\LOAD_GLFW.OBJ|D:\PLATFORM-DEV\OBJ\STGSHARP.NATIVE\DEBUG\X64\LOAD_INTRINSIC.X86.OBJ|D:\PLATFORM-DEV\OBJ\STGSHARP.NATIVE\DEBUG\X64\M.BASIC.X86.OBJ|D:\PLATFORM-DEV\OBJ\STGSHARP.NATIVE\DEBUG\X64\M.BUFOP.X86.OBJ|D:\PLATFORM-DEV\OBJ\STGSHARP.NATIVE\DEBUG\X64\M.FMA.X86.OBJ|D:\PLATFORM-DEV\OBJ\STGSHARP.NATIVE\DEBUG\X64\M.FMA_TILE.X86.OBJ|D:\PLATFORM-DEV\OBJ\STGSHARP.NATIVE\DEBUG\X64\M.SOLVE.X86.OBJ|D:\PLATFORM-DEV\OBJ\STGSHARP.NATIVE\DEBUG\X64\S.FACTORIAL.X86.OBJ|D:\PLATFORM-DEV\OBJ\STGSHARP.NATIVE\DEBUG\X64\S.HASH.X86.OBJ|D:\PLATFORM-DEV\OBJ\STGSHARP.NATIVE\DEBUG\X64\SIMDID.X86.OBJ|D:\PLATFORM-DEV\OBJ\STGSHARP.NATIVE\DEBUG\X64\SIMDID_COMPARE.X86.OBJ|D:\PLATFORM-DEV\OBJ\STGSHARP.NATIVE\DEBUG\X64\SN_NATIVE.OBJ|D:\PLATFORM-DEV\OBJ\STGSHARP.NATIVE\DEBUG\X64\STR_STRING.OBJ|D:\PLATFORM-DEV\OBJ\STGSHARP.NATIVE\DEBUG\X64\T.AFFINITY.OBJ|D:\PLATFORM-DEV\OBJ\STGSHARP.NATIVE\DEBUG\X64\VECTOR.OBJ|D:\PLATFORM-DEV\OBJ\STGSHARP.NATIVE\DEBUG\X64\VECTOR_DOT.OBJ|D:\PLATFORM-DEV\STGSHARP.NATIVE\LIB\GLFW\GLFW3.LIB|D:\PLATFORM-DEV\STGSHARP.NATIVE\LIB\GLFW\GLFW3_MT.LIB -D:\platform-dev\build\win-x64\StgSharp.Native.lib -D:\platform-dev\build\win-x64\StgSharp.Native.EXP -D:\platform-dev\obj\StgSharp.Native\Debug\x64\StgSharp.Native.ilk diff --git a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/link.write.1.tlog b/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/link.write.1.tlog deleted file mode 100644 index 5bb1ab18..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/link.write.1.tlog and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/unsuccessfulbuild b/obj/StgSharp.Native/Debug/x64/StgSharp.Native.tlog/unsuccessfulbuild deleted file mode 100644 index e69de29b..00000000 diff --git a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.vcxproj.FileListAbsolute.txt b/obj/StgSharp.Native/Debug/x64/StgSharp.Native.vcxproj.FileListAbsolute.txt deleted file mode 100644 index f39f6cd5..00000000 --- a/obj/StgSharp.Native/Debug/x64/StgSharp.Native.vcxproj.FileListAbsolute.txt +++ /dev/null @@ -1,2 +0,0 @@ -D:\platform-dev\build\win-x64\StgSharp.Native.dll.lastcodeanalysissucceeded -D:\platform-dev\obj\StgSharp.Native\Debug\x64\NativeCodeAnalysis.read.1.tlog diff --git a/obj/StgSharp.Native/Debug/x64/dllmain.cod b/obj/StgSharp.Native/Debug/x64/dllmain.cod deleted file mode 100644 index 481a0fde..00000000 --- a/obj/StgSharp.Native/Debug/x64/dllmain.cod +++ /dev/null @@ -1,364 +0,0 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.44.35220.0 - -include listing.inc - -INCLUDELIB MSVCRTD -INCLUDELIB OLDNAMES - -PUBLIC SN_ZERO_KERNEL -_DATA SEGMENT -COMM infolog:BYTE:0200H -_DATA ENDS -_BSS SEGMENT -SN_ZERO_KERNEL DB 080H DUP (?) -_BSS ENDS -msvcjmc SEGMENT -__5C8CA4D3_mmintrin@h DB 01H -__8C83BECC_concurrencysal@h DB 01H -__608E3340_sal@h DB 01H -__FB67E29A_vadefs@h DB 01H -__1D1B619C_vcruntime@h DB 01H -__735960E1_corecrt@h DB 01H -__211DB995_corecrt_malloc@h DB 01H -__7CD62D9E_malloc@h DB 01H -__9DCE0DC8_xmmintrin@h DB 01H -__4C2AD0C7_winpackagefamily@h DB 01H -__9DED9ED1_winapifamily@h DB 01H -__12FEDF4E_sdkddkver@h DB 01H -__9BAEE128_excpt@h DB 01H -__B7B53233_stdarg@h DB 01H -__6B04FCB3_specstrings_undef@h DB 01H -__F4027AF7_specstrings_strict@h DB 01H -__B90340D4_sdv_driverspecs@h DB 01H -__BFFF5AD3_driverspecs@h DB 01H -__32847078_specstrings@h DB 01H -__108B2620_corecrt_wctype@h DB 01H -__6CD6613D_ctype@h DB 01H -__30902A1F_kernelspecs@h DB 01H -__376FD5CA_basetsd@h DB 01H -__13DE2371_errno@h DB 01H -__8C6AE390_vcruntime_string@h DB 01H -__8ACB2152_corecrt_memcpy_s@h DB 01H -__EA6C9D17_corecrt_memory@h DB 01H -__0DF2AF52_corecrt_wstring@h DB 01H -__6E889ECC_string@h DB 01H -__9BEDF4DE_guiddef@h DB 01H -__51BFD2FE_pshpack4@h DB 01H -__31652CEA_poppack@h DB 01H -__5532AE4C_pshpack2@h DB 01H -__58A52B9A_pshpack8@h DB 01H -__57741015_pshpack1@h DB 01H -__CDE68C90_apiset@h DB 01H -__0BF06E8D_ktmtypes@h DB 01H -__40C200C0_winnt@h DB 01H -__9336F789_minwindef@h DB 01H -__55136115_windef@h DB 01H -__32205BF0_apisetcconv@h DB 01H -__B48FDEA0_minwinbase@h DB 01H -__3551B028_apiquery2@h DB 01H -__65BE04AA_processenv@h DB 01H -__4767CA46_fileapi@h DB 01H -__282E6C4B_fileapifromapp@h DB 01H -__393AF12C_debugapi@h DB 01H -__EBC502B8_utilapiset@h DB 01H -__1EAD8C69_handleapi@h DB 01H -__D8EF9B29_errhandlingapi@h DB 01H -__97FC1204_fibersapi@h DB 01H -__27448220_namedpipeapi@h DB 01H -__6EA33B2A_profileapi@h DB 01H -__EAC6F673_heapapi@h DB 01H -__D64EEA5A_ioapiset@h DB 01H -__144BD4B6_synchapi@h DB 01H -__03B1C640_interlockedapi@h DB 01H -__DC64CB38_processthreadsapi@h DB 01H -__D719B518_sysinfoapi@h DB 01H -__410385B1_memoryapi@h DB 01H -__C1AD45EF_enclaveapi@h DB 01H -__F4C3AA32_threadpoollegacyapiset@h DB 01H -__AC5A7A9F_threadpoolapiset@h DB 01H -__F5254B21_jobapi@h DB 01H -__BCEA6EE8_jobapi2@h DB 01H -__D18ACE72_wow64apiset@h DB 01H -__669B0D4A_libloaderapi@h DB 01H -__645F7034_securitybaseapi@h DB 01H -__67E58557_namespaceapi@h DB 01H -__599D9D3A_systemtopologyapi@h DB 01H -__2337E373_processtopologyapi@h DB 01H -__02BFF239_securityappcontainer@h DB 01H -__9C196272_realtimeapiset@h DB 01H -__5AB313A4_winerror@h DB 01H -__B7E7187B_timezoneapi@h DB 01H -__6DE9EB6F_winbase@h DB 01H -__56B2AFF2_wingdi@h DB 01H -__BA1161A9_tvout@h DB 01H -__0501A018_winuser@h DB 01H -__EF12FA99_datetimeapi@h DB 01H -__8FA7C3CA_winnls@h DB 01H -__390F0C47_stringapiset@h DB 01H -__28605B0A_wincontypes@h DB 01H -__BFBDE86D_consoleapi@h DB 01H -__C3CAFBF0_consoleapi2@h DB 01H -__C20891C7_consoleapi3@h DB 01H -__717C98B6_wincon@h DB 01H -__2884C177_verrsrc@h DB 01H -__A3FD3A34_winver@h DB 01H -__6F8AD9F1_reason@h DB 01H -__4C90FD6F_winreg@h DB 01H -__68AFEBAD_wnnc@h DB 01H -__5A7AB086_winnetwk@h DB 01H -__2FE8A10C_stralign@h DB 01H -__34558472_winsvc@h DB 01H -__058845F1_mcx@h DB 01H -__7F16006B_ime_cmodes@h DB 01H -__0A3AF599_imm@h DB 01H -__9349FE86_windows@h DB 01H -__639A050C_sn_internal@h DB 01H -__836A8CFC_stdint@h DB 01H -__714FE6D7_sn_target@h DB 01H -__60B45B40_corecrt_stdio_config@h DB 01H -__CFA3741E_corecrt_wstdio@h DB 01H -__B3FE3303_stdio@h DB 01H -__955456CD_stddef@h DB 01H -__99AED4FB_corecrt_search@h DB 01H -__8B813BF6_corecrt_wstdlib@h DB 01H -__3D1CA2C3_limits@h DB 01H -__E8FB0A68_stdlib@h DB 01H -__F562FA57_stb_image@h DB 01H -__C95DC661_khrplatform@h DB 01H -__6C577136_gl@h DB 01H -__EE638A2C_wgl@h DB 01H -__8EF9E35C_glfw3@h DB 01H -__F8AC8404_emmintrin@h DB 01H -__270DEC8D_pmmintrin@h DB 01H -__97D49F0F_tmmintrin@h DB 01H -__BEEF8A8C_smmintrin@h DB 01H -__DB8D0340_nmmintrin@h DB 01H -__0E36F90E_wmmintrin@h DB 01H -__C5A2B409_zmmintrin@h DB 01H -__F2B616C3_immintrin@h DB 01H -__9FB25DBE_assert@h DB 01H -__4E664295_glfw_function@h DB 01H -__64C0EF11_StgSharpNative@h DB 01H -__F49407C4_sn_intrinsic@matkernel@h DB 01H -__AE0F26BF_dllmain@c DB 01H -msvcjmc ENDS -PUBLIC DllMain -PUBLIC __JustMyCode_Default -EXTRN _RTC_InitBase:PROC -EXTRN _RTC_Shutdown:PROC -EXTRN __CheckForDebuggerJustMyCode:PROC -; COMDAT pdata -pdata SEGMENT -$pdata$init_zero_kernel DD imagerel init_zero_kernel - DD imagerel init_zero_kernel+121 - DD imagerel $unwind$init_zero_kernel -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$DllMain DD imagerel $LN9 - DD imagerel $LN9+140 - DD imagerel $unwind$DllMain -pdata ENDS -; COMDAT rtc$TMZ -rtc$TMZ SEGMENT -_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown -rtc$TMZ ENDS -; COMDAT rtc$IMZ -rtc$IMZ SEGMENT -_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase -rtc$IMZ ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$DllMain DD 025051c01H - DD 0117231cH - DD 07010001fH - DD 0500fH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$init_zero_kernel DD 025050f01H - DD 010a230fH - DD 070030025H - DD 05002H -xdata ENDS -; Function compile flags: /Odt -; COMDAT __JustMyCode_Default -_TEXT SEGMENT -__JustMyCode_Default PROC ; COMDAT - 00000 c2 00 00 ret 0 -__JustMyCode_Default ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\dllmain.c -; COMDAT DllMain -_TEXT SEGMENT -tv64 = 192 -hModule$ = 240 -ul_reason_for_call$ = 248 -lpReserved$ = 256 -DllMain PROC ; COMDAT - -; 26 : { - -$LN9: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000e 55 push rbp - 0000f 57 push rdi - 00010 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__AE0F26BF_dllmain@c - 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00028 90 npad 1 - -; 27 : switch (ul_reason_for_call) { - - 00029 8b 85 f8 00 00 - 00 mov eax, DWORD PTR ul_reason_for_call$[rbp] - 0002f 89 85 c0 00 00 - 00 mov DWORD PTR tv64[rbp], eax - 00035 83 bd c0 00 00 - 00 00 cmp DWORD PTR tv64[rbp], 0 - 0003c 74 38 je SHORT $LN7@DllMain - 0003e 83 bd c0 00 00 - 00 01 cmp DWORD PTR tv64[rbp], 1 - 00045 74 14 je SHORT $LN4@DllMain - 00047 83 bd c0 00 00 - 00 02 cmp DWORD PTR tv64[rbp], 2 - 0004e 74 18 je SHORT $LN5@DllMain - 00050 83 bd c0 00 00 - 00 03 cmp DWORD PTR tv64[rbp], 3 - 00057 74 16 je SHORT $LN6@DllMain - 00059 eb 22 jmp SHORT $LN2@DllMain -$LN4@DllMain: - -; 28 : case DLL_PROCESS_ATTACH: -; 29 : init_zero_kernel(); - - 0005b e8 00 00 00 00 call init_zero_kernel - 00060 90 npad 1 - -; 30 : return 1; - - 00061 b8 01 00 00 00 mov eax, 1 - 00066 eb 1a jmp SHORT $LN1@DllMain -$LN5@DllMain: - -; 31 : case DLL_THREAD_ATTACH: -; 32 : return 1; - - 00068 b8 01 00 00 00 mov eax, 1 - 0006d eb 13 jmp SHORT $LN1@DllMain -$LN6@DllMain: - -; 33 : case DLL_THREAD_DETACH: -; 34 : return 1; - - 0006f b8 01 00 00 00 mov eax, 1 - 00074 eb 0c jmp SHORT $LN1@DllMain -$LN7@DllMain: - -; 35 : case DLL_PROCESS_DETACH: -; 36 : return 1; - - 00076 b8 01 00 00 00 mov eax, 1 - 0007b eb 05 jmp SHORT $LN1@DllMain -$LN2@DllMain: - -; 37 : break; -; 38 : } -; 39 : return TRUE; - - 0007d b8 01 00 00 00 mov eax, 1 -$LN1@DllMain: - -; 40 : } - - 00082 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 00089 5f pop rdi - 0008a 5d pop rbp - 0008b c3 ret 0 -DllMain ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\dllmain.c -; COMDAT init_zero_kernel -_TEXT SEGMENT -c$1 = 4 -r$2 = 36 -init_zero_kernel PROC ; COMDAT - -; 17 : { - - 00000 40 55 push rbp - 00002 57 push rdi - 00003 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__AE0F26BF_dllmain@c - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001b 90 npad 1 - -; 18 : for (int c = 0; c < 4; ++c) { - - 0001c c7 45 04 00 00 - 00 00 mov DWORD PTR c$1[rbp], 0 - 00023 eb 08 jmp SHORT $LN4@init_zero_ -$LN2@init_zero_: - 00025 8b 45 04 mov eax, DWORD PTR c$1[rbp] - 00028 ff c0 inc eax - 0002a 89 45 04 mov DWORD PTR c$1[rbp], eax -$LN4@init_zero_: - 0002d 83 7d 04 04 cmp DWORD PTR c$1[rbp], 4 - 00031 7d 3c jge SHORT $LN3@init_zero_ - -; 19 : for (int r = 0; r < 4; ++r) { - - 00033 c7 45 24 00 00 - 00 00 mov DWORD PTR r$2[rbp], 0 - 0003a eb 08 jmp SHORT $LN7@init_zero_ -$LN5@init_zero_: - 0003c 8b 45 24 mov eax, DWORD PTR r$2[rbp] - 0003f ff c0 inc eax - 00041 89 45 24 mov DWORD PTR r$2[rbp], eax -$LN7@init_zero_: - 00044 83 7d 24 04 cmp DWORD PTR r$2[rbp], 4 - 00048 7d 23 jge SHORT $LN6@init_zero_ - -; 20 : SN_ZERO_KERNEL.m[r][c] = 0; - - 0004a 48 63 45 24 movsxd rax, DWORD PTR r$2[rbp] - 0004e 48 6b c0 20 imul rax, rax, 32 ; 00000020H - 00052 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:SN_ZERO_KERNEL - 00059 48 03 c8 add rcx, rax - 0005c 48 8b c1 mov rax, rcx - 0005f 48 63 4d 04 movsxd rcx, DWORD PTR c$1[rbp] - 00063 48 c7 04 c8 00 - 00 00 00 mov QWORD PTR [rax+rcx*8], 0 - -; 21 : } - - 0006b eb cf jmp SHORT $LN5@init_zero_ -$LN6@init_zero_: - -; 22 : } - - 0006d eb b6 jmp SHORT $LN2@init_zero_ -$LN3@init_zero_: - -; 23 : } - - 0006f 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 00076 5f pop rdi - 00077 5d pop rbp - 00078 c3 ret 0 -init_zero_kernel ENDP -_TEXT ENDS -END diff --git a/obj/StgSharp.Native/Debug/x64/dllmain.nativecodeanalysis.sarif b/obj/StgSharp.Native/Debug/x64/dllmain.nativecodeanalysis.sarif deleted file mode 100644 index 2ff1ed48..00000000 --- a/obj/StgSharp.Native/Debug/x64/dllmain.nativecodeanalysis.sarif +++ /dev/null @@ -1,115 +0,0 @@ -{ - "version": "2.1.0", - "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", - "runs": [ - { - "results": [], - "tool": { - "driver": { - "name": "PREfast", - "fullName": "MSVC Code Analysis", - "version": "14.44.35220.0", - "informationUri": "https://aka.ms/cpp/ca" - } - }, - "invocations": [ - { - "executionSuccessful": true - } - ], - "artifacts": [ - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-src/dllmain.c" - }, - "roles": [ - "analysisTarget" - ], - "hashes": { - "sha-256": "c7bdcaa511f5eec55c641d61b9b747d99a329c02b14cd8529d19bce4ac2a6f74" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/stgsharpnative.h" - }, - "hashes": { - "sha-256": "5eee6b3faf7bf2247fe44898b0fcb71794c346ae2f0b58953e1632a49c1b6c4e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_internal.h" - }, - "hashes": { - "sha-256": "7430f5e8582c672b79e266834c290e4d426ce44b7bd3b7e5534f201a48ff6df9" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_target.h" - }, - "hashes": { - "sha-256": "b8c543a09db7bd21a2b409476024fa6bec6a5218d88ca036d15584ed453ceb91" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/stbi/stb_image.h" - }, - "hashes": { - "sha-256": "c45e3ef56a7d946654740f02e25fcb99a819861155ad1173349a289f2a000ce2" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/gl.h" - }, - "hashes": { - "sha-256": "c9d0960c919f9ef4cfa6449f2b0c00f2ad8286b420e01ee7ec34b40c618392fc" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/khrplatform.h" - }, - "hashes": { - "sha-256": "f5b69ed6a7bef6651526abb2d1263811d59acdba7a29368bb9be1a0f9e80160f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/wgl.h" - }, - "hashes": { - "sha-256": "86d6c58acb0a92b35ce8d94d6817fcec3f73d9e147e8621f468f143db1bbd81f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/glfw/glfw3.h" - }, - "hashes": { - "sha-256": "85c584857dddd780c131940ed69cd516c2b60d61664df9cb254710c3602c1008" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/glfw_function.h" - }, - "hashes": { - "sha-256": "4baa73f465e3e347fc0ad0ff666a6db2e83e749acd770f4bee02c12a7b9ec36e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrinsic.matkernel.h" - }, - "hashes": { - "sha-256": "19f0030c441ae5c4cec0b446b64daa10448fafd44d4fd6dd2232b84f5ed9aad1" - } - } - ] - } - ] -} \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/dllmain.nativecodeanalysis.xml b/obj/StgSharp.Native/Debug/x64/dllmain.nativecodeanalysis.xml deleted file mode 100644 index dcdf0885..00000000 --- a/obj/StgSharp.Native/Debug/x64/dllmain.nativecodeanalysis.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/dllmain.obj b/obj/StgSharp.Native/Debug/x64/dllmain.obj deleted file mode 100644 index 9835484e..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/dllmain.obj and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/dllmain.sbr b/obj/StgSharp.Native/Debug/x64/dllmain.sbr deleted file mode 100644 index 79df9b05..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/dllmain.sbr and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/load_glfw.cod b/obj/StgSharp.Native/Debug/x64/load_glfw.cod deleted file mode 100644 index 025c44e9..00000000 --- a/obj/StgSharp.Native/Debug/x64/load_glfw.cod +++ /dev/null @@ -1,1347 +0,0 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.44.35220.0 - -include listing.inc - -INCLUDELIB MSVCRTD -INCLUDELIB OLDNAMES - -_DATA SEGMENT -COMM infolog:BYTE:0200H -_DATA ENDS -msvcjmc SEGMENT -__5C8CA4D3_mmintrin@h DB 01H -__8C83BECC_concurrencysal@h DB 01H -__608E3340_sal@h DB 01H -__FB67E29A_vadefs@h DB 01H -__1D1B619C_vcruntime@h DB 01H -__735960E1_corecrt@h DB 01H -__211DB995_corecrt_malloc@h DB 01H -__7CD62D9E_malloc@h DB 01H -__9DCE0DC8_xmmintrin@h DB 01H -__4C2AD0C7_winpackagefamily@h DB 01H -__9DED9ED1_winapifamily@h DB 01H -__12FEDF4E_sdkddkver@h DB 01H -__9BAEE128_excpt@h DB 01H -__B7B53233_stdarg@h DB 01H -__6B04FCB3_specstrings_undef@h DB 01H -__F4027AF7_specstrings_strict@h DB 01H -__B90340D4_sdv_driverspecs@h DB 01H -__BFFF5AD3_driverspecs@h DB 01H -__32847078_specstrings@h DB 01H -__108B2620_corecrt_wctype@h DB 01H -__6CD6613D_ctype@h DB 01H -__30902A1F_kernelspecs@h DB 01H -__376FD5CA_basetsd@h DB 01H -__13DE2371_errno@h DB 01H -__8C6AE390_vcruntime_string@h DB 01H -__8ACB2152_corecrt_memcpy_s@h DB 01H -__EA6C9D17_corecrt_memory@h DB 01H -__0DF2AF52_corecrt_wstring@h DB 01H -__6E889ECC_string@h DB 01H -__9BEDF4DE_guiddef@h DB 01H -__51BFD2FE_pshpack4@h DB 01H -__31652CEA_poppack@h DB 01H -__5532AE4C_pshpack2@h DB 01H -__58A52B9A_pshpack8@h DB 01H -__57741015_pshpack1@h DB 01H -__CDE68C90_apiset@h DB 01H -__0BF06E8D_ktmtypes@h DB 01H -__40C200C0_winnt@h DB 01H -__9336F789_minwindef@h DB 01H -__55136115_windef@h DB 01H -__32205BF0_apisetcconv@h DB 01H -__B48FDEA0_minwinbase@h DB 01H -__3551B028_apiquery2@h DB 01H -__65BE04AA_processenv@h DB 01H -__4767CA46_fileapi@h DB 01H -__282E6C4B_fileapifromapp@h DB 01H -__393AF12C_debugapi@h DB 01H -__EBC502B8_utilapiset@h DB 01H -__1EAD8C69_handleapi@h DB 01H -__D8EF9B29_errhandlingapi@h DB 01H -__97FC1204_fibersapi@h DB 01H -__27448220_namedpipeapi@h DB 01H -__6EA33B2A_profileapi@h DB 01H -__EAC6F673_heapapi@h DB 01H -__D64EEA5A_ioapiset@h DB 01H -__144BD4B6_synchapi@h DB 01H -__03B1C640_interlockedapi@h DB 01H -__DC64CB38_processthreadsapi@h DB 01H -__D719B518_sysinfoapi@h DB 01H -__410385B1_memoryapi@h DB 01H -__C1AD45EF_enclaveapi@h DB 01H -__F4C3AA32_threadpoollegacyapiset@h DB 01H -__AC5A7A9F_threadpoolapiset@h DB 01H -__F5254B21_jobapi@h DB 01H -__BCEA6EE8_jobapi2@h DB 01H -__D18ACE72_wow64apiset@h DB 01H -__669B0D4A_libloaderapi@h DB 01H -__645F7034_securitybaseapi@h DB 01H -__67E58557_namespaceapi@h DB 01H -__599D9D3A_systemtopologyapi@h DB 01H -__2337E373_processtopologyapi@h DB 01H -__02BFF239_securityappcontainer@h DB 01H -__9C196272_realtimeapiset@h DB 01H -__5AB313A4_winerror@h DB 01H -__B7E7187B_timezoneapi@h DB 01H -__6DE9EB6F_winbase@h DB 01H -__56B2AFF2_wingdi@h DB 01H -__BA1161A9_tvout@h DB 01H -__0501A018_winuser@h DB 01H -__EF12FA99_datetimeapi@h DB 01H -__8FA7C3CA_winnls@h DB 01H -__390F0C47_stringapiset@h DB 01H -__28605B0A_wincontypes@h DB 01H -__BFBDE86D_consoleapi@h DB 01H -__C3CAFBF0_consoleapi2@h DB 01H -__C20891C7_consoleapi3@h DB 01H -__717C98B6_wincon@h DB 01H -__2884C177_verrsrc@h DB 01H -__A3FD3A34_winver@h DB 01H -__6F8AD9F1_reason@h DB 01H -__4C90FD6F_winreg@h DB 01H -__68AFEBAD_wnnc@h DB 01H -__5A7AB086_winnetwk@h DB 01H -__2FE8A10C_stralign@h DB 01H -__34558472_winsvc@h DB 01H -__058845F1_mcx@h DB 01H -__7F16006B_ime_cmodes@h DB 01H -__0A3AF599_imm@h DB 01H -__9349FE86_windows@h DB 01H -__639A050C_sn_internal@h DB 01H -__836A8CFC_stdint@h DB 01H -__714FE6D7_sn_target@h DB 01H -__60B45B40_corecrt_stdio_config@h DB 01H -__CFA3741E_corecrt_wstdio@h DB 01H -__B3FE3303_stdio@h DB 01H -__955456CD_stddef@h DB 01H -__99AED4FB_corecrt_search@h DB 01H -__8B813BF6_corecrt_wstdlib@h DB 01H -__3D1CA2C3_limits@h DB 01H -__E8FB0A68_stdlib@h DB 01H -__F562FA57_stb_image@h DB 01H -__C95DC661_khrplatform@h DB 01H -__6C577136_gl@h DB 01H -__EE638A2C_wgl@h DB 01H -__8EF9E35C_glfw3@h DB 01H -__F8AC8404_emmintrin@h DB 01H -__270DEC8D_pmmintrin@h DB 01H -__97D49F0F_tmmintrin@h DB 01H -__BEEF8A8C_smmintrin@h DB 01H -__DB8D0340_nmmintrin@h DB 01H -__0E36F90E_wmmintrin@h DB 01H -__C5A2B409_zmmintrin@h DB 01H -__F2B616C3_immintrin@h DB 01H -__9FB25DBE_assert@h DB 01H -__4E664295_glfw_function@h DB 01H -__64C0EF11_StgSharpNative@h DB 01H -__2C019110_load_glfw@c DB 01H -msvcjmc ENDS -PUBLIC load_glfw_functions -PUBLIC __JustMyCode_Default -EXTRN glfwInit:PROC -EXTRN glfwTerminate:PROC -EXTRN glfwInitHint:PROC -EXTRN glfwGetVersion:PROC -EXTRN glfwGetVersionString:PROC -EXTRN glfwGetError:PROC -EXTRN glfwSetErrorCallback:PROC -EXTRN glfwGetMonitors:PROC -EXTRN glfwGetPrimaryMonitor:PROC -EXTRN glfwGetMonitorPos:PROC -EXTRN glfwGetMonitorWorkarea:PROC -EXTRN glfwGetMonitorPhysicalSize:PROC -EXTRN glfwGetMonitorContentScale:PROC -EXTRN glfwGetMonitorName:PROC -EXTRN glfwSetMonitorUserPointer:PROC -EXTRN glfwGetMonitorUserPointer:PROC -EXTRN glfwSetMonitorCallback:PROC -EXTRN glfwGetVideoModes:PROC -EXTRN glfwGetVideoMode:PROC -EXTRN glfwSetGamma:PROC -EXTRN glfwGetGammaRamp:PROC -EXTRN glfwSetGammaRamp:PROC -EXTRN glfwDefaultWindowHints:PROC -EXTRN glfwWindowHint:PROC -EXTRN glfwWindowHintString:PROC -EXTRN glfwCreateWindow:PROC -EXTRN glfwDestroyWindow:PROC -EXTRN glfwWindowShouldClose:PROC -EXTRN glfwSetWindowShouldClose:PROC -EXTRN glfwSetWindowTitle:PROC -EXTRN glfwSetWindowIcon:PROC -EXTRN glfwGetWindowPos:PROC -EXTRN glfwSetWindowPos:PROC -EXTRN glfwGetWindowSize:PROC -EXTRN glfwSetWindowSizeLimits:PROC -EXTRN glfwSetWindowAspectRatio:PROC -EXTRN glfwSetWindowSize:PROC -EXTRN glfwGetFramebufferSize:PROC -EXTRN glfwGetWindowFrameSize:PROC -EXTRN glfwGetWindowContentScale:PROC -EXTRN glfwGetWindowOpacity:PROC -EXTRN glfwSetWindowOpacity:PROC -EXTRN glfwIconifyWindow:PROC -EXTRN glfwRestoreWindow:PROC -EXTRN glfwMaximizeWindow:PROC -EXTRN glfwShowWindow:PROC -EXTRN glfwHideWindow:PROC -EXTRN glfwFocusWindow:PROC -EXTRN glfwRequestWindowAttention:PROC -EXTRN glfwGetWindowMonitor:PROC -EXTRN glfwSetWindowMonitor:PROC -EXTRN glfwGetWindowAttrib:PROC -EXTRN glfwSetWindowAttrib:PROC -EXTRN glfwSetWindowUserPointer:PROC -EXTRN glfwGetWindowUserPointer:PROC -EXTRN glfwSetWindowPosCallback:PROC -EXTRN glfwSetWindowSizeCallback:PROC -EXTRN glfwSetWindowCloseCallback:PROC -EXTRN glfwSetWindowRefreshCallback:PROC -EXTRN glfwSetWindowFocusCallback:PROC -EXTRN glfwSetWindowIconifyCallback:PROC -EXTRN glfwSetWindowMaximizeCallback:PROC -EXTRN glfwSetFramebufferSizeCallback:PROC -EXTRN glfwSetWindowContentScaleCallback:PROC -EXTRN glfwPollEvents:PROC -EXTRN glfwWaitEvents:PROC -EXTRN glfwWaitEventsTimeout:PROC -EXTRN glfwPostEmptyEvent:PROC -EXTRN glfwGetInputMode:PROC -EXTRN glfwSetInputMode:PROC -EXTRN glfwRawMouseMotionSupported:PROC -EXTRN glfwGetKeyName:PROC -EXTRN glfwGetKeyScancode:PROC -EXTRN glfwGetKey:PROC -EXTRN glfwGetMouseButton:PROC -EXTRN glfwGetCursorPos:PROC -EXTRN glfwSetCursorPos:PROC -EXTRN glfwCreateCursor:PROC -EXTRN glfwCreateStandardCursor:PROC -EXTRN glfwDestroyCursor:PROC -EXTRN glfwSetCursor:PROC -EXTRN glfwSetKeyCallback:PROC -EXTRN glfwSetCharCallback:PROC -EXTRN glfwSetCharModsCallback:PROC -EXTRN glfwSetMouseButtonCallback:PROC -EXTRN glfwSetCursorPosCallback:PROC -EXTRN glfwSetCursorEnterCallback:PROC -EXTRN glfwSetScrollCallback:PROC -EXTRN glfwSetDropCallback:PROC -EXTRN glfwJoystickPresent:PROC -EXTRN glfwGetJoystickAxes:PROC -EXTRN glfwGetJoystickButtons:PROC -EXTRN glfwGetJoystickHats:PROC -EXTRN glfwGetJoystickName:PROC -EXTRN glfwGetJoystickGUID:PROC -EXTRN glfwSetJoystickUserPointer:PROC -EXTRN glfwGetJoystickUserPointer:PROC -EXTRN glfwJoystickIsGamepad:PROC -EXTRN glfwSetJoystickCallback:PROC -EXTRN glfwUpdateGamepadMappings:PROC -EXTRN glfwGetGamepadName:PROC -EXTRN glfwGetGamepadState:PROC -EXTRN glfwSetClipboardString:PROC -EXTRN glfwGetClipboardString:PROC -EXTRN glfwGetTime:PROC -EXTRN glfwSetTime:PROC -EXTRN glfwGetTimerValue:PROC -EXTRN glfwGetTimerFrequency:PROC -EXTRN glfwMakeContextCurrent:PROC -EXTRN glfwGetCurrentContext:PROC -EXTRN glfwSwapBuffers:PROC -EXTRN glfwSwapInterval:PROC -EXTRN glfwExtensionSupported:PROC -EXTRN glfwGetProcAddress:PROC -EXTRN glfwVulkanSupported:PROC -EXTRN glfwGetRequiredInstanceExtensions:PROC -EXTRN _RTC_InitBase:PROC -EXTRN _RTC_Shutdown:PROC -EXTRN __CheckForDebuggerJustMyCode:PROC -; COMDAT pdata -pdata SEGMENT -$pdata$load_glfw_functions DD imagerel $LN3 - DD imagerel $LN3+2429 - DD imagerel $unwind$load_glfw_functions -pdata ENDS -; COMDAT rtc$TMZ -rtc$TMZ SEGMENT -_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown -rtc$TMZ ENDS -; COMDAT rtc$IMZ -rtc$IMZ SEGMENT -_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase -rtc$IMZ ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$load_glfw_functions DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H -xdata ENDS -; Function compile flags: /Odt -; COMDAT __JustMyCode_Default -_TEXT SEGMENT -__JustMyCode_Default PROC ; COMDAT - 00000 c2 00 00 ret 0 -__JustMyCode_Default ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\load_glfw.c -; COMDAT load_glfw_functions -_TEXT SEGMENT -table$ = 224 -load_glfw_functions PROC ; COMDAT - -; 6 : { - -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__2C019110_load_glfw@c - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 7 : table->glfwCreateCursor = glfwCreateCursor; - - 00020 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00027 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwCreateCursor - 0002e 48 89 08 mov QWORD PTR [rax], rcx - -; 8 : table->glfwCreateStandardCursor = glfwCreateStandardCursor; - - 00031 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00038 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwCreateStandardCursor - 0003f 48 89 48 08 mov QWORD PTR [rax+8], rcx - -; 9 : table->glfwCreateWindow = glfwCreateWindow; - - 00043 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0004a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwCreateWindow - 00051 48 89 48 10 mov QWORD PTR [rax+16], rcx - -; 10 : table->glfwDefaultWindowHints = glfwDefaultWindowHints; - - 00055 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0005c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwDefaultWindowHints - 00063 48 89 48 18 mov QWORD PTR [rax+24], rcx - -; 11 : table->glfwDestroyCursor = glfwDestroyCursor; - - 00067 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0006e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwDestroyCursor - 00075 48 89 48 20 mov QWORD PTR [rax+32], rcx - -; 12 : table->glfwDestroyWindow = glfwDestroyWindow; - - 00079 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00080 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwDestroyWindow - 00087 48 89 48 28 mov QWORD PTR [rax+40], rcx - -; 13 : table->glfwExtensionSupported = glfwExtensionSupported; - - 0008b 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00092 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwExtensionSupported - 00099 48 89 48 30 mov QWORD PTR [rax+48], rcx - -; 14 : table->glfwFocusWindow = glfwFocusWindow; - - 0009d 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 000a4 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwFocusWindow - 000ab 48 89 48 38 mov QWORD PTR [rax+56], rcx - -; 15 : table->glfwGetClipboardString = glfwGetClipboardString; - - 000af 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 000b6 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetClipboardString - 000bd 48 89 48 40 mov QWORD PTR [rax+64], rcx - -; 16 : table->glfwGetCurrentContext = glfwGetCurrentContext; - - 000c1 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 000c8 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetCurrentContext - 000cf 48 89 48 48 mov QWORD PTR [rax+72], rcx - -; 17 : table->glfwGetCursorPos = glfwGetCursorPos; - - 000d3 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 000da 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetCursorPos - 000e1 48 89 48 50 mov QWORD PTR [rax+80], rcx - -; 18 : table->glfwGetError = glfwGetError; - - 000e5 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 000ec 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetError - 000f3 48 89 48 58 mov QWORD PTR [rax+88], rcx - -; 19 : table->glfwGetFrameBufferSize = glfwGetFramebufferSize; - - 000f7 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 000fe 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetFramebufferSize - 00105 48 89 48 60 mov QWORD PTR [rax+96], rcx - -; 20 : table->glfwGetGamepadName = glfwGetGamepadName; - - 00109 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00110 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetGamepadName - 00117 48 89 48 68 mov QWORD PTR [rax+104], rcx - -; 21 : table->glfwGetGamepadState = glfwGetGamepadState; - - 0011b 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00122 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetGamepadState - 00129 48 89 48 70 mov QWORD PTR [rax+112], rcx - -; 22 : table->glfwGetGammaRamp = glfwGetGammaRamp; - - 0012d 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00134 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetGammaRamp - 0013b 48 89 48 78 mov QWORD PTR [rax+120], rcx - -; 23 : table->glfwGetInputMode = glfwGetInputMode; - - 0013f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00146 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetInputMode - 0014d 48 89 88 80 00 - 00 00 mov QWORD PTR [rax+128], rcx - -; 24 : table->glfwGetJoystickAxes = glfwGetJoystickAxes; - - 00154 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0015b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetJoystickAxes - 00162 48 89 88 88 00 - 00 00 mov QWORD PTR [rax+136], rcx - -; 25 : table->glfwGetJoystickButtons = glfwGetJoystickButtons; - - 00169 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00170 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetJoystickButtons - 00177 48 89 88 90 00 - 00 00 mov QWORD PTR [rax+144], rcx - -; 26 : table->glfwGetJoystickGUID = glfwGetJoystickGUID; - - 0017e 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00185 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetJoystickGUID - 0018c 48 89 88 98 00 - 00 00 mov QWORD PTR [rax+152], rcx - -; 27 : table->glfwGetJoystickHats = glfwGetJoystickHats; - - 00193 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0019a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetJoystickHats - 001a1 48 89 88 a0 00 - 00 00 mov QWORD PTR [rax+160], rcx - -; 28 : table->glfwGetJoystickName = glfwGetJoystickName; - - 001a8 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 001af 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetJoystickName - 001b6 48 89 88 a8 00 - 00 00 mov QWORD PTR [rax+168], rcx - -; 29 : table->glfwGetJoystickUserPointer = glfwGetJoystickUserPointer; - - 001bd 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 001c4 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetJoystickUserPointer - 001cb 48 89 88 b0 00 - 00 00 mov QWORD PTR [rax+176], rcx - -; 30 : table->glfwGetKey = glfwGetKey; - - 001d2 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 001d9 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetKey - 001e0 48 89 88 b8 00 - 00 00 mov QWORD PTR [rax+184], rcx - -; 31 : table->glfwGetKeyName = glfwGetKeyName; - - 001e7 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 001ee 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetKeyName - 001f5 48 89 88 c0 00 - 00 00 mov QWORD PTR [rax+192], rcx - -; 32 : table->glfwGetKeyScancode = glfwGetKeyScancode; - - 001fc 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00203 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetKeyScancode - 0020a 48 89 88 c8 00 - 00 00 mov QWORD PTR [rax+200], rcx - -; 33 : table->glfwGetMonitorContentScale = glfwGetMonitorContentScale; - - 00211 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00218 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetMonitorContentScale - 0021f 48 89 88 d0 00 - 00 00 mov QWORD PTR [rax+208], rcx - -; 34 : table->glfwGetMonitorName = glfwGetMonitorName; - - 00226 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0022d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetMonitorName - 00234 48 89 88 d8 00 - 00 00 mov QWORD PTR [rax+216], rcx - -; 35 : table->glfwGetMonitorPhysicalSize = glfwGetMonitorPhysicalSize; - - 0023b 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00242 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetMonitorPhysicalSize - 00249 48 89 88 e0 00 - 00 00 mov QWORD PTR [rax+224], rcx - -; 36 : table->glfwGetMonitorPos = glfwGetMonitorPos; - - 00250 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00257 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetMonitorPos - 0025e 48 89 88 e8 00 - 00 00 mov QWORD PTR [rax+232], rcx - -; 37 : table->glfwGetMonitors = glfwGetMonitors; - - 00265 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0026c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetMonitors - 00273 48 89 88 f0 00 - 00 00 mov QWORD PTR [rax+240], rcx - -; 38 : table->glfwGetMonitorUserPointer = glfwGetMonitorUserPointer; - - 0027a 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00281 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetMonitorUserPointer - 00288 48 89 88 f8 00 - 00 00 mov QWORD PTR [rax+248], rcx - -; 39 : table->glfwGetMonitorWorkarea = glfwGetMonitorWorkarea; - - 0028f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00296 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetMonitorWorkarea - 0029d 48 89 88 00 01 - 00 00 mov QWORD PTR [rax+256], rcx - -; 40 : table->glfwGetMouseButton = glfwGetMouseButton; - - 002a4 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 002ab 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetMouseButton - 002b2 48 89 88 08 01 - 00 00 mov QWORD PTR [rax+264], rcx - -; 41 : table->glfwGetPrimaryMonitor = glfwGetPrimaryMonitor; - - 002b9 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 002c0 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetPrimaryMonitor - 002c7 48 89 88 10 01 - 00 00 mov QWORD PTR [rax+272], rcx - -; 42 : table->glfwGetProcAddress = glfwGetProcAddress; - - 002ce 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 002d5 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetProcAddress - 002dc 48 89 88 18 01 - 00 00 mov QWORD PTR [rax+280], rcx - -; 43 : table->glfwGetRequiredInstanceExtensions = glfwGetRequiredInstanceExtensions; - - 002e3 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 002ea 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetRequiredInstanceExtensions - 002f1 48 89 88 20 01 - 00 00 mov QWORD PTR [rax+288], rcx - -; 44 : table->glfwGetTime = glfwGetTime; - - 002f8 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 002ff 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetTime - 00306 48 89 88 28 01 - 00 00 mov QWORD PTR [rax+296], rcx - -; 45 : table->glfwGetTimerFrequency = glfwGetTimerFrequency; - - 0030d 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00314 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetTimerFrequency - 0031b 48 89 88 30 01 - 00 00 mov QWORD PTR [rax+304], rcx - -; 46 : table->glfwGetTimerValue = glfwGetTimerValue; - - 00322 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00329 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetTimerValue - 00330 48 89 88 38 01 - 00 00 mov QWORD PTR [rax+312], rcx - -; 47 : table->glfwGetVersion = glfwGetVersion; - - 00337 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0033e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetVersion - 00345 48 89 88 40 01 - 00 00 mov QWORD PTR [rax+320], rcx - -; 48 : table->glfwGetVersionString = glfwGetVersionString; - - 0034c 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00353 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetVersionString - 0035a 48 89 88 48 01 - 00 00 mov QWORD PTR [rax+328], rcx - -; 49 : table->glfwGetVideoMode = glfwGetVideoMode; - - 00361 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00368 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetVideoMode - 0036f 48 89 88 50 01 - 00 00 mov QWORD PTR [rax+336], rcx - -; 50 : table->glfwGetVideoModes = glfwGetVideoModes; - - 00376 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0037d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetVideoModes - 00384 48 89 88 58 01 - 00 00 mov QWORD PTR [rax+344], rcx - -; 51 : table->glfwGetWindowAttrib = glfwGetWindowAttrib; - - 0038b 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00392 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetWindowAttrib - 00399 48 89 88 60 01 - 00 00 mov QWORD PTR [rax+352], rcx - -; 52 : table->glfwGetWindowContentScale = glfwGetWindowContentScale; - - 003a0 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 003a7 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetWindowContentScale - 003ae 48 89 88 68 01 - 00 00 mov QWORD PTR [rax+360], rcx - -; 53 : table->glfwGetWindowFrameSize = glfwGetWindowFrameSize; - - 003b5 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 003bc 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetWindowFrameSize - 003c3 48 89 88 70 01 - 00 00 mov QWORD PTR [rax+368], rcx - -; 54 : table->glfwGetWindowMonitor = glfwGetWindowMonitor; - - 003ca 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 003d1 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetWindowMonitor - 003d8 48 89 88 78 01 - 00 00 mov QWORD PTR [rax+376], rcx - -; 55 : table->glfwGetWindowOpacity = glfwGetWindowOpacity; - - 003df 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 003e6 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetWindowOpacity - 003ed 48 89 88 80 01 - 00 00 mov QWORD PTR [rax+384], rcx - -; 56 : table->glfwGetWindowPos = glfwGetWindowPos; - - 003f4 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 003fb 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetWindowPos - 00402 48 89 88 88 01 - 00 00 mov QWORD PTR [rax+392], rcx - -; 57 : table->glfwGetWindowSize = glfwGetWindowSize; - - 00409 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00410 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetWindowSize - 00417 48 89 88 90 01 - 00 00 mov QWORD PTR [rax+400], rcx - -; 58 : table->glfwGetWindowUserPointer = glfwGetWindowUserPointer; - - 0041e 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00425 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwGetWindowUserPointer - 0042c 48 89 88 98 01 - 00 00 mov QWORD PTR [rax+408], rcx - -; 59 : table->glfwHideWindow = glfwHideWindow; - - 00433 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0043a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwHideWindow - 00441 48 89 88 a0 01 - 00 00 mov QWORD PTR [rax+416], rcx - -; 60 : table->glfwIconifyWindow = glfwIconifyWindow; - - 00448 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0044f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwIconifyWindow - 00456 48 89 88 a8 01 - 00 00 mov QWORD PTR [rax+424], rcx - -; 61 : table->glfwInit = glfwInit; - - 0045d 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00464 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwInit - 0046b 48 89 88 b0 01 - 00 00 mov QWORD PTR [rax+432], rcx - -; 62 : table->glfwInitHint = glfwInitHint; - - 00472 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00479 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwInitHint - 00480 48 89 88 b8 01 - 00 00 mov QWORD PTR [rax+440], rcx - -; 63 : table->glfwJoystickIsGamePad = glfwJoystickIsGamepad; - - 00487 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0048e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwJoystickIsGamepad - 00495 48 89 88 c0 01 - 00 00 mov QWORD PTR [rax+448], rcx - -; 64 : table->glfwJoystickPresent = glfwJoystickPresent; - - 0049c 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 004a3 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwJoystickPresent - 004aa 48 89 88 c8 01 - 00 00 mov QWORD PTR [rax+456], rcx - -; 65 : table->glfwMakeContextCurrent = glfwMakeContextCurrent; - - 004b1 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 004b8 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwMakeContextCurrent - 004bf 48 89 88 d0 01 - 00 00 mov QWORD PTR [rax+464], rcx - -; 66 : table->glfwMaximizeWindow = glfwMaximizeWindow; - - 004c6 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 004cd 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwMaximizeWindow - 004d4 48 89 88 d8 01 - 00 00 mov QWORD PTR [rax+472], rcx - -; 67 : table->glfwPollEvents = glfwPollEvents; - - 004db 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 004e2 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwPollEvents - 004e9 48 89 88 e0 01 - 00 00 mov QWORD PTR [rax+480], rcx - -; 68 : table->glfwPostEmptyEvent = glfwPostEmptyEvent; - - 004f0 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 004f7 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwPostEmptyEvent - 004fe 48 89 88 e8 01 - 00 00 mov QWORD PTR [rax+488], rcx - -; 69 : table->glfwRawMouseMotionSupported = glfwRawMouseMotionSupported; - - 00505 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0050c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwRawMouseMotionSupported - 00513 48 89 88 f0 01 - 00 00 mov QWORD PTR [rax+496], rcx - -; 70 : table->glfwRequestWindowAttention = glfwRequestWindowAttention; - - 0051a 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00521 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwRequestWindowAttention - 00528 48 89 88 f8 01 - 00 00 mov QWORD PTR [rax+504], rcx - -; 71 : table->glfwRestoreWindow = glfwRestoreWindow; - - 0052f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00536 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwRestoreWindow - 0053d 48 89 88 00 02 - 00 00 mov QWORD PTR [rax+512], rcx - -; 72 : table->glfwSetCharCallback = glfwSetCharCallback; - - 00544 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0054b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetCharCallback - 00552 48 89 88 08 02 - 00 00 mov QWORD PTR [rax+520], rcx - -; 73 : table->glfwSetCharModsCallback = glfwSetCharModsCallback; - - 00559 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00560 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetCharModsCallback - 00567 48 89 88 10 02 - 00 00 mov QWORD PTR [rax+528], rcx - -; 74 : table->glfwSetClipboardString = glfwSetClipboardString; - - 0056e 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00575 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetClipboardString - 0057c 48 89 88 18 02 - 00 00 mov QWORD PTR [rax+536], rcx - -; 75 : table->glfwSetCursor = glfwSetCursor; - - 00583 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0058a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetCursor - 00591 48 89 88 20 02 - 00 00 mov QWORD PTR [rax+544], rcx - -; 76 : table->glfwSetCursorEnterCallback = glfwSetCursorEnterCallback; - - 00598 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0059f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetCursorEnterCallback - 005a6 48 89 88 28 02 - 00 00 mov QWORD PTR [rax+552], rcx - -; 77 : table->glfwSetCursorPos = glfwSetCursorPos; - - 005ad 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 005b4 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetCursorPos - 005bb 48 89 88 30 02 - 00 00 mov QWORD PTR [rax+560], rcx - -; 78 : table->glfwSetCursorPosCallback = glfwSetCursorPosCallback; - - 005c2 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 005c9 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetCursorPosCallback - 005d0 48 89 88 38 02 - 00 00 mov QWORD PTR [rax+568], rcx - -; 79 : table->glfwSetDropCallback = glfwSetDropCallback; - - 005d7 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 005de 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetDropCallback - 005e5 48 89 88 40 02 - 00 00 mov QWORD PTR [rax+576], rcx - -; 80 : table->glfwSetErrorCallback = glfwSetErrorCallback; - - 005ec 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 005f3 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetErrorCallback - 005fa 48 89 88 48 02 - 00 00 mov QWORD PTR [rax+584], rcx - -; 81 : table->glfwSetFramebufferSizeCallback = glfwSetFramebufferSizeCallback; - - 00601 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00608 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetFramebufferSizeCallback - 0060f 48 89 88 50 02 - 00 00 mov QWORD PTR [rax+592], rcx - -; 82 : table->glfwSetGamma = glfwSetGamma; - - 00616 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0061d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetGamma - 00624 48 89 88 58 02 - 00 00 mov QWORD PTR [rax+600], rcx - -; 83 : table->glfwSetGammaRamp = glfwSetGammaRamp; - - 0062b 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00632 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetGammaRamp - 00639 48 89 88 60 02 - 00 00 mov QWORD PTR [rax+608], rcx - -; 84 : table->glfwSetInputMode = glfwSetInputMode; - - 00640 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00647 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetInputMode - 0064e 48 89 88 68 02 - 00 00 mov QWORD PTR [rax+616], rcx - -; 85 : table->glfwSetJoystickCallback = glfwSetJoystickCallback; - - 00655 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0065c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetJoystickCallback - 00663 48 89 88 70 02 - 00 00 mov QWORD PTR [rax+624], rcx - -; 86 : table->glfwSetJoystickUserPointer = glfwSetJoystickUserPointer; - - 0066a 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00671 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetJoystickUserPointer - 00678 48 89 88 78 02 - 00 00 mov QWORD PTR [rax+632], rcx - -; 87 : table->glfwSetKeyCallback = glfwSetKeyCallback; - - 0067f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00686 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetKeyCallback - 0068d 48 89 88 80 02 - 00 00 mov QWORD PTR [rax+640], rcx - -; 88 : table->glfwSetMonitorCallback = glfwSetMonitorCallback; - - 00694 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0069b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetMonitorCallback - 006a2 48 89 88 88 02 - 00 00 mov QWORD PTR [rax+648], rcx - -; 89 : table->glfwSetMonitorUserPointer = glfwSetMonitorUserPointer; - - 006a9 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 006b0 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetMonitorUserPointer - 006b7 48 89 88 90 02 - 00 00 mov QWORD PTR [rax+656], rcx - -; 90 : table->glfwSetMouseButtonCallback = glfwSetMouseButtonCallback; - - 006be 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 006c5 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetMouseButtonCallback - 006cc 48 89 88 98 02 - 00 00 mov QWORD PTR [rax+664], rcx - -; 91 : table->glfwSetScrollCallback = glfwSetScrollCallback; - - 006d3 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 006da 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetScrollCallback - 006e1 48 89 88 a0 02 - 00 00 mov QWORD PTR [rax+672], rcx - -; 92 : table->glfwSetTime = glfwSetTime; - - 006e8 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 006ef 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetTime - 006f6 48 89 88 a8 02 - 00 00 mov QWORD PTR [rax+680], rcx - -; 93 : table->glfwSetWindowAspectRatio = glfwSetWindowAspectRatio; - - 006fd 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00704 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetWindowAspectRatio - 0070b 48 89 88 b0 02 - 00 00 mov QWORD PTR [rax+688], rcx - -; 94 : table->glfwSetWindowAttrib = glfwSetWindowAttrib; - - 00712 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00719 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetWindowAttrib - 00720 48 89 88 b8 02 - 00 00 mov QWORD PTR [rax+696], rcx - -; 95 : table->glfwSetWindowCloseCallback = glfwSetWindowCloseCallback; - - 00727 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0072e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetWindowCloseCallback - 00735 48 89 88 c0 02 - 00 00 mov QWORD PTR [rax+704], rcx - -; 96 : table->glfwSetWindowContentScaleCallback = glfwSetWindowContentScaleCallback; - - 0073c 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00743 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetWindowContentScaleCallback - 0074a 48 89 88 c8 02 - 00 00 mov QWORD PTR [rax+712], rcx - -; 97 : table->glfwSetWindowFocusCallback = glfwSetWindowFocusCallback; - - 00751 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00758 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetWindowFocusCallback - 0075f 48 89 88 d0 02 - 00 00 mov QWORD PTR [rax+720], rcx - -; 98 : table->glfwSetWindowIcon = glfwSetWindowIcon; - - 00766 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0076d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetWindowIcon - 00774 48 89 88 d8 02 - 00 00 mov QWORD PTR [rax+728], rcx - -; 99 : table->glfwSetWindowIconifyCallback = glfwSetWindowIconifyCallback; - - 0077b 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00782 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetWindowIconifyCallback - 00789 48 89 88 e0 02 - 00 00 mov QWORD PTR [rax+736], rcx - -; 100 : table->glfwSetWindowMaximizeCallback = glfwSetWindowMaximizeCallback; - - 00790 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00797 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetWindowMaximizeCallback - 0079e 48 89 88 e8 02 - 00 00 mov QWORD PTR [rax+744], rcx - -; 101 : table->glfwSetWindowMonitor = glfwSetWindowMonitor; - - 007a5 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 007ac 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetWindowMonitor - 007b3 48 89 88 f0 02 - 00 00 mov QWORD PTR [rax+752], rcx - -; 102 : table->glfwSetWindowOpacity = glfwSetWindowOpacity; - - 007ba 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 007c1 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetWindowOpacity - 007c8 48 89 88 f8 02 - 00 00 mov QWORD PTR [rax+760], rcx - -; 103 : table->glfwSetWindowPos = glfwSetWindowPos; - - 007cf 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 007d6 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetWindowPos - 007dd 48 89 88 00 03 - 00 00 mov QWORD PTR [rax+768], rcx - -; 104 : table->glfwSetWindowPosCallback = glfwSetWindowPosCallback; - - 007e4 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 007eb 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetWindowPosCallback - 007f2 48 89 88 08 03 - 00 00 mov QWORD PTR [rax+776], rcx - -; 105 : table->glfwSetWindowRefreshCallback = glfwSetWindowRefreshCallback; - - 007f9 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00800 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetWindowRefreshCallback - 00807 48 89 88 10 03 - 00 00 mov QWORD PTR [rax+784], rcx - -; 106 : table->glfwSetWindowShouldClose = glfwSetWindowShouldClose; - - 0080e 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00815 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetWindowShouldClose - 0081c 48 89 88 18 03 - 00 00 mov QWORD PTR [rax+792], rcx - -; 107 : table->glfwSetWindowSize = glfwSetWindowSize; - - 00823 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0082a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetWindowSize - 00831 48 89 88 20 03 - 00 00 mov QWORD PTR [rax+800], rcx - -; 108 : table->glfwSetWindowSizeCallback = glfwSetWindowSizeCallback; - - 00838 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0083f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetWindowSizeCallback - 00846 48 89 88 28 03 - 00 00 mov QWORD PTR [rax+808], rcx - -; 109 : table->glfwSetWindowSizeLimits = glfwSetWindowSizeLimits; - - 0084d 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00854 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetWindowSizeLimits - 0085b 48 89 88 30 03 - 00 00 mov QWORD PTR [rax+816], rcx - -; 110 : table->glfwSetWindowTitle = glfwSetWindowTitle; - - 00862 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00869 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetWindowTitle - 00870 48 89 88 38 03 - 00 00 mov QWORD PTR [rax+824], rcx - -; 111 : table->glfwSetWindowUserPointer = glfwSetWindowUserPointer; - - 00877 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0087e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSetWindowUserPointer - 00885 48 89 88 40 03 - 00 00 mov QWORD PTR [rax+832], rcx - -; 112 : table->glfwShowWindow = glfwShowWindow; - - 0088c 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00893 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwShowWindow - 0089a 48 89 88 48 03 - 00 00 mov QWORD PTR [rax+840], rcx - -; 113 : table->glfwSwapBuffers = glfwSwapBuffers; - - 008a1 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 008a8 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSwapBuffers - 008af 48 89 88 50 03 - 00 00 mov QWORD PTR [rax+848], rcx - -; 114 : table->glfwSwapInterval = glfwSwapInterval; - - 008b6 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 008bd 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwSwapInterval - 008c4 48 89 88 58 03 - 00 00 mov QWORD PTR [rax+856], rcx - -; 115 : table->glfwTerminate = glfwTerminate; - - 008cb 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 008d2 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwTerminate - 008d9 48 89 88 60 03 - 00 00 mov QWORD PTR [rax+864], rcx - -; 116 : table->glfwUpdateGamePadMappings = glfwUpdateGamepadMappings; - - 008e0 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 008e7 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwUpdateGamepadMappings - 008ee 48 89 88 68 03 - 00 00 mov QWORD PTR [rax+872], rcx - -; 117 : table->glfwVulkanSupported = glfwVulkanSupported; - - 008f5 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 008fc 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwVulkanSupported - 00903 48 89 88 70 03 - 00 00 mov QWORD PTR [rax+880], rcx - -; 118 : table->glfwWaitEvents = glfwWaitEvents; - - 0090a 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00911 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwWaitEvents - 00918 48 89 88 78 03 - 00 00 mov QWORD PTR [rax+888], rcx - -; 119 : table->glfwWaitEventsTimeout = glfwWaitEventsTimeout; - - 0091f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00926 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwWaitEventsTimeout - 0092d 48 89 88 80 03 - 00 00 mov QWORD PTR [rax+896], rcx - -; 120 : table->glfwWindowHint = glfwWindowHint; - - 00934 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 0093b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwWindowHint - 00942 48 89 88 88 03 - 00 00 mov QWORD PTR [rax+904], rcx - -; 121 : table->glfwWindowHintString = glfwWindowHintString; - - 00949 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00950 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwWindowHintString - 00957 48 89 88 90 03 - 00 00 mov QWORD PTR [rax+912], rcx - -; 122 : table->glfwWindowShouldClose = glfwWindowShouldClose; - - 0095e 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR table$[rbp] - 00965 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:glfwWindowShouldClose - 0096c 48 89 88 98 03 - 00 00 mov QWORD PTR [rax+920], rcx - -; 123 : } - - 00973 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0097a 5f pop rdi - 0097b 5d pop rbp - 0097c c3 ret 0 -load_glfw_functions ENDP -_TEXT ENDS -END diff --git a/obj/StgSharp.Native/Debug/x64/load_glfw.nativecodeanalysis.sarif b/obj/StgSharp.Native/Debug/x64/load_glfw.nativecodeanalysis.sarif deleted file mode 100644 index 96a4ac83..00000000 --- a/obj/StgSharp.Native/Debug/x64/load_glfw.nativecodeanalysis.sarif +++ /dev/null @@ -1,107 +0,0 @@ -{ - "version": "2.1.0", - "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", - "runs": [ - { - "results": [], - "tool": { - "driver": { - "name": "PREfast", - "fullName": "MSVC Code Analysis", - "version": "14.44.35220.0", - "informationUri": "https://aka.ms/cpp/ca" - } - }, - "invocations": [ - { - "executionSuccessful": true - } - ], - "artifacts": [ - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-src/load_glfw.c" - }, - "roles": [ - "analysisTarget" - ], - "hashes": { - "sha-256": "17d82e2b6a8411d940ffc1769b7d90a683af9d1c0fe2d58cda2d18400337fdf5" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/stgsharpnative.h" - }, - "hashes": { - "sha-256": "5eee6b3faf7bf2247fe44898b0fcb71794c346ae2f0b58953e1632a49c1b6c4e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_internal.h" - }, - "hashes": { - "sha-256": "7430f5e8582c672b79e266834c290e4d426ce44b7bd3b7e5534f201a48ff6df9" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_target.h" - }, - "hashes": { - "sha-256": "b8c543a09db7bd21a2b409476024fa6bec6a5218d88ca036d15584ed453ceb91" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/stbi/stb_image.h" - }, - "hashes": { - "sha-256": "c45e3ef56a7d946654740f02e25fcb99a819861155ad1173349a289f2a000ce2" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/gl.h" - }, - "hashes": { - "sha-256": "c9d0960c919f9ef4cfa6449f2b0c00f2ad8286b420e01ee7ec34b40c618392fc" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/khrplatform.h" - }, - "hashes": { - "sha-256": "f5b69ed6a7bef6651526abb2d1263811d59acdba7a29368bb9be1a0f9e80160f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/wgl.h" - }, - "hashes": { - "sha-256": "86d6c58acb0a92b35ce8d94d6817fcec3f73d9e147e8621f468f143db1bbd81f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/glfw/glfw3.h" - }, - "hashes": { - "sha-256": "85c584857dddd780c131940ed69cd516c2b60d61664df9cb254710c3602c1008" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/glfw_function.h" - }, - "hashes": { - "sha-256": "4baa73f465e3e347fc0ad0ff666a6db2e83e749acd770f4bee02c12a7b9ec36e" - } - } - ] - } - ] -} \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/load_glfw.nativecodeanalysis.xml b/obj/StgSharp.Native/Debug/x64/load_glfw.nativecodeanalysis.xml deleted file mode 100644 index dcdf0885..00000000 --- a/obj/StgSharp.Native/Debug/x64/load_glfw.nativecodeanalysis.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/load_glfw.obj b/obj/StgSharp.Native/Debug/x64/load_glfw.obj deleted file mode 100644 index 690565d2..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/load_glfw.obj and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/load_glfw.sbr b/obj/StgSharp.Native/Debug/x64/load_glfw.sbr deleted file mode 100644 index 5c0cf30d..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/load_glfw.sbr and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/load_intrinsic.x86.cod b/obj/StgSharp.Native/Debug/x64/load_intrinsic.x86.cod deleted file mode 100644 index 1dc01b0a..00000000 --- a/obj/StgSharp.Native/Debug/x64/load_intrinsic.x86.cod +++ /dev/null @@ -1,1320 +0,0 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.44.35220.0 - -include listing.inc - -INCLUDELIB MSVCRTD -INCLUDELIB OLDNAMES - -_DATA SEGMENT -COMM infolog:BYTE:0200H -_DATA ENDS -msvcjmc SEGMENT -__5C8CA4D3_mmintrin@h DB 01H -__8C83BECC_concurrencysal@h DB 01H -__608E3340_sal@h DB 01H -__FB67E29A_vadefs@h DB 01H -__1D1B619C_vcruntime@h DB 01H -__735960E1_corecrt@h DB 01H -__211DB995_corecrt_malloc@h DB 01H -__7CD62D9E_malloc@h DB 01H -__9DCE0DC8_xmmintrin@h DB 01H -__4C2AD0C7_winpackagefamily@h DB 01H -__9DED9ED1_winapifamily@h DB 01H -__12FEDF4E_sdkddkver@h DB 01H -__9BAEE128_excpt@h DB 01H -__B7B53233_stdarg@h DB 01H -__6B04FCB3_specstrings_undef@h DB 01H -__F4027AF7_specstrings_strict@h DB 01H -__B90340D4_sdv_driverspecs@h DB 01H -__BFFF5AD3_driverspecs@h DB 01H -__32847078_specstrings@h DB 01H -__108B2620_corecrt_wctype@h DB 01H -__6CD6613D_ctype@h DB 01H -__30902A1F_kernelspecs@h DB 01H -__376FD5CA_basetsd@h DB 01H -__13DE2371_errno@h DB 01H -__8C6AE390_vcruntime_string@h DB 01H -__8ACB2152_corecrt_memcpy_s@h DB 01H -__EA6C9D17_corecrt_memory@h DB 01H -__0DF2AF52_corecrt_wstring@h DB 01H -__6E889ECC_string@h DB 01H -__9BEDF4DE_guiddef@h DB 01H -__51BFD2FE_pshpack4@h DB 01H -__31652CEA_poppack@h DB 01H -__5532AE4C_pshpack2@h DB 01H -__58A52B9A_pshpack8@h DB 01H -__57741015_pshpack1@h DB 01H -__CDE68C90_apiset@h DB 01H -__0BF06E8D_ktmtypes@h DB 01H -__40C200C0_winnt@h DB 01H -__9336F789_minwindef@h DB 01H -__55136115_windef@h DB 01H -__32205BF0_apisetcconv@h DB 01H -__B48FDEA0_minwinbase@h DB 01H -__3551B028_apiquery2@h DB 01H -__65BE04AA_processenv@h DB 01H -__4767CA46_fileapi@h DB 01H -__282E6C4B_fileapifromapp@h DB 01H -__393AF12C_debugapi@h DB 01H -__EBC502B8_utilapiset@h DB 01H -__1EAD8C69_handleapi@h DB 01H -__D8EF9B29_errhandlingapi@h DB 01H -__97FC1204_fibersapi@h DB 01H -__27448220_namedpipeapi@h DB 01H -__6EA33B2A_profileapi@h DB 01H -__EAC6F673_heapapi@h DB 01H -__D64EEA5A_ioapiset@h DB 01H -__144BD4B6_synchapi@h DB 01H -__03B1C640_interlockedapi@h DB 01H -__DC64CB38_processthreadsapi@h DB 01H -__D719B518_sysinfoapi@h DB 01H -__410385B1_memoryapi@h DB 01H -__C1AD45EF_enclaveapi@h DB 01H -__F4C3AA32_threadpoollegacyapiset@h DB 01H -__AC5A7A9F_threadpoolapiset@h DB 01H -__F5254B21_jobapi@h DB 01H -__BCEA6EE8_jobapi2@h DB 01H -__D18ACE72_wow64apiset@h DB 01H -__669B0D4A_libloaderapi@h DB 01H -__645F7034_securitybaseapi@h DB 01H -__67E58557_namespaceapi@h DB 01H -__599D9D3A_systemtopologyapi@h DB 01H -__2337E373_processtopologyapi@h DB 01H -__02BFF239_securityappcontainer@h DB 01H -__9C196272_realtimeapiset@h DB 01H -__5AB313A4_winerror@h DB 01H -__B7E7187B_timezoneapi@h DB 01H -__6DE9EB6F_winbase@h DB 01H -__56B2AFF2_wingdi@h DB 01H -__BA1161A9_tvout@h DB 01H -__0501A018_winuser@h DB 01H -__EF12FA99_datetimeapi@h DB 01H -__8FA7C3CA_winnls@h DB 01H -__390F0C47_stringapiset@h DB 01H -__28605B0A_wincontypes@h DB 01H -__BFBDE86D_consoleapi@h DB 01H -__C3CAFBF0_consoleapi2@h DB 01H -__C20891C7_consoleapi3@h DB 01H -__717C98B6_wincon@h DB 01H -__2884C177_verrsrc@h DB 01H -__A3FD3A34_winver@h DB 01H -__6F8AD9F1_reason@h DB 01H -__4C90FD6F_winreg@h DB 01H -__68AFEBAD_wnnc@h DB 01H -__5A7AB086_winnetwk@h DB 01H -__2FE8A10C_stralign@h DB 01H -__34558472_winsvc@h DB 01H -__058845F1_mcx@h DB 01H -__7F16006B_ime_cmodes@h DB 01H -__0A3AF599_imm@h DB 01H -__9349FE86_windows@h DB 01H -__639A050C_sn_internal@h DB 01H -__836A8CFC_stdint@h DB 01H -__714FE6D7_sn_target@h DB 01H -__60B45B40_corecrt_stdio_config@h DB 01H -__CFA3741E_corecrt_wstdio@h DB 01H -__B3FE3303_stdio@h DB 01H -__955456CD_stddef@h DB 01H -__99AED4FB_corecrt_search@h DB 01H -__8B813BF6_corecrt_wstdlib@h DB 01H -__3D1CA2C3_limits@h DB 01H -__E8FB0A68_stdlib@h DB 01H -__F562FA57_stb_image@h DB 01H -__C95DC661_khrplatform@h DB 01H -__6C577136_gl@h DB 01H -__EE638A2C_wgl@h DB 01H -__8EF9E35C_glfw3@h DB 01H -__F8AC8404_emmintrin@h DB 01H -__270DEC8D_pmmintrin@h DB 01H -__97D49F0F_tmmintrin@h DB 01H -__BEEF8A8C_smmintrin@h DB 01H -__DB8D0340_nmmintrin@h DB 01H -__0E36F90E_wmmintrin@h DB 01H -__C5A2B409_zmmintrin@h DB 01H -__F2B616C3_immintrin@h DB 01H -__9FB25DBE_assert@h DB 01H -__4E664295_glfw_function@h DB 01H -__64C0EF11_StgSharpNative@h DB 01H -__E2EC0CAF_sn_matkernel@h DB 01H -__47E843D2_intrin0@inl@h DB 01H -__130964FF_setjmp@h DB 01H -__4875F786_ammintrin@h DB 01H -__353FD888_intrin@h DB 01H -__5FE1E9E3_isa_availability@h DB 01H -__AA840D82_sn_intrinsic@h DB 01H -__CE29950A_sn_intrincontext@x86@h DB 01H -__518EAA70_load_intrinsic@x86@c DB 01H -msvcjmc ENDS -PUBLIC load_intrinsic_function -PUBLIC __JustMyCode_Default -PUBLIC ??_C@_1HI@EDBAMNGI@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ ; `string' -PUBLIC ??_C@_1DE@BIMGEDNO@?$AAi?$AAn?$AAt?$AAr?$AAi?$AAn?$AAs?$AAi?$AAc?$AA_?$AAc?$AAo?$AAn?$AAt?$AAe@ ; `string' -EXTRN __imp__wassert:PROC -EXTRN sn_get_simd_level_global:PROC -EXTRN f32_normalize:PROC -EXTRN float_buf_add_sse:PROC -EXTRN float_buf_add_avx:PROC -EXTRN float_buf_add_512:PROC -EXTRN double_buf_add_sse:PROC -EXTRN double_buf_add_avx:PROC -EXTRN double_buf_add_512:PROC -EXTRN float_buf_sub_sse:PROC -EXTRN float_buf_sub_avx:PROC -EXTRN float_buf_sub_512:PROC -EXTRN double_buf_sub_sse:PROC -EXTRN double_buf_sub_avx:PROC -EXTRN double_buf_sub_512:PROC -EXTRN float_kernel_transpose_sse:PROC -EXTRN float_kernel_transpose_avx:PROC -EXTRN float_kernel_transpose_512:PROC -EXTRN float_buf_scalar_mul_sse:PROC -EXTRN float_buf_scalar_mul_avx:PROC -EXTRN float_buf_scalar_mul_512:PROC -EXTRN double_buf_scalar_mul_sse:PROC -EXTRN double_buf_scalar_mul_avx:PROC -EXTRN double_buf_scalar_mul_512:PROC -EXTRN float_buf_fill_sse:PROC -EXTRN float_buf_fill_avx:PROC -EXTRN float_buf_fill_512:PROC -EXTRN double_buf_fill_sse:PROC -EXTRN double_buf_fill_avx:PROC -EXTRN double_buf_fill_512:PROC -EXTRN float_pnl_clear_sse:PROC -EXTRN float_pnl_clear_avx:PROC -EXTRN float_pnl_clear_512:PROC -EXTRN double_pnl_clear_sse:PROC -EXTRN double_pnl_clear_avx:PROC -EXTRN double_pnl_clear_512:PROC -EXTRN float_kernel_fma_sse:PROC -EXTRN float_kernel_fma_avx:PROC -EXTRN float_kernel_fma_avx_fma:PROC -EXTRN float_kernel_fma_512:PROC -EXTRN double_kernel_fma_sse:PROC -EXTRN double_kernel_fma_avx:PROC -EXTRN double_kernel_fma_avx_fma:PROC -EXTRN double_kernel_fma_512:PROC -EXTRN float_kernel_tile_fma_sse:PROC -EXTRN float_kernel_tile_fma_avx:PROC -EXTRN float_kernel_tile_fma_avx_fma:PROC -EXTRN float_kernel_tile_fma_512:PROC -EXTRN double_kernel_tile_fma_sse:PROC -EXTRN double_kernel_tile_fma_avx:PROC -EXTRN double_kernel_tile_fma_avx_fma:PROC -EXTRN double_kernel_tile_fma_512:PROC -EXTRN factorial_simd_sse:PROC -EXTRN city_hash_simplify_sse:PROC -EXTRN index_pair_sse:PROC -EXTRN _RTC_CheckStackVars:PROC -EXTRN _RTC_InitBase:PROC -EXTRN _RTC_Shutdown:PROC -EXTRN __CheckForDebuggerJustMyCode:PROC -; COMDAT pdata -pdata SEGMENT -$pdata$load_intrinsic_function DD imagerel $LN13 - DD imagerel $LN13+282 - DD imagerel $unwind$load_intrinsic_function -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$load_intrinsic_sse DD imagerel load_intrinsic_sse - DD imagerel load_intrinsic_sse+613 - DD imagerel $unwind$load_intrinsic_sse -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$load_intrinsic_avx DD imagerel load_intrinsic_avx - DD imagerel load_intrinsic_avx+871 - DD imagerel $unwind$load_intrinsic_avx -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$load_intrinsic_512 DD imagerel load_intrinsic_512 - DD imagerel load_intrinsic_512+613 - DD imagerel $unwind$load_intrinsic_512 -pdata ENDS -; COMDAT rtc$TMZ -rtc$TMZ SEGMENT -_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown -rtc$TMZ ENDS -; COMDAT rtc$IMZ -rtc$IMZ SEGMENT -_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase -rtc$IMZ ENDS -; COMDAT ??_C@_1DE@BIMGEDNO@?$AAi?$AAn?$AAt?$AAr?$AAi?$AAn?$AAs?$AAi?$AAc?$AA_?$AAc?$AAo?$AAn?$AAt?$AAe@ -CONST SEGMENT -??_C@_1DE@BIMGEDNO@?$AAi?$AAn?$AAt?$AAr?$AAi?$AAn?$AAs?$AAi?$AAc?$AA_?$AAc?$AAo?$AAn?$AAt?$AAe@ DB 'i' - DB 00H, 'n', 00H, 't', 00H, 'r', 00H, 'i', 00H, 'n', 00H, 's', 00H - DB 'i', 00H, 'c', 00H, '_', 00H, 'c', 00H, 'o', 00H, 'n', 00H, 't' - DB 00H, 'e', 00H, 'x', 00H, 't', 00H, ' ', 00H, '!', 00H, '=', 00H - DB ' ', 00H, 'N', 00H, 'U', 00H, 'L', 00H, 'L', 00H, 00H, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_1HI@EDBAMNGI@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ -CONST SEGMENT -??_C@_1HI@EDBAMNGI@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ DB 'D' - DB 00H, ':', 00H, '\', 00H, 'p', 00H, 'l', 00H, 'a', 00H, 't', 00H - DB 'f', 00H, 'o', 00H, 'r', 00H, 'm', 00H, '-', 00H, 'd', 00H, 'e' - DB 00H, 'v', 00H, '\', 00H, 'S', 00H, 't', 00H, 'g', 00H, 'S', 00H - DB 'h', 00H, 'a', 00H, 'r', 00H, 'p', 00H, '.', 00H, 'N', 00H, 'a' - DB 00H, 't', 00H, 'i', 00H, 'v', 00H, 'e', 00H, '\', 00H, 's', 00H - DB 'n', 00H, '-', 00H, 's', 00H, 'r', 00H, 'c', 00H, '\', 00H, 'l' - DB 00H, 'o', 00H, 'a', 00H, 'd', 00H, '_', 00H, 'i', 00H, 'n', 00H - DB 't', 00H, 'r', 00H, 'i', 00H, 'n', 00H, 's', 00H, 'i', 00H, 'c' - DB 00H, '.', 00H, 'x', 00H, '8', 00H, '6', 00H, '.', 00H, 'c', 00H - DB 00H, 00H ; `string' -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$load_intrinsic_512 DD 025051801H - DD 01132318H - DD 0700c001dH - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$load_intrinsic_avx DD 025051801H - DD 01132318H - DD 0700c0029H - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$load_intrinsic_sse DD 025051801H - DD 01132318H - DD 0700c001dH - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$load_intrinsic_function DD 025053101H - DD 01132318H - DD 0700c0025H - DD 0500bH -xdata ENDS -; COMDAT CONST -CONST SEGMENT -load_intrinsic_function$rtcName$0 DB 073H - DB 069H - DB 06dH - DB 064H - DB 069H - DB 064H - DB 00H - ORG $+9 -load_intrinsic_function$rtcVarDesc DD 028H - DD 08H - DQ FLAT:load_intrinsic_function$rtcName$0 - ORG $+48 -load_intrinsic_function$rtcFrameData DD 01H - DD 00H - DQ FLAT:load_intrinsic_function$rtcVarDesc -CONST ENDS -; Function compile flags: /Odt -; COMDAT __JustMyCode_Default -_TEXT SEGMENT -__JustMyCode_Default PROC ; COMDAT - 00000 c2 00 00 ret 0 -__JustMyCode_Default ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\load_intrinsic.x86.c -; COMDAT load_intrinsic_512 -_TEXT SEGMENT -context$ = 224 -id$ = 232 -load_intrinsic_512 PROC ; COMDAT - -; 115 : { - - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__518EAA70_load_intrinsic@x86@c - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 - -; 116 : context->city_hash_simplify = city_hash_simplify_sse; - - 00025 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR context$[rbp] - 0002c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:city_hash_simplify_sse - 00033 48 89 08 mov QWORD PTR [rax], rcx - -; 117 : context->factorial_simd = factorial_simd_sse; - - 00036 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR context$[rbp] - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:factorial_simd_sse - 00044 48 89 48 08 mov QWORD PTR [rax+8], rcx - -; 118 : context->index_pair = index_pair_sse; - - 00048 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR context$[rbp] - 0004f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:index_pair_sse - 00056 48 89 48 10 mov QWORD PTR [rax+16], rcx - -; 119 : -; 120 : context->mat[F32].buffer_add = BUF_PROC(float, 512, , add); - - 0005a b8 48 00 00 00 mov eax, 72 ; 00000048H - 0005f 48 6b c0 00 imul rax, rax, 0 - 00063 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 0006a 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_buf_add_512 - 00071 48 89 54 01 20 mov QWORD PTR [rcx+rax+32], rdx - -; 121 : context->mat[F32].buffer_fill = BUF_PROC(float, 512, , fill); - - 00076 b8 48 00 00 00 mov eax, 72 ; 00000048H - 0007b 48 6b c0 00 imul rax, rax, 0 - 0007f 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00086 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_buf_fill_512 - 0008d 48 89 54 01 28 mov QWORD PTR [rcx+rax+40], rdx - -; 122 : context->mat[F32].buffer_scalar_mul = BUF_PROC(float, 512, , scalar_mul); - - 00092 b8 48 00 00 00 mov eax, 72 ; 00000048H - 00097 48 6b c0 00 imul rax, rax, 0 - 0009b 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 000a2 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_buf_scalar_mul_512 - 000a9 48 89 54 01 30 mov QWORD PTR [rcx+rax+48], rdx - -; 123 : context->mat[F32].buffer_sub = BUF_PROC(float, 512, , sub); - - 000ae b8 48 00 00 00 mov eax, 72 ; 00000048H - 000b3 48 6b c0 00 imul rax, rax, 0 - 000b7 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 000be 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_buf_sub_512 - 000c5 48 89 54 01 38 mov QWORD PTR [rcx+rax+56], rdx - -; 124 : context->mat[F32].buffer_transpose = KER_PROC(float, 512, , transpose); - - 000ca b8 48 00 00 00 mov eax, 72 ; 00000048H - 000cf 48 6b c0 00 imul rax, rax, 0 - 000d3 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 000da 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_kernel_transpose_512 - 000e1 48 89 54 01 40 mov QWORD PTR [rcx+rax+64], rdx - -; 125 : context->mat[F32].clear_panel = PNL_PROC(float, 512, , clear); - - 000e6 b8 48 00 00 00 mov eax, 72 ; 00000048H - 000eb 48 6b c0 00 imul rax, rax, 0 - 000ef 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 000f6 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_pnl_clear_512 - 000fd 48 89 54 01 48 mov QWORD PTR [rcx+rax+72], rdx - -; 126 : context->mat[F32].ker_fma = KER_PROC(float, 512, , fma); - - 00102 b8 48 00 00 00 mov eax, 72 ; 00000048H - 00107 48 6b c0 00 imul rax, rax, 0 - 0010b 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00112 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_kernel_fma_512 - 00119 48 89 54 01 50 mov QWORD PTR [rcx+rax+80], rdx - -; 127 : context->mat[F32].ker_tile_fma = KERTILE_PROC(float, 512, , fma); - - 0011e b8 48 00 00 00 mov eax, 72 ; 00000048H - 00123 48 6b c0 00 imul rax, rax, 0 - 00127 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 0012e 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_kernel_tile_fma_512 - 00135 48 89 54 01 58 mov QWORD PTR [rcx+rax+88], rdx - -; 128 : context->mat[F32].pivot = NULL; - - 0013a b8 48 00 00 00 mov eax, 72 ; 00000048H - 0013f 48 6b c0 00 imul rax, rax, 0 - 00143 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 0014a 48 c7 44 01 60 - 00 00 00 00 mov QWORD PTR [rcx+rax+96], 0 - -; 129 : -; 130 : context->mat[F64].buffer_add = BUF_PROC(double, 512, , add); - - 00153 b8 48 00 00 00 mov eax, 72 ; 00000048H - 00158 48 6b c0 01 imul rax, rax, 1 - 0015c 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00163 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:double_buf_add_512 - 0016a 48 89 54 01 20 mov QWORD PTR [rcx+rax+32], rdx - -; 131 : context->mat[F64].buffer_fill = BUF_PROC(double, 512, , fill); - - 0016f b8 48 00 00 00 mov eax, 72 ; 00000048H - 00174 48 6b c0 01 imul rax, rax, 1 - 00178 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 0017f 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:double_buf_fill_512 - 00186 48 89 54 01 28 mov QWORD PTR [rcx+rax+40], rdx - -; 132 : context->mat[F64].buffer_scalar_mul = BUF_PROC(double, 512, , scalar_mul); - - 0018b b8 48 00 00 00 mov eax, 72 ; 00000048H - 00190 48 6b c0 01 imul rax, rax, 1 - 00194 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 0019b 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:double_buf_scalar_mul_512 - 001a2 48 89 54 01 30 mov QWORD PTR [rcx+rax+48], rdx - -; 133 : context->mat[F64].buffer_sub = BUF_PROC(double, 512, , sub); - - 001a7 b8 48 00 00 00 mov eax, 72 ; 00000048H - 001ac 48 6b c0 01 imul rax, rax, 1 - 001b0 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 001b7 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:double_buf_sub_512 - 001be 48 89 54 01 38 mov QWORD PTR [rcx+rax+56], rdx - -; 134 : context->mat[F64].buffer_transpose = NULL; - - 001c3 b8 48 00 00 00 mov eax, 72 ; 00000048H - 001c8 48 6b c0 01 imul rax, rax, 1 - 001cc 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 001d3 48 c7 44 01 40 - 00 00 00 00 mov QWORD PTR [rcx+rax+64], 0 - -; 135 : context->mat[F64].clear_panel = PNL_PROC(double, 512, , clear); - - 001dc b8 48 00 00 00 mov eax, 72 ; 00000048H - 001e1 48 6b c0 01 imul rax, rax, 1 - 001e5 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 001ec 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:double_pnl_clear_512 - 001f3 48 89 54 01 48 mov QWORD PTR [rcx+rax+72], rdx - -; 136 : context->mat[F64].ker_fma = KER_PROC(double, 512, , fma); - - 001f8 b8 48 00 00 00 mov eax, 72 ; 00000048H - 001fd 48 6b c0 01 imul rax, rax, 1 - 00201 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00208 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:double_kernel_fma_512 - 0020f 48 89 54 01 50 mov QWORD PTR [rcx+rax+80], rdx - -; 137 : context->mat[F64].ker_tile_fma = KERTILE_PROC(double, 512, , fma); - - 00214 b8 48 00 00 00 mov eax, 72 ; 00000048H - 00219 48 6b c0 01 imul rax, rax, 1 - 0021d 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00224 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:double_kernel_tile_fma_512 - 0022b 48 89 54 01 58 mov QWORD PTR [rcx+rax+88], rdx - -; 138 : context->mat[F64].pivot = NULL; - - 00230 b8 48 00 00 00 mov eax, 72 ; 00000048H - 00235 48 6b c0 01 imul rax, rax, 1 - 00239 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00240 48 c7 44 01 60 - 00 00 00 00 mov QWORD PTR [rcx+rax+96], 0 - -; 139 : -; 140 : context->vec_f32_normalize_3 = f32_normalize; - - 00249 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR context$[rbp] - 00250 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:f32_normalize - 00257 48 89 48 18 mov QWORD PTR [rax+24], rcx - -; 141 : } - - 0025b 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00262 5f pop rdi - 00263 5d pop rbp - 00264 c3 ret 0 -load_intrinsic_512 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\load_intrinsic.x86.c -; COMDAT load_intrinsic_avx -_TEXT SEGMENT -avx_seg$ = 4 -is_fma$ = 36 -is_f16c$ = 68 -tv69 = 276 -tv74 = 276 -tv141 = 280 -tv148 = 280 -tv183 = 280 -tv190 = 280 -context$ = 320 -id$ = 328 -load_intrinsic_avx PROC ; COMDAT - -; 78 : { - - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__518EAA70_load_intrinsic@x86@c - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 - -; 79 : char avx_seg = id.make_byte[5]; - - 00025 b8 01 00 00 00 mov eax, 1 - 0002a 48 6b c0 05 imul rax, rax, 5 - 0002e 0f b6 84 05 48 - 01 00 00 movzx eax, BYTE PTR id$[rbp+rax] - 00036 88 45 04 mov BYTE PTR avx_seg$[rbp], al - -; 80 : char is_fma = (avx_seg & SIMDID_AVX_FMA) != 0; - - 00039 0f be 45 04 movsx eax, BYTE PTR avx_seg$[rbp] - 0003d 83 e0 04 and eax, 4 - 00040 85 c0 test eax, eax - 00042 74 0c je SHORT $LN3@load_intri - 00044 c7 85 14 01 00 - 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1 - 0004e eb 0a jmp SHORT $LN4@load_intri -$LN3@load_intri: - 00050 c7 85 14 01 00 - 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0 -$LN4@load_intri: - 0005a 0f b6 85 14 01 - 00 00 movzx eax, BYTE PTR tv69[rbp] - 00061 88 45 24 mov BYTE PTR is_fma$[rbp], al - -; 81 : char is_f16c = (avx_seg & SIMDID_AVX_F16C) != 0; - - 00064 0f be 45 04 movsx eax, BYTE PTR avx_seg$[rbp] - 00068 83 e0 08 and eax, 8 - 0006b 85 c0 test eax, eax - 0006d 74 0c je SHORT $LN5@load_intri - 0006f c7 85 14 01 00 - 00 01 00 00 00 mov DWORD PTR tv74[rbp], 1 - 00079 eb 0a jmp SHORT $LN6@load_intri -$LN5@load_intri: - 0007b c7 85 14 01 00 - 00 00 00 00 00 mov DWORD PTR tv74[rbp], 0 -$LN6@load_intri: - 00085 0f b6 85 14 01 - 00 00 movzx eax, BYTE PTR tv74[rbp] - 0008c 88 45 44 mov BYTE PTR is_f16c$[rbp], al - -; 82 : -; 83 : context->city_hash_simplify = city_hash_simplify_sse; - - 0008f 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR context$[rbp] - 00096 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:city_hash_simplify_sse - 0009d 48 89 08 mov QWORD PTR [rax], rcx - -; 84 : context->factorial_simd = factorial_simd_sse; - - 000a0 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR context$[rbp] - 000a7 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:factorial_simd_sse - 000ae 48 89 48 08 mov QWORD PTR [rax+8], rcx - -; 85 : context->index_pair = index_pair_sse; - - 000b2 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR context$[rbp] - 000b9 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:index_pair_sse - 000c0 48 89 48 10 mov QWORD PTR [rax+16], rcx - -; 86 : -; 87 : context->mat[F32].buffer_add = BUF_PROC(float, avx, , add); - - 000c4 b8 48 00 00 00 mov eax, 72 ; 00000048H - 000c9 48 6b c0 00 imul rax, rax, 0 - 000cd 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR context$[rbp] - 000d4 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_buf_add_avx - 000db 48 89 54 01 20 mov QWORD PTR [rcx+rax+32], rdx - -; 88 : context->mat[F32].buffer_fill = BUF_PROC(float, avx, , fill); - - 000e0 b8 48 00 00 00 mov eax, 72 ; 00000048H - 000e5 48 6b c0 00 imul rax, rax, 0 - 000e9 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR context$[rbp] - 000f0 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_buf_fill_avx - 000f7 48 89 54 01 28 mov QWORD PTR [rcx+rax+40], rdx - -; 89 : context->mat[F32].buffer_scalar_mul = BUF_PROC(float, avx, , scalar_mul); - - 000fc b8 48 00 00 00 mov eax, 72 ; 00000048H - 00101 48 6b c0 00 imul rax, rax, 0 - 00105 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR context$[rbp] - 0010c 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_buf_scalar_mul_avx - 00113 48 89 54 01 30 mov QWORD PTR [rcx+rax+48], rdx - -; 90 : context->mat[F32].buffer_sub = BUF_PROC(float, avx, , sub); - - 00118 b8 48 00 00 00 mov eax, 72 ; 00000048H - 0011d 48 6b c0 00 imul rax, rax, 0 - 00121 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00128 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_buf_sub_avx - 0012f 48 89 54 01 38 mov QWORD PTR [rcx+rax+56], rdx - -; 91 : context->mat[F32].buffer_transpose = KER_PROC(float, avx, , transpose); - - 00134 b8 48 00 00 00 mov eax, 72 ; 00000048H - 00139 48 6b c0 00 imul rax, rax, 0 - 0013d 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00144 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_kernel_transpose_avx - 0014b 48 89 54 01 40 mov QWORD PTR [rcx+rax+64], rdx - -; 92 : context->mat[F32].clear_panel = PNL_PROC(float, avx, , clear); - - 00150 b8 48 00 00 00 mov eax, 72 ; 00000048H - 00155 48 6b c0 00 imul rax, rax, 0 - 00159 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00160 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_pnl_clear_avx - 00167 48 89 54 01 48 mov QWORD PTR [rcx+rax+72], rdx - -; 93 : context->mat[F32].ker_fma = is_fma ? KER_PROC(float, avx, , fma) : - - 0016c 0f be 45 24 movsx eax, BYTE PTR is_fma$[rbp] - 00170 85 c0 test eax, eax - 00172 74 10 je SHORT $LN7@load_intri - 00174 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:float_kernel_fma_avx - 0017b 48 89 85 18 01 - 00 00 mov QWORD PTR tv141[rbp], rax - 00182 eb 0e jmp SHORT $LN8@load_intri -$LN7@load_intri: - 00184 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:float_kernel_fma_avx_fma - 0018b 48 89 85 18 01 - 00 00 mov QWORD PTR tv141[rbp], rax -$LN8@load_intri: - 00192 b8 48 00 00 00 mov eax, 72 ; 00000048H - 00197 48 6b c0 00 imul rax, rax, 0 - 0019b 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR context$[rbp] - 001a2 48 8b 95 18 01 - 00 00 mov rdx, QWORD PTR tv141[rbp] - 001a9 48 89 54 01 50 mov QWORD PTR [rcx+rax+80], rdx - -; 94 : KER_PROC(float, avx, _fma, fma); -; 95 : context->mat[F32].ker_tile_fma = is_fma ? KERTILE_PROC(float, avx, , fma) : - - 001ae 0f be 45 24 movsx eax, BYTE PTR is_fma$[rbp] - 001b2 85 c0 test eax, eax - 001b4 74 10 je SHORT $LN9@load_intri - 001b6 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:float_kernel_tile_fma_avx - 001bd 48 89 85 18 01 - 00 00 mov QWORD PTR tv148[rbp], rax - 001c4 eb 0e jmp SHORT $LN10@load_intri -$LN9@load_intri: - 001c6 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:float_kernel_tile_fma_avx_fma - 001cd 48 89 85 18 01 - 00 00 mov QWORD PTR tv148[rbp], rax -$LN10@load_intri: - 001d4 b8 48 00 00 00 mov eax, 72 ; 00000048H - 001d9 48 6b c0 00 imul rax, rax, 0 - 001dd 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR context$[rbp] - 001e4 48 8b 95 18 01 - 00 00 mov rdx, QWORD PTR tv148[rbp] - 001eb 48 89 54 01 58 mov QWORD PTR [rcx+rax+88], rdx - -; 96 : KERTILE_PROC(float, avx, _fma, fma); -; 97 : context->mat[F32].pivot = NULL; - - 001f0 b8 48 00 00 00 mov eax, 72 ; 00000048H - 001f5 48 6b c0 00 imul rax, rax, 0 - 001f9 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00200 48 c7 44 01 60 - 00 00 00 00 mov QWORD PTR [rcx+rax+96], 0 - -; 98 : -; 99 : context->mat[F64].buffer_add = BUF_PROC(double, avx, , add); - - 00209 b8 48 00 00 00 mov eax, 72 ; 00000048H - 0020e 48 6b c0 01 imul rax, rax, 1 - 00212 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00219 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:double_buf_add_avx - 00220 48 89 54 01 20 mov QWORD PTR [rcx+rax+32], rdx - -; 100 : context->mat[F64].buffer_fill = BUF_PROC(double, avx, , fill); - - 00225 b8 48 00 00 00 mov eax, 72 ; 00000048H - 0022a 48 6b c0 01 imul rax, rax, 1 - 0022e 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00235 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:double_buf_fill_avx - 0023c 48 89 54 01 28 mov QWORD PTR [rcx+rax+40], rdx - -; 101 : context->mat[F64].buffer_scalar_mul = BUF_PROC(double, avx, , scalar_mul); - - 00241 b8 48 00 00 00 mov eax, 72 ; 00000048H - 00246 48 6b c0 01 imul rax, rax, 1 - 0024a 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00251 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:double_buf_scalar_mul_avx - 00258 48 89 54 01 30 mov QWORD PTR [rcx+rax+48], rdx - -; 102 : context->mat[F64].buffer_sub = BUF_PROC(double, avx, , sub); - - 0025d b8 48 00 00 00 mov eax, 72 ; 00000048H - 00262 48 6b c0 01 imul rax, rax, 1 - 00266 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR context$[rbp] - 0026d 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:double_buf_sub_avx - 00274 48 89 54 01 38 mov QWORD PTR [rcx+rax+56], rdx - -; 103 : context->mat[F64].buffer_transpose = NULL; - - 00279 b8 48 00 00 00 mov eax, 72 ; 00000048H - 0027e 48 6b c0 01 imul rax, rax, 1 - 00282 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00289 48 c7 44 01 40 - 00 00 00 00 mov QWORD PTR [rcx+rax+64], 0 - -; 104 : context->mat[F64].clear_panel = PNL_PROC(double, avx, , clear); - - 00292 b8 48 00 00 00 mov eax, 72 ; 00000048H - 00297 48 6b c0 01 imul rax, rax, 1 - 0029b 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR context$[rbp] - 002a2 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:double_pnl_clear_avx - 002a9 48 89 54 01 48 mov QWORD PTR [rcx+rax+72], rdx - -; 105 : context->mat[F64].ker_fma = is_fma ? KER_PROC(double, avx, , fma) : - - 002ae 0f be 45 24 movsx eax, BYTE PTR is_fma$[rbp] - 002b2 85 c0 test eax, eax - 002b4 74 10 je SHORT $LN11@load_intri - 002b6 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:double_kernel_fma_avx - 002bd 48 89 85 18 01 - 00 00 mov QWORD PTR tv183[rbp], rax - 002c4 eb 0e jmp SHORT $LN12@load_intri -$LN11@load_intri: - 002c6 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:double_kernel_fma_avx_fma - 002cd 48 89 85 18 01 - 00 00 mov QWORD PTR tv183[rbp], rax -$LN12@load_intri: - 002d4 b8 48 00 00 00 mov eax, 72 ; 00000048H - 002d9 48 6b c0 01 imul rax, rax, 1 - 002dd 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR context$[rbp] - 002e4 48 8b 95 18 01 - 00 00 mov rdx, QWORD PTR tv183[rbp] - 002eb 48 89 54 01 50 mov QWORD PTR [rcx+rax+80], rdx - -; 106 : KER_PROC(double, avx, _fma, fma); -; 107 : context->mat[F64].ker_tile_fma = is_fma ? KERTILE_PROC(double, avx, , fma) : - - 002f0 0f be 45 24 movsx eax, BYTE PTR is_fma$[rbp] - 002f4 85 c0 test eax, eax - 002f6 74 10 je SHORT $LN13@load_intri - 002f8 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:double_kernel_tile_fma_avx - 002ff 48 89 85 18 01 - 00 00 mov QWORD PTR tv190[rbp], rax - 00306 eb 0e jmp SHORT $LN14@load_intri -$LN13@load_intri: - 00308 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:double_kernel_tile_fma_avx_fma - 0030f 48 89 85 18 01 - 00 00 mov QWORD PTR tv190[rbp], rax -$LN14@load_intri: - 00316 b8 48 00 00 00 mov eax, 72 ; 00000048H - 0031b 48 6b c0 01 imul rax, rax, 1 - 0031f 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00326 48 8b 95 18 01 - 00 00 mov rdx, QWORD PTR tv190[rbp] - 0032d 48 89 54 01 58 mov QWORD PTR [rcx+rax+88], rdx - -; 108 : KERTILE_PROC(double, avx, _fma, fma); -; 109 : context->mat[F64].pivot = NULL; - - 00332 b8 48 00 00 00 mov eax, 72 ; 00000048H - 00337 48 6b c0 01 imul rax, rax, 1 - 0033b 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00342 48 c7 44 01 60 - 00 00 00 00 mov QWORD PTR [rcx+rax+96], 0 - -; 110 : -; 111 : context->vec_f32_normalize_3 = f32_normalize; - - 0034b 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR context$[rbp] - 00352 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:f32_normalize - 00359 48 89 48 18 mov QWORD PTR [rax+24], rcx - -; 112 : } - - 0035d 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 00364 5f pop rdi - 00365 5d pop rbp - 00366 c3 ret 0 -load_intrinsic_avx ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\load_intrinsic.x86.c -; COMDAT load_intrinsic_sse -_TEXT SEGMENT -context$ = 224 -id$ = 232 -load_intrinsic_sse PROC ; COMDAT - -; 49 : { - - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__518EAA70_load_intrinsic@x86@c - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 - -; 50 : context->city_hash_simplify = city_hash_simplify_sse; - - 00025 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR context$[rbp] - 0002c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:city_hash_simplify_sse - 00033 48 89 08 mov QWORD PTR [rax], rcx - -; 51 : context->factorial_simd = factorial_simd_sse; - - 00036 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR context$[rbp] - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:factorial_simd_sse - 00044 48 89 48 08 mov QWORD PTR [rax+8], rcx - -; 52 : context->index_pair = index_pair_sse; - - 00048 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR context$[rbp] - 0004f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:index_pair_sse - 00056 48 89 48 10 mov QWORD PTR [rax+16], rcx - -; 53 : -; 54 : context->mat[F32].buffer_add = BUF_PROC(float, sse, , add); - - 0005a b8 48 00 00 00 mov eax, 72 ; 00000048H - 0005f 48 6b c0 00 imul rax, rax, 0 - 00063 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 0006a 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_buf_add_sse - 00071 48 89 54 01 20 mov QWORD PTR [rcx+rax+32], rdx - -; 55 : context->mat[F32].buffer_fill = BUF_PROC(float, sse, , fill); - - 00076 b8 48 00 00 00 mov eax, 72 ; 00000048H - 0007b 48 6b c0 00 imul rax, rax, 0 - 0007f 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00086 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_buf_fill_sse - 0008d 48 89 54 01 28 mov QWORD PTR [rcx+rax+40], rdx - -; 56 : context->mat[F32].buffer_scalar_mul = BUF_PROC(float, sse, , scalar_mul); - - 00092 b8 48 00 00 00 mov eax, 72 ; 00000048H - 00097 48 6b c0 00 imul rax, rax, 0 - 0009b 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 000a2 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_buf_scalar_mul_sse - 000a9 48 89 54 01 30 mov QWORD PTR [rcx+rax+48], rdx - -; 57 : context->mat[F32].buffer_sub = BUF_PROC(float, sse, , sub); - - 000ae b8 48 00 00 00 mov eax, 72 ; 00000048H - 000b3 48 6b c0 00 imul rax, rax, 0 - 000b7 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 000be 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_buf_sub_sse - 000c5 48 89 54 01 38 mov QWORD PTR [rcx+rax+56], rdx - -; 58 : context->mat[F32].buffer_transpose = KER_PROC(float, sse, , transpose); - - 000ca b8 48 00 00 00 mov eax, 72 ; 00000048H - 000cf 48 6b c0 00 imul rax, rax, 0 - 000d3 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 000da 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_kernel_transpose_sse - 000e1 48 89 54 01 40 mov QWORD PTR [rcx+rax+64], rdx - -; 59 : context->mat[F32].clear_panel = PNL_PROC(float, sse, , clear); - - 000e6 b8 48 00 00 00 mov eax, 72 ; 00000048H - 000eb 48 6b c0 00 imul rax, rax, 0 - 000ef 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 000f6 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_pnl_clear_sse - 000fd 48 89 54 01 48 mov QWORD PTR [rcx+rax+72], rdx - -; 60 : context->mat[F32].ker_fma = KER_PROC(float, sse, , fma); - - 00102 b8 48 00 00 00 mov eax, 72 ; 00000048H - 00107 48 6b c0 00 imul rax, rax, 0 - 0010b 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00112 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_kernel_fma_sse - 00119 48 89 54 01 50 mov QWORD PTR [rcx+rax+80], rdx - -; 61 : context->mat[F32].ker_tile_fma = KERTILE_PROC(float, sse, , fma); - - 0011e b8 48 00 00 00 mov eax, 72 ; 00000048H - 00123 48 6b c0 00 imul rax, rax, 0 - 00127 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 0012e 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_kernel_tile_fma_sse - 00135 48 89 54 01 58 mov QWORD PTR [rcx+rax+88], rdx - -; 62 : context->mat[F32].pivot = NULL; - - 0013a b8 48 00 00 00 mov eax, 72 ; 00000048H - 0013f 48 6b c0 00 imul rax, rax, 0 - 00143 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 0014a 48 c7 44 01 60 - 00 00 00 00 mov QWORD PTR [rcx+rax+96], 0 - -; 63 : -; 64 : context->mat[F64].buffer_add = BUF_PROC(double, sse, , add); - - 00153 b8 48 00 00 00 mov eax, 72 ; 00000048H - 00158 48 6b c0 01 imul rax, rax, 1 - 0015c 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00163 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:double_buf_add_sse - 0016a 48 89 54 01 20 mov QWORD PTR [rcx+rax+32], rdx - -; 65 : context->mat[F64].buffer_fill = BUF_PROC(double, sse, , fill); - - 0016f b8 48 00 00 00 mov eax, 72 ; 00000048H - 00174 48 6b c0 01 imul rax, rax, 1 - 00178 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 0017f 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:double_buf_fill_sse - 00186 48 89 54 01 28 mov QWORD PTR [rcx+rax+40], rdx - -; 66 : context->mat[F64].buffer_scalar_mul = BUF_PROC(double, sse, , scalar_mul); - - 0018b b8 48 00 00 00 mov eax, 72 ; 00000048H - 00190 48 6b c0 01 imul rax, rax, 1 - 00194 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 0019b 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:double_buf_scalar_mul_sse - 001a2 48 89 54 01 30 mov QWORD PTR [rcx+rax+48], rdx - -; 67 : context->mat[F64].buffer_sub = BUF_PROC(double, sse, , sub); - - 001a7 b8 48 00 00 00 mov eax, 72 ; 00000048H - 001ac 48 6b c0 01 imul rax, rax, 1 - 001b0 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 001b7 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:double_buf_sub_sse - 001be 48 89 54 01 38 mov QWORD PTR [rcx+rax+56], rdx - -; 68 : context->mat[F64].buffer_transpose = NULL; - - 001c3 b8 48 00 00 00 mov eax, 72 ; 00000048H - 001c8 48 6b c0 01 imul rax, rax, 1 - 001cc 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 001d3 48 c7 44 01 40 - 00 00 00 00 mov QWORD PTR [rcx+rax+64], 0 - -; 69 : context->mat[F64].clear_panel = PNL_PROC(double, sse, , clear); - - 001dc b8 48 00 00 00 mov eax, 72 ; 00000048H - 001e1 48 6b c0 01 imul rax, rax, 1 - 001e5 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 001ec 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:double_pnl_clear_sse - 001f3 48 89 54 01 48 mov QWORD PTR [rcx+rax+72], rdx - -; 70 : context->mat[F64].ker_fma = KER_PROC(double, sse, , fma); - - 001f8 b8 48 00 00 00 mov eax, 72 ; 00000048H - 001fd 48 6b c0 01 imul rax, rax, 1 - 00201 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00208 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:double_kernel_fma_sse - 0020f 48 89 54 01 50 mov QWORD PTR [rcx+rax+80], rdx - -; 71 : context->mat[F64].ker_tile_fma = KERTILE_PROC(double, sse, , fma); - - 00214 b8 48 00 00 00 mov eax, 72 ; 00000048H - 00219 48 6b c0 01 imul rax, rax, 1 - 0021d 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00224 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:double_kernel_tile_fma_sse - 0022b 48 89 54 01 58 mov QWORD PTR [rcx+rax+88], rdx - -; 72 : context->mat[F64].pivot = NULL; - - 00230 b8 48 00 00 00 mov eax, 72 ; 00000048H - 00235 48 6b c0 01 imul rax, rax, 1 - 00239 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR context$[rbp] - 00240 48 c7 44 01 60 - 00 00 00 00 mov QWORD PTR [rcx+rax+96], 0 - -; 73 : -; 74 : context->vec_f32_normalize_3 = f32_normalize; - - 00249 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR context$[rbp] - 00250 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:f32_normalize - 00257 48 89 48 18 mov QWORD PTR [rax+24], rcx - -; 75 : } - - 0025b 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00262 5f pop rdi - 00263 5d pop rbp - 00264 c3 ret 0 -load_intrinsic_sse ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\load_intrinsic.x86.c -; COMDAT load_intrinsic_function -_TEXT SEGMENT -simdid$ = 8 -context$ = 40 -tv74 = 244 -intrinsic_context$ = 288 -id$ = 296 -load_intrinsic_function PROC ; COMDAT - -; 21 : { - -$LN13: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 0001d b9 12 00 00 00 mov ecx, 18 - 00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00027 f3 ab rep stosd - 00029 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 00031 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__518EAA70_load_intrinsic@x86@c - 00038 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003d 90 npad 1 - -; 22 : sn_null_assert(intrinsic_context); - - 0003e 48 83 bd 20 01 - 00 00 00 cmp QWORD PTR intrinsic_context$[rbp], 0 - 00046 75 1c jne SHORT $LN12@load_intri - 00048 41 b8 16 00 00 - 00 mov r8d, 22 - 0004e 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1HI@EDBAMNGI@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ - 00055 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1DE@BIMGEDNO@?$AAi?$AAn?$AAt?$AAr?$AAi?$AAn?$AAs?$AAi?$AAc?$AA_?$AAc?$AAo?$AAn?$AAt?$AAe@ - 0005c ff 15 00 00 00 - 00 call QWORD PTR __imp__wassert - 00062 33 c0 xor eax, eax -$LN12@load_intri: - -; 23 : -; 24 : SIMDID simdid; -; 25 : if (id) { - - 00064 48 83 bd 28 01 - 00 00 00 cmp QWORD PTR id$[rbp], 0 - 0006c 74 0d je SHORT $LN4@load_intri - -; 26 : simdid.mask = id; - - 0006e 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR id$[rbp] - 00075 48 89 45 08 mov QWORD PTR simdid$[rbp], rax - -; 27 : } else { - - 00079 eb 09 jmp SHORT $LN5@load_intri -$LN4@load_intri: - -; 28 : simdid = sn_get_simd_level_global(); - - 0007b e8 00 00 00 00 call sn_get_simd_level_global - 00080 48 89 45 08 mov QWORD PTR simdid$[rbp], rax -$LN5@load_intri: - -; 29 : } -; 30 : -; 31 : sn_intrinsic *context = (sn_intrinsic *)intrinsic_context; - - 00084 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR intrinsic_context$[rbp] - 0008b 48 89 45 28 mov QWORD PTR context$[rbp], rax - -; 32 : -; 33 : switch (simdid.make_byte[1]) { - - 0008f b8 01 00 00 00 mov eax, 1 - 00094 48 6b c0 01 imul rax, rax, 1 - 00098 0f b6 44 05 08 movzx eax, BYTE PTR simdid$[rbp+rax] - 0009d 88 85 f4 00 00 - 00 mov BYTE PTR tv74[rbp], al - 000a3 80 bd f4 00 00 - 00 01 cmp BYTE PTR tv74[rbp], 1 - 000aa 74 26 je SHORT $LN6@load_intri - 000ac 80 bd f4 00 00 - 00 02 cmp BYTE PTR tv74[rbp], 2 - 000b3 74 2d je SHORT $LN7@load_intri - 000b5 80 bd f4 00 00 - 00 03 cmp BYTE PTR tv74[rbp], 3 - 000bc 74 34 je SHORT $LN8@load_intri - 000be 80 bd f4 00 00 - 00 04 cmp BYTE PTR tv74[rbp], 4 - 000c5 74 2b je SHORT $LN9@load_intri - 000c7 80 bd f4 00 00 - 00 05 cmp BYTE PTR tv74[rbp], 5 - 000ce 74 22 je SHORT $LN10@load_intri - 000d0 eb 2e jmp SHORT $LN2@load_intri -$LN6@load_intri: - -; 34 : case SIMDID_MAIN_LVL_SSE: -; 35 : load_intrinsic_sse(context, simdid); - - 000d2 48 8b 55 08 mov rdx, QWORD PTR simdid$[rbp] - 000d6 48 8b 4d 28 mov rcx, QWORD PTR context$[rbp] - 000da e8 00 00 00 00 call load_intrinsic_sse - 000df 90 npad 1 - -; 36 : break; - - 000e0 eb 1e jmp SHORT $LN2@load_intri -$LN7@load_intri: - -; 37 : case SIMDID_MAIN_LVL_AVX2: -; 38 : load_intrinsic_avx(context, simdid); - - 000e2 48 8b 55 08 mov rdx, QWORD PTR simdid$[rbp] - 000e6 48 8b 4d 28 mov rcx, QWORD PTR context$[rbp] - 000ea e8 00 00 00 00 call load_intrinsic_avx - 000ef 90 npad 1 - -; 39 : break; - - 000f0 eb 0e jmp SHORT $LN2@load_intri -$LN8@load_intri: -$LN9@load_intri: -$LN10@load_intri: - -; 40 : case SIMDID_MAIN_LVL_AVX512: -; 41 : case SIMDID_MAIN_LVL_AMX: -; 42 : case SIMDID_MAIN_LVL_AVX10: -; 43 : load_intrinsic_512(context, simdid); - - 000f2 48 8b 55 08 mov rdx, QWORD PTR simdid$[rbp] - 000f6 48 8b 4d 28 mov rcx, QWORD PTR context$[rbp] - 000fa e8 00 00 00 00 call load_intrinsic_512 - 000ff 90 npad 1 -$LN2@load_intri: - -; 44 : break; -; 45 : } -; 46 : } - - 00100 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00104 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:load_intrinsic_function$rtcFrameData - 0010b e8 00 00 00 00 call _RTC_CheckStackVars - 00110 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 00117 5f pop rdi - 00118 5d pop rbp - 00119 c3 ret 0 -load_intrinsic_function ENDP -_TEXT ENDS -END diff --git a/obj/StgSharp.Native/Debug/x64/load_intrinsic.x86.nativecodeanalysis.sarif b/obj/StgSharp.Native/Debug/x64/load_intrinsic.x86.nativecodeanalysis.sarif deleted file mode 100644 index 5c188c53..00000000 --- a/obj/StgSharp.Native/Debug/x64/load_intrinsic.x86.nativecodeanalysis.sarif +++ /dev/null @@ -1,131 +0,0 @@ -{ - "version": "2.1.0", - "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", - "runs": [ - { - "results": [], - "tool": { - "driver": { - "name": "PREfast", - "fullName": "MSVC Code Analysis", - "version": "14.44.35220.0", - "informationUri": "https://aka.ms/cpp/ca" - } - }, - "invocations": [ - { - "executionSuccessful": true - } - ], - "artifacts": [ - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-src/load_intrinsic.x86.c" - }, - "roles": [ - "analysisTarget" - ], - "hashes": { - "sha-256": "c4b2c5dc98e95d9d7cfabcb85772979ac74c625048857b38d6344935c144bf09" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_target.h" - }, - "hashes": { - "sha-256": "b8c543a09db7bd21a2b409476024fa6bec6a5218d88ca036d15584ed453ceb91" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_internal.h" - }, - "hashes": { - "sha-256": "8a0f03b014c6d2740a21a13df48b1951932be000152771363cd554748facde0d" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/stgsharpnative.h" - }, - "hashes": { - "sha-256": "5eee6b3faf7bf2247fe44898b0fcb71794c346ae2f0b58953e1632a49c1b6c4e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/stbi/stb_image.h" - }, - "hashes": { - "sha-256": "c45e3ef56a7d946654740f02e25fcb99a819861155ad1173349a289f2a000ce2" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/gl.h" - }, - "hashes": { - "sha-256": "c9d0960c919f9ef4cfa6449f2b0c00f2ad8286b420e01ee7ec34b40c618392fc" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/khrplatform.h" - }, - "hashes": { - "sha-256": "f5b69ed6a7bef6651526abb2d1263811d59acdba7a29368bb9be1a0f9e80160f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/wgl.h" - }, - "hashes": { - "sha-256": "86d6c58acb0a92b35ce8d94d6817fcec3f73d9e147e8621f468f143db1bbd81f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/glfw/glfw3.h" - }, - "hashes": { - "sha-256": "85c584857dddd780c131940ed69cd516c2b60d61664df9cb254710c3602c1008" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/glfw_function.h" - }, - "hashes": { - "sha-256": "4baa73f465e3e347fc0ad0ff666a6db2e83e749acd770f4bee02c12a7b9ec36e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrinsic.h" - }, - "hashes": { - "sha-256": "4da90105811ba902ad984b406834cf36cf43862047957dad5471c0b24d221ace" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_matkernel.h" - }, - "hashes": { - "sha-256": "19f0030c441ae5c4cec0b446b64daa10448fafd44d4fd6dd2232b84f5ed9aad1" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrincontext.x86.h" - }, - "hashes": { - "sha-256": "bbc00ee7320b30ca1234dc7908e4695ff6d5bb2ba3224e4ffaed345010ba8f48" - } - } - ] - } - ] -} \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/load_intrinsic.x86.nativecodeanalysis.xml b/obj/StgSharp.Native/Debug/x64/load_intrinsic.x86.nativecodeanalysis.xml deleted file mode 100644 index dcdf0885..00000000 --- a/obj/StgSharp.Native/Debug/x64/load_intrinsic.x86.nativecodeanalysis.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/m.basic.x86.cod b/obj/StgSharp.Native/Debug/x64/m.basic.x86.cod deleted file mode 100644 index 1ee8b0e4..00000000 --- a/obj/StgSharp.Native/Debug/x64/m.basic.x86.cod +++ /dev/null @@ -1,1110 +0,0 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.44.35220.0 - -include listing.inc - -INCLUDELIB MSVCRTD -INCLUDELIB OLDNAMES - -_DATA SEGMENT -COMM infolog:BYTE:0200H -_DATA ENDS -msvcjmc SEGMENT -__5C8CA4D3_mmintrin@h DB 01H -__8C83BECC_concurrencysal@h DB 01H -__608E3340_sal@h DB 01H -__FB67E29A_vadefs@h DB 01H -__1D1B619C_vcruntime@h DB 01H -__735960E1_corecrt@h DB 01H -__211DB995_corecrt_malloc@h DB 01H -__7CD62D9E_malloc@h DB 01H -__9DCE0DC8_xmmintrin@h DB 01H -__4C2AD0C7_winpackagefamily@h DB 01H -__9DED9ED1_winapifamily@h DB 01H -__12FEDF4E_sdkddkver@h DB 01H -__9BAEE128_excpt@h DB 01H -__B7B53233_stdarg@h DB 01H -__6B04FCB3_specstrings_undef@h DB 01H -__F4027AF7_specstrings_strict@h DB 01H -__B90340D4_sdv_driverspecs@h DB 01H -__BFFF5AD3_driverspecs@h DB 01H -__32847078_specstrings@h DB 01H -__108B2620_corecrt_wctype@h DB 01H -__6CD6613D_ctype@h DB 01H -__30902A1F_kernelspecs@h DB 01H -__376FD5CA_basetsd@h DB 01H -__13DE2371_errno@h DB 01H -__8C6AE390_vcruntime_string@h DB 01H -__8ACB2152_corecrt_memcpy_s@h DB 01H -__EA6C9D17_corecrt_memory@h DB 01H -__0DF2AF52_corecrt_wstring@h DB 01H -__6E889ECC_string@h DB 01H -__9BEDF4DE_guiddef@h DB 01H -__51BFD2FE_pshpack4@h DB 01H -__31652CEA_poppack@h DB 01H -__5532AE4C_pshpack2@h DB 01H -__58A52B9A_pshpack8@h DB 01H -__57741015_pshpack1@h DB 01H -__CDE68C90_apiset@h DB 01H -__0BF06E8D_ktmtypes@h DB 01H -__40C200C0_winnt@h DB 01H -__9336F789_minwindef@h DB 01H -__55136115_windef@h DB 01H -__32205BF0_apisetcconv@h DB 01H -__B48FDEA0_minwinbase@h DB 01H -__3551B028_apiquery2@h DB 01H -__65BE04AA_processenv@h DB 01H -__4767CA46_fileapi@h DB 01H -__282E6C4B_fileapifromapp@h DB 01H -__393AF12C_debugapi@h DB 01H -__EBC502B8_utilapiset@h DB 01H -__1EAD8C69_handleapi@h DB 01H -__D8EF9B29_errhandlingapi@h DB 01H -__97FC1204_fibersapi@h DB 01H -__27448220_namedpipeapi@h DB 01H -__6EA33B2A_profileapi@h DB 01H -__EAC6F673_heapapi@h DB 01H -__D64EEA5A_ioapiset@h DB 01H -__144BD4B6_synchapi@h DB 01H -__03B1C640_interlockedapi@h DB 01H -__DC64CB38_processthreadsapi@h DB 01H -__D719B518_sysinfoapi@h DB 01H -__410385B1_memoryapi@h DB 01H -__C1AD45EF_enclaveapi@h DB 01H -__F4C3AA32_threadpoollegacyapiset@h DB 01H -__AC5A7A9F_threadpoolapiset@h DB 01H -__F5254B21_jobapi@h DB 01H -__BCEA6EE8_jobapi2@h DB 01H -__D18ACE72_wow64apiset@h DB 01H -__669B0D4A_libloaderapi@h DB 01H -__645F7034_securitybaseapi@h DB 01H -__67E58557_namespaceapi@h DB 01H -__599D9D3A_systemtopologyapi@h DB 01H -__2337E373_processtopologyapi@h DB 01H -__02BFF239_securityappcontainer@h DB 01H -__9C196272_realtimeapiset@h DB 01H -__5AB313A4_winerror@h DB 01H -__B7E7187B_timezoneapi@h DB 01H -__6DE9EB6F_winbase@h DB 01H -__56B2AFF2_wingdi@h DB 01H -__BA1161A9_tvout@h DB 01H -__0501A018_winuser@h DB 01H -__EF12FA99_datetimeapi@h DB 01H -__8FA7C3CA_winnls@h DB 01H -__390F0C47_stringapiset@h DB 01H -__28605B0A_wincontypes@h DB 01H -__BFBDE86D_consoleapi@h DB 01H -__C3CAFBF0_consoleapi2@h DB 01H -__C20891C7_consoleapi3@h DB 01H -__717C98B6_wincon@h DB 01H -__2884C177_verrsrc@h DB 01H -__A3FD3A34_winver@h DB 01H -__6F8AD9F1_reason@h DB 01H -__4C90FD6F_winreg@h DB 01H -__68AFEBAD_wnnc@h DB 01H -__5A7AB086_winnetwk@h DB 01H -__2FE8A10C_stralign@h DB 01H -__34558472_winsvc@h DB 01H -__058845F1_mcx@h DB 01H -__7F16006B_ime_cmodes@h DB 01H -__0A3AF599_imm@h DB 01H -__9349FE86_windows@h DB 01H -__639A050C_sn_internal@h DB 01H -__836A8CFC_stdint@h DB 01H -__714FE6D7_sn_target@h DB 01H -__60B45B40_corecrt_stdio_config@h DB 01H -__CFA3741E_corecrt_wstdio@h DB 01H -__B3FE3303_stdio@h DB 01H -__955456CD_stddef@h DB 01H -__99AED4FB_corecrt_search@h DB 01H -__8B813BF6_corecrt_wstdlib@h DB 01H -__3D1CA2C3_limits@h DB 01H -__E8FB0A68_stdlib@h DB 01H -__F562FA57_stb_image@h DB 01H -__C95DC661_khrplatform@h DB 01H -__6C577136_gl@h DB 01H -__EE638A2C_wgl@h DB 01H -__8EF9E35C_glfw3@h DB 01H -__F8AC8404_emmintrin@h DB 01H -__270DEC8D_pmmintrin@h DB 01H -__97D49F0F_tmmintrin@h DB 01H -__BEEF8A8C_smmintrin@h DB 01H -__DB8D0340_nmmintrin@h DB 01H -__0E36F90E_wmmintrin@h DB 01H -__C5A2B409_zmmintrin@h DB 01H -__F2B616C3_immintrin@h DB 01H -__9FB25DBE_assert@h DB 01H -__4E664295_glfw_function@h DB 01H -__64C0EF11_StgSharpNative@h DB 01H -__E2EC0CAF_sn_matkernel@h DB 01H -__47E843D2_intrin0@inl@h DB 01H -__130964FF_setjmp@h DB 01H -__4875F786_ammintrin@h DB 01H -__353FD888_intrin@h DB 01H -__5FE1E9E3_isa_availability@h DB 01H -__AA840D82_sn_intrinsic@h DB 01H -__CE29950A_sn_intrincontext@x86@h DB 01H -__E2B4C3B7_m@basic@x86@c DB 01H -msvcjmc ENDS -PUBLIC float_kernel_transpose_sse -PUBLIC float_kernel_transpose_avx -PUBLIC float_kernel_transpose_512 -PUBLIC float_pnl_clear_sse -PUBLIC float_pnl_clear_avx -PUBLIC float_pnl_clear_512 -PUBLIC double_pnl_clear_sse -PUBLIC double_pnl_clear_avx -PUBLIC double_pnl_clear_512 -PUBLIC __JustMyCode_Default -PUBLIC __zmm@0000000f0000000b00000007000000030000000e0000000a00000006000000020000000d0000000900000005000000010000000c000000080000000400000000 -EXTRN _RTC_InitBase:PROC -EXTRN _RTC_Shutdown:PROC -EXTRN __CheckForDebuggerJustMyCode:PROC -; COMDAT pdata -pdata SEGMENT -$pdata$float_kernel_transpose_sse DD imagerel $LN3 - DD imagerel $LN3+366 - DD imagerel $unwind$float_kernel_transpose_sse -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_kernel_transpose_avx DD imagerel $LN3 - DD imagerel $LN3+258 - DD imagerel $unwind$float_kernel_transpose_avx -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_kernel_transpose_512 DD imagerel $LN3 - DD imagerel $LN3+144 - DD imagerel $unwind$float_kernel_transpose_512 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_pnl_clear_sse DD imagerel $LN6 - DD imagerel $LN6+117 - DD imagerel $unwind$float_pnl_clear_sse -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_pnl_clear_avx DD imagerel $LN6 - DD imagerel $LN6+134 - DD imagerel $unwind$float_pnl_clear_avx -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_pnl_clear_512 DD imagerel $LN6 - DD imagerel $LN6+155 - DD imagerel $unwind$float_pnl_clear_512 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_pnl_clear_sse DD imagerel $LN3 - DD imagerel $LN3+205 - DD imagerel $unwind$double_pnl_clear_sse -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_pnl_clear_avx DD imagerel $LN6 - DD imagerel $LN6+134 - DD imagerel $unwind$double_pnl_clear_avx -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_pnl_clear_512 DD imagerel $LN6 - DD imagerel $LN6+155 - DD imagerel $unwind$double_pnl_clear_512 -pdata ENDS -; COMDAT __zmm@0000000f0000000b00000007000000030000000e0000000a00000006000000020000000d0000000900000005000000010000000c000000080000000400000000 -CONST SEGMENT -__zmm@0000000f0000000b00000007000000030000000e0000000a00000006000000020000000d0000000900000005000000010000000c000000080000000400000000 DB 00H - DB 00H, 00H, 00H, 04H, 00H, 00H, 00H, 08H, 00H, 00H, 00H, 0cH, 00H - DB 00H, 00H, 01H, 00H, 00H, 00H, 05H, 00H, 00H, 00H, 09H, 00H, 00H - DB 00H, 0dH, 00H, 00H, 00H, 02H, 00H, 00H, 00H, 06H, 00H, 00H, 00H - DB 0aH, 00H, 00H, 00H, 0eH, 00H, 00H, 00H, 03H, 00H, 00H, 00H, 07H - DB 00H, 00H, 00H, 0bH, 00H, 00H, 00H, 0fH, 00H, 00H, 00H -CONST ENDS -; COMDAT rtc$TMZ -rtc$TMZ SEGMENT -_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown -rtc$TMZ ENDS -; COMDAT rtc$IMZ -rtc$IMZ SEGMENT -_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase -rtc$IMZ ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_pnl_clear_512 DD 02d061e01H - DD 01102315H - DD 07009003aH - DD 0d0075008H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_pnl_clear_avx DD 02d061e01H - DD 01102315H - DD 07009002eH - DD 0d0075008H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_pnl_clear_sse DD 025051301H - DD 010e2313H - DD 070070023H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_pnl_clear_512 DD 02d061e01H - DD 01102315H - DD 07009003aH - DD 0d0075008H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_pnl_clear_avx DD 02d061e01H - DD 01102315H - DD 07009002eH - DD 0d0075008H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_pnl_clear_sse DD 025051301H - DD 010e2313H - DD 070070027H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_kernel_transpose_512 DD 02d062301H - DD 0115231aH - DD 0700e0046H - DD 0d00c500dH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_kernel_transpose_avx DD 02d062301H - DD 0115231aH - DD 0700e0042H - DD 0d00c500dH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_kernel_transpose_sse DD 025051801H - DD 01132318H - DD 0700c004dH - DD 0500bH -xdata ENDS -; Function compile flags: /Odt -; COMDAT __JustMyCode_Default -_TEXT SEGMENT -__JustMyCode_Default PROC ; COMDAT - 00000 c2 00 00 ret 0 -__JustMyCode_Default ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.basic.x86.c -; COMDAT double_pnl_clear_512 -_TEXT SEGMENT -zero$ = 64 -i$1 = 152 -ans$ = 464 -double_pnl_clear_512 PROC ; COMDAT - -; 50 : { - -$LN6: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 41 55 push r13 - 00007 55 push rbp - 00008 57 push rdi - 00009 48 81 ec d0 01 - 00 00 sub rsp, 464 ; 000001d0H - 00010 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00015 48 8d 6c 24 60 lea rbp, QWORD PTR [rsp+96] - 0001a 48 83 e5 c0 and rbp, -64 ; ffffffffffffffc0H - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E2B4C3B7_m@basic@x86@c - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002a 90 npad 1 - -; 51 : register __m512 zero = _mm512_setzero_ps(); - - 0002b c5 f8 57 c0 vxorps xmm0, xmm0, xmm0 - 0002f 62 f1 7c 48 11 - 45 01 vmovups ZMMWORD PTR zero$[rbp], zmm0 - -; 52 : for (size_t i = 0; i < 16; i++) { - - 00036 48 c7 85 98 00 - 00 00 00 00 00 - 00 mov QWORD PTR i$1[rbp], 0 - 00041 eb 11 jmp SHORT $LN4@double_pnl -$LN2@double_pnl: - 00043 48 8b 85 98 00 - 00 00 mov rax, QWORD PTR i$1[rbp] - 0004a 48 ff c0 inc rax - 0004d 48 89 85 98 00 - 00 00 mov QWORD PTR i$1[rbp], rax -$LN4@double_pnl: - 00054 48 83 bd 98 00 - 00 00 10 cmp QWORD PTR i$1[rbp], 16 - 0005c 73 31 jae SHORT $LN3@double_pnl - -; 53 : PANEL_COL_VEC((*ans), i, 0) = zero; - - 0005e 48 63 85 98 00 - 00 00 movsxd rax, DWORD PTR i$1[rbp] - 00065 48 6b c0 40 imul rax, rax, 64 ; 00000040H - 00069 49 8b 8d d0 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00070 48 03 c8 add rcx, rax - 00073 48 8b c1 mov rax, rcx - 00076 b9 40 00 00 00 mov ecx, 64 ; 00000040H - 0007b 48 6b c9 00 imul rcx, rcx, 0 - 0007f 62 f1 7c 48 10 - 45 01 vmovups zmm0, ZMMWORD PTR zero$[rbp] - 00086 62 f1 7c 48 11 - 04 08 vmovups ZMMWORD PTR [rax+rcx], zmm0 - -; 54 : } - - 0008d eb b4 jmp SHORT $LN2@double_pnl -$LN3@double_pnl: - -; 55 : } - - 0008f 49 8d a5 b0 01 - 00 00 lea rsp, QWORD PTR [r13+432] - 00096 5f pop rdi - 00097 5d pop rbp - 00098 41 5d pop r13 - 0009a c3 ret 0 -double_pnl_clear_512 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.basic.x86.c -; COMDAT double_pnl_clear_avx -_TEXT SEGMENT -zero$ = 32 -i$1 = 88 -ans$ = 368 -double_pnl_clear_avx PROC ; COMDAT - -; 42 : { - -$LN6: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 41 55 push r13 - 00007 55 push rbp - 00008 57 push rdi - 00009 48 81 ec 70 01 - 00 00 sub rsp, 368 ; 00000170H - 00010 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00015 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 0001a 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E2B4C3B7_m@basic@x86@c - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002a 90 npad 1 - -; 43 : register __m256 zero = _mm256_setzero_ps(); - - 0002b c5 f8 57 c0 vxorps xmm0, xmm0, xmm0 - 0002f c5 fc 11 45 20 vmovups YMMWORD PTR zero$[rbp], ymm0 - -; 44 : for (size_t i = 0; i < 8; i++) { - - 00034 48 c7 45 58 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 0003c eb 0b jmp SHORT $LN4@double_pnl -$LN2@double_pnl: - 0003e 48 8b 45 58 mov rax, QWORD PTR i$1[rbp] - 00042 48 ff c0 inc rax - 00045 48 89 45 58 mov QWORD PTR i$1[rbp], rax -$LN4@double_pnl: - 00049 48 83 7d 58 08 cmp QWORD PTR i$1[rbp], 8 - 0004e 73 2a jae SHORT $LN3@double_pnl - -; 45 : PANEL_COL_VEC((*ans), i, 0) = zero; - - 00050 48 63 45 58 movsxd rax, DWORD PTR i$1[rbp] - 00054 48 6b c0 20 imul rax, rax, 32 ; 00000020H - 00058 49 8b 8d 70 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 0005f 48 03 c8 add rcx, rax - 00062 48 8b c1 mov rax, rcx - 00065 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 0006a 48 6b c9 00 imul rcx, rcx, 0 - 0006e c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR zero$[rbp] - 00073 c5 fc 11 04 08 vmovups YMMWORD PTR [rax+rcx], ymm0 - -; 46 : } - - 00078 eb c4 jmp SHORT $LN2@double_pnl -$LN3@double_pnl: - -; 47 : } - - 0007a 49 8d a5 50 01 - 00 00 lea rsp, QWORD PTR [r13+336] - 00081 5f pop rdi - 00082 5d pop rbp - 00083 41 5d pop r13 - 00085 c3 ret 0 -double_pnl_clear_avx ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.basic.x86.c -; COMDAT double_pnl_clear_sse -_TEXT SEGMENT -zero$ = 16 -ans$ = 272 -double_pnl_clear_sse PROC ; COMDAT - -; 33 : { - -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 18 01 - 00 00 sub rsp, 280 ; 00000118H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E2B4C3B7_m@basic@x86@c - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 34 : register __m128 zero = _mm_setzero_ps(); - - 00020 0f 57 c0 xorps xmm0, xmm0 - 00023 0f 29 45 10 movaps XMMWORD PTR zero$[rbp], xmm0 - -; 35 : PANEL_COL_VEC((*ans), 0, 0) = zero; - - 00027 b8 20 00 00 00 mov eax, 32 ; 00000020H - 0002c 48 6b c0 00 imul rax, rax, 0 - 00030 48 8b 8d 10 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00037 48 03 c8 add rcx, rax - 0003a 48 8b c1 mov rax, rcx - 0003d b9 10 00 00 00 mov ecx, 16 - 00042 48 6b c9 00 imul rcx, rcx, 0 - 00046 0f 28 45 10 movaps xmm0, XMMWORD PTR zero$[rbp] - 0004a 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 36 : PANEL_COL_VEC((*ans), 1, 0) = zero; - - 0004e b8 20 00 00 00 mov eax, 32 ; 00000020H - 00053 48 6b c0 01 imul rax, rax, 1 - 00057 48 8b 8d 10 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 0005e 48 03 c8 add rcx, rax - 00061 48 8b c1 mov rax, rcx - 00064 b9 10 00 00 00 mov ecx, 16 - 00069 48 6b c9 00 imul rcx, rcx, 0 - 0006d 0f 28 45 10 movaps xmm0, XMMWORD PTR zero$[rbp] - 00071 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 37 : PANEL_COL_VEC((*ans), 2, 0) = zero; - - 00075 b8 20 00 00 00 mov eax, 32 ; 00000020H - 0007a 48 6b c0 02 imul rax, rax, 2 - 0007e 48 8b 8d 10 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00085 48 03 c8 add rcx, rax - 00088 48 8b c1 mov rax, rcx - 0008b b9 10 00 00 00 mov ecx, 16 - 00090 48 6b c9 00 imul rcx, rcx, 0 - 00094 0f 28 45 10 movaps xmm0, XMMWORD PTR zero$[rbp] - 00098 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 38 : PANEL_COL_VEC((*ans), 3, 0) = zero; - - 0009c b8 20 00 00 00 mov eax, 32 ; 00000020H - 000a1 48 6b c0 03 imul rax, rax, 3 - 000a5 48 8b 8d 10 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 000ac 48 03 c8 add rcx, rax - 000af 48 8b c1 mov rax, rcx - 000b2 b9 10 00 00 00 mov ecx, 16 - 000b7 48 6b c9 00 imul rcx, rcx, 0 - 000bb 0f 28 45 10 movaps xmm0, XMMWORD PTR zero$[rbp] - 000bf 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 39 : } - - 000c3 48 8d a5 f8 00 - 00 00 lea rsp, QWORD PTR [rbp+248] - 000ca 5f pop rdi - 000cb 5d pop rbp - 000cc c3 ret 0 -double_pnl_clear_sse ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.basic.x86.c -; COMDAT float_pnl_clear_512 -_TEXT SEGMENT -zero$ = 64 -i$1 = 152 -ans$ = 464 -float_pnl_clear_512 PROC ; COMDAT - -; 25 : { - -$LN6: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 41 55 push r13 - 00007 55 push rbp - 00008 57 push rdi - 00009 48 81 ec d0 01 - 00 00 sub rsp, 464 ; 000001d0H - 00010 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00015 48 8d 6c 24 60 lea rbp, QWORD PTR [rsp+96] - 0001a 48 83 e5 c0 and rbp, -64 ; ffffffffffffffc0H - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E2B4C3B7_m@basic@x86@c - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002a 90 npad 1 - -; 26 : register __m512 zero = _mm512_setzero_ps(); - - 0002b c5 f8 57 c0 vxorps xmm0, xmm0, xmm0 - 0002f 62 f1 7c 48 11 - 45 01 vmovups ZMMWORD PTR zero$[rbp], zmm0 - -; 27 : for (size_t i = 0; i < 16; i++) { - - 00036 48 c7 85 98 00 - 00 00 00 00 00 - 00 mov QWORD PTR i$1[rbp], 0 - 00041 eb 11 jmp SHORT $LN4@float_pnl_ -$LN2@float_pnl_: - 00043 48 8b 85 98 00 - 00 00 mov rax, QWORD PTR i$1[rbp] - 0004a 48 ff c0 inc rax - 0004d 48 89 85 98 00 - 00 00 mov QWORD PTR i$1[rbp], rax -$LN4@float_pnl_: - 00054 48 83 bd 98 00 - 00 00 10 cmp QWORD PTR i$1[rbp], 16 - 0005c 73 31 jae SHORT $LN3@float_pnl_ - -; 28 : PANEL_COL_VEC((*ans), i, 0) = zero; - - 0005e 48 63 85 98 00 - 00 00 movsxd rax, DWORD PTR i$1[rbp] - 00065 48 6b c0 40 imul rax, rax, 64 ; 00000040H - 00069 49 8b 8d d0 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00070 48 03 c8 add rcx, rax - 00073 48 8b c1 mov rax, rcx - 00076 b9 40 00 00 00 mov ecx, 64 ; 00000040H - 0007b 48 6b c9 00 imul rcx, rcx, 0 - 0007f 62 f1 7c 48 10 - 45 01 vmovups zmm0, ZMMWORD PTR zero$[rbp] - 00086 62 f1 7c 48 11 - 04 08 vmovups ZMMWORD PTR [rax+rcx], zmm0 - -; 29 : } - - 0008d eb b4 jmp SHORT $LN2@float_pnl_ -$LN3@float_pnl_: - -; 30 : } - - 0008f 49 8d a5 b0 01 - 00 00 lea rsp, QWORD PTR [r13+432] - 00096 5f pop rdi - 00097 5d pop rbp - 00098 41 5d pop r13 - 0009a c3 ret 0 -float_pnl_clear_512 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.basic.x86.c -; COMDAT float_pnl_clear_avx -_TEXT SEGMENT -zero$ = 32 -i$1 = 88 -ans$ = 368 -float_pnl_clear_avx PROC ; COMDAT - -; 17 : { - -$LN6: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 41 55 push r13 - 00007 55 push rbp - 00008 57 push rdi - 00009 48 81 ec 70 01 - 00 00 sub rsp, 368 ; 00000170H - 00010 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00015 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 0001a 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E2B4C3B7_m@basic@x86@c - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002a 90 npad 1 - -; 18 : register __m256 zero = _mm256_setzero_ps(); - - 0002b c5 f8 57 c0 vxorps xmm0, xmm0, xmm0 - 0002f c5 fc 11 45 20 vmovups YMMWORD PTR zero$[rbp], ymm0 - -; 19 : for (size_t i = 0; i < 8; i++) { - - 00034 48 c7 45 58 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 0003c eb 0b jmp SHORT $LN4@float_pnl_ -$LN2@float_pnl_: - 0003e 48 8b 45 58 mov rax, QWORD PTR i$1[rbp] - 00042 48 ff c0 inc rax - 00045 48 89 45 58 mov QWORD PTR i$1[rbp], rax -$LN4@float_pnl_: - 00049 48 83 7d 58 08 cmp QWORD PTR i$1[rbp], 8 - 0004e 73 2a jae SHORT $LN3@float_pnl_ - -; 20 : PANEL_COL_VEC((*ans), i, 0) = zero; - - 00050 48 63 45 58 movsxd rax, DWORD PTR i$1[rbp] - 00054 48 6b c0 20 imul rax, rax, 32 ; 00000020H - 00058 49 8b 8d 70 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 0005f 48 03 c8 add rcx, rax - 00062 48 8b c1 mov rax, rcx - 00065 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 0006a 48 6b c9 00 imul rcx, rcx, 0 - 0006e c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR zero$[rbp] - 00073 c5 fc 11 04 08 vmovups YMMWORD PTR [rax+rcx], ymm0 - -; 21 : } - - 00078 eb c4 jmp SHORT $LN2@float_pnl_ -$LN3@float_pnl_: - -; 22 : } - - 0007a 49 8d a5 50 01 - 00 00 lea rsp, QWORD PTR [r13+336] - 00081 5f pop rdi - 00082 5d pop rbp - 00083 41 5d pop r13 - 00085 c3 ret 0 -float_pnl_clear_avx ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.basic.x86.c -; COMDAT float_pnl_clear_sse -_TEXT SEGMENT -zero$ = 16 -i$1 = 56 -ans$ = 304 -float_pnl_clear_sse PROC ; COMDAT - -; 9 : { - -$LN6: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 38 01 - 00 00 sub rsp, 312 ; 00000138H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E2B4C3B7_m@basic@x86@c - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 10 : register __m128 zero = _mm_setzero_ps(); - - 00020 0f 57 c0 xorps xmm0, xmm0 - 00023 0f 29 45 10 movaps XMMWORD PTR zero$[rbp], xmm0 - -; 11 : for (size_t i = 0; i < 4; i++) { - - 00027 48 c7 45 38 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 0002f eb 0b jmp SHORT $LN4@float_pnl_ -$LN2@float_pnl_: - 00031 48 8b 45 38 mov rax, QWORD PTR i$1[rbp] - 00035 48 ff c0 inc rax - 00038 48 89 45 38 mov QWORD PTR i$1[rbp], rax -$LN4@float_pnl_: - 0003c 48 83 7d 38 04 cmp QWORD PTR i$1[rbp], 4 - 00041 73 28 jae SHORT $LN3@float_pnl_ - -; 12 : PANEL_COL_VEC((*ans), i, 0) = zero; - - 00043 48 63 45 38 movsxd rax, DWORD PTR i$1[rbp] - 00047 48 6b c0 10 imul rax, rax, 16 - 0004b 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00052 48 03 c8 add rcx, rax - 00055 48 8b c1 mov rax, rcx - 00058 b9 10 00 00 00 mov ecx, 16 - 0005d 48 6b c9 00 imul rcx, rcx, 0 - 00061 0f 28 45 10 movaps xmm0, XMMWORD PTR zero$[rbp] - 00065 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 13 : } - - 00069 eb c6 jmp SHORT $LN2@float_pnl_ -$LN3@float_pnl_: - -; 14 : } - - 0006b 48 8d a5 18 01 - 00 00 lea rsp, QWORD PTR [rbp+280] - 00072 5f pop rdi - 00073 5d pop rbp - 00074 c3 ret 0 -float_pnl_clear_sse ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.basic.x86.c -; COMDAT float_kernel_transpose_512 -_TEXT SEGMENT -matrix$ = 64 -transpose_indices$ = 192 -right$ = 560 -ans$ = 568 -float_kernel_transpose_512 PROC ; COMDAT - -; 91 : { - -$LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 41 55 push r13 - 0000c 55 push rbp - 0000d 57 push rdi - 0000e 48 81 ec 30 02 - 00 00 sub rsp, 560 ; 00000230H - 00015 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 0001a 48 8d 6c 24 60 lea rbp, QWORD PTR [rsp+96] - 0001f 48 83 e5 c0 and rbp, -64 ; ffffffffffffffc0H - 00023 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E2B4C3B7_m@basic@x86@c - 0002a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002f 90 npad 1 - -; 92 : register __m512 matrix = right->f32_z[0]; - - 00030 b8 40 00 00 00 mov eax, 64 ; 00000040H - 00035 48 6b c0 00 imul rax, rax, 0 - 00039 49 8b 8d 30 02 - 00 00 mov rcx, QWORD PTR right$[r13] - 00040 62 f1 7c 48 10 - 04 01 vmovups zmm0, ZMMWORD PTR [rcx+rax] - 00047 62 f1 7c 48 11 - 45 01 vmovups ZMMWORD PTR matrix$[rbp], zmm0 - -; 93 : -; 94 : const __m512i transpose_indices = - - 0004e 62 f1 7e 48 6f - 05 00 00 00 00 vmovdqu32 zmm0, ZMMWORD PTR __zmm@0000000f0000000b00000007000000030000000e0000000a00000006000000020000000d0000000900000005000000010000000c000000080000000400000000 - 00058 62 f1 7e 48 7f - 45 03 vmovdqu32 ZMMWORD PTR transpose_indices$[rbp], zmm0 - -; 95 : _mm512_setr_epi32(0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15); -; 96 : -; 97 : ans->f32_z[0] = _mm512_permutexvar_ps(transpose_indices, matrix); - - 0005f 62 f1 7e 48 6f - 45 03 vmovdqu32 zmm0, ZMMWORD PTR transpose_indices$[rbp] - 00066 62 f2 7d 48 16 - 45 01 vpermps zmm0, zmm0, ZMMWORD PTR matrix$[rbp] - 0006d b8 40 00 00 00 mov eax, 64 ; 00000040H - 00072 48 6b c0 00 imul rax, rax, 0 - 00076 49 8b 8d 38 02 - 00 00 mov rcx, QWORD PTR ans$[r13] - 0007d 62 f1 7c 48 11 - 04 01 vmovups ZMMWORD PTR [rcx+rax], zmm0 - -; 98 : } - - 00084 49 8d a5 10 02 - 00 00 lea rsp, QWORD PTR [r13+528] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d 41 5d pop r13 - 0008f c3 ret 0 -float_kernel_transpose_512 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.basic.x86.c -; COMDAT float_kernel_transpose_avx -_TEXT SEGMENT -col_low$ = 32 -col_high$ = 96 -unpack_low$ = 160 -unpack_high$ = 224 -right$ = 528 -ans$ = 536 -float_kernel_transpose_avx PROC ; COMDAT - -; 76 : { - -$LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 41 55 push r13 - 0000c 55 push rbp - 0000d 57 push rdi - 0000e 48 81 ec 10 02 - 00 00 sub rsp, 528 ; 00000210H - 00015 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 0001a 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 0001f 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H - 00023 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E2B4C3B7_m@basic@x86@c - 0002a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002f 90 npad 1 - -; 77 : register __m256 col_low = right->f32_y[0]; - - 00030 b8 20 00 00 00 mov eax, 32 ; 00000020H - 00035 48 6b c0 00 imul rax, rax, 0 - 00039 49 8b 8d 10 02 - 00 00 mov rcx, QWORD PTR right$[r13] - 00040 c5 fc 10 04 01 vmovups ymm0, YMMWORD PTR [rcx+rax] - 00045 c5 fc 11 45 20 vmovups YMMWORD PTR col_low$[rbp], ymm0 - -; 78 : register __m256 col_high = right->f32_y[1]; - - 0004a b8 20 00 00 00 mov eax, 32 ; 00000020H - 0004f 48 6b c0 01 imul rax, rax, 1 - 00053 49 8b 8d 10 02 - 00 00 mov rcx, QWORD PTR right$[r13] - 0005a c5 fc 10 04 01 vmovups ymm0, YMMWORD PTR [rcx+rax] - 0005f c5 fc 11 45 60 vmovups YMMWORD PTR col_high$[rbp], ymm0 - -; 79 : -; 80 : register __m256 unpack_low = _mm256_unpacklo_ps(col_low, col_high); - - 00064 c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR col_low$[rbp] - 00069 c5 fc 14 45 60 vunpcklps ymm0, ymm0, YMMWORD PTR col_high$[rbp] - 0006e c5 fc 11 85 a0 - 00 00 00 vmovups YMMWORD PTR unpack_low$[rbp], ymm0 - -; 81 : register __m256 unpack_high = _mm256_unpackhi_ps(col_low, col_high); - - 00076 c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR col_low$[rbp] - 0007b c5 fc 15 45 60 vunpckhps ymm0, ymm0, YMMWORD PTR col_high$[rbp] - 00080 c5 fc 11 85 e0 - 00 00 00 vmovups YMMWORD PTR unpack_high$[rbp], ymm0 - -; 82 : -; 83 : col_low = _mm256_permute2f128_ps(unpack_low, unpack_high, 0x20); - - 00088 c5 fc 10 85 a0 - 00 00 00 vmovups ymm0, YMMWORD PTR unpack_low$[rbp] - 00090 c4 e3 7d 06 85 - e0 00 00 00 20 vperm2f128 ymm0, ymm0, YMMWORD PTR unpack_high$[rbp], 32 ; 00000020H - 0009a c5 fc 11 45 20 vmovups YMMWORD PTR col_low$[rbp], ymm0 - -; 84 : col_high = _mm256_permute2f128_ps(unpack_low, unpack_high, 0x31); - - 0009f c5 fc 10 85 a0 - 00 00 00 vmovups ymm0, YMMWORD PTR unpack_low$[rbp] - 000a7 c4 e3 7d 06 85 - e0 00 00 00 31 vperm2f128 ymm0, ymm0, YMMWORD PTR unpack_high$[rbp], 49 ; 00000031H - 000b1 c5 fc 11 45 60 vmovups YMMWORD PTR col_high$[rbp], ymm0 - -; 85 : -; 86 : ans->f32_y[0] = _mm256_shuffle_ps(col_high, col_low, _MM_SHUFFLE(2, 0, 2, 0)); - - 000b6 c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR col_high$[rbp] - 000bb c5 fc c6 45 20 - 88 vshufps ymm0, ymm0, YMMWORD PTR col_low$[rbp], 136 ; 00000088H - 000c1 b8 20 00 00 00 mov eax, 32 ; 00000020H - 000c6 48 6b c0 00 imul rax, rax, 0 - 000ca 49 8b 8d 18 02 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000d1 c5 fc 11 04 01 vmovups YMMWORD PTR [rcx+rax], ymm0 - -; 87 : ans->f32_y[1] = _mm256_shuffle_ps(col_high, col_low, _MM_SHUFFLE(3, 1, 3, 1)); - - 000d6 c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR col_high$[rbp] - 000db c5 fc c6 45 20 - dd vshufps ymm0, ymm0, YMMWORD PTR col_low$[rbp], 221 ; 000000ddH - 000e1 b8 20 00 00 00 mov eax, 32 ; 00000020H - 000e6 48 6b c0 01 imul rax, rax, 1 - 000ea 49 8b 8d 18 02 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000f1 c5 fc 11 04 01 vmovups YMMWORD PTR [rcx+rax], ymm0 - -; 88 : } - - 000f6 49 8d a5 f0 01 - 00 00 lea rsp, QWORD PTR [r13+496] - 000fd 5f pop rdi - 000fe 5d pop rbp - 000ff 41 5d pop r13 - 00101 c3 ret 0 -float_kernel_transpose_avx ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.basic.x86.c -; COMDAT float_kernel_transpose_sse -_TEXT SEGMENT -col0$ = 16 -col1$ = 64 -col2$ = 112 -col3$ = 160 -tmp0$ = 208 -tmp1$ = 256 -tmp2$ = 304 -tmp3$ = 352 -right$ = 608 -ans$ = 616 -float_kernel_transpose_sse PROC ; COMDAT - -; 59 : { - -$LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 68 02 - 00 00 sub rsp, 616 ; 00000268H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E2B4C3B7_m@basic@x86@c - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 - -; 60 : register __m128 col0 = right->f32_x[0]; - - 00025 b8 10 00 00 00 mov eax, 16 - 0002a 48 6b c0 00 imul rax, rax, 0 - 0002e 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00035 0f 10 04 01 movups xmm0, XMMWORD PTR [rcx+rax] - 00039 0f 11 45 10 movups XMMWORD PTR col0$[rbp], xmm0 - -; 61 : register __m128 col1 = right->f32_x[1]; - - 0003d b8 10 00 00 00 mov eax, 16 - 00042 48 6b c0 01 imul rax, rax, 1 - 00046 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 0004d 0f 10 04 01 movups xmm0, XMMWORD PTR [rcx+rax] - 00051 0f 11 45 40 movups XMMWORD PTR col1$[rbp], xmm0 - -; 62 : register __m128 col2 = right->f32_x[2]; - - 00055 b8 10 00 00 00 mov eax, 16 - 0005a 48 6b c0 02 imul rax, rax, 2 - 0005e 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00065 0f 10 04 01 movups xmm0, XMMWORD PTR [rcx+rax] - 00069 0f 11 45 70 movups XMMWORD PTR col2$[rbp], xmm0 - -; 63 : register __m128 col3 = right->f32_x[3]; - - 0006d b8 10 00 00 00 mov eax, 16 - 00072 48 6b c0 03 imul rax, rax, 3 - 00076 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 0007d 0f 10 04 01 movups xmm0, XMMWORD PTR [rcx+rax] - 00081 0f 11 85 a0 00 - 00 00 movups XMMWORD PTR col3$[rbp], xmm0 - -; 64 : register __m128 tmp0 = _mm_unpacklo_ps(col0, col1); - - 00088 0f 28 45 10 movaps xmm0, XMMWORD PTR col0$[rbp] - 0008c 0f 14 45 40 unpcklps xmm0, XMMWORD PTR col1$[rbp] - 00090 0f 29 85 d0 00 - 00 00 movaps XMMWORD PTR tmp0$[rbp], xmm0 - -; 65 : register __m128 tmp1 = _mm_unpackhi_ps(col0, col1); - - 00097 0f 28 45 10 movaps xmm0, XMMWORD PTR col0$[rbp] - 0009b 0f 15 45 40 unpckhps xmm0, XMMWORD PTR col1$[rbp] - 0009f 0f 29 85 00 01 - 00 00 movaps XMMWORD PTR tmp1$[rbp], xmm0 - -; 66 : register __m128 tmp2 = _mm_unpacklo_ps(col2, col3); - - 000a6 0f 28 45 70 movaps xmm0, XMMWORD PTR col2$[rbp] - 000aa 0f 14 85 a0 00 - 00 00 unpcklps xmm0, XMMWORD PTR col3$[rbp] - 000b1 0f 29 85 30 01 - 00 00 movaps XMMWORD PTR tmp2$[rbp], xmm0 - -; 67 : register __m128 tmp3 = _mm_unpackhi_ps(col2, col3); - - 000b8 0f 28 45 70 movaps xmm0, XMMWORD PTR col2$[rbp] - 000bc 0f 15 85 a0 00 - 00 00 unpckhps xmm0, XMMWORD PTR col3$[rbp] - 000c3 0f 29 85 60 01 - 00 00 movaps XMMWORD PTR tmp3$[rbp], xmm0 - -; 68 : -; 69 : ans->f32_x[0] = _mm_movelh_ps(tmp0, tmp2); - - 000ca 0f 28 85 d0 00 - 00 00 movaps xmm0, XMMWORD PTR tmp0$[rbp] - 000d1 0f 28 8d 30 01 - 00 00 movaps xmm1, XMMWORD PTR tmp2$[rbp] - 000d8 0f 16 c1 movlhps xmm0, xmm1 - 000db b8 10 00 00 00 mov eax, 16 - 000e0 48 6b c0 00 imul rax, rax, 0 - 000e4 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 000eb 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 - -; 70 : ans->f32_x[1] = _mm_movehl_ps(tmp2, tmp0); - - 000ef 0f 28 85 d0 00 - 00 00 movaps xmm0, XMMWORD PTR tmp0$[rbp] - 000f6 0f 28 8d 30 01 - 00 00 movaps xmm1, XMMWORD PTR tmp2$[rbp] - 000fd 0f 12 c8 movhlps xmm1, xmm0 - 00100 0f 28 c1 movaps xmm0, xmm1 - 00103 b8 10 00 00 00 mov eax, 16 - 00108 48 6b c0 01 imul rax, rax, 1 - 0010c 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00113 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 - -; 71 : ans->f32_x[2] = _mm_movelh_ps(tmp1, tmp3); - - 00117 0f 28 85 00 01 - 00 00 movaps xmm0, XMMWORD PTR tmp1$[rbp] - 0011e 0f 28 8d 60 01 - 00 00 movaps xmm1, XMMWORD PTR tmp3$[rbp] - 00125 0f 16 c1 movlhps xmm0, xmm1 - 00128 b8 10 00 00 00 mov eax, 16 - 0012d 48 6b c0 02 imul rax, rax, 2 - 00131 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00138 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 - -; 72 : ans->f32_x[3] = _mm_movehl_ps(tmp3, tmp1); - - 0013c 0f 28 85 00 01 - 00 00 movaps xmm0, XMMWORD PTR tmp1$[rbp] - 00143 0f 28 8d 60 01 - 00 00 movaps xmm1, XMMWORD PTR tmp3$[rbp] - 0014a 0f 12 c8 movhlps xmm1, xmm0 - 0014d 0f 28 c1 movaps xmm0, xmm1 - 00150 b8 10 00 00 00 mov eax, 16 - 00155 48 6b c0 03 imul rax, rax, 3 - 00159 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00160 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 - -; 73 : } - - 00164 48 8d a5 48 02 - 00 00 lea rsp, QWORD PTR [rbp+584] - 0016b 5f pop rdi - 0016c 5d pop rbp - 0016d c3 ret 0 -float_kernel_transpose_sse ENDP -_TEXT ENDS -END diff --git a/obj/StgSharp.Native/Debug/x64/m.basic.x86.nativecodeanalysis.sarif b/obj/StgSharp.Native/Debug/x64/m.basic.x86.nativecodeanalysis.sarif deleted file mode 100644 index 1433a7bc..00000000 --- a/obj/StgSharp.Native/Debug/x64/m.basic.x86.nativecodeanalysis.sarif +++ /dev/null @@ -1,131 +0,0 @@ -{ - "version": "2.1.0", - "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", - "runs": [ - { - "results": [], - "tool": { - "driver": { - "name": "PREfast", - "fullName": "MSVC Code Analysis", - "version": "14.44.35220.0", - "informationUri": "https://aka.ms/cpp/ca" - } - }, - "invocations": [ - { - "executionSuccessful": true - } - ], - "artifacts": [ - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-src/m.basic.x86.c" - }, - "roles": [ - "analysisTarget" - ], - "hashes": { - "sha-256": "d2e2e837a655806e69e9907ce694d936c3ab6b1d7ff8fcbf18a9925b1cc060f4" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_target.h" - }, - "hashes": { - "sha-256": "b8c543a09db7bd21a2b409476024fa6bec6a5218d88ca036d15584ed453ceb91" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_internal.h" - }, - "hashes": { - "sha-256": "8a0f03b014c6d2740a21a13df48b1951932be000152771363cd554748facde0d" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrinsic.h" - }, - "hashes": { - "sha-256": "4da90105811ba902ad984b406834cf36cf43862047957dad5471c0b24d221ace" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/stgsharpnative.h" - }, - "hashes": { - "sha-256": "5eee6b3faf7bf2247fe44898b0fcb71794c346ae2f0b58953e1632a49c1b6c4e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/stbi/stb_image.h" - }, - "hashes": { - "sha-256": "c45e3ef56a7d946654740f02e25fcb99a819861155ad1173349a289f2a000ce2" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/gl.h" - }, - "hashes": { - "sha-256": "c9d0960c919f9ef4cfa6449f2b0c00f2ad8286b420e01ee7ec34b40c618392fc" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/khrplatform.h" - }, - "hashes": { - "sha-256": "f5b69ed6a7bef6651526abb2d1263811d59acdba7a29368bb9be1a0f9e80160f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/wgl.h" - }, - "hashes": { - "sha-256": "86d6c58acb0a92b35ce8d94d6817fcec3f73d9e147e8621f468f143db1bbd81f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/glfw/glfw3.h" - }, - "hashes": { - "sha-256": "85c584857dddd780c131940ed69cd516c2b60d61664df9cb254710c3602c1008" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/glfw_function.h" - }, - "hashes": { - "sha-256": "4baa73f465e3e347fc0ad0ff666a6db2e83e749acd770f4bee02c12a7b9ec36e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_matkernel.h" - }, - "hashes": { - "sha-256": "19f0030c441ae5c4cec0b446b64daa10448fafd44d4fd6dd2232b84f5ed9aad1" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrincontext.x86.h" - }, - "hashes": { - "sha-256": "bbc00ee7320b30ca1234dc7908e4695ff6d5bb2ba3224e4ffaed345010ba8f48" - } - } - ] - } - ] -} \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/m.basic.x86.nativecodeanalysis.xml b/obj/StgSharp.Native/Debug/x64/m.basic.x86.nativecodeanalysis.xml deleted file mode 100644 index dcdf0885..00000000 --- a/obj/StgSharp.Native/Debug/x64/m.basic.x86.nativecodeanalysis.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/m.bufop.x86.cod b/obj/StgSharp.Native/Debug/x64/m.bufop.x86.cod deleted file mode 100644 index 69fba24a..00000000 --- a/obj/StgSharp.Native/Debug/x64/m.bufop.x86.cod +++ /dev/null @@ -1,4500 +0,0 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.44.35220.0 - -include listing.inc - -INCLUDELIB MSVCRTD -INCLUDELIB OLDNAMES - -_DATA SEGMENT -COMM infolog:BYTE:0200H -_DATA ENDS -msvcjmc SEGMENT -__5C8CA4D3_mmintrin@h DB 01H -__8C83BECC_concurrencysal@h DB 01H -__608E3340_sal@h DB 01H -__FB67E29A_vadefs@h DB 01H -__1D1B619C_vcruntime@h DB 01H -__735960E1_corecrt@h DB 01H -__211DB995_corecrt_malloc@h DB 01H -__7CD62D9E_malloc@h DB 01H -__9DCE0DC8_xmmintrin@h DB 01H -__4C2AD0C7_winpackagefamily@h DB 01H -__9DED9ED1_winapifamily@h DB 01H -__12FEDF4E_sdkddkver@h DB 01H -__9BAEE128_excpt@h DB 01H -__B7B53233_stdarg@h DB 01H -__6B04FCB3_specstrings_undef@h DB 01H -__F4027AF7_specstrings_strict@h DB 01H -__B90340D4_sdv_driverspecs@h DB 01H -__BFFF5AD3_driverspecs@h DB 01H -__32847078_specstrings@h DB 01H -__108B2620_corecrt_wctype@h DB 01H -__6CD6613D_ctype@h DB 01H -__30902A1F_kernelspecs@h DB 01H -__376FD5CA_basetsd@h DB 01H -__13DE2371_errno@h DB 01H -__8C6AE390_vcruntime_string@h DB 01H -__8ACB2152_corecrt_memcpy_s@h DB 01H -__EA6C9D17_corecrt_memory@h DB 01H -__0DF2AF52_corecrt_wstring@h DB 01H -__6E889ECC_string@h DB 01H -__9BEDF4DE_guiddef@h DB 01H -__51BFD2FE_pshpack4@h DB 01H -__31652CEA_poppack@h DB 01H -__5532AE4C_pshpack2@h DB 01H -__58A52B9A_pshpack8@h DB 01H -__57741015_pshpack1@h DB 01H -__CDE68C90_apiset@h DB 01H -__0BF06E8D_ktmtypes@h DB 01H -__40C200C0_winnt@h DB 01H -__9336F789_minwindef@h DB 01H -__55136115_windef@h DB 01H -__32205BF0_apisetcconv@h DB 01H -__B48FDEA0_minwinbase@h DB 01H -__3551B028_apiquery2@h DB 01H -__65BE04AA_processenv@h DB 01H -__4767CA46_fileapi@h DB 01H -__282E6C4B_fileapifromapp@h DB 01H -__393AF12C_debugapi@h DB 01H -__EBC502B8_utilapiset@h DB 01H -__1EAD8C69_handleapi@h DB 01H -__D8EF9B29_errhandlingapi@h DB 01H -__97FC1204_fibersapi@h DB 01H -__27448220_namedpipeapi@h DB 01H -__6EA33B2A_profileapi@h DB 01H -__EAC6F673_heapapi@h DB 01H -__D64EEA5A_ioapiset@h DB 01H -__144BD4B6_synchapi@h DB 01H -__03B1C640_interlockedapi@h DB 01H -__DC64CB38_processthreadsapi@h DB 01H -__D719B518_sysinfoapi@h DB 01H -__410385B1_memoryapi@h DB 01H -__C1AD45EF_enclaveapi@h DB 01H -__F4C3AA32_threadpoollegacyapiset@h DB 01H -__AC5A7A9F_threadpoolapiset@h DB 01H -__F5254B21_jobapi@h DB 01H -__BCEA6EE8_jobapi2@h DB 01H -__D18ACE72_wow64apiset@h DB 01H -__669B0D4A_libloaderapi@h DB 01H -__645F7034_securitybaseapi@h DB 01H -__67E58557_namespaceapi@h DB 01H -__599D9D3A_systemtopologyapi@h DB 01H -__2337E373_processtopologyapi@h DB 01H -__02BFF239_securityappcontainer@h DB 01H -__9C196272_realtimeapiset@h DB 01H -__5AB313A4_winerror@h DB 01H -__B7E7187B_timezoneapi@h DB 01H -__6DE9EB6F_winbase@h DB 01H -__56B2AFF2_wingdi@h DB 01H -__BA1161A9_tvout@h DB 01H -__0501A018_winuser@h DB 01H -__EF12FA99_datetimeapi@h DB 01H -__8FA7C3CA_winnls@h DB 01H -__390F0C47_stringapiset@h DB 01H -__28605B0A_wincontypes@h DB 01H -__BFBDE86D_consoleapi@h DB 01H -__C3CAFBF0_consoleapi2@h DB 01H -__C20891C7_consoleapi3@h DB 01H -__717C98B6_wincon@h DB 01H -__2884C177_verrsrc@h DB 01H -__A3FD3A34_winver@h DB 01H -__6F8AD9F1_reason@h DB 01H -__4C90FD6F_winreg@h DB 01H -__68AFEBAD_wnnc@h DB 01H -__5A7AB086_winnetwk@h DB 01H -__2FE8A10C_stralign@h DB 01H -__34558472_winsvc@h DB 01H -__058845F1_mcx@h DB 01H -__7F16006B_ime_cmodes@h DB 01H -__0A3AF599_imm@h DB 01H -__9349FE86_windows@h DB 01H -__639A050C_sn_internal@h DB 01H -__836A8CFC_stdint@h DB 01H -__714FE6D7_sn_target@h DB 01H -__60B45B40_corecrt_stdio_config@h DB 01H -__CFA3741E_corecrt_wstdio@h DB 01H -__B3FE3303_stdio@h DB 01H -__955456CD_stddef@h DB 01H -__99AED4FB_corecrt_search@h DB 01H -__8B813BF6_corecrt_wstdlib@h DB 01H -__3D1CA2C3_limits@h DB 01H -__E8FB0A68_stdlib@h DB 01H -__F562FA57_stb_image@h DB 01H -__C95DC661_khrplatform@h DB 01H -__6C577136_gl@h DB 01H -__EE638A2C_wgl@h DB 01H -__8EF9E35C_glfw3@h DB 01H -__F8AC8404_emmintrin@h DB 01H -__270DEC8D_pmmintrin@h DB 01H -__97D49F0F_tmmintrin@h DB 01H -__BEEF8A8C_smmintrin@h DB 01H -__DB8D0340_nmmintrin@h DB 01H -__0E36F90E_wmmintrin@h DB 01H -__C5A2B409_zmmintrin@h DB 01H -__F2B616C3_immintrin@h DB 01H -__9FB25DBE_assert@h DB 01H -__4E664295_glfw_function@h DB 01H -__64C0EF11_StgSharpNative@h DB 01H -__E2EC0CAF_sn_matkernel@h DB 01H -__47E843D2_intrin0@inl@h DB 01H -__130964FF_setjmp@h DB 01H -__4875F786_ammintrin@h DB 01H -__353FD888_intrin@h DB 01H -__5FE1E9E3_isa_availability@h DB 01H -__AA840D82_sn_intrinsic@h DB 01H -__CE29950A_sn_intrincontext@x86@h DB 01H -__BAFF6ACF_m@bufop@x86@c DB 01H -msvcjmc ENDS -PUBLIC float_buf_add_sse -PUBLIC float_buf_add_avx -PUBLIC float_buf_add_512 -PUBLIC double_buf_add_sse -PUBLIC double_buf_add_avx -PUBLIC double_buf_add_512 -PUBLIC float_buf_sub_sse -PUBLIC float_buf_sub_avx -PUBLIC float_buf_sub_512 -PUBLIC double_buf_sub_sse -PUBLIC double_buf_sub_avx -PUBLIC double_buf_sub_512 -PUBLIC float_buf_scalar_mul_sse -PUBLIC float_buf_scalar_mul_avx -PUBLIC float_buf_scalar_mul_512 -PUBLIC double_buf_scalar_mul_sse -PUBLIC double_buf_scalar_mul_avx -PUBLIC double_buf_scalar_mul_512 -PUBLIC float_buf_fill_sse -PUBLIC float_buf_fill_avx -PUBLIC float_buf_fill_512 -PUBLIC double_buf_fill_sse -PUBLIC double_buf_fill_avx -PUBLIC double_buf_fill_512 -PUBLIC __JustMyCode_Default -EXTRN _RTC_InitBase:PROC -EXTRN _RTC_Shutdown:PROC -EXTRN __CheckForDebuggerJustMyCode:PROC -EXTRN _fltused:DWORD -; COMDAT pdata -pdata SEGMENT -$pdata$float_buf_add_sse DD imagerel $LN6 - DD imagerel $LN6+524 - DD imagerel $unwind$float_buf_add_sse -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_buf_add_avx DD imagerel $LN6 - DD imagerel $LN6+343 - DD imagerel $unwind$float_buf_add_avx -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_buf_add_512 DD imagerel $LN6 - DD imagerel $LN6+226 - DD imagerel $unwind$float_buf_add_512 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_buf_add_sse DD imagerel $LN6 - DD imagerel $LN6+1072 - DD imagerel $unwind$double_buf_add_sse -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_buf_add_avx DD imagerel $LN6 - DD imagerel $LN6+607 - DD imagerel $unwind$double_buf_add_avx -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_buf_add_512 DD imagerel $LN6 - DD imagerel $LN6+365 - DD imagerel $unwind$double_buf_add_512 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_buf_sub_sse DD imagerel $LN6 - DD imagerel $LN6+524 - DD imagerel $unwind$float_buf_sub_sse -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_buf_sub_avx DD imagerel $LN6 - DD imagerel $LN6+335 - DD imagerel $unwind$float_buf_sub_avx -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_buf_sub_512 DD imagerel $LN6 - DD imagerel $LN6+226 - DD imagerel $unwind$float_buf_sub_512 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_buf_sub_sse DD imagerel $LN6 - DD imagerel $LN6+1040 - DD imagerel $unwind$double_buf_sub_sse -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_buf_sub_avx DD imagerel $LN6 - DD imagerel $LN6+353 - DD imagerel $unwind$double_buf_sub_avx -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_buf_sub_512 DD imagerel $LN6 - DD imagerel $LN6+239 - DD imagerel $unwind$double_buf_sub_512 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_buf_scalar_mul_sse DD imagerel $LN6 - DD imagerel $LN6+443 - DD imagerel $unwind$float_buf_scalar_mul_sse -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_buf_scalar_mul_avx DD imagerel $LN6 - DD imagerel $LN6+300 - DD imagerel $unwind$float_buf_scalar_mul_avx -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_buf_scalar_mul_512 DD imagerel $LN6 - DD imagerel $LN6+246 - DD imagerel $unwind$float_buf_scalar_mul_512 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_buf_scalar_mul_sse DD imagerel $LN6 - DD imagerel $LN6+819 - DD imagerel $unwind$double_buf_scalar_mul_sse -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_buf_scalar_mul_avx DD imagerel $LN6 - DD imagerel $LN6+494 - DD imagerel $unwind$double_buf_scalar_mul_avx -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_buf_scalar_mul_512 DD imagerel $LN6 - DD imagerel $LN6+350 - DD imagerel $unwind$double_buf_scalar_mul_512 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_buf_fill_sse DD imagerel $LN6 - DD imagerel $LN6+264 - DD imagerel $unwind$float_buf_fill_sse -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_buf_fill_avx DD imagerel $LN6 - DD imagerel $LN6+192 - DD imagerel $unwind$float_buf_fill_avx -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_buf_fill_512 DD imagerel $LN6 - DD imagerel $LN6+187 - DD imagerel $unwind$float_buf_fill_512 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_buf_fill_sse DD imagerel $LN6 - DD imagerel $LN6+428 - DD imagerel $unwind$double_buf_fill_sse -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_buf_fill_avx DD imagerel $LN6 - DD imagerel $LN6+285 - DD imagerel $unwind$double_buf_fill_avx -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_buf_fill_512 DD imagerel $LN6 - DD imagerel $LN6+233 - DD imagerel $unwind$double_buf_fill_512 -pdata ENDS -; COMDAT rtc$TMZ -rtc$TMZ SEGMENT -_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown -rtc$TMZ ENDS -; COMDAT rtc$IMZ -rtc$IMZ SEGMENT -_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase -rtc$IMZ ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_buf_fill_512 DD 02d062801H - DD 011a231fH - DD 07013003aH - DD 0d0115012H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_buf_fill_avx DD 02d062801H - DD 011a231fH - DD 07013002eH - DD 0d0115012H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_buf_fill_sse DD 025051d01H - DD 0118231dH - DD 070110027H - DD 05010H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_buf_fill_512 DD 02d062801H - DD 011a231fH - DD 07013003aH - DD 0d0115012H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_buf_fill_avx DD 02d062801H - DD 011a231fH - DD 07013002eH - DD 0d0115012H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_buf_fill_sse DD 025051d01H - DD 0118231dH - DD 070110027H - DD 05010H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_buf_scalar_mul_512 DD 02d062d01H - DD 011f2324H - DD 070180056H - DD 0d0165017H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_buf_scalar_mul_avx DD 02d062d01H - DD 011f2324H - DD 07018004eH - DD 0d0165017H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_buf_scalar_mul_sse DD 025052201H - DD 011d2322H - DD 070160057H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_buf_scalar_mul_512 DD 02d062d01H - DD 011f2324H - DD 070180046H - DD 0d0165017H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_buf_scalar_mul_avx DD 02d062d01H - DD 011f2324H - DD 07018003eH - DD 0d0165017H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_buf_scalar_mul_sse DD 025052201H - DD 011d2322H - DD 07016003fH - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_buf_sub_512 DD 02d062d01H - DD 011f2324H - DD 070180036H - DD 0d0165017H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_buf_sub_avx DD 02d062d01H - DD 011f2324H - DD 070180036H - DD 0d0165017H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_buf_sub_sse DD 025052201H - DD 011d2322H - DD 070160051H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_buf_sub_512 DD 02d062d01H - DD 011f2324H - DD 070180036H - DD 0d0165017H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_buf_sub_avx DD 02d062d01H - DD 011f2324H - DD 070180036H - DD 0d0165017H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_buf_sub_sse DD 025052201H - DD 011d2322H - DD 070160039H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_buf_add_512 DD 02d062d01H - DD 011f2324H - DD 070180046H - DD 0d0165017H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_buf_add_avx DD 02d062d01H - DD 011f2324H - DD 07018004aH - DD 0d0165017H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_buf_add_sse DD 025052201H - DD 011d2322H - DD 070160051H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_buf_add_512 DD 02d062d01H - DD 011f2324H - DD 070180036H - DD 0d0165017H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_buf_add_avx DD 02d062d01H - DD 011f2324H - DD 07018003aH - DD 0d0165017H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_buf_add_sse DD 025052201H - DD 011d2322H - DD 070160039H - DD 05015H -xdata ENDS -; Function compile flags: /Odt -; COMDAT __JustMyCode_Default -_TEXT SEGMENT -__JustMyCode_Default PROC ; COMDAT - 00000 c2 00 00 ret 0 -__JustMyCode_Default ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT double_buf_fill_512 -_TEXT SEGMENT -vec$ = 64 -i$1 = 152 -ans$ = 464 -scalar$ = 472 -count$ = 480 -double_buf_fill_512 PROC ; COMDAT - -; 63 : { - -$LN6: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 41 55 push r13 - 00011 55 push rbp - 00012 57 push rdi - 00013 48 81 ec d0 01 - 00 00 sub rsp, 464 ; 000001d0H - 0001a 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 0001f 48 8d 6c 24 60 lea rbp, QWORD PTR [rsp+96] - 00024 48 83 e5 c0 and rbp, -64 ; ffffffffffffffc0H - 00028 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00034 90 npad 1 - -; 64 : register __m512d vec = _mm512_broadcastsd_pd(_mm_loadu_pd(scalar)); - - 00035 49 8b 85 d8 01 - 00 00 mov rax, QWORD PTR scalar$[r13] - 0003c 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 0003f 62 f2 fd 48 19 - c0 vbroadcastsd zmm0, xmm0 - 00045 62 f1 fd 48 11 - 45 01 vmovupd ZMMWORD PTR vec$[rbp], zmm0 - -; 65 : for (size_t i = 0; i < count; i++) { - - 0004c 48 c7 85 98 00 - 00 00 00 00 00 - 00 mov QWORD PTR i$1[rbp], 0 - 00057 eb 11 jmp SHORT $LN4@double_buf -$LN2@double_buf: - 00059 48 8b 85 98 00 - 00 00 mov rax, QWORD PTR i$1[rbp] - 00060 48 ff c0 inc rax - 00063 48 89 85 98 00 - 00 00 mov QWORD PTR i$1[rbp], rax -$LN4@double_buf: - 0006a 49 8b 85 e0 01 - 00 00 mov rax, QWORD PTR count$[r13] - 00071 48 39 85 98 00 - 00 00 cmp QWORD PTR i$1[rbp], rax - 00078 73 63 jae SHORT $LN3@double_buf - -; 66 : ans[i].f64_z[0] = vec; - - 0007a 48 69 85 98 00 - 00 00 80 00 00 - 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00085 49 8b 8d d0 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 0008c 48 03 c8 add rcx, rax - 0008f 48 8b c1 mov rax, rcx - 00092 b9 40 00 00 00 mov ecx, 64 ; 00000040H - 00097 48 6b c9 00 imul rcx, rcx, 0 - 0009b 62 f1 fd 48 10 - 45 01 vmovupd zmm0, ZMMWORD PTR vec$[rbp] - 000a2 62 f1 fd 48 11 - 04 08 vmovupd ZMMWORD PTR [rax+rcx], zmm0 - -; 67 : ans[i].f64_z[1] = vec; - - 000a9 48 69 85 98 00 - 00 00 80 00 00 - 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 000b4 49 8b 8d d0 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000bb 48 03 c8 add rcx, rax - 000be 48 8b c1 mov rax, rcx - 000c1 b9 40 00 00 00 mov ecx, 64 ; 00000040H - 000c6 48 6b c9 01 imul rcx, rcx, 1 - 000ca 62 f1 fd 48 10 - 45 01 vmovupd zmm0, ZMMWORD PTR vec$[rbp] - 000d1 62 f1 fd 48 11 - 04 08 vmovupd ZMMWORD PTR [rax+rcx], zmm0 - -; 68 : } - - 000d8 e9 7c ff ff ff jmp $LN2@double_buf -$LN3@double_buf: - -; 69 : } - - 000dd 49 8d a5 b0 01 - 00 00 lea rsp, QWORD PTR [r13+432] - 000e4 5f pop rdi - 000e5 5d pop rbp - 000e6 41 5d pop r13 - 000e8 c3 ret 0 -double_buf_fill_512 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT double_buf_fill_avx -_TEXT SEGMENT -vec$ = 32 -i$1 = 88 -ans$ = 368 -scalar$ = 376 -count$ = 384 -double_buf_fill_avx PROC ; COMDAT - -; 52 : { - -$LN6: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 41 55 push r13 - 00011 55 push rbp - 00012 57 push rdi - 00013 48 81 ec 70 01 - 00 00 sub rsp, 368 ; 00000170H - 0001a 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 0001f 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00024 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H - 00028 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00034 90 npad 1 - -; 53 : register __m256d vec = _mm256_broadcast_sd(((double *)(scalar->data))); - - 00035 49 8b 85 78 01 - 00 00 mov rax, QWORD PTR scalar$[r13] - 0003c c4 e2 7d 19 00 vbroadcastsd ymm0, QWORD PTR [rax] - 00041 c5 fd 11 45 20 vmovupd YMMWORD PTR vec$[rbp], ymm0 - -; 54 : for (size_t i = 0; i < count; i++) { - - 00046 48 c7 45 58 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 0004e eb 0b jmp SHORT $LN4@double_buf -$LN2@double_buf: - 00050 48 8b 45 58 mov rax, QWORD PTR i$1[rbp] - 00054 48 ff c0 inc rax - 00057 48 89 45 58 mov QWORD PTR i$1[rbp], rax -$LN4@double_buf: - 0005b 49 8b 85 80 01 - 00 00 mov rax, QWORD PTR count$[r13] - 00062 48 39 45 58 cmp QWORD PTR i$1[rbp], rax - 00066 0f 83 a5 00 00 - 00 jae $LN3@double_buf - -; 55 : ans[i].f64_y[0] = vec; - - 0006c 48 69 45 58 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00074 49 8b 8d 70 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 0007b 48 03 c8 add rcx, rax - 0007e 48 8b c1 mov rax, rcx - 00081 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 00086 48 6b c9 00 imul rcx, rcx, 0 - 0008a c5 fd 10 45 20 vmovupd ymm0, YMMWORD PTR vec$[rbp] - 0008f c5 fd 11 04 08 vmovupd YMMWORD PTR [rax+rcx], ymm0 - -; 56 : ans[i].f64_y[1] = vec; - - 00094 48 69 45 58 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0009c 49 8b 8d 70 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000a3 48 03 c8 add rcx, rax - 000a6 48 8b c1 mov rax, rcx - 000a9 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 000ae 48 6b c9 01 imul rcx, rcx, 1 - 000b2 c5 fd 10 45 20 vmovupd ymm0, YMMWORD PTR vec$[rbp] - 000b7 c5 fd 11 04 08 vmovupd YMMWORD PTR [rax+rcx], ymm0 - -; 57 : ans[i].f64_y[2] = vec; - - 000bc 48 69 45 58 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 000c4 49 8b 8d 70 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000cb 48 03 c8 add rcx, rax - 000ce 48 8b c1 mov rax, rcx - 000d1 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 000d6 48 6b c9 02 imul rcx, rcx, 2 - 000da c5 fd 10 45 20 vmovupd ymm0, YMMWORD PTR vec$[rbp] - 000df c5 fd 11 04 08 vmovupd YMMWORD PTR [rax+rcx], ymm0 - -; 58 : ans[i].f64_y[3] = vec; - - 000e4 48 69 45 58 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 000ec 49 8b 8d 70 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000f3 48 03 c8 add rcx, rax - 000f6 48 8b c1 mov rax, rcx - 000f9 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 000fe 48 6b c9 03 imul rcx, rcx, 3 - 00102 c5 fd 10 45 20 vmovupd ymm0, YMMWORD PTR vec$[rbp] - 00107 c5 fd 11 04 08 vmovupd YMMWORD PTR [rax+rcx], ymm0 - -; 59 : } - - 0010c e9 3f ff ff ff jmp $LN2@double_buf -$LN3@double_buf: - -; 60 : } - - 00111 49 8d a5 50 01 - 00 00 lea rsp, QWORD PTR [r13+336] - 00118 5f pop rdi - 00119 5d pop rbp - 0011a 41 5d pop r13 - 0011c c3 ret 0 -double_buf_fill_avx ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT double_buf_fill_sse -_TEXT SEGMENT -vec$ = 16 -i$1 = 56 -ans$ = 304 -scalar$ = 312 -count$ = 320 -double_buf_fill_sse PROC ; COMDAT - -; 37 : { - -$LN6: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec 38 01 - 00 00 sub rsp, 312 ; 00000138H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 90 npad 1 - -; 38 : register __m128d vec = _mm_set1_pd(((double *)(scalar->data))[0]); - - 0002a b8 08 00 00 00 mov eax, 8 - 0002f 48 6b c0 00 imul rax, rax, 0 - 00033 48 8b 8d 38 01 - 00 00 mov rcx, QWORD PTR scalar$[rbp] - 0003a f2 0f 10 04 01 movsd xmm0, QWORD PTR [rcx+rax] - 0003f 66 0f 14 c0 unpcklpd xmm0, xmm0 - 00043 0f 29 45 10 movaps XMMWORD PTR vec$[rbp], xmm0 - -; 39 : for (size_t i = 0; i < count; i++) { - - 00047 48 c7 45 38 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 0004f eb 0b jmp SHORT $LN4@double_buf -$LN2@double_buf: - 00051 48 8b 45 38 mov rax, QWORD PTR i$1[rbp] - 00055 48 ff c0 inc rax - 00058 48 89 45 38 mov QWORD PTR i$1[rbp], rax -$LN4@double_buf: - 0005c 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR count$[rbp] - 00063 48 39 45 38 cmp QWORD PTR i$1[rbp], rax - 00067 0f 83 35 01 00 - 00 jae $LN3@double_buf - -; 40 : ans[i].f64_x[0] = vec; - - 0006d 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00075 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 0007c 48 03 c8 add rcx, rax - 0007f 48 8b c1 mov rax, rcx - 00082 b9 10 00 00 00 mov ecx, 16 - 00087 48 6b c9 00 imul rcx, rcx, 0 - 0008b 0f 28 45 10 movaps xmm0, XMMWORD PTR vec$[rbp] - 0008f 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 41 : ans[i].f64_x[1] = vec; - - 00093 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0009b 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 000a2 48 03 c8 add rcx, rax - 000a5 48 8b c1 mov rax, rcx - 000a8 b9 10 00 00 00 mov ecx, 16 - 000ad 48 6b c9 01 imul rcx, rcx, 1 - 000b1 0f 28 45 10 movaps xmm0, XMMWORD PTR vec$[rbp] - 000b5 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 42 : ans[i].f64_x[2] = vec; - - 000b9 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 000c1 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 000c8 48 03 c8 add rcx, rax - 000cb 48 8b c1 mov rax, rcx - 000ce b9 10 00 00 00 mov ecx, 16 - 000d3 48 6b c9 02 imul rcx, rcx, 2 - 000d7 0f 28 45 10 movaps xmm0, XMMWORD PTR vec$[rbp] - 000db 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 43 : ans[i].f64_x[3] = vec; - - 000df 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 000e7 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 000ee 48 03 c8 add rcx, rax - 000f1 48 8b c1 mov rax, rcx - 000f4 b9 10 00 00 00 mov ecx, 16 - 000f9 48 6b c9 03 imul rcx, rcx, 3 - 000fd 0f 28 45 10 movaps xmm0, XMMWORD PTR vec$[rbp] - 00101 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 44 : ans[i].f64_x[4] = vec; - - 00105 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0010d 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00114 48 03 c8 add rcx, rax - 00117 48 8b c1 mov rax, rcx - 0011a b9 10 00 00 00 mov ecx, 16 - 0011f 48 6b c9 04 imul rcx, rcx, 4 - 00123 0f 28 45 10 movaps xmm0, XMMWORD PTR vec$[rbp] - 00127 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 45 : ans[i].f64_x[5] = vec; - - 0012b 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00133 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 0013a 48 03 c8 add rcx, rax - 0013d 48 8b c1 mov rax, rcx - 00140 b9 10 00 00 00 mov ecx, 16 - 00145 48 6b c9 05 imul rcx, rcx, 5 - 00149 0f 28 45 10 movaps xmm0, XMMWORD PTR vec$[rbp] - 0014d 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 46 : ans[i].f64_x[6] = vec; - - 00151 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00159 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00160 48 03 c8 add rcx, rax - 00163 48 8b c1 mov rax, rcx - 00166 b9 10 00 00 00 mov ecx, 16 - 0016b 48 6b c9 06 imul rcx, rcx, 6 - 0016f 0f 28 45 10 movaps xmm0, XMMWORD PTR vec$[rbp] - 00173 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 47 : ans[i].f64_x[7] = vec; - - 00177 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0017f 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00186 48 03 c8 add rcx, rax - 00189 48 8b c1 mov rax, rcx - 0018c b9 10 00 00 00 mov ecx, 16 - 00191 48 6b c9 07 imul rcx, rcx, 7 - 00195 0f 28 45 10 movaps xmm0, XMMWORD PTR vec$[rbp] - 00199 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 48 : } - - 0019d e9 af fe ff ff jmp $LN2@double_buf -$LN3@double_buf: - -; 49 : } - - 001a2 48 8d a5 18 01 - 00 00 lea rsp, QWORD PTR [rbp+280] - 001a9 5f pop rdi - 001aa 5d pop rbp - 001ab c3 ret 0 -double_buf_fill_sse ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT float_buf_fill_512 -_TEXT SEGMENT -vec$ = 64 -i$1 = 152 -ans$ = 464 -scalar$ = 472 -count$ = 480 -float_buf_fill_512 PROC ; COMDAT - -; 29 : { - -$LN6: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 41 55 push r13 - 00011 55 push rbp - 00012 57 push rdi - 00013 48 81 ec d0 01 - 00 00 sub rsp, 464 ; 000001d0H - 0001a 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 0001f 48 8d 6c 24 60 lea rbp, QWORD PTR [rsp+96] - 00024 48 83 e5 c0 and rbp, -64 ; ffffffffffffffc0H - 00028 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00034 90 npad 1 - -; 30 : register __m512 vec = _mm512_broadcastss_ps(((__m128 *)(scalar->data))[0]); - - 00035 b8 10 00 00 00 mov eax, 16 - 0003a 48 6b c0 00 imul rax, rax, 0 - 0003e 49 8b 8d d8 01 - 00 00 mov rcx, QWORD PTR scalar$[r13] - 00045 62 f2 7d 48 18 - 04 01 vbroadcastss zmm0, XMMWORD PTR [rcx+rax] - 0004c 62 f1 7c 48 11 - 45 01 vmovups ZMMWORD PTR vec$[rbp], zmm0 - -; 31 : for (size_t i = 0; i < count; i++) { - - 00053 48 c7 85 98 00 - 00 00 00 00 00 - 00 mov QWORD PTR i$1[rbp], 0 - 0005e eb 11 jmp SHORT $LN4@float_buf_ -$LN2@float_buf_: - 00060 48 8b 85 98 00 - 00 00 mov rax, QWORD PTR i$1[rbp] - 00067 48 ff c0 inc rax - 0006a 48 89 85 98 00 - 00 00 mov QWORD PTR i$1[rbp], rax -$LN4@float_buf_: - 00071 49 8b 85 e0 01 - 00 00 mov rax, QWORD PTR count$[r13] - 00078 48 39 85 98 00 - 00 00 cmp QWORD PTR i$1[rbp], rax - 0007f 73 2e jae SHORT $LN3@float_buf_ - -; 32 : ans[i].f32_z[0] = vec; - - 00081 48 6b 85 98 00 - 00 00 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 00089 49 8b 8d d0 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00090 48 03 c8 add rcx, rax - 00093 48 8b c1 mov rax, rcx - 00096 b9 40 00 00 00 mov ecx, 64 ; 00000040H - 0009b 48 6b c9 00 imul rcx, rcx, 0 - 0009f 62 f1 7c 48 10 - 45 01 vmovups zmm0, ZMMWORD PTR vec$[rbp] - 000a6 62 f1 7c 48 11 - 04 08 vmovups ZMMWORD PTR [rax+rcx], zmm0 - -; 33 : } - - 000ad eb b1 jmp SHORT $LN2@float_buf_ -$LN3@float_buf_: - -; 34 : } - - 000af 49 8d a5 b0 01 - 00 00 lea rsp, QWORD PTR [r13+432] - 000b6 5f pop rdi - 000b7 5d pop rbp - 000b8 41 5d pop r13 - 000ba c3 ret 0 -float_buf_fill_512 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT float_buf_fill_avx -_TEXT SEGMENT -vec$ = 32 -i$1 = 88 -ans$ = 368 -scalar$ = 376 -count$ = 384 -float_buf_fill_avx PROC ; COMDAT - -; 20 : { - -$LN6: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 41 55 push r13 - 00011 55 push rbp - 00012 57 push rdi - 00013 48 81 ec 70 01 - 00 00 sub rsp, 368 ; 00000170H - 0001a 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 0001f 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00024 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H - 00028 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00034 90 npad 1 - -; 21 : register __m256 vec = _mm256_broadcast_ss(((float *)(scalar->data))); - - 00035 49 8b 85 78 01 - 00 00 mov rax, QWORD PTR scalar$[r13] - 0003c c4 e2 7d 18 00 vbroadcastss ymm0, DWORD PTR [rax] - 00041 c5 fc 11 45 20 vmovups YMMWORD PTR vec$[rbp], ymm0 - -; 22 : for (size_t i = 0; i < count; i++) { - - 00046 48 c7 45 58 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 0004e eb 0b jmp SHORT $LN4@float_buf_ -$LN2@float_buf_: - 00050 48 8b 45 58 mov rax, QWORD PTR i$1[rbp] - 00054 48 ff c0 inc rax - 00057 48 89 45 58 mov QWORD PTR i$1[rbp], rax -$LN4@float_buf_: - 0005b 49 8b 85 80 01 - 00 00 mov rax, QWORD PTR count$[r13] - 00062 48 39 45 58 cmp QWORD PTR i$1[rbp], rax - 00066 73 4c jae SHORT $LN3@float_buf_ - -; 23 : ans[i].f32_y[0] = vec; - - 00068 48 6b 45 58 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 0006d 49 8b 8d 70 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00074 48 03 c8 add rcx, rax - 00077 48 8b c1 mov rax, rcx - 0007a b9 20 00 00 00 mov ecx, 32 ; 00000020H - 0007f 48 6b c9 00 imul rcx, rcx, 0 - 00083 c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR vec$[rbp] - 00088 c5 fc 11 04 08 vmovups YMMWORD PTR [rax+rcx], ymm0 - -; 24 : ans[i].f32_y[1] = vec; - - 0008d 48 6b 45 58 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 00092 49 8b 8d 70 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00099 48 03 c8 add rcx, rax - 0009c 48 8b c1 mov rax, rcx - 0009f b9 20 00 00 00 mov ecx, 32 ; 00000020H - 000a4 48 6b c9 01 imul rcx, rcx, 1 - 000a8 c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR vec$[rbp] - 000ad c5 fc 11 04 08 vmovups YMMWORD PTR [rax+rcx], ymm0 - -; 25 : } - - 000b2 eb 9c jmp SHORT $LN2@float_buf_ -$LN3@float_buf_: - -; 26 : } - - 000b4 49 8d a5 50 01 - 00 00 lea rsp, QWORD PTR [r13+336] - 000bb 5f pop rdi - 000bc 5d pop rbp - 000bd 41 5d pop r13 - 000bf c3 ret 0 -float_buf_fill_avx ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT float_buf_fill_sse -_TEXT SEGMENT -vec$ = 16 -i$1 = 56 -ans$ = 304 -scalar$ = 312 -count$ = 320 -float_buf_fill_sse PROC ; COMDAT - -; 9 : { - -$LN6: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec 38 01 - 00 00 sub rsp, 312 ; 00000138H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 90 npad 1 - -; 10 : register __m128 vec = _mm_set_ps1(((float *)(scalar->data))[0]); - - 0002a b8 04 00 00 00 mov eax, 4 - 0002f 48 6b c0 00 imul rax, rax, 0 - 00033 48 8b 8d 38 01 - 00 00 mov rcx, QWORD PTR scalar$[rbp] - 0003a f3 0f 10 04 01 movss xmm0, DWORD PTR [rcx+rax] - 0003f 0f c6 c0 00 shufps xmm0, xmm0, 0 - 00043 0f 29 45 10 movaps XMMWORD PTR vec$[rbp], xmm0 - -; 11 : for (size_t i = 0; i < count; i++) { - - 00047 48 c7 45 38 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 0004f eb 0b jmp SHORT $LN4@float_buf_ -$LN2@float_buf_: - 00051 48 8b 45 38 mov rax, QWORD PTR i$1[rbp] - 00055 48 ff c0 inc rax - 00058 48 89 45 38 mov QWORD PTR i$1[rbp], rax -$LN4@float_buf_: - 0005c 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR count$[rbp] - 00063 48 39 45 38 cmp QWORD PTR i$1[rbp], rax - 00067 0f 83 91 00 00 - 00 jae $LN3@float_buf_ - -; 12 : ans[i].f32_x[0] = vec; - - 0006d 48 6b 45 38 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 00072 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00079 48 03 c8 add rcx, rax - 0007c 48 8b c1 mov rax, rcx - 0007f b9 10 00 00 00 mov ecx, 16 - 00084 48 6b c9 00 imul rcx, rcx, 0 - 00088 0f 28 45 10 movaps xmm0, XMMWORD PTR vec$[rbp] - 0008c 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 13 : ans[i].f32_x[1] = vec; - - 00090 48 6b 45 38 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 00095 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 0009c 48 03 c8 add rcx, rax - 0009f 48 8b c1 mov rax, rcx - 000a2 b9 10 00 00 00 mov ecx, 16 - 000a7 48 6b c9 01 imul rcx, rcx, 1 - 000ab 0f 28 45 10 movaps xmm0, XMMWORD PTR vec$[rbp] - 000af 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 14 : ans[i].f32_x[2] = vec; - - 000b3 48 6b 45 38 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 000b8 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 000bf 48 03 c8 add rcx, rax - 000c2 48 8b c1 mov rax, rcx - 000c5 b9 10 00 00 00 mov ecx, 16 - 000ca 48 6b c9 02 imul rcx, rcx, 2 - 000ce 0f 28 45 10 movaps xmm0, XMMWORD PTR vec$[rbp] - 000d2 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 15 : ans[i].f32_x[3] = vec; - - 000d6 48 6b 45 38 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 000db 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 000e2 48 03 c8 add rcx, rax - 000e5 48 8b c1 mov rax, rcx - 000e8 b9 10 00 00 00 mov ecx, 16 - 000ed 48 6b c9 03 imul rcx, rcx, 3 - 000f1 0f 28 45 10 movaps xmm0, XMMWORD PTR vec$[rbp] - 000f5 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 16 : } - - 000f9 e9 53 ff ff ff jmp $LN2@float_buf_ -$LN3@float_buf_: - -; 17 : } - - 000fe 48 8d a5 18 01 - 00 00 lea rsp, QWORD PTR [rbp+280] - 00105 5f pop rdi - 00106 5d pop rbp - 00107 c3 ret 0 -float_buf_fill_sse ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT double_buf_scalar_mul_512 -_TEXT SEGMENT -vec$ = 64 -i$1 = 152 -c0$2 = 192 -c1$3 = 320 -right$ = 688 -ans$ = 696 -scalar$ = 704 -count$ = 712 -double_buf_scalar_mul_512 PROC ; COMDAT - -; 313 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 41 55 push r13 - 00016 55 push rbp - 00017 57 push rdi - 00018 48 81 ec b0 02 - 00 00 sub rsp, 688 ; 000002b0H - 0001f 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00024 48 8d 6c 24 60 lea rbp, QWORD PTR [rsp+96] - 00029 48 83 e5 c0 and rbp, -64 ; ffffffffffffffc0H - 0002d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 00034 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00039 90 npad 1 - -; 314 : register __m512d vec = _mm512_broadcastsd_pd(_mm_load_pd(scalar)); - - 0003a 49 8b 85 c0 02 - 00 00 mov rax, QWORD PTR scalar$[r13] - 00041 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00044 62 f2 fd 48 19 - c0 vbroadcastsd zmm0, xmm0 - 0004a 62 f1 fd 48 11 - 45 01 vmovupd ZMMWORD PTR vec$[rbp], zmm0 - -; 315 : for (size_t i = 0; i < count; i++) { - - 00051 48 c7 85 98 00 - 00 00 00 00 00 - 00 mov QWORD PTR i$1[rbp], 0 - 0005c eb 11 jmp SHORT $LN4@double_buf -$LN2@double_buf: - 0005e 48 8b 85 98 00 - 00 00 mov rax, QWORD PTR i$1[rbp] - 00065 48 ff c0 inc rax - 00068 48 89 85 98 00 - 00 00 mov QWORD PTR i$1[rbp], rax -$LN4@double_buf: - 0006f 49 8b 85 c8 02 - 00 00 mov rax, QWORD PTR count$[r13] - 00076 48 39 85 98 00 - 00 00 cmp QWORD PTR i$1[rbp], rax - 0007d 0f 83 cf 00 00 - 00 jae $LN3@double_buf - -; 316 : register __m512d c0 = _mm512_mul_pd(right[i].f64_z[0], vec); - - 00083 48 69 85 98 00 - 00 00 80 00 00 - 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0008e 49 8b 8d b0 02 - 00 00 mov rcx, QWORD PTR right$[r13] - 00095 48 03 c8 add rcx, rax - 00098 48 8b c1 mov rax, rcx - 0009b b9 40 00 00 00 mov ecx, 64 ; 00000040H - 000a0 48 6b c9 00 imul rcx, rcx, 0 - 000a4 62 f1 fd 48 10 - 04 08 vmovupd zmm0, ZMMWORD PTR [rax+rcx] - 000ab 62 f1 fd 48 59 - 45 01 vmulpd zmm0, zmm0, ZMMWORD PTR vec$[rbp] - 000b2 62 f1 fd 48 11 - 45 03 vmovupd ZMMWORD PTR c0$2[rbp], zmm0 - -; 317 : register __m512d c1 = _mm512_mul_pd(right[i].f64_z[1], vec); - - 000b9 48 69 85 98 00 - 00 00 80 00 00 - 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 000c4 49 8b 8d b0 02 - 00 00 mov rcx, QWORD PTR right$[r13] - 000cb 48 03 c8 add rcx, rax - 000ce 48 8b c1 mov rax, rcx - 000d1 b9 40 00 00 00 mov ecx, 64 ; 00000040H - 000d6 48 6b c9 01 imul rcx, rcx, 1 - 000da 62 f1 fd 48 10 - 04 08 vmovupd zmm0, ZMMWORD PTR [rax+rcx] - 000e1 62 f1 fd 48 59 - 45 01 vmulpd zmm0, zmm0, ZMMWORD PTR vec$[rbp] - 000e8 62 f1 fd 48 11 - 45 05 vmovupd ZMMWORD PTR c1$3[rbp], zmm0 - -; 318 : -; 319 : ans[i].f64_z[0] = c0; - - 000ef 48 69 85 98 00 - 00 00 80 00 00 - 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 000fa 49 8b 8d b8 02 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00101 48 03 c8 add rcx, rax - 00104 48 8b c1 mov rax, rcx - 00107 b9 40 00 00 00 mov ecx, 64 ; 00000040H - 0010c 48 6b c9 00 imul rcx, rcx, 0 - 00110 62 f1 fd 48 10 - 45 03 vmovupd zmm0, ZMMWORD PTR c0$2[rbp] - 00117 62 f1 fd 48 11 - 04 08 vmovupd ZMMWORD PTR [rax+rcx], zmm0 - -; 320 : ans[i].f64_z[1] = c1; - - 0011e 48 69 85 98 00 - 00 00 80 00 00 - 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00129 49 8b 8d b8 02 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00130 48 03 c8 add rcx, rax - 00133 48 8b c1 mov rax, rcx - 00136 b9 40 00 00 00 mov ecx, 64 ; 00000040H - 0013b 48 6b c9 01 imul rcx, rcx, 1 - 0013f 62 f1 fd 48 10 - 45 05 vmovupd zmm0, ZMMWORD PTR c1$3[rbp] - 00146 62 f1 fd 48 11 - 04 08 vmovupd ZMMWORD PTR [rax+rcx], zmm0 - -; 321 : } - - 0014d e9 0c ff ff ff jmp $LN2@double_buf -$LN3@double_buf: - -; 322 : } - - 00152 49 8d a5 90 02 - 00 00 lea rsp, QWORD PTR [r13+656] - 00159 5f pop rdi - 0015a 5d pop rbp - 0015b 41 5d pop r13 - 0015d c3 ret 0 -double_buf_scalar_mul_512 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT double_buf_scalar_mul_avx -_TEXT SEGMENT -vec$ = 32 -i$1 = 88 -c0$2 = 128 -c1$3 = 192 -c2$4 = 256 -c3$5 = 320 -right$ = 624 -ans$ = 632 -scalar$ = 640 -count$ = 648 -double_buf_scalar_mul_avx PROC ; COMDAT - -; 297 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 41 55 push r13 - 00016 55 push rbp - 00017 57 push rdi - 00018 48 81 ec 70 02 - 00 00 sub rsp, 624 ; 00000270H - 0001f 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00024 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00029 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H - 0002d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 00034 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00039 90 npad 1 - -; 298 : register __m256d vec = _mm256_broadcast_sd(((double *)(scalar->data))); - - 0003a 49 8b 85 80 02 - 00 00 mov rax, QWORD PTR scalar$[r13] - 00041 c4 e2 7d 19 00 vbroadcastsd ymm0, QWORD PTR [rax] - 00046 c5 fd 11 45 20 vmovupd YMMWORD PTR vec$[rbp], ymm0 - -; 299 : for (size_t i = 0; i < count; i++) { - - 0004b 48 c7 45 58 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 00053 eb 0b jmp SHORT $LN4@double_buf -$LN2@double_buf: - 00055 48 8b 45 58 mov rax, QWORD PTR i$1[rbp] - 00059 48 ff c0 inc rax - 0005c 48 89 45 58 mov QWORD PTR i$1[rbp], rax -$LN4@double_buf: - 00060 49 8b 85 88 02 - 00 00 mov rax, QWORD PTR count$[r13] - 00067 48 39 45 58 cmp QWORD PTR i$1[rbp], rax - 0006b 0f 83 71 01 00 - 00 jae $LN3@double_buf - -; 300 : register __m256d c0 = _mm256_mul_pd(right[i].f64_y[0], vec); - - 00071 48 69 45 58 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00079 49 8b 8d 70 02 - 00 00 mov rcx, QWORD PTR right$[r13] - 00080 48 03 c8 add rcx, rax - 00083 48 8b c1 mov rax, rcx - 00086 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 0008b 48 6b c9 00 imul rcx, rcx, 0 - 0008f c5 fd 10 04 08 vmovupd ymm0, YMMWORD PTR [rax+rcx] - 00094 c5 fd 59 45 20 vmulpd ymm0, ymm0, YMMWORD PTR vec$[rbp] - 00099 c5 fd 11 85 80 - 00 00 00 vmovupd YMMWORD PTR c0$2[rbp], ymm0 - -; 301 : register __m256d c1 = _mm256_mul_pd(right[i].f64_y[1], vec); - - 000a1 48 69 45 58 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 000a9 49 8b 8d 70 02 - 00 00 mov rcx, QWORD PTR right$[r13] - 000b0 48 03 c8 add rcx, rax - 000b3 48 8b c1 mov rax, rcx - 000b6 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 000bb 48 6b c9 01 imul rcx, rcx, 1 - 000bf c5 fd 10 04 08 vmovupd ymm0, YMMWORD PTR [rax+rcx] - 000c4 c5 fd 59 45 20 vmulpd ymm0, ymm0, YMMWORD PTR vec$[rbp] - 000c9 c5 fd 11 85 c0 - 00 00 00 vmovupd YMMWORD PTR c1$3[rbp], ymm0 - -; 302 : register __m256d c2 = _mm256_mul_pd(right[i].f64_y[2], vec); - - 000d1 48 69 45 58 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 000d9 49 8b 8d 70 02 - 00 00 mov rcx, QWORD PTR right$[r13] - 000e0 48 03 c8 add rcx, rax - 000e3 48 8b c1 mov rax, rcx - 000e6 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 000eb 48 6b c9 02 imul rcx, rcx, 2 - 000ef c5 fd 10 04 08 vmovupd ymm0, YMMWORD PTR [rax+rcx] - 000f4 c5 fd 59 45 20 vmulpd ymm0, ymm0, YMMWORD PTR vec$[rbp] - 000f9 c5 fd 11 85 00 - 01 00 00 vmovupd YMMWORD PTR c2$4[rbp], ymm0 - -; 303 : register __m256d c3 = _mm256_mul_pd(right[i].f64_y[3], vec); - - 00101 48 69 45 58 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00109 49 8b 8d 70 02 - 00 00 mov rcx, QWORD PTR right$[r13] - 00110 48 03 c8 add rcx, rax - 00113 48 8b c1 mov rax, rcx - 00116 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 0011b 48 6b c9 03 imul rcx, rcx, 3 - 0011f c5 fd 10 04 08 vmovupd ymm0, YMMWORD PTR [rax+rcx] - 00124 c5 fd 59 45 20 vmulpd ymm0, ymm0, YMMWORD PTR vec$[rbp] - 00129 c5 fd 11 85 40 - 01 00 00 vmovupd YMMWORD PTR c3$5[rbp], ymm0 - -; 304 : -; 305 : ans[i].f64_y[0] = c0; - - 00131 48 69 45 58 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00139 49 8b 8d 78 02 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00140 48 03 c8 add rcx, rax - 00143 48 8b c1 mov rax, rcx - 00146 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 0014b 48 6b c9 00 imul rcx, rcx, 0 - 0014f c5 fd 10 85 80 - 00 00 00 vmovupd ymm0, YMMWORD PTR c0$2[rbp] - 00157 c5 fd 11 04 08 vmovupd YMMWORD PTR [rax+rcx], ymm0 - -; 306 : ans[i].f64_y[1] = c1; - - 0015c 48 69 45 58 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00164 49 8b 8d 78 02 - 00 00 mov rcx, QWORD PTR ans$[r13] - 0016b 48 03 c8 add rcx, rax - 0016e 48 8b c1 mov rax, rcx - 00171 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 00176 48 6b c9 01 imul rcx, rcx, 1 - 0017a c5 fd 10 85 c0 - 00 00 00 vmovupd ymm0, YMMWORD PTR c1$3[rbp] - 00182 c5 fd 11 04 08 vmovupd YMMWORD PTR [rax+rcx], ymm0 - -; 307 : ans[i].f64_y[2] = c2; - - 00187 48 69 45 58 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0018f 49 8b 8d 78 02 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00196 48 03 c8 add rcx, rax - 00199 48 8b c1 mov rax, rcx - 0019c b9 20 00 00 00 mov ecx, 32 ; 00000020H - 001a1 48 6b c9 02 imul rcx, rcx, 2 - 001a5 c5 fd 10 85 00 - 01 00 00 vmovupd ymm0, YMMWORD PTR c2$4[rbp] - 001ad c5 fd 11 04 08 vmovupd YMMWORD PTR [rax+rcx], ymm0 - -; 308 : ans[i].f64_y[3] = c3; - - 001b2 48 69 45 58 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 001ba 49 8b 8d 78 02 - 00 00 mov rcx, QWORD PTR ans$[r13] - 001c1 48 03 c8 add rcx, rax - 001c4 48 8b c1 mov rax, rcx - 001c7 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 001cc 48 6b c9 03 imul rcx, rcx, 3 - 001d0 c5 fd 10 85 40 - 01 00 00 vmovupd ymm0, YMMWORD PTR c3$5[rbp] - 001d8 c5 fd 11 04 08 vmovupd YMMWORD PTR [rax+rcx], ymm0 - -; 309 : } - - 001dd e9 73 fe ff ff jmp $LN2@double_buf -$LN3@double_buf: - -; 310 : } - - 001e2 49 8d a5 50 02 - 00 00 lea rsp, QWORD PTR [r13+592] - 001e9 5f pop rdi - 001ea 5d pop rbp - 001eb 41 5d pop r13 - 001ed c3 ret 0 -double_buf_scalar_mul_avx ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT double_buf_scalar_mul_sse -_TEXT SEGMENT -vec$ = 16 -i$1 = 56 -c0$2 = 96 -c1$3 = 144 -c2$4 = 192 -c3$5 = 240 -c4$6 = 288 -c5$7 = 336 -c6$8 = 384 -c7$9 = 432 -right$ = 688 -ans$ = 696 -scalar$ = 704 -count$ = 712 -double_buf_scalar_mul_sse PROC ; COMDAT - -; 273 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec b8 02 - 00 00 sub rsp, 696 ; 000002b8H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 274 : register __m128d vec = _mm_set1_pd(((double *)(scalar->data))[0]); - - 0002f b8 08 00 00 00 mov eax, 8 - 00034 48 6b c0 00 imul rax, rax, 0 - 00038 48 8b 8d c0 02 - 00 00 mov rcx, QWORD PTR scalar$[rbp] - 0003f f2 0f 10 04 01 movsd xmm0, QWORD PTR [rcx+rax] - 00044 66 0f 14 c0 unpcklpd xmm0, xmm0 - 00048 0f 29 45 10 movaps XMMWORD PTR vec$[rbp], xmm0 - -; 275 : for (size_t i = 0; i < count; i++) { - - 0004c 48 c7 45 38 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 00054 eb 0b jmp SHORT $LN4@double_buf -$LN2@double_buf: - 00056 48 8b 45 38 mov rax, QWORD PTR i$1[rbp] - 0005a 48 ff c0 inc rax - 0005d 48 89 45 38 mov QWORD PTR i$1[rbp], rax -$LN4@double_buf: - 00061 48 8b 85 c8 02 - 00 00 mov rax, QWORD PTR count$[rbp] - 00068 48 39 45 38 cmp QWORD PTR i$1[rbp], rax - 0006c 0f 83 b7 02 00 - 00 jae $LN3@double_buf - -; 276 : register __m128d c0 = _mm_mul_pd(right[i].f64_x[0], vec); - - 00072 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0007a 48 8b 8d b0 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00081 48 03 c8 add rcx, rax - 00084 48 8b c1 mov rax, rcx - 00087 b9 10 00 00 00 mov ecx, 16 - 0008c 48 6b c9 00 imul rcx, rcx, 0 - 00090 0f 10 04 08 movups xmm0, XMMWORD PTR [rax+rcx] - 00094 66 0f 59 45 10 mulpd xmm0, XMMWORD PTR vec$[rbp] - 00099 0f 29 45 60 movaps XMMWORD PTR c0$2[rbp], xmm0 - -; 277 : register __m128d c1 = _mm_mul_pd(right[i].f64_x[1], vec); - - 0009d 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 000a5 48 8b 8d b0 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 000ac 48 03 c8 add rcx, rax - 000af 48 8b c1 mov rax, rcx - 000b2 b9 10 00 00 00 mov ecx, 16 - 000b7 48 6b c9 01 imul rcx, rcx, 1 - 000bb 0f 10 04 08 movups xmm0, XMMWORD PTR [rax+rcx] - 000bf 66 0f 59 45 10 mulpd xmm0, XMMWORD PTR vec$[rbp] - 000c4 0f 29 85 90 00 - 00 00 movaps XMMWORD PTR c1$3[rbp], xmm0 - -; 278 : register __m128d c2 = _mm_mul_pd(right[i].f64_x[2], vec); - - 000cb 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 000d3 48 8b 8d b0 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 000da 48 03 c8 add rcx, rax - 000dd 48 8b c1 mov rax, rcx - 000e0 b9 10 00 00 00 mov ecx, 16 - 000e5 48 6b c9 02 imul rcx, rcx, 2 - 000e9 0f 10 04 08 movups xmm0, XMMWORD PTR [rax+rcx] - 000ed 66 0f 59 45 10 mulpd xmm0, XMMWORD PTR vec$[rbp] - 000f2 0f 29 85 c0 00 - 00 00 movaps XMMWORD PTR c2$4[rbp], xmm0 - -; 279 : register __m128d c3 = _mm_mul_pd(right[i].f64_x[3], vec); - - 000f9 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00101 48 8b 8d b0 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00108 48 03 c8 add rcx, rax - 0010b 48 8b c1 mov rax, rcx - 0010e b9 10 00 00 00 mov ecx, 16 - 00113 48 6b c9 03 imul rcx, rcx, 3 - 00117 0f 10 04 08 movups xmm0, XMMWORD PTR [rax+rcx] - 0011b 66 0f 59 45 10 mulpd xmm0, XMMWORD PTR vec$[rbp] - 00120 0f 29 85 f0 00 - 00 00 movaps XMMWORD PTR c3$5[rbp], xmm0 - -; 280 : register __m128d c4 = _mm_mul_pd(right[i].f64_x[4], vec); - - 00127 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0012f 48 8b 8d b0 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00136 48 03 c8 add rcx, rax - 00139 48 8b c1 mov rax, rcx - 0013c b9 10 00 00 00 mov ecx, 16 - 00141 48 6b c9 04 imul rcx, rcx, 4 - 00145 0f 10 04 08 movups xmm0, XMMWORD PTR [rax+rcx] - 00149 66 0f 59 45 10 mulpd xmm0, XMMWORD PTR vec$[rbp] - 0014e 0f 29 85 20 01 - 00 00 movaps XMMWORD PTR c4$6[rbp], xmm0 - -; 281 : register __m128d c5 = _mm_mul_pd(right[i].f64_x[5], vec); - - 00155 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0015d 48 8b 8d b0 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00164 48 03 c8 add rcx, rax - 00167 48 8b c1 mov rax, rcx - 0016a b9 10 00 00 00 mov ecx, 16 - 0016f 48 6b c9 05 imul rcx, rcx, 5 - 00173 0f 10 04 08 movups xmm0, XMMWORD PTR [rax+rcx] - 00177 66 0f 59 45 10 mulpd xmm0, XMMWORD PTR vec$[rbp] - 0017c 0f 29 85 50 01 - 00 00 movaps XMMWORD PTR c5$7[rbp], xmm0 - -; 282 : register __m128d c6 = _mm_mul_pd(right[i].f64_x[6], vec); - - 00183 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0018b 48 8b 8d b0 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00192 48 03 c8 add rcx, rax - 00195 48 8b c1 mov rax, rcx - 00198 b9 10 00 00 00 mov ecx, 16 - 0019d 48 6b c9 06 imul rcx, rcx, 6 - 001a1 0f 10 04 08 movups xmm0, XMMWORD PTR [rax+rcx] - 001a5 66 0f 59 45 10 mulpd xmm0, XMMWORD PTR vec$[rbp] - 001aa 0f 29 85 80 01 - 00 00 movaps XMMWORD PTR c6$8[rbp], xmm0 - -; 283 : register __m128d c7 = _mm_mul_pd(right[i].f64_x[7], vec); - - 001b1 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 001b9 48 8b 8d b0 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 001c0 48 03 c8 add rcx, rax - 001c3 48 8b c1 mov rax, rcx - 001c6 b9 10 00 00 00 mov ecx, 16 - 001cb 48 6b c9 07 imul rcx, rcx, 7 - 001cf 0f 10 04 08 movups xmm0, XMMWORD PTR [rax+rcx] - 001d3 66 0f 59 45 10 mulpd xmm0, XMMWORD PTR vec$[rbp] - 001d8 0f 29 85 b0 01 - 00 00 movaps XMMWORD PTR c7$9[rbp], xmm0 - -; 284 : -; 285 : ans[i].f64_x[0] = c0; - - 001df 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 001e7 48 8b 8d b8 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 001ee 48 03 c8 add rcx, rax - 001f1 48 8b c1 mov rax, rcx - 001f4 b9 10 00 00 00 mov ecx, 16 - 001f9 48 6b c9 00 imul rcx, rcx, 0 - 001fd 0f 28 45 60 movaps xmm0, XMMWORD PTR c0$2[rbp] - 00201 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 286 : ans[i].f64_x[1] = c1; - - 00205 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0020d 48 8b 8d b8 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00214 48 03 c8 add rcx, rax - 00217 48 8b c1 mov rax, rcx - 0021a b9 10 00 00 00 mov ecx, 16 - 0021f 48 6b c9 01 imul rcx, rcx, 1 - 00223 0f 28 85 90 00 - 00 00 movaps xmm0, XMMWORD PTR c1$3[rbp] - 0022a 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 287 : ans[i].f64_x[2] = c2; - - 0022e 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00236 48 8b 8d b8 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 0023d 48 03 c8 add rcx, rax - 00240 48 8b c1 mov rax, rcx - 00243 b9 10 00 00 00 mov ecx, 16 - 00248 48 6b c9 02 imul rcx, rcx, 2 - 0024c 0f 28 85 c0 00 - 00 00 movaps xmm0, XMMWORD PTR c2$4[rbp] - 00253 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 288 : ans[i].f64_x[3] = c3; - - 00257 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0025f 48 8b 8d b8 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00266 48 03 c8 add rcx, rax - 00269 48 8b c1 mov rax, rcx - 0026c b9 10 00 00 00 mov ecx, 16 - 00271 48 6b c9 03 imul rcx, rcx, 3 - 00275 0f 28 85 f0 00 - 00 00 movaps xmm0, XMMWORD PTR c3$5[rbp] - 0027c 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 289 : ans[i].f64_x[4] = c4; - - 00280 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00288 48 8b 8d b8 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 0028f 48 03 c8 add rcx, rax - 00292 48 8b c1 mov rax, rcx - 00295 b9 10 00 00 00 mov ecx, 16 - 0029a 48 6b c9 04 imul rcx, rcx, 4 - 0029e 0f 28 85 20 01 - 00 00 movaps xmm0, XMMWORD PTR c4$6[rbp] - 002a5 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 290 : ans[i].f64_x[5] = c5; - - 002a9 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 002b1 48 8b 8d b8 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 002b8 48 03 c8 add rcx, rax - 002bb 48 8b c1 mov rax, rcx - 002be b9 10 00 00 00 mov ecx, 16 - 002c3 48 6b c9 05 imul rcx, rcx, 5 - 002c7 0f 28 85 50 01 - 00 00 movaps xmm0, XMMWORD PTR c5$7[rbp] - 002ce 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 291 : ans[i].f64_x[6] = c6; - - 002d2 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 002da 48 8b 8d b8 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 002e1 48 03 c8 add rcx, rax - 002e4 48 8b c1 mov rax, rcx - 002e7 b9 10 00 00 00 mov ecx, 16 - 002ec 48 6b c9 06 imul rcx, rcx, 6 - 002f0 0f 28 85 80 01 - 00 00 movaps xmm0, XMMWORD PTR c6$8[rbp] - 002f7 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 292 : ans[i].f64_x[7] = c7; - - 002fb 48 69 45 38 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00303 48 8b 8d b8 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 0030a 48 03 c8 add rcx, rax - 0030d 48 8b c1 mov rax, rcx - 00310 b9 10 00 00 00 mov ecx, 16 - 00315 48 6b c9 07 imul rcx, rcx, 7 - 00319 0f 28 85 b0 01 - 00 00 movaps xmm0, XMMWORD PTR c7$9[rbp] - 00320 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 293 : } - - 00324 e9 2d fd ff ff jmp $LN2@double_buf -$LN3@double_buf: - -; 294 : } - - 00329 48 8d a5 98 02 - 00 00 lea rsp, QWORD PTR [rbp+664] - 00330 5f pop rdi - 00331 5d pop rbp - 00332 c3 ret 0 -double_buf_scalar_mul_sse ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT float_buf_scalar_mul_512 -_TEXT SEGMENT -vec$ = 64 -i$1 = 152 -c0$2 = 192 -right$ = 560 -ans$ = 568 -scalar$ = 576 -count$ = 584 -float_buf_scalar_mul_512 PROC ; COMDAT - -; 263 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 41 55 push r13 - 00016 55 push rbp - 00017 57 push rdi - 00018 48 81 ec 30 02 - 00 00 sub rsp, 560 ; 00000230H - 0001f 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00024 48 8d 6c 24 60 lea rbp, QWORD PTR [rsp+96] - 00029 48 83 e5 c0 and rbp, -64 ; ffffffffffffffc0H - 0002d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 00034 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00039 90 npad 1 - -; 264 : register __m512 vec = _mm512_broadcastss_ps(((__m128 *)(scalar->data))[0]); - - 0003a b8 10 00 00 00 mov eax, 16 - 0003f 48 6b c0 00 imul rax, rax, 0 - 00043 49 8b 8d 40 02 - 00 00 mov rcx, QWORD PTR scalar$[r13] - 0004a 62 f2 7d 48 18 - 04 01 vbroadcastss zmm0, XMMWORD PTR [rcx+rax] - 00051 62 f1 7c 48 11 - 45 01 vmovups ZMMWORD PTR vec$[rbp], zmm0 - -; 265 : for (size_t i = 0; i < count; i++) { - - 00058 48 c7 85 98 00 - 00 00 00 00 00 - 00 mov QWORD PTR i$1[rbp], 0 - 00063 eb 11 jmp SHORT $LN4@float_buf_ -$LN2@float_buf_: - 00065 48 8b 85 98 00 - 00 00 mov rax, QWORD PTR i$1[rbp] - 0006c 48 ff c0 inc rax - 0006f 48 89 85 98 00 - 00 00 mov QWORD PTR i$1[rbp], rax -$LN4@float_buf_: - 00076 49 8b 85 48 02 - 00 00 mov rax, QWORD PTR count$[r13] - 0007d 48 39 85 98 00 - 00 00 cmp QWORD PTR i$1[rbp], rax - 00084 73 64 jae SHORT $LN3@float_buf_ - -; 266 : register __m512 c0 = _mm512_mul_ps(right[i].f32_z[0], vec); - - 00086 48 6b 85 98 00 - 00 00 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 0008e 49 8b 8d 30 02 - 00 00 mov rcx, QWORD PTR right$[r13] - 00095 48 03 c8 add rcx, rax - 00098 48 8b c1 mov rax, rcx - 0009b b9 40 00 00 00 mov ecx, 64 ; 00000040H - 000a0 48 6b c9 00 imul rcx, rcx, 0 - 000a4 62 f1 7c 48 10 - 04 08 vmovups zmm0, ZMMWORD PTR [rax+rcx] - 000ab 62 f1 7c 48 59 - 45 01 vmulps zmm0, zmm0, ZMMWORD PTR vec$[rbp] - 000b2 62 f1 7c 48 11 - 45 03 vmovups ZMMWORD PTR c0$2[rbp], zmm0 - -; 267 : -; 268 : ans[i].f32_z[0] = c0; - - 000b9 48 6b 85 98 00 - 00 00 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 000c1 49 8b 8d 38 02 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000c8 48 03 c8 add rcx, rax - 000cb 48 8b c1 mov rax, rcx - 000ce b9 40 00 00 00 mov ecx, 64 ; 00000040H - 000d3 48 6b c9 00 imul rcx, rcx, 0 - 000d7 62 f1 7c 48 10 - 45 03 vmovups zmm0, ZMMWORD PTR c0$2[rbp] - 000de 62 f1 7c 48 11 - 04 08 vmovups ZMMWORD PTR [rax+rcx], zmm0 - -; 269 : } - - 000e5 e9 7b ff ff ff jmp $LN2@float_buf_ -$LN3@float_buf_: - -; 270 : } - - 000ea 49 8d a5 10 02 - 00 00 lea rsp, QWORD PTR [r13+528] - 000f1 5f pop rdi - 000f2 5d pop rbp - 000f3 41 5d pop r13 - 000f5 c3 ret 0 -float_buf_scalar_mul_512 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT float_buf_scalar_mul_avx -_TEXT SEGMENT -vec$ = 32 -i$1 = 88 -c0$2 = 128 -c1$3 = 192 -right$ = 496 -ans$ = 504 -scalar$ = 512 -count$ = 520 -float_buf_scalar_mul_avx PROC ; COMDAT - -; 251 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 41 55 push r13 - 00016 55 push rbp - 00017 57 push rdi - 00018 48 81 ec f0 01 - 00 00 sub rsp, 496 ; 000001f0H - 0001f 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00024 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00029 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H - 0002d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 00034 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00039 90 npad 1 - -; 252 : register __m256 vec = _mm256_broadcast_ss(((float *)(scalar->data))); - - 0003a 49 8b 85 00 02 - 00 00 mov rax, QWORD PTR scalar$[r13] - 00041 c4 e2 7d 18 00 vbroadcastss ymm0, DWORD PTR [rax] - 00046 c5 fc 11 45 20 vmovups YMMWORD PTR vec$[rbp], ymm0 - -; 253 : for (size_t i = 0; i < count; i++) { - - 0004b 48 c7 45 58 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 00053 eb 0b jmp SHORT $LN4@float_buf_ -$LN2@float_buf_: - 00055 48 8b 45 58 mov rax, QWORD PTR i$1[rbp] - 00059 48 ff c0 inc rax - 0005c 48 89 45 58 mov QWORD PTR i$1[rbp], rax -$LN4@float_buf_: - 00060 49 8b 85 08 02 - 00 00 mov rax, QWORD PTR count$[r13] - 00067 48 39 45 58 cmp QWORD PTR i$1[rbp], rax - 0006b 0f 83 af 00 00 - 00 jae $LN3@float_buf_ - -; 254 : register __m256 c0 = _mm256_mul_ps(right[i].f32_y[0], vec); - - 00071 48 6b 45 58 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 00076 49 8b 8d f0 01 - 00 00 mov rcx, QWORD PTR right$[r13] - 0007d 48 03 c8 add rcx, rax - 00080 48 8b c1 mov rax, rcx - 00083 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 00088 48 6b c9 00 imul rcx, rcx, 0 - 0008c c5 fc 10 04 08 vmovups ymm0, YMMWORD PTR [rax+rcx] - 00091 c5 fc 59 45 20 vmulps ymm0, ymm0, YMMWORD PTR vec$[rbp] - 00096 c5 fc 11 85 80 - 00 00 00 vmovups YMMWORD PTR c0$2[rbp], ymm0 - -; 255 : register __m256 c1 = _mm256_mul_ps(right[i].f32_y[1], vec); - - 0009e 48 6b 45 58 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 000a3 49 8b 8d f0 01 - 00 00 mov rcx, QWORD PTR right$[r13] - 000aa 48 03 c8 add rcx, rax - 000ad 48 8b c1 mov rax, rcx - 000b0 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 000b5 48 6b c9 01 imul rcx, rcx, 1 - 000b9 c5 fc 10 04 08 vmovups ymm0, YMMWORD PTR [rax+rcx] - 000be c5 fc 59 45 20 vmulps ymm0, ymm0, YMMWORD PTR vec$[rbp] - 000c3 c5 fc 11 85 c0 - 00 00 00 vmovups YMMWORD PTR c1$3[rbp], ymm0 - -; 256 : -; 257 : ans[i].f32_y[0] = c0; - - 000cb 48 6b 45 58 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 000d0 49 8b 8d f8 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000d7 48 03 c8 add rcx, rax - 000da 48 8b c1 mov rax, rcx - 000dd b9 20 00 00 00 mov ecx, 32 ; 00000020H - 000e2 48 6b c9 00 imul rcx, rcx, 0 - 000e6 c5 fc 10 85 80 - 00 00 00 vmovups ymm0, YMMWORD PTR c0$2[rbp] - 000ee c5 fc 11 04 08 vmovups YMMWORD PTR [rax+rcx], ymm0 - -; 258 : ans[i].f32_y[1] = c1; - - 000f3 48 6b 45 58 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 000f8 49 8b 8d f8 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000ff 48 03 c8 add rcx, rax - 00102 48 8b c1 mov rax, rcx - 00105 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 0010a 48 6b c9 01 imul rcx, rcx, 1 - 0010e c5 fc 10 85 c0 - 00 00 00 vmovups ymm0, YMMWORD PTR c1$3[rbp] - 00116 c5 fc 11 04 08 vmovups YMMWORD PTR [rax+rcx], ymm0 - -; 259 : } - - 0011b e9 35 ff ff ff jmp $LN2@float_buf_ -$LN3@float_buf_: - -; 260 : } - - 00120 49 8d a5 d0 01 - 00 00 lea rsp, QWORD PTR [r13+464] - 00127 5f pop rdi - 00128 5d pop rbp - 00129 41 5d pop r13 - 0012b c3 ret 0 -float_buf_scalar_mul_avx ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT float_buf_scalar_mul_sse -_TEXT SEGMENT -vec$ = 16 -i$1 = 56 -c0$2 = 96 -c1$3 = 144 -c2$4 = 192 -c3$5 = 240 -right$ = 496 -ans$ = 504 -scalar$ = 512 -count$ = 520 -float_buf_scalar_mul_sse PROC ; COMDAT - -; 235 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec f8 01 - 00 00 sub rsp, 504 ; 000001f8H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 236 : register __m128 vec = _mm_set_ps1(((float *)(scalar->data))[0]); - - 0002f b8 04 00 00 00 mov eax, 4 - 00034 48 6b c0 00 imul rax, rax, 0 - 00038 48 8b 8d 00 02 - 00 00 mov rcx, QWORD PTR scalar$[rbp] - 0003f f3 0f 10 04 01 movss xmm0, DWORD PTR [rcx+rax] - 00044 0f c6 c0 00 shufps xmm0, xmm0, 0 - 00048 0f 29 45 10 movaps XMMWORD PTR vec$[rbp], xmm0 - -; 237 : for (size_t i = 0; i < count; i++) { - - 0004c 48 c7 45 38 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 00054 eb 0b jmp SHORT $LN4@float_buf_ -$LN2@float_buf_: - 00056 48 8b 45 38 mov rax, QWORD PTR i$1[rbp] - 0005a 48 ff c0 inc rax - 0005d 48 89 45 38 mov QWORD PTR i$1[rbp], rax -$LN4@float_buf_: - 00061 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR count$[rbp] - 00068 48 39 45 38 cmp QWORD PTR i$1[rbp], rax - 0006c 0f 83 3f 01 00 - 00 jae $LN3@float_buf_ - -; 238 : register __m128 c0 = _mm_mul_ps(right[i].f32_x[0], vec); - - 00072 48 6b 45 38 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 00077 48 8b 8d f0 01 - 00 00 mov rcx, QWORD PTR right$[rbp] - 0007e 48 03 c8 add rcx, rax - 00081 48 8b c1 mov rax, rcx - 00084 b9 10 00 00 00 mov ecx, 16 - 00089 48 6b c9 00 imul rcx, rcx, 0 - 0008d 0f 10 04 08 movups xmm0, XMMWORD PTR [rax+rcx] - 00091 0f 59 45 10 mulps xmm0, XMMWORD PTR vec$[rbp] - 00095 0f 29 45 60 movaps XMMWORD PTR c0$2[rbp], xmm0 - -; 239 : register __m128 c1 = _mm_mul_ps(right[i].f32_x[1], vec); - - 00099 48 6b 45 38 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 0009e 48 8b 8d f0 01 - 00 00 mov rcx, QWORD PTR right$[rbp] - 000a5 48 03 c8 add rcx, rax - 000a8 48 8b c1 mov rax, rcx - 000ab b9 10 00 00 00 mov ecx, 16 - 000b0 48 6b c9 01 imul rcx, rcx, 1 - 000b4 0f 10 04 08 movups xmm0, XMMWORD PTR [rax+rcx] - 000b8 0f 59 45 10 mulps xmm0, XMMWORD PTR vec$[rbp] - 000bc 0f 29 85 90 00 - 00 00 movaps XMMWORD PTR c1$3[rbp], xmm0 - -; 240 : register __m128 c2 = _mm_mul_ps(right[i].f32_x[2], vec); - - 000c3 48 6b 45 38 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 000c8 48 8b 8d f0 01 - 00 00 mov rcx, QWORD PTR right$[rbp] - 000cf 48 03 c8 add rcx, rax - 000d2 48 8b c1 mov rax, rcx - 000d5 b9 10 00 00 00 mov ecx, 16 - 000da 48 6b c9 02 imul rcx, rcx, 2 - 000de 0f 10 04 08 movups xmm0, XMMWORD PTR [rax+rcx] - 000e2 0f 59 45 10 mulps xmm0, XMMWORD PTR vec$[rbp] - 000e6 0f 29 85 c0 00 - 00 00 movaps XMMWORD PTR c2$4[rbp], xmm0 - -; 241 : register __m128 c3 = _mm_mul_ps(right[i].f32_x[3], vec); - - 000ed 48 6b 45 38 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 000f2 48 8b 8d f0 01 - 00 00 mov rcx, QWORD PTR right$[rbp] - 000f9 48 03 c8 add rcx, rax - 000fc 48 8b c1 mov rax, rcx - 000ff b9 10 00 00 00 mov ecx, 16 - 00104 48 6b c9 03 imul rcx, rcx, 3 - 00108 0f 10 04 08 movups xmm0, XMMWORD PTR [rax+rcx] - 0010c 0f 59 45 10 mulps xmm0, XMMWORD PTR vec$[rbp] - 00110 0f 29 85 f0 00 - 00 00 movaps XMMWORD PTR c3$5[rbp], xmm0 - -; 242 : -; 243 : ans[i].f32_x[0] = c0; - - 00117 48 6b 45 38 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 0011c 48 8b 8d f8 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00123 48 03 c8 add rcx, rax - 00126 48 8b c1 mov rax, rcx - 00129 b9 10 00 00 00 mov ecx, 16 - 0012e 48 6b c9 00 imul rcx, rcx, 0 - 00132 0f 28 45 60 movaps xmm0, XMMWORD PTR c0$2[rbp] - 00136 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 244 : ans[i].f32_x[1] = c1; - - 0013a 48 6b 45 38 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 0013f 48 8b 8d f8 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00146 48 03 c8 add rcx, rax - 00149 48 8b c1 mov rax, rcx - 0014c b9 10 00 00 00 mov ecx, 16 - 00151 48 6b c9 01 imul rcx, rcx, 1 - 00155 0f 28 85 90 00 - 00 00 movaps xmm0, XMMWORD PTR c1$3[rbp] - 0015c 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 245 : ans[i].f32_x[2] = c2; - - 00160 48 6b 45 38 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 00165 48 8b 8d f8 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 0016c 48 03 c8 add rcx, rax - 0016f 48 8b c1 mov rax, rcx - 00172 b9 10 00 00 00 mov ecx, 16 - 00177 48 6b c9 02 imul rcx, rcx, 2 - 0017b 0f 28 85 c0 00 - 00 00 movaps xmm0, XMMWORD PTR c2$4[rbp] - 00182 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 246 : ans[i].f32_x[3] = c3; - - 00186 48 6b 45 38 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 0018b 48 8b 8d f8 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00192 48 03 c8 add rcx, rax - 00195 48 8b c1 mov rax, rcx - 00198 b9 10 00 00 00 mov ecx, 16 - 0019d 48 6b c9 03 imul rcx, rcx, 3 - 001a1 0f 28 85 f0 00 - 00 00 movaps xmm0, XMMWORD PTR c3$5[rbp] - 001a8 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 247 : } - - 001ac e9 a5 fe ff ff jmp $LN2@float_buf_ -$LN3@float_buf_: - -; 248 : } - - 001b1 48 8d a5 d8 01 - 00 00 lea rsp, QWORD PTR [rbp+472] - 001b8 5f pop rdi - 001b9 5d pop rbp - 001ba c3 ret 0 -float_buf_scalar_mul_sse ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT double_buf_sub_512 -_TEXT SEGMENT -i$1 = 8 -c0$2 = 64 -left$ = 432 -right$ = 440 -ans$ = 448 -count$ = 456 -double_buf_sub_512 PROC ; COMDAT - -; 227 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 41 55 push r13 - 00016 55 push rbp - 00017 57 push rdi - 00018 48 81 ec b0 01 - 00 00 sub rsp, 432 ; 000001b0H - 0001f 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00024 48 8d 6c 24 60 lea rbp, QWORD PTR [rsp+96] - 00029 48 83 e5 c0 and rbp, -64 ; ffffffffffffffc0H - 0002d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 00034 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00039 90 npad 1 - -; 228 : for (size_t i = 0; i < count; i++) { - - 0003a 48 c7 45 08 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 00042 eb 0b jmp SHORT $LN4@double_buf -$LN2@double_buf: - 00044 48 8b 45 08 mov rax, QWORD PTR i$1[rbp] - 00048 48 ff c0 inc rax - 0004b 48 89 45 08 mov QWORD PTR i$1[rbp], rax -$LN4@double_buf: - 0004f 49 8b 85 c8 01 - 00 00 mov rax, QWORD PTR count$[r13] - 00056 48 39 45 08 cmp QWORD PTR i$1[rbp], rax - 0005a 0f 83 83 00 00 - 00 jae $LN3@double_buf - -; 229 : register __m512 c0 = _mm512_sub_ps(left[i].f32_z[0], right[i].f32_z[0]); - - 00060 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00068 49 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR right$[r13] - 0006f 48 03 c8 add rcx, rax - 00072 48 8b c1 mov rax, rcx - 00075 b9 40 00 00 00 mov ecx, 64 ; 00000040H - 0007a 48 6b c9 00 imul rcx, rcx, 0 - 0007e 48 69 55 08 80 - 00 00 00 imul rdx, QWORD PTR i$1[rbp], 128 ; 00000080H - 00086 4d 8b 85 b0 01 - 00 00 mov r8, QWORD PTR left$[r13] - 0008d 4c 03 c2 add r8, rdx - 00090 49 8b d0 mov rdx, r8 - 00093 41 b8 40 00 00 - 00 mov r8d, 64 ; 00000040H - 00099 4d 6b c0 00 imul r8, r8, 0 - 0009d 62 b1 7c 48 10 - 04 02 vmovups zmm0, ZMMWORD PTR [rdx+r8] - 000a4 62 f1 7c 48 5c - 04 08 vsubps zmm0, zmm0, ZMMWORD PTR [rax+rcx] - 000ab 62 f1 7c 48 11 - 45 01 vmovups ZMMWORD PTR c0$2[rbp], zmm0 - -; 230 : ans[i].f32_z[0] = c0; - - 000b2 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 000ba 49 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000c1 48 03 c8 add rcx, rax - 000c4 48 8b c1 mov rax, rcx - 000c7 b9 40 00 00 00 mov ecx, 64 ; 00000040H - 000cc 48 6b c9 00 imul rcx, rcx, 0 - 000d0 62 f1 7c 48 10 - 45 01 vmovups zmm0, ZMMWORD PTR c0$2[rbp] - 000d7 62 f1 7c 48 11 - 04 08 vmovups ZMMWORD PTR [rax+rcx], zmm0 - -; 231 : } - - 000de e9 61 ff ff ff jmp $LN2@double_buf -$LN3@double_buf: - -; 232 : } - - 000e3 49 8d a5 90 01 - 00 00 lea rsp, QWORD PTR [r13+400] - 000ea 5f pop rdi - 000eb 5d pop rbp - 000ec 41 5d pop r13 - 000ee c3 ret 0 -double_buf_sub_512 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT double_buf_sub_avx -_TEXT SEGMENT -i$1 = 8 -c0$2 = 64 -c1$3 = 128 -left$ = 432 -right$ = 440 -ans$ = 448 -count$ = 456 -double_buf_sub_avx PROC ; COMDAT - -; 217 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 41 55 push r13 - 00016 55 push rbp - 00017 57 push rdi - 00018 48 81 ec b0 01 - 00 00 sub rsp, 432 ; 000001b0H - 0001f 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00024 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00029 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H - 0002d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 00034 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00039 90 npad 1 - -; 218 : for (size_t i = 0; i < count; i++) { - - 0003a 48 c7 45 08 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 00042 eb 0b jmp SHORT $LN4@double_buf -$LN2@double_buf: - 00044 48 8b 45 08 mov rax, QWORD PTR i$1[rbp] - 00048 48 ff c0 inc rax - 0004b 48 89 45 08 mov QWORD PTR i$1[rbp], rax -$LN4@double_buf: - 0004f 49 8b 85 c8 01 - 00 00 mov rax, QWORD PTR count$[r13] - 00056 48 39 45 08 cmp QWORD PTR i$1[rbp], rax - 0005a 0f 83 f5 00 00 - 00 jae $LN3@double_buf - -; 219 : register __m256 c0 = _mm256_sub_ps(left[i].f32_y[0], right[i].f32_y[0]); - - 00060 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00068 49 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR right$[r13] - 0006f 48 03 c8 add rcx, rax - 00072 48 8b c1 mov rax, rcx - 00075 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 0007a 48 6b c9 00 imul rcx, rcx, 0 - 0007e 48 69 55 08 80 - 00 00 00 imul rdx, QWORD PTR i$1[rbp], 128 ; 00000080H - 00086 4d 8b 85 b0 01 - 00 00 mov r8, QWORD PTR left$[r13] - 0008d 4c 03 c2 add r8, rdx - 00090 49 8b d0 mov rdx, r8 - 00093 41 b8 20 00 00 - 00 mov r8d, 32 ; 00000020H - 00099 4d 6b c0 00 imul r8, r8, 0 - 0009d c4 a1 7c 10 04 - 02 vmovups ymm0, YMMWORD PTR [rdx+r8] - 000a3 c5 fc 5c 04 08 vsubps ymm0, ymm0, YMMWORD PTR [rax+rcx] - 000a8 c5 fc 11 45 40 vmovups YMMWORD PTR c0$2[rbp], ymm0 - -; 220 : register __m256 c1 = _mm256_sub_ps(left[i].f32_y[1], right[i].f32_y[1]); - - 000ad 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 000b5 49 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR right$[r13] - 000bc 48 03 c8 add rcx, rax - 000bf 48 8b c1 mov rax, rcx - 000c2 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 000c7 48 6b c9 01 imul rcx, rcx, 1 - 000cb 48 69 55 08 80 - 00 00 00 imul rdx, QWORD PTR i$1[rbp], 128 ; 00000080H - 000d3 4d 8b 85 b0 01 - 00 00 mov r8, QWORD PTR left$[r13] - 000da 4c 03 c2 add r8, rdx - 000dd 49 8b d0 mov rdx, r8 - 000e0 41 b8 20 00 00 - 00 mov r8d, 32 ; 00000020H - 000e6 4d 6b c0 01 imul r8, r8, 1 - 000ea c4 a1 7c 10 04 - 02 vmovups ymm0, YMMWORD PTR [rdx+r8] - 000f0 c5 fc 5c 04 08 vsubps ymm0, ymm0, YMMWORD PTR [rax+rcx] - 000f5 c5 fc 11 85 80 - 00 00 00 vmovups YMMWORD PTR c1$3[rbp], ymm0 - -; 221 : ans[i].f32_y[0] = c0; - - 000fd 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00105 49 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 0010c 48 03 c8 add rcx, rax - 0010f 48 8b c1 mov rax, rcx - 00112 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 00117 48 6b c9 00 imul rcx, rcx, 0 - 0011b c5 fc 10 45 40 vmovups ymm0, YMMWORD PTR c0$2[rbp] - 00120 c5 fc 11 04 08 vmovups YMMWORD PTR [rax+rcx], ymm0 - -; 222 : ans[i].f32_y[1] = c1; - - 00125 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0012d 49 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00134 48 03 c8 add rcx, rax - 00137 48 8b c1 mov rax, rcx - 0013a b9 20 00 00 00 mov ecx, 32 ; 00000020H - 0013f 48 6b c9 01 imul rcx, rcx, 1 - 00143 c5 fc 10 85 80 - 00 00 00 vmovups ymm0, YMMWORD PTR c1$3[rbp] - 0014b c5 fc 11 04 08 vmovups YMMWORD PTR [rax+rcx], ymm0 - -; 223 : } - - 00150 e9 ef fe ff ff jmp $LN2@double_buf -$LN3@double_buf: - -; 224 : } - - 00155 49 8d a5 90 01 - 00 00 lea rsp, QWORD PTR [r13+400] - 0015c 5f pop rdi - 0015d 5d pop rbp - 0015e 41 5d pop r13 - 00160 c3 ret 0 -double_buf_sub_avx ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT double_buf_sub_sse -_TEXT SEGMENT -i$1 = 8 -c0$2 = 48 -c1$3 = 96 -c2$4 = 144 -c3$5 = 192 -c4$6 = 240 -c5$7 = 288 -c6$8 = 336 -c7$9 = 384 -left$ = 640 -right$ = 648 -ans$ = 656 -count$ = 664 -double_buf_sub_sse PROC ; COMDAT - -; 194 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 88 02 - 00 00 sub rsp, 648 ; 00000288H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 195 : for (size_t i = 0; i < count; i++) { - - 0002f 48 c7 45 08 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 00037 eb 0b jmp SHORT $LN4@double_buf -$LN2@double_buf: - 00039 48 8b 45 08 mov rax, QWORD PTR i$1[rbp] - 0003d 48 ff c0 inc rax - 00040 48 89 45 08 mov QWORD PTR i$1[rbp], rax -$LN4@double_buf: - 00044 48 8b 85 98 02 - 00 00 mov rax, QWORD PTR count$[rbp] - 0004b 48 39 45 08 cmp QWORD PTR i$1[rbp], rax - 0004f 0f 83 b1 03 00 - 00 jae $LN3@double_buf - -; 196 : register __m128d c0 = _mm_sub_pd(left[i].f64_x[0], right[i].f64_x[0]); - - 00055 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0005d 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00064 48 03 c8 add rcx, rax - 00067 48 8b c1 mov rax, rcx - 0006a b9 10 00 00 00 mov ecx, 16 - 0006f 48 6b c9 00 imul rcx, rcx, 0 - 00073 48 69 55 08 80 - 00 00 00 imul rdx, QWORD PTR i$1[rbp], 128 ; 00000080H - 0007b 4c 8b 85 80 02 - 00 00 mov r8, QWORD PTR left$[rbp] - 00082 4c 03 c2 add r8, rdx - 00085 49 8b d0 mov rdx, r8 - 00088 41 b8 10 00 00 - 00 mov r8d, 16 - 0008e 4d 6b c0 00 imul r8, r8, 0 - 00092 42 0f 10 04 02 movups xmm0, XMMWORD PTR [rdx+r8] - 00097 66 0f 5c 04 08 subpd xmm0, XMMWORD PTR [rax+rcx] - 0009c 0f 29 45 30 movaps XMMWORD PTR c0$2[rbp], xmm0 - -; 197 : register __m128d c1 = _mm_sub_pd(left[i].f64_x[1], right[i].f64_x[1]); - - 000a0 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 000a8 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 000af 48 03 c8 add rcx, rax - 000b2 48 8b c1 mov rax, rcx - 000b5 b9 10 00 00 00 mov ecx, 16 - 000ba 48 6b c9 01 imul rcx, rcx, 1 - 000be 48 69 55 08 80 - 00 00 00 imul rdx, QWORD PTR i$1[rbp], 128 ; 00000080H - 000c6 4c 8b 85 80 02 - 00 00 mov r8, QWORD PTR left$[rbp] - 000cd 4c 03 c2 add r8, rdx - 000d0 49 8b d0 mov rdx, r8 - 000d3 41 b8 10 00 00 - 00 mov r8d, 16 - 000d9 4d 6b c0 01 imul r8, r8, 1 - 000dd 42 0f 10 04 02 movups xmm0, XMMWORD PTR [rdx+r8] - 000e2 66 0f 5c 04 08 subpd xmm0, XMMWORD PTR [rax+rcx] - 000e7 0f 29 45 60 movaps XMMWORD PTR c1$3[rbp], xmm0 - -; 198 : register __m128d c2 = _mm_sub_pd(left[i].f64_x[2], right[i].f64_x[2]); - - 000eb 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 000f3 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 000fa 48 03 c8 add rcx, rax - 000fd 48 8b c1 mov rax, rcx - 00100 b9 10 00 00 00 mov ecx, 16 - 00105 48 6b c9 02 imul rcx, rcx, 2 - 00109 48 69 55 08 80 - 00 00 00 imul rdx, QWORD PTR i$1[rbp], 128 ; 00000080H - 00111 4c 8b 85 80 02 - 00 00 mov r8, QWORD PTR left$[rbp] - 00118 4c 03 c2 add r8, rdx - 0011b 49 8b d0 mov rdx, r8 - 0011e 41 b8 10 00 00 - 00 mov r8d, 16 - 00124 4d 6b c0 02 imul r8, r8, 2 - 00128 42 0f 10 04 02 movups xmm0, XMMWORD PTR [rdx+r8] - 0012d 66 0f 5c 04 08 subpd xmm0, XMMWORD PTR [rax+rcx] - 00132 0f 29 85 90 00 - 00 00 movaps XMMWORD PTR c2$4[rbp], xmm0 - -; 199 : register __m128d c3 = _mm_sub_pd(left[i].f64_x[3], right[i].f64_x[3]); - - 00139 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00141 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00148 48 03 c8 add rcx, rax - 0014b 48 8b c1 mov rax, rcx - 0014e b9 10 00 00 00 mov ecx, 16 - 00153 48 6b c9 03 imul rcx, rcx, 3 - 00157 48 69 55 08 80 - 00 00 00 imul rdx, QWORD PTR i$1[rbp], 128 ; 00000080H - 0015f 4c 8b 85 80 02 - 00 00 mov r8, QWORD PTR left$[rbp] - 00166 4c 03 c2 add r8, rdx - 00169 49 8b d0 mov rdx, r8 - 0016c 41 b8 10 00 00 - 00 mov r8d, 16 - 00172 4d 6b c0 03 imul r8, r8, 3 - 00176 42 0f 10 04 02 movups xmm0, XMMWORD PTR [rdx+r8] - 0017b 66 0f 5c 04 08 subpd xmm0, XMMWORD PTR [rax+rcx] - 00180 0f 29 85 c0 00 - 00 00 movaps XMMWORD PTR c3$5[rbp], xmm0 - -; 200 : register __m128d c4 = _mm_sub_pd(left[i].f64_x[4], right[i].f64_x[4]); - - 00187 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0018f 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00196 48 03 c8 add rcx, rax - 00199 48 8b c1 mov rax, rcx - 0019c b9 10 00 00 00 mov ecx, 16 - 001a1 48 6b c9 04 imul rcx, rcx, 4 - 001a5 48 69 55 08 80 - 00 00 00 imul rdx, QWORD PTR i$1[rbp], 128 ; 00000080H - 001ad 4c 8b 85 80 02 - 00 00 mov r8, QWORD PTR left$[rbp] - 001b4 4c 03 c2 add r8, rdx - 001b7 49 8b d0 mov rdx, r8 - 001ba 41 b8 10 00 00 - 00 mov r8d, 16 - 001c0 4d 6b c0 04 imul r8, r8, 4 - 001c4 42 0f 10 04 02 movups xmm0, XMMWORD PTR [rdx+r8] - 001c9 66 0f 5c 04 08 subpd xmm0, XMMWORD PTR [rax+rcx] - 001ce 0f 29 85 f0 00 - 00 00 movaps XMMWORD PTR c4$6[rbp], xmm0 - -; 201 : register __m128d c5 = _mm_sub_pd(left[i].f64_x[5], right[i].f64_x[5]); - - 001d5 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 001dd 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 001e4 48 03 c8 add rcx, rax - 001e7 48 8b c1 mov rax, rcx - 001ea b9 10 00 00 00 mov ecx, 16 - 001ef 48 6b c9 05 imul rcx, rcx, 5 - 001f3 48 69 55 08 80 - 00 00 00 imul rdx, QWORD PTR i$1[rbp], 128 ; 00000080H - 001fb 4c 8b 85 80 02 - 00 00 mov r8, QWORD PTR left$[rbp] - 00202 4c 03 c2 add r8, rdx - 00205 49 8b d0 mov rdx, r8 - 00208 41 b8 10 00 00 - 00 mov r8d, 16 - 0020e 4d 6b c0 05 imul r8, r8, 5 - 00212 42 0f 10 04 02 movups xmm0, XMMWORD PTR [rdx+r8] - 00217 66 0f 5c 04 08 subpd xmm0, XMMWORD PTR [rax+rcx] - 0021c 0f 29 85 20 01 - 00 00 movaps XMMWORD PTR c5$7[rbp], xmm0 - -; 202 : register __m128d c6 = _mm_sub_pd(left[i].f64_x[6], right[i].f64_x[6]); - - 00223 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0022b 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00232 48 03 c8 add rcx, rax - 00235 48 8b c1 mov rax, rcx - 00238 b9 10 00 00 00 mov ecx, 16 - 0023d 48 6b c9 06 imul rcx, rcx, 6 - 00241 48 69 55 08 80 - 00 00 00 imul rdx, QWORD PTR i$1[rbp], 128 ; 00000080H - 00249 4c 8b 85 80 02 - 00 00 mov r8, QWORD PTR left$[rbp] - 00250 4c 03 c2 add r8, rdx - 00253 49 8b d0 mov rdx, r8 - 00256 41 b8 10 00 00 - 00 mov r8d, 16 - 0025c 4d 6b c0 06 imul r8, r8, 6 - 00260 42 0f 10 04 02 movups xmm0, XMMWORD PTR [rdx+r8] - 00265 66 0f 5c 04 08 subpd xmm0, XMMWORD PTR [rax+rcx] - 0026a 0f 29 85 50 01 - 00 00 movaps XMMWORD PTR c6$8[rbp], xmm0 - -; 203 : register __m128d c7 = _mm_sub_pd(left[i].f64_x[7], right[i].f64_x[7]); - - 00271 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00279 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00280 48 03 c8 add rcx, rax - 00283 48 8b c1 mov rax, rcx - 00286 b9 10 00 00 00 mov ecx, 16 - 0028b 48 6b c9 07 imul rcx, rcx, 7 - 0028f 48 69 55 08 80 - 00 00 00 imul rdx, QWORD PTR i$1[rbp], 128 ; 00000080H - 00297 4c 8b 85 80 02 - 00 00 mov r8, QWORD PTR left$[rbp] - 0029e 4c 03 c2 add r8, rdx - 002a1 49 8b d0 mov rdx, r8 - 002a4 41 b8 10 00 00 - 00 mov r8d, 16 - 002aa 4d 6b c0 07 imul r8, r8, 7 - 002ae 42 0f 10 04 02 movups xmm0, XMMWORD PTR [rdx+r8] - 002b3 66 0f 5c 04 08 subpd xmm0, XMMWORD PTR [rax+rcx] - 002b8 0f 29 85 80 01 - 00 00 movaps XMMWORD PTR c7$9[rbp], xmm0 - -; 204 : -; 205 : ans[i].f64_x[0] = c0; - - 002bf 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 002c7 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 002ce 48 03 c8 add rcx, rax - 002d1 48 8b c1 mov rax, rcx - 002d4 b9 10 00 00 00 mov ecx, 16 - 002d9 48 6b c9 00 imul rcx, rcx, 0 - 002dd 0f 28 45 30 movaps xmm0, XMMWORD PTR c0$2[rbp] - 002e1 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 206 : ans[i].f64_x[1] = c1; - - 002e5 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 002ed 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 002f4 48 03 c8 add rcx, rax - 002f7 48 8b c1 mov rax, rcx - 002fa b9 10 00 00 00 mov ecx, 16 - 002ff 48 6b c9 01 imul rcx, rcx, 1 - 00303 0f 28 45 60 movaps xmm0, XMMWORD PTR c1$3[rbp] - 00307 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 207 : ans[i].f64_x[2] = c2; - - 0030b 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00313 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 0031a 48 03 c8 add rcx, rax - 0031d 48 8b c1 mov rax, rcx - 00320 b9 10 00 00 00 mov ecx, 16 - 00325 48 6b c9 02 imul rcx, rcx, 2 - 00329 0f 28 85 90 00 - 00 00 movaps xmm0, XMMWORD PTR c2$4[rbp] - 00330 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 208 : ans[i].f64_x[3] = c3; - - 00334 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0033c 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00343 48 03 c8 add rcx, rax - 00346 48 8b c1 mov rax, rcx - 00349 b9 10 00 00 00 mov ecx, 16 - 0034e 48 6b c9 03 imul rcx, rcx, 3 - 00352 0f 28 85 c0 00 - 00 00 movaps xmm0, XMMWORD PTR c3$5[rbp] - 00359 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 209 : ans[i].f64_x[4] = c4; - - 0035d 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00365 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 0036c 48 03 c8 add rcx, rax - 0036f 48 8b c1 mov rax, rcx - 00372 b9 10 00 00 00 mov ecx, 16 - 00377 48 6b c9 04 imul rcx, rcx, 4 - 0037b 0f 28 85 f0 00 - 00 00 movaps xmm0, XMMWORD PTR c4$6[rbp] - 00382 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 210 : ans[i].f64_x[5] = c5; - - 00386 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0038e 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00395 48 03 c8 add rcx, rax - 00398 48 8b c1 mov rax, rcx - 0039b b9 10 00 00 00 mov ecx, 16 - 003a0 48 6b c9 05 imul rcx, rcx, 5 - 003a4 0f 28 85 20 01 - 00 00 movaps xmm0, XMMWORD PTR c5$7[rbp] - 003ab 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 211 : ans[i].f64_x[6] = c6; - - 003af 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 003b7 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 003be 48 03 c8 add rcx, rax - 003c1 48 8b c1 mov rax, rcx - 003c4 b9 10 00 00 00 mov ecx, 16 - 003c9 48 6b c9 06 imul rcx, rcx, 6 - 003cd 0f 28 85 50 01 - 00 00 movaps xmm0, XMMWORD PTR c6$8[rbp] - 003d4 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 212 : ans[i].f64_x[7] = c7; - - 003d8 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 003e0 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 003e7 48 03 c8 add rcx, rax - 003ea 48 8b c1 mov rax, rcx - 003ed b9 10 00 00 00 mov ecx, 16 - 003f2 48 6b c9 07 imul rcx, rcx, 7 - 003f6 0f 28 85 80 01 - 00 00 movaps xmm0, XMMWORD PTR c7$9[rbp] - 003fd 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 213 : } - - 00401 e9 33 fc ff ff jmp $LN2@double_buf -$LN3@double_buf: - -; 214 : } - - 00406 48 8d a5 68 02 - 00 00 lea rsp, QWORD PTR [rbp+616] - 0040d 5f pop rdi - 0040e 5d pop rbp - 0040f c3 ret 0 -double_buf_sub_sse ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT float_buf_sub_512 -_TEXT SEGMENT -i$1 = 8 -c0$2 = 64 -left$ = 432 -right$ = 440 -ans$ = 448 -count$ = 456 -float_buf_sub_512 PROC ; COMDAT - -; 186 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 41 55 push r13 - 00016 55 push rbp - 00017 57 push rdi - 00018 48 81 ec b0 01 - 00 00 sub rsp, 432 ; 000001b0H - 0001f 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00024 48 8d 6c 24 60 lea rbp, QWORD PTR [rsp+96] - 00029 48 83 e5 c0 and rbp, -64 ; ffffffffffffffc0H - 0002d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 00034 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00039 90 npad 1 - -; 187 : for (size_t i = 0; i < count; i++) { - - 0003a 48 c7 45 08 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 00042 eb 0b jmp SHORT $LN4@float_buf_ -$LN2@float_buf_: - 00044 48 8b 45 08 mov rax, QWORD PTR i$1[rbp] - 00048 48 ff c0 inc rax - 0004b 48 89 45 08 mov QWORD PTR i$1[rbp], rax -$LN4@float_buf_: - 0004f 49 8b 85 c8 01 - 00 00 mov rax, QWORD PTR count$[r13] - 00056 48 39 45 08 cmp QWORD PTR i$1[rbp], rax - 0005a 73 7a jae SHORT $LN3@float_buf_ - -; 188 : register __m512 c0 = _mm512_sub_ps(left[i].f32_z[0], right[i].f32_z[0]); - - 0005c 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 00061 49 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR right$[r13] - 00068 48 03 c8 add rcx, rax - 0006b 48 8b c1 mov rax, rcx - 0006e b9 40 00 00 00 mov ecx, 64 ; 00000040H - 00073 48 6b c9 00 imul rcx, rcx, 0 - 00077 48 6b 55 08 40 imul rdx, QWORD PTR i$1[rbp], 64 ; 00000040H - 0007c 4d 8b 85 b0 01 - 00 00 mov r8, QWORD PTR left$[r13] - 00083 4c 03 c2 add r8, rdx - 00086 49 8b d0 mov rdx, r8 - 00089 41 b8 40 00 00 - 00 mov r8d, 64 ; 00000040H - 0008f 4d 6b c0 00 imul r8, r8, 0 - 00093 62 b1 7c 48 10 - 04 02 vmovups zmm0, ZMMWORD PTR [rdx+r8] - 0009a 62 f1 7c 48 5c - 04 08 vsubps zmm0, zmm0, ZMMWORD PTR [rax+rcx] - 000a1 62 f1 7c 48 11 - 45 01 vmovups ZMMWORD PTR c0$2[rbp], zmm0 - -; 189 : ans[i].f32_z[0] = c0; - - 000a8 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 000ad 49 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba b9 40 00 00 00 mov ecx, 64 ; 00000040H - 000bf 48 6b c9 00 imul rcx, rcx, 0 - 000c3 62 f1 7c 48 10 - 45 01 vmovups zmm0, ZMMWORD PTR c0$2[rbp] - 000ca 62 f1 7c 48 11 - 04 08 vmovups ZMMWORD PTR [rax+rcx], zmm0 - -; 190 : } - - 000d1 e9 6e ff ff ff jmp $LN2@float_buf_ -$LN3@float_buf_: - -; 191 : } - - 000d6 49 8d a5 90 01 - 00 00 lea rsp, QWORD PTR [r13+400] - 000dd 5f pop rdi - 000de 5d pop rbp - 000df 41 5d pop r13 - 000e1 c3 ret 0 -float_buf_sub_512 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT float_buf_sub_avx -_TEXT SEGMENT -i$1 = 8 -c0$2 = 64 -c1$3 = 128 -left$ = 432 -right$ = 440 -ans$ = 448 -count$ = 456 -float_buf_sub_avx PROC ; COMDAT - -; 176 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 41 55 push r13 - 00016 55 push rbp - 00017 57 push rdi - 00018 48 81 ec b0 01 - 00 00 sub rsp, 432 ; 000001b0H - 0001f 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00024 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00029 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H - 0002d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 00034 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00039 90 npad 1 - -; 177 : for (size_t i = 0; i < count; i++) { - - 0003a 48 c7 45 08 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 00042 eb 0b jmp SHORT $LN4@float_buf_ -$LN2@float_buf_: - 00044 48 8b 45 08 mov rax, QWORD PTR i$1[rbp] - 00048 48 ff c0 inc rax - 0004b 48 89 45 08 mov QWORD PTR i$1[rbp], rax -$LN4@float_buf_: - 0004f 49 8b 85 c8 01 - 00 00 mov rax, QWORD PTR count$[r13] - 00056 48 39 45 08 cmp QWORD PTR i$1[rbp], rax - 0005a 0f 83 e3 00 00 - 00 jae $LN3@float_buf_ - -; 178 : register __m256 c0 = _mm256_sub_ps(left[i].f32_y[0], right[i].f32_y[0]); - - 00060 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 00065 49 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR right$[r13] - 0006c 48 03 c8 add rcx, rax - 0006f 48 8b c1 mov rax, rcx - 00072 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 00077 48 6b c9 00 imul rcx, rcx, 0 - 0007b 48 6b 55 08 40 imul rdx, QWORD PTR i$1[rbp], 64 ; 00000040H - 00080 4d 8b 85 b0 01 - 00 00 mov r8, QWORD PTR left$[r13] - 00087 4c 03 c2 add r8, rdx - 0008a 49 8b d0 mov rdx, r8 - 0008d 41 b8 20 00 00 - 00 mov r8d, 32 ; 00000020H - 00093 4d 6b c0 00 imul r8, r8, 0 - 00097 c4 a1 7c 10 04 - 02 vmovups ymm0, YMMWORD PTR [rdx+r8] - 0009d c5 fc 5c 04 08 vsubps ymm0, ymm0, YMMWORD PTR [rax+rcx] - 000a2 c5 fc 11 45 40 vmovups YMMWORD PTR c0$2[rbp], ymm0 - -; 179 : register __m256 c1 = _mm256_sub_ps(left[i].f32_y[1], right[i].f32_y[1]); - - 000a7 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 000ac 49 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR right$[r13] - 000b3 48 03 c8 add rcx, rax - 000b6 48 8b c1 mov rax, rcx - 000b9 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 000be 48 6b c9 01 imul rcx, rcx, 1 - 000c2 48 6b 55 08 40 imul rdx, QWORD PTR i$1[rbp], 64 ; 00000040H - 000c7 4d 8b 85 b0 01 - 00 00 mov r8, QWORD PTR left$[r13] - 000ce 4c 03 c2 add r8, rdx - 000d1 49 8b d0 mov rdx, r8 - 000d4 41 b8 20 00 00 - 00 mov r8d, 32 ; 00000020H - 000da 4d 6b c0 01 imul r8, r8, 1 - 000de c4 a1 7c 10 04 - 02 vmovups ymm0, YMMWORD PTR [rdx+r8] - 000e4 c5 fc 5c 04 08 vsubps ymm0, ymm0, YMMWORD PTR [rax+rcx] - 000e9 c5 fc 11 85 80 - 00 00 00 vmovups YMMWORD PTR c1$3[rbp], ymm0 - -; 180 : ans[i].f32_y[0] = c0; - - 000f1 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 000f6 49 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000fd 48 03 c8 add rcx, rax - 00100 48 8b c1 mov rax, rcx - 00103 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 00108 48 6b c9 00 imul rcx, rcx, 0 - 0010c c5 fc 10 45 40 vmovups ymm0, YMMWORD PTR c0$2[rbp] - 00111 c5 fc 11 04 08 vmovups YMMWORD PTR [rax+rcx], ymm0 - -; 181 : ans[i].f32_y[1] = c1; - - 00116 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 0011b 49 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00122 48 03 c8 add rcx, rax - 00125 48 8b c1 mov rax, rcx - 00128 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 0012d 48 6b c9 01 imul rcx, rcx, 1 - 00131 c5 fc 10 85 80 - 00 00 00 vmovups ymm0, YMMWORD PTR c1$3[rbp] - 00139 c5 fc 11 04 08 vmovups YMMWORD PTR [rax+rcx], ymm0 - -; 182 : } - - 0013e e9 01 ff ff ff jmp $LN2@float_buf_ -$LN3@float_buf_: - -; 183 : } - - 00143 49 8d a5 90 01 - 00 00 lea rsp, QWORD PTR [r13+400] - 0014a 5f pop rdi - 0014b 5d pop rbp - 0014c 41 5d pop r13 - 0014e c3 ret 0 -float_buf_sub_avx ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT float_buf_sub_sse -_TEXT SEGMENT -i$1 = 8 -c0$2 = 48 -c1$3 = 96 -c2$4 = 144 -c3$5 = 192 -left$ = 448 -right$ = 456 -ans$ = 464 -count$ = 472 -float_buf_sub_sse PROC ; COMDAT - -; 161 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec c8 01 - 00 00 sub rsp, 456 ; 000001c8H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 162 : for (size_t i = 0; i < count; i++) { - - 0002f 48 c7 45 08 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 00037 eb 0b jmp SHORT $LN4@float_buf_ -$LN2@float_buf_: - 00039 48 8b 45 08 mov rax, QWORD PTR i$1[rbp] - 0003d 48 ff c0 inc rax - 00040 48 89 45 08 mov QWORD PTR i$1[rbp], rax -$LN4@float_buf_: - 00044 48 8b 85 d8 01 - 00 00 mov rax, QWORD PTR count$[rbp] - 0004b 48 39 45 08 cmp QWORD PTR i$1[rbp], rax - 0004f 0f 83 ad 01 00 - 00 jae $LN3@float_buf_ - -; 163 : register __m128 c0 = _mm_sub_ps(left[i].f32_x[0], right[i].f32_x[0]); - - 00055 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 0005a 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00061 48 03 c8 add rcx, rax - 00064 48 8b c1 mov rax, rcx - 00067 b9 10 00 00 00 mov ecx, 16 - 0006c 48 6b c9 00 imul rcx, rcx, 0 - 00070 48 6b 55 08 40 imul rdx, QWORD PTR i$1[rbp], 64 ; 00000040H - 00075 4c 8b 85 c0 01 - 00 00 mov r8, QWORD PTR left$[rbp] - 0007c 4c 03 c2 add r8, rdx - 0007f 49 8b d0 mov rdx, r8 - 00082 41 b8 10 00 00 - 00 mov r8d, 16 - 00088 4d 6b c0 00 imul r8, r8, 0 - 0008c 42 0f 10 04 02 movups xmm0, XMMWORD PTR [rdx+r8] - 00091 0f 5c 04 08 subps xmm0, XMMWORD PTR [rax+rcx] - 00095 0f 29 45 30 movaps XMMWORD PTR c0$2[rbp], xmm0 - -; 164 : register __m128 c1 = _mm_sub_ps(left[i].f32_x[1], right[i].f32_x[1]); - - 00099 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 0009e 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR right$[rbp] - 000a5 48 03 c8 add rcx, rax - 000a8 48 8b c1 mov rax, rcx - 000ab b9 10 00 00 00 mov ecx, 16 - 000b0 48 6b c9 01 imul rcx, rcx, 1 - 000b4 48 6b 55 08 40 imul rdx, QWORD PTR i$1[rbp], 64 ; 00000040H - 000b9 4c 8b 85 c0 01 - 00 00 mov r8, QWORD PTR left$[rbp] - 000c0 4c 03 c2 add r8, rdx - 000c3 49 8b d0 mov rdx, r8 - 000c6 41 b8 10 00 00 - 00 mov r8d, 16 - 000cc 4d 6b c0 01 imul r8, r8, 1 - 000d0 42 0f 10 04 02 movups xmm0, XMMWORD PTR [rdx+r8] - 000d5 0f 5c 04 08 subps xmm0, XMMWORD PTR [rax+rcx] - 000d9 0f 29 45 60 movaps XMMWORD PTR c1$3[rbp], xmm0 - -; 165 : register __m128 c2 = _mm_sub_ps(left[i].f32_x[2], right[i].f32_x[2]); - - 000dd 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 000e2 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR right$[rbp] - 000e9 48 03 c8 add rcx, rax - 000ec 48 8b c1 mov rax, rcx - 000ef b9 10 00 00 00 mov ecx, 16 - 000f4 48 6b c9 02 imul rcx, rcx, 2 - 000f8 48 6b 55 08 40 imul rdx, QWORD PTR i$1[rbp], 64 ; 00000040H - 000fd 4c 8b 85 c0 01 - 00 00 mov r8, QWORD PTR left$[rbp] - 00104 4c 03 c2 add r8, rdx - 00107 49 8b d0 mov rdx, r8 - 0010a 41 b8 10 00 00 - 00 mov r8d, 16 - 00110 4d 6b c0 02 imul r8, r8, 2 - 00114 42 0f 10 04 02 movups xmm0, XMMWORD PTR [rdx+r8] - 00119 0f 5c 04 08 subps xmm0, XMMWORD PTR [rax+rcx] - 0011d 0f 29 85 90 00 - 00 00 movaps XMMWORD PTR c2$4[rbp], xmm0 - -; 166 : register __m128 c3 = _mm_sub_ps(left[i].f32_x[3], right[i].f32_x[3]); - - 00124 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 00129 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00130 48 03 c8 add rcx, rax - 00133 48 8b c1 mov rax, rcx - 00136 b9 10 00 00 00 mov ecx, 16 - 0013b 48 6b c9 03 imul rcx, rcx, 3 - 0013f 48 6b 55 08 40 imul rdx, QWORD PTR i$1[rbp], 64 ; 00000040H - 00144 4c 8b 85 c0 01 - 00 00 mov r8, QWORD PTR left$[rbp] - 0014b 4c 03 c2 add r8, rdx - 0014e 49 8b d0 mov rdx, r8 - 00151 41 b8 10 00 00 - 00 mov r8d, 16 - 00157 4d 6b c0 03 imul r8, r8, 3 - 0015b 42 0f 10 04 02 movups xmm0, XMMWORD PTR [rdx+r8] - 00160 0f 5c 04 08 subps xmm0, XMMWORD PTR [rax+rcx] - 00164 0f 29 85 c0 00 - 00 00 movaps XMMWORD PTR c3$5[rbp], xmm0 - -; 167 : -; 168 : ans[i].f32_x[0] = c0; - - 0016b 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 00170 48 8b 8d d0 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00177 48 03 c8 add rcx, rax - 0017a 48 8b c1 mov rax, rcx - 0017d b9 10 00 00 00 mov ecx, 16 - 00182 48 6b c9 00 imul rcx, rcx, 0 - 00186 0f 28 45 30 movaps xmm0, XMMWORD PTR c0$2[rbp] - 0018a 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 169 : ans[i].f32_x[1] = c1; - - 0018e 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 00193 48 8b 8d d0 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 0019a 48 03 c8 add rcx, rax - 0019d 48 8b c1 mov rax, rcx - 001a0 b9 10 00 00 00 mov ecx, 16 - 001a5 48 6b c9 01 imul rcx, rcx, 1 - 001a9 0f 28 45 60 movaps xmm0, XMMWORD PTR c1$3[rbp] - 001ad 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 170 : ans[i].f32_x[2] = c2; - - 001b1 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 001b6 48 8b 8d d0 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 001bd 48 03 c8 add rcx, rax - 001c0 48 8b c1 mov rax, rcx - 001c3 b9 10 00 00 00 mov ecx, 16 - 001c8 48 6b c9 02 imul rcx, rcx, 2 - 001cc 0f 28 85 90 00 - 00 00 movaps xmm0, XMMWORD PTR c2$4[rbp] - 001d3 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 171 : ans[i].f32_x[3] = c3; - - 001d7 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 001dc 48 8b 8d d0 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 001e3 48 03 c8 add rcx, rax - 001e6 48 8b c1 mov rax, rcx - 001e9 b9 10 00 00 00 mov ecx, 16 - 001ee 48 6b c9 03 imul rcx, rcx, 3 - 001f2 0f 28 85 c0 00 - 00 00 movaps xmm0, XMMWORD PTR c3$5[rbp] - 001f9 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 172 : } - - 001fd e9 37 fe ff ff jmp $LN2@float_buf_ -$LN3@float_buf_: - -; 173 : } - - 00202 48 8d a5 a8 01 - 00 00 lea rsp, QWORD PTR [rbp+424] - 00209 5f pop rdi - 0020a 5d pop rbp - 0020b c3 ret 0 -float_buf_sub_sse ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT double_buf_add_512 -_TEXT SEGMENT -i$1 = 8 -c0$2 = 64 -c1$3 = 192 -left$ = 560 -right$ = 568 -ans$ = 576 -count$ = 584 -double_buf_add_512 PROC ; COMDAT - -; 151 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 41 55 push r13 - 00016 55 push rbp - 00017 57 push rdi - 00018 48 81 ec 30 02 - 00 00 sub rsp, 560 ; 00000230H - 0001f 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00024 48 8d 6c 24 60 lea rbp, QWORD PTR [rsp+96] - 00029 48 83 e5 c0 and rbp, -64 ; ffffffffffffffc0H - 0002d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 00034 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00039 90 npad 1 - -; 152 : for (size_t i = 0; i < count; i++) { - - 0003a 48 c7 45 08 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 00042 eb 0b jmp SHORT $LN4@double_buf -$LN2@double_buf: - 00044 48 8b 45 08 mov rax, QWORD PTR i$1[rbp] - 00048 48 ff c0 inc rax - 0004b 48 89 45 08 mov QWORD PTR i$1[rbp], rax -$LN4@double_buf: - 0004f 49 8b 85 48 02 - 00 00 mov rax, QWORD PTR count$[r13] - 00056 48 39 45 08 cmp QWORD PTR i$1[rbp], rax - 0005a 0f 83 01 01 00 - 00 jae $LN3@double_buf - -; 153 : register __m512d c0 = _mm512_add_pd(left[i].f64_z[0], right[i].f64_z[0]); - - 00060 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00068 49 8b 8d 38 02 - 00 00 mov rcx, QWORD PTR right$[r13] - 0006f 48 03 c8 add rcx, rax - 00072 48 8b c1 mov rax, rcx - 00075 b9 40 00 00 00 mov ecx, 64 ; 00000040H - 0007a 48 6b c9 00 imul rcx, rcx, 0 - 0007e 48 69 55 08 80 - 00 00 00 imul rdx, QWORD PTR i$1[rbp], 128 ; 00000080H - 00086 4d 8b 85 30 02 - 00 00 mov r8, QWORD PTR left$[r13] - 0008d 4c 03 c2 add r8, rdx - 00090 49 8b d0 mov rdx, r8 - 00093 41 b8 40 00 00 - 00 mov r8d, 64 ; 00000040H - 00099 4d 6b c0 00 imul r8, r8, 0 - 0009d 62 b1 fd 48 10 - 04 02 vmovupd zmm0, ZMMWORD PTR [rdx+r8] - 000a4 62 f1 fd 48 58 - 04 08 vaddpd zmm0, zmm0, ZMMWORD PTR [rax+rcx] - 000ab 62 f1 fd 48 11 - 45 01 vmovupd ZMMWORD PTR c0$2[rbp], zmm0 - -; 154 : register __m512d c1 = _mm512_add_pd(left[i].f64_z[1], right[i].f64_z[1]); - - 000b2 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 000ba 49 8b 8d 38 02 - 00 00 mov rcx, QWORD PTR right$[r13] - 000c1 48 03 c8 add rcx, rax - 000c4 48 8b c1 mov rax, rcx - 000c7 b9 40 00 00 00 mov ecx, 64 ; 00000040H - 000cc 48 6b c9 01 imul rcx, rcx, 1 - 000d0 48 69 55 08 80 - 00 00 00 imul rdx, QWORD PTR i$1[rbp], 128 ; 00000080H - 000d8 4d 8b 85 30 02 - 00 00 mov r8, QWORD PTR left$[r13] - 000df 4c 03 c2 add r8, rdx - 000e2 49 8b d0 mov rdx, r8 - 000e5 41 b8 40 00 00 - 00 mov r8d, 64 ; 00000040H - 000eb 4d 6b c0 01 imul r8, r8, 1 - 000ef 62 b1 fd 48 10 - 04 02 vmovupd zmm0, ZMMWORD PTR [rdx+r8] - 000f6 62 f1 fd 48 58 - 04 08 vaddpd zmm0, zmm0, ZMMWORD PTR [rax+rcx] - 000fd 62 f1 fd 48 11 - 45 03 vmovupd ZMMWORD PTR c1$3[rbp], zmm0 - -; 155 : ans[i].f64_z[0] = c0; - - 00104 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0010c 49 8b 8d 40 02 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00113 48 03 c8 add rcx, rax - 00116 48 8b c1 mov rax, rcx - 00119 b9 40 00 00 00 mov ecx, 64 ; 00000040H - 0011e 48 6b c9 00 imul rcx, rcx, 0 - 00122 62 f1 fd 48 10 - 45 01 vmovupd zmm0, ZMMWORD PTR c0$2[rbp] - 00129 62 f1 fd 48 11 - 04 08 vmovupd ZMMWORD PTR [rax+rcx], zmm0 - -; 156 : ans[i].f64_z[1] = c1; - - 00130 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00138 49 8b 8d 40 02 - 00 00 mov rcx, QWORD PTR ans$[r13] - 0013f 48 03 c8 add rcx, rax - 00142 48 8b c1 mov rax, rcx - 00145 b9 40 00 00 00 mov ecx, 64 ; 00000040H - 0014a 48 6b c9 01 imul rcx, rcx, 1 - 0014e 62 f1 fd 48 10 - 45 03 vmovupd zmm0, ZMMWORD PTR c1$3[rbp] - 00155 62 f1 fd 48 11 - 04 08 vmovupd ZMMWORD PTR [rax+rcx], zmm0 - -; 157 : } - - 0015c e9 e3 fe ff ff jmp $LN2@double_buf -$LN3@double_buf: - -; 158 : } - - 00161 49 8d a5 10 02 - 00 00 lea rsp, QWORD PTR [r13+528] - 00168 5f pop rdi - 00169 5d pop rbp - 0016a 41 5d pop r13 - 0016c c3 ret 0 -double_buf_add_512 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT double_buf_add_avx -_TEXT SEGMENT -i$1 = 8 -s$2 = 40 -c0$3 = 96 -c1$4 = 160 -c2$5 = 224 -c3$6 = 288 -left$ = 592 -right$ = 600 -ans$ = 608 -count$ = 616 -double_buf_add_avx PROC ; COMDAT - -; 136 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 41 55 push r13 - 00016 55 push rbp - 00017 57 push rdi - 00018 48 81 ec 50 02 - 00 00 sub rsp, 592 ; 00000250H - 0001f 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00024 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00029 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H - 0002d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 00034 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00039 90 npad 1 - -; 137 : for (size_t i = 0; i < count; i++) { - - 0003a 48 c7 45 08 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 00042 eb 0b jmp SHORT $LN4@double_buf -$LN2@double_buf: - 00044 48 8b 45 08 mov rax, QWORD PTR i$1[rbp] - 00048 48 ff c0 inc rax - 0004b 48 89 45 08 mov QWORD PTR i$1[rbp], rax -$LN4@double_buf: - 0004f 49 8b 85 68 02 - 00 00 mov rax, QWORD PTR count$[r13] - 00056 48 39 45 08 cmp QWORD PTR i$1[rbp], rax - 0005a 0f 83 f3 01 00 - 00 jae $LN3@double_buf - -; 138 : size_t s = sizeof(MAT_KERNEL(float)); - - 00060 48 c7 45 28 40 - 00 00 00 mov QWORD PTR s$2[rbp], 64 ; 00000040H - -; 139 : register __m256d c0 = _mm256_add_pd(left[i].f64_y[0], right[i].f64_y[0]); - - 00068 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00070 49 8b 8d 58 02 - 00 00 mov rcx, QWORD PTR right$[r13] - 00077 48 03 c8 add rcx, rax - 0007a 48 8b c1 mov rax, rcx - 0007d b9 20 00 00 00 mov ecx, 32 ; 00000020H - 00082 48 6b c9 00 imul rcx, rcx, 0 - 00086 48 69 55 08 80 - 00 00 00 imul rdx, QWORD PTR i$1[rbp], 128 ; 00000080H - 0008e 4d 8b 85 50 02 - 00 00 mov r8, QWORD PTR left$[r13] - 00095 4c 03 c2 add r8, rdx - 00098 49 8b d0 mov rdx, r8 - 0009b 41 b8 20 00 00 - 00 mov r8d, 32 ; 00000020H - 000a1 4d 6b c0 00 imul r8, r8, 0 - 000a5 c4 a1 7d 10 04 - 02 vmovupd ymm0, YMMWORD PTR [rdx+r8] - 000ab c5 fd 58 04 08 vaddpd ymm0, ymm0, YMMWORD PTR [rax+rcx] - 000b0 c5 fd 11 45 60 vmovupd YMMWORD PTR c0$3[rbp], ymm0 - -; 140 : register __m256d c1 = _mm256_add_pd(left[i].f64_y[1], right[i].f64_y[1]); - - 000b5 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 000bd 49 8b 8d 58 02 - 00 00 mov rcx, QWORD PTR right$[r13] - 000c4 48 03 c8 add rcx, rax - 000c7 48 8b c1 mov rax, rcx - 000ca b9 20 00 00 00 mov ecx, 32 ; 00000020H - 000cf 48 6b c9 01 imul rcx, rcx, 1 - 000d3 48 69 55 08 80 - 00 00 00 imul rdx, QWORD PTR i$1[rbp], 128 ; 00000080H - 000db 4d 8b 85 50 02 - 00 00 mov r8, QWORD PTR left$[r13] - 000e2 4c 03 c2 add r8, rdx - 000e5 49 8b d0 mov rdx, r8 - 000e8 41 b8 20 00 00 - 00 mov r8d, 32 ; 00000020H - 000ee 4d 6b c0 01 imul r8, r8, 1 - 000f2 c4 a1 7d 10 04 - 02 vmovupd ymm0, YMMWORD PTR [rdx+r8] - 000f8 c5 fd 58 04 08 vaddpd ymm0, ymm0, YMMWORD PTR [rax+rcx] - 000fd c5 fd 11 85 a0 - 00 00 00 vmovupd YMMWORD PTR c1$4[rbp], ymm0 - -; 141 : register __m256d c2 = _mm256_add_pd(left[i].f64_y[0], right[i].f64_y[0]); - - 00105 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0010d 49 8b 8d 58 02 - 00 00 mov rcx, QWORD PTR right$[r13] - 00114 48 03 c8 add rcx, rax - 00117 48 8b c1 mov rax, rcx - 0011a b9 20 00 00 00 mov ecx, 32 ; 00000020H - 0011f 48 6b c9 00 imul rcx, rcx, 0 - 00123 48 69 55 08 80 - 00 00 00 imul rdx, QWORD PTR i$1[rbp], 128 ; 00000080H - 0012b 4d 8b 85 50 02 - 00 00 mov r8, QWORD PTR left$[r13] - 00132 4c 03 c2 add r8, rdx - 00135 49 8b d0 mov rdx, r8 - 00138 41 b8 20 00 00 - 00 mov r8d, 32 ; 00000020H - 0013e 4d 6b c0 00 imul r8, r8, 0 - 00142 c4 a1 7d 10 04 - 02 vmovupd ymm0, YMMWORD PTR [rdx+r8] - 00148 c5 fd 58 04 08 vaddpd ymm0, ymm0, YMMWORD PTR [rax+rcx] - 0014d c5 fd 11 85 e0 - 00 00 00 vmovupd YMMWORD PTR c2$5[rbp], ymm0 - -; 142 : register __m256d c3 = _mm256_add_pd(left[i].f64_y[1], right[i].f64_y[1]); - - 00155 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0015d 49 8b 8d 58 02 - 00 00 mov rcx, QWORD PTR right$[r13] - 00164 48 03 c8 add rcx, rax - 00167 48 8b c1 mov rax, rcx - 0016a b9 20 00 00 00 mov ecx, 32 ; 00000020H - 0016f 48 6b c9 01 imul rcx, rcx, 1 - 00173 48 69 55 08 80 - 00 00 00 imul rdx, QWORD PTR i$1[rbp], 128 ; 00000080H - 0017b 4d 8b 85 50 02 - 00 00 mov r8, QWORD PTR left$[r13] - 00182 4c 03 c2 add r8, rdx - 00185 49 8b d0 mov rdx, r8 - 00188 41 b8 20 00 00 - 00 mov r8d, 32 ; 00000020H - 0018e 4d 6b c0 01 imul r8, r8, 1 - 00192 c4 a1 7d 10 04 - 02 vmovupd ymm0, YMMWORD PTR [rdx+r8] - 00198 c5 fd 58 04 08 vaddpd ymm0, ymm0, YMMWORD PTR [rax+rcx] - 0019d c5 fd 11 85 20 - 01 00 00 vmovupd YMMWORD PTR c3$6[rbp], ymm0 - -; 143 : ans[i].f64_y[0] = c0; - - 001a5 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 001ad 49 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR ans$[r13] - 001b4 48 03 c8 add rcx, rax - 001b7 48 8b c1 mov rax, rcx - 001ba b9 20 00 00 00 mov ecx, 32 ; 00000020H - 001bf 48 6b c9 00 imul rcx, rcx, 0 - 001c3 c5 fd 10 45 60 vmovupd ymm0, YMMWORD PTR c0$3[rbp] - 001c8 c5 fd 11 04 08 vmovupd YMMWORD PTR [rax+rcx], ymm0 - -; 144 : ans[i].f64_y[1] = c1; - - 001cd 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 001d5 49 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR ans$[r13] - 001dc 48 03 c8 add rcx, rax - 001df 48 8b c1 mov rax, rcx - 001e2 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 001e7 48 6b c9 01 imul rcx, rcx, 1 - 001eb c5 fd 10 85 a0 - 00 00 00 vmovupd ymm0, YMMWORD PTR c1$4[rbp] - 001f3 c5 fd 11 04 08 vmovupd YMMWORD PTR [rax+rcx], ymm0 - -; 145 : ans[i].f64_y[2] = c2; - - 001f8 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00200 49 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00207 48 03 c8 add rcx, rax - 0020a 48 8b c1 mov rax, rcx - 0020d b9 20 00 00 00 mov ecx, 32 ; 00000020H - 00212 48 6b c9 02 imul rcx, rcx, 2 - 00216 c5 fd 10 85 e0 - 00 00 00 vmovupd ymm0, YMMWORD PTR c2$5[rbp] - 0021e c5 fd 11 04 08 vmovupd YMMWORD PTR [rax+rcx], ymm0 - -; 146 : ans[i].f64_y[3] = c3; - - 00223 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0022b 49 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00232 48 03 c8 add rcx, rax - 00235 48 8b c1 mov rax, rcx - 00238 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 0023d 48 6b c9 03 imul rcx, rcx, 3 - 00241 c5 fd 10 85 20 - 01 00 00 vmovupd ymm0, YMMWORD PTR c3$6[rbp] - 00249 c5 fd 11 04 08 vmovupd YMMWORD PTR [rax+rcx], ymm0 - -; 147 : } - - 0024e e9 f1 fd ff ff jmp $LN2@double_buf -$LN3@double_buf: - -; 148 : } - - 00253 49 8d a5 30 02 - 00 00 lea rsp, QWORD PTR [r13+560] - 0025a 5f pop rdi - 0025b 5d pop rbp - 0025c 41 5d pop r13 - 0025e c3 ret 0 -double_buf_add_avx ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT double_buf_add_sse -_TEXT SEGMENT -i$1 = 8 -c0$2 = 48 -c1$3 = 96 -c2$4 = 144 -c3$5 = 192 -c4$6 = 240 -c5$7 = 288 -c6$8 = 336 -c7$9 = 384 -left$ = 640 -right$ = 648 -ans$ = 656 -count$ = 664 -double_buf_add_sse PROC ; COMDAT - -; 105 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 88 02 - 00 00 sub rsp, 648 ; 00000288H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 106 : for (size_t i = 0; i < count; i++) { - - 0002f 48 c7 45 08 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 00037 eb 0b jmp SHORT $LN4@double_buf -$LN2@double_buf: - 00039 48 8b 45 08 mov rax, QWORD PTR i$1[rbp] - 0003d 48 ff c0 inc rax - 00040 48 89 45 08 mov QWORD PTR i$1[rbp], rax -$LN4@double_buf: - 00044 48 8b 85 98 02 - 00 00 mov rax, QWORD PTR count$[rbp] - 0004b 48 39 45 08 cmp QWORD PTR i$1[rbp], rax - 0004f 0f 83 d1 03 00 - 00 jae $LN3@double_buf - -; 107 : register __m128d c0 = _mm_add_pd(_mm_castps_pd(left[i].f32_x[0]), - - 00055 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0005d 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00064 48 03 c8 add rcx, rax - 00067 48 8b c1 mov rax, rcx - 0006a b9 10 00 00 00 mov ecx, 16 - 0006f 48 6b c9 00 imul rcx, rcx, 0 - 00073 0f 10 04 08 movups xmm0, XMMWORD PTR [rax+rcx] - 00077 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0007f 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR left$[rbp] - 00086 48 03 c8 add rcx, rax - 00089 48 8b c1 mov rax, rcx - 0008c b9 10 00 00 00 mov ecx, 16 - 00091 48 6b c9 00 imul rcx, rcx, 0 - 00095 0f 10 0c 08 movups xmm1, XMMWORD PTR [rax+rcx] - 00099 66 0f 58 c8 addpd xmm1, xmm0 - 0009d 0f 28 c1 movaps xmm0, xmm1 - 000a0 0f 29 45 30 movaps XMMWORD PTR c0$2[rbp], xmm0 - -; 108 : _mm_castps_pd(right[i].f32_x[0])); -; 109 : register __m128d c1 = _mm_add_pd(_mm_castps_pd(left[i].f32_x[1]), - - 000a4 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 000ac 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 000b3 48 03 c8 add rcx, rax - 000b6 48 8b c1 mov rax, rcx - 000b9 b9 10 00 00 00 mov ecx, 16 - 000be 48 6b c9 01 imul rcx, rcx, 1 - 000c2 0f 10 04 08 movups xmm0, XMMWORD PTR [rax+rcx] - 000c6 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 000ce 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR left$[rbp] - 000d5 48 03 c8 add rcx, rax - 000d8 48 8b c1 mov rax, rcx - 000db b9 10 00 00 00 mov ecx, 16 - 000e0 48 6b c9 01 imul rcx, rcx, 1 - 000e4 0f 10 0c 08 movups xmm1, XMMWORD PTR [rax+rcx] - 000e8 66 0f 58 c8 addpd xmm1, xmm0 - 000ec 0f 28 c1 movaps xmm0, xmm1 - 000ef 0f 29 45 60 movaps XMMWORD PTR c1$3[rbp], xmm0 - -; 110 : _mm_castps_pd(right[i].f32_x[1])); -; 111 : register __m128d c2 = _mm_add_pd(_mm_castps_pd(left[i].f32_x[2]), - - 000f3 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 000fb 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00102 48 03 c8 add rcx, rax - 00105 48 8b c1 mov rax, rcx - 00108 b9 10 00 00 00 mov ecx, 16 - 0010d 48 6b c9 02 imul rcx, rcx, 2 - 00111 0f 10 04 08 movups xmm0, XMMWORD PTR [rax+rcx] - 00115 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0011d 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR left$[rbp] - 00124 48 03 c8 add rcx, rax - 00127 48 8b c1 mov rax, rcx - 0012a b9 10 00 00 00 mov ecx, 16 - 0012f 48 6b c9 02 imul rcx, rcx, 2 - 00133 0f 10 0c 08 movups xmm1, XMMWORD PTR [rax+rcx] - 00137 66 0f 58 c8 addpd xmm1, xmm0 - 0013b 0f 28 c1 movaps xmm0, xmm1 - 0013e 0f 29 85 90 00 - 00 00 movaps XMMWORD PTR c2$4[rbp], xmm0 - -; 112 : _mm_castps_pd(right[i].f32_x[2])); -; 113 : register __m128d c3 = _mm_add_pd(_mm_castps_pd(left[i].f32_x[3]), - - 00145 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0014d 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00154 48 03 c8 add rcx, rax - 00157 48 8b c1 mov rax, rcx - 0015a b9 10 00 00 00 mov ecx, 16 - 0015f 48 6b c9 03 imul rcx, rcx, 3 - 00163 0f 10 04 08 movups xmm0, XMMWORD PTR [rax+rcx] - 00167 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0016f 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR left$[rbp] - 00176 48 03 c8 add rcx, rax - 00179 48 8b c1 mov rax, rcx - 0017c b9 10 00 00 00 mov ecx, 16 - 00181 48 6b c9 03 imul rcx, rcx, 3 - 00185 0f 10 0c 08 movups xmm1, XMMWORD PTR [rax+rcx] - 00189 66 0f 58 c8 addpd xmm1, xmm0 - 0018d 0f 28 c1 movaps xmm0, xmm1 - 00190 0f 29 85 c0 00 - 00 00 movaps XMMWORD PTR c3$5[rbp], xmm0 - -; 114 : _mm_castps_pd(right[i].f32_x[3])); -; 115 : register __m128d c4 = _mm_add_pd(_mm_castps_pd(left[i].f32_x[4]), - - 00197 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0019f 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 001a6 48 03 c8 add rcx, rax - 001a9 48 8b c1 mov rax, rcx - 001ac b9 10 00 00 00 mov ecx, 16 - 001b1 48 6b c9 04 imul rcx, rcx, 4 - 001b5 0f 10 04 08 movups xmm0, XMMWORD PTR [rax+rcx] - 001b9 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 001c1 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR left$[rbp] - 001c8 48 03 c8 add rcx, rax - 001cb 48 8b c1 mov rax, rcx - 001ce b9 10 00 00 00 mov ecx, 16 - 001d3 48 6b c9 04 imul rcx, rcx, 4 - 001d7 0f 10 0c 08 movups xmm1, XMMWORD PTR [rax+rcx] - 001db 66 0f 58 c8 addpd xmm1, xmm0 - 001df 0f 28 c1 movaps xmm0, xmm1 - 001e2 0f 29 85 f0 00 - 00 00 movaps XMMWORD PTR c4$6[rbp], xmm0 - -; 116 : _mm_castps_pd(right[i].f32_x[4])); -; 117 : register __m128d c5 = _mm_add_pd(_mm_castps_pd(left[i].f32_x[5]), - - 001e9 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 001f1 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 001f8 48 03 c8 add rcx, rax - 001fb 48 8b c1 mov rax, rcx - 001fe b9 10 00 00 00 mov ecx, 16 - 00203 48 6b c9 05 imul rcx, rcx, 5 - 00207 0f 10 04 08 movups xmm0, XMMWORD PTR [rax+rcx] - 0020b 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00213 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR left$[rbp] - 0021a 48 03 c8 add rcx, rax - 0021d 48 8b c1 mov rax, rcx - 00220 b9 10 00 00 00 mov ecx, 16 - 00225 48 6b c9 05 imul rcx, rcx, 5 - 00229 0f 10 0c 08 movups xmm1, XMMWORD PTR [rax+rcx] - 0022d 66 0f 58 c8 addpd xmm1, xmm0 - 00231 0f 28 c1 movaps xmm0, xmm1 - 00234 0f 29 85 20 01 - 00 00 movaps XMMWORD PTR c5$7[rbp], xmm0 - -; 118 : _mm_castps_pd(right[i].f32_x[5])); -; 119 : register __m128d c6 = _mm_add_pd(_mm_castps_pd(left[i].f32_x[6]), - - 0023b 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00243 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 0024a 48 03 c8 add rcx, rax - 0024d 48 8b c1 mov rax, rcx - 00250 b9 10 00 00 00 mov ecx, 16 - 00255 48 6b c9 06 imul rcx, rcx, 6 - 00259 0f 10 04 08 movups xmm0, XMMWORD PTR [rax+rcx] - 0025d 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00265 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR left$[rbp] - 0026c 48 03 c8 add rcx, rax - 0026f 48 8b c1 mov rax, rcx - 00272 b9 10 00 00 00 mov ecx, 16 - 00277 48 6b c9 06 imul rcx, rcx, 6 - 0027b 0f 10 0c 08 movups xmm1, XMMWORD PTR [rax+rcx] - 0027f 66 0f 58 c8 addpd xmm1, xmm0 - 00283 0f 28 c1 movaps xmm0, xmm1 - 00286 0f 29 85 50 01 - 00 00 movaps XMMWORD PTR c6$8[rbp], xmm0 - -; 120 : _mm_castps_pd(right[i].f32_x[6])); -; 121 : register __m128d c7 = _mm_add_pd(_mm_castps_pd(left[i].f32_x[7]), - - 0028d 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00295 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 0029c 48 03 c8 add rcx, rax - 0029f 48 8b c1 mov rax, rcx - 002a2 b9 10 00 00 00 mov ecx, 16 - 002a7 48 6b c9 07 imul rcx, rcx, 7 - 002ab 0f 10 04 08 movups xmm0, XMMWORD PTR [rax+rcx] - 002af 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 002b7 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR left$[rbp] - 002be 48 03 c8 add rcx, rax - 002c1 48 8b c1 mov rax, rcx - 002c4 b9 10 00 00 00 mov ecx, 16 - 002c9 48 6b c9 07 imul rcx, rcx, 7 - 002cd 0f 10 0c 08 movups xmm1, XMMWORD PTR [rax+rcx] - 002d1 66 0f 58 c8 addpd xmm1, xmm0 - 002d5 0f 28 c1 movaps xmm0, xmm1 - 002d8 0f 29 85 80 01 - 00 00 movaps XMMWORD PTR c7$9[rbp], xmm0 - -; 122 : _mm_castps_pd(right[i].f32_x[7])); -; 123 : -; 124 : ans[i].f32_x[0] = _mm_castpd_ps(c0); - - 002df 0f 28 45 30 movaps xmm0, XMMWORD PTR c0$2[rbp] - 002e3 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 002eb 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 002f2 48 03 c8 add rcx, rax - 002f5 48 8b c1 mov rax, rcx - 002f8 b9 10 00 00 00 mov ecx, 16 - 002fd 48 6b c9 00 imul rcx, rcx, 0 - 00301 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 125 : ans[i].f32_x[1] = _mm_castpd_ps(c1); - - 00305 0f 28 45 60 movaps xmm0, XMMWORD PTR c1$3[rbp] - 00309 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00311 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00318 48 03 c8 add rcx, rax - 0031b 48 8b c1 mov rax, rcx - 0031e b9 10 00 00 00 mov ecx, 16 - 00323 48 6b c9 01 imul rcx, rcx, 1 - 00327 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 126 : ans[i].f32_x[2] = _mm_castpd_ps(c2); - - 0032b 0f 28 85 90 00 - 00 00 movaps xmm0, XMMWORD PTR c2$4[rbp] - 00332 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0033a 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00341 48 03 c8 add rcx, rax - 00344 48 8b c1 mov rax, rcx - 00347 b9 10 00 00 00 mov ecx, 16 - 0034c 48 6b c9 02 imul rcx, rcx, 2 - 00350 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 127 : ans[i].f32_x[3] = _mm_castpd_ps(c3); - - 00354 0f 28 85 c0 00 - 00 00 movaps xmm0, XMMWORD PTR c3$5[rbp] - 0035b 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00363 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 0036a 48 03 c8 add rcx, rax - 0036d 48 8b c1 mov rax, rcx - 00370 b9 10 00 00 00 mov ecx, 16 - 00375 48 6b c9 03 imul rcx, rcx, 3 - 00379 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 128 : ans[i].f32_x[4] = _mm_castpd_ps(c4); - - 0037d 0f 28 85 f0 00 - 00 00 movaps xmm0, XMMWORD PTR c4$6[rbp] - 00384 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 0038c 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00393 48 03 c8 add rcx, rax - 00396 48 8b c1 mov rax, rcx - 00399 b9 10 00 00 00 mov ecx, 16 - 0039e 48 6b c9 04 imul rcx, rcx, 4 - 003a2 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 129 : ans[i].f32_x[5] = _mm_castpd_ps(c5); - - 003a6 0f 28 85 20 01 - 00 00 movaps xmm0, XMMWORD PTR c5$7[rbp] - 003ad 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 003b5 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 003bc 48 03 c8 add rcx, rax - 003bf 48 8b c1 mov rax, rcx - 003c2 b9 10 00 00 00 mov ecx, 16 - 003c7 48 6b c9 05 imul rcx, rcx, 5 - 003cb 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 130 : ans[i].f32_x[6] = _mm_castpd_ps(c6); - - 003cf 0f 28 85 50 01 - 00 00 movaps xmm0, XMMWORD PTR c6$8[rbp] - 003d6 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 003de 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 003e5 48 03 c8 add rcx, rax - 003e8 48 8b c1 mov rax, rcx - 003eb b9 10 00 00 00 mov ecx, 16 - 003f0 48 6b c9 06 imul rcx, rcx, 6 - 003f4 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 131 : ans[i].f32_x[7] = _mm_castpd_ps(c7); - - 003f8 0f 28 85 80 01 - 00 00 movaps xmm0, XMMWORD PTR c7$9[rbp] - 003ff 48 69 45 08 80 - 00 00 00 imul rax, QWORD PTR i$1[rbp], 128 ; 00000080H - 00407 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 0040e 48 03 c8 add rcx, rax - 00411 48 8b c1 mov rax, rcx - 00414 b9 10 00 00 00 mov ecx, 16 - 00419 48 6b c9 07 imul rcx, rcx, 7 - 0041d 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 132 : } - - 00421 e9 13 fc ff ff jmp $LN2@double_buf -$LN3@double_buf: - -; 133 : } - - 00426 48 8d a5 68 02 - 00 00 lea rsp, QWORD PTR [rbp+616] - 0042d 5f pop rdi - 0042e 5d pop rbp - 0042f c3 ret 0 -double_buf_add_sse ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT float_buf_add_512 -_TEXT SEGMENT -i$1 = 8 -c0$2 = 64 -left$ = 432 -right$ = 440 -ans$ = 448 -count$ = 456 -float_buf_add_512 PROC ; COMDAT - -; 98 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 41 55 push r13 - 00016 55 push rbp - 00017 57 push rdi - 00018 48 81 ec b0 01 - 00 00 sub rsp, 432 ; 000001b0H - 0001f 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00024 48 8d 6c 24 60 lea rbp, QWORD PTR [rsp+96] - 00029 48 83 e5 c0 and rbp, -64 ; ffffffffffffffc0H - 0002d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 00034 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00039 90 npad 1 - -; 99 : for (size_t i = 0; i < count; i++) { - - 0003a 48 c7 45 08 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 00042 eb 0b jmp SHORT $LN4@float_buf_ -$LN2@float_buf_: - 00044 48 8b 45 08 mov rax, QWORD PTR i$1[rbp] - 00048 48 ff c0 inc rax - 0004b 48 89 45 08 mov QWORD PTR i$1[rbp], rax -$LN4@float_buf_: - 0004f 49 8b 85 c8 01 - 00 00 mov rax, QWORD PTR count$[r13] - 00056 48 39 45 08 cmp QWORD PTR i$1[rbp], rax - 0005a 73 7a jae SHORT $LN3@float_buf_ - -; 100 : register __m512 c0 = _mm512_add_ps(left[i].f32_z[0], right[i].f32_z[0]); - - 0005c 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 00061 49 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR right$[r13] - 00068 48 03 c8 add rcx, rax - 0006b 48 8b c1 mov rax, rcx - 0006e b9 40 00 00 00 mov ecx, 64 ; 00000040H - 00073 48 6b c9 00 imul rcx, rcx, 0 - 00077 48 6b 55 08 40 imul rdx, QWORD PTR i$1[rbp], 64 ; 00000040H - 0007c 4d 8b 85 b0 01 - 00 00 mov r8, QWORD PTR left$[r13] - 00083 4c 03 c2 add r8, rdx - 00086 49 8b d0 mov rdx, r8 - 00089 41 b8 40 00 00 - 00 mov r8d, 64 ; 00000040H - 0008f 4d 6b c0 00 imul r8, r8, 0 - 00093 62 b1 7c 48 10 - 04 02 vmovups zmm0, ZMMWORD PTR [rdx+r8] - 0009a 62 f1 7c 48 58 - 04 08 vaddps zmm0, zmm0, ZMMWORD PTR [rax+rcx] - 000a1 62 f1 7c 48 11 - 45 01 vmovups ZMMWORD PTR c0$2[rbp], zmm0 - -; 101 : ans[i].f32_z[0] = c0; - - 000a8 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 000ad 49 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba b9 40 00 00 00 mov ecx, 64 ; 00000040H - 000bf 48 6b c9 00 imul rcx, rcx, 0 - 000c3 62 f1 7c 48 10 - 45 01 vmovups zmm0, ZMMWORD PTR c0$2[rbp] - 000ca 62 f1 7c 48 11 - 04 08 vmovups ZMMWORD PTR [rax+rcx], zmm0 - -; 102 : } - - 000d1 e9 6e ff ff ff jmp $LN2@float_buf_ -$LN3@float_buf_: - -; 103 : } - - 000d6 49 8d a5 90 01 - 00 00 lea rsp, QWORD PTR [r13+400] - 000dd 5f pop rdi - 000de 5d pop rbp - 000df 41 5d pop r13 - 000e1 c3 ret 0 -float_buf_add_512 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT float_buf_add_avx -_TEXT SEGMENT -i$1 = 8 -s$2 = 40 -c0$3 = 96 -c1$4 = 160 -left$ = 464 -right$ = 472 -ans$ = 480 -count$ = 488 -float_buf_add_avx PROC ; COMDAT - -; 87 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 41 55 push r13 - 00016 55 push rbp - 00017 57 push rdi - 00018 48 81 ec d0 01 - 00 00 sub rsp, 464 ; 000001d0H - 0001f 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00024 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00029 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H - 0002d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 00034 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00039 90 npad 1 - -; 88 : for (size_t i = 0; i < count; i++) { - - 0003a 48 c7 45 08 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 00042 eb 0b jmp SHORT $LN4@float_buf_ -$LN2@float_buf_: - 00044 48 8b 45 08 mov rax, QWORD PTR i$1[rbp] - 00048 48 ff c0 inc rax - 0004b 48 89 45 08 mov QWORD PTR i$1[rbp], rax -$LN4@float_buf_: - 0004f 49 8b 85 e8 01 - 00 00 mov rax, QWORD PTR count$[r13] - 00056 48 39 45 08 cmp QWORD PTR i$1[rbp], rax - 0005a 0f 83 eb 00 00 - 00 jae $LN3@float_buf_ - -; 89 : size_t s = sizeof(MAT_KERNEL(float)); - - 00060 48 c7 45 28 40 - 00 00 00 mov QWORD PTR s$2[rbp], 64 ; 00000040H - -; 90 : register __m256 c0 = _mm256_add_ps(left[i].f32_y[0], right[i].f32_y[0]); - - 00068 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 0006d 49 8b 8d d8 01 - 00 00 mov rcx, QWORD PTR right$[r13] - 00074 48 03 c8 add rcx, rax - 00077 48 8b c1 mov rax, rcx - 0007a b9 20 00 00 00 mov ecx, 32 ; 00000020H - 0007f 48 6b c9 00 imul rcx, rcx, 0 - 00083 48 6b 55 08 40 imul rdx, QWORD PTR i$1[rbp], 64 ; 00000040H - 00088 4d 8b 85 d0 01 - 00 00 mov r8, QWORD PTR left$[r13] - 0008f 4c 03 c2 add r8, rdx - 00092 49 8b d0 mov rdx, r8 - 00095 41 b8 20 00 00 - 00 mov r8d, 32 ; 00000020H - 0009b 4d 6b c0 00 imul r8, r8, 0 - 0009f c4 a1 7c 10 04 - 02 vmovups ymm0, YMMWORD PTR [rdx+r8] - 000a5 c5 fc 58 04 08 vaddps ymm0, ymm0, YMMWORD PTR [rax+rcx] - 000aa c5 fc 11 45 60 vmovups YMMWORD PTR c0$3[rbp], ymm0 - -; 91 : register __m256 c1 = _mm256_add_ps(left[i].f32_y[1], right[i].f32_y[1]); - - 000af 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 000b4 49 8b 8d d8 01 - 00 00 mov rcx, QWORD PTR right$[r13] - 000bb 48 03 c8 add rcx, rax - 000be 48 8b c1 mov rax, rcx - 000c1 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 000c6 48 6b c9 01 imul rcx, rcx, 1 - 000ca 48 6b 55 08 40 imul rdx, QWORD PTR i$1[rbp], 64 ; 00000040H - 000cf 4d 8b 85 d0 01 - 00 00 mov r8, QWORD PTR left$[r13] - 000d6 4c 03 c2 add r8, rdx - 000d9 49 8b d0 mov rdx, r8 - 000dc 41 b8 20 00 00 - 00 mov r8d, 32 ; 00000020H - 000e2 4d 6b c0 01 imul r8, r8, 1 - 000e6 c4 a1 7c 10 04 - 02 vmovups ymm0, YMMWORD PTR [rdx+r8] - 000ec c5 fc 58 04 08 vaddps ymm0, ymm0, YMMWORD PTR [rax+rcx] - 000f1 c5 fc 11 85 a0 - 00 00 00 vmovups YMMWORD PTR c1$4[rbp], ymm0 - -; 92 : ans[i].f32_y[0] = c0; - - 000f9 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 000fe 49 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00105 48 03 c8 add rcx, rax - 00108 48 8b c1 mov rax, rcx - 0010b b9 20 00 00 00 mov ecx, 32 ; 00000020H - 00110 48 6b c9 00 imul rcx, rcx, 0 - 00114 c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR c0$3[rbp] - 00119 c5 fc 11 04 08 vmovups YMMWORD PTR [rax+rcx], ymm0 - -; 93 : ans[i].f32_y[1] = c1; - - 0011e 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 00123 49 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 0012a 48 03 c8 add rcx, rax - 0012d 48 8b c1 mov rax, rcx - 00130 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 00135 48 6b c9 01 imul rcx, rcx, 1 - 00139 c5 fc 10 85 a0 - 00 00 00 vmovups ymm0, YMMWORD PTR c1$4[rbp] - 00141 c5 fc 11 04 08 vmovups YMMWORD PTR [rax+rcx], ymm0 - -; 94 : } - - 00146 e9 f9 fe ff ff jmp $LN2@float_buf_ -$LN3@float_buf_: - -; 95 : } - - 0014b 49 8d a5 b0 01 - 00 00 lea rsp, QWORD PTR [r13+432] - 00152 5f pop rdi - 00153 5d pop rbp - 00154 41 5d pop r13 - 00156 c3 ret 0 -float_buf_add_avx ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.bufop.x86.c -; COMDAT float_buf_add_sse -_TEXT SEGMENT -i$1 = 8 -c0$2 = 48 -c1$3 = 96 -c2$4 = 144 -c3$5 = 192 -left$ = 448 -right$ = 456 -ans$ = 464 -count$ = 472 -float_buf_add_sse PROC ; COMDAT - -; 72 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec c8 01 - 00 00 sub rsp, 456 ; 000001c8H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BAFF6ACF_m@bufop@x86@c - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 73 : for (size_t i = 0; i < count; i++) { - - 0002f 48 c7 45 08 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 00037 eb 0b jmp SHORT $LN4@float_buf_ -$LN2@float_buf_: - 00039 48 8b 45 08 mov rax, QWORD PTR i$1[rbp] - 0003d 48 ff c0 inc rax - 00040 48 89 45 08 mov QWORD PTR i$1[rbp], rax -$LN4@float_buf_: - 00044 48 8b 85 d8 01 - 00 00 mov rax, QWORD PTR count$[rbp] - 0004b 48 39 45 08 cmp QWORD PTR i$1[rbp], rax - 0004f 0f 83 ad 01 00 - 00 jae $LN3@float_buf_ - -; 74 : register __m128 c0 = _mm_add_ps(left[i].f32_x[0], right[i].f32_x[0]); - - 00055 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 0005a 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00061 48 03 c8 add rcx, rax - 00064 48 8b c1 mov rax, rcx - 00067 b9 10 00 00 00 mov ecx, 16 - 0006c 48 6b c9 00 imul rcx, rcx, 0 - 00070 48 6b 55 08 40 imul rdx, QWORD PTR i$1[rbp], 64 ; 00000040H - 00075 4c 8b 85 c0 01 - 00 00 mov r8, QWORD PTR left$[rbp] - 0007c 4c 03 c2 add r8, rdx - 0007f 49 8b d0 mov rdx, r8 - 00082 41 b8 10 00 00 - 00 mov r8d, 16 - 00088 4d 6b c0 00 imul r8, r8, 0 - 0008c 42 0f 10 04 02 movups xmm0, XMMWORD PTR [rdx+r8] - 00091 0f 58 04 08 addps xmm0, XMMWORD PTR [rax+rcx] - 00095 0f 29 45 30 movaps XMMWORD PTR c0$2[rbp], xmm0 - -; 75 : register __m128 c1 = _mm_add_ps(left[i].f32_x[1], right[i].f32_x[1]); - - 00099 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 0009e 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR right$[rbp] - 000a5 48 03 c8 add rcx, rax - 000a8 48 8b c1 mov rax, rcx - 000ab b9 10 00 00 00 mov ecx, 16 - 000b0 48 6b c9 01 imul rcx, rcx, 1 - 000b4 48 6b 55 08 40 imul rdx, QWORD PTR i$1[rbp], 64 ; 00000040H - 000b9 4c 8b 85 c0 01 - 00 00 mov r8, QWORD PTR left$[rbp] - 000c0 4c 03 c2 add r8, rdx - 000c3 49 8b d0 mov rdx, r8 - 000c6 41 b8 10 00 00 - 00 mov r8d, 16 - 000cc 4d 6b c0 01 imul r8, r8, 1 - 000d0 42 0f 10 04 02 movups xmm0, XMMWORD PTR [rdx+r8] - 000d5 0f 58 04 08 addps xmm0, XMMWORD PTR [rax+rcx] - 000d9 0f 29 45 60 movaps XMMWORD PTR c1$3[rbp], xmm0 - -; 76 : register __m128 c2 = _mm_add_ps(left[i].f32_x[2], right[i].f32_x[2]); - - 000dd 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 000e2 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR right$[rbp] - 000e9 48 03 c8 add rcx, rax - 000ec 48 8b c1 mov rax, rcx - 000ef b9 10 00 00 00 mov ecx, 16 - 000f4 48 6b c9 02 imul rcx, rcx, 2 - 000f8 48 6b 55 08 40 imul rdx, QWORD PTR i$1[rbp], 64 ; 00000040H - 000fd 4c 8b 85 c0 01 - 00 00 mov r8, QWORD PTR left$[rbp] - 00104 4c 03 c2 add r8, rdx - 00107 49 8b d0 mov rdx, r8 - 0010a 41 b8 10 00 00 - 00 mov r8d, 16 - 00110 4d 6b c0 02 imul r8, r8, 2 - 00114 42 0f 10 04 02 movups xmm0, XMMWORD PTR [rdx+r8] - 00119 0f 58 04 08 addps xmm0, XMMWORD PTR [rax+rcx] - 0011d 0f 29 85 90 00 - 00 00 movaps XMMWORD PTR c2$4[rbp], xmm0 - -; 77 : register __m128 c3 = _mm_add_ps(left[i].f32_x[3], right[i].f32_x[3]); - - 00124 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 00129 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00130 48 03 c8 add rcx, rax - 00133 48 8b c1 mov rax, rcx - 00136 b9 10 00 00 00 mov ecx, 16 - 0013b 48 6b c9 03 imul rcx, rcx, 3 - 0013f 48 6b 55 08 40 imul rdx, QWORD PTR i$1[rbp], 64 ; 00000040H - 00144 4c 8b 85 c0 01 - 00 00 mov r8, QWORD PTR left$[rbp] - 0014b 4c 03 c2 add r8, rdx - 0014e 49 8b d0 mov rdx, r8 - 00151 41 b8 10 00 00 - 00 mov r8d, 16 - 00157 4d 6b c0 03 imul r8, r8, 3 - 0015b 42 0f 10 04 02 movups xmm0, XMMWORD PTR [rdx+r8] - 00160 0f 58 04 08 addps xmm0, XMMWORD PTR [rax+rcx] - 00164 0f 29 85 c0 00 - 00 00 movaps XMMWORD PTR c3$5[rbp], xmm0 - -; 78 : -; 79 : ans[i].f32_x[0] = c0; - - 0016b 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 00170 48 8b 8d d0 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00177 48 03 c8 add rcx, rax - 0017a 48 8b c1 mov rax, rcx - 0017d b9 10 00 00 00 mov ecx, 16 - 00182 48 6b c9 00 imul rcx, rcx, 0 - 00186 0f 28 45 30 movaps xmm0, XMMWORD PTR c0$2[rbp] - 0018a 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 80 : ans[i].f32_x[1] = c1; - - 0018e 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 00193 48 8b 8d d0 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 0019a 48 03 c8 add rcx, rax - 0019d 48 8b c1 mov rax, rcx - 001a0 b9 10 00 00 00 mov ecx, 16 - 001a5 48 6b c9 01 imul rcx, rcx, 1 - 001a9 0f 28 45 60 movaps xmm0, XMMWORD PTR c1$3[rbp] - 001ad 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 81 : ans[i].f32_x[2] = c2; - - 001b1 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 001b6 48 8b 8d d0 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 001bd 48 03 c8 add rcx, rax - 001c0 48 8b c1 mov rax, rcx - 001c3 b9 10 00 00 00 mov ecx, 16 - 001c8 48 6b c9 02 imul rcx, rcx, 2 - 001cc 0f 28 85 90 00 - 00 00 movaps xmm0, XMMWORD PTR c2$4[rbp] - 001d3 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 82 : ans[i].f32_x[3] = c3; - - 001d7 48 6b 45 08 40 imul rax, QWORD PTR i$1[rbp], 64 ; 00000040H - 001dc 48 8b 8d d0 01 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 001e3 48 03 c8 add rcx, rax - 001e6 48 8b c1 mov rax, rcx - 001e9 b9 10 00 00 00 mov ecx, 16 - 001ee 48 6b c9 03 imul rcx, rcx, 3 - 001f2 0f 28 85 c0 00 - 00 00 movaps xmm0, XMMWORD PTR c3$5[rbp] - 001f9 0f 11 04 08 movups XMMWORD PTR [rax+rcx], xmm0 - -; 83 : } - - 001fd e9 37 fe ff ff jmp $LN2@float_buf_ -$LN3@float_buf_: - -; 84 : } - - 00202 48 8d a5 a8 01 - 00 00 lea rsp, QWORD PTR [rbp+424] - 00209 5f pop rdi - 0020a 5d pop rbp - 0020b c3 ret 0 -float_buf_add_sse ENDP -_TEXT ENDS -END diff --git a/obj/StgSharp.Native/Debug/x64/m.bufop.x86.nativecodeanalysis.sarif b/obj/StgSharp.Native/Debug/x64/m.bufop.x86.nativecodeanalysis.sarif deleted file mode 100644 index 5c8a66e8..00000000 --- a/obj/StgSharp.Native/Debug/x64/m.bufop.x86.nativecodeanalysis.sarif +++ /dev/null @@ -1,131 +0,0 @@ -{ - "version": "2.1.0", - "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", - "runs": [ - { - "results": [], - "tool": { - "driver": { - "name": "PREfast", - "fullName": "MSVC Code Analysis", - "version": "14.44.35220.0", - "informationUri": "https://aka.ms/cpp/ca" - } - }, - "invocations": [ - { - "executionSuccessful": true - } - ], - "artifacts": [ - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-src/m.bufop.x86.c" - }, - "roles": [ - "analysisTarget" - ], - "hashes": { - "sha-256": "bd17622b768a820fa5d415bd891c8dc82b5fd0e9446a636d005fe6051d039678" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_target.h" - }, - "hashes": { - "sha-256": "b8c543a09db7bd21a2b409476024fa6bec6a5218d88ca036d15584ed453ceb91" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_internal.h" - }, - "hashes": { - "sha-256": "8a0f03b014c6d2740a21a13df48b1951932be000152771363cd554748facde0d" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrinsic.h" - }, - "hashes": { - "sha-256": "4da90105811ba902ad984b406834cf36cf43862047957dad5471c0b24d221ace" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/stgsharpnative.h" - }, - "hashes": { - "sha-256": "5eee6b3faf7bf2247fe44898b0fcb71794c346ae2f0b58953e1632a49c1b6c4e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/stbi/stb_image.h" - }, - "hashes": { - "sha-256": "c45e3ef56a7d946654740f02e25fcb99a819861155ad1173349a289f2a000ce2" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/gl.h" - }, - "hashes": { - "sha-256": "c9d0960c919f9ef4cfa6449f2b0c00f2ad8286b420e01ee7ec34b40c618392fc" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/khrplatform.h" - }, - "hashes": { - "sha-256": "f5b69ed6a7bef6651526abb2d1263811d59acdba7a29368bb9be1a0f9e80160f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/wgl.h" - }, - "hashes": { - "sha-256": "86d6c58acb0a92b35ce8d94d6817fcec3f73d9e147e8621f468f143db1bbd81f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/glfw/glfw3.h" - }, - "hashes": { - "sha-256": "85c584857dddd780c131940ed69cd516c2b60d61664df9cb254710c3602c1008" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/glfw_function.h" - }, - "hashes": { - "sha-256": "4baa73f465e3e347fc0ad0ff666a6db2e83e749acd770f4bee02c12a7b9ec36e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_matkernel.h" - }, - "hashes": { - "sha-256": "19f0030c441ae5c4cec0b446b64daa10448fafd44d4fd6dd2232b84f5ed9aad1" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrincontext.x86.h" - }, - "hashes": { - "sha-256": "bbc00ee7320b30ca1234dc7908e4695ff6d5bb2ba3224e4ffaed345010ba8f48" - } - } - ] - } - ] -} \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/m.bufop.x86.nativecodeanalysis.xml b/obj/StgSharp.Native/Debug/x64/m.bufop.x86.nativecodeanalysis.xml deleted file mode 100644 index dcdf0885..00000000 --- a/obj/StgSharp.Native/Debug/x64/m.bufop.x86.nativecodeanalysis.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/m.fma.x86.cod b/obj/StgSharp.Native/Debug/x64/m.fma.x86.cod deleted file mode 100644 index 38429ec2..00000000 --- a/obj/StgSharp.Native/Debug/x64/m.fma.x86.cod +++ /dev/null @@ -1,3337 +0,0 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.44.35220.0 - -include listing.inc - -INCLUDELIB MSVCRTD -INCLUDELIB OLDNAMES - -_DATA SEGMENT -COMM infolog:BYTE:0200H -_DATA ENDS -msvcjmc SEGMENT -__5C8CA4D3_mmintrin@h DB 01H -__8C83BECC_concurrencysal@h DB 01H -__608E3340_sal@h DB 01H -__FB67E29A_vadefs@h DB 01H -__1D1B619C_vcruntime@h DB 01H -__735960E1_corecrt@h DB 01H -__211DB995_corecrt_malloc@h DB 01H -__7CD62D9E_malloc@h DB 01H -__9DCE0DC8_xmmintrin@h DB 01H -__4C2AD0C7_winpackagefamily@h DB 01H -__9DED9ED1_winapifamily@h DB 01H -__12FEDF4E_sdkddkver@h DB 01H -__9BAEE128_excpt@h DB 01H -__B7B53233_stdarg@h DB 01H -__6B04FCB3_specstrings_undef@h DB 01H -__F4027AF7_specstrings_strict@h DB 01H -__B90340D4_sdv_driverspecs@h DB 01H -__BFFF5AD3_driverspecs@h DB 01H -__32847078_specstrings@h DB 01H -__108B2620_corecrt_wctype@h DB 01H -__6CD6613D_ctype@h DB 01H -__30902A1F_kernelspecs@h DB 01H -__376FD5CA_basetsd@h DB 01H -__13DE2371_errno@h DB 01H -__8C6AE390_vcruntime_string@h DB 01H -__8ACB2152_corecrt_memcpy_s@h DB 01H -__EA6C9D17_corecrt_memory@h DB 01H -__0DF2AF52_corecrt_wstring@h DB 01H -__6E889ECC_string@h DB 01H -__9BEDF4DE_guiddef@h DB 01H -__51BFD2FE_pshpack4@h DB 01H -__31652CEA_poppack@h DB 01H -__5532AE4C_pshpack2@h DB 01H -__58A52B9A_pshpack8@h DB 01H -__57741015_pshpack1@h DB 01H -__CDE68C90_apiset@h DB 01H -__0BF06E8D_ktmtypes@h DB 01H -__40C200C0_winnt@h DB 01H -__9336F789_minwindef@h DB 01H -__55136115_windef@h DB 01H -__32205BF0_apisetcconv@h DB 01H -__B48FDEA0_minwinbase@h DB 01H -__3551B028_apiquery2@h DB 01H -__65BE04AA_processenv@h DB 01H -__4767CA46_fileapi@h DB 01H -__282E6C4B_fileapifromapp@h DB 01H -__393AF12C_debugapi@h DB 01H -__EBC502B8_utilapiset@h DB 01H -__1EAD8C69_handleapi@h DB 01H -__D8EF9B29_errhandlingapi@h DB 01H -__97FC1204_fibersapi@h DB 01H -__27448220_namedpipeapi@h DB 01H -__6EA33B2A_profileapi@h DB 01H -__EAC6F673_heapapi@h DB 01H -__D64EEA5A_ioapiset@h DB 01H -__144BD4B6_synchapi@h DB 01H -__03B1C640_interlockedapi@h DB 01H -__DC64CB38_processthreadsapi@h DB 01H -__D719B518_sysinfoapi@h DB 01H -__410385B1_memoryapi@h DB 01H -__C1AD45EF_enclaveapi@h DB 01H -__F4C3AA32_threadpoollegacyapiset@h DB 01H -__AC5A7A9F_threadpoolapiset@h DB 01H -__F5254B21_jobapi@h DB 01H -__BCEA6EE8_jobapi2@h DB 01H -__D18ACE72_wow64apiset@h DB 01H -__669B0D4A_libloaderapi@h DB 01H -__645F7034_securitybaseapi@h DB 01H -__67E58557_namespaceapi@h DB 01H -__599D9D3A_systemtopologyapi@h DB 01H -__2337E373_processtopologyapi@h DB 01H -__02BFF239_securityappcontainer@h DB 01H -__9C196272_realtimeapiset@h DB 01H -__5AB313A4_winerror@h DB 01H -__B7E7187B_timezoneapi@h DB 01H -__6DE9EB6F_winbase@h DB 01H -__56B2AFF2_wingdi@h DB 01H -__BA1161A9_tvout@h DB 01H -__0501A018_winuser@h DB 01H -__EF12FA99_datetimeapi@h DB 01H -__8FA7C3CA_winnls@h DB 01H -__390F0C47_stringapiset@h DB 01H -__28605B0A_wincontypes@h DB 01H -__BFBDE86D_consoleapi@h DB 01H -__C3CAFBF0_consoleapi2@h DB 01H -__C20891C7_consoleapi3@h DB 01H -__717C98B6_wincon@h DB 01H -__2884C177_verrsrc@h DB 01H -__A3FD3A34_winver@h DB 01H -__6F8AD9F1_reason@h DB 01H -__4C90FD6F_winreg@h DB 01H -__68AFEBAD_wnnc@h DB 01H -__5A7AB086_winnetwk@h DB 01H -__2FE8A10C_stralign@h DB 01H -__34558472_winsvc@h DB 01H -__058845F1_mcx@h DB 01H -__7F16006B_ime_cmodes@h DB 01H -__0A3AF599_imm@h DB 01H -__9349FE86_windows@h DB 01H -__639A050C_sn_internal@h DB 01H -__836A8CFC_stdint@h DB 01H -__714FE6D7_sn_target@h DB 01H -__60B45B40_corecrt_stdio_config@h DB 01H -__CFA3741E_corecrt_wstdio@h DB 01H -__B3FE3303_stdio@h DB 01H -__955456CD_stddef@h DB 01H -__99AED4FB_corecrt_search@h DB 01H -__8B813BF6_corecrt_wstdlib@h DB 01H -__3D1CA2C3_limits@h DB 01H -__E8FB0A68_stdlib@h DB 01H -__F562FA57_stb_image@h DB 01H -__C95DC661_khrplatform@h DB 01H -__6C577136_gl@h DB 01H -__EE638A2C_wgl@h DB 01H -__8EF9E35C_glfw3@h DB 01H -__F8AC8404_emmintrin@h DB 01H -__270DEC8D_pmmintrin@h DB 01H -__97D49F0F_tmmintrin@h DB 01H -__BEEF8A8C_smmintrin@h DB 01H -__DB8D0340_nmmintrin@h DB 01H -__0E36F90E_wmmintrin@h DB 01H -__C5A2B409_zmmintrin@h DB 01H -__F2B616C3_immintrin@h DB 01H -__9FB25DBE_assert@h DB 01H -__4E664295_glfw_function@h DB 01H -__64C0EF11_StgSharpNative@h DB 01H -__E2EC0CAF_sn_matkernel@h DB 01H -__47E843D2_intrin0@inl@h DB 01H -__130964FF_setjmp@h DB 01H -__4875F786_ammintrin@h DB 01H -__353FD888_intrin@h DB 01H -__5FE1E9E3_isa_availability@h DB 01H -__AA840D82_sn_intrinsic@h DB 01H -__CE29950A_sn_intrincontext@x86@h DB 01H -__F8387F23_m@fma@x86@c DB 01H -msvcjmc ENDS -CONST SEGMENT -?b01_shift@?1??float_kernel_fma_avx@@9@9 DD 00H ; `float_kernel_fma_avx'::`2'::b01_shift - DD 01H - DD 02H - DD 03H - DD 05H - DD 06H - DD 07H - DD 04H -?b23_shift@?1??float_kernel_fma_avx@@9@9 DD 02H ; `float_kernel_fma_avx'::`2'::b23_shift - DD 03H - DD 00H - DD 01H - DD 07H - DD 04H - DD 05H - DD 06H -?b01_shift@?1??float_kernel_fma_avx_fma@@9@9 DD 00H ; `float_kernel_fma_avx_fma'::`2'::b01_shift - DD 01H - DD 02H - DD 03H - DD 05H - DD 06H - DD 07H - DD 04H -?b23_shift@?1??float_kernel_fma_avx_fma@@9@9 DD 02H ; `float_kernel_fma_avx_fma'::`2'::b23_shift - DD 03H - DD 00H - DD 01H - DD 07H - DD 04H - DD 05H - DD 06H -?b_shift@?1??float_kernel_fma_512@@9@9 DD 00H ; `float_kernel_fma_512'::`2'::b_shift - DD 01H - DD 02H - DD 03H - DD 05H - DD 06H - DD 07H - DD 04H - DD 0aH - DD 0bH - DD 08H - DD 09H - DD 0fH - DD 0cH - DD 0dH - DD 0eH -?b01_shift@?1??double_kernel_fma_512@@9@9 DQ 0000000000000000H ; `double_kernel_fma_512'::`2'::b01_shift - DQ 0000000000000001H - DQ 0000000000000002H - DQ 0000000000000003H - DQ 0000000000000005H - DQ 0000000000000006H - DQ 0000000000000007H - DQ 0000000000000004H -?b23_shift@?1??double_kernel_fma_512@@9@9 DQ 0000000000000002H ; `double_kernel_fma_512'::`2'::b23_shift - DQ 0000000000000003H - DQ 0000000000000000H - DQ 0000000000000001H - DQ 0000000000000007H - DQ 0000000000000004H - DQ 0000000000000005H - DQ 0000000000000006H -CONST ENDS -PUBLIC float_kernel_fma_sse -PUBLIC float_kernel_fma_avx -PUBLIC float_kernel_fma_avx_fma -PUBLIC float_kernel_fma_512 -PUBLIC double_kernel_fma_sse -PUBLIC double_kernel_fma_avx -PUBLIC double_kernel_fma_avx_fma -PUBLIC double_kernel_fma_512 -PUBLIC __JustMyCode_Default -EXTRN _RTC_InitBase:PROC -EXTRN _RTC_Shutdown:PROC -EXTRN __CheckForDebuggerJustMyCode:PROC -; COMDAT pdata -pdata SEGMENT -$pdata$float_kernel_fma_sse DD imagerel $LN3 - DD imagerel $LN3+1287 - DD imagerel $unwind$float_kernel_fma_sse -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_kernel_fma_avx DD imagerel $LN3 - DD imagerel $LN3+855 - DD imagerel $unwind$float_kernel_fma_avx -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_kernel_fma_avx_fma DD imagerel $LN3 - DD imagerel $LN3+863 - DD imagerel $unwind$float_kernel_fma_avx_fma -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_kernel_fma_512 DD imagerel $LN3 - DD imagerel $LN3+429 - DD imagerel $unwind$float_kernel_fma_512 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_kernel_fma_sse DD imagerel $LN6 - DD imagerel $LN6+788 - DD imagerel $unwind$double_kernel_fma_sse -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_kernel_fma_avx DD imagerel $LN3 - DD imagerel $LN3+1251 - DD imagerel $unwind$double_kernel_fma_avx -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_kernel_fma_avx_fma DD imagerel $LN3 - DD imagerel $LN3+1203 - DD imagerel $unwind$double_kernel_fma_avx_fma -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_kernel_fma_512 DD imagerel $LN3 - DD imagerel $LN3+837 - DD imagerel $unwind$double_kernel_fma_512 -pdata ENDS -; COMDAT rtc$TMZ -rtc$TMZ SEGMENT -_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown -rtc$TMZ ENDS -; COMDAT rtc$IMZ -rtc$IMZ SEGMENT -_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase -rtc$IMZ ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_kernel_fma_512 DD 02d062801H - DD 011a231fH - DD 0701300f6H - DD 0d0115012H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_kernel_fma_avx_fma DD 02d062801H - DD 011a231fH - DD 070130082H - DD 0d0115012H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_kernel_fma_avx DD 02d062801H - DD 011a231fH - DD 070130082H - DD 0d0115012H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_kernel_fma_sse DD 025051d01H - DD 0118231dH - DD 07011004bH - DD 05010H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_kernel_fma_512 DD 02d062801H - DD 011a231fH - DD 070130106H - DD 0d0115012H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_kernel_fma_avx_fma DD 02d062801H - DD 011a231fH - DD 07013008aH - DD 0d0115012H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_kernel_fma_avx DD 02d062801H - DD 011a231fH - DD 07013008aH - DD 0d0115012H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_kernel_fma_sse DD 025051d01H - DD 0118231dH - DD 070110053H - DD 05010H -xdata ENDS -; Function compile flags: /Odt -; COMDAT __JustMyCode_Default -_TEXT SEGMENT -__JustMyCode_Default PROC ; COMDAT - 00000 c2 00 00 ret 0 -__JustMyCode_Default ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.fma.x86.c -; COMDAT double_kernel_fma_512 -_TEXT SEGMENT -a01$ = 64 -a23$ = 192 -b01$ = 320 -b23$ = 448 -c01$ = 576 -c23$ = 704 -b01_perm$ = 832 -b23_perm$ = 960 -a12$ = 1088 -a30$ = 1216 -left$ = 1968 -right$ = 1976 -ans$ = 1984 -double_kernel_fma_512 PROC ; COMDAT - -; 321 : { - -$LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 41 55 push r13 - 00011 55 push rbp - 00012 57 push rdi - 00013 48 81 ec b0 07 - 00 00 sub rsp, 1968 ; 000007b0H - 0001a 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 0001f 48 8d 6c 24 60 lea rbp, QWORD PTR [rsp+96] - 00024 48 83 e5 c0 and rbp, -64 ; ffffffffffffffc0H - 00028 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F8387F23_m@fma@x86@c - 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00034 90 npad 1 - -; 322 : static const __m512i b01_shift = { .m512i_i64 = { 0, 1, 2, 3, 5, 6, 7, 4 } }; -; 323 : static const __m512i b23_shift = { .m512i_i64 = { 2, 3, 0, 1, 7, 4, 5, 6 } }; -; 324 : -; 325 : register __m512d a01 = _mm512_load_pd((double *)&left->f64_z[0]); - - 00035 b8 40 00 00 00 mov eax, 64 ; 00000040H - 0003a 48 6b c0 00 imul rax, rax, 0 - 0003e 49 8b 8d b0 07 - 00 00 mov rcx, QWORD PTR left$[r13] - 00045 48 03 c8 add rcx, rax - 00048 48 8b c1 mov rax, rcx - 0004b 62 f1 fd 48 10 - 00 vmovupd zmm0, ZMMWORD PTR [rax] - 00051 62 f1 fd 48 11 - 45 01 vmovupd ZMMWORD PTR a01$[rbp], zmm0 - -; 326 : register __m512d a23 = _mm512_load_pd((double *)&left->f64_z[1]); - - 00058 b8 40 00 00 00 mov eax, 64 ; 00000040H - 0005d 48 6b c0 01 imul rax, rax, 1 - 00061 49 8b 8d b0 07 - 00 00 mov rcx, QWORD PTR left$[r13] - 00068 48 03 c8 add rcx, rax - 0006b 48 8b c1 mov rax, rcx - 0006e 62 f1 fd 48 10 - 00 vmovupd zmm0, ZMMWORD PTR [rax] - 00074 62 f1 fd 48 11 - 45 03 vmovupd ZMMWORD PTR a23$[rbp], zmm0 - -; 327 : -; 328 : register __m512d b01 = _mm512_load_pd((double *)&right->f64_z[0]); - - 0007b b8 40 00 00 00 mov eax, 64 ; 00000040H - 00080 48 6b c0 00 imul rax, rax, 0 - 00084 49 8b 8d b8 07 - 00 00 mov rcx, QWORD PTR right$[r13] - 0008b 48 03 c8 add rcx, rax - 0008e 48 8b c1 mov rax, rcx - 00091 62 f1 fd 48 10 - 00 vmovupd zmm0, ZMMWORD PTR [rax] - 00097 62 f1 fd 48 11 - 45 05 vmovupd ZMMWORD PTR b01$[rbp], zmm0 - -; 329 : register __m512d b23 = _mm512_load_pd((double *)&right->f64_z[1]); - - 0009e b8 40 00 00 00 mov eax, 64 ; 00000040H - 000a3 48 6b c0 01 imul rax, rax, 1 - 000a7 49 8b 8d b8 07 - 00 00 mov rcx, QWORD PTR right$[r13] - 000ae 48 03 c8 add rcx, rax - 000b1 48 8b c1 mov rax, rcx - 000b4 62 f1 fd 48 10 - 00 vmovupd zmm0, ZMMWORD PTR [rax] - 000ba 62 f1 fd 48 11 - 45 07 vmovupd ZMMWORD PTR b23$[rbp], zmm0 - -; 330 : b01 = _mm512_permutexvar_pd(b01_shift, b01); - - 000c1 62 f1 7e 48 6f - 05 00 00 00 00 vmovdqu32 zmm0, ZMMWORD PTR ?b01_shift@?1??double_kernel_fma_512@@9@9 - 000cb 62 f2 fd 48 16 - 45 05 vpermpd zmm0, zmm0, ZMMWORD PTR b01$[rbp] - 000d2 62 f1 fd 48 11 - 45 05 vmovupd ZMMWORD PTR b01$[rbp], zmm0 - -; 331 : b23 = _mm512_permutexvar_pd(b23_shift, b23); - - 000d9 62 f1 7e 48 6f - 05 00 00 00 00 vmovdqu32 zmm0, ZMMWORD PTR ?b23_shift@?1??double_kernel_fma_512@@9@9 - 000e3 62 f2 fd 48 16 - 45 07 vpermpd zmm0, zmm0, ZMMWORD PTR b23$[rbp] - 000ea 62 f1 fd 48 11 - 45 07 vmovupd ZMMWORD PTR b23$[rbp], zmm0 - -; 332 : -; 333 : register __m512d c01 = _mm512_load_pd((float *)&ans->f64_z[0]); - - 000f1 b8 40 00 00 00 mov eax, 64 ; 00000040H - 000f6 48 6b c0 00 imul rax, rax, 0 - 000fa 49 8b 8d c0 07 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00101 48 03 c8 add rcx, rax - 00104 48 8b c1 mov rax, rcx - 00107 62 f1 fd 48 10 - 00 vmovupd zmm0, ZMMWORD PTR [rax] - 0010d 62 f1 fd 48 11 - 45 09 vmovupd ZMMWORD PTR c01$[rbp], zmm0 - -; 334 : register __m512d c23 = _mm512_load_pd((float *)&ans->f64_z[1]); - - 00114 b8 40 00 00 00 mov eax, 64 ; 00000040H - 00119 48 6b c0 01 imul rax, rax, 1 - 0011d 49 8b 8d c0 07 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00124 48 03 c8 add rcx, rax - 00127 48 8b c1 mov rax, rcx - 0012a 62 f1 fd 48 10 - 00 vmovupd zmm0, ZMMWORD PTR [rax] - 00130 62 f1 fd 48 11 - 45 0b vmovupd ZMMWORD PTR c23$[rbp], zmm0 - -; 335 : -; 336 : //group 0 -; 337 : register __m512d b01_perm = _mm512_shuffle_pd(b01, b01, _FMA_SELECT(0)); - - 00137 62 f1 fd 48 10 - 45 05 vmovupd zmm0, ZMMWORD PTR b01$[rbp] - 0013e 62 f1 fd 48 c6 - 45 05 00 vshufpd zmm0, zmm0, ZMMWORD PTR b01$[rbp], 0 - 00146 62 f1 fd 48 11 - 45 0d vmovupd ZMMWORD PTR b01_perm$[rbp], zmm0 - -; 338 : register __m512d b23_perm = _mm512_shuffle_pd(b23, b23, _FMA_SELECT(0)); - - 0014d 62 f1 fd 48 10 - 45 07 vmovupd zmm0, ZMMWORD PTR b23$[rbp] - 00154 62 f1 fd 48 c6 - 45 07 00 vshufpd zmm0, zmm0, ZMMWORD PTR b23$[rbp], 0 - 0015c 62 f1 fd 48 11 - 45 0f vmovupd ZMMWORD PTR b23_perm$[rbp], zmm0 - -; 339 : c01 = _mm512_fmadd_pd(a01, b01_perm, c01); - - 00163 62 f1 fd 48 10 - 45 01 vmovupd zmm0, ZMMWORD PTR a01$[rbp] - 0016a 62 f1 fd 48 10 - 4d 0d vmovupd zmm1, ZMMWORD PTR b01_perm$[rbp] - 00171 62 f2 f5 48 a8 - 45 09 vfmadd213pd zmm0, zmm1, ZMMWORD PTR c01$[rbp] - 00178 62 f1 fd 48 11 - 45 09 vmovupd ZMMWORD PTR c01$[rbp], zmm0 - -; 340 : c23 = _mm512_fmadd_pd(a23, b23_perm, c23); - - 0017f 62 f1 fd 48 10 - 45 03 vmovupd zmm0, ZMMWORD PTR a23$[rbp] - 00186 62 f1 fd 48 10 - 4d 0f vmovupd zmm1, ZMMWORD PTR b23_perm$[rbp] - 0018d 62 f2 f5 48 a8 - 45 0b vfmadd213pd zmm0, zmm1, ZMMWORD PTR c23$[rbp] - 00194 62 f1 fd 48 11 - 45 0b vmovupd ZMMWORD PTR c23$[rbp], zmm0 - -; 341 : -; 342 : //group 2 -; 343 : b01_perm = _mm512_shuffle_pd(b01, b01, _FMA_SELECT(2)); - - 0019b 62 f1 fd 48 10 - 45 05 vmovupd zmm0, ZMMWORD PTR b01$[rbp] - 001a2 62 f1 fd 48 c6 - 45 05 aa vshufpd zmm0, zmm0, ZMMWORD PTR b01$[rbp], 170 ; 000000aaH - 001aa 62 f1 fd 48 11 - 45 0d vmovupd ZMMWORD PTR b01_perm$[rbp], zmm0 - -; 344 : b23_perm = _mm512_shuffle_pd(b23, b23, _FMA_SELECT(2)); - - 001b1 62 f1 fd 48 10 - 45 07 vmovupd zmm0, ZMMWORD PTR b23$[rbp] - 001b8 62 f1 fd 48 c6 - 45 07 aa vshufpd zmm0, zmm0, ZMMWORD PTR b23$[rbp], 170 ; 000000aaH - 001c0 62 f1 fd 48 11 - 45 0f vmovupd ZMMWORD PTR b23_perm$[rbp], zmm0 - -; 345 : c01 = _mm512_fmadd_pd(a23, b01_perm, c01); - - 001c7 62 f1 fd 48 10 - 45 03 vmovupd zmm0, ZMMWORD PTR a23$[rbp] - 001ce 62 f1 fd 48 10 - 4d 0d vmovupd zmm1, ZMMWORD PTR b01_perm$[rbp] - 001d5 62 f2 f5 48 a8 - 45 09 vfmadd213pd zmm0, zmm1, ZMMWORD PTR c01$[rbp] - 001dc 62 f1 fd 48 11 - 45 09 vmovupd ZMMWORD PTR c01$[rbp], zmm0 - -; 346 : c23 = _mm512_fmadd_pd(a01, b23_perm, c23); - - 001e3 62 f1 fd 48 10 - 45 01 vmovupd zmm0, ZMMWORD PTR a01$[rbp] - 001ea 62 f1 fd 48 10 - 4d 0f vmovupd zmm1, ZMMWORD PTR b23_perm$[rbp] - 001f1 62 f2 f5 48 a8 - 45 0b vfmadd213pd zmm0, zmm1, ZMMWORD PTR c23$[rbp] - 001f8 62 f1 fd 48 11 - 45 0b vmovupd ZMMWORD PTR c23$[rbp], zmm0 - -; 347 : -; 348 : //group 1 -; 349 : register __m512d a12 = _mm512_shuffle_f64x2(a01, a23, _MM_SHUFFLE(1, 0, 3, 2)); - - 001ff 62 f1 fd 48 10 - 45 01 vmovupd zmm0, ZMMWORD PTR a01$[rbp] - 00206 62 f3 fd 48 23 - 45 03 4e vshuff64x2 zmm0, zmm0, ZMMWORD PTR a23$[rbp], 78 ; 0000004eH - 0020e 62 f1 fd 48 11 - 45 11 vmovupd ZMMWORD PTR a12$[rbp], zmm0 - -; 350 : register __m512d a30 = _mm512_shuffle_f64x2(a23, a01, _MM_SHUFFLE(1, 0, 3, 2)); - - 00215 62 f1 fd 48 10 - 45 03 vmovupd zmm0, ZMMWORD PTR a23$[rbp] - 0021c 62 f3 fd 48 23 - 45 01 4e vshuff64x2 zmm0, zmm0, ZMMWORD PTR a01$[rbp], 78 ; 0000004eH - 00224 62 f1 fd 48 11 - 45 13 vmovupd ZMMWORD PTR a30$[rbp], zmm0 - -; 351 : b01_perm = _mm512_shuffle_pd(b01, b01, _FMA_SELECT(1)); - - 0022b 62 f1 fd 48 10 - 45 05 vmovupd zmm0, ZMMWORD PTR b01$[rbp] - 00232 62 f1 fd 48 c6 - 45 05 55 vshufpd zmm0, zmm0, ZMMWORD PTR b01$[rbp], 85 ; 00000055H - 0023a 62 f1 fd 48 11 - 45 0d vmovupd ZMMWORD PTR b01_perm$[rbp], zmm0 - -; 352 : b23_perm = _mm512_shuffle_pd(b23, b23, _FMA_SELECT(1)); - - 00241 62 f1 fd 48 10 - 45 07 vmovupd zmm0, ZMMWORD PTR b23$[rbp] - 00248 62 f1 fd 48 c6 - 45 07 55 vshufpd zmm0, zmm0, ZMMWORD PTR b23$[rbp], 85 ; 00000055H - 00250 62 f1 fd 48 11 - 45 0f vmovupd ZMMWORD PTR b23_perm$[rbp], zmm0 - -; 353 : c01 = _mm512_fmadd_pd(a12, b01_perm, c01); - - 00257 62 f1 fd 48 10 - 45 11 vmovupd zmm0, ZMMWORD PTR a12$[rbp] - 0025e 62 f1 fd 48 10 - 4d 0d vmovupd zmm1, ZMMWORD PTR b01_perm$[rbp] - 00265 62 f2 f5 48 a8 - 45 09 vfmadd213pd zmm0, zmm1, ZMMWORD PTR c01$[rbp] - 0026c 62 f1 fd 48 11 - 45 09 vmovupd ZMMWORD PTR c01$[rbp], zmm0 - -; 354 : c23 = _mm512_fmadd_pd(a30, b23_perm, c23); - - 00273 62 f1 fd 48 10 - 45 13 vmovupd zmm0, ZMMWORD PTR a30$[rbp] - 0027a 62 f1 fd 48 10 - 4d 0f vmovupd zmm1, ZMMWORD PTR b23_perm$[rbp] - 00281 62 f2 f5 48 a8 - 45 0b vfmadd213pd zmm0, zmm1, ZMMWORD PTR c23$[rbp] - 00288 62 f1 fd 48 11 - 45 0b vmovupd ZMMWORD PTR c23$[rbp], zmm0 - -; 355 : -; 356 : //group 3 -; 357 : b01_perm = _mm512_shuffle_pd(b01, b01, _FMA_SELECT(3)); - - 0028f 62 f1 fd 48 10 - 45 05 vmovupd zmm0, ZMMWORD PTR b01$[rbp] - 00296 62 f1 fd 48 c6 - 45 05 ff vshufpd zmm0, zmm0, ZMMWORD PTR b01$[rbp], 255 ; 000000ffH - 0029e 62 f1 fd 48 11 - 45 0d vmovupd ZMMWORD PTR b01_perm$[rbp], zmm0 - -; 358 : b23_perm = _mm512_shuffle_pd(b23, b23, _FMA_SELECT(3)); - - 002a5 62 f1 fd 48 10 - 45 07 vmovupd zmm0, ZMMWORD PTR b23$[rbp] - 002ac 62 f1 fd 48 c6 - 45 07 ff vshufpd zmm0, zmm0, ZMMWORD PTR b23$[rbp], 255 ; 000000ffH - 002b4 62 f1 fd 48 11 - 45 0f vmovupd ZMMWORD PTR b23_perm$[rbp], zmm0 - -; 359 : c01 = _mm512_fmadd_pd(a30, b01_perm, c01); - - 002bb 62 f1 fd 48 10 - 45 13 vmovupd zmm0, ZMMWORD PTR a30$[rbp] - 002c2 62 f1 fd 48 10 - 4d 0d vmovupd zmm1, ZMMWORD PTR b01_perm$[rbp] - 002c9 62 f2 f5 48 a8 - 45 09 vfmadd213pd zmm0, zmm1, ZMMWORD PTR c01$[rbp] - 002d0 62 f1 fd 48 11 - 45 09 vmovupd ZMMWORD PTR c01$[rbp], zmm0 - -; 360 : c23 = _mm512_fmadd_pd(a12, b23_perm, c23); - - 002d7 62 f1 fd 48 10 - 45 11 vmovupd zmm0, ZMMWORD PTR a12$[rbp] - 002de 62 f1 fd 48 10 - 4d 0f vmovupd zmm1, ZMMWORD PTR b23_perm$[rbp] - 002e5 62 f2 f5 48 a8 - 45 0b vfmadd213pd zmm0, zmm1, ZMMWORD PTR c23$[rbp] - 002ec 62 f1 fd 48 11 - 45 0b vmovupd ZMMWORD PTR c23$[rbp], zmm0 - -; 361 : -; 362 : _mm512_store_pd((double *)&ans->f64_z[0], c01); - - 002f3 b8 40 00 00 00 mov eax, 64 ; 00000040H - 002f8 48 6b c0 00 imul rax, rax, 0 - 002fc 49 8b 8d c0 07 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00303 48 03 c8 add rcx, rax - 00306 48 8b c1 mov rax, rcx - 00309 62 f1 fd 48 10 - 45 09 vmovupd zmm0, ZMMWORD PTR c01$[rbp] - 00310 62 f1 fd 48 11 - 00 vmovupd ZMMWORD PTR [rax], zmm0 - -; 363 : _mm512_store_pd((double *)&ans->f64_z[1], c23); - - 00316 b8 40 00 00 00 mov eax, 64 ; 00000040H - 0031b 48 6b c0 01 imul rax, rax, 1 - 0031f 49 8b 8d c0 07 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00326 48 03 c8 add rcx, rax - 00329 48 8b c1 mov rax, rcx - 0032c 62 f1 fd 48 10 - 45 0b vmovupd zmm0, ZMMWORD PTR c23$[rbp] - 00333 62 f1 fd 48 11 - 00 vmovupd ZMMWORD PTR [rax], zmm0 - -; 364 : } - - 00339 49 8d a5 90 07 - 00 00 lea rsp, QWORD PTR [r13+1936] - 00340 5f pop rdi - 00341 5d pop rbp - 00342 41 5d pop r13 - 00344 c3 ret 0 -double_kernel_fma_512 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.fma.x86.c -; COMDAT double_kernel_fma_avx_fma -_TEXT SEGMENT -a0$ = 32 -a1$ = 96 -a2$ = 160 -a3$ = 224 -b0$ = 288 -b1$ = 352 -b2$ = 416 -b3$ = 480 -ccol$ = 544 -left$ = 1040 -right$ = 1048 -ans$ = 1056 -double_kernel_fma_avx_fma PROC ; COMDAT - -; 277 : { - -$LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 41 55 push r13 - 00011 55 push rbp - 00012 57 push rdi - 00013 48 81 ec 10 04 - 00 00 sub rsp, 1040 ; 00000410H - 0001a 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 0001f 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00024 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H - 00028 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F8387F23_m@fma@x86@c - 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00034 90 npad 1 - -; 278 : const __m256d a0 = _mm256_load_pd((double *)&left->f64_y[0]); - - 00035 b8 20 00 00 00 mov eax, 32 ; 00000020H - 0003a 48 6b c0 00 imul rax, rax, 0 - 0003e 49 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR left$[r13] - 00045 48 03 c8 add rcx, rax - 00048 48 8b c1 mov rax, rcx - 0004b c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 0004f c5 fd 11 45 20 vmovupd YMMWORD PTR a0$[rbp], ymm0 - -; 279 : const __m256d a1 = _mm256_load_pd((double *)&left->f64_y[1]); - - 00054 b8 20 00 00 00 mov eax, 32 ; 00000020H - 00059 48 6b c0 01 imul rax, rax, 1 - 0005d 49 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR left$[r13] - 00064 48 03 c8 add rcx, rax - 00067 48 8b c1 mov rax, rcx - 0006a c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 0006e c5 fd 11 45 60 vmovupd YMMWORD PTR a1$[rbp], ymm0 - -; 280 : const __m256d a2 = _mm256_load_pd((double *)&left->f64_y[2]); - - 00073 b8 20 00 00 00 mov eax, 32 ; 00000020H - 00078 48 6b c0 02 imul rax, rax, 2 - 0007c 49 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR left$[r13] - 00083 48 03 c8 add rcx, rax - 00086 48 8b c1 mov rax, rcx - 00089 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 0008d c5 fd 11 85 a0 - 00 00 00 vmovupd YMMWORD PTR a2$[rbp], ymm0 - -; 281 : const __m256d a3 = _mm256_load_pd((double *)&left->f64_y[3]); - - 00095 b8 20 00 00 00 mov eax, 32 ; 00000020H - 0009a 48 6b c0 03 imul rax, rax, 3 - 0009e 49 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR left$[r13] - 000a5 48 03 c8 add rcx, rax - 000a8 48 8b c1 mov rax, rcx - 000ab c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 000af c5 fd 11 85 e0 - 00 00 00 vmovupd YMMWORD PTR a3$[rbp], ymm0 - -; 282 : -; 283 : __m256d b0 = _mm256_load_pd((double *)&right->f64_y[0]); - - 000b7 b8 20 00 00 00 mov eax, 32 ; 00000020H - 000bc 48 6b c0 00 imul rax, rax, 0 - 000c0 49 8b 8d 18 04 - 00 00 mov rcx, QWORD PTR right$[r13] - 000c7 48 03 c8 add rcx, rax - 000ca 48 8b c1 mov rax, rcx - 000cd c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 000d1 c5 fd 11 85 20 - 01 00 00 vmovupd YMMWORD PTR b0$[rbp], ymm0 - -; 284 : __m256d b1 = _mm256_load_pd((double *)&right->f64_y[1]); - - 000d9 b8 20 00 00 00 mov eax, 32 ; 00000020H - 000de 48 6b c0 01 imul rax, rax, 1 - 000e2 49 8b 8d 18 04 - 00 00 mov rcx, QWORD PTR right$[r13] - 000e9 48 03 c8 add rcx, rax - 000ec 48 8b c1 mov rax, rcx - 000ef c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 000f3 c5 fd 11 85 60 - 01 00 00 vmovupd YMMWORD PTR b1$[rbp], ymm0 - -; 285 : __m256d b2 = _mm256_load_pd((double *)&right->f64_y[2]); - - 000fb b8 20 00 00 00 mov eax, 32 ; 00000020H - 00100 48 6b c0 02 imul rax, rax, 2 - 00104 49 8b 8d 18 04 - 00 00 mov rcx, QWORD PTR right$[r13] - 0010b 48 03 c8 add rcx, rax - 0010e 48 8b c1 mov rax, rcx - 00111 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 00115 c5 fd 11 85 a0 - 01 00 00 vmovupd YMMWORD PTR b2$[rbp], ymm0 - -; 286 : __m256d b3 = _mm256_load_pd((double *)&right->f64_y[3]); - - 0011d b8 20 00 00 00 mov eax, 32 ; 00000020H - 00122 48 6b c0 03 imul rax, rax, 3 - 00126 49 8b 8d 18 04 - 00 00 mov rcx, QWORD PTR right$[r13] - 0012d 48 03 c8 add rcx, rax - 00130 48 8b c1 mov rax, rcx - 00133 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 00137 c5 fd 11 85 e0 - 01 00 00 vmovupd YMMWORD PTR b3$[rbp], ymm0 - -; 287 : -; 288 : register __m256d ccol; -; 289 : -; 290 : /* Column 0 */ -; 291 : ccol = _mm256_load_pd((double *)&ans->f64_y[0]); - - 0013f b8 20 00 00 00 mov eax, 32 ; 00000020H - 00144 48 6b c0 00 imul rax, rax, 0 - 00148 49 8b 8d 20 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 0014f 48 03 c8 add rcx, rax - 00152 48 8b c1 mov rax, rcx - 00155 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 00159 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 292 : ccol = _mm256_fmadd_pd(a0, _mm256_permute4x64_pd(b0, _FMA_SELECT(0)), ccol); - - 00161 c4 e3 fd 01 85 - 20 01 00 00 00 vpermpd ymm0, YMMWORD PTR b0$[rbp], 0 - 0016b c5 fd 10 4d 20 vmovupd ymm1, YMMWORD PTR a0$[rbp] - 00170 c4 e2 fd a8 8d - 20 02 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR ccol$[rbp] - 00179 c5 fd 10 c1 vmovupd ymm0, ymm1 - 0017d c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 293 : ccol = _mm256_fmadd_pd(a1, _mm256_permute4x64_pd(b0, _FMA_SELECT(1)), ccol); - - 00185 c4 e3 fd 01 85 - 20 01 00 00 55 vpermpd ymm0, YMMWORD PTR b0$[rbp], 85 ; 00000055H - 0018f c5 fd 10 4d 60 vmovupd ymm1, YMMWORD PTR a1$[rbp] - 00194 c4 e2 fd a8 8d - 20 02 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR ccol$[rbp] - 0019d c5 fd 10 c1 vmovupd ymm0, ymm1 - 001a1 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 294 : ccol = _mm256_fmadd_pd(a2, _mm256_permute4x64_pd(b0, _FMA_SELECT(2)), ccol); - - 001a9 c4 e3 fd 01 85 - 20 01 00 00 aa vpermpd ymm0, YMMWORD PTR b0$[rbp], 170 ; 000000aaH - 001b3 c5 fd 10 8d a0 - 00 00 00 vmovupd ymm1, YMMWORD PTR a2$[rbp] - 001bb c4 e2 fd a8 8d - 20 02 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR ccol$[rbp] - 001c4 c5 fd 10 c1 vmovupd ymm0, ymm1 - 001c8 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 295 : ccol = _mm256_fmadd_pd(a3, _mm256_permute4x64_pd(b0, _FMA_SELECT(3)), ccol); - - 001d0 c4 e3 fd 01 85 - 20 01 00 00 ff vpermpd ymm0, YMMWORD PTR b0$[rbp], 255 ; 000000ffH - 001da c5 fd 10 8d e0 - 00 00 00 vmovupd ymm1, YMMWORD PTR a3$[rbp] - 001e2 c4 e2 fd a8 8d - 20 02 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR ccol$[rbp] - 001eb c5 fd 10 c1 vmovupd ymm0, ymm1 - 001ef c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 296 : _mm256_store_pd((double *)&ans->f64_y[0], ccol); - - 001f7 b8 20 00 00 00 mov eax, 32 ; 00000020H - 001fc 48 6b c0 00 imul rax, rax, 0 - 00200 49 8b 8d 20 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00207 48 03 c8 add rcx, rax - 0020a 48 8b c1 mov rax, rcx - 0020d c5 fd 10 85 20 - 02 00 00 vmovupd ymm0, YMMWORD PTR ccol$[rbp] - 00215 c5 fd 11 00 vmovupd YMMWORD PTR [rax], ymm0 - -; 297 : /* Column 1 */ -; 298 : ccol = _mm256_load_pd((double *)&ans->f64_y[1]); - - 00219 b8 20 00 00 00 mov eax, 32 ; 00000020H - 0021e 48 6b c0 01 imul rax, rax, 1 - 00222 49 8b 8d 20 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00229 48 03 c8 add rcx, rax - 0022c 48 8b c1 mov rax, rcx - 0022f c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 00233 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 299 : ccol = _mm256_fmadd_pd(a0, _mm256_permute4x64_pd(b1, _FMA_SELECT(0)), ccol); - - 0023b c4 e3 fd 01 85 - 60 01 00 00 00 vpermpd ymm0, YMMWORD PTR b1$[rbp], 0 - 00245 c5 fd 10 4d 20 vmovupd ymm1, YMMWORD PTR a0$[rbp] - 0024a c4 e2 fd a8 8d - 20 02 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR ccol$[rbp] - 00253 c5 fd 10 c1 vmovupd ymm0, ymm1 - 00257 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 300 : ccol = _mm256_fmadd_pd(a1, _mm256_permute4x64_pd(b1, _FMA_SELECT(1)), ccol); - - 0025f c4 e3 fd 01 85 - 60 01 00 00 55 vpermpd ymm0, YMMWORD PTR b1$[rbp], 85 ; 00000055H - 00269 c5 fd 10 4d 60 vmovupd ymm1, YMMWORD PTR a1$[rbp] - 0026e c4 e2 fd a8 8d - 20 02 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR ccol$[rbp] - 00277 c5 fd 10 c1 vmovupd ymm0, ymm1 - 0027b c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 301 : ccol = _mm256_fmadd_pd(a2, _mm256_permute4x64_pd(b1, _FMA_SELECT(2)), ccol); - - 00283 c4 e3 fd 01 85 - 60 01 00 00 aa vpermpd ymm0, YMMWORD PTR b1$[rbp], 170 ; 000000aaH - 0028d c5 fd 10 8d a0 - 00 00 00 vmovupd ymm1, YMMWORD PTR a2$[rbp] - 00295 c4 e2 fd a8 8d - 20 02 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR ccol$[rbp] - 0029e c5 fd 10 c1 vmovupd ymm0, ymm1 - 002a2 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 302 : ccol = _mm256_fmadd_pd(a3, _mm256_permute4x64_pd(b1, _FMA_SELECT(3)), ccol); - - 002aa c4 e3 fd 01 85 - 60 01 00 00 ff vpermpd ymm0, YMMWORD PTR b1$[rbp], 255 ; 000000ffH - 002b4 c5 fd 10 8d e0 - 00 00 00 vmovupd ymm1, YMMWORD PTR a3$[rbp] - 002bc c4 e2 fd a8 8d - 20 02 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR ccol$[rbp] - 002c5 c5 fd 10 c1 vmovupd ymm0, ymm1 - 002c9 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 303 : _mm256_store_pd((double *)&ans->f64_y[1], ccol); - - 002d1 b8 20 00 00 00 mov eax, 32 ; 00000020H - 002d6 48 6b c0 01 imul rax, rax, 1 - 002da 49 8b 8d 20 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 002e1 48 03 c8 add rcx, rax - 002e4 48 8b c1 mov rax, rcx - 002e7 c5 fd 10 85 20 - 02 00 00 vmovupd ymm0, YMMWORD PTR ccol$[rbp] - 002ef c5 fd 11 00 vmovupd YMMWORD PTR [rax], ymm0 - -; 304 : /* Column 2 */ -; 305 : ccol = _mm256_load_pd((double *)&ans->f64_y[2]); - - 002f3 b8 20 00 00 00 mov eax, 32 ; 00000020H - 002f8 48 6b c0 02 imul rax, rax, 2 - 002fc 49 8b 8d 20 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00303 48 03 c8 add rcx, rax - 00306 48 8b c1 mov rax, rcx - 00309 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 0030d c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 306 : ccol = _mm256_fmadd_pd(a0, _mm256_permute4x64_pd(b2, _FMA_SELECT(0)), ccol); - - 00315 c4 e3 fd 01 85 - a0 01 00 00 00 vpermpd ymm0, YMMWORD PTR b2$[rbp], 0 - 0031f c5 fd 10 4d 20 vmovupd ymm1, YMMWORD PTR a0$[rbp] - 00324 c4 e2 fd a8 8d - 20 02 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR ccol$[rbp] - 0032d c5 fd 10 c1 vmovupd ymm0, ymm1 - 00331 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 307 : ccol = _mm256_fmadd_pd(a1, _mm256_permute4x64_pd(b2, _FMA_SELECT(1)), ccol); - - 00339 c4 e3 fd 01 85 - a0 01 00 00 55 vpermpd ymm0, YMMWORD PTR b2$[rbp], 85 ; 00000055H - 00343 c5 fd 10 4d 60 vmovupd ymm1, YMMWORD PTR a1$[rbp] - 00348 c4 e2 fd a8 8d - 20 02 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR ccol$[rbp] - 00351 c5 fd 10 c1 vmovupd ymm0, ymm1 - 00355 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 308 : ccol = _mm256_fmadd_pd(a2, _mm256_permute4x64_pd(b2, _FMA_SELECT(2)), ccol); - - 0035d c4 e3 fd 01 85 - a0 01 00 00 aa vpermpd ymm0, YMMWORD PTR b2$[rbp], 170 ; 000000aaH - 00367 c5 fd 10 8d a0 - 00 00 00 vmovupd ymm1, YMMWORD PTR a2$[rbp] - 0036f c4 e2 fd a8 8d - 20 02 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR ccol$[rbp] - 00378 c5 fd 10 c1 vmovupd ymm0, ymm1 - 0037c c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 309 : ccol = _mm256_fmadd_pd(a3, _mm256_permute4x64_pd(b2, _FMA_SELECT(3)), ccol); - - 00384 c4 e3 fd 01 85 - a0 01 00 00 ff vpermpd ymm0, YMMWORD PTR b2$[rbp], 255 ; 000000ffH - 0038e c5 fd 10 8d e0 - 00 00 00 vmovupd ymm1, YMMWORD PTR a3$[rbp] - 00396 c4 e2 fd a8 8d - 20 02 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR ccol$[rbp] - 0039f c5 fd 10 c1 vmovupd ymm0, ymm1 - 003a3 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 310 : _mm256_store_pd((double *)&ans->f64_y[2], ccol); - - 003ab b8 20 00 00 00 mov eax, 32 ; 00000020H - 003b0 48 6b c0 02 imul rax, rax, 2 - 003b4 49 8b 8d 20 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 003bb 48 03 c8 add rcx, rax - 003be 48 8b c1 mov rax, rcx - 003c1 c5 fd 10 85 20 - 02 00 00 vmovupd ymm0, YMMWORD PTR ccol$[rbp] - 003c9 c5 fd 11 00 vmovupd YMMWORD PTR [rax], ymm0 - -; 311 : /* Column 3 */ -; 312 : ccol = _mm256_load_pd((double *)&ans->f64_y[3]); - - 003cd b8 20 00 00 00 mov eax, 32 ; 00000020H - 003d2 48 6b c0 03 imul rax, rax, 3 - 003d6 49 8b 8d 20 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 003dd 48 03 c8 add rcx, rax - 003e0 48 8b c1 mov rax, rcx - 003e3 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 003e7 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 313 : ccol = _mm256_fmadd_pd(a0, _mm256_permute4x64_pd(b3, _FMA_SELECT(0)), ccol); - - 003ef c4 e3 fd 01 85 - e0 01 00 00 00 vpermpd ymm0, YMMWORD PTR b3$[rbp], 0 - 003f9 c5 fd 10 4d 20 vmovupd ymm1, YMMWORD PTR a0$[rbp] - 003fe c4 e2 fd a8 8d - 20 02 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR ccol$[rbp] - 00407 c5 fd 10 c1 vmovupd ymm0, ymm1 - 0040b c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 314 : ccol = _mm256_fmadd_pd(a1, _mm256_permute4x64_pd(b3, _FMA_SELECT(1)), ccol); - - 00413 c4 e3 fd 01 85 - e0 01 00 00 55 vpermpd ymm0, YMMWORD PTR b3$[rbp], 85 ; 00000055H - 0041d c5 fd 10 4d 60 vmovupd ymm1, YMMWORD PTR a1$[rbp] - 00422 c4 e2 fd a8 8d - 20 02 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR ccol$[rbp] - 0042b c5 fd 10 c1 vmovupd ymm0, ymm1 - 0042f c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 315 : ccol = _mm256_fmadd_pd(a2, _mm256_permute4x64_pd(b3, _FMA_SELECT(2)), ccol); - - 00437 c4 e3 fd 01 85 - e0 01 00 00 aa vpermpd ymm0, YMMWORD PTR b3$[rbp], 170 ; 000000aaH - 00441 c5 fd 10 8d a0 - 00 00 00 vmovupd ymm1, YMMWORD PTR a2$[rbp] - 00449 c4 e2 fd a8 8d - 20 02 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR ccol$[rbp] - 00452 c5 fd 10 c1 vmovupd ymm0, ymm1 - 00456 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 316 : ccol = _mm256_fmadd_pd(a3, _mm256_permute4x64_pd(b3, _FMA_SELECT(3)), ccol); - - 0045e c4 e3 fd 01 85 - e0 01 00 00 ff vpermpd ymm0, YMMWORD PTR b3$[rbp], 255 ; 000000ffH - 00468 c5 fd 10 8d e0 - 00 00 00 vmovupd ymm1, YMMWORD PTR a3$[rbp] - 00470 c4 e2 fd a8 8d - 20 02 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR ccol$[rbp] - 00479 c5 fd 10 c1 vmovupd ymm0, ymm1 - 0047d c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 317 : _mm256_store_pd((double *)&ans->f64_y[3], ccol); - - 00485 b8 20 00 00 00 mov eax, 32 ; 00000020H - 0048a 48 6b c0 03 imul rax, rax, 3 - 0048e 49 8b 8d 20 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00495 48 03 c8 add rcx, rax - 00498 48 8b c1 mov rax, rcx - 0049b c5 fd 10 85 20 - 02 00 00 vmovupd ymm0, YMMWORD PTR ccol$[rbp] - 004a3 c5 fd 11 00 vmovupd YMMWORD PTR [rax], ymm0 - -; 318 : } - - 004a7 49 8d a5 f0 03 - 00 00 lea rsp, QWORD PTR [r13+1008] - 004ae 5f pop rdi - 004af 5d pop rbp - 004b0 41 5d pop r13 - 004b2 c3 ret 0 -double_kernel_fma_avx_fma ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.fma.x86.c -; COMDAT double_kernel_fma_avx -_TEXT SEGMENT -a0$ = 32 -a1$ = 96 -a2$ = 160 -a3$ = 224 -b0$ = 288 -b1$ = 352 -b2$ = 416 -b3$ = 480 -ccol$ = 544 -left$ = 1040 -right$ = 1048 -ans$ = 1056 -double_kernel_fma_avx PROC ; COMDAT - -; 233 : { - -$LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 41 55 push r13 - 00011 55 push rbp - 00012 57 push rdi - 00013 48 81 ec 10 04 - 00 00 sub rsp, 1040 ; 00000410H - 0001a 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 0001f 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00024 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H - 00028 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F8387F23_m@fma@x86@c - 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00034 90 npad 1 - -; 234 : const __m256d a0 = _mm256_load_pd((double *)&left->f64_y[0]); - - 00035 b8 20 00 00 00 mov eax, 32 ; 00000020H - 0003a 48 6b c0 00 imul rax, rax, 0 - 0003e 49 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR left$[r13] - 00045 48 03 c8 add rcx, rax - 00048 48 8b c1 mov rax, rcx - 0004b c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 0004f c5 fd 11 45 20 vmovupd YMMWORD PTR a0$[rbp], ymm0 - -; 235 : const __m256d a1 = _mm256_load_pd((double *)&left->f64_y[1]); - - 00054 b8 20 00 00 00 mov eax, 32 ; 00000020H - 00059 48 6b c0 01 imul rax, rax, 1 - 0005d 49 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR left$[r13] - 00064 48 03 c8 add rcx, rax - 00067 48 8b c1 mov rax, rcx - 0006a c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 0006e c5 fd 11 45 60 vmovupd YMMWORD PTR a1$[rbp], ymm0 - -; 236 : const __m256d a2 = _mm256_load_pd((double *)&left->f64_y[2]); - - 00073 b8 20 00 00 00 mov eax, 32 ; 00000020H - 00078 48 6b c0 02 imul rax, rax, 2 - 0007c 49 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR left$[r13] - 00083 48 03 c8 add rcx, rax - 00086 48 8b c1 mov rax, rcx - 00089 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 0008d c5 fd 11 85 a0 - 00 00 00 vmovupd YMMWORD PTR a2$[rbp], ymm0 - -; 237 : const __m256d a3 = _mm256_load_pd((double *)&left->f64_y[3]); - - 00095 b8 20 00 00 00 mov eax, 32 ; 00000020H - 0009a 48 6b c0 03 imul rax, rax, 3 - 0009e 49 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR left$[r13] - 000a5 48 03 c8 add rcx, rax - 000a8 48 8b c1 mov rax, rcx - 000ab c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 000af c5 fd 11 85 e0 - 00 00 00 vmovupd YMMWORD PTR a3$[rbp], ymm0 - -; 238 : -; 239 : __m256d b0 = _mm256_load_pd((double *)&right->f64_y[0]); - - 000b7 b8 20 00 00 00 mov eax, 32 ; 00000020H - 000bc 48 6b c0 00 imul rax, rax, 0 - 000c0 49 8b 8d 18 04 - 00 00 mov rcx, QWORD PTR right$[r13] - 000c7 48 03 c8 add rcx, rax - 000ca 48 8b c1 mov rax, rcx - 000cd c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 000d1 c5 fd 11 85 20 - 01 00 00 vmovupd YMMWORD PTR b0$[rbp], ymm0 - -; 240 : __m256d b1 = _mm256_load_pd((double *)&right->f64_y[1]); - - 000d9 b8 20 00 00 00 mov eax, 32 ; 00000020H - 000de 48 6b c0 01 imul rax, rax, 1 - 000e2 49 8b 8d 18 04 - 00 00 mov rcx, QWORD PTR right$[r13] - 000e9 48 03 c8 add rcx, rax - 000ec 48 8b c1 mov rax, rcx - 000ef c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 000f3 c5 fd 11 85 60 - 01 00 00 vmovupd YMMWORD PTR b1$[rbp], ymm0 - -; 241 : __m256d b2 = _mm256_load_pd((double *)&right->f64_y[2]); - - 000fb b8 20 00 00 00 mov eax, 32 ; 00000020H - 00100 48 6b c0 02 imul rax, rax, 2 - 00104 49 8b 8d 18 04 - 00 00 mov rcx, QWORD PTR right$[r13] - 0010b 48 03 c8 add rcx, rax - 0010e 48 8b c1 mov rax, rcx - 00111 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 00115 c5 fd 11 85 a0 - 01 00 00 vmovupd YMMWORD PTR b2$[rbp], ymm0 - -; 242 : __m256d b3 = _mm256_load_pd((double *)&right->f64_y[3]); - - 0011d b8 20 00 00 00 mov eax, 32 ; 00000020H - 00122 48 6b c0 03 imul rax, rax, 3 - 00126 49 8b 8d 18 04 - 00 00 mov rcx, QWORD PTR right$[r13] - 0012d 48 03 c8 add rcx, rax - 00130 48 8b c1 mov rax, rcx - 00133 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 00137 c5 fd 11 85 e0 - 01 00 00 vmovupd YMMWORD PTR b3$[rbp], ymm0 - -; 243 : -; 244 : register __m256d ccol; -; 245 : -; 246 : /* Column 0 */ -; 247 : ccol = _mm256_load_pd((double *)&ans->f64_y[0]); - - 0013f b8 20 00 00 00 mov eax, 32 ; 00000020H - 00144 48 6b c0 00 imul rax, rax, 0 - 00148 49 8b 8d 20 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 0014f 48 03 c8 add rcx, rax - 00152 48 8b c1 mov rax, rcx - 00155 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 00159 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 248 : ccol = _mm256_add_pd(ccol, _mm256_mul_pd(a0, _mm256_permute4x64_pd(b0, _FMA_SELECT(0)))); - - 00161 c4 e3 fd 01 85 - 20 01 00 00 00 vpermpd ymm0, YMMWORD PTR b0$[rbp], 0 - 0016b c5 fd 10 4d 20 vmovupd ymm1, YMMWORD PTR a0$[rbp] - 00170 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 00174 c5 fd 10 8d 20 - 02 00 00 vmovupd ymm1, YMMWORD PTR ccol$[rbp] - 0017c c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 00180 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 249 : ccol = _mm256_add_pd(ccol, _mm256_mul_pd(a1, _mm256_permute4x64_pd(b0, _FMA_SELECT(1)))); - - 00188 c4 e3 fd 01 85 - 20 01 00 00 55 vpermpd ymm0, YMMWORD PTR b0$[rbp], 85 ; 00000055H - 00192 c5 fd 10 4d 60 vmovupd ymm1, YMMWORD PTR a1$[rbp] - 00197 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 0019b c5 fd 10 8d 20 - 02 00 00 vmovupd ymm1, YMMWORD PTR ccol$[rbp] - 001a3 c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 001a7 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 250 : ccol = _mm256_add_pd(ccol, _mm256_mul_pd(a2, _mm256_permute4x64_pd(b0, _FMA_SELECT(2)))); - - 001af c4 e3 fd 01 85 - 20 01 00 00 aa vpermpd ymm0, YMMWORD PTR b0$[rbp], 170 ; 000000aaH - 001b9 c5 fd 10 8d a0 - 00 00 00 vmovupd ymm1, YMMWORD PTR a2$[rbp] - 001c1 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 001c5 c5 fd 10 8d 20 - 02 00 00 vmovupd ymm1, YMMWORD PTR ccol$[rbp] - 001cd c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 001d1 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 251 : ccol = _mm256_add_pd(ccol, _mm256_mul_pd(a3, _mm256_permute4x64_pd(b0, _FMA_SELECT(3)))); - - 001d9 c4 e3 fd 01 85 - 20 01 00 00 ff vpermpd ymm0, YMMWORD PTR b0$[rbp], 255 ; 000000ffH - 001e3 c5 fd 10 8d e0 - 00 00 00 vmovupd ymm1, YMMWORD PTR a3$[rbp] - 001eb c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 001ef c5 fd 10 8d 20 - 02 00 00 vmovupd ymm1, YMMWORD PTR ccol$[rbp] - 001f7 c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 001fb c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 252 : _mm256_store_pd((double *)&ans->f64_y[0], ccol); - - 00203 b8 20 00 00 00 mov eax, 32 ; 00000020H - 00208 48 6b c0 00 imul rax, rax, 0 - 0020c 49 8b 8d 20 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00213 48 03 c8 add rcx, rax - 00216 48 8b c1 mov rax, rcx - 00219 c5 fd 10 85 20 - 02 00 00 vmovupd ymm0, YMMWORD PTR ccol$[rbp] - 00221 c5 fd 11 00 vmovupd YMMWORD PTR [rax], ymm0 - -; 253 : /* Column 1 */ -; 254 : ccol = _mm256_load_pd((double *)&ans->f64_y[1]); - - 00225 b8 20 00 00 00 mov eax, 32 ; 00000020H - 0022a 48 6b c0 01 imul rax, rax, 1 - 0022e 49 8b 8d 20 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00235 48 03 c8 add rcx, rax - 00238 48 8b c1 mov rax, rcx - 0023b c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 0023f c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 255 : ccol = _mm256_add_pd(ccol, _mm256_mul_pd(a0, _mm256_permute4x64_pd(b1, _FMA_SELECT(0)))); - - 00247 c4 e3 fd 01 85 - 60 01 00 00 00 vpermpd ymm0, YMMWORD PTR b1$[rbp], 0 - 00251 c5 fd 10 4d 20 vmovupd ymm1, YMMWORD PTR a0$[rbp] - 00256 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 0025a c5 fd 10 8d 20 - 02 00 00 vmovupd ymm1, YMMWORD PTR ccol$[rbp] - 00262 c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 00266 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 256 : ccol = _mm256_add_pd(ccol, _mm256_mul_pd(a1, _mm256_permute4x64_pd(b1, _FMA_SELECT(1)))); - - 0026e c4 e3 fd 01 85 - 60 01 00 00 55 vpermpd ymm0, YMMWORD PTR b1$[rbp], 85 ; 00000055H - 00278 c5 fd 10 4d 60 vmovupd ymm1, YMMWORD PTR a1$[rbp] - 0027d c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 00281 c5 fd 10 8d 20 - 02 00 00 vmovupd ymm1, YMMWORD PTR ccol$[rbp] - 00289 c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 0028d c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 257 : ccol = _mm256_add_pd(ccol, _mm256_mul_pd(a2, _mm256_permute4x64_pd(b1, _FMA_SELECT(2)))); - - 00295 c4 e3 fd 01 85 - 60 01 00 00 aa vpermpd ymm0, YMMWORD PTR b1$[rbp], 170 ; 000000aaH - 0029f c5 fd 10 8d a0 - 00 00 00 vmovupd ymm1, YMMWORD PTR a2$[rbp] - 002a7 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 002ab c5 fd 10 8d 20 - 02 00 00 vmovupd ymm1, YMMWORD PTR ccol$[rbp] - 002b3 c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 002b7 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 258 : ccol = _mm256_add_pd(ccol, _mm256_mul_pd(a3, _mm256_permute4x64_pd(b1, _FMA_SELECT(3)))); - - 002bf c4 e3 fd 01 85 - 60 01 00 00 ff vpermpd ymm0, YMMWORD PTR b1$[rbp], 255 ; 000000ffH - 002c9 c5 fd 10 8d e0 - 00 00 00 vmovupd ymm1, YMMWORD PTR a3$[rbp] - 002d1 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 002d5 c5 fd 10 8d 20 - 02 00 00 vmovupd ymm1, YMMWORD PTR ccol$[rbp] - 002dd c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 002e1 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 259 : _mm256_store_pd((double *)&ans->f64_y[1], ccol); - - 002e9 b8 20 00 00 00 mov eax, 32 ; 00000020H - 002ee 48 6b c0 01 imul rax, rax, 1 - 002f2 49 8b 8d 20 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 002f9 48 03 c8 add rcx, rax - 002fc 48 8b c1 mov rax, rcx - 002ff c5 fd 10 85 20 - 02 00 00 vmovupd ymm0, YMMWORD PTR ccol$[rbp] - 00307 c5 fd 11 00 vmovupd YMMWORD PTR [rax], ymm0 - -; 260 : /* Column 2 */ -; 261 : ccol = _mm256_load_pd((double *)&ans->f64_y[2]); - - 0030b b8 20 00 00 00 mov eax, 32 ; 00000020H - 00310 48 6b c0 02 imul rax, rax, 2 - 00314 49 8b 8d 20 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 0031b 48 03 c8 add rcx, rax - 0031e 48 8b c1 mov rax, rcx - 00321 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 00325 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 262 : ccol = _mm256_add_pd(ccol, _mm256_mul_pd(a0, _mm256_permute4x64_pd(b2, _FMA_SELECT(0)))); - - 0032d c4 e3 fd 01 85 - a0 01 00 00 00 vpermpd ymm0, YMMWORD PTR b2$[rbp], 0 - 00337 c5 fd 10 4d 20 vmovupd ymm1, YMMWORD PTR a0$[rbp] - 0033c c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 00340 c5 fd 10 8d 20 - 02 00 00 vmovupd ymm1, YMMWORD PTR ccol$[rbp] - 00348 c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 0034c c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 263 : ccol = _mm256_add_pd(ccol, _mm256_mul_pd(a1, _mm256_permute4x64_pd(b2, _FMA_SELECT(1)))); - - 00354 c4 e3 fd 01 85 - a0 01 00 00 55 vpermpd ymm0, YMMWORD PTR b2$[rbp], 85 ; 00000055H - 0035e c5 fd 10 4d 60 vmovupd ymm1, YMMWORD PTR a1$[rbp] - 00363 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 00367 c5 fd 10 8d 20 - 02 00 00 vmovupd ymm1, YMMWORD PTR ccol$[rbp] - 0036f c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 00373 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 264 : ccol = _mm256_add_pd(ccol, _mm256_mul_pd(a2, _mm256_permute4x64_pd(b2, _FMA_SELECT(2)))); - - 0037b c4 e3 fd 01 85 - a0 01 00 00 aa vpermpd ymm0, YMMWORD PTR b2$[rbp], 170 ; 000000aaH - 00385 c5 fd 10 8d a0 - 00 00 00 vmovupd ymm1, YMMWORD PTR a2$[rbp] - 0038d c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 00391 c5 fd 10 8d 20 - 02 00 00 vmovupd ymm1, YMMWORD PTR ccol$[rbp] - 00399 c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 0039d c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 265 : ccol = _mm256_add_pd(ccol, _mm256_mul_pd(a3, _mm256_permute4x64_pd(b2, _FMA_SELECT(3)))); - - 003a5 c4 e3 fd 01 85 - a0 01 00 00 ff vpermpd ymm0, YMMWORD PTR b2$[rbp], 255 ; 000000ffH - 003af c5 fd 10 8d e0 - 00 00 00 vmovupd ymm1, YMMWORD PTR a3$[rbp] - 003b7 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 003bb c5 fd 10 8d 20 - 02 00 00 vmovupd ymm1, YMMWORD PTR ccol$[rbp] - 003c3 c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 003c7 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 266 : _mm256_store_pd((double *)&ans->f64_y[2], ccol); - - 003cf b8 20 00 00 00 mov eax, 32 ; 00000020H - 003d4 48 6b c0 02 imul rax, rax, 2 - 003d8 49 8b 8d 20 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 003df 48 03 c8 add rcx, rax - 003e2 48 8b c1 mov rax, rcx - 003e5 c5 fd 10 85 20 - 02 00 00 vmovupd ymm0, YMMWORD PTR ccol$[rbp] - 003ed c5 fd 11 00 vmovupd YMMWORD PTR [rax], ymm0 - -; 267 : /* Column 3 */ -; 268 : ccol = _mm256_load_pd((double *)&ans->f64_y[3]); - - 003f1 b8 20 00 00 00 mov eax, 32 ; 00000020H - 003f6 48 6b c0 03 imul rax, rax, 3 - 003fa 49 8b 8d 20 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00401 48 03 c8 add rcx, rax - 00404 48 8b c1 mov rax, rcx - 00407 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 0040b c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 269 : ccol = _mm256_add_pd(ccol, _mm256_mul_pd(a0, _mm256_permute4x64_pd(b3, _FMA_SELECT(0)))); - - 00413 c4 e3 fd 01 85 - e0 01 00 00 00 vpermpd ymm0, YMMWORD PTR b3$[rbp], 0 - 0041d c5 fd 10 4d 20 vmovupd ymm1, YMMWORD PTR a0$[rbp] - 00422 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 00426 c5 fd 10 8d 20 - 02 00 00 vmovupd ymm1, YMMWORD PTR ccol$[rbp] - 0042e c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 00432 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 270 : ccol = _mm256_add_pd(ccol, _mm256_mul_pd(a1, _mm256_permute4x64_pd(b3, _FMA_SELECT(1)))); - - 0043a c4 e3 fd 01 85 - e0 01 00 00 55 vpermpd ymm0, YMMWORD PTR b3$[rbp], 85 ; 00000055H - 00444 c5 fd 10 4d 60 vmovupd ymm1, YMMWORD PTR a1$[rbp] - 00449 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 0044d c5 fd 10 8d 20 - 02 00 00 vmovupd ymm1, YMMWORD PTR ccol$[rbp] - 00455 c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 00459 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 271 : ccol = _mm256_add_pd(ccol, _mm256_mul_pd(a2, _mm256_permute4x64_pd(b3, _FMA_SELECT(2)))); - - 00461 c4 e3 fd 01 85 - e0 01 00 00 aa vpermpd ymm0, YMMWORD PTR b3$[rbp], 170 ; 000000aaH - 0046b c5 fd 10 8d a0 - 00 00 00 vmovupd ymm1, YMMWORD PTR a2$[rbp] - 00473 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 00477 c5 fd 10 8d 20 - 02 00 00 vmovupd ymm1, YMMWORD PTR ccol$[rbp] - 0047f c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 00483 c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 272 : ccol = _mm256_add_pd(ccol, _mm256_mul_pd(a3, _mm256_permute4x64_pd(b3, _FMA_SELECT(3)))); - - 0048b c4 e3 fd 01 85 - e0 01 00 00 ff vpermpd ymm0, YMMWORD PTR b3$[rbp], 255 ; 000000ffH - 00495 c5 fd 10 8d e0 - 00 00 00 vmovupd ymm1, YMMWORD PTR a3$[rbp] - 0049d c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 004a1 c5 fd 10 8d 20 - 02 00 00 vmovupd ymm1, YMMWORD PTR ccol$[rbp] - 004a9 c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 004ad c5 fd 11 85 20 - 02 00 00 vmovupd YMMWORD PTR ccol$[rbp], ymm0 - -; 273 : _mm256_store_pd((double *)&ans->f64_y[3], ccol); - - 004b5 b8 20 00 00 00 mov eax, 32 ; 00000020H - 004ba 48 6b c0 03 imul rax, rax, 3 - 004be 49 8b 8d 20 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 004c5 48 03 c8 add rcx, rax - 004c8 48 8b c1 mov rax, rcx - 004cb c5 fd 10 85 20 - 02 00 00 vmovupd ymm0, YMMWORD PTR ccol$[rbp] - 004d3 c5 fd 11 00 vmovupd YMMWORD PTR [rax], ymm0 - -; 274 : } - - 004d7 49 8d a5 f0 03 - 00 00 lea rsp, QWORD PTR [r13+1008] - 004de 5f pop rdi - 004df 5d pop rbp - 004e0 41 5d pop r13 - 004e2 c3 ret 0 -double_kernel_fma_avx ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.fma.x86.c -; COMDAT double_kernel_fma_sse -_TEXT SEGMENT -col$1 = 4 -c_lo$2 = 48 -c_hi$3 = 96 -b_lo$4 = 144 -b_hi$5 = 192 -a_lo$6 = 240 -a_hi$7 = 288 -b$8 = 336 -left$ = 592 -right$ = 600 -ans$ = 608 -double_kernel_fma_sse PROC ; COMDAT - -; 189 : { - -$LN6: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec 58 02 - 00 00 sub rsp, 600 ; 00000258H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F8387F23_m@fma@x86@c - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 90 npad 1 - -; 190 : for (int col = 0; col < 4; ++col) { - - 0002a c7 45 04 00 00 - 00 00 mov DWORD PTR col$1[rbp], 0 - 00031 eb 08 jmp SHORT $LN4@double_ker -$LN2@double_ker: - 00033 8b 45 04 mov eax, DWORD PTR col$1[rbp] - 00036 ff c0 inc eax - 00038 89 45 04 mov DWORD PTR col$1[rbp], eax -$LN4@double_ker: - 0003b 83 7d 04 04 cmp DWORD PTR col$1[rbp], 4 - 0003f 0f 8d c5 02 00 - 00 jge $LN3@double_ker - -; 191 : /* current answer column (two chunks: rows 0-1 and 2-3) */ -; 192 : register __m128d c_lo = _mm_load_pd(ans->f64_x + (col * 2 + 0)); - - 00045 8b 45 04 mov eax, DWORD PTR col$1[rbp] - 00048 03 c0 add eax, eax - 0004a 48 98 cdqe - 0004c 48 6b c0 10 imul rax, rax, 16 - 00050 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00057 48 03 c8 add rcx, rax - 0005a 48 8b c1 mov rax, rcx - 0005d 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00060 0f 29 45 30 movaps XMMWORD PTR c_lo$2[rbp], xmm0 - -; 193 : register __m128d c_hi = _mm_load_pd(ans->f64_x + (col * 2 + 1)); - - 00064 8b 45 04 mov eax, DWORD PTR col$1[rbp] - 00067 8d 44 00 01 lea eax, DWORD PTR [rax+rax+1] - 0006b 48 98 cdqe - 0006d 48 6b c0 10 imul rax, rax, 16 - 00071 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00078 48 03 c8 add rcx, rax - 0007b 48 8b c1 mov rax, rcx - 0007e 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00081 0f 29 45 60 movaps XMMWORD PTR c_hi$3[rbp], xmm0 - -; 194 : -; 195 : /* right matrix column split into two chunks */ -; 196 : register __m128d b_lo = _mm_load_pd(right + (2 * col + 0)); - - 00085 8b 45 04 mov eax, DWORD PTR col$1[rbp] - 00088 03 c0 add eax, eax - 0008a 48 98 cdqe - 0008c 48 69 c0 80 00 - 00 00 imul rax, rax, 128 ; 00000080H - 00093 48 8b 8d 58 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 0009a 48 03 c8 add rcx, rax - 0009d 48 8b c1 mov rax, rcx - 000a0 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 000a3 0f 29 85 90 00 - 00 00 movaps XMMWORD PTR b_lo$4[rbp], xmm0 - -; 197 : register __m128d b_hi = _mm_load_pd(right + (2 * col + 1)); - - 000aa 8b 45 04 mov eax, DWORD PTR col$1[rbp] - 000ad 8d 44 00 01 lea eax, DWORD PTR [rax+rax+1] - 000b1 48 98 cdqe - 000b3 48 69 c0 80 00 - 00 00 imul rax, rax, 128 ; 00000080H - 000ba 48 8b 8d 58 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 000c1 48 03 c8 add rcx, rax - 000c4 48 8b c1 mov rax, rcx - 000c7 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 000ca 0f 29 85 c0 00 - 00 00 movaps XMMWORD PTR b_hi$5[rbp], xmm0 - -; 198 : -; 199 : /* k = 0 */ -; 200 : register __m128d a_lo = _mm_load_pd(left + (0 * 2 + 0)); - - 000d1 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR left$[rbp] - 000d8 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 000db 0f 29 85 f0 00 - 00 00 movaps XMMWORD PTR a_lo$6[rbp], xmm0 - -; 201 : register __m128d a_hi = _mm_load_pd(left + (0 * 2 + 1)); - - 000e2 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR left$[rbp] - 000e9 48 05 80 00 00 - 00 add rax, 128 ; 00000080H - 000ef 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 000f2 0f 29 85 20 01 - 00 00 movaps XMMWORD PTR a_hi$7[rbp], xmm0 - -; 202 : register __m128d b = _mm_shuffle_pd(b_lo, b_lo, 0x0); - - 000f9 0f 28 85 90 00 - 00 00 movaps xmm0, XMMWORD PTR b_lo$4[rbp] - 00100 66 0f c6 85 90 - 00 00 00 00 shufpd xmm0, XMMWORD PTR b_lo$4[rbp], 0 - 00109 0f 29 85 50 01 - 00 00 movaps XMMWORD PTR b$8[rbp], xmm0 - -; 203 : c_lo = _mm_add_pd(c_lo, _mm_mul_pd(a_lo, b)); - - 00110 0f 28 85 f0 00 - 00 00 movaps xmm0, XMMWORD PTR a_lo$6[rbp] - 00117 66 0f 59 85 50 - 01 00 00 mulpd xmm0, XMMWORD PTR b$8[rbp] - 0011f 0f 28 4d 30 movaps xmm1, XMMWORD PTR c_lo$2[rbp] - 00123 66 0f 58 c8 addpd xmm1, xmm0 - 00127 0f 28 c1 movaps xmm0, xmm1 - 0012a 0f 29 45 30 movaps XMMWORD PTR c_lo$2[rbp], xmm0 - -; 204 : c_hi = _mm_add_pd(c_hi, _mm_mul_pd(a_hi, b)); - - 0012e 0f 28 85 20 01 - 00 00 movaps xmm0, XMMWORD PTR a_hi$7[rbp] - 00135 66 0f 59 85 50 - 01 00 00 mulpd xmm0, XMMWORD PTR b$8[rbp] - 0013d 0f 28 4d 60 movaps xmm1, XMMWORD PTR c_hi$3[rbp] - 00141 66 0f 58 c8 addpd xmm1, xmm0 - 00145 0f 28 c1 movaps xmm0, xmm1 - 00148 0f 29 45 60 movaps XMMWORD PTR c_hi$3[rbp], xmm0 - -; 205 : -; 206 : /* k = 1 */ -; 207 : a_lo = _mm_load_pd(left + (1 * 2 + 0)); - - 0014c 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR left$[rbp] - 00153 48 05 00 01 00 - 00 add rax, 256 ; 00000100H - 00159 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 0015c 0f 29 85 f0 00 - 00 00 movaps XMMWORD PTR a_lo$6[rbp], xmm0 - -; 208 : a_hi = _mm_load_pd(left + (1 * 2 + 1)); - - 00163 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR left$[rbp] - 0016a 48 05 80 01 00 - 00 add rax, 384 ; 00000180H - 00170 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00173 0f 29 85 20 01 - 00 00 movaps XMMWORD PTR a_hi$7[rbp], xmm0 - -; 209 : b = _mm_shuffle_pd(b_lo, b_lo, 0x3); - - 0017a 0f 28 85 90 00 - 00 00 movaps xmm0, XMMWORD PTR b_lo$4[rbp] - 00181 66 0f c6 85 90 - 00 00 00 03 shufpd xmm0, XMMWORD PTR b_lo$4[rbp], 3 - 0018a 0f 29 85 50 01 - 00 00 movaps XMMWORD PTR b$8[rbp], xmm0 - -; 210 : c_lo = _mm_add_pd(c_lo, _mm_mul_pd(a_lo, b)); - - 00191 0f 28 85 f0 00 - 00 00 movaps xmm0, XMMWORD PTR a_lo$6[rbp] - 00198 66 0f 59 85 50 - 01 00 00 mulpd xmm0, XMMWORD PTR b$8[rbp] - 001a0 0f 28 4d 30 movaps xmm1, XMMWORD PTR c_lo$2[rbp] - 001a4 66 0f 58 c8 addpd xmm1, xmm0 - 001a8 0f 28 c1 movaps xmm0, xmm1 - 001ab 0f 29 45 30 movaps XMMWORD PTR c_lo$2[rbp], xmm0 - -; 211 : c_hi = _mm_add_pd(c_hi, _mm_mul_pd(a_hi, b)); - - 001af 0f 28 85 20 01 - 00 00 movaps xmm0, XMMWORD PTR a_hi$7[rbp] - 001b6 66 0f 59 85 50 - 01 00 00 mulpd xmm0, XMMWORD PTR b$8[rbp] - 001be 0f 28 4d 60 movaps xmm1, XMMWORD PTR c_hi$3[rbp] - 001c2 66 0f 58 c8 addpd xmm1, xmm0 - 001c6 0f 28 c1 movaps xmm0, xmm1 - 001c9 0f 29 45 60 movaps XMMWORD PTR c_hi$3[rbp], xmm0 - -; 212 : -; 213 : /* k = 2 */ -; 214 : a_lo = _mm_load_pd(left + (1 * 2 + 0)); - - 001cd 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR left$[rbp] - 001d4 48 05 00 01 00 - 00 add rax, 256 ; 00000100H - 001da 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 001dd 0f 29 85 f0 00 - 00 00 movaps XMMWORD PTR a_lo$6[rbp], xmm0 - -; 215 : a_hi = _mm_load_pd(left + (1 * 2 + 1)); - - 001e4 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR left$[rbp] - 001eb 48 05 80 01 00 - 00 add rax, 384 ; 00000180H - 001f1 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 001f4 0f 29 85 20 01 - 00 00 movaps XMMWORD PTR a_hi$7[rbp], xmm0 - -; 216 : b = _mm_shuffle_pd(b_hi, b_hi, 0x0); - - 001fb 0f 28 85 c0 00 - 00 00 movaps xmm0, XMMWORD PTR b_hi$5[rbp] - 00202 66 0f c6 85 c0 - 00 00 00 00 shufpd xmm0, XMMWORD PTR b_hi$5[rbp], 0 - 0020b 0f 29 85 50 01 - 00 00 movaps XMMWORD PTR b$8[rbp], xmm0 - -; 217 : c_lo = _mm_add_pd(c_lo, _mm_mul_pd(a_lo, b)); - - 00212 0f 28 85 f0 00 - 00 00 movaps xmm0, XMMWORD PTR a_lo$6[rbp] - 00219 66 0f 59 85 50 - 01 00 00 mulpd xmm0, XMMWORD PTR b$8[rbp] - 00221 0f 28 4d 30 movaps xmm1, XMMWORD PTR c_lo$2[rbp] - 00225 66 0f 58 c8 addpd xmm1, xmm0 - 00229 0f 28 c1 movaps xmm0, xmm1 - 0022c 0f 29 45 30 movaps XMMWORD PTR c_lo$2[rbp], xmm0 - -; 218 : c_hi = _mm_add_pd(c_hi, _mm_mul_pd(a_hi, b)); - - 00230 0f 28 85 20 01 - 00 00 movaps xmm0, XMMWORD PTR a_hi$7[rbp] - 00237 66 0f 59 85 50 - 01 00 00 mulpd xmm0, XMMWORD PTR b$8[rbp] - 0023f 0f 28 4d 60 movaps xmm1, XMMWORD PTR c_hi$3[rbp] - 00243 66 0f 58 c8 addpd xmm1, xmm0 - 00247 0f 28 c1 movaps xmm0, xmm1 - 0024a 0f 29 45 60 movaps XMMWORD PTR c_hi$3[rbp], xmm0 - -; 219 : -; 220 : /* k = 3 */ -; 221 : a_lo = _mm_load_pd(left + (1 * 2 + 0)); - - 0024e 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR left$[rbp] - 00255 48 05 00 01 00 - 00 add rax, 256 ; 00000100H - 0025b 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 0025e 0f 29 85 f0 00 - 00 00 movaps XMMWORD PTR a_lo$6[rbp], xmm0 - -; 222 : a_hi = _mm_load_pd(left + (1 * 2 + 1)); - - 00265 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR left$[rbp] - 0026c 48 05 80 01 00 - 00 add rax, 384 ; 00000180H - 00272 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00275 0f 29 85 20 01 - 00 00 movaps XMMWORD PTR a_hi$7[rbp], xmm0 - -; 223 : b = _mm_shuffle_pd(b_hi, b_hi, 0x3); - - 0027c 0f 28 85 c0 00 - 00 00 movaps xmm0, XMMWORD PTR b_hi$5[rbp] - 00283 66 0f c6 85 c0 - 00 00 00 03 shufpd xmm0, XMMWORD PTR b_hi$5[rbp], 3 - 0028c 0f 29 85 50 01 - 00 00 movaps XMMWORD PTR b$8[rbp], xmm0 - -; 224 : c_lo = _mm_add_pd(c_lo, _mm_mul_pd(a_lo, b)); - - 00293 0f 28 85 f0 00 - 00 00 movaps xmm0, XMMWORD PTR a_lo$6[rbp] - 0029a 66 0f 59 85 50 - 01 00 00 mulpd xmm0, XMMWORD PTR b$8[rbp] - 002a2 0f 28 4d 30 movaps xmm1, XMMWORD PTR c_lo$2[rbp] - 002a6 66 0f 58 c8 addpd xmm1, xmm0 - 002aa 0f 28 c1 movaps xmm0, xmm1 - 002ad 0f 29 45 30 movaps XMMWORD PTR c_lo$2[rbp], xmm0 - -; 225 : c_hi = _mm_add_pd(c_hi, _mm_mul_pd(a_hi, b)); - - 002b1 0f 28 85 20 01 - 00 00 movaps xmm0, XMMWORD PTR a_hi$7[rbp] - 002b8 66 0f 59 85 50 - 01 00 00 mulpd xmm0, XMMWORD PTR b$8[rbp] - 002c0 0f 28 4d 60 movaps xmm1, XMMWORD PTR c_hi$3[rbp] - 002c4 66 0f 58 c8 addpd xmm1, xmm0 - 002c8 0f 28 c1 movaps xmm0, xmm1 - 002cb 0f 29 45 60 movaps XMMWORD PTR c_hi$3[rbp], xmm0 - -; 226 : -; 227 : ans->f64_x[col * 2 + 0] = c_lo; - - 002cf 8b 45 04 mov eax, DWORD PTR col$1[rbp] - 002d2 03 c0 add eax, eax - 002d4 48 98 cdqe - 002d6 48 6b c0 10 imul rax, rax, 16 - 002da 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 002e1 0f 28 45 30 movaps xmm0, XMMWORD PTR c_lo$2[rbp] - 002e5 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 - -; 228 : ans->f64_x[col * 2 + 1] = c_hi; - - 002e9 8b 45 04 mov eax, DWORD PTR col$1[rbp] - 002ec 8d 44 00 01 lea eax, DWORD PTR [rax+rax+1] - 002f0 48 98 cdqe - 002f2 48 6b c0 10 imul rax, rax, 16 - 002f6 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 002fd 0f 28 45 60 movaps xmm0, XMMWORD PTR c_hi$3[rbp] - 00301 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 - -; 229 : } - - 00305 e9 29 fd ff ff jmp $LN2@double_ker -$LN3@double_ker: - -; 230 : } - - 0030a 48 8d a5 38 02 - 00 00 lea rsp, QWORD PTR [rbp+568] - 00311 5f pop rdi - 00312 5d pop rbp - 00313 c3 ret 0 -double_kernel_fma_sse ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.fma.x86.c -; COMDAT float_kernel_fma_512 -_TEXT SEGMENT -a$ = 64 -b$ = 192 -c$ = 320 -a_perm0$ = 448 -b_perm0$ = 576 -a_perm1$ = 704 -b_perm1$ = 832 -a_perm2$ = 960 -b_perm2$ = 1088 -a_perm3$ = 1216 -b_perm3$ = 1344 -left$ = 2096 -right$ = 2104 -ans$ = 2112 -float_kernel_fma_512 PROC ; COMDAT - -; 153 : { - -$LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 41 55 push r13 - 00011 55 push rbp - 00012 57 push rdi - 00013 48 81 ec 30 08 - 00 00 sub rsp, 2096 ; 00000830H - 0001a 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 0001f 48 8d 6c 24 60 lea rbp, QWORD PTR [rsp+96] - 00024 48 83 e5 c0 and rbp, -64 ; ffffffffffffffc0H - 00028 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F8387F23_m@fma@x86@c - 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00034 90 npad 1 - -; 154 : static const __m512i b_shift = { .m512i_i32 = { -; 155 : // shuff order -; 156 : 0, 1, 2, 3, // col0 -; 157 : 5, 6, 7, 4, //col1 -; 158 : 10, 11, 8, 9, //col2 -; 159 : 15, 12, 13, 14 //col3 -; 160 : } }; -; 161 : -; 162 : register __m512 a = _mm512_load_ps((float *)left); - - 00035 49 8b 85 30 08 - 00 00 mov rax, QWORD PTR left$[r13] - 0003c 62 f1 7c 48 10 - 00 vmovups zmm0, ZMMWORD PTR [rax] - 00042 62 f1 7c 48 11 - 45 01 vmovups ZMMWORD PTR a$[rbp], zmm0 - -; 163 : register __m512 b = _mm512_load_ps((float *)right); - - 00049 49 8b 85 38 08 - 00 00 mov rax, QWORD PTR right$[r13] - 00050 62 f1 7c 48 10 - 00 vmovups zmm0, ZMMWORD PTR [rax] - 00056 62 f1 7c 48 11 - 45 03 vmovups ZMMWORD PTR b$[rbp], zmm0 - -; 164 : register __m512 c = _mm512_load_ps((float *)ans); - - 0005d 49 8b 85 40 08 - 00 00 mov rax, QWORD PTR ans$[r13] - 00064 62 f1 7c 48 10 - 00 vmovups zmm0, ZMMWORD PTR [rax] - 0006a 62 f1 7c 48 11 - 45 05 vmovups ZMMWORD PTR c$[rbp], zmm0 - -; 165 : -; 166 : b = _mm512_permutexvar_ps(b_shift, b); - - 00071 62 f1 7e 48 6f - 05 00 00 00 00 vmovdqu32 zmm0, ZMMWORD PTR ?b_shift@?1??float_kernel_fma_512@@9@9 - 0007b 62 f2 7d 48 16 - 45 03 vpermps zmm0, zmm0, ZMMWORD PTR b$[rbp] - 00082 62 f1 7c 48 11 - 45 03 vmovups ZMMWORD PTR b$[rbp], zmm0 - -; 167 : register __m512 a_perm0 = _mm512_shuffle_f32x4(a, a, _MM_SHUFFLE(3, 2, 1, 0)); - - 00089 62 f1 7c 48 10 - 45 01 vmovups zmm0, ZMMWORD PTR a$[rbp] - 00090 62 f3 7d 48 23 - 45 01 e4 vshuff32x4 zmm0, zmm0, ZMMWORD PTR a$[rbp], 228 ; 000000e4H - 00098 62 f1 7c 48 11 - 45 07 vmovups ZMMWORD PTR a_perm0$[rbp], zmm0 - -; 168 : register __m512 b_perm0 = _mm512_permute_ps(b, _FMA_SELECT(0)); - - 0009f 62 f3 7d 48 04 - 45 03 00 vpermilps zmm0, ZMMWORD PTR b$[rbp], 0 - 000a7 62 f1 7c 48 11 - 45 09 vmovups ZMMWORD PTR b_perm0$[rbp], zmm0 - -; 169 : c = _mm512_fmadd_ps(a_perm0, b_perm0, c); - - 000ae 62 f1 7c 48 10 - 45 07 vmovups zmm0, ZMMWORD PTR a_perm0$[rbp] - 000b5 62 f1 7c 48 10 - 4d 09 vmovups zmm1, ZMMWORD PTR b_perm0$[rbp] - 000bc 62 f2 75 48 a8 - 45 05 vfmadd213ps zmm0, zmm1, ZMMWORD PTR c$[rbp] - 000c3 62 f1 7c 48 11 - 45 05 vmovups ZMMWORD PTR c$[rbp], zmm0 - -; 170 : -; 171 : register __m512 a_perm1 = _mm512_shuffle_f32x4(a, a, _MM_SHUFFLE(2, 1, 0, 3)); - - 000ca 62 f1 7c 48 10 - 45 01 vmovups zmm0, ZMMWORD PTR a$[rbp] - 000d1 62 f3 7d 48 23 - 45 01 93 vshuff32x4 zmm0, zmm0, ZMMWORD PTR a$[rbp], 147 ; 00000093H - 000d9 62 f1 7c 48 11 - 45 0b vmovups ZMMWORD PTR a_perm1$[rbp], zmm0 - -; 172 : register __m512 b_perm1 = _mm512_permute_ps(b, _FMA_SELECT(1)); - - 000e0 62 f3 7d 48 04 - 45 03 55 vpermilps zmm0, ZMMWORD PTR b$[rbp], 85 ; 00000055H - 000e8 62 f1 7c 48 11 - 45 0d vmovups ZMMWORD PTR b_perm1$[rbp], zmm0 - -; 173 : c = _mm512_fmadd_ps(a_perm1, b_perm1, c); - - 000ef 62 f1 7c 48 10 - 45 0b vmovups zmm0, ZMMWORD PTR a_perm1$[rbp] - 000f6 62 f1 7c 48 10 - 4d 0d vmovups zmm1, ZMMWORD PTR b_perm1$[rbp] - 000fd 62 f2 75 48 a8 - 45 05 vfmadd213ps zmm0, zmm1, ZMMWORD PTR c$[rbp] - 00104 62 f1 7c 48 11 - 45 05 vmovups ZMMWORD PTR c$[rbp], zmm0 - -; 174 : -; 175 : register __m512 a_perm2 = _mm512_shuffle_f32x4(a, a, _MM_SHUFFLE(1, 0, 3, 2)); - - 0010b 62 f1 7c 48 10 - 45 01 vmovups zmm0, ZMMWORD PTR a$[rbp] - 00112 62 f3 7d 48 23 - 45 01 4e vshuff32x4 zmm0, zmm0, ZMMWORD PTR a$[rbp], 78 ; 0000004eH - 0011a 62 f1 7c 48 11 - 45 0f vmovups ZMMWORD PTR a_perm2$[rbp], zmm0 - -; 176 : register __m512 b_perm2 = _mm512_permute_ps(b, _FMA_SELECT(2)); - - 00121 62 f3 7d 48 04 - 45 03 aa vpermilps zmm0, ZMMWORD PTR b$[rbp], 170 ; 000000aaH - 00129 62 f1 7c 48 11 - 45 11 vmovups ZMMWORD PTR b_perm2$[rbp], zmm0 - -; 177 : c = _mm512_fmadd_ps(a_perm2, b_perm2, c); - - 00130 62 f1 7c 48 10 - 45 0f vmovups zmm0, ZMMWORD PTR a_perm2$[rbp] - 00137 62 f1 7c 48 10 - 4d 11 vmovups zmm1, ZMMWORD PTR b_perm2$[rbp] - 0013e 62 f2 75 48 a8 - 45 05 vfmadd213ps zmm0, zmm1, ZMMWORD PTR c$[rbp] - 00145 62 f1 7c 48 11 - 45 05 vmovups ZMMWORD PTR c$[rbp], zmm0 - -; 178 : -; 179 : register __m512 a_perm3 = _mm512_shuffle_f32x4(a, a, _MM_SHUFFLE(0, 3, 2, 1)); - - 0014c 62 f1 7c 48 10 - 45 01 vmovups zmm0, ZMMWORD PTR a$[rbp] - 00153 62 f3 7d 48 23 - 45 01 39 vshuff32x4 zmm0, zmm0, ZMMWORD PTR a$[rbp], 57 ; 00000039H - 0015b 62 f1 7c 48 11 - 45 13 vmovups ZMMWORD PTR a_perm3$[rbp], zmm0 - -; 180 : register __m512 b_perm3 = _mm512_permute_ps(b, _FMA_SELECT(3)); - - 00162 62 f3 7d 48 04 - 45 03 ff vpermilps zmm0, ZMMWORD PTR b$[rbp], 255 ; 000000ffH - 0016a 62 f1 7c 48 11 - 45 15 vmovups ZMMWORD PTR b_perm3$[rbp], zmm0 - -; 181 : c = _mm512_fmadd_ps(a_perm3, b_perm3, c); - - 00171 62 f1 7c 48 10 - 45 13 vmovups zmm0, ZMMWORD PTR a_perm3$[rbp] - 00178 62 f1 7c 48 10 - 4d 15 vmovups zmm1, ZMMWORD PTR b_perm3$[rbp] - 0017f 62 f2 75 48 a8 - 45 05 vfmadd213ps zmm0, zmm1, ZMMWORD PTR c$[rbp] - 00186 62 f1 7c 48 11 - 45 05 vmovups ZMMWORD PTR c$[rbp], zmm0 - -; 182 : -; 183 : _mm512_store_ps((float *)ans, c); - - 0018d 49 8b 85 40 08 - 00 00 mov rax, QWORD PTR ans$[r13] - 00194 62 f1 7c 48 10 - 45 05 vmovups zmm0, ZMMWORD PTR c$[rbp] - 0019b 62 f1 7c 48 11 - 00 vmovups ZMMWORD PTR [rax], zmm0 - -; 184 : } - - 001a1 49 8d a5 10 08 - 00 00 lea rsp, QWORD PTR [r13+2064] - 001a8 5f pop rdi - 001a9 5d pop rbp - 001aa 41 5d pop r13 - 001ac c3 ret 0 -float_kernel_fma_512 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.fma.x86.c -; COMDAT float_kernel_fma_avx_fma -_TEXT SEGMENT -a01$ = 32 -a23$ = 96 -b01$ = 160 -b23$ = 224 -c01$ = 288 -c23$ = 352 -b01_perm$ = 416 -b23_perm$ = 480 -a12$ = 544 -a30$ = 608 -left$ = 1104 -right$ = 1112 -ans$ = 1120 -float_kernel_fma_avx_fma PROC ; COMDAT - -; 107 : { - -$LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 41 55 push r13 - 00011 55 push rbp - 00012 57 push rdi - 00013 48 81 ec 50 04 - 00 00 sub rsp, 1104 ; 00000450H - 0001a 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 0001f 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00024 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H - 00028 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F8387F23_m@fma@x86@c - 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00034 90 npad 1 - -; 108 : static const __m256i b01_shift = { .m256i_i32 = { 0, 1, 2, 3, 5, 6, 7, 4 } }; -; 109 : static const __m256i b23_shift = { .m256i_i32 = { 2, 3, 0, 1, 7, 4, 5, 6 } }; -; 110 : -; 111 : register __m256 a01 = _mm256_load_ps((float *)&left->f32_y[0]); - - 00035 b8 20 00 00 00 mov eax, 32 ; 00000020H - 0003a 48 6b c0 00 imul rax, rax, 0 - 0003e 49 8b 8d 50 04 - 00 00 mov rcx, QWORD PTR left$[r13] - 00045 48 03 c8 add rcx, rax - 00048 48 8b c1 mov rax, rcx - 0004b c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 0004f c5 fc 11 45 20 vmovups YMMWORD PTR a01$[rbp], ymm0 - -; 112 : register __m256 a23 = _mm256_load_ps((float *)&left->f32_y[1]); - - 00054 b8 20 00 00 00 mov eax, 32 ; 00000020H - 00059 48 6b c0 01 imul rax, rax, 1 - 0005d 49 8b 8d 50 04 - 00 00 mov rcx, QWORD PTR left$[r13] - 00064 48 03 c8 add rcx, rax - 00067 48 8b c1 mov rax, rcx - 0006a c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 0006e c5 fc 11 45 60 vmovups YMMWORD PTR a23$[rbp], ymm0 - -; 113 : -; 114 : register __m256 b01 = _mm256_load_ps((float *)&right->f32_y[0]); - - 00073 b8 20 00 00 00 mov eax, 32 ; 00000020H - 00078 48 6b c0 00 imul rax, rax, 0 - 0007c 49 8b 8d 58 04 - 00 00 mov rcx, QWORD PTR right$[r13] - 00083 48 03 c8 add rcx, rax - 00086 48 8b c1 mov rax, rcx - 00089 c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 0008d c5 fc 11 85 a0 - 00 00 00 vmovups YMMWORD PTR b01$[rbp], ymm0 - -; 115 : register __m256 b23 = _mm256_load_ps((float *)&right->f32_y[1]); - - 00095 b8 20 00 00 00 mov eax, 32 ; 00000020H - 0009a 48 6b c0 01 imul rax, rax, 1 - 0009e 49 8b 8d 58 04 - 00 00 mov rcx, QWORD PTR right$[r13] - 000a5 48 03 c8 add rcx, rax - 000a8 48 8b c1 mov rax, rcx - 000ab c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 000af c5 fc 11 85 e0 - 00 00 00 vmovups YMMWORD PTR b23$[rbp], ymm0 - -; 116 : b01 = _mm256_permutevar_ps(b01, b01_shift); - - 000b7 c5 fc 10 85 a0 - 00 00 00 vmovups ymm0, YMMWORD PTR b01$[rbp] - 000bf c4 e2 7d 0c 05 - 00 00 00 00 vpermilps ymm0, ymm0, YMMWORD PTR ?b01_shift@?1??float_kernel_fma_avx_fma@@9@9 - 000c8 c5 fc 11 85 a0 - 00 00 00 vmovups YMMWORD PTR b01$[rbp], ymm0 - -; 117 : b23 = _mm256_permutevar_ps(b23, b23_shift); - - 000d0 c5 fc 10 85 e0 - 00 00 00 vmovups ymm0, YMMWORD PTR b23$[rbp] - 000d8 c4 e2 7d 0c 05 - 00 00 00 00 vpermilps ymm0, ymm0, YMMWORD PTR ?b23_shift@?1??float_kernel_fma_avx_fma@@9@9 - 000e1 c5 fc 11 85 e0 - 00 00 00 vmovups YMMWORD PTR b23$[rbp], ymm0 - -; 118 : -; 119 : register __m256 c01 = _mm256_load_ps((float *)&ans->f32_y[0]); - - 000e9 b8 20 00 00 00 mov eax, 32 ; 00000020H - 000ee 48 6b c0 00 imul rax, rax, 0 - 000f2 49 8b 8d 60 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000f9 48 03 c8 add rcx, rax - 000fc 48 8b c1 mov rax, rcx - 000ff c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 00103 c5 fc 11 85 20 - 01 00 00 vmovups YMMWORD PTR c01$[rbp], ymm0 - -; 120 : register __m256 c23 = _mm256_load_ps((float *)&ans->f32_y[1]); - - 0010b b8 20 00 00 00 mov eax, 32 ; 00000020H - 00110 48 6b c0 01 imul rax, rax, 1 - 00114 49 8b 8d 60 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 0011b 48 03 c8 add rcx, rax - 0011e 48 8b c1 mov rax, rcx - 00121 c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 00125 c5 fc 11 85 60 - 01 00 00 vmovups YMMWORD PTR c23$[rbp], ymm0 - -; 121 : -; 122 : //group 0 -; 123 : register __m256 b01_perm = _mm256_shuffle_ps(b01, b01, _FMA_SELECT(0)); - - 0012d c5 fc 10 85 a0 - 00 00 00 vmovups ymm0, YMMWORD PTR b01$[rbp] - 00135 c5 fc c6 85 a0 - 00 00 00 00 vshufps ymm0, ymm0, YMMWORD PTR b01$[rbp], 0 - 0013e c5 fc 11 85 a0 - 01 00 00 vmovups YMMWORD PTR b01_perm$[rbp], ymm0 - -; 124 : register __m256 b23_perm = _mm256_shuffle_ps(b23, b23, _FMA_SELECT(0)); - - 00146 c5 fc 10 85 e0 - 00 00 00 vmovups ymm0, YMMWORD PTR b23$[rbp] - 0014e c5 fc c6 85 e0 - 00 00 00 00 vshufps ymm0, ymm0, YMMWORD PTR b23$[rbp], 0 - 00157 c5 fc 11 85 e0 - 01 00 00 vmovups YMMWORD PTR b23_perm$[rbp], ymm0 - -; 125 : c01 = _mm256_fmadd_ps(a01, b01_perm, c01); - - 0015f c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR a01$[rbp] - 00164 c5 fc 10 8d a0 - 01 00 00 vmovups ymm1, YMMWORD PTR b01_perm$[rbp] - 0016c c4 e2 75 a8 85 - 20 01 00 00 vfmadd213ps ymm0, ymm1, YMMWORD PTR c01$[rbp] - 00175 c5 fc 11 85 20 - 01 00 00 vmovups YMMWORD PTR c01$[rbp], ymm0 - -; 126 : c23 = _mm256_fmadd_ps(a23, b23_perm, c23); - - 0017d c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR a23$[rbp] - 00182 c5 fc 10 8d e0 - 01 00 00 vmovups ymm1, YMMWORD PTR b23_perm$[rbp] - 0018a c4 e2 75 a8 85 - 60 01 00 00 vfmadd213ps ymm0, ymm1, YMMWORD PTR c23$[rbp] - 00193 c5 fc 11 85 60 - 01 00 00 vmovups YMMWORD PTR c23$[rbp], ymm0 - -; 127 : -; 128 : //group 2 -; 129 : b01_perm = _mm256_shuffle_ps(b01, b01, _FMA_SELECT(2)); - - 0019b c5 fc 10 85 a0 - 00 00 00 vmovups ymm0, YMMWORD PTR b01$[rbp] - 001a3 c5 fc c6 85 a0 - 00 00 00 aa vshufps ymm0, ymm0, YMMWORD PTR b01$[rbp], 170 ; 000000aaH - 001ac c5 fc 11 85 a0 - 01 00 00 vmovups YMMWORD PTR b01_perm$[rbp], ymm0 - -; 130 : b23_perm = _mm256_shuffle_ps(b23, b23, _FMA_SELECT(2)); - - 001b4 c5 fc 10 85 e0 - 00 00 00 vmovups ymm0, YMMWORD PTR b23$[rbp] - 001bc c5 fc c6 85 e0 - 00 00 00 aa vshufps ymm0, ymm0, YMMWORD PTR b23$[rbp], 170 ; 000000aaH - 001c5 c5 fc 11 85 e0 - 01 00 00 vmovups YMMWORD PTR b23_perm$[rbp], ymm0 - -; 131 : c01 = _mm256_fmadd_ps(a23, b01_perm, c01); - - 001cd c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR a23$[rbp] - 001d2 c5 fc 10 8d a0 - 01 00 00 vmovups ymm1, YMMWORD PTR b01_perm$[rbp] - 001da c4 e2 75 a8 85 - 20 01 00 00 vfmadd213ps ymm0, ymm1, YMMWORD PTR c01$[rbp] - 001e3 c5 fc 11 85 20 - 01 00 00 vmovups YMMWORD PTR c01$[rbp], ymm0 - -; 132 : c23 = _mm256_fmadd_ps(a01, b23_perm, c23); - - 001eb c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR a01$[rbp] - 001f0 c5 fc 10 8d e0 - 01 00 00 vmovups ymm1, YMMWORD PTR b23_perm$[rbp] - 001f8 c4 e2 75 a8 85 - 60 01 00 00 vfmadd213ps ymm0, ymm1, YMMWORD PTR c23$[rbp] - 00201 c5 fc 11 85 60 - 01 00 00 vmovups YMMWORD PTR c23$[rbp], ymm0 - -; 133 : -; 134 : //group 1 -; 135 : register __m256 a12 = _mm256_permute2f128_ps(a01, a23, 0x21); - - 00209 c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR a01$[rbp] - 0020e c4 e3 7d 06 45 - 60 21 vperm2f128 ymm0, ymm0, YMMWORD PTR a23$[rbp], 33 ; 00000021H - 00215 c5 fc 11 85 20 - 02 00 00 vmovups YMMWORD PTR a12$[rbp], ymm0 - -; 136 : register __m256 a30 = _mm256_permute2f128_ps(a01, a23, 0x30); - - 0021d c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR a01$[rbp] - 00222 c4 e3 7d 06 45 - 60 30 vperm2f128 ymm0, ymm0, YMMWORD PTR a23$[rbp], 48 ; 00000030H - 00229 c5 fc 11 85 60 - 02 00 00 vmovups YMMWORD PTR a30$[rbp], ymm0 - -; 137 : b01_perm = _mm256_shuffle_ps(b01, b01, _FMA_SELECT(1)); - - 00231 c5 fc 10 85 a0 - 00 00 00 vmovups ymm0, YMMWORD PTR b01$[rbp] - 00239 c5 fc c6 85 a0 - 00 00 00 55 vshufps ymm0, ymm0, YMMWORD PTR b01$[rbp], 85 ; 00000055H - 00242 c5 fc 11 85 a0 - 01 00 00 vmovups YMMWORD PTR b01_perm$[rbp], ymm0 - -; 138 : b23_perm = _mm256_shuffle_ps(b23, b23, _FMA_SELECT(1)); - - 0024a c5 fc 10 85 e0 - 00 00 00 vmovups ymm0, YMMWORD PTR b23$[rbp] - 00252 c5 fc c6 85 e0 - 00 00 00 55 vshufps ymm0, ymm0, YMMWORD PTR b23$[rbp], 85 ; 00000055H - 0025b c5 fc 11 85 e0 - 01 00 00 vmovups YMMWORD PTR b23_perm$[rbp], ymm0 - -; 139 : c01 = _mm256_fmadd_ps(a12, b01_perm, c01); - - 00263 c5 fc 10 85 20 - 02 00 00 vmovups ymm0, YMMWORD PTR a12$[rbp] - 0026b c5 fc 10 8d a0 - 01 00 00 vmovups ymm1, YMMWORD PTR b01_perm$[rbp] - 00273 c4 e2 75 a8 85 - 20 01 00 00 vfmadd213ps ymm0, ymm1, YMMWORD PTR c01$[rbp] - 0027c c5 fc 11 85 20 - 01 00 00 vmovups YMMWORD PTR c01$[rbp], ymm0 - -; 140 : c23 = _mm256_fmadd_ps(a30, b23_perm, c23); - - 00284 c5 fc 10 85 60 - 02 00 00 vmovups ymm0, YMMWORD PTR a30$[rbp] - 0028c c5 fc 10 8d e0 - 01 00 00 vmovups ymm1, YMMWORD PTR b23_perm$[rbp] - 00294 c4 e2 75 a8 85 - 60 01 00 00 vfmadd213ps ymm0, ymm1, YMMWORD PTR c23$[rbp] - 0029d c5 fc 11 85 60 - 01 00 00 vmovups YMMWORD PTR c23$[rbp], ymm0 - -; 141 : -; 142 : //group 3 -; 143 : b01_perm = _mm256_shuffle_ps(b01, b01, _FMA_SELECT(3)); - - 002a5 c5 fc 10 85 a0 - 00 00 00 vmovups ymm0, YMMWORD PTR b01$[rbp] - 002ad c5 fc c6 85 a0 - 00 00 00 ff vshufps ymm0, ymm0, YMMWORD PTR b01$[rbp], 255 ; 000000ffH - 002b6 c5 fc 11 85 a0 - 01 00 00 vmovups YMMWORD PTR b01_perm$[rbp], ymm0 - -; 144 : b23_perm = _mm256_shuffle_ps(b23, b23, _FMA_SELECT(3)); - - 002be c5 fc 10 85 e0 - 00 00 00 vmovups ymm0, YMMWORD PTR b23$[rbp] - 002c6 c5 fc c6 85 e0 - 00 00 00 ff vshufps ymm0, ymm0, YMMWORD PTR b23$[rbp], 255 ; 000000ffH - 002cf c5 fc 11 85 e0 - 01 00 00 vmovups YMMWORD PTR b23_perm$[rbp], ymm0 - -; 145 : c01 = _mm256_fmadd_ps(a30, b01_perm, c01); - - 002d7 c5 fc 10 85 60 - 02 00 00 vmovups ymm0, YMMWORD PTR a30$[rbp] - 002df c5 fc 10 8d a0 - 01 00 00 vmovups ymm1, YMMWORD PTR b01_perm$[rbp] - 002e7 c4 e2 75 a8 85 - 20 01 00 00 vfmadd213ps ymm0, ymm1, YMMWORD PTR c01$[rbp] - 002f0 c5 fc 11 85 20 - 01 00 00 vmovups YMMWORD PTR c01$[rbp], ymm0 - -; 146 : c23 = _mm256_fmadd_ps(a12, b23_perm, c23); - - 002f8 c5 fc 10 85 20 - 02 00 00 vmovups ymm0, YMMWORD PTR a12$[rbp] - 00300 c5 fc 10 8d e0 - 01 00 00 vmovups ymm1, YMMWORD PTR b23_perm$[rbp] - 00308 c4 e2 75 a8 85 - 60 01 00 00 vfmadd213ps ymm0, ymm1, YMMWORD PTR c23$[rbp] - 00311 c5 fc 11 85 60 - 01 00 00 vmovups YMMWORD PTR c23$[rbp], ymm0 - -; 147 : -; 148 : ans->f32_y[0] = c01; - - 00319 b8 20 00 00 00 mov eax, 32 ; 00000020H - 0031e 48 6b c0 00 imul rax, rax, 0 - 00322 49 8b 8d 60 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00329 c5 fc 10 85 20 - 01 00 00 vmovups ymm0, YMMWORD PTR c01$[rbp] - 00331 c5 fc 11 04 01 vmovups YMMWORD PTR [rcx+rax], ymm0 - -; 149 : ans->f32_y[1] = c23; - - 00336 b8 20 00 00 00 mov eax, 32 ; 00000020H - 0033b 48 6b c0 01 imul rax, rax, 1 - 0033f 49 8b 8d 60 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00346 c5 fc 10 85 60 - 01 00 00 vmovups ymm0, YMMWORD PTR c23$[rbp] - 0034e c5 fc 11 04 01 vmovups YMMWORD PTR [rcx+rax], ymm0 - -; 150 : } - - 00353 49 8d a5 30 04 - 00 00 lea rsp, QWORD PTR [r13+1072] - 0035a 5f pop rdi - 0035b 5d pop rbp - 0035c 41 5d pop r13 - 0035e c3 ret 0 -float_kernel_fma_avx_fma ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.fma.x86.c -; COMDAT float_kernel_fma_avx -_TEXT SEGMENT -a01$ = 32 -a23$ = 96 -b01$ = 160 -b23$ = 224 -c01$ = 288 -c23$ = 352 -b01_perm$ = 416 -b23_perm$ = 480 -a12$ = 544 -a30$ = 608 -left$ = 1104 -right$ = 1112 -ans$ = 1120 -float_kernel_fma_avx PROC ; COMDAT - -; 61 : { - -$LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 41 55 push r13 - 00011 55 push rbp - 00012 57 push rdi - 00013 48 81 ec 50 04 - 00 00 sub rsp, 1104 ; 00000450H - 0001a 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 0001f 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00024 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H - 00028 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F8387F23_m@fma@x86@c - 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00034 90 npad 1 - -; 62 : static const __m256i b01_shift = { .m256i_i32 = { 0, 1, 2, 3, 5, 6, 7, 4 } }; -; 63 : static const __m256i b23_shift = { .m256i_i32 = { 2, 3, 0, 1, 7, 4, 5, 6 } }; -; 64 : -; 65 : register __m256 a01 = _mm256_load_ps((float *)&left->f32_y[0]); - - 00035 b8 20 00 00 00 mov eax, 32 ; 00000020H - 0003a 48 6b c0 00 imul rax, rax, 0 - 0003e 49 8b 8d 50 04 - 00 00 mov rcx, QWORD PTR left$[r13] - 00045 48 03 c8 add rcx, rax - 00048 48 8b c1 mov rax, rcx - 0004b c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 0004f c5 fc 11 45 20 vmovups YMMWORD PTR a01$[rbp], ymm0 - -; 66 : register __m256 a23 = _mm256_load_ps((float *)&left->f32_y[1]); - - 00054 b8 20 00 00 00 mov eax, 32 ; 00000020H - 00059 48 6b c0 01 imul rax, rax, 1 - 0005d 49 8b 8d 50 04 - 00 00 mov rcx, QWORD PTR left$[r13] - 00064 48 03 c8 add rcx, rax - 00067 48 8b c1 mov rax, rcx - 0006a c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 0006e c5 fc 11 45 60 vmovups YMMWORD PTR a23$[rbp], ymm0 - -; 67 : -; 68 : register __m256 b01 = _mm256_load_ps((float *)&right->f32_y[0]); - - 00073 b8 20 00 00 00 mov eax, 32 ; 00000020H - 00078 48 6b c0 00 imul rax, rax, 0 - 0007c 49 8b 8d 58 04 - 00 00 mov rcx, QWORD PTR right$[r13] - 00083 48 03 c8 add rcx, rax - 00086 48 8b c1 mov rax, rcx - 00089 c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 0008d c5 fc 11 85 a0 - 00 00 00 vmovups YMMWORD PTR b01$[rbp], ymm0 - -; 69 : register __m256 b23 = _mm256_load_ps((float *)&right->f32_y[1]); - - 00095 b8 20 00 00 00 mov eax, 32 ; 00000020H - 0009a 48 6b c0 01 imul rax, rax, 1 - 0009e 49 8b 8d 58 04 - 00 00 mov rcx, QWORD PTR right$[r13] - 000a5 48 03 c8 add rcx, rax - 000a8 48 8b c1 mov rax, rcx - 000ab c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 000af c5 fc 11 85 e0 - 00 00 00 vmovups YMMWORD PTR b23$[rbp], ymm0 - -; 70 : b01 = _mm256_permutevar_ps(b01, b01_shift); - - 000b7 c5 fc 10 85 a0 - 00 00 00 vmovups ymm0, YMMWORD PTR b01$[rbp] - 000bf c4 e2 7d 0c 05 - 00 00 00 00 vpermilps ymm0, ymm0, YMMWORD PTR ?b01_shift@?1??float_kernel_fma_avx@@9@9 - 000c8 c5 fc 11 85 a0 - 00 00 00 vmovups YMMWORD PTR b01$[rbp], ymm0 - -; 71 : b23 = _mm256_permutevar_ps(b23, b23_shift); - - 000d0 c5 fc 10 85 e0 - 00 00 00 vmovups ymm0, YMMWORD PTR b23$[rbp] - 000d8 c4 e2 7d 0c 05 - 00 00 00 00 vpermilps ymm0, ymm0, YMMWORD PTR ?b23_shift@?1??float_kernel_fma_avx@@9@9 - 000e1 c5 fc 11 85 e0 - 00 00 00 vmovups YMMWORD PTR b23$[rbp], ymm0 - -; 72 : -; 73 : register __m256 c01 = _mm256_load_ps((float *)&ans->f32_y[0]); - - 000e9 b8 20 00 00 00 mov eax, 32 ; 00000020H - 000ee 48 6b c0 00 imul rax, rax, 0 - 000f2 49 8b 8d 60 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000f9 48 03 c8 add rcx, rax - 000fc 48 8b c1 mov rax, rcx - 000ff c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 00103 c5 fc 11 85 20 - 01 00 00 vmovups YMMWORD PTR c01$[rbp], ymm0 - -; 74 : register __m256 c23 = _mm256_load_ps((float *)&ans->f32_y[1]); - - 0010b b8 20 00 00 00 mov eax, 32 ; 00000020H - 00110 48 6b c0 01 imul rax, rax, 1 - 00114 49 8b 8d 60 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 0011b 48 03 c8 add rcx, rax - 0011e 48 8b c1 mov rax, rcx - 00121 c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 00125 c5 fc 11 85 60 - 01 00 00 vmovups YMMWORD PTR c23$[rbp], ymm0 - -; 75 : -; 76 : //group 0 -; 77 : register __m256 b01_perm = _mm256_shuffle_ps(b01, b01, _FMA_SELECT(0)); - - 0012d c5 fc 10 85 a0 - 00 00 00 vmovups ymm0, YMMWORD PTR b01$[rbp] - 00135 c5 fc c6 85 a0 - 00 00 00 00 vshufps ymm0, ymm0, YMMWORD PTR b01$[rbp], 0 - 0013e c5 fc 11 85 a0 - 01 00 00 vmovups YMMWORD PTR b01_perm$[rbp], ymm0 - -; 78 : register __m256 b23_perm = _mm256_shuffle_ps(b23, b23, _FMA_SELECT(0)); - - 00146 c5 fc 10 85 e0 - 00 00 00 vmovups ymm0, YMMWORD PTR b23$[rbp] - 0014e c5 fc c6 85 e0 - 00 00 00 00 vshufps ymm0, ymm0, YMMWORD PTR b23$[rbp], 0 - 00157 c5 fc 11 85 e0 - 01 00 00 vmovups YMMWORD PTR b23_perm$[rbp], ymm0 - -; 79 : c01 = _mm256_add_ps(_mm256_mul_ps(a01, b01_perm), c01); - - 0015f c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR a01$[rbp] - 00164 c5 fc 59 85 a0 - 01 00 00 vmulps ymm0, ymm0, YMMWORD PTR b01_perm$[rbp] - 0016c c5 fc 58 85 20 - 01 00 00 vaddps ymm0, ymm0, YMMWORD PTR c01$[rbp] - 00174 c5 fc 11 85 20 - 01 00 00 vmovups YMMWORD PTR c01$[rbp], ymm0 - -; 80 : c23 = _mm256_add_ps(_mm256_mul_ps(a23, b23_perm), c23); - - 0017c c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR a23$[rbp] - 00181 c5 fc 59 85 e0 - 01 00 00 vmulps ymm0, ymm0, YMMWORD PTR b23_perm$[rbp] - 00189 c5 fc 58 85 60 - 01 00 00 vaddps ymm0, ymm0, YMMWORD PTR c23$[rbp] - 00191 c5 fc 11 85 60 - 01 00 00 vmovups YMMWORD PTR c23$[rbp], ymm0 - -; 81 : -; 82 : //group 2 -; 83 : b01_perm = _mm256_shuffle_ps(b01, b01, _FMA_SELECT(2)); - - 00199 c5 fc 10 85 a0 - 00 00 00 vmovups ymm0, YMMWORD PTR b01$[rbp] - 001a1 c5 fc c6 85 a0 - 00 00 00 aa vshufps ymm0, ymm0, YMMWORD PTR b01$[rbp], 170 ; 000000aaH - 001aa c5 fc 11 85 a0 - 01 00 00 vmovups YMMWORD PTR b01_perm$[rbp], ymm0 - -; 84 : b23_perm = _mm256_shuffle_ps(b23, b23, _FMA_SELECT(2)); - - 001b2 c5 fc 10 85 e0 - 00 00 00 vmovups ymm0, YMMWORD PTR b23$[rbp] - 001ba c5 fc c6 85 e0 - 00 00 00 aa vshufps ymm0, ymm0, YMMWORD PTR b23$[rbp], 170 ; 000000aaH - 001c3 c5 fc 11 85 e0 - 01 00 00 vmovups YMMWORD PTR b23_perm$[rbp], ymm0 - -; 85 : c01 = _mm256_add_ps(_mm256_mul_ps(a23, b01_perm), c01); - - 001cb c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR a23$[rbp] - 001d0 c5 fc 59 85 a0 - 01 00 00 vmulps ymm0, ymm0, YMMWORD PTR b01_perm$[rbp] - 001d8 c5 fc 58 85 20 - 01 00 00 vaddps ymm0, ymm0, YMMWORD PTR c01$[rbp] - 001e0 c5 fc 11 85 20 - 01 00 00 vmovups YMMWORD PTR c01$[rbp], ymm0 - -; 86 : c23 = _mm256_add_ps(_mm256_mul_ps(a01, b23_perm), c23); - - 001e8 c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR a01$[rbp] - 001ed c5 fc 59 85 e0 - 01 00 00 vmulps ymm0, ymm0, YMMWORD PTR b23_perm$[rbp] - 001f5 c5 fc 58 85 60 - 01 00 00 vaddps ymm0, ymm0, YMMWORD PTR c23$[rbp] - 001fd c5 fc 11 85 60 - 01 00 00 vmovups YMMWORD PTR c23$[rbp], ymm0 - -; 87 : -; 88 : //group 1 -; 89 : register __m256 a12 = _mm256_permute2f128_ps(a01, a23, 0x21); - - 00205 c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR a01$[rbp] - 0020a c4 e3 7d 06 45 - 60 21 vperm2f128 ymm0, ymm0, YMMWORD PTR a23$[rbp], 33 ; 00000021H - 00211 c5 fc 11 85 20 - 02 00 00 vmovups YMMWORD PTR a12$[rbp], ymm0 - -; 90 : register __m256 a30 = _mm256_permute2f128_ps(a01, a23, 0x30); - - 00219 c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR a01$[rbp] - 0021e c4 e3 7d 06 45 - 60 30 vperm2f128 ymm0, ymm0, YMMWORD PTR a23$[rbp], 48 ; 00000030H - 00225 c5 fc 11 85 60 - 02 00 00 vmovups YMMWORD PTR a30$[rbp], ymm0 - -; 91 : b01_perm = _mm256_shuffle_ps(b01, b01, _FMA_SELECT(1)); - - 0022d c5 fc 10 85 a0 - 00 00 00 vmovups ymm0, YMMWORD PTR b01$[rbp] - 00235 c5 fc c6 85 a0 - 00 00 00 55 vshufps ymm0, ymm0, YMMWORD PTR b01$[rbp], 85 ; 00000055H - 0023e c5 fc 11 85 a0 - 01 00 00 vmovups YMMWORD PTR b01_perm$[rbp], ymm0 - -; 92 : b23_perm = _mm256_shuffle_ps(b23, b23, _FMA_SELECT(1)); - - 00246 c5 fc 10 85 e0 - 00 00 00 vmovups ymm0, YMMWORD PTR b23$[rbp] - 0024e c5 fc c6 85 e0 - 00 00 00 55 vshufps ymm0, ymm0, YMMWORD PTR b23$[rbp], 85 ; 00000055H - 00257 c5 fc 11 85 e0 - 01 00 00 vmovups YMMWORD PTR b23_perm$[rbp], ymm0 - -; 93 : c01 = _mm256_add_ps(_mm256_mul_ps(a12, b01_perm), c01); - - 0025f c5 fc 10 85 20 - 02 00 00 vmovups ymm0, YMMWORD PTR a12$[rbp] - 00267 c5 fc 59 85 a0 - 01 00 00 vmulps ymm0, ymm0, YMMWORD PTR b01_perm$[rbp] - 0026f c5 fc 58 85 20 - 01 00 00 vaddps ymm0, ymm0, YMMWORD PTR c01$[rbp] - 00277 c5 fc 11 85 20 - 01 00 00 vmovups YMMWORD PTR c01$[rbp], ymm0 - -; 94 : c23 = _mm256_add_ps(_mm256_mul_ps(a30, b23_perm), c23); - - 0027f c5 fc 10 85 60 - 02 00 00 vmovups ymm0, YMMWORD PTR a30$[rbp] - 00287 c5 fc 59 85 e0 - 01 00 00 vmulps ymm0, ymm0, YMMWORD PTR b23_perm$[rbp] - 0028f c5 fc 58 85 60 - 01 00 00 vaddps ymm0, ymm0, YMMWORD PTR c23$[rbp] - 00297 c5 fc 11 85 60 - 01 00 00 vmovups YMMWORD PTR c23$[rbp], ymm0 - -; 95 : -; 96 : //group 3 -; 97 : b01_perm = _mm256_shuffle_ps(b01, b01, _FMA_SELECT(3)); - - 0029f c5 fc 10 85 a0 - 00 00 00 vmovups ymm0, YMMWORD PTR b01$[rbp] - 002a7 c5 fc c6 85 a0 - 00 00 00 ff vshufps ymm0, ymm0, YMMWORD PTR b01$[rbp], 255 ; 000000ffH - 002b0 c5 fc 11 85 a0 - 01 00 00 vmovups YMMWORD PTR b01_perm$[rbp], ymm0 - -; 98 : b23_perm = _mm256_shuffle_ps(b23, b23, _FMA_SELECT(3)); - - 002b8 c5 fc 10 85 e0 - 00 00 00 vmovups ymm0, YMMWORD PTR b23$[rbp] - 002c0 c5 fc c6 85 e0 - 00 00 00 ff vshufps ymm0, ymm0, YMMWORD PTR b23$[rbp], 255 ; 000000ffH - 002c9 c5 fc 11 85 e0 - 01 00 00 vmovups YMMWORD PTR b23_perm$[rbp], ymm0 - -; 99 : c01 = _mm256_add_ps(_mm256_mul_ps(a30, b01_perm), c01); - - 002d1 c5 fc 10 85 60 - 02 00 00 vmovups ymm0, YMMWORD PTR a30$[rbp] - 002d9 c5 fc 59 85 a0 - 01 00 00 vmulps ymm0, ymm0, YMMWORD PTR b01_perm$[rbp] - 002e1 c5 fc 58 85 20 - 01 00 00 vaddps ymm0, ymm0, YMMWORD PTR c01$[rbp] - 002e9 c5 fc 11 85 20 - 01 00 00 vmovups YMMWORD PTR c01$[rbp], ymm0 - -; 100 : c23 = _mm256_add_ps(_mm256_mul_ps(a12, b23_perm), c23); - - 002f1 c5 fc 10 85 20 - 02 00 00 vmovups ymm0, YMMWORD PTR a12$[rbp] - 002f9 c5 fc 59 85 e0 - 01 00 00 vmulps ymm0, ymm0, YMMWORD PTR b23_perm$[rbp] - 00301 c5 fc 58 85 60 - 01 00 00 vaddps ymm0, ymm0, YMMWORD PTR c23$[rbp] - 00309 c5 fc 11 85 60 - 01 00 00 vmovups YMMWORD PTR c23$[rbp], ymm0 - -; 101 : -; 102 : ans->f32_y[0] = c01; - - 00311 b8 20 00 00 00 mov eax, 32 ; 00000020H - 00316 48 6b c0 00 imul rax, rax, 0 - 0031a 49 8b 8d 60 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00321 c5 fc 10 85 20 - 01 00 00 vmovups ymm0, YMMWORD PTR c01$[rbp] - 00329 c5 fc 11 04 01 vmovups YMMWORD PTR [rcx+rax], ymm0 - -; 103 : ans->f32_y[1] = c23; - - 0032e b8 20 00 00 00 mov eax, 32 ; 00000020H - 00333 48 6b c0 01 imul rax, rax, 1 - 00337 49 8b 8d 60 04 - 00 00 mov rcx, QWORD PTR ans$[r13] - 0033e c5 fc 10 85 60 - 01 00 00 vmovups ymm0, YMMWORD PTR c23$[rbp] - 00346 c5 fc 11 04 01 vmovups YMMWORD PTR [rcx+rax], ymm0 - -; 104 : } - - 0034b 49 8d a5 30 04 - 00 00 lea rsp, QWORD PTR [r13+1072] - 00352 5f pop rdi - 00353 5d pop rbp - 00354 41 5d pop r13 - 00356 c3 ret 0 -float_kernel_fma_avx ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.fma.x86.c -; COMDAT float_kernel_fma_sse -_TEXT SEGMENT -a0$ = 16 -a1$ = 64 -a2$ = 112 -a3$ = 160 -c0$ = 208 -c1$ = 256 -c2$ = 304 -c3$ = 352 -bcol$ = 400 -left$ = 656 -right$ = 664 -ans$ = 672 -float_kernel_fma_sse PROC ; COMDAT - -; 13 : { - -$LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec 98 02 - 00 00 sub rsp, 664 ; 00000298H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F8387F23_m@fma@x86@c - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 90 npad 1 - -; 14 : const __m128 a0 = _mm_load_ps((float *)&left->f32_x[0]); - - 0002a b8 10 00 00 00 mov eax, 16 - 0002f 48 6b c0 00 imul rax, rax, 0 - 00033 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR left$[rbp] - 0003a 48 03 c8 add rcx, rax - 0003d 48 8b c1 mov rax, rcx - 00040 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00043 0f 29 45 10 movaps XMMWORD PTR a0$[rbp], xmm0 - -; 15 : const __m128 a1 = _mm_load_ps((float *)&left->f32_x[1]); - - 00047 b8 10 00 00 00 mov eax, 16 - 0004c 48 6b c0 01 imul rax, rax, 1 - 00050 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR left$[rbp] - 00057 48 03 c8 add rcx, rax - 0005a 48 8b c1 mov rax, rcx - 0005d 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00060 0f 29 45 40 movaps XMMWORD PTR a1$[rbp], xmm0 - -; 16 : const __m128 a2 = _mm_load_ps((float *)&left->f32_x[2]); - - 00064 b8 10 00 00 00 mov eax, 16 - 00069 48 6b c0 02 imul rax, rax, 2 - 0006d 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR left$[rbp] - 00074 48 03 c8 add rcx, rax - 00077 48 8b c1 mov rax, rcx - 0007a 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 0007d 0f 29 45 70 movaps XMMWORD PTR a2$[rbp], xmm0 - -; 17 : const __m128 a3 = _mm_load_ps((float *)&left->f32_x[3]); - - 00081 b8 10 00 00 00 mov eax, 16 - 00086 48 6b c0 03 imul rax, rax, 3 - 0008a 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR left$[rbp] - 00091 48 03 c8 add rcx, rax - 00094 48 8b c1 mov rax, rcx - 00097 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 0009a 0f 29 85 a0 00 - 00 00 movaps XMMWORD PTR a3$[rbp], xmm0 - -; 18 : -; 19 : __m128 c0 = _mm_load_ps((float *)&ans->f32_x[0]); - - 000a1 b8 10 00 00 00 mov eax, 16 - 000a6 48 6b c0 00 imul rax, rax, 0 - 000aa 48 8b 8d a0 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 000b1 48 03 c8 add rcx, rax - 000b4 48 8b c1 mov rax, rcx - 000b7 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 000ba 0f 29 85 d0 00 - 00 00 movaps XMMWORD PTR c0$[rbp], xmm0 - -; 20 : __m128 c1 = _mm_load_ps((float *)&ans->f32_x[1]); - - 000c1 b8 10 00 00 00 mov eax, 16 - 000c6 48 6b c0 01 imul rax, rax, 1 - 000ca 48 8b 8d a0 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 000d1 48 03 c8 add rcx, rax - 000d4 48 8b c1 mov rax, rcx - 000d7 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 000da 0f 29 85 00 01 - 00 00 movaps XMMWORD PTR c1$[rbp], xmm0 - -; 21 : __m128 c2 = _mm_load_ps((float *)&ans->f32_x[2]); - - 000e1 b8 10 00 00 00 mov eax, 16 - 000e6 48 6b c0 02 imul rax, rax, 2 - 000ea 48 8b 8d a0 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 000f1 48 03 c8 add rcx, rax - 000f4 48 8b c1 mov rax, rcx - 000f7 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 000fa 0f 29 85 30 01 - 00 00 movaps XMMWORD PTR c2$[rbp], xmm0 - -; 22 : __m128 c3 = _mm_load_ps((float *)&ans->f32_x[3]); - - 00101 b8 10 00 00 00 mov eax, 16 - 00106 48 6b c0 03 imul rax, rax, 3 - 0010a 48 8b 8d a0 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00111 48 03 c8 add rcx, rax - 00114 48 8b c1 mov rax, rcx - 00117 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 0011a 0f 29 85 60 01 - 00 00 movaps XMMWORD PTR c3$[rbp], xmm0 - -; 23 : -; 24 : __m128 bcol; -; 25 : -; 26 : /* Column 0 */ -; 27 : bcol = _mm_load_ps((float *)&right->f32_x[0]); - - 00121 b8 10 00 00 00 mov eax, 16 - 00126 48 6b c0 00 imul rax, rax, 0 - 0012a 48 8b 8d 98 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00131 48 03 c8 add rcx, rax - 00134 48 8b c1 mov rax, rcx - 00137 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 0013a 0f 29 85 90 01 - 00 00 movaps XMMWORD PTR bcol$[rbp], xmm0 - -; 28 : c0 = _mm_add_ps(c0, _mm_mul_ps(a0, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(0)))); - - 00141 0f 28 85 90 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 00148 0f c6 85 90 01 - 00 00 00 shufps xmm0, XMMWORD PTR bcol$[rbp], 0 - 00150 0f 28 4d 10 movaps xmm1, XMMWORD PTR a0$[rbp] - 00154 0f 59 c8 mulps xmm1, xmm0 - 00157 0f 28 c1 movaps xmm0, xmm1 - 0015a 0f 28 8d d0 00 - 00 00 movaps xmm1, XMMWORD PTR c0$[rbp] - 00161 0f 58 c8 addps xmm1, xmm0 - 00164 0f 28 c1 movaps xmm0, xmm1 - 00167 0f 29 85 d0 00 - 00 00 movaps XMMWORD PTR c0$[rbp], xmm0 - -; 29 : c0 = _mm_add_ps(c0, _mm_mul_ps(a1, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(1)))); - - 0016e 0f 28 85 90 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 00175 0f c6 85 90 01 - 00 00 55 shufps xmm0, XMMWORD PTR bcol$[rbp], 85 ; 00000055H - 0017d 0f 28 4d 40 movaps xmm1, XMMWORD PTR a1$[rbp] - 00181 0f 59 c8 mulps xmm1, xmm0 - 00184 0f 28 c1 movaps xmm0, xmm1 - 00187 0f 28 8d d0 00 - 00 00 movaps xmm1, XMMWORD PTR c0$[rbp] - 0018e 0f 58 c8 addps xmm1, xmm0 - 00191 0f 28 c1 movaps xmm0, xmm1 - 00194 0f 29 85 d0 00 - 00 00 movaps XMMWORD PTR c0$[rbp], xmm0 - -; 30 : c0 = _mm_add_ps(c0, _mm_mul_ps(a2, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(2)))); - - 0019b 0f 28 85 90 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 001a2 0f c6 85 90 01 - 00 00 aa shufps xmm0, XMMWORD PTR bcol$[rbp], 170 ; 000000aaH - 001aa 0f 28 4d 70 movaps xmm1, XMMWORD PTR a2$[rbp] - 001ae 0f 59 c8 mulps xmm1, xmm0 - 001b1 0f 28 c1 movaps xmm0, xmm1 - 001b4 0f 28 8d d0 00 - 00 00 movaps xmm1, XMMWORD PTR c0$[rbp] - 001bb 0f 58 c8 addps xmm1, xmm0 - 001be 0f 28 c1 movaps xmm0, xmm1 - 001c1 0f 29 85 d0 00 - 00 00 movaps XMMWORD PTR c0$[rbp], xmm0 - -; 31 : c0 = _mm_add_ps(c0, _mm_mul_ps(a3, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(3)))); - - 001c8 0f 28 85 90 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 001cf 0f c6 85 90 01 - 00 00 ff shufps xmm0, XMMWORD PTR bcol$[rbp], 255 ; 000000ffH - 001d7 0f 28 8d a0 00 - 00 00 movaps xmm1, XMMWORD PTR a3$[rbp] - 001de 0f 59 c8 mulps xmm1, xmm0 - 001e1 0f 28 c1 movaps xmm0, xmm1 - 001e4 0f 28 8d d0 00 - 00 00 movaps xmm1, XMMWORD PTR c0$[rbp] - 001eb 0f 58 c8 addps xmm1, xmm0 - 001ee 0f 28 c1 movaps xmm0, xmm1 - 001f1 0f 29 85 d0 00 - 00 00 movaps XMMWORD PTR c0$[rbp], xmm0 - -; 32 : -; 33 : /* Column 1 */ -; 34 : bcol = _mm_load_ps((float *)&right->f32_x[1]); - - 001f8 b8 10 00 00 00 mov eax, 16 - 001fd 48 6b c0 01 imul rax, rax, 1 - 00201 48 8b 8d 98 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00208 48 03 c8 add rcx, rax - 0020b 48 8b c1 mov rax, rcx - 0020e 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00211 0f 29 85 90 01 - 00 00 movaps XMMWORD PTR bcol$[rbp], xmm0 - -; 35 : c1 = _mm_add_ps(c1, _mm_mul_ps(a0, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(0)))); - - 00218 0f 28 85 90 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 0021f 0f c6 85 90 01 - 00 00 00 shufps xmm0, XMMWORD PTR bcol$[rbp], 0 - 00227 0f 28 4d 10 movaps xmm1, XMMWORD PTR a0$[rbp] - 0022b 0f 59 c8 mulps xmm1, xmm0 - 0022e 0f 28 c1 movaps xmm0, xmm1 - 00231 0f 28 8d 00 01 - 00 00 movaps xmm1, XMMWORD PTR c1$[rbp] - 00238 0f 58 c8 addps xmm1, xmm0 - 0023b 0f 28 c1 movaps xmm0, xmm1 - 0023e 0f 29 85 00 01 - 00 00 movaps XMMWORD PTR c1$[rbp], xmm0 - -; 36 : c1 = _mm_add_ps(c1, _mm_mul_ps(a1, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(1)))); - - 00245 0f 28 85 90 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 0024c 0f c6 85 90 01 - 00 00 55 shufps xmm0, XMMWORD PTR bcol$[rbp], 85 ; 00000055H - 00254 0f 28 4d 40 movaps xmm1, XMMWORD PTR a1$[rbp] - 00258 0f 59 c8 mulps xmm1, xmm0 - 0025b 0f 28 c1 movaps xmm0, xmm1 - 0025e 0f 28 8d 00 01 - 00 00 movaps xmm1, XMMWORD PTR c1$[rbp] - 00265 0f 58 c8 addps xmm1, xmm0 - 00268 0f 28 c1 movaps xmm0, xmm1 - 0026b 0f 29 85 00 01 - 00 00 movaps XMMWORD PTR c1$[rbp], xmm0 - -; 37 : c1 = _mm_add_ps(c1, _mm_mul_ps(a2, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(2)))); - - 00272 0f 28 85 90 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 00279 0f c6 85 90 01 - 00 00 aa shufps xmm0, XMMWORD PTR bcol$[rbp], 170 ; 000000aaH - 00281 0f 28 4d 70 movaps xmm1, XMMWORD PTR a2$[rbp] - 00285 0f 59 c8 mulps xmm1, xmm0 - 00288 0f 28 c1 movaps xmm0, xmm1 - 0028b 0f 28 8d 00 01 - 00 00 movaps xmm1, XMMWORD PTR c1$[rbp] - 00292 0f 58 c8 addps xmm1, xmm0 - 00295 0f 28 c1 movaps xmm0, xmm1 - 00298 0f 29 85 00 01 - 00 00 movaps XMMWORD PTR c1$[rbp], xmm0 - -; 38 : c1 = _mm_add_ps(c1, _mm_mul_ps(a3, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(3)))); - - 0029f 0f 28 85 90 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 002a6 0f c6 85 90 01 - 00 00 ff shufps xmm0, XMMWORD PTR bcol$[rbp], 255 ; 000000ffH - 002ae 0f 28 8d a0 00 - 00 00 movaps xmm1, XMMWORD PTR a3$[rbp] - 002b5 0f 59 c8 mulps xmm1, xmm0 - 002b8 0f 28 c1 movaps xmm0, xmm1 - 002bb 0f 28 8d 00 01 - 00 00 movaps xmm1, XMMWORD PTR c1$[rbp] - 002c2 0f 58 c8 addps xmm1, xmm0 - 002c5 0f 28 c1 movaps xmm0, xmm1 - 002c8 0f 29 85 00 01 - 00 00 movaps XMMWORD PTR c1$[rbp], xmm0 - -; 39 : -; 40 : /* Column 2 */ -; 41 : bcol = _mm_load_ps((float *)&right->f32_x[2]); - - 002cf b8 10 00 00 00 mov eax, 16 - 002d4 48 6b c0 02 imul rax, rax, 2 - 002d8 48 8b 8d 98 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 002df 48 03 c8 add rcx, rax - 002e2 48 8b c1 mov rax, rcx - 002e5 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 002e8 0f 29 85 90 01 - 00 00 movaps XMMWORD PTR bcol$[rbp], xmm0 - -; 42 : c2 = _mm_add_ps(c2, _mm_mul_ps(a0, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(0)))); - - 002ef 0f 28 85 90 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 002f6 0f c6 85 90 01 - 00 00 00 shufps xmm0, XMMWORD PTR bcol$[rbp], 0 - 002fe 0f 28 4d 10 movaps xmm1, XMMWORD PTR a0$[rbp] - 00302 0f 59 c8 mulps xmm1, xmm0 - 00305 0f 28 c1 movaps xmm0, xmm1 - 00308 0f 28 8d 30 01 - 00 00 movaps xmm1, XMMWORD PTR c2$[rbp] - 0030f 0f 58 c8 addps xmm1, xmm0 - 00312 0f 28 c1 movaps xmm0, xmm1 - 00315 0f 29 85 30 01 - 00 00 movaps XMMWORD PTR c2$[rbp], xmm0 - -; 43 : c2 = _mm_add_ps(c2, _mm_mul_ps(a1, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(1)))); - - 0031c 0f 28 85 90 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 00323 0f c6 85 90 01 - 00 00 55 shufps xmm0, XMMWORD PTR bcol$[rbp], 85 ; 00000055H - 0032b 0f 28 4d 40 movaps xmm1, XMMWORD PTR a1$[rbp] - 0032f 0f 59 c8 mulps xmm1, xmm0 - 00332 0f 28 c1 movaps xmm0, xmm1 - 00335 0f 28 8d 30 01 - 00 00 movaps xmm1, XMMWORD PTR c2$[rbp] - 0033c 0f 58 c8 addps xmm1, xmm0 - 0033f 0f 28 c1 movaps xmm0, xmm1 - 00342 0f 29 85 30 01 - 00 00 movaps XMMWORD PTR c2$[rbp], xmm0 - -; 44 : c2 = _mm_add_ps(c2, _mm_mul_ps(a2, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(2)))); - - 00349 0f 28 85 90 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 00350 0f c6 85 90 01 - 00 00 aa shufps xmm0, XMMWORD PTR bcol$[rbp], 170 ; 000000aaH - 00358 0f 28 4d 70 movaps xmm1, XMMWORD PTR a2$[rbp] - 0035c 0f 59 c8 mulps xmm1, xmm0 - 0035f 0f 28 c1 movaps xmm0, xmm1 - 00362 0f 28 8d 30 01 - 00 00 movaps xmm1, XMMWORD PTR c2$[rbp] - 00369 0f 58 c8 addps xmm1, xmm0 - 0036c 0f 28 c1 movaps xmm0, xmm1 - 0036f 0f 29 85 30 01 - 00 00 movaps XMMWORD PTR c2$[rbp], xmm0 - -; 45 : c2 = _mm_add_ps(c2, _mm_mul_ps(a3, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(3)))); - - 00376 0f 28 85 90 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 0037d 0f c6 85 90 01 - 00 00 ff shufps xmm0, XMMWORD PTR bcol$[rbp], 255 ; 000000ffH - 00385 0f 28 8d a0 00 - 00 00 movaps xmm1, XMMWORD PTR a3$[rbp] - 0038c 0f 59 c8 mulps xmm1, xmm0 - 0038f 0f 28 c1 movaps xmm0, xmm1 - 00392 0f 28 8d 30 01 - 00 00 movaps xmm1, XMMWORD PTR c2$[rbp] - 00399 0f 58 c8 addps xmm1, xmm0 - 0039c 0f 28 c1 movaps xmm0, xmm1 - 0039f 0f 29 85 30 01 - 00 00 movaps XMMWORD PTR c2$[rbp], xmm0 - -; 46 : -; 47 : /* Column 3 */ -; 48 : bcol = _mm_load_ps((float *)&right->f32_x[3]); - - 003a6 b8 10 00 00 00 mov eax, 16 - 003ab 48 6b c0 03 imul rax, rax, 3 - 003af 48 8b 8d 98 02 - 00 00 mov rcx, QWORD PTR right$[rbp] - 003b6 48 03 c8 add rcx, rax - 003b9 48 8b c1 mov rax, rcx - 003bc 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 003bf 0f 29 85 90 01 - 00 00 movaps XMMWORD PTR bcol$[rbp], xmm0 - -; 49 : c3 = _mm_add_ps(c3, _mm_mul_ps(a0, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(0)))); - - 003c6 0f 28 85 90 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 003cd 0f c6 85 90 01 - 00 00 00 shufps xmm0, XMMWORD PTR bcol$[rbp], 0 - 003d5 0f 28 4d 10 movaps xmm1, XMMWORD PTR a0$[rbp] - 003d9 0f 59 c8 mulps xmm1, xmm0 - 003dc 0f 28 c1 movaps xmm0, xmm1 - 003df 0f 28 8d 60 01 - 00 00 movaps xmm1, XMMWORD PTR c3$[rbp] - 003e6 0f 58 c8 addps xmm1, xmm0 - 003e9 0f 28 c1 movaps xmm0, xmm1 - 003ec 0f 29 85 60 01 - 00 00 movaps XMMWORD PTR c3$[rbp], xmm0 - -; 50 : c3 = _mm_add_ps(c3, _mm_mul_ps(a1, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(1)))); - - 003f3 0f 28 85 90 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 003fa 0f c6 85 90 01 - 00 00 55 shufps xmm0, XMMWORD PTR bcol$[rbp], 85 ; 00000055H - 00402 0f 28 4d 40 movaps xmm1, XMMWORD PTR a1$[rbp] - 00406 0f 59 c8 mulps xmm1, xmm0 - 00409 0f 28 c1 movaps xmm0, xmm1 - 0040c 0f 28 8d 60 01 - 00 00 movaps xmm1, XMMWORD PTR c3$[rbp] - 00413 0f 58 c8 addps xmm1, xmm0 - 00416 0f 28 c1 movaps xmm0, xmm1 - 00419 0f 29 85 60 01 - 00 00 movaps XMMWORD PTR c3$[rbp], xmm0 - -; 51 : c3 = _mm_add_ps(c3, _mm_mul_ps(a2, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(2)))); - - 00420 0f 28 85 90 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 00427 0f c6 85 90 01 - 00 00 aa shufps xmm0, XMMWORD PTR bcol$[rbp], 170 ; 000000aaH - 0042f 0f 28 4d 70 movaps xmm1, XMMWORD PTR a2$[rbp] - 00433 0f 59 c8 mulps xmm1, xmm0 - 00436 0f 28 c1 movaps xmm0, xmm1 - 00439 0f 28 8d 60 01 - 00 00 movaps xmm1, XMMWORD PTR c3$[rbp] - 00440 0f 58 c8 addps xmm1, xmm0 - 00443 0f 28 c1 movaps xmm0, xmm1 - 00446 0f 29 85 60 01 - 00 00 movaps XMMWORD PTR c3$[rbp], xmm0 - -; 52 : c3 = _mm_add_ps(c3, _mm_mul_ps(a3, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(3)))); - - 0044d 0f 28 85 90 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 00454 0f c6 85 90 01 - 00 00 ff shufps xmm0, XMMWORD PTR bcol$[rbp], 255 ; 000000ffH - 0045c 0f 28 8d a0 00 - 00 00 movaps xmm1, XMMWORD PTR a3$[rbp] - 00463 0f 59 c8 mulps xmm1, xmm0 - 00466 0f 28 c1 movaps xmm0, xmm1 - 00469 0f 28 8d 60 01 - 00 00 movaps xmm1, XMMWORD PTR c3$[rbp] - 00470 0f 58 c8 addps xmm1, xmm0 - 00473 0f 28 c1 movaps xmm0, xmm1 - 00476 0f 29 85 60 01 - 00 00 movaps XMMWORD PTR c3$[rbp], xmm0 - -; 53 : -; 54 : _mm_store_ps((float *)&ans->f32_x[0], c0); - - 0047d b8 10 00 00 00 mov eax, 16 - 00482 48 6b c0 00 imul rax, rax, 0 - 00486 48 8b 8d a0 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 0048d 48 03 c8 add rcx, rax - 00490 48 8b c1 mov rax, rcx - 00493 0f 28 85 d0 00 - 00 00 movaps xmm0, XMMWORD PTR c0$[rbp] - 0049a 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 55 : _mm_store_ps((float *)&ans->f32_x[1], c1); - - 0049d b8 10 00 00 00 mov eax, 16 - 004a2 48 6b c0 01 imul rax, rax, 1 - 004a6 48 8b 8d a0 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 004ad 48 03 c8 add rcx, rax - 004b0 48 8b c1 mov rax, rcx - 004b3 0f 28 85 00 01 - 00 00 movaps xmm0, XMMWORD PTR c1$[rbp] - 004ba 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 56 : _mm_store_ps((float *)&ans->f32_x[2], c2); - - 004bd b8 10 00 00 00 mov eax, 16 - 004c2 48 6b c0 02 imul rax, rax, 2 - 004c6 48 8b 8d a0 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 004cd 48 03 c8 add rcx, rax - 004d0 48 8b c1 mov rax, rcx - 004d3 0f 28 85 30 01 - 00 00 movaps xmm0, XMMWORD PTR c2$[rbp] - 004da 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 57 : _mm_store_ps((float *)&ans->f32_x[3], c3); - - 004dd b8 10 00 00 00 mov eax, 16 - 004e2 48 6b c0 03 imul rax, rax, 3 - 004e6 48 8b 8d a0 02 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 004ed 48 03 c8 add rcx, rax - 004f0 48 8b c1 mov rax, rcx - 004f3 0f 28 85 60 01 - 00 00 movaps xmm0, XMMWORD PTR c3$[rbp] - 004fa 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 58 : } - - 004fd 48 8d a5 78 02 - 00 00 lea rsp, QWORD PTR [rbp+632] - 00504 5f pop rdi - 00505 5d pop rbp - 00506 c3 ret 0 -float_kernel_fma_sse ENDP -_TEXT ENDS -END diff --git a/obj/StgSharp.Native/Debug/x64/m.fma.x86.nativecodeanalysis.sarif b/obj/StgSharp.Native/Debug/x64/m.fma.x86.nativecodeanalysis.sarif deleted file mode 100644 index 6e3820f5..00000000 --- a/obj/StgSharp.Native/Debug/x64/m.fma.x86.nativecodeanalysis.sarif +++ /dev/null @@ -1,131 +0,0 @@ -{ - "version": "2.1.0", - "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", - "runs": [ - { - "results": [], - "tool": { - "driver": { - "name": "PREfast", - "fullName": "MSVC Code Analysis", - "version": "14.44.35220.0", - "informationUri": "https://aka.ms/cpp/ca" - } - }, - "invocations": [ - { - "executionSuccessful": true - } - ], - "artifacts": [ - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-src/m.fma.x86.c" - }, - "roles": [ - "analysisTarget" - ], - "hashes": { - "sha-256": "d5d32866676ab9055c1a430b3749e18f5affc21d1dc394e2b5a4897f0d63d02e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_target.h" - }, - "hashes": { - "sha-256": "b8c543a09db7bd21a2b409476024fa6bec6a5218d88ca036d15584ed453ceb91" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_internal.h" - }, - "hashes": { - "sha-256": "8a0f03b014c6d2740a21a13df48b1951932be000152771363cd554748facde0d" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrinsic.h" - }, - "hashes": { - "sha-256": "4da90105811ba902ad984b406834cf36cf43862047957dad5471c0b24d221ace" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/stgsharpnative.h" - }, - "hashes": { - "sha-256": "5eee6b3faf7bf2247fe44898b0fcb71794c346ae2f0b58953e1632a49c1b6c4e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/stbi/stb_image.h" - }, - "hashes": { - "sha-256": "c45e3ef56a7d946654740f02e25fcb99a819861155ad1173349a289f2a000ce2" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/gl.h" - }, - "hashes": { - "sha-256": "c9d0960c919f9ef4cfa6449f2b0c00f2ad8286b420e01ee7ec34b40c618392fc" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/khrplatform.h" - }, - "hashes": { - "sha-256": "f5b69ed6a7bef6651526abb2d1263811d59acdba7a29368bb9be1a0f9e80160f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/wgl.h" - }, - "hashes": { - "sha-256": "86d6c58acb0a92b35ce8d94d6817fcec3f73d9e147e8621f468f143db1bbd81f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/glfw/glfw3.h" - }, - "hashes": { - "sha-256": "85c584857dddd780c131940ed69cd516c2b60d61664df9cb254710c3602c1008" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/glfw_function.h" - }, - "hashes": { - "sha-256": "4baa73f465e3e347fc0ad0ff666a6db2e83e749acd770f4bee02c12a7b9ec36e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_matkernel.h" - }, - "hashes": { - "sha-256": "19f0030c441ae5c4cec0b446b64daa10448fafd44d4fd6dd2232b84f5ed9aad1" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrincontext.x86.h" - }, - "hashes": { - "sha-256": "bbc00ee7320b30ca1234dc7908e4695ff6d5bb2ba3224e4ffaed345010ba8f48" - } - } - ] - } - ] -} \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/m.fma.x86.nativecodeanalysis.xml b/obj/StgSharp.Native/Debug/x64/m.fma.x86.nativecodeanalysis.xml deleted file mode 100644 index dcdf0885..00000000 --- a/obj/StgSharp.Native/Debug/x64/m.fma.x86.nativecodeanalysis.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/m.fma_tile.x86.cod b/obj/StgSharp.Native/Debug/x64/m.fma_tile.x86.cod deleted file mode 100644 index b3410461..00000000 --- a/obj/StgSharp.Native/Debug/x64/m.fma_tile.x86.cod +++ /dev/null @@ -1,4990 +0,0 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.44.35220.0 - -include listing.inc - -INCLUDELIB MSVCRTD -INCLUDELIB OLDNAMES - -_DATA SEGMENT -COMM infolog:BYTE:0200H -_DATA ENDS -msvcjmc SEGMENT -__5C8CA4D3_mmintrin@h DB 01H -__8C83BECC_concurrencysal@h DB 01H -__608E3340_sal@h DB 01H -__FB67E29A_vadefs@h DB 01H -__1D1B619C_vcruntime@h DB 01H -__735960E1_corecrt@h DB 01H -__211DB995_corecrt_malloc@h DB 01H -__7CD62D9E_malloc@h DB 01H -__9DCE0DC8_xmmintrin@h DB 01H -__4C2AD0C7_winpackagefamily@h DB 01H -__9DED9ED1_winapifamily@h DB 01H -__12FEDF4E_sdkddkver@h DB 01H -__9BAEE128_excpt@h DB 01H -__B7B53233_stdarg@h DB 01H -__6B04FCB3_specstrings_undef@h DB 01H -__F4027AF7_specstrings_strict@h DB 01H -__B90340D4_sdv_driverspecs@h DB 01H -__BFFF5AD3_driverspecs@h DB 01H -__32847078_specstrings@h DB 01H -__108B2620_corecrt_wctype@h DB 01H -__6CD6613D_ctype@h DB 01H -__30902A1F_kernelspecs@h DB 01H -__376FD5CA_basetsd@h DB 01H -__13DE2371_errno@h DB 01H -__8C6AE390_vcruntime_string@h DB 01H -__8ACB2152_corecrt_memcpy_s@h DB 01H -__EA6C9D17_corecrt_memory@h DB 01H -__0DF2AF52_corecrt_wstring@h DB 01H -__6E889ECC_string@h DB 01H -__9BEDF4DE_guiddef@h DB 01H -__51BFD2FE_pshpack4@h DB 01H -__31652CEA_poppack@h DB 01H -__5532AE4C_pshpack2@h DB 01H -__58A52B9A_pshpack8@h DB 01H -__57741015_pshpack1@h DB 01H -__CDE68C90_apiset@h DB 01H -__0BF06E8D_ktmtypes@h DB 01H -__40C200C0_winnt@h DB 01H -__9336F789_minwindef@h DB 01H -__55136115_windef@h DB 01H -__32205BF0_apisetcconv@h DB 01H -__B48FDEA0_minwinbase@h DB 01H -__3551B028_apiquery2@h DB 01H -__65BE04AA_processenv@h DB 01H -__4767CA46_fileapi@h DB 01H -__282E6C4B_fileapifromapp@h DB 01H -__393AF12C_debugapi@h DB 01H -__EBC502B8_utilapiset@h DB 01H -__1EAD8C69_handleapi@h DB 01H -__D8EF9B29_errhandlingapi@h DB 01H -__97FC1204_fibersapi@h DB 01H -__27448220_namedpipeapi@h DB 01H -__6EA33B2A_profileapi@h DB 01H -__EAC6F673_heapapi@h DB 01H -__D64EEA5A_ioapiset@h DB 01H -__144BD4B6_synchapi@h DB 01H -__03B1C640_interlockedapi@h DB 01H -__DC64CB38_processthreadsapi@h DB 01H -__D719B518_sysinfoapi@h DB 01H -__410385B1_memoryapi@h DB 01H -__C1AD45EF_enclaveapi@h DB 01H -__F4C3AA32_threadpoollegacyapiset@h DB 01H -__AC5A7A9F_threadpoolapiset@h DB 01H -__F5254B21_jobapi@h DB 01H -__BCEA6EE8_jobapi2@h DB 01H -__D18ACE72_wow64apiset@h DB 01H -__669B0D4A_libloaderapi@h DB 01H -__645F7034_securitybaseapi@h DB 01H -__67E58557_namespaceapi@h DB 01H -__599D9D3A_systemtopologyapi@h DB 01H -__2337E373_processtopologyapi@h DB 01H -__02BFF239_securityappcontainer@h DB 01H -__9C196272_realtimeapiset@h DB 01H -__5AB313A4_winerror@h DB 01H -__B7E7187B_timezoneapi@h DB 01H -__6DE9EB6F_winbase@h DB 01H -__56B2AFF2_wingdi@h DB 01H -__BA1161A9_tvout@h DB 01H -__0501A018_winuser@h DB 01H -__EF12FA99_datetimeapi@h DB 01H -__8FA7C3CA_winnls@h DB 01H -__390F0C47_stringapiset@h DB 01H -__28605B0A_wincontypes@h DB 01H -__BFBDE86D_consoleapi@h DB 01H -__C3CAFBF0_consoleapi2@h DB 01H -__C20891C7_consoleapi3@h DB 01H -__717C98B6_wincon@h DB 01H -__2884C177_verrsrc@h DB 01H -__A3FD3A34_winver@h DB 01H -__6F8AD9F1_reason@h DB 01H -__4C90FD6F_winreg@h DB 01H -__68AFEBAD_wnnc@h DB 01H -__5A7AB086_winnetwk@h DB 01H -__2FE8A10C_stralign@h DB 01H -__34558472_winsvc@h DB 01H -__058845F1_mcx@h DB 01H -__7F16006B_ime_cmodes@h DB 01H -__0A3AF599_imm@h DB 01H -__9349FE86_windows@h DB 01H -__639A050C_sn_internal@h DB 01H -__836A8CFC_stdint@h DB 01H -__714FE6D7_sn_target@h DB 01H -__60B45B40_corecrt_stdio_config@h DB 01H -__CFA3741E_corecrt_wstdio@h DB 01H -__B3FE3303_stdio@h DB 01H -__955456CD_stddef@h DB 01H -__99AED4FB_corecrt_search@h DB 01H -__8B813BF6_corecrt_wstdlib@h DB 01H -__3D1CA2C3_limits@h DB 01H -__E8FB0A68_stdlib@h DB 01H -__F562FA57_stb_image@h DB 01H -__C95DC661_khrplatform@h DB 01H -__6C577136_gl@h DB 01H -__EE638A2C_wgl@h DB 01H -__8EF9E35C_glfw3@h DB 01H -__F8AC8404_emmintrin@h DB 01H -__270DEC8D_pmmintrin@h DB 01H -__97D49F0F_tmmintrin@h DB 01H -__BEEF8A8C_smmintrin@h DB 01H -__DB8D0340_nmmintrin@h DB 01H -__0E36F90E_wmmintrin@h DB 01H -__C5A2B409_zmmintrin@h DB 01H -__F2B616C3_immintrin@h DB 01H -__9FB25DBE_assert@h DB 01H -__4E664295_glfw_function@h DB 01H -__64C0EF11_StgSharpNative@h DB 01H -__E2EC0CAF_sn_matkernel@h DB 01H -__47E843D2_intrin0@inl@h DB 01H -__130964FF_setjmp@h DB 01H -__4875F786_ammintrin@h DB 01H -__353FD888_intrin@h DB 01H -__5FE1E9E3_isa_availability@h DB 01H -__AA840D82_sn_intrinsic@h DB 01H -__CE29950A_sn_intrincontext@x86@h DB 01H -__31D20E98_m@fma_tile@x86@c DB 01H -msvcjmc ENDS -CONST SEGMENT -?b01_shift_source@?1??float_kernel_tile_fma_avx@@9@9 DD 00H ; `float_kernel_tile_fma_avx'::`2'::b01_shift_source - DD 01H - DD 02H - DD 03H - DD 05H - DD 06H - DD 07H - DD 04H -?b23_shift_source@?1??float_kernel_tile_fma_avx@@9@9 DD 02H ; `float_kernel_tile_fma_avx'::`2'::b23_shift_source - DD 03H - DD 00H - DD 01H - DD 07H - DD 04H - DD 05H - DD 06H -?b01_shift_source@?1??float_kernel_tile_fma_avx_fma@@9@9 DD 00H ; `float_kernel_tile_fma_avx_fma'::`2'::b01_shift_source - DD 01H - DD 02H - DD 03H - DD 05H - DD 06H - DD 07H - DD 04H -?b23_shift_source@?1??float_kernel_tile_fma_avx_fma@@9@9 DD 02H ; `float_kernel_tile_fma_avx_fma'::`2'::b23_shift_source - DD 03H - DD 00H - DD 01H - DD 07H - DD 04H - DD 05H - DD 06H -?b_shift_source@?1??float_kernel_tile_fma_512@@9@9 DD 00H ; `float_kernel_tile_fma_512'::`2'::b_shift_source - DD 01H - DD 02H - DD 03H - DD 05H - DD 06H - DD 07H - DD 04H - DD 0aH - DD 0bH - DD 08H - DD 09H - DD 0fH - DD 0cH - DD 0dH - DD 0eH -?b01_shift_source@?1??double_kernel_tile_fma_512@@9@9 DQ 0000000000000000H ; `double_kernel_tile_fma_512'::`2'::b01_shift_source - DQ 0000000000000001H - DQ 0000000000000002H - DQ 0000000000000003H - DQ 0000000000000005H - DQ 0000000000000006H - DQ 0000000000000007H - DQ 0000000000000004H -?b23_shift_source@?1??double_kernel_tile_fma_512@@9@9 DQ 0000000000000002H ; `double_kernel_tile_fma_512'::`2'::b23_shift_source - DQ 0000000000000003H - DQ 0000000000000000H - DQ 0000000000000001H - DQ 0000000000000007H - DQ 0000000000000004H - DQ 0000000000000005H - DQ 0000000000000006H -CONST ENDS -PUBLIC float_kernel_tile_fma_sse -PUBLIC float_kernel_tile_fma_avx -PUBLIC float_kernel_tile_fma_avx_fma -PUBLIC float_kernel_tile_fma_512 -PUBLIC double_kernel_tile_fma_sse -PUBLIC double_kernel_tile_fma_avx -PUBLIC double_kernel_tile_fma_avx_fma -PUBLIC double_kernel_tile_fma_512 -PUBLIC __JustMyCode_Default -EXTRN _RTC_InitBase:PROC -EXTRN _RTC_Shutdown:PROC -EXTRN __CheckForDebuggerJustMyCode:PROC -; COMDAT pdata -pdata SEGMENT -$pdata$float_kernel_tile_fma_sse DD imagerel $LN6 - DD imagerel $LN6+1596 - DD imagerel $unwind$float_kernel_tile_fma_sse -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_kernel_tile_fma_avx DD imagerel $LN6 - DD imagerel $LN6+1188 - DD imagerel $unwind$float_kernel_tile_fma_avx -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_kernel_tile_fma_avx_fma DD imagerel $LN6 - DD imagerel $LN6+1199 - DD imagerel $unwind$float_kernel_tile_fma_avx_fma -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_kernel_tile_fma_512 DD imagerel $LN6 - DD imagerel $LN6+715 - DD imagerel $unwind$float_kernel_tile_fma_512 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_kernel_tile_fma_sse DD imagerel $LN18 - DD imagerel $LN18+3061 - DD imagerel $unwind$double_kernel_tile_fma_sse -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_kernel_tile_fma_avx DD imagerel $LN6 - DD imagerel $LN6+1554 - DD imagerel $unwind$double_kernel_tile_fma_avx -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_kernel_tile_fma_avx_fma DD imagerel $LN6 - DD imagerel $LN6+1506 - DD imagerel $unwind$double_kernel_tile_fma_avx_fma -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$double_kernel_tile_fma_512 DD imagerel $LN6 - DD imagerel $LN6+1135 - DD imagerel $unwind$double_kernel_tile_fma_512 -pdata ENDS -; COMDAT rtc$TMZ -rtc$TMZ SEGMENT -_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown -rtc$TMZ ENDS -; COMDAT rtc$IMZ -rtc$IMZ SEGMENT -_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase -rtc$IMZ ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_kernel_tile_fma_512 DD 02d062d01H - DD 011f2324H - DD 070180146H - DD 0d0165017H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_kernel_tile_fma_avx_fma DD 02d062d01H - DD 011f2324H - DD 0701800a2H - DD 0d0165017H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_kernel_tile_fma_avx DD 02d062d01H - DD 011f2324H - DD 0701800a2H - DD 0d0165017H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$double_kernel_tile_fma_sse DD 025052201H - DD 011d2322H - DD 070160129H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_kernel_tile_fma_512 DD 02d062d01H - DD 011f2324H - DD 0701800b6H - DD 0d0165017H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_kernel_tile_fma_avx_fma DD 02d062d01H - DD 011f2324H - DD 0701800d2H - DD 0d0165017H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_kernel_tile_fma_avx DD 02d062d01H - DD 011f2324H - DD 0701800d2H - DD 0d0165017H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_kernel_tile_fma_sse DD 025052201H - DD 011d2322H - DD 07016008bH - DD 05015H -xdata ENDS -; Function compile flags: /Odt -; COMDAT __JustMyCode_Default -_TEXT SEGMENT -__JustMyCode_Default PROC ; COMDAT - 00000 c2 00 00 ret 0 -__JustMyCode_Default ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.fma_tile.x86.c -; COMDAT double_kernel_tile_fma_512 -_TEXT SEGMENT -i$ = 4 -j$ = 36 -commonK$ = 68 -ansHeight$ = 100 -ans_cur$ = 136 -c01$ = 192 -c23$ = 320 -b01_shift$ = 448 -b23_shift$ = 576 -k$1 = 664 -left_cur$2 = 696 -right_cur$3 = 728 -a01$4 = 768 -a23$5 = 896 -b01$6 = 1024 -b23$7 = 1152 -b01_perm$8 = 1280 -b23_perm$9 = 1408 -a12$10 = 1536 -a30$11 = 1664 -left$ = 2608 -right$ = 2616 -ans$ = 2624 -enumeration$ = 2632 -double_kernel_tile_fma_512 PROC ; COMDAT - -; 463 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 41 55 push r13 - 00016 55 push rbp - 00017 57 push rdi - 00018 48 81 ec 30 0a - 00 00 sub rsp, 2608 ; 00000a30H - 0001f 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00024 48 8d 6c 24 60 lea rbp, QWORD PTR [rsp+96] - 00029 48 83 e5 c0 and rbp, -64 ; ffffffffffffffc0H - 0002d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__31D20E98_m@fma_tile@x86@c - 00034 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00039 90 npad 1 - -; 464 : static const __m512i b01_shift_source = { .m512i_i64 = { 0, 1, 2, 3, 5, 6, 7, 4 } }; -; 465 : static const __m512i b23_shift_source = { .m512i_i64 = { 2, 3, 0, 1, 7, 4, 5, 6 } }; -; 466 : -; 467 : int i = enumeration->m128_i32[0]; - - 0003a b8 04 00 00 00 mov eax, 4 - 0003f 48 6b c0 00 imul rax, rax, 0 - 00043 49 8b 8d 48 0a - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 0004a 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 0004d 89 45 04 mov DWORD PTR i$[rbp], eax - -; 468 : int j = enumeration->m128_i32[1]; - - 00050 b8 04 00 00 00 mov eax, 4 - 00055 48 6b c0 01 imul rax, rax, 1 - 00059 49 8b 8d 48 0a - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 00060 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 00063 89 45 24 mov DWORD PTR j$[rbp], eax - -; 469 : int commonK = enumeration->m128_i32[2]; - - 00066 b8 04 00 00 00 mov eax, 4 - 0006b 48 6b c0 02 imul rax, rax, 2 - 0006f 49 8b 8d 48 0a - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 00076 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 00079 89 45 44 mov DWORD PTR commonK$[rbp], eax - -; 470 : int ansHeight = enumeration->m128_i32[3]; - - 0007c b8 04 00 00 00 mov eax, 4 - 00081 48 6b c0 03 imul rax, rax, 3 - 00085 49 8b 8d 48 0a - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 0008c 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 0008f 89 45 64 mov DWORD PTR ansHeight$[rbp], eax - -; 471 : -; 472 : MAT_KERNEL(double) -; 473 : const *ans_cur = ans + GET_INDEX(ansHeight, i, j); // GetKernelAddressUnsafe - - 00092 8b 45 64 mov eax, DWORD PTR ansHeight$[rbp] - 00095 0f af 45 04 imul eax, DWORD PTR i$[rbp] - 00099 03 45 24 add eax, DWORD PTR j$[rbp] - 0009c 48 98 cdqe - 0009e 48 69 c0 80 00 - 00 00 imul rax, rax, 128 ; 00000080H - 000a5 49 8b 8d 40 0a - 00 00 mov rcx, QWORD PTR ans$[r13] - 000ac 48 03 c8 add rcx, rax - 000af 48 8b c1 mov rax, rcx - 000b2 48 89 85 88 00 - 00 00 mov QWORD PTR ans_cur$[rbp], rax - -; 474 : -; 475 : register __m512d c01 = _mm512_load_pd((double *)&ans->f64_z[0]); - - 000b9 b8 40 00 00 00 mov eax, 64 ; 00000040H - 000be 48 6b c0 00 imul rax, rax, 0 - 000c2 49 8b 8d 40 0a - 00 00 mov rcx, QWORD PTR ans$[r13] - 000c9 48 03 c8 add rcx, rax - 000cc 48 8b c1 mov rax, rcx - 000cf 62 f1 fd 48 10 - 00 vmovupd zmm0, ZMMWORD PTR [rax] - 000d5 62 f1 fd 48 11 - 45 03 vmovupd ZMMWORD PTR c01$[rbp], zmm0 - -; 476 : register __m512d c23 = _mm512_load_pd((double *)&ans->f64_z[1]); - - 000dc b8 40 00 00 00 mov eax, 64 ; 00000040H - 000e1 48 6b c0 01 imul rax, rax, 1 - 000e5 49 8b 8d 40 0a - 00 00 mov rcx, QWORD PTR ans$[r13] - 000ec 48 03 c8 add rcx, rax - 000ef 48 8b c1 mov rax, rcx - 000f2 62 f1 fd 48 10 - 00 vmovupd zmm0, ZMMWORD PTR [rax] - 000f8 62 f1 fd 48 11 - 45 05 vmovupd ZMMWORD PTR c23$[rbp], zmm0 - -; 477 : -; 478 : register __m512i b01_shift = _mm512_load_si512(&b01_shift_source); - - 000ff 62 f1 7d 48 6f - 05 00 00 00 00 vmovdqa32 zmm0, ZMMWORD PTR ?b01_shift_source@?1??double_kernel_tile_fma_512@@9@9 - 00109 62 f1 7e 48 7f - 45 07 vmovdqu32 ZMMWORD PTR b01_shift$[rbp], zmm0 - -; 479 : register __m512i b23_shift = _mm512_load_si512(&b23_shift_source); - - 00110 62 f1 7d 48 6f - 05 00 00 00 00 vmovdqa32 zmm0, ZMMWORD PTR ?b23_shift_source@?1??double_kernel_tile_fma_512@@9@9 - 0011a 62 f1 7e 48 7f - 45 09 vmovdqu32 ZMMWORD PTR b23_shift$[rbp], zmm0 - -; 480 : -; 481 : for (size_t k = 0; k < commonK; k++) { - - 00121 48 c7 85 98 02 - 00 00 00 00 00 - 00 mov QWORD PTR k$1[rbp], 0 - 0012c eb 11 jmp SHORT $LN4@double_ker -$LN2@double_ker: - 0012e 48 8b 85 98 02 - 00 00 mov rax, QWORD PTR k$1[rbp] - 00135 48 ff c0 inc rax - 00138 48 89 85 98 02 - 00 00 mov QWORD PTR k$1[rbp], rax -$LN4@double_ker: - 0013f 48 63 45 44 movsxd rax, DWORD PTR commonK$[rbp] - 00143 48 39 85 98 02 - 00 00 cmp QWORD PTR k$1[rbp], rax - 0014a 0f 83 cd 02 00 - 00 jae $LN3@double_ker - -; 482 : MAT_KERNEL(double) -; 483 : const *left_cur = left + GET_INDEX(ansHeight, i, k), // GetKernelAddressUnsafe - - 00150 8b 45 64 mov eax, DWORD PTR ansHeight$[rbp] - 00153 0f af 45 04 imul eax, DWORD PTR i$[rbp] - 00157 48 98 cdqe - 00159 48 03 85 98 02 - 00 00 add rax, QWORD PTR k$1[rbp] - 00160 48 69 c0 80 00 - 00 00 imul rax, rax, 128 ; 00000080H - 00167 49 8b 8d 30 0a - 00 00 mov rcx, QWORD PTR left$[r13] - 0016e 48 03 c8 add rcx, rax - 00171 48 8b c1 mov rax, rcx - 00174 48 89 85 b8 02 - 00 00 mov QWORD PTR left_cur$2[rbp], rax - -; 484 : const *right_cur = - - 0017b 8b 45 64 mov eax, DWORD PTR ansHeight$[rbp] - 0017e 0f af 45 24 imul eax, DWORD PTR j$[rbp] - 00182 48 98 cdqe - 00184 48 03 85 98 02 - 00 00 add rax, QWORD PTR k$1[rbp] - 0018b 48 69 c0 80 00 - 00 00 imul rax, rax, 128 ; 00000080H - 00192 49 8b 8d 38 0a - 00 00 mov rcx, QWORD PTR right$[r13] - 00199 48 03 c8 add rcx, rax - 0019c 48 8b c1 mov rax, rcx - 0019f 48 89 85 d8 02 - 00 00 mov QWORD PTR right_cur$3[rbp], rax - -; 485 : right + GET_INDEX(ansHeight, j, k); // GetKernelAddressUnsafe -; 486 : -; 487 : register __m512d a01 = _mm512_load_pd((double *)&left_cur->f64_z[0]); - - 001a6 b8 40 00 00 00 mov eax, 64 ; 00000040H - 001ab 48 6b c0 00 imul rax, rax, 0 - 001af 48 8b 8d b8 02 - 00 00 mov rcx, QWORD PTR left_cur$2[rbp] - 001b6 48 03 c8 add rcx, rax - 001b9 48 8b c1 mov rax, rcx - 001bc 62 f1 fd 48 10 - 00 vmovupd zmm0, ZMMWORD PTR [rax] - 001c2 62 f1 fd 48 11 - 45 0c vmovupd ZMMWORD PTR a01$4[rbp], zmm0 - -; 488 : register __m512d a23 = _mm512_load_pd((double *)&left_cur->f64_z[1]); - - 001c9 b8 40 00 00 00 mov eax, 64 ; 00000040H - 001ce 48 6b c0 01 imul rax, rax, 1 - 001d2 48 8b 8d b8 02 - 00 00 mov rcx, QWORD PTR left_cur$2[rbp] - 001d9 48 03 c8 add rcx, rax - 001dc 48 8b c1 mov rax, rcx - 001df 62 f1 fd 48 10 - 00 vmovupd zmm0, ZMMWORD PTR [rax] - 001e5 62 f1 fd 48 11 - 45 0e vmovupd ZMMWORD PTR a23$5[rbp], zmm0 - -; 489 : -; 490 : register __m512d b01 = _mm512_load_pd((double *)&right_cur->f64_z[0]); - - 001ec b8 40 00 00 00 mov eax, 64 ; 00000040H - 001f1 48 6b c0 00 imul rax, rax, 0 - 001f5 48 8b 8d d8 02 - 00 00 mov rcx, QWORD PTR right_cur$3[rbp] - 001fc 48 03 c8 add rcx, rax - 001ff 48 8b c1 mov rax, rcx - 00202 62 f1 fd 48 10 - 00 vmovupd zmm0, ZMMWORD PTR [rax] - 00208 62 f1 fd 48 11 - 45 10 vmovupd ZMMWORD PTR b01$6[rbp], zmm0 - -; 491 : register __m512d b23 = _mm512_load_pd((double *)&right_cur->f64_z[1]); - - 0020f b8 40 00 00 00 mov eax, 64 ; 00000040H - 00214 48 6b c0 01 imul rax, rax, 1 - 00218 48 8b 8d d8 02 - 00 00 mov rcx, QWORD PTR right_cur$3[rbp] - 0021f 48 03 c8 add rcx, rax - 00222 48 8b c1 mov rax, rcx - 00225 62 f1 fd 48 10 - 00 vmovupd zmm0, ZMMWORD PTR [rax] - 0022b 62 f1 fd 48 11 - 45 12 vmovupd ZMMWORD PTR b23$7[rbp], zmm0 - -; 492 : b01 = _mm512_permutexvar_pd(b01_shift, b01); - - 00232 62 f1 7e 48 6f - 45 07 vmovdqu32 zmm0, ZMMWORD PTR b01_shift$[rbp] - 00239 62 f2 fd 48 16 - 45 10 vpermpd zmm0, zmm0, ZMMWORD PTR b01$6[rbp] - 00240 62 f1 fd 48 11 - 45 10 vmovupd ZMMWORD PTR b01$6[rbp], zmm0 - -; 493 : b23 = _mm512_permutexvar_pd(b23_shift, b23); - - 00247 62 f1 7e 48 6f - 45 09 vmovdqu32 zmm0, ZMMWORD PTR b23_shift$[rbp] - 0024e 62 f2 fd 48 16 - 45 12 vpermpd zmm0, zmm0, ZMMWORD PTR b23$7[rbp] - 00255 62 f1 fd 48 11 - 45 12 vmovupd ZMMWORD PTR b23$7[rbp], zmm0 - -; 494 : -; 495 : //group 0 -; 496 : register __m512d b01_perm = _mm512_shuffle_pd(b01, b01, _FMA_SELECT(0)); - - 0025c 62 f1 fd 48 10 - 45 10 vmovupd zmm0, ZMMWORD PTR b01$6[rbp] - 00263 62 f1 fd 48 c6 - 45 10 00 vshufpd zmm0, zmm0, ZMMWORD PTR b01$6[rbp], 0 - 0026b 62 f1 fd 48 11 - 45 14 vmovupd ZMMWORD PTR b01_perm$8[rbp], zmm0 - -; 497 : register __m512d b23_perm = _mm512_shuffle_pd(b23, b23, _FMA_SELECT(0)); - - 00272 62 f1 fd 48 10 - 45 12 vmovupd zmm0, ZMMWORD PTR b23$7[rbp] - 00279 62 f1 fd 48 c6 - 45 12 00 vshufpd zmm0, zmm0, ZMMWORD PTR b23$7[rbp], 0 - 00281 62 f1 fd 48 11 - 45 16 vmovupd ZMMWORD PTR b23_perm$9[rbp], zmm0 - -; 498 : c01 = _mm512_fmadd_pd(a01, b01_perm, c01); - - 00288 62 f1 fd 48 10 - 45 0c vmovupd zmm0, ZMMWORD PTR a01$4[rbp] - 0028f 62 f1 fd 48 10 - 4d 14 vmovupd zmm1, ZMMWORD PTR b01_perm$8[rbp] - 00296 62 f2 f5 48 a8 - 45 03 vfmadd213pd zmm0, zmm1, ZMMWORD PTR c01$[rbp] - 0029d 62 f1 fd 48 11 - 45 03 vmovupd ZMMWORD PTR c01$[rbp], zmm0 - -; 499 : c23 = _mm512_fmadd_pd(a23, b23_perm, c23); - - 002a4 62 f1 fd 48 10 - 45 0e vmovupd zmm0, ZMMWORD PTR a23$5[rbp] - 002ab 62 f1 fd 48 10 - 4d 16 vmovupd zmm1, ZMMWORD PTR b23_perm$9[rbp] - 002b2 62 f2 f5 48 a8 - 45 05 vfmadd213pd zmm0, zmm1, ZMMWORD PTR c23$[rbp] - 002b9 62 f1 fd 48 11 - 45 05 vmovupd ZMMWORD PTR c23$[rbp], zmm0 - -; 500 : -; 501 : //group 2 -; 502 : b01_perm = _mm512_shuffle_pd(b01, b01, _FMA_SELECT(2)); - - 002c0 62 f1 fd 48 10 - 45 10 vmovupd zmm0, ZMMWORD PTR b01$6[rbp] - 002c7 62 f1 fd 48 c6 - 45 10 aa vshufpd zmm0, zmm0, ZMMWORD PTR b01$6[rbp], 170 ; 000000aaH - 002cf 62 f1 fd 48 11 - 45 14 vmovupd ZMMWORD PTR b01_perm$8[rbp], zmm0 - -; 503 : b23_perm = _mm512_shuffle_pd(b23, b23, _FMA_SELECT(2)); - - 002d6 62 f1 fd 48 10 - 45 12 vmovupd zmm0, ZMMWORD PTR b23$7[rbp] - 002dd 62 f1 fd 48 c6 - 45 12 aa vshufpd zmm0, zmm0, ZMMWORD PTR b23$7[rbp], 170 ; 000000aaH - 002e5 62 f1 fd 48 11 - 45 16 vmovupd ZMMWORD PTR b23_perm$9[rbp], zmm0 - -; 504 : c01 = _mm512_fmadd_pd(a23, b01_perm, c01); - - 002ec 62 f1 fd 48 10 - 45 0e vmovupd zmm0, ZMMWORD PTR a23$5[rbp] - 002f3 62 f1 fd 48 10 - 4d 14 vmovupd zmm1, ZMMWORD PTR b01_perm$8[rbp] - 002fa 62 f2 f5 48 a8 - 45 03 vfmadd213pd zmm0, zmm1, ZMMWORD PTR c01$[rbp] - 00301 62 f1 fd 48 11 - 45 03 vmovupd ZMMWORD PTR c01$[rbp], zmm0 - -; 505 : c23 = _mm512_fmadd_pd(a01, b23_perm, c23); - - 00308 62 f1 fd 48 10 - 45 0c vmovupd zmm0, ZMMWORD PTR a01$4[rbp] - 0030f 62 f1 fd 48 10 - 4d 16 vmovupd zmm1, ZMMWORD PTR b23_perm$9[rbp] - 00316 62 f2 f5 48 a8 - 45 05 vfmadd213pd zmm0, zmm1, ZMMWORD PTR c23$[rbp] - 0031d 62 f1 fd 48 11 - 45 05 vmovupd ZMMWORD PTR c23$[rbp], zmm0 - -; 506 : -; 507 : //group 1 -; 508 : register __m512d a12 = _mm512_shuffle_f64x2(a01, a23, 0x21); - - 00324 62 f1 fd 48 10 - 45 0c vmovupd zmm0, ZMMWORD PTR a01$4[rbp] - 0032b 62 f3 fd 48 23 - 45 0e 21 vshuff64x2 zmm0, zmm0, ZMMWORD PTR a23$5[rbp], 33 ; 00000021H - 00333 62 f1 fd 48 11 - 45 18 vmovupd ZMMWORD PTR a12$10[rbp], zmm0 - -; 509 : register __m512d a30 = _mm512_shuffle_f64x2(a01, a23, 0x30); - - 0033a 62 f1 fd 48 10 - 45 0c vmovupd zmm0, ZMMWORD PTR a01$4[rbp] - 00341 62 f3 fd 48 23 - 45 0e 30 vshuff64x2 zmm0, zmm0, ZMMWORD PTR a23$5[rbp], 48 ; 00000030H - 00349 62 f1 fd 48 11 - 45 1a vmovupd ZMMWORD PTR a30$11[rbp], zmm0 - -; 510 : b01_perm = _mm512_shuffle_pd(b01, b01, _FMA_SELECT(1)); - - 00350 62 f1 fd 48 10 - 45 10 vmovupd zmm0, ZMMWORD PTR b01$6[rbp] - 00357 62 f1 fd 48 c6 - 45 10 55 vshufpd zmm0, zmm0, ZMMWORD PTR b01$6[rbp], 85 ; 00000055H - 0035f 62 f1 fd 48 11 - 45 14 vmovupd ZMMWORD PTR b01_perm$8[rbp], zmm0 - -; 511 : b23_perm = _mm512_shuffle_pd(b23, b23, _FMA_SELECT(1)); - - 00366 62 f1 fd 48 10 - 45 12 vmovupd zmm0, ZMMWORD PTR b23$7[rbp] - 0036d 62 f1 fd 48 c6 - 45 12 55 vshufpd zmm0, zmm0, ZMMWORD PTR b23$7[rbp], 85 ; 00000055H - 00375 62 f1 fd 48 11 - 45 16 vmovupd ZMMWORD PTR b23_perm$9[rbp], zmm0 - -; 512 : c01 = _mm512_fmadd_pd(a12, b01_perm, c01); - - 0037c 62 f1 fd 48 10 - 45 18 vmovupd zmm0, ZMMWORD PTR a12$10[rbp] - 00383 62 f1 fd 48 10 - 4d 14 vmovupd zmm1, ZMMWORD PTR b01_perm$8[rbp] - 0038a 62 f2 f5 48 a8 - 45 03 vfmadd213pd zmm0, zmm1, ZMMWORD PTR c01$[rbp] - 00391 62 f1 fd 48 11 - 45 03 vmovupd ZMMWORD PTR c01$[rbp], zmm0 - -; 513 : c23 = _mm512_fmadd_pd(a30, b23_perm, c23); - - 00398 62 f1 fd 48 10 - 45 1a vmovupd zmm0, ZMMWORD PTR a30$11[rbp] - 0039f 62 f1 fd 48 10 - 4d 16 vmovupd zmm1, ZMMWORD PTR b23_perm$9[rbp] - 003a6 62 f2 f5 48 a8 - 45 05 vfmadd213pd zmm0, zmm1, ZMMWORD PTR c23$[rbp] - 003ad 62 f1 fd 48 11 - 45 05 vmovupd ZMMWORD PTR c23$[rbp], zmm0 - -; 514 : -; 515 : //group 3 -; 516 : b01_perm = _mm512_shuffle_pd(b01, b01, _FMA_SELECT(3)); - - 003b4 62 f1 fd 48 10 - 45 10 vmovupd zmm0, ZMMWORD PTR b01$6[rbp] - 003bb 62 f1 fd 48 c6 - 45 10 ff vshufpd zmm0, zmm0, ZMMWORD PTR b01$6[rbp], 255 ; 000000ffH - 003c3 62 f1 fd 48 11 - 45 14 vmovupd ZMMWORD PTR b01_perm$8[rbp], zmm0 - -; 517 : b23_perm = _mm512_shuffle_pd(b23, b23, _FMA_SELECT(3)); - - 003ca 62 f1 fd 48 10 - 45 12 vmovupd zmm0, ZMMWORD PTR b23$7[rbp] - 003d1 62 f1 fd 48 c6 - 45 12 ff vshufpd zmm0, zmm0, ZMMWORD PTR b23$7[rbp], 255 ; 000000ffH - 003d9 62 f1 fd 48 11 - 45 16 vmovupd ZMMWORD PTR b23_perm$9[rbp], zmm0 - -; 518 : c01 = _mm512_fmadd_pd(a30, b01_perm, c01); - - 003e0 62 f1 fd 48 10 - 45 1a vmovupd zmm0, ZMMWORD PTR a30$11[rbp] - 003e7 62 f1 fd 48 10 - 4d 14 vmovupd zmm1, ZMMWORD PTR b01_perm$8[rbp] - 003ee 62 f2 f5 48 a8 - 45 03 vfmadd213pd zmm0, zmm1, ZMMWORD PTR c01$[rbp] - 003f5 62 f1 fd 48 11 - 45 03 vmovupd ZMMWORD PTR c01$[rbp], zmm0 - -; 519 : c23 = _mm512_fmadd_pd(a12, b23_perm, c23); - - 003fc 62 f1 fd 48 10 - 45 18 vmovupd zmm0, ZMMWORD PTR a12$10[rbp] - 00403 62 f1 fd 48 10 - 4d 16 vmovupd zmm1, ZMMWORD PTR b23_perm$9[rbp] - 0040a 62 f2 f5 48 a8 - 45 05 vfmadd213pd zmm0, zmm1, ZMMWORD PTR c23$[rbp] - 00411 62 f1 fd 48 11 - 45 05 vmovupd ZMMWORD PTR c23$[rbp], zmm0 - -; 520 : } - - 00418 e9 11 fd ff ff jmp $LN2@double_ker -$LN3@double_ker: - -; 521 : _mm512_store_pd((double *)&ans_cur->f64_z[0], c01); - - 0041d b8 40 00 00 00 mov eax, 64 ; 00000040H - 00422 48 6b c0 00 imul rax, rax, 0 - 00426 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 0042d 48 03 c8 add rcx, rax - 00430 48 8b c1 mov rax, rcx - 00433 62 f1 fd 48 10 - 45 03 vmovupd zmm0, ZMMWORD PTR c01$[rbp] - 0043a 62 f1 fd 48 11 - 00 vmovupd ZMMWORD PTR [rax], zmm0 - -; 522 : _mm512_store_pd((double *)&ans_cur->f64_z[1], c23); - - 00440 b8 40 00 00 00 mov eax, 64 ; 00000040H - 00445 48 6b c0 01 imul rax, rax, 1 - 00449 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 00450 48 03 c8 add rcx, rax - 00453 48 8b c1 mov rax, rcx - 00456 62 f1 fd 48 10 - 45 05 vmovupd zmm0, ZMMWORD PTR c23$[rbp] - 0045d 62 f1 fd 48 11 - 00 vmovupd ZMMWORD PTR [rax], zmm0 - -; 523 : } - - 00463 49 8d a5 10 0a - 00 00 lea rsp, QWORD PTR [r13+2576] - 0046a 5f pop rdi - 0046b 5d pop rbp - 0046c 41 5d pop r13 - 0046e c3 ret 0 -double_kernel_tile_fma_512 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.fma_tile.x86.c -; COMDAT double_kernel_tile_fma_avx_fma -_TEXT SEGMENT -i$ = 4 -j$ = 36 -commonK$ = 68 -ansHeight$ = 100 -ans_cur$ = 136 -c0$ = 192 -c1$ = 256 -c2$ = 320 -c3$ = 384 -bcol$ = 448 -k$1 = 504 -right_cur$2 = 536 -left_cur$3 = 568 -a0$4 = 608 -a1$5 = 672 -a2$6 = 736 -a3$7 = 800 -left$ = 1296 -right$ = 1304 -ans$ = 1312 -enumeration$ = 1320 -double_kernel_tile_fma_avx_fma PROC ; COMDAT - -; 401 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 41 55 push r13 - 00016 55 push rbp - 00017 57 push rdi - 00018 48 81 ec 10 05 - 00 00 sub rsp, 1296 ; 00000510H - 0001f 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00024 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00029 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H - 0002d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__31D20E98_m@fma_tile@x86@c - 00034 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00039 90 npad 1 - -; 402 : int i = enumeration->m128_i32[0]; - - 0003a b8 04 00 00 00 mov eax, 4 - 0003f 48 6b c0 00 imul rax, rax, 0 - 00043 49 8b 8d 28 05 - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 0004a 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 0004d 89 45 04 mov DWORD PTR i$[rbp], eax - -; 403 : int j = enumeration->m128_i32[1]; - - 00050 b8 04 00 00 00 mov eax, 4 - 00055 48 6b c0 01 imul rax, rax, 1 - 00059 49 8b 8d 28 05 - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 00060 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 00063 89 45 24 mov DWORD PTR j$[rbp], eax - -; 404 : int commonK = enumeration->m128_i32[2]; - - 00066 b8 04 00 00 00 mov eax, 4 - 0006b 48 6b c0 02 imul rax, rax, 2 - 0006f 49 8b 8d 28 05 - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 00076 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 00079 89 45 44 mov DWORD PTR commonK$[rbp], eax - -; 405 : int ansHeight = enumeration->m128_i32[3]; - - 0007c b8 04 00 00 00 mov eax, 4 - 00081 48 6b c0 03 imul rax, rax, 3 - 00085 49 8b 8d 28 05 - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 0008c 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 0008f 89 45 64 mov DWORD PTR ansHeight$[rbp], eax - -; 406 : -; 407 : MAT_KERNEL(double) -; 408 : const *ans_cur = ans + GET_INDEX(ansHeight, i, j); // GetKernelAddressUnsafe - - 00092 8b 45 64 mov eax, DWORD PTR ansHeight$[rbp] - 00095 0f af 45 04 imul eax, DWORD PTR i$[rbp] - 00099 03 45 24 add eax, DWORD PTR j$[rbp] - 0009c 48 98 cdqe - 0009e 48 69 c0 80 00 - 00 00 imul rax, rax, 128 ; 00000080H - 000a5 49 8b 8d 20 05 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000ac 48 03 c8 add rcx, rax - 000af 48 8b c1 mov rax, rcx - 000b2 48 89 85 88 00 - 00 00 mov QWORD PTR ans_cur$[rbp], rax - -; 409 : -; 410 : register __m256d c0 = _mm256_load_pd((double *)&ans_cur->f64_y[0]); - - 000b9 b8 20 00 00 00 mov eax, 32 ; 00000020H - 000be 48 6b c0 00 imul rax, rax, 0 - 000c2 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 000c9 48 03 c8 add rcx, rax - 000cc 48 8b c1 mov rax, rcx - 000cf c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 000d3 c5 fd 11 85 c0 - 00 00 00 vmovupd YMMWORD PTR c0$[rbp], ymm0 - -; 411 : register __m256d c1 = _mm256_load_pd((double *)&ans_cur->f64_y[1]); - - 000db b8 20 00 00 00 mov eax, 32 ; 00000020H - 000e0 48 6b c0 01 imul rax, rax, 1 - 000e4 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 000eb 48 03 c8 add rcx, rax - 000ee 48 8b c1 mov rax, rcx - 000f1 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 000f5 c5 fd 11 85 00 - 01 00 00 vmovupd YMMWORD PTR c1$[rbp], ymm0 - -; 412 : register __m256d c2 = _mm256_load_pd((double *)&ans_cur->f64_y[2]); - - 000fd b8 20 00 00 00 mov eax, 32 ; 00000020H - 00102 48 6b c0 02 imul rax, rax, 2 - 00106 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 0010d 48 03 c8 add rcx, rax - 00110 48 8b c1 mov rax, rcx - 00113 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 00117 c5 fd 11 85 40 - 01 00 00 vmovupd YMMWORD PTR c2$[rbp], ymm0 - -; 413 : register __m256d c3 = _mm256_load_pd((double *)&ans_cur->f64_y[3]); - - 0011f b8 20 00 00 00 mov eax, 32 ; 00000020H - 00124 48 6b c0 03 imul rax, rax, 3 - 00128 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 0012f 48 03 c8 add rcx, rax - 00132 48 8b c1 mov rax, rcx - 00135 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 00139 c5 fd 11 85 80 - 01 00 00 vmovupd YMMWORD PTR c3$[rbp], ymm0 - -; 414 : register __m256d bcol; -; 415 : -; 416 : for (size_t k = 0; k < commonK; k++) { - - 00141 48 c7 85 f8 01 - 00 00 00 00 00 - 00 mov QWORD PTR k$1[rbp], 0 - 0014c eb 11 jmp SHORT $LN4@double_ker -$LN2@double_ker: - 0014e 48 8b 85 f8 01 - 00 00 mov rax, QWORD PTR k$1[rbp] - 00155 48 ff c0 inc rax - 00158 48 89 85 f8 01 - 00 00 mov QWORD PTR k$1[rbp], rax -$LN4@double_ker: - 0015f 48 63 45 44 movsxd rax, DWORD PTR commonK$[rbp] - 00163 48 39 85 f8 01 - 00 00 cmp QWORD PTR k$1[rbp], rax - 0016a 0f 83 de 03 00 - 00 jae $LN3@double_ker - -; 417 : MAT_KERNEL(double) -; 418 : const *right_cur = right + GET_INDEX(commonK, i, k), // GetKernelAddressUnsafe - - 00170 8b 45 44 mov eax, DWORD PTR commonK$[rbp] - 00173 0f af 45 04 imul eax, DWORD PTR i$[rbp] - 00177 48 98 cdqe - 00179 48 03 85 f8 01 - 00 00 add rax, QWORD PTR k$1[rbp] - 00180 48 69 c0 80 00 - 00 00 imul rax, rax, 128 ; 00000080H - 00187 49 8b 8d 18 05 - 00 00 mov rcx, QWORD PTR right$[r13] - 0018e 48 03 c8 add rcx, rax - 00191 48 8b c1 mov rax, rcx - 00194 48 89 85 18 02 - 00 00 mov QWORD PTR right_cur$2[rbp], rax - -; 419 : const *left_cur = - - 0019b 48 63 45 64 movsxd rax, DWORD PTR ansHeight$[rbp] - 0019f 48 0f af 85 f8 - 01 00 00 imul rax, QWORD PTR k$1[rbp] - 001a7 48 63 4d 24 movsxd rcx, DWORD PTR j$[rbp] - 001ab 48 03 c1 add rax, rcx - 001ae 48 69 c0 80 00 - 00 00 imul rax, rax, 128 ; 00000080H - 001b5 49 8b 8d 10 05 - 00 00 mov rcx, QWORD PTR left$[r13] - 001bc 48 03 c8 add rcx, rax - 001bf 48 8b c1 mov rax, rcx - 001c2 48 89 85 38 02 - 00 00 mov QWORD PTR left_cur$3[rbp], rax - -; 420 : left + GET_INDEX(ansHeight, k, j); // GetKernelAddressUnsafe -; 421 : -; 422 : const __m256d a0 = _mm256_load_pd((double *)&left_cur->f64_y[0]); - - 001c9 b8 20 00 00 00 mov eax, 32 ; 00000020H - 001ce 48 6b c0 00 imul rax, rax, 0 - 001d2 48 8b 8d 38 02 - 00 00 mov rcx, QWORD PTR left_cur$3[rbp] - 001d9 48 03 c8 add rcx, rax - 001dc 48 8b c1 mov rax, rcx - 001df c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 001e3 c5 fd 11 85 60 - 02 00 00 vmovupd YMMWORD PTR a0$4[rbp], ymm0 - -; 423 : const __m256d a1 = _mm256_load_pd((double *)&left_cur->f64_y[1]); - - 001eb b8 20 00 00 00 mov eax, 32 ; 00000020H - 001f0 48 6b c0 01 imul rax, rax, 1 - 001f4 48 8b 8d 38 02 - 00 00 mov rcx, QWORD PTR left_cur$3[rbp] - 001fb 48 03 c8 add rcx, rax - 001fe 48 8b c1 mov rax, rcx - 00201 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 00205 c5 fd 11 85 a0 - 02 00 00 vmovupd YMMWORD PTR a1$5[rbp], ymm0 - -; 424 : const __m256d a2 = _mm256_load_pd((double *)&left_cur->f64_y[2]); - - 0020d b8 20 00 00 00 mov eax, 32 ; 00000020H - 00212 48 6b c0 02 imul rax, rax, 2 - 00216 48 8b 8d 38 02 - 00 00 mov rcx, QWORD PTR left_cur$3[rbp] - 0021d 48 03 c8 add rcx, rax - 00220 48 8b c1 mov rax, rcx - 00223 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 00227 c5 fd 11 85 e0 - 02 00 00 vmovupd YMMWORD PTR a2$6[rbp], ymm0 - -; 425 : const __m256d a3 = _mm256_load_pd((double *)&left_cur->f64_y[3]); - - 0022f b8 20 00 00 00 mov eax, 32 ; 00000020H - 00234 48 6b c0 03 imul rax, rax, 3 - 00238 48 8b 8d 38 02 - 00 00 mov rcx, QWORD PTR left_cur$3[rbp] - 0023f 48 03 c8 add rcx, rax - 00242 48 8b c1 mov rax, rcx - 00245 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 00249 c5 fd 11 85 20 - 03 00 00 vmovupd YMMWORD PTR a3$7[rbp], ymm0 - -; 426 : -; 427 : /* Column 0 */ -; 428 : bcol = _mm256_load_pd((double *)&right_cur->f64_y[0]); - - 00251 b8 20 00 00 00 mov eax, 32 ; 00000020H - 00256 48 6b c0 00 imul rax, rax, 0 - 0025a 48 8b 8d 18 02 - 00 00 mov rcx, QWORD PTR right_cur$2[rbp] - 00261 48 03 c8 add rcx, rax - 00264 48 8b c1 mov rax, rcx - 00267 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 0026b c5 fd 11 85 c0 - 01 00 00 vmovupd YMMWORD PTR bcol$[rbp], ymm0 - -; 429 : c0 = _mm256_fmadd_pd(a0, _mm256_permute4x64_pd(bcol, _FMA_SELECT(0)), c0); - - 00273 c4 e3 fd 01 85 - c0 01 00 00 00 vpermpd ymm0, YMMWORD PTR bcol$[rbp], 0 - 0027d c5 fd 10 8d 60 - 02 00 00 vmovupd ymm1, YMMWORD PTR a0$4[rbp] - 00285 c4 e2 fd a8 8d - c0 00 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR c0$[rbp] - 0028e c5 fd 10 c1 vmovupd ymm0, ymm1 - 00292 c5 fd 11 85 c0 - 00 00 00 vmovupd YMMWORD PTR c0$[rbp], ymm0 - -; 430 : c0 = _mm256_fmadd_pd(a1, _mm256_permute4x64_pd(bcol, _FMA_SELECT(1)), c0); - - 0029a c4 e3 fd 01 85 - c0 01 00 00 55 vpermpd ymm0, YMMWORD PTR bcol$[rbp], 85 ; 00000055H - 002a4 c5 fd 10 8d a0 - 02 00 00 vmovupd ymm1, YMMWORD PTR a1$5[rbp] - 002ac c4 e2 fd a8 8d - c0 00 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR c0$[rbp] - 002b5 c5 fd 10 c1 vmovupd ymm0, ymm1 - 002b9 c5 fd 11 85 c0 - 00 00 00 vmovupd YMMWORD PTR c0$[rbp], ymm0 - -; 431 : c0 = _mm256_fmadd_pd(a2, _mm256_permute4x64_pd(bcol, _FMA_SELECT(2)), c0); - - 002c1 c4 e3 fd 01 85 - c0 01 00 00 aa vpermpd ymm0, YMMWORD PTR bcol$[rbp], 170 ; 000000aaH - 002cb c5 fd 10 8d e0 - 02 00 00 vmovupd ymm1, YMMWORD PTR a2$6[rbp] - 002d3 c4 e2 fd a8 8d - c0 00 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR c0$[rbp] - 002dc c5 fd 10 c1 vmovupd ymm0, ymm1 - 002e0 c5 fd 11 85 c0 - 00 00 00 vmovupd YMMWORD PTR c0$[rbp], ymm0 - -; 432 : c0 = _mm256_fmadd_pd(a3, _mm256_permute4x64_pd(bcol, _FMA_SELECT(3)), c0); - - 002e8 c4 e3 fd 01 85 - c0 01 00 00 ff vpermpd ymm0, YMMWORD PTR bcol$[rbp], 255 ; 000000ffH - 002f2 c5 fd 10 8d 20 - 03 00 00 vmovupd ymm1, YMMWORD PTR a3$7[rbp] - 002fa c4 e2 fd a8 8d - c0 00 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR c0$[rbp] - 00303 c5 fd 10 c1 vmovupd ymm0, ymm1 - 00307 c5 fd 11 85 c0 - 00 00 00 vmovupd YMMWORD PTR c0$[rbp], ymm0 - -; 433 : -; 434 : /* Column 1 */ -; 435 : bcol = _mm256_load_pd((double *)&right_cur->f64_y[1]); - - 0030f b8 20 00 00 00 mov eax, 32 ; 00000020H - 00314 48 6b c0 01 imul rax, rax, 1 - 00318 48 8b 8d 18 02 - 00 00 mov rcx, QWORD PTR right_cur$2[rbp] - 0031f 48 03 c8 add rcx, rax - 00322 48 8b c1 mov rax, rcx - 00325 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 00329 c5 fd 11 85 c0 - 01 00 00 vmovupd YMMWORD PTR bcol$[rbp], ymm0 - -; 436 : c1 = _mm256_fmadd_pd(a0, _mm256_permute4x64_pd(bcol, _FMA_SELECT(0)), c1); - - 00331 c4 e3 fd 01 85 - c0 01 00 00 00 vpermpd ymm0, YMMWORD PTR bcol$[rbp], 0 - 0033b c5 fd 10 8d 60 - 02 00 00 vmovupd ymm1, YMMWORD PTR a0$4[rbp] - 00343 c4 e2 fd a8 8d - 00 01 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR c1$[rbp] - 0034c c5 fd 10 c1 vmovupd ymm0, ymm1 - 00350 c5 fd 11 85 00 - 01 00 00 vmovupd YMMWORD PTR c1$[rbp], ymm0 - -; 437 : c1 = _mm256_fmadd_pd(a1, _mm256_permute4x64_pd(bcol, _FMA_SELECT(1)), c1); - - 00358 c4 e3 fd 01 85 - c0 01 00 00 55 vpermpd ymm0, YMMWORD PTR bcol$[rbp], 85 ; 00000055H - 00362 c5 fd 10 8d a0 - 02 00 00 vmovupd ymm1, YMMWORD PTR a1$5[rbp] - 0036a c4 e2 fd a8 8d - 00 01 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR c1$[rbp] - 00373 c5 fd 10 c1 vmovupd ymm0, ymm1 - 00377 c5 fd 11 85 00 - 01 00 00 vmovupd YMMWORD PTR c1$[rbp], ymm0 - -; 438 : c1 = _mm256_fmadd_pd(a2, _mm256_permute4x64_pd(bcol, _FMA_SELECT(2)), c1); - - 0037f c4 e3 fd 01 85 - c0 01 00 00 aa vpermpd ymm0, YMMWORD PTR bcol$[rbp], 170 ; 000000aaH - 00389 c5 fd 10 8d e0 - 02 00 00 vmovupd ymm1, YMMWORD PTR a2$6[rbp] - 00391 c4 e2 fd a8 8d - 00 01 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR c1$[rbp] - 0039a c5 fd 10 c1 vmovupd ymm0, ymm1 - 0039e c5 fd 11 85 00 - 01 00 00 vmovupd YMMWORD PTR c1$[rbp], ymm0 - -; 439 : c1 = _mm256_fmadd_pd(a3, _mm256_permute4x64_pd(bcol, _FMA_SELECT(3)), c1); - - 003a6 c4 e3 fd 01 85 - c0 01 00 00 ff vpermpd ymm0, YMMWORD PTR bcol$[rbp], 255 ; 000000ffH - 003b0 c5 fd 10 8d 20 - 03 00 00 vmovupd ymm1, YMMWORD PTR a3$7[rbp] - 003b8 c4 e2 fd a8 8d - 00 01 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR c1$[rbp] - 003c1 c5 fd 10 c1 vmovupd ymm0, ymm1 - 003c5 c5 fd 11 85 00 - 01 00 00 vmovupd YMMWORD PTR c1$[rbp], ymm0 - -; 440 : -; 441 : /* Column 2 */ -; 442 : bcol = _mm256_load_pd((double *)&right_cur->f64_y[2]); - - 003cd b8 20 00 00 00 mov eax, 32 ; 00000020H - 003d2 48 6b c0 02 imul rax, rax, 2 - 003d6 48 8b 8d 18 02 - 00 00 mov rcx, QWORD PTR right_cur$2[rbp] - 003dd 48 03 c8 add rcx, rax - 003e0 48 8b c1 mov rax, rcx - 003e3 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 003e7 c5 fd 11 85 c0 - 01 00 00 vmovupd YMMWORD PTR bcol$[rbp], ymm0 - -; 443 : c2 = _mm256_fmadd_pd(a0, _mm256_permute4x64_pd(bcol, _FMA_SELECT(0)), c2); - - 003ef c4 e3 fd 01 85 - c0 01 00 00 00 vpermpd ymm0, YMMWORD PTR bcol$[rbp], 0 - 003f9 c5 fd 10 8d 60 - 02 00 00 vmovupd ymm1, YMMWORD PTR a0$4[rbp] - 00401 c4 e2 fd a8 8d - 40 01 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR c2$[rbp] - 0040a c5 fd 10 c1 vmovupd ymm0, ymm1 - 0040e c5 fd 11 85 40 - 01 00 00 vmovupd YMMWORD PTR c2$[rbp], ymm0 - -; 444 : c2 = _mm256_fmadd_pd(a1, _mm256_permute4x64_pd(bcol, _FMA_SELECT(1)), c2); - - 00416 c4 e3 fd 01 85 - c0 01 00 00 55 vpermpd ymm0, YMMWORD PTR bcol$[rbp], 85 ; 00000055H - 00420 c5 fd 10 8d a0 - 02 00 00 vmovupd ymm1, YMMWORD PTR a1$5[rbp] - 00428 c4 e2 fd a8 8d - 40 01 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR c2$[rbp] - 00431 c5 fd 10 c1 vmovupd ymm0, ymm1 - 00435 c5 fd 11 85 40 - 01 00 00 vmovupd YMMWORD PTR c2$[rbp], ymm0 - -; 445 : c2 = _mm256_fmadd_pd(a2, _mm256_permute4x64_pd(bcol, _FMA_SELECT(2)), c2); - - 0043d c4 e3 fd 01 85 - c0 01 00 00 aa vpermpd ymm0, YMMWORD PTR bcol$[rbp], 170 ; 000000aaH - 00447 c5 fd 10 8d e0 - 02 00 00 vmovupd ymm1, YMMWORD PTR a2$6[rbp] - 0044f c4 e2 fd a8 8d - 40 01 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR c2$[rbp] - 00458 c5 fd 10 c1 vmovupd ymm0, ymm1 - 0045c c5 fd 11 85 40 - 01 00 00 vmovupd YMMWORD PTR c2$[rbp], ymm0 - -; 446 : c2 = _mm256_fmadd_pd(a3, _mm256_permute4x64_pd(bcol, _FMA_SELECT(3)), c2); - - 00464 c4 e3 fd 01 85 - c0 01 00 00 ff vpermpd ymm0, YMMWORD PTR bcol$[rbp], 255 ; 000000ffH - 0046e c5 fd 10 8d 20 - 03 00 00 vmovupd ymm1, YMMWORD PTR a3$7[rbp] - 00476 c4 e2 fd a8 8d - 40 01 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR c2$[rbp] - 0047f c5 fd 10 c1 vmovupd ymm0, ymm1 - 00483 c5 fd 11 85 40 - 01 00 00 vmovupd YMMWORD PTR c2$[rbp], ymm0 - -; 447 : -; 448 : /* Column 3 */ -; 449 : bcol = _mm256_load_pd((double *)&right_cur->f64_y[3]); - - 0048b b8 20 00 00 00 mov eax, 32 ; 00000020H - 00490 48 6b c0 03 imul rax, rax, 3 - 00494 48 8b 8d 18 02 - 00 00 mov rcx, QWORD PTR right_cur$2[rbp] - 0049b 48 03 c8 add rcx, rax - 0049e 48 8b c1 mov rax, rcx - 004a1 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 004a5 c5 fd 11 85 c0 - 01 00 00 vmovupd YMMWORD PTR bcol$[rbp], ymm0 - -; 450 : c3 = _mm256_fmadd_pd(a0, _mm256_permute4x64_pd(bcol, _FMA_SELECT(0)), c3); - - 004ad c4 e3 fd 01 85 - c0 01 00 00 00 vpermpd ymm0, YMMWORD PTR bcol$[rbp], 0 - 004b7 c5 fd 10 8d 60 - 02 00 00 vmovupd ymm1, YMMWORD PTR a0$4[rbp] - 004bf c4 e2 fd a8 8d - 80 01 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR c3$[rbp] - 004c8 c5 fd 10 c1 vmovupd ymm0, ymm1 - 004cc c5 fd 11 85 80 - 01 00 00 vmovupd YMMWORD PTR c3$[rbp], ymm0 - -; 451 : c3 = _mm256_fmadd_pd(a1, _mm256_permute4x64_pd(bcol, _FMA_SELECT(1)), c3); - - 004d4 c4 e3 fd 01 85 - c0 01 00 00 55 vpermpd ymm0, YMMWORD PTR bcol$[rbp], 85 ; 00000055H - 004de c5 fd 10 8d a0 - 02 00 00 vmovupd ymm1, YMMWORD PTR a1$5[rbp] - 004e6 c4 e2 fd a8 8d - 80 01 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR c3$[rbp] - 004ef c5 fd 10 c1 vmovupd ymm0, ymm1 - 004f3 c5 fd 11 85 80 - 01 00 00 vmovupd YMMWORD PTR c3$[rbp], ymm0 - -; 452 : c3 = _mm256_fmadd_pd(a2, _mm256_permute4x64_pd(bcol, _FMA_SELECT(2)), c3); - - 004fb c4 e3 fd 01 85 - c0 01 00 00 aa vpermpd ymm0, YMMWORD PTR bcol$[rbp], 170 ; 000000aaH - 00505 c5 fd 10 8d e0 - 02 00 00 vmovupd ymm1, YMMWORD PTR a2$6[rbp] - 0050d c4 e2 fd a8 8d - 80 01 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR c3$[rbp] - 00516 c5 fd 10 c1 vmovupd ymm0, ymm1 - 0051a c5 fd 11 85 80 - 01 00 00 vmovupd YMMWORD PTR c3$[rbp], ymm0 - -; 453 : c3 = _mm256_fmadd_pd(a3, _mm256_permute4x64_pd(bcol, _FMA_SELECT(3)), c3); - - 00522 c4 e3 fd 01 85 - c0 01 00 00 ff vpermpd ymm0, YMMWORD PTR bcol$[rbp], 255 ; 000000ffH - 0052c c5 fd 10 8d 20 - 03 00 00 vmovupd ymm1, YMMWORD PTR a3$7[rbp] - 00534 c4 e2 fd a8 8d - 80 01 00 00 vfmadd213pd ymm1, ymm0, YMMWORD PTR c3$[rbp] - 0053d c5 fd 10 c1 vmovupd ymm0, ymm1 - 00541 c5 fd 11 85 80 - 01 00 00 vmovupd YMMWORD PTR c3$[rbp], ymm0 - -; 454 : } - - 00549 e9 00 fc ff ff jmp $LN2@double_ker -$LN3@double_ker: - -; 455 : -; 456 : _mm256_store_pd((double *)&ans_cur->f64_y[0], c0); - - 0054e b8 20 00 00 00 mov eax, 32 ; 00000020H - 00553 48 6b c0 00 imul rax, rax, 0 - 00557 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 0055e 48 03 c8 add rcx, rax - 00561 48 8b c1 mov rax, rcx - 00564 c5 fd 10 85 c0 - 00 00 00 vmovupd ymm0, YMMWORD PTR c0$[rbp] - 0056c c5 fd 11 00 vmovupd YMMWORD PTR [rax], ymm0 - -; 457 : _mm256_store_pd((double *)&ans_cur->f64_y[1], c1); - - 00570 b8 20 00 00 00 mov eax, 32 ; 00000020H - 00575 48 6b c0 01 imul rax, rax, 1 - 00579 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 00580 48 03 c8 add rcx, rax - 00583 48 8b c1 mov rax, rcx - 00586 c5 fd 10 85 00 - 01 00 00 vmovupd ymm0, YMMWORD PTR c1$[rbp] - 0058e c5 fd 11 00 vmovupd YMMWORD PTR [rax], ymm0 - -; 458 : _mm256_store_pd((double *)&ans_cur->f64_y[2], c2); - - 00592 b8 20 00 00 00 mov eax, 32 ; 00000020H - 00597 48 6b c0 02 imul rax, rax, 2 - 0059b 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 005a2 48 03 c8 add rcx, rax - 005a5 48 8b c1 mov rax, rcx - 005a8 c5 fd 10 85 40 - 01 00 00 vmovupd ymm0, YMMWORD PTR c2$[rbp] - 005b0 c5 fd 11 00 vmovupd YMMWORD PTR [rax], ymm0 - -; 459 : _mm256_store_pd((double *)&ans_cur->f64_y[3], c3); - - 005b4 b8 20 00 00 00 mov eax, 32 ; 00000020H - 005b9 48 6b c0 03 imul rax, rax, 3 - 005bd 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 005c4 48 03 c8 add rcx, rax - 005c7 48 8b c1 mov rax, rcx - 005ca c5 fd 10 85 80 - 01 00 00 vmovupd ymm0, YMMWORD PTR c3$[rbp] - 005d2 c5 fd 11 00 vmovupd YMMWORD PTR [rax], ymm0 - -; 460 : } - - 005d6 49 8d a5 f0 04 - 00 00 lea rsp, QWORD PTR [r13+1264] - 005dd 5f pop rdi - 005de 5d pop rbp - 005df 41 5d pop r13 - 005e1 c3 ret 0 -double_kernel_tile_fma_avx_fma ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.fma_tile.x86.c -; COMDAT double_kernel_tile_fma_avx -_TEXT SEGMENT -i$ = 4 -j$ = 36 -commonK$ = 68 -ansHeight$ = 100 -ans_cur$ = 136 -c0$ = 192 -c1$ = 256 -c2$ = 320 -c3$ = 384 -bcol$ = 448 -k$1 = 504 -right_cur$2 = 536 -left_cur$3 = 568 -a0$4 = 608 -a1$5 = 672 -a2$6 = 736 -a3$7 = 800 -left$ = 1296 -right$ = 1304 -ans$ = 1312 -enumeration$ = 1320 -double_kernel_tile_fma_avx PROC ; COMDAT - -; 323 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 41 55 push r13 - 00016 55 push rbp - 00017 57 push rdi - 00018 48 81 ec 10 05 - 00 00 sub rsp, 1296 ; 00000510H - 0001f 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00024 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00029 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H - 0002d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__31D20E98_m@fma_tile@x86@c - 00034 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00039 90 npad 1 - -; 324 : int i = enumeration->m128_i32[0]; - - 0003a b8 04 00 00 00 mov eax, 4 - 0003f 48 6b c0 00 imul rax, rax, 0 - 00043 49 8b 8d 28 05 - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 0004a 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 0004d 89 45 04 mov DWORD PTR i$[rbp], eax - -; 325 : int j = enumeration->m128_i32[1]; - - 00050 b8 04 00 00 00 mov eax, 4 - 00055 48 6b c0 01 imul rax, rax, 1 - 00059 49 8b 8d 28 05 - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 00060 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 00063 89 45 24 mov DWORD PTR j$[rbp], eax - -; 326 : int commonK = enumeration->m128_i32[2]; - - 00066 b8 04 00 00 00 mov eax, 4 - 0006b 48 6b c0 02 imul rax, rax, 2 - 0006f 49 8b 8d 28 05 - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 00076 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 00079 89 45 44 mov DWORD PTR commonK$[rbp], eax - -; 327 : int ansHeight = enumeration->m128_i32[3]; - - 0007c b8 04 00 00 00 mov eax, 4 - 00081 48 6b c0 03 imul rax, rax, 3 - 00085 49 8b 8d 28 05 - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 0008c 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 0008f 89 45 64 mov DWORD PTR ansHeight$[rbp], eax - -; 328 : -; 329 : MAT_KERNEL(double) -; 330 : const *ans_cur = ans + GET_INDEX(ansHeight, i, j); // GetKernelAddressUnsafe - - 00092 8b 45 64 mov eax, DWORD PTR ansHeight$[rbp] - 00095 0f af 45 04 imul eax, DWORD PTR i$[rbp] - 00099 03 45 24 add eax, DWORD PTR j$[rbp] - 0009c 48 98 cdqe - 0009e 48 69 c0 80 00 - 00 00 imul rax, rax, 128 ; 00000080H - 000a5 49 8b 8d 20 05 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000ac 48 03 c8 add rcx, rax - 000af 48 8b c1 mov rax, rcx - 000b2 48 89 85 88 00 - 00 00 mov QWORD PTR ans_cur$[rbp], rax - -; 331 : -; 332 : register __m256d c0 = _mm256_load_pd((double *)&ans_cur->f64_y[0]); - - 000b9 b8 20 00 00 00 mov eax, 32 ; 00000020H - 000be 48 6b c0 00 imul rax, rax, 0 - 000c2 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 000c9 48 03 c8 add rcx, rax - 000cc 48 8b c1 mov rax, rcx - 000cf c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 000d3 c5 fd 11 85 c0 - 00 00 00 vmovupd YMMWORD PTR c0$[rbp], ymm0 - -; 333 : register __m256d c1 = _mm256_load_pd((double *)&ans_cur->f64_y[1]); - - 000db b8 20 00 00 00 mov eax, 32 ; 00000020H - 000e0 48 6b c0 01 imul rax, rax, 1 - 000e4 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 000eb 48 03 c8 add rcx, rax - 000ee 48 8b c1 mov rax, rcx - 000f1 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 000f5 c5 fd 11 85 00 - 01 00 00 vmovupd YMMWORD PTR c1$[rbp], ymm0 - -; 334 : register __m256d c2 = _mm256_load_pd((double *)&ans_cur->f64_y[2]); - - 000fd b8 20 00 00 00 mov eax, 32 ; 00000020H - 00102 48 6b c0 02 imul rax, rax, 2 - 00106 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 0010d 48 03 c8 add rcx, rax - 00110 48 8b c1 mov rax, rcx - 00113 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 00117 c5 fd 11 85 40 - 01 00 00 vmovupd YMMWORD PTR c2$[rbp], ymm0 - -; 335 : register __m256d c3 = _mm256_load_pd((double *)&ans_cur->f64_y[3]); - - 0011f b8 20 00 00 00 mov eax, 32 ; 00000020H - 00124 48 6b c0 03 imul rax, rax, 3 - 00128 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 0012f 48 03 c8 add rcx, rax - 00132 48 8b c1 mov rax, rcx - 00135 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 00139 c5 fd 11 85 80 - 01 00 00 vmovupd YMMWORD PTR c3$[rbp], ymm0 - -; 336 : register __m256d bcol; -; 337 : -; 338 : for (size_t k = 0; k < commonK; k++) { - - 00141 48 c7 85 f8 01 - 00 00 00 00 00 - 00 mov QWORD PTR k$1[rbp], 0 - 0014c eb 11 jmp SHORT $LN4@double_ker -$LN2@double_ker: - 0014e 48 8b 85 f8 01 - 00 00 mov rax, QWORD PTR k$1[rbp] - 00155 48 ff c0 inc rax - 00158 48 89 85 f8 01 - 00 00 mov QWORD PTR k$1[rbp], rax -$LN4@double_ker: - 0015f 48 63 45 44 movsxd rax, DWORD PTR commonK$[rbp] - 00163 48 39 85 f8 01 - 00 00 cmp QWORD PTR k$1[rbp], rax - 0016a 0f 83 0e 04 00 - 00 jae $LN3@double_ker - -; 339 : MAT_KERNEL(double) -; 340 : const *right_cur = right + GET_INDEX(commonK, i, k), // GetKernelAddressUnsafe - - 00170 8b 45 44 mov eax, DWORD PTR commonK$[rbp] - 00173 0f af 45 04 imul eax, DWORD PTR i$[rbp] - 00177 48 98 cdqe - 00179 48 03 85 f8 01 - 00 00 add rax, QWORD PTR k$1[rbp] - 00180 48 69 c0 80 00 - 00 00 imul rax, rax, 128 ; 00000080H - 00187 49 8b 8d 18 05 - 00 00 mov rcx, QWORD PTR right$[r13] - 0018e 48 03 c8 add rcx, rax - 00191 48 8b c1 mov rax, rcx - 00194 48 89 85 18 02 - 00 00 mov QWORD PTR right_cur$2[rbp], rax - -; 341 : const *left_cur = - - 0019b 48 63 45 64 movsxd rax, DWORD PTR ansHeight$[rbp] - 0019f 48 0f af 85 f8 - 01 00 00 imul rax, QWORD PTR k$1[rbp] - 001a7 48 63 4d 24 movsxd rcx, DWORD PTR j$[rbp] - 001ab 48 03 c1 add rax, rcx - 001ae 48 69 c0 80 00 - 00 00 imul rax, rax, 128 ; 00000080H - 001b5 49 8b 8d 10 05 - 00 00 mov rcx, QWORD PTR left$[r13] - 001bc 48 03 c8 add rcx, rax - 001bf 48 8b c1 mov rax, rcx - 001c2 48 89 85 38 02 - 00 00 mov QWORD PTR left_cur$3[rbp], rax - -; 342 : left + GET_INDEX(ansHeight, k, j); // GetKernelAddressUnsafe -; 343 : -; 344 : const __m256d a0 = _mm256_load_pd((double *)&left_cur->f64_y[0]); - - 001c9 b8 20 00 00 00 mov eax, 32 ; 00000020H - 001ce 48 6b c0 00 imul rax, rax, 0 - 001d2 48 8b 8d 38 02 - 00 00 mov rcx, QWORD PTR left_cur$3[rbp] - 001d9 48 03 c8 add rcx, rax - 001dc 48 8b c1 mov rax, rcx - 001df c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 001e3 c5 fd 11 85 60 - 02 00 00 vmovupd YMMWORD PTR a0$4[rbp], ymm0 - -; 345 : const __m256d a1 = _mm256_load_pd((double *)&left_cur->f64_y[1]); - - 001eb b8 20 00 00 00 mov eax, 32 ; 00000020H - 001f0 48 6b c0 01 imul rax, rax, 1 - 001f4 48 8b 8d 38 02 - 00 00 mov rcx, QWORD PTR left_cur$3[rbp] - 001fb 48 03 c8 add rcx, rax - 001fe 48 8b c1 mov rax, rcx - 00201 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 00205 c5 fd 11 85 a0 - 02 00 00 vmovupd YMMWORD PTR a1$5[rbp], ymm0 - -; 346 : const __m256d a2 = _mm256_load_pd((double *)&left_cur->f64_y[2]); - - 0020d b8 20 00 00 00 mov eax, 32 ; 00000020H - 00212 48 6b c0 02 imul rax, rax, 2 - 00216 48 8b 8d 38 02 - 00 00 mov rcx, QWORD PTR left_cur$3[rbp] - 0021d 48 03 c8 add rcx, rax - 00220 48 8b c1 mov rax, rcx - 00223 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 00227 c5 fd 11 85 e0 - 02 00 00 vmovupd YMMWORD PTR a2$6[rbp], ymm0 - -; 347 : const __m256d a3 = _mm256_load_pd((double *)&left_cur->f64_y[3]); - - 0022f b8 20 00 00 00 mov eax, 32 ; 00000020H - 00234 48 6b c0 03 imul rax, rax, 3 - 00238 48 8b 8d 38 02 - 00 00 mov rcx, QWORD PTR left_cur$3[rbp] - 0023f 48 03 c8 add rcx, rax - 00242 48 8b c1 mov rax, rcx - 00245 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 00249 c5 fd 11 85 20 - 03 00 00 vmovupd YMMWORD PTR a3$7[rbp], ymm0 - -; 348 : -; 349 : /* Column 0 */ -; 350 : bcol = _mm256_load_pd((double *)&right_cur->f64_y[0]); - - 00251 b8 20 00 00 00 mov eax, 32 ; 00000020H - 00256 48 6b c0 00 imul rax, rax, 0 - 0025a 48 8b 8d 18 02 - 00 00 mov rcx, QWORD PTR right_cur$2[rbp] - 00261 48 03 c8 add rcx, rax - 00264 48 8b c1 mov rax, rcx - 00267 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 0026b c5 fd 11 85 c0 - 01 00 00 vmovupd YMMWORD PTR bcol$[rbp], ymm0 - -; 351 : c0 = _mm256_add_pd(c0, - - 00273 c4 e3 fd 01 85 - c0 01 00 00 00 vpermpd ymm0, YMMWORD PTR bcol$[rbp], 0 - 0027d c5 fd 10 8d 60 - 02 00 00 vmovupd ymm1, YMMWORD PTR a0$4[rbp] - 00285 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 00289 c5 fd 10 8d c0 - 00 00 00 vmovupd ymm1, YMMWORD PTR c0$[rbp] - 00291 c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 00295 c5 fd 11 85 c0 - 00 00 00 vmovupd YMMWORD PTR c0$[rbp], ymm0 - -; 352 : _mm256_mul_pd(a0, _mm256_permute4x64_pd(bcol, _FMA_SELECT(0)))); -; 353 : c0 = _mm256_add_pd(c0, - - 0029d c4 e3 fd 01 85 - c0 01 00 00 55 vpermpd ymm0, YMMWORD PTR bcol$[rbp], 85 ; 00000055H - 002a7 c5 fd 10 8d a0 - 02 00 00 vmovupd ymm1, YMMWORD PTR a1$5[rbp] - 002af c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 002b3 c5 fd 10 8d c0 - 00 00 00 vmovupd ymm1, YMMWORD PTR c0$[rbp] - 002bb c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 002bf c5 fd 11 85 c0 - 00 00 00 vmovupd YMMWORD PTR c0$[rbp], ymm0 - -; 354 : _mm256_mul_pd(a1, _mm256_permute4x64_pd(bcol, _FMA_SELECT(1)))); -; 355 : c0 = _mm256_add_pd(c0, - - 002c7 c4 e3 fd 01 85 - c0 01 00 00 aa vpermpd ymm0, YMMWORD PTR bcol$[rbp], 170 ; 000000aaH - 002d1 c5 fd 10 8d e0 - 02 00 00 vmovupd ymm1, YMMWORD PTR a2$6[rbp] - 002d9 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 002dd c5 fd 10 8d c0 - 00 00 00 vmovupd ymm1, YMMWORD PTR c0$[rbp] - 002e5 c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 002e9 c5 fd 11 85 c0 - 00 00 00 vmovupd YMMWORD PTR c0$[rbp], ymm0 - -; 356 : _mm256_mul_pd(a2, _mm256_permute4x64_pd(bcol, _FMA_SELECT(2)))); -; 357 : c0 = _mm256_add_pd(c0, - - 002f1 c4 e3 fd 01 85 - c0 01 00 00 ff vpermpd ymm0, YMMWORD PTR bcol$[rbp], 255 ; 000000ffH - 002fb c5 fd 10 8d 20 - 03 00 00 vmovupd ymm1, YMMWORD PTR a3$7[rbp] - 00303 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 00307 c5 fd 10 8d c0 - 00 00 00 vmovupd ymm1, YMMWORD PTR c0$[rbp] - 0030f c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 00313 c5 fd 11 85 c0 - 00 00 00 vmovupd YMMWORD PTR c0$[rbp], ymm0 - -; 358 : _mm256_mul_pd(a3, _mm256_permute4x64_pd(bcol, _FMA_SELECT(3)))); -; 359 : -; 360 : /* Column 1 */ -; 361 : bcol = _mm256_load_pd((double *)&right_cur->f64_y[1]); - - 0031b b8 20 00 00 00 mov eax, 32 ; 00000020H - 00320 48 6b c0 01 imul rax, rax, 1 - 00324 48 8b 8d 18 02 - 00 00 mov rcx, QWORD PTR right_cur$2[rbp] - 0032b 48 03 c8 add rcx, rax - 0032e 48 8b c1 mov rax, rcx - 00331 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 00335 c5 fd 11 85 c0 - 01 00 00 vmovupd YMMWORD PTR bcol$[rbp], ymm0 - -; 362 : c1 = _mm256_add_pd(c1, - - 0033d c4 e3 fd 01 85 - c0 01 00 00 00 vpermpd ymm0, YMMWORD PTR bcol$[rbp], 0 - 00347 c5 fd 10 8d 60 - 02 00 00 vmovupd ymm1, YMMWORD PTR a0$4[rbp] - 0034f c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 00353 c5 fd 10 8d 00 - 01 00 00 vmovupd ymm1, YMMWORD PTR c1$[rbp] - 0035b c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 0035f c5 fd 11 85 00 - 01 00 00 vmovupd YMMWORD PTR c1$[rbp], ymm0 - -; 363 : _mm256_mul_pd(a0, _mm256_permute4x64_pd(bcol, _FMA_SELECT(0)))); -; 364 : c1 = _mm256_add_pd(c1, - - 00367 c4 e3 fd 01 85 - c0 01 00 00 55 vpermpd ymm0, YMMWORD PTR bcol$[rbp], 85 ; 00000055H - 00371 c5 fd 10 8d a0 - 02 00 00 vmovupd ymm1, YMMWORD PTR a1$5[rbp] - 00379 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 0037d c5 fd 10 8d 00 - 01 00 00 vmovupd ymm1, YMMWORD PTR c1$[rbp] - 00385 c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 00389 c5 fd 11 85 00 - 01 00 00 vmovupd YMMWORD PTR c1$[rbp], ymm0 - -; 365 : _mm256_mul_pd(a1, _mm256_permute4x64_pd(bcol, _FMA_SELECT(1)))); -; 366 : c1 = _mm256_add_pd(c1, - - 00391 c4 e3 fd 01 85 - c0 01 00 00 aa vpermpd ymm0, YMMWORD PTR bcol$[rbp], 170 ; 000000aaH - 0039b c5 fd 10 8d e0 - 02 00 00 vmovupd ymm1, YMMWORD PTR a2$6[rbp] - 003a3 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 003a7 c5 fd 10 8d 00 - 01 00 00 vmovupd ymm1, YMMWORD PTR c1$[rbp] - 003af c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 003b3 c5 fd 11 85 00 - 01 00 00 vmovupd YMMWORD PTR c1$[rbp], ymm0 - -; 367 : _mm256_mul_pd(a2, _mm256_permute4x64_pd(bcol, _FMA_SELECT(2)))); -; 368 : c1 = _mm256_add_pd(c1, - - 003bb c4 e3 fd 01 85 - c0 01 00 00 ff vpermpd ymm0, YMMWORD PTR bcol$[rbp], 255 ; 000000ffH - 003c5 c5 fd 10 8d 20 - 03 00 00 vmovupd ymm1, YMMWORD PTR a3$7[rbp] - 003cd c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 003d1 c5 fd 10 8d 00 - 01 00 00 vmovupd ymm1, YMMWORD PTR c1$[rbp] - 003d9 c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 003dd c5 fd 11 85 00 - 01 00 00 vmovupd YMMWORD PTR c1$[rbp], ymm0 - -; 369 : _mm256_mul_pd(a3, _mm256_permute4x64_pd(bcol, _FMA_SELECT(3)))); -; 370 : -; 371 : /* Column 2 */ -; 372 : bcol = _mm256_load_pd((double *)&right_cur->f64_y[2]); - - 003e5 b8 20 00 00 00 mov eax, 32 ; 00000020H - 003ea 48 6b c0 02 imul rax, rax, 2 - 003ee 48 8b 8d 18 02 - 00 00 mov rcx, QWORD PTR right_cur$2[rbp] - 003f5 48 03 c8 add rcx, rax - 003f8 48 8b c1 mov rax, rcx - 003fb c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 003ff c5 fd 11 85 c0 - 01 00 00 vmovupd YMMWORD PTR bcol$[rbp], ymm0 - -; 373 : c2 = _mm256_add_pd(c2, - - 00407 c4 e3 fd 01 85 - c0 01 00 00 00 vpermpd ymm0, YMMWORD PTR bcol$[rbp], 0 - 00411 c5 fd 10 8d 60 - 02 00 00 vmovupd ymm1, YMMWORD PTR a0$4[rbp] - 00419 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 0041d c5 fd 10 8d 40 - 01 00 00 vmovupd ymm1, YMMWORD PTR c2$[rbp] - 00425 c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 00429 c5 fd 11 85 40 - 01 00 00 vmovupd YMMWORD PTR c2$[rbp], ymm0 - -; 374 : _mm256_mul_pd(a0, _mm256_permute4x64_pd(bcol, _FMA_SELECT(0)))); -; 375 : c2 = _mm256_add_pd(c2, - - 00431 c4 e3 fd 01 85 - c0 01 00 00 55 vpermpd ymm0, YMMWORD PTR bcol$[rbp], 85 ; 00000055H - 0043b c5 fd 10 8d a0 - 02 00 00 vmovupd ymm1, YMMWORD PTR a1$5[rbp] - 00443 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 00447 c5 fd 10 8d 40 - 01 00 00 vmovupd ymm1, YMMWORD PTR c2$[rbp] - 0044f c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 00453 c5 fd 11 85 40 - 01 00 00 vmovupd YMMWORD PTR c2$[rbp], ymm0 - -; 376 : _mm256_mul_pd(a1, _mm256_permute4x64_pd(bcol, _FMA_SELECT(1)))); -; 377 : c2 = _mm256_add_pd(c2, - - 0045b c4 e3 fd 01 85 - c0 01 00 00 aa vpermpd ymm0, YMMWORD PTR bcol$[rbp], 170 ; 000000aaH - 00465 c5 fd 10 8d e0 - 02 00 00 vmovupd ymm1, YMMWORD PTR a2$6[rbp] - 0046d c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 00471 c5 fd 10 8d 40 - 01 00 00 vmovupd ymm1, YMMWORD PTR c2$[rbp] - 00479 c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 0047d c5 fd 11 85 40 - 01 00 00 vmovupd YMMWORD PTR c2$[rbp], ymm0 - -; 378 : _mm256_mul_pd(a2, _mm256_permute4x64_pd(bcol, _FMA_SELECT(2)))); -; 379 : c2 = _mm256_add_pd(c2, - - 00485 c4 e3 fd 01 85 - c0 01 00 00 ff vpermpd ymm0, YMMWORD PTR bcol$[rbp], 255 ; 000000ffH - 0048f c5 fd 10 8d 20 - 03 00 00 vmovupd ymm1, YMMWORD PTR a3$7[rbp] - 00497 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 0049b c5 fd 10 8d 40 - 01 00 00 vmovupd ymm1, YMMWORD PTR c2$[rbp] - 004a3 c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 004a7 c5 fd 11 85 40 - 01 00 00 vmovupd YMMWORD PTR c2$[rbp], ymm0 - -; 380 : _mm256_mul_pd(a3, _mm256_permute4x64_pd(bcol, _FMA_SELECT(3)))); -; 381 : -; 382 : /* Column 3 */ -; 383 : bcol = _mm256_load_pd((double *)&right_cur->f64_y[3]); - - 004af b8 20 00 00 00 mov eax, 32 ; 00000020H - 004b4 48 6b c0 03 imul rax, rax, 3 - 004b8 48 8b 8d 18 02 - 00 00 mov rcx, QWORD PTR right_cur$2[rbp] - 004bf 48 03 c8 add rcx, rax - 004c2 48 8b c1 mov rax, rcx - 004c5 c5 fd 10 00 vmovupd ymm0, YMMWORD PTR [rax] - 004c9 c5 fd 11 85 c0 - 01 00 00 vmovupd YMMWORD PTR bcol$[rbp], ymm0 - -; 384 : c3 = _mm256_add_pd(c3, - - 004d1 c4 e3 fd 01 85 - c0 01 00 00 00 vpermpd ymm0, YMMWORD PTR bcol$[rbp], 0 - 004db c5 fd 10 8d 60 - 02 00 00 vmovupd ymm1, YMMWORD PTR a0$4[rbp] - 004e3 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 004e7 c5 fd 10 8d 80 - 01 00 00 vmovupd ymm1, YMMWORD PTR c3$[rbp] - 004ef c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 004f3 c5 fd 11 85 80 - 01 00 00 vmovupd YMMWORD PTR c3$[rbp], ymm0 - -; 385 : _mm256_mul_pd(a0, _mm256_permute4x64_pd(bcol, _FMA_SELECT(0)))); -; 386 : c3 = _mm256_add_pd(c3, - - 004fb c4 e3 fd 01 85 - c0 01 00 00 55 vpermpd ymm0, YMMWORD PTR bcol$[rbp], 85 ; 00000055H - 00505 c5 fd 10 8d a0 - 02 00 00 vmovupd ymm1, YMMWORD PTR a1$5[rbp] - 0050d c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 00511 c5 fd 10 8d 80 - 01 00 00 vmovupd ymm1, YMMWORD PTR c3$[rbp] - 00519 c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 0051d c5 fd 11 85 80 - 01 00 00 vmovupd YMMWORD PTR c3$[rbp], ymm0 - -; 387 : _mm256_mul_pd(a1, _mm256_permute4x64_pd(bcol, _FMA_SELECT(1)))); -; 388 : c3 = _mm256_add_pd(c3, - - 00525 c4 e3 fd 01 85 - c0 01 00 00 aa vpermpd ymm0, YMMWORD PTR bcol$[rbp], 170 ; 000000aaH - 0052f c5 fd 10 8d e0 - 02 00 00 vmovupd ymm1, YMMWORD PTR a2$6[rbp] - 00537 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 0053b c5 fd 10 8d 80 - 01 00 00 vmovupd ymm1, YMMWORD PTR c3$[rbp] - 00543 c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 00547 c5 fd 11 85 80 - 01 00 00 vmovupd YMMWORD PTR c3$[rbp], ymm0 - -; 389 : _mm256_mul_pd(a2, _mm256_permute4x64_pd(bcol, _FMA_SELECT(2)))); -; 390 : c3 = _mm256_add_pd(c3, - - 0054f c4 e3 fd 01 85 - c0 01 00 00 ff vpermpd ymm0, YMMWORD PTR bcol$[rbp], 255 ; 000000ffH - 00559 c5 fd 10 8d 20 - 03 00 00 vmovupd ymm1, YMMWORD PTR a3$7[rbp] - 00561 c5 f5 59 c0 vmulpd ymm0, ymm1, ymm0 - 00565 c5 fd 10 8d 80 - 01 00 00 vmovupd ymm1, YMMWORD PTR c3$[rbp] - 0056d c5 f5 58 c0 vaddpd ymm0, ymm1, ymm0 - 00571 c5 fd 11 85 80 - 01 00 00 vmovupd YMMWORD PTR c3$[rbp], ymm0 - -; 391 : _mm256_mul_pd(a3, _mm256_permute4x64_pd(bcol, _FMA_SELECT(3)))); -; 392 : } - - 00579 e9 d0 fb ff ff jmp $LN2@double_ker -$LN3@double_ker: - -; 393 : -; 394 : _mm256_store_pd((double *)&ans_cur->f64_y[0], c0); - - 0057e b8 20 00 00 00 mov eax, 32 ; 00000020H - 00583 48 6b c0 00 imul rax, rax, 0 - 00587 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 0058e 48 03 c8 add rcx, rax - 00591 48 8b c1 mov rax, rcx - 00594 c5 fd 10 85 c0 - 00 00 00 vmovupd ymm0, YMMWORD PTR c0$[rbp] - 0059c c5 fd 11 00 vmovupd YMMWORD PTR [rax], ymm0 - -; 395 : _mm256_store_pd((double *)&ans_cur->f64_y[1], c1); - - 005a0 b8 20 00 00 00 mov eax, 32 ; 00000020H - 005a5 48 6b c0 01 imul rax, rax, 1 - 005a9 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 005b0 48 03 c8 add rcx, rax - 005b3 48 8b c1 mov rax, rcx - 005b6 c5 fd 10 85 00 - 01 00 00 vmovupd ymm0, YMMWORD PTR c1$[rbp] - 005be c5 fd 11 00 vmovupd YMMWORD PTR [rax], ymm0 - -; 396 : _mm256_store_pd((double *)&ans_cur->f64_y[2], c2); - - 005c2 b8 20 00 00 00 mov eax, 32 ; 00000020H - 005c7 48 6b c0 02 imul rax, rax, 2 - 005cb 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 005d2 48 03 c8 add rcx, rax - 005d5 48 8b c1 mov rax, rcx - 005d8 c5 fd 10 85 40 - 01 00 00 vmovupd ymm0, YMMWORD PTR c2$[rbp] - 005e0 c5 fd 11 00 vmovupd YMMWORD PTR [rax], ymm0 - -; 397 : _mm256_store_pd((double *)&ans_cur->f64_y[3], c3); - - 005e4 b8 20 00 00 00 mov eax, 32 ; 00000020H - 005e9 48 6b c0 03 imul rax, rax, 3 - 005ed 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 005f4 48 03 c8 add rcx, rax - 005f7 48 8b c1 mov rax, rcx - 005fa c5 fd 10 85 80 - 01 00 00 vmovupd ymm0, YMMWORD PTR c3$[rbp] - 00602 c5 fd 11 00 vmovupd YMMWORD PTR [rax], ymm0 - -; 398 : } - - 00606 49 8d a5 f0 04 - 00 00 lea rsp, QWORD PTR [r13+1264] - 0060d 5f pop rdi - 0060e 5d pop rbp - 0060f 41 5d pop r13 - 00611 c3 ret 0 -double_kernel_tile_fma_avx ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.fma_tile.x86.c -; COMDAT double_kernel_tile_fma_sse -_TEXT SEGMENT -i$ = 4 -j$ = 36 -commonK$ = 68 -ansHeight$ = 100 -c0_lo$ = 144 -c0_hi$ = 192 -c1_lo$ = 240 -c1_hi$ = 288 -c2_lo$ = 336 -c2_hi$ = 384 -c3_lo$ = 432 -c3_hi$ = 480 -k$1 = 520 -left_cur$2 = 552 -right_cur$3 = 584 -b_lo$4 = 624 -b_hi$5 = 672 -a_lo$6 = 720 -a_hi$7 = 768 -b$8 = 816 -b_lo$9 = 864 -b_hi$10 = 912 -a_lo$11 = 960 -a_hi$12 = 1008 -b$13 = 1056 -b_lo$14 = 1104 -b_hi$15 = 1152 -a_lo$16 = 1200 -a_hi$17 = 1248 -b$18 = 1296 -b_lo$19 = 1344 -b_hi$20 = 1392 -a_lo$21 = 1440 -a_hi$22 = 1488 -b$23 = 1536 -left$ = 2368 -right$ = 2376 -ans$ = 2384 -enumeration$ = 2392 -double_kernel_tile_fma_sse PROC ; COMDAT - -; 283 : { - -$LN18: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 48 09 - 00 00 sub rsp, 2376 ; 00000948H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__31D20E98_m@fma_tile@x86@c - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 284 : int i = enumeration->m128_i32[0]; - - 0002f b8 04 00 00 00 mov eax, 4 - 00034 48 6b c0 00 imul rax, rax, 0 - 00038 48 8b 8d 58 09 - 00 00 mov rcx, QWORD PTR enumeration$[rbp] - 0003f 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 00042 89 45 04 mov DWORD PTR i$[rbp], eax - -; 285 : int j = enumeration->m128_i32[1]; - - 00045 b8 04 00 00 00 mov eax, 4 - 0004a 48 6b c0 01 imul rax, rax, 1 - 0004e 48 8b 8d 58 09 - 00 00 mov rcx, QWORD PTR enumeration$[rbp] - 00055 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 00058 89 45 24 mov DWORD PTR j$[rbp], eax - -; 286 : int commonK = enumeration->m128_i32[2]; - - 0005b b8 04 00 00 00 mov eax, 4 - 00060 48 6b c0 02 imul rax, rax, 2 - 00064 48 8b 8d 58 09 - 00 00 mov rcx, QWORD PTR enumeration$[rbp] - 0006b 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 0006e 89 45 44 mov DWORD PTR commonK$[rbp], eax - -; 287 : int ansHeight = enumeration->m128_i32[3]; - - 00071 b8 04 00 00 00 mov eax, 4 - 00076 48 6b c0 03 imul rax, rax, 3 - 0007a 48 8b 8d 58 09 - 00 00 mov rcx, QWORD PTR enumeration$[rbp] - 00081 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 00084 89 45 64 mov DWORD PTR ansHeight$[rbp], eax - -; 288 : -; 289 : register __m128d c0_lo = _mm_load_pd(ans->f64_x + (0 * 2 + 0)); - - 00087 48 8b 85 50 09 - 00 00 mov rax, QWORD PTR ans$[rbp] - 0008e 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00091 0f 29 85 90 00 - 00 00 movaps XMMWORD PTR c0_lo$[rbp], xmm0 - -; 290 : register __m128d c0_hi = _mm_load_pd(ans->f64_x + (0 * 2 + 1)); - - 00098 48 8b 85 50 09 - 00 00 mov rax, QWORD PTR ans$[rbp] - 0009f 48 83 c0 10 add rax, 16 - 000a3 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 000a6 0f 29 85 c0 00 - 00 00 movaps XMMWORD PTR c0_hi$[rbp], xmm0 - -; 291 : register __m128d c1_lo = _mm_load_pd(ans->f64_x + (1 * 2 + 0)); - - 000ad 48 8b 85 50 09 - 00 00 mov rax, QWORD PTR ans$[rbp] - 000b4 48 83 c0 20 add rax, 32 ; 00000020H - 000b8 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 000bb 0f 29 85 f0 00 - 00 00 movaps XMMWORD PTR c1_lo$[rbp], xmm0 - -; 292 : register __m128d c1_hi = _mm_load_pd(ans->f64_x + (1 * 2 + 1)); - - 000c2 48 8b 85 50 09 - 00 00 mov rax, QWORD PTR ans$[rbp] - 000c9 48 83 c0 30 add rax, 48 ; 00000030H - 000cd 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 000d0 0f 29 85 20 01 - 00 00 movaps XMMWORD PTR c1_hi$[rbp], xmm0 - -; 293 : register __m128d c2_lo = _mm_load_pd(ans->f64_x + (2 * 2 + 0)); - - 000d7 48 8b 85 50 09 - 00 00 mov rax, QWORD PTR ans$[rbp] - 000de 48 83 c0 40 add rax, 64 ; 00000040H - 000e2 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 000e5 0f 29 85 50 01 - 00 00 movaps XMMWORD PTR c2_lo$[rbp], xmm0 - -; 294 : register __m128d c2_hi = _mm_load_pd(ans->f64_x + (2 * 2 + 1)); - - 000ec 48 8b 85 50 09 - 00 00 mov rax, QWORD PTR ans$[rbp] - 000f3 48 83 c0 50 add rax, 80 ; 00000050H - 000f7 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 000fa 0f 29 85 80 01 - 00 00 movaps XMMWORD PTR c2_hi$[rbp], xmm0 - -; 295 : register __m128d c3_lo = _mm_load_pd(ans->f64_x + (3 * 2 + 0)); - - 00101 48 8b 85 50 09 - 00 00 mov rax, QWORD PTR ans$[rbp] - 00108 48 83 c0 60 add rax, 96 ; 00000060H - 0010c 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 0010f 0f 29 85 b0 01 - 00 00 movaps XMMWORD PTR c3_lo$[rbp], xmm0 - -; 296 : register __m128d c3_hi = _mm_load_pd(ans->f64_x + (3 * 2 + 1)); - - 00116 48 8b 85 50 09 - 00 00 mov rax, QWORD PTR ans$[rbp] - 0011d 48 83 c0 70 add rax, 112 ; 00000070H - 00121 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00124 0f 29 85 e0 01 - 00 00 movaps XMMWORD PTR c3_hi$[rbp], xmm0 - -; 297 : -; 298 : for (size_t k = 0; k < commonK; k++) { - - 0012b 48 c7 85 08 02 - 00 00 00 00 00 - 00 mov QWORD PTR k$1[rbp], 0 - 00136 eb 11 jmp SHORT $LN4@double_ker -$LN2@double_ker: - 00138 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR k$1[rbp] - 0013f 48 ff c0 inc rax - 00142 48 89 85 08 02 - 00 00 mov QWORD PTR k$1[rbp], rax -$LN4@double_ker: - 00149 48 63 45 44 movsxd rax, DWORD PTR commonK$[rbp] - 0014d 48 39 85 08 02 - 00 00 cmp QWORD PTR k$1[rbp], rax - 00154 0f 83 ed 09 00 - 00 jae $LN3@double_ker - -; 299 : MAT_KERNEL(double) -; 300 : const *left_cur = left + GET_INDEX(ansHeight, i, k), - - 0015a 8b 45 64 mov eax, DWORD PTR ansHeight$[rbp] - 0015d 0f af 45 04 imul eax, DWORD PTR i$[rbp] - 00161 48 98 cdqe - 00163 48 03 85 08 02 - 00 00 add rax, QWORD PTR k$1[rbp] - 0016a 48 69 c0 80 00 - 00 00 imul rax, rax, 128 ; 00000080H - 00171 48 8b 8d 40 09 - 00 00 mov rcx, QWORD PTR left$[rbp] - 00178 48 03 c8 add rcx, rax - 0017b 48 8b c1 mov rax, rcx - 0017e 48 89 85 28 02 - 00 00 mov QWORD PTR left_cur$2[rbp], rax - -; 301 : const *right_cur = right + GET_INDEX(commonK, j, k); // GetKernelAddressUnsafe - - 00185 8b 45 44 mov eax, DWORD PTR commonK$[rbp] - 00188 0f af 45 24 imul eax, DWORD PTR j$[rbp] - 0018c 48 98 cdqe - 0018e 48 03 85 08 02 - 00 00 add rax, QWORD PTR k$1[rbp] - 00195 48 69 c0 80 00 - 00 00 imul rax, rax, 128 ; 00000080H - 0019c 48 8b 8d 48 09 - 00 00 mov rcx, QWORD PTR right$[rbp] - 001a3 48 03 c8 add rcx, rax - 001a6 48 8b c1 mov rax, rcx - 001a9 48 89 85 48 02 - 00 00 mov QWORD PTR right_cur$3[rbp], rax -$LN7@double_ker: - -; 302 : -; 303 : DOUBLE_KERNEL_FMA_CYCLE(0); - - 001b0 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR right_cur$3[rbp] - 001b7 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 001ba 0f 29 85 70 02 - 00 00 movaps XMMWORD PTR b_lo$4[rbp], xmm0 - 001c1 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR right_cur$3[rbp] - 001c8 48 05 80 00 00 - 00 add rax, 128 ; 00000080H - 001ce 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 001d1 0f 29 85 a0 02 - 00 00 movaps XMMWORD PTR b_hi$5[rbp], xmm0 - 001d8 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 001df 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 001e2 0f 29 85 d0 02 - 00 00 movaps XMMWORD PTR a_lo$6[rbp], xmm0 - 001e9 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 001f0 48 05 80 00 00 - 00 add rax, 128 ; 00000080H - 001f6 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 001f9 0f 29 85 00 03 - 00 00 movaps XMMWORD PTR a_hi$7[rbp], xmm0 - 00200 0f 28 85 70 02 - 00 00 movaps xmm0, XMMWORD PTR b_lo$4[rbp] - 00207 66 0f c6 85 70 - 02 00 00 00 shufpd xmm0, XMMWORD PTR b_lo$4[rbp], 0 - 00210 0f 29 85 30 03 - 00 00 movaps XMMWORD PTR b$8[rbp], xmm0 - 00217 0f 28 85 d0 02 - 00 00 movaps xmm0, XMMWORD PTR a_lo$6[rbp] - 0021e 66 0f 59 85 30 - 03 00 00 mulpd xmm0, XMMWORD PTR b$8[rbp] - 00226 0f 28 8d 90 00 - 00 00 movaps xmm1, XMMWORD PTR c0_lo$[rbp] - 0022d 66 0f 58 c8 addpd xmm1, xmm0 - 00231 0f 28 c1 movaps xmm0, xmm1 - 00234 0f 29 85 90 00 - 00 00 movaps XMMWORD PTR c0_lo$[rbp], xmm0 - 0023b 0f 28 85 00 03 - 00 00 movaps xmm0, XMMWORD PTR a_hi$7[rbp] - 00242 66 0f 59 85 30 - 03 00 00 mulpd xmm0, XMMWORD PTR b$8[rbp] - 0024a 0f 28 8d c0 00 - 00 00 movaps xmm1, XMMWORD PTR c0_hi$[rbp] - 00251 66 0f 58 c8 addpd xmm1, xmm0 - 00255 0f 28 c1 movaps xmm0, xmm1 - 00258 0f 29 85 c0 00 - 00 00 movaps XMMWORD PTR c0_hi$[rbp], xmm0 - 0025f 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 00266 48 05 00 01 00 - 00 add rax, 256 ; 00000100H - 0026c 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 0026f 0f 29 85 d0 02 - 00 00 movaps XMMWORD PTR a_lo$6[rbp], xmm0 - 00276 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 0027d 48 05 80 01 00 - 00 add rax, 384 ; 00000180H - 00283 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00286 0f 29 85 00 03 - 00 00 movaps XMMWORD PTR a_hi$7[rbp], xmm0 - 0028d 0f 28 85 70 02 - 00 00 movaps xmm0, XMMWORD PTR b_lo$4[rbp] - 00294 66 0f c6 85 70 - 02 00 00 03 shufpd xmm0, XMMWORD PTR b_lo$4[rbp], 3 - 0029d 0f 29 85 30 03 - 00 00 movaps XMMWORD PTR b$8[rbp], xmm0 - 002a4 0f 28 85 d0 02 - 00 00 movaps xmm0, XMMWORD PTR a_lo$6[rbp] - 002ab 66 0f 59 85 30 - 03 00 00 mulpd xmm0, XMMWORD PTR b$8[rbp] - 002b3 0f 28 8d 90 00 - 00 00 movaps xmm1, XMMWORD PTR c0_lo$[rbp] - 002ba 66 0f 58 c8 addpd xmm1, xmm0 - 002be 0f 28 c1 movaps xmm0, xmm1 - 002c1 0f 29 85 90 00 - 00 00 movaps XMMWORD PTR c0_lo$[rbp], xmm0 - 002c8 0f 28 85 00 03 - 00 00 movaps xmm0, XMMWORD PTR a_hi$7[rbp] - 002cf 66 0f 59 85 30 - 03 00 00 mulpd xmm0, XMMWORD PTR b$8[rbp] - 002d7 0f 28 8d c0 00 - 00 00 movaps xmm1, XMMWORD PTR c0_hi$[rbp] - 002de 66 0f 58 c8 addpd xmm1, xmm0 - 002e2 0f 28 c1 movaps xmm0, xmm1 - 002e5 0f 29 85 c0 00 - 00 00 movaps XMMWORD PTR c0_hi$[rbp], xmm0 - 002ec 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 002f3 48 05 00 02 00 - 00 add rax, 512 ; 00000200H - 002f9 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 002fc 0f 29 85 d0 02 - 00 00 movaps XMMWORD PTR a_lo$6[rbp], xmm0 - 00303 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 0030a 48 05 80 02 00 - 00 add rax, 640 ; 00000280H - 00310 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00313 0f 29 85 00 03 - 00 00 movaps XMMWORD PTR a_hi$7[rbp], xmm0 - 0031a 0f 28 85 a0 02 - 00 00 movaps xmm0, XMMWORD PTR b_hi$5[rbp] - 00321 66 0f c6 85 a0 - 02 00 00 00 shufpd xmm0, XMMWORD PTR b_hi$5[rbp], 0 - 0032a 0f 29 85 30 03 - 00 00 movaps XMMWORD PTR b$8[rbp], xmm0 - 00331 0f 28 85 d0 02 - 00 00 movaps xmm0, XMMWORD PTR a_lo$6[rbp] - 00338 66 0f 59 85 30 - 03 00 00 mulpd xmm0, XMMWORD PTR b$8[rbp] - 00340 0f 28 8d 90 00 - 00 00 movaps xmm1, XMMWORD PTR c0_lo$[rbp] - 00347 66 0f 58 c8 addpd xmm1, xmm0 - 0034b 0f 28 c1 movaps xmm0, xmm1 - 0034e 0f 29 85 90 00 - 00 00 movaps XMMWORD PTR c0_lo$[rbp], xmm0 - 00355 0f 28 85 00 03 - 00 00 movaps xmm0, XMMWORD PTR a_hi$7[rbp] - 0035c 66 0f 59 85 30 - 03 00 00 mulpd xmm0, XMMWORD PTR b$8[rbp] - 00364 0f 28 8d c0 00 - 00 00 movaps xmm1, XMMWORD PTR c0_hi$[rbp] - 0036b 66 0f 58 c8 addpd xmm1, xmm0 - 0036f 0f 28 c1 movaps xmm0, xmm1 - 00372 0f 29 85 c0 00 - 00 00 movaps XMMWORD PTR c0_hi$[rbp], xmm0 - 00379 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 00380 48 05 00 03 00 - 00 add rax, 768 ; 00000300H - 00386 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00389 0f 29 85 d0 02 - 00 00 movaps XMMWORD PTR a_lo$6[rbp], xmm0 - 00390 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 00397 48 05 80 03 00 - 00 add rax, 896 ; 00000380H - 0039d 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 003a0 0f 29 85 00 03 - 00 00 movaps XMMWORD PTR a_hi$7[rbp], xmm0 - 003a7 0f 28 85 a0 02 - 00 00 movaps xmm0, XMMWORD PTR b_hi$5[rbp] - 003ae 66 0f c6 85 a0 - 02 00 00 03 shufpd xmm0, XMMWORD PTR b_hi$5[rbp], 3 - 003b7 0f 29 85 30 03 - 00 00 movaps XMMWORD PTR b$8[rbp], xmm0 - 003be 0f 28 85 d0 02 - 00 00 movaps xmm0, XMMWORD PTR a_lo$6[rbp] - 003c5 66 0f 59 85 30 - 03 00 00 mulpd xmm0, XMMWORD PTR b$8[rbp] - 003cd 0f 28 8d 90 00 - 00 00 movaps xmm1, XMMWORD PTR c0_lo$[rbp] - 003d4 66 0f 58 c8 addpd xmm1, xmm0 - 003d8 0f 28 c1 movaps xmm0, xmm1 - 003db 0f 29 85 90 00 - 00 00 movaps XMMWORD PTR c0_lo$[rbp], xmm0 - 003e2 0f 28 85 00 03 - 00 00 movaps xmm0, XMMWORD PTR a_hi$7[rbp] - 003e9 66 0f 59 85 30 - 03 00 00 mulpd xmm0, XMMWORD PTR b$8[rbp] - 003f1 0f 28 8d c0 00 - 00 00 movaps xmm1, XMMWORD PTR c0_hi$[rbp] - 003f8 66 0f 58 c8 addpd xmm1, xmm0 - 003fc 0f 28 c1 movaps xmm0, xmm1 - 003ff 0f 29 85 c0 00 - 00 00 movaps XMMWORD PTR c0_hi$[rbp], xmm0 - 00406 33 c0 xor eax, eax - 00408 85 c0 test eax, eax - 0040a 0f 85 a0 fd ff - ff jne $LN7@double_ker -$LN10@double_ker: - -; 304 : -; 305 : DOUBLE_KERNEL_FMA_CYCLE(1); - - 00410 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR right_cur$3[rbp] - 00417 48 05 00 01 00 - 00 add rax, 256 ; 00000100H - 0041d 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00420 0f 29 85 60 03 - 00 00 movaps XMMWORD PTR b_lo$9[rbp], xmm0 - 00427 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR right_cur$3[rbp] - 0042e 48 05 80 01 00 - 00 add rax, 384 ; 00000180H - 00434 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00437 0f 29 85 90 03 - 00 00 movaps XMMWORD PTR b_hi$10[rbp], xmm0 - 0043e 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 00445 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00448 0f 29 85 c0 03 - 00 00 movaps XMMWORD PTR a_lo$11[rbp], xmm0 - 0044f 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 00456 48 05 80 00 00 - 00 add rax, 128 ; 00000080H - 0045c 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 0045f 0f 29 85 f0 03 - 00 00 movaps XMMWORD PTR a_hi$12[rbp], xmm0 - 00466 0f 28 85 60 03 - 00 00 movaps xmm0, XMMWORD PTR b_lo$9[rbp] - 0046d 66 0f c6 85 60 - 03 00 00 00 shufpd xmm0, XMMWORD PTR b_lo$9[rbp], 0 - 00476 0f 29 85 20 04 - 00 00 movaps XMMWORD PTR b$13[rbp], xmm0 - 0047d 0f 28 85 c0 03 - 00 00 movaps xmm0, XMMWORD PTR a_lo$11[rbp] - 00484 66 0f 59 85 20 - 04 00 00 mulpd xmm0, XMMWORD PTR b$13[rbp] - 0048c 0f 28 8d f0 00 - 00 00 movaps xmm1, XMMWORD PTR c1_lo$[rbp] - 00493 66 0f 58 c8 addpd xmm1, xmm0 - 00497 0f 28 c1 movaps xmm0, xmm1 - 0049a 0f 29 85 f0 00 - 00 00 movaps XMMWORD PTR c1_lo$[rbp], xmm0 - 004a1 0f 28 85 f0 03 - 00 00 movaps xmm0, XMMWORD PTR a_hi$12[rbp] - 004a8 66 0f 59 85 20 - 04 00 00 mulpd xmm0, XMMWORD PTR b$13[rbp] - 004b0 0f 28 8d 20 01 - 00 00 movaps xmm1, XMMWORD PTR c1_hi$[rbp] - 004b7 66 0f 58 c8 addpd xmm1, xmm0 - 004bb 0f 28 c1 movaps xmm0, xmm1 - 004be 0f 29 85 20 01 - 00 00 movaps XMMWORD PTR c1_hi$[rbp], xmm0 - 004c5 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 004cc 48 05 00 01 00 - 00 add rax, 256 ; 00000100H - 004d2 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 004d5 0f 29 85 c0 03 - 00 00 movaps XMMWORD PTR a_lo$11[rbp], xmm0 - 004dc 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 004e3 48 05 80 01 00 - 00 add rax, 384 ; 00000180H - 004e9 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 004ec 0f 29 85 f0 03 - 00 00 movaps XMMWORD PTR a_hi$12[rbp], xmm0 - 004f3 0f 28 85 60 03 - 00 00 movaps xmm0, XMMWORD PTR b_lo$9[rbp] - 004fa 66 0f c6 85 60 - 03 00 00 03 shufpd xmm0, XMMWORD PTR b_lo$9[rbp], 3 - 00503 0f 29 85 20 04 - 00 00 movaps XMMWORD PTR b$13[rbp], xmm0 - 0050a 0f 28 85 c0 03 - 00 00 movaps xmm0, XMMWORD PTR a_lo$11[rbp] - 00511 66 0f 59 85 20 - 04 00 00 mulpd xmm0, XMMWORD PTR b$13[rbp] - 00519 0f 28 8d f0 00 - 00 00 movaps xmm1, XMMWORD PTR c1_lo$[rbp] - 00520 66 0f 58 c8 addpd xmm1, xmm0 - 00524 0f 28 c1 movaps xmm0, xmm1 - 00527 0f 29 85 f0 00 - 00 00 movaps XMMWORD PTR c1_lo$[rbp], xmm0 - 0052e 0f 28 85 f0 03 - 00 00 movaps xmm0, XMMWORD PTR a_hi$12[rbp] - 00535 66 0f 59 85 20 - 04 00 00 mulpd xmm0, XMMWORD PTR b$13[rbp] - 0053d 0f 28 8d 20 01 - 00 00 movaps xmm1, XMMWORD PTR c1_hi$[rbp] - 00544 66 0f 58 c8 addpd xmm1, xmm0 - 00548 0f 28 c1 movaps xmm0, xmm1 - 0054b 0f 29 85 20 01 - 00 00 movaps XMMWORD PTR c1_hi$[rbp], xmm0 - 00552 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 00559 48 05 00 02 00 - 00 add rax, 512 ; 00000200H - 0055f 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00562 0f 29 85 c0 03 - 00 00 movaps XMMWORD PTR a_lo$11[rbp], xmm0 - 00569 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 00570 48 05 80 02 00 - 00 add rax, 640 ; 00000280H - 00576 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00579 0f 29 85 f0 03 - 00 00 movaps XMMWORD PTR a_hi$12[rbp], xmm0 - 00580 0f 28 85 90 03 - 00 00 movaps xmm0, XMMWORD PTR b_hi$10[rbp] - 00587 66 0f c6 85 90 - 03 00 00 00 shufpd xmm0, XMMWORD PTR b_hi$10[rbp], 0 - 00590 0f 29 85 20 04 - 00 00 movaps XMMWORD PTR b$13[rbp], xmm0 - 00597 0f 28 85 c0 03 - 00 00 movaps xmm0, XMMWORD PTR a_lo$11[rbp] - 0059e 66 0f 59 85 20 - 04 00 00 mulpd xmm0, XMMWORD PTR b$13[rbp] - 005a6 0f 28 8d f0 00 - 00 00 movaps xmm1, XMMWORD PTR c1_lo$[rbp] - 005ad 66 0f 58 c8 addpd xmm1, xmm0 - 005b1 0f 28 c1 movaps xmm0, xmm1 - 005b4 0f 29 85 f0 00 - 00 00 movaps XMMWORD PTR c1_lo$[rbp], xmm0 - 005bb 0f 28 85 f0 03 - 00 00 movaps xmm0, XMMWORD PTR a_hi$12[rbp] - 005c2 66 0f 59 85 20 - 04 00 00 mulpd xmm0, XMMWORD PTR b$13[rbp] - 005ca 0f 28 8d 20 01 - 00 00 movaps xmm1, XMMWORD PTR c1_hi$[rbp] - 005d1 66 0f 58 c8 addpd xmm1, xmm0 - 005d5 0f 28 c1 movaps xmm0, xmm1 - 005d8 0f 29 85 20 01 - 00 00 movaps XMMWORD PTR c1_hi$[rbp], xmm0 - 005df 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 005e6 48 05 00 03 00 - 00 add rax, 768 ; 00000300H - 005ec 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 005ef 0f 29 85 c0 03 - 00 00 movaps XMMWORD PTR a_lo$11[rbp], xmm0 - 005f6 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 005fd 48 05 80 03 00 - 00 add rax, 896 ; 00000380H - 00603 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00606 0f 29 85 f0 03 - 00 00 movaps XMMWORD PTR a_hi$12[rbp], xmm0 - 0060d 0f 28 85 90 03 - 00 00 movaps xmm0, XMMWORD PTR b_hi$10[rbp] - 00614 66 0f c6 85 90 - 03 00 00 03 shufpd xmm0, XMMWORD PTR b_hi$10[rbp], 3 - 0061d 0f 29 85 20 04 - 00 00 movaps XMMWORD PTR b$13[rbp], xmm0 - 00624 0f 28 85 c0 03 - 00 00 movaps xmm0, XMMWORD PTR a_lo$11[rbp] - 0062b 66 0f 59 85 20 - 04 00 00 mulpd xmm0, XMMWORD PTR b$13[rbp] - 00633 0f 28 8d f0 00 - 00 00 movaps xmm1, XMMWORD PTR c1_lo$[rbp] - 0063a 66 0f 58 c8 addpd xmm1, xmm0 - 0063e 0f 28 c1 movaps xmm0, xmm1 - 00641 0f 29 85 f0 00 - 00 00 movaps XMMWORD PTR c1_lo$[rbp], xmm0 - 00648 0f 28 85 f0 03 - 00 00 movaps xmm0, XMMWORD PTR a_hi$12[rbp] - 0064f 66 0f 59 85 20 - 04 00 00 mulpd xmm0, XMMWORD PTR b$13[rbp] - 00657 0f 28 8d 20 01 - 00 00 movaps xmm1, XMMWORD PTR c1_hi$[rbp] - 0065e 66 0f 58 c8 addpd xmm1, xmm0 - 00662 0f 28 c1 movaps xmm0, xmm1 - 00665 0f 29 85 20 01 - 00 00 movaps XMMWORD PTR c1_hi$[rbp], xmm0 - 0066c 33 c0 xor eax, eax - 0066e 85 c0 test eax, eax - 00670 0f 85 9a fd ff - ff jne $LN10@double_ker -$LN13@double_ker: - -; 306 : -; 307 : DOUBLE_KERNEL_FMA_CYCLE(2); - - 00676 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR right_cur$3[rbp] - 0067d 48 05 00 02 00 - 00 add rax, 512 ; 00000200H - 00683 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00686 0f 29 85 50 04 - 00 00 movaps XMMWORD PTR b_lo$14[rbp], xmm0 - 0068d 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR right_cur$3[rbp] - 00694 48 05 80 02 00 - 00 add rax, 640 ; 00000280H - 0069a 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 0069d 0f 29 85 80 04 - 00 00 movaps XMMWORD PTR b_hi$15[rbp], xmm0 - 006a4 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 006ab 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 006ae 0f 29 85 b0 04 - 00 00 movaps XMMWORD PTR a_lo$16[rbp], xmm0 - 006b5 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 006bc 48 05 80 00 00 - 00 add rax, 128 ; 00000080H - 006c2 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 006c5 0f 29 85 e0 04 - 00 00 movaps XMMWORD PTR a_hi$17[rbp], xmm0 - 006cc 0f 28 85 50 04 - 00 00 movaps xmm0, XMMWORD PTR b_lo$14[rbp] - 006d3 66 0f c6 85 50 - 04 00 00 00 shufpd xmm0, XMMWORD PTR b_lo$14[rbp], 0 - 006dc 0f 29 85 10 05 - 00 00 movaps XMMWORD PTR b$18[rbp], xmm0 - 006e3 0f 28 85 b0 04 - 00 00 movaps xmm0, XMMWORD PTR a_lo$16[rbp] - 006ea 66 0f 59 85 10 - 05 00 00 mulpd xmm0, XMMWORD PTR b$18[rbp] - 006f2 0f 28 8d 50 01 - 00 00 movaps xmm1, XMMWORD PTR c2_lo$[rbp] - 006f9 66 0f 58 c8 addpd xmm1, xmm0 - 006fd 0f 28 c1 movaps xmm0, xmm1 - 00700 0f 29 85 50 01 - 00 00 movaps XMMWORD PTR c2_lo$[rbp], xmm0 - 00707 0f 28 85 e0 04 - 00 00 movaps xmm0, XMMWORD PTR a_hi$17[rbp] - 0070e 66 0f 59 85 10 - 05 00 00 mulpd xmm0, XMMWORD PTR b$18[rbp] - 00716 0f 28 8d 80 01 - 00 00 movaps xmm1, XMMWORD PTR c2_hi$[rbp] - 0071d 66 0f 58 c8 addpd xmm1, xmm0 - 00721 0f 28 c1 movaps xmm0, xmm1 - 00724 0f 29 85 80 01 - 00 00 movaps XMMWORD PTR c2_hi$[rbp], xmm0 - 0072b 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 00732 48 05 00 01 00 - 00 add rax, 256 ; 00000100H - 00738 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 0073b 0f 29 85 b0 04 - 00 00 movaps XMMWORD PTR a_lo$16[rbp], xmm0 - 00742 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 00749 48 05 80 01 00 - 00 add rax, 384 ; 00000180H - 0074f 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00752 0f 29 85 e0 04 - 00 00 movaps XMMWORD PTR a_hi$17[rbp], xmm0 - 00759 0f 28 85 50 04 - 00 00 movaps xmm0, XMMWORD PTR b_lo$14[rbp] - 00760 66 0f c6 85 50 - 04 00 00 03 shufpd xmm0, XMMWORD PTR b_lo$14[rbp], 3 - 00769 0f 29 85 10 05 - 00 00 movaps XMMWORD PTR b$18[rbp], xmm0 - 00770 0f 28 85 b0 04 - 00 00 movaps xmm0, XMMWORD PTR a_lo$16[rbp] - 00777 66 0f 59 85 10 - 05 00 00 mulpd xmm0, XMMWORD PTR b$18[rbp] - 0077f 0f 28 8d 50 01 - 00 00 movaps xmm1, XMMWORD PTR c2_lo$[rbp] - 00786 66 0f 58 c8 addpd xmm1, xmm0 - 0078a 0f 28 c1 movaps xmm0, xmm1 - 0078d 0f 29 85 50 01 - 00 00 movaps XMMWORD PTR c2_lo$[rbp], xmm0 - 00794 0f 28 85 e0 04 - 00 00 movaps xmm0, XMMWORD PTR a_hi$17[rbp] - 0079b 66 0f 59 85 10 - 05 00 00 mulpd xmm0, XMMWORD PTR b$18[rbp] - 007a3 0f 28 8d 80 01 - 00 00 movaps xmm1, XMMWORD PTR c2_hi$[rbp] - 007aa 66 0f 58 c8 addpd xmm1, xmm0 - 007ae 0f 28 c1 movaps xmm0, xmm1 - 007b1 0f 29 85 80 01 - 00 00 movaps XMMWORD PTR c2_hi$[rbp], xmm0 - 007b8 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 007bf 48 05 00 02 00 - 00 add rax, 512 ; 00000200H - 007c5 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 007c8 0f 29 85 b0 04 - 00 00 movaps XMMWORD PTR a_lo$16[rbp], xmm0 - 007cf 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 007d6 48 05 80 02 00 - 00 add rax, 640 ; 00000280H - 007dc 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 007df 0f 29 85 e0 04 - 00 00 movaps XMMWORD PTR a_hi$17[rbp], xmm0 - 007e6 0f 28 85 80 04 - 00 00 movaps xmm0, XMMWORD PTR b_hi$15[rbp] - 007ed 66 0f c6 85 80 - 04 00 00 00 shufpd xmm0, XMMWORD PTR b_hi$15[rbp], 0 - 007f6 0f 29 85 10 05 - 00 00 movaps XMMWORD PTR b$18[rbp], xmm0 - 007fd 0f 28 85 b0 04 - 00 00 movaps xmm0, XMMWORD PTR a_lo$16[rbp] - 00804 66 0f 59 85 10 - 05 00 00 mulpd xmm0, XMMWORD PTR b$18[rbp] - 0080c 0f 28 8d 50 01 - 00 00 movaps xmm1, XMMWORD PTR c2_lo$[rbp] - 00813 66 0f 58 c8 addpd xmm1, xmm0 - 00817 0f 28 c1 movaps xmm0, xmm1 - 0081a 0f 29 85 50 01 - 00 00 movaps XMMWORD PTR c2_lo$[rbp], xmm0 - 00821 0f 28 85 e0 04 - 00 00 movaps xmm0, XMMWORD PTR a_hi$17[rbp] - 00828 66 0f 59 85 10 - 05 00 00 mulpd xmm0, XMMWORD PTR b$18[rbp] - 00830 0f 28 8d 80 01 - 00 00 movaps xmm1, XMMWORD PTR c2_hi$[rbp] - 00837 66 0f 58 c8 addpd xmm1, xmm0 - 0083b 0f 28 c1 movaps xmm0, xmm1 - 0083e 0f 29 85 80 01 - 00 00 movaps XMMWORD PTR c2_hi$[rbp], xmm0 - 00845 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 0084c 48 05 00 03 00 - 00 add rax, 768 ; 00000300H - 00852 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00855 0f 29 85 b0 04 - 00 00 movaps XMMWORD PTR a_lo$16[rbp], xmm0 - 0085c 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 00863 48 05 80 03 00 - 00 add rax, 896 ; 00000380H - 00869 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 0086c 0f 29 85 e0 04 - 00 00 movaps XMMWORD PTR a_hi$17[rbp], xmm0 - 00873 0f 28 85 80 04 - 00 00 movaps xmm0, XMMWORD PTR b_hi$15[rbp] - 0087a 66 0f c6 85 80 - 04 00 00 03 shufpd xmm0, XMMWORD PTR b_hi$15[rbp], 3 - 00883 0f 29 85 10 05 - 00 00 movaps XMMWORD PTR b$18[rbp], xmm0 - 0088a 0f 28 85 b0 04 - 00 00 movaps xmm0, XMMWORD PTR a_lo$16[rbp] - 00891 66 0f 59 85 10 - 05 00 00 mulpd xmm0, XMMWORD PTR b$18[rbp] - 00899 0f 28 8d 50 01 - 00 00 movaps xmm1, XMMWORD PTR c2_lo$[rbp] - 008a0 66 0f 58 c8 addpd xmm1, xmm0 - 008a4 0f 28 c1 movaps xmm0, xmm1 - 008a7 0f 29 85 50 01 - 00 00 movaps XMMWORD PTR c2_lo$[rbp], xmm0 - 008ae 0f 28 85 e0 04 - 00 00 movaps xmm0, XMMWORD PTR a_hi$17[rbp] - 008b5 66 0f 59 85 10 - 05 00 00 mulpd xmm0, XMMWORD PTR b$18[rbp] - 008bd 0f 28 8d 80 01 - 00 00 movaps xmm1, XMMWORD PTR c2_hi$[rbp] - 008c4 66 0f 58 c8 addpd xmm1, xmm0 - 008c8 0f 28 c1 movaps xmm0, xmm1 - 008cb 0f 29 85 80 01 - 00 00 movaps XMMWORD PTR c2_hi$[rbp], xmm0 - 008d2 33 c0 xor eax, eax - 008d4 85 c0 test eax, eax - 008d6 0f 85 9a fd ff - ff jne $LN13@double_ker -$LN16@double_ker: - -; 308 : -; 309 : DOUBLE_KERNEL_FMA_CYCLE(3); - - 008dc 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR right_cur$3[rbp] - 008e3 48 05 00 03 00 - 00 add rax, 768 ; 00000300H - 008e9 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 008ec 0f 29 85 40 05 - 00 00 movaps XMMWORD PTR b_lo$19[rbp], xmm0 - 008f3 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR right_cur$3[rbp] - 008fa 48 05 80 03 00 - 00 add rax, 896 ; 00000380H - 00900 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00903 0f 29 85 70 05 - 00 00 movaps XMMWORD PTR b_hi$20[rbp], xmm0 - 0090a 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 00911 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00914 0f 29 85 a0 05 - 00 00 movaps XMMWORD PTR a_lo$21[rbp], xmm0 - 0091b 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 00922 48 05 80 00 00 - 00 add rax, 128 ; 00000080H - 00928 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 0092b 0f 29 85 d0 05 - 00 00 movaps XMMWORD PTR a_hi$22[rbp], xmm0 - 00932 0f 28 85 40 05 - 00 00 movaps xmm0, XMMWORD PTR b_lo$19[rbp] - 00939 66 0f c6 85 40 - 05 00 00 00 shufpd xmm0, XMMWORD PTR b_lo$19[rbp], 0 - 00942 0f 29 85 00 06 - 00 00 movaps XMMWORD PTR b$23[rbp], xmm0 - 00949 0f 28 85 a0 05 - 00 00 movaps xmm0, XMMWORD PTR a_lo$21[rbp] - 00950 66 0f 59 85 00 - 06 00 00 mulpd xmm0, XMMWORD PTR b$23[rbp] - 00958 0f 28 8d b0 01 - 00 00 movaps xmm1, XMMWORD PTR c3_lo$[rbp] - 0095f 66 0f 58 c8 addpd xmm1, xmm0 - 00963 0f 28 c1 movaps xmm0, xmm1 - 00966 0f 29 85 b0 01 - 00 00 movaps XMMWORD PTR c3_lo$[rbp], xmm0 - 0096d 0f 28 85 d0 05 - 00 00 movaps xmm0, XMMWORD PTR a_hi$22[rbp] - 00974 66 0f 59 85 00 - 06 00 00 mulpd xmm0, XMMWORD PTR b$23[rbp] - 0097c 0f 28 8d e0 01 - 00 00 movaps xmm1, XMMWORD PTR c3_hi$[rbp] - 00983 66 0f 58 c8 addpd xmm1, xmm0 - 00987 0f 28 c1 movaps xmm0, xmm1 - 0098a 0f 29 85 e0 01 - 00 00 movaps XMMWORD PTR c3_hi$[rbp], xmm0 - 00991 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 00998 48 05 00 01 00 - 00 add rax, 256 ; 00000100H - 0099e 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 009a1 0f 29 85 a0 05 - 00 00 movaps XMMWORD PTR a_lo$21[rbp], xmm0 - 009a8 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 009af 48 05 80 01 00 - 00 add rax, 384 ; 00000180H - 009b5 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 009b8 0f 29 85 d0 05 - 00 00 movaps XMMWORD PTR a_hi$22[rbp], xmm0 - 009bf 0f 28 85 40 05 - 00 00 movaps xmm0, XMMWORD PTR b_lo$19[rbp] - 009c6 66 0f c6 85 40 - 05 00 00 03 shufpd xmm0, XMMWORD PTR b_lo$19[rbp], 3 - 009cf 0f 29 85 00 06 - 00 00 movaps XMMWORD PTR b$23[rbp], xmm0 - 009d6 0f 28 85 a0 05 - 00 00 movaps xmm0, XMMWORD PTR a_lo$21[rbp] - 009dd 66 0f 59 85 00 - 06 00 00 mulpd xmm0, XMMWORD PTR b$23[rbp] - 009e5 0f 28 8d b0 01 - 00 00 movaps xmm1, XMMWORD PTR c3_lo$[rbp] - 009ec 66 0f 58 c8 addpd xmm1, xmm0 - 009f0 0f 28 c1 movaps xmm0, xmm1 - 009f3 0f 29 85 b0 01 - 00 00 movaps XMMWORD PTR c3_lo$[rbp], xmm0 - 009fa 0f 28 85 d0 05 - 00 00 movaps xmm0, XMMWORD PTR a_hi$22[rbp] - 00a01 66 0f 59 85 00 - 06 00 00 mulpd xmm0, XMMWORD PTR b$23[rbp] - 00a09 0f 28 8d e0 01 - 00 00 movaps xmm1, XMMWORD PTR c3_hi$[rbp] - 00a10 66 0f 58 c8 addpd xmm1, xmm0 - 00a14 0f 28 c1 movaps xmm0, xmm1 - 00a17 0f 29 85 e0 01 - 00 00 movaps XMMWORD PTR c3_hi$[rbp], xmm0 - 00a1e 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 00a25 48 05 00 02 00 - 00 add rax, 512 ; 00000200H - 00a2b 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00a2e 0f 29 85 a0 05 - 00 00 movaps XMMWORD PTR a_lo$21[rbp], xmm0 - 00a35 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 00a3c 48 05 80 02 00 - 00 add rax, 640 ; 00000280H - 00a42 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00a45 0f 29 85 d0 05 - 00 00 movaps XMMWORD PTR a_hi$22[rbp], xmm0 - 00a4c 0f 28 85 70 05 - 00 00 movaps xmm0, XMMWORD PTR b_hi$20[rbp] - 00a53 66 0f c6 85 70 - 05 00 00 00 shufpd xmm0, XMMWORD PTR b_hi$20[rbp], 0 - 00a5c 0f 29 85 00 06 - 00 00 movaps XMMWORD PTR b$23[rbp], xmm0 - 00a63 0f 28 85 a0 05 - 00 00 movaps xmm0, XMMWORD PTR a_lo$21[rbp] - 00a6a 66 0f 59 85 00 - 06 00 00 mulpd xmm0, XMMWORD PTR b$23[rbp] - 00a72 0f 28 8d b0 01 - 00 00 movaps xmm1, XMMWORD PTR c3_lo$[rbp] - 00a79 66 0f 58 c8 addpd xmm1, xmm0 - 00a7d 0f 28 c1 movaps xmm0, xmm1 - 00a80 0f 29 85 b0 01 - 00 00 movaps XMMWORD PTR c3_lo$[rbp], xmm0 - 00a87 0f 28 85 d0 05 - 00 00 movaps xmm0, XMMWORD PTR a_hi$22[rbp] - 00a8e 66 0f 59 85 00 - 06 00 00 mulpd xmm0, XMMWORD PTR b$23[rbp] - 00a96 0f 28 8d e0 01 - 00 00 movaps xmm1, XMMWORD PTR c3_hi$[rbp] - 00a9d 66 0f 58 c8 addpd xmm1, xmm0 - 00aa1 0f 28 c1 movaps xmm0, xmm1 - 00aa4 0f 29 85 e0 01 - 00 00 movaps XMMWORD PTR c3_hi$[rbp], xmm0 - 00aab 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 00ab2 48 05 00 03 00 - 00 add rax, 768 ; 00000300H - 00ab8 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00abb 0f 29 85 a0 05 - 00 00 movaps XMMWORD PTR a_lo$21[rbp], xmm0 - 00ac2 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 00ac9 48 05 80 03 00 - 00 add rax, 896 ; 00000380H - 00acf 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00ad2 0f 29 85 d0 05 - 00 00 movaps XMMWORD PTR a_hi$22[rbp], xmm0 - 00ad9 0f 28 85 70 05 - 00 00 movaps xmm0, XMMWORD PTR b_hi$20[rbp] - 00ae0 66 0f c6 85 70 - 05 00 00 03 shufpd xmm0, XMMWORD PTR b_hi$20[rbp], 3 - 00ae9 0f 29 85 00 06 - 00 00 movaps XMMWORD PTR b$23[rbp], xmm0 - 00af0 0f 28 85 a0 05 - 00 00 movaps xmm0, XMMWORD PTR a_lo$21[rbp] - 00af7 66 0f 59 85 00 - 06 00 00 mulpd xmm0, XMMWORD PTR b$23[rbp] - 00aff 0f 28 8d b0 01 - 00 00 movaps xmm1, XMMWORD PTR c3_lo$[rbp] - 00b06 66 0f 58 c8 addpd xmm1, xmm0 - 00b0a 0f 28 c1 movaps xmm0, xmm1 - 00b0d 0f 29 85 b0 01 - 00 00 movaps XMMWORD PTR c3_lo$[rbp], xmm0 - 00b14 0f 28 85 d0 05 - 00 00 movaps xmm0, XMMWORD PTR a_hi$22[rbp] - 00b1b 66 0f 59 85 00 - 06 00 00 mulpd xmm0, XMMWORD PTR b$23[rbp] - 00b23 0f 28 8d e0 01 - 00 00 movaps xmm1, XMMWORD PTR c3_hi$[rbp] - 00b2a 66 0f 58 c8 addpd xmm1, xmm0 - 00b2e 0f 28 c1 movaps xmm0, xmm1 - 00b31 0f 29 85 e0 01 - 00 00 movaps XMMWORD PTR c3_hi$[rbp], xmm0 - 00b38 33 c0 xor eax, eax - 00b3a 85 c0 test eax, eax - 00b3c 0f 85 9a fd ff - ff jne $LN16@double_ker - -; 310 : } - - 00b42 e9 f1 f5 ff ff jmp $LN2@double_ker -$LN3@double_ker: - -; 311 : -; 312 : _mm_store_pd(ans->f64_x + (0 * 2 + 0), c0_lo); - - 00b47 48 8b 85 50 09 - 00 00 mov rax, QWORD PTR ans$[rbp] - 00b4e 0f 28 85 90 00 - 00 00 movaps xmm0, XMMWORD PTR c0_lo$[rbp] - 00b55 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 313 : _mm_store_pd(ans->f64_x + (0 * 2 + 1), c0_hi); - - 00b58 48 8b 85 50 09 - 00 00 mov rax, QWORD PTR ans$[rbp] - 00b5f 48 83 c0 10 add rax, 16 - 00b63 0f 28 85 c0 00 - 00 00 movaps xmm0, XMMWORD PTR c0_hi$[rbp] - 00b6a 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 314 : _mm_store_pd(ans->f64_x + (1 * 2 + 0), c1_lo); - - 00b6d 48 8b 85 50 09 - 00 00 mov rax, QWORD PTR ans$[rbp] - 00b74 48 83 c0 20 add rax, 32 ; 00000020H - 00b78 0f 28 85 f0 00 - 00 00 movaps xmm0, XMMWORD PTR c1_lo$[rbp] - 00b7f 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 315 : _mm_store_pd(ans->f64_x + (1 * 2 + 1), c1_hi); - - 00b82 48 8b 85 50 09 - 00 00 mov rax, QWORD PTR ans$[rbp] - 00b89 48 83 c0 30 add rax, 48 ; 00000030H - 00b8d 0f 28 85 20 01 - 00 00 movaps xmm0, XMMWORD PTR c1_hi$[rbp] - 00b94 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 316 : _mm_store_pd(ans->f64_x + (2 * 2 + 0), c2_lo); - - 00b97 48 8b 85 50 09 - 00 00 mov rax, QWORD PTR ans$[rbp] - 00b9e 48 83 c0 40 add rax, 64 ; 00000040H - 00ba2 0f 28 85 50 01 - 00 00 movaps xmm0, XMMWORD PTR c2_lo$[rbp] - 00ba9 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 317 : _mm_store_pd(ans->f64_x + (2 * 2 + 1), c2_hi); - - 00bac 48 8b 85 50 09 - 00 00 mov rax, QWORD PTR ans$[rbp] - 00bb3 48 83 c0 50 add rax, 80 ; 00000050H - 00bb7 0f 28 85 80 01 - 00 00 movaps xmm0, XMMWORD PTR c2_hi$[rbp] - 00bbe 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 318 : _mm_store_pd(ans->f64_x + (3 * 2 + 0), c3_lo); - - 00bc1 48 8b 85 50 09 - 00 00 mov rax, QWORD PTR ans$[rbp] - 00bc8 48 83 c0 60 add rax, 96 ; 00000060H - 00bcc 0f 28 85 b0 01 - 00 00 movaps xmm0, XMMWORD PTR c3_lo$[rbp] - 00bd3 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 319 : _mm_store_pd(ans->f64_x + (3 * 2 + 1), c3_hi); - - 00bd6 48 8b 85 50 09 - 00 00 mov rax, QWORD PTR ans$[rbp] - 00bdd 48 83 c0 70 add rax, 112 ; 00000070H - 00be1 0f 28 85 e0 01 - 00 00 movaps xmm0, XMMWORD PTR c3_hi$[rbp] - 00be8 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 320 : } - - 00beb 48 8d a5 28 09 - 00 00 lea rsp, QWORD PTR [rbp+2344] - 00bf2 5f pop rdi - 00bf3 5d pop rbp - 00bf4 c3 ret 0 -double_kernel_tile_fma_sse ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.fma_tile.x86.c -; COMDAT float_kernel_tile_fma_512 -_TEXT SEGMENT -i$ = 4 -j$ = 36 -commonK$ = 68 -ansHeight$ = 100 -b_shift$ = 192 -c$ = 320 -k$1 = 408 -left_cur$2 = 440 -right_cur$3 = 472 -a$4 = 512 -b$5 = 640 -a_perm$6 = 768 -b_perm$7 = 896 -left$ = 1456 -right$ = 1464 -ans$ = 1472 -enumeration$ = 1480 -float_kernel_tile_fma_512 PROC ; COMDAT - -; 203 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 41 55 push r13 - 00016 55 push rbp - 00017 57 push rdi - 00018 48 81 ec b0 05 - 00 00 sub rsp, 1456 ; 000005b0H - 0001f 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00024 48 8d 6c 24 60 lea rbp, QWORD PTR [rsp+96] - 00029 48 83 e5 c0 and rbp, -64 ; ffffffffffffffc0H - 0002d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__31D20E98_m@fma_tile@x86@c - 00034 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00039 90 npad 1 - -; 204 : static const __m512i b_shift_source = { .m512i_i32 = { -; 205 : // shuff order -; 206 : 0, 1, 2, 3, // col0 -; 207 : 5, 6, 7, 4, //col1 -; 208 : 10, 11, 8, 9, //col2 -; 209 : 15, 12, 13, 14 //col3 -; 210 : } }; -; 211 : int i = enumeration->m128_i32[0]; - - 0003a b8 04 00 00 00 mov eax, 4 - 0003f 48 6b c0 00 imul rax, rax, 0 - 00043 49 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 0004a 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 0004d 89 45 04 mov DWORD PTR i$[rbp], eax - -; 212 : int j = enumeration->m128_i32[1]; - - 00050 b8 04 00 00 00 mov eax, 4 - 00055 48 6b c0 01 imul rax, rax, 1 - 00059 49 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 00060 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 00063 89 45 24 mov DWORD PTR j$[rbp], eax - -; 213 : int commonK = enumeration->m128_i32[2]; - - 00066 b8 04 00 00 00 mov eax, 4 - 0006b 48 6b c0 02 imul rax, rax, 2 - 0006f 49 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 00076 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 00079 89 45 44 mov DWORD PTR commonK$[rbp], eax - -; 214 : int ansHeight = enumeration->m128_i32[3]; - - 0007c b8 04 00 00 00 mov eax, 4 - 00081 48 6b c0 03 imul rax, rax, 3 - 00085 49 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 0008c 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 0008f 89 45 64 mov DWORD PTR ansHeight$[rbp], eax - -; 215 : -; 216 : register __m512i b_shift = _mm512_load_si512(&b_shift_source); - - 00092 62 f1 7d 48 6f - 05 00 00 00 00 vmovdqa32 zmm0, ZMMWORD PTR ?b_shift_source@?1??float_kernel_tile_fma_512@@9@9 - 0009c 62 f1 7e 48 7f - 45 03 vmovdqu32 ZMMWORD PTR b_shift$[rbp], zmm0 - -; 217 : register __m512 c = _mm512_load_ps((float *)(ans + GET_INDEX(ansHeight, i, j))); - - 000a3 8b 45 64 mov eax, DWORD PTR ansHeight$[rbp] - 000a6 0f af 45 04 imul eax, DWORD PTR i$[rbp] - 000aa 03 45 24 add eax, DWORD PTR j$[rbp] - 000ad 48 98 cdqe - 000af 48 6b c0 40 imul rax, rax, 64 ; 00000040H - 000b3 49 8b 8d c0 05 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000ba 48 03 c8 add rcx, rax - 000bd 48 8b c1 mov rax, rcx - 000c0 62 f1 7c 48 10 - 00 vmovups zmm0, ZMMWORD PTR [rax] - 000c6 62 f1 7c 48 11 - 45 05 vmovups ZMMWORD PTR c$[rbp], zmm0 - -; 218 : for (size_t k = 0; k < commonK; k++) { - - 000cd 48 c7 85 98 01 - 00 00 00 00 00 - 00 mov QWORD PTR k$1[rbp], 0 - 000d8 eb 11 jmp SHORT $LN4@float_kern -$LN2@float_kern: - 000da 48 8b 85 98 01 - 00 00 mov rax, QWORD PTR k$1[rbp] - 000e1 48 ff c0 inc rax - 000e4 48 89 85 98 01 - 00 00 mov QWORD PTR k$1[rbp], rax -$LN4@float_kern: - 000eb 48 63 45 44 movsxd rax, DWORD PTR commonK$[rbp] - 000ef 48 39 85 98 01 - 00 00 cmp QWORD PTR k$1[rbp], rax - 000f6 0f 83 99 01 00 - 00 jae $LN3@float_kern - -; 219 : MAT_KERNEL(double) *const left_cur = left + GET_INDEX(ansHeight, k, j), - - 000fc 48 63 45 64 movsxd rax, DWORD PTR ansHeight$[rbp] - 00100 48 0f af 85 98 - 01 00 00 imul rax, QWORD PTR k$1[rbp] - 00108 48 63 4d 24 movsxd rcx, DWORD PTR j$[rbp] - 0010c 48 03 c1 add rax, rcx - 0010f 48 6b c0 40 imul rax, rax, 64 ; 00000040H - 00113 49 8b 8d b0 05 - 00 00 mov rcx, QWORD PTR left$[r13] - 0011a 48 03 c8 add rcx, rax - 0011d 48 8b c1 mov rax, rcx - 00120 48 89 85 b8 01 - 00 00 mov QWORD PTR left_cur$2[rbp], rax - -; 220 : const *right_cur = - - 00127 8b 45 44 mov eax, DWORD PTR commonK$[rbp] - 0012a 0f af 45 04 imul eax, DWORD PTR i$[rbp] - 0012e 48 98 cdqe - 00130 48 03 85 98 01 - 00 00 add rax, QWORD PTR k$1[rbp] - 00137 48 6b c0 40 imul rax, rax, 64 ; 00000040H - 0013b 49 8b 8d b8 05 - 00 00 mov rcx, QWORD PTR right$[r13] - 00142 48 03 c8 add rcx, rax - 00145 48 8b c1 mov rax, rcx - 00148 48 89 85 d8 01 - 00 00 mov QWORD PTR right_cur$3[rbp], rax - -; 221 : right + GET_INDEX(commonK, i, -; 222 : k); // GetKernelAddressUnsafe -; 223 : -; 224 : register __m512 a = _mm512_load_ps((float *)left_cur); - - 0014f 48 8b 85 b8 01 - 00 00 mov rax, QWORD PTR left_cur$2[rbp] - 00156 62 f1 7c 48 10 - 00 vmovups zmm0, ZMMWORD PTR [rax] - 0015c 62 f1 7c 48 11 - 45 08 vmovups ZMMWORD PTR a$4[rbp], zmm0 - -; 225 : register __m512 b = _mm512_load_ps((float *)right_cur); - - 00163 48 8b 85 d8 01 - 00 00 mov rax, QWORD PTR right_cur$3[rbp] - 0016a 62 f1 7c 48 10 - 00 vmovups zmm0, ZMMWORD PTR [rax] - 00170 62 f1 7c 48 11 - 45 0a vmovups ZMMWORD PTR b$5[rbp], zmm0 - -; 226 : -; 227 : b = _mm512_permutexvar_ps(b_shift, b); - - 00177 62 f1 7e 48 6f - 45 03 vmovdqu32 zmm0, ZMMWORD PTR b_shift$[rbp] - 0017e 62 f2 7d 48 16 - 45 0a vpermps zmm0, zmm0, ZMMWORD PTR b$5[rbp] - 00185 62 f1 7c 48 11 - 45 0a vmovups ZMMWORD PTR b$5[rbp], zmm0 - -; 228 : register __m512 a_perm = _mm512_shuffle_f32x4(a, a, _MM_SHUFFLE(3, 2, 1, 0)); - - 0018c 62 f1 7c 48 10 - 45 08 vmovups zmm0, ZMMWORD PTR a$4[rbp] - 00193 62 f3 7d 48 23 - 45 08 e4 vshuff32x4 zmm0, zmm0, ZMMWORD PTR a$4[rbp], 228 ; 000000e4H - 0019b 62 f1 7c 48 11 - 45 0c vmovups ZMMWORD PTR a_perm$6[rbp], zmm0 - -; 229 : register __m512 b_perm = _mm512_permute_ps(b, _FMA_SELECT(0)); - - 001a2 62 f3 7d 48 04 - 45 0a 00 vpermilps zmm0, ZMMWORD PTR b$5[rbp], 0 - 001aa 62 f1 7c 48 11 - 45 0e vmovups ZMMWORD PTR b_perm$7[rbp], zmm0 - -; 230 : c = _mm512_fmadd_ps(a_perm, b_perm, c); - - 001b1 62 f1 7c 48 10 - 45 0c vmovups zmm0, ZMMWORD PTR a_perm$6[rbp] - 001b8 62 f1 7c 48 10 - 4d 0e vmovups zmm1, ZMMWORD PTR b_perm$7[rbp] - 001bf 62 f2 75 48 a8 - 45 05 vfmadd213ps zmm0, zmm1, ZMMWORD PTR c$[rbp] - 001c6 62 f1 7c 48 11 - 45 05 vmovups ZMMWORD PTR c$[rbp], zmm0 - -; 231 : -; 232 : a_perm = _mm512_shuffle_f32x4(a, a, _MM_SHUFFLE(2, 1, 0, 3)); - - 001cd 62 f1 7c 48 10 - 45 08 vmovups zmm0, ZMMWORD PTR a$4[rbp] - 001d4 62 f3 7d 48 23 - 45 08 93 vshuff32x4 zmm0, zmm0, ZMMWORD PTR a$4[rbp], 147 ; 00000093H - 001dc 62 f1 7c 48 11 - 45 0c vmovups ZMMWORD PTR a_perm$6[rbp], zmm0 - -; 233 : b_perm = _mm512_permute_ps(b, _FMA_SELECT(1)); - - 001e3 62 f3 7d 48 04 - 45 0a 55 vpermilps zmm0, ZMMWORD PTR b$5[rbp], 85 ; 00000055H - 001eb 62 f1 7c 48 11 - 45 0e vmovups ZMMWORD PTR b_perm$7[rbp], zmm0 - -; 234 : c = _mm512_fmadd_ps(a_perm, b_perm, c); - - 001f2 62 f1 7c 48 10 - 45 0c vmovups zmm0, ZMMWORD PTR a_perm$6[rbp] - 001f9 62 f1 7c 48 10 - 4d 0e vmovups zmm1, ZMMWORD PTR b_perm$7[rbp] - 00200 62 f2 75 48 a8 - 45 05 vfmadd213ps zmm0, zmm1, ZMMWORD PTR c$[rbp] - 00207 62 f1 7c 48 11 - 45 05 vmovups ZMMWORD PTR c$[rbp], zmm0 - -; 235 : -; 236 : a_perm = _mm512_shuffle_f32x4(a, a, _MM_SHUFFLE(1, 0, 3, 2)); - - 0020e 62 f1 7c 48 10 - 45 08 vmovups zmm0, ZMMWORD PTR a$4[rbp] - 00215 62 f3 7d 48 23 - 45 08 4e vshuff32x4 zmm0, zmm0, ZMMWORD PTR a$4[rbp], 78 ; 0000004eH - 0021d 62 f1 7c 48 11 - 45 0c vmovups ZMMWORD PTR a_perm$6[rbp], zmm0 - -; 237 : b_perm = _mm512_permute_ps(b, _FMA_SELECT(2)); - - 00224 62 f3 7d 48 04 - 45 0a aa vpermilps zmm0, ZMMWORD PTR b$5[rbp], 170 ; 000000aaH - 0022c 62 f1 7c 48 11 - 45 0e vmovups ZMMWORD PTR b_perm$7[rbp], zmm0 - -; 238 : c = _mm512_fmadd_ps(a_perm, b_perm, c); - - 00233 62 f1 7c 48 10 - 45 0c vmovups zmm0, ZMMWORD PTR a_perm$6[rbp] - 0023a 62 f1 7c 48 10 - 4d 0e vmovups zmm1, ZMMWORD PTR b_perm$7[rbp] - 00241 62 f2 75 48 a8 - 45 05 vfmadd213ps zmm0, zmm1, ZMMWORD PTR c$[rbp] - 00248 62 f1 7c 48 11 - 45 05 vmovups ZMMWORD PTR c$[rbp], zmm0 - -; 239 : -; 240 : a_perm = _mm512_shuffle_f32x4(a, a, _MM_SHUFFLE(0, 3, 2, 1)); - - 0024f 62 f1 7c 48 10 - 45 08 vmovups zmm0, ZMMWORD PTR a$4[rbp] - 00256 62 f3 7d 48 23 - 45 08 39 vshuff32x4 zmm0, zmm0, ZMMWORD PTR a$4[rbp], 57 ; 00000039H - 0025e 62 f1 7c 48 11 - 45 0c vmovups ZMMWORD PTR a_perm$6[rbp], zmm0 - -; 241 : b_perm = _mm512_permute_ps(b, _FMA_SELECT(3)); - - 00265 62 f3 7d 48 04 - 45 0a ff vpermilps zmm0, ZMMWORD PTR b$5[rbp], 255 ; 000000ffH - 0026d 62 f1 7c 48 11 - 45 0e vmovups ZMMWORD PTR b_perm$7[rbp], zmm0 - -; 242 : c = _mm512_fmadd_ps(a_perm, b_perm, c); - - 00274 62 f1 7c 48 10 - 45 0c vmovups zmm0, ZMMWORD PTR a_perm$6[rbp] - 0027b 62 f1 7c 48 10 - 4d 0e vmovups zmm1, ZMMWORD PTR b_perm$7[rbp] - 00282 62 f2 75 48 a8 - 45 05 vfmadd213ps zmm0, zmm1, ZMMWORD PTR c$[rbp] - 00289 62 f1 7c 48 11 - 45 05 vmovups ZMMWORD PTR c$[rbp], zmm0 - -; 243 : } - - 00290 e9 45 fe ff ff jmp $LN2@float_kern -$LN3@float_kern: - -; 244 : -; 245 : _mm512_store_ps((float *)(ans + GET_INDEX(ansHeight, i, j)), c); - - 00295 8b 45 64 mov eax, DWORD PTR ansHeight$[rbp] - 00298 0f af 45 04 imul eax, DWORD PTR i$[rbp] - 0029c 03 45 24 add eax, DWORD PTR j$[rbp] - 0029f 48 98 cdqe - 002a1 48 6b c0 40 imul rax, rax, 64 ; 00000040H - 002a5 49 8b 8d c0 05 - 00 00 mov rcx, QWORD PTR ans$[r13] - 002ac 48 03 c8 add rcx, rax - 002af 48 8b c1 mov rax, rcx - 002b2 62 f1 7c 48 10 - 45 05 vmovups zmm0, ZMMWORD PTR c$[rbp] - 002b9 62 f1 7c 48 11 - 00 vmovups ZMMWORD PTR [rax], zmm0 - -; 246 : } - - 002bf 49 8d a5 90 05 - 00 00 lea rsp, QWORD PTR [r13+1424] - 002c6 5f pop rdi - 002c7 5d pop rbp - 002c8 41 5d pop r13 - 002ca c3 ret 0 -float_kernel_tile_fma_512 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.fma_tile.x86.c -; COMDAT float_kernel_tile_fma_avx_fma -_TEXT SEGMENT -i$ = 4 -j$ = 36 -commonK$ = 68 -ansHeight$ = 100 -ans_cur$ = 136 -c01$ = 192 -c23$ = 256 -b01_shift$ = 320 -b23_shift$ = 384 -k$1 = 440 -left_cur$2 = 472 -right_cur$3 = 504 -a01$4 = 544 -a23$5 = 608 -b01$6 = 672 -b23$7 = 736 -b01_perm$8 = 800 -b23_perm$9 = 864 -a12$10 = 928 -a30$11 = 992 -left$ = 1680 -right$ = 1688 -ans$ = 1696 -enumeration$ = 1704 -float_kernel_tile_fma_avx_fma PROC ; COMDAT - -; 140 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 41 55 push r13 - 00016 55 push rbp - 00017 57 push rdi - 00018 48 81 ec 90 06 - 00 00 sub rsp, 1680 ; 00000690H - 0001f 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00024 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00029 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H - 0002d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__31D20E98_m@fma_tile@x86@c - 00034 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00039 90 npad 1 - -; 141 : static const __m256i b01_shift_source = { .m256i_i32 = { 0, 1, 2, 3, 5, 6, 7, 4 } }; -; 142 : static const __m256i b23_shift_source = { .m256i_i32 = { 2, 3, 0, 1, 7, 4, 5, 6 } }; -; 143 : -; 144 : int i = enumeration->m128_i32[0]; - - 0003a b8 04 00 00 00 mov eax, 4 - 0003f 48 6b c0 00 imul rax, rax, 0 - 00043 49 8b 8d a8 06 - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 0004a 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 0004d 89 45 04 mov DWORD PTR i$[rbp], eax - -; 145 : int j = enumeration->m128_i32[1]; - - 00050 b8 04 00 00 00 mov eax, 4 - 00055 48 6b c0 01 imul rax, rax, 1 - 00059 49 8b 8d a8 06 - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 00060 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 00063 89 45 24 mov DWORD PTR j$[rbp], eax - -; 146 : int commonK = enumeration->m128_i32[2]; - - 00066 b8 04 00 00 00 mov eax, 4 - 0006b 48 6b c0 02 imul rax, rax, 2 - 0006f 49 8b 8d a8 06 - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 00076 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 00079 89 45 44 mov DWORD PTR commonK$[rbp], eax - -; 147 : int ansHeight = enumeration->m128_i32[3]; - - 0007c b8 04 00 00 00 mov eax, 4 - 00081 48 6b c0 03 imul rax, rax, 3 - 00085 49 8b 8d a8 06 - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 0008c 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 0008f 89 45 64 mov DWORD PTR ansHeight$[rbp], eax - -; 148 : -; 149 : MAT_KERNEL(float) -; 150 : const *ans_cur = ans + GET_INDEX(ansHeight, i, j); // GetKernelAddressUnsafe - - 00092 8b 45 64 mov eax, DWORD PTR ansHeight$[rbp] - 00095 0f af 45 04 imul eax, DWORD PTR i$[rbp] - 00099 03 45 24 add eax, DWORD PTR j$[rbp] - 0009c 48 98 cdqe - 0009e 48 6b c0 40 imul rax, rax, 64 ; 00000040H - 000a2 49 8b 8d a0 06 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000a9 48 03 c8 add rcx, rax - 000ac 48 8b c1 mov rax, rcx - 000af 48 89 85 88 00 - 00 00 mov QWORD PTR ans_cur$[rbp], rax - -; 151 : -; 152 : register __m256 c01 = _mm256_load_ps((float *)&ans_cur->f32_y[0]); - - 000b6 b8 20 00 00 00 mov eax, 32 ; 00000020H - 000bb 48 6b c0 00 imul rax, rax, 0 - 000bf 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 000c6 48 03 c8 add rcx, rax - 000c9 48 8b c1 mov rax, rcx - 000cc c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 000d0 c5 fc 11 85 c0 - 00 00 00 vmovups YMMWORD PTR c01$[rbp], ymm0 - -; 153 : register __m256 c23 = _mm256_load_ps((float *)&ans_cur->f32_y[1]); - - 000d8 b8 20 00 00 00 mov eax, 32 ; 00000020H - 000dd 48 6b c0 01 imul rax, rax, 1 - 000e1 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 000e8 48 03 c8 add rcx, rax - 000eb 48 8b c1 mov rax, rcx - 000ee c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 000f2 c5 fc 11 85 00 - 01 00 00 vmovups YMMWORD PTR c23$[rbp], ymm0 - -; 154 : -; 155 : register __m256i b01_shift = _mm256_load_si256(&b01_shift_source); - - 000fa c5 fd 6f 05 00 - 00 00 00 vmovdqa ymm0, YMMWORD PTR ?b01_shift_source@?1??float_kernel_tile_fma_avx_fma@@9@9 - 00102 c5 fe 7f 85 40 - 01 00 00 vmovdqu YMMWORD PTR b01_shift$[rbp], ymm0 - -; 156 : register __m256i b23_shift = _mm256_load_si256(&b23_shift_source); - - 0010a c5 fd 6f 05 00 - 00 00 00 vmovdqa ymm0, YMMWORD PTR ?b23_shift_source@?1??float_kernel_tile_fma_avx_fma@@9@9 - 00112 c5 fe 7f 85 80 - 01 00 00 vmovdqu YMMWORD PTR b23_shift$[rbp], ymm0 - -; 157 : -; 158 : for (size_t k = 0; k < commonK; k++) { - - 0011a 48 c7 85 b8 01 - 00 00 00 00 00 - 00 mov QWORD PTR k$1[rbp], 0 - 00125 eb 11 jmp SHORT $LN4@float_kern -$LN2@float_kern: - 00127 48 8b 85 b8 01 - 00 00 mov rax, QWORD PTR k$1[rbp] - 0012e 48 ff c0 inc rax - 00131 48 89 85 b8 01 - 00 00 mov QWORD PTR k$1[rbp], rax -$LN4@float_kern: - 00138 48 63 45 44 movsxd rax, DWORD PTR commonK$[rbp] - 0013c 48 39 85 b8 01 - 00 00 cmp QWORD PTR k$1[rbp], rax - 00143 0f 83 16 03 00 - 00 jae $LN3@float_kern - -; 159 : MAT_KERNEL(float) -; 160 : const *left_cur = left + GET_INDEX(ansHeight, k, j), // GetKernelAddressUnsafe - - 00149 48 63 45 64 movsxd rax, DWORD PTR ansHeight$[rbp] - 0014d 48 0f af 85 b8 - 01 00 00 imul rax, QWORD PTR k$1[rbp] - 00155 48 63 4d 24 movsxd rcx, DWORD PTR j$[rbp] - 00159 48 03 c1 add rax, rcx - 0015c 48 6b c0 40 imul rax, rax, 64 ; 00000040H - 00160 49 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR left$[r13] - 00167 48 03 c8 add rcx, rax - 0016a 48 8b c1 mov rax, rcx - 0016d 48 89 85 d8 01 - 00 00 mov QWORD PTR left_cur$2[rbp], rax - -; 161 : const *right_cur = - - 00174 8b 45 44 mov eax, DWORD PTR commonK$[rbp] - 00177 0f af 45 04 imul eax, DWORD PTR i$[rbp] - 0017b 48 98 cdqe - 0017d 48 03 85 b8 01 - 00 00 add rax, QWORD PTR k$1[rbp] - 00184 48 6b c0 40 imul rax, rax, 64 ; 00000040H - 00188 49 8b 8d 98 06 - 00 00 mov rcx, QWORD PTR right$[r13] - 0018f 48 03 c8 add rcx, rax - 00192 48 8b c1 mov rax, rcx - 00195 48 89 85 f8 01 - 00 00 mov QWORD PTR right_cur$3[rbp], rax - -; 162 : right + GET_INDEX(commonK, i, k); // GetKernelAddressUnsafe -; 163 : -; 164 : register __m256 a01 = _mm256_load_ps((float *)&left_cur->f32_y[0]); - - 0019c b8 20 00 00 00 mov eax, 32 ; 00000020H - 001a1 48 6b c0 00 imul rax, rax, 0 - 001a5 48 8b 8d d8 01 - 00 00 mov rcx, QWORD PTR left_cur$2[rbp] - 001ac 48 03 c8 add rcx, rax - 001af 48 8b c1 mov rax, rcx - 001b2 c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 001b6 c5 fc 11 85 20 - 02 00 00 vmovups YMMWORD PTR a01$4[rbp], ymm0 - -; 165 : register __m256 a23 = _mm256_load_ps((float *)&left_cur->f32_y[1]); - - 001be b8 20 00 00 00 mov eax, 32 ; 00000020H - 001c3 48 6b c0 01 imul rax, rax, 1 - 001c7 48 8b 8d d8 01 - 00 00 mov rcx, QWORD PTR left_cur$2[rbp] - 001ce 48 03 c8 add rcx, rax - 001d1 48 8b c1 mov rax, rcx - 001d4 c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 001d8 c5 fc 11 85 60 - 02 00 00 vmovups YMMWORD PTR a23$5[rbp], ymm0 - -; 166 : -; 167 : register __m256 b01 = _mm256_load_ps((float *)&right_cur->f32_y[0]); - - 001e0 b8 20 00 00 00 mov eax, 32 ; 00000020H - 001e5 48 6b c0 00 imul rax, rax, 0 - 001e9 48 8b 8d f8 01 - 00 00 mov rcx, QWORD PTR right_cur$3[rbp] - 001f0 48 03 c8 add rcx, rax - 001f3 48 8b c1 mov rax, rcx - 001f6 c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 001fa c5 fc 11 85 a0 - 02 00 00 vmovups YMMWORD PTR b01$6[rbp], ymm0 - -; 168 : register __m256 b23 = _mm256_load_ps((float *)&right_cur->f32_y[1]); - - 00202 b8 20 00 00 00 mov eax, 32 ; 00000020H - 00207 48 6b c0 01 imul rax, rax, 1 - 0020b 48 8b 8d f8 01 - 00 00 mov rcx, QWORD PTR right_cur$3[rbp] - 00212 48 03 c8 add rcx, rax - 00215 48 8b c1 mov rax, rcx - 00218 c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 0021c c5 fc 11 85 e0 - 02 00 00 vmovups YMMWORD PTR b23$7[rbp], ymm0 - -; 169 : b01 = _mm256_permutevar_ps(b01, b01_shift); - - 00224 c5 fc 10 85 a0 - 02 00 00 vmovups ymm0, YMMWORD PTR b01$6[rbp] - 0022c c4 e2 7d 0c 85 - 40 01 00 00 vpermilps ymm0, ymm0, YMMWORD PTR b01_shift$[rbp] - 00235 c5 fc 11 85 a0 - 02 00 00 vmovups YMMWORD PTR b01$6[rbp], ymm0 - -; 170 : b23 = _mm256_permutevar_ps(b23, b23_shift); - - 0023d c5 fc 10 85 e0 - 02 00 00 vmovups ymm0, YMMWORD PTR b23$7[rbp] - 00245 c4 e2 7d 0c 85 - 80 01 00 00 vpermilps ymm0, ymm0, YMMWORD PTR b23_shift$[rbp] - 0024e c5 fc 11 85 e0 - 02 00 00 vmovups YMMWORD PTR b23$7[rbp], ymm0 - -; 171 : -; 172 : //group 0 -; 173 : register __m256 b01_perm = _mm256_shuffle_ps(b01, b01, _FMA_SELECT(0)); - - 00256 c5 fc 10 85 a0 - 02 00 00 vmovups ymm0, YMMWORD PTR b01$6[rbp] - 0025e c5 fc c6 85 a0 - 02 00 00 00 vshufps ymm0, ymm0, YMMWORD PTR b01$6[rbp], 0 - 00267 c5 fc 11 85 20 - 03 00 00 vmovups YMMWORD PTR b01_perm$8[rbp], ymm0 - -; 174 : register __m256 b23_perm = _mm256_shuffle_ps(b23, b23, _FMA_SELECT(0)); - - 0026f c5 fc 10 85 e0 - 02 00 00 vmovups ymm0, YMMWORD PTR b23$7[rbp] - 00277 c5 fc c6 85 e0 - 02 00 00 00 vshufps ymm0, ymm0, YMMWORD PTR b23$7[rbp], 0 - 00280 c5 fc 11 85 60 - 03 00 00 vmovups YMMWORD PTR b23_perm$9[rbp], ymm0 - -; 175 : c01 = _mm256_fmadd_ps(a01, b01_perm, c01); - - 00288 c5 fc 10 85 20 - 02 00 00 vmovups ymm0, YMMWORD PTR a01$4[rbp] - 00290 c5 fc 10 8d 20 - 03 00 00 vmovups ymm1, YMMWORD PTR b01_perm$8[rbp] - 00298 c4 e2 75 a8 85 - c0 00 00 00 vfmadd213ps ymm0, ymm1, YMMWORD PTR c01$[rbp] - 002a1 c5 fc 11 85 c0 - 00 00 00 vmovups YMMWORD PTR c01$[rbp], ymm0 - -; 176 : c23 = _mm256_fmadd_ps(a23, b23_perm, c23); - - 002a9 c5 fc 10 85 60 - 02 00 00 vmovups ymm0, YMMWORD PTR a23$5[rbp] - 002b1 c5 fc 10 8d 60 - 03 00 00 vmovups ymm1, YMMWORD PTR b23_perm$9[rbp] - 002b9 c4 e2 75 a8 85 - 00 01 00 00 vfmadd213ps ymm0, ymm1, YMMWORD PTR c23$[rbp] - 002c2 c5 fc 11 85 00 - 01 00 00 vmovups YMMWORD PTR c23$[rbp], ymm0 - -; 177 : -; 178 : //group 2 -; 179 : b01_perm = _mm256_shuffle_ps(b01, b01, _FMA_SELECT(2)); - - 002ca c5 fc 10 85 a0 - 02 00 00 vmovups ymm0, YMMWORD PTR b01$6[rbp] - 002d2 c5 fc c6 85 a0 - 02 00 00 aa vshufps ymm0, ymm0, YMMWORD PTR b01$6[rbp], 170 ; 000000aaH - 002db c5 fc 11 85 20 - 03 00 00 vmovups YMMWORD PTR b01_perm$8[rbp], ymm0 - -; 180 : b23_perm = _mm256_shuffle_ps(b23, b23, _FMA_SELECT(2)); - - 002e3 c5 fc 10 85 e0 - 02 00 00 vmovups ymm0, YMMWORD PTR b23$7[rbp] - 002eb c5 fc c6 85 e0 - 02 00 00 aa vshufps ymm0, ymm0, YMMWORD PTR b23$7[rbp], 170 ; 000000aaH - 002f4 c5 fc 11 85 60 - 03 00 00 vmovups YMMWORD PTR b23_perm$9[rbp], ymm0 - -; 181 : c01 = _mm256_fmadd_ps(a23, b01_perm, c01); - - 002fc c5 fc 10 85 60 - 02 00 00 vmovups ymm0, YMMWORD PTR a23$5[rbp] - 00304 c5 fc 10 8d 20 - 03 00 00 vmovups ymm1, YMMWORD PTR b01_perm$8[rbp] - 0030c c4 e2 75 a8 85 - c0 00 00 00 vfmadd213ps ymm0, ymm1, YMMWORD PTR c01$[rbp] - 00315 c5 fc 11 85 c0 - 00 00 00 vmovups YMMWORD PTR c01$[rbp], ymm0 - -; 182 : c23 = _mm256_fmadd_ps(a01, b23_perm, c23); - - 0031d c5 fc 10 85 20 - 02 00 00 vmovups ymm0, YMMWORD PTR a01$4[rbp] - 00325 c5 fc 10 8d 60 - 03 00 00 vmovups ymm1, YMMWORD PTR b23_perm$9[rbp] - 0032d c4 e2 75 a8 85 - 00 01 00 00 vfmadd213ps ymm0, ymm1, YMMWORD PTR c23$[rbp] - 00336 c5 fc 11 85 00 - 01 00 00 vmovups YMMWORD PTR c23$[rbp], ymm0 - -; 183 : -; 184 : //group 1 -; 185 : register __m256 a12 = _mm256_permute2f128_ps(a01, a23, 0x21); - - 0033e c5 fc 10 85 20 - 02 00 00 vmovups ymm0, YMMWORD PTR a01$4[rbp] - 00346 c4 e3 7d 06 85 - 60 02 00 00 21 vperm2f128 ymm0, ymm0, YMMWORD PTR a23$5[rbp], 33 ; 00000021H - 00350 c5 fc 11 85 a0 - 03 00 00 vmovups YMMWORD PTR a12$10[rbp], ymm0 - -; 186 : register __m256 a30 = _mm256_permute2f128_ps(a01, a23, 0x30); - - 00358 c5 fc 10 85 20 - 02 00 00 vmovups ymm0, YMMWORD PTR a01$4[rbp] - 00360 c4 e3 7d 06 85 - 60 02 00 00 30 vperm2f128 ymm0, ymm0, YMMWORD PTR a23$5[rbp], 48 ; 00000030H - 0036a c5 fc 11 85 e0 - 03 00 00 vmovups YMMWORD PTR a30$11[rbp], ymm0 - -; 187 : b01_perm = _mm256_shuffle_ps(b01, b01, _FMA_SELECT(1)); - - 00372 c5 fc 10 85 a0 - 02 00 00 vmovups ymm0, YMMWORD PTR b01$6[rbp] - 0037a c5 fc c6 85 a0 - 02 00 00 55 vshufps ymm0, ymm0, YMMWORD PTR b01$6[rbp], 85 ; 00000055H - 00383 c5 fc 11 85 20 - 03 00 00 vmovups YMMWORD PTR b01_perm$8[rbp], ymm0 - -; 188 : b23_perm = _mm256_shuffle_ps(b23, b23, _FMA_SELECT(1)); - - 0038b c5 fc 10 85 e0 - 02 00 00 vmovups ymm0, YMMWORD PTR b23$7[rbp] - 00393 c5 fc c6 85 e0 - 02 00 00 55 vshufps ymm0, ymm0, YMMWORD PTR b23$7[rbp], 85 ; 00000055H - 0039c c5 fc 11 85 60 - 03 00 00 vmovups YMMWORD PTR b23_perm$9[rbp], ymm0 - -; 189 : c01 = _mm256_fmadd_ps(a12, b01_perm, c01); - - 003a4 c5 fc 10 85 a0 - 03 00 00 vmovups ymm0, YMMWORD PTR a12$10[rbp] - 003ac c5 fc 10 8d 20 - 03 00 00 vmovups ymm1, YMMWORD PTR b01_perm$8[rbp] - 003b4 c4 e2 75 a8 85 - c0 00 00 00 vfmadd213ps ymm0, ymm1, YMMWORD PTR c01$[rbp] - 003bd c5 fc 11 85 c0 - 00 00 00 vmovups YMMWORD PTR c01$[rbp], ymm0 - -; 190 : c23 = _mm256_fmadd_ps(a30, b23_perm, c23); - - 003c5 c5 fc 10 85 e0 - 03 00 00 vmovups ymm0, YMMWORD PTR a30$11[rbp] - 003cd c5 fc 10 8d 60 - 03 00 00 vmovups ymm1, YMMWORD PTR b23_perm$9[rbp] - 003d5 c4 e2 75 a8 85 - 00 01 00 00 vfmadd213ps ymm0, ymm1, YMMWORD PTR c23$[rbp] - 003de c5 fc 11 85 00 - 01 00 00 vmovups YMMWORD PTR c23$[rbp], ymm0 - -; 191 : -; 192 : //group 3 -; 193 : b01_perm = _mm256_shuffle_ps(b01, b01, _FMA_SELECT(3)); - - 003e6 c5 fc 10 85 a0 - 02 00 00 vmovups ymm0, YMMWORD PTR b01$6[rbp] - 003ee c5 fc c6 85 a0 - 02 00 00 ff vshufps ymm0, ymm0, YMMWORD PTR b01$6[rbp], 255 ; 000000ffH - 003f7 c5 fc 11 85 20 - 03 00 00 vmovups YMMWORD PTR b01_perm$8[rbp], ymm0 - -; 194 : b23_perm = _mm256_shuffle_ps(b23, b23, _FMA_SELECT(3)); - - 003ff c5 fc 10 85 e0 - 02 00 00 vmovups ymm0, YMMWORD PTR b23$7[rbp] - 00407 c5 fc c6 85 e0 - 02 00 00 ff vshufps ymm0, ymm0, YMMWORD PTR b23$7[rbp], 255 ; 000000ffH - 00410 c5 fc 11 85 60 - 03 00 00 vmovups YMMWORD PTR b23_perm$9[rbp], ymm0 - -; 195 : c01 = _mm256_fmadd_ps(a30, b01_perm, c01); - - 00418 c5 fc 10 85 e0 - 03 00 00 vmovups ymm0, YMMWORD PTR a30$11[rbp] - 00420 c5 fc 10 8d 20 - 03 00 00 vmovups ymm1, YMMWORD PTR b01_perm$8[rbp] - 00428 c4 e2 75 a8 85 - c0 00 00 00 vfmadd213ps ymm0, ymm1, YMMWORD PTR c01$[rbp] - 00431 c5 fc 11 85 c0 - 00 00 00 vmovups YMMWORD PTR c01$[rbp], ymm0 - -; 196 : c23 = _mm256_fmadd_ps(a12, b23_perm, c23); - - 00439 c5 fc 10 85 a0 - 03 00 00 vmovups ymm0, YMMWORD PTR a12$10[rbp] - 00441 c5 fc 10 8d 60 - 03 00 00 vmovups ymm1, YMMWORD PTR b23_perm$9[rbp] - 00449 c4 e2 75 a8 85 - 00 01 00 00 vfmadd213ps ymm0, ymm1, YMMWORD PTR c23$[rbp] - 00452 c5 fc 11 85 00 - 01 00 00 vmovups YMMWORD PTR c23$[rbp], ymm0 - -; 197 : } - - 0045a e9 c8 fc ff ff jmp $LN2@float_kern -$LN3@float_kern: - -; 198 : _mm256_store_ps((float *)&ans_cur->f32_y[0], c01); - - 0045f b8 20 00 00 00 mov eax, 32 ; 00000020H - 00464 48 6b c0 00 imul rax, rax, 0 - 00468 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 0046f 48 03 c8 add rcx, rax - 00472 48 8b c1 mov rax, rcx - 00475 c5 fc 10 85 c0 - 00 00 00 vmovups ymm0, YMMWORD PTR c01$[rbp] - 0047d c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0 - -; 199 : _mm256_store_ps((float *)&ans_cur->f32_y[1], c23); - - 00481 b8 20 00 00 00 mov eax, 32 ; 00000020H - 00486 48 6b c0 01 imul rax, rax, 1 - 0048a 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 00491 48 03 c8 add rcx, rax - 00494 48 8b c1 mov rax, rcx - 00497 c5 fc 10 85 00 - 01 00 00 vmovups ymm0, YMMWORD PTR c23$[rbp] - 0049f c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0 - -; 200 : } - - 004a3 49 8d a5 70 06 - 00 00 lea rsp, QWORD PTR [r13+1648] - 004aa 5f pop rdi - 004ab 5d pop rbp - 004ac 41 5d pop r13 - 004ae c3 ret 0 -float_kernel_tile_fma_avx_fma ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.fma_tile.x86.c -; COMDAT float_kernel_tile_fma_avx -_TEXT SEGMENT -i$ = 4 -j$ = 36 -commonK$ = 68 -ansHeight$ = 100 -ans_cur$ = 136 -c01$ = 192 -c23$ = 256 -b01_shift$ = 320 -b23_shift$ = 384 -k$1 = 440 -left_cur$2 = 472 -right_cur$3 = 504 -a01$4 = 544 -a23$5 = 608 -b01$6 = 672 -b23$7 = 736 -b01_perm$8 = 800 -b23_perm$9 = 864 -a12$10 = 928 -a30$11 = 992 -left$ = 1680 -right$ = 1688 -ans$ = 1696 -enumeration$ = 1704 -float_kernel_tile_fma_avx PROC ; COMDAT - -; 77 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 41 55 push r13 - 00016 55 push rbp - 00017 57 push rdi - 00018 48 81 ec 90 06 - 00 00 sub rsp, 1680 ; 00000690H - 0001f 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00024 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00029 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H - 0002d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__31D20E98_m@fma_tile@x86@c - 00034 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00039 90 npad 1 - -; 78 : static const __m256i b01_shift_source = { .m256i_i32 = { 0, 1, 2, 3, 5, 6, 7, 4 } }; -; 79 : static const __m256i b23_shift_source = { .m256i_i32 = { 2, 3, 0, 1, 7, 4, 5, 6 } }; -; 80 : -; 81 : int i = enumeration->m128_i32[0]; - - 0003a b8 04 00 00 00 mov eax, 4 - 0003f 48 6b c0 00 imul rax, rax, 0 - 00043 49 8b 8d a8 06 - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 0004a 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 0004d 89 45 04 mov DWORD PTR i$[rbp], eax - -; 82 : int j = enumeration->m128_i32[1]; - - 00050 b8 04 00 00 00 mov eax, 4 - 00055 48 6b c0 01 imul rax, rax, 1 - 00059 49 8b 8d a8 06 - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 00060 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 00063 89 45 24 mov DWORD PTR j$[rbp], eax - -; 83 : int commonK = enumeration->m128_i32[2]; - - 00066 b8 04 00 00 00 mov eax, 4 - 0006b 48 6b c0 02 imul rax, rax, 2 - 0006f 49 8b 8d a8 06 - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 00076 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 00079 89 45 44 mov DWORD PTR commonK$[rbp], eax - -; 84 : int ansHeight = enumeration->m128_i32[3]; - - 0007c b8 04 00 00 00 mov eax, 4 - 00081 48 6b c0 03 imul rax, rax, 3 - 00085 49 8b 8d a8 06 - 00 00 mov rcx, QWORD PTR enumeration$[r13] - 0008c 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 0008f 89 45 64 mov DWORD PTR ansHeight$[rbp], eax - -; 85 : -; 86 : MAT_KERNEL(float) -; 87 : const *ans_cur = ans + GET_INDEX(ansHeight, i, j); // GetKernelAddressUnsafe - - 00092 8b 45 64 mov eax, DWORD PTR ansHeight$[rbp] - 00095 0f af 45 04 imul eax, DWORD PTR i$[rbp] - 00099 03 45 24 add eax, DWORD PTR j$[rbp] - 0009c 48 98 cdqe - 0009e 48 6b c0 40 imul rax, rax, 64 ; 00000040H - 000a2 49 8b 8d a0 06 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000a9 48 03 c8 add rcx, rax - 000ac 48 8b c1 mov rax, rcx - 000af 48 89 85 88 00 - 00 00 mov QWORD PTR ans_cur$[rbp], rax - -; 88 : -; 89 : register __m256 c01 = _mm256_load_ps((float *)&ans->f32_y[0]); - - 000b6 b8 20 00 00 00 mov eax, 32 ; 00000020H - 000bb 48 6b c0 00 imul rax, rax, 0 - 000bf 49 8b 8d a0 06 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000c6 48 03 c8 add rcx, rax - 000c9 48 8b c1 mov rax, rcx - 000cc c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 000d0 c5 fc 11 85 c0 - 00 00 00 vmovups YMMWORD PTR c01$[rbp], ymm0 - -; 90 : register __m256 c23 = _mm256_load_ps((float *)&ans->f32_y[1]); - - 000d8 b8 20 00 00 00 mov eax, 32 ; 00000020H - 000dd 48 6b c0 01 imul rax, rax, 1 - 000e1 49 8b 8d a0 06 - 00 00 mov rcx, QWORD PTR ans$[r13] - 000e8 48 03 c8 add rcx, rax - 000eb 48 8b c1 mov rax, rcx - 000ee c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 000f2 c5 fc 11 85 00 - 01 00 00 vmovups YMMWORD PTR c23$[rbp], ymm0 - -; 91 : -; 92 : register __m256i b01_shift = _mm256_load_si256(&b01_shift_source); - - 000fa c5 fd 6f 05 00 - 00 00 00 vmovdqa ymm0, YMMWORD PTR ?b01_shift_source@?1??float_kernel_tile_fma_avx@@9@9 - 00102 c5 fe 7f 85 40 - 01 00 00 vmovdqu YMMWORD PTR b01_shift$[rbp], ymm0 - -; 93 : register __m256i b23_shift = _mm256_load_si256(&b23_shift_source); - - 0010a c5 fd 6f 05 00 - 00 00 00 vmovdqa ymm0, YMMWORD PTR ?b23_shift_source@?1??float_kernel_tile_fma_avx@@9@9 - 00112 c5 fe 7f 85 80 - 01 00 00 vmovdqu YMMWORD PTR b23_shift$[rbp], ymm0 - -; 94 : -; 95 : for (size_t k = 0; k < commonK; k++) { - - 0011a 48 c7 85 b8 01 - 00 00 00 00 00 - 00 mov QWORD PTR k$1[rbp], 0 - 00125 eb 11 jmp SHORT $LN4@float_kern -$LN2@float_kern: - 00127 48 8b 85 b8 01 - 00 00 mov rax, QWORD PTR k$1[rbp] - 0012e 48 ff c0 inc rax - 00131 48 89 85 b8 01 - 00 00 mov QWORD PTR k$1[rbp], rax -$LN4@float_kern: - 00138 48 63 45 44 movsxd rax, DWORD PTR commonK$[rbp] - 0013c 48 39 85 b8 01 - 00 00 cmp QWORD PTR k$1[rbp], rax - 00143 0f 83 0b 03 00 - 00 jae $LN3@float_kern - -; 96 : MAT_KERNEL(float) -; 97 : const *left_cur = left + GET_INDEX(ansHeight, i, k), // GetKernelAddressUnsafe - - 00149 8b 45 64 mov eax, DWORD PTR ansHeight$[rbp] - 0014c 0f af 45 04 imul eax, DWORD PTR i$[rbp] - 00150 48 98 cdqe - 00152 48 03 85 b8 01 - 00 00 add rax, QWORD PTR k$1[rbp] - 00159 48 6b c0 40 imul rax, rax, 64 ; 00000040H - 0015d 49 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR left$[r13] - 00164 48 03 c8 add rcx, rax - 00167 48 8b c1 mov rax, rcx - 0016a 48 89 85 d8 01 - 00 00 mov QWORD PTR left_cur$2[rbp], rax - -; 98 : const *right_cur = - - 00171 8b 45 64 mov eax, DWORD PTR ansHeight$[rbp] - 00174 0f af 45 24 imul eax, DWORD PTR j$[rbp] - 00178 48 98 cdqe - 0017a 48 03 85 b8 01 - 00 00 add rax, QWORD PTR k$1[rbp] - 00181 48 6b c0 40 imul rax, rax, 64 ; 00000040H - 00185 49 8b 8d 98 06 - 00 00 mov rcx, QWORD PTR right$[r13] - 0018c 48 03 c8 add rcx, rax - 0018f 48 8b c1 mov rax, rcx - 00192 48 89 85 f8 01 - 00 00 mov QWORD PTR right_cur$3[rbp], rax - -; 99 : right + GET_INDEX(ansHeight, j, k); // GetKernelAddressUnsafe -; 100 : -; 101 : register __m256 a01 = _mm256_load_ps((float *)&left_cur->f32_y[0]); - - 00199 b8 20 00 00 00 mov eax, 32 ; 00000020H - 0019e 48 6b c0 00 imul rax, rax, 0 - 001a2 48 8b 8d d8 01 - 00 00 mov rcx, QWORD PTR left_cur$2[rbp] - 001a9 48 03 c8 add rcx, rax - 001ac 48 8b c1 mov rax, rcx - 001af c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 001b3 c5 fc 11 85 20 - 02 00 00 vmovups YMMWORD PTR a01$4[rbp], ymm0 - -; 102 : register __m256 a23 = _mm256_load_ps((float *)&left_cur->f32_y[1]); - - 001bb b8 20 00 00 00 mov eax, 32 ; 00000020H - 001c0 48 6b c0 01 imul rax, rax, 1 - 001c4 48 8b 8d d8 01 - 00 00 mov rcx, QWORD PTR left_cur$2[rbp] - 001cb 48 03 c8 add rcx, rax - 001ce 48 8b c1 mov rax, rcx - 001d1 c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 001d5 c5 fc 11 85 60 - 02 00 00 vmovups YMMWORD PTR a23$5[rbp], ymm0 - -; 103 : -; 104 : register __m256 b01 = _mm256_load_ps((float *)&right_cur->f32_y[0]); - - 001dd b8 20 00 00 00 mov eax, 32 ; 00000020H - 001e2 48 6b c0 00 imul rax, rax, 0 - 001e6 48 8b 8d f8 01 - 00 00 mov rcx, QWORD PTR right_cur$3[rbp] - 001ed 48 03 c8 add rcx, rax - 001f0 48 8b c1 mov rax, rcx - 001f3 c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 001f7 c5 fc 11 85 a0 - 02 00 00 vmovups YMMWORD PTR b01$6[rbp], ymm0 - -; 105 : register __m256 b23 = _mm256_load_ps((float *)&right_cur->f32_y[1]); - - 001ff b8 20 00 00 00 mov eax, 32 ; 00000020H - 00204 48 6b c0 01 imul rax, rax, 1 - 00208 48 8b 8d f8 01 - 00 00 mov rcx, QWORD PTR right_cur$3[rbp] - 0020f 48 03 c8 add rcx, rax - 00212 48 8b c1 mov rax, rcx - 00215 c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] - 00219 c5 fc 11 85 e0 - 02 00 00 vmovups YMMWORD PTR b23$7[rbp], ymm0 - -; 106 : b01 = _mm256_permutevar_ps(b01, b01_shift); - - 00221 c5 fc 10 85 a0 - 02 00 00 vmovups ymm0, YMMWORD PTR b01$6[rbp] - 00229 c4 e2 7d 0c 85 - 40 01 00 00 vpermilps ymm0, ymm0, YMMWORD PTR b01_shift$[rbp] - 00232 c5 fc 11 85 a0 - 02 00 00 vmovups YMMWORD PTR b01$6[rbp], ymm0 - -; 107 : b23 = _mm256_permutevar_ps(b23, b23_shift); - - 0023a c5 fc 10 85 e0 - 02 00 00 vmovups ymm0, YMMWORD PTR b23$7[rbp] - 00242 c4 e2 7d 0c 85 - 80 01 00 00 vpermilps ymm0, ymm0, YMMWORD PTR b23_shift$[rbp] - 0024b c5 fc 11 85 e0 - 02 00 00 vmovups YMMWORD PTR b23$7[rbp], ymm0 - -; 108 : -; 109 : //group 0 -; 110 : register __m256 b01_perm = _mm256_shuffle_ps(b01, b01, _FMA_SELECT(0)); - - 00253 c5 fc 10 85 a0 - 02 00 00 vmovups ymm0, YMMWORD PTR b01$6[rbp] - 0025b c5 fc c6 85 a0 - 02 00 00 00 vshufps ymm0, ymm0, YMMWORD PTR b01$6[rbp], 0 - 00264 c5 fc 11 85 20 - 03 00 00 vmovups YMMWORD PTR b01_perm$8[rbp], ymm0 - -; 111 : register __m256 b23_perm = _mm256_shuffle_ps(b23, b23, _FMA_SELECT(0)); - - 0026c c5 fc 10 85 e0 - 02 00 00 vmovups ymm0, YMMWORD PTR b23$7[rbp] - 00274 c5 fc c6 85 e0 - 02 00 00 00 vshufps ymm0, ymm0, YMMWORD PTR b23$7[rbp], 0 - 0027d c5 fc 11 85 60 - 03 00 00 vmovups YMMWORD PTR b23_perm$9[rbp], ymm0 - -; 112 : c01 = _mm256_add_ps(_mm256_mul_ps(a01, b01_perm), c01); - - 00285 c5 fc 10 85 20 - 02 00 00 vmovups ymm0, YMMWORD PTR a01$4[rbp] - 0028d c5 fc 59 85 20 - 03 00 00 vmulps ymm0, ymm0, YMMWORD PTR b01_perm$8[rbp] - 00295 c5 fc 58 85 c0 - 00 00 00 vaddps ymm0, ymm0, YMMWORD PTR c01$[rbp] - 0029d c5 fc 11 85 c0 - 00 00 00 vmovups YMMWORD PTR c01$[rbp], ymm0 - -; 113 : c23 = _mm256_add_ps(_mm256_mul_ps(a23, b23_perm), c23); - - 002a5 c5 fc 10 85 60 - 02 00 00 vmovups ymm0, YMMWORD PTR a23$5[rbp] - 002ad c5 fc 59 85 60 - 03 00 00 vmulps ymm0, ymm0, YMMWORD PTR b23_perm$9[rbp] - 002b5 c5 fc 58 85 00 - 01 00 00 vaddps ymm0, ymm0, YMMWORD PTR c23$[rbp] - 002bd c5 fc 11 85 00 - 01 00 00 vmovups YMMWORD PTR c23$[rbp], ymm0 - -; 114 : -; 115 : //group 2 -; 116 : b01_perm = _mm256_shuffle_ps(b01, b01, _FMA_SELECT(2)); - - 002c5 c5 fc 10 85 a0 - 02 00 00 vmovups ymm0, YMMWORD PTR b01$6[rbp] - 002cd c5 fc c6 85 a0 - 02 00 00 aa vshufps ymm0, ymm0, YMMWORD PTR b01$6[rbp], 170 ; 000000aaH - 002d6 c5 fc 11 85 20 - 03 00 00 vmovups YMMWORD PTR b01_perm$8[rbp], ymm0 - -; 117 : b23_perm = _mm256_shuffle_ps(b23, b23, _FMA_SELECT(2)); - - 002de c5 fc 10 85 e0 - 02 00 00 vmovups ymm0, YMMWORD PTR b23$7[rbp] - 002e6 c5 fc c6 85 e0 - 02 00 00 aa vshufps ymm0, ymm0, YMMWORD PTR b23$7[rbp], 170 ; 000000aaH - 002ef c5 fc 11 85 60 - 03 00 00 vmovups YMMWORD PTR b23_perm$9[rbp], ymm0 - -; 118 : c01 = _mm256_add_ps(_mm256_mul_ps(a23, b01_perm), c01); - - 002f7 c5 fc 10 85 60 - 02 00 00 vmovups ymm0, YMMWORD PTR a23$5[rbp] - 002ff c5 fc 59 85 20 - 03 00 00 vmulps ymm0, ymm0, YMMWORD PTR b01_perm$8[rbp] - 00307 c5 fc 58 85 c0 - 00 00 00 vaddps ymm0, ymm0, YMMWORD PTR c01$[rbp] - 0030f c5 fc 11 85 c0 - 00 00 00 vmovups YMMWORD PTR c01$[rbp], ymm0 - -; 119 : c23 = _mm256_add_ps(_mm256_mul_ps(a01, b23_perm), c23); - - 00317 c5 fc 10 85 20 - 02 00 00 vmovups ymm0, YMMWORD PTR a01$4[rbp] - 0031f c5 fc 59 85 60 - 03 00 00 vmulps ymm0, ymm0, YMMWORD PTR b23_perm$9[rbp] - 00327 c5 fc 58 85 00 - 01 00 00 vaddps ymm0, ymm0, YMMWORD PTR c23$[rbp] - 0032f c5 fc 11 85 00 - 01 00 00 vmovups YMMWORD PTR c23$[rbp], ymm0 - -; 120 : -; 121 : //group 1 -; 122 : register __m256 a12 = _mm256_permute2f128_ps(a01, a23, 0x21); - - 00337 c5 fc 10 85 20 - 02 00 00 vmovups ymm0, YMMWORD PTR a01$4[rbp] - 0033f c4 e3 7d 06 85 - 60 02 00 00 21 vperm2f128 ymm0, ymm0, YMMWORD PTR a23$5[rbp], 33 ; 00000021H - 00349 c5 fc 11 85 a0 - 03 00 00 vmovups YMMWORD PTR a12$10[rbp], ymm0 - -; 123 : register __m256 a30 = _mm256_permute2f128_ps(a01, a23, 0x30); - - 00351 c5 fc 10 85 20 - 02 00 00 vmovups ymm0, YMMWORD PTR a01$4[rbp] - 00359 c4 e3 7d 06 85 - 60 02 00 00 30 vperm2f128 ymm0, ymm0, YMMWORD PTR a23$5[rbp], 48 ; 00000030H - 00363 c5 fc 11 85 e0 - 03 00 00 vmovups YMMWORD PTR a30$11[rbp], ymm0 - -; 124 : b01_perm = _mm256_shuffle_ps(b01, b01, _FMA_SELECT(1)); - - 0036b c5 fc 10 85 a0 - 02 00 00 vmovups ymm0, YMMWORD PTR b01$6[rbp] - 00373 c5 fc c6 85 a0 - 02 00 00 55 vshufps ymm0, ymm0, YMMWORD PTR b01$6[rbp], 85 ; 00000055H - 0037c c5 fc 11 85 20 - 03 00 00 vmovups YMMWORD PTR b01_perm$8[rbp], ymm0 - -; 125 : b23_perm = _mm256_shuffle_ps(b23, b23, _FMA_SELECT(1)); - - 00384 c5 fc 10 85 e0 - 02 00 00 vmovups ymm0, YMMWORD PTR b23$7[rbp] - 0038c c5 fc c6 85 e0 - 02 00 00 55 vshufps ymm0, ymm0, YMMWORD PTR b23$7[rbp], 85 ; 00000055H - 00395 c5 fc 11 85 60 - 03 00 00 vmovups YMMWORD PTR b23_perm$9[rbp], ymm0 - -; 126 : c01 = _mm256_add_ps(_mm256_mul_ps(a12, b01_perm), c01); - - 0039d c5 fc 10 85 a0 - 03 00 00 vmovups ymm0, YMMWORD PTR a12$10[rbp] - 003a5 c5 fc 59 85 20 - 03 00 00 vmulps ymm0, ymm0, YMMWORD PTR b01_perm$8[rbp] - 003ad c5 fc 58 85 c0 - 00 00 00 vaddps ymm0, ymm0, YMMWORD PTR c01$[rbp] - 003b5 c5 fc 11 85 c0 - 00 00 00 vmovups YMMWORD PTR c01$[rbp], ymm0 - -; 127 : c23 = _mm256_add_ps(_mm256_mul_ps(a30, b23_perm), c23); - - 003bd c5 fc 10 85 e0 - 03 00 00 vmovups ymm0, YMMWORD PTR a30$11[rbp] - 003c5 c5 fc 59 85 60 - 03 00 00 vmulps ymm0, ymm0, YMMWORD PTR b23_perm$9[rbp] - 003cd c5 fc 58 85 00 - 01 00 00 vaddps ymm0, ymm0, YMMWORD PTR c23$[rbp] - 003d5 c5 fc 11 85 00 - 01 00 00 vmovups YMMWORD PTR c23$[rbp], ymm0 - -; 128 : -; 129 : //group 3 -; 130 : b01_perm = _mm256_shuffle_ps(b01, b01, _FMA_SELECT(3)); - - 003dd c5 fc 10 85 a0 - 02 00 00 vmovups ymm0, YMMWORD PTR b01$6[rbp] - 003e5 c5 fc c6 85 a0 - 02 00 00 ff vshufps ymm0, ymm0, YMMWORD PTR b01$6[rbp], 255 ; 000000ffH - 003ee c5 fc 11 85 20 - 03 00 00 vmovups YMMWORD PTR b01_perm$8[rbp], ymm0 - -; 131 : b23_perm = _mm256_shuffle_ps(b23, b23, _FMA_SELECT(3)); - - 003f6 c5 fc 10 85 e0 - 02 00 00 vmovups ymm0, YMMWORD PTR b23$7[rbp] - 003fe c5 fc c6 85 e0 - 02 00 00 ff vshufps ymm0, ymm0, YMMWORD PTR b23$7[rbp], 255 ; 000000ffH - 00407 c5 fc 11 85 60 - 03 00 00 vmovups YMMWORD PTR b23_perm$9[rbp], ymm0 - -; 132 : c01 = _mm256_add_ps(_mm256_mul_ps(a30, b01_perm), c01); - - 0040f c5 fc 10 85 e0 - 03 00 00 vmovups ymm0, YMMWORD PTR a30$11[rbp] - 00417 c5 fc 59 85 20 - 03 00 00 vmulps ymm0, ymm0, YMMWORD PTR b01_perm$8[rbp] - 0041f c5 fc 58 85 c0 - 00 00 00 vaddps ymm0, ymm0, YMMWORD PTR c01$[rbp] - 00427 c5 fc 11 85 c0 - 00 00 00 vmovups YMMWORD PTR c01$[rbp], ymm0 - -; 133 : c23 = _mm256_add_ps(_mm256_mul_ps(a12, b23_perm), c23); - - 0042f c5 fc 10 85 a0 - 03 00 00 vmovups ymm0, YMMWORD PTR a12$10[rbp] - 00437 c5 fc 59 85 60 - 03 00 00 vmulps ymm0, ymm0, YMMWORD PTR b23_perm$9[rbp] - 0043f c5 fc 58 85 00 - 01 00 00 vaddps ymm0, ymm0, YMMWORD PTR c23$[rbp] - 00447 c5 fc 11 85 00 - 01 00 00 vmovups YMMWORD PTR c23$[rbp], ymm0 - -; 134 : } - - 0044f e9 d3 fc ff ff jmp $LN2@float_kern -$LN3@float_kern: - -; 135 : _mm256_store_ps((float *)&ans_cur->f32_y[0], c01); - - 00454 b8 20 00 00 00 mov eax, 32 ; 00000020H - 00459 48 6b c0 00 imul rax, rax, 0 - 0045d 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 00464 48 03 c8 add rcx, rax - 00467 48 8b c1 mov rax, rcx - 0046a c5 fc 10 85 c0 - 00 00 00 vmovups ymm0, YMMWORD PTR c01$[rbp] - 00472 c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0 - -; 136 : _mm256_store_ps((float *)&ans_cur->f32_y[1], c23); - - 00476 b8 20 00 00 00 mov eax, 32 ; 00000020H - 0047b 48 6b c0 01 imul rax, rax, 1 - 0047f 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 00486 48 03 c8 add rcx, rax - 00489 48 8b c1 mov rax, rcx - 0048c c5 fc 10 85 00 - 01 00 00 vmovups ymm0, YMMWORD PTR c23$[rbp] - 00494 c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0 - -; 137 : } - - 00498 49 8d a5 70 06 - 00 00 lea rsp, QWORD PTR [r13+1648] - 0049f 5f pop rdi - 004a0 5d pop rbp - 004a1 41 5d pop r13 - 004a3 c3 ret 0 -float_kernel_tile_fma_avx ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.fma_tile.x86.c -; COMDAT float_kernel_tile_fma_sse -_TEXT SEGMENT -i$ = 4 -j$ = 36 -commonK$ = 68 -ansHeight$ = 100 -ans_cur$ = 136 -c0$ = 176 -c1$ = 224 -c2$ = 272 -c3$ = 320 -bcol$ = 368 -k$1 = 408 -right_cur$2 = 440 -left_cur$3 = 472 -a0$4 = 512 -a1$5 = 560 -a2$6 = 608 -a3$7 = 656 -left$ = 1104 -right$ = 1112 -ans$ = 1120 -enumeration$ = 1128 -float_kernel_tile_fma_sse PROC ; COMDAT - -; 15 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 58 04 - 00 00 sub rsp, 1112 ; 00000458H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__31D20E98_m@fma_tile@x86@c - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 16 : int i = enumeration->m128_i32[0]; - - 0002f b8 04 00 00 00 mov eax, 4 - 00034 48 6b c0 00 imul rax, rax, 0 - 00038 48 8b 8d 68 04 - 00 00 mov rcx, QWORD PTR enumeration$[rbp] - 0003f 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 00042 89 45 04 mov DWORD PTR i$[rbp], eax - -; 17 : int j = enumeration->m128_i32[1]; - - 00045 b8 04 00 00 00 mov eax, 4 - 0004a 48 6b c0 01 imul rax, rax, 1 - 0004e 48 8b 8d 68 04 - 00 00 mov rcx, QWORD PTR enumeration$[rbp] - 00055 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 00058 89 45 24 mov DWORD PTR j$[rbp], eax - -; 18 : int commonK = enumeration->m128_i32[2]; - - 0005b b8 04 00 00 00 mov eax, 4 - 00060 48 6b c0 02 imul rax, rax, 2 - 00064 48 8b 8d 68 04 - 00 00 mov rcx, QWORD PTR enumeration$[rbp] - 0006b 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 0006e 89 45 44 mov DWORD PTR commonK$[rbp], eax - -; 19 : int ansHeight = enumeration->m128_i32[3]; - - 00071 b8 04 00 00 00 mov eax, 4 - 00076 48 6b c0 03 imul rax, rax, 3 - 0007a 48 8b 8d 68 04 - 00 00 mov rcx, QWORD PTR enumeration$[rbp] - 00081 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 00084 89 45 64 mov DWORD PTR ansHeight$[rbp], eax - -; 20 : -; 21 : MAT_KERNEL(float) -; 22 : const *ans_cur = ans + GET_INDEX(ansHeight, i, j); // GetKernelAddressUnsafe - - 00087 8b 45 64 mov eax, DWORD PTR ansHeight$[rbp] - 0008a 0f af 45 04 imul eax, DWORD PTR i$[rbp] - 0008e 03 45 24 add eax, DWORD PTR j$[rbp] - 00091 48 98 cdqe - 00093 48 6b c0 40 imul rax, rax, 64 ; 00000040H - 00097 48 8b 8d 60 04 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 0009e 48 03 c8 add rcx, rax - 000a1 48 8b c1 mov rax, rcx - 000a4 48 89 85 88 00 - 00 00 mov QWORD PTR ans_cur$[rbp], rax - -; 23 : -; 24 : register __m128 c0 = _mm_load_ps((float *)&ans_cur->f32_x[0]); - - 000ab b8 10 00 00 00 mov eax, 16 - 000b0 48 6b c0 00 imul rax, rax, 0 - 000b4 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 000bb 48 03 c8 add rcx, rax - 000be 48 8b c1 mov rax, rcx - 000c1 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 000c4 0f 29 85 b0 00 - 00 00 movaps XMMWORD PTR c0$[rbp], xmm0 - -; 25 : register __m128 c1 = _mm_load_ps((float *)&ans_cur->f32_x[1]); - - 000cb b8 10 00 00 00 mov eax, 16 - 000d0 48 6b c0 01 imul rax, rax, 1 - 000d4 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 000db 48 03 c8 add rcx, rax - 000de 48 8b c1 mov rax, rcx - 000e1 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 000e4 0f 29 85 e0 00 - 00 00 movaps XMMWORD PTR c1$[rbp], xmm0 - -; 26 : register __m128 c2 = _mm_load_ps((float *)&ans_cur->f32_x[2]); - - 000eb b8 10 00 00 00 mov eax, 16 - 000f0 48 6b c0 02 imul rax, rax, 2 - 000f4 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 000fb 48 03 c8 add rcx, rax - 000fe 48 8b c1 mov rax, rcx - 00101 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00104 0f 29 85 10 01 - 00 00 movaps XMMWORD PTR c2$[rbp], xmm0 - -; 27 : register __m128 c3 = _mm_load_ps((float *)&ans_cur->f32_x[3]); - - 0010b b8 10 00 00 00 mov eax, 16 - 00110 48 6b c0 03 imul rax, rax, 3 - 00114 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 0011b 48 03 c8 add rcx, rax - 0011e 48 8b c1 mov rax, rcx - 00121 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00124 0f 29 85 40 01 - 00 00 movaps XMMWORD PTR c3$[rbp], xmm0 - -; 28 : register __m128 bcol; -; 29 : -; 30 : for (size_t k = 0; k < commonK; k++) { - - 0012b 48 c7 85 98 01 - 00 00 00 00 00 - 00 mov QWORD PTR k$1[rbp], 0 - 00136 eb 11 jmp SHORT $LN4@float_kern -$LN2@float_kern: - 00138 48 8b 85 98 01 - 00 00 mov rax, QWORD PTR k$1[rbp] - 0013f 48 ff c0 inc rax - 00142 48 89 85 98 01 - 00 00 mov QWORD PTR k$1[rbp], rax -$LN4@float_kern: - 00149 48 63 45 44 movsxd rax, DWORD PTR commonK$[rbp] - 0014d 48 39 85 98 01 - 00 00 cmp QWORD PTR k$1[rbp], rax - 00154 0f 83 58 04 00 - 00 jae $LN3@float_kern - -; 31 : MAT_KERNEL(float) -; 32 : const *right_cur = right + GET_INDEX(commonK, i, k), // GetKernelAddressUnsafe - - 0015a 8b 45 44 mov eax, DWORD PTR commonK$[rbp] - 0015d 0f af 45 04 imul eax, DWORD PTR i$[rbp] - 00161 48 98 cdqe - 00163 48 03 85 98 01 - 00 00 add rax, QWORD PTR k$1[rbp] - 0016a 48 6b c0 40 imul rax, rax, 64 ; 00000040H - 0016e 48 8b 8d 58 04 - 00 00 mov rcx, QWORD PTR right$[rbp] - 00175 48 03 c8 add rcx, rax - 00178 48 8b c1 mov rax, rcx - 0017b 48 89 85 b8 01 - 00 00 mov QWORD PTR right_cur$2[rbp], rax - -; 33 : const *left_cur = - - 00182 48 63 45 64 movsxd rax, DWORD PTR ansHeight$[rbp] - 00186 48 0f af 85 98 - 01 00 00 imul rax, QWORD PTR k$1[rbp] - 0018e 48 63 4d 24 movsxd rcx, DWORD PTR j$[rbp] - 00192 48 03 c1 add rax, rcx - 00195 48 6b c0 40 imul rax, rax, 64 ; 00000040H - 00199 48 8b 8d 50 04 - 00 00 mov rcx, QWORD PTR left$[rbp] - 001a0 48 03 c8 add rcx, rax - 001a3 48 8b c1 mov rax, rcx - 001a6 48 89 85 d8 01 - 00 00 mov QWORD PTR left_cur$3[rbp], rax - -; 34 : left + GET_INDEX(ansHeight, k, j); // GetKernelAddressUnsafe -; 35 : -; 36 : const __m128 a0 = _mm_load_ps((float *)&left_cur->f32_x[0]); - - 001ad b8 10 00 00 00 mov eax, 16 - 001b2 48 6b c0 00 imul rax, rax, 0 - 001b6 48 8b 8d d8 01 - 00 00 mov rcx, QWORD PTR left_cur$3[rbp] - 001bd 48 03 c8 add rcx, rax - 001c0 48 8b c1 mov rax, rcx - 001c3 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 001c6 0f 29 85 00 02 - 00 00 movaps XMMWORD PTR a0$4[rbp], xmm0 - -; 37 : const __m128 a1 = _mm_load_ps((float *)&left_cur->f32_x[1]); - - 001cd b8 10 00 00 00 mov eax, 16 - 001d2 48 6b c0 01 imul rax, rax, 1 - 001d6 48 8b 8d d8 01 - 00 00 mov rcx, QWORD PTR left_cur$3[rbp] - 001dd 48 03 c8 add rcx, rax - 001e0 48 8b c1 mov rax, rcx - 001e3 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 001e6 0f 29 85 30 02 - 00 00 movaps XMMWORD PTR a1$5[rbp], xmm0 - -; 38 : const __m128 a2 = _mm_load_ps((float *)&left_cur->f32_x[2]); - - 001ed b8 10 00 00 00 mov eax, 16 - 001f2 48 6b c0 02 imul rax, rax, 2 - 001f6 48 8b 8d d8 01 - 00 00 mov rcx, QWORD PTR left_cur$3[rbp] - 001fd 48 03 c8 add rcx, rax - 00200 48 8b c1 mov rax, rcx - 00203 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00206 0f 29 85 60 02 - 00 00 movaps XMMWORD PTR a2$6[rbp], xmm0 - -; 39 : const __m128 a3 = _mm_load_ps((float *)&left_cur->f32_x[3]); - - 0020d b8 10 00 00 00 mov eax, 16 - 00212 48 6b c0 03 imul rax, rax, 3 - 00216 48 8b 8d d8 01 - 00 00 mov rcx, QWORD PTR left_cur$3[rbp] - 0021d 48 03 c8 add rcx, rax - 00220 48 8b c1 mov rax, rcx - 00223 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00226 0f 29 85 90 02 - 00 00 movaps XMMWORD PTR a3$7[rbp], xmm0 - -; 40 : -; 41 : /* Column 0 */ -; 42 : bcol = _mm_load_ps((float *)&right_cur->f32_x[0]); - - 0022d b8 10 00 00 00 mov eax, 16 - 00232 48 6b c0 00 imul rax, rax, 0 - 00236 48 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR right_cur$2[rbp] - 0023d 48 03 c8 add rcx, rax - 00240 48 8b c1 mov rax, rcx - 00243 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00246 0f 29 85 70 01 - 00 00 movaps XMMWORD PTR bcol$[rbp], xmm0 - -; 43 : c0 = _mm_add_ps(c0, _mm_mul_ps(a0, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(0)))); - - 0024d 0f 28 85 70 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 00254 0f c6 85 70 01 - 00 00 00 shufps xmm0, XMMWORD PTR bcol$[rbp], 0 - 0025c 0f 28 8d 00 02 - 00 00 movaps xmm1, XMMWORD PTR a0$4[rbp] - 00263 0f 59 c8 mulps xmm1, xmm0 - 00266 0f 28 c1 movaps xmm0, xmm1 - 00269 0f 28 8d b0 00 - 00 00 movaps xmm1, XMMWORD PTR c0$[rbp] - 00270 0f 58 c8 addps xmm1, xmm0 - 00273 0f 28 c1 movaps xmm0, xmm1 - 00276 0f 29 85 b0 00 - 00 00 movaps XMMWORD PTR c0$[rbp], xmm0 - -; 44 : c0 = _mm_add_ps(c0, _mm_mul_ps(a1, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(1)))); - - 0027d 0f 28 85 70 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 00284 0f c6 85 70 01 - 00 00 55 shufps xmm0, XMMWORD PTR bcol$[rbp], 85 ; 00000055H - 0028c 0f 28 8d 30 02 - 00 00 movaps xmm1, XMMWORD PTR a1$5[rbp] - 00293 0f 59 c8 mulps xmm1, xmm0 - 00296 0f 28 c1 movaps xmm0, xmm1 - 00299 0f 28 8d b0 00 - 00 00 movaps xmm1, XMMWORD PTR c0$[rbp] - 002a0 0f 58 c8 addps xmm1, xmm0 - 002a3 0f 28 c1 movaps xmm0, xmm1 - 002a6 0f 29 85 b0 00 - 00 00 movaps XMMWORD PTR c0$[rbp], xmm0 - -; 45 : c0 = _mm_add_ps(c0, _mm_mul_ps(a2, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(2)))); - - 002ad 0f 28 85 70 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 002b4 0f c6 85 70 01 - 00 00 aa shufps xmm0, XMMWORD PTR bcol$[rbp], 170 ; 000000aaH - 002bc 0f 28 8d 60 02 - 00 00 movaps xmm1, XMMWORD PTR a2$6[rbp] - 002c3 0f 59 c8 mulps xmm1, xmm0 - 002c6 0f 28 c1 movaps xmm0, xmm1 - 002c9 0f 28 8d b0 00 - 00 00 movaps xmm1, XMMWORD PTR c0$[rbp] - 002d0 0f 58 c8 addps xmm1, xmm0 - 002d3 0f 28 c1 movaps xmm0, xmm1 - 002d6 0f 29 85 b0 00 - 00 00 movaps XMMWORD PTR c0$[rbp], xmm0 - -; 46 : c0 = _mm_add_ps(c0, _mm_mul_ps(a3, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(3)))); - - 002dd 0f 28 85 70 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 002e4 0f c6 85 70 01 - 00 00 ff shufps xmm0, XMMWORD PTR bcol$[rbp], 255 ; 000000ffH - 002ec 0f 28 8d 90 02 - 00 00 movaps xmm1, XMMWORD PTR a3$7[rbp] - 002f3 0f 59 c8 mulps xmm1, xmm0 - 002f6 0f 28 c1 movaps xmm0, xmm1 - 002f9 0f 28 8d b0 00 - 00 00 movaps xmm1, XMMWORD PTR c0$[rbp] - 00300 0f 58 c8 addps xmm1, xmm0 - 00303 0f 28 c1 movaps xmm0, xmm1 - 00306 0f 29 85 b0 00 - 00 00 movaps XMMWORD PTR c0$[rbp], xmm0 - -; 47 : -; 48 : /* Column 1 */ -; 49 : bcol = _mm_load_ps((float *)&right_cur->f32_x[1]); - - 0030d b8 10 00 00 00 mov eax, 16 - 00312 48 6b c0 01 imul rax, rax, 1 - 00316 48 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR right_cur$2[rbp] - 0031d 48 03 c8 add rcx, rax - 00320 48 8b c1 mov rax, rcx - 00323 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00326 0f 29 85 70 01 - 00 00 movaps XMMWORD PTR bcol$[rbp], xmm0 - -; 50 : c1 = _mm_add_ps(c1, _mm_mul_ps(a0, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(0)))); - - 0032d 0f 28 85 70 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 00334 0f c6 85 70 01 - 00 00 00 shufps xmm0, XMMWORD PTR bcol$[rbp], 0 - 0033c 0f 28 8d 00 02 - 00 00 movaps xmm1, XMMWORD PTR a0$4[rbp] - 00343 0f 59 c8 mulps xmm1, xmm0 - 00346 0f 28 c1 movaps xmm0, xmm1 - 00349 0f 28 8d e0 00 - 00 00 movaps xmm1, XMMWORD PTR c1$[rbp] - 00350 0f 58 c8 addps xmm1, xmm0 - 00353 0f 28 c1 movaps xmm0, xmm1 - 00356 0f 29 85 e0 00 - 00 00 movaps XMMWORD PTR c1$[rbp], xmm0 - -; 51 : c1 = _mm_add_ps(c1, _mm_mul_ps(a1, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(1)))); - - 0035d 0f 28 85 70 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 00364 0f c6 85 70 01 - 00 00 55 shufps xmm0, XMMWORD PTR bcol$[rbp], 85 ; 00000055H - 0036c 0f 28 8d 30 02 - 00 00 movaps xmm1, XMMWORD PTR a1$5[rbp] - 00373 0f 59 c8 mulps xmm1, xmm0 - 00376 0f 28 c1 movaps xmm0, xmm1 - 00379 0f 28 8d e0 00 - 00 00 movaps xmm1, XMMWORD PTR c1$[rbp] - 00380 0f 58 c8 addps xmm1, xmm0 - 00383 0f 28 c1 movaps xmm0, xmm1 - 00386 0f 29 85 e0 00 - 00 00 movaps XMMWORD PTR c1$[rbp], xmm0 - -; 52 : c1 = _mm_add_ps(c1, _mm_mul_ps(a2, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(2)))); - - 0038d 0f 28 85 70 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 00394 0f c6 85 70 01 - 00 00 aa shufps xmm0, XMMWORD PTR bcol$[rbp], 170 ; 000000aaH - 0039c 0f 28 8d 60 02 - 00 00 movaps xmm1, XMMWORD PTR a2$6[rbp] - 003a3 0f 59 c8 mulps xmm1, xmm0 - 003a6 0f 28 c1 movaps xmm0, xmm1 - 003a9 0f 28 8d e0 00 - 00 00 movaps xmm1, XMMWORD PTR c1$[rbp] - 003b0 0f 58 c8 addps xmm1, xmm0 - 003b3 0f 28 c1 movaps xmm0, xmm1 - 003b6 0f 29 85 e0 00 - 00 00 movaps XMMWORD PTR c1$[rbp], xmm0 - -; 53 : c1 = _mm_add_ps(c1, _mm_mul_ps(a3, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(3)))); - - 003bd 0f 28 85 70 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 003c4 0f c6 85 70 01 - 00 00 ff shufps xmm0, XMMWORD PTR bcol$[rbp], 255 ; 000000ffH - 003cc 0f 28 8d 90 02 - 00 00 movaps xmm1, XMMWORD PTR a3$7[rbp] - 003d3 0f 59 c8 mulps xmm1, xmm0 - 003d6 0f 28 c1 movaps xmm0, xmm1 - 003d9 0f 28 8d e0 00 - 00 00 movaps xmm1, XMMWORD PTR c1$[rbp] - 003e0 0f 58 c8 addps xmm1, xmm0 - 003e3 0f 28 c1 movaps xmm0, xmm1 - 003e6 0f 29 85 e0 00 - 00 00 movaps XMMWORD PTR c1$[rbp], xmm0 - -; 54 : -; 55 : /* Column 2 */ -; 56 : bcol = _mm_load_ps((float *)&right_cur->f32_x[2]); - - 003ed b8 10 00 00 00 mov eax, 16 - 003f2 48 6b c0 02 imul rax, rax, 2 - 003f6 48 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR right_cur$2[rbp] - 003fd 48 03 c8 add rcx, rax - 00400 48 8b c1 mov rax, rcx - 00403 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00406 0f 29 85 70 01 - 00 00 movaps XMMWORD PTR bcol$[rbp], xmm0 - -; 57 : c2 = _mm_add_ps(c2, _mm_mul_ps(a0, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(0)))); - - 0040d 0f 28 85 70 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 00414 0f c6 85 70 01 - 00 00 00 shufps xmm0, XMMWORD PTR bcol$[rbp], 0 - 0041c 0f 28 8d 00 02 - 00 00 movaps xmm1, XMMWORD PTR a0$4[rbp] - 00423 0f 59 c8 mulps xmm1, xmm0 - 00426 0f 28 c1 movaps xmm0, xmm1 - 00429 0f 28 8d 10 01 - 00 00 movaps xmm1, XMMWORD PTR c2$[rbp] - 00430 0f 58 c8 addps xmm1, xmm0 - 00433 0f 28 c1 movaps xmm0, xmm1 - 00436 0f 29 85 10 01 - 00 00 movaps XMMWORD PTR c2$[rbp], xmm0 - -; 58 : c2 = _mm_add_ps(c2, _mm_mul_ps(a1, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(1)))); - - 0043d 0f 28 85 70 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 00444 0f c6 85 70 01 - 00 00 55 shufps xmm0, XMMWORD PTR bcol$[rbp], 85 ; 00000055H - 0044c 0f 28 8d 30 02 - 00 00 movaps xmm1, XMMWORD PTR a1$5[rbp] - 00453 0f 59 c8 mulps xmm1, xmm0 - 00456 0f 28 c1 movaps xmm0, xmm1 - 00459 0f 28 8d 10 01 - 00 00 movaps xmm1, XMMWORD PTR c2$[rbp] - 00460 0f 58 c8 addps xmm1, xmm0 - 00463 0f 28 c1 movaps xmm0, xmm1 - 00466 0f 29 85 10 01 - 00 00 movaps XMMWORD PTR c2$[rbp], xmm0 - -; 59 : c2 = _mm_add_ps(c2, _mm_mul_ps(a2, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(2)))); - - 0046d 0f 28 85 70 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 00474 0f c6 85 70 01 - 00 00 aa shufps xmm0, XMMWORD PTR bcol$[rbp], 170 ; 000000aaH - 0047c 0f 28 8d 60 02 - 00 00 movaps xmm1, XMMWORD PTR a2$6[rbp] - 00483 0f 59 c8 mulps xmm1, xmm0 - 00486 0f 28 c1 movaps xmm0, xmm1 - 00489 0f 28 8d 10 01 - 00 00 movaps xmm1, XMMWORD PTR c2$[rbp] - 00490 0f 58 c8 addps xmm1, xmm0 - 00493 0f 28 c1 movaps xmm0, xmm1 - 00496 0f 29 85 10 01 - 00 00 movaps XMMWORD PTR c2$[rbp], xmm0 - -; 60 : c2 = _mm_add_ps(c2, _mm_mul_ps(a3, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(3)))); - - 0049d 0f 28 85 70 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 004a4 0f c6 85 70 01 - 00 00 ff shufps xmm0, XMMWORD PTR bcol$[rbp], 255 ; 000000ffH - 004ac 0f 28 8d 90 02 - 00 00 movaps xmm1, XMMWORD PTR a3$7[rbp] - 004b3 0f 59 c8 mulps xmm1, xmm0 - 004b6 0f 28 c1 movaps xmm0, xmm1 - 004b9 0f 28 8d 10 01 - 00 00 movaps xmm1, XMMWORD PTR c2$[rbp] - 004c0 0f 58 c8 addps xmm1, xmm0 - 004c3 0f 28 c1 movaps xmm0, xmm1 - 004c6 0f 29 85 10 01 - 00 00 movaps XMMWORD PTR c2$[rbp], xmm0 - -; 61 : -; 62 : /* Column 3 */ -; 63 : bcol = _mm_load_ps((float *)&right_cur->f32_x[3]); - - 004cd b8 10 00 00 00 mov eax, 16 - 004d2 48 6b c0 03 imul rax, rax, 3 - 004d6 48 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR right_cur$2[rbp] - 004dd 48 03 c8 add rcx, rax - 004e0 48 8b c1 mov rax, rcx - 004e3 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 004e6 0f 29 85 70 01 - 00 00 movaps XMMWORD PTR bcol$[rbp], xmm0 - -; 64 : c3 = _mm_add_ps(c3, _mm_mul_ps(a0, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(0)))); - - 004ed 0f 28 85 70 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 004f4 0f c6 85 70 01 - 00 00 00 shufps xmm0, XMMWORD PTR bcol$[rbp], 0 - 004fc 0f 28 8d 00 02 - 00 00 movaps xmm1, XMMWORD PTR a0$4[rbp] - 00503 0f 59 c8 mulps xmm1, xmm0 - 00506 0f 28 c1 movaps xmm0, xmm1 - 00509 0f 28 8d 40 01 - 00 00 movaps xmm1, XMMWORD PTR c3$[rbp] - 00510 0f 58 c8 addps xmm1, xmm0 - 00513 0f 28 c1 movaps xmm0, xmm1 - 00516 0f 29 85 40 01 - 00 00 movaps XMMWORD PTR c3$[rbp], xmm0 - -; 65 : c3 = _mm_add_ps(c3, _mm_mul_ps(a1, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(1)))); - - 0051d 0f 28 85 70 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 00524 0f c6 85 70 01 - 00 00 55 shufps xmm0, XMMWORD PTR bcol$[rbp], 85 ; 00000055H - 0052c 0f 28 8d 30 02 - 00 00 movaps xmm1, XMMWORD PTR a1$5[rbp] - 00533 0f 59 c8 mulps xmm1, xmm0 - 00536 0f 28 c1 movaps xmm0, xmm1 - 00539 0f 28 8d 40 01 - 00 00 movaps xmm1, XMMWORD PTR c3$[rbp] - 00540 0f 58 c8 addps xmm1, xmm0 - 00543 0f 28 c1 movaps xmm0, xmm1 - 00546 0f 29 85 40 01 - 00 00 movaps XMMWORD PTR c3$[rbp], xmm0 - -; 66 : c3 = _mm_add_ps(c3, _mm_mul_ps(a2, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(2)))); - - 0054d 0f 28 85 70 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 00554 0f c6 85 70 01 - 00 00 aa shufps xmm0, XMMWORD PTR bcol$[rbp], 170 ; 000000aaH - 0055c 0f 28 8d 60 02 - 00 00 movaps xmm1, XMMWORD PTR a2$6[rbp] - 00563 0f 59 c8 mulps xmm1, xmm0 - 00566 0f 28 c1 movaps xmm0, xmm1 - 00569 0f 28 8d 40 01 - 00 00 movaps xmm1, XMMWORD PTR c3$[rbp] - 00570 0f 58 c8 addps xmm1, xmm0 - 00573 0f 28 c1 movaps xmm0, xmm1 - 00576 0f 29 85 40 01 - 00 00 movaps XMMWORD PTR c3$[rbp], xmm0 - -; 67 : c3 = _mm_add_ps(c3, _mm_mul_ps(a3, _mm_shuffle_ps(bcol, bcol, _FMA_SELECT(3)))); - - 0057d 0f 28 85 70 01 - 00 00 movaps xmm0, XMMWORD PTR bcol$[rbp] - 00584 0f c6 85 70 01 - 00 00 ff shufps xmm0, XMMWORD PTR bcol$[rbp], 255 ; 000000ffH - 0058c 0f 28 8d 90 02 - 00 00 movaps xmm1, XMMWORD PTR a3$7[rbp] - 00593 0f 59 c8 mulps xmm1, xmm0 - 00596 0f 28 c1 movaps xmm0, xmm1 - 00599 0f 28 8d 40 01 - 00 00 movaps xmm1, XMMWORD PTR c3$[rbp] - 005a0 0f 58 c8 addps xmm1, xmm0 - 005a3 0f 28 c1 movaps xmm0, xmm1 - 005a6 0f 29 85 40 01 - 00 00 movaps XMMWORD PTR c3$[rbp], xmm0 - -; 68 : } - - 005ad e9 86 fb ff ff jmp $LN2@float_kern -$LN3@float_kern: - -; 69 : -; 70 : _mm_store_ps((float *)&ans_cur->f32_x[0], c0); - - 005b2 b8 10 00 00 00 mov eax, 16 - 005b7 48 6b c0 00 imul rax, rax, 0 - 005bb 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 005c2 48 03 c8 add rcx, rax - 005c5 48 8b c1 mov rax, rcx - 005c8 0f 28 85 b0 00 - 00 00 movaps xmm0, XMMWORD PTR c0$[rbp] - 005cf 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 71 : _mm_store_ps((float *)&ans_cur->f32_x[1], c1); - - 005d2 b8 10 00 00 00 mov eax, 16 - 005d7 48 6b c0 01 imul rax, rax, 1 - 005db 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 005e2 48 03 c8 add rcx, rax - 005e5 48 8b c1 mov rax, rcx - 005e8 0f 28 85 e0 00 - 00 00 movaps xmm0, XMMWORD PTR c1$[rbp] - 005ef 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 72 : _mm_store_ps((float *)&ans_cur->f32_x[2], c2); - - 005f2 b8 10 00 00 00 mov eax, 16 - 005f7 48 6b c0 02 imul rax, rax, 2 - 005fb 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 00602 48 03 c8 add rcx, rax - 00605 48 8b c1 mov rax, rcx - 00608 0f 28 85 10 01 - 00 00 movaps xmm0, XMMWORD PTR c2$[rbp] - 0060f 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 73 : _mm_store_ps((float *)&ans_cur->f32_x[3], c3); - - 00612 b8 10 00 00 00 mov eax, 16 - 00617 48 6b c0 03 imul rax, rax, 3 - 0061b 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR ans_cur$[rbp] - 00622 48 03 c8 add rcx, rax - 00625 48 8b c1 mov rax, rcx - 00628 0f 28 85 40 01 - 00 00 movaps xmm0, XMMWORD PTR c3$[rbp] - 0062f 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 74 : } - - 00632 48 8d a5 38 04 - 00 00 lea rsp, QWORD PTR [rbp+1080] - 00639 5f pop rdi - 0063a 5d pop rbp - 0063b c3 ret 0 -float_kernel_tile_fma_sse ENDP -_TEXT ENDS -END diff --git a/obj/StgSharp.Native/Debug/x64/m.fma_tile.x86.nativecodeanalysis.sarif b/obj/StgSharp.Native/Debug/x64/m.fma_tile.x86.nativecodeanalysis.sarif deleted file mode 100644 index 6450b268..00000000 --- a/obj/StgSharp.Native/Debug/x64/m.fma_tile.x86.nativecodeanalysis.sarif +++ /dev/null @@ -1,131 +0,0 @@ -{ - "version": "2.1.0", - "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", - "runs": [ - { - "results": [], - "tool": { - "driver": { - "name": "PREfast", - "fullName": "MSVC Code Analysis", - "version": "14.44.35220.0", - "informationUri": "https://aka.ms/cpp/ca" - } - }, - "invocations": [ - { - "executionSuccessful": true - } - ], - "artifacts": [ - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-src/m.fma_tile.x86.c" - }, - "roles": [ - "analysisTarget" - ], - "hashes": { - "sha-256": "847e77a8f1e5cfe756b7c5b91299cb08c2688d335ff57dc6599363fb75217480" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_target.h" - }, - "hashes": { - "sha-256": "b8c543a09db7bd21a2b409476024fa6bec6a5218d88ca036d15584ed453ceb91" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_internal.h" - }, - "hashes": { - "sha-256": "8a0f03b014c6d2740a21a13df48b1951932be000152771363cd554748facde0d" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrinsic.h" - }, - "hashes": { - "sha-256": "4da90105811ba902ad984b406834cf36cf43862047957dad5471c0b24d221ace" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/stgsharpnative.h" - }, - "hashes": { - "sha-256": "5eee6b3faf7bf2247fe44898b0fcb71794c346ae2f0b58953e1632a49c1b6c4e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/stbi/stb_image.h" - }, - "hashes": { - "sha-256": "c45e3ef56a7d946654740f02e25fcb99a819861155ad1173349a289f2a000ce2" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/gl.h" - }, - "hashes": { - "sha-256": "c9d0960c919f9ef4cfa6449f2b0c00f2ad8286b420e01ee7ec34b40c618392fc" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/khrplatform.h" - }, - "hashes": { - "sha-256": "f5b69ed6a7bef6651526abb2d1263811d59acdba7a29368bb9be1a0f9e80160f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/wgl.h" - }, - "hashes": { - "sha-256": "86d6c58acb0a92b35ce8d94d6817fcec3f73d9e147e8621f468f143db1bbd81f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/glfw/glfw3.h" - }, - "hashes": { - "sha-256": "85c584857dddd780c131940ed69cd516c2b60d61664df9cb254710c3602c1008" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/glfw_function.h" - }, - "hashes": { - "sha-256": "4baa73f465e3e347fc0ad0ff666a6db2e83e749acd770f4bee02c12a7b9ec36e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_matkernel.h" - }, - "hashes": { - "sha-256": "19f0030c441ae5c4cec0b446b64daa10448fafd44d4fd6dd2232b84f5ed9aad1" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrincontext.x86.h" - }, - "hashes": { - "sha-256": "bbc00ee7320b30ca1234dc7908e4695ff6d5bb2ba3224e4ffaed345010ba8f48" - } - } - ] - } - ] -} \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/m.fma_tile.x86.nativecodeanalysis.xml b/obj/StgSharp.Native/Debug/x64/m.fma_tile.x86.nativecodeanalysis.xml deleted file mode 100644 index dcdf0885..00000000 --- a/obj/StgSharp.Native/Debug/x64/m.fma_tile.x86.nativecodeanalysis.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/m.solve.x86.cod b/obj/StgSharp.Native/Debug/x64/m.solve.x86.cod deleted file mode 100644 index 56b7eb17..00000000 --- a/obj/StgSharp.Native/Debug/x64/m.solve.x86.cod +++ /dev/null @@ -1,2012 +0,0 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.44.35220.0 - -include listing.inc - -INCLUDELIB MSVCRTD -INCLUDELIB OLDNAMES - -_DATA SEGMENT -COMM infolog:BYTE:0200H -_DATA ENDS -msvcjmc SEGMENT -__5C8CA4D3_mmintrin@h DB 01H -__8C83BECC_concurrencysal@h DB 01H -__608E3340_sal@h DB 01H -__FB67E29A_vadefs@h DB 01H -__1D1B619C_vcruntime@h DB 01H -__735960E1_corecrt@h DB 01H -__211DB995_corecrt_malloc@h DB 01H -__7CD62D9E_malloc@h DB 01H -__9DCE0DC8_xmmintrin@h DB 01H -__4C2AD0C7_winpackagefamily@h DB 01H -__9DED9ED1_winapifamily@h DB 01H -__12FEDF4E_sdkddkver@h DB 01H -__9BAEE128_excpt@h DB 01H -__B7B53233_stdarg@h DB 01H -__6B04FCB3_specstrings_undef@h DB 01H -__F4027AF7_specstrings_strict@h DB 01H -__B90340D4_sdv_driverspecs@h DB 01H -__BFFF5AD3_driverspecs@h DB 01H -__32847078_specstrings@h DB 01H -__108B2620_corecrt_wctype@h DB 01H -__6CD6613D_ctype@h DB 01H -__30902A1F_kernelspecs@h DB 01H -__376FD5CA_basetsd@h DB 01H -__13DE2371_errno@h DB 01H -__8C6AE390_vcruntime_string@h DB 01H -__8ACB2152_corecrt_memcpy_s@h DB 01H -__EA6C9D17_corecrt_memory@h DB 01H -__0DF2AF52_corecrt_wstring@h DB 01H -__6E889ECC_string@h DB 01H -__9BEDF4DE_guiddef@h DB 01H -__51BFD2FE_pshpack4@h DB 01H -__31652CEA_poppack@h DB 01H -__5532AE4C_pshpack2@h DB 01H -__58A52B9A_pshpack8@h DB 01H -__57741015_pshpack1@h DB 01H -__CDE68C90_apiset@h DB 01H -__0BF06E8D_ktmtypes@h DB 01H -__40C200C0_winnt@h DB 01H -__9336F789_minwindef@h DB 01H -__55136115_windef@h DB 01H -__32205BF0_apisetcconv@h DB 01H -__B48FDEA0_minwinbase@h DB 01H -__3551B028_apiquery2@h DB 01H -__65BE04AA_processenv@h DB 01H -__4767CA46_fileapi@h DB 01H -__282E6C4B_fileapifromapp@h DB 01H -__393AF12C_debugapi@h DB 01H -__EBC502B8_utilapiset@h DB 01H -__1EAD8C69_handleapi@h DB 01H -__D8EF9B29_errhandlingapi@h DB 01H -__97FC1204_fibersapi@h DB 01H -__27448220_namedpipeapi@h DB 01H -__6EA33B2A_profileapi@h DB 01H -__EAC6F673_heapapi@h DB 01H -__D64EEA5A_ioapiset@h DB 01H -__144BD4B6_synchapi@h DB 01H -__03B1C640_interlockedapi@h DB 01H -__DC64CB38_processthreadsapi@h DB 01H -__D719B518_sysinfoapi@h DB 01H -__410385B1_memoryapi@h DB 01H -__C1AD45EF_enclaveapi@h DB 01H -__F4C3AA32_threadpoollegacyapiset@h DB 01H -__AC5A7A9F_threadpoolapiset@h DB 01H -__F5254B21_jobapi@h DB 01H -__BCEA6EE8_jobapi2@h DB 01H -__D18ACE72_wow64apiset@h DB 01H -__669B0D4A_libloaderapi@h DB 01H -__645F7034_securitybaseapi@h DB 01H -__67E58557_namespaceapi@h DB 01H -__599D9D3A_systemtopologyapi@h DB 01H -__2337E373_processtopologyapi@h DB 01H -__02BFF239_securityappcontainer@h DB 01H -__9C196272_realtimeapiset@h DB 01H -__5AB313A4_winerror@h DB 01H -__B7E7187B_timezoneapi@h DB 01H -__6DE9EB6F_winbase@h DB 01H -__56B2AFF2_wingdi@h DB 01H -__BA1161A9_tvout@h DB 01H -__0501A018_winuser@h DB 01H -__EF12FA99_datetimeapi@h DB 01H -__8FA7C3CA_winnls@h DB 01H -__390F0C47_stringapiset@h DB 01H -__28605B0A_wincontypes@h DB 01H -__BFBDE86D_consoleapi@h DB 01H -__C3CAFBF0_consoleapi2@h DB 01H -__C20891C7_consoleapi3@h DB 01H -__717C98B6_wincon@h DB 01H -__2884C177_verrsrc@h DB 01H -__A3FD3A34_winver@h DB 01H -__6F8AD9F1_reason@h DB 01H -__4C90FD6F_winreg@h DB 01H -__68AFEBAD_wnnc@h DB 01H -__5A7AB086_winnetwk@h DB 01H -__2FE8A10C_stralign@h DB 01H -__34558472_winsvc@h DB 01H -__058845F1_mcx@h DB 01H -__7F16006B_ime_cmodes@h DB 01H -__0A3AF599_imm@h DB 01H -__9349FE86_windows@h DB 01H -__639A050C_sn_internal@h DB 01H -__836A8CFC_stdint@h DB 01H -__714FE6D7_sn_target@h DB 01H -__60B45B40_corecrt_stdio_config@h DB 01H -__CFA3741E_corecrt_wstdio@h DB 01H -__B3FE3303_stdio@h DB 01H -__955456CD_stddef@h DB 01H -__99AED4FB_corecrt_search@h DB 01H -__8B813BF6_corecrt_wstdlib@h DB 01H -__3D1CA2C3_limits@h DB 01H -__E8FB0A68_stdlib@h DB 01H -__F562FA57_stb_image@h DB 01H -__C95DC661_khrplatform@h DB 01H -__6C577136_gl@h DB 01H -__EE638A2C_wgl@h DB 01H -__8EF9E35C_glfw3@h DB 01H -__F8AC8404_emmintrin@h DB 01H -__270DEC8D_pmmintrin@h DB 01H -__97D49F0F_tmmintrin@h DB 01H -__BEEF8A8C_smmintrin@h DB 01H -__DB8D0340_nmmintrin@h DB 01H -__0E36F90E_wmmintrin@h DB 01H -__C5A2B409_zmmintrin@h DB 01H -__F2B616C3_immintrin@h DB 01H -__9FB25DBE_assert@h DB 01H -__4E664295_glfw_function@h DB 01H -__64C0EF11_StgSharpNative@h DB 01H -__E2EC0CAF_sn_matkernel@h DB 01H -__47E843D2_intrin0@inl@h DB 01H -__130964FF_setjmp@h DB 01H -__4875F786_ammintrin@h DB 01H -__353FD888_intrin@h DB 01H -__5FE1E9E3_isa_availability@h DB 01H -__AA840D82_sn_intrinsic@h DB 01H -__1D9A7FA2_corecrt_math@h DB 01H -__2E93F1C0_math@h DB 01H -__26377312_m@solve@x86@c DB 01H -msvcjmc ENDS -CONST SEGMENT -quality_threshold DD 0358637bdr ; 1e-06 - ORG $+12 -?tiny_source@?1??float_kernel_quality_sse@@9@9 DD 0358637bdr ; 1e-06 ; `float_kernel_quality_sse'::`2'::tiny_source - DD 0358637bdr ; 1e-06 - DD 0358637bdr ; 1e-06 - DD 0358637bdr ; 1e-06 -CONST ENDS -PUBLIC fabsf -PUBLIC float_kernel_try_plu_sse -PUBLIC float_kernel_quality_sse -PUBLIC __JustMyCode_Default -PUBLIC __real@00000000 -PUBLIC __real@2b8cbccc -PUBLIC __real@3f800000 -EXTRN fabs:PROC -EXTRN _RTC_CheckStackVars:PROC -EXTRN _RTC_InitBase:PROC -EXTRN _RTC_Shutdown:PROC -EXTRN __CheckForDebuggerJustMyCode:PROC -EXTRN __GSHandlerCheck:PROC -EXTRN __security_check_cookie:PROC -EXTRN __security_cookie:QWORD -EXTRN _fltused:DWORD -; COMDAT pdata -pdata SEGMENT -$pdata$fabsf DD imagerel $LN3 - DD imagerel $LN3+60 - DD imagerel $unwind$fabsf -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_kernel_try_plu_sse DD imagerel $LN31 - DD imagerel $LN31+1633 - DD imagerel $unwind$float_kernel_try_plu_sse -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$float_kernel_quality_sse DD imagerel $LN40 - DD imagerel $LN40+2560 - DD imagerel $unwind$float_kernel_quality_sse -pdata ENDS -; COMDAT __real@3f800000 -CONST SEGMENT -__real@3f800000 DD 03f800000r ; 1 -CONST ENDS -; COMDAT __real@2b8cbccc -CONST SEGMENT -__real@2b8cbccc DD 02b8cbcccr ; 1e-12 -CONST ENDS -; COMDAT __real@00000000 -CONST SEGMENT -__real@00000000 DD 000000000r ; 0 -CONST ENDS -; COMDAT rtc$TMZ -rtc$TMZ SEGMENT -_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown -rtc$TMZ ENDS -; COMDAT rtc$IMZ -rtc$IMZ SEGMENT -_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase -rtc$IMZ ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 03bH - DW 09e7H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_kernel_quality_sse DD 025054219H - DD 01132318H - DD 0700c017fH - DD 0500bH - DD imagerel __GSHandlerCheck - DD 0be8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -float_kernel_quality_sse$rtcName$0 DB 073H - DB 065H - DB 06cH - DB 066H - DB 05fH - DB 064H - DB 06fH - DB 074H - DB 05fH - DB 073H - DB 072H - DB 063H - DB 00H - ORG $+3 -float_kernel_quality_sse$rtcName$1 DB 063H - DB 072H - DB 06fH - DB 073H - DB 073H - DB 05fH - DB 064H - DB 06fH - DB 074H - DB 05fH - DB 073H - DB 072H - DB 063H - DB 00H - ORG $+2 -float_kernel_quality_sse$rtcVarDesc DD 0470H - DD 020H - DQ FLAT:float_kernel_quality_sse$rtcName$1 - DD 0120H - DD 010H - DQ FLAT:float_kernel_quality_sse$rtcName$0 - ORG $+96 -float_kernel_quality_sse$rtcFrameData DD 02H - DD 00H - DQ FLAT:float_kernel_quality_sse$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 050H - DW 0646H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$float_kernel_try_plu_sse DD 02d065719H - DD 011f2324H - DD 0701800aaH - DD 0d0165017H - DD imagerel __GSHandlerCheck - DD 04ecH - DD 060H - DD 040H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -float_kernel_try_plu_sse$rtcName$0 DB 061H - DB 00H - ORG $+14 -float_kernel_try_plu_sse$rtcVarDesc DD 0e0H - DD 040H - DQ FLAT:float_kernel_try_plu_sse$rtcName$0 - ORG $+48 -float_kernel_try_plu_sse$rtcFrameData DD 01H - DD 00H - DQ FLAT:float_kernel_try_plu_sse$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$fabsf DD 035051401H - DD 010f3314H - DD 07008001fH - DD 05007H -xdata ENDS -; Function compile flags: /Odt -; COMDAT __JustMyCode_Default -_TEXT SEGMENT -__JustMyCode_Default PROC ; COMDAT - 00000 c2 00 00 ret 0 -__JustMyCode_Default ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.solve.x86.c -; COMDAT float_kernel_quality_sse -_TEXT SEGMENT -tiny$ = 16 -col0$ = 64 -col1$ = 112 -col2$ = 160 -col3$ = 208 -self_dot_src$ = 256 -_p$5 = 304 -_t$6 = 352 -_p$7 = 400 -_t$8 = 448 -_p$9 = 496 -_t$10 = 544 -_p$11 = 592 -_t$12 = 640 -self_dot$ = 688 -max$ = 736 -_t$13 = 784 -col_shuff_1$ = 832 -col_shuff_2$ = 880 -col_shuff_3$ = 928 -min$ = 976 -min0$ = 1024 -quality$ = 1060 -cross_dot_src$ = 1104 -_p$14 = 1168 -_t$15 = 1216 -_p$16 = 1264 -_t$17 = 1312 -_p$18 = 1360 -_t$19 = 1408 -_p$20 = 1456 -_t$21 = 1504 -_p$22 = 1552 -_t$23 = 1600 -_p$24 = 1648 -_t$25 = 1696 -cross_dot_0$ = 1744 -cross_dot_1$ = 1792 -base_0$ = 1840 -base_1$ = 1888 -relation_0$ = 1936 -relation_1$ = 1984 -_t$26 = 2032 -tv142 = 3012 -tv164 = 3012 -tv186 = 3012 -tv208 = 3012 -tv255 = 3012 -tv286 = 3012 -tv311 = 3012 -tv368 = 3012 -tv393 = 3012 -tv418 = 3012 -tv443 = 3012 -tv514 = 3012 -__$ArrayPad$ = 3016 -right$ = 3056 -ans$ = 3064 -float_kernel_quality_sse PROC ; COMDAT - -; 115 : { - -$LN40: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec f8 0b - 00 00 sub rsp, 3064 ; 00000bf8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 0001d b9 06 02 00 00 mov ecx, 518 ; 00000206H - 00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00027 f3 ab rep stosd - 00029 48 8b 8c 24 18 - 0c 00 00 mov rcx, QWORD PTR [rsp+3096] - 00031 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00038 48 33 c5 xor rax, rbp - 0003b 48 89 85 c8 0b - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00042 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__26377312_m@solve@x86@c - 00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0004e 90 npad 1 - -; 116 : static const __m128 tiny_source = { .m128_f32 = { 1e-6f, 1e-6f, 1e-6f, 1e-6f } }; -; 117 : -; 118 : register __m128 tiny = _mm_load_ps(tiny_source.m128_f32); - - 0004f 0f 28 05 00 00 - 00 00 movaps xmm0, XMMWORD PTR ?tiny_source@?1??float_kernel_quality_sse@@9@9 - 00056 0f 29 45 10 movaps XMMWORD PTR tiny$[rbp], xmm0 - -; 119 : -; 120 : register __m128 col0 = _mm_load_ps((float *)&right->f32_x[0]); - - 0005a b8 10 00 00 00 mov eax, 16 - 0005f 48 6b c0 00 imul rax, rax, 0 - 00063 48 8b 8d f0 0b - 00 00 mov rcx, QWORD PTR right$[rbp] - 0006a 48 03 c8 add rcx, rax - 0006d 48 8b c1 mov rax, rcx - 00070 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00073 0f 29 45 40 movaps XMMWORD PTR col0$[rbp], xmm0 - -; 121 : register __m128 col1 = _mm_load_ps((float *)&right->f32_x[1]); - - 00077 b8 10 00 00 00 mov eax, 16 - 0007c 48 6b c0 01 imul rax, rax, 1 - 00080 48 8b 8d f0 0b - 00 00 mov rcx, QWORD PTR right$[rbp] - 00087 48 03 c8 add rcx, rax - 0008a 48 8b c1 mov rax, rcx - 0008d 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00090 0f 29 45 70 movaps XMMWORD PTR col1$[rbp], xmm0 - -; 122 : register __m128 col2 = _mm_load_ps((float *)&right->f32_x[2]); - - 00094 b8 10 00 00 00 mov eax, 16 - 00099 48 6b c0 02 imul rax, rax, 2 - 0009d 48 8b 8d f0 0b - 00 00 mov rcx, QWORD PTR right$[rbp] - 000a4 48 03 c8 add rcx, rax - 000a7 48 8b c1 mov rax, rcx - 000aa 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 000ad 0f 29 85 a0 00 - 00 00 movaps XMMWORD PTR col2$[rbp], xmm0 - -; 123 : register __m128 col3 = _mm_load_ps((float *)&right->f32_x[3]); - - 000b4 b8 10 00 00 00 mov eax, 16 - 000b9 48 6b c0 03 imul rax, rax, 3 - 000bd 48 8b 8d f0 0b - 00 00 mov rcx, QWORD PTR right$[rbp] - 000c4 48 03 c8 add rcx, rax - 000c7 48 8b c1 mov rax, rcx - 000ca 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 000cd 0f 29 85 d0 00 - 00 00 movaps XMMWORD PTR col3$[rbp], xmm0 - -; 124 : -; 125 : __m128 self_dot_src = { 0 }; - - 000d4 48 8d 85 00 01 - 00 00 lea rax, QWORD PTR self_dot_src$[rbp] - 000db 48 8b f8 mov rdi, rax - 000de 33 c0 xor eax, eax - 000e0 b9 10 00 00 00 mov ecx, 16 - 000e5 f3 aa rep stosb -$LN4@float_kern: - -; 126 : // try in reigister mix later -; 127 : DOT_F32_SSE(col0, col0, self_dot_src.m128_f32[0]); - - 000e7 0f 28 45 40 movaps xmm0, XMMWORD PTR col0$[rbp] - 000eb 0f 59 45 40 mulps xmm0, XMMWORD PTR col0$[rbp] - 000ef 0f 29 85 30 01 - 00 00 movaps XMMWORD PTR _p$5[rbp], xmm0 - 000f6 0f 28 85 30 01 - 00 00 movaps xmm0, XMMWORD PTR _p$5[rbp] - 000fd 0f c6 85 30 01 - 00 00 b1 shufps xmm0, XMMWORD PTR _p$5[rbp], 177 ; 000000b1H - 00105 0f 29 85 60 01 - 00 00 movaps XMMWORD PTR _t$6[rbp], xmm0 - 0010c 0f 28 85 30 01 - 00 00 movaps xmm0, XMMWORD PTR _p$5[rbp] - 00113 0f 58 85 60 01 - 00 00 addps xmm0, XMMWORD PTR _t$6[rbp] - 0011a 0f 29 85 30 01 - 00 00 movaps XMMWORD PTR _p$5[rbp], xmm0 - 00121 0f 28 85 30 01 - 00 00 movaps xmm0, XMMWORD PTR _p$5[rbp] - 00128 0f 28 8d 60 01 - 00 00 movaps xmm1, XMMWORD PTR _t$6[rbp] - 0012f 0f 12 c8 movhlps xmm1, xmm0 - 00132 0f 28 c1 movaps xmm0, xmm1 - 00135 0f 29 85 60 01 - 00 00 movaps XMMWORD PTR _t$6[rbp], xmm0 - 0013c 0f 28 85 30 01 - 00 00 movaps xmm0, XMMWORD PTR _p$5[rbp] - 00143 f3 0f 58 85 60 - 01 00 00 addss xmm0, DWORD PTR _t$6[rbp] - 0014b f3 0f 11 85 c4 - 0b 00 00 movss DWORD PTR tv142[rbp], xmm0 - 00153 b8 04 00 00 00 mov eax, 4 - 00158 48 6b c0 00 imul rax, rax, 0 - 0015c f3 0f 10 85 c4 - 0b 00 00 movss xmm0, DWORD PTR tv142[rbp] - 00164 f3 0f 11 84 05 - 00 01 00 00 movss DWORD PTR self_dot_src$[rbp+rax], xmm0 - 0016d 33 c0 xor eax, eax - 0016f 85 c0 test eax, eax - 00171 0f 85 70 ff ff - ff jne $LN4@float_kern -$LN7@float_kern: - -; 128 : DOT_F32_SSE(col1, col1, self_dot_src.m128_f32[1]); - - 00177 0f 28 45 70 movaps xmm0, XMMWORD PTR col1$[rbp] - 0017b 0f 59 45 70 mulps xmm0, XMMWORD PTR col1$[rbp] - 0017f 0f 29 85 90 01 - 00 00 movaps XMMWORD PTR _p$7[rbp], xmm0 - 00186 0f 28 85 90 01 - 00 00 movaps xmm0, XMMWORD PTR _p$7[rbp] - 0018d 0f c6 85 90 01 - 00 00 b1 shufps xmm0, XMMWORD PTR _p$7[rbp], 177 ; 000000b1H - 00195 0f 29 85 c0 01 - 00 00 movaps XMMWORD PTR _t$8[rbp], xmm0 - 0019c 0f 28 85 90 01 - 00 00 movaps xmm0, XMMWORD PTR _p$7[rbp] - 001a3 0f 58 85 c0 01 - 00 00 addps xmm0, XMMWORD PTR _t$8[rbp] - 001aa 0f 29 85 90 01 - 00 00 movaps XMMWORD PTR _p$7[rbp], xmm0 - 001b1 0f 28 85 90 01 - 00 00 movaps xmm0, XMMWORD PTR _p$7[rbp] - 001b8 0f 28 8d c0 01 - 00 00 movaps xmm1, XMMWORD PTR _t$8[rbp] - 001bf 0f 12 c8 movhlps xmm1, xmm0 - 001c2 0f 28 c1 movaps xmm0, xmm1 - 001c5 0f 29 85 c0 01 - 00 00 movaps XMMWORD PTR _t$8[rbp], xmm0 - 001cc 0f 28 85 90 01 - 00 00 movaps xmm0, XMMWORD PTR _p$7[rbp] - 001d3 f3 0f 58 85 c0 - 01 00 00 addss xmm0, DWORD PTR _t$8[rbp] - 001db f3 0f 11 85 c4 - 0b 00 00 movss DWORD PTR tv164[rbp], xmm0 - 001e3 b8 04 00 00 00 mov eax, 4 - 001e8 48 6b c0 01 imul rax, rax, 1 - 001ec f3 0f 10 85 c4 - 0b 00 00 movss xmm0, DWORD PTR tv164[rbp] - 001f4 f3 0f 11 84 05 - 00 01 00 00 movss DWORD PTR self_dot_src$[rbp+rax], xmm0 - 001fd 33 c0 xor eax, eax - 001ff 85 c0 test eax, eax - 00201 0f 85 70 ff ff - ff jne $LN7@float_kern -$LN10@float_kern: - -; 129 : DOT_F32_SSE(col2, col2, self_dot_src.m128_f32[2]); - - 00207 0f 28 85 a0 00 - 00 00 movaps xmm0, XMMWORD PTR col2$[rbp] - 0020e 0f 59 85 a0 00 - 00 00 mulps xmm0, XMMWORD PTR col2$[rbp] - 00215 0f 29 85 f0 01 - 00 00 movaps XMMWORD PTR _p$9[rbp], xmm0 - 0021c 0f 28 85 f0 01 - 00 00 movaps xmm0, XMMWORD PTR _p$9[rbp] - 00223 0f c6 85 f0 01 - 00 00 b1 shufps xmm0, XMMWORD PTR _p$9[rbp], 177 ; 000000b1H - 0022b 0f 29 85 20 02 - 00 00 movaps XMMWORD PTR _t$10[rbp], xmm0 - 00232 0f 28 85 f0 01 - 00 00 movaps xmm0, XMMWORD PTR _p$9[rbp] - 00239 0f 58 85 20 02 - 00 00 addps xmm0, XMMWORD PTR _t$10[rbp] - 00240 0f 29 85 f0 01 - 00 00 movaps XMMWORD PTR _p$9[rbp], xmm0 - 00247 0f 28 85 f0 01 - 00 00 movaps xmm0, XMMWORD PTR _p$9[rbp] - 0024e 0f 28 8d 20 02 - 00 00 movaps xmm1, XMMWORD PTR _t$10[rbp] - 00255 0f 12 c8 movhlps xmm1, xmm0 - 00258 0f 28 c1 movaps xmm0, xmm1 - 0025b 0f 29 85 20 02 - 00 00 movaps XMMWORD PTR _t$10[rbp], xmm0 - 00262 0f 28 85 f0 01 - 00 00 movaps xmm0, XMMWORD PTR _p$9[rbp] - 00269 f3 0f 58 85 20 - 02 00 00 addss xmm0, DWORD PTR _t$10[rbp] - 00271 f3 0f 11 85 c4 - 0b 00 00 movss DWORD PTR tv186[rbp], xmm0 - 00279 b8 04 00 00 00 mov eax, 4 - 0027e 48 6b c0 02 imul rax, rax, 2 - 00282 f3 0f 10 85 c4 - 0b 00 00 movss xmm0, DWORD PTR tv186[rbp] - 0028a f3 0f 11 84 05 - 00 01 00 00 movss DWORD PTR self_dot_src$[rbp+rax], xmm0 - 00293 33 c0 xor eax, eax - 00295 85 c0 test eax, eax - 00297 0f 85 6a ff ff - ff jne $LN10@float_kern -$LN13@float_kern: - -; 130 : DOT_F32_SSE(col3, col3, self_dot_src.m128_f32[3]); - - 0029d 0f 28 85 d0 00 - 00 00 movaps xmm0, XMMWORD PTR col3$[rbp] - 002a4 0f 59 85 d0 00 - 00 00 mulps xmm0, XMMWORD PTR col3$[rbp] - 002ab 0f 29 85 50 02 - 00 00 movaps XMMWORD PTR _p$11[rbp], xmm0 - 002b2 0f 28 85 50 02 - 00 00 movaps xmm0, XMMWORD PTR _p$11[rbp] - 002b9 0f c6 85 50 02 - 00 00 b1 shufps xmm0, XMMWORD PTR _p$11[rbp], 177 ; 000000b1H - 002c1 0f 29 85 80 02 - 00 00 movaps XMMWORD PTR _t$12[rbp], xmm0 - 002c8 0f 28 85 50 02 - 00 00 movaps xmm0, XMMWORD PTR _p$11[rbp] - 002cf 0f 58 85 80 02 - 00 00 addps xmm0, XMMWORD PTR _t$12[rbp] - 002d6 0f 29 85 50 02 - 00 00 movaps XMMWORD PTR _p$11[rbp], xmm0 - 002dd 0f 28 85 50 02 - 00 00 movaps xmm0, XMMWORD PTR _p$11[rbp] - 002e4 0f 28 8d 80 02 - 00 00 movaps xmm1, XMMWORD PTR _t$12[rbp] - 002eb 0f 12 c8 movhlps xmm1, xmm0 - 002ee 0f 28 c1 movaps xmm0, xmm1 - 002f1 0f 29 85 80 02 - 00 00 movaps XMMWORD PTR _t$12[rbp], xmm0 - 002f8 0f 28 85 50 02 - 00 00 movaps xmm0, XMMWORD PTR _p$11[rbp] - 002ff f3 0f 58 85 80 - 02 00 00 addss xmm0, DWORD PTR _t$12[rbp] - 00307 f3 0f 11 85 c4 - 0b 00 00 movss DWORD PTR tv208[rbp], xmm0 - 0030f b8 04 00 00 00 mov eax, 4 - 00314 48 6b c0 03 imul rax, rax, 3 - 00318 f3 0f 10 85 c4 - 0b 00 00 movss xmm0, DWORD PTR tv208[rbp] - 00320 f3 0f 11 84 05 - 00 01 00 00 movss DWORD PTR self_dot_src$[rbp+rax], xmm0 - 00329 33 c0 xor eax, eax - 0032b 85 c0 test eax, eax - 0032d 0f 85 6a ff ff - ff jne $LN13@float_kern - -; 131 : -; 132 : register __m128 self_dot = _mm_load_ps(self_dot_src.m128_f32); - - 00333 0f 28 85 00 01 - 00 00 movaps xmm0, XMMWORD PTR self_dot_src$[rbp] - 0033a 0f 29 85 b0 02 - 00 00 movaps XMMWORD PTR self_dot$[rbp], xmm0 -$LN16@float_kern: - -; 133 : -; 134 : register __m128 max; -; 135 : FIND_MAX_F32_SSE(self_dot, max); - - 00341 0f 28 85 b0 02 - 00 00 movaps xmm0, XMMWORD PTR self_dot$[rbp] - 00348 0f 28 8d b0 02 - 00 00 movaps xmm1, XMMWORD PTR self_dot$[rbp] - 0034f 0f 12 c8 movhlps xmm1, xmm0 - 00352 0f 28 c1 movaps xmm0, xmm1 - 00355 0f 29 85 10 03 - 00 00 movaps XMMWORD PTR _t$13[rbp], xmm0 - 0035c 0f 28 85 b0 02 - 00 00 movaps xmm0, XMMWORD PTR self_dot$[rbp] - 00363 0f 5f 85 10 03 - 00 00 maxps xmm0, XMMWORD PTR _t$13[rbp] - 0036a 0f 29 85 b0 02 - 00 00 movaps XMMWORD PTR self_dot$[rbp], xmm0 - 00371 0f 28 85 b0 02 - 00 00 movaps xmm0, XMMWORD PTR self_dot$[rbp] - 00378 0f c6 85 b0 02 - 00 00 b1 shufps xmm0, XMMWORD PTR self_dot$[rbp], 177 ; 000000b1H - 00380 0f 29 85 10 03 - 00 00 movaps XMMWORD PTR _t$13[rbp], xmm0 - 00387 0f 28 85 b0 02 - 00 00 movaps xmm0, XMMWORD PTR self_dot$[rbp] - 0038e 0f 5f 85 10 03 - 00 00 maxps xmm0, XMMWORD PTR _t$13[rbp] - 00395 0f 29 85 e0 02 - 00 00 movaps XMMWORD PTR max$[rbp], xmm0 - 0039c 33 c0 xor eax, eax - 0039e 85 c0 test eax, eax - 003a0 75 9f jne SHORT $LN16@float_kern - -; 136 : //float norm = _mm_cvtss_f32(max); -; 137 : -; 138 : // min on cross -; 139 : register __m128 col_shuff_1 = _mm_shuffle_ps(col1, col1, _MM_SHUFFLE(0, 3, 2, 1)); - - 003a2 0f 28 45 70 movaps xmm0, XMMWORD PTR col1$[rbp] - 003a6 0f c6 45 70 39 shufps xmm0, XMMWORD PTR col1$[rbp], 57 ; 00000039H - 003ab 0f 29 85 40 03 - 00 00 movaps XMMWORD PTR col_shuff_1$[rbp], xmm0 - -; 140 : register __m128 col_shuff_2 = _mm_shuffle_ps(col2, col2, _MM_SHUFFLE(1, 0, 3, 2)); - - 003b2 0f 28 85 a0 00 - 00 00 movaps xmm0, XMMWORD PTR col2$[rbp] - 003b9 0f c6 85 a0 00 - 00 00 4e shufps xmm0, XMMWORD PTR col2$[rbp], 78 ; 0000004eH - 003c1 0f 29 85 70 03 - 00 00 movaps XMMWORD PTR col_shuff_2$[rbp], xmm0 - -; 141 : register __m128 col_shuff_3 = _mm_shuffle_ps(col3, col3, _MM_SHUFFLE(2, 1, 0, 3)); - - 003c8 0f 28 85 d0 00 - 00 00 movaps xmm0, XMMWORD PTR col3$[rbp] - 003cf 0f c6 85 d0 00 - 00 00 93 shufps xmm0, XMMWORD PTR col3$[rbp], 147 ; 00000093H - 003d7 0f 29 85 a0 03 - 00 00 movaps XMMWORD PTR col_shuff_3$[rbp], xmm0 - -; 142 : register __m128 min = _mm_min_ps(col0, col_shuff_1); - - 003de 0f 28 45 40 movaps xmm0, XMMWORD PTR col0$[rbp] - 003e2 0f 5d 85 40 03 - 00 00 minps xmm0, XMMWORD PTR col_shuff_1$[rbp] - 003e9 0f 29 85 d0 03 - 00 00 movaps XMMWORD PTR min$[rbp], xmm0 - -; 143 : register __m128 min0 = _mm_min_ps(col_shuff_2, col_shuff_3); - - 003f0 0f 28 85 70 03 - 00 00 movaps xmm0, XMMWORD PTR col_shuff_2$[rbp] - 003f7 0f 5d 85 a0 03 - 00 00 minps xmm0, XMMWORD PTR col_shuff_3$[rbp] - 003fe 0f 29 85 00 04 - 00 00 movaps XMMWORD PTR min0$[rbp], xmm0 - -; 144 : min = _mm_min_ps(min, min0); - - 00405 0f 28 85 d0 03 - 00 00 movaps xmm0, XMMWORD PTR min$[rbp] - 0040c 0f 5d 85 00 04 - 00 00 minps xmm0, XMMWORD PTR min0$[rbp] - 00413 0f 29 85 d0 03 - 00 00 movaps XMMWORD PTR min$[rbp], xmm0 - -; 145 : -; 146 : float quality = _mm_cvtss_f32(_mm_div_ps(min, _mm_add_ps(max, tiny))); - - 0041a 0f 28 85 e0 02 - 00 00 movaps xmm0, XMMWORD PTR max$[rbp] - 00421 0f 58 45 10 addps xmm0, XMMWORD PTR tiny$[rbp] - 00425 0f 28 8d d0 03 - 00 00 movaps xmm1, XMMWORD PTR min$[rbp] - 0042c 0f 5e c8 divps xmm1, xmm0 - 0042f 0f 28 c1 movaps xmm0, xmm1 - 00432 f3 0f 11 85 c4 - 0b 00 00 movss DWORD PTR tv255[rbp], xmm0 - 0043a f3 0f 10 85 c4 - 0b 00 00 movss xmm0, DWORD PTR tv255[rbp] - 00442 f3 0f 11 85 24 - 04 00 00 movss DWORD PTR quality$[rbp], xmm0 - -; 147 : ans->f32_x[0].m128_f32[0] = quality; - - 0044a b8 10 00 00 00 mov eax, 16 - 0044f 48 6b c0 00 imul rax, rax, 0 - 00453 48 8b 8d f8 0b - 00 00 mov rcx, QWORD PTR ans$[rbp] - 0045a 48 03 c8 add rcx, rax - 0045d 48 8b c1 mov rax, rcx - 00460 b9 04 00 00 00 mov ecx, 4 - 00465 48 6b c9 00 imul rcx, rcx, 0 - 00469 f3 0f 10 85 24 - 04 00 00 movss xmm0, DWORD PTR quality$[rbp] - 00471 f3 0f 11 04 08 movss DWORD PTR [rax+rcx], xmm0 - -; 148 : if (quality < quality_threshold) { - - 00476 f3 0f 10 05 00 - 00 00 00 movss xmm0, DWORD PTR quality_threshold - 0047e 0f 2f 85 24 04 - 00 00 comiss xmm0, DWORD PTR quality$[rbp] - 00485 76 05 jbe SHORT $LN38@float_kern - -; 149 : return; - - 00487 e9 4b 05 00 00 jmp $LN1@float_kern -$LN38@float_kern: -$LN19@float_kern: - -; 150 : } -; 151 : -; 152 : __m128 cross_dot_src[2]; -; 153 : DOT_F32_SSE(col0, col1, cross_dot_src[0].m128_f32[0]); - - 0048c 0f 28 45 40 movaps xmm0, XMMWORD PTR col0$[rbp] - 00490 0f 59 45 70 mulps xmm0, XMMWORD PTR col1$[rbp] - 00494 0f 29 85 90 04 - 00 00 movaps XMMWORD PTR _p$14[rbp], xmm0 - 0049b 0f 28 85 90 04 - 00 00 movaps xmm0, XMMWORD PTR _p$14[rbp] - 004a2 0f c6 85 90 04 - 00 00 b1 shufps xmm0, XMMWORD PTR _p$14[rbp], 177 ; 000000b1H - 004aa 0f 29 85 c0 04 - 00 00 movaps XMMWORD PTR _t$15[rbp], xmm0 - 004b1 0f 28 85 90 04 - 00 00 movaps xmm0, XMMWORD PTR _p$14[rbp] - 004b8 0f 58 85 c0 04 - 00 00 addps xmm0, XMMWORD PTR _t$15[rbp] - 004bf 0f 29 85 90 04 - 00 00 movaps XMMWORD PTR _p$14[rbp], xmm0 - 004c6 0f 28 85 90 04 - 00 00 movaps xmm0, XMMWORD PTR _p$14[rbp] - 004cd 0f 28 8d c0 04 - 00 00 movaps xmm1, XMMWORD PTR _t$15[rbp] - 004d4 0f 12 c8 movhlps xmm1, xmm0 - 004d7 0f 28 c1 movaps xmm0, xmm1 - 004da 0f 29 85 c0 04 - 00 00 movaps XMMWORD PTR _t$15[rbp], xmm0 - 004e1 0f 28 85 90 04 - 00 00 movaps xmm0, XMMWORD PTR _p$14[rbp] - 004e8 f3 0f 58 85 c0 - 04 00 00 addss xmm0, DWORD PTR _t$15[rbp] - 004f0 f3 0f 11 85 c4 - 0b 00 00 movss DWORD PTR tv286[rbp], xmm0 - 004f8 b8 10 00 00 00 mov eax, 16 - 004fd 48 6b c0 00 imul rax, rax, 0 - 00501 48 8d 84 05 50 - 04 00 00 lea rax, QWORD PTR cross_dot_src$[rbp+rax] - 00509 b9 04 00 00 00 mov ecx, 4 - 0050e 48 6b c9 00 imul rcx, rcx, 0 - 00512 f3 0f 10 85 c4 - 0b 00 00 movss xmm0, DWORD PTR tv286[rbp] - 0051a f3 0f 11 04 08 movss DWORD PTR [rax+rcx], xmm0 - 0051f 33 c0 xor eax, eax - 00521 85 c0 test eax, eax - 00523 0f 85 63 ff ff - ff jne $LN19@float_kern -$LN22@float_kern: - -; 154 : DOT_F32_SSE(col0, col2, cross_dot_src[0].m128_f32[1]); - - 00529 0f 28 45 40 movaps xmm0, XMMWORD PTR col0$[rbp] - 0052d 0f 59 85 a0 00 - 00 00 mulps xmm0, XMMWORD PTR col2$[rbp] - 00534 0f 29 85 f0 04 - 00 00 movaps XMMWORD PTR _p$16[rbp], xmm0 - 0053b 0f 28 85 f0 04 - 00 00 movaps xmm0, XMMWORD PTR _p$16[rbp] - 00542 0f c6 85 f0 04 - 00 00 b1 shufps xmm0, XMMWORD PTR _p$16[rbp], 177 ; 000000b1H - 0054a 0f 29 85 20 05 - 00 00 movaps XMMWORD PTR _t$17[rbp], xmm0 - 00551 0f 28 85 f0 04 - 00 00 movaps xmm0, XMMWORD PTR _p$16[rbp] - 00558 0f 58 85 20 05 - 00 00 addps xmm0, XMMWORD PTR _t$17[rbp] - 0055f 0f 29 85 f0 04 - 00 00 movaps XMMWORD PTR _p$16[rbp], xmm0 - 00566 0f 28 85 f0 04 - 00 00 movaps xmm0, XMMWORD PTR _p$16[rbp] - 0056d 0f 28 8d 20 05 - 00 00 movaps xmm1, XMMWORD PTR _t$17[rbp] - 00574 0f 12 c8 movhlps xmm1, xmm0 - 00577 0f 28 c1 movaps xmm0, xmm1 - 0057a 0f 29 85 20 05 - 00 00 movaps XMMWORD PTR _t$17[rbp], xmm0 - 00581 0f 28 85 f0 04 - 00 00 movaps xmm0, XMMWORD PTR _p$16[rbp] - 00588 f3 0f 58 85 20 - 05 00 00 addss xmm0, DWORD PTR _t$17[rbp] - 00590 f3 0f 11 85 c4 - 0b 00 00 movss DWORD PTR tv311[rbp], xmm0 - 00598 b8 10 00 00 00 mov eax, 16 - 0059d 48 6b c0 00 imul rax, rax, 0 - 005a1 48 8d 84 05 50 - 04 00 00 lea rax, QWORD PTR cross_dot_src$[rbp+rax] - 005a9 b9 04 00 00 00 mov ecx, 4 - 005ae 48 6b c9 01 imul rcx, rcx, 1 - 005b2 f3 0f 10 85 c4 - 0b 00 00 movss xmm0, DWORD PTR tv311[rbp] - 005ba f3 0f 11 04 08 movss DWORD PTR [rax+rcx], xmm0 - 005bf 33 c0 xor eax, eax - 005c1 85 c0 test eax, eax - 005c3 0f 85 60 ff ff - ff jne $LN22@float_kern -$LN25@float_kern: - -; 155 : DOT_F32_SSE(col0, col3, cross_dot_src[0].m128_f32[2]); - - 005c9 0f 28 45 40 movaps xmm0, XMMWORD PTR col0$[rbp] - 005cd 0f 59 85 d0 00 - 00 00 mulps xmm0, XMMWORD PTR col3$[rbp] - 005d4 0f 29 85 50 05 - 00 00 movaps XMMWORD PTR _p$18[rbp], xmm0 - 005db 0f 28 85 50 05 - 00 00 movaps xmm0, XMMWORD PTR _p$18[rbp] - 005e2 0f c6 85 50 05 - 00 00 b1 shufps xmm0, XMMWORD PTR _p$18[rbp], 177 ; 000000b1H - 005ea 0f 29 85 80 05 - 00 00 movaps XMMWORD PTR _t$19[rbp], xmm0 - 005f1 0f 28 85 50 05 - 00 00 movaps xmm0, XMMWORD PTR _p$18[rbp] - 005f8 0f 58 85 80 05 - 00 00 addps xmm0, XMMWORD PTR _t$19[rbp] - 005ff 0f 29 85 50 05 - 00 00 movaps XMMWORD PTR _p$18[rbp], xmm0 - 00606 0f 28 85 50 05 - 00 00 movaps xmm0, XMMWORD PTR _p$18[rbp] - 0060d 0f 28 8d 80 05 - 00 00 movaps xmm1, XMMWORD PTR _t$19[rbp] - 00614 0f 12 c8 movhlps xmm1, xmm0 - 00617 0f 28 c1 movaps xmm0, xmm1 - 0061a 0f 29 85 80 05 - 00 00 movaps XMMWORD PTR _t$19[rbp], xmm0 - 00621 0f 28 85 50 05 - 00 00 movaps xmm0, XMMWORD PTR _p$18[rbp] - 00628 f3 0f 58 85 80 - 05 00 00 addss xmm0, DWORD PTR _t$19[rbp] - 00630 f3 0f 11 85 c4 - 0b 00 00 movss DWORD PTR tv368[rbp], xmm0 - 00638 b8 10 00 00 00 mov eax, 16 - 0063d 48 6b c0 00 imul rax, rax, 0 - 00641 48 8d 84 05 50 - 04 00 00 lea rax, QWORD PTR cross_dot_src$[rbp+rax] - 00649 b9 04 00 00 00 mov ecx, 4 - 0064e 48 6b c9 02 imul rcx, rcx, 2 - 00652 f3 0f 10 85 c4 - 0b 00 00 movss xmm0, DWORD PTR tv368[rbp] - 0065a f3 0f 11 04 08 movss DWORD PTR [rax+rcx], xmm0 - 0065f 33 c0 xor eax, eax - 00661 85 c0 test eax, eax - 00663 0f 85 60 ff ff - ff jne $LN25@float_kern -$LN28@float_kern: - -; 156 : DOT_F32_SSE(col1, col2, cross_dot_src[0].m128_f32[3]); - - 00669 0f 28 45 70 movaps xmm0, XMMWORD PTR col1$[rbp] - 0066d 0f 59 85 a0 00 - 00 00 mulps xmm0, XMMWORD PTR col2$[rbp] - 00674 0f 29 85 b0 05 - 00 00 movaps XMMWORD PTR _p$20[rbp], xmm0 - 0067b 0f 28 85 b0 05 - 00 00 movaps xmm0, XMMWORD PTR _p$20[rbp] - 00682 0f c6 85 b0 05 - 00 00 b1 shufps xmm0, XMMWORD PTR _p$20[rbp], 177 ; 000000b1H - 0068a 0f 29 85 e0 05 - 00 00 movaps XMMWORD PTR _t$21[rbp], xmm0 - 00691 0f 28 85 b0 05 - 00 00 movaps xmm0, XMMWORD PTR _p$20[rbp] - 00698 0f 58 85 e0 05 - 00 00 addps xmm0, XMMWORD PTR _t$21[rbp] - 0069f 0f 29 85 b0 05 - 00 00 movaps XMMWORD PTR _p$20[rbp], xmm0 - 006a6 0f 28 85 b0 05 - 00 00 movaps xmm0, XMMWORD PTR _p$20[rbp] - 006ad 0f 28 8d e0 05 - 00 00 movaps xmm1, XMMWORD PTR _t$21[rbp] - 006b4 0f 12 c8 movhlps xmm1, xmm0 - 006b7 0f 28 c1 movaps xmm0, xmm1 - 006ba 0f 29 85 e0 05 - 00 00 movaps XMMWORD PTR _t$21[rbp], xmm0 - 006c1 0f 28 85 b0 05 - 00 00 movaps xmm0, XMMWORD PTR _p$20[rbp] - 006c8 f3 0f 58 85 e0 - 05 00 00 addss xmm0, DWORD PTR _t$21[rbp] - 006d0 f3 0f 11 85 c4 - 0b 00 00 movss DWORD PTR tv393[rbp], xmm0 - 006d8 b8 10 00 00 00 mov eax, 16 - 006dd 48 6b c0 00 imul rax, rax, 0 - 006e1 48 8d 84 05 50 - 04 00 00 lea rax, QWORD PTR cross_dot_src$[rbp+rax] - 006e9 b9 04 00 00 00 mov ecx, 4 - 006ee 48 6b c9 03 imul rcx, rcx, 3 - 006f2 f3 0f 10 85 c4 - 0b 00 00 movss xmm0, DWORD PTR tv393[rbp] - 006fa f3 0f 11 04 08 movss DWORD PTR [rax+rcx], xmm0 - 006ff 33 c0 xor eax, eax - 00701 85 c0 test eax, eax - 00703 0f 85 60 ff ff - ff jne $LN28@float_kern -$LN31@float_kern: - -; 157 : DOT_F32_SSE(col1, col3, cross_dot_src[1].m128_f32[0]); - - 00709 0f 28 45 70 movaps xmm0, XMMWORD PTR col1$[rbp] - 0070d 0f 59 85 d0 00 - 00 00 mulps xmm0, XMMWORD PTR col3$[rbp] - 00714 0f 29 85 10 06 - 00 00 movaps XMMWORD PTR _p$22[rbp], xmm0 - 0071b 0f 28 85 10 06 - 00 00 movaps xmm0, XMMWORD PTR _p$22[rbp] - 00722 0f c6 85 10 06 - 00 00 b1 shufps xmm0, XMMWORD PTR _p$22[rbp], 177 ; 000000b1H - 0072a 0f 29 85 40 06 - 00 00 movaps XMMWORD PTR _t$23[rbp], xmm0 - 00731 0f 28 85 10 06 - 00 00 movaps xmm0, XMMWORD PTR _p$22[rbp] - 00738 0f 58 85 40 06 - 00 00 addps xmm0, XMMWORD PTR _t$23[rbp] - 0073f 0f 29 85 10 06 - 00 00 movaps XMMWORD PTR _p$22[rbp], xmm0 - 00746 0f 28 85 10 06 - 00 00 movaps xmm0, XMMWORD PTR _p$22[rbp] - 0074d 0f 28 8d 40 06 - 00 00 movaps xmm1, XMMWORD PTR _t$23[rbp] - 00754 0f 12 c8 movhlps xmm1, xmm0 - 00757 0f 28 c1 movaps xmm0, xmm1 - 0075a 0f 29 85 40 06 - 00 00 movaps XMMWORD PTR _t$23[rbp], xmm0 - 00761 0f 28 85 10 06 - 00 00 movaps xmm0, XMMWORD PTR _p$22[rbp] - 00768 f3 0f 58 85 40 - 06 00 00 addss xmm0, DWORD PTR _t$23[rbp] - 00770 f3 0f 11 85 c4 - 0b 00 00 movss DWORD PTR tv418[rbp], xmm0 - 00778 b8 10 00 00 00 mov eax, 16 - 0077d 48 6b c0 01 imul rax, rax, 1 - 00781 48 8d 84 05 50 - 04 00 00 lea rax, QWORD PTR cross_dot_src$[rbp+rax] - 00789 b9 04 00 00 00 mov ecx, 4 - 0078e 48 6b c9 00 imul rcx, rcx, 0 - 00792 f3 0f 10 85 c4 - 0b 00 00 movss xmm0, DWORD PTR tv418[rbp] - 0079a f3 0f 11 04 08 movss DWORD PTR [rax+rcx], xmm0 - 0079f 33 c0 xor eax, eax - 007a1 85 c0 test eax, eax - 007a3 0f 85 60 ff ff - ff jne $LN31@float_kern -$LN34@float_kern: - -; 158 : DOT_F32_SSE(col2, col3, cross_dot_src[1].m128_f32[1]); - - 007a9 0f 28 85 a0 00 - 00 00 movaps xmm0, XMMWORD PTR col2$[rbp] - 007b0 0f 59 85 d0 00 - 00 00 mulps xmm0, XMMWORD PTR col3$[rbp] - 007b7 0f 29 85 70 06 - 00 00 movaps XMMWORD PTR _p$24[rbp], xmm0 - 007be 0f 28 85 70 06 - 00 00 movaps xmm0, XMMWORD PTR _p$24[rbp] - 007c5 0f c6 85 70 06 - 00 00 b1 shufps xmm0, XMMWORD PTR _p$24[rbp], 177 ; 000000b1H - 007cd 0f 29 85 a0 06 - 00 00 movaps XMMWORD PTR _t$25[rbp], xmm0 - 007d4 0f 28 85 70 06 - 00 00 movaps xmm0, XMMWORD PTR _p$24[rbp] - 007db 0f 58 85 a0 06 - 00 00 addps xmm0, XMMWORD PTR _t$25[rbp] - 007e2 0f 29 85 70 06 - 00 00 movaps XMMWORD PTR _p$24[rbp], xmm0 - 007e9 0f 28 85 70 06 - 00 00 movaps xmm0, XMMWORD PTR _p$24[rbp] - 007f0 0f 28 8d a0 06 - 00 00 movaps xmm1, XMMWORD PTR _t$25[rbp] - 007f7 0f 12 c8 movhlps xmm1, xmm0 - 007fa 0f 28 c1 movaps xmm0, xmm1 - 007fd 0f 29 85 a0 06 - 00 00 movaps XMMWORD PTR _t$25[rbp], xmm0 - 00804 0f 28 85 70 06 - 00 00 movaps xmm0, XMMWORD PTR _p$24[rbp] - 0080b f3 0f 58 85 a0 - 06 00 00 addss xmm0, DWORD PTR _t$25[rbp] - 00813 f3 0f 11 85 c4 - 0b 00 00 movss DWORD PTR tv443[rbp], xmm0 - 0081b b8 10 00 00 00 mov eax, 16 - 00820 48 6b c0 01 imul rax, rax, 1 - 00824 48 8d 84 05 50 - 04 00 00 lea rax, QWORD PTR cross_dot_src$[rbp+rax] - 0082c b9 04 00 00 00 mov ecx, 4 - 00831 48 6b c9 01 imul rcx, rcx, 1 - 00835 f3 0f 10 85 c4 - 0b 00 00 movss xmm0, DWORD PTR tv443[rbp] - 0083d f3 0f 11 04 08 movss DWORD PTR [rax+rcx], xmm0 - 00842 33 c0 xor eax, eax - 00844 85 c0 test eax, eax - 00846 0f 85 5d ff ff - ff jne $LN34@float_kern - -; 159 : -; 160 : register __m128 cross_dot_0 = _mm_load_ps(cross_dot_src[0].m128_f32); - - 0084c b8 10 00 00 00 mov eax, 16 - 00851 48 6b c0 00 imul rax, rax, 0 - 00855 48 8d 84 05 50 - 04 00 00 lea rax, QWORD PTR cross_dot_src$[rbp+rax] - 0085d 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00860 0f 29 85 d0 06 - 00 00 movaps XMMWORD PTR cross_dot_0$[rbp], xmm0 - -; 161 : register __m128 cross_dot_1 = _mm_load_ps(cross_dot_src[1].m128_f32); - - 00867 b8 10 00 00 00 mov eax, 16 - 0086c 48 6b c0 01 imul rax, rax, 1 - 00870 48 8d 84 05 50 - 04 00 00 lea rax, QWORD PTR cross_dot_src$[rbp+rax] - 00878 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 0087b 0f 29 85 00 07 - 00 00 movaps XMMWORD PTR cross_dot_1$[rbp], xmm0 - -; 162 : -; 163 : register __m128 base_0 = _mm_shuffle_ps(self_dot, self_dot, _MM_SHUFFLE(1, 0, 0, 0)); - - 00882 0f 28 85 b0 02 - 00 00 movaps xmm0, XMMWORD PTR self_dot$[rbp] - 00889 0f c6 85 b0 02 - 00 00 40 shufps xmm0, XMMWORD PTR self_dot$[rbp], 64 ; 00000040H - 00891 0f 29 85 30 07 - 00 00 movaps XMMWORD PTR base_0$[rbp], xmm0 - -; 164 : register __m128 base_1 = _mm_shuffle_ps(self_dot, self_dot, _MM_SHUFFLE(3, 3, 2, 1)); - - 00898 0f 28 85 b0 02 - 00 00 movaps xmm0, XMMWORD PTR self_dot$[rbp] - 0089f 0f c6 85 b0 02 - 00 00 f9 shufps xmm0, XMMWORD PTR self_dot$[rbp], 249 ; 000000f9H - 008a7 0f 29 85 60 07 - 00 00 movaps XMMWORD PTR base_1$[rbp], xmm0 - -; 165 : -; 166 : register __m128 relation_0 = - - 008ae 0f 28 85 30 07 - 00 00 movaps xmm0, XMMWORD PTR base_0$[rbp] - 008b5 0f 59 85 60 07 - 00 00 mulps xmm0, XMMWORD PTR base_1$[rbp] - 008bc 0f 58 45 10 addps xmm0, XMMWORD PTR tiny$[rbp] - 008c0 0f 28 8d d0 06 - 00 00 movaps xmm1, XMMWORD PTR cross_dot_0$[rbp] - 008c7 0f 5e c8 divps xmm1, xmm0 - 008ca 0f 28 c1 movaps xmm0, xmm1 - 008cd 0f 29 85 90 07 - 00 00 movaps XMMWORD PTR relation_0$[rbp], xmm0 - -; 167 : _mm_div_ps(cross_dot_0, _mm_add_ps(_mm_mul_ps(base_0, base_1), tiny)); -; 168 : -; 169 : base_0 = _mm_shuffle_ps(self_dot, self_dot, _MM_SHUFFLE(2, 3, 2, 1)); - - 008d4 0f 28 85 b0 02 - 00 00 movaps xmm0, XMMWORD PTR self_dot$[rbp] - 008db 0f c6 85 b0 02 - 00 00 b9 shufps xmm0, XMMWORD PTR self_dot$[rbp], 185 ; 000000b9H - 008e3 0f 29 85 30 07 - 00 00 movaps XMMWORD PTR base_0$[rbp], xmm0 - -; 170 : base_1 = _mm_shuffle_ps(self_dot, self_dot, _MM_SHUFFLE(3, 3, 3, 3)); - - 008ea 0f 28 85 b0 02 - 00 00 movaps xmm0, XMMWORD PTR self_dot$[rbp] - 008f1 0f c6 85 b0 02 - 00 00 ff shufps xmm0, XMMWORD PTR self_dot$[rbp], 255 ; 000000ffH - 008f9 0f 29 85 60 07 - 00 00 movaps XMMWORD PTR base_1$[rbp], xmm0 - -; 171 : -; 172 : register __m128 relation_1 = - - 00900 0f 28 85 30 07 - 00 00 movaps xmm0, XMMWORD PTR base_0$[rbp] - 00907 0f 59 85 60 07 - 00 00 mulps xmm0, XMMWORD PTR base_1$[rbp] - 0090e 0f 58 45 10 addps xmm0, XMMWORD PTR tiny$[rbp] - 00912 0f 28 8d d0 06 - 00 00 movaps xmm1, XMMWORD PTR cross_dot_0$[rbp] - 00919 0f 5e c8 divps xmm1, xmm0 - 0091c 0f 28 c1 movaps xmm0, xmm1 - 0091f 0f 29 85 c0 07 - 00 00 movaps XMMWORD PTR relation_1$[rbp], xmm0 - -; 173 : _mm_div_ps(cross_dot_0, _mm_add_ps(_mm_mul_ps(base_0, base_1), tiny)); -; 174 : -; 175 : relation_0 = _mm_max_ps(relation_0, relation_1); - - 00926 0f 28 85 90 07 - 00 00 movaps xmm0, XMMWORD PTR relation_0$[rbp] - 0092d 0f 5f 85 c0 07 - 00 00 maxps xmm0, XMMWORD PTR relation_1$[rbp] - 00934 0f 29 85 90 07 - 00 00 movaps XMMWORD PTR relation_0$[rbp], xmm0 -$LN37@float_kern: - -; 176 : FIND_MAX_F32_SSE(relation_0, relation_0); - - 0093b 0f 28 85 90 07 - 00 00 movaps xmm0, XMMWORD PTR relation_0$[rbp] - 00942 0f 28 8d 90 07 - 00 00 movaps xmm1, XMMWORD PTR relation_0$[rbp] - 00949 0f 12 c8 movhlps xmm1, xmm0 - 0094c 0f 28 c1 movaps xmm0, xmm1 - 0094f 0f 29 85 f0 07 - 00 00 movaps XMMWORD PTR _t$26[rbp], xmm0 - 00956 0f 28 85 90 07 - 00 00 movaps xmm0, XMMWORD PTR relation_0$[rbp] - 0095d 0f 5f 85 f0 07 - 00 00 maxps xmm0, XMMWORD PTR _t$26[rbp] - 00964 0f 29 85 90 07 - 00 00 movaps XMMWORD PTR relation_0$[rbp], xmm0 - 0096b 0f 28 85 90 07 - 00 00 movaps xmm0, XMMWORD PTR relation_0$[rbp] - 00972 0f c6 85 90 07 - 00 00 b1 shufps xmm0, XMMWORD PTR relation_0$[rbp], 177 ; 000000b1H - 0097a 0f 29 85 f0 07 - 00 00 movaps XMMWORD PTR _t$26[rbp], xmm0 - 00981 0f 28 85 90 07 - 00 00 movaps xmm0, XMMWORD PTR relation_0$[rbp] - 00988 0f 5f 85 f0 07 - 00 00 maxps xmm0, XMMWORD PTR _t$26[rbp] - 0098f 0f 29 85 90 07 - 00 00 movaps XMMWORD PTR relation_0$[rbp], xmm0 - 00996 33 c0 xor eax, eax - 00998 85 c0 test eax, eax - 0099a 75 9f jne SHORT $LN37@float_kern - -; 177 : ans->f32_x[0].m128_f32[1] = _mm_cvtss_f32(relation_0); - - 0099c 0f 28 85 90 07 - 00 00 movaps xmm0, XMMWORD PTR relation_0$[rbp] - 009a3 f3 0f 11 85 c4 - 0b 00 00 movss DWORD PTR tv514[rbp], xmm0 - 009ab b8 10 00 00 00 mov eax, 16 - 009b0 48 6b c0 00 imul rax, rax, 0 - 009b4 48 8b 8d f8 0b - 00 00 mov rcx, QWORD PTR ans$[rbp] - 009bb 48 03 c8 add rcx, rax - 009be 48 8b c1 mov rax, rcx - 009c1 b9 04 00 00 00 mov ecx, 4 - 009c6 48 6b c9 01 imul rcx, rcx, 1 - 009ca f3 0f 10 85 c4 - 0b 00 00 movss xmm0, DWORD PTR tv514[rbp] - 009d2 f3 0f 11 04 08 movss DWORD PTR [rax+rcx], xmm0 -$LN1@float_kern: - -; 178 : } - - 009d7 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 009db 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_kernel_quality_sse$rtcFrameData - 009e2 e8 00 00 00 00 call _RTC_CheckStackVars - 009e7 48 8b 8d c8 0b - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 009ee 48 33 cd xor rcx, rbp - 009f1 e8 00 00 00 00 call __security_check_cookie - 009f6 48 8d a5 d8 0b - 00 00 lea rsp, QWORD PTR [rbp+3032] - 009fd 5f pop rdi - 009fe 5d pop rbp - 009ff c3 ret 0 -float_kernel_quality_sse ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\m.solve.x86.c -; COMDAT float_kernel_try_plu_sse -_TEXT SEGMENT -upper$ = 8 -lower$ = 40 -source$ = 72 -pivot$ = 104 -success$ = 136 -a$ = 192 -z$ = 288 -c$4 = 324 -col$5 = 368 -eps$ = 404 -k$6 = 436 -p$7 = 468 -maxabs$8 = 500 -r$9 = 532 -v$10 = 564 -c$11 = 596 -tmp$12 = 628 -tmpi$13 = 660 -pivot_val$14 = 692 -r$15 = 724 -factor$16 = 756 -c$17 = 788 -c$18 = 820 -d$19 = 852 -__$ArrayPad$ = 1256 -left$ = 1360 -right$ = 1368 -ans$ = 1376 -scalar$ = 1384 -float_kernel_try_plu_sse PROC ; COMDAT - -; 11 : { - -$LN31: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 41 55 push r13 - 00016 55 push rbp - 00017 57 push rdi - 00018 48 81 ec 50 05 - 00 00 sub rsp, 1360 ; 00000550H - 0001f 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 00024 48 8d 6c 24 60 lea rbp, QWORD PTR [rsp+96] - 00029 48 83 e5 c0 and rbp, -64 ; ffffffffffffffc0H - 0002d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00032 b9 ec 00 00 00 mov ecx, 236 ; 000000ecH - 00037 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0003c f3 ab rep stosd - 0003e 48 8b 8c 24 78 - 05 00 00 mov rcx, QWORD PTR [rsp+1400] - 00046 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 0004d 49 33 c5 xor rax, r13 - 00050 48 89 85 e8 04 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00057 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__26377312_m@solve@x86@c - 0005e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00063 90 npad 1 - -; 12 : /* Aliases */ -; 13 : MAT_KERNEL(float) *upper = left; /* U */ - - 00064 49 8b 85 50 05 - 00 00 mov rax, QWORD PTR left$[r13] - 0006b 48 89 45 08 mov QWORD PTR upper$[rbp], rax - -; 14 : MAT_KERNEL(float) *lower = right; /* L (unit diag) */ - - 0006f 49 8b 85 58 05 - 00 00 mov rax, QWORD PTR right$[r13] - 00076 48 89 45 28 mov QWORD PTR lower$[rbp], rax - -; 15 : MAT_KERNEL(float) *source = ans; /* A */ - - 0007a 49 8b 85 60 05 - 00 00 mov rax, QWORD PTR ans$[r13] - 00081 48 89 45 48 mov QWORD PTR source$[rbp], rax - -; 16 : unsigned char *pivot = (unsigned char *)&scalar->data[0]; /* length = 4 */ - - 00085 b8 08 00 00 00 mov eax, 8 - 0008a 48 6b c0 00 imul rax, rax, 0 - 0008e 49 8b 8d 68 05 - 00 00 mov rcx, QWORD PTR scalar$[r13] - 00095 48 03 c8 add rcx, rax - 00098 48 8b c1 mov rax, rcx - 0009b 48 89 45 68 mov QWORD PTR pivot$[rbp], rax - -; 17 : int *success = (int *)&scalar->data[1]; - - 0009f b8 08 00 00 00 mov eax, 8 - 000a4 48 6b c0 01 imul rax, rax, 1 - 000a8 49 8b 8d 68 05 - 00 00 mov rcx, QWORD PTR scalar$[r13] - 000af 48 03 c8 add rcx, rax - 000b2 48 8b c1 mov rax, rcx - 000b5 48 89 85 88 00 - 00 00 mov QWORD PTR success$[rbp], rax - -; 18 : -; 19 : /* Init permutation and outputs */ -; 20 : pivot[0] = 0; - - 000bc b8 01 00 00 00 mov eax, 1 - 000c1 48 6b c0 00 imul rax, rax, 0 - 000c5 48 8b 4d 68 mov rcx, QWORD PTR pivot$[rbp] - 000c9 c6 04 01 00 mov BYTE PTR [rcx+rax], 0 - -; 21 : pivot[1] = 1; - - 000cd b8 01 00 00 00 mov eax, 1 - 000d2 48 6b c0 01 imul rax, rax, 1 - 000d6 48 8b 4d 68 mov rcx, QWORD PTR pivot$[rbp] - 000da c6 04 01 01 mov BYTE PTR [rcx+rax], 1 - -; 22 : pivot[2] = 2; - - 000de b8 01 00 00 00 mov eax, 1 - 000e3 48 6b c0 02 imul rax, rax, 2 - 000e7 48 8b 4d 68 mov rcx, QWORD PTR pivot$[rbp] - 000eb c6 04 01 02 mov BYTE PTR [rcx+rax], 2 - -; 23 : pivot[3] = 3; - - 000ef b8 01 00 00 00 mov eax, 1 - 000f4 48 6b c0 03 imul rax, rax, 3 - 000f8 48 8b 4d 68 mov rcx, QWORD PTR pivot$[rbp] - 000fc c6 04 01 03 mov BYTE PTR [rcx+rax], 3 - -; 24 : *success = 1; - - 00100 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR success$[rbp] - 00107 c7 00 01 00 00 - 00 mov DWORD PTR [rax], 1 - -; 25 : -; 26 : /* Working copy of A in column-major a[col][row], load via SIMD view */ -; 27 : MAT_KERNEL(float) a; -; 28 : const __m128 z = _mm_setzero_ps(); - - 0010d 0f 57 c0 xorps xmm0, xmm0 - 00110 0f 29 85 20 01 - 00 00 movaps XMMWORD PTR z$[rbp], xmm0 - -; 29 : for (int c = 0; c < 4; ++c) { - - 00117 c7 85 44 01 00 - 00 00 00 00 00 mov DWORD PTR c$4[rbp], 0 - 00121 eb 0e jmp SHORT $LN4@float_kern -$LN2@float_kern: - 00123 8b 85 44 01 00 - 00 mov eax, DWORD PTR c$4[rbp] - 00129 ff c0 inc eax - 0012b 89 85 44 01 00 - 00 mov DWORD PTR c$4[rbp], eax -$LN4@float_kern: - 00131 83 bd 44 01 00 - 00 04 cmp DWORD PTR c$4[rbp], 4 - 00138 7d 7f jge SHORT $LN3@float_kern - -; 30 : __m128 col = _mm_load_ps((float *)&source->f32_x[c]); - - 0013a 48 63 85 44 01 - 00 00 movsxd rax, DWORD PTR c$4[rbp] - 00141 48 6b c0 10 imul rax, rax, 16 - 00145 48 8b 4d 48 mov rcx, QWORD PTR source$[rbp] - 00149 48 03 c8 add rcx, rax - 0014c 48 8b c1 mov rax, rcx - 0014f 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 00152 0f 29 85 70 01 - 00 00 movaps XMMWORD PTR col$5[rbp], xmm0 - -; 31 : _mm_storeu_ps((float *)&a.f32_x[c], col); - - 00159 48 63 85 44 01 - 00 00 movsxd rax, DWORD PTR c$4[rbp] - 00160 48 6b c0 10 imul rax, rax, 16 - 00164 48 8d 84 05 c0 - 00 00 00 lea rax, QWORD PTR a$[rbp+rax] - 0016c 0f 28 85 70 01 - 00 00 movaps xmm0, XMMWORD PTR col$5[rbp] - 00173 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 32 : _mm_store_ps((float *)&upper->f32_x[c], z); - - 00176 48 63 85 44 01 - 00 00 movsxd rax, DWORD PTR c$4[rbp] - 0017d 48 6b c0 10 imul rax, rax, 16 - 00181 48 8b 4d 08 mov rcx, QWORD PTR upper$[rbp] - 00185 48 03 c8 add rcx, rax - 00188 48 8b c1 mov rax, rcx - 0018b 0f 28 85 20 01 - 00 00 movaps xmm0, XMMWORD PTR z$[rbp] - 00192 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 33 : _mm_store_ps((float *)&lower->f32_x[c], z); - - 00195 48 63 85 44 01 - 00 00 movsxd rax, DWORD PTR c$4[rbp] - 0019c 48 6b c0 10 imul rax, rax, 16 - 001a0 48 8b 4d 28 mov rcx, QWORD PTR lower$[rbp] - 001a4 48 03 c8 add rcx, rax - 001a7 48 8b c1 mov rax, rcx - 001aa 0f 28 85 20 01 - 00 00 movaps xmm0, XMMWORD PTR z$[rbp] - 001b1 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 34 : } - - 001b4 e9 6a ff ff ff jmp $LN2@float_kern -$LN3@float_kern: - -; 35 : -; 36 : const float eps = 1e-12f; - - 001b9 f3 0f 10 05 00 - 00 00 00 movss xmm0, DWORD PTR __real@2b8cbccc - 001c1 f3 0f 11 85 94 - 01 00 00 movss DWORD PTR eps$[rbp], xmm0 - -; 37 : -; 38 : for (int k = 0; k < 4; ++k) { - - 001c9 c7 85 b4 01 00 - 00 00 00 00 00 mov DWORD PTR k$6[rbp], 0 - 001d3 eb 0e jmp SHORT $LN7@float_kern -$LN5@float_kern: - 001d5 8b 85 b4 01 00 - 00 mov eax, DWORD PTR k$6[rbp] - 001db ff c0 inc eax - 001dd 89 85 b4 01 00 - 00 mov DWORD PTR k$6[rbp], eax -$LN7@float_kern: - 001e3 83 bd b4 01 00 - 00 04 cmp DWORD PTR k$6[rbp], 4 - 001ea 0f 8d cc 03 00 - 00 jge $LN6@float_kern - -; 39 : /* Pivot search on column k, rows k..3 */ -; 40 : int p = k; - - 001f0 8b 85 b4 01 00 - 00 mov eax, DWORD PTR k$6[rbp] - 001f6 89 85 d4 01 00 - 00 mov DWORD PTR p$7[rbp], eax - -; 41 : float maxabs = fabsf(a.m[k][p]); - - 001fc 48 63 85 b4 01 - 00 00 movsxd rax, DWORD PTR k$6[rbp] - 00203 48 6b c0 10 imul rax, rax, 16 - 00207 48 8d 84 05 c0 - 00 00 00 lea rax, QWORD PTR a$[rbp+rax] - 0020f 48 63 8d d4 01 - 00 00 movsxd rcx, DWORD PTR p$7[rbp] - 00216 f3 0f 10 04 88 movss xmm0, DWORD PTR [rax+rcx*4] - 0021b e8 00 00 00 00 call fabsf - 00220 f3 0f 11 85 f4 - 01 00 00 movss DWORD PTR maxabs$8[rbp], xmm0 - -; 42 : for (int r = k + 1; r < 4; ++r) { - - 00228 8b 85 b4 01 00 - 00 mov eax, DWORD PTR k$6[rbp] - 0022e ff c0 inc eax - 00230 89 85 14 02 00 - 00 mov DWORD PTR r$9[rbp], eax - 00236 eb 0e jmp SHORT $LN10@float_kern -$LN8@float_kern: - 00238 8b 85 14 02 00 - 00 mov eax, DWORD PTR r$9[rbp] - 0023e ff c0 inc eax - 00240 89 85 14 02 00 - 00 mov DWORD PTR r$9[rbp], eax -$LN10@float_kern: - 00246 83 bd 14 02 00 - 00 04 cmp DWORD PTR r$9[rbp], 4 - 0024d 7d 5b jge SHORT $LN9@float_kern - -; 43 : float v = fabsf(a.m[k][r]); - - 0024f 48 63 85 b4 01 - 00 00 movsxd rax, DWORD PTR k$6[rbp] - 00256 48 6b c0 10 imul rax, rax, 16 - 0025a 48 8d 84 05 c0 - 00 00 00 lea rax, QWORD PTR a$[rbp+rax] - 00262 48 63 8d 14 02 - 00 00 movsxd rcx, DWORD PTR r$9[rbp] - 00269 f3 0f 10 04 88 movss xmm0, DWORD PTR [rax+rcx*4] - 0026e e8 00 00 00 00 call fabsf - 00273 f3 0f 11 85 34 - 02 00 00 movss DWORD PTR v$10[rbp], xmm0 - -; 44 : if (v > maxabs) { - - 0027b f3 0f 10 85 34 - 02 00 00 movss xmm0, DWORD PTR v$10[rbp] - 00283 0f 2f 85 f4 01 - 00 00 comiss xmm0, DWORD PTR maxabs$8[rbp] - 0028a 76 1c jbe SHORT $LN26@float_kern - -; 45 : maxabs = v; - - 0028c f3 0f 10 85 34 - 02 00 00 movss xmm0, DWORD PTR v$10[rbp] - 00294 f3 0f 11 85 f4 - 01 00 00 movss DWORD PTR maxabs$8[rbp], xmm0 - -; 46 : p = r; - - 0029c 8b 85 14 02 00 - 00 mov eax, DWORD PTR r$9[rbp] - 002a2 89 85 d4 01 00 - 00 mov DWORD PTR p$7[rbp], eax -$LN26@float_kern: - -; 47 : } -; 48 : } - - 002a8 eb 8e jmp SHORT $LN8@float_kern -$LN9@float_kern: - -; 49 : -; 50 : if (maxabs < eps) { - - 002aa f3 0f 10 85 94 - 01 00 00 movss xmm0, DWORD PTR eps$[rbp] - 002b2 0f 2f 85 f4 01 - 00 00 comiss xmm0, DWORD PTR maxabs$8[rbp] - 002b9 76 12 jbe SHORT $LN27@float_kern - -; 51 : *success = 0; - - 002bb 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR success$[rbp] - 002c2 c7 00 00 00 00 - 00 mov DWORD PTR [rax], 0 - -; 52 : /* leave outputs zeroed */ -; 53 : return; - - 002c8 e9 69 03 00 00 jmp $LN1@float_kern -$LN27@float_kern: - -; 54 : } -; 55 : -; 56 : /* Swap rows if needed */ -; 57 : if (p != k) { - - 002cd 8b 85 b4 01 00 - 00 mov eax, DWORD PTR k$6[rbp] - 002d3 39 85 d4 01 00 - 00 cmp DWORD PTR p$7[rbp], eax - 002d9 0f 84 01 01 00 - 00 je $LN28@float_kern - -; 58 : for (int c = 0; c < 4; ++c) { - - 002df c7 85 54 02 00 - 00 00 00 00 00 mov DWORD PTR c$11[rbp], 0 - 002e9 eb 0e jmp SHORT $LN13@float_kern -$LN11@float_kern: - 002eb 8b 85 54 02 00 - 00 mov eax, DWORD PTR c$11[rbp] - 002f1 ff c0 inc eax - 002f3 89 85 54 02 00 - 00 mov DWORD PTR c$11[rbp], eax -$LN13@float_kern: - 002f9 83 bd 54 02 00 - 00 04 cmp DWORD PTR c$11[rbp], 4 - 00300 0f 8d 92 00 00 - 00 jge $LN12@float_kern - -; 59 : float tmp = a.m[c][k]; - - 00306 48 63 85 54 02 - 00 00 movsxd rax, DWORD PTR c$11[rbp] - 0030d 48 6b c0 10 imul rax, rax, 16 - 00311 48 8d 84 05 c0 - 00 00 00 lea rax, QWORD PTR a$[rbp+rax] - 00319 48 63 8d b4 01 - 00 00 movsxd rcx, DWORD PTR k$6[rbp] - 00320 f3 0f 10 04 88 movss xmm0, DWORD PTR [rax+rcx*4] - 00325 f3 0f 11 85 74 - 02 00 00 movss DWORD PTR tmp$12[rbp], xmm0 - -; 60 : a.m[c][k] = a.m[c][p]; - - 0032d 48 63 85 54 02 - 00 00 movsxd rax, DWORD PTR c$11[rbp] - 00334 48 6b c0 10 imul rax, rax, 16 - 00338 48 8d 84 05 c0 - 00 00 00 lea rax, QWORD PTR a$[rbp+rax] - 00340 48 63 8d d4 01 - 00 00 movsxd rcx, DWORD PTR p$7[rbp] - 00347 48 63 95 54 02 - 00 00 movsxd rdx, DWORD PTR c$11[rbp] - 0034e 48 6b d2 10 imul rdx, rdx, 16 - 00352 48 8d 94 15 c0 - 00 00 00 lea rdx, QWORD PTR a$[rbp+rdx] - 0035a 4c 63 85 b4 01 - 00 00 movsxd r8, DWORD PTR k$6[rbp] - 00361 f3 0f 10 04 88 movss xmm0, DWORD PTR [rax+rcx*4] - 00366 f3 42 0f 11 04 - 82 movss DWORD PTR [rdx+r8*4], xmm0 - -; 61 : a.m[c][p] = tmp; - - 0036c 48 63 85 54 02 - 00 00 movsxd rax, DWORD PTR c$11[rbp] - 00373 48 6b c0 10 imul rax, rax, 16 - 00377 48 8d 84 05 c0 - 00 00 00 lea rax, QWORD PTR a$[rbp+rax] - 0037f 48 63 8d d4 01 - 00 00 movsxd rcx, DWORD PTR p$7[rbp] - 00386 f3 0f 10 85 74 - 02 00 00 movss xmm0, DWORD PTR tmp$12[rbp] - 0038e f3 0f 11 04 88 movss DWORD PTR [rax+rcx*4], xmm0 - -; 62 : } - - 00393 e9 53 ff ff ff jmp $LN11@float_kern -$LN12@float_kern: - -; 63 : unsigned char tmpi = pivot[k]; - - 00398 48 63 85 b4 01 - 00 00 movsxd rax, DWORD PTR k$6[rbp] - 0039f 48 8b 4d 68 mov rcx, QWORD PTR pivot$[rbp] - 003a3 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 003a7 88 85 94 02 00 - 00 mov BYTE PTR tmpi$13[rbp], al - -; 64 : pivot[k] = pivot[p]; - - 003ad 48 63 85 d4 01 - 00 00 movsxd rax, DWORD PTR p$7[rbp] - 003b4 48 63 8d b4 01 - 00 00 movsxd rcx, DWORD PTR k$6[rbp] - 003bb 48 8b 55 68 mov rdx, QWORD PTR pivot$[rbp] - 003bf 4c 8b 45 68 mov r8, QWORD PTR pivot$[rbp] - 003c3 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 003c8 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 65 : pivot[p] = tmpi; - - 003cb 48 63 85 d4 01 - 00 00 movsxd rax, DWORD PTR p$7[rbp] - 003d2 48 8b 4d 68 mov rcx, QWORD PTR pivot$[rbp] - 003d6 0f b6 95 94 02 - 00 00 movzx edx, BYTE PTR tmpi$13[rbp] - 003dd 88 14 01 mov BYTE PTR [rcx+rax], dl -$LN28@float_kern: - -; 66 : } -; 67 : -; 68 : float pivot_val = a.m[k][k]; - - 003e0 48 63 85 b4 01 - 00 00 movsxd rax, DWORD PTR k$6[rbp] - 003e7 48 6b c0 10 imul rax, rax, 16 - 003eb 48 8d 84 05 c0 - 00 00 00 lea rax, QWORD PTR a$[rbp+rax] - 003f3 48 63 8d b4 01 - 00 00 movsxd rcx, DWORD PTR k$6[rbp] - 003fa f3 0f 10 04 88 movss xmm0, DWORD PTR [rax+rcx*4] - 003ff f3 0f 11 85 b4 - 02 00 00 movss DWORD PTR pivot_val$14[rbp], xmm0 - -; 69 : -; 70 : /* Eliminate below pivot: store multipliers in L column k */ -; 71 : for (int r = k + 1; r < 4; ++r) { - - 00407 8b 85 b4 01 00 - 00 mov eax, DWORD PTR k$6[rbp] - 0040d ff c0 inc eax - 0040f 89 85 d4 02 00 - 00 mov DWORD PTR r$15[rbp], eax - 00415 eb 0e jmp SHORT $LN16@float_kern -$LN14@float_kern: - 00417 8b 85 d4 02 00 - 00 mov eax, DWORD PTR r$15[rbp] - 0041d ff c0 inc eax - 0041f 89 85 d4 02 00 - 00 mov DWORD PTR r$15[rbp], eax -$LN16@float_kern: - 00425 83 bd d4 02 00 - 00 04 cmp DWORD PTR r$15[rbp], 4 - 0042c 0f 8d f4 00 00 - 00 jge $LN15@float_kern - -; 72 : float factor = a.m[k][r] / pivot_val; - - 00432 48 63 85 b4 01 - 00 00 movsxd rax, DWORD PTR k$6[rbp] - 00439 48 6b c0 10 imul rax, rax, 16 - 0043d 48 8d 84 05 c0 - 00 00 00 lea rax, QWORD PTR a$[rbp+rax] - 00445 48 63 8d d4 02 - 00 00 movsxd rcx, DWORD PTR r$15[rbp] - 0044c f3 0f 10 04 88 movss xmm0, DWORD PTR [rax+rcx*4] - 00451 f3 0f 5e 85 b4 - 02 00 00 divss xmm0, DWORD PTR pivot_val$14[rbp] - 00459 f3 0f 11 85 f4 - 02 00 00 movss DWORD PTR factor$16[rbp], xmm0 - -; 73 : lower->m[k][r] = factor; - - 00461 48 63 85 b4 01 - 00 00 movsxd rax, DWORD PTR k$6[rbp] - 00468 48 6b c0 10 imul rax, rax, 16 - 0046c 48 8b 4d 28 mov rcx, QWORD PTR lower$[rbp] - 00470 48 03 c8 add rcx, rax - 00473 48 8b c1 mov rax, rcx - 00476 48 63 8d d4 02 - 00 00 movsxd rcx, DWORD PTR r$15[rbp] - 0047d f3 0f 10 85 f4 - 02 00 00 movss xmm0, DWORD PTR factor$16[rbp] - 00485 f3 0f 11 04 88 movss DWORD PTR [rax+rcx*4], xmm0 - -; 74 : for (int c = k; c < 4; ++c) { - - 0048a 8b 85 b4 01 00 - 00 mov eax, DWORD PTR k$6[rbp] - 00490 89 85 14 03 00 - 00 mov DWORD PTR c$17[rbp], eax - 00496 eb 0e jmp SHORT $LN19@float_kern -$LN17@float_kern: - 00498 8b 85 14 03 00 - 00 mov eax, DWORD PTR c$17[rbp] - 0049e ff c0 inc eax - 004a0 89 85 14 03 00 - 00 mov DWORD PTR c$17[rbp], eax -$LN19@float_kern: - 004a6 83 bd 14 03 00 - 00 04 cmp DWORD PTR c$17[rbp], 4 - 004ad 7d 72 jge SHORT $LN18@float_kern - -; 75 : a.m[c][r] -= factor * a.m[c][k]; - - 004af 48 63 85 14 03 - 00 00 movsxd rax, DWORD PTR c$17[rbp] - 004b6 48 6b c0 10 imul rax, rax, 16 - 004ba 48 8d 84 05 c0 - 00 00 00 lea rax, QWORD PTR a$[rbp+rax] - 004c2 48 63 8d d4 02 - 00 00 movsxd rcx, DWORD PTR r$15[rbp] - 004c9 48 63 95 14 03 - 00 00 movsxd rdx, DWORD PTR c$17[rbp] - 004d0 48 6b d2 10 imul rdx, rdx, 16 - 004d4 48 8d 94 15 c0 - 00 00 00 lea rdx, QWORD PTR a$[rbp+rdx] - 004dc 4c 63 85 b4 01 - 00 00 movsxd r8, DWORD PTR k$6[rbp] - 004e3 f3 0f 10 85 f4 - 02 00 00 movss xmm0, DWORD PTR factor$16[rbp] - 004eb f3 42 0f 59 04 - 82 mulss xmm0, DWORD PTR [rdx+r8*4] - 004f1 f3 0f 10 0c 88 movss xmm1, DWORD PTR [rax+rcx*4] - 004f6 f3 0f 5c c8 subss xmm1, xmm0 - 004fa 0f 28 c1 movaps xmm0, xmm1 - 004fd 48 63 85 d4 02 - 00 00 movsxd rax, DWORD PTR r$15[rbp] - 00504 48 63 8d 14 03 - 00 00 movsxd rcx, DWORD PTR c$17[rbp] - 0050b 48 6b c9 10 imul rcx, rcx, 16 - 0050f 48 8d 8c 0d c0 - 00 00 00 lea rcx, QWORD PTR a$[rbp+rcx] - 00517 f3 0f 11 04 81 movss DWORD PTR [rcx+rax*4], xmm0 - -; 76 : } - - 0051c e9 77 ff ff ff jmp $LN17@float_kern -$LN18@float_kern: - -; 77 : } - - 00521 e9 f1 fe ff ff jmp $LN14@float_kern -$LN15@float_kern: - -; 78 : -; 79 : /* Set U row k (columns k..3) and L diagonal */ -; 80 : lower->m[k][k] = 1.0f; - - 00526 48 63 85 b4 01 - 00 00 movsxd rax, DWORD PTR k$6[rbp] - 0052d 48 6b c0 10 imul rax, rax, 16 - 00531 48 8b 4d 28 mov rcx, QWORD PTR lower$[rbp] - 00535 48 03 c8 add rcx, rax - 00538 48 8b c1 mov rax, rcx - 0053b 48 63 8d b4 01 - 00 00 movsxd rcx, DWORD PTR k$6[rbp] - 00542 f3 0f 10 05 00 - 00 00 00 movss xmm0, DWORD PTR __real@3f800000 - 0054a f3 0f 11 04 88 movss DWORD PTR [rax+rcx*4], xmm0 - -; 81 : for (int c = k; c < 4; ++c) { - - 0054f 8b 85 b4 01 00 - 00 mov eax, DWORD PTR k$6[rbp] - 00555 89 85 34 03 00 - 00 mov DWORD PTR c$18[rbp], eax - 0055b eb 0e jmp SHORT $LN22@float_kern -$LN20@float_kern: - 0055d 8b 85 34 03 00 - 00 mov eax, DWORD PTR c$18[rbp] - 00563 ff c0 inc eax - 00565 89 85 34 03 00 - 00 mov DWORD PTR c$18[rbp], eax -$LN22@float_kern: - 0056b 83 bd 34 03 00 - 00 04 cmp DWORD PTR c$18[rbp], 4 - 00572 7d 43 jge SHORT $LN21@float_kern - -; 82 : upper->m[c][k] = a.m[c][k]; - - 00574 48 63 85 34 03 - 00 00 movsxd rax, DWORD PTR c$18[rbp] - 0057b 48 6b c0 10 imul rax, rax, 16 - 0057f 48 8d 84 05 c0 - 00 00 00 lea rax, QWORD PTR a$[rbp+rax] - 00587 48 63 8d b4 01 - 00 00 movsxd rcx, DWORD PTR k$6[rbp] - 0058e 48 63 95 34 03 - 00 00 movsxd rdx, DWORD PTR c$18[rbp] - 00595 48 6b d2 10 imul rdx, rdx, 16 - 00599 4c 8b 45 08 mov r8, QWORD PTR upper$[rbp] - 0059d 4c 03 c2 add r8, rdx - 005a0 49 8b d0 mov rdx, r8 - 005a3 4c 63 85 b4 01 - 00 00 movsxd r8, DWORD PTR k$6[rbp] - 005aa f3 0f 10 04 88 movss xmm0, DWORD PTR [rax+rcx*4] - 005af f3 42 0f 11 04 - 82 movss DWORD PTR [rdx+r8*4], xmm0 - -; 83 : } - - 005b5 eb a6 jmp SHORT $LN20@float_kern -$LN21@float_kern: - -; 84 : } - - 005b7 e9 19 fc ff ff jmp $LN5@float_kern -$LN6@float_kern: - -; 85 : -; 86 : /* Ensure remaining diagonal ones for L */ -; 87 : for (int d = 0; d < 4; ++d) { - - 005bc c7 85 54 03 00 - 00 00 00 00 00 mov DWORD PTR d$19[rbp], 0 - 005c6 eb 0e jmp SHORT $LN25@float_kern -$LN23@float_kern: - 005c8 8b 85 54 03 00 - 00 mov eax, DWORD PTR d$19[rbp] - 005ce ff c0 inc eax - 005d0 89 85 54 03 00 - 00 mov DWORD PTR d$19[rbp], eax -$LN25@float_kern: - 005d6 83 bd 54 03 00 - 00 04 cmp DWORD PTR d$19[rbp], 4 - 005dd 7d 57 jge SHORT $LN24@float_kern - -; 88 : if (lower->m[d][d] == 0.0f) - - 005df 48 63 85 54 03 - 00 00 movsxd rax, DWORD PTR d$19[rbp] - 005e6 48 6b c0 10 imul rax, rax, 16 - 005ea 48 8b 4d 28 mov rcx, QWORD PTR lower$[rbp] - 005ee 48 03 c8 add rcx, rax - 005f1 48 8b c1 mov rax, rcx - 005f4 48 63 8d 54 03 - 00 00 movsxd rcx, DWORD PTR d$19[rbp] - 005fb f3 0f 10 04 88 movss xmm0, DWORD PTR [rax+rcx*4] - 00600 0f 2e 05 00 00 - 00 00 ucomiss xmm0, DWORD PTR __real@00000000 - 00607 7a 2b jp SHORT $LN29@float_kern - 00609 75 29 jne SHORT $LN29@float_kern - -; 89 : lower->m[d][d] = 1.0f; - - 0060b 48 63 85 54 03 - 00 00 movsxd rax, DWORD PTR d$19[rbp] - 00612 48 6b c0 10 imul rax, rax, 16 - 00616 48 8b 4d 28 mov rcx, QWORD PTR lower$[rbp] - 0061a 48 03 c8 add rcx, rax - 0061d 48 8b c1 mov rax, rcx - 00620 48 63 8d 54 03 - 00 00 movsxd rcx, DWORD PTR d$19[rbp] - 00627 f3 0f 10 05 00 - 00 00 00 movss xmm0, DWORD PTR __real@3f800000 - 0062f f3 0f 11 04 88 movss DWORD PTR [rax+rcx*4], xmm0 -$LN29@float_kern: - -; 90 : } - - 00634 eb 92 jmp SHORT $LN23@float_kern -$LN24@float_kern: -$LN1@float_kern: - -; 91 : } - - 00636 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0063a 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:float_kernel_try_plu_sse$rtcFrameData - 00641 e8 00 00 00 00 call _RTC_CheckStackVars - 00646 48 8b 8d e8 04 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0064d 49 33 cd xor rcx, r13 - 00650 e8 00 00 00 00 call __security_check_cookie - 00655 49 8d a5 30 05 - 00 00 lea rsp, QWORD PTR [r13+1328] - 0065c 5f pop rdi - 0065d 5d pop rbp - 0065e 41 5d pop r13 - 00660 c3 ret 0 -float_kernel_try_plu_sse ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\corecrt_math.h -; COMDAT fabsf -_TEXT SEGMENT -_X$ = 224 -fabsf PROC ; COMDAT - -; 710 : { - -$LN3: - 00000 f3 0f 11 44 24 - 08 movss DWORD PTR [rsp+8], xmm0 - 00006 55 push rbp - 00007 57 push rdi - 00008 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 0000f 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00014 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1D9A7FA2_corecrt_math@h - 0001b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00020 90 npad 1 - -; 711 : return (float)fabs(_X); - - 00021 f3 0f 5a 85 e0 - 00 00 00 cvtss2sd xmm0, DWORD PTR _X$[rbp] - 00029 e8 00 00 00 00 call fabs - 0002e f2 0f 5a c0 cvtsd2ss xmm0, xmm0 - -; 712 : } - - 00032 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00039 5f pop rdi - 0003a 5d pop rbp - 0003b c3 ret 0 -fabsf ENDP -_TEXT ENDS -END diff --git a/obj/StgSharp.Native/Debug/x64/m.solve.x86.nativecodeanalysis.sarif b/obj/StgSharp.Native/Debug/x64/m.solve.x86.nativecodeanalysis.sarif deleted file mode 100644 index f4d7fd42..00000000 --- a/obj/StgSharp.Native/Debug/x64/m.solve.x86.nativecodeanalysis.sarif +++ /dev/null @@ -1,123 +0,0 @@ -{ - "version": "2.1.0", - "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", - "runs": [ - { - "results": [], - "tool": { - "driver": { - "name": "PREfast", - "fullName": "MSVC Code Analysis", - "version": "14.44.35220.0", - "informationUri": "https://aka.ms/cpp/ca" - } - }, - "invocations": [ - { - "executionSuccessful": true - } - ], - "artifacts": [ - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-src/m.solve.x86.c" - }, - "roles": [ - "analysisTarget" - ], - "hashes": { - "sha-256": "9d1606a097ad294dd51d794305f8d235e1f24f022a4cc02f7589b02648ef8274" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_target.h" - }, - "hashes": { - "sha-256": "b8c543a09db7bd21a2b409476024fa6bec6a5218d88ca036d15584ed453ceb91" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_internal.h" - }, - "hashes": { - "sha-256": "8a0f03b014c6d2740a21a13df48b1951932be000152771363cd554748facde0d" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrinsic.h" - }, - "hashes": { - "sha-256": "4da90105811ba902ad984b406834cf36cf43862047957dad5471c0b24d221ace" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/stgsharpnative.h" - }, - "hashes": { - "sha-256": "5eee6b3faf7bf2247fe44898b0fcb71794c346ae2f0b58953e1632a49c1b6c4e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/stbi/stb_image.h" - }, - "hashes": { - "sha-256": "c45e3ef56a7d946654740f02e25fcb99a819861155ad1173349a289f2a000ce2" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/gl.h" - }, - "hashes": { - "sha-256": "c9d0960c919f9ef4cfa6449f2b0c00f2ad8286b420e01ee7ec34b40c618392fc" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/khrplatform.h" - }, - "hashes": { - "sha-256": "f5b69ed6a7bef6651526abb2d1263811d59acdba7a29368bb9be1a0f9e80160f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/wgl.h" - }, - "hashes": { - "sha-256": "86d6c58acb0a92b35ce8d94d6817fcec3f73d9e147e8621f468f143db1bbd81f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/glfw/glfw3.h" - }, - "hashes": { - "sha-256": "85c584857dddd780c131940ed69cd516c2b60d61664df9cb254710c3602c1008" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/glfw_function.h" - }, - "hashes": { - "sha-256": "4baa73f465e3e347fc0ad0ff666a6db2e83e749acd770f4bee02c12a7b9ec36e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_matkernel.h" - }, - "hashes": { - "sha-256": "19f0030c441ae5c4cec0b446b64daa10448fafd44d4fd6dd2232b84f5ed9aad1" - } - } - ] - } - ] -} \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/m.solve.x86.nativecodeanalysis.xml b/obj/StgSharp.Native/Debug/x64/m.solve.x86.nativecodeanalysis.xml deleted file mode 100644 index dcdf0885..00000000 --- a/obj/StgSharp.Native/Debug/x64/m.solve.x86.nativecodeanalysis.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/m.solve.x86.obj b/obj/StgSharp.Native/Debug/x64/m.solve.x86.obj deleted file mode 100644 index 7fa72601..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/m.solve.x86.obj and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/m.solve.x86.sbr b/obj/StgSharp.Native/Debug/x64/m.solve.x86.sbr deleted file mode 100644 index f6c00dbb..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/m.solve.x86.sbr and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/s.factorial.x86.cod b/obj/StgSharp.Native/Debug/x64/s.factorial.x86.cod deleted file mode 100644 index 2f2fbd0d..00000000 --- a/obj/StgSharp.Native/Debug/x64/s.factorial.x86.cod +++ /dev/null @@ -1,391 +0,0 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.44.35220.0 - -include listing.inc - -INCLUDELIB MSVCRTD -INCLUDELIB OLDNAMES - -PUBLIC facIncrement -PUBLIC facBase -_DATA SEGMENT -COMM infolog:BYTE:0200H -_DATA ENDS -msvcjmc SEGMENT -__5C8CA4D3_mmintrin@h DB 01H -__8C83BECC_concurrencysal@h DB 01H -__608E3340_sal@h DB 01H -__FB67E29A_vadefs@h DB 01H -__1D1B619C_vcruntime@h DB 01H -__735960E1_corecrt@h DB 01H -__211DB995_corecrt_malloc@h DB 01H -__7CD62D9E_malloc@h DB 01H -__9DCE0DC8_xmmintrin@h DB 01H -__4C2AD0C7_winpackagefamily@h DB 01H -__9DED9ED1_winapifamily@h DB 01H -__12FEDF4E_sdkddkver@h DB 01H -__9BAEE128_excpt@h DB 01H -__B7B53233_stdarg@h DB 01H -__6B04FCB3_specstrings_undef@h DB 01H -__F4027AF7_specstrings_strict@h DB 01H -__B90340D4_sdv_driverspecs@h DB 01H -__BFFF5AD3_driverspecs@h DB 01H -__32847078_specstrings@h DB 01H -__108B2620_corecrt_wctype@h DB 01H -__6CD6613D_ctype@h DB 01H -__30902A1F_kernelspecs@h DB 01H -__376FD5CA_basetsd@h DB 01H -__13DE2371_errno@h DB 01H -__8C6AE390_vcruntime_string@h DB 01H -__8ACB2152_corecrt_memcpy_s@h DB 01H -__EA6C9D17_corecrt_memory@h DB 01H -__0DF2AF52_corecrt_wstring@h DB 01H -__6E889ECC_string@h DB 01H -__9BEDF4DE_guiddef@h DB 01H -__51BFD2FE_pshpack4@h DB 01H -__31652CEA_poppack@h DB 01H -__5532AE4C_pshpack2@h DB 01H -__58A52B9A_pshpack8@h DB 01H -__57741015_pshpack1@h DB 01H -__CDE68C90_apiset@h DB 01H -__0BF06E8D_ktmtypes@h DB 01H -__40C200C0_winnt@h DB 01H -__9336F789_minwindef@h DB 01H -__55136115_windef@h DB 01H -__32205BF0_apisetcconv@h DB 01H -__B48FDEA0_minwinbase@h DB 01H -__3551B028_apiquery2@h DB 01H -__65BE04AA_processenv@h DB 01H -__4767CA46_fileapi@h DB 01H -__282E6C4B_fileapifromapp@h DB 01H -__393AF12C_debugapi@h DB 01H -__EBC502B8_utilapiset@h DB 01H -__1EAD8C69_handleapi@h DB 01H -__D8EF9B29_errhandlingapi@h DB 01H -__97FC1204_fibersapi@h DB 01H -__27448220_namedpipeapi@h DB 01H -__6EA33B2A_profileapi@h DB 01H -__EAC6F673_heapapi@h DB 01H -__D64EEA5A_ioapiset@h DB 01H -__144BD4B6_synchapi@h DB 01H -__03B1C640_interlockedapi@h DB 01H -__DC64CB38_processthreadsapi@h DB 01H -__D719B518_sysinfoapi@h DB 01H -__410385B1_memoryapi@h DB 01H -__C1AD45EF_enclaveapi@h DB 01H -__F4C3AA32_threadpoollegacyapiset@h DB 01H -__AC5A7A9F_threadpoolapiset@h DB 01H -__F5254B21_jobapi@h DB 01H -__BCEA6EE8_jobapi2@h DB 01H -__D18ACE72_wow64apiset@h DB 01H -__669B0D4A_libloaderapi@h DB 01H -__645F7034_securitybaseapi@h DB 01H -__67E58557_namespaceapi@h DB 01H -__599D9D3A_systemtopologyapi@h DB 01H -__2337E373_processtopologyapi@h DB 01H -__02BFF239_securityappcontainer@h DB 01H -__9C196272_realtimeapiset@h DB 01H -__5AB313A4_winerror@h DB 01H -__B7E7187B_timezoneapi@h DB 01H -__6DE9EB6F_winbase@h DB 01H -__56B2AFF2_wingdi@h DB 01H -__BA1161A9_tvout@h DB 01H -__0501A018_winuser@h DB 01H -__EF12FA99_datetimeapi@h DB 01H -__8FA7C3CA_winnls@h DB 01H -__390F0C47_stringapiset@h DB 01H -__28605B0A_wincontypes@h DB 01H -__BFBDE86D_consoleapi@h DB 01H -__C3CAFBF0_consoleapi2@h DB 01H -__C20891C7_consoleapi3@h DB 01H -__717C98B6_wincon@h DB 01H -__2884C177_verrsrc@h DB 01H -__A3FD3A34_winver@h DB 01H -__6F8AD9F1_reason@h DB 01H -__4C90FD6F_winreg@h DB 01H -__68AFEBAD_wnnc@h DB 01H -__5A7AB086_winnetwk@h DB 01H -__2FE8A10C_stralign@h DB 01H -__34558472_winsvc@h DB 01H -__058845F1_mcx@h DB 01H -__7F16006B_ime_cmodes@h DB 01H -__0A3AF599_imm@h DB 01H -__9349FE86_windows@h DB 01H -__639A050C_sn_internal@h DB 01H -__836A8CFC_stdint@h DB 01H -__714FE6D7_sn_target@h DB 01H -__60B45B40_corecrt_stdio_config@h DB 01H -__CFA3741E_corecrt_wstdio@h DB 01H -__B3FE3303_stdio@h DB 01H -__955456CD_stddef@h DB 01H -__99AED4FB_corecrt_search@h DB 01H -__8B813BF6_corecrt_wstdlib@h DB 01H -__3D1CA2C3_limits@h DB 01H -__E8FB0A68_stdlib@h DB 01H -__F562FA57_stb_image@h DB 01H -__C95DC661_khrplatform@h DB 01H -__6C577136_gl@h DB 01H -__EE638A2C_wgl@h DB 01H -__8EF9E35C_glfw3@h DB 01H -__F8AC8404_emmintrin@h DB 01H -__270DEC8D_pmmintrin@h DB 01H -__97D49F0F_tmmintrin@h DB 01H -__BEEF8A8C_smmintrin@h DB 01H -__DB8D0340_nmmintrin@h DB 01H -__0E36F90E_wmmintrin@h DB 01H -__C5A2B409_zmmintrin@h DB 01H -__F2B616C3_immintrin@h DB 01H -__9FB25DBE_assert@h DB 01H -__4E664295_glfw_function@h DB 01H -__64C0EF11_StgSharpNative@h DB 01H -__F49407C4_sn_intrinsic@matkernel@h DB 01H -__47E843D2_intrin0@inl@h DB 01H -__130964FF_setjmp@h DB 01H -__4875F786_ammintrin@h DB 01H -__353FD888_intrin@h DB 01H -__5FE1E9E3_isa_availability@h DB 01H -__AA840D82_sn_intrinsic@h DB 01H -__25E8D284_s@factorial@x86@c DB 01H -msvcjmc ENDS -_DATA SEGMENT -facIncrement DB 04H - DB 04H - DB 04H - DB 04H - ORG $+12 -facBase DB 01H - DB 02H - DB 03H - DB 04H - ORG $+12 -_DATA ENDS -PUBLIC factorial_simd_sse -PUBLIC __JustMyCode_Default -EXTRN _RTC_CheckStackVars:PROC -EXTRN _RTC_InitBase:PROC -EXTRN _RTC_Shutdown:PROC -EXTRN __CheckForDebuggerJustMyCode:PROC -; COMDAT pdata -pdata SEGMENT -$pdata$factorial_simd_sse DD imagerel $LN9 - DD imagerel $LN9+377 - DD imagerel $unwind$factorial_simd_sse -pdata ENDS -; COMDAT rtc$TMZ -rtc$TMZ SEGMENT -_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown -rtc$TMZ ENDS -; COMDAT rtc$IMZ -rtc$IMZ SEGMENT -_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase -rtc$IMZ ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$factorial_simd_sse DD 025052a01H - DD 010d2312H - DD 07006003dH - DD 05005H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -factorial_simd_sse$rtcName$0 DB 062H - DB 061H - DB 073H - DB 065H - DB 052H - DB 065H - DB 073H - DB 075H - DB 06cH - DB 074H - DB 00H - ORG $+5 -factorial_simd_sse$rtcVarDesc DD 030H - DD 010H - DQ FLAT:factorial_simd_sse$rtcName$0 - ORG $+48 -factorial_simd_sse$rtcFrameData DD 01H - DD 00H - DQ FLAT:factorial_simd_sse$rtcVarDesc -CONST ENDS -; Function compile flags: /Odt -; COMDAT __JustMyCode_Default -_TEXT SEGMENT -__JustMyCode_Default PROC ; COMDAT - 00000 c2 00 00 ret 0 -__JustMyCode_Default ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\s.factorial.x86.c -; COMDAT factorial_simd_sse -_TEXT SEGMENT -baseResult$ = 16 -facBaseLocal$ = 64 -cycle$ = 100 -rest$ = 132 -i$4 = 168 -result$ = 200 -i$5 = 232 -n$ = 480 -factorial_simd_sse PROC ; COMDAT - -; 12 : { - -$LN9: - 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00004 55 push rbp - 00005 57 push rdi - 00006 48 81 ec e8 01 - 00 00 sub rsp, 488 ; 000001e8H - 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00012 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00017 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00021 f3 ab rep stosd - 00023 8b 8c 24 08 02 - 00 00 mov ecx, DWORD PTR [rsp+520] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__25E8D284_s@factorial@x86@c - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - -; 13 : __m128i baseResult = facBase; - - 00037 66 0f 6f 05 00 - 00 00 00 movdqa xmm0, XMMWORD PTR facBase - 0003f 66 0f 7f 45 10 movdqa XMMWORD PTR baseResult$[rbp], xmm0 - -; 14 : __m128i facBaseLocal = facBase; - - 00044 66 0f 6f 05 00 - 00 00 00 movdqa xmm0, XMMWORD PTR facBase - 0004c 66 0f 7f 45 40 movdqa XMMWORD PTR facBaseLocal$[rbp], xmm0 - -; 15 : const int cycle = (n - 3) >> 2; - - 00051 8b 85 e0 01 00 - 00 mov eax, DWORD PTR n$[rbp] - 00057 83 e8 03 sub eax, 3 - 0005a c1 f8 02 sar eax, 2 - 0005d 89 45 64 mov DWORD PTR cycle$[rbp], eax - -; 16 : const uint32_t rest = (cycle << 2) + 1; - - 00060 8b 45 64 mov eax, DWORD PTR cycle$[rbp] - 00063 8d 04 85 01 00 - 00 00 lea eax, DWORD PTR [rax*4+1] - 0006a 89 85 84 00 00 - 00 mov DWORD PTR rest$[rbp], eax - -; 17 : for (size_t i = 0; i < cycle; i++) { - - 00070 48 c7 85 a8 00 - 00 00 00 00 00 - 00 mov QWORD PTR i$4[rbp], 0 - 0007b eb 11 jmp SHORT $LN4@factorial_ -$LN2@factorial_: - 0007d 48 8b 85 a8 00 - 00 00 mov rax, QWORD PTR i$4[rbp] - 00084 48 ff c0 inc rax - 00087 48 89 85 a8 00 - 00 00 mov QWORD PTR i$4[rbp], rax -$LN4@factorial_: - 0008e 48 63 45 64 movsxd rax, DWORD PTR cycle$[rbp] - 00092 48 39 85 a8 00 - 00 00 cmp QWORD PTR i$4[rbp], rax - 00099 73 24 jae SHORT $LN3@factorial_ - -; 18 : facBaseLocal = _mm_add_epi32(facBaseLocal, facIncrement); - - 0009b 66 0f 6f 45 40 movdqa xmm0, XMMWORD PTR facBaseLocal$[rbp] - 000a0 66 0f fe 05 00 - 00 00 00 paddd xmm0, XMMWORD PTR facIncrement - 000a8 66 0f 7f 45 40 movdqa XMMWORD PTR facBaseLocal$[rbp], xmm0 - -; 19 : baseResult = _mm_mullo_epi32(baseResult, facBaseLocal); - - 000ad 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR baseResult$[rbp] - 000b2 66 0f 38 40 45 - 40 pmulld xmm0, XMMWORD PTR facBaseLocal$[rbp] - 000b8 66 0f 7f 45 10 movdqa XMMWORD PTR baseResult$[rbp], xmm0 - -; 20 : } - - 000bd eb be jmp SHORT $LN2@factorial_ -$LN3@factorial_: - -; 21 : uint64_t result = (uint64_t)baseResult.m128i_i32[0] * (uint64_t)baseResult.m128i_i32[1] * - - 000bf b8 04 00 00 00 mov eax, 4 - 000c4 48 6b c0 00 imul rax, rax, 0 - 000c8 48 63 44 05 10 movsxd rax, DWORD PTR baseResult$[rbp+rax] - 000cd b9 04 00 00 00 mov ecx, 4 - 000d2 48 6b c9 01 imul rcx, rcx, 1 - 000d6 48 63 4c 0d 10 movsxd rcx, DWORD PTR baseResult$[rbp+rcx] - 000db 48 0f af c1 imul rax, rcx - 000df b9 04 00 00 00 mov ecx, 4 - 000e4 48 6b c9 02 imul rcx, rcx, 2 - 000e8 48 63 4c 0d 10 movsxd rcx, DWORD PTR baseResult$[rbp+rcx] - 000ed 48 0f af c1 imul rax, rcx - 000f1 b9 04 00 00 00 mov ecx, 4 - 000f6 48 6b c9 03 imul rcx, rcx, 3 - 000fa 48 63 4c 0d 10 movsxd rcx, DWORD PTR baseResult$[rbp+rcx] - 000ff 48 0f af c1 imul rax, rcx - 00103 48 89 85 c8 00 - 00 00 mov QWORD PTR result$[rbp], rax - -; 22 : (uint64_t)baseResult.m128i_i32[2] * (uint64_t)baseResult.m128i_i32[3]; -; 23 : for (uint64_t i = rest; i < n; i++) { - - 0010a 8b 85 84 00 00 - 00 mov eax, DWORD PTR rest$[rbp] - 00110 48 89 85 e8 00 - 00 00 mov QWORD PTR i$5[rbp], rax - 00117 eb 11 jmp SHORT $LN7@factorial_ -$LN5@factorial_: - 00119 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR i$5[rbp] - 00120 48 ff c0 inc rax - 00123 48 89 85 e8 00 - 00 00 mov QWORD PTR i$5[rbp], rax -$LN7@factorial_: - 0012a 48 63 85 e0 01 - 00 00 movsxd rax, DWORD PTR n$[rbp] - 00131 48 39 85 e8 00 - 00 00 cmp QWORD PTR i$5[rbp], rax - 00138 73 18 jae SHORT $LN6@factorial_ - -; 24 : result *= i; - - 0013a 48 8b 85 c8 00 - 00 00 mov rax, QWORD PTR result$[rbp] - 00141 48 0f af 85 e8 - 00 00 00 imul rax, QWORD PTR i$5[rbp] - 00149 48 89 85 c8 00 - 00 00 mov QWORD PTR result$[rbp], rax - -; 25 : } - - 00150 eb c7 jmp SHORT $LN5@factorial_ -$LN6@factorial_: - -; 26 : return result; - - 00152 48 8b 85 c8 00 - 00 00 mov rax, QWORD PTR result$[rbp] - -; 27 : } - - 00159 48 8b f8 mov rdi, rax - 0015c 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00160 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:factorial_simd_sse$rtcFrameData - 00167 e8 00 00 00 00 call _RTC_CheckStackVars - 0016c 48 8b c7 mov rax, rdi - 0016f 48 8d a5 c8 01 - 00 00 lea rsp, QWORD PTR [rbp+456] - 00176 5f pop rdi - 00177 5d pop rbp - 00178 c3 ret 0 -factorial_simd_sse ENDP -_TEXT ENDS -END diff --git a/obj/StgSharp.Native/Debug/x64/s.factorial.x86.nativecodeanalysis.sarif b/obj/StgSharp.Native/Debug/x64/s.factorial.x86.nativecodeanalysis.sarif deleted file mode 100644 index 9cc11a54..00000000 --- a/obj/StgSharp.Native/Debug/x64/s.factorial.x86.nativecodeanalysis.sarif +++ /dev/null @@ -1,123 +0,0 @@ -{ - "version": "2.1.0", - "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", - "runs": [ - { - "results": [], - "tool": { - "driver": { - "name": "PREfast", - "fullName": "MSVC Code Analysis", - "version": "14.44.35220.0", - "informationUri": "https://aka.ms/cpp/ca" - } - }, - "invocations": [ - { - "executionSuccessful": true - } - ], - "artifacts": [ - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-src/s.factorial.x86.c" - }, - "roles": [ - "analysisTarget" - ], - "hashes": { - "sha-256": "4f98c39b091ae9de0aedda2e7b832d7bcc63c2cfa4bbcc4e68abde1b642edba8" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_target.h" - }, - "hashes": { - "sha-256": "b8c543a09db7bd21a2b409476024fa6bec6a5218d88ca036d15584ed453ceb91" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_internal.h" - }, - "hashes": { - "sha-256": "7430f5e8582c672b79e266834c290e4d426ce44b7bd3b7e5534f201a48ff6df9" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrinsic.h" - }, - "hashes": { - "sha-256": "94ca202415b5a633ad79580db19ae2b7def151b2e3f5d2dcaa341cfe934a5b0c" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/stgsharpnative.h" - }, - "hashes": { - "sha-256": "5eee6b3faf7bf2247fe44898b0fcb71794c346ae2f0b58953e1632a49c1b6c4e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/stbi/stb_image.h" - }, - "hashes": { - "sha-256": "c45e3ef56a7d946654740f02e25fcb99a819861155ad1173349a289f2a000ce2" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/gl.h" - }, - "hashes": { - "sha-256": "c9d0960c919f9ef4cfa6449f2b0c00f2ad8286b420e01ee7ec34b40c618392fc" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/khrplatform.h" - }, - "hashes": { - "sha-256": "f5b69ed6a7bef6651526abb2d1263811d59acdba7a29368bb9be1a0f9e80160f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/wgl.h" - }, - "hashes": { - "sha-256": "86d6c58acb0a92b35ce8d94d6817fcec3f73d9e147e8621f468f143db1bbd81f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/glfw/glfw3.h" - }, - "hashes": { - "sha-256": "85c584857dddd780c131940ed69cd516c2b60d61664df9cb254710c3602c1008" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/glfw_function.h" - }, - "hashes": { - "sha-256": "4baa73f465e3e347fc0ad0ff666a6db2e83e749acd770f4bee02c12a7b9ec36e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrinsic.matkernel.h" - }, - "hashes": { - "sha-256": "19f0030c441ae5c4cec0b446b64daa10448fafd44d4fd6dd2232b84f5ed9aad1" - } - } - ] - } - ] -} \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/s.factorial.x86.nativecodeanalysis.xml b/obj/StgSharp.Native/Debug/x64/s.factorial.x86.nativecodeanalysis.xml deleted file mode 100644 index dcdf0885..00000000 --- a/obj/StgSharp.Native/Debug/x64/s.factorial.x86.nativecodeanalysis.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/s.factorial.x86.obj b/obj/StgSharp.Native/Debug/x64/s.factorial.x86.obj deleted file mode 100644 index bd807d20..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/s.factorial.x86.obj and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/s.factorial.x86.sbr b/obj/StgSharp.Native/Debug/x64/s.factorial.x86.sbr deleted file mode 100644 index 69d3f94e..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/s.factorial.x86.sbr and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/s.hash.x86.cod b/obj/StgSharp.Native/Debug/x64/s.hash.x86.cod deleted file mode 100644 index 8a23a938..00000000 --- a/obj/StgSharp.Native/Debug/x64/s.hash.x86.cod +++ /dev/null @@ -1,534 +0,0 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.44.35220.0 - -include listing.inc - -INCLUDELIB MSVCRTD -INCLUDELIB OLDNAMES - -_DATA SEGMENT -COMM infolog:BYTE:0200H -_DATA ENDS -msvcjmc SEGMENT -__5C8CA4D3_mmintrin@h DB 01H -__8C83BECC_concurrencysal@h DB 01H -__608E3340_sal@h DB 01H -__FB67E29A_vadefs@h DB 01H -__1D1B619C_vcruntime@h DB 01H -__735960E1_corecrt@h DB 01H -__211DB995_corecrt_malloc@h DB 01H -__7CD62D9E_malloc@h DB 01H -__9DCE0DC8_xmmintrin@h DB 01H -__4C2AD0C7_winpackagefamily@h DB 01H -__9DED9ED1_winapifamily@h DB 01H -__12FEDF4E_sdkddkver@h DB 01H -__9BAEE128_excpt@h DB 01H -__B7B53233_stdarg@h DB 01H -__6B04FCB3_specstrings_undef@h DB 01H -__F4027AF7_specstrings_strict@h DB 01H -__B90340D4_sdv_driverspecs@h DB 01H -__BFFF5AD3_driverspecs@h DB 01H -__32847078_specstrings@h DB 01H -__108B2620_corecrt_wctype@h DB 01H -__6CD6613D_ctype@h DB 01H -__30902A1F_kernelspecs@h DB 01H -__376FD5CA_basetsd@h DB 01H -__13DE2371_errno@h DB 01H -__8C6AE390_vcruntime_string@h DB 01H -__8ACB2152_corecrt_memcpy_s@h DB 01H -__EA6C9D17_corecrt_memory@h DB 01H -__0DF2AF52_corecrt_wstring@h DB 01H -__6E889ECC_string@h DB 01H -__9BEDF4DE_guiddef@h DB 01H -__51BFD2FE_pshpack4@h DB 01H -__31652CEA_poppack@h DB 01H -__5532AE4C_pshpack2@h DB 01H -__58A52B9A_pshpack8@h DB 01H -__57741015_pshpack1@h DB 01H -__CDE68C90_apiset@h DB 01H -__0BF06E8D_ktmtypes@h DB 01H -__40C200C0_winnt@h DB 01H -__9336F789_minwindef@h DB 01H -__55136115_windef@h DB 01H -__32205BF0_apisetcconv@h DB 01H -__B48FDEA0_minwinbase@h DB 01H -__3551B028_apiquery2@h DB 01H -__65BE04AA_processenv@h DB 01H -__4767CA46_fileapi@h DB 01H -__282E6C4B_fileapifromapp@h DB 01H -__393AF12C_debugapi@h DB 01H -__EBC502B8_utilapiset@h DB 01H -__1EAD8C69_handleapi@h DB 01H -__D8EF9B29_errhandlingapi@h DB 01H -__97FC1204_fibersapi@h DB 01H -__27448220_namedpipeapi@h DB 01H -__6EA33B2A_profileapi@h DB 01H -__EAC6F673_heapapi@h DB 01H -__D64EEA5A_ioapiset@h DB 01H -__144BD4B6_synchapi@h DB 01H -__03B1C640_interlockedapi@h DB 01H -__DC64CB38_processthreadsapi@h DB 01H -__D719B518_sysinfoapi@h DB 01H -__410385B1_memoryapi@h DB 01H -__C1AD45EF_enclaveapi@h DB 01H -__F4C3AA32_threadpoollegacyapiset@h DB 01H -__AC5A7A9F_threadpoolapiset@h DB 01H -__F5254B21_jobapi@h DB 01H -__BCEA6EE8_jobapi2@h DB 01H -__D18ACE72_wow64apiset@h DB 01H -__669B0D4A_libloaderapi@h DB 01H -__645F7034_securitybaseapi@h DB 01H -__67E58557_namespaceapi@h DB 01H -__599D9D3A_systemtopologyapi@h DB 01H -__2337E373_processtopologyapi@h DB 01H -__02BFF239_securityappcontainer@h DB 01H -__9C196272_realtimeapiset@h DB 01H -__5AB313A4_winerror@h DB 01H -__B7E7187B_timezoneapi@h DB 01H -__6DE9EB6F_winbase@h DB 01H -__56B2AFF2_wingdi@h DB 01H -__BA1161A9_tvout@h DB 01H -__0501A018_winuser@h DB 01H -__EF12FA99_datetimeapi@h DB 01H -__8FA7C3CA_winnls@h DB 01H -__390F0C47_stringapiset@h DB 01H -__28605B0A_wincontypes@h DB 01H -__BFBDE86D_consoleapi@h DB 01H -__C3CAFBF0_consoleapi2@h DB 01H -__C20891C7_consoleapi3@h DB 01H -__717C98B6_wincon@h DB 01H -__2884C177_verrsrc@h DB 01H -__A3FD3A34_winver@h DB 01H -__6F8AD9F1_reason@h DB 01H -__4C90FD6F_winreg@h DB 01H -__68AFEBAD_wnnc@h DB 01H -__5A7AB086_winnetwk@h DB 01H -__2FE8A10C_stralign@h DB 01H -__34558472_winsvc@h DB 01H -__058845F1_mcx@h DB 01H -__7F16006B_ime_cmodes@h DB 01H -__0A3AF599_imm@h DB 01H -__9349FE86_windows@h DB 01H -__639A050C_sn_internal@h DB 01H -__836A8CFC_stdint@h DB 01H -__714FE6D7_sn_target@h DB 01H -__60B45B40_corecrt_stdio_config@h DB 01H -__CFA3741E_corecrt_wstdio@h DB 01H -__B3FE3303_stdio@h DB 01H -__955456CD_stddef@h DB 01H -__99AED4FB_corecrt_search@h DB 01H -__8B813BF6_corecrt_wstdlib@h DB 01H -__3D1CA2C3_limits@h DB 01H -__E8FB0A68_stdlib@h DB 01H -__F562FA57_stb_image@h DB 01H -__C95DC661_khrplatform@h DB 01H -__6C577136_gl@h DB 01H -__EE638A2C_wgl@h DB 01H -__8EF9E35C_glfw3@h DB 01H -__F8AC8404_emmintrin@h DB 01H -__270DEC8D_pmmintrin@h DB 01H -__97D49F0F_tmmintrin@h DB 01H -__BEEF8A8C_smmintrin@h DB 01H -__DB8D0340_nmmintrin@h DB 01H -__0E36F90E_wmmintrin@h DB 01H -__C5A2B409_zmmintrin@h DB 01H -__F2B616C3_immintrin@h DB 01H -__9FB25DBE_assert@h DB 01H -__4E664295_glfw_function@h DB 01H -__64C0EF11_StgSharpNative@h DB 01H -__F49407C4_sn_intrinsic@matkernel@h DB 01H -__47E843D2_intrin0@inl@h DB 01H -__130964FF_setjmp@h DB 01H -__4875F786_ammintrin@h DB 01H -__353FD888_intrin@h DB 01H -__5FE1E9E3_isa_availability@h DB 01H -__AA840D82_sn_intrinsic@h DB 01H -__47ACF5AF_s@hash@x86@c DB 01H -msvcjmc ENDS -PUBLIC city_hash_simplify_sse -PUBLIC __JustMyCode_Default -EXTRN _RTC_InitBase:PROC -EXTRN _RTC_Shutdown:PROC -EXTRN __CheckForDebuggerJustMyCode:PROC -; COMDAT pdata -pdata SEGMENT -$pdata$city_hash_simplify_sse DD imagerel $LN25 - DD imagerel $LN25+632 - DD imagerel $unwind$city_hash_simplify_sse -pdata ENDS -; COMDAT rtc$TMZ -rtc$TMZ SEGMENT -_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown -rtc$TMZ ENDS -; COMDAT rtc$IMZ -rtc$IMZ SEGMENT -_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase -rtc$IMZ ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$city_hash_simplify_sse DD 025051701H - DD 01122317H - DD 0700b0043H - DD 0500aH -xdata ENDS -; Function compile flags: /Odt -; COMDAT __JustMyCode_Default -_TEXT SEGMENT -__JustMyCode_Default PROC ; COMDAT - 00000 c2 00 00 ret 0 -__JustMyCode_Default ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\s.hash.x86.c -; COMDAT city_hash_simplify_sse -_TEXT SEGMENT -hash$ = 4 -size$ = 36 -end$ = 72 -ptr$ = 104 -last$1 = 136 -last_128$2 = 168 -last_32$3 = 200 -hash64$4 = 232 -vec$5 = 272 -str$ = 528 -length$ = 536 -city_hash_simplify_sse PROC ; COMDAT - -; 9 : { - -$LN25: - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec 18 02 - 00 00 sub rsp, 536 ; 00000218H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__47ACF5AF_s@hash@x86@c - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00023 90 npad 1 - -; 10 : uint32_t hash = length, size = length << 1; - - 00024 8b 85 18 02 00 - 00 mov eax, DWORD PTR length$[rbp] - 0002a 89 45 04 mov DWORD PTR hash$[rbp], eax - 0002d 8b 85 18 02 00 - 00 mov eax, DWORD PTR length$[rbp] - 00033 d1 e0 shl eax, 1 - 00035 89 45 24 mov DWORD PTR size$[rbp], eax - -; 11 : byte *end = str + size, *ptr = str; - - 00038 8b 45 24 mov eax, DWORD PTR size$[rbp] - 0003b 48 8b 8d 10 02 - 00 00 mov rcx, QWORD PTR str$[rbp] - 00042 48 03 c8 add rcx, rax - 00045 48 8b c1 mov rax, rcx - 00048 48 89 45 48 mov QWORD PTR end$[rbp], rax - 0004c 48 8b 85 10 02 - 00 00 mov rax, QWORD PTR str$[rbp] - 00053 48 89 45 68 mov QWORD PTR ptr$[rbp], rax - -; 12 : -; 13 : if (size < 4) { - - 00057 83 7d 24 04 cmp DWORD PTR size$[rbp], 4 - 0005b 73 35 jae SHORT $LN20@city_hash_ - -; 14 : for (; ptr < end; ptr += 2) { - - 0005d eb 0c jmp SHORT $LN4@city_hash_ -$LN2@city_hash_: - 0005f 48 8b 45 68 mov rax, QWORD PTR ptr$[rbp] - 00063 48 83 c0 02 add rax, 2 - 00067 48 89 45 68 mov QWORD PTR ptr$[rbp], rax -$LN4@city_hash_: - 0006b 48 8b 45 48 mov rax, QWORD PTR end$[rbp] - 0006f 48 39 45 68 cmp QWORD PTR ptr$[rbp], rax - 00073 73 18 jae SHORT $LN3@city_hash_ - -; 15 : hash = _mm_crc32_u16(hash, *ptr); - - 00075 48 8b 45 68 mov rax, QWORD PTR ptr$[rbp] - 00079 66 0f be 00 movsx ax, BYTE PTR [rax] - 0007d 8b 4d 04 mov ecx, DWORD PTR hash$[rbp] - 00080 66 f2 0f 38 f1 - c8 crc32 ecx, ax - 00086 8b c1 mov eax, ecx - 00088 89 45 04 mov DWORD PTR hash$[rbp], eax - -; 16 : } - - 0008b eb d2 jmp SHORT $LN2@city_hash_ -$LN3@city_hash_: - -; 17 : } else if (size < 16) { - - 0008d e9 95 01 00 00 jmp $LN21@city_hash_ -$LN20@city_hash_: - 00092 83 7d 24 10 cmp DWORD PTR size$[rbp], 16 - 00096 73 6e jae SHORT $LN22@city_hash_ - -; 18 : byte *last = end - 4; - - 00098 48 8b 45 48 mov rax, QWORD PTR end$[rbp] - 0009c 48 83 e8 04 sub rax, 4 - 000a0 48 89 85 88 00 - 00 00 mov QWORD PTR last$1[rbp], rax - -; 19 : for (; ptr < end; ptr += 4) { - - 000a7 eb 0c jmp SHORT $LN7@city_hash_ -$LN5@city_hash_: - 000a9 48 8b 45 68 mov rax, QWORD PTR ptr$[rbp] - 000ad 48 83 c0 04 add rax, 4 - 000b1 48 89 45 68 mov QWORD PTR ptr$[rbp], rax -$LN7@city_hash_: - 000b5 48 8b 45 48 mov rax, QWORD PTR end$[rbp] - 000b9 48 39 45 68 cmp QWORD PTR ptr$[rbp], rax - 000bd 73 13 jae SHORT $LN6@city_hash_ - -; 20 : hash = _mm_crc32_u32(hash, *(uint32_t *)ptr); - - 000bf 48 8b 45 68 mov rax, QWORD PTR ptr$[rbp] - 000c3 8b 4d 04 mov ecx, DWORD PTR hash$[rbp] - 000c6 f2 0f 38 f1 08 crc32 ecx, DWORD PTR [rax] - 000cb 8b c1 mov eax, ecx - 000cd 89 45 04 mov DWORD PTR hash$[rbp], eax - -; 21 : } - - 000d0 eb d7 jmp SHORT $LN5@city_hash_ -$LN6@city_hash_: - -; 22 : for (; ptr < end; ptr++) { - - 000d2 eb 0b jmp SHORT $LN10@city_hash_ -$LN8@city_hash_: - 000d4 48 8b 45 68 mov rax, QWORD PTR ptr$[rbp] - 000d8 48 ff c0 inc rax - 000db 48 89 45 68 mov QWORD PTR ptr$[rbp], rax -$LN10@city_hash_: - 000df 48 8b 45 48 mov rax, QWORD PTR end$[rbp] - 000e3 48 39 45 68 cmp QWORD PTR ptr$[rbp], rax - 000e7 73 18 jae SHORT $LN9@city_hash_ - -; 23 : hash = _mm_crc32_u16(hash, *ptr); - - 000e9 48 8b 45 68 mov rax, QWORD PTR ptr$[rbp] - 000ed 66 0f be 00 movsx ax, BYTE PTR [rax] - 000f1 8b 4d 04 mov ecx, DWORD PTR hash$[rbp] - 000f4 66 f2 0f 38 f1 - c8 crc32 ecx, ax - 000fa 8b c1 mov eax, ecx - 000fc 89 45 04 mov DWORD PTR hash$[rbp], eax - -; 24 : } - - 000ff eb d3 jmp SHORT $LN8@city_hash_ -$LN9@city_hash_: - -; 25 : } else { - - 00101 e9 21 01 00 00 jmp $LN23@city_hash_ -$LN22@city_hash_: - -; 26 : byte *last_128 = end - 16; - - 00106 48 8b 45 48 mov rax, QWORD PTR end$[rbp] - 0010a 48 83 e8 10 sub rax, 16 - 0010e 48 89 85 a8 00 - 00 00 mov QWORD PTR last_128$2[rbp], rax - -; 27 : byte *last_32 = end - 4; - - 00115 48 8b 45 48 mov rax, QWORD PTR end$[rbp] - 00119 48 83 e8 04 sub rax, 4 - 0011d 48 89 85 c8 00 - 00 00 mov QWORD PTR last_32$3[rbp], rax - -; 28 : uint64_t hash64 = size; - - 00124 8b 45 24 mov eax, DWORD PTR size$[rbp] - 00127 48 89 85 e8 00 - 00 00 mov QWORD PTR hash64$4[rbp], rax - -; 29 : for (; ptr < last_128; ptr += 16) { - - 0012e eb 0c jmp SHORT $LN13@city_hash_ -$LN11@city_hash_: - 00130 48 8b 45 68 mov rax, QWORD PTR ptr$[rbp] - 00134 48 83 c0 10 add rax, 16 - 00138 48 89 45 68 mov QWORD PTR ptr$[rbp], rax -$LN13@city_hash_: - 0013c 48 8b 85 a8 00 - 00 00 mov rax, QWORD PTR last_128$2[rbp] - 00143 48 39 45 68 cmp QWORD PTR ptr$[rbp], rax - 00147 73 5e jae SHORT $LN12@city_hash_ - -; 30 : __m128i vec = _mm_loadu_si32((int *)ptr); - - 00149 48 8b 45 68 mov rax, QWORD PTR ptr$[rbp] - 0014d 66 0f 6e 00 movd xmm0, DWORD PTR [rax] - 00151 66 0f 7f 85 10 - 01 00 00 movdqa XMMWORD PTR vec$5[rbp], xmm0 - -; 31 : hash64 = _mm_crc32_u64(hash64, _mm_extract_epi64(vec, 0)); - - 00159 66 0f 6f 85 10 - 01 00 00 movdqa xmm0, XMMWORD PTR vec$5[rbp] - 00161 66 48 0f 3a 16 - c0 00 pextrq rax, xmm0, 0 - 00168 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR hash64$4[rbp] - 0016f f2 48 0f 38 f1 - c8 crc32 rcx, rax - 00175 48 8b c1 mov rax, rcx - 00178 48 89 85 e8 00 - 00 00 mov QWORD PTR hash64$4[rbp], rax - -; 32 : hash64 = _mm_crc32_u64(hash64, _mm_extract_epi64(vec, 1)); - - 0017f 66 0f 6f 85 10 - 01 00 00 movdqa xmm0, XMMWORD PTR vec$5[rbp] - 00187 66 48 0f 3a 16 - c0 01 pextrq rax, xmm0, 1 - 0018e 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR hash64$4[rbp] - 00195 f2 48 0f 38 f1 - c8 crc32 rcx, rax - 0019b 48 8b c1 mov rax, rcx - 0019e 48 89 85 e8 00 - 00 00 mov QWORD PTR hash64$4[rbp], rax - -; 33 : } - - 001a5 eb 89 jmp SHORT $LN11@city_hash_ -$LN12@city_hash_: - -; 34 : hash = _mm_crc32_u8(hash, hash64); - - 001a7 8b 45 04 mov eax, DWORD PTR hash$[rbp] - 001aa f2 0f 38 f0 85 - e8 00 00 00 crc32 eax, BYTE PTR hash64$4[rbp] - 001b3 89 45 04 mov DWORD PTR hash$[rbp], eax - -; 35 : hash = _mm_crc32_u8(hash, hash64 >> 32); - - 001b6 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR hash64$4[rbp] - 001bd 48 c1 e8 20 shr rax, 32 ; 00000020H - 001c1 8b 4d 04 mov ecx, DWORD PTR hash$[rbp] - 001c4 f2 0f 38 f0 c8 crc32 ecx, al - 001c9 8b c1 mov eax, ecx - 001cb 89 45 04 mov DWORD PTR hash$[rbp], eax - -; 36 : for (; ptr < last_32; ptr += 4) { - - 001ce eb 0c jmp SHORT $LN16@city_hash_ -$LN14@city_hash_: - 001d0 48 8b 45 68 mov rax, QWORD PTR ptr$[rbp] - 001d4 48 83 c0 04 add rax, 4 - 001d8 48 89 45 68 mov QWORD PTR ptr$[rbp], rax -$LN16@city_hash_: - 001dc 48 8b 85 c8 00 - 00 00 mov rax, QWORD PTR last_32$3[rbp] - 001e3 48 39 45 68 cmp QWORD PTR ptr$[rbp], rax - 001e7 73 13 jae SHORT $LN15@city_hash_ - -; 37 : hash = _mm_crc32_u32(hash, *(uint32_t *)ptr); - - 001e9 48 8b 45 68 mov rax, QWORD PTR ptr$[rbp] - 001ed 8b 4d 04 mov ecx, DWORD PTR hash$[rbp] - 001f0 f2 0f 38 f1 08 crc32 ecx, DWORD PTR [rax] - 001f5 8b c1 mov eax, ecx - 001f7 89 45 04 mov DWORD PTR hash$[rbp], eax - -; 38 : } - - 001fa eb d4 jmp SHORT $LN14@city_hash_ -$LN15@city_hash_: - -; 39 : for (; ptr < end; ptr += 2) { - - 001fc eb 0c jmp SHORT $LN19@city_hash_ -$LN17@city_hash_: - 001fe 48 8b 45 68 mov rax, QWORD PTR ptr$[rbp] - 00202 48 83 c0 02 add rax, 2 - 00206 48 89 45 68 mov QWORD PTR ptr$[rbp], rax -$LN19@city_hash_: - 0020a 48 8b 45 48 mov rax, QWORD PTR end$[rbp] - 0020e 48 39 45 68 cmp QWORD PTR ptr$[rbp], rax - 00212 73 13 jae SHORT $LN18@city_hash_ - -; 40 : hash = _mm_crc32_u8(hash, *ptr); - - 00214 48 8b 45 68 mov rax, QWORD PTR ptr$[rbp] - 00218 8b 4d 04 mov ecx, DWORD PTR hash$[rbp] - 0021b f2 0f 38 f0 08 crc32 ecx, BYTE PTR [rax] - 00220 8b c1 mov eax, ecx - 00222 89 45 04 mov DWORD PTR hash$[rbp], eax - -; 41 : } - - 00225 eb d7 jmp SHORT $LN17@city_hash_ -$LN18@city_hash_: -$LN23@city_hash_: -$LN21@city_hash_: - -; 42 : } -; 43 : hash ^= hash >> 16; - - 00227 8b 45 04 mov eax, DWORD PTR hash$[rbp] - 0022a c1 e8 10 shr eax, 16 - 0022d 8b 4d 04 mov ecx, DWORD PTR hash$[rbp] - 00230 33 c8 xor ecx, eax - 00232 8b c1 mov eax, ecx - 00234 89 45 04 mov DWORD PTR hash$[rbp], eax - -; 44 : hash *= 0x85ebca6b; - - 00237 69 45 04 6b ca - eb 85 imul eax, DWORD PTR hash$[rbp], -2048144789 ; 85ebca6bH - 0023e 89 45 04 mov DWORD PTR hash$[rbp], eax - -; 45 : hash ^= hash >> 13; - - 00241 8b 45 04 mov eax, DWORD PTR hash$[rbp] - 00244 c1 e8 0d shr eax, 13 - 00247 8b 4d 04 mov ecx, DWORD PTR hash$[rbp] - 0024a 33 c8 xor ecx, eax - 0024c 8b c1 mov eax, ecx - 0024e 89 45 04 mov DWORD PTR hash$[rbp], eax - -; 46 : hash *= 0xc2b2ae35; - - 00251 69 45 04 35 ae - b2 c2 imul eax, DWORD PTR hash$[rbp], -1028477387 ; c2b2ae35H - 00258 89 45 04 mov DWORD PTR hash$[rbp], eax - -; 47 : hash ^= hash >> 16; - - 0025b 8b 45 04 mov eax, DWORD PTR hash$[rbp] - 0025e c1 e8 10 shr eax, 16 - 00261 8b 4d 04 mov ecx, DWORD PTR hash$[rbp] - 00264 33 c8 xor ecx, eax - 00266 8b c1 mov eax, ecx - 00268 89 45 04 mov DWORD PTR hash$[rbp], eax - -; 48 : return hash; - - 0026b 8b 45 04 mov eax, DWORD PTR hash$[rbp] - -; 49 : } - - 0026e 48 8d a5 f8 01 - 00 00 lea rsp, QWORD PTR [rbp+504] - 00275 5f pop rdi - 00276 5d pop rbp - 00277 c3 ret 0 -city_hash_simplify_sse ENDP -_TEXT ENDS -END diff --git a/obj/StgSharp.Native/Debug/x64/s.hash.x86.nativecodeanalysis.sarif b/obj/StgSharp.Native/Debug/x64/s.hash.x86.nativecodeanalysis.sarif deleted file mode 100644 index dd41b452..00000000 --- a/obj/StgSharp.Native/Debug/x64/s.hash.x86.nativecodeanalysis.sarif +++ /dev/null @@ -1,123 +0,0 @@ -{ - "version": "2.1.0", - "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", - "runs": [ - { - "results": [], - "tool": { - "driver": { - "name": "PREfast", - "fullName": "MSVC Code Analysis", - "version": "14.44.35220.0", - "informationUri": "https://aka.ms/cpp/ca" - } - }, - "invocations": [ - { - "executionSuccessful": true - } - ], - "artifacts": [ - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-src/s.hash.x86.c" - }, - "roles": [ - "analysisTarget" - ], - "hashes": { - "sha-256": "fc02339eab2d607b51ac1425e894ee670f6112aeefbc8fa64ef74094789cf0d6" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_target.h" - }, - "hashes": { - "sha-256": "b8c543a09db7bd21a2b409476024fa6bec6a5218d88ca036d15584ed453ceb91" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_internal.h" - }, - "hashes": { - "sha-256": "7430f5e8582c672b79e266834c290e4d426ce44b7bd3b7e5534f201a48ff6df9" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrinsic.h" - }, - "hashes": { - "sha-256": "94ca202415b5a633ad79580db19ae2b7def151b2e3f5d2dcaa341cfe934a5b0c" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/stgsharpnative.h" - }, - "hashes": { - "sha-256": "5eee6b3faf7bf2247fe44898b0fcb71794c346ae2f0b58953e1632a49c1b6c4e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/stbi/stb_image.h" - }, - "hashes": { - "sha-256": "c45e3ef56a7d946654740f02e25fcb99a819861155ad1173349a289f2a000ce2" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/gl.h" - }, - "hashes": { - "sha-256": "c9d0960c919f9ef4cfa6449f2b0c00f2ad8286b420e01ee7ec34b40c618392fc" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/khrplatform.h" - }, - "hashes": { - "sha-256": "f5b69ed6a7bef6651526abb2d1263811d59acdba7a29368bb9be1a0f9e80160f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/wgl.h" - }, - "hashes": { - "sha-256": "86d6c58acb0a92b35ce8d94d6817fcec3f73d9e147e8621f468f143db1bbd81f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/glfw/glfw3.h" - }, - "hashes": { - "sha-256": "85c584857dddd780c131940ed69cd516c2b60d61664df9cb254710c3602c1008" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/glfw_function.h" - }, - "hashes": { - "sha-256": "4baa73f465e3e347fc0ad0ff666a6db2e83e749acd770f4bee02c12a7b9ec36e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrinsic.matkernel.h" - }, - "hashes": { - "sha-256": "19f0030c441ae5c4cec0b446b64daa10448fafd44d4fd6dd2232b84f5ed9aad1" - } - } - ] - } - ] -} \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/s.hash.x86.nativecodeanalysis.xml b/obj/StgSharp.Native/Debug/x64/s.hash.x86.nativecodeanalysis.xml deleted file mode 100644 index dcdf0885..00000000 --- a/obj/StgSharp.Native/Debug/x64/s.hash.x86.nativecodeanalysis.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/s.hash.x86.obj b/obj/StgSharp.Native/Debug/x64/s.hash.x86.obj deleted file mode 100644 index 45254b65..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/s.hash.x86.obj and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/s.hash.x86.sbr b/obj/StgSharp.Native/Debug/x64/s.hash.x86.sbr deleted file mode 100644 index b979ca73..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/s.hash.x86.sbr and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/simdid.x86.cod b/obj/StgSharp.Native/Debug/x64/simdid.x86.cod deleted file mode 100644 index 358d977b..00000000 --- a/obj/StgSharp.Native/Debug/x64/simdid.x86.cod +++ /dev/null @@ -1,2501 +0,0 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.44.35220.0 - -include listing.inc - -INCLUDELIB MSVCRTD -INCLUDELIB OLDNAMES - -_DATA SEGMENT -COMM infolog:BYTE:0200H -_DATA ENDS -msvcjmc SEGMENT -__5C8CA4D3_mmintrin@h DB 01H -__8C83BECC_concurrencysal@h DB 01H -__608E3340_sal@h DB 01H -__FB67E29A_vadefs@h DB 01H -__1D1B619C_vcruntime@h DB 01H -__735960E1_corecrt@h DB 01H -__211DB995_corecrt_malloc@h DB 01H -__7CD62D9E_malloc@h DB 01H -__9DCE0DC8_xmmintrin@h DB 01H -__4C2AD0C7_winpackagefamily@h DB 01H -__9DED9ED1_winapifamily@h DB 01H -__12FEDF4E_sdkddkver@h DB 01H -__9BAEE128_excpt@h DB 01H -__B7B53233_stdarg@h DB 01H -__6B04FCB3_specstrings_undef@h DB 01H -__F4027AF7_specstrings_strict@h DB 01H -__B90340D4_sdv_driverspecs@h DB 01H -__BFFF5AD3_driverspecs@h DB 01H -__32847078_specstrings@h DB 01H -__108B2620_corecrt_wctype@h DB 01H -__6CD6613D_ctype@h DB 01H -__30902A1F_kernelspecs@h DB 01H -__376FD5CA_basetsd@h DB 01H -__13DE2371_errno@h DB 01H -__8C6AE390_vcruntime_string@h DB 01H -__8ACB2152_corecrt_memcpy_s@h DB 01H -__EA6C9D17_corecrt_memory@h DB 01H -__0DF2AF52_corecrt_wstring@h DB 01H -__6E889ECC_string@h DB 01H -__9BEDF4DE_guiddef@h DB 01H -__51BFD2FE_pshpack4@h DB 01H -__31652CEA_poppack@h DB 01H -__5532AE4C_pshpack2@h DB 01H -__58A52B9A_pshpack8@h DB 01H -__57741015_pshpack1@h DB 01H -__CDE68C90_apiset@h DB 01H -__0BF06E8D_ktmtypes@h DB 01H -__40C200C0_winnt@h DB 01H -__9336F789_minwindef@h DB 01H -__55136115_windef@h DB 01H -__32205BF0_apisetcconv@h DB 01H -__B48FDEA0_minwinbase@h DB 01H -__3551B028_apiquery2@h DB 01H -__65BE04AA_processenv@h DB 01H -__4767CA46_fileapi@h DB 01H -__282E6C4B_fileapifromapp@h DB 01H -__393AF12C_debugapi@h DB 01H -__EBC502B8_utilapiset@h DB 01H -__1EAD8C69_handleapi@h DB 01H -__D8EF9B29_errhandlingapi@h DB 01H -__97FC1204_fibersapi@h DB 01H -__27448220_namedpipeapi@h DB 01H -__6EA33B2A_profileapi@h DB 01H -__EAC6F673_heapapi@h DB 01H -__D64EEA5A_ioapiset@h DB 01H -__144BD4B6_synchapi@h DB 01H -__03B1C640_interlockedapi@h DB 01H -__DC64CB38_processthreadsapi@h DB 01H -__D719B518_sysinfoapi@h DB 01H -__410385B1_memoryapi@h DB 01H -__C1AD45EF_enclaveapi@h DB 01H -__F4C3AA32_threadpoollegacyapiset@h DB 01H -__AC5A7A9F_threadpoolapiset@h DB 01H -__F5254B21_jobapi@h DB 01H -__BCEA6EE8_jobapi2@h DB 01H -__D18ACE72_wow64apiset@h DB 01H -__669B0D4A_libloaderapi@h DB 01H -__645F7034_securitybaseapi@h DB 01H -__67E58557_namespaceapi@h DB 01H -__599D9D3A_systemtopologyapi@h DB 01H -__2337E373_processtopologyapi@h DB 01H -__02BFF239_securityappcontainer@h DB 01H -__9C196272_realtimeapiset@h DB 01H -__5AB313A4_winerror@h DB 01H -__B7E7187B_timezoneapi@h DB 01H -__6DE9EB6F_winbase@h DB 01H -__56B2AFF2_wingdi@h DB 01H -__BA1161A9_tvout@h DB 01H -__0501A018_winuser@h DB 01H -__EF12FA99_datetimeapi@h DB 01H -__8FA7C3CA_winnls@h DB 01H -__390F0C47_stringapiset@h DB 01H -__28605B0A_wincontypes@h DB 01H -__BFBDE86D_consoleapi@h DB 01H -__C3CAFBF0_consoleapi2@h DB 01H -__C20891C7_consoleapi3@h DB 01H -__717C98B6_wincon@h DB 01H -__2884C177_verrsrc@h DB 01H -__A3FD3A34_winver@h DB 01H -__6F8AD9F1_reason@h DB 01H -__4C90FD6F_winreg@h DB 01H -__68AFEBAD_wnnc@h DB 01H -__5A7AB086_winnetwk@h DB 01H -__2FE8A10C_stralign@h DB 01H -__34558472_winsvc@h DB 01H -__058845F1_mcx@h DB 01H -__7F16006B_ime_cmodes@h DB 01H -__0A3AF599_imm@h DB 01H -__9349FE86_windows@h DB 01H -__639A050C_sn_internal@h DB 01H -__836A8CFC_stdint@h DB 01H -__714FE6D7_sn_target@h DB 01H -__60B45B40_corecrt_stdio_config@h DB 01H -__CFA3741E_corecrt_wstdio@h DB 01H -__B3FE3303_stdio@h DB 01H -__955456CD_stddef@h DB 01H -__99AED4FB_corecrt_search@h DB 01H -__8B813BF6_corecrt_wstdlib@h DB 01H -__3D1CA2C3_limits@h DB 01H -__E8FB0A68_stdlib@h DB 01H -__F562FA57_stb_image@h DB 01H -__C95DC661_khrplatform@h DB 01H -__6C577136_gl@h DB 01H -__EE638A2C_wgl@h DB 01H -__8EF9E35C_glfw3@h DB 01H -__F8AC8404_emmintrin@h DB 01H -__270DEC8D_pmmintrin@h DB 01H -__97D49F0F_tmmintrin@h DB 01H -__BEEF8A8C_smmintrin@h DB 01H -__DB8D0340_nmmintrin@h DB 01H -__0E36F90E_wmmintrin@h DB 01H -__C5A2B409_zmmintrin@h DB 01H -__F2B616C3_immintrin@h DB 01H -__9FB25DBE_assert@h DB 01H -__4E664295_glfw_function@h DB 01H -__64C0EF11_StgSharpNative@h DB 01H -__E2EC0CAF_sn_matkernel@h DB 01H -__47E843D2_intrin0@inl@h DB 01H -__130964FF_setjmp@h DB 01H -__4875F786_ammintrin@h DB 01H -__353FD888_intrin@h DB 01H -__5FE1E9E3_isa_availability@h DB 01H -__AA840D82_sn_intrinsic@h DB 01H -__CE29950A_sn_intrincontext@x86@h DB 01H -__3EBA305F_simdid@x86@c DB 01H -msvcjmc ENDS -PUBLIC sn_get_simd_level_global -PUBLIC sn_get_simd_level_local -PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0N@IGLDKOMM@HygonGenuine@ ; `string' -PUBLIC ??_C@_0N@FFJGBINN@AuthenticAMD@ ; `string' -PUBLIC ??_C@_0N@BDDFKIGD@GenuineIntel@ ; `string' -PUBLIC ??_C@_0N@DHAFJCOO@CentaurHauls@ ; `string' -PUBLIC ??_C@_0N@BDNCIKNF@?5?5Shanghai?5?5@ ; `string' -EXTRN __report_rangecheckfailure:PROC -EXTRN memcmp:PROC -EXTRN strcmp:PROC -EXTRN _RTC_CheckStackVars:PROC -EXTRN _RTC_InitBase:PROC -EXTRN _RTC_Shutdown:PROC -EXTRN __CheckForDebuggerJustMyCode:PROC -EXTRN __GSHandlerCheck:PROC -EXTRN __security_check_cookie:PROC -EXTRN __security_cookie:QWORD -_BSS SEGMENT -global_simdid DQ 01H DUP (?) -_BSS ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$sn_get_simd_level_global DD imagerel $LN4 - DD imagerel $LN4+76 - DD imagerel $unwind$sn_get_simd_level_global -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$sn_get_simd_level_local DD imagerel $LN98 - DD imagerel $LN98+3276 - DD imagerel $unwind$sn_get_simd_level_local -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$get_cpuid DD imagerel get_cpuid - DD imagerel get_cpuid+250 - DD imagerel $unwind$get_cpuid -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$xgetbv_has_xmm_ymm DD imagerel xgetbv_has_xmm_ymm - DD imagerel xgetbv_has_xmm_ymm+99 - DD imagerel $unwind$xgetbv_has_xmm_ymm -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$xgetbv_has_avx512_state DD imagerel xgetbv_has_avx512_state - DD imagerel xgetbv_has_avx512_state+113 - DD imagerel $unwind$xgetbv_has_avx512_state -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$amd_avx512_impl DD imagerel amd_avx512_impl - DD imagerel amd_avx512_impl+75 - DD imagerel $unwind$amd_avx512_impl -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$is_amd_glue_ymm DD imagerel is_amd_glue_ymm - DD imagerel is_amd_glue_ymm+277 - DD imagerel $unwind$is_amd_glue_ymm -pdata ENDS -; COMDAT rtc$TMZ -rtc$TMZ SEGMENT -_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown -rtc$TMZ ENDS -; COMDAT rtc$IMZ -rtc$IMZ SEGMENT -_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase -rtc$IMZ ENDS -; COMDAT ??_C@_0N@BDNCIKNF@?5?5Shanghai?5?5@ -CONST SEGMENT -??_C@_0N@BDNCIKNF@?5?5Shanghai?5?5@ DB ' Shanghai ', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0N@DHAFJCOO@CentaurHauls@ -CONST SEGMENT -??_C@_0N@DHAFJCOO@CentaurHauls@ DB 'CentaurHauls', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0N@BDDFKIGD@GenuineIntel@ -CONST SEGMENT -??_C@_0N@BDDFKIGD@GenuineIntel@ DB 'GenuineIntel', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0N@FFJGBINN@AuthenticAMD@ -CONST SEGMENT -??_C@_0N@FFJGBINN@AuthenticAMD@ DB 'AuthenticAMD', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0N@IGLDKOMM@HygonGenuine@ -CONST SEGMENT -??_C@_0N@IGLDKOMM@HygonGenuine@ DB 'HygonGenuine', 00H ; `string' -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$is_amd_glue_ymm DD 025051701H - DD 01122317H - DD 0700b0035H - DD 0500aH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$amd_avx512_impl DD 025051201H - DD 010d2312H - DD 07006001dH - DD 05005H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$xgetbv_has_avx512_state DD 025050f01H - DD 010a230fH - DD 070030025H - DD 05002H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$xgetbv_has_xmm_ymm DD 025050f01H - DD 010a230fH - DD 070030021H - DD 05002H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 043H - DB 0e0H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$get_cpuid DD 025064a19H - DD 011c2321H - DD 070150022H - DD 050133014H - DD imagerel __GSHandlerCheck - DD 0108H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -get_cpuid$rtcName$0 DB 072H - DB 065H - DB 067H - DB 073H - DB 00H - ORG $+11 -get_cpuid$rtcVarDesc DD 028H - DD 010H - DQ FLAT:get_cpuid$rtcName$0 - ORG $+48 -get_cpuid$rtcFrameData DD 01H - DD 00H - DQ FLAT:get_cpuid$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 02aH - DW 0cb3H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$sn_get_simd_level_local DD 035053119H - DD 010a330fH - DD 070030143H - DD 05002H - DD imagerel __GSHandlerCheck - DD 0a08H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -sn_get_simd_level_local$rtcName$0 DB 05fH - DB 073H - DB 069H - DB 06dH - DB 064H - DB 069H - DB 064H - DB 00H -sn_get_simd_level_local$rtcName$1 DB 065H - DB 061H - DB 078H - DB 00H -sn_get_simd_level_local$rtcName$2 DB 065H - DB 062H - DB 078H - DB 00H -sn_get_simd_level_local$rtcName$3 DB 065H - DB 063H - DB 078H - DB 00H -sn_get_simd_level_local$rtcName$4 DB 065H - DB 064H - DB 078H - DB 00H -sn_get_simd_level_local$rtcName$5 DB 076H - DB 065H - DB 06eH - DB 064H - DB 06fH - DB 072H - DB 00H - ORG $+1 -sn_get_simd_level_local$rtcName$6 DB 061H - DB 031H - DB 030H - DB 05fH - DB 065H - DB 061H - DB 078H - DB 00H -sn_get_simd_level_local$rtcName$7 DB 061H - DB 031H - DB 030H - DB 05fH - DB 065H - DB 062H - DB 078H - DB 00H -sn_get_simd_level_local$rtcName$8 DB 061H - DB 031H - DB 030H - DB 05fH - DB 065H - DB 063H - DB 078H - DB 00H -sn_get_simd_level_local$rtcName$9 DB 061H - DB 031H - DB 030H - DB 05fH - DB 065H - DB 064H - DB 078H - DB 00H -sn_get_simd_level_local$rtcName$10 DB 068H - DB 05fH - DB 065H - DB 061H - DB 078H - DB 00H - ORG $+2 -sn_get_simd_level_local$rtcName$11 DB 068H - DB 05fH - DB 065H - DB 062H - DB 078H - DB 00H - ORG $+2 -sn_get_simd_level_local$rtcName$12 DB 068H - DB 05fH - DB 065H - DB 063H - DB 078H - DB 00H - ORG $+2 -sn_get_simd_level_local$rtcName$13 DB 068H - DB 05fH - DB 065H - DB 064H - DB 078H - DB 00H - ORG $+2 -sn_get_simd_level_local$rtcVarDesc DD 06a4H - DD 04H - DQ FLAT:sn_get_simd_level_local$rtcName$13 - DD 0684H - DD 04H - DQ FLAT:sn_get_simd_level_local$rtcName$12 - DD 0664H - DD 04H - DQ FLAT:sn_get_simd_level_local$rtcName$11 - DD 0644H - DD 04H - DQ FLAT:sn_get_simd_level_local$rtcName$10 - DD 05e4H - DD 04H - DQ FLAT:sn_get_simd_level_local$rtcName$9 - DD 05c4H - DD 04H - DQ FLAT:sn_get_simd_level_local$rtcName$8 - DD 05a4H - DD 04H - DQ FLAT:sn_get_simd_level_local$rtcName$7 - DD 0584H - DD 04H - DQ FLAT:sn_get_simd_level_local$rtcName$6 - DD 0d8H - DD 0dH - DQ FLAT:sn_get_simd_level_local$rtcName$5 - DD 0b4H - DD 04H - DQ FLAT:sn_get_simd_level_local$rtcName$4 - DD 094H - DD 04H - DQ FLAT:sn_get_simd_level_local$rtcName$3 - DD 074H - DD 04H - DQ FLAT:sn_get_simd_level_local$rtcName$2 - DD 054H - DD 04H - DQ FLAT:sn_get_simd_level_local$rtcName$1 - DD 038H - DD 08H - DQ FLAT:sn_get_simd_level_local$rtcName$0 - ORG $+672 -sn_get_simd_level_local$rtcFrameData DD 0eH - DD 00H - DQ FLAT:sn_get_simd_level_local$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$sn_get_simd_level_global DD 025050f01H - DD 010a230fH - DD 07003001dH - DD 05002H -xdata ENDS -; Function compile flags: /Odt -; COMDAT __JustMyCode_Default -_TEXT SEGMENT -__JustMyCode_Default PROC ; COMDAT - 00000 c2 00 00 ret 0 -__JustMyCode_Default ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\simdid.x86.c -; COMDAT is_amd_glue_ymm -_TEXT SEGMENT -base_fam$ = 4 -ext_fam$ = 36 -disp_fam$ = 68 -base_mdl$ = 100 -ext_mdl$ = 132 -disp_mdl$ = 164 -tv78 = 372 -tv87 = 372 -vendor$ = 416 -cpuid1_eax$ = 424 -is_amd_glue_ymm PROC ; COMDAT - -; 76 : { - - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec a8 01 - 00 00 sub rsp, 424 ; 000001a8H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__3EBA305F_simdid@x86@c - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00023 90 npad 1 - -; 77 : if (strcmp(vendor, "HygonGenuine") == 0) - - 00024 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0N@IGLDKOMM@HygonGenuine@ - 0002b 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR vendor$[rbp] - 00032 e8 00 00 00 00 call strcmp - 00037 85 c0 test eax, eax - 00039 75 0a jne SHORT $LN2@is_amd_glu - -; 78 : return 1; /* Hygon is Zen1-based; always split YMM */ - - 0003b b8 01 00 00 00 mov eax, 1 - 00040 e9 c6 00 00 00 jmp $LN1@is_amd_glu -$LN2@is_amd_glu: - -; 79 : if (strcmp(vendor, "AuthenticAMD") != 0) - - 00045 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0N@FFJGBINN@AuthenticAMD@ - 0004c 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR vendor$[rbp] - 00053 e8 00 00 00 00 call strcmp - 00058 85 c0 test eax, eax - 0005a 74 07 je SHORT $LN3@is_amd_glu - -; 80 : return 0; - - 0005c 33 c0 xor eax, eax - 0005e e9 a8 00 00 00 jmp $LN1@is_amd_glu -$LN3@is_amd_glu: - -; 81 : int base_fam = (cpuid1_eax >> 8) & 0xF; - - 00063 8b 85 a8 01 00 - 00 mov eax, DWORD PTR cpuid1_eax$[rbp] - 00069 c1 f8 08 sar eax, 8 - 0006c 83 e0 0f and eax, 15 - 0006f 89 45 04 mov DWORD PTR base_fam$[rbp], eax - -; 82 : int ext_fam = (cpuid1_eax >> 20) & 0xFF; - - 00072 8b 85 a8 01 00 - 00 mov eax, DWORD PTR cpuid1_eax$[rbp] - 00078 c1 f8 14 sar eax, 20 - 0007b 25 ff 00 00 00 and eax, 255 ; 000000ffH - 00080 89 45 24 mov DWORD PTR ext_fam$[rbp], eax - -; 83 : int disp_fam = (base_fam < 0xF) ? base_fam : (base_fam + ext_fam); - - 00083 83 7d 04 0f cmp DWORD PTR base_fam$[rbp], 15 - 00087 7d 0b jge SHORT $LN5@is_amd_glu - 00089 8b 45 04 mov eax, DWORD PTR base_fam$[rbp] - 0008c 89 85 74 01 00 - 00 mov DWORD PTR tv78[rbp], eax - 00092 eb 10 jmp SHORT $LN6@is_amd_glu -$LN5@is_amd_glu: - 00094 8b 45 24 mov eax, DWORD PTR ext_fam$[rbp] - 00097 8b 4d 04 mov ecx, DWORD PTR base_fam$[rbp] - 0009a 03 c8 add ecx, eax - 0009c 8b c1 mov eax, ecx - 0009e 89 85 74 01 00 - 00 mov DWORD PTR tv78[rbp], eax -$LN6@is_amd_glu: - 000a4 8b 85 74 01 00 - 00 mov eax, DWORD PTR tv78[rbp] - 000aa 89 45 44 mov DWORD PTR disp_fam$[rbp], eax - -; 84 : int base_mdl = (cpuid1_eax >> 4) & 0xF; - - 000ad 8b 85 a8 01 00 - 00 mov eax, DWORD PTR cpuid1_eax$[rbp] - 000b3 c1 f8 04 sar eax, 4 - 000b6 83 e0 0f and eax, 15 - 000b9 89 45 64 mov DWORD PTR base_mdl$[rbp], eax - -; 85 : int ext_mdl = (cpuid1_eax >> 16) & 0xF; - - 000bc 8b 85 a8 01 00 - 00 mov eax, DWORD PTR cpuid1_eax$[rbp] - 000c2 c1 f8 10 sar eax, 16 - 000c5 83 e0 0f and eax, 15 - 000c8 89 85 84 00 00 - 00 mov DWORD PTR ext_mdl$[rbp], eax - -; 86 : int disp_mdl = (ext_mdl << 4) | base_mdl; - - 000ce 8b 85 84 00 00 - 00 mov eax, DWORD PTR ext_mdl$[rbp] - 000d4 c1 e0 04 shl eax, 4 - 000d7 0b 45 64 or eax, DWORD PTR base_mdl$[rbp] - 000da 89 85 a4 00 00 - 00 mov DWORD PTR disp_mdl$[rbp], eax - -; 87 : return (disp_fam == 0x17) && (disp_mdl < 0x30); /* Zen1/Zen+ */ - - 000e0 83 7d 44 17 cmp DWORD PTR disp_fam$[rbp], 23 - 000e4 75 15 jne SHORT $LN7@is_amd_glu - 000e6 83 bd a4 00 00 - 00 30 cmp DWORD PTR disp_mdl$[rbp], 48 ; 00000030H - 000ed 7d 0c jge SHORT $LN7@is_amd_glu - 000ef c7 85 74 01 00 - 00 01 00 00 00 mov DWORD PTR tv87[rbp], 1 - 000f9 eb 0a jmp SHORT $LN8@is_amd_glu -$LN7@is_amd_glu: - 000fb c7 85 74 01 00 - 00 00 00 00 00 mov DWORD PTR tv87[rbp], 0 -$LN8@is_amd_glu: - 00105 8b 85 74 01 00 - 00 mov eax, DWORD PTR tv87[rbp] -$LN1@is_amd_glu: - -; 88 : } - - 0010b 48 8d a5 88 01 - 00 00 lea rsp, QWORD PTR [rbp+392] - 00112 5f pop rdi - 00113 5d pop rbp - 00114 c3 ret 0 -is_amd_glue_ymm ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\simdid.x86.c -; COMDAT amd_avx512_impl -_TEXT SEGMENT -family$ = 224 -amd_avx512_impl PROC ; COMDAT - -; 65 : { - - 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00004 55 push rbp - 00005 57 push rdi - 00006 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00012 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__3EBA305F_simdid@x86@c - 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001e 90 npad 1 - -; 66 : if (family == 0x19) return SIMDID_AVX512_IMPL_DUAL; - - 0001f 83 bd e0 00 00 - 00 19 cmp DWORD PTR family$[rbp], 25 - 00026 75 07 jne SHORT $LN2@amd_avx512 - 00028 b8 40 00 00 00 mov eax, 64 ; 00000040H - 0002d eb 12 jmp SHORT $LN1@amd_avx512 -$LN2@amd_avx512: - -; 67 : if (family >= 0x1A) return SIMDID_AVX512_IMPL_NATIVE; - - 0002f 83 bd e0 00 00 - 00 1a cmp DWORD PTR family$[rbp], 26 - 00036 7c 07 jl SHORT $LN3@amd_avx512 - 00038 b8 80 00 00 00 mov eax, 128 ; 00000080H - 0003d eb 02 jmp SHORT $LN1@amd_avx512 -$LN3@amd_avx512: - -; 68 : return SIMDID_AVX512_IMPL_UNKNOWN; - - 0003f 33 c0 xor eax, eax -$LN1@amd_avx512: - -; 69 : } - - 00041 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 -amd_avx512_impl ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\simdid.x86.c -; COMDAT xgetbv_has_avx512_state -_TEXT SEGMENT -mask$ = 8 -xcr0$ = 40 -tv68 = 244 -xgetbv_has_avx512_state PROC ; COMDAT - -; 49 : { - - 00000 40 55 push rbp - 00002 57 push rdi - 00003 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__3EBA305F_simdid@x86@c - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001b 90 npad 1 - -; 50 : const unsigned long long mask = (1ull << 0) | (1ull << 1) | (1ull << 2) | (1ull << 5) | - - 0001c 48 c7 45 08 67 - 00 00 00 mov QWORD PTR mask$[rbp], 103 ; 00000067H - -; 51 : (1ull << 6); -; 52 : #if defined(_MSC_VER) -; 53 : unsigned __int64 xcr0 = _xgetbv(0); - - 00024 33 c9 xor ecx, ecx - 00026 0f 01 d0 xgetbv - 00029 48 c1 e2 20 shl rdx, 32 ; 00000020H - 0002d 48 0b d0 or rdx, rax - 00030 48 8b c2 mov rax, rdx - 00033 48 89 45 28 mov QWORD PTR xcr0$[rbp], rax - -; 54 : #else -; 55 : unsigned long long xcr0 = __builtin_ia32_xgetbv(0); -; 56 : #endif -; 57 : return ((xcr0 & mask) == mask); - - 00037 48 8b 45 08 mov rax, QWORD PTR mask$[rbp] - 0003b 48 8b 4d 28 mov rcx, QWORD PTR xcr0$[rbp] - 0003f 48 23 c8 and rcx, rax - 00042 48 8b c1 mov rax, rcx - 00045 48 3b 45 08 cmp rax, QWORD PTR mask$[rbp] - 00049 75 0c jne SHORT $LN3@xgetbv_has - 0004b c7 85 f4 00 00 - 00 01 00 00 00 mov DWORD PTR tv68[rbp], 1 - 00055 eb 0a jmp SHORT $LN4@xgetbv_has -$LN3@xgetbv_has: - 00057 c7 85 f4 00 00 - 00 00 00 00 00 mov DWORD PTR tv68[rbp], 0 -$LN4@xgetbv_has: - 00061 8b 85 f4 00 00 - 00 mov eax, DWORD PTR tv68[rbp] - -; 58 : } - - 00067 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 0006e 5f pop rdi - 0006f 5d pop rbp - 00070 c3 ret 0 -xgetbv_has_avx512_state ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\simdid.x86.c -; COMDAT xgetbv_has_xmm_ymm -_TEXT SEGMENT -xcr0$ = 8 -tv68 = 212 -xgetbv_has_xmm_ymm PROC ; COMDAT - -; 39 : { - - 00000 40 55 push rbp - 00002 57 push rdi - 00003 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__3EBA305F_simdid@x86@c - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001b 90 npad 1 - -; 40 : #if defined(_MSC_VER) -; 41 : unsigned __int64 xcr0 = _xgetbv(0); - - 0001c 33 c9 xor ecx, ecx - 0001e 0f 01 d0 xgetbv - 00021 48 c1 e2 20 shl rdx, 32 ; 00000020H - 00025 48 0b d0 or rdx, rax - 00028 48 8b c2 mov rax, rdx - 0002b 48 89 45 08 mov QWORD PTR xcr0$[rbp], rax - -; 42 : #else -; 43 : unsigned long long xcr0 = __builtin_ia32_xgetbv(0); -; 44 : #endif -; 45 : return ((xcr0 & 0x6) == 0x6); - - 0002f 48 8b 45 08 mov rax, QWORD PTR xcr0$[rbp] - 00033 48 83 e0 06 and rax, 6 - 00037 48 83 f8 06 cmp rax, 6 - 0003b 75 0c jne SHORT $LN3@xgetbv_has - 0003d c7 85 d4 00 00 - 00 01 00 00 00 mov DWORD PTR tv68[rbp], 1 - 00047 eb 0a jmp SHORT $LN4@xgetbv_has -$LN3@xgetbv_has: - 00049 c7 85 d4 00 00 - 00 00 00 00 00 mov DWORD PTR tv68[rbp], 0 -$LN4@xgetbv_has: - 00053 8b 85 d4 00 00 - 00 mov eax, DWORD PTR tv68[rbp] - -; 46 : } - - 00059 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00060 5f pop rdi - 00061 5d pop rbp - 00062 c3 ret 0 -xgetbv_has_xmm_ymm ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\simdid.x86.c -; COMDAT get_cpuid -_TEXT SEGMENT -regs$ = 8 -__$ArrayPad$ = 232 -leaf$ = 272 -subleaf$ = 280 -eax$ = 288 -ebx$ = 296 -ecx$ = 304 -edx$ = 312 -get_cpuid PROC ; COMDAT - -; 20 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00012 55 push rbp - 00013 53 push rbx - 00014 57 push rdi - 00015 48 81 ec 10 01 - 00 00 sub rsp, 272 ; 00000110H - 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00021 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00026 b9 0c 00 00 00 mov ecx, 12 - 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00030 f3 ab rep stosd - 00032 8b 8c 24 38 01 - 00 00 mov ecx, DWORD PTR [rsp+312] - 00039 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00040 48 33 c5 xor rax, rbp - 00043 48 89 85 e8 00 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__3EBA305F_simdid@x86@c - 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00056 90 npad 1 - -; 21 : #if defined(_MSC_VER) -; 22 : int regs[4]; -; 23 : __cpuidex(regs, leaf, subleaf); - - 00057 8b 85 10 01 00 - 00 mov eax, DWORD PTR leaf$[rbp] - 0005d 8b 8d 18 01 00 - 00 mov ecx, DWORD PTR subleaf$[rbp] - 00063 0f a2 cpuid - 00065 4c 8d 45 08 lea r8, QWORD PTR regs$[rbp] - 00069 41 89 00 mov DWORD PTR [r8], eax - 0006c 41 89 58 04 mov DWORD PTR [r8+4], ebx - 00070 41 89 48 08 mov DWORD PTR [r8+8], ecx - 00074 41 89 50 0c mov DWORD PTR [r8+12], edx - -; 24 : *eax = regs[0]; - - 00078 b8 04 00 00 00 mov eax, 4 - 0007d 48 6b c0 00 imul rax, rax, 0 - 00081 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR eax$[rbp] - 00088 8b 44 05 08 mov eax, DWORD PTR regs$[rbp+rax] - 0008c 89 01 mov DWORD PTR [rcx], eax - -; 25 : *ebx = regs[1]; - - 0008e b8 04 00 00 00 mov eax, 4 - 00093 48 6b c0 01 imul rax, rax, 1 - 00097 48 8b 8d 28 01 - 00 00 mov rcx, QWORD PTR ebx$[rbp] - 0009e 8b 44 05 08 mov eax, DWORD PTR regs$[rbp+rax] - 000a2 89 01 mov DWORD PTR [rcx], eax - -; 26 : *ecx = regs[2]; - - 000a4 b8 04 00 00 00 mov eax, 4 - 000a9 48 6b c0 02 imul rax, rax, 2 - 000ad 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR ecx$[rbp] - 000b4 8b 44 05 08 mov eax, DWORD PTR regs$[rbp+rax] - 000b8 89 01 mov DWORD PTR [rcx], eax - -; 27 : *edx = regs[3]; - - 000ba b8 04 00 00 00 mov eax, 4 - 000bf 48 6b c0 03 imul rax, rax, 3 - 000c3 48 8b 8d 38 01 - 00 00 mov rcx, QWORD PTR edx$[rbp] - 000ca 8b 44 05 08 mov eax, DWORD PTR regs$[rbp+rax] - 000ce 89 01 mov DWORD PTR [rcx], eax - -; 28 : #else -; 29 : unsigned int a, b, c, d; -; 30 : __cpuid_count((unsigned int)leaf, (unsigned int)subleaf, a, b, c, d); -; 31 : *eax = (int)a; -; 32 : *ebx = (int)b; -; 33 : *ecx = (int)c; -; 34 : *edx = (int)d; -; 35 : #endif -; 36 : } - - 000d0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000d4 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:get_cpuid$rtcFrameData - 000db e8 00 00 00 00 call _RTC_CheckStackVars - 000e0 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000e7 48 33 cd xor rcx, rbp - 000ea e8 00 00 00 00 call __security_check_cookie - 000ef 48 8d a5 f0 00 - 00 00 lea rsp, QWORD PTR [rbp+240] - 000f6 5f pop rdi - 000f7 5b pop rbx - 000f8 5d pop rbp - 000f9 c3 ret 0 -get_cpuid ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\simdid.x86.c -; COMDAT sn_get_simd_level_local -_TEXT SEGMENT -_simdid$ = 8 -eax$ = 36 -ebx$ = 68 -ecx$ = 100 -edx$ = 132 -vendor$ = 168 -is_intel$ = 212 -is_amd$ = 244 -is_hygon$ = 276 -is_via$ = 308 -cpuid1_eax$ = 340 -family$ = 372 -model$ = 404 -has_sse42$ = 436 -has_avx$ = 468 -has_osxsave$ = 500 -has_fma$ = 532 -has_f16c$ = 564 -root$ = 600 -manu$ = 632 -main_lvl$ = 664 -avx512_bits$ = 696 -amx_bits$ = 728 -avx_bits$ = 760 -avx10_bits$ = 792 -has_hybrid$ = 820 -has_bmi1$17 = 852 -has_bmi2$18 = 884 -has_avx2$19 = 916 -has_avx512f$20 = 948 -has_avx512dq$21 = 980 -has_avx512bw$22 = 1012 -has_avx512vl$23 = 1044 -has_avx512_vnni$24 = 1076 -has_vbmi$25 = 1108 -has_vbmi2$26 = 1140 -has_amx_tile$27 = 1172 -has_amx_int8$28 = 1204 -has_amx_bf16$29 = 1236 -has_bf16$30 = 1268 -has_fp16$31 = 1300 -has_avx10$32 = 1332 -a10_eax$33 = 1364 -a10_ebx$34 = 1396 -a10_ecx$35 = 1428 -a10_edx$36 = 1460 -avx10_ver$37 = 1492 -uarch_bits$ = 1528 -h_eax$38 = 1556 -h_ebx$39 = 1588 -h_ecx$40 = 1620 -h_edx$41 = 1652 -core_type$42 = 1684 -$T43 = 2488 -tv208 = 2500 -tv282 = 2500 -tv285 = 2500 -tv170 = 2500 -tv167 = 2500 -tv164 = 2500 -tv161 = 2500 -tv158 = 2500 -tv139 = 2500 -tv129 = 2500 -tv87 = 2500 -tv178 = 2500 -tv202 = 2500 -tv205 = 2500 -tv288 = 2500 -tv211 = 2500 -tv214 = 2500 -tv217 = 2500 -tv220 = 2500 -tv223 = 2500 -tv92 = 2500 -tv258 = 2500 -tv261 = 2500 -tv264 = 2500 -tv267 = 2500 -tv270 = 2500 -tv273 = 2500 -tv176 = 2504 -tv174 = 2508 -tv172 = 2512 -__$ArrayPad$ = 2520 -sn_get_simd_level_local PROC ; COMDAT - -; 91 : { - -$LN98: - 00000 40 55 push rbp - 00002 57 push rdi - 00003 48 81 ec 18 0a - 00 00 sub rsp, 2584 ; 00000a18H - 0000a 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0000f 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00014 b9 ba 01 00 00 mov ecx, 442 ; 000001baH - 00019 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001e f3 ab rep stosd - 00020 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00027 48 33 c5 xor rax, rbp - 0002a 48 89 85 d8 09 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00031 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__3EBA305F_simdid@x86@c - 00038 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003d 90 npad 1 - -; 92 : SIMDID _simdid = { 0 }; - - 0003e 48 8d 45 08 lea rax, QWORD PTR _simdid$[rbp] - 00042 48 8b f8 mov rdi, rax - 00045 33 c0 xor eax, eax - 00047 b9 08 00 00 00 mov ecx, 8 - 0004c f3 aa rep stosb - -; 93 : -; 94 : int eax = 0, ebx = 0, ecx = 0, edx = 0; - - 0004e c7 45 24 00 00 - 00 00 mov DWORD PTR eax$[rbp], 0 - 00055 c7 45 44 00 00 - 00 00 mov DWORD PTR ebx$[rbp], 0 - 0005c c7 45 64 00 00 - 00 00 mov DWORD PTR ecx$[rbp], 0 - 00063 c7 85 84 00 00 - 00 00 00 00 00 mov DWORD PTR edx$[rbp], 0 - -; 95 : -; 96 : /* Vendor */ -; 97 : get_cpuid(0, 0, &eax, &ebx, &ecx, &edx); - - 0006d 48 8d 85 84 00 - 00 00 lea rax, QWORD PTR edx$[rbp] - 00074 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 00079 48 8d 45 64 lea rax, QWORD PTR ecx$[rbp] - 0007d 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 00082 4c 8d 4d 44 lea r9, QWORD PTR ebx$[rbp] - 00086 4c 8d 45 24 lea r8, QWORD PTR eax$[rbp] - 0008a 33 d2 xor edx, edx - 0008c 33 c9 xor ecx, ecx - 0008e e8 00 00 00 00 call get_cpuid - 00093 90 npad 1 - -; 98 : char vendor[13]; -; 99 : ((int *)vendor)[0] = ebx; - - 00094 b8 04 00 00 00 mov eax, 4 - 00099 48 6b c0 00 imul rax, rax, 0 - 0009d 8b 4d 44 mov ecx, DWORD PTR ebx$[rbp] - 000a0 89 8c 05 a8 00 - 00 00 mov DWORD PTR vendor$[rbp+rax], ecx - -; 100 : ((int *)vendor)[1] = edx; - - 000a7 b8 04 00 00 00 mov eax, 4 - 000ac 48 6b c0 01 imul rax, rax, 1 - 000b0 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR edx$[rbp] - 000b6 89 8c 05 a8 00 - 00 00 mov DWORD PTR vendor$[rbp+rax], ecx - -; 101 : ((int *)vendor)[2] = ecx; - - 000bd b8 04 00 00 00 mov eax, 4 - 000c2 48 6b c0 02 imul rax, rax, 2 - 000c6 8b 4d 64 mov ecx, DWORD PTR ecx$[rbp] - 000c9 89 8c 05 a8 00 - 00 00 mov DWORD PTR vendor$[rbp+rax], ecx - -; 102 : vendor[12] = '\0'; - - 000d0 b8 01 00 00 00 mov eax, 1 - 000d5 48 6b c0 0c imul rax, rax, 12 - 000d9 48 89 85 b8 09 - 00 00 mov QWORD PTR $T43[rbp], rax - 000e0 48 83 bd b8 09 - 00 00 0d cmp QWORD PTR $T43[rbp], 13 - 000e8 73 02 jae SHORT $LN36@sn_get_sim - 000ea eb 06 jmp SHORT $LN37@sn_get_sim -$LN36@sn_get_sim: - 000ec e8 00 00 00 00 call __report_rangecheckfailure - 000f1 90 npad 1 -$LN37@sn_get_sim: - 000f2 48 8b 85 b8 09 - 00 00 mov rax, QWORD PTR $T43[rbp] - 000f9 c6 84 05 a8 00 - 00 00 00 mov BYTE PTR vendor$[rbp+rax], 0 - -; 103 : const int is_intel = (strcmp(vendor, "GenuineIntel") == 0); - - 00101 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0N@BDDFKIGD@GenuineIntel@ - 00108 48 8d 8d a8 00 - 00 00 lea rcx, QWORD PTR vendor$[rbp] - 0010f e8 00 00 00 00 call strcmp - 00114 85 c0 test eax, eax - 00116 75 0c jne SHORT $LN38@sn_get_sim - 00118 c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv87[rbp], 1 - 00122 eb 0a jmp SHORT $LN39@sn_get_sim -$LN38@sn_get_sim: - 00124 c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv87[rbp], 0 -$LN39@sn_get_sim: - 0012e 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv87[rbp] - 00134 89 85 d4 00 00 - 00 mov DWORD PTR is_intel$[rbp], eax - -; 104 : const int is_amd = (strcmp(vendor, "AuthenticAMD") == 0); - - 0013a 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0N@FFJGBINN@AuthenticAMD@ - 00141 48 8d 8d a8 00 - 00 00 lea rcx, QWORD PTR vendor$[rbp] - 00148 e8 00 00 00 00 call strcmp - 0014d 85 c0 test eax, eax - 0014f 75 0c jne SHORT $LN40@sn_get_sim - 00151 c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv92[rbp], 1 - 0015b eb 0a jmp SHORT $LN41@sn_get_sim -$LN40@sn_get_sim: - 0015d c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv92[rbp], 0 -$LN41@sn_get_sim: - 00167 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv92[rbp] - 0016d 89 85 f4 00 00 - 00 mov DWORD PTR is_amd$[rbp], eax - -; 105 : const int is_hygon = (strcmp(vendor, "HygonGenuine") == 0); /* 海光: separate from AMD */ - - 00173 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0N@IGLDKOMM@HygonGenuine@ - 0017a 48 8d 8d a8 00 - 00 00 lea rcx, QWORD PTR vendor$[rbp] - 00181 e8 00 00 00 00 call strcmp - 00186 85 c0 test eax, eax - 00188 75 0c jne SHORT $LN42@sn_get_sim - 0018a c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv129[rbp], 1 - 00194 eb 0a jmp SHORT $LN43@sn_get_sim -$LN42@sn_get_sim: - 00196 c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv129[rbp], 0 -$LN43@sn_get_sim: - 001a0 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv129[rbp] - 001a6 89 85 14 01 00 - 00 mov DWORD PTR is_hygon$[rbp], eax - -; 106 : const int is_via = (strcmp(vendor, "CentaurHauls") == 0) || - - 001ac 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0N@DHAFJCOO@CentaurHauls@ - 001b3 48 8d 8d a8 00 - 00 00 lea rcx, QWORD PTR vendor$[rbp] - 001ba e8 00 00 00 00 call strcmp - 001bf 85 c0 test eax, eax - 001c1 74 29 je SHORT $LN44@sn_get_sim - 001c3 41 b8 0c 00 00 - 00 mov r8d, 12 - 001c9 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0N@BDNCIKNF@?5?5Shanghai?5?5@ - 001d0 48 8d 8d a8 00 - 00 00 lea rcx, QWORD PTR vendor$[rbp] - 001d7 e8 00 00 00 00 call memcmp - 001dc 85 c0 test eax, eax - 001de 74 0c je SHORT $LN44@sn_get_sim - 001e0 c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv139[rbp], 0 - 001ea eb 0a jmp SHORT $LN45@sn_get_sim -$LN44@sn_get_sim: - 001ec c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv139[rbp], 1 -$LN45@sn_get_sim: - 001f6 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv139[rbp] - 001fc 89 85 34 01 00 - 00 mov DWORD PTR is_via$[rbp], eax - -; 107 : (memcmp(vendor, " Shanghai ", 12) == 0); /* VIA / Zhaoxin */ -; 108 : -; 109 : /* CPUID.1 */ -; 110 : get_cpuid(1, 0, &eax, &ebx, &ecx, &edx); - - 00202 48 8d 85 84 00 - 00 00 lea rax, QWORD PTR edx$[rbp] - 00209 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 0020e 48 8d 45 64 lea rax, QWORD PTR ecx$[rbp] - 00212 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 00217 4c 8d 4d 44 lea r9, QWORD PTR ebx$[rbp] - 0021b 4c 8d 45 24 lea r8, QWORD PTR eax$[rbp] - 0021f 33 d2 xor edx, edx - 00221 b9 01 00 00 00 mov ecx, 1 - 00226 e8 00 00 00 00 call get_cpuid - 0022b 90 npad 1 - -; 111 : int cpuid1_eax = eax; /* saved for Zen1/Zen+ glue-YMM detection */ - - 0022c 8b 45 24 mov eax, DWORD PTR eax$[rbp] - 0022f 89 85 54 01 00 - 00 mov DWORD PTR cpuid1_eax$[rbp], eax - -; 112 : int family = ((eax >> 8) & 0xF) + ((eax >> 20) & 0xFF0); - - 00235 8b 45 24 mov eax, DWORD PTR eax$[rbp] - 00238 c1 f8 08 sar eax, 8 - 0023b 83 e0 0f and eax, 15 - 0023e 8b 4d 24 mov ecx, DWORD PTR eax$[rbp] - 00241 c1 f9 14 sar ecx, 20 - 00244 81 e1 f0 0f 00 - 00 and ecx, 4080 ; 00000ff0H - 0024a 03 c1 add eax, ecx - 0024c 89 85 74 01 00 - 00 mov DWORD PTR family$[rbp], eax - -; 113 : int model = ((eax >> 4) & 0xF) | ((eax >> 12) & 0xF0); - - 00252 8b 45 24 mov eax, DWORD PTR eax$[rbp] - 00255 c1 f8 04 sar eax, 4 - 00258 83 e0 0f and eax, 15 - 0025b 8b 4d 24 mov ecx, DWORD PTR eax$[rbp] - 0025e c1 f9 0c sar ecx, 12 - 00261 81 e1 f0 00 00 - 00 and ecx, 240 ; 000000f0H - 00267 0b c1 or eax, ecx - 00269 89 85 94 01 00 - 00 mov DWORD PTR model$[rbp], eax - -; 114 : -; 115 : int has_sse42 = (ecx & (1 << 20)) != 0; - - 0026f 8b 45 64 mov eax, DWORD PTR ecx$[rbp] - 00272 25 00 00 10 00 and eax, 1048576 ; 00100000H - 00277 85 c0 test eax, eax - 00279 74 0c je SHORT $LN46@sn_get_sim - 0027b c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv158[rbp], 1 - 00285 eb 0a jmp SHORT $LN47@sn_get_sim -$LN46@sn_get_sim: - 00287 c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv158[rbp], 0 -$LN47@sn_get_sim: - 00291 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv158[rbp] - 00297 89 85 b4 01 00 - 00 mov DWORD PTR has_sse42$[rbp], eax - -; 116 : int has_avx = (ecx & (1 << 28)) != 0; - - 0029d 8b 45 64 mov eax, DWORD PTR ecx$[rbp] - 002a0 25 00 00 00 10 and eax, 268435456 ; 10000000H - 002a5 85 c0 test eax, eax - 002a7 74 0c je SHORT $LN48@sn_get_sim - 002a9 c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv161[rbp], 1 - 002b3 eb 0a jmp SHORT $LN49@sn_get_sim -$LN48@sn_get_sim: - 002b5 c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv161[rbp], 0 -$LN49@sn_get_sim: - 002bf 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv161[rbp] - 002c5 89 85 d4 01 00 - 00 mov DWORD PTR has_avx$[rbp], eax - -; 117 : int has_osxsave = (ecx & (1 << 27)) != 0; - - 002cb 8b 45 64 mov eax, DWORD PTR ecx$[rbp] - 002ce 25 00 00 00 08 and eax, 134217728 ; 08000000H - 002d3 85 c0 test eax, eax - 002d5 74 0c je SHORT $LN50@sn_get_sim - 002d7 c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv164[rbp], 1 - 002e1 eb 0a jmp SHORT $LN51@sn_get_sim -$LN50@sn_get_sim: - 002e3 c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv164[rbp], 0 -$LN51@sn_get_sim: - 002ed 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv164[rbp] - 002f3 89 85 f4 01 00 - 00 mov DWORD PTR has_osxsave$[rbp], eax - -; 118 : int has_fma = (ecx & (1 << 12)) != 0; - - 002f9 8b 45 64 mov eax, DWORD PTR ecx$[rbp] - 002fc 25 00 10 00 00 and eax, 4096 ; 00001000H - 00301 85 c0 test eax, eax - 00303 74 0c je SHORT $LN52@sn_get_sim - 00305 c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv167[rbp], 1 - 0030f eb 0a jmp SHORT $LN53@sn_get_sim -$LN52@sn_get_sim: - 00311 c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv167[rbp], 0 -$LN53@sn_get_sim: - 0031b 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv167[rbp] - 00321 89 85 14 02 00 - 00 mov DWORD PTR has_fma$[rbp], eax - -; 119 : int has_f16c = (ecx & (1 << 29)) != 0; - - 00327 8b 45 64 mov eax, DWORD PTR ecx$[rbp] - 0032a 25 00 00 00 20 and eax, 536870912 ; 20000000H - 0032f 85 c0 test eax, eax - 00331 74 0c je SHORT $LN54@sn_get_sim - 00333 c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv170[rbp], 1 - 0033d eb 0a jmp SHORT $LN55@sn_get_sim -$LN54@sn_get_sim: - 0033f c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv170[rbp], 0 -$LN55@sn_get_sim: - 00349 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv170[rbp] - 0034f 89 85 34 02 00 - 00 mov DWORD PTR has_f16c$[rbp], eax - -; 120 : -; 121 : uint64_t root = SIMDID_PACK_ROOT(SIMDID_ROOT_X86_64); - - 00355 48 c7 85 58 02 - 00 00 01 00 00 - 00 mov QWORD PTR root$[rbp], 1 - -; 122 : uint64_t manu = SIMDID_PACK_MANU(is_intel ? SIMDID_MANU_INTEL : - - 00360 83 bd d4 00 00 - 00 00 cmp DWORD PTR is_intel$[rbp], 0 - 00367 74 0c je SHORT $LN62@sn_get_sim - 00369 c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv178[rbp], 1 - 00373 eb 6d jmp SHORT $LN63@sn_get_sim -$LN62@sn_get_sim: - 00375 83 bd f4 00 00 - 00 00 cmp DWORD PTR is_amd$[rbp], 0 - 0037c 74 0c je SHORT $LN60@sn_get_sim - 0037e c7 85 c8 09 00 - 00 02 00 00 00 mov DWORD PTR tv176[rbp], 2 - 00388 eb 4c jmp SHORT $LN61@sn_get_sim -$LN60@sn_get_sim: - 0038a 83 bd 14 01 00 - 00 00 cmp DWORD PTR is_hygon$[rbp], 0 - 00391 74 0c je SHORT $LN58@sn_get_sim - 00393 c7 85 cc 09 00 - 00 04 00 00 00 mov DWORD PTR tv174[rbp], 4 - 0039d eb 2b jmp SHORT $LN59@sn_get_sim -$LN58@sn_get_sim: - 0039f 83 bd 34 01 00 - 00 00 cmp DWORD PTR is_via$[rbp], 0 - 003a6 74 0c je SHORT $LN56@sn_get_sim - 003a8 c7 85 d0 09 00 - 00 03 00 00 00 mov DWORD PTR tv172[rbp], 3 - 003b2 eb 0a jmp SHORT $LN57@sn_get_sim -$LN56@sn_get_sim: - 003b4 c7 85 d0 09 00 - 00 00 00 00 00 mov DWORD PTR tv172[rbp], 0 -$LN57@sn_get_sim: - 003be 8b 85 d0 09 00 - 00 mov eax, DWORD PTR tv172[rbp] - 003c4 89 85 cc 09 00 - 00 mov DWORD PTR tv174[rbp], eax -$LN59@sn_get_sim: - 003ca 8b 85 cc 09 00 - 00 mov eax, DWORD PTR tv174[rbp] - 003d0 89 85 c8 09 00 - 00 mov DWORD PTR tv176[rbp], eax -$LN61@sn_get_sim: - 003d6 8b 85 c8 09 00 - 00 mov eax, DWORD PTR tv176[rbp] - 003dc 89 85 c4 09 00 - 00 mov DWORD PTR tv178[rbp], eax -$LN63@sn_get_sim: - 003e2 48 63 85 c4 09 - 00 00 movsxd rax, DWORD PTR tv178[rbp] - 003e9 48 83 e0 0f and rax, 15 - 003ed 48 c1 e0 04 shl rax, 4 - 003f1 48 89 85 78 02 - 00 00 mov QWORD PTR manu$[rbp], rax - -; 123 : is_amd ? SIMDID_MANU_AMD : -; 124 : is_hygon ? SIMDID_MANU_HYGON : -; 125 : is_via ? SIMDID_MANU_VIA : -; 126 : SIMDID_MANU_UNKNOWN); -; 127 : uint64_t main_lvl = SIMDID_PACK_MAIN(SIMDID_MAIN_LVL_NONE); - - 003f8 48 c7 85 98 02 - 00 00 00 00 00 - 00 mov QWORD PTR main_lvl$[rbp], 0 - -; 128 : uint64_t avx512_bits = 0; - - 00403 48 c7 85 b8 02 - 00 00 00 00 00 - 00 mov QWORD PTR avx512_bits$[rbp], 0 - -; 129 : uint64_t amx_bits = 0; - - 0040e 48 c7 85 d8 02 - 00 00 00 00 00 - 00 mov QWORD PTR amx_bits$[rbp], 0 - -; 130 : uint64_t avx_bits = 0; - - 00419 48 c7 85 f8 02 - 00 00 00 00 00 - 00 mov QWORD PTR avx_bits$[rbp], 0 - -; 131 : uint64_t avx10_bits = 0; - - 00424 48 c7 85 18 03 - 00 00 00 00 00 - 00 mov QWORD PTR avx10_bits$[rbp], 0 - -; 132 : int has_hybrid = 0; /* filled from CPUID.7.0 EDX[15] when AVX present */ - - 0042f c7 85 34 03 00 - 00 00 00 00 00 mov DWORD PTR has_hybrid$[rbp], 0 - -; 133 : -; 134 : /* Baseline main level */ -; 135 : if (has_sse42) - - 00439 83 bd b4 01 00 - 00 00 cmp DWORD PTR has_sse42$[rbp], 0 - 00440 74 0b je SHORT $LN2@sn_get_sim - -; 136 : main_lvl = SIMDID_PACK_MAIN(SIMDID_MAIN_LVL_SSE); - - 00442 48 c7 85 98 02 - 00 00 00 01 00 - 00 mov QWORD PTR main_lvl$[rbp], 256 ; 00000100H -$LN2@sn_get_sim: - -; 137 : -; 138 : if (has_avx && has_osxsave && xgetbv_has_xmm_ymm()) { - - 0044d 83 bd d4 01 00 - 00 00 cmp DWORD PTR has_avx$[rbp], 0 - 00454 0f 84 af 06 00 - 00 je $LN3@sn_get_sim - 0045a 83 bd f4 01 00 - 00 00 cmp DWORD PTR has_osxsave$[rbp], 0 - 00461 0f 84 a2 06 00 - 00 je $LN3@sn_get_sim - 00467 e8 00 00 00 00 call xgetbv_has_xmm_ymm - 0046c 85 c0 test eax, eax - 0046e 0f 84 95 06 00 - 00 je $LN3@sn_get_sim - -; 139 : avx_bits |= SIMDID_AVX; - - 00474 48 8b 85 f8 02 - 00 00 mov rax, QWORD PTR avx_bits$[rbp] - 0047b 48 83 c8 01 or rax, 1 - 0047f 48 89 85 f8 02 - 00 00 mov QWORD PTR avx_bits$[rbp], rax - -; 140 : -; 141 : /* Glued/split-lane YMM: early AMD Zen1/Zen+, Hygon, and VIA/Zhaoxin */ -; 142 : if (is_amd_glue_ymm(vendor, cpuid1_eax) || is_via) - - 00486 8b 95 54 01 00 - 00 mov edx, DWORD PTR cpuid1_eax$[rbp] - 0048c 48 8d 8d a8 00 - 00 00 lea rcx, QWORD PTR vendor$[rbp] - 00493 e8 00 00 00 00 call is_amd_glue_ymm - 00498 85 c0 test eax, eax - 0049a 75 09 jne SHORT $LN5@sn_get_sim - 0049c 83 bd 34 01 00 - 00 00 cmp DWORD PTR is_via$[rbp], 0 - 004a3 74 12 je SHORT $LN4@sn_get_sim -$LN5@sn_get_sim: - -; 143 : avx_bits |= SIMDID_AVX_DUAL; - - 004a5 48 8b 85 f8 02 - 00 00 mov rax, QWORD PTR avx_bits$[rbp] - 004ac 48 83 c8 10 or rax, 16 - 004b0 48 89 85 f8 02 - 00 00 mov QWORD PTR avx_bits$[rbp], rax -$LN4@sn_get_sim: - -; 144 : -; 145 : /* CPUID.7.0 */ -; 146 : get_cpuid(7, 0, &eax, &ebx, &ecx, &edx); - - 004b7 48 8d 85 84 00 - 00 00 lea rax, QWORD PTR edx$[rbp] - 004be 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 004c3 48 8d 45 64 lea rax, QWORD PTR ecx$[rbp] - 004c7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 004cc 4c 8d 4d 44 lea r9, QWORD PTR ebx$[rbp] - 004d0 4c 8d 45 24 lea r8, QWORD PTR eax$[rbp] - 004d4 33 d2 xor edx, edx - 004d6 b9 07 00 00 00 mov ecx, 7 - 004db e8 00 00 00 00 call get_cpuid - 004e0 90 npad 1 - -; 147 : const int has_bmi1 = (ebx & (1 << 3)) != 0; - - 004e1 8b 45 44 mov eax, DWORD PTR ebx$[rbp] - 004e4 83 e0 08 and eax, 8 - 004e7 85 c0 test eax, eax - 004e9 74 0c je SHORT $LN64@sn_get_sim - 004eb c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv202[rbp], 1 - 004f5 eb 0a jmp SHORT $LN65@sn_get_sim -$LN64@sn_get_sim: - 004f7 c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv202[rbp], 0 -$LN65@sn_get_sim: - 00501 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv202[rbp] - 00507 89 85 54 03 00 - 00 mov DWORD PTR has_bmi1$17[rbp], eax - -; 148 : const int has_bmi2 = (ebx & (1 << 8)) != 0; - - 0050d 8b 45 44 mov eax, DWORD PTR ebx$[rbp] - 00510 25 00 01 00 00 and eax, 256 ; 00000100H - 00515 85 c0 test eax, eax - 00517 74 0c je SHORT $LN66@sn_get_sim - 00519 c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv205[rbp], 1 - 00523 eb 0a jmp SHORT $LN67@sn_get_sim -$LN66@sn_get_sim: - 00525 c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv205[rbp], 0 -$LN67@sn_get_sim: - 0052f 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv205[rbp] - 00535 89 85 74 03 00 - 00 mov DWORD PTR has_bmi2$18[rbp], eax - -; 149 : const int has_avx2 = (ebx & (1 << 5)) != 0; - - 0053b 8b 45 44 mov eax, DWORD PTR ebx$[rbp] - 0053e 83 e0 20 and eax, 32 ; 00000020H - 00541 85 c0 test eax, eax - 00543 74 0c je SHORT $LN68@sn_get_sim - 00545 c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv208[rbp], 1 - 0054f eb 0a jmp SHORT $LN69@sn_get_sim -$LN68@sn_get_sim: - 00551 c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv208[rbp], 0 -$LN69@sn_get_sim: - 0055b 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv208[rbp] - 00561 89 85 94 03 00 - 00 mov DWORD PTR has_avx2$19[rbp], eax - -; 150 : const int has_avx512f = (ebx & (1 << 16)) != 0; - - 00567 8b 45 44 mov eax, DWORD PTR ebx$[rbp] - 0056a 25 00 00 01 00 and eax, 65536 ; 00010000H - 0056f 85 c0 test eax, eax - 00571 74 0c je SHORT $LN70@sn_get_sim - 00573 c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv211[rbp], 1 - 0057d eb 0a jmp SHORT $LN71@sn_get_sim -$LN70@sn_get_sim: - 0057f c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv211[rbp], 0 -$LN71@sn_get_sim: - 00589 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv211[rbp] - 0058f 89 85 b4 03 00 - 00 mov DWORD PTR has_avx512f$20[rbp], eax - -; 151 : const int has_avx512dq = (ebx & (1 << 17)) != 0; - - 00595 8b 45 44 mov eax, DWORD PTR ebx$[rbp] - 00598 25 00 00 02 00 and eax, 131072 ; 00020000H - 0059d 85 c0 test eax, eax - 0059f 74 0c je SHORT $LN72@sn_get_sim - 005a1 c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv214[rbp], 1 - 005ab eb 0a jmp SHORT $LN73@sn_get_sim -$LN72@sn_get_sim: - 005ad c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv214[rbp], 0 -$LN73@sn_get_sim: - 005b7 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv214[rbp] - 005bd 89 85 d4 03 00 - 00 mov DWORD PTR has_avx512dq$21[rbp], eax - -; 152 : const int has_avx512bw = (ebx & (1 << 30)) != 0; - - 005c3 8b 45 44 mov eax, DWORD PTR ebx$[rbp] - 005c6 25 00 00 00 40 and eax, 1073741824 ; 40000000H - 005cb 85 c0 test eax, eax - 005cd 74 0c je SHORT $LN74@sn_get_sim - 005cf c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv217[rbp], 1 - 005d9 eb 0a jmp SHORT $LN75@sn_get_sim -$LN74@sn_get_sim: - 005db c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv217[rbp], 0 -$LN75@sn_get_sim: - 005e5 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv217[rbp] - 005eb 89 85 f4 03 00 - 00 mov DWORD PTR has_avx512bw$22[rbp], eax - -; 153 : const int has_avx512vl = (ebx & (1u << 31)) != 0; - - 005f1 8b 45 44 mov eax, DWORD PTR ebx$[rbp] - 005f4 25 00 00 00 80 and eax, -2147483648 ; 80000000H - 005f9 85 c0 test eax, eax - 005fb 74 0c je SHORT $LN76@sn_get_sim - 005fd c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv220[rbp], 1 - 00607 eb 0a jmp SHORT $LN77@sn_get_sim -$LN76@sn_get_sim: - 00609 c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv220[rbp], 0 -$LN77@sn_get_sim: - 00613 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv220[rbp] - 00619 89 85 14 04 00 - 00 mov DWORD PTR has_avx512vl$23[rbp], eax - -; 154 : const int has_avx512_vnni = (ebx & (1 << 11)) != 0; - - 0061f 8b 45 44 mov eax, DWORD PTR ebx$[rbp] - 00622 25 00 08 00 00 and eax, 2048 ; 00000800H - 00627 85 c0 test eax, eax - 00629 74 0c je SHORT $LN78@sn_get_sim - 0062b c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv223[rbp], 1 - 00635 eb 0a jmp SHORT $LN79@sn_get_sim -$LN78@sn_get_sim: - 00637 c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv223[rbp], 0 -$LN79@sn_get_sim: - 00641 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv223[rbp] - 00647 89 85 34 04 00 - 00 mov DWORD PTR has_avx512_vnni$24[rbp], eax - -; 155 : const int has_vbmi = (ecx & (1 << 1)) != 0; - - 0064d 8b 45 64 mov eax, DWORD PTR ecx$[rbp] - 00650 83 e0 02 and eax, 2 - 00653 85 c0 test eax, eax - 00655 74 0c je SHORT $LN80@sn_get_sim - 00657 c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv258[rbp], 1 - 00661 eb 0a jmp SHORT $LN81@sn_get_sim -$LN80@sn_get_sim: - 00663 c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv258[rbp], 0 -$LN81@sn_get_sim: - 0066d 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv258[rbp] - 00673 89 85 54 04 00 - 00 mov DWORD PTR has_vbmi$25[rbp], eax - -; 156 : const int has_vbmi2 = (ecx & (1 << 6)) != 0; - - 00679 8b 45 64 mov eax, DWORD PTR ecx$[rbp] - 0067c 83 e0 40 and eax, 64 ; 00000040H - 0067f 85 c0 test eax, eax - 00681 74 0c je SHORT $LN82@sn_get_sim - 00683 c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv261[rbp], 1 - 0068d eb 0a jmp SHORT $LN83@sn_get_sim -$LN82@sn_get_sim: - 0068f c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv261[rbp], 0 -$LN83@sn_get_sim: - 00699 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv261[rbp] - 0069f 89 85 74 04 00 - 00 mov DWORD PTR has_vbmi2$26[rbp], eax - -; 157 : -; 158 : /* AMX in leaf 7 subleaf 0 EDX bits 24/25/26 — capture before -; 159 : overwriting regs with subleaf 1 */ -; 160 : const int has_amx_tile = (edx & (1 << 24)) != 0; - - 006a5 8b 85 84 00 00 - 00 mov eax, DWORD PTR edx$[rbp] - 006ab 25 00 00 00 01 and eax, 16777216 ; 01000000H - 006b0 85 c0 test eax, eax - 006b2 74 0c je SHORT $LN84@sn_get_sim - 006b4 c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv264[rbp], 1 - 006be eb 0a jmp SHORT $LN85@sn_get_sim -$LN84@sn_get_sim: - 006c0 c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv264[rbp], 0 -$LN85@sn_get_sim: - 006ca 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv264[rbp] - 006d0 89 85 94 04 00 - 00 mov DWORD PTR has_amx_tile$27[rbp], eax - -; 161 : const int has_amx_int8 = (edx & (1 << 25)) != 0; - - 006d6 8b 85 84 00 00 - 00 mov eax, DWORD PTR edx$[rbp] - 006dc 25 00 00 00 02 and eax, 33554432 ; 02000000H - 006e1 85 c0 test eax, eax - 006e3 74 0c je SHORT $LN86@sn_get_sim - 006e5 c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv267[rbp], 1 - 006ef eb 0a jmp SHORT $LN87@sn_get_sim -$LN86@sn_get_sim: - 006f1 c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv267[rbp], 0 -$LN87@sn_get_sim: - 006fb 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv267[rbp] - 00701 89 85 b4 04 00 - 00 mov DWORD PTR has_amx_int8$28[rbp], eax - -; 162 : const int has_amx_bf16 = (edx & (1 << 22)) != 0; - - 00707 8b 85 84 00 00 - 00 mov eax, DWORD PTR edx$[rbp] - 0070d 25 00 00 40 00 and eax, 4194304 ; 00400000H - 00712 85 c0 test eax, eax - 00714 74 0c je SHORT $LN88@sn_get_sim - 00716 c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv270[rbp], 1 - 00720 eb 0a jmp SHORT $LN89@sn_get_sim -$LN88@sn_get_sim: - 00722 c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv270[rbp], 0 -$LN89@sn_get_sim: - 0072c 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv270[rbp] - 00732 89 85 d4 04 00 - 00 mov DWORD PTR has_amx_bf16$29[rbp], eax - -; 163 : has_hybrid = (edx & (1 << 15)) != 0; /* Intel hybrid core topology */ - - 00738 8b 85 84 00 00 - 00 mov eax, DWORD PTR edx$[rbp] - 0073e 25 00 80 00 00 and eax, 32768 ; 00008000H - 00743 85 c0 test eax, eax - 00745 74 0c je SHORT $LN90@sn_get_sim - 00747 c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv273[rbp], 1 - 00751 eb 0a jmp SHORT $LN91@sn_get_sim -$LN90@sn_get_sim: - 00753 c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv273[rbp], 0 -$LN91@sn_get_sim: - 0075d 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv273[rbp] - 00763 89 85 34 03 00 - 00 mov DWORD PTR has_hybrid$[rbp], eax - -; 164 : -; 165 : /* leaf 7, subleaf 1 for BF16/FP16/AVX10 convergence */ -; 166 : get_cpuid(7, 1, &eax, &ebx, &ecx, &edx); - - 00769 48 8d 85 84 00 - 00 00 lea rax, QWORD PTR edx$[rbp] - 00770 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 00775 48 8d 45 64 lea rax, QWORD PTR ecx$[rbp] - 00779 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 0077e 4c 8d 4d 44 lea r9, QWORD PTR ebx$[rbp] - 00782 4c 8d 45 24 lea r8, QWORD PTR eax$[rbp] - 00786 ba 01 00 00 00 mov edx, 1 - 0078b b9 07 00 00 00 mov ecx, 7 - 00790 e8 00 00 00 00 call get_cpuid - 00795 90 npad 1 - -; 167 : const int has_bf16 = (eax & (1 << 5)) != 0; /* AVX512_BF16 */ - - 00796 8b 45 24 mov eax, DWORD PTR eax$[rbp] - 00799 83 e0 20 and eax, 32 ; 00000020H - 0079c 85 c0 test eax, eax - 0079e 74 0c je SHORT $LN92@sn_get_sim - 007a0 c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv282[rbp], 1 - 007aa eb 0a jmp SHORT $LN93@sn_get_sim -$LN92@sn_get_sim: - 007ac c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv282[rbp], 0 -$LN93@sn_get_sim: - 007b6 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv282[rbp] - 007bc 89 85 f4 04 00 - 00 mov DWORD PTR has_bf16$30[rbp], eax - -; 168 : const int has_fp16 = (eax & (1 << 23)) != 0; /* AVX512_FP16 */ - - 007c2 8b 45 24 mov eax, DWORD PTR eax$[rbp] - 007c5 25 00 00 80 00 and eax, 8388608 ; 00800000H - 007ca 85 c0 test eax, eax - 007cc 74 0c je SHORT $LN94@sn_get_sim - 007ce c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv285[rbp], 1 - 007d8 eb 0a jmp SHORT $LN95@sn_get_sim -$LN94@sn_get_sim: - 007da c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv285[rbp], 0 -$LN95@sn_get_sim: - 007e4 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv285[rbp] - 007ea 89 85 14 05 00 - 00 mov DWORD PTR has_fp16$31[rbp], eax - -; 169 : const int has_avx10 = (edx & (1 << 19)) != 0; /* AVX10 convergence */ - - 007f0 8b 85 84 00 00 - 00 mov eax, DWORD PTR edx$[rbp] - 007f6 25 00 00 08 00 and eax, 524288 ; 00080000H - 007fb 85 c0 test eax, eax - 007fd 74 0c je SHORT $LN96@sn_get_sim - 007ff c7 85 c4 09 00 - 00 01 00 00 00 mov DWORD PTR tv288[rbp], 1 - 00809 eb 0a jmp SHORT $LN97@sn_get_sim -$LN96@sn_get_sim: - 0080b c7 85 c4 09 00 - 00 00 00 00 00 mov DWORD PTR tv288[rbp], 0 -$LN97@sn_get_sim: - 00815 8b 85 c4 09 00 - 00 mov eax, DWORD PTR tv288[rbp] - 0081b 89 85 34 05 00 - 00 mov DWORD PTR has_avx10$32[rbp], eax - -; 170 : -; 171 : if (has_avx2) { - - 00821 83 bd 94 03 00 - 00 00 cmp DWORD PTR has_avx2$19[rbp], 0 - 00828 74 53 je SHORT $LN6@sn_get_sim - -; 172 : avx_bits |= SIMDID_AVX2; - - 0082a 48 8b 85 f8 02 - 00 00 mov rax, QWORD PTR avx_bits$[rbp] - 00831 48 83 c8 02 or rax, 2 - 00835 48 89 85 f8 02 - 00 00 mov QWORD PTR avx_bits$[rbp], rax - -; 173 : if (has_fma) - - 0083c 83 bd 14 02 00 - 00 00 cmp DWORD PTR has_fma$[rbp], 0 - 00843 74 12 je SHORT $LN7@sn_get_sim - -; 174 : avx_bits |= SIMDID_AVX_FMA; - - 00845 48 8b 85 f8 02 - 00 00 mov rax, QWORD PTR avx_bits$[rbp] - 0084c 48 83 c8 04 or rax, 4 - 00850 48 89 85 f8 02 - 00 00 mov QWORD PTR avx_bits$[rbp], rax -$LN7@sn_get_sim: - -; 175 : if (has_f16c) - - 00857 83 bd 34 02 00 - 00 00 cmp DWORD PTR has_f16c$[rbp], 0 - 0085e 74 12 je SHORT $LN8@sn_get_sim - -; 176 : avx_bits |= SIMDID_AVX_F16C; - - 00860 48 8b 85 f8 02 - 00 00 mov rax, QWORD PTR avx_bits$[rbp] - 00867 48 83 c8 08 or rax, 8 - 0086b 48 89 85 f8 02 - 00 00 mov QWORD PTR avx_bits$[rbp], rax -$LN8@sn_get_sim: - -; 177 : -; 178 : main_lvl = SIMDID_PACK_MAIN(SIMDID_MAIN_LVL_AVX2); - - 00872 48 c7 85 98 02 - 00 00 00 02 00 - 00 mov QWORD PTR main_lvl$[rbp], 512 ; 00000200H -$LN6@sn_get_sim: - -; 179 : } -; 180 : -; 181 : if (has_avx512f && xgetbv_has_avx512_state()) { - - 0087d 83 bd b4 03 00 - 00 00 cmp DWORD PTR has_avx512f$20[rbp], 0 - 00884 0f 84 7f 02 00 - 00 je $LN9@sn_get_sim - 0088a e8 00 00 00 00 call xgetbv_has_avx512_state - 0088f 85 c0 test eax, eax - 00891 0f 84 72 02 00 - 00 je $LN9@sn_get_sim - -; 182 : /* Ensure base subset present */ -; 183 : if (has_avx512bw && has_avx512vl && has_avx512dq) { - - 00897 83 bd f4 03 00 - 00 00 cmp DWORD PTR has_avx512bw$22[rbp], 0 - 0089e 74 24 je SHORT $LN10@sn_get_sim - 008a0 83 bd 14 04 00 - 00 00 cmp DWORD PTR has_avx512vl$23[rbp], 0 - 008a7 74 1b je SHORT $LN10@sn_get_sim - 008a9 83 bd d4 03 00 - 00 00 cmp DWORD PTR has_avx512dq$21[rbp], 0 - 008b0 74 12 je SHORT $LN10@sn_get_sim - -; 184 : avx512_bits |= SIMDID_AVX512_BASE; - - 008b2 48 8b 85 b8 02 - 00 00 mov rax, QWORD PTR avx512_bits$[rbp] - 008b9 48 83 c8 10 or rax, 16 - 008bd 48 89 85 b8 02 - 00 00 mov QWORD PTR avx512_bits$[rbp], rax -$LN10@sn_get_sim: - -; 185 : } -; 186 : if (has_avx512_vnni) - - 008c4 83 bd 34 04 00 - 00 00 cmp DWORD PTR has_avx512_vnni$24[rbp], 0 - 008cb 74 13 je SHORT $LN11@sn_get_sim - -; 187 : avx512_bits |= SIMDID_AVX512_VNNI; - - 008cd 48 8b 85 b8 02 - 00 00 mov rax, QWORD PTR avx512_bits$[rbp] - 008d4 48 0f ba e8 0b bts rax, 11 - 008d9 48 89 85 b8 02 - 00 00 mov QWORD PTR avx512_bits$[rbp], rax -$LN11@sn_get_sim: - -; 188 : if (has_bf16) - - 008e0 83 bd f4 04 00 - 00 00 cmp DWORD PTR has_bf16$30[rbp], 0 - 008e7 74 13 je SHORT $LN12@sn_get_sim - -; 189 : avx512_bits |= SIMDID_AVX512_BF16; - - 008e9 48 8b 85 b8 02 - 00 00 mov rax, QWORD PTR avx512_bits$[rbp] - 008f0 48 0f ba e8 0c bts rax, 12 - 008f5 48 89 85 b8 02 - 00 00 mov QWORD PTR avx512_bits$[rbp], rax -$LN12@sn_get_sim: - -; 190 : if (has_fp16) - - 008fc 83 bd 14 05 00 - 00 00 cmp DWORD PTR has_fp16$31[rbp], 0 - 00903 74 13 je SHORT $LN13@sn_get_sim - -; 191 : avx512_bits |= SIMDID_AVX512_FP16; - - 00905 48 8b 85 b8 02 - 00 00 mov rax, QWORD PTR avx512_bits$[rbp] - 0090c 48 0f ba e8 0d bts rax, 13 - 00911 48 89 85 b8 02 - 00 00 mov QWORD PTR avx512_bits$[rbp], rax -$LN13@sn_get_sim: - -; 192 : if (has_vbmi) - - 00918 83 bd 54 04 00 - 00 00 cmp DWORD PTR has_vbmi$25[rbp], 0 - 0091f 74 13 je SHORT $LN14@sn_get_sim - -; 193 : avx512_bits |= SIMDID_AVX512_VBMI; - - 00921 48 8b 85 b8 02 - 00 00 mov rax, QWORD PTR avx512_bits$[rbp] - 00928 48 0f ba e8 09 bts rax, 9 - 0092d 48 89 85 b8 02 - 00 00 mov QWORD PTR avx512_bits$[rbp], rax -$LN14@sn_get_sim: - -; 194 : if (has_vbmi2) - - 00934 83 bd 74 04 00 - 00 00 cmp DWORD PTR has_vbmi2$26[rbp], 0 - 0093b 74 13 je SHORT $LN15@sn_get_sim - -; 195 : avx512_bits |= SIMDID_AVX512_VBMI2; - - 0093d 48 8b 85 b8 02 - 00 00 mov rax, QWORD PTR avx512_bits$[rbp] - 00944 48 0f ba e8 0a bts rax, 10 - 00949 48 89 85 b8 02 - 00 00 mov QWORD PTR avx512_bits$[rbp], rax -$LN15@sn_get_sim: - -; 196 : -; 197 : /* Execution-width classification: -; 198 : * Intel all → NATIVE (genuine 512-bit ALU; SKX dual-port is native) -; 199 : * AMD Zen4 → DUAL (dual-pump 256-bit, Family 0x19) -; 200 : * AMD Zen5+ → NATIVE (native 512-bit, Family >= 0x1A) -; 201 : * Hygon/VIA/unknown → UNKNOWN (conservative) */ -; 202 : if (is_intel) - - 00950 83 bd d4 00 00 - 00 00 cmp DWORD PTR is_intel$[rbp], 0 - 00957 74 15 je SHORT $LN16@sn_get_sim - -; 203 : avx512_bits |= SIMDID_AVX512_IMPL_NATIVE; - - 00959 48 8b 85 b8 02 - 00 00 mov rax, QWORD PTR avx512_bits$[rbp] - 00960 48 0f ba e8 07 bts rax, 7 - 00965 48 89 85 b8 02 - 00 00 mov QWORD PTR avx512_bits$[rbp], rax - 0096c eb 38 jmp SHORT $LN17@sn_get_sim -$LN16@sn_get_sim: - -; 204 : else if (is_amd) - - 0096e 83 bd f4 00 00 - 00 00 cmp DWORD PTR is_amd$[rbp], 0 - 00975 74 21 je SHORT $LN18@sn_get_sim - -; 205 : avx512_bits |= amd_avx512_impl(family); - - 00977 8b 8d 74 01 00 - 00 mov ecx, DWORD PTR family$[rbp] - 0097d e8 00 00 00 00 call amd_avx512_impl - 00982 48 8b 8d b8 02 - 00 00 mov rcx, QWORD PTR avx512_bits$[rbp] - 00989 48 0b c8 or rcx, rax - 0098c 48 8b c1 mov rax, rcx - 0098f 48 89 85 b8 02 - 00 00 mov QWORD PTR avx512_bits$[rbp], rax - 00996 eb 0e jmp SHORT $LN19@sn_get_sim -$LN18@sn_get_sim: - -; 206 : else -; 207 : avx512_bits |= SIMDID_AVX512_IMPL_UNKNOWN; - - 00998 48 8b 85 b8 02 - 00 00 mov rax, QWORD PTR avx512_bits$[rbp] - 0099f 48 89 85 b8 02 - 00 00 mov QWORD PTR avx512_bits$[rbp], rax -$LN19@sn_get_sim: -$LN17@sn_get_sim: - -; 208 : -; 209 : /* main level for AVX512 */ -; 210 : main_lvl = SIMDID_PACK_MAIN(SIMDID_MAIN_LVL_AVX512); - - 009a6 48 c7 85 98 02 - 00 00 00 03 00 - 00 mov QWORD PTR main_lvl$[rbp], 768 ; 00000300H - -; 211 : -; 212 : /* AMX promotion if present */ -; 213 : if (has_amx_tile) { - - 009b1 83 bd 94 04 00 - 00 00 cmp DWORD PTR has_amx_tile$27[rbp], 0 - 009b8 74 53 je SHORT $LN20@sn_get_sim - -; 214 : amx_bits |= SIMDID_AMX_TILE; - - 009ba 48 8b 85 d8 02 - 00 00 mov rax, QWORD PTR amx_bits$[rbp] - 009c1 48 83 c8 01 or rax, 1 - 009c5 48 89 85 d8 02 - 00 00 mov QWORD PTR amx_bits$[rbp], rax - -; 215 : if (has_amx_int8) - - 009cc 83 bd b4 04 00 - 00 00 cmp DWORD PTR has_amx_int8$28[rbp], 0 - 009d3 74 12 je SHORT $LN21@sn_get_sim - -; 216 : amx_bits |= SIMDID_AMX_INT8; - - 009d5 48 8b 85 d8 02 - 00 00 mov rax, QWORD PTR amx_bits$[rbp] - 009dc 48 83 c8 02 or rax, 2 - 009e0 48 89 85 d8 02 - 00 00 mov QWORD PTR amx_bits$[rbp], rax -$LN21@sn_get_sim: - -; 217 : if (has_amx_bf16) - - 009e7 83 bd d4 04 00 - 00 00 cmp DWORD PTR has_amx_bf16$29[rbp], 0 - 009ee 74 12 je SHORT $LN22@sn_get_sim - -; 218 : amx_bits |= SIMDID_AMX_BF16; - - 009f0 48 8b 85 d8 02 - 00 00 mov rax, QWORD PTR amx_bits$[rbp] - 009f7 48 83 c8 04 or rax, 4 - 009fb 48 89 85 d8 02 - 00 00 mov QWORD PTR amx_bits$[rbp], rax -$LN22@sn_get_sim: - -; 219 : main_lvl = SIMDID_PACK_MAIN(SIMDID_MAIN_LVL_AMX); - - 00a02 48 c7 85 98 02 - 00 00 00 04 00 - 00 mov QWORD PTR main_lvl$[rbp], 1024 ; 00000400H -$LN20@sn_get_sim: - -; 220 : } -; 221 : -; 222 : /* AVX10 detection — requires AVX10 convergence bit -; 223 : (leaf 7 subleaf 1 EDX[19]) and leaf 0x24 */ -; 224 : if (has_avx10) { - - 00a0d 83 bd 34 05 00 - 00 00 cmp DWORD PTR has_avx10$32[rbp], 0 - 00a14 0f 84 ef 00 00 - 00 je $LN23@sn_get_sim - -; 225 : int a10_eax = 0, a10_ebx = 0, a10_ecx = 0, a10_edx = 0; - - 00a1a c7 85 54 05 00 - 00 00 00 00 00 mov DWORD PTR a10_eax$33[rbp], 0 - 00a24 c7 85 74 05 00 - 00 00 00 00 00 mov DWORD PTR a10_ebx$34[rbp], 0 - 00a2e c7 85 94 05 00 - 00 00 00 00 00 mov DWORD PTR a10_ecx$35[rbp], 0 - 00a38 c7 85 b4 05 00 - 00 00 00 00 00 mov DWORD PTR a10_edx$36[rbp], 0 - -; 226 : get_cpuid(0x24, 0, &a10_eax, &a10_ebx, &a10_ecx, &a10_edx); - - 00a42 48 8d 85 b4 05 - 00 00 lea rax, QWORD PTR a10_edx$36[rbp] - 00a49 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 00a4e 48 8d 85 94 05 - 00 00 lea rax, QWORD PTR a10_ecx$35[rbp] - 00a55 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 00a5a 4c 8d 8d 74 05 - 00 00 lea r9, QWORD PTR a10_ebx$34[rbp] - 00a61 4c 8d 85 54 05 - 00 00 lea r8, QWORD PTR a10_eax$33[rbp] - 00a68 33 d2 xor edx, edx - 00a6a b9 24 00 00 00 mov ecx, 36 ; 00000024H - 00a6f e8 00 00 00 00 call get_cpuid - 00a74 90 npad 1 - -; 227 : const int avx10_ver = a10_ebx & 0xFF; - - 00a75 8b 85 74 05 00 - 00 mov eax, DWORD PTR a10_ebx$34[rbp] - 00a7b 25 ff 00 00 00 and eax, 255 ; 000000ffH - 00a80 89 85 d4 05 00 - 00 mov DWORD PTR avx10_ver$37[rbp], eax - -; 228 : if (avx10_ver >= 1) { - - 00a86 83 bd d4 05 00 - 00 01 cmp DWORD PTR avx10_ver$37[rbp], 1 - 00a8d 7c 7a jl SHORT $LN24@sn_get_sim - -; 229 : avx10_bits |= SIMDID_AVX10 | SIMDID_AVX10_V1; - - 00a8f 48 8b 85 18 03 - 00 00 mov rax, QWORD PTR avx10_bits$[rbp] - 00a96 48 83 c8 03 or rax, 3 - 00a9a 48 89 85 18 03 - 00 00 mov QWORD PTR avx10_bits$[rbp], rax - -; 230 : if (avx10_ver >= 2) - - 00aa1 83 bd d4 05 00 - 00 02 cmp DWORD PTR avx10_ver$37[rbp], 2 - 00aa8 7c 12 jl SHORT $LN25@sn_get_sim - -; 231 : avx10_bits |= SIMDID_AVX10_V2; - - 00aaa 48 8b 85 18 03 - 00 00 mov rax, QWORD PTR avx10_bits$[rbp] - 00ab1 48 83 c8 04 or rax, 4 - 00ab5 48 89 85 18 03 - 00 00 mov QWORD PTR avx10_bits$[rbp], rax -$LN25@sn_get_sim: - -; 232 : if (a10_ebx & (1 << 17)) - - 00abc 8b 85 74 05 00 - 00 mov eax, DWORD PTR a10_ebx$34[rbp] - 00ac2 25 00 00 02 00 and eax, 131072 ; 00020000H - 00ac7 85 c0 test eax, eax - 00ac9 74 12 je SHORT $LN26@sn_get_sim - -; 233 : avx10_bits |= SIMDID_AVX10_256W; - - 00acb 48 8b 85 18 03 - 00 00 mov rax, QWORD PTR avx10_bits$[rbp] - 00ad2 48 83 c8 08 or rax, 8 - 00ad6 48 89 85 18 03 - 00 00 mov QWORD PTR avx10_bits$[rbp], rax -$LN26@sn_get_sim: - -; 234 : if (a10_ebx & (1 << 18)) - - 00add 8b 85 74 05 00 - 00 mov eax, DWORD PTR a10_ebx$34[rbp] - 00ae3 25 00 00 04 00 and eax, 262144 ; 00040000H - 00ae8 85 c0 test eax, eax - 00aea 74 12 je SHORT $LN27@sn_get_sim - -; 235 : avx10_bits |= SIMDID_AVX10_512W; - - 00aec 48 8b 85 18 03 - 00 00 mov rax, QWORD PTR avx10_bits$[rbp] - 00af3 48 83 c8 10 or rax, 16 - 00af7 48 89 85 18 03 - 00 00 mov QWORD PTR avx10_bits$[rbp], rax -$LN27@sn_get_sim: - -; 236 : main_lvl = SIMDID_PACK_MAIN(SIMDID_MAIN_LVL_AVX10); - - 00afe 48 c7 85 98 02 - 00 00 00 05 00 - 00 mov QWORD PTR main_lvl$[rbp], 1280 ; 00000500H -$LN24@sn_get_sim: -$LN23@sn_get_sim: -$LN9@sn_get_sim: -$LN3@sn_get_sim: - -; 237 : } -; 238 : } -; 239 : } -; 240 : } -; 241 : -; 242 : /* uArchHi: hybrid core topology and SIMD-dual summary */ -; 243 : uint64_t uarch_bits = 0; - - 00b09 48 c7 85 f8 05 - 00 00 00 00 00 - 00 mov QWORD PTR uarch_bits$[rbp], 0 - -; 244 : if (has_hybrid) { - - 00b14 83 bd 34 03 00 - 00 00 cmp DWORD PTR has_hybrid$[rbp], 0 - 00b1b 0f 84 a9 00 00 - 00 je $LN28@sn_get_sim - -; 245 : int h_eax = 0, h_ebx = 0, h_ecx = 0, h_edx = 0; - - 00b21 c7 85 14 06 00 - 00 00 00 00 00 mov DWORD PTR h_eax$38[rbp], 0 - 00b2b c7 85 34 06 00 - 00 00 00 00 00 mov DWORD PTR h_ebx$39[rbp], 0 - 00b35 c7 85 54 06 00 - 00 00 00 00 00 mov DWORD PTR h_ecx$40[rbp], 0 - 00b3f c7 85 74 06 00 - 00 00 00 00 00 mov DWORD PTR h_edx$41[rbp], 0 - -; 246 : get_cpuid(0x1A, 0, &h_eax, &h_ebx, &h_ecx, &h_edx); - - 00b49 48 8d 85 74 06 - 00 00 lea rax, QWORD PTR h_edx$41[rbp] - 00b50 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 00b55 48 8d 85 54 06 - 00 00 lea rax, QWORD PTR h_ecx$40[rbp] - 00b5c 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 00b61 4c 8d 8d 34 06 - 00 00 lea r9, QWORD PTR h_ebx$39[rbp] - 00b68 4c 8d 85 14 06 - 00 00 lea r8, QWORD PTR h_eax$38[rbp] - 00b6f 33 d2 xor edx, edx - 00b71 b9 1a 00 00 00 mov ecx, 26 - 00b76 e8 00 00 00 00 call get_cpuid - 00b7b 90 npad 1 - -; 247 : unsigned core_type = (unsigned)(h_eax >> 24) & 0xFFU; - - 00b7c 8b 85 14 06 00 - 00 mov eax, DWORD PTR h_eax$38[rbp] - 00b82 c1 f8 18 sar eax, 24 - 00b85 25 ff 00 00 00 and eax, 255 ; 000000ffH - 00b8a 89 85 94 06 00 - 00 mov DWORD PTR core_type$42[rbp], eax - -; 248 : if (core_type == 0x40) /* Intel Core / P-core → 10 */ - - 00b90 83 bd 94 06 00 - 00 40 cmp DWORD PTR core_type$42[rbp], 64 ; 00000040H - 00b97 75 14 jne SHORT $LN30@sn_get_sim - -; 249 : uarch_bits |= SIMDID_UARCH_HYBRID_P; - - 00b99 48 8b 85 f8 05 - 00 00 mov rax, QWORD PTR uarch_bits$[rbp] - 00ba0 48 83 c8 02 or rax, 2 - 00ba4 48 89 85 f8 05 - 00 00 mov QWORD PTR uarch_bits$[rbp], rax - 00bab eb 1b jmp SHORT $LN31@sn_get_sim -$LN30@sn_get_sim: - -; 250 : else if (core_type == 0x20) /* Intel Atom / E-core → 01 */ - - 00bad 83 bd 94 06 00 - 00 20 cmp DWORD PTR core_type$42[rbp], 32 ; 00000020H - 00bb4 75 12 jne SHORT $LN32@sn_get_sim - -; 251 : uarch_bits |= SIMDID_UARCH_HYBRID_E; - - 00bb6 48 8b 85 f8 05 - 00 00 mov rax, QWORD PTR uarch_bits$[rbp] - 00bbd 48 83 c8 01 or rax, 1 - 00bc1 48 89 85 f8 05 - 00 00 mov QWORD PTR uarch_bits$[rbp], rax -$LN32@sn_get_sim: -$LN31@sn_get_sim: - -; 252 : /* else unknown hybrid core type → topology stays 00 */ -; 253 : } else { - - 00bc8 eb 12 jmp SHORT $LN29@sn_get_sim -$LN28@sn_get_sim: - -; 254 : /* Confirmed non-hybrid (unified) → set both bits = 11 (numerically strongest) */ -; 255 : uarch_bits |= SIMDID_UARCH_HYBRID_P | SIMDID_UARCH_HYBRID_E; - - 00bca 48 8b 85 f8 05 - 00 00 mov rax, QWORD PTR uarch_bits$[rbp] - 00bd1 48 83 c8 03 or rax, 3 - 00bd5 48 89 85 f8 05 - 00 00 mov QWORD PTR uarch_bits$[rbp], rax -$LN29@sn_get_sim: - -; 256 : } -; 257 : if ((avx_bits & SIMDID_AVX_DUAL) || - - 00bdc 48 8b 85 f8 02 - 00 00 mov rax, QWORD PTR avx_bits$[rbp] - 00be3 48 83 e0 10 and rax, 16 - 00be7 48 85 c0 test rax, rax - 00bea 75 13 jne SHORT $LN34@sn_get_sim - 00bec 48 8b 85 b8 02 - 00 00 mov rax, QWORD PTR avx512_bits$[rbp] - 00bf3 48 25 c0 00 00 - 00 and rax, 192 ; 000000c0H - 00bf9 48 83 f8 40 cmp rax, 64 ; 00000040H - 00bfd 75 12 jne SHORT $LN33@sn_get_sim -$LN34@sn_get_sim: - -; 258 : ((avx512_bits & SIMDID_AVX512_IMPL_MASK) == SIMDID_AVX512_IMPL_DUAL)) -; 259 : uarch_bits |= SIMDID_UARCH_SIMD_DUAL; - - 00bff 48 8b 85 f8 05 - 00 00 mov rax, QWORD PTR uarch_bits$[rbp] - 00c06 48 83 c8 04 or rax, 4 - 00c0a 48 89 85 f8 05 - 00 00 mov QWORD PTR uarch_bits$[rbp], rax -$LN33@sn_get_sim: - -; 260 : -; 261 : _simdid.mask = root | manu | main_lvl | SIMDID_PACK_AVX512(avx512_bits) | - - 00c11 48 8b 85 78 02 - 00 00 mov rax, QWORD PTR manu$[rbp] - 00c18 48 8b 8d 58 02 - 00 00 mov rcx, QWORD PTR root$[rbp] - 00c1f 48 0b c8 or rcx, rax - 00c22 48 8b c1 mov rax, rcx - 00c25 48 0b 85 98 02 - 00 00 or rax, QWORD PTR main_lvl$[rbp] - 00c2c 48 8b 8d b8 02 - 00 00 mov rcx, QWORD PTR avx512_bits$[rbp] - 00c33 48 81 e1 ff ff - 00 00 and rcx, 65535 ; 0000ffffH - 00c3a 48 c1 e1 10 shl rcx, 16 - 00c3e 48 0b c1 or rax, rcx - 00c41 48 8b 8d d8 02 - 00 00 mov rcx, QWORD PTR amx_bits$[rbp] - 00c48 48 81 e1 ff 00 - 00 00 and rcx, 255 ; 000000ffH - 00c4f 48 c1 e1 20 shl rcx, 32 ; 00000020H - 00c53 48 0b c1 or rax, rcx - 00c56 48 8b 8d f8 02 - 00 00 mov rcx, QWORD PTR avx_bits$[rbp] - 00c5d 48 81 e1 ff 00 - 00 00 and rcx, 255 ; 000000ffH - 00c64 48 c1 e1 28 shl rcx, 40 ; 00000028H - 00c68 48 0b c1 or rax, rcx - 00c6b 48 8b 8d 18 03 - 00 00 mov rcx, QWORD PTR avx10_bits$[rbp] - 00c72 48 81 e1 ff 00 - 00 00 and rcx, 255 ; 000000ffH - 00c79 48 c1 e1 30 shl rcx, 48 ; 00000030H - 00c7d 48 0b c1 or rax, rcx - 00c80 48 8b 8d f8 05 - 00 00 mov rcx, QWORD PTR uarch_bits$[rbp] - 00c87 48 81 e1 ff 00 - 00 00 and rcx, 255 ; 000000ffH - 00c8e 48 c1 e1 38 shl rcx, 56 ; 00000038H - 00c92 48 0b c1 or rax, rcx - 00c95 48 89 45 08 mov QWORD PTR _simdid$[rbp], rax - -; 262 : SIMDID_PACK_AMX(amx_bits) | SIMDID_PACK_AVX(avx_bits) | -; 263 : SIMDID_PACK_AVX10(avx10_bits) | SIMDID_PACK_UARCH(uarch_bits); -; 264 : return _simdid; - - 00c99 48 8b 45 08 mov rax, QWORD PTR _simdid$[rbp] -$LN35@sn_get_sim: - -; 265 : } - - 00c9d 48 8b f8 mov rdi, rax - 00ca0 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00ca4 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:sn_get_simd_level_local$rtcFrameData - 00cab e8 00 00 00 00 call _RTC_CheckStackVars - 00cb0 48 8b c7 mov rax, rdi - 00cb3 48 8b 8d d8 09 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00cba 48 33 cd xor rcx, rbp - 00cbd e8 00 00 00 00 call __security_check_cookie - 00cc2 48 8d a5 e8 09 - 00 00 lea rsp, QWORD PTR [rbp+2536] - 00cc9 5f pop rdi - 00cca 5d pop rbp - 00ccb c3 ret 0 -sn_get_simd_level_local ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\simdid.x86.c -; COMDAT sn_get_simd_level_global -_TEXT SEGMENT -sn_get_simd_level_global PROC ; COMDAT - -; 268 : { - -$LN4: - 00000 40 55 push rbp - 00002 57 push rdi - 00003 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__3EBA305F_simdid@x86@c - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001b 90 npad 1 - -; 269 : if (global_simdid.mask) { - - 0001c 48 83 3d 00 00 - 00 00 00 cmp QWORD PTR global_simdid, 0 - 00024 74 09 je SHORT $LN2@sn_get_sim - -; 270 : return global_simdid; - - 00026 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR global_simdid - 0002d eb 13 jmp SHORT $LN1@sn_get_sim -$LN2@sn_get_sim: - -; 271 : } -; 272 : global_simdid = sn_get_simd_level_local(); - - 0002f e8 00 00 00 00 call sn_get_simd_level_local - 00034 48 89 05 00 00 - 00 00 mov QWORD PTR global_simdid, rax - -; 273 : return global_simdid; - - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR global_simdid -$LN1@sn_get_sim: - -; 274 : } - - 00042 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00049 5f pop rdi - 0004a 5d pop rbp - 0004b c3 ret 0 -sn_get_simd_level_global ENDP -_TEXT ENDS -END diff --git a/obj/StgSharp.Native/Debug/x64/simdid.x86.nativecodeanalysis.sarif b/obj/StgSharp.Native/Debug/x64/simdid.x86.nativecodeanalysis.sarif deleted file mode 100644 index 61214b9e..00000000 --- a/obj/StgSharp.Native/Debug/x64/simdid.x86.nativecodeanalysis.sarif +++ /dev/null @@ -1,131 +0,0 @@ -{ - "version": "2.1.0", - "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", - "runs": [ - { - "results": [], - "tool": { - "driver": { - "name": "PREfast", - "fullName": "MSVC Code Analysis", - "version": "14.44.35220.0", - "informationUri": "https://aka.ms/cpp/ca" - } - }, - "invocations": [ - { - "executionSuccessful": true - } - ], - "artifacts": [ - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-src/simdid.x86.c" - }, - "roles": [ - "analysisTarget" - ], - "hashes": { - "sha-256": "d9174088608cc4c8eb2d0f790c5283b2045576d75b8c11769f241c4fa59392ae" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_target.h" - }, - "hashes": { - "sha-256": "b8c543a09db7bd21a2b409476024fa6bec6a5218d88ca036d15584ed453ceb91" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_internal.h" - }, - "hashes": { - "sha-256": "8a0f03b014c6d2740a21a13df48b1951932be000152771363cd554748facde0d" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrinsic.h" - }, - "hashes": { - "sha-256": "4da90105811ba902ad984b406834cf36cf43862047957dad5471c0b24d221ace" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/stgsharpnative.h" - }, - "hashes": { - "sha-256": "5eee6b3faf7bf2247fe44898b0fcb71794c346ae2f0b58953e1632a49c1b6c4e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/stbi/stb_image.h" - }, - "hashes": { - "sha-256": "c45e3ef56a7d946654740f02e25fcb99a819861155ad1173349a289f2a000ce2" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/gl.h" - }, - "hashes": { - "sha-256": "c9d0960c919f9ef4cfa6449f2b0c00f2ad8286b420e01ee7ec34b40c618392fc" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/khrplatform.h" - }, - "hashes": { - "sha-256": "f5b69ed6a7bef6651526abb2d1263811d59acdba7a29368bb9be1a0f9e80160f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/wgl.h" - }, - "hashes": { - "sha-256": "86d6c58acb0a92b35ce8d94d6817fcec3f73d9e147e8621f468f143db1bbd81f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/glfw/glfw3.h" - }, - "hashes": { - "sha-256": "85c584857dddd780c131940ed69cd516c2b60d61664df9cb254710c3602c1008" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/glfw_function.h" - }, - "hashes": { - "sha-256": "4baa73f465e3e347fc0ad0ff666a6db2e83e749acd770f4bee02c12a7b9ec36e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_matkernel.h" - }, - "hashes": { - "sha-256": "19f0030c441ae5c4cec0b446b64daa10448fafd44d4fd6dd2232b84f5ed9aad1" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrincontext.x86.h" - }, - "hashes": { - "sha-256": "bbc00ee7320b30ca1234dc7908e4695ff6d5bb2ba3224e4ffaed345010ba8f48" - } - } - ] - } - ] -} \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/simdid.x86.nativecodeanalysis.xml b/obj/StgSharp.Native/Debug/x64/simdid.x86.nativecodeanalysis.xml deleted file mode 100644 index dcdf0885..00000000 --- a/obj/StgSharp.Native/Debug/x64/simdid.x86.nativecodeanalysis.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/simdid_compare.x86.cod b/obj/StgSharp.Native/Debug/x64/simdid_compare.x86.cod deleted file mode 100644 index b2122638..00000000 --- a/obj/StgSharp.Native/Debug/x64/simdid_compare.x86.cod +++ /dev/null @@ -1,1259 +0,0 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.44.35220.0 - -include listing.inc - -INCLUDELIB MSVCRTD -INCLUDELIB OLDNAMES - -_DATA SEGMENT -COMM infolog:BYTE:0200H -_DATA ENDS -msvcjmc SEGMENT -__5C8CA4D3_mmintrin@h DB 01H -__8C83BECC_concurrencysal@h DB 01H -__608E3340_sal@h DB 01H -__FB67E29A_vadefs@h DB 01H -__1D1B619C_vcruntime@h DB 01H -__735960E1_corecrt@h DB 01H -__211DB995_corecrt_malloc@h DB 01H -__7CD62D9E_malloc@h DB 01H -__9DCE0DC8_xmmintrin@h DB 01H -__4C2AD0C7_winpackagefamily@h DB 01H -__9DED9ED1_winapifamily@h DB 01H -__12FEDF4E_sdkddkver@h DB 01H -__9BAEE128_excpt@h DB 01H -__B7B53233_stdarg@h DB 01H -__6B04FCB3_specstrings_undef@h DB 01H -__F4027AF7_specstrings_strict@h DB 01H -__B90340D4_sdv_driverspecs@h DB 01H -__BFFF5AD3_driverspecs@h DB 01H -__32847078_specstrings@h DB 01H -__108B2620_corecrt_wctype@h DB 01H -__6CD6613D_ctype@h DB 01H -__30902A1F_kernelspecs@h DB 01H -__376FD5CA_basetsd@h DB 01H -__13DE2371_errno@h DB 01H -__8C6AE390_vcruntime_string@h DB 01H -__8ACB2152_corecrt_memcpy_s@h DB 01H -__EA6C9D17_corecrt_memory@h DB 01H -__0DF2AF52_corecrt_wstring@h DB 01H -__6E889ECC_string@h DB 01H -__9BEDF4DE_guiddef@h DB 01H -__51BFD2FE_pshpack4@h DB 01H -__31652CEA_poppack@h DB 01H -__5532AE4C_pshpack2@h DB 01H -__58A52B9A_pshpack8@h DB 01H -__57741015_pshpack1@h DB 01H -__CDE68C90_apiset@h DB 01H -__0BF06E8D_ktmtypes@h DB 01H -__40C200C0_winnt@h DB 01H -__9336F789_minwindef@h DB 01H -__55136115_windef@h DB 01H -__32205BF0_apisetcconv@h DB 01H -__B48FDEA0_minwinbase@h DB 01H -__3551B028_apiquery2@h DB 01H -__65BE04AA_processenv@h DB 01H -__4767CA46_fileapi@h DB 01H -__282E6C4B_fileapifromapp@h DB 01H -__393AF12C_debugapi@h DB 01H -__EBC502B8_utilapiset@h DB 01H -__1EAD8C69_handleapi@h DB 01H -__D8EF9B29_errhandlingapi@h DB 01H -__97FC1204_fibersapi@h DB 01H -__27448220_namedpipeapi@h DB 01H -__6EA33B2A_profileapi@h DB 01H -__EAC6F673_heapapi@h DB 01H -__D64EEA5A_ioapiset@h DB 01H -__144BD4B6_synchapi@h DB 01H -__03B1C640_interlockedapi@h DB 01H -__DC64CB38_processthreadsapi@h DB 01H -__D719B518_sysinfoapi@h DB 01H -__410385B1_memoryapi@h DB 01H -__C1AD45EF_enclaveapi@h DB 01H -__F4C3AA32_threadpoollegacyapiset@h DB 01H -__AC5A7A9F_threadpoolapiset@h DB 01H -__F5254B21_jobapi@h DB 01H -__BCEA6EE8_jobapi2@h DB 01H -__D18ACE72_wow64apiset@h DB 01H -__669B0D4A_libloaderapi@h DB 01H -__645F7034_securitybaseapi@h DB 01H -__67E58557_namespaceapi@h DB 01H -__599D9D3A_systemtopologyapi@h DB 01H -__2337E373_processtopologyapi@h DB 01H -__02BFF239_securityappcontainer@h DB 01H -__9C196272_realtimeapiset@h DB 01H -__5AB313A4_winerror@h DB 01H -__B7E7187B_timezoneapi@h DB 01H -__6DE9EB6F_winbase@h DB 01H -__56B2AFF2_wingdi@h DB 01H -__BA1161A9_tvout@h DB 01H -__0501A018_winuser@h DB 01H -__EF12FA99_datetimeapi@h DB 01H -__8FA7C3CA_winnls@h DB 01H -__390F0C47_stringapiset@h DB 01H -__28605B0A_wincontypes@h DB 01H -__BFBDE86D_consoleapi@h DB 01H -__C3CAFBF0_consoleapi2@h DB 01H -__C20891C7_consoleapi3@h DB 01H -__717C98B6_wincon@h DB 01H -__2884C177_verrsrc@h DB 01H -__A3FD3A34_winver@h DB 01H -__6F8AD9F1_reason@h DB 01H -__4C90FD6F_winreg@h DB 01H -__68AFEBAD_wnnc@h DB 01H -__5A7AB086_winnetwk@h DB 01H -__2FE8A10C_stralign@h DB 01H -__34558472_winsvc@h DB 01H -__058845F1_mcx@h DB 01H -__7F16006B_ime_cmodes@h DB 01H -__0A3AF599_imm@h DB 01H -__9349FE86_windows@h DB 01H -__639A050C_sn_internal@h DB 01H -__836A8CFC_stdint@h DB 01H -__714FE6D7_sn_target@h DB 01H -__60B45B40_corecrt_stdio_config@h DB 01H -__CFA3741E_corecrt_wstdio@h DB 01H -__B3FE3303_stdio@h DB 01H -__955456CD_stddef@h DB 01H -__99AED4FB_corecrt_search@h DB 01H -__8B813BF6_corecrt_wstdlib@h DB 01H -__3D1CA2C3_limits@h DB 01H -__E8FB0A68_stdlib@h DB 01H -__F562FA57_stb_image@h DB 01H -__C95DC661_khrplatform@h DB 01H -__6C577136_gl@h DB 01H -__EE638A2C_wgl@h DB 01H -__8EF9E35C_glfw3@h DB 01H -__F8AC8404_emmintrin@h DB 01H -__270DEC8D_pmmintrin@h DB 01H -__97D49F0F_tmmintrin@h DB 01H -__BEEF8A8C_smmintrin@h DB 01H -__DB8D0340_nmmintrin@h DB 01H -__0E36F90E_wmmintrin@h DB 01H -__C5A2B409_zmmintrin@h DB 01H -__F2B616C3_immintrin@h DB 01H -__9FB25DBE_assert@h DB 01H -__4E664295_glfw_function@h DB 01H -__64C0EF11_StgSharpNative@h DB 01H -__E2EC0CAF_sn_matkernel@h DB 01H -__47E843D2_intrin0@inl@h DB 01H -__130964FF_setjmp@h DB 01H -__4875F786_ammintrin@h DB 01H -__353FD888_intrin@h DB 01H -__5FE1E9E3_isa_availability@h DB 01H -__AA840D82_sn_intrinsic@h DB 01H -__CE29950A_sn_intrincontext@x86@h DB 01H -__36E6045D_simdid_compare@x86@c DB 01H -msvcjmc ENDS -CONST SEGMENT -impl_strength_table DD 01H - DD 00H - DD 02H - DD 01H -CONST ENDS -PUBLIC sn_get_unite_simd -PUBLIC sn_compare_simd -PUBLIC __JustMyCode_Default -EXTRN _RTC_CheckStackVars:PROC -EXTRN _RTC_InitBase:PROC -EXTRN _RTC_Shutdown:PROC -EXTRN __CheckForDebuggerJustMyCode:PROC -; COMDAT pdata -pdata SEGMENT -$pdata$sn_get_unite_simd DD imagerel $LN9 - DD imagerel $LN9+899 - DD imagerel $unwind$sn_get_unite_simd -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$sn_compare_simd DD imagerel $LN34 - DD imagerel $LN34+1037 - DD imagerel $unwind$sn_compare_simd -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$popcount16 DD imagerel popcount16 - DD imagerel popcount16+100 - DD imagerel $unwind$popcount16 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$impl_strength DD imagerel impl_strength - DD imagerel impl_strength+71 - DD imagerel $unwind$impl_strength -pdata ENDS -; COMDAT rtc$TMZ -rtc$TMZ SEGMENT -_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown -rtc$TMZ ENDS -; COMDAT rtc$IMZ -rtc$IMZ SEGMENT -_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase -rtc$IMZ ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$impl_strength DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$popcount16 DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$sn_compare_simd DD 025051801H - DD 01132318H - DD 0700c0085H - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$sn_get_unite_simd DD 025053101H - DD 01132318H - DD 0700c005dH - DD 0500bH -xdata ENDS -; COMDAT CONST -CONST SEGMENT -sn_get_unite_simd$rtcName$0 DB 06fH - DB 075H - DB 074H - DB 00H - ORG $+12 -sn_get_unite_simd$rtcVarDesc DD 028H - DD 08H - DQ FLAT:sn_get_unite_simd$rtcName$0 - ORG $+48 -sn_get_unite_simd$rtcFrameData DD 01H - DD 00H - DQ FLAT:sn_get_unite_simd$rtcVarDesc -CONST ENDS -; Function compile flags: /Odt -; COMDAT __JustMyCode_Default -_TEXT SEGMENT -__JustMyCode_Default PROC ; COMDAT - 00000 c2 00 00 ret 0 -__JustMyCode_Default ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\simdid_compare.x86.c -; COMDAT impl_strength -_TEXT SEGMENT -impl$ = 4 -avx512$ = 256 -impl_strength PROC ; COMDAT - -; 48 : { - - 00000 66 89 4c 24 08 mov WORD PTR [rsp+8], cx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__36E6045D_simdid_compare@x86@c - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 49 : unsigned impl = (avx512 >> SIMDID_AVX512_IMPL_SHIFT) & 0x3u; - - 00020 0f b7 85 00 01 - 00 00 movzx eax, WORD PTR avx512$[rbp] - 00027 c1 f8 06 sar eax, 6 - 0002a 83 e0 03 and eax, 3 - 0002d 89 45 04 mov DWORD PTR impl$[rbp], eax - -; 50 : return impl_strength_table[impl]; - - 00030 8b 45 04 mov eax, DWORD PTR impl$[rbp] - 00033 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:impl_strength_table - 0003a 8b 04 81 mov eax, DWORD PTR [rcx+rax*4] - -; 51 : } - - 0003d 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 -impl_strength ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\simdid_compare.x86.c -; COMDAT popcount16 -_TEXT SEGMENT -c$ = 4 -v$ = 256 -popcount16 PROC ; COMDAT - -; 33 : { - - 00000 66 89 4c 24 08 mov WORD PTR [rsp+8], cx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__36E6045D_simdid_compare@x86@c - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 34 : int c = 0; - - 00020 c7 45 04 00 00 - 00 00 mov DWORD PTR c$[rbp], 0 -$LN2@popcount16: - -; 35 : while (v) { - - 00027 0f b7 85 00 01 - 00 00 movzx eax, WORD PTR v$[rbp] - 0002e 85 c0 test eax, eax - 00030 74 25 je SHORT $LN3@popcount16 - -; 36 : v &= v - 1; - - 00032 0f b7 85 00 01 - 00 00 movzx eax, WORD PTR v$[rbp] - 00039 ff c8 dec eax - 0003b 0f b7 8d 00 01 - 00 00 movzx ecx, WORD PTR v$[rbp] - 00042 23 c8 and ecx, eax - 00044 8b c1 mov eax, ecx - 00046 66 89 85 00 01 - 00 00 mov WORD PTR v$[rbp], ax - -; 37 : c++; - - 0004d 8b 45 04 mov eax, DWORD PTR c$[rbp] - 00050 ff c0 inc eax - 00052 89 45 04 mov DWORD PTR c$[rbp], eax - -; 38 : } - - 00055 eb d0 jmp SHORT $LN2@popcount16 -$LN3@popcount16: - -; 39 : return c; - - 00057 8b 45 04 mov eax, DWORD PTR c$[rbp] - -; 40 : } - - 0005a 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00061 5f pop rdi - 00062 5d pop rbp - 00063 c3 ret 0 -popcount16 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\simdid_compare.x86.c -; COMDAT sn_compare_simd -_TEXT SEGMENT -lm$ = 4 -rm$ = 36 -la$1 = 68 -ra$2 = 100 -l512$3 = 132 -r512$4 = 164 -lb$5 = 196 -rb$6 = 228 -drop$7 = 260 -ext_mask$8 = 292 -lp$9 = 324 -rp$10 = 356 -ls$11 = 388 -rs$12 = 420 -lu$ = 452 -ru$ = 484 -lt$ = 516 -rt$ = 548 -ld$ = 580 -rd$ = 612 -tv191 = 1012 -tv72 = 1012 -tv82 = 1012 -tv137 = 1012 -tv141 = 1012 -tv144 = 1012 -tv164 = 1012 -tv171 = 1012 -tv182 = 1012 -tv185 = 1012 -tv188 = 1012 -left$ = 1056 -right$ = 1064 -sn_compare_simd PROC ; COMDAT - -; 157 : { - -$LN34: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 28 04 - 00 00 sub rsp, 1064 ; 00000428H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__36E6045D_simdid_compare@x86@c - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 - -; 158 : /* 1. MainLevel */ -; 159 : unsigned lm = FIELD_MAIN(left); - - 00025 b8 01 00 00 00 mov eax, 1 - 0002a 48 6b c0 01 imul rax, rax, 1 - 0002e 0f b6 84 05 20 - 04 00 00 movzx eax, BYTE PTR left$[rbp+rax] - 00036 89 45 04 mov DWORD PTR lm$[rbp], eax - -; 160 : unsigned rm = FIELD_MAIN(right); - - 00039 b8 01 00 00 00 mov eax, 1 - 0003e 48 6b c0 01 imul rax, rax, 1 - 00042 0f b6 84 05 28 - 04 00 00 movzx eax, BYTE PTR right$[rbp+rax] - 0004a 89 45 24 mov DWORD PTR rm$[rbp], eax - -; 161 : if (lm != rm) - - 0004d 8b 45 24 mov eax, DWORD PTR rm$[rbp] - 00050 39 45 04 cmp DWORD PTR lm$[rbp], eax - 00053 74 29 je SHORT $LN2@sn_compare - -; 162 : return lm > rm ? 1 : -1; - - 00055 8b 45 24 mov eax, DWORD PTR rm$[rbp] - 00058 39 45 04 cmp DWORD PTR lm$[rbp], eax - 0005b 76 0c jbe SHORT $LN12@sn_compare - 0005d c7 85 f4 03 00 - 00 01 00 00 00 mov DWORD PTR tv72[rbp], 1 - 00067 eb 0a jmp SHORT $LN13@sn_compare -$LN12@sn_compare: - 00069 c7 85 f4 03 00 - 00 ff ff ff ff mov DWORD PTR tv72[rbp], -1 -$LN13@sn_compare: - 00073 8b 85 f4 03 00 - 00 mov eax, DWORD PTR tv72[rbp] - 00079 e9 85 03 00 00 jmp $LN1@sn_compare -$LN2@sn_compare: - -; 163 : -; 164 : /* 2. AVX10 width (only when MainLevel == AVX10) */ -; 165 : if (lm >= SIMDID_MAIN_LVL_AVX10) { - - 0007e 83 7d 04 05 cmp DWORD PTR lm$[rbp], 5 - 00082 72 59 jb SHORT $LN3@sn_compare - -; 166 : unsigned la = FIELD_AVX10(left); - - 00084 b8 01 00 00 00 mov eax, 1 - 00089 48 6b c0 06 imul rax, rax, 6 - 0008d 0f b6 84 05 20 - 04 00 00 movzx eax, BYTE PTR left$[rbp+rax] - 00095 89 45 44 mov DWORD PTR la$1[rbp], eax - -; 167 : unsigned ra = FIELD_AVX10(right); - - 00098 b8 01 00 00 00 mov eax, 1 - 0009d 48 6b c0 06 imul rax, rax, 6 - 000a1 0f b6 84 05 28 - 04 00 00 movzx eax, BYTE PTR right$[rbp+rax] - 000a9 89 45 64 mov DWORD PTR ra$2[rbp], eax - -; 168 : if (la != ra) - - 000ac 8b 45 64 mov eax, DWORD PTR ra$2[rbp] - 000af 39 45 44 cmp DWORD PTR la$1[rbp], eax - 000b2 74 29 je SHORT $LN4@sn_compare - -; 169 : return la > ra ? 1 : -1; - - 000b4 8b 45 64 mov eax, DWORD PTR ra$2[rbp] - 000b7 39 45 44 cmp DWORD PTR la$1[rbp], eax - 000ba 76 0c jbe SHORT $LN14@sn_compare - 000bc c7 85 f4 03 00 - 00 01 00 00 00 mov DWORD PTR tv82[rbp], 1 - 000c6 eb 0a jmp SHORT $LN15@sn_compare -$LN14@sn_compare: - 000c8 c7 85 f4 03 00 - 00 ff ff ff ff mov DWORD PTR tv82[rbp], -1 -$LN15@sn_compare: - 000d2 8b 85 f4 03 00 - 00 mov eax, DWORD PTR tv82[rbp] - 000d8 e9 26 03 00 00 jmp $LN1@sn_compare -$LN4@sn_compare: -$LN3@sn_compare: - -; 170 : } -; 171 : -; 172 : /* 3. AVX512 BASE (only when MainLevel >= AVX512) */ -; 173 : if (lm >= SIMDID_MAIN_LVL_AVX512) { - - 000dd 83 7d 04 03 cmp DWORD PTR lm$[rbp], 3 - 000e1 0f 82 fe 01 00 - 00 jb $LN5@sn_compare - -; 174 : uint16_t l512 = FIELD_AVX512(left); - - 000e7 b8 01 00 00 00 mov eax, 1 - 000ec 48 6b c0 02 imul rax, rax, 2 - 000f0 0f b6 84 05 20 - 04 00 00 movzx eax, BYTE PTR left$[rbp+rax] - 000f8 b9 01 00 00 00 mov ecx, 1 - 000fd 48 6b c9 03 imul rcx, rcx, 3 - 00101 0f b6 8c 0d 20 - 04 00 00 movzx ecx, BYTE PTR left$[rbp+rcx] - 00109 c1 e1 08 shl ecx, 8 - 0010c 0b c1 or eax, ecx - 0010e 66 89 85 84 00 - 00 00 mov WORD PTR l512$3[rbp], ax - -; 175 : uint16_t r512 = FIELD_AVX512(right); - - 00115 b8 01 00 00 00 mov eax, 1 - 0011a 48 6b c0 02 imul rax, rax, 2 - 0011e 0f b6 84 05 28 - 04 00 00 movzx eax, BYTE PTR right$[rbp+rax] - 00126 b9 01 00 00 00 mov ecx, 1 - 0012b 48 6b c9 03 imul rcx, rcx, 3 - 0012f 0f b6 8c 0d 28 - 04 00 00 movzx ecx, BYTE PTR right$[rbp+rcx] - 00137 c1 e1 08 shl ecx, 8 - 0013a 0b c1 or eax, ecx - 0013c 66 89 85 a4 00 - 00 00 mov WORD PTR r512$4[rbp], ax - -; 176 : -; 177 : int lb = (l512 & SIMDID_AVX512_BASE) != 0; - - 00143 0f b7 85 84 00 - 00 00 movzx eax, WORD PTR l512$3[rbp] - 0014a 83 e0 10 and eax, 16 - 0014d 85 c0 test eax, eax - 0014f 74 0c je SHORT $LN16@sn_compare - 00151 c7 85 f4 03 00 - 00 01 00 00 00 mov DWORD PTR tv137[rbp], 1 - 0015b eb 0a jmp SHORT $LN17@sn_compare -$LN16@sn_compare: - 0015d c7 85 f4 03 00 - 00 00 00 00 00 mov DWORD PTR tv137[rbp], 0 -$LN17@sn_compare: - 00167 8b 85 f4 03 00 - 00 mov eax, DWORD PTR tv137[rbp] - 0016d 89 85 c4 00 00 - 00 mov DWORD PTR lb$5[rbp], eax - -; 178 : int rb = (r512 & SIMDID_AVX512_BASE) != 0; - - 00173 0f b7 85 a4 00 - 00 00 movzx eax, WORD PTR r512$4[rbp] - 0017a 83 e0 10 and eax, 16 - 0017d 85 c0 test eax, eax - 0017f 74 0c je SHORT $LN18@sn_compare - 00181 c7 85 f4 03 00 - 00 01 00 00 00 mov DWORD PTR tv141[rbp], 1 - 0018b eb 0a jmp SHORT $LN19@sn_compare -$LN18@sn_compare: - 0018d c7 85 f4 03 00 - 00 00 00 00 00 mov DWORD PTR tv141[rbp], 0 -$LN19@sn_compare: - 00197 8b 85 f4 03 00 - 00 mov eax, DWORD PTR tv141[rbp] - 0019d 89 85 e4 00 00 - 00 mov DWORD PTR rb$6[rbp], eax - -; 179 : if (lb != rb) - - 001a3 8b 85 e4 00 00 - 00 mov eax, DWORD PTR rb$6[rbp] - 001a9 39 85 c4 00 00 - 00 cmp DWORD PTR lb$5[rbp], eax - 001af 74 2f je SHORT $LN6@sn_compare - -; 180 : return lb > rb ? 1 : -1; - - 001b1 8b 85 e4 00 00 - 00 mov eax, DWORD PTR rb$6[rbp] - 001b7 39 85 c4 00 00 - 00 cmp DWORD PTR lb$5[rbp], eax - 001bd 7e 0c jle SHORT $LN20@sn_compare - 001bf c7 85 f4 03 00 - 00 01 00 00 00 mov DWORD PTR tv144[rbp], 1 - 001c9 eb 0a jmp SHORT $LN21@sn_compare -$LN20@sn_compare: - 001cb c7 85 f4 03 00 - 00 ff ff ff ff mov DWORD PTR tv144[rbp], -1 -$LN21@sn_compare: - 001d5 8b 85 f4 03 00 - 00 mov eax, DWORD PTR tv144[rbp] - 001db e9 23 02 00 00 jmp $LN1@sn_compare -$LN6@sn_compare: - -; 181 : -; 182 : // 4. Extension popcount (mask out BASE + IMPL + reserved low nibble) -; 183 : int drop = ~(SIMDID_AVX512_BASE | SIMDID_AVX512_IMPL_MASK | 0x000Fu); - - 001e0 c7 85 04 01 00 - 00 20 ff ff ff mov DWORD PTR drop$7[rbp], -224 ; ffffffffffffff20H - -; 184 : uint16_t ext_mask = drop & (l512 | r512); /* only consider bits set in either */ - - 001ea 0f b7 85 84 00 - 00 00 movzx eax, WORD PTR l512$3[rbp] - 001f1 0f b7 8d a4 00 - 00 00 movzx ecx, WORD PTR r512$4[rbp] - 001f8 0b c1 or eax, ecx - 001fa 8b 8d 04 01 00 - 00 mov ecx, DWORD PTR drop$7[rbp] - 00200 23 c8 and ecx, eax - 00202 8b c1 mov eax, ecx - 00204 66 89 85 24 01 - 00 00 mov WORD PTR ext_mask$8[rbp], ax - -; 185 : int lp = popcount16(l512 & ext_mask); - - 0020b 0f b7 85 84 00 - 00 00 movzx eax, WORD PTR l512$3[rbp] - 00212 0f b7 8d 24 01 - 00 00 movzx ecx, WORD PTR ext_mask$8[rbp] - 00219 23 c1 and eax, ecx - 0021b 0f b7 c8 movzx ecx, ax - 0021e e8 00 00 00 00 call popcount16 - 00223 89 85 44 01 00 - 00 mov DWORD PTR lp$9[rbp], eax - -; 186 : int rp = popcount16(r512 & ext_mask); - - 00229 0f b7 85 a4 00 - 00 00 movzx eax, WORD PTR r512$4[rbp] - 00230 0f b7 8d 24 01 - 00 00 movzx ecx, WORD PTR ext_mask$8[rbp] - 00237 23 c1 and eax, ecx - 00239 0f b7 c8 movzx ecx, ax - 0023c e8 00 00 00 00 call popcount16 - 00241 89 85 64 01 00 - 00 mov DWORD PTR rp$10[rbp], eax - -; 187 : if (lp != rp) - - 00247 8b 85 64 01 00 - 00 mov eax, DWORD PTR rp$10[rbp] - 0024d 39 85 44 01 00 - 00 cmp DWORD PTR lp$9[rbp], eax - 00253 74 2f je SHORT $LN7@sn_compare - -; 188 : return lp > rp ? 1 : -1; - - 00255 8b 85 64 01 00 - 00 mov eax, DWORD PTR rp$10[rbp] - 0025b 39 85 44 01 00 - 00 cmp DWORD PTR lp$9[rbp], eax - 00261 7e 0c jle SHORT $LN22@sn_compare - 00263 c7 85 f4 03 00 - 00 01 00 00 00 mov DWORD PTR tv164[rbp], 1 - 0026d eb 0a jmp SHORT $LN23@sn_compare -$LN22@sn_compare: - 0026f c7 85 f4 03 00 - 00 ff ff ff ff mov DWORD PTR tv164[rbp], -1 -$LN23@sn_compare: - 00279 8b 85 f4 03 00 - 00 mov eax, DWORD PTR tv164[rbp] - 0027f e9 7f 01 00 00 jmp $LN1@sn_compare -$LN7@sn_compare: - -; 189 : -; 190 : /* 5. IMPL strength */ -; 191 : int ls = impl_strength(l512); - - 00284 0f b7 8d 84 00 - 00 00 movzx ecx, WORD PTR l512$3[rbp] - 0028b e8 00 00 00 00 call impl_strength - 00290 89 85 84 01 00 - 00 mov DWORD PTR ls$11[rbp], eax - -; 192 : int rs = impl_strength(r512); - - 00296 0f b7 8d a4 00 - 00 00 movzx ecx, WORD PTR r512$4[rbp] - 0029d e8 00 00 00 00 call impl_strength - 002a2 89 85 a4 01 00 - 00 mov DWORD PTR rs$12[rbp], eax - -; 193 : if (ls != rs) - - 002a8 8b 85 a4 01 00 - 00 mov eax, DWORD PTR rs$12[rbp] - 002ae 39 85 84 01 00 - 00 cmp DWORD PTR ls$11[rbp], eax - 002b4 74 2f je SHORT $LN8@sn_compare - -; 194 : return ls > rs ? 1 : -1; - - 002b6 8b 85 a4 01 00 - 00 mov eax, DWORD PTR rs$12[rbp] - 002bc 39 85 84 01 00 - 00 cmp DWORD PTR ls$11[rbp], eax - 002c2 7e 0c jle SHORT $LN24@sn_compare - 002c4 c7 85 f4 03 00 - 00 01 00 00 00 mov DWORD PTR tv171[rbp], 1 - 002ce eb 0a jmp SHORT $LN25@sn_compare -$LN24@sn_compare: - 002d0 c7 85 f4 03 00 - 00 ff ff ff ff mov DWORD PTR tv171[rbp], -1 -$LN25@sn_compare: - 002da 8b 85 f4 03 00 - 00 mov eax, DWORD PTR tv171[rbp] - 002e0 e9 1e 01 00 00 jmp $LN1@sn_compare -$LN8@sn_compare: -$LN5@sn_compare: - -; 195 : } -; 196 : -; 197 : /* 6. uArchHi topology bits [1..0]: unified(3) > P(2) > E(1) > unknown(0) */ -; 198 : unsigned lu = FIELD_UARCH(left); - - 002e5 b8 01 00 00 00 mov eax, 1 - 002ea 48 6b c0 07 imul rax, rax, 7 - 002ee 0f b6 84 05 20 - 04 00 00 movzx eax, BYTE PTR left$[rbp+rax] - 002f6 89 85 c4 01 00 - 00 mov DWORD PTR lu$[rbp], eax - -; 199 : unsigned ru = FIELD_UARCH(right); - - 002fc b8 01 00 00 00 mov eax, 1 - 00301 48 6b c0 07 imul rax, rax, 7 - 00305 0f b6 84 05 28 - 04 00 00 movzx eax, BYTE PTR right$[rbp+rax] - 0030d 89 85 e4 01 00 - 00 mov DWORD PTR ru$[rbp], eax - -; 200 : unsigned lt = lu & 0x3u; - - 00313 8b 85 c4 01 00 - 00 mov eax, DWORD PTR lu$[rbp] - 00319 83 e0 03 and eax, 3 - 0031c 89 85 04 02 00 - 00 mov DWORD PTR lt$[rbp], eax - -; 201 : unsigned rt = ru & 0x3u; - - 00322 8b 85 e4 01 00 - 00 mov eax, DWORD PTR ru$[rbp] - 00328 83 e0 03 and eax, 3 - 0032b 89 85 24 02 00 - 00 mov DWORD PTR rt$[rbp], eax - -; 202 : if (lt != rt) - - 00331 8b 85 24 02 00 - 00 mov eax, DWORD PTR rt$[rbp] - 00337 39 85 04 02 00 - 00 cmp DWORD PTR lt$[rbp], eax - 0033d 74 2f je SHORT $LN9@sn_compare - -; 203 : return lt > rt ? 1 : -1; - - 0033f 8b 85 24 02 00 - 00 mov eax, DWORD PTR rt$[rbp] - 00345 39 85 04 02 00 - 00 cmp DWORD PTR lt$[rbp], eax - 0034b 76 0c jbe SHORT $LN26@sn_compare - 0034d c7 85 f4 03 00 - 00 01 00 00 00 mov DWORD PTR tv182[rbp], 1 - 00357 eb 0a jmp SHORT $LN27@sn_compare -$LN26@sn_compare: - 00359 c7 85 f4 03 00 - 00 ff ff ff ff mov DWORD PTR tv182[rbp], -1 -$LN27@sn_compare: - 00363 8b 85 f4 03 00 - 00 mov eax, DWORD PTR tv182[rbp] - 00369 e9 95 00 00 00 jmp $LN1@sn_compare -$LN9@sn_compare: - -; 204 : -; 205 : /* 7. uArchHi SIMD_DUAL: non-dual (SIMD_DUAL=0) > dual (SIMD_DUAL=1) */ -; 206 : int ld = (lu & SIMDID_UARCH_SIMD_DUAL) != 0; - - 0036e 8b 85 c4 01 00 - 00 mov eax, DWORD PTR lu$[rbp] - 00374 83 e0 04 and eax, 4 - 00377 85 c0 test eax, eax - 00379 74 0c je SHORT $LN28@sn_compare - 0037b c7 85 f4 03 00 - 00 01 00 00 00 mov DWORD PTR tv185[rbp], 1 - 00385 eb 0a jmp SHORT $LN29@sn_compare -$LN28@sn_compare: - 00387 c7 85 f4 03 00 - 00 00 00 00 00 mov DWORD PTR tv185[rbp], 0 -$LN29@sn_compare: - 00391 8b 85 f4 03 00 - 00 mov eax, DWORD PTR tv185[rbp] - 00397 89 85 44 02 00 - 00 mov DWORD PTR ld$[rbp], eax - -; 207 : int rd = (ru & SIMDID_UARCH_SIMD_DUAL) != 0; - - 0039d 8b 85 e4 01 00 - 00 mov eax, DWORD PTR ru$[rbp] - 003a3 83 e0 04 and eax, 4 - 003a6 85 c0 test eax, eax - 003a8 74 0c je SHORT $LN30@sn_compare - 003aa c7 85 f4 03 00 - 00 01 00 00 00 mov DWORD PTR tv188[rbp], 1 - 003b4 eb 0a jmp SHORT $LN31@sn_compare -$LN30@sn_compare: - 003b6 c7 85 f4 03 00 - 00 00 00 00 00 mov DWORD PTR tv188[rbp], 0 -$LN31@sn_compare: - 003c0 8b 85 f4 03 00 - 00 mov eax, DWORD PTR tv188[rbp] - 003c6 89 85 64 02 00 - 00 mov DWORD PTR rd$[rbp], eax - -; 208 : if (ld != rd) - - 003cc 8b 85 64 02 00 - 00 mov eax, DWORD PTR rd$[rbp] - 003d2 39 85 44 02 00 - 00 cmp DWORD PTR ld$[rbp], eax - 003d8 74 27 je SHORT $LN10@sn_compare - -; 209 : return ld ? -1 : 1; /* non-dual is stronger */ - - 003da 83 bd 44 02 00 - 00 00 cmp DWORD PTR ld$[rbp], 0 - 003e1 74 0c je SHORT $LN32@sn_compare - 003e3 c7 85 f4 03 00 - 00 ff ff ff ff mov DWORD PTR tv191[rbp], -1 - 003ed eb 0a jmp SHORT $LN33@sn_compare -$LN32@sn_compare: - 003ef c7 85 f4 03 00 - 00 01 00 00 00 mov DWORD PTR tv191[rbp], 1 -$LN33@sn_compare: - 003f9 8b 85 f4 03 00 - 00 mov eax, DWORD PTR tv191[rbp] - 003ff eb 02 jmp SHORT $LN1@sn_compare -$LN10@sn_compare: - -; 210 : -; 211 : return 0; - - 00401 33 c0 xor eax, eax -$LN1@sn_compare: - -; 212 : } - - 00403 48 8d a5 08 04 - 00 00 lea rsp, QWORD PTR [rbp+1032] - 0040a 5f pop rdi - 0040b 5d pop rbp - 0040c c3 ret 0 -sn_compare_simd ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\simdid_compare.x86.c -; COMDAT sn_get_unite_simd -_TEXT SEGMENT -out$ = 8 -lb0$ = 36 -rb0$ = 68 -lm$ = 100 -rm$ = 132 -l512$ = 164 -r512$ = 196 -merged$ = 228 -ls$ = 260 -rs$ = 292 -s$ = 324 -weak_impl$ = 356 -lu$ = 388 -ru$ = 420 -topo$ = 452 -dual$ = 484 -tv74 = 692 -tv87 = 692 -tv150 = 692 -left$ = 736 -right$ = 744 -sn_get_unite_simd PROC ; COMDAT - -; 67 : { - -$LN9: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec e8 02 - 00 00 sub rsp, 744 ; 000002e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 0001d b9 82 00 00 00 mov ecx, 130 ; 00000082H - 00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00027 f3 ab rep stosd - 00029 48 8b 8c 24 08 - 03 00 00 mov rcx, QWORD PTR [rsp+776] - 00031 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__36E6045D_simdid_compare@x86@c - 00038 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003d 90 npad 1 - -; 68 : SIMDID out; -; 69 : out.mask = 0; - - 0003e 48 c7 45 08 00 - 00 00 00 mov QWORD PTR out$[rbp], 0 - -; 70 : -; 71 : /* Root + Manufacture (byte 0): prefer left (same arch assumed) */ -; 72 : unsigned char lb0 = (unsigned char)left.make_byte[0]; - - 00046 b8 01 00 00 00 mov eax, 1 - 0004b 48 6b c0 00 imul rax, rax, 0 - 0004f 0f b6 84 05 e0 - 02 00 00 movzx eax, BYTE PTR left$[rbp+rax] - 00057 88 45 24 mov BYTE PTR lb0$[rbp], al - -; 73 : unsigned char rb0 = (unsigned char)right.make_byte[0]; - - 0005a b8 01 00 00 00 mov eax, 1 - 0005f 48 6b c0 00 imul rax, rax, 0 - 00063 0f b6 84 05 e8 - 02 00 00 movzx eax, BYTE PTR right$[rbp+rax] - 0006b 88 45 44 mov BYTE PTR rb0$[rbp], al - -; 74 : out.make_byte[0] = (char)(lb0 ? lb0 : rb0); - - 0006e 0f b6 45 24 movzx eax, BYTE PTR lb0$[rbp] - 00072 85 c0 test eax, eax - 00074 74 0c je SHORT $LN3@sn_get_uni - 00076 0f b6 45 24 movzx eax, BYTE PTR lb0$[rbp] - 0007a 89 85 b4 02 00 - 00 mov DWORD PTR tv74[rbp], eax - 00080 eb 0a jmp SHORT $LN4@sn_get_uni -$LN3@sn_get_uni: - 00082 0f b6 45 44 movzx eax, BYTE PTR rb0$[rbp] - 00086 89 85 b4 02 00 - 00 mov DWORD PTR tv74[rbp], eax -$LN4@sn_get_uni: - 0008c b8 01 00 00 00 mov eax, 1 - 00091 48 6b c0 00 imul rax, rax, 0 - 00095 0f b6 8d b4 02 - 00 00 movzx ecx, BYTE PTR tv74[rbp] - 0009c 88 4c 05 08 mov BYTE PTR out$[rbp+rax], cl - -; 75 : -; 76 : /* MainLevel (byte 1): min */ -; 77 : unsigned char lm = FIELD_MAIN(left); - - 000a0 b8 01 00 00 00 mov eax, 1 - 000a5 48 6b c0 01 imul rax, rax, 1 - 000a9 0f b6 84 05 e0 - 02 00 00 movzx eax, BYTE PTR left$[rbp+rax] - 000b1 88 45 64 mov BYTE PTR lm$[rbp], al - -; 78 : unsigned char rm = FIELD_MAIN(right); - - 000b4 b8 01 00 00 00 mov eax, 1 - 000b9 48 6b c0 01 imul rax, rax, 1 - 000bd 0f b6 84 05 e8 - 02 00 00 movzx eax, BYTE PTR right$[rbp+rax] - 000c5 88 85 84 00 00 - 00 mov BYTE PTR rm$[rbp], al - -; 79 : out.make_byte[1] = (char)(lm < rm ? lm : rm); - - 000cb 0f b6 45 64 movzx eax, BYTE PTR lm$[rbp] - 000cf 0f b6 8d 84 00 - 00 00 movzx ecx, BYTE PTR rm$[rbp] - 000d6 3b c1 cmp eax, ecx - 000d8 7d 0c jge SHORT $LN5@sn_get_uni - 000da 0f b6 45 64 movzx eax, BYTE PTR lm$[rbp] - 000de 89 85 b4 02 00 - 00 mov DWORD PTR tv87[rbp], eax - 000e4 eb 0d jmp SHORT $LN6@sn_get_uni -$LN5@sn_get_uni: - 000e6 0f b6 85 84 00 - 00 00 movzx eax, BYTE PTR rm$[rbp] - 000ed 89 85 b4 02 00 - 00 mov DWORD PTR tv87[rbp], eax -$LN6@sn_get_uni: - 000f3 b8 01 00 00 00 mov eax, 1 - 000f8 48 6b c0 01 imul rax, rax, 1 - 000fc 0f b6 8d b4 02 - 00 00 movzx ecx, BYTE PTR tv87[rbp] - 00103 88 4c 05 08 mov BYTE PTR out$[rbp+rax], cl - -; 80 : -; 81 : /* AVX512 features (bytes 2-3): AND all bits, then fix IMPL to weaker */ -; 82 : uint16_t l512 = FIELD_AVX512(left); - - 00107 b8 01 00 00 00 mov eax, 1 - 0010c 48 6b c0 02 imul rax, rax, 2 - 00110 0f b6 84 05 e0 - 02 00 00 movzx eax, BYTE PTR left$[rbp+rax] - 00118 b9 01 00 00 00 mov ecx, 1 - 0011d 48 6b c9 03 imul rcx, rcx, 3 - 00121 0f b6 8c 0d e0 - 02 00 00 movzx ecx, BYTE PTR left$[rbp+rcx] - 00129 c1 e1 08 shl ecx, 8 - 0012c 0b c1 or eax, ecx - 0012e 66 89 85 a4 00 - 00 00 mov WORD PTR l512$[rbp], ax - -; 83 : uint16_t r512 = FIELD_AVX512(right); - - 00135 b8 01 00 00 00 mov eax, 1 - 0013a 48 6b c0 02 imul rax, rax, 2 - 0013e 0f b6 84 05 e8 - 02 00 00 movzx eax, BYTE PTR right$[rbp+rax] - 00146 b9 01 00 00 00 mov ecx, 1 - 0014b 48 6b c9 03 imul rcx, rcx, 3 - 0014f 0f b6 8c 0d e8 - 02 00 00 movzx ecx, BYTE PTR right$[rbp+rcx] - 00157 c1 e1 08 shl ecx, 8 - 0015a 0b c1 or eax, ecx - 0015c 66 89 85 c4 00 - 00 00 mov WORD PTR r512$[rbp], ax - -; 84 : uint16_t merged = l512 & r512; - - 00163 0f b7 85 a4 00 - 00 00 movzx eax, WORD PTR l512$[rbp] - 0016a 0f b7 8d c4 00 - 00 00 movzx ecx, WORD PTR r512$[rbp] - 00171 23 c1 and eax, ecx - 00173 66 89 85 e4 00 - 00 00 mov WORD PTR merged$[rbp], ax - -; 85 : -; 86 : /* Clear the IMPL field, then set the weaker one */ -; 87 : int ls = impl_strength(l512); - - 0017a 0f b7 8d a4 00 - 00 00 movzx ecx, WORD PTR l512$[rbp] - 00181 e8 00 00 00 00 call impl_strength - 00186 89 85 04 01 00 - 00 mov DWORD PTR ls$[rbp], eax - -; 88 : int rs = impl_strength(r512); - - 0018c 0f b7 8d c4 00 - 00 00 movzx ecx, WORD PTR r512$[rbp] - 00193 e8 00 00 00 00 call impl_strength - 00198 89 85 24 01 00 - 00 mov DWORD PTR rs$[rbp], eax - -; 89 : int s = (ls <= rs) ? l512 : r512; /* pick the one with weaker strength ordinal */ - - 0019e 8b 85 24 01 00 - 00 mov eax, DWORD PTR rs$[rbp] - 001a4 39 85 04 01 00 - 00 cmp DWORD PTR ls$[rbp], eax - 001aa 7f 0f jg SHORT $LN7@sn_get_uni - 001ac 0f b7 85 a4 00 - 00 00 movzx eax, WORD PTR l512$[rbp] - 001b3 89 85 b4 02 00 - 00 mov DWORD PTR tv150[rbp], eax - 001b9 eb 0d jmp SHORT $LN8@sn_get_uni -$LN7@sn_get_uni: - 001bb 0f b7 85 c4 00 - 00 00 movzx eax, WORD PTR r512$[rbp] - 001c2 89 85 b4 02 00 - 00 mov DWORD PTR tv150[rbp], eax -$LN8@sn_get_uni: - 001c8 8b 85 b4 02 00 - 00 mov eax, DWORD PTR tv150[rbp] - 001ce 89 85 44 01 00 - 00 mov DWORD PTR s$[rbp], eax - -; 90 : unsigned weak_impl = (s >> SIMDID_AVX512_IMPL_SHIFT) & 0x3u; - - 001d4 8b 85 44 01 00 - 00 mov eax, DWORD PTR s$[rbp] - 001da c1 f8 06 sar eax, 6 - 001dd 83 e0 03 and eax, 3 - 001e0 89 85 64 01 00 - 00 mov DWORD PTR weak_impl$[rbp], eax - -; 91 : merged &= ~(uint16_t)SIMDID_AVX512_IMPL_MASK; - - 001e6 0f b7 85 e4 00 - 00 00 movzx eax, WORD PTR merged$[rbp] - 001ed 25 3f ff ff ff and eax, -193 ; ffffffffffffff3fH - 001f2 66 89 85 e4 00 - 00 00 mov WORD PTR merged$[rbp], ax - -; 92 : merged |= (uint16_t)(weak_impl << SIMDID_AVX512_IMPL_SHIFT); - - 001f9 8b 85 64 01 00 - 00 mov eax, DWORD PTR weak_impl$[rbp] - 001ff c1 e0 06 shl eax, 6 - 00202 0f b7 c0 movzx eax, ax - 00205 0f b7 8d e4 00 - 00 00 movzx ecx, WORD PTR merged$[rbp] - 0020c 0b c8 or ecx, eax - 0020e 8b c1 mov eax, ecx - 00210 66 89 85 e4 00 - 00 00 mov WORD PTR merged$[rbp], ax - -; 93 : out.make_byte[2] = (char)(merged & 0xFF); - - 00217 0f b7 85 e4 00 - 00 00 movzx eax, WORD PTR merged$[rbp] - 0021e 25 ff 00 00 00 and eax, 255 ; 000000ffH - 00223 b9 01 00 00 00 mov ecx, 1 - 00228 48 6b c9 02 imul rcx, rcx, 2 - 0022c 88 44 0d 08 mov BYTE PTR out$[rbp+rcx], al - -; 94 : out.make_byte[3] = (char)((merged >> 8) & 0xFF); - - 00230 0f b7 85 e4 00 - 00 00 movzx eax, WORD PTR merged$[rbp] - 00237 c1 f8 08 sar eax, 8 - 0023a 25 ff 00 00 00 and eax, 255 ; 000000ffH - 0023f b9 01 00 00 00 mov ecx, 1 - 00244 48 6b c9 03 imul rcx, rcx, 3 - 00248 88 44 0d 08 mov BYTE PTR out$[rbp+rcx], al - -; 95 : -; 96 : /* AMX (byte 4): AND */ -; 97 : out.make_byte[4] = left.make_byte[4] & right.make_byte[4]; - - 0024c b8 01 00 00 00 mov eax, 1 - 00251 48 6b c0 04 imul rax, rax, 4 - 00255 0f be 84 05 e0 - 02 00 00 movsx eax, BYTE PTR left$[rbp+rax] - 0025d b9 01 00 00 00 mov ecx, 1 - 00262 48 6b c9 04 imul rcx, rcx, 4 - 00266 0f be 8c 0d e8 - 02 00 00 movsx ecx, BYTE PTR right$[rbp+rcx] - 0026e 23 c1 and eax, ecx - 00270 b9 01 00 00 00 mov ecx, 1 - 00275 48 6b c9 04 imul rcx, rcx, 4 - 00279 88 44 0d 08 mov BYTE PTR out$[rbp+rcx], al - -; 98 : -; 99 : /* AVX (byte 5): AND */ -; 100 : out.make_byte[5] = left.make_byte[5] & right.make_byte[5]; - - 0027d b8 01 00 00 00 mov eax, 1 - 00282 48 6b c0 05 imul rax, rax, 5 - 00286 0f be 84 05 e0 - 02 00 00 movsx eax, BYTE PTR left$[rbp+rax] - 0028e b9 01 00 00 00 mov ecx, 1 - 00293 48 6b c9 05 imul rcx, rcx, 5 - 00297 0f be 8c 0d e8 - 02 00 00 movsx ecx, BYTE PTR right$[rbp+rcx] - 0029f 23 c1 and eax, ecx - 002a1 b9 01 00 00 00 mov ecx, 1 - 002a6 48 6b c9 05 imul rcx, rcx, 5 - 002aa 88 44 0d 08 mov BYTE PTR out$[rbp+rcx], al - -; 101 : -; 102 : /* AVX10 (byte 6): AND */ -; 103 : out.make_byte[6] = left.make_byte[6] & right.make_byte[6]; - - 002ae b8 01 00 00 00 mov eax, 1 - 002b3 48 6b c0 06 imul rax, rax, 6 - 002b7 0f be 84 05 e0 - 02 00 00 movsx eax, BYTE PTR left$[rbp+rax] - 002bf b9 01 00 00 00 mov ecx, 1 - 002c4 48 6b c9 06 imul rcx, rcx, 6 - 002c8 0f be 8c 0d e8 - 02 00 00 movsx ecx, BYTE PTR right$[rbp+rcx] - 002d0 23 c1 and eax, ecx - 002d2 b9 01 00 00 00 mov ecx, 1 - 002d7 48 6b c9 06 imul rcx, rcx, 6 - 002db 88 44 0d 08 mov BYTE PTR out$[rbp+rcx], al - -; 104 : -; 105 : /* uArchHi (byte 7): -; 106 : * topology bits [1..0]: AND — conservative intersection (weaker topology wins) -; 107 : * SIMD_DUAL bit [2]: OR — dual if either core is dual */ -; 108 : unsigned char lu = FIELD_UARCH(left); - - 002df b8 01 00 00 00 mov eax, 1 - 002e4 48 6b c0 07 imul rax, rax, 7 - 002e8 0f b6 84 05 e0 - 02 00 00 movzx eax, BYTE PTR left$[rbp+rax] - 002f0 88 85 84 01 00 - 00 mov BYTE PTR lu$[rbp], al - -; 109 : unsigned char ru = FIELD_UARCH(right); - - 002f6 b8 01 00 00 00 mov eax, 1 - 002fb 48 6b c0 07 imul rax, rax, 7 - 002ff 0f b6 84 05 e8 - 02 00 00 movzx eax, BYTE PTR right$[rbp+rax] - 00307 88 85 a4 01 00 - 00 mov BYTE PTR ru$[rbp], al - -; 110 : unsigned char topo = (lu & 0x3u) & (ru & 0x3u); - - 0030d 0f b6 85 84 01 - 00 00 movzx eax, BYTE PTR lu$[rbp] - 00314 83 e0 03 and eax, 3 - 00317 0f b6 8d a4 01 - 00 00 movzx ecx, BYTE PTR ru$[rbp] - 0031e 83 e1 03 and ecx, 3 - 00321 23 c1 and eax, ecx - 00323 88 85 c4 01 00 - 00 mov BYTE PTR topo$[rbp], al - -; 111 : unsigned char dual = (lu | ru) & (unsigned char)SIMDID_UARCH_SIMD_DUAL; - - 00329 0f b6 85 84 01 - 00 00 movzx eax, BYTE PTR lu$[rbp] - 00330 0f b6 8d a4 01 - 00 00 movzx ecx, BYTE PTR ru$[rbp] - 00337 0b c1 or eax, ecx - 00339 83 e0 04 and eax, 4 - 0033c 88 85 e4 01 00 - 00 mov BYTE PTR dual$[rbp], al - -; 112 : out.make_byte[7] = (char)(topo | dual); - - 00342 0f b6 85 c4 01 - 00 00 movzx eax, BYTE PTR topo$[rbp] - 00349 0f b6 8d e4 01 - 00 00 movzx ecx, BYTE PTR dual$[rbp] - 00350 0b c1 or eax, ecx - 00352 b9 01 00 00 00 mov ecx, 1 - 00357 48 6b c9 07 imul rcx, rcx, 7 - 0035b 88 44 0d 08 mov BYTE PTR out$[rbp+rcx], al - -; 113 : -; 114 : return out; - - 0035f 48 8b 45 08 mov rax, QWORD PTR out$[rbp] - -; 115 : } - - 00363 48 8b f8 mov rdi, rax - 00366 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0036a 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:sn_get_unite_simd$rtcFrameData - 00371 e8 00 00 00 00 call _RTC_CheckStackVars - 00376 48 8b c7 mov rax, rdi - 00379 48 8d a5 c8 02 - 00 00 lea rsp, QWORD PTR [rbp+712] - 00380 5f pop rdi - 00381 5d pop rbp - 00382 c3 ret 0 -sn_get_unite_simd ENDP -_TEXT ENDS -END diff --git a/obj/StgSharp.Native/Debug/x64/simdid_compare.x86.nativecodeanalysis.sarif b/obj/StgSharp.Native/Debug/x64/simdid_compare.x86.nativecodeanalysis.sarif deleted file mode 100644 index eb8550d5..00000000 --- a/obj/StgSharp.Native/Debug/x64/simdid_compare.x86.nativecodeanalysis.sarif +++ /dev/null @@ -1,131 +0,0 @@ -{ - "version": "2.1.0", - "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", - "runs": [ - { - "results": [], - "tool": { - "driver": { - "name": "PREfast", - "fullName": "MSVC Code Analysis", - "version": "14.44.35220.0", - "informationUri": "https://aka.ms/cpp/ca" - } - }, - "invocations": [ - { - "executionSuccessful": true - } - ], - "artifacts": [ - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-src/simdid_compare.x86.c" - }, - "roles": [ - "analysisTarget" - ], - "hashes": { - "sha-256": "80f3864f5d1a767b85eda0a48b55079b4e877e333133bbbb762072c5abb9dc33" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_target.h" - }, - "hashes": { - "sha-256": "b8c543a09db7bd21a2b409476024fa6bec6a5218d88ca036d15584ed453ceb91" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_internal.h" - }, - "hashes": { - "sha-256": "8a0f03b014c6d2740a21a13df48b1951932be000152771363cd554748facde0d" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/stgsharpnative.h" - }, - "hashes": { - "sha-256": "5eee6b3faf7bf2247fe44898b0fcb71794c346ae2f0b58953e1632a49c1b6c4e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/stbi/stb_image.h" - }, - "hashes": { - "sha-256": "c45e3ef56a7d946654740f02e25fcb99a819861155ad1173349a289f2a000ce2" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/gl.h" - }, - "hashes": { - "sha-256": "c9d0960c919f9ef4cfa6449f2b0c00f2ad8286b420e01ee7ec34b40c618392fc" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/khrplatform.h" - }, - "hashes": { - "sha-256": "f5b69ed6a7bef6651526abb2d1263811d59acdba7a29368bb9be1a0f9e80160f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/wgl.h" - }, - "hashes": { - "sha-256": "86d6c58acb0a92b35ce8d94d6817fcec3f73d9e147e8621f468f143db1bbd81f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/glfw/glfw3.h" - }, - "hashes": { - "sha-256": "85c584857dddd780c131940ed69cd516c2b60d61664df9cb254710c3602c1008" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/glfw_function.h" - }, - "hashes": { - "sha-256": "4baa73f465e3e347fc0ad0ff666a6db2e83e749acd770f4bee02c12a7b9ec36e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrinsic.h" - }, - "hashes": { - "sha-256": "4da90105811ba902ad984b406834cf36cf43862047957dad5471c0b24d221ace" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_matkernel.h" - }, - "hashes": { - "sha-256": "19f0030c441ae5c4cec0b446b64daa10448fafd44d4fd6dd2232b84f5ed9aad1" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrincontext.x86.h" - }, - "hashes": { - "sha-256": "bbc00ee7320b30ca1234dc7908e4695ff6d5bb2ba3224e4ffaed345010ba8f48" - } - } - ] - } - ] -} \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/simdid_compare.x86.nativecodeanalysis.xml b/obj/StgSharp.Native/Debug/x64/simdid_compare.x86.nativecodeanalysis.xml deleted file mode 100644 index dcdf0885..00000000 --- a/obj/StgSharp.Native/Debug/x64/simdid_compare.x86.nativecodeanalysis.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/sn_native.cod b/obj/StgSharp.Native/Debug/x64/sn_native.cod deleted file mode 100644 index f64a6869..00000000 --- a/obj/StgSharp.Native/Debug/x64/sn_native.cod +++ /dev/null @@ -1,61743 +0,0 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.44.35220.0 - -include listing.inc - -INCLUDELIB MSVCRTD -INCLUDELIB OLDNAMES - -_DATA SEGMENT -COMM infolog:BYTE:0200H -_DATA ENDS -msvcjmc SEGMENT -__5C8CA4D3_mmintrin@h DB 01H -__8C83BECC_concurrencysal@h DB 01H -__608E3340_sal@h DB 01H -__FB67E29A_vadefs@h DB 01H -__1D1B619C_vcruntime@h DB 01H -__735960E1_corecrt@h DB 01H -__211DB995_corecrt_malloc@h DB 01H -__7CD62D9E_malloc@h DB 01H -__9DCE0DC8_xmmintrin@h DB 01H -__4C2AD0C7_winpackagefamily@h DB 01H -__9DED9ED1_winapifamily@h DB 01H -__12FEDF4E_sdkddkver@h DB 01H -__9BAEE128_excpt@h DB 01H -__B7B53233_stdarg@h DB 01H -__6B04FCB3_specstrings_undef@h DB 01H -__F4027AF7_specstrings_strict@h DB 01H -__B90340D4_sdv_driverspecs@h DB 01H -__BFFF5AD3_driverspecs@h DB 01H -__32847078_specstrings@h DB 01H -__108B2620_corecrt_wctype@h DB 01H -__6CD6613D_ctype@h DB 01H -__30902A1F_kernelspecs@h DB 01H -__376FD5CA_basetsd@h DB 01H -__13DE2371_errno@h DB 01H -__8C6AE390_vcruntime_string@h DB 01H -__8ACB2152_corecrt_memcpy_s@h DB 01H -__EA6C9D17_corecrt_memory@h DB 01H -__0DF2AF52_corecrt_wstring@h DB 01H -__6E889ECC_string@h DB 01H -__9BEDF4DE_guiddef@h DB 01H -__51BFD2FE_pshpack4@h DB 01H -__31652CEA_poppack@h DB 01H -__5532AE4C_pshpack2@h DB 01H -__58A52B9A_pshpack8@h DB 01H -__57741015_pshpack1@h DB 01H -__CDE68C90_apiset@h DB 01H -__0BF06E8D_ktmtypes@h DB 01H -__40C200C0_winnt@h DB 01H -__9336F789_minwindef@h DB 01H -__55136115_windef@h DB 01H -__32205BF0_apisetcconv@h DB 01H -__B48FDEA0_minwinbase@h DB 01H -__3551B028_apiquery2@h DB 01H -__65BE04AA_processenv@h DB 01H -__4767CA46_fileapi@h DB 01H -__282E6C4B_fileapifromapp@h DB 01H -__393AF12C_debugapi@h DB 01H -__EBC502B8_utilapiset@h DB 01H -__1EAD8C69_handleapi@h DB 01H -__D8EF9B29_errhandlingapi@h DB 01H -__97FC1204_fibersapi@h DB 01H -__27448220_namedpipeapi@h DB 01H -__6EA33B2A_profileapi@h DB 01H -__EAC6F673_heapapi@h DB 01H -__D64EEA5A_ioapiset@h DB 01H -__144BD4B6_synchapi@h DB 01H -__03B1C640_interlockedapi@h DB 01H -__DC64CB38_processthreadsapi@h DB 01H -__D719B518_sysinfoapi@h DB 01H -__410385B1_memoryapi@h DB 01H -__C1AD45EF_enclaveapi@h DB 01H -__F4C3AA32_threadpoollegacyapiset@h DB 01H -__AC5A7A9F_threadpoolapiset@h DB 01H -__F5254B21_jobapi@h DB 01H -__BCEA6EE8_jobapi2@h DB 01H -__D18ACE72_wow64apiset@h DB 01H -__669B0D4A_libloaderapi@h DB 01H -__645F7034_securitybaseapi@h DB 01H -__67E58557_namespaceapi@h DB 01H -__599D9D3A_systemtopologyapi@h DB 01H -__2337E373_processtopologyapi@h DB 01H -__02BFF239_securityappcontainer@h DB 01H -__9C196272_realtimeapiset@h DB 01H -__5AB313A4_winerror@h DB 01H -__B7E7187B_timezoneapi@h DB 01H -__6DE9EB6F_winbase@h DB 01H -__56B2AFF2_wingdi@h DB 01H -__BA1161A9_tvout@h DB 01H -__0501A018_winuser@h DB 01H -__EF12FA99_datetimeapi@h DB 01H -__8FA7C3CA_winnls@h DB 01H -__390F0C47_stringapiset@h DB 01H -__28605B0A_wincontypes@h DB 01H -__BFBDE86D_consoleapi@h DB 01H -__C3CAFBF0_consoleapi2@h DB 01H -__C20891C7_consoleapi3@h DB 01H -__717C98B6_wincon@h DB 01H -__2884C177_verrsrc@h DB 01H -__A3FD3A34_winver@h DB 01H -__6F8AD9F1_reason@h DB 01H -__4C90FD6F_winreg@h DB 01H -__68AFEBAD_wnnc@h DB 01H -__5A7AB086_winnetwk@h DB 01H -__2FE8A10C_stralign@h DB 01H -__34558472_winsvc@h DB 01H -__058845F1_mcx@h DB 01H -__7F16006B_ime_cmodes@h DB 01H -__0A3AF599_imm@h DB 01H -__9349FE86_windows@h DB 01H -__639A050C_sn_internal@h DB 01H -__836A8CFC_stdint@h DB 01H -__714FE6D7_sn_target@h DB 01H -__60B45B40_corecrt_stdio_config@h DB 01H -__CFA3741E_corecrt_wstdio@h DB 01H -__B3FE3303_stdio@h DB 01H -__955456CD_stddef@h DB 01H -__99AED4FB_corecrt_search@h DB 01H -__8B813BF6_corecrt_wstdlib@h DB 01H -__3D1CA2C3_limits@h DB 01H -__E8FB0A68_stdlib@h DB 01H -__1D9A7FA2_corecrt_math@h DB 01H -__2E93F1C0_math@h DB 01H -__9FB25DBE_assert@h DB 01H -__F8AC8404_emmintrin@h DB 01H -__47E843D2_intrin0@inl@h DB 01H -__130964FF_setjmp@h DB 01H -__270DEC8D_pmmintrin@h DB 01H -__97D49F0F_tmmintrin@h DB 01H -__BEEF8A8C_smmintrin@h DB 01H -__DB8D0340_nmmintrin@h DB 01H -__0E36F90E_wmmintrin@h DB 01H -__C5A2B409_zmmintrin@h DB 01H -__F2B616C3_immintrin@h DB 01H -__4875F786_ammintrin@h DB 01H -__353FD888_intrin@h DB 01H -__F562FA57_stb_image@h DB 01H -__C95DC661_khrplatform@h DB 01H -__6C577136_gl@h DB 01H -__EE638A2C_wgl@h DB 01H -__8EF9E35C_glfw3@h DB 01H -__4E664295_glfw_function@h DB 01H -__64C0EF11_StgSharpNative@h DB 01H -__73BBCC60_sn_native@c DB 01H -msvcjmc ENDS -CONST SEGMENT -stbi__bmask DD 00H - DD 01H - DD 03H - DD 07H - DD 0fH - DD 01fH - DD 03fH - DD 07fH - DD 0ffH - DD 01ffH - DD 03ffH - DD 07ffH - DD 0fffH - DD 01fffH - DD 03fffH - DD 07fffH - DD 0ffffH -?rgb@?5??stbi__process_frame_header@@9@9 DB 052H ; `stbi__process_frame_header'::`6'::rgb - DB 047H - DB 042H - ORG $+9 -stbi__jbias DD 00H - DD 0ffffffffH - DD 0fffffffdH - DD 0fffffff9H - DD 0fffffff1H - DD 0ffffffe1H - DD 0ffffffc1H - DD 0ffffff81H - DD 0ffffff01H - DD 0fffffe01H - DD 0fffffc01H - DD 0fffff801H - DD 0fffff001H - DD 0ffffe001H - DD 0ffffc001H - DD 0ffff8001H -stbi__jpeg_dezigzag DB 00H - DB 01H - DB 08H - DB 010H - DB 09H - DB 02H - DB 03H - DB 0aH - DB 011H - DB 018H - DB 020H - DB 019H - DB 012H - DB 0bH - DB 04H - DB 05H - DB 0cH - DB 013H - DB 01aH - DB 021H - DB 028H - DB 030H - DB 029H - DB 022H - DB 01bH - DB 014H - DB 0dH - DB 06H - DB 07H - DB 0eH - DB 015H - DB 01cH - DB 023H - DB 02aH - DB 031H - DB 038H - DB 039H - DB 032H - DB 02bH - DB 024H - DB 01dH - DB 016H - DB 0fH - DB 017H - DB 01eH - DB 025H - DB 02cH - DB 033H - DB 03aH - DB 03bH - DB 034H - DB 02dH - DB 026H - DB 01fH - DB 027H - DB 02eH - DB 035H - DB 03cH - DB 03dH - DB 036H - DB 02fH - DB 037H - DB 03eH - DB 03fH - DB 03fH - DB 03fH - DB 03fH - DB 03fH - DB 03fH - DB 03fH - DB 03fH - DB 03fH - DB 03fH - DB 03fH - DB 03fH - DB 03fH - DB 03fH - DB 03fH - DB 03fH - ORG $+1 -?tag@?O@??stbi__process_marker@@9@9 DB 04aH ; `stbi__process_marker'::`14'::tag - DB 046H - DB 049H - DB 046H - DB 00H - ORG $+3 -?tag@?BA@??stbi__process_marker@@9@9 DB 041H ; `stbi__process_marker'::`16'::tag - DB 064H - DB 06fH - DB 062H - DB 065H - DB 00H - ORG $+2 -stbi__zlength_base DD 03H - DD 04H - DD 05H - DD 06H - DD 07H - DD 08H - DD 09H - DD 0aH - DD 0bH - DD 0dH - DD 0fH - DD 011H - DD 013H - DD 017H - DD 01bH - DD 01fH - DD 023H - DD 02bH - DD 033H - DD 03bH - DD 043H - DD 053H - DD 063H - DD 073H - DD 083H - DD 0a3H - DD 0c3H - DD 0e3H - DD 0102H - DD 00H - DD 00H - ORG $+4 -stbi__zlength_extra DD 00H - DD 00H - DD 00H - DD 00H - DD 00H - DD 00H - DD 00H - DD 00H - DD 01H - DD 01H - DD 01H - DD 01H - DD 02H - DD 02H - DD 02H - DD 02H - DD 03H - DD 03H - DD 03H - DD 03H - DD 04H - DD 04H - DD 04H - DD 04H - DD 05H - DD 05H - DD 05H - DD 05H - DD 00H - DD 00H - DD 00H - ORG $+4 -stbi__zdist_base DD 01H - DD 02H - DD 03H - DD 04H - DD 05H - DD 07H - DD 09H - DD 0dH - DD 011H - DD 019H - DD 021H - DD 031H - DD 041H - DD 061H - DD 081H - DD 0c1H - DD 0101H - DD 0181H - DD 0201H - DD 0301H - DD 0401H - DD 0601H - DD 0801H - DD 0c01H - DD 01001H - DD 01801H - DD 02001H - DD 03001H - DD 04001H - DD 06001H - DD 00H - DD 00H -stbi__zdist_extra DD 00H - DD 00H - DD 00H - DD 00H - DD 01H - DD 01H - DD 02H - DD 02H - DD 03H - DD 03H - DD 04H - DD 04H - DD 05H - DD 05H - DD 06H - DD 06H - DD 07H - DD 07H - DD 08H - DD 08H - DD 09H - DD 09H - DD 0aH - DD 0aH - DD 0bH - DD 0bH - DD 0cH - DD 0cH - DD 0dH - DD 0dH - ORG $+8 -?length_dezigzag@?1??stbi__compute_huffman_codes@@9@9 DB 010H ; `stbi__compute_huffman_codes'::`2'::length_dezigzag - DB 011H - DB 012H - DB 00H - DB 08H - DB 07H - DB 09H - DB 06H - DB 0aH - DB 05H - DB 0bH - DB 04H - DB 0cH - DB 03H - DB 0dH - DB 02H - DB 0eH - DB 01H - DB 0fH - ORG $+13 -stbi__zdefault_length DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 09H - DB 07H - DB 07H - DB 07H - DB 07H - DB 07H - DB 07H - DB 07H - DB 07H - DB 07H - DB 07H - DB 07H - DB 07H - DB 07H - DB 07H - DB 07H - DB 07H - DB 07H - DB 07H - DB 07H - DB 07H - DB 07H - DB 07H - DB 07H - DB 07H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H - DB 08H -stbi__zdefault_distance DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H - DB 05H -?png_sig@?1??stbi__check_png_header@@9@9 DB 089H ; `stbi__check_png_header'::`2'::png_sig - DB 050H - DB 04eH - DB 047H - DB 0dH - DB 0aH - DB 01aH - DB 0aH -stbi__depth_scale_table DB 00H - DB 0ffH - DB 055H - DB 00H - DB 011H - DB 00H - DB 00H - DB 00H - DB 01H -CONST ENDS -PUBLIC stbi_load_from_memory -PUBLIC stbi_load_from_callbacks -PUBLIC stbi_load -PUBLIC stbi_load_from_file -PUBLIC stbi_load_gif_from_memory -PUBLIC stbi_load_16_from_memory -PUBLIC stbi_load_16_from_callbacks -PUBLIC stbi_load_16 -PUBLIC stbi_load_from_file_16 -PUBLIC stbi_loadf_from_memory -PUBLIC stbi_loadf_from_callbacks -PUBLIC stbi_loadf -PUBLIC stbi_loadf_from_file -PUBLIC stbi_hdr_to_ldr_gamma -PUBLIC stbi_hdr_to_ldr_scale -PUBLIC stbi_ldr_to_hdr_gamma -PUBLIC stbi_ldr_to_hdr_scale -PUBLIC stbi_is_hdr_from_callbacks -PUBLIC stbi_is_hdr_from_memory -PUBLIC stbi_is_hdr -PUBLIC stbi_is_hdr_from_file -PUBLIC stbi_failure_reason -PUBLIC stbi_image_free -PUBLIC stbi_info_from_memory -PUBLIC stbi_info_from_callbacks -PUBLIC stbi_is_16_bit_from_memory -PUBLIC stbi_is_16_bit_from_callbacks -PUBLIC stbi_info -PUBLIC stbi_info_from_file -PUBLIC stbi_is_16_bit -PUBLIC stbi_is_16_bit_from_file -PUBLIC stbi_set_unpremultiply_on_load -PUBLIC stbi_convert_iphone_png_to_rgb -PUBLIC stbi_set_flip_vertically_on_load -PUBLIC stbi_set_unpremultiply_on_load_thread -PUBLIC stbi_convert_iphone_png_to_rgb_thread -PUBLIC stbi_set_flip_vertically_on_load_thread -PUBLIC stbi_zlib_decode_malloc_guesssize -PUBLIC stbi_zlib_decode_malloc_guesssize_headerflag -PUBLIC stbi_zlib_decode_malloc -PUBLIC stbi_zlib_decode_buffer -PUBLIC stbi_zlib_decode_noheader_malloc -PUBLIC stbi_zlib_decode_noheader_buffer -PUBLIC glCheckShaderStat -PUBLIC initGL -PUBLIC linkShaderProgram -PUBLIC loadImageData -PUBLIC loadGlfuncDefault -PUBLIC unloadImageData -PUBLIC readLog -PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0BD@CBEDEJPH@unknown?5image?5type@ ; `string' -PUBLIC ??_C@_08NOGIMCHF@outofmem@ ; `string' -PUBLIC ??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ ; `string' -PUBLIC ??_C@_1GM@LFNCFCEN@?$AAr?$AAi?$AA?4?$AAb?$AAi?$AAt?$AAs?$AA_?$AAp?$AAe?$AAr?$AA_?$AAc?$AAh?$AAa@ ; `string' -PUBLIC ??_C@_02JDPG@rb@ ; `string' -PUBLIC ??_C@_0M@JPDHFAGK@can?8t?5fopen@ ; `string' -PUBLIC ??_C@_1DO@MABJBNAJ@?$AAr?$AAe?$AAq?$AA_?$AAc?$AAo?$AAm?$AAp?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA1?$AA?5?$AA?$CG@ ; `string' -PUBLIC ??_C@_13COJANIEC@?$AA0@ ; `string' -PUBLIC ??_C@_0M@MHDBFHD@unsupported@ ; `string' -PUBLIC ??_C@_0O@DEFOLMLB@bad?5size?5list@ ; `string' -PUBLIC ??_C@_0BB@FOKGPEKG@bad?5code?5lengths@ ; `string' -PUBLIC ??_C@_1KE@JGKPJEBO@?$AA?$CI?$AA?$CI?$AA?$CI?$AAj?$AA?9?$AA?$DO?$AAc?$AAo?$AAd?$AAe?$AA_?$AAb?$AAu?$AAf?$AAf@ ; `string' -PUBLIC ??_C@_0BB@IIMLINA@bad?5huffman?5code@ ; `string' -PUBLIC ??_C@_09IFDKCGFO@bad?5delta@ ; `string' -PUBLIC ??_C@_0BG@PJBJDAGM@can?8t?5merge?5dc?5and?5ac@ ; `string' -PUBLIC ??_C@_0BA@KLNDOKJD@expected?5marker@ ; `string' -PUBLIC ??_C@_0M@LPHNODCG@bad?5DRI?5len@ ; `string' -PUBLIC ??_C@_0N@BOFJCHAP@bad?5DQT?5type@ ; `string' -PUBLIC ??_C@_0O@CNHKKDIM@bad?5DQT?5table@ ; `string' -PUBLIC ??_C@_0P@JLGKOCGN@bad?5DHT?5header@ ; `string' -PUBLIC ??_C@_0M@CICAFFCH@bad?5COM?5len@ ; `string' -PUBLIC ??_C@_0M@EENLKPDI@bad?5APP?5len@ ; `string' -PUBLIC ??_C@_0P@NNGPHMMK@unknown?5marker@ ; `string' -PUBLIC ??_C@_0BI@DHFJCMBA@bad?5SOS?5component?5count@ ; `string' -PUBLIC ??_C@_0M@GNEHAHOH@bad?5SOS?5len@ ; `string' -PUBLIC ??_C@_0M@NOCCBFAC@bad?5DC?5huff@ ; `string' -PUBLIC ??_C@_0M@JGMCBLGG@bad?5AC?5huff@ ; `string' -PUBLIC ??_C@_07EEJOMGGP@bad?5SOS@ ; `string' -PUBLIC ??_C@_0M@DOFMJEMP@bad?5SOF?5len@ ; `string' -PUBLIC ??_C@_0L@BCINMEBJ@only?58?9bit@ ; `string' -PUBLIC ??_C@_0BB@LNEGOMA@no?5header?5height@ ; `string' -PUBLIC ??_C@_07BIDACDEF@0?5width@ ; `string' -PUBLIC ??_C@_09OJDLMMBJ@too?5large@ ; `string' -PUBLIC ??_C@_0BE@DAPHADHL@bad?5component?5count@ ; `string' -PUBLIC ??_C@_05BLPKENEJ@bad?5H@ ; `string' -PUBLIC ??_C@_05MPLLHCJG@bad?5V@ ; `string' -PUBLIC ??_C@_06LJIHDFHI@bad?5TQ@ ; `string' -PUBLIC ??_C@_06CLMBLEP@no?5SOI@ ; `string' -PUBLIC ??_C@_06IFCEAHIA@no?5SOF@ ; `string' -PUBLIC ??_C@_0M@EPMOIECP@bad?5DNL?5len@ ; `string' -PUBLIC ??_C@_0P@PNCLKCLJ@bad?5DNL?5height@ ; `string' -PUBLIC ??_C@_0N@KBPNPPBJ@bad?5req_comp@ ; `string' -PUBLIC ??_C@_1BG@HKNLHECB@?$AAb?$AAi?$AAt?$AAs?$AA?5?$AA?$DM?$AA?$DN?$AA?5?$AA1?$AA6@ ; `string' -PUBLIC ??_C@_09EOHLEIKL@bad?5sizes@ ; `string' -PUBLIC ??_C@_0BA@MDNKOBMC@bad?5codelengths@ ; `string' -PUBLIC ??_C@_0BE@IBFIPFO@output?5buffer?5limit@ ; `string' -PUBLIC ??_C@_0P@CLDJCNKP@unexpected?5end@ ; `string' -PUBLIC ??_C@_08DIAPIMGJ@bad?5dist@ ; `string' -PUBLIC ??_C@_0N@IECDHMDI@zlib?5corrupt@ ; `string' -PUBLIC ??_C@_0BB@PIPBCKIA@read?5past?5buffer@ ; `string' -PUBLIC ??_C@_0BA@OBKOPAFL@bad?5zlib?5header@ ; `string' -PUBLIC ??_C@_0P@DOGMHEBI@no?5preset?5dict@ ; `string' -PUBLIC ??_C@_0BA@MCNBDLPD@bad?5compression@ ; `string' -PUBLIC ??_C@_0M@DMDNBACF@bad?5png?5sig@ ; `string' -PUBLIC ??_C@_1BG@FLOPDKAN@?$AAi?$AAm?$AAg?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA3@ ; `string' -PUBLIC ??_C@_1FG@LGPEHEPM@?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAs?$AA?9?$AA?$DO?$AAi?$AAm?$AAg@ ; `string' -PUBLIC ??_C@_0BC@BHMPBBMG@not?5enough?5pixels@ ; `string' -PUBLIC ??_C@_0P@FBBCPGMN@invalid?5filter@ ; `string' -PUBLIC ??_C@_1BG@OEFMLIPO@?$AAd?$AAe?$AAp?$AAt?$AAh?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA1@ ; `string' -PUBLIC ??_C@_1CG@MFAHHIFB@?$AAi?$AAm?$AAg?$AA_?$AAn?$AA?5?$AA?$CL?$AA?5?$AA1?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAo?$AAu@ ; `string' -PUBLIC ??_C@_1DC@BMIDKOPK@?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA2?$AA?5?$AA?$HM?$AA?$HM?$AA?5?$AAo@ ; `string' -PUBLIC ??_C@_1CE@GKIDJEJM@?$AAs?$AA?9?$AA?$DO?$AAi?$AAm?$AAg?$AA_?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN@ ; `string' -PUBLIC ??_C@_0O@KBHBNJOK@multiple?5IHDR@ ; `string' -PUBLIC ??_C@_0N@POJLKMKK@bad?5IHDR?5len@ ; `string' -PUBLIC ??_C@_0BE@EJHIPKNO@1?12?14?18?116?9bit?5only@ ; `string' -PUBLIC ??_C@_09MBBNGCKB@bad?5ctype@ ; `string' -PUBLIC ??_C@_0BA@MDMBDDFG@bad?5comp?5method@ ; `string' -PUBLIC ??_C@_0BC@GHLIKKMD@bad?5filter?5method@ ; `string' -PUBLIC ??_C@_0BF@JCGDPBAA@bad?5interlace?5method@ ; `string' -PUBLIC ??_C@_0O@FNFBHCOO@0?9pixel?5image@ ; `string' -PUBLIC ??_C@_0P@JEAFOMAF@first?5not?5IHDR@ ; `string' -PUBLIC ??_C@_0N@JCPAJAKB@invalid?5PLTE@ ; `string' -PUBLIC ??_C@_0BA@PCPJHDKJ@tRNS?5after?5IDAT@ ; `string' -PUBLIC ??_C@_0BB@CEDNNLBG@tRNS?5before?5PLTE@ ; `string' -PUBLIC ??_C@_0N@KDLCCKCH@bad?5tRNS?5len@ ; `string' -PUBLIC ??_C@_0BA@ENDPGCHB@tRNS?5with?5alpha@ ; `string' -PUBLIC ??_C@_07CKIELOEH@no?5PLTE@ ; `string' -PUBLIC ??_C@_0BA@PLHGLONG@IDAT?5size?5limit@ ; `string' -PUBLIC ??_C@_09MNNCNKEO@outofdata@ ; `string' -PUBLIC ??_C@_07MLPECBNA@no?5IDAT@ ; `string' -PUBLIC ??_C@_0BF@NOEEEFMF@bad?5bits_per_channel@ ; `string' -PUBLIC ??_C@_1BA@EKLGALLJ@?$AAv?$AA?5?$AA?$DM?$AA?5?$AA2?$AA5?$AA6@ ; `string' -PUBLIC ??_C@_1CO@LIFEKNEP@?$AAb?$AAi?$AAt?$AAs?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA0?$AA?5?$AA?$CG?$AA?$CG?$AA?5?$AAb?$AAi@ ; `string' -PUBLIC ??_C@_07IANEBNLB@not?5BMP@ ; `string' -PUBLIC ??_C@_07IEJCHBDI@bad?5BMP@ ; `string' -PUBLIC ??_C@_0M@KHBIBJBG@unknown?5BMP@ ; `string' -PUBLIC ??_C@_07IMHMNOIB@BMP?5RLE@ ; `string' -PUBLIC ??_C@_0N@ODCBCBFN@BMP?5JPEG?1PNG@ ; `string' -PUBLIC ??_C@_0L@PJHPAMCH@bad?5header@ ; `string' -PUBLIC ??_C@_0L@JDPIFELH@bad?5offset@ ; `string' -PUBLIC ??_C@_07MALOAKCI@invalid@ ; `string' -PUBLIC ??_C@_07JNJHIMGH@bad?5bpp@ ; `string' -PUBLIC ??_C@_09DAEBACAB@bad?5masks@ ; `string' -PUBLIC ??_C@_0L@DMAPJJO@bad?5format@ ; `string' -PUBLIC ??_C@_0M@ILLOCNCO@bad?5palette@ ; `string' -PUBLIC ??_C@_1CK@GOOINIO@?$AAt?$AAg?$AAa?$AA_?$AAc?$AAo?$AAm?$AAp?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAS?$AAT?$AAB@ ; `string' -PUBLIC ??_C@_07ECNCNLIK@not?5PSD@ ; `string' -PUBLIC ??_C@_0O@CHBCDKKC@wrong?5version@ ; `string' -PUBLIC ??_C@_0BE@PJBNGDBE@wrong?5channel?5count@ ; `string' -PUBLIC ??_C@_0BG@NOLDLPP@unsupported?5bit?5depth@ ; `string' -PUBLIC ??_C@_0BD@IOGGBMNK@wrong?5color?5format@ ; `string' -PUBLIC ??_C@_07DPPMCAKL@corrupt@ ; `string' -PUBLIC ??_C@_04KBFEPHFH@S?$IA?v4@ ; `string' -PUBLIC ??_C@_04ELNJHLFH@PICT@ ; `string' -PUBLIC ??_C@_08GGMBIFE@bad?5file@ ; `string' -PUBLIC ??_C@_07KMJLPAII@not?5GIF@ ; `string' -PUBLIC ??_C@_00CNPNBAHC@@ ; `string' -PUBLIC ??_C@_0O@MGDACKOJ@no?5clear?5code@ ; `string' -PUBLIC ??_C@_0P@GJNJCPDJ@too?5many?5codes@ ; `string' -PUBLIC ??_C@_0BH@LOKBIIOJ@illegal?5code?5in?5raster@ ; `string' -PUBLIC ??_C@_0BF@GIAALCNJ@bad?5Image?5Descriptor@ ; `string' -PUBLIC ??_C@_0BE@NAMJKDNF@missing?5color?5table@ ; `string' -PUBLIC ??_C@_0N@DJABBOOH@unknown?5code@ ; `string' -PUBLIC ??_C@_0M@HOIDFNFN@?$CD?$DPRADIANCE?6@ ; `string' -PUBLIC ??_C@_07KFDJIKCK@?$CD?$DPRGBE?6@ ; `string' -PUBLIC ??_C@_0L@NCPEAJBD@?$CD?$DPRADIANCE@ ; `string' -PUBLIC ??_C@_06NDOKKIDJ@?$CD?$DPRGBE@ ; `string' -PUBLIC ??_C@_07NCIOKENI@not?5HDR@ ; `string' -PUBLIC ??_C@_0BH@JFGBLLKC@FORMAT?$DN32?9bit_rle_rgbe@ ; `string' -PUBLIC ??_C@_0BD@NKJFFLKL@unsupported?5format@ ; `string' -PUBLIC ??_C@_03HKAKGGJN@?9Y?5@ ; `string' -PUBLIC ??_C@_0BI@DCNDPIOH@unsupported?5data?5layout@ ; `string' -PUBLIC ??_C@_03FOKDFDHG@?$CLX?5@ ; `string' -PUBLIC ??_C@_0CA@JBEOCDFN@invalid?5decoded?5scanline?5length@ ; `string' -PUBLIC ??_C@_07IDKIDMGJ@bad?5PNM@ ; `string' -PUBLIC ??_C@_0BH@OBINMOBC@integer?5parse?5overflow@ ; `string' -PUBLIC ??_C@_0O@MKGNGALN@invalid?5width@ ; `string' -PUBLIC ??_C@_0BC@CNFMOKHC@max?5value?5?$DO?565535@ ; `string' -PUBLIC ??_C@_0BL@MOJGOJJP@Failed?5to?5load?5OpenGL?5api?3@ ; `string' -PUBLIC __real@3f000000 -PUBLIC __real@3f800000 -PUBLIC __real@3ff0000000000000 -PUBLIC __real@40400000 -PUBLIC __real@437f0000 -PUBLIC __real@477fff00 -PUBLIC __xmm@00000200000002000000020000000200 -PUBLIC __xmm@00080008000800080008000800080008 -PUBLIC __xmm@00ff00ff00ff00ff00ff00ff00ff00ff -PUBLIC __xmm@01010000010100000101000001010000 -PUBLIC __xmm@08a914e808a914e808a914e808a914e8 -PUBLIC __xmm@11c8e09e11c8e09e11c8e09e11c8e09e -PUBLIC __xmm@11c8f9c311c8f9c311c8f9c311c8f9c3 -PUBLIC __xmm@12d0046b12d0046b12d0046b12d0046b -PUBLIC __xmm@166f166f166f166f166f166f166f166f -PUBLIC __xmm@1c5a1c5a1c5a1c5a1c5a1c5a1c5a1c5a -PUBLIC __xmm@80808080808080808080808080808080 -PUBLIC __xmm@e09ee565e09ee565e09ee565e09ee565 -PUBLIC __xmm@e9cf12d0e9cf12d0e9cf12d0e9cf12d0 -PUBLIC __xmm@eb1a08a9eb1a08a9eb1a08a9eb1a08a9 -PUBLIC __xmm@f493f493f493f493f493f493f493f493 -PUBLIC __xmm@f9c31a9df9c31a9df9c31a9df9c31a9d -PUBLIC __xmm@fa7efa7efa7efa7efa7efa7efa7efa7e -EXTRN __report_rangecheckfailure:PROC -EXTRN __imp_free:PROC -EXTRN __imp_malloc:PROC -EXTRN __imp_realloc:PROC -EXTRN memcpy:PROC -EXTRN memset:PROC -EXTRN __imp_strcpy_s:PROC -EXTRN strcmp:PROC -EXTRN __imp_strncmp:PROC -EXTRN __imp_fopen_s:PROC -EXTRN __imp_fclose:PROC -EXTRN __imp_feof:PROC -EXTRN __imp_ferror:PROC -EXTRN __imp_fgetc:PROC -EXTRN __imp_fread:PROC -EXTRN __imp_fseek:PROC -EXTRN __imp_ftell:PROC -EXTRN __imp_ungetc:PROC -EXTRN abs:PROC -EXTRN _lrotl:PROC -EXTRN __imp_strtol:PROC -EXTRN pow:PROC -EXTRN __imp_ldexp:PROC -EXTRN __imp__wassert:PROC -EXTRN glfwWindowHint:PROC -EXTRN glfwGetProcAddress:PROC -EXTRN _RTC_CheckStackVars:PROC -EXTRN _RTC_InitBase:PROC -EXTRN _RTC_Shutdown:PROC -EXTRN __CheckForDebuggerJustMyCode:PROC -EXTRN __GSHandlerCheck:PROC -EXTRN __chkstk:PROC -EXTRN __security_check_cookie:PROC -EXTRN __ImageBase:BYTE -EXTRN __security_cookie:QWORD -EXTRN _fltused:DWORD -EXTRN _tls_index:DWORD -_TLS SEGMENT -stbi__g_failure_reason DQ 01H DUP (?) -_TLS ENDS -_BSS SEGMENT -stbi__vertically_flip_on_load_global DD 01H DUP (?) -_BSS ENDS -_TLS SEGMENT -stbi__vertically_flip_on_load_local DD 01H DUP (?) -stbi__vertically_flip_on_load_set DD 01H DUP (?) -_TLS ENDS -_BSS SEGMENT -stbi__unpremultiply_on_load_global DD 01H DUP (?) -stbi__de_iphone_flag_global DD 01H DUP (?) -_BSS ENDS -_TLS SEGMENT -stbi__unpremultiply_on_load_local DD 01H DUP (?) -stbi__unpremultiply_on_load_set DD 01H DUP (?) -stbi__de_iphone_flag_local DD 01H DUP (?) -stbi__de_iphone_flag_set DD 01H DUP (?) -_TLS ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_load_from_memory DD imagerel $LN3 - DD imagerel $LN3+199 - DD imagerel $unwind$stbi_load_from_memory -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_load_from_callbacks DD imagerel $LN3 - DD imagerel $LN3+200 - DD imagerel $unwind$stbi_load_from_callbacks -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_load DD imagerel $LN6 - DD imagerel $LN6+195 - DD imagerel $unwind$stbi_load -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_load_from_file DD imagerel $LN4 - DD imagerel $LN4+252 - DD imagerel $unwind$stbi_load_from_file -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_load_gif_from_memory DD imagerel $LN6 - DD imagerel $LN6+373 - DD imagerel $unwind$stbi_load_gif_from_memory -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_load_16_from_memory DD imagerel $LN3 - DD imagerel $LN3+199 - DD imagerel $unwind$stbi_load_16_from_memory -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_load_16_from_callbacks DD imagerel $LN3 - DD imagerel $LN3+200 - DD imagerel $unwind$stbi_load_16_from_callbacks -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_load_16 DD imagerel $LN6 - DD imagerel $LN6+195 - DD imagerel $unwind$stbi_load_16 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_load_from_file_16 DD imagerel $LN4 - DD imagerel $LN4+252 - DD imagerel $unwind$stbi_load_from_file_16 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_loadf_from_memory DD imagerel $LN3 - DD imagerel $LN3+199 - DD imagerel $unwind$stbi_loadf_from_memory -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_loadf_from_callbacks DD imagerel $LN3 - DD imagerel $LN3+200 - DD imagerel $unwind$stbi_loadf_from_callbacks -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_loadf DD imagerel $LN6 - DD imagerel $LN6+195 - DD imagerel $unwind$stbi_loadf -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_loadf_from_file DD imagerel $LN3 - DD imagerel $LN3+193 - DD imagerel $unwind$stbi_loadf_from_file -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_hdr_to_ldr_gamma DD imagerel $LN3 - DD imagerel $LN3+67 - DD imagerel $unwind$stbi_hdr_to_ldr_gamma -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_hdr_to_ldr_scale DD imagerel $LN3 - DD imagerel $LN3+67 - DD imagerel $unwind$stbi_hdr_to_ldr_scale -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_ldr_to_hdr_gamma DD imagerel $LN3 - DD imagerel $LN3+59 - DD imagerel $unwind$stbi_ldr_to_hdr_gamma -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_ldr_to_hdr_scale DD imagerel $LN3 - DD imagerel $LN3+59 - DD imagerel $unwind$stbi_ldr_to_hdr_scale -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_is_hdr_from_callbacks DD imagerel $LN3 - DD imagerel $LN3+159 - DD imagerel $unwind$stbi_is_hdr_from_callbacks -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_is_hdr_from_memory DD imagerel $LN3 - DD imagerel $LN3+158 - DD imagerel $unwind$stbi_is_hdr_from_memory -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_is_hdr DD imagerel $LN4 - DD imagerel $LN4+105 - DD imagerel $unwind$stbi_is_hdr -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_is_hdr_from_file DD imagerel $LN3 - DD imagerel $LN3+187 - DD imagerel $unwind$stbi_is_hdr_from_file -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_failure_reason DD imagerel $LN3 - DD imagerel $LN3+68 - DD imagerel $unwind$stbi_failure_reason -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_image_free DD imagerel $LN3 - DD imagerel $LN3+56 - DD imagerel $unwind$stbi_image_free -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_info_from_memory DD imagerel $LN3 - DD imagerel $LN3+189 - DD imagerel $unwind$stbi_info_from_memory -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_info_from_callbacks DD imagerel $LN3 - DD imagerel $LN3+190 - DD imagerel $unwind$stbi_info_from_callbacks -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_is_16_bit_from_memory DD imagerel $LN3 - DD imagerel $LN3+158 - DD imagerel $unwind$stbi_is_16_bit_from_memory -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_is_16_bit_from_callbacks DD imagerel $LN3 - DD imagerel $LN3+159 - DD imagerel $unwind$stbi_is_16_bit_from_callbacks -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_info DD imagerel $LN4 - DD imagerel $LN4+148 - DD imagerel $unwind$stbi_info -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_info_from_file DD imagerel $LN3 - DD imagerel $LN3+229 - DD imagerel $unwind$stbi_info_from_file -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_is_16_bit DD imagerel $LN4 - DD imagerel $LN4+112 - DD imagerel $unwind$stbi_is_16_bit -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_is_16_bit_from_file DD imagerel $LN3 - DD imagerel $LN3+193 - DD imagerel $unwind$stbi_is_16_bit_from_file -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_set_unpremultiply_on_load DD imagerel $LN3 - DD imagerel $LN3+53 - DD imagerel $unwind$stbi_set_unpremultiply_on_load -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_convert_iphone_png_to_rgb DD imagerel $LN3 - DD imagerel $LN3+53 - DD imagerel $unwind$stbi_convert_iphone_png_to_rgb -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_set_flip_vertically_on_load DD imagerel $LN3 - DD imagerel $LN3+53 - DD imagerel $unwind$stbi_set_flip_vertically_on_load -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_set_unpremultiply_on_load_thread DD imagerel $LN3 - DD imagerel $LN3+109 - DD imagerel $unwind$stbi_set_unpremultiply_on_load_thread -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_convert_iphone_png_to_rgb_thread DD imagerel $LN3 - DD imagerel $LN3+109 - DD imagerel $unwind$stbi_convert_iphone_png_to_rgb_thread -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_set_flip_vertically_on_load_thread DD imagerel $LN3 - DD imagerel $LN3+109 - DD imagerel $unwind$stbi_set_flip_vertically_on_load_thread -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_zlib_decode_malloc_guesssize DD imagerel $LN7 - DD imagerel $LN7+310 - DD imagerel $unwind$stbi_zlib_decode_malloc_guesssize -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_zlib_decode_malloc_guesssize_headerflag DD imagerel $LN7 - DD imagerel $LN7+312 - DD imagerel $unwind$stbi_zlib_decode_malloc_guesssize_headerflag -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_zlib_decode_malloc DD imagerel $LN3 - DD imagerel $LN3+82 - DD imagerel $unwind$stbi_zlib_decode_malloc -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_zlib_decode_buffer DD imagerel $LN5 - DD imagerel $LN5+237 - DD imagerel $unwind$stbi_zlib_decode_buffer -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_zlib_decode_noheader_malloc DD imagerel $LN7 - DD imagerel $LN7+299 - DD imagerel $unwind$stbi_zlib_decode_noheader_malloc -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi_zlib_decode_noheader_buffer DD imagerel $LN5 - DD imagerel $LN5+237 - DD imagerel $unwind$stbi_zlib_decode_noheader_buffer -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__cpuid3 DD imagerel stbi__cpuid3 - DD imagerel stbi__cpuid3+150 - DD imagerel $unwind$stbi__cpuid3 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__sse2_available DD imagerel stbi__sse2_available - DD imagerel stbi__sse2_available+87 - DD imagerel $unwind$stbi__sse2_available -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__refill_buffer DD imagerel stbi__refill_buffer - DD imagerel stbi__refill_buffer+292 - DD imagerel $unwind$stbi__refill_buffer -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__start_mem DD imagerel stbi__start_mem - DD imagerel stbi__start_mem+206 - DD imagerel $unwind$stbi__start_mem -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__start_callbacks DD imagerel stbi__start_callbacks - DD imagerel stbi__start_callbacks+243 - DD imagerel $unwind$stbi__start_callbacks -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__stdio_read DD imagerel stbi__stdio_read - DD imagerel stbi__stdio_read+87 - DD imagerel $unwind$stbi__stdio_read -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__stdio_skip DD imagerel stbi__stdio_skip - DD imagerel stbi__stdio_skip+111 - DD imagerel $unwind$stbi__stdio_skip -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__stdio_eof DD imagerel stbi__stdio_eof - DD imagerel stbi__stdio_eof+104 - DD imagerel $unwind$stbi__stdio_eof -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__start_file DD imagerel stbi__start_file - DD imagerel stbi__start_file+74 - DD imagerel $unwind$stbi__start_file -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__rewind DD imagerel stbi__rewind - DD imagerel stbi__rewind+98 - DD imagerel $unwind$stbi__rewind -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__jpeg_test DD imagerel stbi__jpeg_test - DD imagerel stbi__jpeg_test+163 - DD imagerel $unwind$stbi__jpeg_test -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__jpeg_load DD imagerel stbi__jpeg_load - DD imagerel stbi__jpeg_load+228 - DD imagerel $unwind$stbi__jpeg_load -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__jpeg_info DD imagerel stbi__jpeg_info - DD imagerel stbi__jpeg_info+171 - DD imagerel $unwind$stbi__jpeg_info -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__png_test DD imagerel stbi__png_test - DD imagerel stbi__png_test+73 - DD imagerel $unwind$stbi__png_test -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__png_load DD imagerel stbi__png_load - DD imagerel stbi__png_load+199 - DD imagerel $unwind$stbi__png_load -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__png_info DD imagerel stbi__png_info - DD imagerel stbi__png_info+177 - DD imagerel $unwind$stbi__png_info -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__png_is16 DD imagerel stbi__png_is16 - DD imagerel stbi__png_is16+182 - DD imagerel $unwind$stbi__png_is16 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__bmp_test DD imagerel stbi__bmp_test - DD imagerel stbi__bmp_test+73 - DD imagerel $unwind$stbi__bmp_test -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__bmp_load DD imagerel stbi__bmp_load - DD imagerel stbi__bmp_load+4929 - DD imagerel $unwind$stbi__bmp_load -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__bmp_info DD imagerel stbi__bmp_info - DD imagerel stbi__bmp_info+335 - DD imagerel $unwind$stbi__bmp_info -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__tga_test DD imagerel stbi__tga_test - DD imagerel stbi__tga_test+401 - DD imagerel $unwind$stbi__tga_test -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__tga_load DD imagerel stbi__tga_load - DD imagerel stbi__tga_load+3012 - DD imagerel $unwind$stbi__tga_load -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__tga_info DD imagerel stbi__tga_info - DD imagerel stbi__tga_info+726 - DD imagerel $unwind$stbi__tga_info -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__psd_test DD imagerel stbi__psd_test - DD imagerel stbi__psd_test+108 - DD imagerel $unwind$stbi__psd_test -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__psd_load DD imagerel stbi__psd_load - DD imagerel stbi__psd_load+3127 - DD imagerel $unwind$stbi__psd_load -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__psd_info DD imagerel stbi__psd_info - DD imagerel stbi__psd_info+478 - DD imagerel $unwind$stbi__psd_info -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__psd_is16 DD imagerel stbi__psd_is16 - DD imagerel stbi__psd_is16+249 - DD imagerel $unwind$stbi__psd_is16 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__hdr_test DD imagerel stbi__hdr_test - DD imagerel stbi__hdr_test+121 - DD imagerel $unwind$stbi__hdr_test -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__hdr_load DD imagerel stbi__hdr_load - DD imagerel stbi__hdr_load+2654 - DD imagerel $unwind$stbi__hdr_load -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__hdr_info DD imagerel stbi__hdr_info - DD imagerel stbi__hdr_info+640 - DD imagerel $unwind$stbi__hdr_info -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__pic_test DD imagerel stbi__pic_test - DD imagerel stbi__pic_test+73 - DD imagerel $unwind$stbi__pic_test -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__pic_load DD imagerel stbi__pic_load - DD imagerel stbi__pic_load+793 - DD imagerel $unwind$stbi__pic_load -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__pic_info DD imagerel stbi__pic_info - DD imagerel stbi__pic_info+707 - DD imagerel $unwind$stbi__pic_info -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__gif_test DD imagerel stbi__gif_test - DD imagerel stbi__gif_test+73 - DD imagerel $unwind$stbi__gif_test -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__gif_load DD imagerel stbi__gif_load - DD imagerel stbi__gif_load+363 - DD imagerel $unwind$stbi__gif_load -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__load_gif_main DD imagerel stbi__load_gif_main - DD imagerel stbi__load_gif_main+1131 - DD imagerel $unwind$stbi__load_gif_main -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__gif_info DD imagerel stbi__gif_info - DD imagerel stbi__gif_info+90 - DD imagerel $unwind$stbi__gif_info -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__pnm_test DD imagerel stbi__pnm_test - DD imagerel stbi__pnm_test+121 - DD imagerel $unwind$stbi__pnm_test -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__pnm_load DD imagerel stbi__pnm_load - DD imagerel stbi__pnm_load+906 - DD imagerel $unwind$stbi__pnm_load -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__pnm_info DD imagerel stbi__pnm_info - DD imagerel stbi__pnm_info+585 - DD imagerel $unwind$stbi__pnm_info -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__pnm_is16 DD imagerel stbi__pnm_is16 - DD imagerel stbi__pnm_is16+76 - DD imagerel $unwind$stbi__pnm_is16 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__err DD imagerel stbi__err - DD imagerel stbi__err+81 - DD imagerel $unwind$stbi__err -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__malloc DD imagerel stbi__malloc - DD imagerel stbi__malloc+55 - DD imagerel $unwind$stbi__malloc -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__addsizes_valid DD imagerel stbi__addsizes_valid - DD imagerel stbi__addsizes_valid+105 - DD imagerel $unwind$stbi__addsizes_valid -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__mul2sizes_valid DD imagerel stbi__mul2sizes_valid - DD imagerel stbi__mul2sizes_valid+131 - DD imagerel $unwind$stbi__mul2sizes_valid -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__mad2sizes_valid DD imagerel stbi__mad2sizes_valid - DD imagerel stbi__mad2sizes_valid+129 - DD imagerel $unwind$stbi__mad2sizes_valid -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__mad3sizes_valid DD imagerel stbi__mad3sizes_valid - DD imagerel stbi__mad3sizes_valid+171 - DD imagerel $unwind$stbi__mad3sizes_valid -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__mad4sizes_valid DD imagerel stbi__mad4sizes_valid - DD imagerel stbi__mad4sizes_valid+215 - DD imagerel $unwind$stbi__mad4sizes_valid -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__malloc_mad2 DD imagerel stbi__malloc_mad2 - DD imagerel stbi__malloc_mad2+111 - DD imagerel $unwind$stbi__malloc_mad2 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__malloc_mad3 DD imagerel stbi__malloc_mad3 - DD imagerel stbi__malloc_mad3+130 - DD imagerel $unwind$stbi__malloc_mad3 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__malloc_mad4 DD imagerel stbi__malloc_mad4 - DD imagerel stbi__malloc_mad4+147 - DD imagerel $unwind$stbi__malloc_mad4 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__addints_valid DD imagerel stbi__addints_valid - DD imagerel stbi__addints_valid+242 - DD imagerel $unwind$stbi__addints_valid -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__mul2shorts_valid DD imagerel stbi__mul2shorts_valid - DD imagerel stbi__mul2shorts_valid+306 - DD imagerel $unwind$stbi__mul2shorts_valid -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__ldr_to_hdr DD imagerel stbi__ldr_to_hdr - DD imagerel stbi__ldr_to_hdr+539 - DD imagerel $unwind$stbi__ldr_to_hdr -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__hdr_to_ldr DD imagerel stbi__hdr_to_ldr - DD imagerel stbi__hdr_to_ldr+647 - DD imagerel $unwind$stbi__hdr_to_ldr -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__load_main DD imagerel stbi__load_main - DD imagerel stbi__load_main+935 - DD imagerel $unwind$stbi__load_main -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__convert_16_to_8 DD imagerel stbi__convert_16_to_8 - DD imagerel stbi__convert_16_to_8+230 - DD imagerel $unwind$stbi__convert_16_to_8 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__convert_8_to_16 DD imagerel stbi__convert_8_to_16 - DD imagerel stbi__convert_8_to_16+246 - DD imagerel $unwind$stbi__convert_8_to_16 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__vertical_flip DD imagerel stbi__vertical_flip - DD imagerel stbi__vertical_flip+515 - DD imagerel $unwind$stbi__vertical_flip -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__vertical_flip_slices DD imagerel stbi__vertical_flip_slices - DD imagerel stbi__vertical_flip_slices+168 - DD imagerel $unwind$stbi__vertical_flip_slices -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__load_and_postprocess_8bit DD imagerel stbi__load_and_postprocess_8bit - DD imagerel stbi__load_and_postprocess_8bit+518 - DD imagerel $unwind$stbi__load_and_postprocess_8bit -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__load_and_postprocess_16bit DD imagerel stbi__load_and_postprocess_16bit - DD imagerel stbi__load_and_postprocess_16bit+524 - DD imagerel $unwind$stbi__load_and_postprocess_16bit -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__float_postprocess DD imagerel stbi__float_postprocess - DD imagerel stbi__float_postprocess+247 - DD imagerel $unwind$stbi__float_postprocess -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__fopen DD imagerel stbi__fopen - DD imagerel stbi__fopen+166 - DD imagerel $unwind$stbi__fopen -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__loadf_main DD imagerel stbi__loadf_main - DD imagerel stbi__loadf_main+441 - DD imagerel $unwind$stbi__loadf_main -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__get8 DD imagerel stbi__get8 - DD imagerel stbi__get8+226 - DD imagerel $unwind$stbi__get8 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__at_eof DD imagerel stbi__at_eof - DD imagerel stbi__at_eof+163 - DD imagerel $unwind$stbi__at_eof -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__skip DD imagerel stbi__skip - DD imagerel stbi__skip+263 - DD imagerel $unwind$stbi__skip -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__getn DD imagerel stbi__getn - DD imagerel stbi__getn+415 - DD imagerel $unwind$stbi__getn -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__get16be DD imagerel stbi__get16be - DD imagerel stbi__get16be+97 - DD imagerel $unwind$stbi__get16be -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__get32be DD imagerel stbi__get32be - DD imagerel stbi__get32be+91 - DD imagerel $unwind$stbi__get32be -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__get16le DD imagerel stbi__get16le - DD imagerel stbi__get16le+85 - DD imagerel $unwind$stbi__get16le -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__get32le DD imagerel stbi__get32le - DD imagerel stbi__get32le+85 - DD imagerel $unwind$stbi__get32le -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__compute_y DD imagerel stbi__compute_y - DD imagerel stbi__compute_y+81 - DD imagerel $unwind$stbi__compute_y -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__convert_format DD imagerel stbi__convert_format - DD imagerel stbi__convert_format+2752 - DD imagerel $unwind$stbi__convert_format -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__compute_y_16 DD imagerel stbi__compute_y_16 - DD imagerel stbi__compute_y_16+81 - DD imagerel $unwind$stbi__compute_y_16 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__convert_format16 DD imagerel stbi__convert_format16 - DD imagerel stbi__convert_format16+2804 - DD imagerel $unwind$stbi__convert_format16 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__build_huffman DD imagerel stbi__build_huffman - DD imagerel stbi__build_huffman+698 - DD imagerel $unwind$stbi__build_huffman -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__build_fast_ac DD imagerel stbi__build_fast_ac - DD imagerel stbi__build_fast_ac+440 - DD imagerel $unwind$stbi__build_fast_ac -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__grow_buffer_unsafe DD imagerel stbi__grow_buffer_unsafe - DD imagerel stbi__grow_buffer_unsafe+314 - DD imagerel $unwind$stbi__grow_buffer_unsafe -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__jpeg_huff_decode DD imagerel stbi__jpeg_huff_decode - DD imagerel stbi__jpeg_huff_decode+758 - DD imagerel $unwind$stbi__jpeg_huff_decode -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__extend_receive DD imagerel stbi__extend_receive - DD imagerel stbi__extend_receive+285 - DD imagerel $unwind$stbi__extend_receive -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__jpeg_get_bits DD imagerel stbi__jpeg_get_bits - DD imagerel stbi__jpeg_get_bits+238 - DD imagerel $unwind$stbi__jpeg_get_bits -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__jpeg_get_bit DD imagerel stbi__jpeg_get_bit - DD imagerel stbi__jpeg_get_bit+171 - DD imagerel $unwind$stbi__jpeg_get_bit -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__jpeg_decode_block DD imagerel stbi__jpeg_decode_block - DD imagerel stbi__jpeg_decode_block+988 - DD imagerel $unwind$stbi__jpeg_decode_block -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__jpeg_decode_block_prog_dc DD imagerel stbi__jpeg_decode_block_prog_dc - DD imagerel stbi__jpeg_decode_block_prog_dc+591 - DD imagerel $unwind$stbi__jpeg_decode_block_prog_dc -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__jpeg_decode_block_prog_ac DD imagerel stbi__jpeg_decode_block_prog_ac - DD imagerel stbi__jpeg_decode_block_prog_ac+1743 - DD imagerel $unwind$stbi__jpeg_decode_block_prog_ac -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__clamp DD imagerel stbi__clamp - DD imagerel stbi__clamp+89 - DD imagerel $unwind$stbi__clamp -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__idct_block DD imagerel stbi__idct_block - DD imagerel stbi__idct_block+3189 - DD imagerel $unwind$stbi__idct_block -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__idct_simd DD imagerel stbi__idct_simd - DD imagerel stbi__idct_simd+5983 - DD imagerel $unwind$stbi__idct_simd -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__get_marker DD imagerel stbi__get_marker - DD imagerel stbi__get_marker+168 - DD imagerel $unwind$stbi__get_marker -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__jpeg_reset DD imagerel stbi__jpeg_reset - DD imagerel stbi__jpeg_reset+298 - DD imagerel $unwind$stbi__jpeg_reset -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__parse_entropy_coded_data DD imagerel stbi__parse_entropy_coded_data - DD imagerel stbi__parse_entropy_coded_data+3244 - DD imagerel $unwind$stbi__parse_entropy_coded_data -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__jpeg_dequantize DD imagerel stbi__jpeg_dequantize - DD imagerel stbi__jpeg_dequantize+120 - DD imagerel $unwind$stbi__jpeg_dequantize -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__jpeg_finish DD imagerel stbi__jpeg_finish - DD imagerel stbi__jpeg_finish+495 - DD imagerel $unwind$stbi__jpeg_finish -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__process_marker DD imagerel stbi__process_marker - DD imagerel stbi__process_marker+1908 - DD imagerel $unwind$stbi__process_marker -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__process_scan_header DD imagerel stbi__process_scan_header - DD imagerel stbi__process_scan_header+906 - DD imagerel $unwind$stbi__process_scan_header -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__free_jpeg_components DD imagerel stbi__free_jpeg_components - DD imagerel stbi__free_jpeg_components+397 - DD imagerel $unwind$stbi__free_jpeg_components -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__process_frame_header DD imagerel stbi__process_frame_header - DD imagerel stbi__process_frame_header+2436 - DD imagerel $unwind$stbi__process_frame_header -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__decode_jpeg_header DD imagerel stbi__decode_jpeg_header - DD imagerel stbi__decode_jpeg_header+398 - DD imagerel $unwind$stbi__decode_jpeg_header -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__skip_jpeg_junk_at_end DD imagerel stbi__skip_jpeg_junk_at_end - DD imagerel stbi__skip_jpeg_junk_at_end+162 - DD imagerel $unwind$stbi__skip_jpeg_junk_at_end -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__decode_jpeg_image DD imagerel stbi__decode_jpeg_image - DD imagerel stbi__decode_jpeg_image+561 - DD imagerel $unwind$stbi__decode_jpeg_image -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$resample_row_1 DD imagerel resample_row_1 - DD imagerel resample_row_1+64 - DD imagerel $unwind$resample_row_1 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__resample_row_v_2 DD imagerel stbi__resample_row_v_2 - DD imagerel stbi__resample_row_v_2+148 - DD imagerel $unwind$stbi__resample_row_v_2 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__resample_row_h_2 DD imagerel stbi__resample_row_h_2 - DD imagerel stbi__resample_row_h_2+522 - DD imagerel $unwind$stbi__resample_row_h_2 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__resample_row_hv_2 DD imagerel stbi__resample_row_hv_2 - DD imagerel stbi__resample_row_hv_2+444 - DD imagerel $unwind$stbi__resample_row_hv_2 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__resample_row_hv_2_simd DD imagerel stbi__resample_row_hv_2_simd - DD imagerel stbi__resample_row_hv_2_simd+1193 - DD imagerel $unwind$stbi__resample_row_hv_2_simd -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__resample_row_generic DD imagerel stbi__resample_row_generic - DD imagerel stbi__resample_row_generic+166 - DD imagerel $unwind$stbi__resample_row_generic -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__YCbCr_to_RGB_row DD imagerel stbi__YCbCr_to_RGB_row - DD imagerel stbi__YCbCr_to_RGB_row+510 - DD imagerel $unwind$stbi__YCbCr_to_RGB_row -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__YCbCr_to_RGB_simd DD imagerel stbi__YCbCr_to_RGB_simd - DD imagerel stbi__YCbCr_to_RGB_simd+1391 - DD imagerel $unwind$stbi__YCbCr_to_RGB_simd -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__setup_jpeg DD imagerel stbi__setup_jpeg - DD imagerel stbi__setup_jpeg+177 - DD imagerel $unwind$stbi__setup_jpeg -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__cleanup_jpeg DD imagerel stbi__cleanup_jpeg - DD imagerel stbi__cleanup_jpeg+71 - DD imagerel $unwind$stbi__cleanup_jpeg -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__blinn_8x8 DD imagerel stbi__blinn_8x8 - DD imagerel stbi__blinn_8x8+86 - DD imagerel $unwind$stbi__blinn_8x8 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$load_jpeg_image DD imagerel load_jpeg_image - DD imagerel load_jpeg_image+4825 - DD imagerel $unwind$load_jpeg_image -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__jpeg_info_raw DD imagerel stbi__jpeg_info_raw - DD imagerel stbi__jpeg_info_raw+232 - DD imagerel $unwind$stbi__jpeg_info_raw -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__bitreverse16 DD imagerel stbi__bitreverse16 - DD imagerel stbi__bitreverse16+193 - DD imagerel $unwind$stbi__bitreverse16 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__bit_reverse DD imagerel stbi__bit_reverse - DD imagerel stbi__bit_reverse+106 - DD imagerel $unwind$stbi__bit_reverse -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__zbuild_huffman DD imagerel stbi__zbuild_huffman - DD imagerel stbi__zbuild_huffman+963 - DD imagerel $unwind$stbi__zbuild_huffman -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__zeof DD imagerel stbi__zeof - DD imagerel stbi__zeof+93 - DD imagerel $unwind$stbi__zeof -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__zget8 DD imagerel stbi__zget8 - DD imagerel stbi__zget8+119 - DD imagerel $unwind$stbi__zget8 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__fill_bits DD imagerel stbi__fill_bits - DD imagerel stbi__fill_bits+200 - DD imagerel $unwind$stbi__fill_bits -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__zreceive DD imagerel stbi__zreceive - DD imagerel stbi__zreceive+200 - DD imagerel $unwind$stbi__zreceive -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__zhuffman_decode_slowpath DD imagerel stbi__zhuffman_decode_slowpath - DD imagerel stbi__zhuffman_decode_slowpath+324 - DD imagerel $unwind$stbi__zhuffman_decode_slowpath -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__zhuffman_decode DD imagerel stbi__zhuffman_decode - DD imagerel stbi__zhuffman_decode+295 - DD imagerel $unwind$stbi__zhuffman_decode -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__zexpand DD imagerel stbi__zexpand - DD imagerel stbi__zexpand+361 - DD imagerel $unwind$stbi__zexpand -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__parse_huffman_block DD imagerel stbi__parse_huffman_block - DD imagerel stbi__parse_huffman_block+804 - DD imagerel $unwind$stbi__parse_huffman_block -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__compute_huffman_codes DD imagerel stbi__compute_huffman_codes - DD imagerel stbi__compute_huffman_codes+949 - DD imagerel $unwind$stbi__compute_huffman_codes -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__parse_uncompressed_block DD imagerel stbi__parse_uncompressed_block - DD imagerel stbi__parse_uncompressed_block+603 - DD imagerel $unwind$stbi__parse_uncompressed_block -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__parse_zlib_header DD imagerel stbi__parse_zlib_header - DD imagerel stbi__parse_zlib_header+204 - DD imagerel $unwind$stbi__parse_zlib_header -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__parse_zlib DD imagerel stbi__parse_zlib - DD imagerel stbi__parse_zlib+357 - DD imagerel $unwind$stbi__parse_zlib -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__do_zlib DD imagerel stbi__do_zlib - DD imagerel stbi__do_zlib+158 - DD imagerel $unwind$stbi__do_zlib -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__get_chunk_header DD imagerel stbi__get_chunk_header - DD imagerel stbi__get_chunk_header+123 - DD imagerel $unwind$stbi__get_chunk_header -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__check_png_header DD imagerel stbi__check_png_header - DD imagerel stbi__check_png_header+120 - DD imagerel $unwind$stbi__check_png_header -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__paeth DD imagerel stbi__paeth - DD imagerel stbi__paeth+262 - DD imagerel $unwind$stbi__paeth -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__create_png_alpha_expand8 DD imagerel stbi__create_png_alpha_expand8 - DD imagerel stbi__create_png_alpha_expand8+374 - DD imagerel $unwind$stbi__create_png_alpha_expand8 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__create_png_image_raw DD imagerel stbi__create_png_image_raw - DD imagerel stbi__create_png_image_raw+3488 - DD imagerel $unwind$stbi__create_png_image_raw -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__create_png_image DD imagerel stbi__create_png_image - DD imagerel stbi__create_png_image+1308 - DD imagerel $unwind$stbi__create_png_image -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__compute_transparency DD imagerel stbi__compute_transparency - DD imagerel stbi__compute_transparency+478 - DD imagerel $unwind$stbi__compute_transparency -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__compute_transparency16 DD imagerel stbi__compute_transparency16 - DD imagerel stbi__compute_transparency16+481 - DD imagerel $unwind$stbi__compute_transparency16 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__expand_png_palette DD imagerel stbi__expand_png_palette - DD imagerel stbi__expand_png_palette+614 - DD imagerel $unwind$stbi__expand_png_palette -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__de_iphone DD imagerel stbi__de_iphone - DD imagerel stbi__de_iphone+823 - DD imagerel $unwind$stbi__de_iphone -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__parse_png_file DD imagerel stbi__parse_png_file - DD imagerel stbi__parse_png_file+3816 - DD imagerel $unwind$stbi__parse_png_file -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__do_png DD imagerel stbi__do_png - DD imagerel stbi__do_png+693 - DD imagerel $unwind$stbi__do_png -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__png_info_raw DD imagerel stbi__png_info_raw - DD imagerel stbi__png_info_raw+201 - DD imagerel $unwind$stbi__png_info_raw -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__bmp_test_raw DD imagerel stbi__bmp_test_raw - DD imagerel stbi__bmp_test_raw+227 - DD imagerel $unwind$stbi__bmp_test_raw -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__high_bit DD imagerel stbi__high_bit - DD imagerel stbi__high_bit+225 - DD imagerel $unwind$stbi__high_bit -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__bitcount DD imagerel stbi__bitcount - DD imagerel stbi__bitcount+199 - DD imagerel $unwind$stbi__bitcount -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__shiftsigned DD imagerel stbi__shiftsigned - DD imagerel stbi__shiftsigned+268 - DD imagerel $unwind$stbi__shiftsigned -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__bmp_set_mask_defaults DD imagerel stbi__bmp_set_mask_defaults - DD imagerel stbi__bmp_set_mask_defaults+286 - DD imagerel $unwind$stbi__bmp_set_mask_defaults -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__bmp_parse_header DD imagerel stbi__bmp_parse_header - DD imagerel stbi__bmp_parse_header+1594 - DD imagerel $unwind$stbi__bmp_parse_header -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__tga_get_comp DD imagerel stbi__tga_get_comp - DD imagerel stbi__tga_get_comp+204 - DD imagerel $unwind$stbi__tga_get_comp -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__tga_read_rgb16 DD imagerel stbi__tga_read_rgb16 - DD imagerel stbi__tga_read_rgb16+225 - DD imagerel $unwind$stbi__tga_read_rgb16 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__psd_decode_rle DD imagerel stbi__psd_decode_rle - DD imagerel stbi__psd_decode_rle+336 - DD imagerel $unwind$stbi__psd_decode_rle -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__pic_is4 DD imagerel stbi__pic_is4 - DD imagerel stbi__pic_is4+115 - DD imagerel $unwind$stbi__pic_is4 -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__pic_test_core DD imagerel stbi__pic_test_core - DD imagerel stbi__pic_test_core+139 - DD imagerel $unwind$stbi__pic_test_core -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__readval DD imagerel stbi__readval - DD imagerel stbi__readval+209 - DD imagerel $unwind$stbi__readval -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__copyval DD imagerel stbi__copyval - DD imagerel stbi__copyval+138 - DD imagerel $unwind$stbi__copyval -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__pic_load_core DD imagerel stbi__pic_load_core - DD imagerel stbi__pic_load_core+1805 - DD imagerel $unwind$stbi__pic_load_core -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__gif_test_raw DD imagerel stbi__gif_test_raw - DD imagerel stbi__gif_test_raw+189 - DD imagerel $unwind$stbi__gif_test_raw -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__gif_parse_colortable DD imagerel stbi__gif_parse_colortable - DD imagerel stbi__gif_parse_colortable+278 - DD imagerel $unwind$stbi__gif_parse_colortable -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__gif_header DD imagerel stbi__gif_header - DD imagerel stbi__gif_header+609 - DD imagerel $unwind$stbi__gif_header -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__gif_info_raw DD imagerel stbi__gif_info_raw - DD imagerel stbi__gif_info_raw+223 - DD imagerel $unwind$stbi__gif_info_raw -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__out_gif_code DD imagerel stbi__out_gif_code - DD imagerel stbi__out_gif_code+753 - DD imagerel $unwind$stbi__out_gif_code -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__process_gif_raster DD imagerel stbi__process_gif_raster - DD imagerel stbi__process_gif_raster+1264 - DD imagerel $unwind$stbi__process_gif_raster -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__gif_load_next DD imagerel stbi__gif_load_next - DD imagerel stbi__gif_load_next+2528 - DD imagerel $unwind$stbi__gif_load_next -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__load_gif_main_outofmem DD imagerel stbi__load_gif_main_outofmem - DD imagerel stbi__load_gif_main_outofmem+217 - DD imagerel $unwind$stbi__load_gif_main_outofmem -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__hdr_test_core DD imagerel stbi__hdr_test_core - DD imagerel stbi__hdr_test_core+141 - DD imagerel $unwind$stbi__hdr_test_core -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__hdr_gettoken DD imagerel stbi__hdr_gettoken - DD imagerel stbi__hdr_gettoken+212 - DD imagerel $unwind$stbi__hdr_gettoken -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__hdr_convert DD imagerel stbi__hdr_convert - DD imagerel stbi__hdr_convert+690 - DD imagerel $unwind$stbi__hdr_convert -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__pnm_isspace DD imagerel stbi__pnm_isspace - DD imagerel stbi__pnm_isspace+141 - DD imagerel $unwind$stbi__pnm_isspace -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__pnm_skip_whitespace DD imagerel stbi__pnm_skip_whitespace - DD imagerel stbi__pnm_skip_whitespace+212 - DD imagerel $unwind$stbi__pnm_skip_whitespace -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__pnm_isdigit DD imagerel stbi__pnm_isdigit - DD imagerel stbi__pnm_isdigit+93 - DD imagerel $unwind$stbi__pnm_isdigit -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__pnm_getinteger DD imagerel stbi__pnm_getinteger - DD imagerel stbi__pnm_getinteger+183 - DD imagerel $unwind$stbi__pnm_getinteger -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__info_main DD imagerel stbi__info_main - DD imagerel stbi__info_main+483 - DD imagerel $unwind$stbi__info_main -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$stbi__is_16_main DD imagerel stbi__is_16_main - DD imagerel stbi__is_16_main+113 - DD imagerel $unwind$stbi__is_16_main -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$glCheckShaderStat DD imagerel $LN4 - DD imagerel $LN4+232 - DD imagerel $unwind$glCheckShaderStat -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$initGL DD imagerel $LN3 - DD imagerel $LN3+111 - DD imagerel $unwind$initGL -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$linkShaderProgram DD imagerel $LN5 - DD imagerel $LN5+227 - DD imagerel $unwind$linkShaderProgram -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$loadImageData DD imagerel $LN4 - DD imagerel $LN4+143 - DD imagerel $unwind$loadImageData -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$loadGlfuncDefault DD imagerel $LN7 - DD imagerel $LN7+160 - DD imagerel $unwind$loadGlfuncDefault -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$unloadImageData DD imagerel $LN3 - DD imagerel $LN3+60 - DD imagerel $unwind$unloadImageData -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$readLog DD imagerel $LN5 - DD imagerel $LN5+103 - DD imagerel $unwind$readLog -pdata ENDS -; COMDAT __xmm@fa7efa7efa7efa7efa7efa7efa7efa7e -CONST SEGMENT -__xmm@fa7efa7efa7efa7efa7efa7efa7efa7e DB '~', 0faH, '~', 0faH, '~', 0faH - DB '~', 0faH, '~', 0faH, '~', 0faH, '~', 0faH, '~', 0faH -CONST ENDS -; COMDAT __xmm@f9c31a9df9c31a9df9c31a9df9c31a9d -CONST SEGMENT -__xmm@f9c31a9df9c31a9df9c31a9df9c31a9d DB 09dH, 01aH, 0c3H, 0f9H, 09dH, 01aH - DB 0c3H, 0f9H, 09dH, 01aH, 0c3H, 0f9H, 09dH, 01aH, 0c3H, 0f9H -CONST ENDS -; COMDAT __xmm@f493f493f493f493f493f493f493f493 -CONST SEGMENT -__xmm@f493f493f493f493f493f493f493f493 DB 093H, 0f4H, 093H, 0f4H, 093H, 0f4H - DB 093H, 0f4H, 093H, 0f4H, 093H, 0f4H, 093H, 0f4H, 093H, 0f4H -CONST ENDS -; COMDAT __xmm@eb1a08a9eb1a08a9eb1a08a9eb1a08a9 -CONST SEGMENT -__xmm@eb1a08a9eb1a08a9eb1a08a9eb1a08a9 DB 0a9H, 08H, 01aH, 0ebH, 0a9H, 08H - DB 01aH, 0ebH, 0a9H, 08H, 01aH, 0ebH, 0a9H, 08H, 01aH, 0ebH -CONST ENDS -; COMDAT __xmm@e9cf12d0e9cf12d0e9cf12d0e9cf12d0 -CONST SEGMENT -__xmm@e9cf12d0e9cf12d0e9cf12d0e9cf12d0 DB 0d0H, 012H, 0cfH, 0e9H, 0d0H, 012H - DB 0cfH, 0e9H, 0d0H, 012H, 0cfH, 0e9H, 0d0H, 012H, 0cfH, 0e9H -CONST ENDS -; COMDAT __xmm@e09ee565e09ee565e09ee565e09ee565 -CONST SEGMENT -__xmm@e09ee565e09ee565e09ee565e09ee565 DB 'e', 0e5H, 09eH, 0e0H, 'e', 0e5H - DB 09eH, 0e0H, 'e', 0e5H, 09eH, 0e0H, 'e', 0e5H, 09eH, 0e0H -CONST ENDS -; COMDAT __xmm@80808080808080808080808080808080 -CONST SEGMENT -__xmm@80808080808080808080808080808080 DB 080H, 080H, 080H, 080H, 080H, 080H - DB 080H, 080H, 080H, 080H, 080H, 080H, 080H, 080H, 080H, 080H -CONST ENDS -; COMDAT __xmm@1c5a1c5a1c5a1c5a1c5a1c5a1c5a1c5a -CONST SEGMENT -__xmm@1c5a1c5a1c5a1c5a1c5a1c5a1c5a1c5a DB 'Z', 01cH, 'Z', 01cH, 'Z', 01cH - DB 'Z', 01cH, 'Z', 01cH, 'Z', 01cH, 'Z', 01cH, 'Z', 01cH -CONST ENDS -; COMDAT __xmm@166f166f166f166f166f166f166f166f -CONST SEGMENT -__xmm@166f166f166f166f166f166f166f166f DB 'o', 016H, 'o', 016H, 'o', 016H - DB 'o', 016H, 'o', 016H, 'o', 016H, 'o', 016H, 'o', 016H -CONST ENDS -; COMDAT __xmm@12d0046b12d0046b12d0046b12d0046b -CONST SEGMENT -__xmm@12d0046b12d0046b12d0046b12d0046b DB 'k', 04H, 0d0H, 012H, 'k', 04H, 0d0H - DB 012H, 'k', 04H, 0d0H, 012H, 'k', 04H, 0d0H, 012H -CONST ENDS -; COMDAT __xmm@11c8f9c311c8f9c311c8f9c311c8f9c3 -CONST SEGMENT -__xmm@11c8f9c311c8f9c311c8f9c311c8f9c3 DB 0c3H, 0f9H, 0c8H, 011H, 0c3H, 0f9H - DB 0c8H, 011H, 0c3H, 0f9H, 0c8H, 011H, 0c3H, 0f9H, 0c8H, 011H -CONST ENDS -; COMDAT __xmm@11c8e09e11c8e09e11c8e09e11c8e09e -CONST SEGMENT -__xmm@11c8e09e11c8e09e11c8e09e11c8e09e DB 09eH, 0e0H, 0c8H, 011H, 09eH, 0e0H - DB 0c8H, 011H, 09eH, 0e0H, 0c8H, 011H, 09eH, 0e0H, 0c8H, 011H -CONST ENDS -; COMDAT __xmm@08a914e808a914e808a914e808a914e8 -CONST SEGMENT -__xmm@08a914e808a914e808a914e808a914e8 DB 0e8H, 014H, 0a9H, 08H, 0e8H, 014H - DB 0a9H, 08H, 0e8H, 014H, 0a9H, 08H, 0e8H, 014H, 0a9H, 08H -CONST ENDS -; COMDAT __xmm@01010000010100000101000001010000 -CONST SEGMENT -__xmm@01010000010100000101000001010000 DB 00H, 00H, 01H, 01H, 00H, 00H, 01H - DB 01H, 00H, 00H, 01H, 01H, 00H, 00H, 01H, 01H -CONST ENDS -; COMDAT __xmm@00ff00ff00ff00ff00ff00ff00ff00ff -CONST SEGMENT -__xmm@00ff00ff00ff00ff00ff00ff00ff00ff DB 0ffH, 00H, 0ffH, 00H, 0ffH, 00H - DB 0ffH, 00H, 0ffH, 00H, 0ffH, 00H, 0ffH, 00H, 0ffH, 00H -CONST ENDS -; COMDAT __xmm@00080008000800080008000800080008 -CONST SEGMENT -__xmm@00080008000800080008000800080008 DB 08H, 00H, 08H, 00H, 08H, 00H, 08H - DB 00H, 08H, 00H, 08H, 00H, 08H, 00H, 08H, 00H -CONST ENDS -; COMDAT __xmm@00000200000002000000020000000200 -CONST SEGMENT -__xmm@00000200000002000000020000000200 DB 00H, 02H, 00H, 00H, 00H, 02H, 00H - DB 00H, 00H, 02H, 00H, 00H, 00H, 02H, 00H, 00H -CONST ENDS -; COMDAT __real@477fff00 -CONST SEGMENT -__real@477fff00 DD 0477fff00r ; 65535 -CONST ENDS -; COMDAT __real@437f0000 -CONST SEGMENT -__real@437f0000 DD 0437f0000r ; 255 -CONST ENDS -; COMDAT __real@40400000 -CONST SEGMENT -__real@40400000 DD 040400000r ; 3 -CONST ENDS -; COMDAT __real@3ff0000000000000 -CONST SEGMENT -__real@3ff0000000000000 DQ 03ff0000000000000r ; 1 -CONST ENDS -; COMDAT __real@3f800000 -CONST SEGMENT -__real@3f800000 DD 03f800000r ; 1 -CONST ENDS -; COMDAT __real@3f000000 -CONST SEGMENT -__real@3f000000 DD 03f000000r ; 0.5 -CONST ENDS -; COMDAT rtc$TMZ -rtc$TMZ SEGMENT -_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown -rtc$TMZ ENDS -; COMDAT rtc$IMZ -rtc$IMZ SEGMENT -_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase -rtc$IMZ ENDS -; COMDAT ??_C@_0BL@MOJGOJJP@Failed?5to?5load?5OpenGL?5api?3@ -CONST SEGMENT -??_C@_0BL@MOJGOJJP@Failed?5to?5load?5OpenGL?5api?3@ DB 'Failed to load Op' - DB 'enGL api:', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BC@CNFMOKHC@max?5value?5?$DO?565535@ -CONST SEGMENT -??_C@_0BC@CNFMOKHC@max?5value?5?$DO?565535@ DB 'max value > 65535', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0O@MKGNGALN@invalid?5width@ -CONST SEGMENT -??_C@_0O@MKGNGALN@invalid?5width@ DB 'invalid width', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BH@OBINMOBC@integer?5parse?5overflow@ -CONST SEGMENT -??_C@_0BH@OBINMOBC@integer?5parse?5overflow@ DB 'integer parse overflow', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_07IDKIDMGJ@bad?5PNM@ -CONST SEGMENT -??_C@_07IDKIDMGJ@bad?5PNM@ DB 'bad PNM', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0CA@JBEOCDFN@invalid?5decoded?5scanline?5length@ -CONST SEGMENT -??_C@_0CA@JBEOCDFN@invalid?5decoded?5scanline?5length@ DB 'invalid decode' - DB 'd scanline length', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_03FOKDFDHG@?$CLX?5@ -CONST SEGMENT -??_C@_03FOKDFDHG@?$CLX?5@ DB '+X ', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BI@DCNDPIOH@unsupported?5data?5layout@ -CONST SEGMENT -??_C@_0BI@DCNDPIOH@unsupported?5data?5layout@ DB 'unsupported data layout' - DB 00H ; `string' -CONST ENDS -; COMDAT ??_C@_03HKAKGGJN@?9Y?5@ -CONST SEGMENT -??_C@_03HKAKGGJN@?9Y?5@ DB '-Y ', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BD@NKJFFLKL@unsupported?5format@ -CONST SEGMENT -??_C@_0BD@NKJFFLKL@unsupported?5format@ DB 'unsupported format', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BH@JFGBLLKC@FORMAT?$DN32?9bit_rle_rgbe@ -CONST SEGMENT -??_C@_0BH@JFGBLLKC@FORMAT?$DN32?9bit_rle_rgbe@ DB 'FORMAT=32-bit_rle_rgbe' - DB 00H ; `string' -CONST ENDS -; COMDAT ??_C@_07NCIOKENI@not?5HDR@ -CONST SEGMENT -??_C@_07NCIOKENI@not?5HDR@ DB 'not HDR', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_06NDOKKIDJ@?$CD?$DPRGBE@ -CONST SEGMENT -??_C@_06NDOKKIDJ@?$CD?$DPRGBE@ DB '#?RGBE', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0L@NCPEAJBD@?$CD?$DPRADIANCE@ -CONST SEGMENT -??_C@_0L@NCPEAJBD@?$CD?$DPRADIANCE@ DB '#?RADIANCE', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_07KFDJIKCK@?$CD?$DPRGBE?6@ -CONST SEGMENT -??_C@_07KFDJIKCK@?$CD?$DPRGBE?6@ DB '#?RGBE', 0aH, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0M@HOIDFNFN@?$CD?$DPRADIANCE?6@ -CONST SEGMENT -??_C@_0M@HOIDFNFN@?$CD?$DPRADIANCE?6@ DB '#?RADIANCE', 0aH, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0N@DJABBOOH@unknown?5code@ -CONST SEGMENT -??_C@_0N@DJABBOOH@unknown?5code@ DB 'unknown code', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BE@NAMJKDNF@missing?5color?5table@ -CONST SEGMENT -??_C@_0BE@NAMJKDNF@missing?5color?5table@ DB 'missing color table', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BF@GIAALCNJ@bad?5Image?5Descriptor@ -CONST SEGMENT -??_C@_0BF@GIAALCNJ@bad?5Image?5Descriptor@ DB 'bad Image Descriptor', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BH@LOKBIIOJ@illegal?5code?5in?5raster@ -CONST SEGMENT -??_C@_0BH@LOKBIIOJ@illegal?5code?5in?5raster@ DB 'illegal code in raster', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0P@GJNJCPDJ@too?5many?5codes@ -CONST SEGMENT -??_C@_0P@GJNJCPDJ@too?5many?5codes@ DB 'too many codes', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0O@MGDACKOJ@no?5clear?5code@ -CONST SEGMENT -??_C@_0O@MGDACKOJ@no?5clear?5code@ DB 'no clear code', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_00CNPNBAHC@@ -CONST SEGMENT -??_C@_00CNPNBAHC@@ DB 00H ; `string' -CONST ENDS -; COMDAT ??_C@_07KMJLPAII@not?5GIF@ -CONST SEGMENT -??_C@_07KMJLPAII@not?5GIF@ DB 'not GIF', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_08GGMBIFE@bad?5file@ -CONST SEGMENT -??_C@_08GGMBIFE@bad?5file@ DB 'bad file', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_04ELNJHLFH@PICT@ -CONST SEGMENT -??_C@_04ELNJHLFH@PICT@ DB 'PICT', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_04KBFEPHFH@S?$IA?v4@ -CONST SEGMENT -??_C@_04KBFEPHFH@S?$IA?v4@ DB 'S', 080H, 0f6H, '4', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_07DPPMCAKL@corrupt@ -CONST SEGMENT -??_C@_07DPPMCAKL@corrupt@ DB 'corrupt', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BD@IOGGBMNK@wrong?5color?5format@ -CONST SEGMENT -??_C@_0BD@IOGGBMNK@wrong?5color?5format@ DB 'wrong color format', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BG@NOLDLPP@unsupported?5bit?5depth@ -CONST SEGMENT -??_C@_0BG@NOLDLPP@unsupported?5bit?5depth@ DB 'unsupported bit depth', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BE@PJBNGDBE@wrong?5channel?5count@ -CONST SEGMENT -??_C@_0BE@PJBNGDBE@wrong?5channel?5count@ DB 'wrong channel count', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0O@CHBCDKKC@wrong?5version@ -CONST SEGMENT -??_C@_0O@CHBCDKKC@wrong?5version@ DB 'wrong version', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_07ECNCNLIK@not?5PSD@ -CONST SEGMENT -??_C@_07ECNCNLIK@not?5PSD@ DB 'not PSD', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_1CK@GOOINIO@?$AAt?$AAg?$AAa?$AA_?$AAc?$AAo?$AAm?$AAp?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAS?$AAT?$AAB@ -CONST SEGMENT -??_C@_1CK@GOOINIO@?$AAt?$AAg?$AAa?$AA_?$AAc?$AAo?$AAm?$AAp?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAS?$AAT?$AAB@ DB 't' - DB 00H, 'g', 00H, 'a', 00H, '_', 00H, 'c', 00H, 'o', 00H, 'm', 00H - DB 'p', 00H, ' ', 00H, '=', 00H, '=', 00H, ' ', 00H, 'S', 00H, 'T' - DB 00H, 'B', 00H, 'I', 00H, '_', 00H, 'r', 00H, 'g', 00H, 'b', 00H - DB 00H, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0M@ILLOCNCO@bad?5palette@ -CONST SEGMENT -??_C@_0M@ILLOCNCO@bad?5palette@ DB 'bad palette', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0L@DMAPJJO@bad?5format@ -CONST SEGMENT -??_C@_0L@DMAPJJO@bad?5format@ DB 'bad format', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_09DAEBACAB@bad?5masks@ -CONST SEGMENT -??_C@_09DAEBACAB@bad?5masks@ DB 'bad masks', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_07JNJHIMGH@bad?5bpp@ -CONST SEGMENT -??_C@_07JNJHIMGH@bad?5bpp@ DB 'bad bpp', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_07MALOAKCI@invalid@ -CONST SEGMENT -??_C@_07MALOAKCI@invalid@ DB 'invalid', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0L@JDPIFELH@bad?5offset@ -CONST SEGMENT -??_C@_0L@JDPIFELH@bad?5offset@ DB 'bad offset', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0L@PJHPAMCH@bad?5header@ -CONST SEGMENT -??_C@_0L@PJHPAMCH@bad?5header@ DB 'bad header', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0N@ODCBCBFN@BMP?5JPEG?1PNG@ -CONST SEGMENT -??_C@_0N@ODCBCBFN@BMP?5JPEG?1PNG@ DB 'BMP JPEG/PNG', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_07IMHMNOIB@BMP?5RLE@ -CONST SEGMENT -??_C@_07IMHMNOIB@BMP?5RLE@ DB 'BMP RLE', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0M@KHBIBJBG@unknown?5BMP@ -CONST SEGMENT -??_C@_0M@KHBIBJBG@unknown?5BMP@ DB 'unknown BMP', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_07IEJCHBDI@bad?5BMP@ -CONST SEGMENT -??_C@_07IEJCHBDI@bad?5BMP@ DB 'bad BMP', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_07IANEBNLB@not?5BMP@ -CONST SEGMENT -??_C@_07IANEBNLB@not?5BMP@ DB 'not BMP', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_1CO@LIFEKNEP@?$AAb?$AAi?$AAt?$AAs?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA0?$AA?5?$AA?$CG?$AA?$CG?$AA?5?$AAb?$AAi@ -CONST SEGMENT -??_C@_1CO@LIFEKNEP@?$AAb?$AAi?$AAt?$AAs?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA0?$AA?5?$AA?$CG?$AA?$CG?$AA?5?$AAb?$AAi@ DB 'b' - DB 00H, 'i', 00H, 't', 00H, 's', 00H, ' ', 00H, '>', 00H, '=', 00H - DB ' ', 00H, '0', 00H, ' ', 00H, '&', 00H, '&', 00H, ' ', 00H, 'b' - DB 00H, 'i', 00H, 't', 00H, 's', 00H, ' ', 00H, '<', 00H, '=', 00H - DB ' ', 00H, '8', 00H, 00H, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_1BA@EKLGALLJ@?$AAv?$AA?5?$AA?$DM?$AA?5?$AA2?$AA5?$AA6@ -CONST SEGMENT -??_C@_1BA@EKLGALLJ@?$AAv?$AA?5?$AA?$DM?$AA?5?$AA2?$AA5?$AA6@ DB 'v', 00H, ' ' - DB 00H, '<', 00H, ' ', 00H, '2', 00H, '5', 00H, '6', 00H, 00H, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BF@NOEEEFMF@bad?5bits_per_channel@ -CONST SEGMENT -??_C@_0BF@NOEEEFMF@bad?5bits_per_channel@ DB 'bad bits_per_channel', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_07MLPECBNA@no?5IDAT@ -CONST SEGMENT -??_C@_07MLPECBNA@no?5IDAT@ DB 'no IDAT', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_09MNNCNKEO@outofdata@ -CONST SEGMENT -??_C@_09MNNCNKEO@outofdata@ DB 'outofdata', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BA@PLHGLONG@IDAT?5size?5limit@ -CONST SEGMENT -??_C@_0BA@PLHGLONG@IDAT?5size?5limit@ DB 'IDAT size limit', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_07CKIELOEH@no?5PLTE@ -CONST SEGMENT -??_C@_07CKIELOEH@no?5PLTE@ DB 'no PLTE', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BA@ENDPGCHB@tRNS?5with?5alpha@ -CONST SEGMENT -??_C@_0BA@ENDPGCHB@tRNS?5with?5alpha@ DB 'tRNS with alpha', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0N@KDLCCKCH@bad?5tRNS?5len@ -CONST SEGMENT -??_C@_0N@KDLCCKCH@bad?5tRNS?5len@ DB 'bad tRNS len', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BB@CEDNNLBG@tRNS?5before?5PLTE@ -CONST SEGMENT -??_C@_0BB@CEDNNLBG@tRNS?5before?5PLTE@ DB 'tRNS before PLTE', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BA@PCPJHDKJ@tRNS?5after?5IDAT@ -CONST SEGMENT -??_C@_0BA@PCPJHDKJ@tRNS?5after?5IDAT@ DB 'tRNS after IDAT', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0N@JCPAJAKB@invalid?5PLTE@ -CONST SEGMENT -??_C@_0N@JCPAJAKB@invalid?5PLTE@ DB 'invalid PLTE', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0P@JEAFOMAF@first?5not?5IHDR@ -CONST SEGMENT -??_C@_0P@JEAFOMAF@first?5not?5IHDR@ DB 'first not IHDR', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0O@FNFBHCOO@0?9pixel?5image@ -CONST SEGMENT -??_C@_0O@FNFBHCOO@0?9pixel?5image@ DB '0-pixel image', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BF@JCGDPBAA@bad?5interlace?5method@ -CONST SEGMENT -??_C@_0BF@JCGDPBAA@bad?5interlace?5method@ DB 'bad interlace method', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BC@GHLIKKMD@bad?5filter?5method@ -CONST SEGMENT -??_C@_0BC@GHLIKKMD@bad?5filter?5method@ DB 'bad filter method', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BA@MDMBDDFG@bad?5comp?5method@ -CONST SEGMENT -??_C@_0BA@MDMBDDFG@bad?5comp?5method@ DB 'bad comp method', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_09MBBNGCKB@bad?5ctype@ -CONST SEGMENT -??_C@_09MBBNGCKB@bad?5ctype@ DB 'bad ctype', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BE@EJHIPKNO@1?12?14?18?116?9bit?5only@ -CONST SEGMENT -??_C@_0BE@EJHIPKNO@1?12?14?18?116?9bit?5only@ DB '1/2/4/8/16-bit only', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0N@POJLKMKK@bad?5IHDR?5len@ -CONST SEGMENT -??_C@_0N@POJLKMKK@bad?5IHDR?5len@ DB 'bad IHDR len', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0O@KBHBNJOK@multiple?5IHDR@ -CONST SEGMENT -??_C@_0O@KBHBNJOK@multiple?5IHDR@ DB 'multiple IHDR', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_1CE@GKIDJEJM@?$AAs?$AA?9?$AA?$DO?$AAi?$AAm?$AAg?$AA_?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN@ -CONST SEGMENT -??_C@_1CE@GKIDJEJM@?$AAs?$AA?9?$AA?$DO?$AAi?$AAm?$AAg?$AA_?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN@ DB 's' - DB 00H, '-', 00H, '>', 00H, 'i', 00H, 'm', 00H, 'g', 00H, '_', 00H - DB 'o', 00H, 'u', 00H, 't', 00H, '_', 00H, 'n', 00H, ' ', 00H, '=' - DB 00H, '=', 00H, ' ', 00H, '4', 00H, 00H, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_1DC@BMIDKOPK@?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA2?$AA?5?$AA?$HM?$AA?$HM?$AA?5?$AAo@ -CONST SEGMENT -??_C@_1DC@BMIDKOPK@?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA2?$AA?5?$AA?$HM?$AA?$HM?$AA?5?$AAo@ DB 'o' - DB 00H, 'u', 00H, 't', 00H, '_', 00H, 'n', 00H, ' ', 00H, '=', 00H - DB '=', 00H, ' ', 00H, '2', 00H, ' ', 00H, '|', 00H, '|', 00H, ' ' - DB 00H, 'o', 00H, 'u', 00H, 't', 00H, '_', 00H, 'n', 00H, ' ', 00H - DB '=', 00H, '=', 00H, ' ', 00H, '4', 00H, 00H, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_1CG@MFAHHIFB@?$AAi?$AAm?$AAg?$AA_?$AAn?$AA?5?$AA?$CL?$AA?5?$AA1?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAo?$AAu@ -CONST SEGMENT -??_C@_1CG@MFAHHIFB@?$AAi?$AAm?$AAg?$AA_?$AAn?$AA?5?$AA?$CL?$AA?5?$AA1?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAo?$AAu@ DB 'i' - DB 00H, 'm', 00H, 'g', 00H, '_', 00H, 'n', 00H, ' ', 00H, '+', 00H - DB ' ', 00H, '1', 00H, ' ', 00H, '=', 00H, '=', 00H, ' ', 00H, 'o' - DB 00H, 'u', 00H, 't', 00H, '_', 00H, 'n', 00H, 00H, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_1BG@OEFMLIPO@?$AAd?$AAe?$AAp?$AAt?$AAh?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA1@ -CONST SEGMENT -??_C@_1BG@OEFMLIPO@?$AAd?$AAe?$AAp?$AAt?$AAh?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA1@ DB 'd' - DB 00H, 'e', 00H, 'p', 00H, 't', 00H, 'h', 00H, ' ', 00H, '=', 00H - DB '=', 00H, ' ', 00H, '1', 00H, 00H, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0P@FBBCPGMN@invalid?5filter@ -CONST SEGMENT -??_C@_0P@FBBCPGMN@invalid?5filter@ DB 'invalid filter', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BC@BHMPBBMG@not?5enough?5pixels@ -CONST SEGMENT -??_C@_0BC@BHMPBBMG@not?5enough?5pixels@ DB 'not enough pixels', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_1FG@LGPEHEPM@?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAs?$AA?9?$AA?$DO?$AAi?$AAm?$AAg@ -CONST SEGMENT -??_C@_1FG@LGPEHEPM@?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAs?$AA?9?$AA?$DO?$AAi?$AAm?$AAg@ DB 'o' - DB 00H, 'u', 00H, 't', 00H, '_', 00H, 'n', 00H, ' ', 00H, '=', 00H - DB '=', 00H, ' ', 00H, 's', 00H, '-', 00H, '>', 00H, 'i', 00H, 'm' - DB 00H, 'g', 00H, '_', 00H, 'n', 00H, ' ', 00H, '|', 00H, '|', 00H - DB ' ', 00H, 'o', 00H, 'u', 00H, 't', 00H, '_', 00H, 'n', 00H, ' ' - DB 00H, '=', 00H, '=', 00H, ' ', 00H, 's', 00H, '-', 00H, '>', 00H - DB 'i', 00H, 'm', 00H, 'g', 00H, '_', 00H, 'n', 00H, ' ', 00H, '+' - DB 00H, ' ', 00H, '1', 00H, 00H, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_1BG@FLOPDKAN@?$AAi?$AAm?$AAg?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA3@ -CONST SEGMENT -??_C@_1BG@FLOPDKAN@?$AAi?$AAm?$AAg?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA3@ DB 'i' - DB 00H, 'm', 00H, 'g', 00H, '_', 00H, 'n', 00H, ' ', 00H, '=', 00H - DB '=', 00H, ' ', 00H, '3', 00H, 00H, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0M@DMDNBACF@bad?5png?5sig@ -CONST SEGMENT -??_C@_0M@DMDNBACF@bad?5png?5sig@ DB 'bad png sig', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BA@MCNBDLPD@bad?5compression@ -CONST SEGMENT -??_C@_0BA@MCNBDLPD@bad?5compression@ DB 'bad compression', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0P@DOGMHEBI@no?5preset?5dict@ -CONST SEGMENT -??_C@_0P@DOGMHEBI@no?5preset?5dict@ DB 'no preset dict', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BA@OBKOPAFL@bad?5zlib?5header@ -CONST SEGMENT -??_C@_0BA@OBKOPAFL@bad?5zlib?5header@ DB 'bad zlib header', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BB@PIPBCKIA@read?5past?5buffer@ -CONST SEGMENT -??_C@_0BB@PIPBCKIA@read?5past?5buffer@ DB 'read past buffer', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0N@IECDHMDI@zlib?5corrupt@ -CONST SEGMENT -??_C@_0N@IECDHMDI@zlib?5corrupt@ DB 'zlib corrupt', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_08DIAPIMGJ@bad?5dist@ -CONST SEGMENT -??_C@_08DIAPIMGJ@bad?5dist@ DB 'bad dist', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0P@CLDJCNKP@unexpected?5end@ -CONST SEGMENT -??_C@_0P@CLDJCNKP@unexpected?5end@ DB 'unexpected end', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BE@IBFIPFO@output?5buffer?5limit@ -CONST SEGMENT -??_C@_0BE@IBFIPFO@output?5buffer?5limit@ DB 'output buffer limit', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BA@MDNKOBMC@bad?5codelengths@ -CONST SEGMENT -??_C@_0BA@MDNKOBMC@bad?5codelengths@ DB 'bad codelengths', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_09EOHLEIKL@bad?5sizes@ -CONST SEGMENT -??_C@_09EOHLEIKL@bad?5sizes@ DB 'bad sizes', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_1BG@HKNLHECB@?$AAb?$AAi?$AAt?$AAs?$AA?5?$AA?$DM?$AA?$DN?$AA?5?$AA1?$AA6@ -CONST SEGMENT -??_C@_1BG@HKNLHECB@?$AAb?$AAi?$AAt?$AAs?$AA?5?$AA?$DM?$AA?$DN?$AA?5?$AA1?$AA6@ DB 'b' - DB 00H, 'i', 00H, 't', 00H, 's', 00H, ' ', 00H, '<', 00H, '=', 00H - DB ' ', 00H, '1', 00H, '6', 00H, 00H, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0N@KBPNPPBJ@bad?5req_comp@ -CONST SEGMENT -??_C@_0N@KBPNPPBJ@bad?5req_comp@ DB 'bad req_comp', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0P@PNCLKCLJ@bad?5DNL?5height@ -CONST SEGMENT -??_C@_0P@PNCLKCLJ@bad?5DNL?5height@ DB 'bad DNL height', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0M@EPMOIECP@bad?5DNL?5len@ -CONST SEGMENT -??_C@_0M@EPMOIECP@bad?5DNL?5len@ DB 'bad DNL len', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_06IFCEAHIA@no?5SOF@ -CONST SEGMENT -??_C@_06IFCEAHIA@no?5SOF@ DB 'no SOF', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_06CLMBLEP@no?5SOI@ -CONST SEGMENT -??_C@_06CLMBLEP@no?5SOI@ DB 'no SOI', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_06LJIHDFHI@bad?5TQ@ -CONST SEGMENT -??_C@_06LJIHDFHI@bad?5TQ@ DB 'bad TQ', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_05MPLLHCJG@bad?5V@ -CONST SEGMENT -??_C@_05MPLLHCJG@bad?5V@ DB 'bad V', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_05BLPKENEJ@bad?5H@ -CONST SEGMENT -??_C@_05BLPKENEJ@bad?5H@ DB 'bad H', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BE@DAPHADHL@bad?5component?5count@ -CONST SEGMENT -??_C@_0BE@DAPHADHL@bad?5component?5count@ DB 'bad component count', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_09OJDLMMBJ@too?5large@ -CONST SEGMENT -??_C@_09OJDLMMBJ@too?5large@ DB 'too large', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_07BIDACDEF@0?5width@ -CONST SEGMENT -??_C@_07BIDACDEF@0?5width@ DB '0 width', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BB@LNEGOMA@no?5header?5height@ -CONST SEGMENT -??_C@_0BB@LNEGOMA@no?5header?5height@ DB 'no header height', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0L@BCINMEBJ@only?58?9bit@ -CONST SEGMENT -??_C@_0L@BCINMEBJ@only?58?9bit@ DB 'only 8-bit', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0M@DOFMJEMP@bad?5SOF?5len@ -CONST SEGMENT -??_C@_0M@DOFMJEMP@bad?5SOF?5len@ DB 'bad SOF len', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_07EEJOMGGP@bad?5SOS@ -CONST SEGMENT -??_C@_07EEJOMGGP@bad?5SOS@ DB 'bad SOS', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0M@JGMCBLGG@bad?5AC?5huff@ -CONST SEGMENT -??_C@_0M@JGMCBLGG@bad?5AC?5huff@ DB 'bad AC huff', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0M@NOCCBFAC@bad?5DC?5huff@ -CONST SEGMENT -??_C@_0M@NOCCBFAC@bad?5DC?5huff@ DB 'bad DC huff', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0M@GNEHAHOH@bad?5SOS?5len@ -CONST SEGMENT -??_C@_0M@GNEHAHOH@bad?5SOS?5len@ DB 'bad SOS len', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BI@DHFJCMBA@bad?5SOS?5component?5count@ -CONST SEGMENT -??_C@_0BI@DHFJCMBA@bad?5SOS?5component?5count@ DB 'bad SOS component coun' - DB 't', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0P@NNGPHMMK@unknown?5marker@ -CONST SEGMENT -??_C@_0P@NNGPHMMK@unknown?5marker@ DB 'unknown marker', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0M@EENLKPDI@bad?5APP?5len@ -CONST SEGMENT -??_C@_0M@EENLKPDI@bad?5APP?5len@ DB 'bad APP len', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0M@CICAFFCH@bad?5COM?5len@ -CONST SEGMENT -??_C@_0M@CICAFFCH@bad?5COM?5len@ DB 'bad COM len', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0P@JLGKOCGN@bad?5DHT?5header@ -CONST SEGMENT -??_C@_0P@JLGKOCGN@bad?5DHT?5header@ DB 'bad DHT header', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0O@CNHKKDIM@bad?5DQT?5table@ -CONST SEGMENT -??_C@_0O@CNHKKDIM@bad?5DQT?5table@ DB 'bad DQT table', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0N@BOFJCHAP@bad?5DQT?5type@ -CONST SEGMENT -??_C@_0N@BOFJCHAP@bad?5DQT?5type@ DB 'bad DQT type', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0M@LPHNODCG@bad?5DRI?5len@ -CONST SEGMENT -??_C@_0M@LPHNODCG@bad?5DRI?5len@ DB 'bad DRI len', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BA@KLNDOKJD@expected?5marker@ -CONST SEGMENT -??_C@_0BA@KLNDOKJD@expected?5marker@ DB 'expected marker', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BG@PJBJDAGM@can?8t?5merge?5dc?5and?5ac@ -CONST SEGMENT -??_C@_0BG@PJBJDAGM@can?8t?5merge?5dc?5and?5ac@ DB 'can''t merge dc and ac' - DB 00H ; `string' -CONST ENDS -; COMDAT ??_C@_09IFDKCGFO@bad?5delta@ -CONST SEGMENT -??_C@_09IFDKCGFO@bad?5delta@ DB 'bad delta', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BB@IIMLINA@bad?5huffman?5code@ -CONST SEGMENT -??_C@_0BB@IIMLINA@bad?5huffman?5code@ DB 'bad huffman code', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_1KE@JGKPJEBO@?$AA?$CI?$AA?$CI?$AA?$CI?$AAj?$AA?9?$AA?$DO?$AAc?$AAo?$AAd?$AAe?$AA_?$AAb?$AAu?$AAf?$AAf@ -CONST SEGMENT -??_C@_1KE@JGKPJEBO@?$AA?$CI?$AA?$CI?$AA?$CI?$AAj?$AA?9?$AA?$DO?$AAc?$AAo?$AAd?$AAe?$AA_?$AAb?$AAu?$AAf?$AAf@ DB '(' - DB 00H, '(', 00H, '(', 00H, 'j', 00H, '-', 00H, '>', 00H, 'c', 00H - DB 'o', 00H, 'd', 00H, 'e', 00H, '_', 00H, 'b', 00H, 'u', 00H, 'f' - DB 00H, 'f', 00H, 'e', 00H, 'r', 00H, ')', 00H, ' ', 00H, '>', 00H - DB '>', 00H, ' ', 00H, '(', 00H, '3', 00H, '2', 00H, ' ', 00H, '-' - DB 00H, ' ', 00H, 'h', 00H, '-', 00H, '>', 00H, 's', 00H, 'i', 00H - DB 'z', 00H, 'e', 00H, '[', 00H, 'c', 00H, ']', 00H, ')', 00H, ')' - DB 00H, ' ', 00H, '&', 00H, ' ', 00H, 's', 00H, 't', 00H, 'b', 00H - DB 'i', 00H, '_', 00H, '_', 00H, 'b', 00H, 'm', 00H, 'a', 00H, 's' - DB 00H, 'k', 00H, '[', 00H, 'h', 00H, '-', 00H, '>', 00H, 's', 00H - DB 'i', 00H, 'z', 00H, 'e', 00H, '[', 00H, 'c', 00H, ']', 00H, ']' - DB 00H, ')', 00H, ' ', 00H, '=', 00H, '=', 00H, ' ', 00H, 'h', 00H - DB '-', 00H, '>', 00H, 'c', 00H, 'o', 00H, 'd', 00H, 'e', 00H, '[' - DB 00H, 'c', 00H, ']', 00H, 00H, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BB@FOKGPEKG@bad?5code?5lengths@ -CONST SEGMENT -??_C@_0BB@FOKGPEKG@bad?5code?5lengths@ DB 'bad code lengths', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0O@DEFOLMLB@bad?5size?5list@ -CONST SEGMENT -??_C@_0O@DEFOLMLB@bad?5size?5list@ DB 'bad size list', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0M@MHDBFHD@unsupported@ -CONST SEGMENT -??_C@_0M@MHDBFHD@unsupported@ DB 'unsupported', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_13COJANIEC@?$AA0@ -CONST SEGMENT -??_C@_13COJANIEC@?$AA0@ DB '0', 00H, 00H, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_1DO@MABJBNAJ@?$AAr?$AAe?$AAq?$AA_?$AAc?$AAo?$AAm?$AAp?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA1?$AA?5?$AA?$CG@ -CONST SEGMENT -??_C@_1DO@MABJBNAJ@?$AAr?$AAe?$AAq?$AA_?$AAc?$AAo?$AAm?$AAp?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA1?$AA?5?$AA?$CG@ DB 'r' - DB 00H, 'e', 00H, 'q', 00H, '_', 00H, 'c', 00H, 'o', 00H, 'm', 00H - DB 'p', 00H, ' ', 00H, '>', 00H, '=', 00H, ' ', 00H, '1', 00H, ' ' - DB 00H, '&', 00H, '&', 00H, ' ', 00H, 'r', 00H, 'e', 00H, 'q', 00H - DB '_', 00H, 'c', 00H, 'o', 00H, 'm', 00H, 'p', 00H, ' ', 00H, '<' - DB 00H, '=', 00H, ' ', 00H, '4', 00H, 00H, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0M@JPDHFAGK@can?8t?5fopen@ -CONST SEGMENT -??_C@_0M@JPDHFAGK@can?8t?5fopen@ DB 'can''t fopen', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_02JDPG@rb@ -CONST SEGMENT -??_C@_02JDPG@rb@ DB 'rb', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_1GM@LFNCFCEN@?$AAr?$AAi?$AA?4?$AAb?$AAi?$AAt?$AAs?$AA_?$AAp?$AAe?$AAr?$AA_?$AAc?$AAh?$AAa@ -CONST SEGMENT -??_C@_1GM@LFNCFCEN@?$AAr?$AAi?$AA?4?$AAb?$AAi?$AAt?$AAs?$AA_?$AAp?$AAe?$AAr?$AA_?$AAc?$AAh?$AAa@ DB 'r' - DB 00H, 'i', 00H, '.', 00H, 'b', 00H, 'i', 00H, 't', 00H, 's', 00H - DB '_', 00H, 'p', 00H, 'e', 00H, 'r', 00H, '_', 00H, 'c', 00H, 'h' - DB 00H, 'a', 00H, 'n', 00H, 'n', 00H, 'e', 00H, 'l', 00H, ' ', 00H - DB '=', 00H, '=', 00H, ' ', 00H, '8', 00H, ' ', 00H, '|', 00H, '|' - DB 00H, ' ', 00H, 'r', 00H, 'i', 00H, '.', 00H, 'b', 00H, 'i', 00H - DB 't', 00H, 's', 00H, '_', 00H, 'p', 00H, 'e', 00H, 'r', 00H, '_' - DB 00H, 'c', 00H, 'h', 00H, 'a', 00H, 'n', 00H, 'n', 00H, 'e', 00H - DB 'l', 00H, ' ', 00H, '=', 00H, '=', 00H, ' ', 00H, '1', 00H, '6' - DB 00H, 00H, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ -CONST SEGMENT -??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ DB 'D' - DB 00H, ':', 00H, '\', 00H, 'p', 00H, 'l', 00H, 'a', 00H, 't', 00H - DB 'f', 00H, 'o', 00H, 'r', 00H, 'm', 00H, '-', 00H, 'd', 00H, 'e' - DB 00H, 'v', 00H, '\', 00H, 'S', 00H, 't', 00H, 'g', 00H, 'S', 00H - DB 'h', 00H, 'a', 00H, 'r', 00H, 'p', 00H, '.', 00H, 'N', 00H, 'a' - DB 00H, 't', 00H, 'i', 00H, 'v', 00H, 'e', 00H, '\', 00H, 'l', 00H - DB 'i', 00H, 'b', 00H, '\', 00H, 's', 00H, 't', 00H, 'b', 00H, 'i' - DB 00H, '\', 00H, 's', 00H, 't', 00H, 'b', 00H, '_', 00H, 'i', 00H - DB 'm', 00H, 'a', 00H, 'g', 00H, 'e', 00H, '.', 00H, 'h', 00H, 00H - DB 00H ; `string' -CONST ENDS -; COMDAT ??_C@_08NOGIMCHF@outofmem@ -CONST SEGMENT -??_C@_08NOGIMCHF@outofmem@ DB 'outofmem', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BD@CBEDEJPH@unknown?5image?5type@ -CONST SEGMENT -??_C@_0BD@CBEDEJPH@unknown?5image?5type@ DB 'unknown image type', 00H ; `string' -CONST ENDS -_DATA SEGMENT -stbi__stdio_callbacks DQ FLAT:stbi__stdio_read - DQ FLAT:stbi__stdio_skip - DQ FLAT:stbi__stdio_eof -stbi__l2h_gamma DD 0400ccccdr ; 2.2 -stbi__l2h_scale DD 03f800000r ; 1 -stbi__h2l_gamma_i DD 03ee8ba2er ; 0.454545 -stbi__h2l_scale_i DD 03f800000r ; 1 -first_row_filter DB 00H - DB 01H - DB 00H - DB 05H - DB 01H - ORG $+3 -?invalid_chunk@?BP@??stbi__parse_png_file@@9@9 DB 'XXXX PNG chunk not kno' - DB 'wn', 00H ; `stbi__parse_png_file'::`31'::invalid_chunk - ORG $+7 -?mul_table@?1??stbi__shiftsigned@@9@9 DD 00H ; `stbi__shiftsigned'::`2'::mul_table - DD 0ffH - DD 055H - DD 049H - DD 011H - DD 021H - DD 041H - DD 081H - DD 01H - ORG $+4 -?shift_table@?1??stbi__shiftsigned@@9@9 DD 00H ; `stbi__shiftsigned'::`2'::shift_table - DD 00H - DD 00H - DD 01H - DD 00H - DD 02H - DD 04H - DD 06H - DD 00H -_DATA ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$readLog DD 025050f01H - DD 010a230fH - DD 070030021H - DD 05002H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$unloadImageData DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$loadGlfuncDefault DD 025051301H - DD 010e2313H - DD 070070025H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$loadImageData DD 035051d01H - DD 0118331dH - DD 07011001fH - DD 05010H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 03aH - DB 0caH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$linkShaderProgram DD 025054119H - DD 01122317H - DD 0700b0021H - DD 0500aH - DD imagerel __GSHandlerCheck - DD 0f8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -linkShaderProgram$rtcName$0 DB 073H - DB 075H - DB 063H - DB 063H - DB 065H - DB 073H - DB 073H - DB 00H - ORG $+8 -linkShaderProgram$rtcVarDesc DD 024H - DD 04H - DQ FLAT:linkShaderProgram$rtcName$0 - ORG $+48 -linkShaderProgram$rtcFrameData DD 01H - DD 00H - DQ FLAT:linkShaderProgram$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$initGL DD 025051601H - DD 01112316H - DD 0700a001dH - DD 05009H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 045H - DB 0cfH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$glCheckShaderStat DD 025054c19H - DD 011d2322H - DD 070160021H - DD 05015H - DD imagerel __GSHandlerCheck - DD 0f8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -glCheckShaderStat$rtcName$0 DB 073H - DB 074H - DB 061H - DB 074H - DB 00H - ORG $+11 -glCheckShaderStat$rtcVarDesc DD 024H - DD 04H - DQ FLAT:glCheckShaderStat$rtcName$0 - ORG $+48 -glCheckShaderStat$rtcFrameData DD 01H - DD 00H - DQ FLAT:glCheckShaderStat$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__is_16_main DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__info_main DD 025052201H - DD 011d2322H - DD 07016001dH - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__pnm_getinteger DD 025051801H - DD 01132318H - DD 0700c0021H - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__pnm_isdigit DD 025051201H - DD 010d2312H - DD 07006001fH - DD 05005H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__pnm_skip_whitespace DD 025051801H - DD 01132318H - DD 0700c001dH - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__pnm_isspace DD 025051201H - DD 010d2312H - DD 07006001fH - DD 05005H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__hdr_convert DD 025051d01H - DD 0118231dH - DD 070110021H - DD 05010H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__hdr_gettoken DD 025051801H - DD 01132318H - DD 0700c0025H - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__hdr_test_core DD 025051801H - DD 01132318H - DD 0700c0021H - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__load_gif_main_outofmem DD 025051d01H - DD 0118231dH - DD 07011001fH - DD 05010H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__gif_load_next DD 025052201H - DD 011d2322H - DD 07016004dH - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__process_gif_raster DD 025051801H - DD 01132318H - DD 0700c0051H - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__out_gif_code DD 025051801H - DD 01132318H - DD 0700c0029H - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__gif_info_raw DD 025052201H - DD 011d2322H - DD 070160021H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__gif_header DD 025052201H - DD 011d2322H - DD 070160021H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__gif_parse_colortable DD 025052201H - DD 011d2322H - DD 070160021H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__gif_test_raw DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 044H - DW 06f4H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__pic_load_core DD 025054b19H - DD 011c2321H - DD 070150083H - DD 05014H - DD imagerel __GSHandlerCheck - DD 0400H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__pic_load_core$rtcName$0 DB 070H - DB 061H - DB 063H - DB 06bH - DB 065H - DB 074H - DB 073H - DB 00H -stbi__pic_load_core$rtcName$1 DB 076H - DB 061H - DB 06cH - DB 075H - DB 065H - DB 00H - ORG $+2 -stbi__pic_load_core$rtcName$2 DB 076H - DB 061H - DB 06cH - DB 075H - DB 065H - DB 00H - ORG $+10 -stbi__pic_load_core$rtcVarDesc DD 0264H - DD 04H - DQ FLAT:stbi__pic_load_core$rtcName$2 - DD 01e4H - DD 04H - DQ FLAT:stbi__pic_load_core$rtcName$1 - DD 0a8H - DD 01eH - DQ FLAT:stbi__pic_load_core$rtcName$0 - ORG $+144 -stbi__pic_load_core$rtcFrameData DD 03H - DD 00H - DQ FLAT:stbi__pic_load_core$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__copyval DD 025051c01H - DD 0117231cH - DD 070100025H - DD 0500fH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__readval DD 025051c01H - DD 0117231cH - DD 070100025H - DD 0500fH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__pic_test_core DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__pic_is4 DD 025051801H - DD 01132318H - DD 0700c0021H - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__psd_decode_rle DD 025051d01H - DD 0118231dH - DD 07011002dH - DD 05010H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__tga_read_rgb16 DD 025051801H - DD 01132318H - DD 0700c0031H - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__tga_get_comp DD 025051b01H - DD 0116231bH - DD 0700f001fH - DD 0500eH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__bmp_parse_header DD 025051801H - DD 01132318H - DD 0700c0029H - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__bmp_set_mask_defaults DD 025051701H - DD 01122317H - DD 0700b001dH - DD 0500aH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__shiftsigned DD 025051b01H - DD 0116231bH - DD 0700f001dH - DD 0500eH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__bitcount DD 025051201H - DD 010d2312H - DD 07006001dH - DD 05005H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__high_bit DD 025051201H - DD 010d2312H - DD 070060021H - DD 05005H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__bmp_test_raw DD 025051301H - DD 010e2313H - DD 070070025H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__png_info_raw DD 025052201H - DD 011d2322H - DD 07016001dH - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__do_png DD 035052201H - DD 011d3322H - DD 070160023H - DD 05015H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 03fH - DW 0ecfH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__parse_png_file DD 045054619H - DD 0117431cH - DD 070100143H - DD 0500fH - DD imagerel __GSHandlerCheck - DD 0a00H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__parse_png_file$rtcName$0 DB 070H - DB 061H - DB 06cH - DB 065H - DB 074H - DB 074H - DB 065H - DB 00H -stbi__parse_png_file$rtcName$1 DB 074H - DB 063H - DB 00H - ORG $+1 -stbi__parse_png_file$rtcName$2 DB 074H - DB 063H - DB 031H - DB 036H - DB 00H - ORG $+3 -stbi__parse_png_file$rtcName$3 DB 063H - DB 00H - ORG $+2 -stbi__parse_png_file$rtcName$4 DB 072H - DB 061H - DB 077H - DB 05fH - DB 06cH - DB 065H - DB 06eH - DB 00H -stbi__parse_png_file$rtcVarDesc DD 06c4H - DD 04H - DQ FLAT:stbi__parse_png_file$rtcName$4 - DD 0628H - DD 08H - DQ FLAT:stbi__parse_png_file$rtcName$3 - DD 04c4H - DD 06H - DQ FLAT:stbi__parse_png_file$rtcName$2 - DD 04a4H - DD 03H - DQ FLAT:stbi__parse_png_file$rtcName$1 - DD 050H - DD 0400H - DQ FLAT:stbi__parse_png_file$rtcName$0 - ORG $+240 -stbi__parse_png_file$rtcFrameData DD 05H - DD 00H - DQ FLAT:stbi__parse_png_file$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__de_iphone DD 025051301H - DD 010e2313H - DD 070070041H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__expand_png_palette DD 025052201H - DD 011d2322H - DD 070160039H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__compute_transparency16 DD 025051d01H - DD 0118231dH - DD 07011002dH - DD 05010H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__compute_transparency DD 025051d01H - DD 0118231dH - DD 07011002dH - DD 05010H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__create_png_image DD 045053b01H - DD 011d4322H - DD 070160085H - DD 05015H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__create_png_image$rtcName$0 DB 078H - DB 06fH - DB 072H - DB 069H - DB 067H - DB 00H - ORG $+2 -stbi__create_png_image$rtcName$1 DB 079H - DB 06fH - DB 072H - DB 069H - DB 067H - DB 00H - ORG $+2 -stbi__create_png_image$rtcName$2 DB 078H - DB 073H - DB 070H - DB 063H - DB 00H - ORG $+3 -stbi__create_png_image$rtcName$3 DB 079H - DB 073H - DB 070H - DB 063H - DB 00H - ORG $+3 -stbi__create_png_image$rtcVarDesc DD 0188H - DD 01cH - DQ FLAT:stbi__create_png_image$rtcName$3 - DD 0148H - DD 01cH - DQ FLAT:stbi__create_png_image$rtcName$2 - DD 0108H - DD 01cH - DQ FLAT:stbi__create_png_image$rtcName$1 - DD 0c8H - DD 01cH - DQ FLAT:stbi__create_png_image$rtcName$0 - ORG $+192 -stbi__create_png_image$rtcFrameData DD 04H - DD 00H - DQ FLAT:stbi__create_png_image$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__create_png_image_raw DD 025052201H - DD 011d2322H - DD 07016009dH - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__create_png_alpha_expand8 DD 025052201H - DD 011d2322H - DD 070160021H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__paeth DD 025051b01H - DD 0116231bH - DD 0700f0031H - DD 0500eH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__check_png_header DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__get_chunk_header DD 025052c01H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__get_chunk_header$rtcName$0 DB 063H - DB 00H - ORG $+14 -stbi__get_chunk_header$rtcVarDesc DD 028H - DD 08H - DQ FLAT:stbi__get_chunk_header$rtcName$0 - ORG $+48 -stbi__get_chunk_header$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi__get_chunk_header$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__do_zlib DD 025052201H - DD 011d2322H - DD 07016001dH - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__parse_zlib DD 025051701H - DD 01122317H - DD 0700b0025H - DD 0500aH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__parse_zlib_header DD 025051301H - DD 010e2313H - DD 070070029H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__parse_uncompressed_block DD 025052c01H - DD 010e2313H - DD 07007002dH - DD 05006H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__parse_uncompressed_block$rtcName$0 DB 068H - DB 065H - DB 061H - DB 064H - DB 065H - DB 072H - DB 00H - ORG $+9 -stbi__parse_uncompressed_block$rtcVarDesc DD 024H - DD 04H - DQ FLAT:stbi__parse_uncompressed_block$rtcName$0 - ORG $+48 -stbi__parse_uncompressed_block$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi__parse_uncompressed_block$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 03cH - DW 039cH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__compute_huffman_codes DD 025054319H - DD 01142319H - DD 070070201H - DD 05006H - DD imagerel __GSHandlerCheck - DD 0ff0H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__compute_huffman_codes$rtcName$0 DB 07aH - DB 05fH - DB 063H - DB 06fH - DB 064H - DB 065H - DB 06cH - DB 065H - DB 06eH - DB 067H - DB 074H - DB 068H - DB 00H - ORG $+3 -stbi__compute_huffman_codes$rtcName$1 DB 06cH - DB 065H - DB 06eH - DB 063H - DB 06fH - DB 064H - DB 065H - DB 073H - DB 00H - ORG $+7 -stbi__compute_huffman_codes$rtcName$2 DB 063H - DB 06fH - DB 064H - DB 065H - DB 06cH - DB 065H - DB 06eH - DB 067H - DB 074H - DB 068H - DB 05fH - DB 073H - DB 069H - DB 07aH - DB 065H - DB 073H - DB 00H - ORG $+15 -stbi__compute_huffman_codes$rtcVarDesc DD 0a28H - DD 013H - DQ FLAT:stbi__compute_huffman_codes$rtcName$2 - DD 0840H - DD 01c7H - DQ FLAT:stbi__compute_huffman_codes$rtcName$1 - DD 030H - DD 07e4H - DQ FLAT:stbi__compute_huffman_codes$rtcName$0 - ORG $+144 -stbi__compute_huffman_codes$rtcFrameData DD 03H - DD 00H - DQ FLAT:stbi__compute_huffman_codes$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__parse_huffman_block DD 025051301H - DD 010e2313H - DD 070070035H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__zexpand DD 025051d01H - DD 0118231dH - DD 07011002dH - DD 05010H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__zhuffman_decode DD 025051801H - DD 01132318H - DD 0700c0025H - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__zhuffman_decode_slowpath DD 025051801H - DD 01132318H - DD 0700c0029H - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__zreceive DD 025051701H - DD 01122317H - DD 0700b0021H - DD 0500aH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__fill_bits DD 025051301H - DD 010e2313H - DD 07007001fH - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__zget8 DD 025051301H - DD 010e2313H - DD 07007001fH - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__zeof DD 025051301H - DD 010e2313H - DD 07007001fH - DD 05006H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 03aaH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__zbuild_huffman DD 025054719H - DD 0118231dH - DD 070110053H - DD 05010H - DD imagerel __GSHandlerCheck - DD 0288H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__zbuild_huffman$rtcName$0 DB 06eH - DB 065H - DB 078H - DB 074H - DB 05fH - DB 063H - DB 06fH - DB 064H - DB 065H - DB 00H - ORG $+2 -stbi__zbuild_huffman$rtcName$1 DB 073H - DB 069H - DB 07aH - DB 065H - DB 073H - DB 00H - ORG $+14 -stbi__zbuild_huffman$rtcVarDesc DD 0f0H - DD 044H - DQ FLAT:stbi__zbuild_huffman$rtcName$1 - DD 090H - DD 040H - DQ FLAT:stbi__zbuild_huffman$rtcName$0 - ORG $+96 -stbi__zbuild_huffman$rtcFrameData DD 02H - DD 00H - DQ FLAT:stbi__zbuild_huffman$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__bit_reverse DD 025051601H - DD 01112316H - DD 0700a001dH - DD 05009H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__bitreverse16 DD 025051201H - DD 010d2312H - DD 07006001dH - DD 05005H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__jpeg_info_raw DD 025052201H - DD 011d2322H - DD 07016001fH - DD 05015H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 045H - DW 012c0H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$load_jpeg_image DD 035054c19H - DD 011d3322H - DD 0701600a9H - DD 05015H - DD imagerel __GSHandlerCheck - DD 0538H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -load_jpeg_image$rtcName$0 DB 063H - DB 06fH - DB 075H - DB 074H - DB 070H - DB 075H - DB 074H - DB 00H -load_jpeg_image$rtcName$1 DB 072H - DB 065H - DB 073H - DB 05fH - DB 063H - DB 06fH - DB 06dH - DB 070H - DB 00H - ORG $+15 -load_jpeg_image$rtcVarDesc DD 0160H - DD 0c0H - DQ FLAT:load_jpeg_image$rtcName$1 - DD 0118H - DD 020H - DQ FLAT:load_jpeg_image$rtcName$0 - ORG $+96 -load_jpeg_image$rtcFrameData DD 02H - DD 00H - DQ FLAT:load_jpeg_image$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__blinn_8x8 DD 025051601H - DD 01112316H - DD 0700a0021H - DD 05009H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__cleanup_jpeg DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__setup_jpeg DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__YCbCr_to_RGB_simd DD 025052201H - DD 011d2322H - DD 070160147H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__YCbCr_to_RGB_row DD 025052201H - DD 011d2322H - DD 070160039H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__resample_row_generic DD 025052201H - DD 011d2322H - DD 070160025H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__resample_row_hv_2_simd DD 025052201H - DD 011d2322H - DD 0701600e9H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__resample_row_hv_2 DD 025052201H - DD 011d2322H - DD 070160029H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__resample_row_h_2 DD 025052201H - DD 011d2322H - DD 070160029H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__resample_row_v_2 DD 025052201H - DD 011d2322H - DD 070160021H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$resample_row_1 DD 025052201H - DD 011d2322H - DD 07016001dH - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__decode_jpeg_image DD 025051301H - DD 010e2313H - DD 070070029H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__skip_jpeg_junk_at_end DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__decode_jpeg_header DD 025051701H - DD 01122317H - DD 0700b0021H - DD 0500aH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__process_frame_header DD 025051701H - DD 01122317H - DD 0700b003dH - DD 0500aH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__free_jpeg_components DD 025051c01H - DD 0117231cH - DD 070100021H - DD 0500fH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__process_scan_header DD 025051301H - DD 010e2313H - DD 070070035H - DD 05006H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 03aH - DW 075bH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__process_marker DD 025054119H - DD 01122317H - DD 0700b0081H - DD 0500aH - DD imagerel __GSHandlerCheck - DD 03f8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__process_marker$rtcName$0 DB 073H - DB 069H - DB 07aH - DB 065H - DB 073H - DB 00H - ORG $+10 -stbi__process_marker$rtcVarDesc DD 0110H - DD 040H - DQ FLAT:stbi__process_marker$rtcName$0 - ORG $+48 -stbi__process_marker$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi__process_marker$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__jpeg_finish DD 025051301H - DD 010e2313H - DD 070070035H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__jpeg_dequantize DD 025051801H - DD 01132318H - DD 0700c0021H - DD 0500bH -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 036H - DW 0c93H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__parse_entropy_coded_data DD 045053d19H - DD 010e4313H - DD 0700700f5H - DD 05006H - DD imagerel __GSHandlerCheck - DD 0798H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__parse_entropy_coded_data$rtcName$0 DB 064H - DB 061H - DB 074H - DB 061H - DB 00H - ORG $+3 -stbi__parse_entropy_coded_data$rtcName$1 DB 064H - DB 061H - DB 074H - DB 061H - DB 00H - ORG $+3 -stbi__parse_entropy_coded_data$rtcVarDesc DD 0250H - DD 080H - DQ FLAT:stbi__parse_entropy_coded_data$rtcName$1 - DD 090H - DD 080H - DQ FLAT:stbi__parse_entropy_coded_data$rtcName$0 - ORG $+96 -stbi__parse_entropy_coded_data$rtcFrameData DD 02H - DD 00H - DQ FLAT:stbi__parse_entropy_coded_data$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__jpeg_reset DD 025051301H - DD 010e2313H - DD 07007001fH - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__get_marker DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__idct_simd DD 025052201H - DD 011d2322H - DD 0701004afH - DD 0500fH -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 03fH - DW 0c5cH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__idct_block DD 025054619H - DD 0117231cH - DD 0701000edH - DD 0500fH - DD imagerel __GSHandlerCheck - DD 0758H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__idct_block$rtcName$0 DB 076H - DB 061H - DB 06cH - DB 00H - ORG $+12 -stbi__idct_block$rtcVarDesc DD 050H - DD 0100H - DQ FLAT:stbi__idct_block$rtcName$0 - ORG $+48 -stbi__idct_block$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi__idct_block$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__clamp DD 025051201H - DD 010d2312H - DD 07006001dH - DD 05005H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__jpeg_decode_block_prog_ac DD 025052201H - DD 011d2322H - DD 070160051H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__jpeg_decode_block_prog_dc DD 025052201H - DD 011d2322H - DD 070160029H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__jpeg_decode_block DD 025052201H - DD 011d2322H - DD 070160041H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__jpeg_get_bit DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__jpeg_get_bits DD 025051701H - DD 01122317H - DD 0700b0021H - DD 0500aH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__extend_receive DD 025051701H - DD 01122317H - DD 0700b0025H - DD 0500aH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__jpeg_huff_decode DD 025051801H - DD 01132318H - DD 0700c002dH - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__grow_buffer_unsafe DD 025051301H - DD 010e2313H - DD 070070025H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__build_fast_ac DD 025051801H - DD 01132318H - DD 0700c003dH - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__build_huffman DD 025051801H - DD 01132318H - DD 0700c0039H - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__convert_format16 DD 025052101H - DD 011c2321H - DD 070150031H - DD 05014H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__compute_y_16 DD 025051b01H - DD 0116231bH - DD 0700f001dH - DD 0500eH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__convert_format DD 025052101H - DD 011c2321H - DD 070150031H - DD 05014H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__compute_y DD 025051b01H - DD 0116231bH - DD 0700f001dH - DD 0500eH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__get32le DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__get16le DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__get32be DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__get16be DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__getn DD 025051d01H - DD 0118231dH - DD 070110029H - DD 05010H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__skip DD 025051701H - DD 01122317H - DD 0700b0021H - DD 0500aH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__at_eof DD 025051301H - DD 010e2313H - DD 07007001fH - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__get8 DD 025051301H - DD 010e2313H - DD 07007001fH - DD 05006H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 045H - DW 01a0H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__loadf_main DD 035054c19H - DD 011d3322H - DD 07016002fH - DD 05015H - DD imagerel __GSHandlerCheck - DD 0160H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__loadf_main$rtcName$0 DB 072H - DB 069H - DB 00H - ORG $+13 -stbi__loadf_main$rtcVarDesc DD 058H - DD 0cH - DQ FLAT:stbi__loadf_main$rtcName$0 - ORG $+48 -stbi__loadf_main$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi__loadf_main$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 03bH - DB 08dH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__fopen DD 025054219H - DD 01132318H - DD 0700c0021H - DD 0500bH - DD imagerel __GSHandlerCheck - DD 0f8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__fopen$rtcName$0 DB 066H - DB 00H - ORG $+14 -stbi__fopen$rtcVarDesc DD 028H - DD 08H - DQ FLAT:stbi__fopen$rtcName$0 - ORG $+48 -stbi__fopen$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi__fopen$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__float_postprocess DD 025052201H - DD 011d2322H - DD 070160021H - DD 05015H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 045H - DW 01f3H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__load_and_postprocess_16bit DD 045054c19H - DD 011d4322H - DD 07016002fH - DD 05015H - DD imagerel __GSHandlerCheck - DD 0168H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__load_and_postprocess_16bit$rtcName$0 DB 072H - DB 069H - DB 00H - ORG $+13 -stbi__load_and_postprocess_16bit$rtcVarDesc DD 048H - DD 0cH - DQ FLAT:stbi__load_and_postprocess_16bit$rtcName$0 - ORG $+48 -stbi__load_and_postprocess_16bit$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi__load_and_postprocess_16bit$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 045H - DW 01edH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__load_and_postprocess_8bit DD 045054c19H - DD 011d4322H - DD 07016002fH - DD 05015H - DD imagerel __GSHandlerCheck - DD 0168H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__load_and_postprocess_8bit$rtcName$0 DB 072H - DB 069H - DB 00H - ORG $+13 -stbi__load_and_postprocess_8bit$rtcVarDesc DD 048H - DD 0cH - DQ FLAT:stbi__load_and_postprocess_8bit$rtcName$0 - ORG $+48 -stbi__load_and_postprocess_8bit$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi__load_and_postprocess_8bit$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__vertical_flip_slices DD 025052101H - DD 011c2321H - DD 070150029H - DD 05014H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 044H - DW 01eaH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__vertical_flip DD 025054b19H - DD 011c2321H - DD 07015019fH - DD 05014H - DD imagerel __GSHandlerCheck - DD 0ce0H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__vertical_flip$rtcName$0 DB 074H - DB 065H - DB 06dH - DB 070H - DB 00H - ORG $+11 -stbi__vertical_flip$rtcVarDesc DD 070H - DD 0800H - DQ FLAT:stbi__vertical_flip$rtcName$0 - ORG $+48 -stbi__vertical_flip$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi__vertical_flip$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__convert_8_to_16 DD 025052101H - DD 011c2321H - DD 070150029H - DD 05014H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__convert_16_to_8 DD 025052101H - DD 011c2321H - DD 070150029H - DD 05014H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__load_main DD 045052201H - DD 011d4322H - DD 070160025H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__hdr_to_ldr DD 025052101H - DD 011c2321H - DD 070150035H - DD 05014H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__ldr_to_hdr DD 035052101H - DD 011c3321H - DD 07015002fH - DD 05014H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__mul2shorts_valid DD 025051601H - DD 01112316H - DD 0700a001fH - DD 05009H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__addints_valid DD 025051601H - DD 01112316H - DD 0700a001fH - DD 05009H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__malloc_mad4 DD 035052001H - DD 011b3320H - DD 07014001fH - DD 05013H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__malloc_mad3 DD 025052001H - DD 011b2320H - DD 07014001dH - DD 05013H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__malloc_mad2 DD 025051b01H - DD 0116231bH - DD 0700f001dH - DD 0500eH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__mad4sizes_valid DD 025052001H - DD 011b2320H - DD 07014001fH - DD 05013H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__mad3sizes_valid DD 025052001H - DD 011b2320H - DD 07014001fH - DD 05013H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__mad2sizes_valid DD 025051b01H - DD 0116231bH - DD 0700f001fH - DD 0500eH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__mul2sizes_valid DD 025051601H - DD 01112316H - DD 0700a001fH - DD 05009H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__addsizes_valid DD 025051601H - DD 01112316H - DD 0700a001fH - DD 05009H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__malloc DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__err DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__pnm_is16 DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 045H - DW 0230H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__pnm_info DD 025054c19H - DD 011d2322H - DD 070160031H - DD 05015H - DD imagerel __GSHandlerCheck - DD 0178H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__pnm_info$rtcName$0 DB 064H - DB 075H - DB 06dH - DB 06dH - DB 079H - DB 00H - ORG $+2 -stbi__pnm_info$rtcName$1 DB 063H - DB 00H - ORG $+6 -stbi__pnm_info$rtcVarDesc DD 064H - DD 01H - DQ FLAT:stbi__pnm_info$rtcName$1 - DD 044H - DD 04H - DQ FLAT:stbi__pnm_info$rtcName$0 - ORG $+96 -stbi__pnm_info$rtcFrameData DD 02H - DD 00H - DQ FLAT:stbi__pnm_info$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__pnm_load DD 035052201H - DD 011d3322H - DD 070160023H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__pnm_test DD 025051301H - DD 010e2313H - DD 070070025H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__gif_info DD 025052201H - DD 011d2322H - DD 07016001dH - DD 05015H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 04bH - DW 0452H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__load_gif_main DD 035055219H - DD 01233328H - DD 0701611ffH - DD 05015H - DD imagerel __GSHandlerCheck - DD 08fe0H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__load_gif_main$rtcName$0 DB 067H - DB 00H - ORG $+14 -stbi__load_gif_main$rtcVarDesc DD 0c0H - DD 08870H - DQ FLAT:stbi__load_gif_main$rtcName$0 - ORG $+48 -stbi__load_gif_main$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi__load_gif_main$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 04bH - DW 0152H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__gif_load DD 035055219H - DD 01233328H - DD 0701611ddH - DD 05015H - DD imagerel __GSHandlerCheck - DD 08ed8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__gif_load$rtcName$0 DB 067H - DB 00H - ORG $+14 -stbi__gif_load$rtcVarDesc DD 060H - DD 08870H - DQ FLAT:stbi__gif_load$rtcName$0 - ORG $+48 -stbi__gif_load$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi__gif_load$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__gif_test DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 045H - DW 02aaH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__pic_info DD 025054c19H - DD 011d2322H - DD 070160039H - DD 05015H - DD imagerel __GSHandlerCheck - DD 01b8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__pic_info$rtcName$0 DB 064H - DB 075H - DB 06dH - DB 06dH - DB 079H - DB 00H - ORG $+2 -stbi__pic_info$rtcName$1 DB 070H - DB 061H - DB 063H - DB 06bH - DB 065H - DB 074H - DB 073H - DB 00H -stbi__pic_info$rtcVarDesc DD 0a8H - DD 01eH - DQ FLAT:stbi__pic_info$rtcName$1 - DD 084H - DD 04H - DQ FLAT:stbi__pic_info$rtcName$0 - ORG $+96 -stbi__pic_info$rtcFrameData DD 02H - DD 00H - DQ FLAT:stbi__pic_info$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 045H - DW 0300H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__pic_load DD 035054c19H - DD 011d3322H - DD 070160035H - DD 05015H - DD imagerel __GSHandlerCheck - DD 0190H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__pic_load$rtcName$0 DB 069H - DB 06eH - DB 074H - DB 065H - DB 072H - DB 06eH - DB 061H - DB 06cH - DB 05fH - DB 063H - DB 06fH - DB 06dH - DB 070H - DB 00H - ORG $+2 -stbi__pic_load$rtcVarDesc DD 0b4H - DD 04H - DQ FLAT:stbi__pic_load$rtcName$0 - ORG $+48 -stbi__pic_load$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi__pic_load$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__pic_test DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 045H - DW 0267H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__hdr_info DD 025054c19H - DD 011d2322H - DD 0701600ddH - DD 05015H - DD imagerel __GSHandlerCheck - DD 06d8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__hdr_info$rtcName$0 DB 062H - DB 075H - DB 066H - DB 066H - DB 065H - DB 072H - DB 00H - ORG $+1 -stbi__hdr_info$rtcName$1 DB 074H - DB 06fH - DB 06bH - DB 065H - DB 06eH - DB 00H - ORG $+2 -stbi__hdr_info$rtcName$2 DB 064H - DB 075H - DB 06dH - DB 06dH - DB 079H - DB 00H - ORG $+10 -stbi__hdr_info$rtcVarDesc DD 0484H - DD 04H - DQ FLAT:stbi__hdr_info$rtcName$2 - DD 0448H - DD 08H - DQ FLAT:stbi__hdr_info$rtcName$1 - DD 030H - DD 0400H - DQ FLAT:stbi__hdr_info$rtcName$0 - ORG $+144 -stbi__hdr_info$rtcFrameData DD 03H - DD 00H - DQ FLAT:stbi__hdr_info$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 045H - DW 0a45H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__hdr_load DD 035054c19H - DD 011d3322H - DD 070160139H - DD 05015H - DD imagerel __GSHandlerCheck - DD 09b0H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__hdr_load$rtcName$0 DB 062H - DB 075H - DB 066H - DB 066H - DB 065H - DB 072H - DB 00H - ORG $+1 -stbi__hdr_load$rtcName$1 DB 074H - DB 06fH - DB 06bH - DB 065H - DB 06eH - DB 00H - ORG $+2 -stbi__hdr_load$rtcName$2 DB 072H - DB 067H - DB 062H - DB 065H - DB 00H - ORG $+3 -stbi__hdr_load$rtcName$3 DB 072H - DB 067H - DB 062H - DB 065H - DB 00H - ORG $+3 -stbi__hdr_load$rtcVarDesc DD 0674H - DD 04H - DQ FLAT:stbi__hdr_load$rtcName$3 - DD 0654H - DD 04H - DQ FLAT:stbi__hdr_load$rtcName$2 - DD 0458H - DD 08H - DQ FLAT:stbi__hdr_load$rtcName$1 - DD 040H - DD 0400H - DQ FLAT:stbi__hdr_load$rtcName$0 - ORG $+192 -stbi__hdr_load$rtcFrameData DD 04H - DD 00H - DQ FLAT:stbi__hdr_load$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__hdr_test DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__psd_is16 DD 025051301H - DD 010e2313H - DD 070070025H - DD 05006H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 045H - DW 01c5H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__psd_info DD 025054c19H - DD 011d2322H - DD 070160029H - DD 05015H - DD imagerel __GSHandlerCheck - DD 0138H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__psd_info$rtcName$0 DB 064H - DB 075H - DB 06dH - DB 06dH - DB 079H - DB 00H - ORG $+10 -stbi__psd_info$rtcVarDesc DD 044H - DD 04H - DQ FLAT:stbi__psd_info$rtcName$0 - ORG $+48 -stbi__psd_info$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi__psd_info$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__psd_load DD 035052201H - DD 011d3322H - DD 070160097H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__psd_test DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__tga_info DD 025052201H - DD 011d2322H - DD 07016003dH - DD 05015H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 045H - DW 0babH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__tga_load DD 035054c19H - DD 011d3322H - DD 0701600d5H - DD 05015H - DD imagerel __GSHandlerCheck - DD 0690H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__tga_load$rtcName$0 DB 074H - DB 067H - DB 061H - DB 05fH - DB 072H - DB 067H - DB 062H - DB 031H - DB 036H - DB 00H - ORG $+6 -stbi__tga_load$rtcName$1 DB 072H - DB 061H - DB 077H - DB 05fH - DB 064H - DB 061H - DB 074H - DB 061H - DB 00H - ORG $+7 -stbi__tga_load$rtcVarDesc DD 0294H - DD 04H - DQ FLAT:stbi__tga_load$rtcName$1 - DD 01d4H - DD 04H - DQ FLAT:stbi__tga_load$rtcName$0 - ORG $+96 -stbi__tga_load$rtcFrameData DD 02H - DD 00H - DQ FLAT:stbi__tga_load$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__tga_test DD 025051301H - DD 010e2313H - DD 070070029H - DD 05006H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 045H - DW 0136H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__bmp_info DD 025054c19H - DD 011d2322H - DD 070160029H - DD 05015H - DD imagerel __GSHandlerCheck - DD 0138H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__bmp_info$rtcName$0 DB 069H - DB 06eH - DB 066H - DB 06fH - DB 00H - ORG $+11 -stbi__bmp_info$rtcVarDesc DD 048H - DD 024H - DQ FLAT:stbi__bmp_info$rtcName$0 - ORG $+48 -stbi__bmp_info$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi__bmp_info$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 045H - DW 01328H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__bmp_load DD 035054c19H - DD 011d3322H - DD 0701601a9H - DD 05015H - DD imagerel __GSHandlerCheck - DD 0d30H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__bmp_load$rtcName$0 DB 070H - DB 061H - DB 06cH - DB 00H -stbi__bmp_load$rtcName$1 DB 069H - DB 06eH - DB 066H - DB 06fH - DB 00H - ORG $+7 -stbi__bmp_load$rtcVarDesc DD 05f8H - DD 024H - DQ FLAT:stbi__bmp_load$rtcName$1 - DD 0100H - DD 0400H - DQ FLAT:stbi__bmp_load$rtcName$0 - ORG $+96 -stbi__bmp_load$rtcFrameData DD 02H - DD 00H - DQ FLAT:stbi__bmp_load$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__bmp_test DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 036H - DB 09dH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__png_is16 DD 025053d19H - DD 010e2313H - DD 070070025H - DD 05006H - DD imagerel __GSHandlerCheck - DD 0118H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__png_is16$rtcName$0 DB 070H - DB 00H - ORG $+14 -stbi__png_is16$rtcVarDesc DD 028H - DD 028H - DQ FLAT:stbi__png_is16$rtcName$0 - ORG $+48 -stbi__png_is16$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi__png_is16$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 045H - DB 098H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__png_info DD 025054c19H - DD 011d2322H - DD 070160025H - DD 05015H - DD imagerel __GSHandlerCheck - DD 0118H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__png_info$rtcName$0 DB 070H - DB 00H - ORG $+14 -stbi__png_info$rtcVarDesc DD 028H - DD 028H - DQ FLAT:stbi__png_info$rtcName$0 - ORG $+48 -stbi__png_info$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi__png_info$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 045H - DB 0aeH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__png_load DD 035054c19H - DD 011d3322H - DD 070160027H - DD 05015H - DD imagerel __GSHandlerCheck - DD 0128H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__png_load$rtcName$0 DB 070H - DB 00H - ORG $+14 -stbi__png_load$rtcVarDesc DD 038H - DD 028H - DQ FLAT:stbi__png_load$rtcName$0 - ORG $+48 -stbi__png_load$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi__png_load$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__png_test DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__jpeg_info DD 025052201H - DD 011d2322H - DD 070160025H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__jpeg_load DD 035052201H - DD 011d3322H - DD 070160027H - DD 05015H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__jpeg_test DD 025051301H - DD 010e2313H - DD 070070025H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__rewind DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__start_file DD 025051801H - DD 01132318H - DD 0700c001dH - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__stdio_eof DD 025051301H - DD 010e2313H - DD 07007001fH - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__stdio_skip DD 025051701H - DD 01122317H - DD 0700b0021H - DD 0500aH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__stdio_read DD 025051d01H - DD 0118231dH - DD 07011001dH - DD 05010H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__start_callbacks DD 025061e01H - DD 0119231eH - DD 07012001eH - DD 050106011H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__start_mem DD 025051d01H - DD 0118231dH - DD 07011001fH - DD 05010H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__refill_buffer DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__sse2_available DD 025050f01H - DD 010a230fH - DD 070030021H - DD 05002H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 02bH - DB 07cH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi__cpuid3 DD 025063219H - DD 010b2310H - DD 070040022H - DD 050023003H - DD imagerel __GSHandlerCheck - DD 0108H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi__cpuid3$rtcName$0 DB 069H - DB 06eH - DB 066H - DB 06fH - DB 00H - ORG $+11 -stbi__cpuid3$rtcVarDesc DD 028H - DD 010H - DQ FLAT:stbi__cpuid3$rtcName$0 - ORG $+48 -stbi__cpuid3$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi__cpuid3$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 04aH - DB 0d4H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_zlib_decode_noheader_buffer DD 035055119H - DD 01223327H - DD 0701502cdH - DD 05014H - DD imagerel __GSHandlerCheck - DD 01658H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_zlib_decode_noheader_buffer$rtcName$0 DB 061H - DB 00H - ORG $+14 -stbi_zlib_decode_noheader_buffer$rtcVarDesc DD 040H - DD 01008H - DQ FLAT:stbi_zlib_decode_noheader_buffer$rtcName$0 - ORG $+48 -stbi_zlib_decode_noheader_buffer$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_zlib_decode_noheader_buffer$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 045H - DW 0112H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_zlib_decode_noheader_malloc DD 035054c19H - DD 011d3322H - DD 0701002d1H - DD 0500fH - DD imagerel __GSHandlerCheck - DD 01678H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_zlib_decode_noheader_malloc$rtcName$0 DB 061H - DB 00H - ORG $+14 -stbi_zlib_decode_noheader_malloc$rtcVarDesc DD 040H - DD 01008H - DQ FLAT:stbi_zlib_decode_noheader_malloc$rtcName$0 - ORG $+48 -stbi_zlib_decode_noheader_malloc$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_zlib_decode_noheader_malloc$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 04aH - DB 0d4H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_zlib_decode_buffer DD 035055119H - DD 01223327H - DD 0701502cdH - DD 05014H - DD imagerel __GSHandlerCheck - DD 01658H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_zlib_decode_buffer$rtcName$0 DB 061H - DB 00H - ORG $+14 -stbi_zlib_decode_buffer$rtcVarDesc DD 040H - DD 01008H - DQ FLAT:stbi_zlib_decode_buffer$rtcName$0 - ORG $+48 -stbi_zlib_decode_buffer$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_zlib_decode_buffer$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_zlib_decode_malloc DD 025051c01H - DD 0117231cH - DD 07010001dH - DD 0500fH -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 04aH - DW 011fH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_zlib_decode_malloc_guesssize_headerflag DD 035055119H - DD 01223327H - DD 0701502d1H - DD 05014H - DD imagerel __GSHandlerCheck - DD 01678H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_zlib_decode_malloc_guesssize_headerflag$rtcName$0 DB 061H - DB 00H - ORG $+14 -stbi_zlib_decode_malloc_guesssize_headerflag$rtcVarDesc DD 040H - DD 01008H - DQ FLAT:stbi_zlib_decode_malloc_guesssize_headerflag$rtcName$0 - ORG $+48 -stbi_zlib_decode_malloc_guesssize_headerflag$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_zlib_decode_malloc_guesssize_headerflag$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 04aH - DW 011dH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_zlib_decode_malloc_guesssize DD 035055119H - DD 01223327H - DD 0701502d1H - DD 05014H - DD imagerel __GSHandlerCheck - DD 01678H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_zlib_decode_malloc_guesssize$rtcName$0 DB 061H - DB 00H - ORG $+14 -stbi_zlib_decode_malloc_guesssize$rtcVarDesc DD 040H - DD 01008H - DQ FLAT:stbi_zlib_decode_malloc_guesssize$rtcName$0 - ORG $+48 -stbi_zlib_decode_malloc_guesssize$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_zlib_decode_malloc_guesssize$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_set_flip_vertically_on_load_thread DD 025051201H - DD 010d2312H - DD 07006001dH - DD 05005H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_convert_iphone_png_to_rgb_thread DD 025051201H - DD 010d2312H - DD 07006001dH - DD 05005H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_set_unpremultiply_on_load_thread DD 025051201H - DD 010d2312H - DD 07006001dH - DD 05005H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_set_flip_vertically_on_load DD 025051201H - DD 010d2312H - DD 07006001dH - DD 05005H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_convert_iphone_png_to_rgb DD 025051201H - DD 010d2312H - DD 07006001dH - DD 05005H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_set_unpremultiply_on_load DD 025051201H - DD 010d2312H - DD 07006001dH - DD 05005H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 036H - DB 0a8H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_is_16_bit_from_file DD 025053d19H - DD 010e2313H - DD 070070045H - DD 05006H - DD imagerel __GSHandlerCheck - DD 0218H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_is_16_bit_from_file$rtcName$0 DB 073H - DB 00H - ORG $+14 -stbi_is_16_bit_from_file$rtcVarDesc DD 050H - DD 0e0H - DQ FLAT:stbi_is_16_bit_from_file$rtcName$0 - ORG $+48 -stbi_is_16_bit_from_file$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_is_16_bit_from_file$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_is_16_bit DD 025051301H - DD 010e2313H - DD 070070025H - DD 05006H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 045H - DB 0ccH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_info_from_file DD 025054c19H - DD 011d2322H - DD 070160045H - DD 05015H - DD imagerel __GSHandlerCheck - DD 0218H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_info_from_file$rtcName$0 DB 073H - DB 00H - ORG $+14 -stbi_info_from_file$rtcVarDesc DD 050H - DD 0e0H - DQ FLAT:stbi_info_from_file$rtcName$0 - ORG $+48 -stbi_info_from_file$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_info_from_file$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_info DD 025052201H - DD 011d2322H - DD 070160025H - DD 05015H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 03bH - DB 086H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_is_16_bit_from_callbacks DD 025054219H - DD 01132318H - DD 0700c003dH - DD 0500bH - DD imagerel __GSHandlerCheck - DD 01d8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_is_16_bit_from_callbacks$rtcName$0 DB 073H - DB 00H - ORG $+14 -stbi_is_16_bit_from_callbacks$rtcVarDesc DD 030H - DD 0e0H - DQ FLAT:stbi_is_16_bit_from_callbacks$rtcName$0 - ORG $+48 -stbi_is_16_bit_from_callbacks$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_is_16_bit_from_callbacks$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 03aH - DB 085H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_is_16_bit_from_memory DD 025054119H - DD 01122317H - DD 0700b003dH - DD 0500aH - DD imagerel __GSHandlerCheck - DD 01d8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_is_16_bit_from_memory$rtcName$0 DB 073H - DB 00H - ORG $+14 -stbi_is_16_bit_from_memory$rtcVarDesc DD 030H - DD 0e0H - DQ FLAT:stbi_is_16_bit_from_memory$rtcName$0 - ORG $+48 -stbi_is_16_bit_from_memory$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_is_16_bit_from_memory$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 045H - DB 0a5H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_info_from_callbacks DD 025054c19H - DD 011d2322H - DD 07016003dH - DD 05015H - DD imagerel __GSHandlerCheck - DD 01d8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_info_from_callbacks$rtcName$0 DB 073H - DB 00H - ORG $+14 -stbi_info_from_callbacks$rtcVarDesc DD 030H - DD 0e0H - DQ FLAT:stbi_info_from_callbacks$rtcName$0 - ORG $+48 -stbi_info_from_callbacks$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_info_from_callbacks$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 044H - DB 0a4H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_info_from_memory DD 025054b19H - DD 011c2321H - DD 07015003dH - DD 05014H - DD imagerel __GSHandlerCheck - DD 01d8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_info_from_memory$rtcName$0 DB 073H - DB 00H - ORG $+14 -stbi_info_from_memory$rtcVarDesc DD 030H - DD 0e0H - DQ FLAT:stbi_info_from_memory$rtcName$0 - ORG $+48 -stbi_info_from_memory$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_info_from_memory$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_image_free DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_failure_reason DD 025050f01H - DD 010a230fH - DD 07003001dH - DD 05002H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 036H - DB 0a2H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_is_hdr_from_file DD 025053d19H - DD 010e2313H - DD 070070045H - DD 05006H - DD imagerel __GSHandlerCheck - DD 0218H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_is_hdr_from_file$rtcName$0 DB 073H - DB 00H - ORG $+14 -stbi_is_hdr_from_file$rtcVarDesc DD 070H - DD 0e0H - DQ FLAT:stbi_is_hdr_from_file$rtcName$0 - ORG $+48 -stbi_is_hdr_from_file$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_is_hdr_from_file$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_is_hdr DD 025051301H - DD 010e2313H - DD 070070025H - DD 05006H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 03aH - DB 085H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_is_hdr_from_memory DD 025054119H - DD 01122317H - DD 0700b003dH - DD 0500aH - DD imagerel __GSHandlerCheck - DD 01d8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_is_hdr_from_memory$rtcName$0 DB 073H - DB 00H - ORG $+14 -stbi_is_hdr_from_memory$rtcVarDesc DD 030H - DD 0e0H - DQ FLAT:stbi_is_hdr_from_memory$rtcName$0 - ORG $+48 -stbi_is_hdr_from_memory$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_is_hdr_from_memory$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 03bH - DB 086H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_is_hdr_from_callbacks DD 025054219H - DD 01132318H - DD 0700c003dH - DD 0500bH - DD imagerel __GSHandlerCheck - DD 01d8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_is_hdr_from_callbacks$rtcName$0 DB 073H - DB 00H - ORG $+14 -stbi_is_hdr_from_callbacks$rtcVarDesc DD 030H - DD 0e0H - DQ FLAT:stbi_is_hdr_from_callbacks$rtcName$0 - ORG $+48 -stbi_is_hdr_from_callbacks$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_is_hdr_from_callbacks$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_ldr_to_hdr_scale DD 025051401H - DD 010f2314H - DD 07008001dH - DD 05007H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_ldr_to_hdr_gamma DD 025051401H - DD 010f2314H - DD 07008001dH - DD 05007H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_hdr_to_ldr_scale DD 025051401H - DD 010f2314H - DD 07008001dH - DD 05007H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_hdr_to_ldr_gamma DD 025051401H - DD 010f2314H - DD 07008001dH - DD 05007H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 045H - DB 0a8H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_loadf_from_file DD 035054c19H - DD 011d3322H - DD 07016003fH - DD 05015H - DD imagerel __GSHandlerCheck - DD 01e8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_loadf_from_file$rtcName$0 DB 073H - DB 00H - ORG $+14 -stbi_loadf_from_file$rtcVarDesc DD 040H - DD 0e0H - DQ FLAT:stbi_loadf_from_file$rtcName$0 - ORG $+48 -stbi_loadf_from_file$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_loadf_from_file$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_loadf DD 035052201H - DD 011d3322H - DD 070160027H - DD 05015H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 045H - DB 0afH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_loadf_from_callbacks DD 035054c19H - DD 011d3322H - DD 07016003fH - DD 05015H - DD imagerel __GSHandlerCheck - DD 01e8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_loadf_from_callbacks$rtcName$0 DB 073H - DB 00H - ORG $+14 -stbi_loadf_from_callbacks$rtcVarDesc DD 040H - DD 0e0H - DQ FLAT:stbi_loadf_from_callbacks$rtcName$0 - ORG $+48 -stbi_loadf_from_callbacks$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_loadf_from_callbacks$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 044H - DB 0aeH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_loadf_from_memory DD 035054b19H - DD 011c3321H - DD 07015003fH - DD 05014H - DD imagerel __GSHandlerCheck - DD 01e8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_loadf_from_memory$rtcName$0 DB 073H - DB 00H - ORG $+14 -stbi_loadf_from_memory$rtcVarDesc DD 040H - DD 0e0H - DQ FLAT:stbi_loadf_from_memory$rtcName$0 - ORG $+48 -stbi_loadf_from_memory$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_loadf_from_memory$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 045H - DB 0e3H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_load_from_file_16 DD 035054c19H - DD 011d3322H - DD 070160043H - DD 05015H - DD imagerel __GSHandlerCheck - DD 0208H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_load_from_file_16$rtcName$0 DB 073H - DB 00H - ORG $+14 -stbi_load_from_file_16$rtcVarDesc DD 060H - DD 0e0H - DQ FLAT:stbi_load_from_file_16$rtcName$0 - ORG $+48 -stbi_load_from_file_16$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_load_from_file_16$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_load_16 DD 035052201H - DD 011d3322H - DD 070160027H - DD 05015H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 045H - DB 0afH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_load_16_from_callbacks DD 035054c19H - DD 011d3322H - DD 07016003fH - DD 05015H - DD imagerel __GSHandlerCheck - DD 01e8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_load_16_from_callbacks$rtcName$0 DB 073H - DB 00H - ORG $+14 -stbi_load_16_from_callbacks$rtcVarDesc DD 040H - DD 0e0H - DQ FLAT:stbi_load_16_from_callbacks$rtcName$0 - ORG $+48 -stbi_load_16_from_callbacks$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_load_16_from_callbacks$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 044H - DB 0aeH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_load_16_from_memory DD 035054b19H - DD 011c3321H - DD 07015003fH - DD 05014H - DD imagerel __GSHandlerCheck - DD 01e8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_load_16_from_memory$rtcName$0 DB 073H - DB 00H - ORG $+14 -stbi_load_16_from_memory$rtcVarDesc DD 040H - DD 0e0H - DQ FLAT:stbi_load_16_from_memory$rtcName$0 - ORG $+48 -stbi_load_16_from_memory$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_load_16_from_memory$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 044H - DW 015cH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_load_gif_from_memory DD 045054b19H - DD 011c4321H - DD 070150045H - DD 05014H - DD imagerel __GSHandlerCheck - DD 0218H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_load_gif_from_memory$rtcName$0 DB 073H - DB 00H - ORG $+14 -stbi_load_gif_from_memory$rtcVarDesc DD 070H - DD 0e0H - DQ FLAT:stbi_load_gif_from_memory$rtcName$0 - ORG $+48 -stbi_load_gif_from_memory$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_load_gif_from_memory$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 045H - DB 0e3H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_load_from_file DD 035054c19H - DD 011d3322H - DD 070160043H - DD 05015H - DD imagerel __GSHandlerCheck - DD 0208H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_load_from_file$rtcName$0 DB 073H - DB 00H - ORG $+14 -stbi_load_from_file$rtcVarDesc DD 060H - DD 0e0H - DQ FLAT:stbi_load_from_file$rtcName$0 - ORG $+48 -stbi_load_from_file$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_load_from_file$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_load DD 035052201H - DD 011d3322H - DD 070160027H - DD 05015H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 045H - DB 0afH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_load_from_callbacks DD 035054c19H - DD 011d3322H - DD 07016003fH - DD 05015H - DD imagerel __GSHandlerCheck - DD 01e8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_load_from_callbacks$rtcName$0 DB 073H - DB 00H - ORG $+14 -stbi_load_from_callbacks$rtcVarDesc DD 040H - DD 0e0H - DQ FLAT:stbi_load_from_callbacks$rtcName$0 - ORG $+48 -stbi_load_from_callbacks$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_load_from_callbacks$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 044H - DB 0aeH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$stbi_load_from_memory DD 035054b19H - DD 011c3321H - DD 07015003fH - DD 05014H - DD imagerel __GSHandlerCheck - DD 01e8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -stbi_load_from_memory$rtcName$0 DB 073H - DB 00H - ORG $+14 -stbi_load_from_memory$rtcVarDesc DD 040H - DD 0e0H - DQ FLAT:stbi_load_from_memory$rtcName$0 - ORG $+48 -stbi_load_from_memory$rtcFrameData DD 01H - DD 00H - DQ FLAT:stbi_load_from_memory$rtcVarDesc -CONST ENDS -; Function compile flags: /Odt -; COMDAT __JustMyCode_Default -_TEXT SEGMENT -__JustMyCode_Default PROC ; COMDAT - 00000 c2 00 00 ret 0 -__JustMyCode_Default ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\sn_native.c -; COMDAT readLog -_TEXT SEGMENT -$T1 = 200 -readLog PROC ; COMDAT - -; 74 : { - -$LN5: - 00000 40 55 push rbp - 00002 57 push rdi - 00003 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__73BBCC60_sn_native@c - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001b 90 npad 1 - -; 75 : infolog[511] = '\0'; - - 0001c b8 01 00 00 00 mov eax, 1 - 00021 48 69 c0 ff 01 - 00 00 imul rax, rax, 511 ; 000001ffH - 00028 48 89 85 c8 00 - 00 00 mov QWORD PTR $T1[rbp], rax - 0002f 48 81 bd c8 00 - 00 00 00 02 00 - 00 cmp QWORD PTR $T1[rbp], 512 ; 00000200H - 0003a 73 02 jae SHORT $LN3@readLog - 0003c eb 06 jmp SHORT $LN4@readLog -$LN3@readLog: - 0003e e8 00 00 00 00 call __report_rangecheckfailure - 00043 90 npad 1 -$LN4@readLog: - 00044 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:infolog - 0004b 48 8b 8d c8 00 - 00 00 mov rcx, QWORD PTR $T1[rbp] - 00052 c6 04 08 00 mov BYTE PTR [rax+rcx], 0 - -; 76 : return infolog; - - 00056 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:infolog -$LN2@readLog: - -; 77 : } - - 0005d 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00064 5f pop rdi - 00065 5d pop rbp - 00066 c3 ret 0 -readLog ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\sn_native.c -; COMDAT unloadImageData -_TEXT SEGMENT -out$ = 224 -unloadImageData PROC ; COMDAT - -; 69 : { - -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__73BBCC60_sn_native@c - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 70 : free(out->pixelPtr); - - 00020 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR out$[rbp] - 00027 48 8b 48 10 mov rcx, QWORD PTR [rax+16] - 0002b ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00031 90 npad 1 - -; 71 : } - - 00032 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00039 5f pop rdi - 0003a 5d pop rbp - 0003b c3 ret 0 -unloadImageData ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\sn_native.c -; COMDAT loadGlfuncDefault -_TEXT SEGMENT -ret$ = 8 -i$1 = 40 -procName$ = 288 -loadGlfuncDefault PROC ; COMDAT - -; 34 : { - -$LN7: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__73BBCC60_sn_native@c - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 35 : void *ret = glfwGetProcAddress(procName); - - 00020 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR procName$[rbp] - 00027 e8 00 00 00 00 call glfwGetProcAddress - 0002c 48 89 45 08 mov QWORD PTR ret$[rbp], rax - -; 36 : // printf("%llu\n", (uint64_t)ret); -; 37 : if (ret == NULL) { - - 00030 48 83 7d 08 00 cmp QWORD PTR ret$[rbp], 0 - 00035 75 5b jne SHORT $LN5@loadGlfunc - -; 38 : strcpy_s(infolog, 30, "Failed to load OpenGL api:"); - - 00037 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_0BL@MOJGOJJP@Failed?5to?5load?5OpenGL?5api?3@ - 0003e ba 1e 00 00 00 mov edx, 30 - 00043 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:infolog - 0004a ff 15 00 00 00 - 00 call QWORD PTR __imp_strcpy_s - 00050 90 npad 1 - -; 39 : for (size_t i = 0; i < sizeof(procName); i++) { - - 00051 48 c7 45 28 00 - 00 00 00 mov QWORD PTR i$1[rbp], 0 - 00059 eb 0b jmp SHORT $LN4@loadGlfunc -$LN2@loadGlfunc: - 0005b 48 8b 45 28 mov rax, QWORD PTR i$1[rbp] - 0005f 48 ff c0 inc rax - 00062 48 89 45 28 mov QWORD PTR i$1[rbp], rax -$LN4@loadGlfunc: - 00066 48 83 7d 28 08 cmp QWORD PTR i$1[rbp], 8 - 0006b 73 25 jae SHORT $LN3@loadGlfunc - -; 40 : infolog[30 + i] = procName[i]; - - 0006d 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:infolog - 00074 48 8b 4d 28 mov rcx, QWORD PTR i$1[rbp] - 00078 48 8b 95 20 01 - 00 00 mov rdx, QWORD PTR procName$[rbp] - 0007f 48 03 d1 add rdx, rcx - 00082 48 8b ca mov rcx, rdx - 00085 48 8b 55 28 mov rdx, QWORD PTR i$1[rbp] - 00089 0f b6 09 movzx ecx, BYTE PTR [rcx] - 0008c 88 4c 10 1e mov BYTE PTR [rax+rdx+30], cl - -; 41 : } - - 00090 eb c9 jmp SHORT $LN2@loadGlfunc -$LN3@loadGlfunc: -$LN5@loadGlfunc: - -; 42 : //printf("%s\n", infolog); -; 43 : } -; 44 : return (GLFWglproc)ret; - - 00092 48 8b 45 08 mov rax, QWORD PTR ret$[rbp] - -; 45 : } - - 00096 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 0009d 5f pop rdi - 0009e 5d pop rbp - 0009f c3 ret 0 -loadGlfuncDefault ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\sn_native.c -; COMDAT loadImageData -_TEXT SEGMENT -location$ = 224 -out$ = 232 -loader$ = 240 -loadImageData PROC ; COMDAT - -; 62 : { - -$LN4: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__73BBCC60_sn_native@c - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 90 npad 1 - -; 63 : if (loader == NULL) { - - 0002a 48 83 bd f0 00 - 00 00 00 cmp QWORD PTR loader$[rbp], 0 - 00032 75 0e jne SHORT $LN2@loadImageD - -; 64 : loader = stbi_load; - - 00034 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:stbi_load - 0003b 48 89 85 f0 00 - 00 00 mov QWORD PTR loader$[rbp], rax -$LN2@loadImageD: - -; 65 : } -; 66 : out->pixelPtr = loader(location, &(out->width), &(out->height), &(out->channel), 0); - - 00042 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR out$[rbp] - 00049 48 83 c0 08 add rax, 8 - 0004d 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR out$[rbp] - 00054 48 83 c1 04 add rcx, 4 - 00058 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR out$[rbp] - 0005f c7 44 24 20 00 - 00 00 00 mov DWORD PTR [rsp+32], 0 - 00067 4c 8b c8 mov r9, rax - 0006a 4c 8b c1 mov r8, rcx - 0006d 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR location$[rbp] - 00074 ff 95 f0 00 00 - 00 call QWORD PTR loader$[rbp] - 0007a 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR out$[rbp] - 00081 48 89 41 10 mov QWORD PTR [rcx+16], rax - -; 67 : } - - 00085 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0008c 5f pop rdi - 0008d 5d pop rbp - 0008e c3 ret 0 -loadImageData ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\sn_native.c -; COMDAT linkShaderProgram -_TEXT SEGMENT -success$ = 4 -__$ArrayPad$ = 216 -context$ = 256 -shaderProgram$ = 264 -linkShaderProgram PROC ; COMDAT - -; 48 : { - -$LN5: - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 0001c b9 0a 00 00 00 mov ecx, 10 - 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00026 f3 ab rep stosd - 00028 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 00030 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00037 48 33 c5 xor rax, rbp - 0003a 48 89 85 d8 00 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00041 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__73BBCC60_sn_native@c - 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0004d 90 npad 1 - -; 49 : context->LinkProgram(shaderProgram); - - 0004e 8b 8d 08 01 00 - 00 mov ecx, DWORD PTR shaderProgram$[rbp] - 00054 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR context$[rbp] - 0005b ff 90 70 0a 00 - 00 call QWORD PTR [rax+2672] - 00061 90 npad 1 - -; 50 : -; 51 : int success; -; 52 : context->GetProgramiv(shaderProgram, GL_LINK_STATUS, &success); - - 00062 4c 8d 45 04 lea r8, QWORD PTR success$[rbp] - 00066 ba 82 8b 00 00 mov edx, 35714 ; 00008b82H - 0006b 8b 8d 08 01 00 - 00 mov ecx, DWORD PTR shaderProgram$[rbp] - 00071 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR context$[rbp] - 00078 ff 90 90 07 00 - 00 call QWORD PTR [rax+1936] - 0007e 90 npad 1 - -; 53 : if (!success) { - - 0007f 83 7d 04 00 cmp DWORD PTR success$[rbp], 0 - 00083 75 29 jne SHORT $LN2@linkShader - -; 54 : context->GetProgramInfoLog(shaderProgram, 512, NULL, infolog); - - 00085 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:infolog - 0008c 45 33 c0 xor r8d, r8d - 0008f ba 00 02 00 00 mov edx, 512 ; 00000200H - 00094 8b 8d 08 01 00 - 00 mov ecx, DWORD PTR shaderProgram$[rbp] - 0009a 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR context$[rbp] - 000a1 ff 90 40 07 00 - 00 call QWORD PTR [rax+1856] - 000a7 90 npad 1 - -; 55 : return 0; - - 000a8 33 c0 xor eax, eax - 000aa eb 08 jmp SHORT $LN1@linkShader - -; 56 : } else { - - 000ac eb 06 jmp SHORT $LN3@linkShader -$LN2@linkShader: - -; 57 : return shaderProgram; - - 000ae 8b 85 08 01 00 - 00 mov eax, DWORD PTR shaderProgram$[rbp] -$LN3@linkShader: -$LN1@linkShader: - -; 58 : } -; 59 : } - - 000b4 48 8b f8 mov rdi, rax - 000b7 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000bb 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:linkShaderProgram$rtcFrameData - 000c2 e8 00 00 00 00 call _RTC_CheckStackVars - 000c7 48 8b c7 mov rax, rdi - 000ca 48 8b 8d d8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000d1 48 33 cd xor rcx, rbp - 000d4 e8 00 00 00 00 call __security_check_cookie - 000d9 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 000e0 5f pop rdi - 000e1 5d pop rbp - 000e2 c3 ret 0 -linkShaderProgram ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\sn_native.c -; COMDAT initGL -_TEXT SEGMENT -majorVersion$ = 224 -minorVersion$ = 232 -initGL PROC ; COMDAT - -; 26 : { - -$LN3: - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00008 55 push rbp - 00009 57 push rdi - 0000a 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00011 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00016 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__73BBCC60_sn_native@c - 0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00022 90 npad 1 - -; 27 : glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, majorVersion); - - 00023 8b 95 e0 00 00 - 00 mov edx, DWORD PTR majorVersion$[rbp] - 00029 b9 02 20 02 00 mov ecx, 139266 ; 00022002H - 0002e e8 00 00 00 00 call glfwWindowHint - 00033 90 npad 1 - -; 28 : glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, minorVersion); - - 00034 8b 95 e8 00 00 - 00 mov edx, DWORD PTR minorVersion$[rbp] - 0003a b9 03 20 02 00 mov ecx, 139267 ; 00022003H - 0003f e8 00 00 00 00 call glfwWindowHint - 00044 90 npad 1 - -; 29 : glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); - - 00045 ba 01 20 03 00 mov edx, 204801 ; 00032001H - 0004a b9 08 20 02 00 mov ecx, 139272 ; 00022008H - 0004f e8 00 00 00 00 call glfwWindowHint - 00054 90 npad 1 - -; 30 : glfwWindowHint(GLFW_RESIZABLE, GLFW_TRUE); - - 00055 ba 01 00 00 00 mov edx, 1 - 0005a b9 03 00 02 00 mov ecx, 131075 ; 00020003H - 0005f e8 00 00 00 00 call glfwWindowHint - 00064 90 npad 1 - -; 31 : } - - 00065 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0006c 5f pop rdi - 0006d 5d pop rbp - 0006e c3 ret 0 -initGL ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\sn_native.c -; COMDAT glCheckShaderStat -_TEXT SEGMENT -stat$ = 4 -__$ArrayPad$ = 216 -context$ = 256 -shaderHandle$ = 264 -key$ = 272 -logRef$ = 280 -glCheckShaderStat PROC ; COMDAT - -; 15 : { - -$LN4: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00027 b9 0a 00 00 00 mov ecx, 10 - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 d8 00 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__73BBCC60_sn_native@c - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 16 : int stat = 0; - - 00059 c7 45 04 00 00 - 00 00 mov DWORD PTR stat$[rbp], 0 - -; 17 : context->GetShaderiv(shaderHandle, key, &stat); - - 00060 4c 8d 45 04 lea r8, QWORD PTR stat$[rbp] - 00064 8b 95 10 01 00 - 00 mov edx, DWORD PTR key$[rbp] - 0006a 8b 8d 08 01 00 - 00 mov ecx, DWORD PTR shaderHandle$[rbp] - 00070 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR context$[rbp] - 00077 ff 90 28 08 00 - 00 call QWORD PTR [rax+2088] - 0007d 90 npad 1 - -; 18 : if (!stat) { - - 0007e 83 7d 04 00 cmp DWORD PTR stat$[rbp], 0 - 00082 75 23 jne SHORT $LN2@glCheckSha - -; 19 : context->GetShaderInfoLog(shaderHandle, 512, NULL, infolog); - - 00084 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:infolog - 0008b 45 33 c0 xor r8d, r8d - 0008e ba 00 02 00 00 mov edx, 512 ; 00000200H - 00093 8b 8d 08 01 00 - 00 mov ecx, DWORD PTR shaderHandle$[rbp] - 00099 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR context$[rbp] - 000a0 ff 90 10 08 00 - 00 call QWORD PTR [rax+2064] - 000a6 90 npad 1 -$LN2@glCheckSha: - -; 20 : } -; 21 : *logRef = infolog; - - 000a7 48 8b 85 18 01 - 00 00 mov rax, QWORD PTR logRef$[rbp] - 000ae 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:infolog - 000b5 48 89 08 mov QWORD PTR [rax], rcx - -; 22 : return stat; - - 000b8 8b 45 04 mov eax, DWORD PTR stat$[rbp] - -; 23 : } - - 000bb 8b f8 mov edi, eax - 000bd 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000c1 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:glCheckShaderStat$rtcFrameData - 000c8 e8 00 00 00 00 call _RTC_CheckStackVars - 000cd 8b c7 mov eax, edi - 000cf 48 8b 8d d8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000d6 48 33 cd xor rcx, rbp - 000d9 e8 00 00 00 00 call __security_check_cookie - 000de 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 000e5 5f pop rdi - 000e6 5d pop rbp - 000e7 c3 ret 0 -glCheckShaderStat ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__is_16_main -_TEXT SEGMENT -s$ = 224 -stbi__is_16_main PROC ; COMDAT - -; 8610 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 8611 : #ifndef STBI_NO_PNG -; 8612 : if (stbi__png_is16(s)) - - 00020 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00027 e8 00 00 00 00 call stbi__png_is16 - 0002c 85 c0 test eax, eax - 0002e 74 07 je SHORT $LN2@stbi__is_1 - -; 8613 : return 1; - - 00030 b8 01 00 00 00 mov eax, 1 - 00035 eb 30 jmp SHORT $LN1@stbi__is_1 -$LN2@stbi__is_1: - -; 8614 : #endif -; 8615 : -; 8616 : #ifndef STBI_NO_PSD -; 8617 : if (stbi__psd_is16(s)) - - 00037 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0003e e8 00 00 00 00 call stbi__psd_is16 - 00043 85 c0 test eax, eax - 00045 74 07 je SHORT $LN3@stbi__is_1 - -; 8618 : return 1; - - 00047 b8 01 00 00 00 mov eax, 1 - 0004c eb 19 jmp SHORT $LN1@stbi__is_1 -$LN3@stbi__is_1: - -; 8619 : #endif -; 8620 : -; 8621 : #ifndef STBI_NO_PNM -; 8622 : if (stbi__pnm_is16(s)) - - 0004e 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00055 e8 00 00 00 00 call stbi__pnm_is16 - 0005a 85 c0 test eax, eax - 0005c 74 07 je SHORT $LN4@stbi__is_1 - -; 8623 : return 1; - - 0005e b8 01 00 00 00 mov eax, 1 - 00063 eb 02 jmp SHORT $LN1@stbi__is_1 -$LN4@stbi__is_1: - -; 8624 : #endif -; 8625 : return 0; - - 00065 33 c0 xor eax, eax -$LN1@stbi__is_1: - -; 8626 : } - - 00067 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0006e 5f pop rdi - 0006f 5d pop rbp - 00070 c3 ret 0 -stbi__is_16_main ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__info_main -_TEXT SEGMENT -s$ = 224 -x$ = 232 -y$ = 240 -comp$ = 248 -stbi__info_main PROC ; COMDAT - -; 8560 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 8561 : #ifndef STBI_NO_JPEG -; 8562 : if (stbi__jpeg_info(s, x, y, comp)) - - 0002f 4c 8b 8d f8 00 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00036 4c 8b 85 f0 00 - 00 00 mov r8, QWORD PTR y$[rbp] - 0003d 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00044 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0004b e8 00 00 00 00 call stbi__jpeg_info - 00050 85 c0 test eax, eax - 00052 74 0a je SHORT $LN2@stbi__info - -; 8563 : return 1; - - 00054 b8 01 00 00 00 mov eax, 1 - 00059 e9 7b 01 00 00 jmp $LN1@stbi__info -$LN2@stbi__info: - -; 8564 : #endif -; 8565 : -; 8566 : #ifndef STBI_NO_PNG -; 8567 : if (stbi__png_info(s, x, y, comp)) - - 0005e 4c 8b 8d f8 00 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00065 4c 8b 85 f0 00 - 00 00 mov r8, QWORD PTR y$[rbp] - 0006c 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00073 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0007a e8 00 00 00 00 call stbi__png_info - 0007f 85 c0 test eax, eax - 00081 74 0a je SHORT $LN3@stbi__info - -; 8568 : return 1; - - 00083 b8 01 00 00 00 mov eax, 1 - 00088 e9 4c 01 00 00 jmp $LN1@stbi__info -$LN3@stbi__info: - -; 8569 : #endif -; 8570 : -; 8571 : #ifndef STBI_NO_GIF -; 8572 : if (stbi__gif_info(s, x, y, comp)) - - 0008d 4c 8b 8d f8 00 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00094 4c 8b 85 f0 00 - 00 00 mov r8, QWORD PTR y$[rbp] - 0009b 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR x$[rbp] - 000a2 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000a9 e8 00 00 00 00 call stbi__gif_info - 000ae 85 c0 test eax, eax - 000b0 74 0a je SHORT $LN4@stbi__info - -; 8573 : return 1; - - 000b2 b8 01 00 00 00 mov eax, 1 - 000b7 e9 1d 01 00 00 jmp $LN1@stbi__info -$LN4@stbi__info: - -; 8574 : #endif -; 8575 : -; 8576 : #ifndef STBI_NO_BMP -; 8577 : if (stbi__bmp_info(s, x, y, comp)) - - 000bc 4c 8b 8d f8 00 - 00 00 mov r9, QWORD PTR comp$[rbp] - 000c3 4c 8b 85 f0 00 - 00 00 mov r8, QWORD PTR y$[rbp] - 000ca 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR x$[rbp] - 000d1 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000d8 e8 00 00 00 00 call stbi__bmp_info - 000dd 85 c0 test eax, eax - 000df 74 0a je SHORT $LN5@stbi__info - -; 8578 : return 1; - - 000e1 b8 01 00 00 00 mov eax, 1 - 000e6 e9 ee 00 00 00 jmp $LN1@stbi__info -$LN5@stbi__info: - -; 8579 : #endif -; 8580 : -; 8581 : #ifndef STBI_NO_PSD -; 8582 : if (stbi__psd_info(s, x, y, comp)) - - 000eb 4c 8b 8d f8 00 - 00 00 mov r9, QWORD PTR comp$[rbp] - 000f2 4c 8b 85 f0 00 - 00 00 mov r8, QWORD PTR y$[rbp] - 000f9 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00100 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00107 e8 00 00 00 00 call stbi__psd_info - 0010c 85 c0 test eax, eax - 0010e 74 0a je SHORT $LN6@stbi__info - -; 8583 : return 1; - - 00110 b8 01 00 00 00 mov eax, 1 - 00115 e9 bf 00 00 00 jmp $LN1@stbi__info -$LN6@stbi__info: - -; 8584 : #endif -; 8585 : -; 8586 : #ifndef STBI_NO_PIC -; 8587 : if (stbi__pic_info(s, x, y, comp)) - - 0011a 4c 8b 8d f8 00 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00121 4c 8b 85 f0 00 - 00 00 mov r8, QWORD PTR y$[rbp] - 00128 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR x$[rbp] - 0012f 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00136 e8 00 00 00 00 call stbi__pic_info - 0013b 85 c0 test eax, eax - 0013d 74 0a je SHORT $LN7@stbi__info - -; 8588 : return 1; - - 0013f b8 01 00 00 00 mov eax, 1 - 00144 e9 90 00 00 00 jmp $LN1@stbi__info -$LN7@stbi__info: - -; 8589 : #endif -; 8590 : -; 8591 : #ifndef STBI_NO_PNM -; 8592 : if (stbi__pnm_info(s, x, y, comp)) - - 00149 4c 8b 8d f8 00 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00150 4c 8b 85 f0 00 - 00 00 mov r8, QWORD PTR y$[rbp] - 00157 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR x$[rbp] - 0015e 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00165 e8 00 00 00 00 call stbi__pnm_info - 0016a 85 c0 test eax, eax - 0016c 74 07 je SHORT $LN8@stbi__info - -; 8593 : return 1; - - 0016e b8 01 00 00 00 mov eax, 1 - 00173 eb 64 jmp SHORT $LN1@stbi__info -$LN8@stbi__info: - -; 8594 : #endif -; 8595 : -; 8596 : #ifndef STBI_NO_HDR -; 8597 : if (stbi__hdr_info(s, x, y, comp)) - - 00175 4c 8b 8d f8 00 - 00 00 mov r9, QWORD PTR comp$[rbp] - 0017c 4c 8b 85 f0 00 - 00 00 mov r8, QWORD PTR y$[rbp] - 00183 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR x$[rbp] - 0018a 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00191 e8 00 00 00 00 call stbi__hdr_info - 00196 85 c0 test eax, eax - 00198 74 07 je SHORT $LN9@stbi__info - -; 8598 : return 1; - - 0019a b8 01 00 00 00 mov eax, 1 - 0019f eb 38 jmp SHORT $LN1@stbi__info -$LN9@stbi__info: - -; 8599 : #endif -; 8600 : -; 8601 : // test tga last because it's a crappy test! -; 8602 : #ifndef STBI_NO_TGA -; 8603 : if (stbi__tga_info(s, x, y, comp)) - - 001a1 4c 8b 8d f8 00 - 00 00 mov r9, QWORD PTR comp$[rbp] - 001a8 4c 8b 85 f0 00 - 00 00 mov r8, QWORD PTR y$[rbp] - 001af 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR x$[rbp] - 001b6 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001bd e8 00 00 00 00 call stbi__tga_info - 001c2 85 c0 test eax, eax - 001c4 74 07 je SHORT $LN10@stbi__info - -; 8604 : return 1; - - 001c6 b8 01 00 00 00 mov eax, 1 - 001cb eb 0c jmp SHORT $LN1@stbi__info -$LN10@stbi__info: - -; 8605 : #endif -; 8606 : return stbi__err("unknown image type", "Image not of any known type, or corrupt"); - - 001cd 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BD@CBEDEJPH@unknown?5image?5type@ - 001d4 e8 00 00 00 00 call stbi__err -$LN1@stbi__info: - -; 8607 : } - - 001d9 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 001e0 5f pop rdi - 001e1 5d pop rbp - 001e2 c3 ret 0 -stbi__info_main ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__pnm_getinteger -_TEXT SEGMENT -value$ = 4 -s$ = 256 -c$ = 264 -stbi__pnm_getinteger PROC ; COMDAT - -; 8489 : { - - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 - -; 8490 : int value = 0; - - 00025 c7 45 04 00 00 - 00 00 mov DWORD PTR value$[rbp], 0 -$LN2@stbi__pnm_: - -; 8491 : -; 8492 : while (!stbi__at_eof(s) && stbi__pnm_isdigit(*c)) { - - 0002c 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00033 e8 00 00 00 00 call stbi__at_eof - 00038 85 c0 test eax, eax - 0003a 75 6e jne SHORT $LN3@stbi__pnm_ - 0003c 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR c$[rbp] - 00043 0f b6 08 movzx ecx, BYTE PTR [rax] - 00046 e8 00 00 00 00 call stbi__pnm_isdigit - 0004b 85 c0 test eax, eax - 0004d 74 5b je SHORT $LN3@stbi__pnm_ - -; 8493 : value = value * 10 + (*c - '0'); - - 0004f 6b 45 04 0a imul eax, DWORD PTR value$[rbp], 10 - 00053 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR c$[rbp] - 0005a 0f be 09 movsx ecx, BYTE PTR [rcx] - 0005d 8d 44 08 d0 lea eax, DWORD PTR [rax+rcx-48] - 00061 89 45 04 mov DWORD PTR value$[rbp], eax - -; 8494 : *c = (char)stbi__get8(s); - - 00064 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0006b e8 00 00 00 00 call stbi__get8 - 00070 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR c$[rbp] - 00077 88 01 mov BYTE PTR [rcx], al - -; 8495 : if ((value > 214748364) || (value == 214748364 && *c > '7')) - - 00079 81 7d 04 cc cc - cc 0c cmp DWORD PTR value$[rbp], 214748364 ; 0cccccccH - 00080 7f 18 jg SHORT $LN5@stbi__pnm_ - 00082 81 7d 04 cc cc - cc 0c cmp DWORD PTR value$[rbp], 214748364 ; 0cccccccH - 00089 75 1d jne SHORT $LN4@stbi__pnm_ - 0008b 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR c$[rbp] - 00092 0f be 00 movsx eax, BYTE PTR [rax] - 00095 83 f8 37 cmp eax, 55 ; 00000037H - 00098 7e 0e jle SHORT $LN4@stbi__pnm_ -$LN5@stbi__pnm_: - -; 8496 : return stbi__err( - - 0009a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BH@OBINMOBC@integer?5parse?5overflow@ - 000a1 e8 00 00 00 00 call stbi__err - 000a6 eb 05 jmp SHORT $LN1@stbi__pnm_ -$LN4@stbi__pnm_: - -; 8497 : "integer parse overflow", -; 8498 : "Parsing an integer in the PPM header overflowed a 32-bit int"); -; 8499 : } - - 000a8 eb 82 jmp SHORT $LN2@stbi__pnm_ -$LN3@stbi__pnm_: - -; 8500 : -; 8501 : return value; - - 000aa 8b 45 04 mov eax, DWORD PTR value$[rbp] -$LN1@stbi__pnm_: - -; 8502 : } - - 000ad 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 000b4 5f pop rdi - 000b5 5d pop rbp - 000b6 c3 ret 0 -stbi__pnm_getinteger ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__pnm_isdigit -_TEXT SEGMENT -tv68 = 192 -c$ = 240 -stbi__pnm_isdigit PROC ; COMDAT - -; 8484 : { - - 00000 88 4c 24 08 mov BYTE PTR [rsp+8], cl - 00004 55 push rbp - 00005 57 push rdi - 00006 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00012 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001e 90 npad 1 - -; 8485 : return c >= '0' && c <= '9'; - - 0001f 0f be 85 f0 00 - 00 00 movsx eax, BYTE PTR c$[rbp] - 00026 83 f8 30 cmp eax, 48 ; 00000030H - 00029 7c 18 jl SHORT $LN3@stbi__pnm_ - 0002b 0f be 85 f0 00 - 00 00 movsx eax, BYTE PTR c$[rbp] - 00032 83 f8 39 cmp eax, 57 ; 00000039H - 00035 7f 0c jg SHORT $LN3@stbi__pnm_ - 00037 c7 85 c0 00 00 - 00 01 00 00 00 mov DWORD PTR tv68[rbp], 1 - 00041 eb 0a jmp SHORT $LN4@stbi__pnm_ -$LN3@stbi__pnm_: - 00043 c7 85 c0 00 00 - 00 00 00 00 00 mov DWORD PTR tv68[rbp], 0 -$LN4@stbi__pnm_: - 0004d 8b 85 c0 00 00 - 00 mov eax, DWORD PTR tv68[rbp] - -; 8486 : } - - 00053 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 0005a 5f pop rdi - 0005b 5d pop rbp - 0005c c3 ret 0 -stbi__pnm_isdigit ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__pnm_skip_whitespace -_TEXT SEGMENT -s$ = 224 -c$ = 232 -stbi__pnm_skip_whitespace PROC ; COMDAT - -; 8470 : { - - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 -$LN2@stbi__pnm_: -$LN5@stbi__pnm_: - -; 8471 : for (;;) { -; 8472 : while (!stbi__at_eof(s) && stbi__pnm_isspace(*c)) - - 00025 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0002c e8 00 00 00 00 call stbi__at_eof - 00031 85 c0 test eax, eax - 00033 75 2a jne SHORT $LN6@stbi__pnm_ - 00035 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR c$[rbp] - 0003c 0f b6 08 movzx ecx, BYTE PTR [rax] - 0003f e8 00 00 00 00 call stbi__pnm_isspace - 00044 85 c0 test eax, eax - 00046 74 17 je SHORT $LN6@stbi__pnm_ - -; 8473 : *c = (char)stbi__get8(s); - - 00048 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0004f e8 00 00 00 00 call stbi__get8 - 00054 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR c$[rbp] - 0005b 88 01 mov BYTE PTR [rcx], al - 0005d eb c6 jmp SHORT $LN5@stbi__pnm_ -$LN6@stbi__pnm_: - -; 8474 : -; 8475 : if (stbi__at_eof(s) || *c != '#') - - 0005f 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00066 e8 00 00 00 00 call stbi__at_eof - 0006b 85 c0 test eax, eax - 0006d 75 0f jne SHORT $LN10@stbi__pnm_ - 0006f 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR c$[rbp] - 00076 0f be 00 movsx eax, BYTE PTR [rax] - 00079 83 f8 23 cmp eax, 35 ; 00000023H - 0007c 74 02 je SHORT $LN9@stbi__pnm_ -$LN10@stbi__pnm_: - -; 8476 : break; - - 0007e eb 4a jmp SHORT $LN3@stbi__pnm_ -$LN9@stbi__pnm_: -$LN7@stbi__pnm_: - -; 8477 : -; 8478 : while (!stbi__at_eof(s) && *c != '\n' && *c != '\r') - - 00080 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00087 e8 00 00 00 00 call stbi__at_eof - 0008c 85 c0 test eax, eax - 0008e 75 35 jne SHORT $LN8@stbi__pnm_ - 00090 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR c$[rbp] - 00097 0f be 00 movsx eax, BYTE PTR [rax] - 0009a 83 f8 0a cmp eax, 10 - 0009d 74 26 je SHORT $LN8@stbi__pnm_ - 0009f 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR c$[rbp] - 000a6 0f be 00 movsx eax, BYTE PTR [rax] - 000a9 83 f8 0d cmp eax, 13 - 000ac 74 17 je SHORT $LN8@stbi__pnm_ - -; 8479 : *c = (char)stbi__get8(s); - - 000ae 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000b5 e8 00 00 00 00 call stbi__get8 - 000ba 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR c$[rbp] - 000c1 88 01 mov BYTE PTR [rcx], al - 000c3 eb bb jmp SHORT $LN7@stbi__pnm_ -$LN8@stbi__pnm_: - -; 8480 : } - - 000c5 e9 5b ff ff ff jmp $LN2@stbi__pnm_ -$LN3@stbi__pnm_: - -; 8481 : } - - 000ca 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 000d1 5f pop rdi - 000d2 5d pop rbp - 000d3 c3 ret 0 -stbi__pnm_skip_whitespace ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__pnm_isspace -_TEXT SEGMENT -tv76 = 192 -c$ = 240 -stbi__pnm_isspace PROC ; COMDAT - -; 8465 : { - - 00000 88 4c 24 08 mov BYTE PTR [rsp+8], cl - 00004 55 push rbp - 00005 57 push rdi - 00006 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00012 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001e 90 npad 1 - -; 8466 : return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; - - 0001f 0f be 85 f0 00 - 00 00 movsx eax, BYTE PTR c$[rbp] - 00026 83 f8 20 cmp eax, 32 ; 00000020H - 00029 74 48 je SHORT $LN3@stbi__pnm_ - 0002b 0f be 85 f0 00 - 00 00 movsx eax, BYTE PTR c$[rbp] - 00032 83 f8 09 cmp eax, 9 - 00035 74 3c je SHORT $LN3@stbi__pnm_ - 00037 0f be 85 f0 00 - 00 00 movsx eax, BYTE PTR c$[rbp] - 0003e 83 f8 0a cmp eax, 10 - 00041 74 30 je SHORT $LN3@stbi__pnm_ - 00043 0f be 85 f0 00 - 00 00 movsx eax, BYTE PTR c$[rbp] - 0004a 83 f8 0b cmp eax, 11 - 0004d 74 24 je SHORT $LN3@stbi__pnm_ - 0004f 0f be 85 f0 00 - 00 00 movsx eax, BYTE PTR c$[rbp] - 00056 83 f8 0c cmp eax, 12 - 00059 74 18 je SHORT $LN3@stbi__pnm_ - 0005b 0f be 85 f0 00 - 00 00 movsx eax, BYTE PTR c$[rbp] - 00062 83 f8 0d cmp eax, 13 - 00065 74 0c je SHORT $LN3@stbi__pnm_ - 00067 c7 85 c0 00 00 - 00 00 00 00 00 mov DWORD PTR tv76[rbp], 0 - 00071 eb 0a jmp SHORT $LN4@stbi__pnm_ -$LN3@stbi__pnm_: - 00073 c7 85 c0 00 00 - 00 01 00 00 00 mov DWORD PTR tv76[rbp], 1 -$LN4@stbi__pnm_: - 0007d 8b 85 c0 00 00 - 00 mov eax, DWORD PTR tv76[rbp] - -; 8467 : } - - 00083 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 0008a 5f pop rdi - 0008b 5d pop rbp - 0008c c3 ret 0 -stbi__pnm_isspace ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__hdr_convert -_TEXT SEGMENT -f1$1 = 4 -tv152 = 212 -output$ = 256 -input$ = 264 -req_comp$ = 272 -stbi__hdr_convert PROC ; COMDAT - -; 7996 : { - - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 90 npad 1 - -; 7997 : if (input[3] != 0) { - - 0002a b8 01 00 00 00 mov eax, 1 - 0002f 48 6b c0 03 imul rax, rax, 3 - 00033 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR input$[rbp] - 0003a 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0003e 85 c0 test eax, eax - 00040 0f 84 8d 01 00 - 00 je $LN4@stbi__hdr_ - -; 7998 : float f1; -; 7999 : // Exponent -; 8000 : f1 = (float)ldexp(1.0f, input[3] - (int)(128 + 8)); - - 00046 b8 01 00 00 00 mov eax, 1 - 0004b 48 6b c0 03 imul rax, rax, 3 - 0004f 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR input$[rbp] - 00056 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0005a 2d 88 00 00 00 sub eax, 136 ; 00000088H - 0005f 8b d0 mov edx, eax - 00061 f2 0f 10 05 00 - 00 00 00 movsd xmm0, QWORD PTR __real@3ff0000000000000 - 00069 ff 15 00 00 00 - 00 call QWORD PTR __imp_ldexp - 0006f f2 0f 5a c0 cvtsd2ss xmm0, xmm0 - 00073 f3 0f 11 45 04 movss DWORD PTR f1$1[rbp], xmm0 - -; 8001 : if (req_comp <= 2) - - 00078 83 bd 10 01 00 - 00 02 cmp DWORD PTR req_comp$[rbp], 2 - 0007f 7f 6b jg SHORT $LN6@stbi__hdr_ - -; 8002 : output[0] = (input[0] + input[1] + input[2]) * f1 / 3; - - 00081 b8 01 00 00 00 mov eax, 1 - 00086 48 6b c0 00 imul rax, rax, 0 - 0008a 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR input$[rbp] - 00091 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00095 b9 01 00 00 00 mov ecx, 1 - 0009a 48 6b c9 01 imul rcx, rcx, 1 - 0009e 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR input$[rbp] - 000a5 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 000a9 03 c1 add eax, ecx - 000ab b9 01 00 00 00 mov ecx, 1 - 000b0 48 6b c9 02 imul rcx, rcx, 2 - 000b4 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR input$[rbp] - 000bb 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 000bf 03 c1 add eax, ecx - 000c1 f3 0f 2a c0 cvtsi2ss xmm0, eax - 000c5 f3 0f 59 45 04 mulss xmm0, DWORD PTR f1$1[rbp] - 000ca f3 0f 5e 05 00 - 00 00 00 divss xmm0, DWORD PTR __real@40400000 - 000d2 b8 04 00 00 00 mov eax, 4 - 000d7 48 6b c0 00 imul rax, rax, 0 - 000db 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR output$[rbp] - 000e2 f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 - 000e7 e9 96 00 00 00 jmp $LN7@stbi__hdr_ -$LN6@stbi__hdr_: - -; 8003 : else { -; 8004 : output[0] = input[0] * f1; - - 000ec b8 01 00 00 00 mov eax, 1 - 000f1 48 6b c0 00 imul rax, rax, 0 - 000f5 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR input$[rbp] - 000fc 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00100 f3 0f 2a c0 cvtsi2ss xmm0, eax - 00104 f3 0f 59 45 04 mulss xmm0, DWORD PTR f1$1[rbp] - 00109 b8 04 00 00 00 mov eax, 4 - 0010e 48 6b c0 00 imul rax, rax, 0 - 00112 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR output$[rbp] - 00119 f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 - -; 8005 : output[1] = input[1] * f1; - - 0011e b8 01 00 00 00 mov eax, 1 - 00123 48 6b c0 01 imul rax, rax, 1 - 00127 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR input$[rbp] - 0012e 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00132 f3 0f 2a c0 cvtsi2ss xmm0, eax - 00136 f3 0f 59 45 04 mulss xmm0, DWORD PTR f1$1[rbp] - 0013b b8 04 00 00 00 mov eax, 4 - 00140 48 6b c0 01 imul rax, rax, 1 - 00144 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR output$[rbp] - 0014b f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 - -; 8006 : output[2] = input[2] * f1; - - 00150 b8 01 00 00 00 mov eax, 1 - 00155 48 6b c0 02 imul rax, rax, 2 - 00159 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR input$[rbp] - 00160 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00164 f3 0f 2a c0 cvtsi2ss xmm0, eax - 00168 f3 0f 59 45 04 mulss xmm0, DWORD PTR f1$1[rbp] - 0016d b8 04 00 00 00 mov eax, 4 - 00172 48 6b c0 02 imul rax, rax, 2 - 00176 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR output$[rbp] - 0017d f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 -$LN7@stbi__hdr_: - -; 8007 : } -; 8008 : if (req_comp == 2) - - 00182 83 bd 10 01 00 - 00 02 cmp DWORD PTR req_comp$[rbp], 2 - 00189 75 1d jne SHORT $LN8@stbi__hdr_ - -; 8009 : output[1] = 1; - - 0018b b8 04 00 00 00 mov eax, 4 - 00190 48 6b c0 01 imul rax, rax, 1 - 00194 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR output$[rbp] - 0019b f3 0f 10 05 00 - 00 00 00 movss xmm0, DWORD PTR __real@3f800000 - 001a3 f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 -$LN8@stbi__hdr_: - -; 8010 : if (req_comp == 4) - - 001a8 83 bd 10 01 00 - 00 04 cmp DWORD PTR req_comp$[rbp], 4 - 001af 75 1d jne SHORT $LN9@stbi__hdr_ - -; 8011 : output[3] = 1; - - 001b1 b8 04 00 00 00 mov eax, 4 - 001b6 48 6b c0 03 imul rax, rax, 3 - 001ba 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR output$[rbp] - 001c1 f3 0f 10 05 00 - 00 00 00 movss xmm0, DWORD PTR __real@3f800000 - 001c9 f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 -$LN9@stbi__hdr_: - -; 8012 : } else { - - 001ce e9 d5 00 00 00 jmp $LN5@stbi__hdr_ -$LN4@stbi__hdr_: - -; 8013 : switch (req_comp) { - - 001d3 8b 85 10 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 001d9 89 85 d4 00 00 - 00 mov DWORD PTR tv152[rbp], eax - 001df 83 bd d4 00 00 - 00 01 cmp DWORD PTR tv152[rbp], 1 - 001e6 0f 84 a4 00 00 - 00 je $LN13@stbi__hdr_ - 001ec 83 bd d4 00 00 - 00 02 cmp DWORD PTR tv152[rbp], 2 - 001f3 74 7e je SHORT $LN12@stbi__hdr_ - 001f5 83 bd d4 00 00 - 00 03 cmp DWORD PTR tv152[rbp], 3 - 001fc 74 2b je SHORT $LN11@stbi__hdr_ - 001fe 83 bd d4 00 00 - 00 04 cmp DWORD PTR tv152[rbp], 4 - 00205 74 05 je SHORT $LN10@stbi__hdr_ - 00207 e9 9c 00 00 00 jmp $LN2@stbi__hdr_ -$LN10@stbi__hdr_: - -; 8014 : case 4: -; 8015 : output[3] = 1; /* fallthrough */ - - 0020c b8 04 00 00 00 mov eax, 4 - 00211 48 6b c0 03 imul rax, rax, 3 - 00215 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR output$[rbp] - 0021c f3 0f 10 05 00 - 00 00 00 movss xmm0, DWORD PTR __real@3f800000 - 00224 f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 -$LN11@stbi__hdr_: - -; 8016 : case 3: -; 8017 : output[0] = output[1] = output[2] = 0; - - 00229 b8 04 00 00 00 mov eax, 4 - 0022e 48 6b c0 02 imul rax, rax, 2 - 00232 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR output$[rbp] - 00239 0f 57 c0 xorps xmm0, xmm0 - 0023c f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 - 00241 b8 04 00 00 00 mov eax, 4 - 00246 48 6b c0 01 imul rax, rax, 1 - 0024a 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR output$[rbp] - 00251 0f 57 c0 xorps xmm0, xmm0 - 00254 f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 - 00259 b8 04 00 00 00 mov eax, 4 - 0025e 48 6b c0 00 imul rax, rax, 0 - 00262 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR output$[rbp] - 00269 0f 57 c0 xorps xmm0, xmm0 - 0026c f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 - -; 8018 : break; - - 00271 eb 35 jmp SHORT $LN2@stbi__hdr_ -$LN12@stbi__hdr_: - -; 8019 : case 2: -; 8020 : output[1] = 1; /* fallthrough */ - - 00273 b8 04 00 00 00 mov eax, 4 - 00278 48 6b c0 01 imul rax, rax, 1 - 0027c 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR output$[rbp] - 00283 f3 0f 10 05 00 - 00 00 00 movss xmm0, DWORD PTR __real@3f800000 - 0028b f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 -$LN13@stbi__hdr_: - -; 8021 : case 1: -; 8022 : output[0] = 0; - - 00290 b8 04 00 00 00 mov eax, 4 - 00295 48 6b c0 00 imul rax, rax, 0 - 00299 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR output$[rbp] - 002a0 0f 57 c0 xorps xmm0, xmm0 - 002a3 f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 -$LN2@stbi__hdr_: -$LN5@stbi__hdr_: - -; 8023 : break; -; 8024 : } -; 8025 : } -; 8026 : } - - 002a8 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 002af 5f pop rdi - 002b0 5d pop rbp - 002b1 c3 ret 0 -stbi__hdr_convert ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__hdr_gettoken -_TEXT SEGMENT -len$ = 4 -c$ = 36 -z$ = 288 -buffer$ = 296 -stbi__hdr_gettoken PROC ; COMDAT - -; 7974 : { - - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 - -; 7975 : int len = 0; - - 00025 c7 45 04 00 00 - 00 00 mov DWORD PTR len$[rbp], 0 - -; 7976 : char c = '\0'; - - 0002c c6 45 24 00 mov BYTE PTR c$[rbp], 0 - -; 7977 : -; 7978 : c = (char)stbi__get8(z); - - 00030 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00037 e8 00 00 00 00 call stbi__get8 - 0003c 88 45 24 mov BYTE PTR c$[rbp], al -$LN2@stbi__hdr_: - -; 7979 : -; 7980 : while (!stbi__at_eof(z) && c != '\n') { - - 0003f 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00046 e8 00 00 00 00 call stbi__at_eof - 0004b 85 c0 test eax, eax - 0004d 75 65 jne SHORT $LN3@stbi__hdr_ - 0004f 0f be 45 24 movsx eax, BYTE PTR c$[rbp] - 00053 83 f8 0a cmp eax, 10 - 00056 74 5c je SHORT $LN3@stbi__hdr_ - -; 7981 : buffer[len++] = c; - - 00058 48 63 45 04 movsxd rax, DWORD PTR len$[rbp] - 0005c 48 8b 8d 28 01 - 00 00 mov rcx, QWORD PTR buffer$[rbp] - 00063 0f b6 55 24 movzx edx, BYTE PTR c$[rbp] - 00067 88 14 01 mov BYTE PTR [rcx+rax], dl - 0006a 8b 45 04 mov eax, DWORD PTR len$[rbp] - 0006d ff c0 inc eax - 0006f 89 45 04 mov DWORD PTR len$[rbp], eax - -; 7982 : if (len == STBI__HDR_BUFLEN - 1) { - - 00072 81 7d 04 ff 03 - 00 00 cmp DWORD PTR len$[rbp], 1023 ; 000003ffH - 00079 75 28 jne SHORT $LN6@stbi__hdr_ -$LN4@stbi__hdr_: - -; 7983 : // flush to end of line -; 7984 : while (!stbi__at_eof(z) && stbi__get8(z) != '\n') - - 0007b 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00082 e8 00 00 00 00 call stbi__at_eof - 00087 85 c0 test eax, eax - 00089 75 16 jne SHORT $LN5@stbi__hdr_ - 0008b 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00092 e8 00 00 00 00 call stbi__get8 - 00097 0f b6 c0 movzx eax, al - 0009a 83 f8 0a cmp eax, 10 - 0009d 74 02 je SHORT $LN5@stbi__hdr_ - -; 7985 : ; - - 0009f eb da jmp SHORT $LN4@stbi__hdr_ -$LN5@stbi__hdr_: - -; 7986 : break; - - 000a1 eb 11 jmp SHORT $LN3@stbi__hdr_ -$LN6@stbi__hdr_: - -; 7987 : } -; 7988 : c = (char)stbi__get8(z); - - 000a3 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 000aa e8 00 00 00 00 call stbi__get8 - 000af 88 45 24 mov BYTE PTR c$[rbp], al - -; 7989 : } - - 000b2 eb 8b jmp SHORT $LN2@stbi__hdr_ -$LN3@stbi__hdr_: - -; 7990 : -; 7991 : buffer[len] = 0; - - 000b4 48 63 45 04 movsxd rax, DWORD PTR len$[rbp] - 000b8 48 8b 8d 28 01 - 00 00 mov rcx, QWORD PTR buffer$[rbp] - 000bf c6 04 01 00 mov BYTE PTR [rcx+rax], 0 - -; 7992 : return buffer; - - 000c3 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR buffer$[rbp] - -; 7993 : } - - 000ca 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000d1 5f pop rdi - 000d2 5d pop rbp - 000d3 c3 ret 0 -stbi__hdr_gettoken ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__hdr_test_core -_TEXT SEGMENT -i$ = 4 -s$ = 256 -signature$ = 264 -stbi__hdr_test_core PROC ; COMDAT - -; 7952 : { - - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 - -; 7953 : int i; -; 7954 : for (i = 0; signature[i]; ++i) - - 00025 c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 0002c eb 08 jmp SHORT $LN4@stbi__hdr_ -$LN2@stbi__hdr_: - 0002e 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00031 ff c0 inc eax - 00033 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__hdr_: - 00036 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 0003a 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR signature$[rbp] - 00041 0f be 04 01 movsx eax, BYTE PTR [rcx+rax] - 00045 85 c0 test eax, eax - 00047 74 28 je SHORT $LN3@stbi__hdr_ - -; 7955 : if (stbi__get8(s) != signature[i]) - - 00049 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00050 e8 00 00 00 00 call stbi__get8 - 00055 0f b6 c0 movzx eax, al - 00058 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] - 0005c 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR signature$[rbp] - 00063 0f be 0c 0a movsx ecx, BYTE PTR [rdx+rcx] - 00067 3b c1 cmp eax, ecx - 00069 74 04 je SHORT $LN5@stbi__hdr_ - -; 7956 : return 0; - - 0006b 33 c0 xor eax, eax - 0006d eb 14 jmp SHORT $LN1@stbi__hdr_ -$LN5@stbi__hdr_: - 0006f eb bd jmp SHORT $LN2@stbi__hdr_ -$LN3@stbi__hdr_: - -; 7957 : stbi__rewind(s); - - 00071 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00078 e8 00 00 00 00 call stbi__rewind - 0007d 90 npad 1 - -; 7958 : return 1; - - 0007e b8 01 00 00 00 mov eax, 1 -$LN1@stbi__hdr_: - -; 7959 : } - - 00083 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 0008a 5f pop rdi - 0008b 5d pop rbp - 0008c c3 ret 0 -stbi__hdr_test_core ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__load_gif_main_outofmem -_TEXT SEGMENT -tv78 = 192 -g$ = 240 -out$ = 248 -delays$ = 256 -stbi__load_gif_main_outofmem PROC ; COMDAT - -; 7805 : { - - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 90 npad 1 - -; 7806 : STBI_FREE(g->out); - - 0002a 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR g$[rbp] - 00031 48 8b 48 08 mov rcx, QWORD PTR [rax+8] - 00035 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 0003b 90 npad 1 - -; 7807 : STBI_FREE(g->history); - - 0003c 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR g$[rbp] - 00043 48 8b 48 18 mov rcx, QWORD PTR [rax+24] - 00047 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 0004d 90 npad 1 - -; 7808 : STBI_FREE(g->background); - - 0004e 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR g$[rbp] - 00055 48 8b 48 10 mov rcx, QWORD PTR [rax+16] - 00059 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 0005f 90 npad 1 - -; 7809 : -; 7810 : if (out) - - 00060 48 83 bd f8 00 - 00 00 00 cmp QWORD PTR out$[rbp], 0 - 00068 74 0e je SHORT $LN2@stbi__load - -; 7811 : STBI_FREE(out); - - 0006a 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR out$[rbp] - 00071 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00077 90 npad 1 -$LN2@stbi__load: - -; 7812 : if (delays && *delays) - - 00078 48 83 bd 00 01 - 00 00 00 cmp QWORD PTR delays$[rbp], 0 - 00080 74 1e je SHORT $LN3@stbi__load - 00082 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR delays$[rbp] - 00089 48 83 38 00 cmp QWORD PTR [rax], 0 - 0008d 74 11 je SHORT $LN3@stbi__load - -; 7813 : STBI_FREE(*delays); - - 0008f 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR delays$[rbp] - 00096 48 8b 08 mov rcx, QWORD PTR [rax] - 00099 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 0009f 90 npad 1 -$LN3@stbi__load: - -; 7814 : return stbi__errpuc("outofmem", "Out of memory"); - - 000a0 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 000a7 e8 00 00 00 00 call stbi__err - 000ac 85 c0 test eax, eax - 000ae 74 0d je SHORT $LN5@stbi__load - 000b0 48 c7 85 c0 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv78[rbp], 0 - 000bb eb 0b jmp SHORT $LN6@stbi__load -$LN5@stbi__load: - 000bd 48 c7 85 c0 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv78[rbp], 0 -$LN6@stbi__load: - 000c8 48 8b 85 c0 00 - 00 00 mov rax, QWORD PTR tv78[rbp] - -; 7815 : } - - 000cf 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 000d6 5f pop rdi - 000d7 5d pop rbp - 000d8 c3 ret 0 -stbi__load_gif_main_outofmem ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__gif_load_next -_TEXT SEGMENT -dispose$ = 4 -first_frame$ = 36 -pi$ = 68 -pcount$ = 100 -tag$1 = 132 -x$2 = 164 -y$3 = 196 -w$4 = 228 -h$5 = 260 -o$6 = 296 -len$7 = 324 -ext$8 = 356 -tv232 = 564 -tv296 = 564 -tv83 = 568 -tv142 = 568 -tv250 = 568 -tv315 = 568 -tv409 = 568 -tv578 = 568 -s$ = 608 -g$ = 616 -comp$ = 624 -req_comp$ = 632 -two_back$ = 640 -stbi__gif_load_next PROC ; COMDAT - -; 7622 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 68 02 - 00 00 sub rsp, 616 ; 00000268H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 7623 : int dispose; -; 7624 : int first_frame; -; 7625 : int pi; -; 7626 : int pcount; -; 7627 : STBI_NOTUSED(req_comp); -; 7628 : -; 7629 : // on first frame, any non-written pixels get the background colour (non-transparent) -; 7630 : first_frame = 0; - - 0002f c7 45 24 00 00 - 00 00 mov DWORD PTR first_frame$[rbp], 0 - -; 7631 : if (g->out == 0) { - - 00036 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 0003d 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 00042 0f 85 a5 01 00 - 00 jne $LN18@stbi__gif_ - -; 7632 : if (!stbi__gif_header(s, g, comp, 0)) - - 00048 45 33 c9 xor r9d, r9d - 0004b 4c 8b 85 70 02 - 00 00 mov r8, QWORD PTR comp$[rbp] - 00052 48 8b 95 68 02 - 00 00 mov rdx, QWORD PTR g$[rbp] - 00059 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00060 e8 00 00 00 00 call stbi__gif_header - 00065 85 c0 test eax, eax - 00067 75 07 jne SHORT $LN20@stbi__gif_ - -; 7633 : return 0; // stbi__g_failure_reason set by stbi__gif_header - - 00069 33 c0 xor eax, eax - 0006b e9 66 09 00 00 jmp $LN1@stbi__gif_ -$LN20@stbi__gif_: - -; 7634 : if (!stbi__mad3sizes_valid(4, g->w, g->h, 0)) - - 00070 45 33 c9 xor r9d, r9d - 00073 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 0007a 44 8b 40 04 mov r8d, DWORD PTR [rax+4] - 0007e 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 00085 8b 10 mov edx, DWORD PTR [rax] - 00087 b9 04 00 00 00 mov ecx, 4 - 0008c e8 00 00 00 00 call stbi__mad3sizes_valid - 00091 85 c0 test eax, eax - 00093 75 34 jne SHORT $LN21@stbi__gif_ - -; 7635 : return stbi__errpuc("too large", "GIF image is too large"); - - 00095 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 0009c e8 00 00 00 00 call stbi__err - 000a1 85 c0 test eax, eax - 000a3 74 0d je SHORT $LN55@stbi__gif_ - 000a5 48 c7 85 38 02 - 00 00 00 00 00 - 00 mov QWORD PTR tv83[rbp], 0 - 000b0 eb 0b jmp SHORT $LN56@stbi__gif_ -$LN55@stbi__gif_: - 000b2 48 c7 85 38 02 - 00 00 00 00 00 - 00 mov QWORD PTR tv83[rbp], 0 -$LN56@stbi__gif_: - 000bd 48 8b 85 38 02 - 00 00 mov rax, QWORD PTR tv83[rbp] - 000c4 e9 0d 09 00 00 jmp $LN1@stbi__gif_ -$LN21@stbi__gif_: - -; 7636 : pcount = g->w * g->h; - - 000c9 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 000d0 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 000d7 8b 00 mov eax, DWORD PTR [rax] - 000d9 0f af 41 04 imul eax, DWORD PTR [rcx+4] - 000dd 89 45 64 mov DWORD PTR pcount$[rbp], eax - -; 7637 : g->out = (stbi_uc *)stbi__malloc(4 * pcount); - - 000e0 8b 45 64 mov eax, DWORD PTR pcount$[rbp] - 000e3 c1 e0 02 shl eax, 2 - 000e6 48 98 cdqe - 000e8 48 8b c8 mov rcx, rax - 000eb e8 00 00 00 00 call stbi__malloc - 000f0 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 000f7 48 89 41 08 mov QWORD PTR [rcx+8], rax - -; 7638 : g->background = (stbi_uc *)stbi__malloc(4 * pcount); - - 000fb 8b 45 64 mov eax, DWORD PTR pcount$[rbp] - 000fe c1 e0 02 shl eax, 2 - 00101 48 98 cdqe - 00103 48 8b c8 mov rcx, rax - 00106 e8 00 00 00 00 call stbi__malloc - 0010b 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00112 48 89 41 10 mov QWORD PTR [rcx+16], rax - -; 7639 : g->history = (stbi_uc *)stbi__malloc(pcount); - - 00116 48 63 45 64 movsxd rax, DWORD PTR pcount$[rbp] - 0011a 48 8b c8 mov rcx, rax - 0011d e8 00 00 00 00 call stbi__malloc - 00122 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00129 48 89 41 18 mov QWORD PTR [rcx+24], rax - -; 7640 : if (!g->out || !g->background || !g->history) - - 0012d 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 00134 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 00139 74 1c je SHORT $LN23@stbi__gif_ - 0013b 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 00142 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 - 00147 74 0e je SHORT $LN23@stbi__gif_ - 00149 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 00150 48 83 78 18 00 cmp QWORD PTR [rax+24], 0 - 00155 75 34 jne SHORT $LN22@stbi__gif_ -$LN23@stbi__gif_: - -; 7641 : return stbi__errpuc("outofmem", "Out of memory"); - - 00157 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 0015e e8 00 00 00 00 call stbi__err - 00163 85 c0 test eax, eax - 00165 74 0d je SHORT $LN57@stbi__gif_ - 00167 48 c7 85 38 02 - 00 00 00 00 00 - 00 mov QWORD PTR tv142[rbp], 0 - 00172 eb 0b jmp SHORT $LN58@stbi__gif_ -$LN57@stbi__gif_: - 00174 48 c7 85 38 02 - 00 00 00 00 00 - 00 mov QWORD PTR tv142[rbp], 0 -$LN58@stbi__gif_: - 0017f 48 8b 85 38 02 - 00 00 mov rax, QWORD PTR tv142[rbp] - 00186 e9 4b 08 00 00 jmp $LN1@stbi__gif_ -$LN22@stbi__gif_: - -; 7642 : -; 7643 : // image is treated as "transparent" at the start - ie, nothing overwrites the current background; -; 7644 : // background colour is only used for pixels that are not rendered first frame, after that "background" -; 7645 : // color refers to the color that was there the previous frame. -; 7646 : memset(g->out, 0x00, 4 * pcount); - - 0018b 8b 45 64 mov eax, DWORD PTR pcount$[rbp] - 0018e c1 e0 02 shl eax, 2 - 00191 48 98 cdqe - 00193 4c 8b c0 mov r8, rax - 00196 33 d2 xor edx, edx - 00198 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 0019f 48 8b 48 08 mov rcx, QWORD PTR [rax+8] - 001a3 e8 00 00 00 00 call memset - 001a8 90 npad 1 - -; 7647 : memset(g->background, 0x00, - - 001a9 8b 45 64 mov eax, DWORD PTR pcount$[rbp] - 001ac c1 e0 02 shl eax, 2 - 001af 48 98 cdqe - 001b1 4c 8b c0 mov r8, rax - 001b4 33 d2 xor edx, edx - 001b6 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 001bd 48 8b 48 10 mov rcx, QWORD PTR [rax+16] - 001c1 e8 00 00 00 00 call memset - 001c6 90 npad 1 - -; 7648 : 4 * pcount); // state of the background (starts transparent) -; 7649 : memset(g->history, 0x00, pcount); // pixels that were affected previous frame - - 001c7 48 63 45 64 movsxd rax, DWORD PTR pcount$[rbp] - 001cb 4c 8b c0 mov r8, rax - 001ce 33 d2 xor edx, edx - 001d0 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 001d7 48 8b 48 18 mov rcx, QWORD PTR [rax+24] - 001db e8 00 00 00 00 call memset - 001e0 90 npad 1 - -; 7650 : first_frame = 1; - - 001e1 c7 45 24 01 00 - 00 00 mov DWORD PTR first_frame$[rbp], 1 - -; 7651 : } else { - - 001e8 e9 6b 01 00 00 jmp $LN19@stbi__gif_ -$LN18@stbi__gif_: - -; 7652 : // second frame - how do we dispose of the previous one? -; 7653 : dispose = (g->eflags & 0x1C) >> 2; - - 001ed 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 001f4 8b 40 30 mov eax, DWORD PTR [rax+48] - 001f7 83 e0 1c and eax, 28 - 001fa c1 f8 02 sar eax, 2 - 001fd 89 45 04 mov DWORD PTR dispose$[rbp], eax - -; 7654 : pcount = g->w * g->h; - - 00200 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 00207 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 0020e 8b 00 mov eax, DWORD PTR [rax] - 00210 0f af 41 04 imul eax, DWORD PTR [rcx+4] - 00214 89 45 64 mov DWORD PTR pcount$[rbp], eax - -; 7655 : -; 7656 : if ((dispose == 3) && (two_back == 0)) { - - 00217 83 7d 04 03 cmp DWORD PTR dispose$[rbp], 3 - 0021b 75 11 jne SHORT $LN24@stbi__gif_ - 0021d 48 83 bd 80 02 - 00 00 00 cmp QWORD PTR two_back$[rbp], 0 - 00225 75 07 jne SHORT $LN24@stbi__gif_ - -; 7657 : dispose = - - 00227 c7 45 04 02 00 - 00 00 mov DWORD PTR dispose$[rbp], 2 -$LN24@stbi__gif_: - -; 7658 : 2; // if I don't have an image to revert back to, default to the old background -; 7659 : } -; 7660 : -; 7661 : if (dispose == 3) { // use previous graphic - - 0022e 83 7d 04 03 cmp DWORD PTR dispose$[rbp], 3 - 00232 75 72 jne SHORT $LN25@stbi__gif_ - -; 7662 : for (pi = 0; pi < pcount; ++pi) { - - 00234 c7 45 44 00 00 - 00 00 mov DWORD PTR pi$[rbp], 0 - 0023b eb 08 jmp SHORT $LN4@stbi__gif_ -$LN2@stbi__gif_: - 0023d 8b 45 44 mov eax, DWORD PTR pi$[rbp] - 00240 ff c0 inc eax - 00242 89 45 44 mov DWORD PTR pi$[rbp], eax -$LN4@stbi__gif_: - 00245 8b 45 64 mov eax, DWORD PTR pcount$[rbp] - 00248 39 45 44 cmp DWORD PTR pi$[rbp], eax - 0024b 7d 57 jge SHORT $LN3@stbi__gif_ - -; 7663 : if (g->history[pi]) { - - 0024d 48 63 45 44 movsxd rax, DWORD PTR pi$[rbp] - 00251 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00258 48 8b 49 18 mov rcx, QWORD PTR [rcx+24] - 0025c 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00260 85 c0 test eax, eax - 00262 74 3e je SHORT $LN27@stbi__gif_ - -; 7664 : memcpy(&g->out[pi * 4], &two_back[pi * 4], 4); - - 00264 8b 45 44 mov eax, DWORD PTR pi$[rbp] - 00267 c1 e0 02 shl eax, 2 - 0026a 48 98 cdqe - 0026c 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR two_back$[rbp] - 00273 48 03 c8 add rcx, rax - 00276 48 8b c1 mov rax, rcx - 00279 8b 4d 44 mov ecx, DWORD PTR pi$[rbp] - 0027c c1 e1 02 shl ecx, 2 - 0027f 48 63 c9 movsxd rcx, ecx - 00282 48 8b 95 68 02 - 00 00 mov rdx, QWORD PTR g$[rbp] - 00289 48 8b 52 08 mov rdx, QWORD PTR [rdx+8] - 0028d 48 03 d1 add rdx, rcx - 00290 48 8b ca mov rcx, rdx - 00293 41 b8 04 00 00 - 00 mov r8d, 4 - 00299 48 8b d0 mov rdx, rax - 0029c e8 00 00 00 00 call memcpy - 002a1 90 npad 1 -$LN27@stbi__gif_: - -; 7665 : } -; 7666 : } - - 002a2 eb 99 jmp SHORT $LN2@stbi__gif_ -$LN3@stbi__gif_: - -; 7667 : } else if (dispose == 2) { - - 002a4 eb 7a jmp SHORT $LN26@stbi__gif_ -$LN25@stbi__gif_: - 002a6 83 7d 04 02 cmp DWORD PTR dispose$[rbp], 2 - 002aa 75 74 jne SHORT $LN28@stbi__gif_ - -; 7668 : // restore what was changed last frame to background before that frame; -; 7669 : for (pi = 0; pi < pcount; ++pi) { - - 002ac c7 45 44 00 00 - 00 00 mov DWORD PTR pi$[rbp], 0 - 002b3 eb 08 jmp SHORT $LN7@stbi__gif_ -$LN5@stbi__gif_: - 002b5 8b 45 44 mov eax, DWORD PTR pi$[rbp] - 002b8 ff c0 inc eax - 002ba 89 45 44 mov DWORD PTR pi$[rbp], eax -$LN7@stbi__gif_: - 002bd 8b 45 64 mov eax, DWORD PTR pcount$[rbp] - 002c0 39 45 44 cmp DWORD PTR pi$[rbp], eax - 002c3 7d 5b jge SHORT $LN6@stbi__gif_ - -; 7670 : if (g->history[pi]) { - - 002c5 48 63 45 44 movsxd rax, DWORD PTR pi$[rbp] - 002c9 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 002d0 48 8b 49 18 mov rcx, QWORD PTR [rcx+24] - 002d4 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 002d8 85 c0 test eax, eax - 002da 74 42 je SHORT $LN30@stbi__gif_ - -; 7671 : memcpy(&g->out[pi * 4], &g->background[pi * 4], 4); - - 002dc 8b 45 44 mov eax, DWORD PTR pi$[rbp] - 002df c1 e0 02 shl eax, 2 - 002e2 48 98 cdqe - 002e4 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 002eb 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 002ef 48 03 c8 add rcx, rax - 002f2 48 8b c1 mov rax, rcx - 002f5 8b 4d 44 mov ecx, DWORD PTR pi$[rbp] - 002f8 c1 e1 02 shl ecx, 2 - 002fb 48 63 c9 movsxd rcx, ecx - 002fe 48 8b 95 68 02 - 00 00 mov rdx, QWORD PTR g$[rbp] - 00305 48 8b 52 08 mov rdx, QWORD PTR [rdx+8] - 00309 48 03 d1 add rdx, rcx - 0030c 48 8b ca mov rcx, rdx - 0030f 41 b8 04 00 00 - 00 mov r8d, 4 - 00315 48 8b d0 mov rdx, rax - 00318 e8 00 00 00 00 call memcpy - 0031d 90 npad 1 -$LN30@stbi__gif_: - -; 7672 : } -; 7673 : } - - 0031e eb 95 jmp SHORT $LN5@stbi__gif_ -$LN6@stbi__gif_: -$LN28@stbi__gif_: -$LN26@stbi__gif_: - -; 7674 : } else { -; 7675 : // This is a non-disposal case eithe way, so just -; 7676 : // leave the pixels as is, and they will become the new background -; 7677 : // 1: do not dispose -; 7678 : // 0: not specified. -; 7679 : } -; 7680 : -; 7681 : // background is what out is after the undoing of the previou frame; -; 7682 : memcpy(g->background, g->out, 4 * g->w * g->h); - - 00320 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 00327 8b 00 mov eax, DWORD PTR [rax] - 00329 c1 e0 02 shl eax, 2 - 0032c 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00333 0f af 41 04 imul eax, DWORD PTR [rcx+4] - 00337 48 98 cdqe - 00339 4c 8b c0 mov r8, rax - 0033c 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 00343 48 8b 50 08 mov rdx, QWORD PTR [rax+8] - 00347 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 0034e 48 8b 48 10 mov rcx, QWORD PTR [rax+16] - 00352 e8 00 00 00 00 call memcpy - 00357 90 npad 1 -$LN19@stbi__gif_: - -; 7683 : } -; 7684 : -; 7685 : // clear my history; -; 7686 : memset(g->history, 0x00, g->w * g->h); // pixels that were affected previous frame - - 00358 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 0035f 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00366 8b 00 mov eax, DWORD PTR [rax] - 00368 0f af 41 04 imul eax, DWORD PTR [rcx+4] - 0036c 48 98 cdqe - 0036e 4c 8b c0 mov r8, rax - 00371 33 d2 xor edx, edx - 00373 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 0037a 48 8b 48 18 mov rcx, QWORD PTR [rax+24] - 0037e e8 00 00 00 00 call memset - 00383 90 npad 1 -$LN8@stbi__gif_: - -; 7687 : -; 7688 : for (;;) { -; 7689 : int tag = stbi__get8(s); - - 00384 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0038b e8 00 00 00 00 call stbi__get8 - 00390 0f b6 c0 movzx eax, al - 00393 89 85 84 00 00 - 00 mov DWORD PTR tag$1[rbp], eax - -; 7690 : switch (tag) { - - 00399 8b 85 84 00 00 - 00 mov eax, DWORD PTR tag$1[rbp] - 0039f 89 85 34 02 00 - 00 mov DWORD PTR tv232[rbp], eax - 003a5 83 bd 34 02 00 - 00 21 cmp DWORD PTR tv232[rbp], 33 ; 00000021H - 003ac 0f 84 6f 04 00 - 00 je $LN44@stbi__gif_ - 003b2 83 bd 34 02 00 - 00 2c cmp DWORD PTR tv232[rbp], 44 ; 0000002cH - 003b9 74 12 je SHORT $LN31@stbi__gif_ - 003bb 83 bd 34 02 00 - 00 3b cmp DWORD PTR tv232[rbp], 59 ; 0000003bH - 003c2 0f 84 cf 05 00 - 00 je $LN52@stbi__gif_ - 003c8 e9 d3 05 00 00 jmp $LN53@stbi__gif_ -$LN31@stbi__gif_: - -; 7691 : case 0x2C: /* Image Descriptor */ -; 7692 : { -; 7693 : stbi__int32 x, y, w, h; -; 7694 : stbi_uc *o; -; 7695 : -; 7696 : x = stbi__get16le(s); - - 003cd 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 003d4 e8 00 00 00 00 call stbi__get16le - 003d9 89 85 a4 00 00 - 00 mov DWORD PTR x$2[rbp], eax - -; 7697 : y = stbi__get16le(s); - - 003df 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 003e6 e8 00 00 00 00 call stbi__get16le - 003eb 89 85 c4 00 00 - 00 mov DWORD PTR y$3[rbp], eax - -; 7698 : w = stbi__get16le(s); - - 003f1 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 003f8 e8 00 00 00 00 call stbi__get16le - 003fd 89 85 e4 00 00 - 00 mov DWORD PTR w$4[rbp], eax - -; 7699 : h = stbi__get16le(s); - - 00403 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0040a e8 00 00 00 00 call stbi__get16le - 0040f 89 85 04 01 00 - 00 mov DWORD PTR h$5[rbp], eax - -; 7700 : if (((x + w) > (g->w)) || ((y + h) > (g->h))) - - 00415 8b 85 e4 00 00 - 00 mov eax, DWORD PTR w$4[rbp] - 0041b 8b 8d a4 00 00 - 00 mov ecx, DWORD PTR x$2[rbp] - 00421 03 c8 add ecx, eax - 00423 8b c1 mov eax, ecx - 00425 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 0042c 3b 01 cmp eax, DWORD PTR [rcx] - 0042e 7f 1c jg SHORT $LN33@stbi__gif_ - 00430 8b 85 04 01 00 - 00 mov eax, DWORD PTR h$5[rbp] - 00436 8b 8d c4 00 00 - 00 mov ecx, DWORD PTR y$3[rbp] - 0043c 03 c8 add ecx, eax - 0043e 8b c1 mov eax, ecx - 00440 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00447 3b 41 04 cmp eax, DWORD PTR [rcx+4] - 0044a 7e 34 jle SHORT $LN32@stbi__gif_ -$LN33@stbi__gif_: - -; 7701 : return stbi__errpuc("bad Image Descriptor", "Corrupt GIF"); - - 0044c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BF@GIAALCNJ@bad?5Image?5Descriptor@ - 00453 e8 00 00 00 00 call stbi__err - 00458 85 c0 test eax, eax - 0045a 74 0d je SHORT $LN59@stbi__gif_ - 0045c 48 c7 85 38 02 - 00 00 00 00 00 - 00 mov QWORD PTR tv250[rbp], 0 - 00467 eb 0b jmp SHORT $LN60@stbi__gif_ -$LN59@stbi__gif_: - 00469 48 c7 85 38 02 - 00 00 00 00 00 - 00 mov QWORD PTR tv250[rbp], 0 -$LN60@stbi__gif_: - 00474 48 8b 85 38 02 - 00 00 mov rax, QWORD PTR tv250[rbp] - 0047b e9 56 05 00 00 jmp $LN1@stbi__gif_ -$LN32@stbi__gif_: - -; 7702 : -; 7703 : g->line_size = g->w * 4; - - 00480 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 00487 8b 00 mov eax, DWORD PTR [rax] - 00489 c1 e0 02 shl eax, 2 - 0048c 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00493 89 81 64 88 00 - 00 mov DWORD PTR [rcx+34916], eax - -; 7704 : g->start_x = x * 4; - - 00499 8b 85 a4 00 00 - 00 mov eax, DWORD PTR x$2[rbp] - 0049f c1 e0 02 shl eax, 2 - 004a2 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 004a9 89 81 4c 88 00 - 00 mov DWORD PTR [rcx+34892], eax - -; 7705 : g->start_y = y * g->line_size; - - 004af 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 004b6 8b 8d c4 00 00 - 00 mov ecx, DWORD PTR y$3[rbp] - 004bc 0f af 88 64 88 - 00 00 imul ecx, DWORD PTR [rax+34916] - 004c3 8b c1 mov eax, ecx - 004c5 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 004cc 89 81 50 88 00 - 00 mov DWORD PTR [rcx+34896], eax - -; 7706 : g->max_x = g->start_x + w * 4; - - 004d2 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 004d9 8b 80 4c 88 00 - 00 mov eax, DWORD PTR [rax+34892] - 004df 8b 8d e4 00 00 - 00 mov ecx, DWORD PTR w$4[rbp] - 004e5 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] - 004e8 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 004ef 89 81 54 88 00 - 00 mov DWORD PTR [rcx+34900], eax - -; 7707 : g->max_y = g->start_y + h * g->line_size; - - 004f5 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 004fc 8b 8d 04 01 00 - 00 mov ecx, DWORD PTR h$5[rbp] - 00502 0f af 88 64 88 - 00 00 imul ecx, DWORD PTR [rax+34916] - 00509 8b c1 mov eax, ecx - 0050b 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00512 03 81 50 88 00 - 00 add eax, DWORD PTR [rcx+34896] - 00518 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 0051f 89 81 58 88 00 - 00 mov DWORD PTR [rcx+34904], eax - -; 7708 : g->cur_x = g->start_x; - - 00525 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 0052c 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00533 8b 89 4c 88 00 - 00 mov ecx, DWORD PTR [rcx+34892] - 00539 89 88 5c 88 00 - 00 mov DWORD PTR [rax+34908], ecx - -; 7709 : g->cur_y = g->start_y; - - 0053f 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 00546 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 0054d 8b 89 50 88 00 - 00 mov ecx, DWORD PTR [rcx+34896] - 00553 89 88 60 88 00 - 00 mov DWORD PTR [rax+34912], ecx - -; 7710 : -; 7711 : // if the width of the specified rectangle is 0, that means -; 7712 : // we may not see *any* pixels or the image is malformed; -; 7713 : // to make sure this is caught, move the current y down to -; 7714 : // max_y (which is what out_gif_code checks). -; 7715 : if (w == 0) - - 00559 83 bd e4 00 00 - 00 00 cmp DWORD PTR w$4[rbp], 0 - 00560 75 1a jne SHORT $LN34@stbi__gif_ - -; 7716 : g->cur_y = g->max_y; - - 00562 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 00569 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00570 8b 89 58 88 00 - 00 mov ecx, DWORD PTR [rcx+34904] - 00576 89 88 60 88 00 - 00 mov DWORD PTR [rax+34912], ecx -$LN34@stbi__gif_: - -; 7717 : -; 7718 : g->lflags = stbi__get8(s); - - 0057c 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00583 e8 00 00 00 00 call stbi__get8 - 00588 0f b6 c0 movzx eax, al - 0058b 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00592 89 81 48 88 00 - 00 mov DWORD PTR [rcx+34888], eax - -; 7719 : -; 7720 : if (g->lflags & 0x40) { - - 00598 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 0059f 8b 80 48 88 00 - 00 mov eax, DWORD PTR [rax+34888] - 005a5 83 e0 40 and eax, 64 ; 00000040H - 005a8 85 c0 test eax, eax - 005aa 74 30 je SHORT $LN35@stbi__gif_ - -; 7721 : g->step = 8 * g->line_size; // first interlaced spacing - - 005ac 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 005b3 8b 80 64 88 00 - 00 mov eax, DWORD PTR [rax+34916] - 005b9 c1 e0 03 shl eax, 3 - 005bc 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 005c3 89 81 44 88 00 - 00 mov DWORD PTR [rcx+34884], eax - -; 7722 : g->parse = 3; - - 005c9 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 005d0 c7 80 40 88 00 - 00 03 00 00 00 mov DWORD PTR [rax+34880], 3 - -; 7723 : } else { - - 005da eb 2b jmp SHORT $LN36@stbi__gif_ -$LN35@stbi__gif_: - -; 7724 : g->step = g->line_size; - - 005dc 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 005e3 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 005ea 8b 89 64 88 00 - 00 mov ecx, DWORD PTR [rcx+34916] - 005f0 89 88 44 88 00 - 00 mov DWORD PTR [rax+34884], ecx - -; 7725 : g->parse = 0; - - 005f6 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 005fd c7 80 40 88 00 - 00 00 00 00 00 mov DWORD PTR [rax+34880], 0 -$LN36@stbi__gif_: - -; 7726 : } -; 7727 : -; 7728 : if (g->lflags & 0x80) { - - 00607 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 0060e 8b 80 48 88 00 - 00 mov eax, DWORD PTR [rax+34888] - 00614 25 80 00 00 00 and eax, 128 ; 00000080H - 00619 85 c0 test eax, eax - 0061b 0f 84 98 00 00 - 00 je $LN37@stbi__gif_ - -; 7729 : stbi__gif_parse_colortable(s, g->lpal, 2 << (g->lflags & 7), - - 00621 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 00628 8b 40 30 mov eax, DWORD PTR [rax+48] - 0062b 83 e0 01 and eax, 1 - 0062e 85 c0 test eax, eax - 00630 74 12 je SHORT $LN61@stbi__gif_ - 00632 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 00639 8b 40 2c mov eax, DWORD PTR [rax+44] - 0063c 89 85 34 02 00 - 00 mov DWORD PTR tv296[rbp], eax - 00642 eb 0a jmp SHORT $LN62@stbi__gif_ -$LN61@stbi__gif_: - 00644 c7 85 34 02 00 - 00 ff ff ff ff mov DWORD PTR tv296[rbp], -1 -$LN62@stbi__gif_: - 0064e 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 00655 8b 80 48 88 00 - 00 mov eax, DWORD PTR [rax+34888] - 0065b 83 e0 07 and eax, 7 - 0065e b9 02 00 00 00 mov ecx, 2 - 00663 89 8d 38 02 00 - 00 mov DWORD PTR tv578[rbp], ecx - 00669 0f b6 c8 movzx ecx, al - 0066c 8b 85 38 02 00 - 00 mov eax, DWORD PTR tv578[rbp] - 00672 d3 e0 shl eax, cl - 00674 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 0067b 48 81 c1 34 04 - 00 00 add rcx, 1076 ; 00000434H - 00682 44 8b 8d 34 02 - 00 00 mov r9d, DWORD PTR tv296[rbp] - 00689 44 8b c0 mov r8d, eax - 0068c 48 8b d1 mov rdx, rcx - 0068f 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00696 e8 00 00 00 00 call stbi__gif_parse_colortable - 0069b 90 npad 1 - -; 7730 : g->eflags & 0x01 ? g->transparent : -1); -; 7731 : g->color_table = (stbi_uc *)g->lpal; - - 0069c 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 006a3 48 05 34 04 00 - 00 add rax, 1076 ; 00000434H - 006a9 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 006b0 48 89 81 38 88 - 00 00 mov QWORD PTR [rcx+34872], rax - 006b7 eb 62 jmp SHORT $LN38@stbi__gif_ -$LN37@stbi__gif_: - -; 7732 : } else if (g->flags & 0x80) { - - 006b9 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 006c0 8b 40 20 mov eax, DWORD PTR [rax+32] - 006c3 25 80 00 00 00 and eax, 128 ; 00000080H - 006c8 85 c0 test eax, eax - 006ca 74 1b je SHORT $LN39@stbi__gif_ - -; 7733 : g->color_table = (stbi_uc *)g->pal; - - 006cc 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 006d3 48 83 c0 34 add rax, 52 ; 00000034H - 006d7 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 006de 48 89 81 38 88 - 00 00 mov QWORD PTR [rcx+34872], rax - -; 7734 : } else - - 006e5 eb 34 jmp SHORT $LN40@stbi__gif_ -$LN39@stbi__gif_: - -; 7735 : return stbi__errpuc("missing color table", "Corrupt GIF"); - - 006e7 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BE@NAMJKDNF@missing?5color?5table@ - 006ee e8 00 00 00 00 call stbi__err - 006f3 85 c0 test eax, eax - 006f5 74 0d je SHORT $LN63@stbi__gif_ - 006f7 48 c7 85 38 02 - 00 00 00 00 00 - 00 mov QWORD PTR tv315[rbp], 0 - 00702 eb 0b jmp SHORT $LN64@stbi__gif_ -$LN63@stbi__gif_: - 00704 48 c7 85 38 02 - 00 00 00 00 00 - 00 mov QWORD PTR tv315[rbp], 0 -$LN64@stbi__gif_: - 0070f 48 8b 85 38 02 - 00 00 mov rax, QWORD PTR tv315[rbp] - 00716 e9 bb 02 00 00 jmp $LN1@stbi__gif_ -$LN40@stbi__gif_: -$LN38@stbi__gif_: - -; 7736 : -; 7737 : o = stbi__process_gif_raster(s, g); - - 0071b 48 8b 95 68 02 - 00 00 mov rdx, QWORD PTR g$[rbp] - 00722 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00729 e8 00 00 00 00 call stbi__process_gif_raster - 0072e 48 89 85 28 01 - 00 00 mov QWORD PTR o$6[rbp], rax - -; 7738 : if (!o) - - 00735 48 83 bd 28 01 - 00 00 00 cmp QWORD PTR o$6[rbp], 0 - 0073d 75 07 jne SHORT $LN41@stbi__gif_ - -; 7739 : return NULL; - - 0073f 33 c0 xor eax, eax - 00741 e9 90 02 00 00 jmp $LN1@stbi__gif_ -$LN41@stbi__gif_: - -; 7740 : -; 7741 : // if this was the first frame, -; 7742 : pcount = g->w * g->h; - - 00746 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 0074d 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00754 8b 00 mov eax, DWORD PTR [rax] - 00756 0f af 41 04 imul eax, DWORD PTR [rcx+4] - 0075a 89 45 64 mov DWORD PTR pcount$[rbp], eax - -; 7743 : if (first_frame && (g->bgindex > 0)) { - - 0075d 83 7d 24 00 cmp DWORD PTR first_frame$[rbp], 0 - 00761 0f 84 ae 00 00 - 00 je $LN42@stbi__gif_ - 00767 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 0076e 83 78 24 00 cmp DWORD PTR [rax+36], 0 - 00772 0f 8e 9d 00 00 - 00 jle $LN42@stbi__gif_ - -; 7744 : // if first frame, any pixel not drawn to gets the background color -; 7745 : for (pi = 0; pi < pcount; ++pi) { - - 00778 c7 45 44 00 00 - 00 00 mov DWORD PTR pi$[rbp], 0 - 0077f eb 08 jmp SHORT $LN15@stbi__gif_ -$LN13@stbi__gif_: - 00781 8b 45 44 mov eax, DWORD PTR pi$[rbp] - 00784 ff c0 inc eax - 00786 89 45 44 mov DWORD PTR pi$[rbp], eax -$LN15@stbi__gif_: - 00789 8b 45 64 mov eax, DWORD PTR pcount$[rbp] - 0078c 39 45 44 cmp DWORD PTR pi$[rbp], eax - 0078f 0f 8d 80 00 00 - 00 jge $LN14@stbi__gif_ - -; 7746 : if (g->history[pi] == 0) { - - 00795 48 63 45 44 movsxd rax, DWORD PTR pi$[rbp] - 00799 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 007a0 48 8b 49 18 mov rcx, QWORD PTR [rcx+24] - 007a4 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 007a8 85 c0 test eax, eax - 007aa 75 64 jne SHORT $LN43@stbi__gif_ - -; 7747 : g->pal[g->bgindex][3] = - - 007ac 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 007b3 48 63 40 24 movsxd rax, DWORD PTR [rax+36] - 007b7 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 007be 48 8d 44 81 34 lea rax, QWORD PTR [rcx+rax*4+52] - 007c3 b9 01 00 00 00 mov ecx, 1 - 007c8 48 6b c9 03 imul rcx, rcx, 3 - 007cc c6 04 08 ff mov BYTE PTR [rax+rcx], 255 ; 000000ffH - -; 7748 : 255; // just in case it was made transparent, undo that; It will be reset next frame if need be; -; 7749 : memcpy(&g->out[pi * 4], &g->pal[g->bgindex], 4); - - 007d0 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 007d7 48 63 40 24 movsxd rax, DWORD PTR [rax+36] - 007db 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 007e2 48 8d 44 81 34 lea rax, QWORD PTR [rcx+rax*4+52] - 007e7 8b 4d 44 mov ecx, DWORD PTR pi$[rbp] - 007ea c1 e1 02 shl ecx, 2 - 007ed 48 63 c9 movsxd rcx, ecx - 007f0 48 8b 95 68 02 - 00 00 mov rdx, QWORD PTR g$[rbp] - 007f7 48 8b 52 08 mov rdx, QWORD PTR [rdx+8] - 007fb 48 03 d1 add rdx, rcx - 007fe 48 8b ca mov rcx, rdx - 00801 41 b8 04 00 00 - 00 mov r8d, 4 - 00807 48 8b d0 mov rdx, rax - 0080a e8 00 00 00 00 call memcpy - 0080f 90 npad 1 -$LN43@stbi__gif_: - -; 7750 : } -; 7751 : } - - 00810 e9 6c ff ff ff jmp $LN13@stbi__gif_ -$LN14@stbi__gif_: -$LN42@stbi__gif_: - -; 7752 : } -; 7753 : -; 7754 : return o; - - 00815 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR o$6[rbp] - 0081c e9 b5 01 00 00 jmp $LN1@stbi__gif_ -$LN44@stbi__gif_: - -; 7755 : } -; 7756 : -; 7757 : case 0x21: // Comment Extension. -; 7758 : { -; 7759 : int len; -; 7760 : int ext = stbi__get8(s); - - 00821 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00828 e8 00 00 00 00 call stbi__get8 - 0082d 0f b6 c0 movzx eax, al - 00830 89 85 64 01 00 - 00 mov DWORD PTR ext$8[rbp], eax - -; 7761 : if (ext == 0xF9) { // Graphic Control Extension. - - 00836 81 bd 64 01 00 - 00 f9 00 00 00 cmp DWORD PTR ext$8[rbp], 249 ; 000000f9H - 00840 0f 85 1c 01 00 - 00 jne $LN45@stbi__gif_ - -; 7762 : len = stbi__get8(s); - - 00846 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0084d e8 00 00 00 00 call stbi__get8 - 00852 0f b6 c0 movzx eax, al - 00855 89 85 44 01 00 - 00 mov DWORD PTR len$7[rbp], eax - -; 7763 : if (len == 4) { - - 0085b 83 bd 44 01 00 - 00 04 cmp DWORD PTR len$7[rbp], 4 - 00862 0f 85 e5 00 00 - 00 jne $LN46@stbi__gif_ - -; 7764 : g->eflags = stbi__get8(s); - - 00868 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0086f e8 00 00 00 00 call stbi__get8 - 00874 0f b6 c0 movzx eax, al - 00877 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 0087e 89 41 30 mov DWORD PTR [rcx+48], eax - -; 7765 : g->delay = - - 00881 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00888 e8 00 00 00 00 call stbi__get16le - 0088d 6b c0 0a imul eax, eax, 10 - 00890 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00897 89 81 68 88 00 - 00 mov DWORD PTR [rcx+34920], eax - -; 7766 : 10 * -; 7767 : stbi__get16le( -; 7768 : s); // delay - 1/100th of a second, saving as 1/1000ths. -; 7769 : -; 7770 : // unset old transparent -; 7771 : if (g->transparent >= 0) { - - 0089d 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 008a4 83 78 2c 00 cmp DWORD PTR [rax+44], 0 - 008a8 7c 24 jl SHORT $LN48@stbi__gif_ - -; 7772 : g->pal[g->transparent][3] = 255; - - 008aa 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 008b1 48 63 40 2c movsxd rax, DWORD PTR [rax+44] - 008b5 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 008bc 48 8d 44 81 34 lea rax, QWORD PTR [rcx+rax*4+52] - 008c1 b9 01 00 00 00 mov ecx, 1 - 008c6 48 6b c9 03 imul rcx, rcx, 3 - 008ca c6 04 08 ff mov BYTE PTR [rax+rcx], 255 ; 000000ffH -$LN48@stbi__gif_: - -; 7773 : } -; 7774 : if (g->eflags & 0x01) { - - 008ce 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 008d5 8b 40 30 mov eax, DWORD PTR [rax+48] - 008d8 83 e0 01 and eax, 1 - 008db 85 c0 test eax, eax - 008dd 74 4c je SHORT $LN49@stbi__gif_ - -; 7775 : g->transparent = stbi__get8(s); - - 008df 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 008e6 e8 00 00 00 00 call stbi__get8 - 008eb 0f b6 c0 movzx eax, al - 008ee 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 008f5 89 41 2c mov DWORD PTR [rcx+44], eax - -; 7776 : if (g->transparent >= 0) { - - 008f8 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 008ff 83 78 2c 00 cmp DWORD PTR [rax+44], 0 - 00903 7c 24 jl SHORT $LN51@stbi__gif_ - -; 7777 : g->pal[g->transparent][3] = 0; - - 00905 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 0090c 48 63 40 2c movsxd rax, DWORD PTR [rax+44] - 00910 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00917 48 8d 44 81 34 lea rax, QWORD PTR [rcx+rax*4+52] - 0091c b9 01 00 00 00 mov ecx, 1 - 00921 48 6b c9 03 imul rcx, rcx, 3 - 00925 c6 04 08 00 mov BYTE PTR [rax+rcx], 0 -$LN51@stbi__gif_: - -; 7778 : } -; 7779 : } else { - - 00929 eb 20 jmp SHORT $LN50@stbi__gif_ -$LN49@stbi__gif_: - -; 7780 : // don't need transparent -; 7781 : stbi__skip(s, 1); - - 0092b ba 01 00 00 00 mov edx, 1 - 00930 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00937 e8 00 00 00 00 call stbi__skip - 0093c 90 npad 1 - -; 7782 : g->transparent = -1; - - 0093d 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 00944 c7 40 2c ff ff - ff ff mov DWORD PTR [rax+44], -1 -$LN50@stbi__gif_: - -; 7783 : } -; 7784 : } else { - - 0094b eb 15 jmp SHORT $LN47@stbi__gif_ -$LN46@stbi__gif_: - -; 7785 : stbi__skip(s, len); - - 0094d 8b 95 44 01 00 - 00 mov edx, DWORD PTR len$7[rbp] - 00953 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0095a e8 00 00 00 00 call stbi__skip - 0095f 90 npad 1 - -; 7786 : break; - - 00960 eb 6f jmp SHORT $LN11@stbi__gif_ -$LN47@stbi__gif_: -$LN45@stbi__gif_: -$LN16@stbi__gif_: - -; 7787 : } -; 7788 : } -; 7789 : while ((len = stbi__get8(s)) != 0) { - - 00962 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00969 e8 00 00 00 00 call stbi__get8 - 0096e 0f b6 c0 movzx eax, al - 00971 89 85 44 01 00 - 00 mov DWORD PTR len$7[rbp], eax - 00977 83 bd 44 01 00 - 00 00 cmp DWORD PTR len$7[rbp], 0 - 0097e 74 15 je SHORT $LN17@stbi__gif_ - -; 7790 : stbi__skip(s, len); - - 00980 8b 95 44 01 00 - 00 mov edx, DWORD PTR len$7[rbp] - 00986 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0098d e8 00 00 00 00 call stbi__skip - 00992 90 npad 1 - -; 7791 : } - - 00993 eb cd jmp SHORT $LN16@stbi__gif_ -$LN17@stbi__gif_: - -; 7792 : break; - - 00995 eb 3a jmp SHORT $LN11@stbi__gif_ -$LN52@stbi__gif_: - -; 7793 : } -; 7794 : -; 7795 : case 0x3B: // gif stream termination code -; 7796 : return (stbi_uc *)s; // using '1' causes warning on some compilers - - 00997 48 8b 85 60 02 - 00 00 mov rax, QWORD PTR s$[rbp] - 0099e eb 36 jmp SHORT $LN1@stbi__gif_ -$LN53@stbi__gif_: - -; 7797 : -; 7798 : default: -; 7799 : return stbi__errpuc("unknown code", "Corrupt GIF"); - - 009a0 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0N@DJABBOOH@unknown?5code@ - 009a7 e8 00 00 00 00 call stbi__err - 009ac 85 c0 test eax, eax - 009ae 74 0d je SHORT $LN65@stbi__gif_ - 009b0 48 c7 85 38 02 - 00 00 00 00 00 - 00 mov QWORD PTR tv409[rbp], 0 - 009bb eb 0b jmp SHORT $LN66@stbi__gif_ -$LN65@stbi__gif_: - 009bd 48 c7 85 38 02 - 00 00 00 00 00 - 00 mov QWORD PTR tv409[rbp], 0 -$LN66@stbi__gif_: - 009c8 48 8b 85 38 02 - 00 00 mov rax, QWORD PTR tv409[rbp] - 009cf eb 05 jmp SHORT $LN1@stbi__gif_ -$LN11@stbi__gif_: - -; 7800 : } -; 7801 : } - - 009d1 e9 ae f9 ff ff jmp $LN8@stbi__gif_ -$LN1@stbi__gif_: - -; 7802 : } - - 009d6 48 8d a5 48 02 - 00 00 lea rsp, QWORD PTR [rbp+584] - 009dd 5f pop rdi - 009de 5d pop rbp - 009df c3 ret 0 -stbi__gif_load_next ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__process_gif_raster -_TEXT SEGMENT -lzw_cs$ = 4 -len$ = 36 -init_code$ = 68 -first$ = 100 -codesize$ = 132 -codemask$ = 164 -avail$ = 196 -oldcode$ = 228 -bits$ = 260 -valid_bits$ = 292 -clear$ = 324 -p$ = 360 -code$1 = 388 -tv192 = 596 -tv242 = 596 -tv246 = 596 -tv273 = 596 -tv297 = 596 -tv163 = 600 -tv174 = 600 -tv198 = 600 -tv210 = 600 -s$ = 640 -g$ = 648 -stbi__process_gif_raster PROC ; COMDAT - -; 7530 : { - - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 88 02 - 00 00 sub rsp, 648 ; 00000288H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 - -; 7531 : stbi_uc lzw_cs; -; 7532 : stbi__int32 len, init_code; -; 7533 : stbi__uint32 first; -; 7534 : stbi__int32 codesize, codemask, avail, oldcode, bits, valid_bits, clear; -; 7535 : stbi__gif_lzw *p; -; 7536 : -; 7537 : lzw_cs = stbi__get8(s); - - 00025 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0002c e8 00 00 00 00 call stbi__get8 - 00031 88 45 04 mov BYTE PTR lzw_cs$[rbp], al - -; 7538 : if (lzw_cs > 12) - - 00034 0f b6 45 04 movzx eax, BYTE PTR lzw_cs$[rbp] - 00038 83 f8 0c cmp eax, 12 - 0003b 7e 07 jle SHORT $LN10@stbi__proc - -; 7539 : return NULL; - - 0003d 33 c0 xor eax, eax - 0003f e9 a2 04 00 00 jmp $LN1@stbi__proc -$LN10@stbi__proc: - -; 7540 : clear = 1 << lzw_cs; - - 00044 0f b6 45 04 movzx eax, BYTE PTR lzw_cs$[rbp] - 00048 b9 01 00 00 00 mov ecx, 1 - 0004d 89 8d 54 02 00 - 00 mov DWORD PTR tv242[rbp], ecx - 00053 0f b6 c8 movzx ecx, al - 00056 8b 85 54 02 00 - 00 mov eax, DWORD PTR tv242[rbp] - 0005c d3 e0 shl eax, cl - 0005e 89 85 44 01 00 - 00 mov DWORD PTR clear$[rbp], eax - -; 7541 : first = 1; - - 00064 c7 45 64 01 00 - 00 00 mov DWORD PTR first$[rbp], 1 - -; 7542 : codesize = lzw_cs + 1; - - 0006b 0f b6 45 04 movzx eax, BYTE PTR lzw_cs$[rbp] - 0006f ff c0 inc eax - 00071 89 85 84 00 00 - 00 mov DWORD PTR codesize$[rbp], eax - -; 7543 : codemask = (1 << codesize) - 1; - - 00077 8b 85 84 00 00 - 00 mov eax, DWORD PTR codesize$[rbp] - 0007d b9 01 00 00 00 mov ecx, 1 - 00082 89 8d 54 02 00 - 00 mov DWORD PTR tv246[rbp], ecx - 00088 0f b6 c8 movzx ecx, al - 0008b 8b 85 54 02 00 - 00 mov eax, DWORD PTR tv246[rbp] - 00091 d3 e0 shl eax, cl - 00093 ff c8 dec eax - 00095 89 85 a4 00 00 - 00 mov DWORD PTR codemask$[rbp], eax - -; 7544 : bits = 0; - - 0009b c7 85 04 01 00 - 00 00 00 00 00 mov DWORD PTR bits$[rbp], 0 - -; 7545 : valid_bits = 0; - - 000a5 c7 85 24 01 00 - 00 00 00 00 00 mov DWORD PTR valid_bits$[rbp], 0 - -; 7546 : for (init_code = 0; init_code < clear; init_code++) { - - 000af c7 45 44 00 00 - 00 00 mov DWORD PTR init_code$[rbp], 0 - 000b6 eb 08 jmp SHORT $LN4@stbi__proc -$LN2@stbi__proc: - 000b8 8b 45 44 mov eax, DWORD PTR init_code$[rbp] - 000bb ff c0 inc eax - 000bd 89 45 44 mov DWORD PTR init_code$[rbp], eax -$LN4@stbi__proc: - 000c0 8b 85 44 01 00 - 00 mov eax, DWORD PTR clear$[rbp] - 000c6 39 45 44 cmp DWORD PTR init_code$[rbp], eax - 000c9 7d 46 jge SHORT $LN3@stbi__proc - -; 7547 : g->codes[init_code].prefix = -1; - - 000cb 48 63 45 44 movsxd rax, DWORD PTR init_code$[rbp] - 000cf b9 ff ff ff ff mov ecx, -1 - 000d4 48 8b 95 88 02 - 00 00 mov rdx, QWORD PTR g$[rbp] - 000db 66 89 8c 82 34 - 08 00 00 mov WORD PTR [rdx+rax*4+2100], cx - -; 7548 : g->codes[init_code].first = (stbi_uc)init_code; - - 000e3 48 63 45 44 movsxd rax, DWORD PTR init_code$[rbp] - 000e7 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 000ee 0f b6 55 44 movzx edx, BYTE PTR init_code$[rbp] - 000f2 88 94 81 36 08 - 00 00 mov BYTE PTR [rcx+rax*4+2102], dl - -; 7549 : g->codes[init_code].suffix = (stbi_uc)init_code; - - 000f9 48 63 45 44 movsxd rax, DWORD PTR init_code$[rbp] - 000fd 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00104 0f b6 55 44 movzx edx, BYTE PTR init_code$[rbp] - 00108 88 94 81 37 08 - 00 00 mov BYTE PTR [rcx+rax*4+2103], dl - -; 7550 : } - - 0010f eb a7 jmp SHORT $LN2@stbi__proc -$LN3@stbi__proc: - -; 7551 : -; 7552 : // support no starting clear code -; 7553 : avail = clear + 2; - - 00111 8b 85 44 01 00 - 00 mov eax, DWORD PTR clear$[rbp] - 00117 83 c0 02 add eax, 2 - 0011a 89 85 c4 00 00 - 00 mov DWORD PTR avail$[rbp], eax - -; 7554 : oldcode = -1; - - 00120 c7 85 e4 00 00 - 00 ff ff ff ff mov DWORD PTR oldcode$[rbp], -1 - -; 7555 : -; 7556 : len = 0; - - 0012a c7 45 24 00 00 - 00 00 mov DWORD PTR len$[rbp], 0 -$LN5@stbi__proc: - -; 7557 : for (;;) { -; 7558 : if (valid_bits < codesize) { - - 00131 8b 85 84 00 00 - 00 mov eax, DWORD PTR codesize$[rbp] - 00137 39 85 24 01 00 - 00 cmp DWORD PTR valid_bits$[rbp], eax - 0013d 7d 71 jge SHORT $LN11@stbi__proc - -; 7559 : if (len == 0) { - - 0013f 83 7d 24 00 cmp DWORD PTR len$[rbp], 0 - 00143 75 28 jne SHORT $LN13@stbi__proc - -; 7560 : len = stbi__get8(s); // start new block - - 00145 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0014c e8 00 00 00 00 call stbi__get8 - 00151 0f b6 c0 movzx eax, al - 00154 89 45 24 mov DWORD PTR len$[rbp], eax - -; 7561 : if (len == 0) - - 00157 83 7d 24 00 cmp DWORD PTR len$[rbp], 0 - 0015b 75 10 jne SHORT $LN14@stbi__proc - -; 7562 : return g->out; - - 0015d 48 8b 85 88 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 00164 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00168 e9 79 03 00 00 jmp $LN1@stbi__proc -$LN14@stbi__proc: -$LN13@stbi__proc: - -; 7563 : } -; 7564 : --len; - - 0016d 8b 45 24 mov eax, DWORD PTR len$[rbp] - 00170 ff c8 dec eax - 00172 89 45 24 mov DWORD PTR len$[rbp], eax - -; 7565 : bits |= (stbi__int32)stbi__get8(s) << valid_bits; - - 00175 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0017c e8 00 00 00 00 call stbi__get8 - 00181 0f b6 c0 movzx eax, al - 00184 8b 8d 24 01 00 - 00 mov ecx, DWORD PTR valid_bits$[rbp] - 0018a d3 e0 shl eax, cl - 0018c 8b 8d 04 01 00 - 00 mov ecx, DWORD PTR bits$[rbp] - 00192 0b c8 or ecx, eax - 00194 8b c1 mov eax, ecx - 00196 89 85 04 01 00 - 00 mov DWORD PTR bits$[rbp], eax - -; 7566 : valid_bits += 8; - - 0019c 8b 85 24 01 00 - 00 mov eax, DWORD PTR valid_bits$[rbp] - 001a2 83 c0 08 add eax, 8 - 001a5 89 85 24 01 00 - 00 mov DWORD PTR valid_bits$[rbp], eax - -; 7567 : } else { - - 001ab e9 31 03 00 00 jmp $LN12@stbi__proc -$LN11@stbi__proc: - -; 7568 : stbi__int32 code = bits & codemask; - - 001b0 8b 85 a4 00 00 - 00 mov eax, DWORD PTR codemask$[rbp] - 001b6 8b 8d 04 01 00 - 00 mov ecx, DWORD PTR bits$[rbp] - 001bc 23 c8 and ecx, eax - 001be 8b c1 mov eax, ecx - 001c0 89 85 84 01 00 - 00 mov DWORD PTR code$1[rbp], eax - -; 7569 : bits >>= codesize; - - 001c6 8b 85 84 00 00 - 00 mov eax, DWORD PTR codesize$[rbp] - 001cc 0f b6 c8 movzx ecx, al - 001cf 8b 85 04 01 00 - 00 mov eax, DWORD PTR bits$[rbp] - 001d5 d3 f8 sar eax, cl - 001d7 89 85 04 01 00 - 00 mov DWORD PTR bits$[rbp], eax - -; 7570 : valid_bits -= codesize; - - 001dd 8b 85 84 00 00 - 00 mov eax, DWORD PTR codesize$[rbp] - 001e3 8b 8d 24 01 00 - 00 mov ecx, DWORD PTR valid_bits$[rbp] - 001e9 2b c8 sub ecx, eax - 001eb 8b c1 mov eax, ecx - 001ed 89 85 24 01 00 - 00 mov DWORD PTR valid_bits$[rbp], eax - -; 7571 : // @OPTIMIZE: is there some way we can accelerate the non-clear path? -; 7572 : if (code == clear) { // clear code - - 001f3 8b 85 44 01 00 - 00 mov eax, DWORD PTR clear$[rbp] - 001f9 39 85 84 01 00 - 00 cmp DWORD PTR code$1[rbp], eax - 001ff 75 55 jne SHORT $LN15@stbi__proc - -; 7573 : codesize = lzw_cs + 1; - - 00201 0f b6 45 04 movzx eax, BYTE PTR lzw_cs$[rbp] - 00205 ff c0 inc eax - 00207 89 85 84 00 00 - 00 mov DWORD PTR codesize$[rbp], eax - -; 7574 : codemask = (1 << codesize) - 1; - - 0020d 8b 85 84 00 00 - 00 mov eax, DWORD PTR codesize$[rbp] - 00213 b9 01 00 00 00 mov ecx, 1 - 00218 89 8d 54 02 00 - 00 mov DWORD PTR tv273[rbp], ecx - 0021e 0f b6 c8 movzx ecx, al - 00221 8b 85 54 02 00 - 00 mov eax, DWORD PTR tv273[rbp] - 00227 d3 e0 shl eax, cl - 00229 ff c8 dec eax - 0022b 89 85 a4 00 00 - 00 mov DWORD PTR codemask$[rbp], eax - -; 7575 : avail = clear + 2; - - 00231 8b 85 44 01 00 - 00 mov eax, DWORD PTR clear$[rbp] - 00237 83 c0 02 add eax, 2 - 0023a 89 85 c4 00 00 - 00 mov DWORD PTR avail$[rbp], eax - -; 7576 : oldcode = -1; - - 00240 c7 85 e4 00 00 - 00 ff ff ff ff mov DWORD PTR oldcode$[rbp], -1 - -; 7577 : first = 0; - - 0024a c7 45 64 00 00 - 00 00 mov DWORD PTR first$[rbp], 0 - 00251 e9 8b 02 00 00 jmp $LN16@stbi__proc -$LN15@stbi__proc: - -; 7578 : } else if (code == clear + 1) { // end of stream code - - 00256 8b 85 44 01 00 - 00 mov eax, DWORD PTR clear$[rbp] - 0025c ff c0 inc eax - 0025e 39 85 84 01 00 - 00 cmp DWORD PTR code$1[rbp], eax - 00264 75 4f jne SHORT $LN17@stbi__proc - -; 7579 : stbi__skip(s, len); - - 00266 8b 55 24 mov edx, DWORD PTR len$[rbp] - 00269 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00270 e8 00 00 00 00 call stbi__skip - 00275 90 npad 1 -$LN8@stbi__proc: - -; 7580 : while ((len = stbi__get8(s)) > 0) - - 00276 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0027d e8 00 00 00 00 call stbi__get8 - 00282 0f b6 c0 movzx eax, al - 00285 89 45 24 mov DWORD PTR len$[rbp], eax - 00288 83 7d 24 00 cmp DWORD PTR len$[rbp], 0 - 0028c 7e 12 jle SHORT $LN9@stbi__proc - -; 7581 : stbi__skip(s, len); - - 0028e 8b 55 24 mov edx, DWORD PTR len$[rbp] - 00291 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00298 e8 00 00 00 00 call stbi__skip - 0029d 90 npad 1 - 0029e eb d6 jmp SHORT $LN8@stbi__proc -$LN9@stbi__proc: - -; 7582 : return g->out; - - 002a0 48 8b 85 88 02 - 00 00 mov rax, QWORD PTR g$[rbp] - 002a7 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 002ab e9 36 02 00 00 jmp $LN1@stbi__proc - 002b0 e9 2c 02 00 00 jmp $LN18@stbi__proc -$LN17@stbi__proc: - -; 7583 : } else if (code <= avail) { - - 002b5 8b 85 c4 00 00 - 00 mov eax, DWORD PTR avail$[rbp] - 002bb 39 85 84 01 00 - 00 cmp DWORD PTR code$1[rbp], eax - 002c1 0f 8f e9 01 00 - 00 jg $LN19@stbi__proc - -; 7584 : if (first) { - - 002c7 83 7d 64 00 cmp DWORD PTR first$[rbp], 0 - 002cb 74 34 je SHORT $LN21@stbi__proc - -; 7585 : return stbi__errpuc("no clear code", "Corrupt GIF"); - - 002cd 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0O@MGDACKOJ@no?5clear?5code@ - 002d4 e8 00 00 00 00 call stbi__err - 002d9 85 c0 test eax, eax - 002db 74 0d je SHORT $LN28@stbi__proc - 002dd 48 c7 85 58 02 - 00 00 00 00 00 - 00 mov QWORD PTR tv163[rbp], 0 - 002e8 eb 0b jmp SHORT $LN29@stbi__proc -$LN28@stbi__proc: - 002ea 48 c7 85 58 02 - 00 00 00 00 00 - 00 mov QWORD PTR tv163[rbp], 0 -$LN29@stbi__proc: - 002f5 48 8b 85 58 02 - 00 00 mov rax, QWORD PTR tv163[rbp] - 002fc e9 e5 01 00 00 jmp $LN1@stbi__proc -$LN21@stbi__proc: - -; 7586 : } -; 7587 : -; 7588 : if (oldcode >= 0) { - - 00301 83 bd e4 00 00 - 00 00 cmp DWORD PTR oldcode$[rbp], 0 - 00308 0f 8c ec 00 00 - 00 jl $LN22@stbi__proc - -; 7589 : p = &g->codes[avail++]; - - 0030e 48 63 85 c4 00 - 00 00 movsxd rax, DWORD PTR avail$[rbp] - 00315 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 0031c 48 8d 84 81 34 - 08 00 00 lea rax, QWORD PTR [rcx+rax*4+2100] - 00324 48 89 85 68 01 - 00 00 mov QWORD PTR p$[rbp], rax - 0032b 8b 85 c4 00 00 - 00 mov eax, DWORD PTR avail$[rbp] - 00331 ff c0 inc eax - 00333 89 85 c4 00 00 - 00 mov DWORD PTR avail$[rbp], eax - -; 7590 : if (avail > 8192) { - - 00339 81 bd c4 00 00 - 00 00 20 00 00 cmp DWORD PTR avail$[rbp], 8192 ; 00002000H - 00343 7e 34 jle SHORT $LN24@stbi__proc - -; 7591 : return stbi__errpuc("too many codes", - - 00345 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0P@GJNJCPDJ@too?5many?5codes@ - 0034c e8 00 00 00 00 call stbi__err - 00351 85 c0 test eax, eax - 00353 74 0d je SHORT $LN30@stbi__proc - 00355 48 c7 85 58 02 - 00 00 00 00 00 - 00 mov QWORD PTR tv174[rbp], 0 - 00360 eb 0b jmp SHORT $LN31@stbi__proc -$LN30@stbi__proc: - 00362 48 c7 85 58 02 - 00 00 00 00 00 - 00 mov QWORD PTR tv174[rbp], 0 -$LN31@stbi__proc: - 0036d 48 8b 85 58 02 - 00 00 mov rax, QWORD PTR tv174[rbp] - 00374 e9 6d 01 00 00 jmp $LN1@stbi__proc -$LN24@stbi__proc: - -; 7592 : "Corrupt GIF"); -; 7593 : } -; 7594 : -; 7595 : p->prefix = (stbi__int16)oldcode; - - 00379 48 8b 85 68 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 00380 0f b7 8d e4 00 - 00 00 movzx ecx, WORD PTR oldcode$[rbp] - 00387 66 89 08 mov WORD PTR [rax], cx - -; 7596 : p->first = g->codes[oldcode].first; - - 0038a 48 63 85 e4 00 - 00 00 movsxd rax, DWORD PTR oldcode$[rbp] - 00391 48 8b 8d 68 01 - 00 00 mov rcx, QWORD PTR p$[rbp] - 00398 48 8b 95 88 02 - 00 00 mov rdx, QWORD PTR g$[rbp] - 0039f 0f b6 84 82 36 - 08 00 00 movzx eax, BYTE PTR [rdx+rax*4+2102] - 003a7 88 41 02 mov BYTE PTR [rcx+2], al - -; 7597 : p->suffix = (code == avail) ? p->first : - - 003aa 8b 85 c4 00 00 - 00 mov eax, DWORD PTR avail$[rbp] - 003b0 39 85 84 01 00 - 00 cmp DWORD PTR code$1[rbp], eax - 003b6 75 13 jne SHORT $LN32@stbi__proc - 003b8 48 8b 85 68 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 003bf 0f b6 40 02 movzx eax, BYTE PTR [rax+2] - 003c3 89 85 54 02 00 - 00 mov DWORD PTR tv192[rbp], eax - 003c9 eb 1c jmp SHORT $LN33@stbi__proc -$LN32@stbi__proc: - 003cb 48 63 85 84 01 - 00 00 movsxd rax, DWORD PTR code$1[rbp] - 003d2 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 003d9 0f b6 84 81 36 - 08 00 00 movzx eax, BYTE PTR [rcx+rax*4+2102] - 003e1 89 85 54 02 00 - 00 mov DWORD PTR tv192[rbp], eax -$LN33@stbi__proc: - 003e7 48 8b 85 68 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 003ee 0f b6 8d 54 02 - 00 00 movzx ecx, BYTE PTR tv192[rbp] - 003f5 88 48 03 mov BYTE PTR [rax+3], cl - 003f8 eb 42 jmp SHORT $LN23@stbi__proc -$LN22@stbi__proc: - -; 7598 : g->codes[code].first; -; 7599 : } else if (code == avail) - - 003fa 8b 85 c4 00 00 - 00 mov eax, DWORD PTR avail$[rbp] - 00400 39 85 84 01 00 - 00 cmp DWORD PTR code$1[rbp], eax - 00406 75 34 jne SHORT $LN25@stbi__proc - -; 7600 : return stbi__errpuc("illegal code in raster", - - 00408 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BH@LOKBIIOJ@illegal?5code?5in?5raster@ - 0040f e8 00 00 00 00 call stbi__err - 00414 85 c0 test eax, eax - 00416 74 0d je SHORT $LN34@stbi__proc - 00418 48 c7 85 58 02 - 00 00 00 00 00 - 00 mov QWORD PTR tv198[rbp], 0 - 00423 eb 0b jmp SHORT $LN35@stbi__proc -$LN34@stbi__proc: - 00425 48 c7 85 58 02 - 00 00 00 00 00 - 00 mov QWORD PTR tv198[rbp], 0 -$LN35@stbi__proc: - 00430 48 8b 85 58 02 - 00 00 mov rax, QWORD PTR tv198[rbp] - 00437 e9 aa 00 00 00 jmp $LN1@stbi__proc -$LN25@stbi__proc: -$LN23@stbi__proc: - -; 7601 : "Corrupt GIF"); -; 7602 : -; 7603 : stbi__out_gif_code(g, (stbi__uint16)code); - - 0043c 0f b7 95 84 01 - 00 00 movzx edx, WORD PTR code$1[rbp] - 00443 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR g$[rbp] - 0044a e8 00 00 00 00 call stbi__out_gif_code - 0044f 90 npad 1 - -; 7604 : -; 7605 : if ((avail & codemask) == 0 && avail <= 0x0FFF) { - - 00450 8b 85 a4 00 00 - 00 mov eax, DWORD PTR codemask$[rbp] - 00456 8b 8d c4 00 00 - 00 mov ecx, DWORD PTR avail$[rbp] - 0045c 23 c8 and ecx, eax - 0045e 8b c1 mov eax, ecx - 00460 85 c0 test eax, eax - 00462 75 3e jne SHORT $LN26@stbi__proc - 00464 81 bd c4 00 00 - 00 ff 0f 00 00 cmp DWORD PTR avail$[rbp], 4095 ; 00000fffH - 0046e 7f 32 jg SHORT $LN26@stbi__proc - -; 7606 : codesize++; - - 00470 8b 85 84 00 00 - 00 mov eax, DWORD PTR codesize$[rbp] - 00476 ff c0 inc eax - 00478 89 85 84 00 00 - 00 mov DWORD PTR codesize$[rbp], eax - -; 7607 : codemask = (1 << codesize) - 1; - - 0047e 8b 85 84 00 00 - 00 mov eax, DWORD PTR codesize$[rbp] - 00484 b9 01 00 00 00 mov ecx, 1 - 00489 89 8d 54 02 00 - 00 mov DWORD PTR tv297[rbp], ecx - 0048f 0f b6 c8 movzx ecx, al - 00492 8b 85 54 02 00 - 00 mov eax, DWORD PTR tv297[rbp] - 00498 d3 e0 shl eax, cl - 0049a ff c8 dec eax - 0049c 89 85 a4 00 00 - 00 mov DWORD PTR codemask$[rbp], eax -$LN26@stbi__proc: - -; 7608 : } -; 7609 : -; 7610 : oldcode = code; - - 004a2 8b 85 84 01 00 - 00 mov eax, DWORD PTR code$1[rbp] - 004a8 89 85 e4 00 00 - 00 mov DWORD PTR oldcode$[rbp], eax - -; 7611 : } else { - - 004ae eb 31 jmp SHORT $LN20@stbi__proc -$LN19@stbi__proc: - -; 7612 : return stbi__errpuc("illegal code in raster", "Corrupt GIF"); - - 004b0 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BH@LOKBIIOJ@illegal?5code?5in?5raster@ - 004b7 e8 00 00 00 00 call stbi__err - 004bc 85 c0 test eax, eax - 004be 74 0d je SHORT $LN36@stbi__proc - 004c0 48 c7 85 58 02 - 00 00 00 00 00 - 00 mov QWORD PTR tv210[rbp], 0 - 004cb eb 0b jmp SHORT $LN37@stbi__proc -$LN36@stbi__proc: - 004cd 48 c7 85 58 02 - 00 00 00 00 00 - 00 mov QWORD PTR tv210[rbp], 0 -$LN37@stbi__proc: - 004d8 48 8b 85 58 02 - 00 00 mov rax, QWORD PTR tv210[rbp] - 004df eb 05 jmp SHORT $LN1@stbi__proc -$LN20@stbi__proc: -$LN18@stbi__proc: -$LN16@stbi__proc: -$LN12@stbi__proc: - -; 7613 : } -; 7614 : } -; 7615 : } - - 004e1 e9 4b fc ff ff jmp $LN5@stbi__proc -$LN1@stbi__proc: - -; 7616 : } - - 004e6 48 8d a5 68 02 - 00 00 lea rsp, QWORD PTR [rbp+616] - 004ed 5f pop rdi - 004ee 5d pop rbp - 004ef c3 ret 0 -stbi__process_gif_raster ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__out_gif_code -_TEXT SEGMENT -p$ = 8 -c$ = 40 -idx$ = 68 -tv257 = 276 -g$ = 320 -code$ = 328 -stbi__out_gif_code PROC ; COMDAT - -; 7492 : { - - 00000 66 89 54 24 10 mov WORD PTR [rsp+16], dx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 - -; 7493 : stbi_uc *p, *c; -; 7494 : int idx; -; 7495 : -; 7496 : // recurse to decode the prefixes, since the linked-list is backwards, -; 7497 : // and working backwards through an interleaved image would be nasty -; 7498 : if (g->codes[code].prefix >= 0) - - 00025 0f b7 85 48 01 - 00 00 movzx eax, WORD PTR code$[rbp] - 0002c 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00033 0f bf 84 81 34 - 08 00 00 movsx eax, WORD PTR [rcx+rax*4+2100] - 0003b 85 c0 test eax, eax - 0003d 7c 23 jl SHORT $LN4@stbi__out_ - -; 7499 : stbi__out_gif_code(g, g->codes[code].prefix); - - 0003f 0f b7 85 48 01 - 00 00 movzx eax, WORD PTR code$[rbp] - 00046 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 0004d 0f b7 94 81 34 - 08 00 00 movzx edx, WORD PTR [rcx+rax*4+2100] - 00055 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 0005c e8 00 00 00 00 call stbi__out_gif_code - 00061 90 npad 1 -$LN4@stbi__out_: - -; 7500 : -; 7501 : if (g->cur_y >= g->max_y) - - 00062 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR g$[rbp] - 00069 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00070 8b 89 58 88 00 - 00 mov ecx, DWORD PTR [rcx+34904] - 00076 39 88 60 88 00 - 00 cmp DWORD PTR [rax+34912], ecx - 0007c 7c 05 jl SHORT $LN5@stbi__out_ - -; 7502 : return; - - 0007e e9 64 02 00 00 jmp $LN1@stbi__out_ -$LN5@stbi__out_: - -; 7503 : -; 7504 : idx = g->cur_x + g->cur_y; - - 00083 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR g$[rbp] - 0008a 8b 80 5c 88 00 - 00 mov eax, DWORD PTR [rax+34908] - 00090 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00097 03 81 60 88 00 - 00 add eax, DWORD PTR [rcx+34912] - 0009d 89 45 44 mov DWORD PTR idx$[rbp], eax - -; 7505 : p = &g->out[idx]; - - 000a0 48 63 45 44 movsxd rax, DWORD PTR idx$[rbp] - 000a4 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 000ab 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 000af 48 03 c8 add rcx, rax - 000b2 48 8b c1 mov rax, rcx - 000b5 48 89 45 08 mov QWORD PTR p$[rbp], rax - -; 7506 : g->history[idx / 4] = 1; - - 000b9 8b 45 44 mov eax, DWORD PTR idx$[rbp] - 000bc 99 cdq - 000bd 83 e2 03 and edx, 3 - 000c0 03 c2 add eax, edx - 000c2 c1 f8 02 sar eax, 2 - 000c5 48 98 cdqe - 000c7 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 000ce 48 8b 49 18 mov rcx, QWORD PTR [rcx+24] - 000d2 c6 04 01 01 mov BYTE PTR [rcx+rax], 1 - -; 7507 : -; 7508 : c = &g->color_table[g->codes[code].suffix * 4]; - - 000d6 0f b7 85 48 01 - 00 00 movzx eax, WORD PTR code$[rbp] - 000dd 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 000e4 0f b6 84 81 37 - 08 00 00 movzx eax, BYTE PTR [rcx+rax*4+2103] - 000ec c1 e0 02 shl eax, 2 - 000ef 48 98 cdqe - 000f1 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 000f8 48 8b 89 38 88 - 00 00 mov rcx, QWORD PTR [rcx+34872] - 000ff 48 03 c8 add rcx, rax - 00102 48 8b c1 mov rax, rcx - 00105 48 89 45 28 mov QWORD PTR c$[rbp], rax - -; 7509 : if (c[3] > 128) { // don't render transparent pixels; - - 00109 b8 01 00 00 00 mov eax, 1 - 0010e 48 6b c0 03 imul rax, rax, 3 - 00112 48 8b 4d 28 mov rcx, QWORD PTR c$[rbp] - 00116 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0011a 3d 80 00 00 00 cmp eax, 128 ; 00000080H - 0011f 0f 8e 88 00 00 - 00 jle $LN6@stbi__out_ - -; 7510 : p[0] = c[2]; - - 00125 b8 01 00 00 00 mov eax, 1 - 0012a 48 6b c0 02 imul rax, rax, 2 - 0012e b9 01 00 00 00 mov ecx, 1 - 00133 48 6b c9 00 imul rcx, rcx, 0 - 00137 48 8b 55 08 mov rdx, QWORD PTR p$[rbp] - 0013b 4c 8b 45 28 mov r8, QWORD PTR c$[rbp] - 0013f 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00144 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 7511 : p[1] = c[1]; - - 00147 b8 01 00 00 00 mov eax, 1 - 0014c 48 6b c0 01 imul rax, rax, 1 - 00150 b9 01 00 00 00 mov ecx, 1 - 00155 48 6b c9 01 imul rcx, rcx, 1 - 00159 48 8b 55 08 mov rdx, QWORD PTR p$[rbp] - 0015d 4c 8b 45 28 mov r8, QWORD PTR c$[rbp] - 00161 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00166 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 7512 : p[2] = c[0]; - - 00169 b8 01 00 00 00 mov eax, 1 - 0016e 48 6b c0 00 imul rax, rax, 0 - 00172 b9 01 00 00 00 mov ecx, 1 - 00177 48 6b c9 02 imul rcx, rcx, 2 - 0017b 48 8b 55 08 mov rdx, QWORD PTR p$[rbp] - 0017f 4c 8b 45 28 mov r8, QWORD PTR c$[rbp] - 00183 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00188 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 7513 : p[3] = c[3]; - - 0018b b8 01 00 00 00 mov eax, 1 - 00190 48 6b c0 03 imul rax, rax, 3 - 00194 b9 01 00 00 00 mov ecx, 1 - 00199 48 6b c9 03 imul rcx, rcx, 3 - 0019d 48 8b 55 08 mov rdx, QWORD PTR p$[rbp] - 001a1 4c 8b 45 28 mov r8, QWORD PTR c$[rbp] - 001a5 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 001aa 88 04 0a mov BYTE PTR [rdx+rcx], al -$LN6@stbi__out_: - -; 7514 : } -; 7515 : g->cur_x += 4; - - 001ad 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR g$[rbp] - 001b4 8b 80 5c 88 00 - 00 mov eax, DWORD PTR [rax+34908] - 001ba 83 c0 04 add eax, 4 - 001bd 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 001c4 89 81 5c 88 00 - 00 mov DWORD PTR [rcx+34908], eax - -; 7516 : -; 7517 : if (g->cur_x >= g->max_x) { - - 001ca 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR g$[rbp] - 001d1 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 001d8 8b 89 54 88 00 - 00 mov ecx, DWORD PTR [rcx+34900] - 001de 39 88 5c 88 00 - 00 cmp DWORD PTR [rax+34908], ecx - 001e4 0f 8c fd 00 00 - 00 jl $LN7@stbi__out_ - -; 7518 : g->cur_x = g->start_x; - - 001ea 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR g$[rbp] - 001f1 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 001f8 8b 89 4c 88 00 - 00 mov ecx, DWORD PTR [rcx+34892] - 001fe 89 88 5c 88 00 - 00 mov DWORD PTR [rax+34908], ecx - -; 7519 : g->cur_y += g->step; - - 00204 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR g$[rbp] - 0020b 8b 80 60 88 00 - 00 mov eax, DWORD PTR [rax+34912] - 00211 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00218 03 81 44 88 00 - 00 add eax, DWORD PTR [rcx+34884] - 0021e 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00225 89 81 60 88 00 - 00 mov DWORD PTR [rcx+34912], eax -$LN2@stbi__out_: - -; 7520 : -; 7521 : while (g->cur_y >= g->max_y && g->parse > 0) { - - 0022b 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR g$[rbp] - 00232 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00239 8b 89 58 88 00 - 00 mov ecx, DWORD PTR [rcx+34904] - 0023f 39 88 60 88 00 - 00 cmp DWORD PTR [rax+34912], ecx - 00245 0f 8c 9c 00 00 - 00 jl $LN3@stbi__out_ - 0024b 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR g$[rbp] - 00252 83 b8 40 88 00 - 00 00 cmp DWORD PTR [rax+34880], 0 - 00259 0f 8e 88 00 00 - 00 jle $LN3@stbi__out_ - -; 7522 : g->step = (1 << g->parse) * g->line_size; - - 0025f 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR g$[rbp] - 00266 8b 80 40 88 00 - 00 mov eax, DWORD PTR [rax+34880] - 0026c b9 01 00 00 00 mov ecx, 1 - 00271 89 8d 14 01 00 - 00 mov DWORD PTR tv257[rbp], ecx - 00277 0f b6 c8 movzx ecx, al - 0027a 8b 85 14 01 00 - 00 mov eax, DWORD PTR tv257[rbp] - 00280 d3 e0 shl eax, cl - 00282 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00289 0f af 81 64 88 - 00 00 imul eax, DWORD PTR [rcx+34916] - 00290 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00297 89 81 44 88 00 - 00 mov DWORD PTR [rcx+34884], eax - -; 7523 : g->cur_y = g->start_y + (g->step >> 1); - - 0029d 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR g$[rbp] - 002a4 8b 80 44 88 00 - 00 mov eax, DWORD PTR [rax+34884] - 002aa d1 f8 sar eax, 1 - 002ac 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 002b3 03 81 50 88 00 - 00 add eax, DWORD PTR [rcx+34896] - 002b9 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 002c0 89 81 60 88 00 - 00 mov DWORD PTR [rcx+34912], eax - -; 7524 : --g->parse; - - 002c6 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR g$[rbp] - 002cd 8b 80 40 88 00 - 00 mov eax, DWORD PTR [rax+34880] - 002d3 ff c8 dec eax - 002d5 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 002dc 89 81 40 88 00 - 00 mov DWORD PTR [rcx+34880], eax - -; 7525 : } - - 002e2 e9 44 ff ff ff jmp $LN2@stbi__out_ -$LN3@stbi__out_: -$LN7@stbi__out_: -$LN1@stbi__out_: - -; 7526 : } -; 7527 : } - - 002e7 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 002ee 5f pop rdi - 002ef 5d pop rbp - 002f0 c3 ret 0 -stbi__out_gif_code ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__gif_info_raw -_TEXT SEGMENT -g$ = 8 -s$ = 256 -x$ = 264 -y$ = 272 -comp$ = 280 -stbi__gif_info_raw PROC ; COMDAT - -; 7474 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 7475 : stbi__gif *g = (stbi__gif *)stbi__malloc(sizeof(stbi__gif)); - - 0002f b9 70 88 00 00 mov ecx, 34928 ; 00008870H - 00034 e8 00 00 00 00 call stbi__malloc - 00039 48 89 45 08 mov QWORD PTR g$[rbp], rax - -; 7476 : if (!g) - - 0003d 48 83 7d 08 00 cmp QWORD PTR g$[rbp], 0 - 00042 75 11 jne SHORT $LN2@stbi__gif_ - -; 7477 : return stbi__err("outofmem", "Out of memory"); - - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 0004b e8 00 00 00 00 call stbi__err - 00050 e9 80 00 00 00 jmp $LN1@stbi__gif_ -$LN2@stbi__gif_: - -; 7478 : if (!stbi__gif_header(s, g, comp, 1)) { - - 00055 41 b9 01 00 00 - 00 mov r9d, 1 - 0005b 4c 8b 85 18 01 - 00 00 mov r8, QWORD PTR comp$[rbp] - 00062 48 8b 55 08 mov rdx, QWORD PTR g$[rbp] - 00066 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0006d e8 00 00 00 00 call stbi__gif_header - 00072 85 c0 test eax, eax - 00074 75 1c jne SHORT $LN3@stbi__gif_ - -; 7479 : STBI_FREE(g); - - 00076 48 8b 4d 08 mov rcx, QWORD PTR g$[rbp] - 0007a ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00080 90 npad 1 - -; 7480 : stbi__rewind(s); - - 00081 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00088 e8 00 00 00 00 call stbi__rewind - 0008d 90 npad 1 - -; 7481 : return 0; - - 0008e 33 c0 xor eax, eax - 00090 eb 43 jmp SHORT $LN1@stbi__gif_ -$LN3@stbi__gif_: - -; 7482 : } -; 7483 : if (x) - - 00092 48 83 bd 08 01 - 00 00 00 cmp QWORD PTR x$[rbp], 0 - 0009a 74 0f je SHORT $LN4@stbi__gif_ - -; 7484 : *x = g->w; - - 0009c 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR x$[rbp] - 000a3 48 8b 4d 08 mov rcx, QWORD PTR g$[rbp] - 000a7 8b 09 mov ecx, DWORD PTR [rcx] - 000a9 89 08 mov DWORD PTR [rax], ecx -$LN4@stbi__gif_: - -; 7485 : if (y) - - 000ab 48 83 bd 10 01 - 00 00 00 cmp QWORD PTR y$[rbp], 0 - 000b3 74 10 je SHORT $LN5@stbi__gif_ - -; 7486 : *y = g->h; - - 000b5 48 8b 85 10 01 - 00 00 mov rax, QWORD PTR y$[rbp] - 000bc 48 8b 4d 08 mov rcx, QWORD PTR g$[rbp] - 000c0 8b 49 04 mov ecx, DWORD PTR [rcx+4] - 000c3 89 08 mov DWORD PTR [rax], ecx -$LN5@stbi__gif_: - -; 7487 : STBI_FREE(g); - - 000c5 48 8b 4d 08 mov rcx, QWORD PTR g$[rbp] - 000c9 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 000cf 90 npad 1 - -; 7488 : return 1; - - 000d0 b8 01 00 00 00 mov eax, 1 -$LN1@stbi__gif_: - -; 7489 : } - - 000d5 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 -stbi__gif_info_raw ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__gif_header -_TEXT SEGMENT -version$ = 4 -tv225 = 212 -s$ = 256 -g$ = 264 -comp$ = 272 -is_info$ = 280 -stbi__gif_header PROC ; COMDAT - -; 7436 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 7437 : stbi_uc version; -; 7438 : if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || - - 0002f 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00036 e8 00 00 00 00 call stbi__get8 - 0003b 0f b6 c0 movzx eax, al - 0003e 83 f8 47 cmp eax, 71 ; 00000047H - 00041 75 3c jne SHORT $LN3@stbi__gif_ - 00043 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0004a e8 00 00 00 00 call stbi__get8 - 0004f 0f b6 c0 movzx eax, al - 00052 83 f8 49 cmp eax, 73 ; 00000049H - 00055 75 28 jne SHORT $LN3@stbi__gif_ - 00057 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0005e e8 00 00 00 00 call stbi__get8 - 00063 0f b6 c0 movzx eax, al - 00066 83 f8 46 cmp eax, 70 ; 00000046H - 00069 75 14 jne SHORT $LN3@stbi__gif_ - 0006b 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00072 e8 00 00 00 00 call stbi__get8 - 00077 0f b6 c0 movzx eax, al - 0007a 83 f8 38 cmp eax, 56 ; 00000038H - 0007d 74 11 je SHORT $LN2@stbi__gif_ -$LN3@stbi__gif_: - -; 7439 : stbi__get8(s) != '8') -; 7440 : return stbi__err("not GIF", "Corrupt GIF"); - - 0007f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07KMJLPAII@not?5GIF@ - 00086 e8 00 00 00 00 call stbi__err - 0008b e9 c7 01 00 00 jmp $LN1@stbi__gif_ -$LN2@stbi__gif_: - -; 7441 : -; 7442 : version = stbi__get8(s); - - 00090 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00097 e8 00 00 00 00 call stbi__get8 - 0009c 88 45 04 mov BYTE PTR version$[rbp], al - -; 7443 : if (version != '7' && version != '9') - - 0009f 0f b6 45 04 movzx eax, BYTE PTR version$[rbp] - 000a3 83 f8 37 cmp eax, 55 ; 00000037H - 000a6 74 1a je SHORT $LN4@stbi__gif_ - 000a8 0f b6 45 04 movzx eax, BYTE PTR version$[rbp] - 000ac 83 f8 39 cmp eax, 57 ; 00000039H - 000af 74 11 je SHORT $LN4@stbi__gif_ - -; 7444 : return stbi__err("not GIF", "Corrupt GIF"); - - 000b1 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07KMJLPAII@not?5GIF@ - 000b8 e8 00 00 00 00 call stbi__err - 000bd e9 95 01 00 00 jmp $LN1@stbi__gif_ -$LN4@stbi__gif_: - -; 7445 : if (stbi__get8(s) != 'a') - - 000c2 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000c9 e8 00 00 00 00 call stbi__get8 - 000ce 0f b6 c0 movzx eax, al - 000d1 83 f8 61 cmp eax, 97 ; 00000061H - 000d4 74 11 je SHORT $LN5@stbi__gif_ - -; 7446 : return stbi__err("not GIF", "Corrupt GIF"); - - 000d6 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07KMJLPAII@not?5GIF@ - 000dd e8 00 00 00 00 call stbi__err - 000e2 e9 70 01 00 00 jmp $LN1@stbi__gif_ -$LN5@stbi__gif_: - -; 7447 : -; 7448 : stbi__g_failure_reason = ""; - - 000e7 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__g_failure_reason - 000ec 8b c0 mov eax, eax - 000ee 8b 0d 00 00 00 - 00 mov ecx, DWORD PTR _tls_index - 000f4 65 48 8b 14 25 - 58 00 00 00 mov rdx, QWORD PTR gs:88 - 000fd 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] - 00101 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_00CNPNBAHC@@ - 00108 48 89 14 08 mov QWORD PTR [rax+rcx], rdx - -; 7449 : g->w = stbi__get16le(s); - - 0010c 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00113 e8 00 00 00 00 call stbi__get16le - 00118 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 0011f 89 01 mov DWORD PTR [rcx], eax - -; 7450 : g->h = stbi__get16le(s); - - 00121 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00128 e8 00 00 00 00 call stbi__get16le - 0012d 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00134 89 41 04 mov DWORD PTR [rcx+4], eax - -; 7451 : g->flags = stbi__get8(s); - - 00137 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0013e e8 00 00 00 00 call stbi__get8 - 00143 0f b6 c0 movzx eax, al - 00146 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 0014d 89 41 20 mov DWORD PTR [rcx+32], eax - -; 7452 : g->bgindex = stbi__get8(s); - - 00150 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00157 e8 00 00 00 00 call stbi__get8 - 0015c 0f b6 c0 movzx eax, al - 0015f 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00166 89 41 24 mov DWORD PTR [rcx+36], eax - -; 7453 : g->ratio = stbi__get8(s); - - 00169 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00170 e8 00 00 00 00 call stbi__get8 - 00175 0f b6 c0 movzx eax, al - 00178 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 0017f 89 41 28 mov DWORD PTR [rcx+40], eax - -; 7454 : g->transparent = -1; - - 00182 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR g$[rbp] - 00189 c7 40 2c ff ff - ff ff mov DWORD PTR [rax+44], -1 - -; 7455 : -; 7456 : if (g->w > STBI_MAX_DIMENSIONS) - - 00190 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR g$[rbp] - 00197 81 38 00 00 00 - 01 cmp DWORD PTR [rax], 16777216 ; 01000000H - 0019d 7e 11 jle SHORT $LN6@stbi__gif_ - -; 7457 : return stbi__err("too large", "Very large image (corrupt?)"); - - 0019f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 001a6 e8 00 00 00 00 call stbi__err - 001ab e9 a7 00 00 00 jmp $LN1@stbi__gif_ -$LN6@stbi__gif_: - -; 7458 : if (g->h > STBI_MAX_DIMENSIONS) - - 001b0 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR g$[rbp] - 001b7 81 78 04 00 00 - 00 01 cmp DWORD PTR [rax+4], 16777216 ; 01000000H - 001be 7e 11 jle SHORT $LN7@stbi__gif_ - -; 7459 : return stbi__err("too large", "Very large image (corrupt?)"); - - 001c0 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 001c7 e8 00 00 00 00 call stbi__err - 001cc e9 86 00 00 00 jmp $LN1@stbi__gif_ -$LN7@stbi__gif_: - -; 7460 : -; 7461 : if (comp != 0) - - 001d1 48 83 bd 10 01 - 00 00 00 cmp QWORD PTR comp$[rbp], 0 - 001d9 74 0d je SHORT $LN8@stbi__gif_ - -; 7462 : *comp = 4; // can't actually tell whether it's 3 or 4 until we parse the comments - - 001db 48 8b 85 10 01 - 00 00 mov rax, QWORD PTR comp$[rbp] - 001e2 c7 00 04 00 00 - 00 mov DWORD PTR [rax], 4 -$LN8@stbi__gif_: - -; 7463 : -; 7464 : if (is_info) - - 001e8 83 bd 18 01 00 - 00 00 cmp DWORD PTR is_info$[rbp], 0 - 001ef 74 07 je SHORT $LN9@stbi__gif_ - -; 7465 : return 1; - - 001f1 b8 01 00 00 00 mov eax, 1 - 001f6 eb 5f jmp SHORT $LN1@stbi__gif_ -$LN9@stbi__gif_: - -; 7466 : -; 7467 : if (g->flags & 0x80) - - 001f8 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR g$[rbp] - 001ff 8b 40 20 mov eax, DWORD PTR [rax+32] - 00202 25 80 00 00 00 and eax, 128 ; 00000080H - 00207 85 c0 test eax, eax - 00209 74 47 je SHORT $LN10@stbi__gif_ - -; 7468 : stbi__gif_parse_colortable(s, g->pal, 2 << (g->flags & 7), -1); - - 0020b 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR g$[rbp] - 00212 8b 40 20 mov eax, DWORD PTR [rax+32] - 00215 83 e0 07 and eax, 7 - 00218 b9 02 00 00 00 mov ecx, 2 - 0021d 89 8d d4 00 00 - 00 mov DWORD PTR tv225[rbp], ecx - 00223 0f b6 c8 movzx ecx, al - 00226 8b 85 d4 00 00 - 00 mov eax, DWORD PTR tv225[rbp] - 0022c d3 e0 shl eax, cl - 0022e 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR g$[rbp] - 00235 48 83 c1 34 add rcx, 52 ; 00000034H - 00239 41 b9 ff ff ff - ff mov r9d, -1 - 0023f 44 8b c0 mov r8d, eax - 00242 48 8b d1 mov rdx, rcx - 00245 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0024c e8 00 00 00 00 call stbi__gif_parse_colortable - 00251 90 npad 1 -$LN10@stbi__gif_: - -; 7469 : -; 7470 : return 1; - - 00252 b8 01 00 00 00 mov eax, 1 -$LN1@stbi__gif_: - -; 7471 : } - - 00257 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 0025e 5f pop rdi - 0025f 5d pop rbp - 00260 c3 ret 0 -stbi__gif_header ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__gif_parse_colortable -_TEXT SEGMENT -i$ = 4 -tv93 = 212 -s$ = 256 -pal$ = 264 -num_entries$ = 272 -transp$ = 280 -stbi__gif_parse_colortable PROC ; COMDAT - -; 7425 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 7426 : int i; -; 7427 : for (i = 0; i < num_entries; ++i) { - - 0002f c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00036 eb 08 jmp SHORT $LN4@stbi__gif_ -$LN2@stbi__gif_: - 00038 8b 45 04 mov eax, DWORD PTR i$[rbp] - 0003b ff c0 inc eax - 0003d 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__gif_: - 00040 8b 85 10 01 00 - 00 mov eax, DWORD PTR num_entries$[rbp] - 00046 39 45 04 cmp DWORD PTR i$[rbp], eax - 00049 0f 8d bd 00 00 - 00 jge $LN3@stbi__gif_ - -; 7428 : pal[i][2] = stbi__get8(s); - - 0004f 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00056 e8 00 00 00 00 call stbi__get8 - 0005b 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] - 0005f 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR pal$[rbp] - 00066 48 8d 0c 8a lea rcx, QWORD PTR [rdx+rcx*4] - 0006a ba 01 00 00 00 mov edx, 1 - 0006f 48 6b d2 02 imul rdx, rdx, 2 - 00073 88 04 11 mov BYTE PTR [rcx+rdx], al - -; 7429 : pal[i][1] = stbi__get8(s); - - 00076 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0007d e8 00 00 00 00 call stbi__get8 - 00082 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] - 00086 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR pal$[rbp] - 0008d 48 8d 0c 8a lea rcx, QWORD PTR [rdx+rcx*4] - 00091 ba 01 00 00 00 mov edx, 1 - 00096 48 6b d2 01 imul rdx, rdx, 1 - 0009a 88 04 11 mov BYTE PTR [rcx+rdx], al - -; 7430 : pal[i][0] = stbi__get8(s); - - 0009d 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000a4 e8 00 00 00 00 call stbi__get8 - 000a9 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] - 000ad 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR pal$[rbp] - 000b4 48 8d 0c 8a lea rcx, QWORD PTR [rdx+rcx*4] - 000b8 ba 01 00 00 00 mov edx, 1 - 000bd 48 6b d2 00 imul rdx, rdx, 0 - 000c1 88 04 11 mov BYTE PTR [rcx+rdx], al - -; 7431 : pal[i][3] = transp == i ? 0 : 255; - - 000c4 8b 45 04 mov eax, DWORD PTR i$[rbp] - 000c7 39 85 18 01 00 - 00 cmp DWORD PTR transp$[rbp], eax - 000cd 75 0c jne SHORT $LN6@stbi__gif_ - 000cf c7 85 d4 00 00 - 00 00 00 00 00 mov DWORD PTR tv93[rbp], 0 - 000d9 eb 0a jmp SHORT $LN7@stbi__gif_ -$LN6@stbi__gif_: - 000db c7 85 d4 00 00 - 00 ff 00 00 00 mov DWORD PTR tv93[rbp], 255 ; 000000ffH -$LN7@stbi__gif_: - 000e5 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 000e9 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR pal$[rbp] - 000f0 48 8d 04 81 lea rax, QWORD PTR [rcx+rax*4] - 000f4 b9 01 00 00 00 mov ecx, 1 - 000f9 48 6b c9 03 imul rcx, rcx, 3 - 000fd 0f b6 95 d4 00 - 00 00 movzx edx, BYTE PTR tv93[rbp] - 00104 88 14 08 mov BYTE PTR [rax+rcx], dl - -; 7432 : } - - 00107 e9 2c ff ff ff jmp $LN2@stbi__gif_ -$LN3@stbi__gif_: - -; 7433 : } - - 0010c 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00113 5f pop rdi - 00114 5d pop rbp - 00115 c3 ret 0 -stbi__gif_parse_colortable ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__gif_test_raw -_TEXT SEGMENT -sz$ = 4 -s$ = 256 -stbi__gif_test_raw PROC ; COMDAT - -; 7403 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 7404 : int sz; -; 7405 : if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || - - 00020 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00027 e8 00 00 00 00 call stbi__get8 - 0002c 0f b6 c0 movzx eax, al - 0002f 83 f8 47 cmp eax, 71 ; 00000047H - 00032 75 3c jne SHORT $LN3@stbi__gif_ - 00034 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0003b e8 00 00 00 00 call stbi__get8 - 00040 0f b6 c0 movzx eax, al - 00043 83 f8 49 cmp eax, 73 ; 00000049H - 00046 75 28 jne SHORT $LN3@stbi__gif_ - 00048 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0004f e8 00 00 00 00 call stbi__get8 - 00054 0f b6 c0 movzx eax, al - 00057 83 f8 46 cmp eax, 70 ; 00000046H - 0005a 75 14 jne SHORT $LN3@stbi__gif_ - 0005c 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00063 e8 00 00 00 00 call stbi__get8 - 00068 0f b6 c0 movzx eax, al - 0006b 83 f8 38 cmp eax, 56 ; 00000038H - 0006e 74 04 je SHORT $LN2@stbi__gif_ -$LN3@stbi__gif_: - -; 7406 : stbi__get8(s) != '8') -; 7407 : return 0; - - 00070 33 c0 xor eax, eax - 00072 eb 3f jmp SHORT $LN1@stbi__gif_ -$LN2@stbi__gif_: - -; 7408 : sz = stbi__get8(s); - - 00074 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0007b e8 00 00 00 00 call stbi__get8 - 00080 0f b6 c0 movzx eax, al - 00083 89 45 04 mov DWORD PTR sz$[rbp], eax - -; 7409 : if (sz != '9' && sz != '7') - - 00086 83 7d 04 39 cmp DWORD PTR sz$[rbp], 57 ; 00000039H - 0008a 74 0a je SHORT $LN4@stbi__gif_ - 0008c 83 7d 04 37 cmp DWORD PTR sz$[rbp], 55 ; 00000037H - 00090 74 04 je SHORT $LN4@stbi__gif_ - -; 7410 : return 0; - - 00092 33 c0 xor eax, eax - 00094 eb 1d jmp SHORT $LN1@stbi__gif_ -$LN4@stbi__gif_: - -; 7411 : if (stbi__get8(s) != 'a') - - 00096 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0009d e8 00 00 00 00 call stbi__get8 - 000a2 0f b6 c0 movzx eax, al - 000a5 83 f8 61 cmp eax, 97 ; 00000061H - 000a8 74 04 je SHORT $LN5@stbi__gif_ - -; 7412 : return 0; - - 000aa 33 c0 xor eax, eax - 000ac eb 05 jmp SHORT $LN1@stbi__gif_ -$LN5@stbi__gif_: - -; 7413 : return 1; - - 000ae b8 01 00 00 00 mov eax, 1 -$LN1@stbi__gif_: - -; 7414 : } - - 000b3 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 000ba 5f pop rdi - 000bb 5d pop rbp - 000bc c3 ret 0 -stbi__gif_test_raw ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__pic_load_core -_TEXT SEGMENT -act_comp$ = 4 -num_packets$ = 36 -y$ = 68 -chained$ = 100 -packets$ = 136 -packet$6 = 200 -packet_idx$7 = 228 -packet$8 = 264 -dest$9 = 296 -x$10 = 324 -left$11 = 356 -i$12 = 388 -count$13 = 420 -value$14 = 452 -left$15 = 484 -count$16 = 516 -i$17 = 548 -value$18 = 580 -tv138 = 980 -tv152 = 980 -tv95 = 984 -tv134 = 984 -tv238 = 984 -tv69 = 984 -tv156 = 984 -tv176 = 984 -tv207 = 984 -tv217 = 984 -__$ArrayPad$ = 992 -s$ = 1040 -width$ = 1048 -height$ = 1056 -comp$ = 1064 -result$ = 1072 -stbi__pic_load_core PROC ; COMDAT - -; 7194 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00013 55 push rbp - 00014 57 push rdi - 00015 48 81 ec 18 04 - 00 00 sub rsp, 1048 ; 00000418H - 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00021 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00026 b9 9e 00 00 00 mov ecx, 158 ; 0000009eH - 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00030 f3 ab rep stosd - 00032 48 8b 8c 24 38 - 04 00 00 mov rcx, QWORD PTR [rsp+1080] - 0003a 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00041 48 33 c5 xor rax, rbp - 00044 48 89 85 e0 03 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00057 90 npad 1 - -; 7195 : int act_comp = 0, num_packets = 0, y, chained; - - 00058 c7 45 04 00 00 - 00 00 mov DWORD PTR act_comp$[rbp], 0 - 0005f c7 45 24 00 00 - 00 00 mov DWORD PTR num_packets$[rbp], 0 -$LN4@stbi__pic_: - -; 7196 : stbi__pic_packet packets[10]; -; 7197 : -; 7198 : // this will (should...) cater for even some bizarre stuff like having data -; 7199 : // for the same channel in multiple packets. -; 7200 : do { -; 7201 : stbi__pic_packet *packet; -; 7202 : -; 7203 : if (num_packets == sizeof(packets) / sizeof(packets[0])) - - 00066 48 63 45 24 movsxd rax, DWORD PTR num_packets$[rbp] - 0006a 48 83 f8 0a cmp rax, 10 - 0006e 75 34 jne SHORT $LN29@stbi__pic_ - -; 7204 : return stbi__errpuc("bad format", "too many packets"); - - 00070 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0L@DMAPJJO@bad?5format@ - 00077 e8 00 00 00 00 call stbi__err - 0007c 85 c0 test eax, eax - 0007e 74 0d je SHORT $LN50@stbi__pic_ - 00080 48 c7 85 d8 03 - 00 00 00 00 00 - 00 mov QWORD PTR tv69[rbp], 0 - 0008b eb 0b jmp SHORT $LN51@stbi__pic_ -$LN50@stbi__pic_: - 0008d 48 c7 85 d8 03 - 00 00 00 00 00 - 00 mov QWORD PTR tv69[rbp], 0 -$LN51@stbi__pic_: - 00098 48 8b 85 d8 03 - 00 00 mov rax, QWORD PTR tv69[rbp] - 0009f e9 3a 06 00 00 jmp $LN1@stbi__pic_ -$LN29@stbi__pic_: - -; 7205 : -; 7206 : packet = &packets[num_packets++]; - - 000a4 48 63 45 24 movsxd rax, DWORD PTR num_packets$[rbp] - 000a8 48 6b c0 03 imul rax, rax, 3 - 000ac 48 8d 84 05 88 - 00 00 00 lea rax, QWORD PTR packets$[rbp+rax] - 000b4 48 89 85 c8 00 - 00 00 mov QWORD PTR packet$6[rbp], rax - 000bb 8b 45 24 mov eax, DWORD PTR num_packets$[rbp] - 000be ff c0 inc eax - 000c0 89 45 24 mov DWORD PTR num_packets$[rbp], eax - -; 7207 : -; 7208 : chained = stbi__get8(s); - - 000c3 48 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000ca e8 00 00 00 00 call stbi__get8 - 000cf 0f b6 c0 movzx eax, al - 000d2 89 45 64 mov DWORD PTR chained$[rbp], eax - -; 7209 : packet->size = stbi__get8(s); - - 000d5 48 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000dc e8 00 00 00 00 call stbi__get8 - 000e1 48 8b 8d c8 00 - 00 00 mov rcx, QWORD PTR packet$6[rbp] - 000e8 88 01 mov BYTE PTR [rcx], al - -; 7210 : packet->type = stbi__get8(s); - - 000ea 48 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000f1 e8 00 00 00 00 call stbi__get8 - 000f6 48 8b 8d c8 00 - 00 00 mov rcx, QWORD PTR packet$6[rbp] - 000fd 88 41 01 mov BYTE PTR [rcx+1], al - -; 7211 : packet->channel = stbi__get8(s); - - 00100 48 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00107 e8 00 00 00 00 call stbi__get8 - 0010c 48 8b 8d c8 00 - 00 00 mov rcx, QWORD PTR packet$6[rbp] - 00113 88 41 02 mov BYTE PTR [rcx+2], al - -; 7212 : -; 7213 : act_comp |= packet->channel; - - 00116 48 8b 85 c8 00 - 00 00 mov rax, QWORD PTR packet$6[rbp] - 0011d 0f b6 40 02 movzx eax, BYTE PTR [rax+2] - 00121 8b 4d 04 mov ecx, DWORD PTR act_comp$[rbp] - 00124 0b c8 or ecx, eax - 00126 8b c1 mov eax, ecx - 00128 89 45 04 mov DWORD PTR act_comp$[rbp], eax - -; 7214 : -; 7215 : if (stbi__at_eof(s)) - - 0012b 48 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00132 e8 00 00 00 00 call stbi__at_eof - 00137 85 c0 test eax, eax - 00139 74 34 je SHORT $LN30@stbi__pic_ - -; 7216 : return stbi__errpuc("bad file", "file too short (reading packets)"); - - 0013b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08GGMBIFE@bad?5file@ - 00142 e8 00 00 00 00 call stbi__err - 00147 85 c0 test eax, eax - 00149 74 0d je SHORT $LN52@stbi__pic_ - 0014b 48 c7 85 d8 03 - 00 00 00 00 00 - 00 mov QWORD PTR tv95[rbp], 0 - 00156 eb 0b jmp SHORT $LN53@stbi__pic_ -$LN52@stbi__pic_: - 00158 48 c7 85 d8 03 - 00 00 00 00 00 - 00 mov QWORD PTR tv95[rbp], 0 -$LN53@stbi__pic_: - 00163 48 8b 85 d8 03 - 00 00 mov rax, QWORD PTR tv95[rbp] - 0016a e9 6f 05 00 00 jmp $LN1@stbi__pic_ -$LN30@stbi__pic_: - -; 7217 : if (packet->size != 8) - - 0016f 48 8b 85 c8 00 - 00 00 mov rax, QWORD PTR packet$6[rbp] - 00176 0f b6 00 movzx eax, BYTE PTR [rax] - 00179 83 f8 08 cmp eax, 8 - 0017c 74 34 je SHORT $LN31@stbi__pic_ - -; 7218 : return stbi__errpuc("bad format", "packet isn't 8bpp"); - - 0017e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0L@DMAPJJO@bad?5format@ - 00185 e8 00 00 00 00 call stbi__err - 0018a 85 c0 test eax, eax - 0018c 74 0d je SHORT $LN54@stbi__pic_ - 0018e 48 c7 85 d8 03 - 00 00 00 00 00 - 00 mov QWORD PTR tv134[rbp], 0 - 00199 eb 0b jmp SHORT $LN55@stbi__pic_ -$LN54@stbi__pic_: - 0019b 48 c7 85 d8 03 - 00 00 00 00 00 - 00 mov QWORD PTR tv134[rbp], 0 -$LN55@stbi__pic_: - 001a6 48 8b 85 d8 03 - 00 00 mov rax, QWORD PTR tv134[rbp] - 001ad e9 2c 05 00 00 jmp $LN1@stbi__pic_ -$LN31@stbi__pic_: - -; 7219 : } while (chained); - - 001b2 83 7d 64 00 cmp DWORD PTR chained$[rbp], 0 - 001b6 0f 85 aa fe ff - ff jne $LN4@stbi__pic_ - -; 7220 : -; 7221 : *comp = (act_comp & 0x10 ? 4 : 3); // has alpha channel? - - 001bc 8b 45 04 mov eax, DWORD PTR act_comp$[rbp] - 001bf 83 e0 10 and eax, 16 - 001c2 85 c0 test eax, eax - 001c4 74 0c je SHORT $LN56@stbi__pic_ - 001c6 c7 85 d4 03 00 - 00 04 00 00 00 mov DWORD PTR tv138[rbp], 4 - 001d0 eb 0a jmp SHORT $LN57@stbi__pic_ -$LN56@stbi__pic_: - 001d2 c7 85 d4 03 00 - 00 03 00 00 00 mov DWORD PTR tv138[rbp], 3 -$LN57@stbi__pic_: - 001dc 48 8b 85 28 04 - 00 00 mov rax, QWORD PTR comp$[rbp] - 001e3 8b 8d d4 03 00 - 00 mov ecx, DWORD PTR tv138[rbp] - 001e9 89 08 mov DWORD PTR [rax], ecx - -; 7222 : -; 7223 : for (y = 0; y < height; ++y) { - - 001eb c7 45 44 00 00 - 00 00 mov DWORD PTR y$[rbp], 0 - 001f2 eb 08 jmp SHORT $LN7@stbi__pic_ -$LN5@stbi__pic_: - 001f4 8b 45 44 mov eax, DWORD PTR y$[rbp] - 001f7 ff c0 inc eax - 001f9 89 45 44 mov DWORD PTR y$[rbp], eax -$LN7@stbi__pic_: - 001fc 8b 85 20 04 00 - 00 mov eax, DWORD PTR height$[rbp] - 00202 39 45 44 cmp DWORD PTR y$[rbp], eax - 00205 0f 8d cc 04 00 - 00 jge $LN6@stbi__pic_ - -; 7224 : int packet_idx; -; 7225 : -; 7226 : for (packet_idx = 0; packet_idx < num_packets; ++packet_idx) { - - 0020b c7 85 e4 00 00 - 00 00 00 00 00 mov DWORD PTR packet_idx$7[rbp], 0 - 00215 eb 0e jmp SHORT $LN10@stbi__pic_ -$LN8@stbi__pic_: - 00217 8b 85 e4 00 00 - 00 mov eax, DWORD PTR packet_idx$7[rbp] - 0021d ff c0 inc eax - 0021f 89 85 e4 00 00 - 00 mov DWORD PTR packet_idx$7[rbp], eax -$LN10@stbi__pic_: - 00225 8b 45 24 mov eax, DWORD PTR num_packets$[rbp] - 00228 39 85 e4 00 00 - 00 cmp DWORD PTR packet_idx$7[rbp], eax - 0022e 0f 8d 9e 04 00 - 00 jge $LN9@stbi__pic_ - -; 7227 : stbi__pic_packet *packet = &packets[packet_idx]; - - 00234 48 63 85 e4 00 - 00 00 movsxd rax, DWORD PTR packet_idx$7[rbp] - 0023b 48 6b c0 03 imul rax, rax, 3 - 0023f 48 8d 84 05 88 - 00 00 00 lea rax, QWORD PTR packets$[rbp+rax] - 00247 48 89 85 08 01 - 00 00 mov QWORD PTR packet$8[rbp], rax - -; 7228 : stbi_uc *dest = result + y * width * 4; - - 0024e 8b 45 44 mov eax, DWORD PTR y$[rbp] - 00251 0f af 85 18 04 - 00 00 imul eax, DWORD PTR width$[rbp] - 00258 c1 e0 02 shl eax, 2 - 0025b 48 98 cdqe - 0025d 48 8b 8d 30 04 - 00 00 mov rcx, QWORD PTR result$[rbp] - 00264 48 03 c8 add rcx, rax - 00267 48 8b c1 mov rax, rcx - 0026a 48 89 85 28 01 - 00 00 mov QWORD PTR dest$9[rbp], rax - -; 7229 : -; 7230 : switch (packet->type) { - - 00271 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR packet$8[rbp] - 00278 0f b6 40 01 movzx eax, BYTE PTR [rax+1] - 0027c 88 85 d4 03 00 - 00 mov BYTE PTR tv152[rbp], al - 00282 80 bd d4 03 00 - 00 00 cmp BYTE PTR tv152[rbp], 0 - 00289 74 4e je SHORT $LN33@stbi__pic_ - 0028b 80 bd d4 03 00 - 00 01 cmp BYTE PTR tv152[rbp], 1 - 00292 0f 84 ae 00 00 - 00 je $LN35@stbi__pic_ - 00298 80 bd d4 03 00 - 00 02 cmp BYTE PTR tv152[rbp], 2 - 0029f 0f 84 d7 01 00 - 00 je $LN39@stbi__pic_ - -; 7231 : default: -; 7232 : return stbi__errpuc("bad format", - - 002a5 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0L@DMAPJJO@bad?5format@ - 002ac e8 00 00 00 00 call stbi__err - 002b1 85 c0 test eax, eax - 002b3 74 0d je SHORT $LN58@stbi__pic_ - 002b5 48 c7 85 d8 03 - 00 00 00 00 00 - 00 mov QWORD PTR tv156[rbp], 0 - 002c0 eb 0b jmp SHORT $LN59@stbi__pic_ -$LN58@stbi__pic_: - 002c2 48 c7 85 d8 03 - 00 00 00 00 00 - 00 mov QWORD PTR tv156[rbp], 0 -$LN59@stbi__pic_: - 002cd 48 8b 85 d8 03 - 00 00 mov rax, QWORD PTR tv156[rbp] - 002d4 e9 05 04 00 00 jmp $LN1@stbi__pic_ -$LN33@stbi__pic_: - -; 7233 : "packet has bad compression type"); -; 7234 : -; 7235 : case 0: { //uncompressed -; 7236 : int x; -; 7237 : -; 7238 : for (x = 0; x < width; ++x, dest += 4) - - 002d9 c7 85 44 01 00 - 00 00 00 00 00 mov DWORD PTR x$10[rbp], 0 - 002e3 eb 20 jmp SHORT $LN15@stbi__pic_ -$LN13@stbi__pic_: - 002e5 8b 85 44 01 00 - 00 mov eax, DWORD PTR x$10[rbp] - 002eb ff c0 inc eax - 002ed 89 85 44 01 00 - 00 mov DWORD PTR x$10[rbp], eax - 002f3 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR dest$9[rbp] - 002fa 48 83 c0 04 add rax, 4 - 002fe 48 89 85 28 01 - 00 00 mov QWORD PTR dest$9[rbp], rax -$LN15@stbi__pic_: - 00305 8b 85 18 04 00 - 00 mov eax, DWORD PTR width$[rbp] - 0030b 39 85 44 01 00 - 00 cmp DWORD PTR x$10[rbp], eax - 00311 7d 2e jge SHORT $LN14@stbi__pic_ - -; 7239 : if (!stbi__readval(s, packet->channel, dest)) - - 00313 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR packet$8[rbp] - 0031a 0f b6 40 02 movzx eax, BYTE PTR [rax+2] - 0031e 4c 8b 85 28 01 - 00 00 mov r8, QWORD PTR dest$9[rbp] - 00325 8b d0 mov edx, eax - 00327 48 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0032e e8 00 00 00 00 call stbi__readval - 00333 48 85 c0 test rax, rax - 00336 75 07 jne SHORT $LN34@stbi__pic_ - -; 7240 : return 0; - - 00338 33 c0 xor eax, eax - 0033a e9 9f 03 00 00 jmp $LN1@stbi__pic_ -$LN34@stbi__pic_: - 0033f eb a4 jmp SHORT $LN13@stbi__pic_ -$LN14@stbi__pic_: - -; 7241 : break; - - 00341 e9 87 03 00 00 jmp $LN11@stbi__pic_ -$LN35@stbi__pic_: - -; 7242 : } -; 7243 : -; 7244 : case 1: //Pure RLE -; 7245 : { -; 7246 : int left = width, i; - - 00346 8b 85 18 04 00 - 00 mov eax, DWORD PTR width$[rbp] - 0034c 89 85 64 01 00 - 00 mov DWORD PTR left$11[rbp], eax -$LN16@stbi__pic_: - -; 7247 : -; 7248 : while (left > 0) { - - 00352 83 bd 64 01 00 - 00 00 cmp DWORD PTR left$11[rbp], 0 - 00359 0f 8e 18 01 00 - 00 jle $LN17@stbi__pic_ - -; 7249 : stbi_uc count, value[4]; -; 7250 : -; 7251 : count = stbi__get8(s); - - 0035f 48 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00366 e8 00 00 00 00 call stbi__get8 - 0036b 88 85 a4 01 00 - 00 mov BYTE PTR count$13[rbp], al - -; 7252 : if (stbi__at_eof(s)) - - 00371 48 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00378 e8 00 00 00 00 call stbi__at_eof - 0037d 85 c0 test eax, eax - 0037f 74 34 je SHORT $LN36@stbi__pic_ - -; 7253 : return stbi__errpuc( - - 00381 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08GGMBIFE@bad?5file@ - 00388 e8 00 00 00 00 call stbi__err - 0038d 85 c0 test eax, eax - 0038f 74 0d je SHORT $LN60@stbi__pic_ - 00391 48 c7 85 d8 03 - 00 00 00 00 00 - 00 mov QWORD PTR tv176[rbp], 0 - 0039c eb 0b jmp SHORT $LN61@stbi__pic_ -$LN60@stbi__pic_: - 0039e 48 c7 85 d8 03 - 00 00 00 00 00 - 00 mov QWORD PTR tv176[rbp], 0 -$LN61@stbi__pic_: - 003a9 48 8b 85 d8 03 - 00 00 mov rax, QWORD PTR tv176[rbp] - 003b0 e9 29 03 00 00 jmp $LN1@stbi__pic_ -$LN36@stbi__pic_: - -; 7254 : "bad file", -; 7255 : "file too short (pure read count)"); -; 7256 : -; 7257 : if (count > left) - - 003b5 0f b6 85 a4 01 - 00 00 movzx eax, BYTE PTR count$13[rbp] - 003bc 3b 85 64 01 00 - 00 cmp eax, DWORD PTR left$11[rbp] - 003c2 7e 0d jle SHORT $LN37@stbi__pic_ - -; 7258 : count = (stbi_uc)left; - - 003c4 0f b6 85 64 01 - 00 00 movzx eax, BYTE PTR left$11[rbp] - 003cb 88 85 a4 01 00 - 00 mov BYTE PTR count$13[rbp], al -$LN37@stbi__pic_: - -; 7259 : -; 7260 : if (!stbi__readval(s, packet->channel, value)) - - 003d1 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR packet$8[rbp] - 003d8 0f b6 40 02 movzx eax, BYTE PTR [rax+2] - 003dc 4c 8d 85 c4 01 - 00 00 lea r8, QWORD PTR value$14[rbp] - 003e3 8b d0 mov edx, eax - 003e5 48 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 003ec e8 00 00 00 00 call stbi__readval - 003f1 48 85 c0 test rax, rax - 003f4 75 07 jne SHORT $LN38@stbi__pic_ - -; 7261 : return 0; - - 003f6 33 c0 xor eax, eax - 003f8 e9 e1 02 00 00 jmp $LN1@stbi__pic_ -$LN38@stbi__pic_: - -; 7262 : -; 7263 : for (i = 0; i < count; ++i, dest += 4) - - 003fd c7 85 84 01 00 - 00 00 00 00 00 mov DWORD PTR i$12[rbp], 0 - 00407 eb 20 jmp SHORT $LN20@stbi__pic_ -$LN18@stbi__pic_: - 00409 8b 85 84 01 00 - 00 mov eax, DWORD PTR i$12[rbp] - 0040f ff c0 inc eax - 00411 89 85 84 01 00 - 00 mov DWORD PTR i$12[rbp], eax - 00417 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR dest$9[rbp] - 0041e 48 83 c0 04 add rax, 4 - 00422 48 89 85 28 01 - 00 00 mov QWORD PTR dest$9[rbp], rax -$LN20@stbi__pic_: - 00429 0f b6 85 a4 01 - 00 00 movzx eax, BYTE PTR count$13[rbp] - 00430 39 85 84 01 00 - 00 cmp DWORD PTR i$12[rbp], eax - 00436 7d 23 jge SHORT $LN19@stbi__pic_ - -; 7264 : stbi__copyval(packet->channel, dest, value); - - 00438 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR packet$8[rbp] - 0043f 0f b6 40 02 movzx eax, BYTE PTR [rax+2] - 00443 4c 8d 85 c4 01 - 00 00 lea r8, QWORD PTR value$14[rbp] - 0044a 48 8b 95 28 01 - 00 00 mov rdx, QWORD PTR dest$9[rbp] - 00451 8b c8 mov ecx, eax - 00453 e8 00 00 00 00 call stbi__copyval - 00458 90 npad 1 - 00459 eb ae jmp SHORT $LN18@stbi__pic_ -$LN19@stbi__pic_: - -; 7265 : left -= count; - - 0045b 0f b6 85 a4 01 - 00 00 movzx eax, BYTE PTR count$13[rbp] - 00462 8b 8d 64 01 00 - 00 mov ecx, DWORD PTR left$11[rbp] - 00468 2b c8 sub ecx, eax - 0046a 8b c1 mov eax, ecx - 0046c 89 85 64 01 00 - 00 mov DWORD PTR left$11[rbp], eax - -; 7266 : } - - 00472 e9 db fe ff ff jmp $LN16@stbi__pic_ -$LN17@stbi__pic_: - -; 7267 : } break; - - 00477 e9 51 02 00 00 jmp $LN11@stbi__pic_ -$LN39@stbi__pic_: - -; 7268 : -; 7269 : case 2: { //Mixed RLE -; 7270 : int left = width; - - 0047c 8b 85 18 04 00 - 00 mov eax, DWORD PTR width$[rbp] - 00482 89 85 e4 01 00 - 00 mov DWORD PTR left$15[rbp], eax -$LN21@stbi__pic_: - -; 7271 : while (left > 0) { - - 00488 83 bd e4 01 00 - 00 00 cmp DWORD PTR left$15[rbp], 0 - 0048f 0f 8e 38 02 00 - 00 jle $LN22@stbi__pic_ - -; 7272 : int count = stbi__get8(s), i; - - 00495 48 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0049c e8 00 00 00 00 call stbi__get8 - 004a1 0f b6 c0 movzx eax, al - 004a4 89 85 04 02 00 - 00 mov DWORD PTR count$16[rbp], eax - -; 7273 : if (stbi__at_eof(s)) - - 004aa 48 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 004b1 e8 00 00 00 00 call stbi__at_eof - 004b6 85 c0 test eax, eax - 004b8 74 34 je SHORT $LN40@stbi__pic_ - -; 7274 : return stbi__errpuc( - - 004ba 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08GGMBIFE@bad?5file@ - 004c1 e8 00 00 00 00 call stbi__err - 004c6 85 c0 test eax, eax - 004c8 74 0d je SHORT $LN62@stbi__pic_ - 004ca 48 c7 85 d8 03 - 00 00 00 00 00 - 00 mov QWORD PTR tv207[rbp], 0 - 004d5 eb 0b jmp SHORT $LN63@stbi__pic_ -$LN62@stbi__pic_: - 004d7 48 c7 85 d8 03 - 00 00 00 00 00 - 00 mov QWORD PTR tv207[rbp], 0 -$LN63@stbi__pic_: - 004e2 48 8b 85 d8 03 - 00 00 mov rax, QWORD PTR tv207[rbp] - 004e9 e9 f0 01 00 00 jmp $LN1@stbi__pic_ -$LN40@stbi__pic_: - -; 7275 : "bad file", -; 7276 : "file too short (mixed read count)"); -; 7277 : -; 7278 : if (count >= 128) { // Repeated - - 004ee 81 bd 04 02 00 - 00 80 00 00 00 cmp DWORD PTR count$16[rbp], 128 ; 00000080H - 004f8 0f 8c ff 00 00 - 00 jl $LN41@stbi__pic_ - -; 7279 : stbi_uc value[4]; -; 7280 : -; 7281 : if (count == 128) - - 004fe 81 bd 04 02 00 - 00 80 00 00 00 cmp DWORD PTR count$16[rbp], 128 ; 00000080H - 00508 75 14 jne SHORT $LN43@stbi__pic_ - -; 7282 : count = stbi__get16be(s); - - 0050a 48 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00511 e8 00 00 00 00 call stbi__get16be - 00516 89 85 04 02 00 - 00 mov DWORD PTR count$16[rbp], eax - 0051c eb 0f jmp SHORT $LN44@stbi__pic_ -$LN43@stbi__pic_: - -; 7283 : else -; 7284 : count -= 127; - - 0051e 8b 85 04 02 00 - 00 mov eax, DWORD PTR count$16[rbp] - 00524 83 e8 7f sub eax, 127 ; 0000007fH - 00527 89 85 04 02 00 - 00 mov DWORD PTR count$16[rbp], eax -$LN44@stbi__pic_: - -; 7285 : if (count > left) - - 0052d 8b 85 e4 01 00 - 00 mov eax, DWORD PTR left$15[rbp] - 00533 39 85 04 02 00 - 00 cmp DWORD PTR count$16[rbp], eax - 00539 7e 34 jle SHORT $LN45@stbi__pic_ - -; 7286 : return stbi__errpuc("bad file", - - 0053b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08GGMBIFE@bad?5file@ - 00542 e8 00 00 00 00 call stbi__err - 00547 85 c0 test eax, eax - 00549 74 0d je SHORT $LN64@stbi__pic_ - 0054b 48 c7 85 d8 03 - 00 00 00 00 00 - 00 mov QWORD PTR tv217[rbp], 0 - 00556 eb 0b jmp SHORT $LN65@stbi__pic_ -$LN64@stbi__pic_: - 00558 48 c7 85 d8 03 - 00 00 00 00 00 - 00 mov QWORD PTR tv217[rbp], 0 -$LN65@stbi__pic_: - 00563 48 8b 85 d8 03 - 00 00 mov rax, QWORD PTR tv217[rbp] - 0056a e9 6f 01 00 00 jmp $LN1@stbi__pic_ -$LN45@stbi__pic_: - -; 7287 : "scanline overrun"); -; 7288 : -; 7289 : if (!stbi__readval(s, packet->channel, value)) - - 0056f 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR packet$8[rbp] - 00576 0f b6 40 02 movzx eax, BYTE PTR [rax+2] - 0057a 4c 8d 85 44 02 - 00 00 lea r8, QWORD PTR value$18[rbp] - 00581 8b d0 mov edx, eax - 00583 48 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0058a e8 00 00 00 00 call stbi__readval - 0058f 48 85 c0 test rax, rax - 00592 75 07 jne SHORT $LN46@stbi__pic_ - -; 7290 : return 0; - - 00594 33 c0 xor eax, eax - 00596 e9 43 01 00 00 jmp $LN1@stbi__pic_ -$LN46@stbi__pic_: - -; 7291 : -; 7292 : for (i = 0; i < count; ++i, dest += 4) - - 0059b c7 85 24 02 00 - 00 00 00 00 00 mov DWORD PTR i$17[rbp], 0 - 005a5 eb 20 jmp SHORT $LN25@stbi__pic_ -$LN23@stbi__pic_: - 005a7 8b 85 24 02 00 - 00 mov eax, DWORD PTR i$17[rbp] - 005ad ff c0 inc eax - 005af 89 85 24 02 00 - 00 mov DWORD PTR i$17[rbp], eax - 005b5 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR dest$9[rbp] - 005bc 48 83 c0 04 add rax, 4 - 005c0 48 89 85 28 01 - 00 00 mov QWORD PTR dest$9[rbp], rax -$LN25@stbi__pic_: - 005c7 8b 85 04 02 00 - 00 mov eax, DWORD PTR count$16[rbp] - 005cd 39 85 24 02 00 - 00 cmp DWORD PTR i$17[rbp], eax - 005d3 7d 23 jge SHORT $LN24@stbi__pic_ - -; 7293 : stbi__copyval(packet->channel, dest, value); - - 005d5 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR packet$8[rbp] - 005dc 0f b6 40 02 movzx eax, BYTE PTR [rax+2] - 005e0 4c 8d 85 44 02 - 00 00 lea r8, QWORD PTR value$18[rbp] - 005e7 48 8b 95 28 01 - 00 00 mov rdx, QWORD PTR dest$9[rbp] - 005ee 8b c8 mov ecx, eax - 005f0 e8 00 00 00 00 call stbi__copyval - 005f5 90 npad 1 - 005f6 eb af jmp SHORT $LN23@stbi__pic_ -$LN24@stbi__pic_: - -; 7294 : } else { // Raw - - 005f8 e9 b5 00 00 00 jmp $LN42@stbi__pic_ -$LN41@stbi__pic_: - -; 7295 : ++count; - - 005fd 8b 85 04 02 00 - 00 mov eax, DWORD PTR count$16[rbp] - 00603 ff c0 inc eax - 00605 89 85 04 02 00 - 00 mov DWORD PTR count$16[rbp], eax - -; 7296 : if (count > left) - - 0060b 8b 85 e4 01 00 - 00 mov eax, DWORD PTR left$15[rbp] - 00611 39 85 04 02 00 - 00 cmp DWORD PTR count$16[rbp], eax - 00617 7e 34 jle SHORT $LN47@stbi__pic_ - -; 7297 : return stbi__errpuc("bad file", - - 00619 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08GGMBIFE@bad?5file@ - 00620 e8 00 00 00 00 call stbi__err - 00625 85 c0 test eax, eax - 00627 74 0d je SHORT $LN66@stbi__pic_ - 00629 48 c7 85 d8 03 - 00 00 00 00 00 - 00 mov QWORD PTR tv238[rbp], 0 - 00634 eb 0b jmp SHORT $LN67@stbi__pic_ -$LN66@stbi__pic_: - 00636 48 c7 85 d8 03 - 00 00 00 00 00 - 00 mov QWORD PTR tv238[rbp], 0 -$LN67@stbi__pic_: - 00641 48 8b 85 d8 03 - 00 00 mov rax, QWORD PTR tv238[rbp] - 00648 e9 91 00 00 00 jmp $LN1@stbi__pic_ -$LN47@stbi__pic_: - -; 7298 : "scanline overrun"); -; 7299 : -; 7300 : for (i = 0; i < count; ++i, dest += 4) - - 0064d c7 85 24 02 00 - 00 00 00 00 00 mov DWORD PTR i$17[rbp], 0 - 00657 eb 20 jmp SHORT $LN28@stbi__pic_ -$LN26@stbi__pic_: - 00659 8b 85 24 02 00 - 00 mov eax, DWORD PTR i$17[rbp] - 0065f ff c0 inc eax - 00661 89 85 24 02 00 - 00 mov DWORD PTR i$17[rbp], eax - 00667 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR dest$9[rbp] - 0066e 48 83 c0 04 add rax, 4 - 00672 48 89 85 28 01 - 00 00 mov QWORD PTR dest$9[rbp], rax -$LN28@stbi__pic_: - 00679 8b 85 04 02 00 - 00 mov eax, DWORD PTR count$16[rbp] - 0067f 39 85 24 02 00 - 00 cmp DWORD PTR i$17[rbp], eax - 00685 7d 2b jge SHORT $LN27@stbi__pic_ - -; 7301 : if (!stbi__readval(s, packet->channel, - - 00687 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR packet$8[rbp] - 0068e 0f b6 40 02 movzx eax, BYTE PTR [rax+2] - 00692 4c 8b 85 28 01 - 00 00 mov r8, QWORD PTR dest$9[rbp] - 00699 8b d0 mov edx, eax - 0069b 48 8b 8d 10 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 006a2 e8 00 00 00 00 call stbi__readval - 006a7 48 85 c0 test rax, rax - 006aa 75 04 jne SHORT $LN48@stbi__pic_ - -; 7302 : dest)) -; 7303 : return 0; - - 006ac 33 c0 xor eax, eax - 006ae eb 2e jmp SHORT $LN1@stbi__pic_ -$LN48@stbi__pic_: - 006b0 eb a7 jmp SHORT $LN26@stbi__pic_ -$LN27@stbi__pic_: -$LN42@stbi__pic_: - -; 7304 : } -; 7305 : left -= count; - - 006b2 8b 85 04 02 00 - 00 mov eax, DWORD PTR count$16[rbp] - 006b8 8b 8d e4 01 00 - 00 mov ecx, DWORD PTR left$15[rbp] - 006be 2b c8 sub ecx, eax - 006c0 8b c1 mov eax, ecx - 006c2 89 85 e4 01 00 - 00 mov DWORD PTR left$15[rbp], eax - -; 7306 : } - - 006c8 e9 bb fd ff ff jmp $LN21@stbi__pic_ -$LN22@stbi__pic_: -$LN11@stbi__pic_: - -; 7307 : break; -; 7308 : } -; 7309 : } -; 7310 : } - - 006cd e9 45 fb ff ff jmp $LN8@stbi__pic_ -$LN9@stbi__pic_: - -; 7311 : } - - 006d2 e9 1d fb ff ff jmp $LN5@stbi__pic_ -$LN6@stbi__pic_: - -; 7312 : -; 7313 : return result; - - 006d7 48 8b 85 30 04 - 00 00 mov rax, QWORD PTR result$[rbp] -$LN1@stbi__pic_: - -; 7314 : } - - 006de 48 8b f8 mov rdi, rax - 006e1 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 006e5 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__pic_load_core$rtcFrameData - 006ec e8 00 00 00 00 call _RTC_CheckStackVars - 006f1 48 8b c7 mov rax, rdi - 006f4 48 8b 8d e0 03 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 006fb 48 33 cd xor rcx, rbp - 006fe e8 00 00 00 00 call __security_check_cookie - 00703 48 8d a5 f8 03 - 00 00 lea rsp, QWORD PTR [rbp+1016] - 0070a 5f pop rdi - 0070b 5d pop rbp - 0070c c3 ret 0 -stbi__pic_load_core ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__copyval -_TEXT SEGMENT -mask$ = 4 -i$ = 36 -channel$ = 288 -dest$ = 296 -src$ = 304 -stbi__copyval PROC ; COMDAT - -; 7184 : { - - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 0000e 55 push rbp - 0000f 57 push rdi - 00010 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00028 90 npad 1 - -; 7185 : int mask = 0x80, i; - - 00029 c7 45 04 80 00 - 00 00 mov DWORD PTR mask$[rbp], 128 ; 00000080H - -; 7186 : -; 7187 : for (i = 0; i < 4; ++i, mask >>= 1) - - 00030 c7 45 24 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00037 eb 10 jmp SHORT $LN4@stbi__copy -$LN2@stbi__copy: - 00039 8b 45 24 mov eax, DWORD PTR i$[rbp] - 0003c ff c0 inc eax - 0003e 89 45 24 mov DWORD PTR i$[rbp], eax - 00041 8b 45 04 mov eax, DWORD PTR mask$[rbp] - 00044 d1 f8 sar eax, 1 - 00046 89 45 04 mov DWORD PTR mask$[rbp], eax -$LN4@stbi__copy: - 00049 83 7d 24 04 cmp DWORD PTR i$[rbp], 4 - 0004d 7d 31 jge SHORT $LN3@stbi__copy - -; 7188 : if (channel & mask) - - 0004f 8b 45 04 mov eax, DWORD PTR mask$[rbp] - 00052 8b 8d 20 01 00 - 00 mov ecx, DWORD PTR channel$[rbp] - 00058 23 c8 and ecx, eax - 0005a 8b c1 mov eax, ecx - 0005c 85 c0 test eax, eax - 0005e 74 1e je SHORT $LN5@stbi__copy - -; 7189 : dest[i] = src[i]; - - 00060 48 63 45 24 movsxd rax, DWORD PTR i$[rbp] - 00064 48 63 4d 24 movsxd rcx, DWORD PTR i$[rbp] - 00068 48 8b 95 28 01 - 00 00 mov rdx, QWORD PTR dest$[rbp] - 0006f 4c 8b 85 30 01 - 00 00 mov r8, QWORD PTR src$[rbp] - 00076 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 0007b 88 04 0a mov BYTE PTR [rdx+rcx], al -$LN5@stbi__copy: - 0007e eb b9 jmp SHORT $LN2@stbi__copy -$LN3@stbi__copy: - -; 7190 : } - - 00080 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 00087 5f pop rdi - 00088 5d pop rbp - 00089 c3 ret 0 -stbi__copyval ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__readval -_TEXT SEGMENT -mask$ = 4 -i$ = 36 -tv75 = 248 -s$ = 288 -channel$ = 296 -dest$ = 304 -stbi__readval PROC ; COMDAT - -; 7169 : { - - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000e 55 push rbp - 0000f 57 push rdi - 00010 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00028 90 npad 1 - -; 7170 : int mask = 0x80, i; - - 00029 c7 45 04 80 00 - 00 00 mov DWORD PTR mask$[rbp], 128 ; 00000080H - -; 7171 : -; 7172 : for (i = 0; i < 4; ++i, mask >>= 1) { - - 00030 c7 45 24 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00037 eb 10 jmp SHORT $LN4@stbi__read -$LN2@stbi__read: - 00039 8b 45 24 mov eax, DWORD PTR i$[rbp] - 0003c ff c0 inc eax - 0003e 89 45 24 mov DWORD PTR i$[rbp], eax - 00041 8b 45 04 mov eax, DWORD PTR mask$[rbp] - 00044 d1 f8 sar eax, 1 - 00046 89 45 04 mov DWORD PTR mask$[rbp], eax -$LN4@stbi__read: - 00049 83 7d 24 04 cmp DWORD PTR i$[rbp], 4 - 0004d 7d 71 jge SHORT $LN3@stbi__read - -; 7173 : if (channel & mask) { - - 0004f 8b 45 04 mov eax, DWORD PTR mask$[rbp] - 00052 8b 8d 28 01 00 - 00 mov ecx, DWORD PTR channel$[rbp] - 00058 23 c8 and ecx, eax - 0005a 8b c1 mov eax, ecx - 0005c 85 c0 test eax, eax - 0005e 74 5b je SHORT $LN5@stbi__read - -; 7174 : if (stbi__at_eof(s)) - - 00060 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00067 e8 00 00 00 00 call stbi__at_eof - 0006c 85 c0 test eax, eax - 0006e 74 31 je SHORT $LN6@stbi__read - -; 7175 : return stbi__errpuc("bad file", "PIC file too short"); - - 00070 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08GGMBIFE@bad?5file@ - 00077 e8 00 00 00 00 call stbi__err - 0007c 85 c0 test eax, eax - 0007e 74 0d je SHORT $LN8@stbi__read - 00080 48 c7 85 f8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv75[rbp], 0 - 0008b eb 0b jmp SHORT $LN9@stbi__read -$LN8@stbi__read: - 0008d 48 c7 85 f8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv75[rbp], 0 -$LN9@stbi__read: - 00098 48 8b 85 f8 00 - 00 00 mov rax, QWORD PTR tv75[rbp] - 0009f eb 26 jmp SHORT $LN1@stbi__read -$LN6@stbi__read: - -; 7176 : dest[i] = stbi__get8(s); - - 000a1 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000a8 e8 00 00 00 00 call stbi__get8 - 000ad 48 63 4d 24 movsxd rcx, DWORD PTR i$[rbp] - 000b1 48 8b 95 30 01 - 00 00 mov rdx, QWORD PTR dest$[rbp] - 000b8 88 04 0a mov BYTE PTR [rdx+rcx], al -$LN5@stbi__read: - -; 7177 : } -; 7178 : } - - 000bb e9 79 ff ff ff jmp $LN2@stbi__read -$LN3@stbi__read: - -; 7179 : -; 7180 : return dest; - - 000c0 48 8b 85 30 01 - 00 00 mov rax, QWORD PTR dest$[rbp] -$LN1@stbi__read: - -; 7181 : } - - 000c7 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000ce 5f pop rdi - 000cf 5d pop rbp - 000d0 c3 ret 0 -stbi__readval ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__pic_test_core -_TEXT SEGMENT -i$ = 4 -s$ = 256 -stbi__pic_test_core PROC ; COMDAT - -; 7149 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 7150 : int i; -; 7151 : -; 7152 : if (!stbi__pic_is4(s, "\x53\x80\xF6\x34")) - - 00020 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_04KBFEPHFH@S?$IA?v4@ - 00027 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0002e e8 00 00 00 00 call stbi__pic_is4 - 00033 85 c0 test eax, eax - 00035 75 04 jne SHORT $LN5@stbi__pic_ - -; 7153 : return 0; - - 00037 33 c0 xor eax, eax - 00039 eb 46 jmp SHORT $LN1@stbi__pic_ -$LN5@stbi__pic_: - -; 7154 : -; 7155 : for (i = 0; i < 84; ++i) - - 0003b c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00042 eb 08 jmp SHORT $LN4@stbi__pic_ -$LN2@stbi__pic_: - 00044 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00047 ff c0 inc eax - 00049 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__pic_: - 0004c 83 7d 04 54 cmp DWORD PTR i$[rbp], 84 ; 00000054H - 00050 7d 0f jge SHORT $LN3@stbi__pic_ - -; 7156 : stbi__get8(s); - - 00052 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00059 e8 00 00 00 00 call stbi__get8 - 0005e 90 npad 1 - 0005f eb e3 jmp SHORT $LN2@stbi__pic_ -$LN3@stbi__pic_: - -; 7157 : -; 7158 : if (!stbi__pic_is4(s, "PICT")) - - 00061 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_04ELNJHLFH@PICT@ - 00068 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0006f e8 00 00 00 00 call stbi__pic_is4 - 00074 85 c0 test eax, eax - 00076 75 04 jne SHORT $LN6@stbi__pic_ - -; 7159 : return 0; - - 00078 33 c0 xor eax, eax - 0007a eb 05 jmp SHORT $LN1@stbi__pic_ -$LN6@stbi__pic_: - -; 7160 : -; 7161 : return 1; - - 0007c b8 01 00 00 00 mov eax, 1 -$LN1@stbi__pic_: - -; 7162 : } - - 00081 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00088 5f pop rdi - 00089 5d pop rbp - 0008a c3 ret 0 -stbi__pic_test_core ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__pic_is4 -_TEXT SEGMENT -i$ = 4 -s$ = 256 -str$ = 264 -stbi__pic_is4 PROC ; COMDAT - -; 7139 : { - - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 - -; 7140 : int i; -; 7141 : for (i = 0; i < 4; ++i) - - 00025 c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 0002c eb 08 jmp SHORT $LN4@stbi__pic_ -$LN2@stbi__pic_: - 0002e 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00031 ff c0 inc eax - 00033 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__pic_: - 00036 83 7d 04 04 cmp DWORD PTR i$[rbp], 4 - 0003a 7d 28 jge SHORT $LN3@stbi__pic_ - -; 7142 : if (stbi__get8(s) != (stbi_uc)str[i]) - - 0003c 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00043 e8 00 00 00 00 call stbi__get8 - 00048 0f b6 c0 movzx eax, al - 0004b 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] - 0004f 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR str$[rbp] - 00056 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 0005a 3b c1 cmp eax, ecx - 0005c 74 04 je SHORT $LN5@stbi__pic_ - -; 7143 : return 0; - - 0005e 33 c0 xor eax, eax - 00060 eb 07 jmp SHORT $LN1@stbi__pic_ -$LN5@stbi__pic_: - 00062 eb ca jmp SHORT $LN2@stbi__pic_ -$LN3@stbi__pic_: - -; 7144 : -; 7145 : return 1; - - 00064 b8 01 00 00 00 mov eax, 1 -$LN1@stbi__pic_: - -; 7146 : } - - 00069 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00070 5f pop rdi - 00071 5d pop rbp - 00072 c3 ret 0 -stbi__pic_is4 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__psd_decode_rle -_TEXT SEGMENT -count$ = 4 -nleft$ = 36 -len$ = 68 -val$1 = 100 -s$ = 352 -p$ = 360 -pixelCount$ = 368 -stbi__psd_decode_rle PROC ; COMDAT - -; 6881 : { - - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec 68 01 - 00 00 sub rsp, 360 ; 00000168H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 90 npad 1 - -; 6882 : int count, nleft, len; -; 6883 : -; 6884 : count = 0; - - 0002a c7 45 04 00 00 - 00 00 mov DWORD PTR count$[rbp], 0 -$LN2@stbi__psd_: - -; 6885 : while ((nleft = pixelCount - count) > 0) { - - 00031 8b 45 04 mov eax, DWORD PTR count$[rbp] - 00034 8b 8d 70 01 00 - 00 mov ecx, DWORD PTR pixelCount$[rbp] - 0003a 2b c8 sub ecx, eax - 0003c 8b c1 mov eax, ecx - 0003e 89 45 24 mov DWORD PTR nleft$[rbp], eax - 00041 83 7d 24 00 cmp DWORD PTR nleft$[rbp], 0 - 00045 0f 8e f6 00 00 - 00 jle $LN3@stbi__psd_ - -; 6886 : len = stbi__get8(s); - - 0004b 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00052 e8 00 00 00 00 call stbi__get8 - 00057 0f b6 c0 movzx eax, al - 0005a 89 45 44 mov DWORD PTR len$[rbp], eax - -; 6887 : if (len == 128) { - - 0005d 81 7d 44 80 00 - 00 00 cmp DWORD PTR len$[rbp], 128 ; 00000080H - 00064 75 05 jne SHORT $LN8@stbi__psd_ - 00066 e9 d1 00 00 00 jmp $LN9@stbi__psd_ -$LN8@stbi__psd_: - -; 6888 : // No-op. -; 6889 : } else if (len < 128) { - - 0006b 81 7d 44 80 00 - 00 00 cmp DWORD PTR len$[rbp], 128 ; 00000080H - 00072 7d 5d jge SHORT $LN10@stbi__psd_ - -; 6890 : // Copy next len+1 bytes literally. -; 6891 : len++; - - 00074 8b 45 44 mov eax, DWORD PTR len$[rbp] - 00077 ff c0 inc eax - 00079 89 45 44 mov DWORD PTR len$[rbp], eax - -; 6892 : if (len > nleft) - - 0007c 8b 45 24 mov eax, DWORD PTR nleft$[rbp] - 0007f 39 45 44 cmp DWORD PTR len$[rbp], eax - 00082 7e 07 jle SHORT $LN12@stbi__psd_ - -; 6893 : return 0; // corrupt data - - 00084 33 c0 xor eax, eax - 00086 e9 bb 00 00 00 jmp $LN1@stbi__psd_ -$LN12@stbi__psd_: - -; 6894 : count += len; - - 0008b 8b 45 44 mov eax, DWORD PTR len$[rbp] - 0008e 8b 4d 04 mov ecx, DWORD PTR count$[rbp] - 00091 03 c8 add ecx, eax - 00093 8b c1 mov eax, ecx - 00095 89 45 04 mov DWORD PTR count$[rbp], eax -$LN4@stbi__psd_: - -; 6895 : while (len) { - - 00098 83 7d 44 00 cmp DWORD PTR len$[rbp], 0 - 0009c 74 31 je SHORT $LN5@stbi__psd_ - -; 6896 : *p = stbi__get8(s); - - 0009e 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000a5 e8 00 00 00 00 call stbi__get8 - 000aa 48 8b 8d 68 01 - 00 00 mov rcx, QWORD PTR p$[rbp] - 000b1 88 01 mov BYTE PTR [rcx], al - -; 6897 : p += 4; - - 000b3 48 8b 85 68 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 000ba 48 83 c0 04 add rax, 4 - 000be 48 89 85 68 01 - 00 00 mov QWORD PTR p$[rbp], rax - -; 6898 : len--; - - 000c5 8b 45 44 mov eax, DWORD PTR len$[rbp] - 000c8 ff c8 dec eax - 000ca 89 45 44 mov DWORD PTR len$[rbp], eax - -; 6899 : } - - 000cd eb c9 jmp SHORT $LN4@stbi__psd_ -$LN5@stbi__psd_: - -; 6900 : } else if (len > 128) { - - 000cf eb 6b jmp SHORT $LN11@stbi__psd_ -$LN10@stbi__psd_: - 000d1 81 7d 44 80 00 - 00 00 cmp DWORD PTR len$[rbp], 128 ; 00000080H - 000d8 7e 62 jle SHORT $LN13@stbi__psd_ - -; 6901 : stbi_uc val; -; 6902 : // Next -len+1 bytes in the dest are replicated from next source byte. -; 6903 : // (Interpret len as a negative 8-bit int.) -; 6904 : len = 257 - len; - - 000da b8 01 01 00 00 mov eax, 257 ; 00000101H - 000df 2b 45 44 sub eax, DWORD PTR len$[rbp] - 000e2 89 45 44 mov DWORD PTR len$[rbp], eax - -; 6905 : if (len > nleft) - - 000e5 8b 45 24 mov eax, DWORD PTR nleft$[rbp] - 000e8 39 45 44 cmp DWORD PTR len$[rbp], eax - 000eb 7e 04 jle SHORT $LN14@stbi__psd_ - -; 6906 : return 0; // corrupt data - - 000ed 33 c0 xor eax, eax - 000ef eb 55 jmp SHORT $LN1@stbi__psd_ -$LN14@stbi__psd_: - -; 6907 : val = stbi__get8(s); - - 000f1 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000f8 e8 00 00 00 00 call stbi__get8 - 000fd 88 45 64 mov BYTE PTR val$1[rbp], al - -; 6908 : count += len; - - 00100 8b 45 44 mov eax, DWORD PTR len$[rbp] - 00103 8b 4d 04 mov ecx, DWORD PTR count$[rbp] - 00106 03 c8 add ecx, eax - 00108 8b c1 mov eax, ecx - 0010a 89 45 04 mov DWORD PTR count$[rbp], eax -$LN6@stbi__psd_: - -; 6909 : while (len) { - - 0010d 83 7d 44 00 cmp DWORD PTR len$[rbp], 0 - 00111 74 29 je SHORT $LN7@stbi__psd_ - -; 6910 : *p = val; - - 00113 48 8b 85 68 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 0011a 0f b6 4d 64 movzx ecx, BYTE PTR val$1[rbp] - 0011e 88 08 mov BYTE PTR [rax], cl - -; 6911 : p += 4; - - 00120 48 8b 85 68 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 00127 48 83 c0 04 add rax, 4 - 0012b 48 89 85 68 01 - 00 00 mov QWORD PTR p$[rbp], rax - -; 6912 : len--; - - 00132 8b 45 44 mov eax, DWORD PTR len$[rbp] - 00135 ff c8 dec eax - 00137 89 45 44 mov DWORD PTR len$[rbp], eax - -; 6913 : } - - 0013a eb d1 jmp SHORT $LN6@stbi__psd_ -$LN7@stbi__psd_: -$LN13@stbi__psd_: -$LN11@stbi__psd_: -$LN9@stbi__psd_: - -; 6914 : } -; 6915 : } - - 0013c e9 f0 fe ff ff jmp $LN2@stbi__psd_ -$LN3@stbi__psd_: - -; 6916 : -; 6917 : return 1; - - 00141 b8 01 00 00 00 mov eax, 1 -$LN1@stbi__psd_: - -; 6918 : } - - 00146 48 8d a5 48 01 - 00 00 lea rsp, QWORD PTR [rbp+328] - 0014d 5f pop rdi - 0014e 5d pop rbp - 0014f c3 ret 0 -stbi__psd_decode_rle ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__tga_read_rgb16 -_TEXT SEGMENT -px$ = 4 -fiveBitMask$ = 36 -r$ = 68 -g$ = 100 -b$ = 132 -s$ = 384 -out$ = 392 -stbi__tga_read_rgb16 PROC ; COMDAT - -; 6650 : { - - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 88 01 - 00 00 sub rsp, 392 ; 00000188H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 - -; 6651 : stbi__uint16 px = (stbi__uint16)stbi__get16le(s); - - 00025 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0002c e8 00 00 00 00 call stbi__get16le - 00031 66 89 45 04 mov WORD PTR px$[rbp], ax - -; 6652 : stbi__uint16 fiveBitMask = 31; - - 00035 b8 1f 00 00 00 mov eax, 31 - 0003a 66 89 45 24 mov WORD PTR fiveBitMask$[rbp], ax - -; 6653 : // we have 3 channels with 5bits each -; 6654 : int r = (px >> 10) & fiveBitMask; - - 0003e 0f b7 45 04 movzx eax, WORD PTR px$[rbp] - 00042 c1 f8 0a sar eax, 10 - 00045 0f b7 4d 24 movzx ecx, WORD PTR fiveBitMask$[rbp] - 00049 23 c1 and eax, ecx - 0004b 89 45 44 mov DWORD PTR r$[rbp], eax - -; 6655 : int g = (px >> 5) & fiveBitMask; - - 0004e 0f b7 45 04 movzx eax, WORD PTR px$[rbp] - 00052 c1 f8 05 sar eax, 5 - 00055 0f b7 4d 24 movzx ecx, WORD PTR fiveBitMask$[rbp] - 00059 23 c1 and eax, ecx - 0005b 89 45 64 mov DWORD PTR g$[rbp], eax - -; 6656 : int b = px & fiveBitMask; - - 0005e 0f b7 45 04 movzx eax, WORD PTR px$[rbp] - 00062 0f b7 4d 24 movzx ecx, WORD PTR fiveBitMask$[rbp] - 00066 23 c1 and eax, ecx - 00068 89 85 84 00 00 - 00 mov DWORD PTR b$[rbp], eax - -; 6657 : // Note that this saves the data in RGB(A) order, so it doesn't need to be swapped later -; 6658 : out[0] = (stbi_uc)((r * 255) / 31); - - 0006e 69 45 44 ff 00 - 00 00 imul eax, DWORD PTR r$[rbp], 255 ; 000000ffH - 00075 99 cdq - 00076 b9 1f 00 00 00 mov ecx, 31 - 0007b f7 f9 idiv ecx - 0007d b9 01 00 00 00 mov ecx, 1 - 00082 48 6b c9 00 imul rcx, rcx, 0 - 00086 48 8b 95 88 01 - 00 00 mov rdx, QWORD PTR out$[rbp] - 0008d 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 6659 : out[1] = (stbi_uc)((g * 255) / 31); - - 00090 69 45 64 ff 00 - 00 00 imul eax, DWORD PTR g$[rbp], 255 ; 000000ffH - 00097 99 cdq - 00098 b9 1f 00 00 00 mov ecx, 31 - 0009d f7 f9 idiv ecx - 0009f b9 01 00 00 00 mov ecx, 1 - 000a4 48 6b c9 01 imul rcx, rcx, 1 - 000a8 48 8b 95 88 01 - 00 00 mov rdx, QWORD PTR out$[rbp] - 000af 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 6660 : out[2] = (stbi_uc)((b * 255) / 31); - - 000b2 69 85 84 00 00 - 00 ff 00 00 00 imul eax, DWORD PTR b$[rbp], 255 ; 000000ffH - 000bc 99 cdq - 000bd b9 1f 00 00 00 mov ecx, 31 - 000c2 f7 f9 idiv ecx - 000c4 b9 01 00 00 00 mov ecx, 1 - 000c9 48 6b c9 02 imul rcx, rcx, 2 - 000cd 48 8b 95 88 01 - 00 00 mov rdx, QWORD PTR out$[rbp] - 000d4 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 6661 : -; 6662 : // some people claim that the most significant bit might be used for alpha -; 6663 : // (possibly if an alpha-bit is set in the "image descriptor byte") -; 6664 : // but that only made 16bit test images completely translucent.. -; 6665 : // so let's treat all 15 and 16bit TGAs as RGB with no alpha. -; 6666 : } - - 000d7 48 8d a5 68 01 - 00 00 lea rsp, QWORD PTR [rbp+360] - 000de 5f pop rdi - 000df 5d pop rbp - 000e0 c3 ret 0 -stbi__tga_read_rgb16 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__tga_get_comp -_TEXT SEGMENT -tv65 = 192 -bits_per_pixel$ = 240 -is_grey$ = 248 -is_rgb16$ = 256 -stbi__tga_get_comp PROC ; COMDAT - -; 6516 : { - - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00009 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 0000d 55 push rbp - 0000e 57 push rdi - 0000f 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 00016 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00027 90 npad 1 - -; 6517 : // only RGB or RGBA (incl. 16bit) or grey allowed -; 6518 : if (is_rgb16) - - 00028 48 83 bd 00 01 - 00 00 00 cmp QWORD PTR is_rgb16$[rbp], 0 - 00030 74 0d je SHORT $LN4@stbi__tga_ - -; 6519 : *is_rgb16 = 0; - - 00032 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR is_rgb16$[rbp] - 00039 c7 00 00 00 00 - 00 mov DWORD PTR [rax], 0 -$LN4@stbi__tga_: - -; 6520 : switch (bits_per_pixel) { - - 0003f 8b 85 f0 00 00 - 00 mov eax, DWORD PTR bits_per_pixel$[rbp] - 00045 89 85 c0 00 00 - 00 mov DWORD PTR tv65[rbp], eax - 0004b 83 bd c0 00 00 - 00 08 cmp DWORD PTR tv65[rbp], 8 - 00052 74 26 je SHORT $LN5@stbi__tga_ - 00054 83 bd c0 00 00 - 00 0f cmp DWORD PTR tv65[rbp], 15 - 0005b 74 34 je SHORT $LN8@stbi__tga_ - 0005d 83 bd c0 00 00 - 00 10 cmp DWORD PTR tv65[rbp], 16 - 00064 74 1b je SHORT $LN6@stbi__tga_ - 00066 83 bd c0 00 00 - 00 18 cmp DWORD PTR tv65[rbp], 24 - 0006d 74 40 je SHORT $LN10@stbi__tga_ - 0006f 83 bd c0 00 00 - 00 20 cmp DWORD PTR tv65[rbp], 32 ; 00000020H - 00076 74 37 je SHORT $LN11@stbi__tga_ - 00078 eb 46 jmp SHORT $LN12@stbi__tga_ -$LN5@stbi__tga_: - -; 6521 : case 8: -; 6522 : return STBI_grey; - - 0007a b8 01 00 00 00 mov eax, 1 - 0007f eb 41 jmp SHORT $LN1@stbi__tga_ -$LN6@stbi__tga_: - -; 6523 : case 16: -; 6524 : if (is_grey) - - 00081 83 bd f8 00 00 - 00 00 cmp DWORD PTR is_grey$[rbp], 0 - 00088 74 07 je SHORT $LN7@stbi__tga_ - -; 6525 : return STBI_grey_alpha; - - 0008a b8 02 00 00 00 mov eax, 2 - 0008f eb 31 jmp SHORT $LN1@stbi__tga_ -$LN7@stbi__tga_: -$LN8@stbi__tga_: - -; 6526 : // fallthrough -; 6527 : case 15: -; 6528 : if (is_rgb16) - - 00091 48 83 bd 00 01 - 00 00 00 cmp QWORD PTR is_rgb16$[rbp], 0 - 00099 74 0d je SHORT $LN9@stbi__tga_ - -; 6529 : *is_rgb16 = 1; - - 0009b 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR is_rgb16$[rbp] - 000a2 c7 00 01 00 00 - 00 mov DWORD PTR [rax], 1 -$LN9@stbi__tga_: - -; 6530 : return STBI_rgb; - - 000a8 b8 03 00 00 00 mov eax, 3 - 000ad eb 13 jmp SHORT $LN1@stbi__tga_ -$LN10@stbi__tga_: -$LN11@stbi__tga_: - -; 6531 : case 24: // fallthrough -; 6532 : case 32: -; 6533 : return bits_per_pixel / 8; - - 000af 8b 85 f0 00 00 - 00 mov eax, DWORD PTR bits_per_pixel$[rbp] - 000b5 99 cdq - 000b6 83 e2 07 and edx, 7 - 000b9 03 c2 add eax, edx - 000bb c1 f8 03 sar eax, 3 - 000be eb 02 jmp SHORT $LN1@stbi__tga_ -$LN12@stbi__tga_: - -; 6534 : default: -; 6535 : return 0; - - 000c0 33 c0 xor eax, eax -$LN1@stbi__tga_: - -; 6536 : } -; 6537 : } - - 000c2 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 000c9 5f pop rdi - 000ca 5d pop rbp - 000cb c3 ret 0 -stbi__tga_get_comp ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__bmp_parse_header -_TEXT SEGMENT -hsz$ = 4 -compress$1 = 36 -i$2 = 68 -tv75 = 280 -tv95 = 280 -tv136 = 280 -tv156 = 280 -tv168 = 280 -tv173 = 280 -tv182 = 280 -tv224 = 280 -tv228 = 280 -tv234 = 280 -s$ = 320 -info$ = 328 -stbi__bmp_parse_header PROC ; COMDAT - -; 6166 : { - - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 - -; 6167 : int hsz; -; 6168 : if (stbi__get8(s) != 'B' || stbi__get8(s) != 'M') - - 00025 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0002c e8 00 00 00 00 call stbi__get8 - 00031 0f b6 c0 movzx eax, al - 00034 83 f8 42 cmp eax, 66 ; 00000042H - 00037 75 14 jne SHORT $LN6@stbi__bmp_ - 00039 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00040 e8 00 00 00 00 call stbi__get8 - 00045 0f b6 c0 movzx eax, al - 00048 83 f8 4d cmp eax, 77 ; 0000004dH - 0004b 74 34 je SHORT $LN5@stbi__bmp_ -$LN6@stbi__bmp_: - -; 6169 : return stbi__errpuc("not BMP", "Corrupt BMP"); - - 0004d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07IANEBNLB@not?5BMP@ - 00054 e8 00 00 00 00 call stbi__err - 00059 85 c0 test eax, eax - 0005b 74 0d je SHORT $LN32@stbi__bmp_ - 0005d 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv75[rbp], 0 - 00068 eb 0b jmp SHORT $LN33@stbi__bmp_ -$LN32@stbi__bmp_: - 0006a 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv75[rbp], 0 -$LN33@stbi__bmp_: - 00075 48 8b 85 18 01 - 00 00 mov rax, QWORD PTR tv75[rbp] - 0007c e9 af 05 00 00 jmp $LN1@stbi__bmp_ -$LN5@stbi__bmp_: - -; 6170 : stbi__get32le(s); // discard filesize - - 00081 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00088 e8 00 00 00 00 call stbi__get32le - 0008d 90 npad 1 - -; 6171 : stbi__get16le(s); // discard reserved - - 0008e 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00095 e8 00 00 00 00 call stbi__get16le - 0009a 90 npad 1 - -; 6172 : stbi__get16le(s); // discard reserved - - 0009b 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000a2 e8 00 00 00 00 call stbi__get16le - 000a7 90 npad 1 - -; 6173 : info->offset = stbi__get32le(s); - - 000a8 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000af e8 00 00 00 00 call stbi__get32le - 000b4 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR info$[rbp] - 000bb 89 41 04 mov DWORD PTR [rcx+4], eax - -; 6174 : info->hsz = hsz = stbi__get32le(s); - - 000be 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000c5 e8 00 00 00 00 call stbi__get32le - 000ca 89 45 04 mov DWORD PTR hsz$[rbp], eax - 000cd 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR info$[rbp] - 000d4 8b 4d 04 mov ecx, DWORD PTR hsz$[rbp] - 000d7 89 48 08 mov DWORD PTR [rax+8], ecx - -; 6175 : info->mr = info->mg = info->mb = info->ma = 0; - - 000da 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR info$[rbp] - 000e1 c7 40 18 00 00 - 00 00 mov DWORD PTR [rax+24], 0 - 000e8 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR info$[rbp] - 000ef c7 40 14 00 00 - 00 00 mov DWORD PTR [rax+20], 0 - 000f6 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR info$[rbp] - 000fd c7 40 10 00 00 - 00 00 mov DWORD PTR [rax+16], 0 - 00104 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR info$[rbp] - 0010b c7 40 0c 00 00 - 00 00 mov DWORD PTR [rax+12], 0 - -; 6176 : info->extra_read = 14; - - 00112 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR info$[rbp] - 00119 c7 40 20 0e 00 - 00 00 mov DWORD PTR [rax+32], 14 - -; 6177 : -; 6178 : if (info->offset < 0) - - 00120 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR info$[rbp] - 00127 83 78 04 00 cmp DWORD PTR [rax+4], 0 - 0012b 7d 34 jge SHORT $LN7@stbi__bmp_ - -; 6179 : return stbi__errpuc("bad BMP", "bad BMP"); - - 0012d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07IEJCHBDI@bad?5BMP@ - 00134 e8 00 00 00 00 call stbi__err - 00139 85 c0 test eax, eax - 0013b 74 0d je SHORT $LN34@stbi__bmp_ - 0013d 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv95[rbp], 0 - 00148 eb 0b jmp SHORT $LN35@stbi__bmp_ -$LN34@stbi__bmp_: - 0014a 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv95[rbp], 0 -$LN35@stbi__bmp_: - 00155 48 8b 85 18 01 - 00 00 mov rax, QWORD PTR tv95[rbp] - 0015c e9 cf 04 00 00 jmp $LN1@stbi__bmp_ -$LN7@stbi__bmp_: - -; 6180 : -; 6181 : if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108 && hsz != 124) - - 00161 83 7d 04 0c cmp DWORD PTR hsz$[rbp], 12 - 00165 74 4c je SHORT $LN8@stbi__bmp_ - 00167 83 7d 04 28 cmp DWORD PTR hsz$[rbp], 40 ; 00000028H - 0016b 74 46 je SHORT $LN8@stbi__bmp_ - 0016d 83 7d 04 38 cmp DWORD PTR hsz$[rbp], 56 ; 00000038H - 00171 74 40 je SHORT $LN8@stbi__bmp_ - 00173 83 7d 04 6c cmp DWORD PTR hsz$[rbp], 108 ; 0000006cH - 00177 74 3a je SHORT $LN8@stbi__bmp_ - 00179 83 7d 04 7c cmp DWORD PTR hsz$[rbp], 124 ; 0000007cH - 0017d 74 34 je SHORT $LN8@stbi__bmp_ - -; 6182 : return stbi__errpuc("unknown BMP", "BMP type not supported: unknown"); - - 0017f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0M@KHBIBJBG@unknown?5BMP@ - 00186 e8 00 00 00 00 call stbi__err - 0018b 85 c0 test eax, eax - 0018d 74 0d je SHORT $LN36@stbi__bmp_ - 0018f 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv136[rbp], 0 - 0019a eb 0b jmp SHORT $LN37@stbi__bmp_ -$LN36@stbi__bmp_: - 0019c 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv136[rbp], 0 -$LN37@stbi__bmp_: - 001a7 48 8b 85 18 01 - 00 00 mov rax, QWORD PTR tv136[rbp] - 001ae e9 7d 04 00 00 jmp $LN1@stbi__bmp_ -$LN8@stbi__bmp_: - -; 6183 : if (hsz == 12) { - - 001b3 83 7d 04 0c cmp DWORD PTR hsz$[rbp], 12 - 001b7 75 2d jne SHORT $LN9@stbi__bmp_ - -; 6184 : s->img_x = stbi__get16le(s); - - 001b9 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001c0 e8 00 00 00 00 call stbi__get16le - 001c5 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001cc 89 01 mov DWORD PTR [rcx], eax - -; 6185 : s->img_y = stbi__get16le(s); - - 001ce 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001d5 e8 00 00 00 00 call stbi__get16le - 001da 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001e1 89 41 04 mov DWORD PTR [rcx+4], eax - -; 6186 : } else { - - 001e4 eb 2b jmp SHORT $LN10@stbi__bmp_ -$LN9@stbi__bmp_: - -; 6187 : s->img_x = stbi__get32le(s); - - 001e6 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001ed e8 00 00 00 00 call stbi__get32le - 001f2 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001f9 89 01 mov DWORD PTR [rcx], eax - -; 6188 : s->img_y = stbi__get32le(s); - - 001fb 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00202 e8 00 00 00 00 call stbi__get32le - 00207 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0020e 89 41 04 mov DWORD PTR [rcx+4], eax -$LN10@stbi__bmp_: - -; 6189 : } -; 6190 : if (stbi__get16le(s) != 1) - - 00211 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00218 e8 00 00 00 00 call stbi__get16le - 0021d 83 f8 01 cmp eax, 1 - 00220 74 34 je SHORT $LN11@stbi__bmp_ - -; 6191 : return stbi__errpuc("bad BMP", "bad BMP"); - - 00222 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07IEJCHBDI@bad?5BMP@ - 00229 e8 00 00 00 00 call stbi__err - 0022e 85 c0 test eax, eax - 00230 74 0d je SHORT $LN38@stbi__bmp_ - 00232 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv156[rbp], 0 - 0023d eb 0b jmp SHORT $LN39@stbi__bmp_ -$LN38@stbi__bmp_: - 0023f 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv156[rbp], 0 -$LN39@stbi__bmp_: - 0024a 48 8b 85 18 01 - 00 00 mov rax, QWORD PTR tv156[rbp] - 00251 e9 da 03 00 00 jmp $LN1@stbi__bmp_ -$LN11@stbi__bmp_: - -; 6192 : info->bpp = stbi__get16le(s); - - 00256 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0025d e8 00 00 00 00 call stbi__get16le - 00262 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR info$[rbp] - 00269 89 01 mov DWORD PTR [rcx], eax - -; 6193 : if (hsz != 12) { - - 0026b 83 7d 04 0c cmp DWORD PTR hsz$[rbp], 12 - 0026f 0f 84 b6 03 00 - 00 je $LN12@stbi__bmp_ - -; 6194 : int compress = stbi__get32le(s); - - 00275 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0027c e8 00 00 00 00 call stbi__get32le - 00281 89 45 24 mov DWORD PTR compress$1[rbp], eax - -; 6195 : if (compress == 1 || compress == 2) - - 00284 83 7d 24 01 cmp DWORD PTR compress$1[rbp], 1 - 00288 74 06 je SHORT $LN14@stbi__bmp_ - 0028a 83 7d 24 02 cmp DWORD PTR compress$1[rbp], 2 - 0028e 75 34 jne SHORT $LN13@stbi__bmp_ -$LN14@stbi__bmp_: - -; 6196 : return stbi__errpuc("BMP RLE", "BMP type not supported: RLE"); - - 00290 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07IMHMNOIB@BMP?5RLE@ - 00297 e8 00 00 00 00 call stbi__err - 0029c 85 c0 test eax, eax - 0029e 74 0d je SHORT $LN40@stbi__bmp_ - 002a0 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv168[rbp], 0 - 002ab eb 0b jmp SHORT $LN41@stbi__bmp_ -$LN40@stbi__bmp_: - 002ad 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv168[rbp], 0 -$LN41@stbi__bmp_: - 002b8 48 8b 85 18 01 - 00 00 mov rax, QWORD PTR tv168[rbp] - 002bf e9 6c 03 00 00 jmp $LN1@stbi__bmp_ -$LN13@stbi__bmp_: - -; 6197 : if (compress >= 4) - - 002c4 83 7d 24 04 cmp DWORD PTR compress$1[rbp], 4 - 002c8 7c 34 jl SHORT $LN15@stbi__bmp_ - -; 6198 : return stbi__errpuc( - - 002ca 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0N@ODCBCBFN@BMP?5JPEG?1PNG@ - 002d1 e8 00 00 00 00 call stbi__err - 002d6 85 c0 test eax, eax - 002d8 74 0d je SHORT $LN42@stbi__bmp_ - 002da 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv173[rbp], 0 - 002e5 eb 0b jmp SHORT $LN43@stbi__bmp_ -$LN42@stbi__bmp_: - 002e7 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv173[rbp], 0 -$LN43@stbi__bmp_: - 002f2 48 8b 85 18 01 - 00 00 mov rax, QWORD PTR tv173[rbp] - 002f9 e9 32 03 00 00 jmp $LN1@stbi__bmp_ -$LN15@stbi__bmp_: - -; 6199 : "BMP JPEG/PNG", -; 6200 : "BMP type not supported: unsupported compression"); // this includes PNG/JPEG modes -; 6201 : if (compress == 3 && info->bpp != 16 && info->bpp != 32) - - 002fe 83 7d 24 03 cmp DWORD PTR compress$1[rbp], 3 - 00302 75 4c jne SHORT $LN16@stbi__bmp_ - 00304 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR info$[rbp] - 0030b 83 38 10 cmp DWORD PTR [rax], 16 - 0030e 74 40 je SHORT $LN16@stbi__bmp_ - 00310 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR info$[rbp] - 00317 83 38 20 cmp DWORD PTR [rax], 32 ; 00000020H - 0031a 74 34 je SHORT $LN16@stbi__bmp_ - -; 6202 : return stbi__errpuc("bad BMP", - - 0031c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07IEJCHBDI@bad?5BMP@ - 00323 e8 00 00 00 00 call stbi__err - 00328 85 c0 test eax, eax - 0032a 74 0d je SHORT $LN44@stbi__bmp_ - 0032c 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv182[rbp], 0 - 00337 eb 0b jmp SHORT $LN45@stbi__bmp_ -$LN44@stbi__bmp_: - 00339 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv182[rbp], 0 -$LN45@stbi__bmp_: - 00344 48 8b 85 18 01 - 00 00 mov rax, QWORD PTR tv182[rbp] - 0034b e9 e0 02 00 00 jmp $LN1@stbi__bmp_ -$LN16@stbi__bmp_: - -; 6203 : "bad BMP"); // bitfields requires 16 or 32 bits/pixel -; 6204 : stbi__get32le(s); // discard sizeof - - 00350 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00357 e8 00 00 00 00 call stbi__get32le - 0035c 90 npad 1 - -; 6205 : stbi__get32le(s); // discard hres - - 0035d 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00364 e8 00 00 00 00 call stbi__get32le - 00369 90 npad 1 - -; 6206 : stbi__get32le(s); // discard vres - - 0036a 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00371 e8 00 00 00 00 call stbi__get32le - 00376 90 npad 1 - -; 6207 : stbi__get32le(s); // discard colorsused - - 00377 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0037e e8 00 00 00 00 call stbi__get32le - 00383 90 npad 1 - -; 6208 : stbi__get32le(s); // discard max important - - 00384 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0038b e8 00 00 00 00 call stbi__get32le - 00390 90 npad 1 - -; 6209 : if (hsz == 40 || hsz == 56) { - - 00391 83 7d 04 28 cmp DWORD PTR hsz$[rbp], 40 ; 00000028H - 00395 74 0a je SHORT $LN19@stbi__bmp_ - 00397 83 7d 04 38 cmp DWORD PTR hsz$[rbp], 56 ; 00000038H - 0039b 0f 85 6f 01 00 - 00 jne $LN17@stbi__bmp_ -$LN19@stbi__bmp_: - -; 6210 : if (hsz == 56) { - - 003a1 83 7d 04 38 cmp DWORD PTR hsz$[rbp], 56 ; 00000038H - 003a5 75 34 jne SHORT $LN20@stbi__bmp_ - -; 6211 : stbi__get32le(s); - - 003a7 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 003ae e8 00 00 00 00 call stbi__get32le - 003b3 90 npad 1 - -; 6212 : stbi__get32le(s); - - 003b4 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 003bb e8 00 00 00 00 call stbi__get32le - 003c0 90 npad 1 - -; 6213 : stbi__get32le(s); - - 003c1 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 003c8 e8 00 00 00 00 call stbi__get32le - 003cd 90 npad 1 - -; 6214 : stbi__get32le(s); - - 003ce 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 003d5 e8 00 00 00 00 call stbi__get32le - 003da 90 npad 1 -$LN20@stbi__bmp_: - -; 6215 : } -; 6216 : if (info->bpp == 16 || info->bpp == 32) { - - 003db 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR info$[rbp] - 003e2 83 38 10 cmp DWORD PTR [rax], 16 - 003e5 74 10 je SHORT $LN22@stbi__bmp_ - 003e7 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR info$[rbp] - 003ee 83 38 20 cmp DWORD PTR [rax], 32 ; 00000020H - 003f1 0f 85 14 01 00 - 00 jne $LN21@stbi__bmp_ -$LN22@stbi__bmp_: - -; 6217 : if (compress == 0) { - - 003f7 83 7d 24 00 cmp DWORD PTR compress$1[rbp], 0 - 003fb 75 15 jne SHORT $LN23@stbi__bmp_ - -; 6218 : stbi__bmp_set_mask_defaults(info, compress); - - 003fd 8b 55 24 mov edx, DWORD PTR compress$1[rbp] - 00400 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR info$[rbp] - 00407 e8 00 00 00 00 call stbi__bmp_set_mask_defaults - 0040c 90 npad 1 - 0040d e9 f9 00 00 00 jmp $LN24@stbi__bmp_ -$LN23@stbi__bmp_: - -; 6219 : } else if (compress == 3) { - - 00412 83 7d 24 03 cmp DWORD PTR compress$1[rbp], 3 - 00416 0f 85 bb 00 00 - 00 jne $LN25@stbi__bmp_ - -; 6220 : info->mr = stbi__get32le(s); - - 0041c 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00423 e8 00 00 00 00 call stbi__get32le - 00428 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR info$[rbp] - 0042f 89 41 0c mov DWORD PTR [rcx+12], eax - -; 6221 : info->mg = stbi__get32le(s); - - 00432 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00439 e8 00 00 00 00 call stbi__get32le - 0043e 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR info$[rbp] - 00445 89 41 10 mov DWORD PTR [rcx+16], eax - -; 6222 : info->mb = stbi__get32le(s); - - 00448 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0044f e8 00 00 00 00 call stbi__get32le - 00454 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR info$[rbp] - 0045b 89 41 14 mov DWORD PTR [rcx+20], eax - -; 6223 : info->extra_read += 12; - - 0045e 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR info$[rbp] - 00465 8b 40 20 mov eax, DWORD PTR [rax+32] - 00468 83 c0 0c add eax, 12 - 0046b 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR info$[rbp] - 00472 89 41 20 mov DWORD PTR [rcx+32], eax - -; 6224 : // not documented, but generated by photoshop and handled by mspaint -; 6225 : if (info->mr == info->mg && info->mg == info->mb) { - - 00475 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR info$[rbp] - 0047c 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR info$[rbp] - 00483 8b 49 10 mov ecx, DWORD PTR [rcx+16] - 00486 39 48 0c cmp DWORD PTR [rax+12], ecx - 00489 75 4a jne SHORT $LN27@stbi__bmp_ - 0048b 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR info$[rbp] - 00492 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR info$[rbp] - 00499 8b 49 14 mov ecx, DWORD PTR [rcx+20] - 0049c 39 48 10 cmp DWORD PTR [rax+16], ecx - 0049f 75 34 jne SHORT $LN27@stbi__bmp_ - -; 6226 : // ?!?!? -; 6227 : return stbi__errpuc("bad BMP", "bad BMP"); - - 004a1 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07IEJCHBDI@bad?5BMP@ - 004a8 e8 00 00 00 00 call stbi__err - 004ad 85 c0 test eax, eax - 004af 74 0d je SHORT $LN46@stbi__bmp_ - 004b1 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv224[rbp], 0 - 004bc eb 0b jmp SHORT $LN47@stbi__bmp_ -$LN46@stbi__bmp_: - 004be 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv224[rbp], 0 -$LN47@stbi__bmp_: - 004c9 48 8b 85 18 01 - 00 00 mov rax, QWORD PTR tv224[rbp] - 004d0 e9 5b 01 00 00 jmp $LN1@stbi__bmp_ -$LN27@stbi__bmp_: - -; 6228 : } -; 6229 : } else - - 004d5 eb 34 jmp SHORT $LN26@stbi__bmp_ -$LN25@stbi__bmp_: - -; 6230 : return stbi__errpuc("bad BMP", "bad BMP"); - - 004d7 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07IEJCHBDI@bad?5BMP@ - 004de e8 00 00 00 00 call stbi__err - 004e3 85 c0 test eax, eax - 004e5 74 0d je SHORT $LN48@stbi__bmp_ - 004e7 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv228[rbp], 0 - 004f2 eb 0b jmp SHORT $LN49@stbi__bmp_ -$LN48@stbi__bmp_: - 004f4 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv228[rbp], 0 -$LN49@stbi__bmp_: - 004ff 48 8b 85 18 01 - 00 00 mov rax, QWORD PTR tv228[rbp] - 00506 e9 25 01 00 00 jmp $LN1@stbi__bmp_ -$LN26@stbi__bmp_: -$LN24@stbi__bmp_: -$LN21@stbi__bmp_: - -; 6231 : } -; 6232 : } else { - - 0050b e9 1b 01 00 00 jmp $LN18@stbi__bmp_ -$LN17@stbi__bmp_: - -; 6233 : // V4/V5 header -; 6234 : int i; -; 6235 : if (hsz != 108 && hsz != 124) - - 00510 83 7d 04 6c cmp DWORD PTR hsz$[rbp], 108 ; 0000006cH - 00514 74 3a je SHORT $LN28@stbi__bmp_ - 00516 83 7d 04 7c cmp DWORD PTR hsz$[rbp], 124 ; 0000007cH - 0051a 74 34 je SHORT $LN28@stbi__bmp_ - -; 6236 : return stbi__errpuc("bad BMP", "bad BMP"); - - 0051c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07IEJCHBDI@bad?5BMP@ - 00523 e8 00 00 00 00 call stbi__err - 00528 85 c0 test eax, eax - 0052a 74 0d je SHORT $LN50@stbi__bmp_ - 0052c 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv234[rbp], 0 - 00537 eb 0b jmp SHORT $LN51@stbi__bmp_ -$LN50@stbi__bmp_: - 00539 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv234[rbp], 0 -$LN51@stbi__bmp_: - 00544 48 8b 85 18 01 - 00 00 mov rax, QWORD PTR tv234[rbp] - 0054b e9 e0 00 00 00 jmp $LN1@stbi__bmp_ -$LN28@stbi__bmp_: - -; 6237 : info->mr = stbi__get32le(s); - - 00550 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00557 e8 00 00 00 00 call stbi__get32le - 0055c 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR info$[rbp] - 00563 89 41 0c mov DWORD PTR [rcx+12], eax - -; 6238 : info->mg = stbi__get32le(s); - - 00566 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0056d e8 00 00 00 00 call stbi__get32le - 00572 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR info$[rbp] - 00579 89 41 10 mov DWORD PTR [rcx+16], eax - -; 6239 : info->mb = stbi__get32le(s); - - 0057c 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00583 e8 00 00 00 00 call stbi__get32le - 00588 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR info$[rbp] - 0058f 89 41 14 mov DWORD PTR [rcx+20], eax - -; 6240 : info->ma = stbi__get32le(s); - - 00592 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00599 e8 00 00 00 00 call stbi__get32le - 0059e 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR info$[rbp] - 005a5 89 41 18 mov DWORD PTR [rcx+24], eax - -; 6241 : if (compress != - - 005a8 83 7d 24 03 cmp DWORD PTR compress$1[rbp], 3 - 005ac 74 10 je SHORT $LN29@stbi__bmp_ - -; 6242 : 3) // override mr/mg/mb unless in BI_BITFIELDS mode, as per docs -; 6243 : stbi__bmp_set_mask_defaults(info, compress); - - 005ae 8b 55 24 mov edx, DWORD PTR compress$1[rbp] - 005b1 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR info$[rbp] - 005b8 e8 00 00 00 00 call stbi__bmp_set_mask_defaults - 005bd 90 npad 1 -$LN29@stbi__bmp_: - -; 6244 : stbi__get32le(s); // discard color space - - 005be 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 005c5 e8 00 00 00 00 call stbi__get32le - 005ca 90 npad 1 - -; 6245 : for (i = 0; i < 12; ++i) - - 005cb c7 45 44 00 00 - 00 00 mov DWORD PTR i$2[rbp], 0 - 005d2 eb 08 jmp SHORT $LN4@stbi__bmp_ -$LN2@stbi__bmp_: - 005d4 8b 45 44 mov eax, DWORD PTR i$2[rbp] - 005d7 ff c0 inc eax - 005d9 89 45 44 mov DWORD PTR i$2[rbp], eax -$LN4@stbi__bmp_: - 005dc 83 7d 44 0c cmp DWORD PTR i$2[rbp], 12 - 005e0 7d 0f jge SHORT $LN3@stbi__bmp_ - -; 6246 : stbi__get32le(s); // discard color space parameters - - 005e2 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 005e9 e8 00 00 00 00 call stbi__get32le - 005ee 90 npad 1 - 005ef eb e3 jmp SHORT $LN2@stbi__bmp_ -$LN3@stbi__bmp_: - -; 6247 : if (hsz == 124) { - - 005f1 83 7d 04 7c cmp DWORD PTR hsz$[rbp], 124 ; 0000007cH - 005f5 75 34 jne SHORT $LN30@stbi__bmp_ - -; 6248 : stbi__get32le(s); // discard rendering intent - - 005f7 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 005fe e8 00 00 00 00 call stbi__get32le - 00603 90 npad 1 - -; 6249 : stbi__get32le(s); // discard offset of profile data - - 00604 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0060b e8 00 00 00 00 call stbi__get32le - 00610 90 npad 1 - -; 6250 : stbi__get32le(s); // discard size of profile data - - 00611 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00618 e8 00 00 00 00 call stbi__get32le - 0061d 90 npad 1 - -; 6251 : stbi__get32le(s); // discard reserved - - 0061e 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00625 e8 00 00 00 00 call stbi__get32le - 0062a 90 npad 1 -$LN30@stbi__bmp_: -$LN18@stbi__bmp_: -$LN12@stbi__bmp_: - -; 6252 : } -; 6253 : } -; 6254 : } -; 6255 : return (void *)1; - - 0062b b8 01 00 00 00 mov eax, 1 -$LN1@stbi__bmp_: - -; 6256 : } - - 00630 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 00637 5f pop rdi - 00638 5d pop rbp - 00639 c3 ret 0 -stbi__bmp_parse_header ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__bmp_set_mask_defaults -_TEXT SEGMENT -info$ = 224 -compress$ = 232 -stbi__bmp_set_mask_defaults PROC ; COMDAT - -; 6139 : { - - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00023 90 npad 1 - -; 6140 : // BI_BITFIELDS specifies masks explicitly, don't override -; 6141 : if (compress == 3) - - 00024 83 bd e8 00 00 - 00 03 cmp DWORD PTR compress$[rbp], 3 - 0002b 75 0a jne SHORT $LN2@stbi__bmp_ - -; 6142 : return 1; - - 0002d b8 01 00 00 00 mov eax, 1 - 00032 e9 dd 00 00 00 jmp $LN1@stbi__bmp_ -$LN2@stbi__bmp_: - -; 6143 : -; 6144 : if (compress == 0) { - - 00037 83 bd e8 00 00 - 00 00 cmp DWORD PTR compress$[rbp], 0 - 0003e 0f 85 ce 00 00 - 00 jne $LN3@stbi__bmp_ - -; 6145 : if (info->bpp == 16) { - - 00044 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR info$[rbp] - 0004b 83 38 10 cmp DWORD PTR [rax], 16 - 0004e 75 2f jne SHORT $LN4@stbi__bmp_ - -; 6146 : info->mr = 31u << 10; - - 00050 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR info$[rbp] - 00057 c7 40 0c 00 7c - 00 00 mov DWORD PTR [rax+12], 31744 ; 00007c00H - -; 6147 : info->mg = 31u << 5; - - 0005e 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR info$[rbp] - 00065 c7 40 10 e0 03 - 00 00 mov DWORD PTR [rax+16], 992 ; 000003e0H - -; 6148 : info->mb = 31u << 0; - - 0006c 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR info$[rbp] - 00073 c7 40 14 1f 00 - 00 00 mov DWORD PTR [rax+20], 31 - 0007a e9 8c 00 00 00 jmp $LN5@stbi__bmp_ -$LN4@stbi__bmp_: - -; 6149 : } else if (info->bpp == 32) { - - 0007f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR info$[rbp] - 00086 83 38 20 cmp DWORD PTR [rax], 32 ; 00000020H - 00089 75 48 jne SHORT $LN6@stbi__bmp_ - -; 6150 : info->mr = 0xffu << 16; - - 0008b 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR info$[rbp] - 00092 c7 40 0c 00 00 - ff 00 mov DWORD PTR [rax+12], 16711680 ; 00ff0000H - -; 6151 : info->mg = 0xffu << 8; - - 00099 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR info$[rbp] - 000a0 c7 40 10 00 ff - 00 00 mov DWORD PTR [rax+16], 65280 ; 0000ff00H - -; 6152 : info->mb = 0xffu << 0; - - 000a7 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR info$[rbp] - 000ae c7 40 14 ff 00 - 00 00 mov DWORD PTR [rax+20], 255 ; 000000ffH - -; 6153 : info->ma = 0xffu << 24; - - 000b5 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR info$[rbp] - 000bc c7 40 18 00 00 - 00 ff mov DWORD PTR [rax+24], -16777216 ; ff000000H - -; 6154 : info->all_a = - - 000c3 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR info$[rbp] - 000ca c7 40 1c 00 00 - 00 00 mov DWORD PTR [rax+28], 0 - -; 6155 : 0; // if all_a is 0 at end, then we loaded alpha channel but it was all 0 -; 6156 : } else { - - 000d1 eb 38 jmp SHORT $LN7@stbi__bmp_ -$LN6@stbi__bmp_: - -; 6157 : // otherwise, use defaults, which is all-0 -; 6158 : info->mr = info->mg = info->mb = info->ma = 0; - - 000d3 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR info$[rbp] - 000da c7 40 18 00 00 - 00 00 mov DWORD PTR [rax+24], 0 - 000e1 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR info$[rbp] - 000e8 c7 40 14 00 00 - 00 00 mov DWORD PTR [rax+20], 0 - 000ef 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR info$[rbp] - 000f6 c7 40 10 00 00 - 00 00 mov DWORD PTR [rax+16], 0 - 000fd 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR info$[rbp] - 00104 c7 40 0c 00 00 - 00 00 mov DWORD PTR [rax+12], 0 -$LN7@stbi__bmp_: -$LN5@stbi__bmp_: - -; 6159 : } -; 6160 : return 1; - - 0010b b8 01 00 00 00 mov eax, 1 - 00110 eb 02 jmp SHORT $LN1@stbi__bmp_ -$LN3@stbi__bmp_: - -; 6161 : } -; 6162 : return 0; // error - - 00112 33 c0 xor eax, eax -$LN1@stbi__bmp_: - -; 6163 : } - - 00114 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0011b 5f pop rdi - 0011c 5d pop rbp - 0011d c3 ret 0 -stbi__bmp_set_mask_defaults ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__shiftsigned -_TEXT SEGMENT -v$ = 224 -shift$ = 232 -bits$ = 240 -stbi__shiftsigned PROC ; COMDAT - -; 6107 : { - - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00009 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 0000d 55 push rbp - 0000e 57 push rdi - 0000f 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00016 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00027 90 npad 1 - -; 6108 : static unsigned int mul_table[9] = { -; 6109 : 0, -; 6110 : 0xff /*0b11111111*/, -; 6111 : 0x55 /*0b01010101*/, -; 6112 : 0x49 /*0b01001001*/, -; 6113 : 0x11 /*0b00010001*/, -; 6114 : 0x21 /*0b00100001*/, -; 6115 : 0x41 /*0b01000001*/, -; 6116 : 0x81 /*0b10000001*/, -; 6117 : 0x01 /*0b00000001*/, -; 6118 : }; -; 6119 : static unsigned int shift_table[9] = { -; 6120 : 0, 0, 0, 1, 0, 2, 4, 6, 0, -; 6121 : }; -; 6122 : if (shift < 0) - - 00028 83 bd e8 00 00 - 00 00 cmp DWORD PTR shift$[rbp], 0 - 0002f 7d 1b jge SHORT $LN2@stbi__shif - -; 6123 : v <<= -shift; - - 00031 8b 85 e8 00 00 - 00 mov eax, DWORD PTR shift$[rbp] - 00037 f7 d8 neg eax - 00039 0f b6 c8 movzx ecx, al - 0003c 8b 85 e0 00 00 - 00 mov eax, DWORD PTR v$[rbp] - 00042 d3 e0 shl eax, cl - 00044 89 85 e0 00 00 - 00 mov DWORD PTR v$[rbp], eax - 0004a eb 17 jmp SHORT $LN3@stbi__shif -$LN2@stbi__shif: - -; 6124 : else -; 6125 : v >>= shift; - - 0004c 8b 85 e8 00 00 - 00 mov eax, DWORD PTR shift$[rbp] - 00052 0f b6 c8 movzx ecx, al - 00055 8b 85 e0 00 00 - 00 mov eax, DWORD PTR v$[rbp] - 0005b d3 e8 shr eax, cl - 0005d 89 85 e0 00 00 - 00 mov DWORD PTR v$[rbp], eax -$LN3@stbi__shif: - -; 6126 : STBI_ASSERT(v < 256); - - 00063 81 bd e0 00 00 - 00 00 01 00 00 cmp DWORD PTR v$[rbp], 256 ; 00000100H - 0006d 72 1c jb SHORT $LN5@stbi__shif - 0006f 41 b8 ee 17 00 - 00 mov r8d, 6126 ; 000017eeH - 00075 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ - 0007c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1BA@EKLGALLJ@?$AAv?$AA?5?$AA?$DM?$AA?5?$AA2?$AA5?$AA6@ - 00083 ff 15 00 00 00 - 00 call QWORD PTR __imp__wassert - 00089 33 c0 xor eax, eax -$LN5@stbi__shif: - -; 6127 : v >>= (8 - bits); - - 0008b b8 08 00 00 00 mov eax, 8 - 00090 2b 85 f0 00 00 - 00 sub eax, DWORD PTR bits$[rbp] - 00096 0f b6 c8 movzx ecx, al - 00099 8b 85 e0 00 00 - 00 mov eax, DWORD PTR v$[rbp] - 0009f d3 e8 shr eax, cl - 000a1 89 85 e0 00 00 - 00 mov DWORD PTR v$[rbp], eax - -; 6128 : STBI_ASSERT(bits >= 0 && bits <= 8); - - 000a7 83 bd f0 00 00 - 00 00 cmp DWORD PTR bits$[rbp], 0 - 000ae 7c 09 jl SHORT $LN6@stbi__shif - 000b0 83 bd f0 00 00 - 00 08 cmp DWORD PTR bits$[rbp], 8 - 000b7 7e 1c jle SHORT $LN7@stbi__shif -$LN6@stbi__shif: - 000b9 41 b8 f0 17 00 - 00 mov r8d, 6128 ; 000017f0H - 000bf 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ - 000c6 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1CO@LIFEKNEP@?$AAb?$AAi?$AAt?$AAs?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA0?$AA?5?$AA?$CG?$AA?$CG?$AA?5?$AAb?$AAi@ - 000cd ff 15 00 00 00 - 00 call QWORD PTR __imp__wassert - 000d3 33 c0 xor eax, eax -$LN7@stbi__shif: - -; 6129 : return (int)((unsigned)v * mul_table[bits]) >> shift_table[bits]; - - 000d5 48 63 85 f0 00 - 00 00 movsxd rax, DWORD PTR bits$[rbp] - 000dc 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:?mul_table@?1??stbi__shiftsigned@@9@9 - 000e3 8b 95 e0 00 00 - 00 mov edx, DWORD PTR v$[rbp] - 000e9 0f af 14 81 imul edx, DWORD PTR [rcx+rax*4] - 000ed 8b c2 mov eax, edx - 000ef 48 63 8d f0 00 - 00 00 movsxd rcx, DWORD PTR bits$[rbp] - 000f6 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?shift_table@?1??stbi__shiftsigned@@9@9 - 000fd 8b 0c 8a mov ecx, DWORD PTR [rdx+rcx*4] - 00100 d3 f8 sar eax, cl - -; 6130 : } - - 00102 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00109 5f pop rdi - 0010a 5d pop rbp - 0010b c3 ret 0 -stbi__shiftsigned ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__bitcount -_TEXT SEGMENT -a$ = 224 -stbi__bitcount PROC ; COMDAT - -; 6094 : { - - 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00004 55 push rbp - 00005 57 push rdi - 00006 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00012 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001e 90 npad 1 - -; 6095 : a = (a & 0x55555555) + ((a >> 1) & 0x55555555); // max 2 - - 0001f 8b 85 e0 00 00 - 00 mov eax, DWORD PTR a$[rbp] - 00025 25 55 55 55 55 and eax, 1431655765 ; 55555555H - 0002a 8b 8d e0 00 00 - 00 mov ecx, DWORD PTR a$[rbp] - 00030 d1 e9 shr ecx, 1 - 00032 81 e1 55 55 55 - 55 and ecx, 1431655765 ; 55555555H - 00038 03 c1 add eax, ecx - 0003a 89 85 e0 00 00 - 00 mov DWORD PTR a$[rbp], eax - -; 6096 : a = (a & 0x33333333) + ((a >> 2) & 0x33333333); // max 4 - - 00040 8b 85 e0 00 00 - 00 mov eax, DWORD PTR a$[rbp] - 00046 25 33 33 33 33 and eax, 858993459 ; 33333333H - 0004b 8b 8d e0 00 00 - 00 mov ecx, DWORD PTR a$[rbp] - 00051 c1 e9 02 shr ecx, 2 - 00054 81 e1 33 33 33 - 33 and ecx, 858993459 ; 33333333H - 0005a 03 c1 add eax, ecx - 0005c 89 85 e0 00 00 - 00 mov DWORD PTR a$[rbp], eax - -; 6097 : a = (a + (a >> 4)) & 0x0f0f0f0f; // max 8 per 4, now 8 bits - - 00062 8b 85 e0 00 00 - 00 mov eax, DWORD PTR a$[rbp] - 00068 c1 e8 04 shr eax, 4 - 0006b 8b 8d e0 00 00 - 00 mov ecx, DWORD PTR a$[rbp] - 00071 03 c8 add ecx, eax - 00073 8b c1 mov eax, ecx - 00075 25 0f 0f 0f 0f and eax, 252645135 ; 0f0f0f0fH - 0007a 89 85 e0 00 00 - 00 mov DWORD PTR a$[rbp], eax - -; 6098 : a = (a + (a >> 8)); // max 16 per 8 bits - - 00080 8b 85 e0 00 00 - 00 mov eax, DWORD PTR a$[rbp] - 00086 c1 e8 08 shr eax, 8 - 00089 8b 8d e0 00 00 - 00 mov ecx, DWORD PTR a$[rbp] - 0008f 03 c8 add ecx, eax - 00091 8b c1 mov eax, ecx - 00093 89 85 e0 00 00 - 00 mov DWORD PTR a$[rbp], eax - -; 6099 : a = (a + (a >> 16)); // max 32 per 8 bits - - 00099 8b 85 e0 00 00 - 00 mov eax, DWORD PTR a$[rbp] - 0009f c1 e8 10 shr eax, 16 - 000a2 8b 8d e0 00 00 - 00 mov ecx, DWORD PTR a$[rbp] - 000a8 03 c8 add ecx, eax - 000aa 8b c1 mov eax, ecx - 000ac 89 85 e0 00 00 - 00 mov DWORD PTR a$[rbp], eax - -; 6100 : return a & 0xff; - - 000b2 8b 85 e0 00 00 - 00 mov eax, DWORD PTR a$[rbp] - 000b8 25 ff 00 00 00 and eax, 255 ; 000000ffH - -; 6101 : } - - 000bd 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 000c4 5f pop rdi - 000c5 5d pop rbp - 000c6 c3 ret 0 -stbi__bitcount ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__high_bit -_TEXT SEGMENT -n$ = 4 -z$ = 256 -stbi__high_bit PROC ; COMDAT - -; 6067 : { - - 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00004 55 push rbp - 00005 57 push rdi - 00006 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00012 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001e 90 npad 1 - -; 6068 : int n = 0; - - 0001f c7 45 04 00 00 - 00 00 mov DWORD PTR n$[rbp], 0 - -; 6069 : if (z == 0) - - 00026 83 bd 00 01 00 - 00 00 cmp DWORD PTR z$[rbp], 0 - 0002d 75 0a jne SHORT $LN2@stbi__high - -; 6070 : return -1; - - 0002f b8 ff ff ff ff mov eax, -1 - 00034 e9 9e 00 00 00 jmp $LN1@stbi__high -$LN2@stbi__high: - -; 6071 : if (z >= 0x10000) { - - 00039 81 bd 00 01 00 - 00 00 00 01 00 cmp DWORD PTR z$[rbp], 65536 ; 00010000H - 00043 72 18 jb SHORT $LN3@stbi__high - -; 6072 : n += 16; - - 00045 8b 45 04 mov eax, DWORD PTR n$[rbp] - 00048 83 c0 10 add eax, 16 - 0004b 89 45 04 mov DWORD PTR n$[rbp], eax - -; 6073 : z >>= 16; - - 0004e 8b 85 00 01 00 - 00 mov eax, DWORD PTR z$[rbp] - 00054 c1 e8 10 shr eax, 16 - 00057 89 85 00 01 00 - 00 mov DWORD PTR z$[rbp], eax -$LN3@stbi__high: - -; 6074 : } -; 6075 : if (z >= 0x00100) { - - 0005d 81 bd 00 01 00 - 00 00 01 00 00 cmp DWORD PTR z$[rbp], 256 ; 00000100H - 00067 72 18 jb SHORT $LN4@stbi__high - -; 6076 : n += 8; - - 00069 8b 45 04 mov eax, DWORD PTR n$[rbp] - 0006c 83 c0 08 add eax, 8 - 0006f 89 45 04 mov DWORD PTR n$[rbp], eax - -; 6077 : z >>= 8; - - 00072 8b 85 00 01 00 - 00 mov eax, DWORD PTR z$[rbp] - 00078 c1 e8 08 shr eax, 8 - 0007b 89 85 00 01 00 - 00 mov DWORD PTR z$[rbp], eax -$LN4@stbi__high: - -; 6078 : } -; 6079 : if (z >= 0x00010) { - - 00081 83 bd 00 01 00 - 00 10 cmp DWORD PTR z$[rbp], 16 - 00088 72 18 jb SHORT $LN5@stbi__high - -; 6080 : n += 4; - - 0008a 8b 45 04 mov eax, DWORD PTR n$[rbp] - 0008d 83 c0 04 add eax, 4 - 00090 89 45 04 mov DWORD PTR n$[rbp], eax - -; 6081 : z >>= 4; - - 00093 8b 85 00 01 00 - 00 mov eax, DWORD PTR z$[rbp] - 00099 c1 e8 04 shr eax, 4 - 0009c 89 85 00 01 00 - 00 mov DWORD PTR z$[rbp], eax -$LN5@stbi__high: - -; 6082 : } -; 6083 : if (z >= 0x00004) { - - 000a2 83 bd 00 01 00 - 00 04 cmp DWORD PTR z$[rbp], 4 - 000a9 72 18 jb SHORT $LN6@stbi__high - -; 6084 : n += 2; - - 000ab 8b 45 04 mov eax, DWORD PTR n$[rbp] - 000ae 83 c0 02 add eax, 2 - 000b1 89 45 04 mov DWORD PTR n$[rbp], eax - -; 6085 : z >>= 2; - - 000b4 8b 85 00 01 00 - 00 mov eax, DWORD PTR z$[rbp] - 000ba c1 e8 02 shr eax, 2 - 000bd 89 85 00 01 00 - 00 mov DWORD PTR z$[rbp], eax -$LN6@stbi__high: - -; 6086 : } -; 6087 : if (z >= 0x00002) { - - 000c3 83 bd 00 01 00 - 00 02 cmp DWORD PTR z$[rbp], 2 - 000ca 72 08 jb SHORT $LN7@stbi__high - -; 6088 : n += 1; /* >>= 1;*/ - - 000cc 8b 45 04 mov eax, DWORD PTR n$[rbp] - 000cf ff c0 inc eax - 000d1 89 45 04 mov DWORD PTR n$[rbp], eax -$LN7@stbi__high: - -; 6089 : } -; 6090 : return n; - - 000d4 8b 45 04 mov eax, DWORD PTR n$[rbp] -$LN1@stbi__high: - -; 6091 : } - - 000d7 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 000de 5f pop rdi - 000df 5d pop rbp - 000e0 c3 ret 0 -stbi__high_bit ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__bmp_test_raw -_TEXT SEGMENT -r$ = 4 -sz$ = 36 -tv83 = 244 -s$ = 288 -stbi__bmp_test_raw PROC ; COMDAT - -; 6042 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 6043 : int r; -; 6044 : int sz; -; 6045 : if (stbi__get8(s) != 'B') - - 00020 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00027 e8 00 00 00 00 call stbi__get8 - 0002c 0f b6 c0 movzx eax, al - 0002f 83 f8 42 cmp eax, 66 ; 00000042H - 00032 74 07 je SHORT $LN2@stbi__bmp_ - -; 6046 : return 0; - - 00034 33 c0 xor eax, eax - 00036 e9 9e 00 00 00 jmp $LN1@stbi__bmp_ -$LN2@stbi__bmp_: - -; 6047 : if (stbi__get8(s) != 'M') - - 0003b 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00042 e8 00 00 00 00 call stbi__get8 - 00047 0f b6 c0 movzx eax, al - 0004a 83 f8 4d cmp eax, 77 ; 0000004dH - 0004d 74 07 je SHORT $LN3@stbi__bmp_ - -; 6048 : return 0; - - 0004f 33 c0 xor eax, eax - 00051 e9 83 00 00 00 jmp $LN1@stbi__bmp_ -$LN3@stbi__bmp_: - -; 6049 : stbi__get32le(s); // discard filesize - - 00056 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0005d e8 00 00 00 00 call stbi__get32le - 00062 90 npad 1 - -; 6050 : stbi__get16le(s); // discard reserved - - 00063 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0006a e8 00 00 00 00 call stbi__get16le - 0006f 90 npad 1 - -; 6051 : stbi__get16le(s); // discard reserved - - 00070 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00077 e8 00 00 00 00 call stbi__get16le - 0007c 90 npad 1 - -; 6052 : stbi__get32le(s); // discard data offset - - 0007d 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00084 e8 00 00 00 00 call stbi__get32le - 00089 90 npad 1 - -; 6053 : sz = stbi__get32le(s); - - 0008a 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00091 e8 00 00 00 00 call stbi__get32le - 00096 89 45 24 mov DWORD PTR sz$[rbp], eax - -; 6054 : r = (sz == 12 || sz == 40 || sz == 56 || sz == 108 || sz == 124); - - 00099 83 7d 24 0c cmp DWORD PTR sz$[rbp], 12 - 0009d 74 24 je SHORT $LN5@stbi__bmp_ - 0009f 83 7d 24 28 cmp DWORD PTR sz$[rbp], 40 ; 00000028H - 000a3 74 1e je SHORT $LN5@stbi__bmp_ - 000a5 83 7d 24 38 cmp DWORD PTR sz$[rbp], 56 ; 00000038H - 000a9 74 18 je SHORT $LN5@stbi__bmp_ - 000ab 83 7d 24 6c cmp DWORD PTR sz$[rbp], 108 ; 0000006cH - 000af 74 12 je SHORT $LN5@stbi__bmp_ - 000b1 83 7d 24 7c cmp DWORD PTR sz$[rbp], 124 ; 0000007cH - 000b5 74 0c je SHORT $LN5@stbi__bmp_ - 000b7 c7 85 f4 00 00 - 00 00 00 00 00 mov DWORD PTR tv83[rbp], 0 - 000c1 eb 0a jmp SHORT $LN6@stbi__bmp_ -$LN5@stbi__bmp_: - 000c3 c7 85 f4 00 00 - 00 01 00 00 00 mov DWORD PTR tv83[rbp], 1 -$LN6@stbi__bmp_: - 000cd 8b 85 f4 00 00 - 00 mov eax, DWORD PTR tv83[rbp] - 000d3 89 45 04 mov DWORD PTR r$[rbp], eax - -; 6055 : return r; - - 000d6 8b 45 04 mov eax, DWORD PTR r$[rbp] -$LN1@stbi__bmp_: - -; 6056 : } - - 000d9 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000e0 5f pop rdi - 000e1 5d pop rbp - 000e2 c3 ret 0 -stbi__bmp_test_raw ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__png_info_raw -_TEXT SEGMENT -p$ = 224 -x$ = 232 -y$ = 240 -comp$ = 248 -stbi__png_info_raw PROC ; COMDAT - -; 6003 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 6004 : if (!stbi__parse_png_file(p, STBI__SCAN_header, 0)) { - - 0002f 45 33 c0 xor r8d, r8d - 00032 ba 02 00 00 00 mov edx, 2 - 00037 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR p$[rbp] - 0003e e8 00 00 00 00 call stbi__parse_png_file - 00043 85 c0 test eax, eax - 00045 75 14 jne SHORT $LN2@stbi__png_ - -; 6005 : stbi__rewind(p->s); - - 00047 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR p$[rbp] - 0004e 48 8b 08 mov rcx, QWORD PTR [rax] - 00051 e8 00 00 00 00 call stbi__rewind - 00056 90 npad 1 - -; 6006 : return 0; - - 00057 33 c0 xor eax, eax - 00059 eb 64 jmp SHORT $LN1@stbi__png_ -$LN2@stbi__png_: - -; 6007 : } -; 6008 : if (x) - - 0005b 48 83 bd e8 00 - 00 00 00 cmp QWORD PTR x$[rbp], 0 - 00063 74 15 je SHORT $LN3@stbi__png_ - -; 6009 : *x = p->s->img_x; - - 00065 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR p$[rbp] - 0006c 48 8b 00 mov rax, QWORD PTR [rax] - 0006f 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR x$[rbp] - 00076 8b 00 mov eax, DWORD PTR [rax] - 00078 89 01 mov DWORD PTR [rcx], eax -$LN3@stbi__png_: - -; 6010 : if (y) - - 0007a 48 83 bd f0 00 - 00 00 00 cmp QWORD PTR y$[rbp], 0 - 00082 74 16 je SHORT $LN4@stbi__png_ - -; 6011 : *y = p->s->img_y; - - 00084 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR p$[rbp] - 0008b 48 8b 00 mov rax, QWORD PTR [rax] - 0008e 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR y$[rbp] - 00095 8b 40 04 mov eax, DWORD PTR [rax+4] - 00098 89 01 mov DWORD PTR [rcx], eax -$LN4@stbi__png_: - -; 6012 : if (comp) - - 0009a 48 83 bd f8 00 - 00 00 00 cmp QWORD PTR comp$[rbp], 0 - 000a2 74 16 je SHORT $LN5@stbi__png_ - -; 6013 : *comp = p->s->img_n; - - 000a4 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR p$[rbp] - 000ab 48 8b 00 mov rax, QWORD PTR [rax] - 000ae 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR comp$[rbp] - 000b5 8b 40 08 mov eax, DWORD PTR [rax+8] - 000b8 89 01 mov DWORD PTR [rcx], eax -$LN5@stbi__png_: - -; 6014 : return 1; - - 000ba b8 01 00 00 00 mov eax, 1 -$LN1@stbi__png_: - -; 6015 : } - - 000bf 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 000c6 5f pop rdi - 000c7 5d pop rbp - 000c8 c3 ret 0 -stbi__png_info_raw ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__do_png -_TEXT SEGMENT -result$ = 8 -tv69 = 216 -tv84 = 216 -p$ = 256 -x$ = 264 -y$ = 272 -n$ = 280 -req_comp$ = 288 -ri$ = 296 -stbi__do_png PROC ; COMDAT - -; 5944 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 18 01 - 00 00 sub rsp, 280 ; 00000118H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 5945 : void *result = NULL; - - 0002f 48 c7 45 08 00 - 00 00 00 mov QWORD PTR result$[rbp], 0 - -; 5946 : if (req_comp < 0 || req_comp > 4) - - 00037 83 bd 20 01 00 - 00 00 cmp DWORD PTR req_comp$[rbp], 0 - 0003e 7c 09 jl SHORT $LN3@stbi__do_p - 00040 83 bd 20 01 00 - 00 04 cmp DWORD PTR req_comp$[rbp], 4 - 00047 7e 34 jle SHORT $LN2@stbi__do_p -$LN3@stbi__do_p: - -; 5947 : return stbi__errpuc("bad req_comp", "Internal error"); - - 00049 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0N@KBPNPPBJ@bad?5req_comp@ - 00050 e8 00 00 00 00 call stbi__err - 00055 85 c0 test eax, eax - 00057 74 0d je SHORT $LN15@stbi__do_p - 00059 48 c7 85 d8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv69[rbp], 0 - 00064 eb 0b jmp SHORT $LN16@stbi__do_p -$LN15@stbi__do_p: - 00066 48 c7 85 d8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv69[rbp], 0 -$LN16@stbi__do_p: - 00071 48 8b 85 d8 00 - 00 00 mov rax, QWORD PTR tv69[rbp] - 00078 e9 2e 02 00 00 jmp $LN1@stbi__do_p -$LN2@stbi__do_p: - -; 5948 : if (stbi__parse_png_file(p, STBI__SCAN_load, req_comp)) { - - 0007d 44 8b 85 20 01 - 00 00 mov r8d, DWORD PTR req_comp$[rbp] - 00084 33 d2 xor edx, edx - 00086 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR p$[rbp] - 0008d e8 00 00 00 00 call stbi__parse_png_file - 00092 85 c0 test eax, eax - 00094 0f 84 aa 01 00 - 00 je $LN4@stbi__do_p - -; 5949 : if (p->depth <= 8) - - 0009a 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 000a1 83 78 20 08 cmp DWORD PTR [rax+32], 8 - 000a5 7f 0f jg SHORT $LN5@stbi__do_p - -; 5950 : ri->bits_per_channel = 8; - - 000a7 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR ri$[rbp] - 000ae c7 00 08 00 00 - 00 mov DWORD PTR [rax], 8 - 000b4 eb 50 jmp SHORT $LN6@stbi__do_p -$LN5@stbi__do_p: - -; 5951 : else if (p->depth == 16) - - 000b6 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 000bd 83 78 20 10 cmp DWORD PTR [rax+32], 16 - 000c1 75 0f jne SHORT $LN7@stbi__do_p - -; 5952 : ri->bits_per_channel = 16; - - 000c3 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR ri$[rbp] - 000ca c7 00 10 00 00 - 00 mov DWORD PTR [rax], 16 - 000d0 eb 34 jmp SHORT $LN8@stbi__do_p -$LN7@stbi__do_p: - -; 5953 : else -; 5954 : return stbi__errpuc("bad bits_per_channel", - - 000d2 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BF@NOEEEFMF@bad?5bits_per_channel@ - 000d9 e8 00 00 00 00 call stbi__err - 000de 85 c0 test eax, eax - 000e0 74 0d je SHORT $LN17@stbi__do_p - 000e2 48 c7 85 d8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv84[rbp], 0 - 000ed eb 0b jmp SHORT $LN18@stbi__do_p -$LN17@stbi__do_p: - 000ef 48 c7 85 d8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv84[rbp], 0 -$LN18@stbi__do_p: - 000fa 48 8b 85 d8 00 - 00 00 mov rax, QWORD PTR tv84[rbp] - 00101 e9 a5 01 00 00 jmp $LN1@stbi__do_p -$LN8@stbi__do_p: -$LN6@stbi__do_p: - -; 5955 : "PNG not supported: unsupported color depth"); -; 5956 : result = p->out; - - 00106 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 0010d 48 8b 40 18 mov rax, QWORD PTR [rax+24] - 00111 48 89 45 08 mov QWORD PTR result$[rbp], rax - -; 5957 : p->out = NULL; - - 00115 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 0011c 48 c7 40 18 00 - 00 00 00 mov QWORD PTR [rax+24], 0 - -; 5958 : if (req_comp && req_comp != p->s->img_out_n) { - - 00124 83 bd 20 01 00 - 00 00 cmp DWORD PTR req_comp$[rbp], 0 - 0012b 0f 84 c8 00 00 - 00 je $LN9@stbi__do_p - 00131 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 00138 48 8b 00 mov rax, QWORD PTR [rax] - 0013b 8b 40 0c mov eax, DWORD PTR [rax+12] - 0013e 39 85 20 01 00 - 00 cmp DWORD PTR req_comp$[rbp], eax - 00144 0f 84 af 00 00 - 00 je $LN9@stbi__do_p - -; 5959 : if (ri->bits_per_channel == 8) - - 0014a 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR ri$[rbp] - 00151 83 38 08 cmp DWORD PTR [rax], 8 - 00154 75 41 jne SHORT $LN10@stbi__do_p - -; 5960 : result = stbi__convert_format((unsigned char *)result, - - 00156 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 0015d 48 8b 00 mov rax, QWORD PTR [rax] - 00160 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR p$[rbp] - 00167 48 8b 09 mov rcx, QWORD PTR [rcx] - 0016a 48 8b 95 00 01 - 00 00 mov rdx, QWORD PTR p$[rbp] - 00171 48 8b 12 mov rdx, QWORD PTR [rdx] - 00174 8b 40 04 mov eax, DWORD PTR [rax+4] - 00177 89 44 24 20 mov DWORD PTR [rsp+32], eax - 0017b 44 8b 09 mov r9d, DWORD PTR [rcx] - 0017e 44 8b 85 20 01 - 00 00 mov r8d, DWORD PTR req_comp$[rbp] - 00185 8b 52 0c mov edx, DWORD PTR [rdx+12] - 00188 48 8b 4d 08 mov rcx, QWORD PTR result$[rbp] - 0018c e8 00 00 00 00 call stbi__convert_format - 00191 48 89 45 08 mov QWORD PTR result$[rbp], rax - 00195 eb 3f jmp SHORT $LN11@stbi__do_p -$LN10@stbi__do_p: - -; 5961 : p->s->img_out_n, req_comp, -; 5962 : p->s->img_x, p->s->img_y); -; 5963 : else -; 5964 : result = stbi__convert_format16((stbi__uint16 *)result, - - 00197 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 0019e 48 8b 00 mov rax, QWORD PTR [rax] - 001a1 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR p$[rbp] - 001a8 48 8b 09 mov rcx, QWORD PTR [rcx] - 001ab 48 8b 95 00 01 - 00 00 mov rdx, QWORD PTR p$[rbp] - 001b2 48 8b 12 mov rdx, QWORD PTR [rdx] - 001b5 8b 40 04 mov eax, DWORD PTR [rax+4] - 001b8 89 44 24 20 mov DWORD PTR [rsp+32], eax - 001bc 44 8b 09 mov r9d, DWORD PTR [rcx] - 001bf 44 8b 85 20 01 - 00 00 mov r8d, DWORD PTR req_comp$[rbp] - 001c6 8b 52 0c mov edx, DWORD PTR [rdx+12] - 001c9 48 8b 4d 08 mov rcx, QWORD PTR result$[rbp] - 001cd e8 00 00 00 00 call stbi__convert_format16 - 001d2 48 89 45 08 mov QWORD PTR result$[rbp], rax -$LN11@stbi__do_p: - -; 5965 : p->s->img_out_n, req_comp, -; 5966 : p->s->img_x, p->s->img_y); -; 5967 : p->s->img_out_n = req_comp; - - 001d6 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 001dd 48 8b 00 mov rax, QWORD PTR [rax] - 001e0 8b 8d 20 01 00 - 00 mov ecx, DWORD PTR req_comp$[rbp] - 001e6 89 48 0c mov DWORD PTR [rax+12], ecx - -; 5968 : if (result == NULL) - - 001e9 48 83 7d 08 00 cmp QWORD PTR result$[rbp], 0 - 001ee 75 09 jne SHORT $LN12@stbi__do_p - -; 5969 : return result; - - 001f0 48 8b 45 08 mov rax, QWORD PTR result$[rbp] - 001f4 e9 b2 00 00 00 jmp $LN1@stbi__do_p -$LN12@stbi__do_p: -$LN9@stbi__do_p: - -; 5970 : } -; 5971 : *x = p->s->img_x; - - 001f9 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 00200 48 8b 00 mov rax, QWORD PTR [rax] - 00203 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR x$[rbp] - 0020a 8b 00 mov eax, DWORD PTR [rax] - 0020c 89 01 mov DWORD PTR [rcx], eax - -; 5972 : *y = p->s->img_y; - - 0020e 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 00215 48 8b 00 mov rax, QWORD PTR [rax] - 00218 48 8b 8d 10 01 - 00 00 mov rcx, QWORD PTR y$[rbp] - 0021f 8b 40 04 mov eax, DWORD PTR [rax+4] - 00222 89 01 mov DWORD PTR [rcx], eax - -; 5973 : if (n) - - 00224 48 83 bd 18 01 - 00 00 00 cmp QWORD PTR n$[rbp], 0 - 0022c 74 16 je SHORT $LN13@stbi__do_p - -; 5974 : *n = p->s->img_n; - - 0022e 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 00235 48 8b 00 mov rax, QWORD PTR [rax] - 00238 48 8b 8d 18 01 - 00 00 mov rcx, QWORD PTR n$[rbp] - 0023f 8b 40 08 mov eax, DWORD PTR [rax+8] - 00242 89 01 mov DWORD PTR [rcx], eax -$LN13@stbi__do_p: -$LN4@stbi__do_p: - -; 5975 : } -; 5976 : STBI_FREE(p->out); - - 00244 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 0024b 48 8b 48 18 mov rcx, QWORD PTR [rax+24] - 0024f ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00255 90 npad 1 - -; 5977 : p->out = NULL; - - 00256 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 0025d 48 c7 40 18 00 - 00 00 00 mov QWORD PTR [rax+24], 0 - -; 5978 : STBI_FREE(p->expanded); - - 00265 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 0026c 48 8b 48 10 mov rcx, QWORD PTR [rax+16] - 00270 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00276 90 npad 1 - -; 5979 : p->expanded = NULL; - - 00277 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 0027e 48 c7 40 10 00 - 00 00 00 mov QWORD PTR [rax+16], 0 - -; 5980 : STBI_FREE(p->idata); - - 00286 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 0028d 48 8b 48 08 mov rcx, QWORD PTR [rax+8] - 00291 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00297 90 npad 1 - -; 5981 : p->idata = NULL; - - 00298 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR p$[rbp] - 0029f 48 c7 40 08 00 - 00 00 00 mov QWORD PTR [rax+8], 0 - -; 5982 : -; 5983 : return result; - - 002a7 48 8b 45 08 mov rax, QWORD PTR result$[rbp] -$LN1@stbi__do_p: - -; 5984 : } - - 002ab 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 002b2 5f pop rdi - 002b3 5d pop rbp - 002b4 c3 ret 0 -stbi__do_png ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__parse_png_file -_TEXT SEGMENT -palette$ = 16 -pal_img_n$ = 1060 -has_trans$ = 1092 -tc$ = 1124 -tc16$ = 1156 -ioff$ = 1188 -idata_limit$ = 1220 -i$ = 1252 -pal_len$ = 1284 -first$ = 1316 -k$ = 1348 -interlace$ = 1380 -color$ = 1412 -is_iphone$ = 1444 -s$ = 1480 -c$8 = 1512 -comp$9 = 1540 -filter$10 = 1572 -idata_limit_old$11 = 1604 -p$12 = 1640 -raw_len$13 = 1668 -bpl$14 = 1700 -tv78 = 2484 -tv194 = 2484 -tv347 = 2484 -tv396 = 2484 -tv463 = 2484 -tv197 = 2488 -__$ArrayPad$ = 2496 -z$ = 2544 -scan$ = 2552 -req_comp$ = 2560 -stbi__parse_png_file PROC ; COMDAT - -; 5690 : { - - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000e 55 push rbp - 0000f 57 push rdi - 00010 48 81 ec 18 0a - 00 00 sub rsp, 2584 ; 00000a18H - 00017 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 0001c 48 8d 7c 24 40 lea rdi, QWORD PTR [rsp+64] - 00021 b9 b6 01 00 00 mov ecx, 438 ; 000001b6H - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 38 - 0a 00 00 mov rcx, QWORD PTR [rsp+2616] - 00035 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 c0 09 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00052 90 npad 1 - -; 5691 : stbi_uc palette[1024], pal_img_n = 0; - - 00053 c6 85 24 04 00 - 00 00 mov BYTE PTR pal_img_n$[rbp], 0 - -; 5692 : stbi_uc has_trans = 0, tc[3] = { 0 }; - - 0005a c6 85 44 04 00 - 00 00 mov BYTE PTR has_trans$[rbp], 0 - 00061 48 8d 85 64 04 - 00 00 lea rax, QWORD PTR tc$[rbp] - 00068 48 8b f8 mov rdi, rax - 0006b 33 c0 xor eax, eax - 0006d b9 03 00 00 00 mov ecx, 3 - 00072 f3 aa rep stosb - -; 5693 : stbi__uint16 tc16[3]; -; 5694 : stbi__uint32 ioff = 0, idata_limit = 0, i, pal_len = 0; - - 00074 c7 85 a4 04 00 - 00 00 00 00 00 mov DWORD PTR ioff$[rbp], 0 - 0007e c7 85 c4 04 00 - 00 00 00 00 00 mov DWORD PTR idata_limit$[rbp], 0 - 00088 c7 85 04 05 00 - 00 00 00 00 00 mov DWORD PTR pal_len$[rbp], 0 - -; 5695 : int first = 1, k, interlace = 0, color = 0, is_iphone = 0; - - 00092 c7 85 24 05 00 - 00 01 00 00 00 mov DWORD PTR first$[rbp], 1 - 0009c c7 85 64 05 00 - 00 00 00 00 00 mov DWORD PTR interlace$[rbp], 0 - 000a6 c7 85 84 05 00 - 00 00 00 00 00 mov DWORD PTR color$[rbp], 0 - 000b0 c7 85 a4 05 00 - 00 00 00 00 00 mov DWORD PTR is_iphone$[rbp], 0 - -; 5696 : stbi__context *s = z->s; - - 000ba 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 000c1 48 8b 00 mov rax, QWORD PTR [rax] - 000c4 48 89 85 c8 05 - 00 00 mov QWORD PTR s$[rbp], rax - -; 5697 : -; 5698 : z->expanded = NULL; - - 000cb 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 000d2 48 c7 40 10 00 - 00 00 00 mov QWORD PTR [rax+16], 0 - -; 5699 : z->idata = NULL; - - 000da 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 000e1 48 c7 40 08 00 - 00 00 00 mov QWORD PTR [rax+8], 0 - -; 5700 : z->out = NULL; - - 000e9 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 000f0 48 c7 40 18 00 - 00 00 00 mov QWORD PTR [rax+24], 0 - -; 5701 : -; 5702 : if (!stbi__check_png_header(s)) - - 000f8 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000ff e8 00 00 00 00 call stbi__check_png_header - 00104 85 c0 test eax, eax - 00106 75 07 jne SHORT $LN21@stbi__pars - -; 5703 : return 0; - - 00108 33 c0 xor eax, eax - 0010a e9 aa 0d 00 00 jmp $LN1@stbi__pars -$LN21@stbi__pars: - -; 5704 : -; 5705 : if (scan == STBI__SCAN_type) - - 0010f 83 bd f8 09 00 - 00 01 cmp DWORD PTR scan$[rbp], 1 - 00116 75 0a jne SHORT $LN22@stbi__pars - -; 5706 : return 1; - - 00118 b8 01 00 00 00 mov eax, 1 - 0011d e9 97 0d 00 00 jmp $LN1@stbi__pars -$LN22@stbi__pars: -$LN2@stbi__pars: - -; 5707 : -; 5708 : for (;;) { -; 5709 : stbi__pngchunk c = stbi__get_chunk_header(s); - - 00122 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00129 e8 00 00 00 00 call stbi__get_chunk_header - 0012e 48 89 85 e8 05 - 00 00 mov QWORD PTR c$8[rbp], rax - -; 5710 : switch (c.type) { - - 00135 8b 85 ec 05 00 - 00 mov eax, DWORD PTR c$8[rbp+4] - 0013b 89 85 b4 09 00 - 00 mov DWORD PTR tv78[rbp], eax - 00141 81 bd b4 09 00 - 00 52 44 48 49 cmp DWORD PTR tv78[rbp], 1229472850 ; 49484452H - 0014b 77 3d ja SHORT $LN107@stbi__pars - 0014d 81 bd b4 09 00 - 00 52 44 48 49 cmp DWORD PTR tv78[rbp], 1229472850 ; 49484452H - 00157 74 78 je SHORT $LN24@stbi__pars - 00159 81 bd b4 09 00 - 00 49 42 67 43 cmp DWORD PTR tv78[rbp], 1130840649 ; 43674249H - 00163 74 4a je SHORT $LN23@stbi__pars - 00165 81 bd b4 09 00 - 00 54 41 44 49 cmp DWORD PTR tv78[rbp], 1229209940 ; 49444154H - 0016f 0f 84 f2 06 00 - 00 je $LN61@stbi__pars - 00175 81 bd b4 09 00 - 00 44 4e 45 49 cmp DWORD PTR tv78[rbp], 1229278788 ; 49454e44H - 0017f 0f 84 b9 08 00 - 00 je $LN72@stbi__pars - 00185 e9 4e 0c 00 00 jmp $LN93@stbi__pars -$LN107@stbi__pars: - 0018a 81 bd b4 09 00 - 00 45 54 4c 50 cmp DWORD PTR tv78[rbp], 1347179589 ; 504c5445H - 00194 0f 84 7c 03 00 - 00 je $LN44@stbi__pars - 0019a 81 bd b4 09 00 - 00 53 4e 52 74 cmp DWORD PTR tv78[rbp], 1951551059 ; 74524e53H - 001a4 0f 84 77 04 00 - 00 je $LN48@stbi__pars - 001aa e9 29 0c 00 00 jmp $LN93@stbi__pars -$LN23@stbi__pars: - -; 5711 : case STBI__PNG_TYPE('C', 'g', 'B', 'I'): -; 5712 : is_iphone = 1; - - 001af c7 85 a4 05 00 - 00 01 00 00 00 mov DWORD PTR is_iphone$[rbp], 1 - -; 5713 : stbi__skip(s, c.length); - - 001b9 8b 95 e8 05 00 - 00 mov edx, DWORD PTR c$8[rbp] - 001bf 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001c6 e8 00 00 00 00 call stbi__skip - 001cb 90 npad 1 - -; 5714 : break; - - 001cc e9 d6 0c 00 00 jmp $LN5@stbi__pars -$LN24@stbi__pars: - -; 5715 : case STBI__PNG_TYPE('I', 'H', 'D', 'R'): { -; 5716 : int comp, filter; -; 5717 : if (!first) - - 001d1 83 bd 24 05 00 - 00 00 cmp DWORD PTR first$[rbp], 0 - 001d8 75 11 jne SHORT $LN25@stbi__pars - -; 5718 : return stbi__err("multiple IHDR", "Corrupt PNG"); - - 001da 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0O@KBHBNJOK@multiple?5IHDR@ - 001e1 e8 00 00 00 00 call stbi__err - 001e6 e9 ce 0c 00 00 jmp $LN1@stbi__pars -$LN25@stbi__pars: - -; 5719 : first = 0; - - 001eb c7 85 24 05 00 - 00 00 00 00 00 mov DWORD PTR first$[rbp], 0 - -; 5720 : if (c.length != 13) - - 001f5 83 bd e8 05 00 - 00 0d cmp DWORD PTR c$8[rbp], 13 - 001fc 74 11 je SHORT $LN26@stbi__pars - -; 5721 : return stbi__err("bad IHDR len", "Corrupt PNG"); - - 001fe 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0N@POJLKMKK@bad?5IHDR?5len@ - 00205 e8 00 00 00 00 call stbi__err - 0020a e9 aa 0c 00 00 jmp $LN1@stbi__pars -$LN26@stbi__pars: - -; 5722 : s->img_x = stbi__get32be(s); - - 0020f 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00216 e8 00 00 00 00 call stbi__get32be - 0021b 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00222 89 01 mov DWORD PTR [rcx], eax - -; 5723 : s->img_y = stbi__get32be(s); - - 00224 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0022b e8 00 00 00 00 call stbi__get32be - 00230 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00237 89 41 04 mov DWORD PTR [rcx+4], eax - -; 5724 : if (s->img_y > STBI_MAX_DIMENSIONS) - - 0023a 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 00241 81 78 04 00 00 - 00 01 cmp DWORD PTR [rax+4], 16777216 ; 01000000H - 00248 76 11 jbe SHORT $LN27@stbi__pars - -; 5725 : return stbi__err("too large", "Very large image (corrupt?)"); - - 0024a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 00251 e8 00 00 00 00 call stbi__err - 00256 e9 5e 0c 00 00 jmp $LN1@stbi__pars -$LN27@stbi__pars: - -; 5726 : if (s->img_x > STBI_MAX_DIMENSIONS) - - 0025b 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 00262 81 38 00 00 00 - 01 cmp DWORD PTR [rax], 16777216 ; 01000000H - 00268 76 11 jbe SHORT $LN28@stbi__pars - -; 5727 : return stbi__err("too large", "Very large image (corrupt?)"); - - 0026a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 00271 e8 00 00 00 00 call stbi__err - 00276 e9 3e 0c 00 00 jmp $LN1@stbi__pars -$LN28@stbi__pars: - -; 5728 : z->depth = stbi__get8(s); - - 0027b 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00282 e8 00 00 00 00 call stbi__get8 - 00287 0f b6 c0 movzx eax, al - 0028a 48 8b 8d f0 09 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00291 89 41 20 mov DWORD PTR [rcx+32], eax - -; 5729 : if (z->depth != 1 && z->depth != 2 && z->depth != 4 && z->depth != 8 && - - 00294 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 0029b 83 78 20 01 cmp DWORD PTR [rax+32], 1 - 0029f 74 45 je SHORT $LN29@stbi__pars - 002a1 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 002a8 83 78 20 02 cmp DWORD PTR [rax+32], 2 - 002ac 74 38 je SHORT $LN29@stbi__pars - 002ae 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 002b5 83 78 20 04 cmp DWORD PTR [rax+32], 4 - 002b9 74 2b je SHORT $LN29@stbi__pars - 002bb 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 002c2 83 78 20 08 cmp DWORD PTR [rax+32], 8 - 002c6 74 1e je SHORT $LN29@stbi__pars - 002c8 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 002cf 83 78 20 10 cmp DWORD PTR [rax+32], 16 - 002d3 74 11 je SHORT $LN29@stbi__pars - -; 5730 : z->depth != 16) -; 5731 : return stbi__err("1/2/4/8/16-bit only", - - 002d5 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BE@EJHIPKNO@1?12?14?18?116?9bit?5only@ - 002dc e8 00 00 00 00 call stbi__err - 002e1 e9 d3 0b 00 00 jmp $LN1@stbi__pars -$LN29@stbi__pars: - -; 5732 : "PNG not supported: 1/2/4/8/16-bit only"); -; 5733 : color = stbi__get8(s); - - 002e6 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 002ed e8 00 00 00 00 call stbi__get8 - 002f2 0f b6 c0 movzx eax, al - 002f5 89 85 84 05 00 - 00 mov DWORD PTR color$[rbp], eax - -; 5734 : if (color > 6) - - 002fb 83 bd 84 05 00 - 00 06 cmp DWORD PTR color$[rbp], 6 - 00302 7e 11 jle SHORT $LN30@stbi__pars - -; 5735 : return stbi__err("bad ctype", "Corrupt PNG"); - - 00304 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09MBBNGCKB@bad?5ctype@ - 0030b e8 00 00 00 00 call stbi__err - 00310 e9 a4 0b 00 00 jmp $LN1@stbi__pars -$LN30@stbi__pars: - -; 5736 : if (color == 3 && z->depth == 16) - - 00315 83 bd 84 05 00 - 00 03 cmp DWORD PTR color$[rbp], 3 - 0031c 75 1e jne SHORT $LN31@stbi__pars - 0031e 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 00325 83 78 20 10 cmp DWORD PTR [rax+32], 16 - 00329 75 11 jne SHORT $LN31@stbi__pars - -; 5737 : return stbi__err("bad ctype", "Corrupt PNG"); - - 0032b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09MBBNGCKB@bad?5ctype@ - 00332 e8 00 00 00 00 call stbi__err - 00337 e9 7d 0b 00 00 jmp $LN1@stbi__pars -$LN31@stbi__pars: - -; 5738 : if (color == 3) - - 0033c 83 bd 84 05 00 - 00 03 cmp DWORD PTR color$[rbp], 3 - 00343 75 09 jne SHORT $LN32@stbi__pars - -; 5739 : pal_img_n = 3; - - 00345 c6 85 24 04 00 - 00 03 mov BYTE PTR pal_img_n$[rbp], 3 - 0034c eb 1e jmp SHORT $LN33@stbi__pars -$LN32@stbi__pars: - -; 5740 : else if (color & 1) - - 0034e 8b 85 84 05 00 - 00 mov eax, DWORD PTR color$[rbp] - 00354 83 e0 01 and eax, 1 - 00357 85 c0 test eax, eax - 00359 74 11 je SHORT $LN34@stbi__pars - -; 5741 : return stbi__err("bad ctype", "Corrupt PNG"); - - 0035b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09MBBNGCKB@bad?5ctype@ - 00362 e8 00 00 00 00 call stbi__err - 00367 e9 4d 0b 00 00 jmp $LN1@stbi__pars -$LN34@stbi__pars: -$LN33@stbi__pars: - -; 5742 : comp = stbi__get8(s); - - 0036c 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00373 e8 00 00 00 00 call stbi__get8 - 00378 0f b6 c0 movzx eax, al - 0037b 89 85 04 06 00 - 00 mov DWORD PTR comp$9[rbp], eax - -; 5743 : if (comp) - - 00381 83 bd 04 06 00 - 00 00 cmp DWORD PTR comp$9[rbp], 0 - 00388 74 11 je SHORT $LN35@stbi__pars - -; 5744 : return stbi__err("bad comp method", "Corrupt PNG"); - - 0038a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@MDMBDDFG@bad?5comp?5method@ - 00391 e8 00 00 00 00 call stbi__err - 00396 e9 1e 0b 00 00 jmp $LN1@stbi__pars -$LN35@stbi__pars: - -; 5745 : filter = stbi__get8(s); - - 0039b 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 003a2 e8 00 00 00 00 call stbi__get8 - 003a7 0f b6 c0 movzx eax, al - 003aa 89 85 24 06 00 - 00 mov DWORD PTR filter$10[rbp], eax - -; 5746 : if (filter) - - 003b0 83 bd 24 06 00 - 00 00 cmp DWORD PTR filter$10[rbp], 0 - 003b7 74 11 je SHORT $LN36@stbi__pars - -; 5747 : return stbi__err("bad filter method", "Corrupt PNG"); - - 003b9 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BC@GHLIKKMD@bad?5filter?5method@ - 003c0 e8 00 00 00 00 call stbi__err - 003c5 e9 ef 0a 00 00 jmp $LN1@stbi__pars -$LN36@stbi__pars: - -; 5748 : interlace = stbi__get8(s); - - 003ca 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 003d1 e8 00 00 00 00 call stbi__get8 - 003d6 0f b6 c0 movzx eax, al - 003d9 89 85 64 05 00 - 00 mov DWORD PTR interlace$[rbp], eax - -; 5749 : if (interlace > 1) - - 003df 83 bd 64 05 00 - 00 01 cmp DWORD PTR interlace$[rbp], 1 - 003e6 7e 11 jle SHORT $LN37@stbi__pars - -; 5750 : return stbi__err("bad interlace method", "Corrupt PNG"); - - 003e8 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BF@JCGDPBAA@bad?5interlace?5method@ - 003ef e8 00 00 00 00 call stbi__err - 003f4 e9 c0 0a 00 00 jmp $LN1@stbi__pars -$LN37@stbi__pars: - -; 5751 : if (!s->img_x || !s->img_y) - - 003f9 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 00400 83 38 00 cmp DWORD PTR [rax], 0 - 00403 74 0d je SHORT $LN39@stbi__pars - 00405 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 0040c 83 78 04 00 cmp DWORD PTR [rax+4], 0 - 00410 75 11 jne SHORT $LN38@stbi__pars -$LN39@stbi__pars: - -; 5752 : return stbi__err("0-pixel image", "Corrupt PNG"); - - 00412 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0O@FNFBHCOO@0?9pixel?5image@ - 00419 e8 00 00 00 00 call stbi__err - 0041e e9 96 0a 00 00 jmp $LN1@stbi__pars -$LN38@stbi__pars: - -; 5753 : if (!pal_img_n) { - - 00423 0f b6 85 24 04 - 00 00 movzx eax, BYTE PTR pal_img_n$[rbp] - 0042a 85 c0 test eax, eax - 0042c 0f 85 9b 00 00 - 00 jne $LN40@stbi__pars - -; 5754 : s->img_n = (color & 2 ? 3 : 1) + (color & 4 ? 1 : 0); - - 00432 8b 85 84 05 00 - 00 mov eax, DWORD PTR color$[rbp] - 00438 83 e0 02 and eax, 2 - 0043b 85 c0 test eax, eax - 0043d 74 0c je SHORT $LN97@stbi__pars - 0043f c7 85 b4 09 00 - 00 03 00 00 00 mov DWORD PTR tv194[rbp], 3 - 00449 eb 0a jmp SHORT $LN98@stbi__pars -$LN97@stbi__pars: - 0044b c7 85 b4 09 00 - 00 01 00 00 00 mov DWORD PTR tv194[rbp], 1 -$LN98@stbi__pars: - 00455 8b 85 84 05 00 - 00 mov eax, DWORD PTR color$[rbp] - 0045b 83 e0 04 and eax, 4 - 0045e 85 c0 test eax, eax - 00460 74 0c je SHORT $LN99@stbi__pars - 00462 c7 85 b8 09 00 - 00 01 00 00 00 mov DWORD PTR tv197[rbp], 1 - 0046c eb 0a jmp SHORT $LN100@stbi__pars -$LN99@stbi__pars: - 0046e c7 85 b8 09 00 - 00 00 00 00 00 mov DWORD PTR tv197[rbp], 0 -$LN100@stbi__pars: - 00478 8b 85 b8 09 00 - 00 mov eax, DWORD PTR tv197[rbp] - 0047e 8b 8d b4 09 00 - 00 mov ecx, DWORD PTR tv194[rbp] - 00484 03 c8 add ecx, eax - 00486 8b c1 mov eax, ecx - 00488 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0048f 89 41 08 mov DWORD PTR [rcx+8], eax - -; 5755 : if ((1 << 30) / s->img_x / s->img_n < s->img_y) - - 00492 33 d2 xor edx, edx - 00494 b8 00 00 00 40 mov eax, 1073741824 ; 40000000H - 00499 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 004a0 f7 31 div DWORD PTR [rcx] - 004a2 33 d2 xor edx, edx - 004a4 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 004ab f7 71 08 div DWORD PTR [rcx+8] - 004ae 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 004b5 3b 41 04 cmp eax, DWORD PTR [rcx+4] - 004b8 73 11 jae SHORT $LN42@stbi__pars - -; 5756 : return stbi__err("too large", "Image too large to decode"); - - 004ba 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 004c1 e8 00 00 00 00 call stbi__err - 004c6 e9 ee 09 00 00 jmp $LN1@stbi__pars -$LN42@stbi__pars: - -; 5757 : } else { - - 004cb eb 44 jmp SHORT $LN41@stbi__pars -$LN40@stbi__pars: - -; 5758 : // if paletted, then pal_n is our final components, and -; 5759 : // img_n is # components to decompress/filter. -; 5760 : s->img_n = 1; - - 004cd 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 004d4 c7 40 08 01 00 - 00 00 mov DWORD PTR [rax+8], 1 - -; 5761 : if ((1 << 30) / s->img_x / 4 < s->img_y) - - 004db 33 d2 xor edx, edx - 004dd b8 00 00 00 40 mov eax, 1073741824 ; 40000000H - 004e2 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 004e9 f7 31 div DWORD PTR [rcx] - 004eb 33 d2 xor edx, edx - 004ed b9 04 00 00 00 mov ecx, 4 - 004f2 f7 f1 div ecx - 004f4 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 004fb 3b 41 04 cmp eax, DWORD PTR [rcx+4] - 004fe 73 11 jae SHORT $LN43@stbi__pars - -; 5762 : return stbi__err("too large", "Corrupt PNG"); - - 00500 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 00507 e8 00 00 00 00 call stbi__err - 0050c e9 a8 09 00 00 jmp $LN1@stbi__pars -$LN43@stbi__pars: -$LN41@stbi__pars: - -; 5763 : } -; 5764 : // even with SCAN_header, have to scan to see if we have a tRNS -; 5765 : break; - - 00511 e9 91 09 00 00 jmp $LN5@stbi__pars -$LN44@stbi__pars: - -; 5766 : } -; 5767 : -; 5768 : case STBI__PNG_TYPE('P', 'L', 'T', 'E'): { -; 5769 : if (first) - - 00516 83 bd 24 05 00 - 00 00 cmp DWORD PTR first$[rbp], 0 - 0051d 74 11 je SHORT $LN45@stbi__pars - -; 5770 : return stbi__err("first not IHDR", "Corrupt PNG"); - - 0051f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0P@JEAFOMAF@first?5not?5IHDR@ - 00526 e8 00 00 00 00 call stbi__err - 0052b e9 89 09 00 00 jmp $LN1@stbi__pars -$LN45@stbi__pars: - -; 5771 : if (c.length > 256 * 3) - - 00530 81 bd e8 05 00 - 00 00 03 00 00 cmp DWORD PTR c$8[rbp], 768 ; 00000300H - 0053a 76 11 jbe SHORT $LN46@stbi__pars - -; 5772 : return stbi__err("invalid PLTE", "Corrupt PNG"); - - 0053c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0N@JCPAJAKB@invalid?5PLTE@ - 00543 e8 00 00 00 00 call stbi__err - 00548 e9 6c 09 00 00 jmp $LN1@stbi__pars -$LN46@stbi__pars: - -; 5773 : pal_len = c.length / 3; - - 0054d 33 d2 xor edx, edx - 0054f 8b 85 e8 05 00 - 00 mov eax, DWORD PTR c$8[rbp] - 00555 b9 03 00 00 00 mov ecx, 3 - 0055a f7 f1 div ecx - 0055c 89 85 04 05 00 - 00 mov DWORD PTR pal_len$[rbp], eax - -; 5774 : if (pal_len * 3 != c.length) - - 00562 6b 85 04 05 00 - 00 03 imul eax, DWORD PTR pal_len$[rbp], 3 - 00569 3b 85 e8 05 00 - 00 cmp eax, DWORD PTR c$8[rbp] - 0056f 74 11 je SHORT $LN47@stbi__pars - -; 5775 : return stbi__err("invalid PLTE", "Corrupt PNG"); - - 00571 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0N@JCPAJAKB@invalid?5PLTE@ - 00578 e8 00 00 00 00 call stbi__err - 0057d e9 37 09 00 00 jmp $LN1@stbi__pars -$LN47@stbi__pars: - -; 5776 : for (i = 0; i < pal_len; ++i) { - - 00582 c7 85 e4 04 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 0058c eb 0e jmp SHORT $LN9@stbi__pars -$LN7@stbi__pars: - 0058e 8b 85 e4 04 00 - 00 mov eax, DWORD PTR i$[rbp] - 00594 ff c0 inc eax - 00596 89 85 e4 04 00 - 00 mov DWORD PTR i$[rbp], eax -$LN9@stbi__pars: - 0059c 8b 85 04 05 00 - 00 mov eax, DWORD PTR pal_len$[rbp] - 005a2 39 85 e4 04 00 - 00 cmp DWORD PTR i$[rbp], eax - 005a8 73 72 jae SHORT $LN8@stbi__pars - -; 5777 : palette[i * 4 + 0] = stbi__get8(s); - - 005aa 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 005b1 e8 00 00 00 00 call stbi__get8 - 005b6 8b 8d e4 04 00 - 00 mov ecx, DWORD PTR i$[rbp] - 005bc c1 e1 02 shl ecx, 2 - 005bf 8b c9 mov ecx, ecx - 005c1 88 44 0d 10 mov BYTE PTR palette$[rbp+rcx], al - -; 5778 : palette[i * 4 + 1] = stbi__get8(s); - - 005c5 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 005cc e8 00 00 00 00 call stbi__get8 - 005d1 8b 8d e4 04 00 - 00 mov ecx, DWORD PTR i$[rbp] - 005d7 8d 0c 8d 01 00 - 00 00 lea ecx, DWORD PTR [rcx*4+1] - 005de 8b c9 mov ecx, ecx - 005e0 88 44 0d 10 mov BYTE PTR palette$[rbp+rcx], al - -; 5779 : palette[i * 4 + 2] = stbi__get8(s); - - 005e4 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 005eb e8 00 00 00 00 call stbi__get8 - 005f0 8b 8d e4 04 00 - 00 mov ecx, DWORD PTR i$[rbp] - 005f6 8d 0c 8d 02 00 - 00 00 lea ecx, DWORD PTR [rcx*4+2] - 005fd 8b c9 mov ecx, ecx - 005ff 88 44 0d 10 mov BYTE PTR palette$[rbp+rcx], al - -; 5780 : palette[i * 4 + 3] = 255; - - 00603 8b 85 e4 04 00 - 00 mov eax, DWORD PTR i$[rbp] - 00609 8d 04 85 03 00 - 00 00 lea eax, DWORD PTR [rax*4+3] - 00610 8b c0 mov eax, eax - 00612 c6 44 05 10 ff mov BYTE PTR palette$[rbp+rax], 255 ; 000000ffH - -; 5781 : } - - 00617 e9 72 ff ff ff jmp $LN7@stbi__pars -$LN8@stbi__pars: - -; 5782 : break; - - 0061c e9 86 08 00 00 jmp $LN5@stbi__pars -$LN48@stbi__pars: - -; 5783 : } -; 5784 : -; 5785 : case STBI__PNG_TYPE('t', 'R', 'N', 'S'): { -; 5786 : if (first) - - 00621 83 bd 24 05 00 - 00 00 cmp DWORD PTR first$[rbp], 0 - 00628 74 11 je SHORT $LN49@stbi__pars - -; 5787 : return stbi__err("first not IHDR", "Corrupt PNG"); - - 0062a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0P@JEAFOMAF@first?5not?5IHDR@ - 00631 e8 00 00 00 00 call stbi__err - 00636 e9 7e 08 00 00 jmp $LN1@stbi__pars -$LN49@stbi__pars: - -; 5788 : if (z->idata) - - 0063b 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 00642 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 00647 74 11 je SHORT $LN50@stbi__pars - -; 5789 : return stbi__err("tRNS after IDAT", "Corrupt PNG"); - - 00649 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@PCPJHDKJ@tRNS?5after?5IDAT@ - 00650 e8 00 00 00 00 call stbi__err - 00655 e9 5f 08 00 00 jmp $LN1@stbi__pars -$LN50@stbi__pars: - -; 5790 : if (pal_img_n) { - - 0065a 0f b6 85 24 04 - 00 00 movzx eax, BYTE PTR pal_img_n$[rbp] - 00661 85 c0 test eax, eax - 00663 0f 84 af 00 00 - 00 je $LN51@stbi__pars - -; 5791 : if (scan == STBI__SCAN_header) { - - 00669 83 bd f8 09 00 - 00 02 cmp DWORD PTR scan$[rbp], 2 - 00670 75 18 jne SHORT $LN53@stbi__pars - -; 5792 : s->img_n = 4; - - 00672 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 00679 c7 40 08 04 00 - 00 00 mov DWORD PTR [rax+8], 4 - -; 5793 : return 1; - - 00680 b8 01 00 00 00 mov eax, 1 - 00685 e9 2f 08 00 00 jmp $LN1@stbi__pars -$LN53@stbi__pars: - -; 5794 : } -; 5795 : if (pal_len == 0) - - 0068a 83 bd 04 05 00 - 00 00 cmp DWORD PTR pal_len$[rbp], 0 - 00691 75 11 jne SHORT $LN54@stbi__pars - -; 5796 : return stbi__err("tRNS before PLTE", "Corrupt PNG"); - - 00693 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@CEDNNLBG@tRNS?5before?5PLTE@ - 0069a e8 00 00 00 00 call stbi__err - 0069f e9 15 08 00 00 jmp $LN1@stbi__pars -$LN54@stbi__pars: - -; 5797 : if (c.length > pal_len) - - 006a4 8b 85 04 05 00 - 00 mov eax, DWORD PTR pal_len$[rbp] - 006aa 39 85 e8 05 00 - 00 cmp DWORD PTR c$8[rbp], eax - 006b0 76 11 jbe SHORT $LN55@stbi__pars - -; 5798 : return stbi__err("bad tRNS len", "Corrupt PNG"); - - 006b2 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0N@KDLCCKCH@bad?5tRNS?5len@ - 006b9 e8 00 00 00 00 call stbi__err - 006be e9 f6 07 00 00 jmp $LN1@stbi__pars -$LN55@stbi__pars: - -; 5799 : pal_img_n = 4; - - 006c3 c6 85 24 04 00 - 00 04 mov BYTE PTR pal_img_n$[rbp], 4 - -; 5800 : for (i = 0; i < c.length; ++i) - - 006ca c7 85 e4 04 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 006d4 eb 0e jmp SHORT $LN12@stbi__pars -$LN10@stbi__pars: - 006d6 8b 85 e4 04 00 - 00 mov eax, DWORD PTR i$[rbp] - 006dc ff c0 inc eax - 006de 89 85 e4 04 00 - 00 mov DWORD PTR i$[rbp], eax -$LN12@stbi__pars: - 006e4 8b 85 e8 05 00 - 00 mov eax, DWORD PTR c$8[rbp] - 006ea 39 85 e4 04 00 - 00 cmp DWORD PTR i$[rbp], eax - 006f0 73 21 jae SHORT $LN11@stbi__pars - -; 5801 : palette[i * 4 + 3] = stbi__get8(s); - - 006f2 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 006f9 e8 00 00 00 00 call stbi__get8 - 006fe 8b 8d e4 04 00 - 00 mov ecx, DWORD PTR i$[rbp] - 00704 8d 0c 8d 03 00 - 00 00 lea ecx, DWORD PTR [rcx*4+3] - 0070b 8b c9 mov ecx, ecx - 0070d 88 44 0d 10 mov BYTE PTR palette$[rbp+rcx], al - 00711 eb c3 jmp SHORT $LN10@stbi__pars -$LN11@stbi__pars: - -; 5802 : } else { - - 00713 e9 4a 01 00 00 jmp $LN52@stbi__pars -$LN51@stbi__pars: - -; 5803 : if (!(s->img_n & 1)) - - 00718 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 0071f 8b 40 08 mov eax, DWORD PTR [rax+8] - 00722 83 e0 01 and eax, 1 - 00725 85 c0 test eax, eax - 00727 75 11 jne SHORT $LN56@stbi__pars - -; 5804 : return stbi__err("tRNS with alpha", "Corrupt PNG"); - - 00729 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@ENDPGCHB@tRNS?5with?5alpha@ - 00730 e8 00 00 00 00 call stbi__err - 00735 e9 7f 07 00 00 jmp $LN1@stbi__pars -$LN56@stbi__pars: - -; 5805 : if (c.length != (stbi__uint32)s->img_n * 2) - - 0073a 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 00741 8b 40 08 mov eax, DWORD PTR [rax+8] - 00744 d1 e0 shl eax, 1 - 00746 39 85 e8 05 00 - 00 cmp DWORD PTR c$8[rbp], eax - 0074c 74 11 je SHORT $LN57@stbi__pars - -; 5806 : return stbi__err("bad tRNS len", "Corrupt PNG"); - - 0074e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0N@KDLCCKCH@bad?5tRNS?5len@ - 00755 e8 00 00 00 00 call stbi__err - 0075a e9 5a 07 00 00 jmp $LN1@stbi__pars -$LN57@stbi__pars: - -; 5807 : has_trans = 1; - - 0075f c6 85 44 04 00 - 00 01 mov BYTE PTR has_trans$[rbp], 1 - -; 5808 : // non-paletted with tRNS = constant alpha. if header-scanning, we can stop now. -; 5809 : if (scan == STBI__SCAN_header) { - - 00766 83 bd f8 09 00 - 00 02 cmp DWORD PTR scan$[rbp], 2 - 0076d 75 20 jne SHORT $LN58@stbi__pars - -; 5810 : ++s->img_n; - - 0076f 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 00776 8b 40 08 mov eax, DWORD PTR [rax+8] - 00779 ff c0 inc eax - 0077b 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00782 89 41 08 mov DWORD PTR [rcx+8], eax - -; 5811 : return 1; - - 00785 b8 01 00 00 00 mov eax, 1 - 0078a e9 2a 07 00 00 jmp $LN1@stbi__pars -$LN58@stbi__pars: - -; 5812 : } -; 5813 : if (z->depth == 16) { - - 0078f 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 00796 83 78 20 10 cmp DWORD PTR [rax+32], 16 - 0079a 75 54 jne SHORT $LN59@stbi__pars - -; 5814 : for (k = 0; k < s->img_n && k < 3; - - 0079c c7 85 44 05 00 - 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 - 007a6 eb 0e jmp SHORT $LN15@stbi__pars -$LN13@stbi__pars: - -; 5815 : ++k) // extra loop test to suppress false GCC warning - - 007a8 8b 85 44 05 00 - 00 mov eax, DWORD PTR k$[rbp] - 007ae ff c0 inc eax - 007b0 89 85 44 05 00 - 00 mov DWORD PTR k$[rbp], eax -$LN15@stbi__pars: - -; 5814 : for (k = 0; k < s->img_n && k < 3; - - 007b6 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 007bd 8b 40 08 mov eax, DWORD PTR [rax+8] - 007c0 39 85 44 05 00 - 00 cmp DWORD PTR k$[rbp], eax - 007c6 7d 26 jge SHORT $LN14@stbi__pars - 007c8 83 bd 44 05 00 - 00 03 cmp DWORD PTR k$[rbp], 3 - 007cf 7d 1d jge SHORT $LN14@stbi__pars - -; 5816 : tc16[k] = (stbi__uint16)stbi__get16be( - - 007d1 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 007d8 e8 00 00 00 00 call stbi__get16be - 007dd 48 63 8d 44 05 - 00 00 movsxd rcx, DWORD PTR k$[rbp] - 007e4 66 89 84 4d 84 - 04 00 00 mov WORD PTR tc16$[rbp+rcx*2], ax - 007ec eb ba jmp SHORT $LN13@stbi__pars -$LN14@stbi__pars: - -; 5817 : s); // copy the values as-is -; 5818 : } else { - - 007ee eb 72 jmp SHORT $LN60@stbi__pars -$LN59@stbi__pars: - -; 5819 : for (k = 0; k < s->img_n && k < 3; ++k) - - 007f0 c7 85 44 05 00 - 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 - 007fa eb 0e jmp SHORT $LN18@stbi__pars -$LN16@stbi__pars: - 007fc 8b 85 44 05 00 - 00 mov eax, DWORD PTR k$[rbp] - 00802 ff c0 inc eax - 00804 89 85 44 05 00 - 00 mov DWORD PTR k$[rbp], eax -$LN18@stbi__pars: - 0080a 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 00811 8b 40 08 mov eax, DWORD PTR [rax+8] - 00814 39 85 44 05 00 - 00 cmp DWORD PTR k$[rbp], eax - 0081a 7d 46 jge SHORT $LN17@stbi__pars - 0081c 83 bd 44 05 00 - 00 03 cmp DWORD PTR k$[rbp], 3 - 00823 7d 3d jge SHORT $LN17@stbi__pars - -; 5820 : tc[k] = (stbi_uc)(stbi__get16be(s) & 255) * - - 00825 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0082c e8 00 00 00 00 call stbi__get16be - 00831 25 ff 00 00 00 and eax, 255 ; 000000ffH - 00836 0f b6 c0 movzx eax, al - 00839 48 8b 8d f0 09 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00840 48 63 49 20 movsxd rcx, DWORD PTR [rcx+32] - 00844 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__depth_scale_table - 0084b 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 0084f 0f af c1 imul eax, ecx - 00852 48 63 8d 44 05 - 00 00 movsxd rcx, DWORD PTR k$[rbp] - 00859 88 84 0d 64 04 - 00 00 mov BYTE PTR tc$[rbp+rcx], al - 00860 eb 9a jmp SHORT $LN16@stbi__pars -$LN17@stbi__pars: -$LN60@stbi__pars: -$LN52@stbi__pars: - -; 5821 : stbi__depth_scale_table -; 5822 : [z->depth]; // non 8-bit images will be larger -; 5823 : } -; 5824 : } -; 5825 : break; - - 00862 e9 40 06 00 00 jmp $LN5@stbi__pars -$LN61@stbi__pars: - -; 5826 : } -; 5827 : -; 5828 : case STBI__PNG_TYPE('I', 'D', 'A', 'T'): { -; 5829 : if (first) - - 00867 83 bd 24 05 00 - 00 00 cmp DWORD PTR first$[rbp], 0 - 0086e 74 11 je SHORT $LN62@stbi__pars - -; 5830 : return stbi__err("first not IHDR", "Corrupt PNG"); - - 00870 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0P@JEAFOMAF@first?5not?5IHDR@ - 00877 e8 00 00 00 00 call stbi__err - 0087c e9 38 06 00 00 jmp $LN1@stbi__pars -$LN62@stbi__pars: - -; 5831 : if (pal_img_n && !pal_len) - - 00881 0f b6 85 24 04 - 00 00 movzx eax, BYTE PTR pal_img_n$[rbp] - 00888 85 c0 test eax, eax - 0088a 74 1a je SHORT $LN63@stbi__pars - 0088c 83 bd 04 05 00 - 00 00 cmp DWORD PTR pal_len$[rbp], 0 - 00893 75 11 jne SHORT $LN63@stbi__pars - -; 5832 : return stbi__err("no PLTE", "Corrupt PNG"); - - 00895 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07CKIELOEH@no?5PLTE@ - 0089c e8 00 00 00 00 call stbi__err - 008a1 e9 13 06 00 00 jmp $LN1@stbi__pars -$LN63@stbi__pars: - -; 5833 : if (scan == STBI__SCAN_header) { - - 008a6 83 bd f8 09 00 - 00 02 cmp DWORD PTR scan$[rbp], 2 - 008ad 75 26 jne SHORT $LN64@stbi__pars - -; 5834 : // header scan definitely stops at first IDAT -; 5835 : if (pal_img_n) - - 008af 0f b6 85 24 04 - 00 00 movzx eax, BYTE PTR pal_img_n$[rbp] - 008b6 85 c0 test eax, eax - 008b8 74 11 je SHORT $LN65@stbi__pars - -; 5836 : s->img_n = pal_img_n; - - 008ba 0f b6 85 24 04 - 00 00 movzx eax, BYTE PTR pal_img_n$[rbp] - 008c1 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 008c8 89 41 08 mov DWORD PTR [rcx+8], eax -$LN65@stbi__pars: - -; 5837 : return 1; - - 008cb b8 01 00 00 00 mov eax, 1 - 008d0 e9 e4 05 00 00 jmp $LN1@stbi__pars -$LN64@stbi__pars: - -; 5838 : } -; 5839 : if (c.length > (1u << 30)) - - 008d5 81 bd e8 05 00 - 00 00 00 00 40 cmp DWORD PTR c$8[rbp], 1073741824 ; 40000000H - 008df 76 11 jbe SHORT $LN66@stbi__pars - -; 5840 : return stbi__err("IDAT size limit", - - 008e1 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@PLHGLONG@IDAT?5size?5limit@ - 008e8 e8 00 00 00 00 call stbi__err - 008ed e9 c7 05 00 00 jmp $LN1@stbi__pars -$LN66@stbi__pars: - -; 5841 : "IDAT section larger than 2^30 bytes"); -; 5842 : if ((int)(ioff + c.length) < (int)ioff) - - 008f2 8b 85 e8 05 00 - 00 mov eax, DWORD PTR c$8[rbp] - 008f8 8b 8d a4 04 00 - 00 mov ecx, DWORD PTR ioff$[rbp] - 008fe 03 c8 add ecx, eax - 00900 8b c1 mov eax, ecx - 00902 3b 85 a4 04 00 - 00 cmp eax, DWORD PTR ioff$[rbp] - 00908 7d 07 jge SHORT $LN67@stbi__pars - -; 5843 : return 0; - - 0090a 33 c0 xor eax, eax - 0090c e9 a8 05 00 00 jmp $LN1@stbi__pars -$LN67@stbi__pars: - -; 5844 : if (ioff + c.length > idata_limit) { - - 00911 8b 85 e8 05 00 - 00 mov eax, DWORD PTR c$8[rbp] - 00917 8b 8d a4 04 00 - 00 mov ecx, DWORD PTR ioff$[rbp] - 0091d 03 c8 add ecx, eax - 0091f 8b c1 mov eax, ecx - 00921 3b 85 c4 04 00 - 00 cmp eax, DWORD PTR idata_limit$[rbp] - 00927 0f 86 ba 00 00 - 00 jbe $LN68@stbi__pars - -; 5845 : stbi__uint32 idata_limit_old = idata_limit; - - 0092d 8b 85 c4 04 00 - 00 mov eax, DWORD PTR idata_limit$[rbp] - 00933 89 85 44 06 00 - 00 mov DWORD PTR idata_limit_old$11[rbp], eax - -; 5846 : stbi_uc *p; -; 5847 : if (idata_limit == 0) - - 00939 83 bd c4 04 00 - 00 00 cmp DWORD PTR idata_limit$[rbp], 0 - 00940 75 30 jne SHORT $LN69@stbi__pars - -; 5848 : idata_limit = c.length > 4096 ? c.length : 4096; - - 00942 81 bd e8 05 00 - 00 00 10 00 00 cmp DWORD PTR c$8[rbp], 4096 ; 00001000H - 0094c 76 0e jbe SHORT $LN101@stbi__pars - 0094e 8b 85 e8 05 00 - 00 mov eax, DWORD PTR c$8[rbp] - 00954 89 85 b4 09 00 - 00 mov DWORD PTR tv347[rbp], eax - 0095a eb 0a jmp SHORT $LN102@stbi__pars -$LN101@stbi__pars: - 0095c c7 85 b4 09 00 - 00 00 10 00 00 mov DWORD PTR tv347[rbp], 4096 ; 00001000H -$LN102@stbi__pars: - 00966 8b 85 b4 09 00 - 00 mov eax, DWORD PTR tv347[rbp] - 0096c 89 85 c4 04 00 - 00 mov DWORD PTR idata_limit$[rbp], eax -$LN69@stbi__pars: -$LN19@stbi__pars: - -; 5849 : while (ioff + c.length > idata_limit) - - 00972 8b 85 e8 05 00 - 00 mov eax, DWORD PTR c$8[rbp] - 00978 8b 8d a4 04 00 - 00 mov ecx, DWORD PTR ioff$[rbp] - 0097e 03 c8 add ecx, eax - 00980 8b c1 mov eax, ecx - 00982 3b 85 c4 04 00 - 00 cmp eax, DWORD PTR idata_limit$[rbp] - 00988 76 10 jbe SHORT $LN20@stbi__pars - -; 5850 : idata_limit *= 2; - - 0098a 8b 85 c4 04 00 - 00 mov eax, DWORD PTR idata_limit$[rbp] - 00990 d1 e0 shl eax, 1 - 00992 89 85 c4 04 00 - 00 mov DWORD PTR idata_limit$[rbp], eax - 00998 eb d8 jmp SHORT $LN19@stbi__pars -$LN20@stbi__pars: - -; 5851 : STBI_NOTUSED(idata_limit_old); -; 5852 : p = (stbi_uc *)STBI_REALLOC_SIZED(z->idata, idata_limit_old, - - 0099a 8b 85 c4 04 00 - 00 mov eax, DWORD PTR idata_limit$[rbp] - 009a0 8b d0 mov edx, eax - 009a2 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 009a9 48 8b 48 08 mov rcx, QWORD PTR [rax+8] - 009ad ff 15 00 00 00 - 00 call QWORD PTR __imp_realloc - 009b3 48 89 85 68 06 - 00 00 mov QWORD PTR p$12[rbp], rax - -; 5853 : idata_limit); -; 5854 : if (p == NULL) - - 009ba 48 83 bd 68 06 - 00 00 00 cmp QWORD PTR p$12[rbp], 0 - 009c2 75 11 jne SHORT $LN70@stbi__pars - -; 5855 : return stbi__err("outofmem", "Out of memory"); - - 009c4 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 009cb e8 00 00 00 00 call stbi__err - 009d0 e9 e4 04 00 00 jmp $LN1@stbi__pars -$LN70@stbi__pars: - -; 5856 : z->idata = p; - - 009d5 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 009dc 48 8b 8d 68 06 - 00 00 mov rcx, QWORD PTR p$12[rbp] - 009e3 48 89 48 08 mov QWORD PTR [rax+8], rcx -$LN68@stbi__pars: - -; 5857 : } -; 5858 : if (!stbi__getn(s, z->idata + ioff, c.length)) - - 009e7 8b 85 a4 04 00 - 00 mov eax, DWORD PTR ioff$[rbp] - 009ed 48 8b 8d f0 09 - 00 00 mov rcx, QWORD PTR z$[rbp] - 009f4 48 03 41 08 add rax, QWORD PTR [rcx+8] - 009f8 44 8b 85 e8 05 - 00 00 mov r8d, DWORD PTR c$8[rbp] - 009ff 48 8b d0 mov rdx, rax - 00a02 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00a09 e8 00 00 00 00 call stbi__getn - 00a0e 85 c0 test eax, eax - 00a10 75 11 jne SHORT $LN71@stbi__pars - -; 5859 : return stbi__err("outofdata", "Corrupt PNG"); - - 00a12 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09MNNCNKEO@outofdata@ - 00a19 e8 00 00 00 00 call stbi__err - 00a1e e9 96 04 00 00 jmp $LN1@stbi__pars -$LN71@stbi__pars: - -; 5860 : ioff += c.length; - - 00a23 8b 85 e8 05 00 - 00 mov eax, DWORD PTR c$8[rbp] - 00a29 8b 8d a4 04 00 - 00 mov ecx, DWORD PTR ioff$[rbp] - 00a2f 03 c8 add ecx, eax - 00a31 8b c1 mov eax, ecx - 00a33 89 85 a4 04 00 - 00 mov DWORD PTR ioff$[rbp], eax - -; 5861 : break; - - 00a39 e9 69 04 00 00 jmp $LN5@stbi__pars -$LN72@stbi__pars: - -; 5862 : } -; 5863 : -; 5864 : case STBI__PNG_TYPE('I', 'E', 'N', 'D'): { -; 5865 : stbi__uint32 raw_len, bpl; -; 5866 : if (first) - - 00a3e 83 bd 24 05 00 - 00 00 cmp DWORD PTR first$[rbp], 0 - 00a45 74 11 je SHORT $LN73@stbi__pars - -; 5867 : return stbi__err("first not IHDR", "Corrupt PNG"); - - 00a47 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0P@JEAFOMAF@first?5not?5IHDR@ - 00a4e e8 00 00 00 00 call stbi__err - 00a53 e9 61 04 00 00 jmp $LN1@stbi__pars -$LN73@stbi__pars: - -; 5868 : if (scan != STBI__SCAN_load) - - 00a58 83 bd f8 09 00 - 00 00 cmp DWORD PTR scan$[rbp], 0 - 00a5f 74 0a je SHORT $LN74@stbi__pars - -; 5869 : return 1; - - 00a61 b8 01 00 00 00 mov eax, 1 - 00a66 e9 4e 04 00 00 jmp $LN1@stbi__pars -$LN74@stbi__pars: - -; 5870 : if (z->idata == NULL) - - 00a6b 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 00a72 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 00a77 75 11 jne SHORT $LN75@stbi__pars - -; 5871 : return stbi__err("no IDAT", "Corrupt PNG"); - - 00a79 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07MLPECBNA@no?5IDAT@ - 00a80 e8 00 00 00 00 call stbi__err - 00a85 e9 2f 04 00 00 jmp $LN1@stbi__pars -$LN75@stbi__pars: - -; 5872 : // initial guess for decoded data size to avoid unnecessary reallocs -; 5873 : bpl = (s->img_x * z->depth + 7) / 8; // bytes per line, per component - - 00a8a 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 00a91 48 8b 8d f0 09 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00a98 8b 00 mov eax, DWORD PTR [rax] - 00a9a 0f af 41 20 imul eax, DWORD PTR [rcx+32] - 00a9e 83 c0 07 add eax, 7 - 00aa1 33 d2 xor edx, edx - 00aa3 b9 08 00 00 00 mov ecx, 8 - 00aa8 f7 f1 div ecx - 00aaa 89 85 a4 06 00 - 00 mov DWORD PTR bpl$14[rbp], eax - -; 5874 : raw_len = bpl * s->img_y * s->img_n /* pixels */ + - - 00ab0 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 00ab7 8b 8d a4 06 00 - 00 mov ecx, DWORD PTR bpl$14[rbp] - 00abd 0f af 48 04 imul ecx, DWORD PTR [rax+4] - 00ac1 8b c1 mov eax, ecx - 00ac3 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00aca 0f af 41 08 imul eax, DWORD PTR [rcx+8] - 00ace 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00ad5 03 41 04 add eax, DWORD PTR [rcx+4] - 00ad8 89 85 84 06 00 - 00 mov DWORD PTR raw_len$13[rbp], eax - -; 5875 : s->img_y /* filter mode per row */; -; 5876 : z->expanded = (stbi_uc *)stbi_zlib_decode_malloc_guesssize_headerflag( - - 00ade 83 bd a4 05 00 - 00 00 cmp DWORD PTR is_iphone$[rbp], 0 - 00ae5 75 0c jne SHORT $LN103@stbi__pars - 00ae7 c7 85 b4 09 00 - 00 01 00 00 00 mov DWORD PTR tv396[rbp], 1 - 00af1 eb 0a jmp SHORT $LN104@stbi__pars -$LN103@stbi__pars: - 00af3 c7 85 b4 09 00 - 00 00 00 00 00 mov DWORD PTR tv396[rbp], 0 -$LN104@stbi__pars: - 00afd 8b 85 b4 09 00 - 00 mov eax, DWORD PTR tv396[rbp] - 00b03 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00b07 4c 8d 8d 84 06 - 00 00 lea r9, QWORD PTR raw_len$13[rbp] - 00b0e 44 8b 85 84 06 - 00 00 mov r8d, DWORD PTR raw_len$13[rbp] - 00b15 8b 95 a4 04 00 - 00 mov edx, DWORD PTR ioff$[rbp] - 00b1b 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 00b22 48 8b 48 08 mov rcx, QWORD PTR [rax+8] - 00b26 e8 00 00 00 00 call stbi_zlib_decode_malloc_guesssize_headerflag - 00b2b 48 8b 8d f0 09 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00b32 48 89 41 10 mov QWORD PTR [rcx+16], rax - -; 5877 : (char *)z->idata, ioff, raw_len, (int *)&raw_len, !is_iphone); -; 5878 : if (z->expanded == NULL) - - 00b36 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 00b3d 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 - 00b42 75 07 jne SHORT $LN76@stbi__pars - -; 5879 : return 0; // zlib should set error - - 00b44 33 c0 xor eax, eax - 00b46 e9 6e 03 00 00 jmp $LN1@stbi__pars -$LN76@stbi__pars: - -; 5880 : STBI_FREE(z->idata); - - 00b4b 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 00b52 48 8b 48 08 mov rcx, QWORD PTR [rax+8] - 00b56 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00b5c 90 npad 1 - -; 5881 : z->idata = NULL; - - 00b5d 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 00b64 48 c7 40 08 00 - 00 00 00 mov QWORD PTR [rax+8], 0 - -; 5882 : if ((req_comp == s->img_n + 1 && req_comp != 3 && !pal_img_n) || has_trans) - - 00b6c 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 00b73 8b 40 08 mov eax, DWORD PTR [rax+8] - 00b76 ff c0 inc eax - 00b78 39 85 00 0a 00 - 00 cmp DWORD PTR req_comp$[rbp], eax - 00b7e 75 14 jne SHORT $LN80@stbi__pars - 00b80 83 bd 00 0a 00 - 00 03 cmp DWORD PTR req_comp$[rbp], 3 - 00b87 74 0b je SHORT $LN80@stbi__pars - 00b89 0f b6 85 24 04 - 00 00 movzx eax, BYTE PTR pal_img_n$[rbp] - 00b90 85 c0 test eax, eax - 00b92 74 0b je SHORT $LN79@stbi__pars -$LN80@stbi__pars: - 00b94 0f b6 85 44 04 - 00 00 movzx eax, BYTE PTR has_trans$[rbp] - 00b9b 85 c0 test eax, eax - 00b9d 74 18 je SHORT $LN77@stbi__pars -$LN79@stbi__pars: - -; 5883 : s->img_out_n = s->img_n + 1; - - 00b9f 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 00ba6 8b 40 08 mov eax, DWORD PTR [rax+8] - 00ba9 ff c0 inc eax - 00bab 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00bb2 89 41 0c mov DWORD PTR [rcx+12], eax - 00bb5 eb 14 jmp SHORT $LN78@stbi__pars -$LN77@stbi__pars: - -; 5884 : else -; 5885 : s->img_out_n = s->img_n; - - 00bb7 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 00bbe 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00bc5 8b 49 08 mov ecx, DWORD PTR [rcx+8] - 00bc8 89 48 0c mov DWORD PTR [rax+12], ecx -$LN78@stbi__pars: - -; 5886 : if (!stbi__create_png_image(z, z->expanded, raw_len, s->img_out_n, z->depth, - - 00bcb 8b 85 64 05 00 - 00 mov eax, DWORD PTR interlace$[rbp] - 00bd1 89 44 24 30 mov DWORD PTR [rsp+48], eax - 00bd5 8b 85 84 05 00 - 00 mov eax, DWORD PTR color$[rbp] - 00bdb 89 44 24 28 mov DWORD PTR [rsp+40], eax - 00bdf 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 00be6 8b 40 20 mov eax, DWORD PTR [rax+32] - 00be9 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00bed 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 00bf4 44 8b 48 0c mov r9d, DWORD PTR [rax+12] - 00bf8 44 8b 85 84 06 - 00 00 mov r8d, DWORD PTR raw_len$13[rbp] - 00bff 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 00c06 48 8b 50 10 mov rdx, QWORD PTR [rax+16] - 00c0a 48 8b 8d f0 09 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00c11 e8 00 00 00 00 call stbi__create_png_image - 00c16 85 c0 test eax, eax - 00c18 75 07 jne SHORT $LN81@stbi__pars - -; 5887 : color, interlace)) -; 5888 : return 0; - - 00c1a 33 c0 xor eax, eax - 00c1c e9 98 02 00 00 jmp $LN1@stbi__pars -$LN81@stbi__pars: - -; 5889 : if (has_trans) { - - 00c21 0f b6 85 44 04 - 00 00 movzx eax, BYTE PTR has_trans$[rbp] - 00c28 85 c0 test eax, eax - 00c2a 74 61 je SHORT $LN82@stbi__pars - -; 5890 : if (z->depth == 16) { - - 00c2c 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 00c33 83 78 20 10 cmp DWORD PTR [rax+32], 16 - 00c37 75 2b jne SHORT $LN83@stbi__pars - -; 5891 : if (!stbi__compute_transparency16(z, tc16, s->img_out_n)) - - 00c39 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 00c40 44 8b 40 0c mov r8d, DWORD PTR [rax+12] - 00c44 48 8d 95 84 04 - 00 00 lea rdx, QWORD PTR tc16$[rbp] - 00c4b 48 8b 8d f0 09 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00c52 e8 00 00 00 00 call stbi__compute_transparency16 - 00c57 85 c0 test eax, eax - 00c59 75 07 jne SHORT $LN85@stbi__pars - -; 5892 : return 0; - - 00c5b 33 c0 xor eax, eax - 00c5d e9 57 02 00 00 jmp $LN1@stbi__pars -$LN85@stbi__pars: - -; 5893 : } else { - - 00c62 eb 29 jmp SHORT $LN84@stbi__pars -$LN83@stbi__pars: - -; 5894 : if (!stbi__compute_transparency(z, tc, s->img_out_n)) - - 00c64 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 00c6b 44 8b 40 0c mov r8d, DWORD PTR [rax+12] - 00c6f 48 8d 95 64 04 - 00 00 lea rdx, QWORD PTR tc$[rbp] - 00c76 48 8b 8d f0 09 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00c7d e8 00 00 00 00 call stbi__compute_transparency - 00c82 85 c0 test eax, eax - 00c84 75 07 jne SHORT $LN86@stbi__pars - -; 5895 : return 0; - - 00c86 33 c0 xor eax, eax - 00c88 e9 2c 02 00 00 jmp $LN1@stbi__pars -$LN86@stbi__pars: -$LN84@stbi__pars: -$LN82@stbi__pars: - -; 5896 : } -; 5897 : } -; 5898 : if (is_iphone && stbi__de_iphone_flag && s->img_out_n > 2) - - 00c8d 83 bd a4 05 00 - 00 00 cmp DWORD PTR is_iphone$[rbp], 0 - 00c94 74 74 je SHORT $LN87@stbi__pars - 00c96 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__de_iphone_flag_set - 00c9b 8b c0 mov eax, eax - 00c9d 8b 0d 00 00 00 - 00 mov ecx, DWORD PTR _tls_index - 00ca3 65 48 8b 14 25 - 58 00 00 00 mov rdx, QWORD PTR gs:88 - 00cac 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] - 00cb0 83 3c 08 00 cmp DWORD PTR [rax+rcx], 0 - 00cb4 74 25 je SHORT $LN105@stbi__pars - 00cb6 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__de_iphone_flag_local - 00cbb 8b c0 mov eax, eax - 00cbd 8b 0d 00 00 00 - 00 mov ecx, DWORD PTR _tls_index - 00cc3 65 48 8b 14 25 - 58 00 00 00 mov rdx, QWORD PTR gs:88 - 00ccc 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] - 00cd0 8b 04 08 mov eax, DWORD PTR [rax+rcx] - 00cd3 89 85 b4 09 00 - 00 mov DWORD PTR tv463[rbp], eax - 00cd9 eb 0c jmp SHORT $LN106@stbi__pars -$LN105@stbi__pars: - 00cdb 8b 05 00 00 00 - 00 mov eax, DWORD PTR stbi__de_iphone_flag_global - 00ce1 89 85 b4 09 00 - 00 mov DWORD PTR tv463[rbp], eax -$LN106@stbi__pars: - 00ce7 83 bd b4 09 00 - 00 00 cmp DWORD PTR tv463[rbp], 0 - 00cee 74 1a je SHORT $LN87@stbi__pars - 00cf0 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 00cf7 83 78 0c 02 cmp DWORD PTR [rax+12], 2 - 00cfb 7e 0d jle SHORT $LN87@stbi__pars - -; 5899 : stbi__de_iphone(z); - - 00cfd 48 8b 8d f0 09 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00d04 e8 00 00 00 00 call stbi__de_iphone - 00d09 90 npad 1 -$LN87@stbi__pars: - -; 5900 : if (pal_img_n) { - - 00d0a 0f b6 85 24 04 - 00 00 movzx eax, BYTE PTR pal_img_n$[rbp] - 00d11 85 c0 test eax, eax - 00d13 74 6a je SHORT $LN88@stbi__pars - -; 5901 : // pal_img_n == 3 or 4 -; 5902 : s->img_n = pal_img_n; // record the actual colors we had - - 00d15 0f b6 85 24 04 - 00 00 movzx eax, BYTE PTR pal_img_n$[rbp] - 00d1c 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00d23 89 41 08 mov DWORD PTR [rcx+8], eax - -; 5903 : s->img_out_n = pal_img_n; - - 00d26 0f b6 85 24 04 - 00 00 movzx eax, BYTE PTR pal_img_n$[rbp] - 00d2d 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00d34 89 41 0c mov DWORD PTR [rcx+12], eax - -; 5904 : if (req_comp >= 3) - - 00d37 83 bd 00 0a 00 - 00 03 cmp DWORD PTR req_comp$[rbp], 3 - 00d3e 7c 10 jl SHORT $LN90@stbi__pars - -; 5905 : s->img_out_n = req_comp; - - 00d40 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 00d47 8b 8d 00 0a 00 - 00 mov ecx, DWORD PTR req_comp$[rbp] - 00d4d 89 48 0c mov DWORD PTR [rax+12], ecx -$LN90@stbi__pars: - -; 5906 : if (!stbi__expand_png_palette(z, palette, pal_len, s->img_out_n)) - - 00d50 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 00d57 44 8b 48 0c mov r9d, DWORD PTR [rax+12] - 00d5b 44 8b 85 04 05 - 00 00 mov r8d, DWORD PTR pal_len$[rbp] - 00d62 48 8d 55 10 lea rdx, QWORD PTR palette$[rbp] - 00d66 48 8b 8d f0 09 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00d6d e8 00 00 00 00 call stbi__expand_png_palette - 00d72 85 c0 test eax, eax - 00d74 75 07 jne SHORT $LN91@stbi__pars - -; 5907 : return 0; - - 00d76 33 c0 xor eax, eax - 00d78 e9 3c 01 00 00 jmp $LN1@stbi__pars -$LN91@stbi__pars: - -; 5908 : } else if (has_trans) { - - 00d7d eb 21 jmp SHORT $LN89@stbi__pars -$LN88@stbi__pars: - 00d7f 0f b6 85 44 04 - 00 00 movzx eax, BYTE PTR has_trans$[rbp] - 00d86 85 c0 test eax, eax - 00d88 74 16 je SHORT $LN92@stbi__pars - -; 5909 : // non-paletted image with tRNS -> source image has (constant) alpha -; 5910 : ++s->img_n; - - 00d8a 48 8b 85 c8 05 - 00 00 mov rax, QWORD PTR s$[rbp] - 00d91 8b 40 08 mov eax, DWORD PTR [rax+8] - 00d94 ff c0 inc eax - 00d96 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00d9d 89 41 08 mov DWORD PTR [rcx+8], eax -$LN92@stbi__pars: -$LN89@stbi__pars: - -; 5911 : } -; 5912 : STBI_FREE(z->expanded); - - 00da0 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 00da7 48 8b 48 10 mov rcx, QWORD PTR [rax+16] - 00dab ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00db1 90 npad 1 - -; 5913 : z->expanded = NULL; - - 00db2 48 8b 85 f0 09 - 00 00 mov rax, QWORD PTR z$[rbp] - 00db9 48 c7 40 10 00 - 00 00 00 mov QWORD PTR [rax+16], 0 - -; 5914 : // end of PNG chunk, read and skip CRC -; 5915 : stbi__get32be(s); - - 00dc1 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00dc8 e8 00 00 00 00 call stbi__get32be - 00dcd 90 npad 1 - -; 5916 : return 1; - - 00dce b8 01 00 00 00 mov eax, 1 - 00dd3 e9 e1 00 00 00 jmp $LN1@stbi__pars -$LN93@stbi__pars: - -; 5917 : } -; 5918 : -; 5919 : default: -; 5920 : // if critical, fail -; 5921 : if (first) - - 00dd8 83 bd 24 05 00 - 00 00 cmp DWORD PTR first$[rbp], 0 - 00ddf 74 11 je SHORT $LN94@stbi__pars - -; 5922 : return stbi__err("first not IHDR", "Corrupt PNG"); - - 00de1 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0P@JEAFOMAF@first?5not?5IHDR@ - 00de8 e8 00 00 00 00 call stbi__err - 00ded e9 c7 00 00 00 jmp $LN1@stbi__pars -$LN94@stbi__pars: - -; 5923 : if ((c.type & (1 << 29)) == 0) { - - 00df2 8b 85 ec 05 00 - 00 mov eax, DWORD PTR c$8[rbp+4] - 00df8 25 00 00 00 20 and eax, 536870912 ; 20000000H - 00dfd 85 c0 test eax, eax - 00dff 0f 85 8f 00 00 - 00 jne $LN95@stbi__pars - -; 5924 : #ifndef STBI_NO_FAILURE_STRINGS -; 5925 : // not threadsafe -; 5926 : static char invalid_chunk[] = "XXXX PNG chunk not known"; -; 5927 : invalid_chunk[0] = STBI__BYTECAST(c.type >> 24); - - 00e05 8b 85 ec 05 00 - 00 mov eax, DWORD PTR c$8[rbp+4] - 00e0b c1 e8 18 shr eax, 24 - 00e0e 25 ff 00 00 00 and eax, 255 ; 000000ffH - 00e13 b9 01 00 00 00 mov ecx, 1 - 00e18 48 6b c9 00 imul rcx, rcx, 0 - 00e1c 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?invalid_chunk@?BP@??stbi__parse_png_file@@9@9 - 00e23 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 5928 : invalid_chunk[1] = STBI__BYTECAST(c.type >> 16); - - 00e26 8b 85 ec 05 00 - 00 mov eax, DWORD PTR c$8[rbp+4] - 00e2c c1 e8 10 shr eax, 16 - 00e2f 25 ff 00 00 00 and eax, 255 ; 000000ffH - 00e34 b9 01 00 00 00 mov ecx, 1 - 00e39 48 6b c9 01 imul rcx, rcx, 1 - 00e3d 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?invalid_chunk@?BP@??stbi__parse_png_file@@9@9 - 00e44 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 5929 : invalid_chunk[2] = STBI__BYTECAST(c.type >> 8); - - 00e47 8b 85 ec 05 00 - 00 mov eax, DWORD PTR c$8[rbp+4] - 00e4d c1 e8 08 shr eax, 8 - 00e50 25 ff 00 00 00 and eax, 255 ; 000000ffH - 00e55 b9 01 00 00 00 mov ecx, 1 - 00e5a 48 6b c9 02 imul rcx, rcx, 2 - 00e5e 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?invalid_chunk@?BP@??stbi__parse_png_file@@9@9 - 00e65 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 5930 : invalid_chunk[3] = STBI__BYTECAST(c.type >> 0); - - 00e68 8b 85 ec 05 00 - 00 mov eax, DWORD PTR c$8[rbp+4] - 00e6e 25 ff 00 00 00 and eax, 255 ; 000000ffH - 00e73 b9 01 00 00 00 mov ecx, 1 - 00e78 48 6b c9 03 imul rcx, rcx, 3 - 00e7c 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?invalid_chunk@?BP@??stbi__parse_png_file@@9@9 - 00e83 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 5931 : #endif -; 5932 : return stbi__err(invalid_chunk, - - 00e86 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:?invalid_chunk@?BP@??stbi__parse_png_file@@9@9 - 00e8d e8 00 00 00 00 call stbi__err - 00e92 eb 25 jmp SHORT $LN1@stbi__pars -$LN95@stbi__pars: - -; 5933 : "PNG not supported: unknown PNG chunk type"); -; 5934 : } -; 5935 : stbi__skip(s, c.length); - - 00e94 8b 95 e8 05 00 - 00 mov edx, DWORD PTR c$8[rbp] - 00e9a 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00ea1 e8 00 00 00 00 call stbi__skip - 00ea6 90 npad 1 -$LN5@stbi__pars: - -; 5936 : break; -; 5937 : } -; 5938 : // end of PNG chunk, read and skip CRC -; 5939 : stbi__get32be(s); - - 00ea7 48 8b 8d c8 05 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00eae e8 00 00 00 00 call stbi__get32be - 00eb3 90 npad 1 - -; 5940 : } - - 00eb4 e9 69 f2 ff ff jmp $LN2@stbi__pars -$LN1@stbi__pars: - -; 5941 : } - - 00eb9 48 8b f8 mov rdi, rax - 00ebc 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] - 00ec0 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__parse_png_file$rtcFrameData - 00ec7 e8 00 00 00 00 call _RTC_CheckStackVars - 00ecc 48 8b c7 mov rax, rdi - 00ecf 48 8b 8d c0 09 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00ed6 48 33 cd xor rcx, rbp - 00ed9 e8 00 00 00 00 call __security_check_cookie - 00ede 48 8d a5 d8 09 - 00 00 lea rsp, QWORD PTR [rbp+2520] - 00ee5 5f pop rdi - 00ee6 5d pop rbp - 00ee7 c3 ret 0 -stbi__parse_png_file ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__de_iphone -_TEXT SEGMENT -s$ = 8 -i$ = 36 -pixel_count$ = 68 -p$ = 104 -t$1 = 132 -a$2 = 164 -t$3 = 196 -half$4 = 228 -t$5 = 260 -tv133 = 468 -z$ = 512 -stbi__de_iphone PROC ; COMDAT - -; 5644 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 02 - 00 00 sub rsp, 520 ; 00000208H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 5645 : stbi__context *s = z->s; - - 00020 48 8b 85 00 02 - 00 00 mov rax, QWORD PTR z$[rbp] - 00027 48 8b 00 mov rax, QWORD PTR [rax] - 0002a 48 89 45 08 mov QWORD PTR s$[rbp], rax - -; 5646 : stbi__uint32 i, pixel_count = s->img_x * s->img_y; - - 0002e 48 8b 45 08 mov rax, QWORD PTR s$[rbp] - 00032 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] - 00036 8b 00 mov eax, DWORD PTR [rax] - 00038 0f af 41 04 imul eax, DWORD PTR [rcx+4] - 0003c 89 45 44 mov DWORD PTR pixel_count$[rbp], eax - -; 5647 : stbi_uc *p = z->out; - - 0003f 48 8b 85 00 02 - 00 00 mov rax, QWORD PTR z$[rbp] - 00046 48 8b 40 18 mov rax, QWORD PTR [rax+24] - 0004a 48 89 45 68 mov QWORD PTR p$[rbp], rax - -; 5648 : -; 5649 : if (s->img_out_n == 3) { // convert bgr to rgb - - 0004e 48 8b 45 08 mov rax, QWORD PTR s$[rbp] - 00052 83 78 0c 03 cmp DWORD PTR [rax+12], 3 - 00056 75 7c jne SHORT $LN11@stbi__de_i - -; 5650 : for (i = 0; i < pixel_count; ++i) { - - 00058 c7 45 24 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 0005f eb 08 jmp SHORT $LN4@stbi__de_i -$LN2@stbi__de_i: - 00061 8b 45 24 mov eax, DWORD PTR i$[rbp] - 00064 ff c0 inc eax - 00066 89 45 24 mov DWORD PTR i$[rbp], eax -$LN4@stbi__de_i: - 00069 8b 45 44 mov eax, DWORD PTR pixel_count$[rbp] - 0006c 39 45 24 cmp DWORD PTR i$[rbp], eax - 0006f 73 5e jae SHORT $LN3@stbi__de_i - -; 5651 : stbi_uc t = p[0]; - - 00071 b8 01 00 00 00 mov eax, 1 - 00076 48 6b c0 00 imul rax, rax, 0 - 0007a 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] - 0007e 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00082 88 85 84 00 00 - 00 mov BYTE PTR t$1[rbp], al - -; 5652 : p[0] = p[2]; - - 00088 b8 01 00 00 00 mov eax, 1 - 0008d 48 6b c0 02 imul rax, rax, 2 - 00091 b9 01 00 00 00 mov ecx, 1 - 00096 48 6b c9 00 imul rcx, rcx, 0 - 0009a 48 8b 55 68 mov rdx, QWORD PTR p$[rbp] - 0009e 4c 8b 45 68 mov r8, QWORD PTR p$[rbp] - 000a2 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 000a7 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 5653 : p[2] = t; - - 000aa b8 01 00 00 00 mov eax, 1 - 000af 48 6b c0 02 imul rax, rax, 2 - 000b3 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] - 000b7 0f b6 95 84 00 - 00 00 movzx edx, BYTE PTR t$1[rbp] - 000be 88 14 01 mov BYTE PTR [rcx+rax], dl - -; 5654 : p += 3; - - 000c1 48 8b 45 68 mov rax, QWORD PTR p$[rbp] - 000c5 48 83 c0 03 add rax, 3 - 000c9 48 89 45 68 mov QWORD PTR p$[rbp], rax - -; 5655 : } - - 000cd eb 92 jmp SHORT $LN2@stbi__de_i -$LN3@stbi__de_i: - -; 5656 : } else { - - 000cf e9 59 02 00 00 jmp $LN12@stbi__de_i -$LN11@stbi__de_i: - -; 5657 : STBI_ASSERT(s->img_out_n == 4); - - 000d4 48 8b 45 08 mov rax, QWORD PTR s$[rbp] - 000d8 83 78 0c 04 cmp DWORD PTR [rax+12], 4 - 000dc 74 1c je SHORT $LN18@stbi__de_i - 000de 41 b8 19 16 00 - 00 mov r8d, 5657 ; 00001619H - 000e4 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ - 000eb 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1CE@GKIDJEJM@?$AAs?$AA?9?$AA?$DO?$AAi?$AAm?$AAg?$AA_?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN@ - 000f2 ff 15 00 00 00 - 00 call QWORD PTR __imp__wassert - 000f8 33 c0 xor eax, eax -$LN18@stbi__de_i: - -; 5658 : if (stbi__unpremultiply_on_load) { - - 000fa b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__unpremultiply_on_load_set - 000ff 8b c0 mov eax, eax - 00101 8b 0d 00 00 00 - 00 mov ecx, DWORD PTR _tls_index - 00107 65 48 8b 14 25 - 58 00 00 00 mov rdx, QWORD PTR gs:88 - 00110 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] - 00114 83 3c 08 00 cmp DWORD PTR [rax+rcx], 0 - 00118 74 25 je SHORT $LN19@stbi__de_i - 0011a b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__unpremultiply_on_load_local - 0011f 8b c0 mov eax, eax - 00121 8b 0d 00 00 00 - 00 mov ecx, DWORD PTR _tls_index - 00127 65 48 8b 14 25 - 58 00 00 00 mov rdx, QWORD PTR gs:88 - 00130 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] - 00134 8b 04 08 mov eax, DWORD PTR [rax+rcx] - 00137 89 85 d4 01 00 - 00 mov DWORD PTR tv133[rbp], eax - 0013d eb 0c jmp SHORT $LN20@stbi__de_i -$LN19@stbi__de_i: - 0013f 8b 05 00 00 00 - 00 mov eax, DWORD PTR stbi__unpremultiply_on_load_global - 00145 89 85 d4 01 00 - 00 mov DWORD PTR tv133[rbp], eax -$LN20@stbi__de_i: - 0014b 83 bd d4 01 00 - 00 00 cmp DWORD PTR tv133[rbp], 0 - 00152 0f 84 5e 01 00 - 00 je $LN13@stbi__de_i - -; 5659 : // convert bgr to rgb and unpremultiply -; 5660 : for (i = 0; i < pixel_count; ++i) { - - 00158 c7 45 24 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 0015f eb 08 jmp SHORT $LN7@stbi__de_i -$LN5@stbi__de_i: - 00161 8b 45 24 mov eax, DWORD PTR i$[rbp] - 00164 ff c0 inc eax - 00166 89 45 24 mov DWORD PTR i$[rbp], eax -$LN7@stbi__de_i: - 00169 8b 45 44 mov eax, DWORD PTR pixel_count$[rbp] - 0016c 39 45 24 cmp DWORD PTR i$[rbp], eax - 0016f 0f 83 3f 01 00 - 00 jae $LN6@stbi__de_i - -; 5661 : stbi_uc a = p[3]; - - 00175 b8 01 00 00 00 mov eax, 1 - 0017a 48 6b c0 03 imul rax, rax, 3 - 0017e 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] - 00182 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00186 88 85 a4 00 00 - 00 mov BYTE PTR a$2[rbp], al - -; 5662 : stbi_uc t = p[0]; - - 0018c b8 01 00 00 00 mov eax, 1 - 00191 48 6b c0 00 imul rax, rax, 0 - 00195 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] - 00199 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0019d 88 85 c4 00 00 - 00 mov BYTE PTR t$3[rbp], al - -; 5663 : if (a) { - - 001a3 0f b6 85 a4 00 - 00 00 movzx eax, BYTE PTR a$2[rbp] - 001aa 85 c0 test eax, eax - 001ac 0f 84 b8 00 00 - 00 je $LN15@stbi__de_i - -; 5664 : stbi_uc half = a / 2; - - 001b2 0f b6 85 a4 00 - 00 00 movzx eax, BYTE PTR a$2[rbp] - 001b9 99 cdq - 001ba 2b c2 sub eax, edx - 001bc d1 f8 sar eax, 1 - 001be 88 85 e4 00 00 - 00 mov BYTE PTR half$4[rbp], al - -; 5665 : p[0] = (p[2] * 255 + half) / a; - - 001c4 b8 01 00 00 00 mov eax, 1 - 001c9 48 6b c0 02 imul rax, rax, 2 - 001cd 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] - 001d1 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 001d5 69 c0 ff 00 00 - 00 imul eax, eax, 255 ; 000000ffH - 001db 0f b6 8d e4 00 - 00 00 movzx ecx, BYTE PTR half$4[rbp] - 001e2 03 c1 add eax, ecx - 001e4 0f b6 8d a4 00 - 00 00 movzx ecx, BYTE PTR a$2[rbp] - 001eb 99 cdq - 001ec f7 f9 idiv ecx - 001ee b9 01 00 00 00 mov ecx, 1 - 001f3 48 6b c9 00 imul rcx, rcx, 0 - 001f7 48 8b 55 68 mov rdx, QWORD PTR p$[rbp] - 001fb 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 5666 : p[1] = (p[1] * 255 + half) / a; - - 001fe b8 01 00 00 00 mov eax, 1 - 00203 48 6b c0 01 imul rax, rax, 1 - 00207 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] - 0020b 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0020f 69 c0 ff 00 00 - 00 imul eax, eax, 255 ; 000000ffH - 00215 0f b6 8d e4 00 - 00 00 movzx ecx, BYTE PTR half$4[rbp] - 0021c 03 c1 add eax, ecx - 0021e 0f b6 8d a4 00 - 00 00 movzx ecx, BYTE PTR a$2[rbp] - 00225 99 cdq - 00226 f7 f9 idiv ecx - 00228 b9 01 00 00 00 mov ecx, 1 - 0022d 48 6b c9 01 imul rcx, rcx, 1 - 00231 48 8b 55 68 mov rdx, QWORD PTR p$[rbp] - 00235 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 5667 : p[2] = (t * 255 + half) / a; - - 00238 0f b6 85 c4 00 - 00 00 movzx eax, BYTE PTR t$3[rbp] - 0023f 69 c0 ff 00 00 - 00 imul eax, eax, 255 ; 000000ffH - 00245 0f b6 8d e4 00 - 00 00 movzx ecx, BYTE PTR half$4[rbp] - 0024c 03 c1 add eax, ecx - 0024e 0f b6 8d a4 00 - 00 00 movzx ecx, BYTE PTR a$2[rbp] - 00255 99 cdq - 00256 f7 f9 idiv ecx - 00258 b9 01 00 00 00 mov ecx, 1 - 0025d 48 6b c9 02 imul rcx, rcx, 2 - 00261 48 8b 55 68 mov rdx, QWORD PTR p$[rbp] - 00265 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 5668 : } else { - - 00268 eb 39 jmp SHORT $LN16@stbi__de_i -$LN15@stbi__de_i: - -; 5669 : p[0] = p[2]; - - 0026a b8 01 00 00 00 mov eax, 1 - 0026f 48 6b c0 02 imul rax, rax, 2 - 00273 b9 01 00 00 00 mov ecx, 1 - 00278 48 6b c9 00 imul rcx, rcx, 0 - 0027c 48 8b 55 68 mov rdx, QWORD PTR p$[rbp] - 00280 4c 8b 45 68 mov r8, QWORD PTR p$[rbp] - 00284 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00289 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 5670 : p[2] = t; - - 0028c b8 01 00 00 00 mov eax, 1 - 00291 48 6b c0 02 imul rax, rax, 2 - 00295 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] - 00299 0f b6 95 c4 00 - 00 00 movzx edx, BYTE PTR t$3[rbp] - 002a0 88 14 01 mov BYTE PTR [rcx+rax], dl -$LN16@stbi__de_i: - -; 5671 : } -; 5672 : p += 4; - - 002a3 48 8b 45 68 mov rax, QWORD PTR p$[rbp] - 002a7 48 83 c0 04 add rax, 4 - 002ab 48 89 45 68 mov QWORD PTR p$[rbp], rax - -; 5673 : } - - 002af e9 ad fe ff ff jmp $LN5@stbi__de_i -$LN6@stbi__de_i: - -; 5674 : } else { - - 002b4 eb 77 jmp SHORT $LN14@stbi__de_i -$LN13@stbi__de_i: - -; 5675 : // convert bgr to rgb -; 5676 : for (i = 0; i < pixel_count; ++i) { - - 002b6 c7 45 24 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 002bd eb 08 jmp SHORT $LN10@stbi__de_i -$LN8@stbi__de_i: - 002bf 8b 45 24 mov eax, DWORD PTR i$[rbp] - 002c2 ff c0 inc eax - 002c4 89 45 24 mov DWORD PTR i$[rbp], eax -$LN10@stbi__de_i: - 002c7 8b 45 44 mov eax, DWORD PTR pixel_count$[rbp] - 002ca 39 45 24 cmp DWORD PTR i$[rbp], eax - 002cd 73 5e jae SHORT $LN9@stbi__de_i - -; 5677 : stbi_uc t = p[0]; - - 002cf b8 01 00 00 00 mov eax, 1 - 002d4 48 6b c0 00 imul rax, rax, 0 - 002d8 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] - 002dc 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 002e0 88 85 04 01 00 - 00 mov BYTE PTR t$5[rbp], al - -; 5678 : p[0] = p[2]; - - 002e6 b8 01 00 00 00 mov eax, 1 - 002eb 48 6b c0 02 imul rax, rax, 2 - 002ef b9 01 00 00 00 mov ecx, 1 - 002f4 48 6b c9 00 imul rcx, rcx, 0 - 002f8 48 8b 55 68 mov rdx, QWORD PTR p$[rbp] - 002fc 4c 8b 45 68 mov r8, QWORD PTR p$[rbp] - 00300 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00305 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 5679 : p[2] = t; - - 00308 b8 01 00 00 00 mov eax, 1 - 0030d 48 6b c0 02 imul rax, rax, 2 - 00311 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] - 00315 0f b6 95 04 01 - 00 00 movzx edx, BYTE PTR t$5[rbp] - 0031c 88 14 01 mov BYTE PTR [rcx+rax], dl - -; 5680 : p += 4; - - 0031f 48 8b 45 68 mov rax, QWORD PTR p$[rbp] - 00323 48 83 c0 04 add rax, 4 - 00327 48 89 45 68 mov QWORD PTR p$[rbp], rax - -; 5681 : } - - 0032b eb 92 jmp SHORT $LN8@stbi__de_i -$LN9@stbi__de_i: -$LN14@stbi__de_i: -$LN12@stbi__de_i: - -; 5682 : } -; 5683 : } -; 5684 : } - - 0032d 48 8d a5 e8 01 - 00 00 lea rsp, QWORD PTR [rbp+488] - 00334 5f pop rdi - 00335 5d pop rbp - 00336 c3 ret 0 -stbi__de_iphone ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__expand_png_palette -_TEXT SEGMENT -i$ = 4 -pixel_count$ = 36 -p$ = 72 -temp_out$ = 104 -orig$ = 136 -n$1 = 164 -n$2 = 196 -a$ = 448 -palette$ = 456 -len$ = 464 -pal_img_n$ = 472 -stbi__expand_png_palette PROC ; COMDAT - -; 5567 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec c8 01 - 00 00 sub rsp, 456 ; 000001c8H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 5568 : stbi__uint32 i, pixel_count = a->s->img_x * a->s->img_y; - - 0002f 48 8b 85 c0 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 00036 48 8b 00 mov rax, QWORD PTR [rax] - 00039 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00040 48 8b 09 mov rcx, QWORD PTR [rcx] - 00043 8b 00 mov eax, DWORD PTR [rax] - 00045 0f af 41 04 imul eax, DWORD PTR [rcx+4] - 00049 89 45 24 mov DWORD PTR pixel_count$[rbp], eax - -; 5569 : stbi_uc *p, *temp_out, *orig = a->out; - - 0004c 48 8b 85 c0 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 00053 48 8b 40 18 mov rax, QWORD PTR [rax+24] - 00057 48 89 85 88 00 - 00 00 mov QWORD PTR orig$[rbp], rax - -; 5570 : -; 5571 : p = (stbi_uc *)stbi__malloc_mad2(pixel_count, pal_img_n, 0); - - 0005e 45 33 c0 xor r8d, r8d - 00061 8b 95 d8 01 00 - 00 mov edx, DWORD PTR pal_img_n$[rbp] - 00067 8b 4d 24 mov ecx, DWORD PTR pixel_count$[rbp] - 0006a e8 00 00 00 00 call stbi__malloc_mad2 - 0006f 48 89 45 48 mov QWORD PTR p$[rbp], rax - -; 5572 : if (p == NULL) - - 00073 48 83 7d 48 00 cmp QWORD PTR p$[rbp], 0 - 00078 75 11 jne SHORT $LN8@stbi__expa - -; 5573 : return stbi__err("outofmem", "Out of memory"); - - 0007a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 00081 e8 00 00 00 00 call stbi__err - 00086 e9 d1 01 00 00 jmp $LN1@stbi__expa -$LN8@stbi__expa: - -; 5574 : -; 5575 : // between here and free(out) below, exitting would leak -; 5576 : temp_out = p; - - 0008b 48 8b 45 48 mov rax, QWORD PTR p$[rbp] - 0008f 48 89 45 68 mov QWORD PTR temp_out$[rbp], rax - -; 5577 : -; 5578 : if (pal_img_n == 3) { - - 00093 83 bd d8 01 00 - 00 03 cmp DWORD PTR pal_img_n$[rbp], 3 - 0009a 0f 85 ba 00 00 - 00 jne $LN9@stbi__expa - -; 5579 : for (i = 0; i < pixel_count; ++i) { - - 000a0 c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 000a7 eb 08 jmp SHORT $LN4@stbi__expa -$LN2@stbi__expa: - 000a9 8b 45 04 mov eax, DWORD PTR i$[rbp] - 000ac ff c0 inc eax - 000ae 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__expa: - 000b1 8b 45 24 mov eax, DWORD PTR pixel_count$[rbp] - 000b4 39 45 04 cmp DWORD PTR i$[rbp], eax - 000b7 0f 83 98 00 00 - 00 jae $LN3@stbi__expa - -; 5580 : int n = orig[i] * 4; - - 000bd 8b 45 04 mov eax, DWORD PTR i$[rbp] - 000c0 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR orig$[rbp] - 000c7 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 000cb c1 e0 02 shl eax, 2 - 000ce 89 85 a4 00 00 - 00 mov DWORD PTR n$1[rbp], eax - -; 5581 : p[0] = palette[n]; - - 000d4 48 63 85 a4 00 - 00 00 movsxd rax, DWORD PTR n$1[rbp] - 000db b9 01 00 00 00 mov ecx, 1 - 000e0 48 6b c9 00 imul rcx, rcx, 0 - 000e4 48 8b 55 48 mov rdx, QWORD PTR p$[rbp] - 000e8 4c 8b 85 c8 01 - 00 00 mov r8, QWORD PTR palette$[rbp] - 000ef 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 000f4 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 5582 : p[1] = palette[n + 1]; - - 000f7 8b 85 a4 00 00 - 00 mov eax, DWORD PTR n$1[rbp] - 000fd ff c0 inc eax - 000ff 48 98 cdqe - 00101 b9 01 00 00 00 mov ecx, 1 - 00106 48 6b c9 01 imul rcx, rcx, 1 - 0010a 48 8b 55 48 mov rdx, QWORD PTR p$[rbp] - 0010e 4c 8b 85 c8 01 - 00 00 mov r8, QWORD PTR palette$[rbp] - 00115 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 0011a 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 5583 : p[2] = palette[n + 2]; - - 0011d 8b 85 a4 00 00 - 00 mov eax, DWORD PTR n$1[rbp] - 00123 83 c0 02 add eax, 2 - 00126 48 98 cdqe - 00128 b9 01 00 00 00 mov ecx, 1 - 0012d 48 6b c9 02 imul rcx, rcx, 2 - 00131 48 8b 55 48 mov rdx, QWORD PTR p$[rbp] - 00135 4c 8b 85 c8 01 - 00 00 mov r8, QWORD PTR palette$[rbp] - 0013c 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00141 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 5584 : p += 3; - - 00144 48 8b 45 48 mov rax, QWORD PTR p$[rbp] - 00148 48 83 c0 03 add rax, 3 - 0014c 48 89 45 48 mov QWORD PTR p$[rbp], rax - -; 5585 : } - - 00150 e9 54 ff ff ff jmp $LN2@stbi__expa -$LN3@stbi__expa: - -; 5586 : } else { - - 00155 e9 dc 00 00 00 jmp $LN10@stbi__expa -$LN9@stbi__expa: - -; 5587 : for (i = 0; i < pixel_count; ++i) { - - 0015a c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00161 eb 08 jmp SHORT $LN7@stbi__expa -$LN5@stbi__expa: - 00163 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00166 ff c0 inc eax - 00168 89 45 04 mov DWORD PTR i$[rbp], eax -$LN7@stbi__expa: - 0016b 8b 45 24 mov eax, DWORD PTR pixel_count$[rbp] - 0016e 39 45 04 cmp DWORD PTR i$[rbp], eax - 00171 0f 83 bf 00 00 - 00 jae $LN6@stbi__expa - -; 5588 : int n = orig[i] * 4; - - 00177 8b 45 04 mov eax, DWORD PTR i$[rbp] - 0017a 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR orig$[rbp] - 00181 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00185 c1 e0 02 shl eax, 2 - 00188 89 85 c4 00 00 - 00 mov DWORD PTR n$2[rbp], eax - -; 5589 : p[0] = palette[n]; - - 0018e 48 63 85 c4 00 - 00 00 movsxd rax, DWORD PTR n$2[rbp] - 00195 b9 01 00 00 00 mov ecx, 1 - 0019a 48 6b c9 00 imul rcx, rcx, 0 - 0019e 48 8b 55 48 mov rdx, QWORD PTR p$[rbp] - 001a2 4c 8b 85 c8 01 - 00 00 mov r8, QWORD PTR palette$[rbp] - 001a9 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 001ae 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 5590 : p[1] = palette[n + 1]; - - 001b1 8b 85 c4 00 00 - 00 mov eax, DWORD PTR n$2[rbp] - 001b7 ff c0 inc eax - 001b9 48 98 cdqe - 001bb b9 01 00 00 00 mov ecx, 1 - 001c0 48 6b c9 01 imul rcx, rcx, 1 - 001c4 48 8b 55 48 mov rdx, QWORD PTR p$[rbp] - 001c8 4c 8b 85 c8 01 - 00 00 mov r8, QWORD PTR palette$[rbp] - 001cf 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 001d4 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 5591 : p[2] = palette[n + 2]; - - 001d7 8b 85 c4 00 00 - 00 mov eax, DWORD PTR n$2[rbp] - 001dd 83 c0 02 add eax, 2 - 001e0 48 98 cdqe - 001e2 b9 01 00 00 00 mov ecx, 1 - 001e7 48 6b c9 02 imul rcx, rcx, 2 - 001eb 48 8b 55 48 mov rdx, QWORD PTR p$[rbp] - 001ef 4c 8b 85 c8 01 - 00 00 mov r8, QWORD PTR palette$[rbp] - 001f6 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 001fb 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 5592 : p[3] = palette[n + 3]; - - 001fe 8b 85 c4 00 00 - 00 mov eax, DWORD PTR n$2[rbp] - 00204 83 c0 03 add eax, 3 - 00207 48 98 cdqe - 00209 b9 01 00 00 00 mov ecx, 1 - 0020e 48 6b c9 03 imul rcx, rcx, 3 - 00212 48 8b 55 48 mov rdx, QWORD PTR p$[rbp] - 00216 4c 8b 85 c8 01 - 00 00 mov r8, QWORD PTR palette$[rbp] - 0021d 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00222 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 5593 : p += 4; - - 00225 48 8b 45 48 mov rax, QWORD PTR p$[rbp] - 00229 48 83 c0 04 add rax, 4 - 0022d 48 89 45 48 mov QWORD PTR p$[rbp], rax - -; 5594 : } - - 00231 e9 2d ff ff ff jmp $LN5@stbi__expa -$LN6@stbi__expa: -$LN10@stbi__expa: - -; 5595 : } -; 5596 : STBI_FREE(a->out); - - 00236 48 8b 85 c0 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 0023d 48 8b 48 18 mov rcx, QWORD PTR [rax+24] - 00241 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00247 90 npad 1 - -; 5597 : a->out = temp_out; - - 00248 48 8b 85 c0 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 0024f 48 8b 4d 68 mov rcx, QWORD PTR temp_out$[rbp] - 00253 48 89 48 18 mov QWORD PTR [rax+24], rcx - -; 5598 : -; 5599 : STBI_NOTUSED(len); -; 5600 : -; 5601 : return 1; - - 00257 b8 01 00 00 00 mov eax, 1 -$LN1@stbi__expa: - -; 5602 : } - - 0025c 48 8d a5 a8 01 - 00 00 lea rsp, QWORD PTR [rbp+424] - 00263 5f pop rdi - 00264 5d pop rbp - 00265 c3 ret 0 -stbi__expand_png_palette ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__compute_transparency16 -_TEXT SEGMENT -s$ = 8 -i$ = 36 -pixel_count$ = 68 -p$ = 104 -tv87 = 308 -z$ = 352 -tc$ = 360 -out_n$ = 368 -stbi__compute_transparency16 PROC ; COMDAT - -; 5542 : { - - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec 68 01 - 00 00 sub rsp, 360 ; 00000168H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 90 npad 1 - -; 5543 : stbi__context *s = z->s; - - 0002a 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00031 48 8b 00 mov rax, QWORD PTR [rax] - 00034 48 89 45 08 mov QWORD PTR s$[rbp], rax - -; 5544 : stbi__uint32 i, pixel_count = s->img_x * s->img_y; - - 00038 48 8b 45 08 mov rax, QWORD PTR s$[rbp] - 0003c 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] - 00040 8b 00 mov eax, DWORD PTR [rax] - 00042 0f af 41 04 imul eax, DWORD PTR [rcx+4] - 00046 89 45 44 mov DWORD PTR pixel_count$[rbp], eax - -; 5545 : stbi__uint16 *p = (stbi__uint16 *)z->out; - - 00049 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00050 48 8b 40 18 mov rax, QWORD PTR [rax+24] - 00054 48 89 45 68 mov QWORD PTR p$[rbp], rax - -; 5546 : -; 5547 : // compute color-based transparency, assuming we've -; 5548 : // already got 65535 as the alpha value in the output -; 5549 : STBI_ASSERT(out_n == 2 || out_n == 4); - - 00058 83 bd 70 01 00 - 00 02 cmp DWORD PTR out_n$[rbp], 2 - 0005f 74 25 je SHORT $LN12@stbi__comp - 00061 83 bd 70 01 00 - 00 04 cmp DWORD PTR out_n$[rbp], 4 - 00068 74 1c je SHORT $LN12@stbi__comp - 0006a 41 b8 ad 15 00 - 00 mov r8d, 5549 ; 000015adH - 00070 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ - 00077 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1DC@BMIDKOPK@?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA2?$AA?5?$AA?$HM?$AA?$HM?$AA?5?$AAo@ - 0007e ff 15 00 00 00 - 00 call QWORD PTR __imp__wassert - 00084 33 c0 xor eax, eax -$LN12@stbi__comp: - -; 5550 : -; 5551 : if (out_n == 2) { - - 00086 83 bd 70 01 00 - 00 02 cmp DWORD PTR out_n$[rbp], 2 - 0008d 0f 85 83 00 00 - 00 jne $LN8@stbi__comp - -; 5552 : for (i = 0; i < pixel_count; ++i) { - - 00093 c7 45 24 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 0009a eb 08 jmp SHORT $LN4@stbi__comp -$LN2@stbi__comp: - 0009c 8b 45 24 mov eax, DWORD PTR i$[rbp] - 0009f ff c0 inc eax - 000a1 89 45 24 mov DWORD PTR i$[rbp], eax -$LN4@stbi__comp: - 000a4 8b 45 44 mov eax, DWORD PTR pixel_count$[rbp] - 000a7 39 45 24 cmp DWORD PTR i$[rbp], eax - 000aa 73 65 jae SHORT $LN3@stbi__comp - -; 5553 : p[1] = (p[0] == tc[0] ? 0 : 65535); - - 000ac b8 02 00 00 00 mov eax, 2 - 000b1 48 6b c0 00 imul rax, rax, 0 - 000b5 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] - 000b9 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] - 000bd b9 02 00 00 00 mov ecx, 2 - 000c2 48 6b c9 00 imul rcx, rcx, 0 - 000c6 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR tc$[rbp] - 000cd 0f b7 0c 0a movzx ecx, WORD PTR [rdx+rcx] - 000d1 3b c1 cmp eax, ecx - 000d3 75 0c jne SHORT $LN13@stbi__comp - 000d5 c7 85 34 01 00 - 00 00 00 00 00 mov DWORD PTR tv87[rbp], 0 - 000df eb 0a jmp SHORT $LN14@stbi__comp -$LN13@stbi__comp: - 000e1 c7 85 34 01 00 - 00 ff ff 00 00 mov DWORD PTR tv87[rbp], 65535 ; 0000ffffH -$LN14@stbi__comp: - 000eb b8 02 00 00 00 mov eax, 2 - 000f0 48 6b c0 01 imul rax, rax, 1 - 000f4 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] - 000f8 0f b7 95 34 01 - 00 00 movzx edx, WORD PTR tv87[rbp] - 000ff 66 89 14 01 mov WORD PTR [rcx+rax], dx - -; 5554 : p += 2; - - 00103 48 8b 45 68 mov rax, QWORD PTR p$[rbp] - 00107 48 83 c0 04 add rax, 4 - 0010b 48 89 45 68 mov QWORD PTR p$[rbp], rax - -; 5555 : } - - 0010f eb 8b jmp SHORT $LN2@stbi__comp -$LN3@stbi__comp: - -; 5556 : } else { - - 00111 e9 bc 00 00 00 jmp $LN9@stbi__comp -$LN8@stbi__comp: - -; 5557 : for (i = 0; i < pixel_count; ++i) { - - 00116 c7 45 24 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 0011d eb 08 jmp SHORT $LN7@stbi__comp -$LN5@stbi__comp: - 0011f 8b 45 24 mov eax, DWORD PTR i$[rbp] - 00122 ff c0 inc eax - 00124 89 45 24 mov DWORD PTR i$[rbp], eax -$LN7@stbi__comp: - 00127 8b 45 44 mov eax, DWORD PTR pixel_count$[rbp] - 0012a 39 45 24 cmp DWORD PTR i$[rbp], eax - 0012d 0f 83 9f 00 00 - 00 jae $LN6@stbi__comp - -; 5558 : if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) - - 00133 b8 02 00 00 00 mov eax, 2 - 00138 48 6b c0 00 imul rax, rax, 0 - 0013c 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] - 00140 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] - 00144 b9 02 00 00 00 mov ecx, 2 - 00149 48 6b c9 00 imul rcx, rcx, 0 - 0014d 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR tc$[rbp] - 00154 0f b7 0c 0a movzx ecx, WORD PTR [rdx+rcx] - 00158 3b c1 cmp eax, ecx - 0015a 75 65 jne SHORT $LN10@stbi__comp - 0015c b8 02 00 00 00 mov eax, 2 - 00161 48 6b c0 01 imul rax, rax, 1 - 00165 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] - 00169 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] - 0016d b9 02 00 00 00 mov ecx, 2 - 00172 48 6b c9 01 imul rcx, rcx, 1 - 00176 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR tc$[rbp] - 0017d 0f b7 0c 0a movzx ecx, WORD PTR [rdx+rcx] - 00181 3b c1 cmp eax, ecx - 00183 75 3c jne SHORT $LN10@stbi__comp - 00185 b8 02 00 00 00 mov eax, 2 - 0018a 48 6b c0 02 imul rax, rax, 2 - 0018e 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] - 00192 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] - 00196 b9 02 00 00 00 mov ecx, 2 - 0019b 48 6b c9 02 imul rcx, rcx, 2 - 0019f 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR tc$[rbp] - 001a6 0f b7 0c 0a movzx ecx, WORD PTR [rdx+rcx] - 001aa 3b c1 cmp eax, ecx - 001ac 75 13 jne SHORT $LN10@stbi__comp - -; 5559 : p[3] = 0; - - 001ae b8 02 00 00 00 mov eax, 2 - 001b3 48 6b c0 03 imul rax, rax, 3 - 001b7 33 c9 xor ecx, ecx - 001b9 48 8b 55 68 mov rdx, QWORD PTR p$[rbp] - 001bd 66 89 0c 02 mov WORD PTR [rdx+rax], cx -$LN10@stbi__comp: - -; 5560 : p += 4; - - 001c1 48 8b 45 68 mov rax, QWORD PTR p$[rbp] - 001c5 48 83 c0 08 add rax, 8 - 001c9 48 89 45 68 mov QWORD PTR p$[rbp], rax - -; 5561 : } - - 001cd e9 4d ff ff ff jmp $LN5@stbi__comp -$LN6@stbi__comp: -$LN9@stbi__comp: - -; 5562 : } -; 5563 : return 1; - - 001d2 b8 01 00 00 00 mov eax, 1 - -; 5564 : } - - 001d7 48 8d a5 48 01 - 00 00 lea rsp, QWORD PTR [rbp+328] - 001de 5f pop rdi - 001df 5d pop rbp - 001e0 c3 ret 0 -stbi__compute_transparency16 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__compute_transparency -_TEXT SEGMENT -s$ = 8 -i$ = 36 -pixel_count$ = 68 -p$ = 104 -tv87 = 308 -z$ = 352 -tc$ = 360 -out_n$ = 368 -stbi__compute_transparency PROC ; COMDAT - -; 5517 : { - - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec 68 01 - 00 00 sub rsp, 360 ; 00000168H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 90 npad 1 - -; 5518 : stbi__context *s = z->s; - - 0002a 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00031 48 8b 00 mov rax, QWORD PTR [rax] - 00034 48 89 45 08 mov QWORD PTR s$[rbp], rax - -; 5519 : stbi__uint32 i, pixel_count = s->img_x * s->img_y; - - 00038 48 8b 45 08 mov rax, QWORD PTR s$[rbp] - 0003c 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] - 00040 8b 00 mov eax, DWORD PTR [rax] - 00042 0f af 41 04 imul eax, DWORD PTR [rcx+4] - 00046 89 45 44 mov DWORD PTR pixel_count$[rbp], eax - -; 5520 : stbi_uc *p = z->out; - - 00049 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00050 48 8b 40 18 mov rax, QWORD PTR [rax+24] - 00054 48 89 45 68 mov QWORD PTR p$[rbp], rax - -; 5521 : -; 5522 : // compute color-based transparency, assuming we've -; 5523 : // already got 255 as the alpha value in the output -; 5524 : STBI_ASSERT(out_n == 2 || out_n == 4); - - 00058 83 bd 70 01 00 - 00 02 cmp DWORD PTR out_n$[rbp], 2 - 0005f 74 25 je SHORT $LN12@stbi__comp - 00061 83 bd 70 01 00 - 00 04 cmp DWORD PTR out_n$[rbp], 4 - 00068 74 1c je SHORT $LN12@stbi__comp - 0006a 41 b8 94 15 00 - 00 mov r8d, 5524 ; 00001594H - 00070 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ - 00077 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1DC@BMIDKOPK@?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA2?$AA?5?$AA?$HM?$AA?$HM?$AA?5?$AAo@ - 0007e ff 15 00 00 00 - 00 call QWORD PTR __imp__wassert - 00084 33 c0 xor eax, eax -$LN12@stbi__comp: - -; 5525 : -; 5526 : if (out_n == 2) { - - 00086 83 bd 70 01 00 - 00 02 cmp DWORD PTR out_n$[rbp], 2 - 0008d 0f 85 82 00 00 - 00 jne $LN8@stbi__comp - -; 5527 : for (i = 0; i < pixel_count; ++i) { - - 00093 c7 45 24 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 0009a eb 08 jmp SHORT $LN4@stbi__comp -$LN2@stbi__comp: - 0009c 8b 45 24 mov eax, DWORD PTR i$[rbp] - 0009f ff c0 inc eax - 000a1 89 45 24 mov DWORD PTR i$[rbp], eax -$LN4@stbi__comp: - 000a4 8b 45 44 mov eax, DWORD PTR pixel_count$[rbp] - 000a7 39 45 24 cmp DWORD PTR i$[rbp], eax - 000aa 73 64 jae SHORT $LN3@stbi__comp - -; 5528 : p[1] = (p[0] == tc[0] ? 0 : 255); - - 000ac b8 01 00 00 00 mov eax, 1 - 000b1 48 6b c0 00 imul rax, rax, 0 - 000b5 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] - 000b9 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 000bd b9 01 00 00 00 mov ecx, 1 - 000c2 48 6b c9 00 imul rcx, rcx, 0 - 000c6 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR tc$[rbp] - 000cd 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 000d1 3b c1 cmp eax, ecx - 000d3 75 0c jne SHORT $LN13@stbi__comp - 000d5 c7 85 34 01 00 - 00 00 00 00 00 mov DWORD PTR tv87[rbp], 0 - 000df eb 0a jmp SHORT $LN14@stbi__comp -$LN13@stbi__comp: - 000e1 c7 85 34 01 00 - 00 ff 00 00 00 mov DWORD PTR tv87[rbp], 255 ; 000000ffH -$LN14@stbi__comp: - 000eb b8 01 00 00 00 mov eax, 1 - 000f0 48 6b c0 01 imul rax, rax, 1 - 000f4 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] - 000f8 0f b6 95 34 01 - 00 00 movzx edx, BYTE PTR tv87[rbp] - 000ff 88 14 01 mov BYTE PTR [rcx+rax], dl - -; 5529 : p += 2; - - 00102 48 8b 45 68 mov rax, QWORD PTR p$[rbp] - 00106 48 83 c0 02 add rax, 2 - 0010a 48 89 45 68 mov QWORD PTR p$[rbp], rax - -; 5530 : } - - 0010e eb 8c jmp SHORT $LN2@stbi__comp -$LN3@stbi__comp: - -; 5531 : } else { - - 00110 e9 ba 00 00 00 jmp $LN9@stbi__comp -$LN8@stbi__comp: - -; 5532 : for (i = 0; i < pixel_count; ++i) { - - 00115 c7 45 24 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 0011c eb 08 jmp SHORT $LN7@stbi__comp -$LN5@stbi__comp: - 0011e 8b 45 24 mov eax, DWORD PTR i$[rbp] - 00121 ff c0 inc eax - 00123 89 45 24 mov DWORD PTR i$[rbp], eax -$LN7@stbi__comp: - 00126 8b 45 44 mov eax, DWORD PTR pixel_count$[rbp] - 00129 39 45 24 cmp DWORD PTR i$[rbp], eax - 0012c 0f 83 9d 00 00 - 00 jae $LN6@stbi__comp - -; 5533 : if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) - - 00132 b8 01 00 00 00 mov eax, 1 - 00137 48 6b c0 00 imul rax, rax, 0 - 0013b 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] - 0013f 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00143 b9 01 00 00 00 mov ecx, 1 - 00148 48 6b c9 00 imul rcx, rcx, 0 - 0014c 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR tc$[rbp] - 00153 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 00157 3b c1 cmp eax, ecx - 00159 75 63 jne SHORT $LN10@stbi__comp - 0015b b8 01 00 00 00 mov eax, 1 - 00160 48 6b c0 01 imul rax, rax, 1 - 00164 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] - 00168 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0016c b9 01 00 00 00 mov ecx, 1 - 00171 48 6b c9 01 imul rcx, rcx, 1 - 00175 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR tc$[rbp] - 0017c 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 00180 3b c1 cmp eax, ecx - 00182 75 3a jne SHORT $LN10@stbi__comp - 00184 b8 01 00 00 00 mov eax, 1 - 00189 48 6b c0 02 imul rax, rax, 2 - 0018d 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] - 00191 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00195 b9 01 00 00 00 mov ecx, 1 - 0019a 48 6b c9 02 imul rcx, rcx, 2 - 0019e 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR tc$[rbp] - 001a5 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 001a9 3b c1 cmp eax, ecx - 001ab 75 11 jne SHORT $LN10@stbi__comp - -; 5534 : p[3] = 0; - - 001ad b8 01 00 00 00 mov eax, 1 - 001b2 48 6b c0 03 imul rax, rax, 3 - 001b6 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] - 001ba c6 04 01 00 mov BYTE PTR [rcx+rax], 0 -$LN10@stbi__comp: - -; 5535 : p += 4; - - 001be 48 8b 45 68 mov rax, QWORD PTR p$[rbp] - 001c2 48 83 c0 04 add rax, 4 - 001c6 48 89 45 68 mov QWORD PTR p$[rbp], rax - -; 5536 : } - - 001ca e9 4f ff ff ff jmp $LN5@stbi__comp -$LN6@stbi__comp: -$LN9@stbi__comp: - -; 5537 : } -; 5538 : return 1; - - 001cf b8 01 00 00 00 mov eax, 1 - -; 5539 : } - - 001d4 48 8d a5 48 01 - 00 00 lea rsp, QWORD PTR [rbp+328] - 001db 5f pop rdi - 001dc 5d pop rbp - 001dd c3 ret 0 -stbi__compute_transparency ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__create_png_image -_TEXT SEGMENT -bytes$ = 4 -out_bytes$ = 36 -final$ = 72 -p$ = 100 -xorig$7 = 136 -yorig$8 = 200 -xspc$9 = 264 -yspc$10 = 328 -i$11 = 388 -j$12 = 420 -x$13 = 452 -y$14 = 484 -img_len$15 = 516 -out_y$16 = 548 -out_x$17 = 580 -tv65 = 980 -tv280 = 984 -a$ = 1024 -image_data$ = 1032 -image_data_len$ = 1040 -out_n$ = 1048 -depth$ = 1056 -color$ = 1064 -interlaced$ = 1072 -stbi__create_png_image PROC ; COMDAT - -; 5468 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 28 04 - 00 00 sub rsp, 1064 ; 00000428H - 0001d 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00022 48 8d 7c 24 40 lea rdi, QWORD PTR [rsp+64] - 00027 b9 9a 00 00 00 mov ecx, 154 ; 0000009aH - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 48 - 04 00 00 mov rcx, QWORD PTR [rsp+1096] - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00047 90 npad 1 - -; 5469 : int bytes = (depth == 16 ? 2 : 1); - - 00048 83 bd 20 04 00 - 00 10 cmp DWORD PTR depth$[rbp], 16 - 0004f 75 0c jne SHORT $LN16@stbi__crea - 00051 c7 85 d4 03 00 - 00 02 00 00 00 mov DWORD PTR tv65[rbp], 2 - 0005b eb 0a jmp SHORT $LN17@stbi__crea -$LN16@stbi__crea: - 0005d c7 85 d4 03 00 - 00 01 00 00 00 mov DWORD PTR tv65[rbp], 1 -$LN17@stbi__crea: - 00067 8b 85 d4 03 00 - 00 mov eax, DWORD PTR tv65[rbp] - 0006d 89 45 04 mov DWORD PTR bytes$[rbp], eax - -; 5470 : int out_bytes = out_n * bytes; - - 00070 8b 85 18 04 00 - 00 mov eax, DWORD PTR out_n$[rbp] - 00076 0f af 45 04 imul eax, DWORD PTR bytes$[rbp] - 0007a 89 45 24 mov DWORD PTR out_bytes$[rbp], eax - -; 5471 : stbi_uc *final; -; 5472 : int p; -; 5473 : if (!interlaced) - - 0007d 83 bd 30 04 00 - 00 00 cmp DWORD PTR interlaced$[rbp], 0 - 00084 75 5b jne SHORT $LN11@stbi__crea - -; 5474 : return stbi__create_png_image_raw(a, image_data, image_data_len, out_n, a->s->img_x, - - 00086 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR a$[rbp] - 0008d 48 8b 00 mov rax, QWORD PTR [rax] - 00090 48 8b 8d 00 04 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00097 48 8b 09 mov rcx, QWORD PTR [rcx] - 0009a 8b 95 28 04 00 - 00 mov edx, DWORD PTR color$[rbp] - 000a0 89 54 24 38 mov DWORD PTR [rsp+56], edx - 000a4 8b 95 20 04 00 - 00 mov edx, DWORD PTR depth$[rbp] - 000aa 89 54 24 30 mov DWORD PTR [rsp+48], edx - 000ae 8b 40 04 mov eax, DWORD PTR [rax+4] - 000b1 89 44 24 28 mov DWORD PTR [rsp+40], eax - 000b5 8b 01 mov eax, DWORD PTR [rcx] - 000b7 89 44 24 20 mov DWORD PTR [rsp+32], eax - 000bb 44 8b 8d 18 04 - 00 00 mov r9d, DWORD PTR out_n$[rbp] - 000c2 44 8b 85 10 04 - 00 00 mov r8d, DWORD PTR image_data_len$[rbp] - 000c9 48 8b 95 08 04 - 00 00 mov rdx, QWORD PTR image_data$[rbp] - 000d0 48 8b 8d 00 04 - 00 00 mov rcx, QWORD PTR a$[rbp] - 000d7 e8 00 00 00 00 call stbi__create_png_image_raw - 000dc e9 1b 04 00 00 jmp $LN1@stbi__crea -$LN11@stbi__crea: - -; 5475 : a->s->img_y, depth, color); -; 5476 : -; 5477 : // de-interlacing -; 5478 : final = (stbi_uc *)stbi__malloc_mad3(a->s->img_x, a->s->img_y, out_bytes, 0); - - 000e1 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR a$[rbp] - 000e8 48 8b 00 mov rax, QWORD PTR [rax] - 000eb 48 8b 8d 00 04 - 00 00 mov rcx, QWORD PTR a$[rbp] - 000f2 48 8b 09 mov rcx, QWORD PTR [rcx] - 000f5 45 33 c9 xor r9d, r9d - 000f8 44 8b 45 24 mov r8d, DWORD PTR out_bytes$[rbp] - 000fc 8b 50 04 mov edx, DWORD PTR [rax+4] - 000ff 8b 09 mov ecx, DWORD PTR [rcx] - 00101 e8 00 00 00 00 call stbi__malloc_mad3 - 00106 48 89 45 48 mov QWORD PTR final$[rbp], rax - -; 5479 : if (!final) - - 0010a 48 83 7d 48 00 cmp QWORD PTR final$[rbp], 0 - 0010f 75 11 jne SHORT $LN12@stbi__crea - -; 5480 : return stbi__err("outofmem", "Out of memory"); - - 00111 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 00118 e8 00 00 00 00 call stbi__err - 0011d e9 da 03 00 00 jmp $LN1@stbi__crea -$LN12@stbi__crea: - -; 5481 : for (p = 0; p < 7; ++p) { - - 00122 c7 45 64 00 00 - 00 00 mov DWORD PTR p$[rbp], 0 - 00129 eb 08 jmp SHORT $LN4@stbi__crea -$LN2@stbi__crea: - 0012b 8b 45 64 mov eax, DWORD PTR p$[rbp] - 0012e ff c0 inc eax - 00130 89 45 64 mov DWORD PTR p$[rbp], eax -$LN4@stbi__crea: - 00133 83 7d 64 07 cmp DWORD PTR p$[rbp], 7 - 00137 0f 8d ab 03 00 - 00 jge $LN3@stbi__crea - -; 5482 : int xorig[] = { 0, 4, 0, 2, 0, 1, 0 }; - - 0013d c7 85 88 00 00 - 00 00 00 00 00 mov DWORD PTR xorig$7[rbp], 0 - 00147 c7 85 8c 00 00 - 00 04 00 00 00 mov DWORD PTR xorig$7[rbp+4], 4 - 00151 c7 85 90 00 00 - 00 00 00 00 00 mov DWORD PTR xorig$7[rbp+8], 0 - 0015b c7 85 94 00 00 - 00 02 00 00 00 mov DWORD PTR xorig$7[rbp+12], 2 - 00165 c7 85 98 00 00 - 00 00 00 00 00 mov DWORD PTR xorig$7[rbp+16], 0 - 0016f c7 85 9c 00 00 - 00 01 00 00 00 mov DWORD PTR xorig$7[rbp+20], 1 - 00179 c7 85 a0 00 00 - 00 00 00 00 00 mov DWORD PTR xorig$7[rbp+24], 0 - -; 5483 : int yorig[] = { 0, 0, 4, 0, 2, 0, 1 }; - - 00183 c7 85 c8 00 00 - 00 00 00 00 00 mov DWORD PTR yorig$8[rbp], 0 - 0018d c7 85 cc 00 00 - 00 00 00 00 00 mov DWORD PTR yorig$8[rbp+4], 0 - 00197 c7 85 d0 00 00 - 00 04 00 00 00 mov DWORD PTR yorig$8[rbp+8], 4 - 001a1 c7 85 d4 00 00 - 00 00 00 00 00 mov DWORD PTR yorig$8[rbp+12], 0 - 001ab c7 85 d8 00 00 - 00 02 00 00 00 mov DWORD PTR yorig$8[rbp+16], 2 - 001b5 c7 85 dc 00 00 - 00 00 00 00 00 mov DWORD PTR yorig$8[rbp+20], 0 - 001bf c7 85 e0 00 00 - 00 01 00 00 00 mov DWORD PTR yorig$8[rbp+24], 1 - -; 5484 : int xspc[] = { 8, 8, 4, 4, 2, 2, 1 }; - - 001c9 c7 85 08 01 00 - 00 08 00 00 00 mov DWORD PTR xspc$9[rbp], 8 - 001d3 c7 85 0c 01 00 - 00 08 00 00 00 mov DWORD PTR xspc$9[rbp+4], 8 - 001dd c7 85 10 01 00 - 00 04 00 00 00 mov DWORD PTR xspc$9[rbp+8], 4 - 001e7 c7 85 14 01 00 - 00 04 00 00 00 mov DWORD PTR xspc$9[rbp+12], 4 - 001f1 c7 85 18 01 00 - 00 02 00 00 00 mov DWORD PTR xspc$9[rbp+16], 2 - 001fb c7 85 1c 01 00 - 00 02 00 00 00 mov DWORD PTR xspc$9[rbp+20], 2 - 00205 c7 85 20 01 00 - 00 01 00 00 00 mov DWORD PTR xspc$9[rbp+24], 1 - -; 5485 : int yspc[] = { 8, 8, 8, 4, 4, 2, 2 }; - - 0020f c7 85 48 01 00 - 00 08 00 00 00 mov DWORD PTR yspc$10[rbp], 8 - 00219 c7 85 4c 01 00 - 00 08 00 00 00 mov DWORD PTR yspc$10[rbp+4], 8 - 00223 c7 85 50 01 00 - 00 08 00 00 00 mov DWORD PTR yspc$10[rbp+8], 8 - 0022d c7 85 54 01 00 - 00 04 00 00 00 mov DWORD PTR yspc$10[rbp+12], 4 - 00237 c7 85 58 01 00 - 00 04 00 00 00 mov DWORD PTR yspc$10[rbp+16], 4 - 00241 c7 85 5c 01 00 - 00 02 00 00 00 mov DWORD PTR yspc$10[rbp+20], 2 - 0024b c7 85 60 01 00 - 00 02 00 00 00 mov DWORD PTR yspc$10[rbp+24], 2 - -; 5486 : int i, j, x, y; -; 5487 : // pass1_x[4] = 0, pass1_x[5] = 1, pass1_x[12] = 1 -; 5488 : x = (a->s->img_x - xorig[p] + xspc[p] - 1) / xspc[p]; - - 00255 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR a$[rbp] - 0025c 48 8b 00 mov rax, QWORD PTR [rax] - 0025f 48 63 4d 64 movsxd rcx, DWORD PTR p$[rbp] - 00263 8b 8c 8d 88 00 - 00 00 mov ecx, DWORD PTR xorig$7[rbp+rcx*4] - 0026a 8b 00 mov eax, DWORD PTR [rax] - 0026c 2b c1 sub eax, ecx - 0026e 48 63 4d 64 movsxd rcx, DWORD PTR p$[rbp] - 00272 8b 8c 8d 08 01 - 00 00 mov ecx, DWORD PTR xspc$9[rbp+rcx*4] - 00279 8d 44 08 ff lea eax, DWORD PTR [rax+rcx-1] - 0027d 48 63 4d 64 movsxd rcx, DWORD PTR p$[rbp] - 00281 33 d2 xor edx, edx - 00283 f7 b4 8d 08 01 - 00 00 div DWORD PTR xspc$9[rbp+rcx*4] - 0028a 89 85 c4 01 00 - 00 mov DWORD PTR x$13[rbp], eax - -; 5489 : y = (a->s->img_y - yorig[p] + yspc[p] - 1) / yspc[p]; - - 00290 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR a$[rbp] - 00297 48 8b 00 mov rax, QWORD PTR [rax] - 0029a 48 63 4d 64 movsxd rcx, DWORD PTR p$[rbp] - 0029e 8b 8c 8d c8 00 - 00 00 mov ecx, DWORD PTR yorig$8[rbp+rcx*4] - 002a5 8b 40 04 mov eax, DWORD PTR [rax+4] - 002a8 2b c1 sub eax, ecx - 002aa 48 63 4d 64 movsxd rcx, DWORD PTR p$[rbp] - 002ae 8b 8c 8d 48 01 - 00 00 mov ecx, DWORD PTR yspc$10[rbp+rcx*4] - 002b5 8d 44 08 ff lea eax, DWORD PTR [rax+rcx-1] - 002b9 48 63 4d 64 movsxd rcx, DWORD PTR p$[rbp] - 002bd 33 d2 xor edx, edx - 002bf f7 b4 8d 48 01 - 00 00 div DWORD PTR yspc$10[rbp+rcx*4] - 002c6 89 85 e4 01 00 - 00 mov DWORD PTR y$14[rbp], eax - -; 5490 : if (x && y) { - - 002cc 83 bd c4 01 00 - 00 00 cmp DWORD PTR x$13[rbp], 0 - 002d3 0f 84 0a 02 00 - 00 je $LN13@stbi__crea - 002d9 83 bd e4 01 00 - 00 00 cmp DWORD PTR y$14[rbp], 0 - 002e0 0f 84 fd 01 00 - 00 je $LN13@stbi__crea - -; 5491 : stbi__uint32 img_len = ((((a->s->img_n * x * depth) + 7) >> 3) + 1) * y; - - 002e6 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR a$[rbp] - 002ed 48 8b 00 mov rax, QWORD PTR [rax] - 002f0 8b 40 08 mov eax, DWORD PTR [rax+8] - 002f3 0f af 85 c4 01 - 00 00 imul eax, DWORD PTR x$13[rbp] - 002fa 0f af 85 20 04 - 00 00 imul eax, DWORD PTR depth$[rbp] - 00301 83 c0 07 add eax, 7 - 00304 c1 f8 03 sar eax, 3 - 00307 ff c0 inc eax - 00309 0f af 85 e4 01 - 00 00 imul eax, DWORD PTR y$14[rbp] - 00310 89 85 04 02 00 - 00 mov DWORD PTR img_len$15[rbp], eax - -; 5492 : if (!stbi__create_png_image_raw(a, image_data, image_data_len, out_n, x, y, - - 00316 8b 85 28 04 00 - 00 mov eax, DWORD PTR color$[rbp] - 0031c 89 44 24 38 mov DWORD PTR [rsp+56], eax - 00320 8b 85 20 04 00 - 00 mov eax, DWORD PTR depth$[rbp] - 00326 89 44 24 30 mov DWORD PTR [rsp+48], eax - 0032a 8b 85 e4 01 00 - 00 mov eax, DWORD PTR y$14[rbp] - 00330 89 44 24 28 mov DWORD PTR [rsp+40], eax - 00334 8b 85 c4 01 00 - 00 mov eax, DWORD PTR x$13[rbp] - 0033a 89 44 24 20 mov DWORD PTR [rsp+32], eax - 0033e 44 8b 8d 18 04 - 00 00 mov r9d, DWORD PTR out_n$[rbp] - 00345 44 8b 85 10 04 - 00 00 mov r8d, DWORD PTR image_data_len$[rbp] - 0034c 48 8b 95 08 04 - 00 00 mov rdx, QWORD PTR image_data$[rbp] - 00353 48 8b 8d 00 04 - 00 00 mov rcx, QWORD PTR a$[rbp] - 0035a e8 00 00 00 00 call stbi__create_png_image_raw - 0035f 85 c0 test eax, eax - 00361 75 12 jne SHORT $LN14@stbi__crea - -; 5493 : depth, color)) { -; 5494 : STBI_FREE(final); - - 00363 48 8b 4d 48 mov rcx, QWORD PTR final$[rbp] - 00367 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 0036d 90 npad 1 - -; 5495 : return 0; - - 0036e 33 c0 xor eax, eax - 00370 e9 87 01 00 00 jmp $LN1@stbi__crea -$LN14@stbi__crea: - -; 5496 : } -; 5497 : for (j = 0; j < y; ++j) { - - 00375 c7 85 a4 01 00 - 00 00 00 00 00 mov DWORD PTR j$12[rbp], 0 - 0037f eb 0e jmp SHORT $LN7@stbi__crea -$LN5@stbi__crea: - 00381 8b 85 a4 01 00 - 00 mov eax, DWORD PTR j$12[rbp] - 00387 ff c0 inc eax - 00389 89 85 a4 01 00 - 00 mov DWORD PTR j$12[rbp], eax -$LN7@stbi__crea: - 0038f 8b 85 e4 01 00 - 00 mov eax, DWORD PTR y$14[rbp] - 00395 39 85 a4 01 00 - 00 cmp DWORD PTR j$12[rbp], eax - 0039b 0f 8d 00 01 00 - 00 jge $LN6@stbi__crea - -; 5498 : for (i = 0; i < x; ++i) { - - 003a1 c7 85 84 01 00 - 00 00 00 00 00 mov DWORD PTR i$11[rbp], 0 - 003ab eb 0e jmp SHORT $LN10@stbi__crea -$LN8@stbi__crea: - 003ad 8b 85 84 01 00 - 00 mov eax, DWORD PTR i$11[rbp] - 003b3 ff c0 inc eax - 003b5 89 85 84 01 00 - 00 mov DWORD PTR i$11[rbp], eax -$LN10@stbi__crea: - 003bb 8b 85 c4 01 00 - 00 mov eax, DWORD PTR x$13[rbp] - 003c1 39 85 84 01 00 - 00 cmp DWORD PTR i$11[rbp], eax - 003c7 0f 8d cf 00 00 - 00 jge $LN9@stbi__crea - -; 5499 : int out_y = j * yspc[p] + yorig[p]; - - 003cd 48 63 45 64 movsxd rax, DWORD PTR p$[rbp] - 003d1 8b 8d a4 01 00 - 00 mov ecx, DWORD PTR j$12[rbp] - 003d7 0f af 8c 85 48 - 01 00 00 imul ecx, DWORD PTR yspc$10[rbp+rax*4] - 003df 8b c1 mov eax, ecx - 003e1 48 63 4d 64 movsxd rcx, DWORD PTR p$[rbp] - 003e5 03 84 8d c8 00 - 00 00 add eax, DWORD PTR yorig$8[rbp+rcx*4] - 003ec 89 85 24 02 00 - 00 mov DWORD PTR out_y$16[rbp], eax - -; 5500 : int out_x = i * xspc[p] + xorig[p]; - - 003f2 48 63 45 64 movsxd rax, DWORD PTR p$[rbp] - 003f6 8b 8d 84 01 00 - 00 mov ecx, DWORD PTR i$11[rbp] - 003fc 0f af 8c 85 08 - 01 00 00 imul ecx, DWORD PTR xspc$9[rbp+rax*4] - 00404 8b c1 mov eax, ecx - 00406 48 63 4d 64 movsxd rcx, DWORD PTR p$[rbp] - 0040a 03 84 8d 88 00 - 00 00 add eax, DWORD PTR xorig$7[rbp+rcx*4] - 00411 89 85 44 02 00 - 00 mov DWORD PTR out_x$17[rbp], eax - -; 5501 : memcpy(final + out_y * a->s->img_x * out_bytes + - - 00417 48 63 45 24 movsxd rax, DWORD PTR out_bytes$[rbp] - 0041b 8b 8d a4 01 00 - 00 mov ecx, DWORD PTR j$12[rbp] - 00421 0f af 8d c4 01 - 00 00 imul ecx, DWORD PTR x$13[rbp] - 00428 03 8d 84 01 00 - 00 add ecx, DWORD PTR i$11[rbp] - 0042e 0f af 4d 24 imul ecx, DWORD PTR out_bytes$[rbp] - 00432 48 63 c9 movsxd rcx, ecx - 00435 48 8b 95 00 04 - 00 00 mov rdx, QWORD PTR a$[rbp] - 0043c 48 03 4a 18 add rcx, QWORD PTR [rdx+24] - 00440 48 8b 95 00 04 - 00 00 mov rdx, QWORD PTR a$[rbp] - 00447 48 8b 12 mov rdx, QWORD PTR [rdx] - 0044a 44 8b 85 24 02 - 00 00 mov r8d, DWORD PTR out_y$16[rbp] - 00451 44 0f af 02 imul r8d, DWORD PTR [rdx] - 00455 41 8b d0 mov edx, r8d - 00458 0f af 55 24 imul edx, DWORD PTR out_bytes$[rbp] - 0045c 8b d2 mov edx, edx - 0045e 4c 8b 45 48 mov r8, QWORD PTR final$[rbp] - 00462 4c 03 c2 add r8, rdx - 00465 49 8b d0 mov rdx, r8 - 00468 44 8b 85 44 02 - 00 00 mov r8d, DWORD PTR out_x$17[rbp] - 0046f 44 0f af 45 24 imul r8d, DWORD PTR out_bytes$[rbp] - 00474 4d 63 c0 movsxd r8, r8d - 00477 49 03 d0 add rdx, r8 - 0047a 48 89 95 d8 03 - 00 00 mov QWORD PTR tv280[rbp], rdx - 00481 4c 8b c0 mov r8, rax - 00484 48 8b d1 mov rdx, rcx - 00487 48 8b 85 d8 03 - 00 00 mov rax, QWORD PTR tv280[rbp] - 0048e 48 8b c8 mov rcx, rax - 00491 e8 00 00 00 00 call memcpy - 00496 90 npad 1 - -; 5502 : out_x * out_bytes, -; 5503 : a->out + (j * x + i) * out_bytes, out_bytes); -; 5504 : } - - 00497 e9 11 ff ff ff jmp $LN8@stbi__crea -$LN9@stbi__crea: - -; 5505 : } - - 0049c e9 e0 fe ff ff jmp $LN5@stbi__crea -$LN6@stbi__crea: - -; 5506 : STBI_FREE(a->out); - - 004a1 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR a$[rbp] - 004a8 48 8b 48 18 mov rcx, QWORD PTR [rax+24] - 004ac ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 004b2 90 npad 1 - -; 5507 : image_data += img_len; - - 004b3 8b 85 04 02 00 - 00 mov eax, DWORD PTR img_len$15[rbp] - 004b9 48 8b 8d 08 04 - 00 00 mov rcx, QWORD PTR image_data$[rbp] - 004c0 48 03 c8 add rcx, rax - 004c3 48 8b c1 mov rax, rcx - 004c6 48 89 85 08 04 - 00 00 mov QWORD PTR image_data$[rbp], rax - -; 5508 : image_data_len -= img_len; - - 004cd 8b 85 04 02 00 - 00 mov eax, DWORD PTR img_len$15[rbp] - 004d3 8b 8d 10 04 00 - 00 mov ecx, DWORD PTR image_data_len$[rbp] - 004d9 2b c8 sub ecx, eax - 004db 8b c1 mov eax, ecx - 004dd 89 85 10 04 00 - 00 mov DWORD PTR image_data_len$[rbp], eax -$LN13@stbi__crea: - -; 5509 : } -; 5510 : } - - 004e3 e9 43 fc ff ff jmp $LN2@stbi__crea -$LN3@stbi__crea: - -; 5511 : a->out = final; - - 004e8 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR a$[rbp] - 004ef 48 8b 4d 48 mov rcx, QWORD PTR final$[rbp] - 004f3 48 89 48 18 mov QWORD PTR [rax+24], rcx - -; 5512 : -; 5513 : return 1; - - 004f7 b8 01 00 00 00 mov eax, 1 -$LN1@stbi__crea: - -; 5514 : } - - 004fc 48 8b f8 mov rdi, rax - 004ff 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] - 00503 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__create_png_image$rtcFrameData - 0050a e8 00 00 00 00 call _RTC_CheckStackVars - 0050f 48 8b c7 mov rax, rdi - 00512 48 8d a5 e8 03 - 00 00 lea rsp, QWORD PTR [rbp+1000] - 00519 5f pop rdi - 0051a 5d pop rbp - 0051b c3 ret 0 -stbi__create_png_image ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__create_png_image_raw -_TEXT SEGMENT -bytes$ = 4 -s$ = 40 -i$ = 68 -j$ = 100 -stride$ = 132 -img_len$ = 164 -img_width_bytes$ = 196 -filter_buf$ = 232 -all_ok$ = 260 -k$ = 292 -img_n$ = 324 -output_bytes$ = 356 -filter_bytes$ = 388 -width$ = 420 -cur$1 = 456 -prior$2 = 488 -dest$3 = 520 -nk$4 = 548 -filter$5 = 580 -scale$6 = 612 -in$7 = 648 -out$8 = 680 -inb$9 = 708 -nsmp$10 = 740 -dest16$11 = 776 -nsmp$12 = 804 -tv65 = 1204 -tv181 = 1204 -tv287 = 1204 -tv340 = 1204 -tv304 = 1208 -a$ = 1248 -raw$ = 1256 -raw_len$ = 1264 -out_n$ = 1272 -x$ = 1280 -y$ = 1288 -depth$ = 1296 -color$ = 1304 -stbi__create_png_image_raw PROC ; COMDAT - -; 5286 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec e8 04 - 00 00 sub rsp, 1256 ; 000004e8H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 5287 : int bytes = (depth == 16 ? 2 : 1); - - 0002f 83 bd 10 05 00 - 00 10 cmp DWORD PTR depth$[rbp], 16 - 00036 75 0c jne SHORT $LN81@stbi__crea - 00038 c7 85 b4 04 00 - 00 02 00 00 00 mov DWORD PTR tv65[rbp], 2 - 00042 eb 0a jmp SHORT $LN82@stbi__crea -$LN81@stbi__crea: - 00044 c7 85 b4 04 00 - 00 01 00 00 00 mov DWORD PTR tv65[rbp], 1 -$LN82@stbi__crea: - 0004e 8b 85 b4 04 00 - 00 mov eax, DWORD PTR tv65[rbp] - 00054 89 45 04 mov DWORD PTR bytes$[rbp], eax - -; 5288 : stbi__context *s = a->s; - - 00057 48 8b 85 e0 04 - 00 00 mov rax, QWORD PTR a$[rbp] - 0005e 48 8b 00 mov rax, QWORD PTR [rax] - 00061 48 89 45 28 mov QWORD PTR s$[rbp], rax - -; 5289 : stbi__uint32 i, j, stride = x * out_n * bytes; - - 00065 8b 85 00 05 00 - 00 mov eax, DWORD PTR x$[rbp] - 0006b 0f af 85 f8 04 - 00 00 imul eax, DWORD PTR out_n$[rbp] - 00072 0f af 45 04 imul eax, DWORD PTR bytes$[rbp] - 00076 89 85 84 00 00 - 00 mov DWORD PTR stride$[rbp], eax - -; 5290 : stbi__uint32 img_len, img_width_bytes; -; 5291 : stbi_uc *filter_buf; -; 5292 : int all_ok = 1; - - 0007c c7 85 04 01 00 - 00 01 00 00 00 mov DWORD PTR all_ok$[rbp], 1 - -; 5293 : int k; -; 5294 : int img_n = s->img_n; // copy it into a local for later - - 00086 48 8b 45 28 mov rax, QWORD PTR s$[rbp] - 0008a 8b 40 08 mov eax, DWORD PTR [rax+8] - 0008d 89 85 44 01 00 - 00 mov DWORD PTR img_n$[rbp], eax - -; 5295 : -; 5296 : int output_bytes = out_n * bytes; - - 00093 8b 85 f8 04 00 - 00 mov eax, DWORD PTR out_n$[rbp] - 00099 0f af 45 04 imul eax, DWORD PTR bytes$[rbp] - 0009d 89 85 64 01 00 - 00 mov DWORD PTR output_bytes$[rbp], eax - -; 5297 : int filter_bytes = img_n * bytes; - - 000a3 8b 85 44 01 00 - 00 mov eax, DWORD PTR img_n$[rbp] - 000a9 0f af 45 04 imul eax, DWORD PTR bytes$[rbp] - 000ad 89 85 84 01 00 - 00 mov DWORD PTR filter_bytes$[rbp], eax - -; 5298 : int width = x; - - 000b3 8b 85 00 05 00 - 00 mov eax, DWORD PTR x$[rbp] - 000b9 89 85 a4 01 00 - 00 mov DWORD PTR width$[rbp], eax - -; 5299 : -; 5300 : STBI_ASSERT(out_n == s->img_n || out_n == s->img_n + 1); - - 000bf 48 8b 45 28 mov rax, QWORD PTR s$[rbp] - 000c3 8b 40 08 mov eax, DWORD PTR [rax+8] - 000c6 39 85 f8 04 00 - 00 cmp DWORD PTR out_n$[rbp], eax - 000cc 74 2d je SHORT $LN83@stbi__crea - 000ce 48 8b 45 28 mov rax, QWORD PTR s$[rbp] - 000d2 8b 40 08 mov eax, DWORD PTR [rax+8] - 000d5 ff c0 inc eax - 000d7 39 85 f8 04 00 - 00 cmp DWORD PTR out_n$[rbp], eax - 000dd 74 1c je SHORT $LN83@stbi__crea - 000df 41 b8 b4 14 00 - 00 mov r8d, 5300 ; 000014b4H - 000e5 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ - 000ec 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1FG@LGPEHEPM@?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAs?$AA?9?$AA?$DO?$AAi?$AAm?$AAg@ - 000f3 ff 15 00 00 00 - 00 call QWORD PTR __imp__wassert - 000f9 33 c0 xor eax, eax -$LN83@stbi__crea: - -; 5301 : a->out = (stbi_uc *)stbi__malloc_mad3(x, y, output_bytes, - - 000fb 45 33 c9 xor r9d, r9d - 000fe 44 8b 85 64 01 - 00 00 mov r8d, DWORD PTR output_bytes$[rbp] - 00105 8b 95 08 05 00 - 00 mov edx, DWORD PTR y$[rbp] - 0010b 8b 8d 00 05 00 - 00 mov ecx, DWORD PTR x$[rbp] - 00111 e8 00 00 00 00 call stbi__malloc_mad3 - 00116 48 8b 8d e0 04 - 00 00 mov rcx, QWORD PTR a$[rbp] - 0011d 48 89 41 18 mov QWORD PTR [rcx+24], rax - -; 5302 : 0); // extra bytes to write off the end into -; 5303 : if (!a->out) - - 00121 48 8b 85 e0 04 - 00 00 mov rax, QWORD PTR a$[rbp] - 00128 48 83 78 18 00 cmp QWORD PTR [rax+24], 0 - 0012d 75 11 jne SHORT $LN46@stbi__crea - -; 5304 : return stbi__err("outofmem", "Out of memory"); - - 0012f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 00136 e8 00 00 00 00 call stbi__err - 0013b e9 3c 0c 00 00 jmp $LN1@stbi__crea -$LN46@stbi__crea: - -; 5305 : -; 5306 : // note: error exits here don't need to clean up a->out individually, -; 5307 : // stbi__do_png always does on error. -; 5308 : if (!stbi__mad3sizes_valid(img_n, x, depth, 7)) - - 00140 41 b9 07 00 00 - 00 mov r9d, 7 - 00146 44 8b 85 10 05 - 00 00 mov r8d, DWORD PTR depth$[rbp] - 0014d 8b 95 00 05 00 - 00 mov edx, DWORD PTR x$[rbp] - 00153 8b 8d 44 01 00 - 00 mov ecx, DWORD PTR img_n$[rbp] - 00159 e8 00 00 00 00 call stbi__mad3sizes_valid - 0015e 85 c0 test eax, eax - 00160 75 11 jne SHORT $LN47@stbi__crea - -; 5309 : return stbi__err("too large", "Corrupt PNG"); - - 00162 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 00169 e8 00 00 00 00 call stbi__err - 0016e e9 09 0c 00 00 jmp $LN1@stbi__crea -$LN47@stbi__crea: - -; 5310 : img_width_bytes = (((img_n * x * depth) + 7) >> 3); - - 00173 8b 85 44 01 00 - 00 mov eax, DWORD PTR img_n$[rbp] - 00179 0f af 85 00 05 - 00 00 imul eax, DWORD PTR x$[rbp] - 00180 0f af 85 10 05 - 00 00 imul eax, DWORD PTR depth$[rbp] - 00187 83 c0 07 add eax, 7 - 0018a c1 e8 03 shr eax, 3 - 0018d 89 85 c4 00 00 - 00 mov DWORD PTR img_width_bytes$[rbp], eax - -; 5311 : if (!stbi__mad2sizes_valid(img_width_bytes, y, img_width_bytes)) - - 00193 44 8b 85 c4 00 - 00 00 mov r8d, DWORD PTR img_width_bytes$[rbp] - 0019a 8b 95 08 05 00 - 00 mov edx, DWORD PTR y$[rbp] - 001a0 8b 8d c4 00 00 - 00 mov ecx, DWORD PTR img_width_bytes$[rbp] - 001a6 e8 00 00 00 00 call stbi__mad2sizes_valid - 001ab 85 c0 test eax, eax - 001ad 75 11 jne SHORT $LN48@stbi__crea - -; 5312 : return stbi__err("too large", "Corrupt PNG"); - - 001af 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 001b6 e8 00 00 00 00 call stbi__err - 001bb e9 bc 0b 00 00 jmp $LN1@stbi__crea -$LN48@stbi__crea: - -; 5313 : img_len = (img_width_bytes + 1) * y; - - 001c0 8b 85 c4 00 00 - 00 mov eax, DWORD PTR img_width_bytes$[rbp] - 001c6 ff c0 inc eax - 001c8 0f af 85 08 05 - 00 00 imul eax, DWORD PTR y$[rbp] - 001cf 89 85 a4 00 00 - 00 mov DWORD PTR img_len$[rbp], eax - -; 5314 : -; 5315 : // we used to check for exact match between raw_len and img_len on non-interlaced PNGs, -; 5316 : // but issue #276 reported a PNG in the wild that had extra data at the end (all zeros), -; 5317 : // so just check for raw_len < img_len always. -; 5318 : if (raw_len < img_len) - - 001d5 8b 85 a4 00 00 - 00 mov eax, DWORD PTR img_len$[rbp] - 001db 39 85 f0 04 00 - 00 cmp DWORD PTR raw_len$[rbp], eax - 001e1 73 11 jae SHORT $LN49@stbi__crea - -; 5319 : return stbi__err("not enough pixels", "Corrupt PNG"); - - 001e3 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BC@BHMPBBMG@not?5enough?5pixels@ - 001ea e8 00 00 00 00 call stbi__err - 001ef e9 88 0b 00 00 jmp $LN1@stbi__crea -$LN49@stbi__crea: - -; 5320 : -; 5321 : // Allocate two scan lines worth of filter workspace buffer. -; 5322 : filter_buf = (stbi_uc *)stbi__malloc_mad2(img_width_bytes, 2, 0); - - 001f4 45 33 c0 xor r8d, r8d - 001f7 ba 02 00 00 00 mov edx, 2 - 001fc 8b 8d c4 00 00 - 00 mov ecx, DWORD PTR img_width_bytes$[rbp] - 00202 e8 00 00 00 00 call stbi__malloc_mad2 - 00207 48 89 85 e8 00 - 00 00 mov QWORD PTR filter_buf$[rbp], rax - -; 5323 : if (!filter_buf) - - 0020e 48 83 bd e8 00 - 00 00 00 cmp QWORD PTR filter_buf$[rbp], 0 - 00216 75 11 jne SHORT $LN50@stbi__crea - -; 5324 : return stbi__err("outofmem", "Out of memory"); - - 00218 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 0021f e8 00 00 00 00 call stbi__err - 00224 e9 53 0b 00 00 jmp $LN1@stbi__crea -$LN50@stbi__crea: - -; 5325 : -; 5326 : // Filtering for low-bit-depth images -; 5327 : if (depth < 8) { - - 00229 83 bd 10 05 00 - 00 08 cmp DWORD PTR depth$[rbp], 8 - 00230 7d 16 jge SHORT $LN51@stbi__crea - -; 5328 : filter_bytes = 1; - - 00232 c7 85 84 01 00 - 00 01 00 00 00 mov DWORD PTR filter_bytes$[rbp], 1 - -; 5329 : width = img_width_bytes; - - 0023c 8b 85 c4 00 00 - 00 mov eax, DWORD PTR img_width_bytes$[rbp] - 00242 89 85 a4 01 00 - 00 mov DWORD PTR width$[rbp], eax -$LN51@stbi__crea: - -; 5330 : } -; 5331 : -; 5332 : for (j = 0; j < y; ++j) { - - 00248 c7 45 64 00 00 - 00 00 mov DWORD PTR j$[rbp], 0 - 0024f eb 08 jmp SHORT $LN4@stbi__crea -$LN2@stbi__crea: - 00251 8b 45 64 mov eax, DWORD PTR j$[rbp] - 00254 ff c0 inc eax - 00256 89 45 64 mov DWORD PTR j$[rbp], eax -$LN4@stbi__crea: - 00259 8b 85 08 05 00 - 00 mov eax, DWORD PTR y$[rbp] - 0025f 39 45 64 cmp DWORD PTR j$[rbp], eax - 00262 0f 83 f4 0a 00 - 00 jae $LN3@stbi__crea - -; 5333 : // cur/prior filter buffers alternate -; 5334 : stbi_uc *cur = filter_buf + (j & 1) * img_width_bytes; - - 00268 8b 45 64 mov eax, DWORD PTR j$[rbp] - 0026b 83 e0 01 and eax, 1 - 0026e 0f af 85 c4 00 - 00 00 imul eax, DWORD PTR img_width_bytes$[rbp] - 00275 8b c0 mov eax, eax - 00277 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR filter_buf$[rbp] - 0027e 48 03 c8 add rcx, rax - 00281 48 8b c1 mov rax, rcx - 00284 48 89 85 c8 01 - 00 00 mov QWORD PTR cur$1[rbp], rax - -; 5335 : stbi_uc *prior = filter_buf + (~j & 1) * img_width_bytes; - - 0028b 8b 45 64 mov eax, DWORD PTR j$[rbp] - 0028e f7 d0 not eax - 00290 83 e0 01 and eax, 1 - 00293 0f af 85 c4 00 - 00 00 imul eax, DWORD PTR img_width_bytes$[rbp] - 0029a 8b c0 mov eax, eax - 0029c 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR filter_buf$[rbp] - 002a3 48 03 c8 add rcx, rax - 002a6 48 8b c1 mov rax, rcx - 002a9 48 89 85 e8 01 - 00 00 mov QWORD PTR prior$2[rbp], rax - -; 5336 : stbi_uc *dest = a->out + stride * j; - - 002b0 8b 85 84 00 00 - 00 mov eax, DWORD PTR stride$[rbp] - 002b6 0f af 45 64 imul eax, DWORD PTR j$[rbp] - 002ba 8b c0 mov eax, eax - 002bc 48 8b 8d e0 04 - 00 00 mov rcx, QWORD PTR a$[rbp] - 002c3 48 03 41 18 add rax, QWORD PTR [rcx+24] - 002c7 48 89 85 08 02 - 00 00 mov QWORD PTR dest$3[rbp], rax - -; 5337 : int nk = width * filter_bytes; - - 002ce 8b 85 a4 01 00 - 00 mov eax, DWORD PTR width$[rbp] - 002d4 0f af 85 84 01 - 00 00 imul eax, DWORD PTR filter_bytes$[rbp] - 002db 89 85 24 02 00 - 00 mov DWORD PTR nk$4[rbp], eax - -; 5338 : int filter = *raw++; - - 002e1 48 8b 85 e8 04 - 00 00 mov rax, QWORD PTR raw$[rbp] - 002e8 0f b6 00 movzx eax, BYTE PTR [rax] - 002eb 89 85 44 02 00 - 00 mov DWORD PTR filter$5[rbp], eax - 002f1 48 8b 85 e8 04 - 00 00 mov rax, QWORD PTR raw$[rbp] - 002f8 48 ff c0 inc rax - 002fb 48 89 85 e8 04 - 00 00 mov QWORD PTR raw$[rbp], rax - -; 5339 : -; 5340 : // check filter type -; 5341 : if (filter > 4) { - - 00302 83 bd 44 02 00 - 00 04 cmp DWORD PTR filter$5[rbp], 4 - 00309 7e 17 jle SHORT $LN52@stbi__crea - -; 5342 : all_ok = stbi__err("invalid filter", "Corrupt PNG"); - - 0030b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0P@FBBCPGMN@invalid?5filter@ - 00312 e8 00 00 00 00 call stbi__err - 00317 89 85 04 01 00 - 00 mov DWORD PTR all_ok$[rbp], eax - -; 5343 : break; - - 0031d e9 3a 0a 00 00 jmp $LN3@stbi__crea -$LN52@stbi__crea: - -; 5344 : } -; 5345 : -; 5346 : // if first row, use special filter that doesn't sample previous row -; 5347 : if (j == 0) - - 00322 83 7d 64 00 cmp DWORD PTR j$[rbp], 0 - 00326 75 18 jne SHORT $LN53@stbi__crea - -; 5348 : filter = first_row_filter[filter]; - - 00328 48 63 85 44 02 - 00 00 movsxd rax, DWORD PTR filter$5[rbp] - 0032f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:first_row_filter - 00336 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0033a 89 85 44 02 00 - 00 mov DWORD PTR filter$5[rbp], eax -$LN53@stbi__crea: - -; 5349 : -; 5350 : // perform actual filtering -; 5351 : switch (filter) { - - 00340 8b 85 44 02 00 - 00 mov eax, DWORD PTR filter$5[rbp] - 00346 89 85 b4 04 00 - 00 mov DWORD PTR tv181[rbp], eax - 0034c 83 bd b4 04 00 - 00 05 cmp DWORD PTR tv181[rbp], 5 - 00353 0f 87 0d 04 00 - 00 ja $LN5@stbi__crea - 00359 48 63 85 b4 04 - 00 00 movsxd rax, DWORD PTR tv181[rbp] - 00360 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__ImageBase - 00367 8b 84 81 00 00 - 00 00 mov eax, DWORD PTR $LN89@stbi__crea[rcx+rax*4] - 0036e 48 03 c1 add rax, rcx - 00371 ff e0 jmp rax -$LN54@stbi__crea: - -; 5352 : case STBI__F_none: -; 5353 : memcpy(cur, raw, nk); - - 00373 48 63 85 24 02 - 00 00 movsxd rax, DWORD PTR nk$4[rbp] - 0037a 4c 8b c0 mov r8, rax - 0037d 48 8b 95 e8 04 - 00 00 mov rdx, QWORD PTR raw$[rbp] - 00384 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR cur$1[rbp] - 0038b e8 00 00 00 00 call memcpy - 00390 90 npad 1 - -; 5354 : break; - - 00391 e9 d0 03 00 00 jmp $LN5@stbi__crea -$LN55@stbi__crea: - -; 5355 : case STBI__F_sub: -; 5356 : memcpy(cur, raw, filter_bytes); - - 00396 48 63 85 84 01 - 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp] - 0039d 4c 8b c0 mov r8, rax - 003a0 48 8b 95 e8 04 - 00 00 mov rdx, QWORD PTR raw$[rbp] - 003a7 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR cur$1[rbp] - 003ae e8 00 00 00 00 call memcpy - 003b3 90 npad 1 - -; 5357 : for (k = filter_bytes; k < nk; ++k) - - 003b4 8b 85 84 01 00 - 00 mov eax, DWORD PTR filter_bytes$[rbp] - 003ba 89 85 24 01 00 - 00 mov DWORD PTR k$[rbp], eax - 003c0 eb 0e jmp SHORT $LN9@stbi__crea -$LN7@stbi__crea: - 003c2 8b 85 24 01 00 - 00 mov eax, DWORD PTR k$[rbp] - 003c8 ff c0 inc eax - 003ca 89 85 24 01 00 - 00 mov DWORD PTR k$[rbp], eax -$LN9@stbi__crea: - 003d0 8b 85 24 02 00 - 00 mov eax, DWORD PTR nk$4[rbp] - 003d6 39 85 24 01 00 - 00 cmp DWORD PTR k$[rbp], eax - 003dc 7d 4a jge SHORT $LN8@stbi__crea - -; 5358 : cur[k] = STBI__BYTECAST(raw[k] + cur[k - filter_bytes]); - - 003de 48 63 85 24 01 - 00 00 movsxd rax, DWORD PTR k$[rbp] - 003e5 48 8b 8d e8 04 - 00 00 mov rcx, QWORD PTR raw$[rbp] - 003ec 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 003f0 8b 8d 84 01 00 - 00 mov ecx, DWORD PTR filter_bytes$[rbp] - 003f6 8b 95 24 01 00 - 00 mov edx, DWORD PTR k$[rbp] - 003fc 2b d1 sub edx, ecx - 003fe 8b ca mov ecx, edx - 00400 48 63 c9 movsxd rcx, ecx - 00403 48 8b 95 c8 01 - 00 00 mov rdx, QWORD PTR cur$1[rbp] - 0040a 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 0040e 03 c1 add eax, ecx - 00410 25 ff 00 00 00 and eax, 255 ; 000000ffH - 00415 48 63 8d 24 01 - 00 00 movsxd rcx, DWORD PTR k$[rbp] - 0041c 48 8b 95 c8 01 - 00 00 mov rdx, QWORD PTR cur$1[rbp] - 00423 88 04 0a mov BYTE PTR [rdx+rcx], al - 00426 eb 9a jmp SHORT $LN7@stbi__crea -$LN8@stbi__crea: - -; 5359 : break; - - 00428 e9 39 03 00 00 jmp $LN5@stbi__crea -$LN56@stbi__crea: - -; 5360 : case STBI__F_up: -; 5361 : for (k = 0; k < nk; ++k) - - 0042d c7 85 24 01 00 - 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 - 00437 eb 0e jmp SHORT $LN12@stbi__crea -$LN10@stbi__crea: - 00439 8b 85 24 01 00 - 00 mov eax, DWORD PTR k$[rbp] - 0043f ff c0 inc eax - 00441 89 85 24 01 00 - 00 mov DWORD PTR k$[rbp], eax -$LN12@stbi__crea: - 00447 8b 85 24 02 00 - 00 mov eax, DWORD PTR nk$4[rbp] - 0044d 39 85 24 01 00 - 00 cmp DWORD PTR k$[rbp], eax - 00453 7d 3e jge SHORT $LN11@stbi__crea - -; 5362 : cur[k] = STBI__BYTECAST(raw[k] + prior[k]); - - 00455 48 63 85 24 01 - 00 00 movsxd rax, DWORD PTR k$[rbp] - 0045c 48 8b 8d e8 04 - 00 00 mov rcx, QWORD PTR raw$[rbp] - 00463 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00467 48 63 8d 24 01 - 00 00 movsxd rcx, DWORD PTR k$[rbp] - 0046e 48 8b 95 e8 01 - 00 00 mov rdx, QWORD PTR prior$2[rbp] - 00475 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 00479 03 c1 add eax, ecx - 0047b 25 ff 00 00 00 and eax, 255 ; 000000ffH - 00480 48 63 8d 24 01 - 00 00 movsxd rcx, DWORD PTR k$[rbp] - 00487 48 8b 95 c8 01 - 00 00 mov rdx, QWORD PTR cur$1[rbp] - 0048e 88 04 0a mov BYTE PTR [rdx+rcx], al - 00491 eb a6 jmp SHORT $LN10@stbi__crea -$LN11@stbi__crea: - -; 5363 : break; - - 00493 e9 ce 02 00 00 jmp $LN5@stbi__crea -$LN57@stbi__crea: - -; 5364 : case STBI__F_avg: -; 5365 : for (k = 0; k < filter_bytes; ++k) - - 00498 c7 85 24 01 00 - 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 - 004a2 eb 0e jmp SHORT $LN15@stbi__crea -$LN13@stbi__crea: - 004a4 8b 85 24 01 00 - 00 mov eax, DWORD PTR k$[rbp] - 004aa ff c0 inc eax - 004ac 89 85 24 01 00 - 00 mov DWORD PTR k$[rbp], eax -$LN15@stbi__crea: - 004b2 8b 85 84 01 00 - 00 mov eax, DWORD PTR filter_bytes$[rbp] - 004b8 39 85 24 01 00 - 00 cmp DWORD PTR k$[rbp], eax - 004be 7d 40 jge SHORT $LN14@stbi__crea - -; 5366 : cur[k] = STBI__BYTECAST(raw[k] + (prior[k] >> 1)); - - 004c0 48 63 85 24 01 - 00 00 movsxd rax, DWORD PTR k$[rbp] - 004c7 48 8b 8d e8 04 - 00 00 mov rcx, QWORD PTR raw$[rbp] - 004ce 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 004d2 48 63 8d 24 01 - 00 00 movsxd rcx, DWORD PTR k$[rbp] - 004d9 48 8b 95 e8 01 - 00 00 mov rdx, QWORD PTR prior$2[rbp] - 004e0 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 004e4 d1 f9 sar ecx, 1 - 004e6 03 c1 add eax, ecx - 004e8 25 ff 00 00 00 and eax, 255 ; 000000ffH - 004ed 48 63 8d 24 01 - 00 00 movsxd rcx, DWORD PTR k$[rbp] - 004f4 48 8b 95 c8 01 - 00 00 mov rdx, QWORD PTR cur$1[rbp] - 004fb 88 04 0a mov BYTE PTR [rdx+rcx], al - 004fe eb a4 jmp SHORT $LN13@stbi__crea -$LN14@stbi__crea: - -; 5367 : for (k = filter_bytes; k < nk; ++k) - - 00500 8b 85 84 01 00 - 00 mov eax, DWORD PTR filter_bytes$[rbp] - 00506 89 85 24 01 00 - 00 mov DWORD PTR k$[rbp], eax - 0050c eb 0e jmp SHORT $LN18@stbi__crea -$LN16@stbi__crea: - 0050e 8b 85 24 01 00 - 00 mov eax, DWORD PTR k$[rbp] - 00514 ff c0 inc eax - 00516 89 85 24 01 00 - 00 mov DWORD PTR k$[rbp], eax -$LN18@stbi__crea: - 0051c 8b 85 24 02 00 - 00 mov eax, DWORD PTR nk$4[rbp] - 00522 39 85 24 01 00 - 00 cmp DWORD PTR k$[rbp], eax - 00528 7d 64 jge SHORT $LN17@stbi__crea - -; 5368 : cur[k] = STBI__BYTECAST(raw[k] + - - 0052a 48 63 85 24 01 - 00 00 movsxd rax, DWORD PTR k$[rbp] - 00531 48 8b 8d e8 04 - 00 00 mov rcx, QWORD PTR raw$[rbp] - 00538 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0053c 48 63 8d 24 01 - 00 00 movsxd rcx, DWORD PTR k$[rbp] - 00543 48 8b 95 e8 01 - 00 00 mov rdx, QWORD PTR prior$2[rbp] - 0054a 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 0054e 8b 95 84 01 00 - 00 mov edx, DWORD PTR filter_bytes$[rbp] - 00554 44 8b 85 24 01 - 00 00 mov r8d, DWORD PTR k$[rbp] - 0055b 44 2b c2 sub r8d, edx - 0055e 41 8b d0 mov edx, r8d - 00561 48 63 d2 movsxd rdx, edx - 00564 4c 8b 85 c8 01 - 00 00 mov r8, QWORD PTR cur$1[rbp] - 0056b 41 0f b6 14 10 movzx edx, BYTE PTR [r8+rdx] - 00570 03 ca add ecx, edx - 00572 d1 f9 sar ecx, 1 - 00574 03 c1 add eax, ecx - 00576 25 ff 00 00 00 and eax, 255 ; 000000ffH - 0057b 48 63 8d 24 01 - 00 00 movsxd rcx, DWORD PTR k$[rbp] - 00582 48 8b 95 c8 01 - 00 00 mov rdx, QWORD PTR cur$1[rbp] - 00589 88 04 0a mov BYTE PTR [rdx+rcx], al - 0058c eb 80 jmp SHORT $LN16@stbi__crea -$LN17@stbi__crea: - -; 5369 : ((prior[k] + cur[k - filter_bytes]) >> 1)); -; 5370 : break; - - 0058e e9 d3 01 00 00 jmp $LN5@stbi__crea -$LN58@stbi__crea: - -; 5371 : case STBI__F_paeth: -; 5372 : for (k = 0; k < filter_bytes; ++k) - - 00593 c7 85 24 01 00 - 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 - 0059d eb 0e jmp SHORT $LN21@stbi__crea -$LN19@stbi__crea: - 0059f 8b 85 24 01 00 - 00 mov eax, DWORD PTR k$[rbp] - 005a5 ff c0 inc eax - 005a7 89 85 24 01 00 - 00 mov DWORD PTR k$[rbp], eax -$LN21@stbi__crea: - 005ad 8b 85 84 01 00 - 00 mov eax, DWORD PTR filter_bytes$[rbp] - 005b3 39 85 24 01 00 - 00 cmp DWORD PTR k$[rbp], eax - 005b9 7d 3e jge SHORT $LN20@stbi__crea - -; 5373 : cur[k] = STBI__BYTECAST( - - 005bb 48 63 85 24 01 - 00 00 movsxd rax, DWORD PTR k$[rbp] - 005c2 48 8b 8d e8 04 - 00 00 mov rcx, QWORD PTR raw$[rbp] - 005c9 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 005cd 48 63 8d 24 01 - 00 00 movsxd rcx, DWORD PTR k$[rbp] - 005d4 48 8b 95 e8 01 - 00 00 mov rdx, QWORD PTR prior$2[rbp] - 005db 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 005df 03 c1 add eax, ecx - 005e1 25 ff 00 00 00 and eax, 255 ; 000000ffH - 005e6 48 63 8d 24 01 - 00 00 movsxd rcx, DWORD PTR k$[rbp] - 005ed 48 8b 95 c8 01 - 00 00 mov rdx, QWORD PTR cur$1[rbp] - 005f4 88 04 0a mov BYTE PTR [rdx+rcx], al - 005f7 eb a6 jmp SHORT $LN19@stbi__crea -$LN20@stbi__crea: - -; 5374 : raw[k] + prior[k]); // prior[k] == stbi__paeth(0,prior[k],0) -; 5375 : for (k = filter_bytes; k < nk; ++k) - - 005f9 8b 85 84 01 00 - 00 mov eax, DWORD PTR filter_bytes$[rbp] - 005ff 89 85 24 01 00 - 00 mov DWORD PTR k$[rbp], eax - 00605 eb 0e jmp SHORT $LN24@stbi__crea -$LN22@stbi__crea: - 00607 8b 85 24 01 00 - 00 mov eax, DWORD PTR k$[rbp] - 0060d ff c0 inc eax - 0060f 89 85 24 01 00 - 00 mov DWORD PTR k$[rbp], eax -$LN24@stbi__crea: - 00615 8b 85 24 02 00 - 00 mov eax, DWORD PTR nk$4[rbp] - 0061b 39 85 24 01 00 - 00 cmp DWORD PTR k$[rbp], eax - 00621 0f 8d a6 00 00 - 00 jge $LN23@stbi__crea - -; 5376 : cur[k] = STBI__BYTECAST(raw[k] + - - 00627 48 63 85 24 01 - 00 00 movsxd rax, DWORD PTR k$[rbp] - 0062e 48 8b 8d e8 04 - 00 00 mov rcx, QWORD PTR raw$[rbp] - 00635 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00639 89 85 b4 04 00 - 00 mov DWORD PTR tv287[rbp], eax - 0063f 8b 8d 84 01 00 - 00 mov ecx, DWORD PTR filter_bytes$[rbp] - 00645 8b 95 24 01 00 - 00 mov edx, DWORD PTR k$[rbp] - 0064b 2b d1 sub edx, ecx - 0064d 8b ca mov ecx, edx - 0064f 48 63 c9 movsxd rcx, ecx - 00652 48 8b 95 e8 01 - 00 00 mov rdx, QWORD PTR prior$2[rbp] - 00659 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 0065d 48 63 95 24 01 - 00 00 movsxd rdx, DWORD PTR k$[rbp] - 00664 4c 8b 85 e8 01 - 00 00 mov r8, QWORD PTR prior$2[rbp] - 0066b 41 0f b6 14 10 movzx edx, BYTE PTR [r8+rdx] - 00670 44 8b 85 84 01 - 00 00 mov r8d, DWORD PTR filter_bytes$[rbp] - 00677 44 8b 8d 24 01 - 00 00 mov r9d, DWORD PTR k$[rbp] - 0067e 45 2b c8 sub r9d, r8d - 00681 45 8b c1 mov r8d, r9d - 00684 4d 63 c0 movsxd r8, r8d - 00687 4c 8b 8d c8 01 - 00 00 mov r9, QWORD PTR cur$1[rbp] - 0068e 47 0f b6 04 01 movzx r8d, BYTE PTR [r9+r8] - 00693 44 89 85 b8 04 - 00 00 mov DWORD PTR tv304[rbp], r8d - 0069a 44 8b c1 mov r8d, ecx - 0069d 8b 8d b8 04 00 - 00 mov ecx, DWORD PTR tv304[rbp] - 006a3 e8 00 00 00 00 call stbi__paeth - 006a8 8b 8d b4 04 00 - 00 mov ecx, DWORD PTR tv287[rbp] - 006ae 03 c8 add ecx, eax - 006b0 8b c1 mov eax, ecx - 006b2 25 ff 00 00 00 and eax, 255 ; 000000ffH - 006b7 48 63 8d 24 01 - 00 00 movsxd rcx, DWORD PTR k$[rbp] - 006be 48 8b 95 c8 01 - 00 00 mov rdx, QWORD PTR cur$1[rbp] - 006c5 88 04 0a mov BYTE PTR [rdx+rcx], al - 006c8 e9 3a ff ff ff jmp $LN22@stbi__crea -$LN23@stbi__crea: - -; 5377 : stbi__paeth(cur[k - filter_bytes], prior[k], -; 5378 : prior[k - filter_bytes])); -; 5379 : break; - - 006cd e9 94 00 00 00 jmp $LN5@stbi__crea -$LN59@stbi__crea: - -; 5380 : case STBI__F_avg_first: -; 5381 : memcpy(cur, raw, filter_bytes); - - 006d2 48 63 85 84 01 - 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp] - 006d9 4c 8b c0 mov r8, rax - 006dc 48 8b 95 e8 04 - 00 00 mov rdx, QWORD PTR raw$[rbp] - 006e3 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR cur$1[rbp] - 006ea e8 00 00 00 00 call memcpy - 006ef 90 npad 1 - -; 5382 : for (k = filter_bytes; k < nk; ++k) - - 006f0 8b 85 84 01 00 - 00 mov eax, DWORD PTR filter_bytes$[rbp] - 006f6 89 85 24 01 00 - 00 mov DWORD PTR k$[rbp], eax - 006fc eb 0e jmp SHORT $LN27@stbi__crea -$LN25@stbi__crea: - 006fe 8b 85 24 01 00 - 00 mov eax, DWORD PTR k$[rbp] - 00704 ff c0 inc eax - 00706 89 85 24 01 00 - 00 mov DWORD PTR k$[rbp], eax -$LN27@stbi__crea: - 0070c 8b 85 24 02 00 - 00 mov eax, DWORD PTR nk$4[rbp] - 00712 39 85 24 01 00 - 00 cmp DWORD PTR k$[rbp], eax - 00718 7d 4c jge SHORT $LN26@stbi__crea - -; 5383 : cur[k] = STBI__BYTECAST(raw[k] + (cur[k - filter_bytes] >> 1)); - - 0071a 48 63 85 24 01 - 00 00 movsxd rax, DWORD PTR k$[rbp] - 00721 48 8b 8d e8 04 - 00 00 mov rcx, QWORD PTR raw$[rbp] - 00728 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0072c 8b 8d 84 01 00 - 00 mov ecx, DWORD PTR filter_bytes$[rbp] - 00732 8b 95 24 01 00 - 00 mov edx, DWORD PTR k$[rbp] - 00738 2b d1 sub edx, ecx - 0073a 8b ca mov ecx, edx - 0073c 48 63 c9 movsxd rcx, ecx - 0073f 48 8b 95 c8 01 - 00 00 mov rdx, QWORD PTR cur$1[rbp] - 00746 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 0074a d1 f9 sar ecx, 1 - 0074c 03 c1 add eax, ecx - 0074e 25 ff 00 00 00 and eax, 255 ; 000000ffH - 00753 48 63 8d 24 01 - 00 00 movsxd rcx, DWORD PTR k$[rbp] - 0075a 48 8b 95 c8 01 - 00 00 mov rdx, QWORD PTR cur$1[rbp] - 00761 88 04 0a mov BYTE PTR [rdx+rcx], al - 00764 eb 98 jmp SHORT $LN25@stbi__crea -$LN26@stbi__crea: -$LN5@stbi__crea: - -; 5384 : break; -; 5385 : } -; 5386 : -; 5387 : raw += nk; - - 00766 48 63 85 24 02 - 00 00 movsxd rax, DWORD PTR nk$4[rbp] - 0076d 48 8b 8d e8 04 - 00 00 mov rcx, QWORD PTR raw$[rbp] - 00774 48 03 c8 add rcx, rax - 00777 48 8b c1 mov rax, rcx - 0077a 48 89 85 e8 04 - 00 00 mov QWORD PTR raw$[rbp], rax - -; 5388 : -; 5389 : // expand decoded bits in cur to dest, also adding an extra alpha channel if desired -; 5390 : if (depth < 8) { - - 00781 83 bd 10 05 00 - 00 08 cmp DWORD PTR depth$[rbp], 8 - 00788 0f 8d 82 02 00 - 00 jge $LN60@stbi__crea - -; 5391 : stbi_uc scale = (color == 0) ? stbi__depth_scale_table[depth] : - - 0078e 83 bd 18 05 00 - 00 00 cmp DWORD PTR color$[rbp], 0 - 00795 75 1a jne SHORT $LN84@stbi__crea - 00797 48 63 85 10 05 - 00 00 movsxd rax, DWORD PTR depth$[rbp] - 0079e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__depth_scale_table - 007a5 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 007a9 89 85 b4 04 00 - 00 mov DWORD PTR tv340[rbp], eax - 007af eb 0a jmp SHORT $LN85@stbi__crea -$LN84@stbi__crea: - 007b1 c7 85 b4 04 00 - 00 01 00 00 00 mov DWORD PTR tv340[rbp], 1 -$LN85@stbi__crea: - 007bb 0f b6 85 b4 04 - 00 00 movzx eax, BYTE PTR tv340[rbp] - 007c2 88 85 64 02 00 - 00 mov BYTE PTR scale$6[rbp], al - -; 5392 : 1; // scale grayscale values to 0..255 range -; 5393 : stbi_uc *in = cur; - - 007c8 48 8b 85 c8 01 - 00 00 mov rax, QWORD PTR cur$1[rbp] - 007cf 48 89 85 88 02 - 00 00 mov QWORD PTR in$7[rbp], rax - -; 5394 : stbi_uc *out = dest; - - 007d6 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR dest$3[rbp] - 007dd 48 89 85 a8 02 - 00 00 mov QWORD PTR out$8[rbp], rax - -; 5395 : stbi_uc inb = 0; - - 007e4 c6 85 c4 02 00 - 00 00 mov BYTE PTR inb$9[rbp], 0 - -; 5396 : stbi__uint32 nsmp = x * img_n; - - 007eb 8b 85 00 05 00 - 00 mov eax, DWORD PTR x$[rbp] - 007f1 0f af 85 44 01 - 00 00 imul eax, DWORD PTR img_n$[rbp] - 007f8 89 85 e4 02 00 - 00 mov DWORD PTR nsmp$10[rbp], eax - -; 5397 : -; 5398 : // expand bits to bytes first -; 5399 : if (depth == 4) { - - 007fe 83 bd 10 05 00 - 00 04 cmp DWORD PTR depth$[rbp], 4 - 00805 0f 85 8c 00 00 - 00 jne $LN62@stbi__crea - -; 5400 : for (i = 0; i < nsmp; ++i) { - - 0080b c7 45 44 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00812 eb 08 jmp SHORT $LN30@stbi__crea -$LN28@stbi__crea: - 00814 8b 45 44 mov eax, DWORD PTR i$[rbp] - 00817 ff c0 inc eax - 00819 89 45 44 mov DWORD PTR i$[rbp], eax -$LN30@stbi__crea: - 0081c 8b 85 e4 02 00 - 00 mov eax, DWORD PTR nsmp$10[rbp] - 00822 39 45 44 cmp DWORD PTR i$[rbp], eax - 00825 73 6b jae SHORT $LN29@stbi__crea - -; 5401 : if ((i & 1) == 0) - - 00827 8b 45 44 mov eax, DWORD PTR i$[rbp] - 0082a 83 e0 01 and eax, 1 - 0082d 85 c0 test eax, eax - 0082f 75 21 jne SHORT $LN64@stbi__crea - -; 5402 : inb = *in++; - - 00831 48 8b 85 88 02 - 00 00 mov rax, QWORD PTR in$7[rbp] - 00838 0f b6 00 movzx eax, BYTE PTR [rax] - 0083b 88 85 c4 02 00 - 00 mov BYTE PTR inb$9[rbp], al - 00841 48 8b 85 88 02 - 00 00 mov rax, QWORD PTR in$7[rbp] - 00848 48 ff c0 inc rax - 0084b 48 89 85 88 02 - 00 00 mov QWORD PTR in$7[rbp], rax -$LN64@stbi__crea: - -; 5403 : *out++ = scale * (inb >> 4); - - 00852 0f b6 85 64 02 - 00 00 movzx eax, BYTE PTR scale$6[rbp] - 00859 0f b6 8d c4 02 - 00 00 movzx ecx, BYTE PTR inb$9[rbp] - 00860 c1 f9 04 sar ecx, 4 - 00863 0f af c1 imul eax, ecx - 00866 48 8b 8d a8 02 - 00 00 mov rcx, QWORD PTR out$8[rbp] - 0086d 88 01 mov BYTE PTR [rcx], al - 0086f 48 8b 85 a8 02 - 00 00 mov rax, QWORD PTR out$8[rbp] - 00876 48 ff c0 inc rax - 00879 48 89 85 a8 02 - 00 00 mov QWORD PTR out$8[rbp], rax - -; 5404 : inb <<= 4; - - 00880 0f b6 85 c4 02 - 00 00 movzx eax, BYTE PTR inb$9[rbp] - 00887 c0 e0 04 shl al, 4 - 0088a 88 85 c4 02 00 - 00 mov BYTE PTR inb$9[rbp], al - -; 5405 : } - - 00890 eb 82 jmp SHORT $LN28@stbi__crea -$LN29@stbi__crea: - -; 5406 : } else if (depth == 2) { - - 00892 e9 44 01 00 00 jmp $LN63@stbi__crea -$LN62@stbi__crea: - 00897 83 bd 10 05 00 - 00 02 cmp DWORD PTR depth$[rbp], 2 - 0089e 0f 85 8c 00 00 - 00 jne $LN65@stbi__crea - -; 5407 : for (i = 0; i < nsmp; ++i) { - - 008a4 c7 45 44 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 008ab eb 08 jmp SHORT $LN33@stbi__crea -$LN31@stbi__crea: - 008ad 8b 45 44 mov eax, DWORD PTR i$[rbp] - 008b0 ff c0 inc eax - 008b2 89 45 44 mov DWORD PTR i$[rbp], eax -$LN33@stbi__crea: - 008b5 8b 85 e4 02 00 - 00 mov eax, DWORD PTR nsmp$10[rbp] - 008bb 39 45 44 cmp DWORD PTR i$[rbp], eax - 008be 73 6b jae SHORT $LN32@stbi__crea - -; 5408 : if ((i & 3) == 0) - - 008c0 8b 45 44 mov eax, DWORD PTR i$[rbp] - 008c3 83 e0 03 and eax, 3 - 008c6 85 c0 test eax, eax - 008c8 75 21 jne SHORT $LN67@stbi__crea - -; 5409 : inb = *in++; - - 008ca 48 8b 85 88 02 - 00 00 mov rax, QWORD PTR in$7[rbp] - 008d1 0f b6 00 movzx eax, BYTE PTR [rax] - 008d4 88 85 c4 02 00 - 00 mov BYTE PTR inb$9[rbp], al - 008da 48 8b 85 88 02 - 00 00 mov rax, QWORD PTR in$7[rbp] - 008e1 48 ff c0 inc rax - 008e4 48 89 85 88 02 - 00 00 mov QWORD PTR in$7[rbp], rax -$LN67@stbi__crea: - -; 5410 : *out++ = scale * (inb >> 6); - - 008eb 0f b6 85 64 02 - 00 00 movzx eax, BYTE PTR scale$6[rbp] - 008f2 0f b6 8d c4 02 - 00 00 movzx ecx, BYTE PTR inb$9[rbp] - 008f9 c1 f9 06 sar ecx, 6 - 008fc 0f af c1 imul eax, ecx - 008ff 48 8b 8d a8 02 - 00 00 mov rcx, QWORD PTR out$8[rbp] - 00906 88 01 mov BYTE PTR [rcx], al - 00908 48 8b 85 a8 02 - 00 00 mov rax, QWORD PTR out$8[rbp] - 0090f 48 ff c0 inc rax - 00912 48 89 85 a8 02 - 00 00 mov QWORD PTR out$8[rbp], rax - -; 5411 : inb <<= 2; - - 00919 0f b6 85 c4 02 - 00 00 movzx eax, BYTE PTR inb$9[rbp] - 00920 c0 e0 02 shl al, 2 - 00923 88 85 c4 02 00 - 00 mov BYTE PTR inb$9[rbp], al - -; 5412 : } - - 00929 eb 82 jmp SHORT $LN31@stbi__crea -$LN32@stbi__crea: - -; 5413 : } else { - - 0092b e9 ab 00 00 00 jmp $LN66@stbi__crea -$LN65@stbi__crea: - -; 5414 : STBI_ASSERT(depth == 1); - - 00930 83 bd 10 05 00 - 00 01 cmp DWORD PTR depth$[rbp], 1 - 00937 74 1c je SHORT $LN86@stbi__crea - 00939 41 b8 26 15 00 - 00 mov r8d, 5414 ; 00001526H - 0093f 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ - 00946 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1BG@OEFMLIPO@?$AAd?$AAe?$AAp?$AAt?$AAh?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA1@ - 0094d ff 15 00 00 00 - 00 call QWORD PTR __imp__wassert - 00953 33 c0 xor eax, eax -$LN86@stbi__crea: - -; 5415 : for (i = 0; i < nsmp; ++i) { - - 00955 c7 45 44 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 0095c eb 08 jmp SHORT $LN36@stbi__crea -$LN34@stbi__crea: - 0095e 8b 45 44 mov eax, DWORD PTR i$[rbp] - 00961 ff c0 inc eax - 00963 89 45 44 mov DWORD PTR i$[rbp], eax -$LN36@stbi__crea: - 00966 8b 85 e4 02 00 - 00 mov eax, DWORD PTR nsmp$10[rbp] - 0096c 39 45 44 cmp DWORD PTR i$[rbp], eax - 0096f 73 6a jae SHORT $LN35@stbi__crea - -; 5416 : if ((i & 7) == 0) - - 00971 8b 45 44 mov eax, DWORD PTR i$[rbp] - 00974 83 e0 07 and eax, 7 - 00977 85 c0 test eax, eax - 00979 75 21 jne SHORT $LN68@stbi__crea - -; 5417 : inb = *in++; - - 0097b 48 8b 85 88 02 - 00 00 mov rax, QWORD PTR in$7[rbp] - 00982 0f b6 00 movzx eax, BYTE PTR [rax] - 00985 88 85 c4 02 00 - 00 mov BYTE PTR inb$9[rbp], al - 0098b 48 8b 85 88 02 - 00 00 mov rax, QWORD PTR in$7[rbp] - 00992 48 ff c0 inc rax - 00995 48 89 85 88 02 - 00 00 mov QWORD PTR in$7[rbp], rax -$LN68@stbi__crea: - -; 5418 : *out++ = scale * (inb >> 7); - - 0099c 0f b6 85 64 02 - 00 00 movzx eax, BYTE PTR scale$6[rbp] - 009a3 0f b6 8d c4 02 - 00 00 movzx ecx, BYTE PTR inb$9[rbp] - 009aa c1 f9 07 sar ecx, 7 - 009ad 0f af c1 imul eax, ecx - 009b0 48 8b 8d a8 02 - 00 00 mov rcx, QWORD PTR out$8[rbp] - 009b7 88 01 mov BYTE PTR [rcx], al - 009b9 48 8b 85 a8 02 - 00 00 mov rax, QWORD PTR out$8[rbp] - 009c0 48 ff c0 inc rax - 009c3 48 89 85 a8 02 - 00 00 mov QWORD PTR out$8[rbp], rax - -; 5419 : inb <<= 1; - - 009ca 0f b6 85 c4 02 - 00 00 movzx eax, BYTE PTR inb$9[rbp] - 009d1 d0 e0 shl al, 1 - 009d3 88 85 c4 02 00 - 00 mov BYTE PTR inb$9[rbp], al - -; 5420 : } - - 009d9 eb 83 jmp SHORT $LN34@stbi__crea -$LN35@stbi__crea: -$LN66@stbi__crea: -$LN63@stbi__crea: - -; 5421 : } -; 5422 : -; 5423 : // insert alpha=255 values if desired -; 5424 : if (img_n != out_n) - - 009db 8b 85 f8 04 00 - 00 mov eax, DWORD PTR out_n$[rbp] - 009e1 39 85 44 01 00 - 00 cmp DWORD PTR img_n$[rbp], eax - 009e7 74 22 je SHORT $LN69@stbi__crea - -; 5425 : stbi__create_png_alpha_expand8(dest, dest, x, img_n); - - 009e9 44 8b 8d 44 01 - 00 00 mov r9d, DWORD PTR img_n$[rbp] - 009f0 44 8b 85 00 05 - 00 00 mov r8d, DWORD PTR x$[rbp] - 009f7 48 8b 95 08 02 - 00 00 mov rdx, QWORD PTR dest$3[rbp] - 009fe 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR dest$3[rbp] - 00a05 e8 00 00 00 00 call stbi__create_png_alpha_expand8 - 00a0a 90 npad 1 -$LN69@stbi__crea: - -; 5426 : } else if (depth == 8) { - - 00a0b e9 47 03 00 00 jmp $LN61@stbi__crea -$LN60@stbi__crea: - 00a10 83 bd 10 05 00 - 00 08 cmp DWORD PTR depth$[rbp], 8 - 00a17 75 5d jne SHORT $LN70@stbi__crea - -; 5427 : if (img_n == out_n) - - 00a19 8b 85 f8 04 00 - 00 mov eax, DWORD PTR out_n$[rbp] - 00a1f 39 85 44 01 00 - 00 cmp DWORD PTR img_n$[rbp], eax - 00a25 75 28 jne SHORT $LN72@stbi__crea - -; 5428 : memcpy(dest, cur, x * img_n); - - 00a27 8b 85 00 05 00 - 00 mov eax, DWORD PTR x$[rbp] - 00a2d 0f af 85 44 01 - 00 00 imul eax, DWORD PTR img_n$[rbp] - 00a34 8b c0 mov eax, eax - 00a36 44 8b c0 mov r8d, eax - 00a39 48 8b 95 c8 01 - 00 00 mov rdx, QWORD PTR cur$1[rbp] - 00a40 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR dest$3[rbp] - 00a47 e8 00 00 00 00 call memcpy - 00a4c 90 npad 1 - 00a4d eb 22 jmp SHORT $LN73@stbi__crea -$LN72@stbi__crea: - -; 5429 : else -; 5430 : stbi__create_png_alpha_expand8(dest, cur, x, img_n); - - 00a4f 44 8b 8d 44 01 - 00 00 mov r9d, DWORD PTR img_n$[rbp] - 00a56 44 8b 85 00 05 - 00 00 mov r8d, DWORD PTR x$[rbp] - 00a5d 48 8b 95 c8 01 - 00 00 mov rdx, QWORD PTR cur$1[rbp] - 00a64 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR dest$3[rbp] - 00a6b e8 00 00 00 00 call stbi__create_png_alpha_expand8 - 00a70 90 npad 1 -$LN73@stbi__crea: - -; 5431 : } else if (depth == 16) { - - 00a71 e9 e1 02 00 00 jmp $LN71@stbi__crea -$LN70@stbi__crea: - 00a76 83 bd 10 05 00 - 00 10 cmp DWORD PTR depth$[rbp], 16 - 00a7d 0f 85 d4 02 00 - 00 jne $LN74@stbi__crea - -; 5432 : // convert the image data from big-endian to platform-native -; 5433 : stbi__uint16 *dest16 = (stbi__uint16 *)dest; - - 00a83 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR dest$3[rbp] - 00a8a 48 89 85 08 03 - 00 00 mov QWORD PTR dest16$11[rbp], rax - -; 5434 : stbi__uint32 nsmp = x * img_n; - - 00a91 8b 85 00 05 00 - 00 mov eax, DWORD PTR x$[rbp] - 00a97 0f af 85 44 01 - 00 00 imul eax, DWORD PTR img_n$[rbp] - 00a9e 89 85 24 03 00 - 00 mov DWORD PTR nsmp$12[rbp], eax - -; 5435 : -; 5436 : if (img_n == out_n) { - - 00aa4 8b 85 f8 04 00 - 00 mov eax, DWORD PTR out_n$[rbp] - 00aaa 39 85 44 01 00 - 00 cmp DWORD PTR img_n$[rbp], eax - 00ab0 75 7e jne SHORT $LN75@stbi__crea - -; 5437 : for (i = 0; i < nsmp; ++i, ++dest16, cur += 2) - - 00ab2 c7 45 44 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00ab9 eb 2c jmp SHORT $LN39@stbi__crea -$LN37@stbi__crea: - 00abb 8b 45 44 mov eax, DWORD PTR i$[rbp] - 00abe ff c0 inc eax - 00ac0 89 45 44 mov DWORD PTR i$[rbp], eax - 00ac3 48 8b 85 08 03 - 00 00 mov rax, QWORD PTR dest16$11[rbp] - 00aca 48 83 c0 02 add rax, 2 - 00ace 48 89 85 08 03 - 00 00 mov QWORD PTR dest16$11[rbp], rax - 00ad5 48 8b 85 c8 01 - 00 00 mov rax, QWORD PTR cur$1[rbp] - 00adc 48 83 c0 02 add rax, 2 - 00ae0 48 89 85 c8 01 - 00 00 mov QWORD PTR cur$1[rbp], rax -$LN39@stbi__crea: - 00ae7 8b 85 24 03 00 - 00 mov eax, DWORD PTR nsmp$12[rbp] - 00aed 39 45 44 cmp DWORD PTR i$[rbp], eax - 00af0 73 39 jae SHORT $LN38@stbi__crea - -; 5438 : *dest16 = (cur[0] << 8) | cur[1]; - - 00af2 b8 01 00 00 00 mov eax, 1 - 00af7 48 6b c0 00 imul rax, rax, 0 - 00afb 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR cur$1[rbp] - 00b02 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00b06 c1 e0 08 shl eax, 8 - 00b09 b9 01 00 00 00 mov ecx, 1 - 00b0e 48 6b c9 01 imul rcx, rcx, 1 - 00b12 48 8b 95 c8 01 - 00 00 mov rdx, QWORD PTR cur$1[rbp] - 00b19 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 00b1d 0b c1 or eax, ecx - 00b1f 48 8b 8d 08 03 - 00 00 mov rcx, QWORD PTR dest16$11[rbp] - 00b26 66 89 01 mov WORD PTR [rcx], ax - 00b29 eb 90 jmp SHORT $LN37@stbi__crea -$LN38@stbi__crea: - -; 5439 : } else { - - 00b2b e9 27 02 00 00 jmp $LN76@stbi__crea -$LN75@stbi__crea: - -; 5440 : STBI_ASSERT(img_n + 1 == out_n); - - 00b30 8b 85 44 01 00 - 00 mov eax, DWORD PTR img_n$[rbp] - 00b36 ff c0 inc eax - 00b38 3b 85 f8 04 00 - 00 cmp eax, DWORD PTR out_n$[rbp] - 00b3e 74 1c je SHORT $LN87@stbi__crea - 00b40 41 b8 40 15 00 - 00 mov r8d, 5440 ; 00001540H - 00b46 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ - 00b4d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@MFAHHIFB@?$AAi?$AAm?$AAg?$AA_?$AAn?$AA?5?$AA?$CL?$AA?5?$AA1?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAo?$AAu@ - 00b54 ff 15 00 00 00 - 00 call QWORD PTR __imp__wassert - 00b5a 33 c0 xor eax, eax -$LN87@stbi__crea: - -; 5441 : if (img_n == 1) { - - 00b5c 83 bd 44 01 00 - 00 01 cmp DWORD PTR img_n$[rbp], 1 - 00b63 0f 85 a4 00 00 - 00 jne $LN77@stbi__crea - -; 5442 : for (i = 0; i < x; ++i, dest16 += 2, cur += 2) { - - 00b69 c7 45 44 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00b70 eb 2c jmp SHORT $LN42@stbi__crea -$LN40@stbi__crea: - 00b72 8b 45 44 mov eax, DWORD PTR i$[rbp] - 00b75 ff c0 inc eax - 00b77 89 45 44 mov DWORD PTR i$[rbp], eax - 00b7a 48 8b 85 08 03 - 00 00 mov rax, QWORD PTR dest16$11[rbp] - 00b81 48 83 c0 04 add rax, 4 - 00b85 48 89 85 08 03 - 00 00 mov QWORD PTR dest16$11[rbp], rax - 00b8c 48 8b 85 c8 01 - 00 00 mov rax, QWORD PTR cur$1[rbp] - 00b93 48 83 c0 02 add rax, 2 - 00b97 48 89 85 c8 01 - 00 00 mov QWORD PTR cur$1[rbp], rax -$LN42@stbi__crea: - 00b9e 8b 85 00 05 00 - 00 mov eax, DWORD PTR x$[rbp] - 00ba4 39 45 44 cmp DWORD PTR i$[rbp], eax - 00ba7 73 5f jae SHORT $LN41@stbi__crea - -; 5443 : dest16[0] = (cur[0] << 8) | cur[1]; - - 00ba9 b8 01 00 00 00 mov eax, 1 - 00bae 48 6b c0 00 imul rax, rax, 0 - 00bb2 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR cur$1[rbp] - 00bb9 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00bbd c1 e0 08 shl eax, 8 - 00bc0 b9 01 00 00 00 mov ecx, 1 - 00bc5 48 6b c9 01 imul rcx, rcx, 1 - 00bc9 48 8b 95 c8 01 - 00 00 mov rdx, QWORD PTR cur$1[rbp] - 00bd0 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 00bd4 0b c1 or eax, ecx - 00bd6 b9 02 00 00 00 mov ecx, 2 - 00bdb 48 6b c9 00 imul rcx, rcx, 0 - 00bdf 48 8b 95 08 03 - 00 00 mov rdx, QWORD PTR dest16$11[rbp] - 00be6 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 5444 : dest16[1] = 0xffff; - - 00bea b8 02 00 00 00 mov eax, 2 - 00bef 48 6b c0 01 imul rax, rax, 1 - 00bf3 b9 ff ff 00 00 mov ecx, 65535 ; 0000ffffH - 00bf8 48 8b 95 08 03 - 00 00 mov rdx, QWORD PTR dest16$11[rbp] - 00bff 66 89 0c 02 mov WORD PTR [rdx+rax], cx - -; 5445 : } - - 00c03 e9 6a ff ff ff jmp $LN40@stbi__crea -$LN41@stbi__crea: - -; 5446 : } else { - - 00c08 e9 4a 01 00 00 jmp $LN78@stbi__crea -$LN77@stbi__crea: - -; 5447 : STBI_ASSERT(img_n == 3); - - 00c0d 83 bd 44 01 00 - 00 03 cmp DWORD PTR img_n$[rbp], 3 - 00c14 74 1c je SHORT $LN88@stbi__crea - 00c16 41 b8 47 15 00 - 00 mov r8d, 5447 ; 00001547H - 00c1c 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ - 00c23 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1BG@FLOPDKAN@?$AAi?$AAm?$AAg?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA3@ - 00c2a ff 15 00 00 00 - 00 call QWORD PTR __imp__wassert - 00c30 33 c0 xor eax, eax -$LN88@stbi__crea: - -; 5448 : for (i = 0; i < x; ++i, dest16 += 4, cur += 6) { - - 00c32 c7 45 44 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00c39 eb 2c jmp SHORT $LN45@stbi__crea -$LN43@stbi__crea: - 00c3b 8b 45 44 mov eax, DWORD PTR i$[rbp] - 00c3e ff c0 inc eax - 00c40 89 45 44 mov DWORD PTR i$[rbp], eax - 00c43 48 8b 85 08 03 - 00 00 mov rax, QWORD PTR dest16$11[rbp] - 00c4a 48 83 c0 08 add rax, 8 - 00c4e 48 89 85 08 03 - 00 00 mov QWORD PTR dest16$11[rbp], rax - 00c55 48 8b 85 c8 01 - 00 00 mov rax, QWORD PTR cur$1[rbp] - 00c5c 48 83 c0 06 add rax, 6 - 00c60 48 89 85 c8 01 - 00 00 mov QWORD PTR cur$1[rbp], rax -$LN45@stbi__crea: - 00c67 8b 85 00 05 00 - 00 mov eax, DWORD PTR x$[rbp] - 00c6d 39 45 44 cmp DWORD PTR i$[rbp], eax - 00c70 0f 83 e1 00 00 - 00 jae $LN44@stbi__crea - -; 5449 : dest16[0] = (cur[0] << 8) | cur[1]; - - 00c76 b8 01 00 00 00 mov eax, 1 - 00c7b 48 6b c0 00 imul rax, rax, 0 - 00c7f 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR cur$1[rbp] - 00c86 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00c8a c1 e0 08 shl eax, 8 - 00c8d b9 01 00 00 00 mov ecx, 1 - 00c92 48 6b c9 01 imul rcx, rcx, 1 - 00c96 48 8b 95 c8 01 - 00 00 mov rdx, QWORD PTR cur$1[rbp] - 00c9d 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 00ca1 0b c1 or eax, ecx - 00ca3 b9 02 00 00 00 mov ecx, 2 - 00ca8 48 6b c9 00 imul rcx, rcx, 0 - 00cac 48 8b 95 08 03 - 00 00 mov rdx, QWORD PTR dest16$11[rbp] - 00cb3 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 5450 : dest16[1] = (cur[2] << 8) | cur[3]; - - 00cb7 b8 01 00 00 00 mov eax, 1 - 00cbc 48 6b c0 02 imul rax, rax, 2 - 00cc0 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR cur$1[rbp] - 00cc7 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00ccb c1 e0 08 shl eax, 8 - 00cce b9 01 00 00 00 mov ecx, 1 - 00cd3 48 6b c9 03 imul rcx, rcx, 3 - 00cd7 48 8b 95 c8 01 - 00 00 mov rdx, QWORD PTR cur$1[rbp] - 00cde 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 00ce2 0b c1 or eax, ecx - 00ce4 b9 02 00 00 00 mov ecx, 2 - 00ce9 48 6b c9 01 imul rcx, rcx, 1 - 00ced 48 8b 95 08 03 - 00 00 mov rdx, QWORD PTR dest16$11[rbp] - 00cf4 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 5451 : dest16[2] = (cur[4] << 8) | cur[5]; - - 00cf8 b8 01 00 00 00 mov eax, 1 - 00cfd 48 6b c0 04 imul rax, rax, 4 - 00d01 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR cur$1[rbp] - 00d08 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00d0c c1 e0 08 shl eax, 8 - 00d0f b9 01 00 00 00 mov ecx, 1 - 00d14 48 6b c9 05 imul rcx, rcx, 5 - 00d18 48 8b 95 c8 01 - 00 00 mov rdx, QWORD PTR cur$1[rbp] - 00d1f 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 00d23 0b c1 or eax, ecx - 00d25 b9 02 00 00 00 mov ecx, 2 - 00d2a 48 6b c9 02 imul rcx, rcx, 2 - 00d2e 48 8b 95 08 03 - 00 00 mov rdx, QWORD PTR dest16$11[rbp] - 00d35 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 5452 : dest16[3] = 0xffff; - - 00d39 b8 02 00 00 00 mov eax, 2 - 00d3e 48 6b c0 03 imul rax, rax, 3 - 00d42 b9 ff ff 00 00 mov ecx, 65535 ; 0000ffffH - 00d47 48 8b 95 08 03 - 00 00 mov rdx, QWORD PTR dest16$11[rbp] - 00d4e 66 89 0c 02 mov WORD PTR [rdx+rax], cx - -; 5453 : } - - 00d52 e9 e4 fe ff ff jmp $LN43@stbi__crea -$LN44@stbi__crea: -$LN78@stbi__crea: -$LN76@stbi__crea: -$LN74@stbi__crea: -$LN71@stbi__crea: -$LN61@stbi__crea: - -; 5454 : } -; 5455 : } -; 5456 : } -; 5457 : } - - 00d57 e9 f5 f4 ff ff jmp $LN2@stbi__crea -$LN3@stbi__crea: - -; 5458 : -; 5459 : STBI_FREE(filter_buf); - - 00d5c 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR filter_buf$[rbp] - 00d63 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00d69 90 npad 1 - -; 5460 : if (!all_ok) - - 00d6a 83 bd 04 01 00 - 00 00 cmp DWORD PTR all_ok$[rbp], 0 - 00d71 75 04 jne SHORT $LN79@stbi__crea - -; 5461 : return 0; - - 00d73 33 c0 xor eax, eax - 00d75 eb 05 jmp SHORT $LN1@stbi__crea -$LN79@stbi__crea: - -; 5462 : -; 5463 : return 1; - - 00d77 b8 01 00 00 00 mov eax, 1 -$LN1@stbi__crea: - -; 5464 : } - - 00d7c 48 8d a5 c8 04 - 00 00 lea rsp, QWORD PTR [rbp+1224] - 00d83 5f pop rdi - 00d84 5d pop rbp - 00d85 c3 ret 0 - 00d86 66 90 npad 2 -$LN89@stbi__crea: - 00d88 00 00 00 00 DD $LN54@stbi__crea - 00d8c 00 00 00 00 DD $LN55@stbi__crea - 00d90 00 00 00 00 DD $LN56@stbi__crea - 00d94 00 00 00 00 DD $LN57@stbi__crea - 00d98 00 00 00 00 DD $LN58@stbi__crea - 00d9c 00 00 00 00 DD $LN59@stbi__crea -stbi__create_png_image_raw ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__create_png_alpha_expand8 -_TEXT SEGMENT -i$ = 4 -dest$ = 256 -src$ = 264 -x$ = 272 -img_n$ = 280 -stbi__create_png_alpha_expand8 PROC ; COMDAT - -; 5264 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 5265 : int i; -; 5266 : // must process data backwards since we allow dest==src -; 5267 : if (img_n == 1) { - - 0002f 83 bd 18 01 00 - 00 01 cmp DWORD PTR img_n$[rbp], 1 - 00036 75 58 jne SHORT $LN8@stbi__crea - -; 5268 : for (i = x - 1; i >= 0; --i) { - - 00038 8b 85 10 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 0003e ff c8 dec eax - 00040 89 45 04 mov DWORD PTR i$[rbp], eax - 00043 eb 08 jmp SHORT $LN4@stbi__crea -$LN2@stbi__crea: - 00045 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00048 ff c8 dec eax - 0004a 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__crea: - 0004d 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 00051 7c 38 jl SHORT $LN3@stbi__crea - -; 5269 : dest[i * 2 + 1] = 255; - - 00053 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00056 8d 44 00 01 lea eax, DWORD PTR [rax+rax+1] - 0005a 48 98 cdqe - 0005c 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR dest$[rbp] - 00063 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH - -; 5270 : dest[i * 2 + 0] = src[i]; - - 00067 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 0006b 8b 4d 04 mov ecx, DWORD PTR i$[rbp] - 0006e 03 c9 add ecx, ecx - 00070 48 63 c9 movsxd rcx, ecx - 00073 48 8b 95 00 01 - 00 00 mov rdx, QWORD PTR dest$[rbp] - 0007a 4c 8b 85 08 01 - 00 00 mov r8, QWORD PTR src$[rbp] - 00081 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00086 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 5271 : } - - 00089 eb ba jmp SHORT $LN2@stbi__crea -$LN3@stbi__crea: - -; 5272 : } else { - - 0008b e9 dc 00 00 00 jmp $LN9@stbi__crea -$LN8@stbi__crea: - -; 5273 : STBI_ASSERT(img_n == 3); - - 00090 83 bd 18 01 00 - 00 03 cmp DWORD PTR img_n$[rbp], 3 - 00097 74 1c je SHORT $LN11@stbi__crea - 00099 41 b8 99 14 00 - 00 mov r8d, 5273 ; 00001499H - 0009f 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ - 000a6 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1BG@FLOPDKAN@?$AAi?$AAm?$AAg?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA3@ - 000ad ff 15 00 00 00 - 00 call QWORD PTR __imp__wassert - 000b3 33 c0 xor eax, eax -$LN11@stbi__crea: - -; 5274 : for (i = x - 1; i >= 0; --i) { - - 000b5 8b 85 10 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 000bb ff c8 dec eax - 000bd 89 45 04 mov DWORD PTR i$[rbp], eax - 000c0 eb 08 jmp SHORT $LN7@stbi__crea -$LN5@stbi__crea: - 000c2 8b 45 04 mov eax, DWORD PTR i$[rbp] - 000c5 ff c8 dec eax - 000c7 89 45 04 mov DWORD PTR i$[rbp], eax -$LN7@stbi__crea: - 000ca 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 000ce 0f 8c 98 00 00 - 00 jl $LN6@stbi__crea - -; 5275 : dest[i * 4 + 3] = 255; - - 000d4 8b 45 04 mov eax, DWORD PTR i$[rbp] - 000d7 8d 04 85 03 00 - 00 00 lea eax, DWORD PTR [rax*4+3] - 000de 48 98 cdqe - 000e0 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR dest$[rbp] - 000e7 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH - -; 5276 : dest[i * 4 + 2] = src[i * 3 + 2]; - - 000eb 6b 45 04 03 imul eax, DWORD PTR i$[rbp], 3 - 000ef 83 c0 02 add eax, 2 - 000f2 48 98 cdqe - 000f4 8b 4d 04 mov ecx, DWORD PTR i$[rbp] - 000f7 8d 0c 8d 02 00 - 00 00 lea ecx, DWORD PTR [rcx*4+2] - 000fe 48 63 c9 movsxd rcx, ecx - 00101 48 8b 95 00 01 - 00 00 mov rdx, QWORD PTR dest$[rbp] - 00108 4c 8b 85 08 01 - 00 00 mov r8, QWORD PTR src$[rbp] - 0010f 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00114 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 5277 : dest[i * 4 + 1] = src[i * 3 + 1]; - - 00117 6b 45 04 03 imul eax, DWORD PTR i$[rbp], 3 - 0011b ff c0 inc eax - 0011d 48 98 cdqe - 0011f 8b 4d 04 mov ecx, DWORD PTR i$[rbp] - 00122 8d 0c 8d 01 00 - 00 00 lea ecx, DWORD PTR [rcx*4+1] - 00129 48 63 c9 movsxd rcx, ecx - 0012c 48 8b 95 00 01 - 00 00 mov rdx, QWORD PTR dest$[rbp] - 00133 4c 8b 85 08 01 - 00 00 mov r8, QWORD PTR src$[rbp] - 0013a 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 0013f 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 5278 : dest[i * 4 + 0] = src[i * 3 + 0]; - - 00142 6b 45 04 03 imul eax, DWORD PTR i$[rbp], 3 - 00146 48 98 cdqe - 00148 8b 4d 04 mov ecx, DWORD PTR i$[rbp] - 0014b c1 e1 02 shl ecx, 2 - 0014e 48 63 c9 movsxd rcx, ecx - 00151 48 8b 95 00 01 - 00 00 mov rdx, QWORD PTR dest$[rbp] - 00158 4c 8b 85 08 01 - 00 00 mov r8, QWORD PTR src$[rbp] - 0015f 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00164 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 5279 : } - - 00167 e9 56 ff ff ff jmp $LN5@stbi__crea -$LN6@stbi__crea: -$LN9@stbi__crea: - -; 5280 : } -; 5281 : } - - 0016c 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00173 5f pop rdi - 00174 5d pop rbp - 00175 c3 ret 0 -stbi__create_png_alpha_expand8 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__paeth -_TEXT SEGMENT -thresh$ = 4 -lo$ = 36 -hi$ = 68 -t0$ = 100 -t1$ = 132 -tv68 = 340 -tv70 = 340 -tv72 = 340 -tv74 = 340 -a$ = 384 -b$ = 392 -c$ = 400 -stbi__paeth PROC ; COMDAT - -; 5246 : { - - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00009 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 0000d 55 push rbp - 0000e 57 push rdi - 0000f 48 81 ec 88 01 - 00 00 sub rsp, 392 ; 00000188H - 00016 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00027 90 npad 1 - -; 5247 : // This formulation looks very different from the reference in the PNG spec, but is -; 5248 : // actually equivalent and has favorable data dependencies and admits straightforward -; 5249 : // generation of branch-free code, which helps performance significantly. -; 5250 : int thresh = c * 3 - (a + b); - - 00028 6b 85 90 01 00 - 00 03 imul eax, DWORD PTR c$[rbp], 3 - 0002f 8b 8d 88 01 00 - 00 mov ecx, DWORD PTR b$[rbp] - 00035 8b 95 80 01 00 - 00 mov edx, DWORD PTR a$[rbp] - 0003b 03 d1 add edx, ecx - 0003d 8b ca mov ecx, edx - 0003f 2b c1 sub eax, ecx - 00041 89 45 04 mov DWORD PTR thresh$[rbp], eax - -; 5251 : int lo = a < b ? a : b; - - 00044 8b 85 88 01 00 - 00 mov eax, DWORD PTR b$[rbp] - 0004a 39 85 80 01 00 - 00 cmp DWORD PTR a$[rbp], eax - 00050 7d 0e jge SHORT $LN3@stbi__paet - 00052 8b 85 80 01 00 - 00 mov eax, DWORD PTR a$[rbp] - 00058 89 85 54 01 00 - 00 mov DWORD PTR tv68[rbp], eax - 0005e eb 0c jmp SHORT $LN4@stbi__paet -$LN3@stbi__paet: - 00060 8b 85 88 01 00 - 00 mov eax, DWORD PTR b$[rbp] - 00066 89 85 54 01 00 - 00 mov DWORD PTR tv68[rbp], eax -$LN4@stbi__paet: - 0006c 8b 85 54 01 00 - 00 mov eax, DWORD PTR tv68[rbp] - 00072 89 45 24 mov DWORD PTR lo$[rbp], eax - -; 5252 : int hi = a < b ? b : a; - - 00075 8b 85 88 01 00 - 00 mov eax, DWORD PTR b$[rbp] - 0007b 39 85 80 01 00 - 00 cmp DWORD PTR a$[rbp], eax - 00081 7d 0e jge SHORT $LN5@stbi__paet - 00083 8b 85 88 01 00 - 00 mov eax, DWORD PTR b$[rbp] - 00089 89 85 54 01 00 - 00 mov DWORD PTR tv70[rbp], eax - 0008f eb 0c jmp SHORT $LN6@stbi__paet -$LN5@stbi__paet: - 00091 8b 85 80 01 00 - 00 mov eax, DWORD PTR a$[rbp] - 00097 89 85 54 01 00 - 00 mov DWORD PTR tv70[rbp], eax -$LN6@stbi__paet: - 0009d 8b 85 54 01 00 - 00 mov eax, DWORD PTR tv70[rbp] - 000a3 89 45 44 mov DWORD PTR hi$[rbp], eax - -; 5253 : int t0 = (hi <= thresh) ? lo : c; - - 000a6 8b 45 04 mov eax, DWORD PTR thresh$[rbp] - 000a9 39 45 44 cmp DWORD PTR hi$[rbp], eax - 000ac 7f 0b jg SHORT $LN7@stbi__paet - 000ae 8b 45 24 mov eax, DWORD PTR lo$[rbp] - 000b1 89 85 54 01 00 - 00 mov DWORD PTR tv72[rbp], eax - 000b7 eb 0c jmp SHORT $LN8@stbi__paet -$LN7@stbi__paet: - 000b9 8b 85 90 01 00 - 00 mov eax, DWORD PTR c$[rbp] - 000bf 89 85 54 01 00 - 00 mov DWORD PTR tv72[rbp], eax -$LN8@stbi__paet: - 000c5 8b 85 54 01 00 - 00 mov eax, DWORD PTR tv72[rbp] - 000cb 89 45 64 mov DWORD PTR t0$[rbp], eax - -; 5254 : int t1 = (thresh <= lo) ? hi : t0; - - 000ce 8b 45 24 mov eax, DWORD PTR lo$[rbp] - 000d1 39 45 04 cmp DWORD PTR thresh$[rbp], eax - 000d4 7f 0b jg SHORT $LN9@stbi__paet - 000d6 8b 45 44 mov eax, DWORD PTR hi$[rbp] - 000d9 89 85 54 01 00 - 00 mov DWORD PTR tv74[rbp], eax - 000df eb 09 jmp SHORT $LN10@stbi__paet -$LN9@stbi__paet: - 000e1 8b 45 64 mov eax, DWORD PTR t0$[rbp] - 000e4 89 85 54 01 00 - 00 mov DWORD PTR tv74[rbp], eax -$LN10@stbi__paet: - 000ea 8b 85 54 01 00 - 00 mov eax, DWORD PTR tv74[rbp] - 000f0 89 85 84 00 00 - 00 mov DWORD PTR t1$[rbp], eax - -; 5255 : return t1; - - 000f6 8b 85 84 00 00 - 00 mov eax, DWORD PTR t1$[rbp] - -; 5256 : } - - 000fc 48 8d a5 68 01 - 00 00 lea rsp, QWORD PTR [rbp+360] - 00103 5f pop rdi - 00104 5d pop rbp - 00105 c3 ret 0 -stbi__paeth ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__check_png_header -_TEXT SEGMENT -i$ = 4 -s$ = 256 -stbi__check_png_header PROC ; COMDAT - -; 5215 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 5216 : static const stbi_uc png_sig[8] = { 137, 80, 78, 71, 13, 10, 26, 10 }; -; 5217 : int i; -; 5218 : for (i = 0; i < 8; ++i) - - 00020 c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00027 eb 08 jmp SHORT $LN4@stbi__chec -$LN2@stbi__chec: - 00029 8b 45 04 mov eax, DWORD PTR i$[rbp] - 0002c ff c0 inc eax - 0002e 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__chec: - 00031 83 7d 04 08 cmp DWORD PTR i$[rbp], 8 - 00035 7d 32 jge SHORT $LN3@stbi__chec - -; 5219 : if (stbi__get8(s) != png_sig[i]) - - 00037 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0003e e8 00 00 00 00 call stbi__get8 - 00043 0f b6 c0 movzx eax, al - 00046 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] - 0004a 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?png_sig@?1??stbi__check_png_header@@9@9 - 00051 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 00055 3b c1 cmp eax, ecx - 00057 74 0e je SHORT $LN5@stbi__chec - -; 5220 : return stbi__err("bad png sig", "Not a PNG"); - - 00059 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0M@DMDNBACF@bad?5png?5sig@ - 00060 e8 00 00 00 00 call stbi__err - 00065 eb 07 jmp SHORT $LN1@stbi__chec -$LN5@stbi__chec: - 00067 eb c0 jmp SHORT $LN2@stbi__chec -$LN3@stbi__chec: - -; 5221 : return 1; - - 00069 b8 01 00 00 00 mov eax, 1 -$LN1@stbi__chec: - -; 5222 : } - - 0006e 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00075 5f pop rdi - 00076 5d pop rbp - 00077 c3 ret 0 -stbi__check_png_header ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__get_chunk_header -_TEXT SEGMENT -c$ = 8 -s$ = 256 -stbi__get_chunk_header PROC ; COMDAT - -; 5207 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 0a 00 00 00 mov ecx, 10 - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00033 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00038 90 npad 1 - -; 5208 : stbi__pngchunk c; -; 5209 : c.length = stbi__get32be(s); - - 00039 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00040 e8 00 00 00 00 call stbi__get32be - 00045 89 45 08 mov DWORD PTR c$[rbp], eax - -; 5210 : c.type = stbi__get32be(s); - - 00048 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0004f e8 00 00 00 00 call stbi__get32be - 00054 89 45 0c mov DWORD PTR c$[rbp+4], eax - -; 5211 : return c; - - 00057 48 8b 45 08 mov rax, QWORD PTR c$[rbp] - -; 5212 : } - - 0005b 48 8b f8 mov rdi, rax - 0005e 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00062 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__get_chunk_header$rtcFrameData - 00069 e8 00 00 00 00 call _RTC_CheckStackVars - 0006e 48 8b c7 mov rax, rdi - 00071 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00078 5f pop rdi - 00079 5d pop rbp - 0007a c3 ret 0 -stbi__get_chunk_header ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__do_zlib -_TEXT SEGMENT -a$ = 224 -obuf$ = 232 -olen$ = 240 -exp$ = 248 -parse_header$ = 256 -stbi__do_zlib PROC ; COMDAT - -; 5096 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 5097 : a->zout_start = obuf; - - 0002f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR a$[rbp] - 00036 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR obuf$[rbp] - 0003d 48 89 48 28 mov QWORD PTR [rax+40], rcx - -; 5098 : a->zout = obuf; - - 00041 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR a$[rbp] - 00048 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR obuf$[rbp] - 0004f 48 89 48 20 mov QWORD PTR [rax+32], rcx - -; 5099 : a->zout_end = obuf + olen; - - 00053 48 63 85 f0 00 - 00 00 movsxd rax, DWORD PTR olen$[rbp] - 0005a 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR obuf$[rbp] - 00061 48 03 c8 add rcx, rax - 00064 48 8b c1 mov rax, rcx - 00067 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR a$[rbp] - 0006e 48 89 41 30 mov QWORD PTR [rcx+48], rax - -; 5100 : a->z_expandable = exp; - - 00072 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR a$[rbp] - 00079 8b 8d f8 00 00 - 00 mov ecx, DWORD PTR exp$[rbp] - 0007f 89 48 38 mov DWORD PTR [rax+56], ecx - -; 5101 : -; 5102 : return stbi__parse_zlib(a, parse_header); - - 00082 8b 95 00 01 00 - 00 mov edx, DWORD PTR parse_header$[rbp] - 00088 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR a$[rbp] - 0008f e8 00 00 00 00 call stbi__parse_zlib - -; 5103 : } - - 00094 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0009b 5f pop rdi - 0009c 5d pop rbp - 0009d c3 ret 0 -stbi__do_zlib ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__parse_zlib -_TEXT SEGMENT -final$ = 4 -type$ = 36 -a$ = 288 -parse_header$ = 296 -stbi__parse_zlib PROC ; COMDAT - -; 5059 : { - - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00023 90 npad 1 - -; 5060 : int final, type; -; 5061 : if (parse_header) - - 00024 83 bd 28 01 00 - 00 00 cmp DWORD PTR parse_header$[rbp], 0 - 0002b 74 17 je SHORT $LN5@stbi__pars - -; 5062 : if (!stbi__parse_zlib_header(a)) - - 0002d 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00034 e8 00 00 00 00 call stbi__parse_zlib_header - 00039 85 c0 test eax, eax - 0003b 75 07 jne SHORT $LN6@stbi__pars - -; 5063 : return 0; - - 0003d 33 c0 xor eax, eax - 0003f e9 17 01 00 00 jmp $LN1@stbi__pars -$LN6@stbi__pars: -$LN5@stbi__pars: - -; 5064 : a->num_bits = 0; - - 00044 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 0004b c7 40 10 00 00 - 00 00 mov DWORD PTR [rax+16], 0 - -; 5065 : a->code_buffer = 0; - - 00052 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 00059 c7 40 18 00 00 - 00 00 mov DWORD PTR [rax+24], 0 - -; 5066 : a->hit_zeof_once = 0; - - 00060 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 00067 c7 40 14 00 00 - 00 00 mov DWORD PTR [rax+20], 0 -$LN4@stbi__pars: - -; 5067 : do { -; 5068 : final = stbi__zreceive(a, 1); - - 0006e ba 01 00 00 00 mov edx, 1 - 00073 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 0007a e8 00 00 00 00 call stbi__zreceive - 0007f 89 45 04 mov DWORD PTR final$[rbp], eax - -; 5069 : type = stbi__zreceive(a, 2); - - 00082 ba 02 00 00 00 mov edx, 2 - 00087 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 0008e e8 00 00 00 00 call stbi__zreceive - 00093 89 45 24 mov DWORD PTR type$[rbp], eax - -; 5070 : if (type == 0) { - - 00096 83 7d 24 00 cmp DWORD PTR type$[rbp], 0 - 0009a 75 1c jne SHORT $LN7@stbi__pars - -; 5071 : if (!stbi__parse_uncompressed_block(a)) - - 0009c 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 000a3 e8 00 00 00 00 call stbi__parse_uncompressed_block - 000a8 85 c0 test eax, eax - 000aa 75 07 jne SHORT $LN9@stbi__pars - -; 5072 : return 0; - - 000ac 33 c0 xor eax, eax - 000ae e9 a8 00 00 00 jmp $LN1@stbi__pars -$LN9@stbi__pars: - -; 5073 : } else if (type == 3) { - - 000b3 e9 94 00 00 00 jmp $LN8@stbi__pars -$LN7@stbi__pars: - 000b8 83 7d 24 03 cmp DWORD PTR type$[rbp], 3 - 000bc 75 0c jne SHORT $LN10@stbi__pars - -; 5074 : return 0; - - 000be 33 c0 xor eax, eax - 000c0 e9 96 00 00 00 jmp $LN1@stbi__pars - -; 5075 : } else { - - 000c5 e9 82 00 00 00 jmp $LN11@stbi__pars -$LN10@stbi__pars: - -; 5076 : if (type == 1) { - - 000ca 83 7d 24 01 cmp DWORD PTR type$[rbp], 1 - 000ce 75 54 jne SHORT $LN12@stbi__pars - -; 5077 : // use fixed code lengths -; 5078 : if (!stbi__zbuild_huffman(&a->z_length, stbi__zdefault_length, - - 000d0 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 000d7 48 83 c0 3c add rax, 60 ; 0000003cH - 000db 41 b8 20 01 00 - 00 mov r8d, 288 ; 00000120H - 000e1 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__zdefault_length - 000e8 48 8b c8 mov rcx, rax - 000eb e8 00 00 00 00 call stbi__zbuild_huffman - 000f0 85 c0 test eax, eax - 000f2 75 04 jne SHORT $LN14@stbi__pars - -; 5079 : STBI__ZNSYMS)) -; 5080 : return 0; - - 000f4 33 c0 xor eax, eax - 000f6 eb 63 jmp SHORT $LN1@stbi__pars -$LN14@stbi__pars: - -; 5081 : if (!stbi__zbuild_huffman(&a->z_distance, stbi__zdefault_distance, - - 000f8 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 000ff 48 05 20 08 00 - 00 add rax, 2080 ; 00000820H - 00105 41 b8 20 00 00 - 00 mov r8d, 32 ; 00000020H - 0010b 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__zdefault_distance - 00112 48 8b c8 mov rcx, rax - 00115 e8 00 00 00 00 call stbi__zbuild_huffman - 0011a 85 c0 test eax, eax - 0011c 75 04 jne SHORT $LN15@stbi__pars - -; 5082 : 32)) -; 5083 : return 0; - - 0011e 33 c0 xor eax, eax - 00120 eb 39 jmp SHORT $LN1@stbi__pars -$LN15@stbi__pars: - -; 5084 : } else { - - 00122 eb 14 jmp SHORT $LN13@stbi__pars -$LN12@stbi__pars: - -; 5085 : if (!stbi__compute_huffman_codes(a)) - - 00124 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 0012b e8 00 00 00 00 call stbi__compute_huffman_codes - 00130 85 c0 test eax, eax - 00132 75 04 jne SHORT $LN16@stbi__pars - -; 5086 : return 0; - - 00134 33 c0 xor eax, eax - 00136 eb 23 jmp SHORT $LN1@stbi__pars -$LN16@stbi__pars: -$LN13@stbi__pars: - -; 5087 : } -; 5088 : if (!stbi__parse_huffman_block(a)) - - 00138 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 0013f e8 00 00 00 00 call stbi__parse_huffman_block - 00144 85 c0 test eax, eax - 00146 75 04 jne SHORT $LN17@stbi__pars - -; 5089 : return 0; - - 00148 33 c0 xor eax, eax - 0014a eb 0f jmp SHORT $LN1@stbi__pars -$LN17@stbi__pars: -$LN11@stbi__pars: -$LN8@stbi__pars: - -; 5090 : } -; 5091 : } while (!final); - - 0014c 83 7d 04 00 cmp DWORD PTR final$[rbp], 0 - 00150 0f 84 18 ff ff - ff je $LN4@stbi__pars - -; 5092 : return 1; - - 00156 b8 01 00 00 00 mov eax, 1 -$LN1@stbi__pars: - -; 5093 : } - - 0015b 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 00162 5f pop rdi - 00163 5d pop rbp - 00164 c3 ret 0 -stbi__parse_zlib ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__parse_zlib_header -_TEXT SEGMENT -cmf$ = 4 -cm$ = 36 -flg$ = 68 -a$ = 320 -stbi__parse_zlib_header PROC ; COMDAT - -; 5011 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 5012 : int cmf = stbi__zget8(a); - - 00020 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00027 e8 00 00 00 00 call stbi__zget8 - 0002c 0f b6 c0 movzx eax, al - 0002f 89 45 04 mov DWORD PTR cmf$[rbp], eax - -; 5013 : int cm = cmf & 15; - - 00032 8b 45 04 mov eax, DWORD PTR cmf$[rbp] - 00035 83 e0 0f and eax, 15 - 00038 89 45 24 mov DWORD PTR cm$[rbp], eax - -; 5014 : /* int cinfo = cmf >> 4; */ -; 5015 : int flg = stbi__zget8(a); - - 0003b 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00042 e8 00 00 00 00 call stbi__zget8 - 00047 0f b6 c0 movzx eax, al - 0004a 89 45 44 mov DWORD PTR flg$[rbp], eax - -; 5016 : if (stbi__zeof(a)) - - 0004d 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00054 e8 00 00 00 00 call stbi__zeof - 00059 85 c0 test eax, eax - 0005b 74 0e je SHORT $LN2@stbi__pars - -; 5017 : return stbi__err("bad zlib header", "Corrupt PNG"); // zlib spec - - 0005d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@OBKOPAFL@bad?5zlib?5header@ - 00064 e8 00 00 00 00 call stbi__err - 00069 eb 57 jmp SHORT $LN1@stbi__pars -$LN2@stbi__pars: - -; 5018 : if ((cmf * 256 + flg) % 31 != 0) - - 0006b 69 45 04 00 01 - 00 00 imul eax, DWORD PTR cmf$[rbp], 256 ; 00000100H - 00072 03 45 44 add eax, DWORD PTR flg$[rbp] - 00075 99 cdq - 00076 b9 1f 00 00 00 mov ecx, 31 - 0007b f7 f9 idiv ecx - 0007d 8b c2 mov eax, edx - 0007f 85 c0 test eax, eax - 00081 74 0e je SHORT $LN3@stbi__pars - -; 5019 : return stbi__err("bad zlib header", "Corrupt PNG"); // zlib spec - - 00083 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@OBKOPAFL@bad?5zlib?5header@ - 0008a e8 00 00 00 00 call stbi__err - 0008f eb 31 jmp SHORT $LN1@stbi__pars -$LN3@stbi__pars: - -; 5020 : if (flg & 32) - - 00091 8b 45 44 mov eax, DWORD PTR flg$[rbp] - 00094 83 e0 20 and eax, 32 ; 00000020H - 00097 85 c0 test eax, eax - 00099 74 0e je SHORT $LN4@stbi__pars - -; 5021 : return stbi__err("no preset dict", - - 0009b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0P@DOGMHEBI@no?5preset?5dict@ - 000a2 e8 00 00 00 00 call stbi__err - 000a7 eb 19 jmp SHORT $LN1@stbi__pars -$LN4@stbi__pars: - -; 5022 : "Corrupt PNG"); // preset dictionary not allowed in png -; 5023 : if (cm != 8) - - 000a9 83 7d 24 08 cmp DWORD PTR cm$[rbp], 8 - 000ad 74 0e je SHORT $LN5@stbi__pars - -; 5024 : return stbi__err("bad compression", "Corrupt PNG"); // DEFLATE required for png - - 000af 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@MCNBDLPD@bad?5compression@ - 000b6 e8 00 00 00 00 call stbi__err - 000bb eb 05 jmp SHORT $LN1@stbi__pars -$LN5@stbi__pars: - -; 5025 : // window = 1 << (8 + cinfo)... but who cares, we fully buffer output -; 5026 : return 1; - - 000bd b8 01 00 00 00 mov eax, 1 -$LN1@stbi__pars: - -; 5027 : } - - 000c2 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 000c9 5f pop rdi - 000ca 5d pop rbp - 000cb c3 ret 0 -stbi__parse_zlib_header ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__parse_uncompressed_block -_TEXT SEGMENT -header$ = 4 -len$ = 36 -nlen$ = 68 -k$ = 100 -a$ = 352 -stbi__parse_uncompressed_block PROC ; COMDAT - -; 4978 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 68 01 - 00 00 sub rsp, 360 ; 00000168H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 22 00 00 00 mov ecx, 34 ; 00000022H - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 88 - 01 00 00 mov rcx, QWORD PTR [rsp+392] - 0002c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00033 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00038 90 npad 1 - -; 4979 : stbi_uc header[4]; -; 4980 : int len, nlen, k; -; 4981 : if (a->num_bits & 7) - - 00039 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 00040 8b 40 10 mov eax, DWORD PTR [rax+16] - 00043 83 e0 07 and eax, 7 - 00046 85 c0 test eax, eax - 00048 74 1c je SHORT $LN6@stbi__pars - -; 4982 : stbi__zreceive(a, a->num_bits & 7); // discard - - 0004a 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 00051 8b 40 10 mov eax, DWORD PTR [rax+16] - 00054 83 e0 07 and eax, 7 - 00057 8b d0 mov edx, eax - 00059 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00060 e8 00 00 00 00 call stbi__zreceive - 00065 90 npad 1 -$LN6@stbi__pars: - -; 4983 : // drain the bit-packed data into header -; 4984 : k = 0; - - 00066 c7 45 64 00 00 - 00 00 mov DWORD PTR k$[rbp], 0 -$LN2@stbi__pars: - -; 4985 : while (a->num_bits > 0) { - - 0006d 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 00074 83 78 10 00 cmp DWORD PTR [rax+16], 0 - 00078 7e 4f jle SHORT $LN3@stbi__pars - -; 4986 : header[k++] = (stbi_uc)(a->code_buffer & 255); // suppress MSVC run-time check - - 0007a 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 00081 8b 40 18 mov eax, DWORD PTR [rax+24] - 00084 25 ff 00 00 00 and eax, 255 ; 000000ffH - 00089 48 63 4d 64 movsxd rcx, DWORD PTR k$[rbp] - 0008d 88 44 0d 04 mov BYTE PTR header$[rbp+rcx], al - 00091 8b 45 64 mov eax, DWORD PTR k$[rbp] - 00094 ff c0 inc eax - 00096 89 45 64 mov DWORD PTR k$[rbp], eax - -; 4987 : a->code_buffer >>= 8; - - 00099 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 000a0 8b 40 18 mov eax, DWORD PTR [rax+24] - 000a3 c1 e8 08 shr eax, 8 - 000a6 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 000ad 89 41 18 mov DWORD PTR [rcx+24], eax - -; 4988 : a->num_bits -= 8; - - 000b0 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 000b7 8b 40 10 mov eax, DWORD PTR [rax+16] - 000ba 83 e8 08 sub eax, 8 - 000bd 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 000c4 89 41 10 mov DWORD PTR [rcx+16], eax - -; 4989 : } - - 000c7 eb a4 jmp SHORT $LN2@stbi__pars -$LN3@stbi__pars: - -; 4990 : if (a->num_bits < 0) - - 000c9 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 000d0 83 78 10 00 cmp DWORD PTR [rax+16], 0 - 000d4 7d 11 jge SHORT $LN7@stbi__pars - -; 4991 : return stbi__err("zlib corrupt", "Corrupt PNG"); - - 000d6 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0N@IECDHMDI@zlib?5corrupt@ - 000dd e8 00 00 00 00 call stbi__err - 000e2 e9 54 01 00 00 jmp $LN1@stbi__pars -$LN7@stbi__pars: -$LN4@stbi__pars: - -; 4992 : // now fill header the normal way -; 4993 : while (k < 4) - - 000e7 83 7d 64 04 cmp DWORD PTR k$[rbp], 4 - 000eb 7d 1e jge SHORT $LN5@stbi__pars - -; 4994 : header[k++] = stbi__zget8(a); - - 000ed 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 000f4 e8 00 00 00 00 call stbi__zget8 - 000f9 48 63 4d 64 movsxd rcx, DWORD PTR k$[rbp] - 000fd 88 44 0d 04 mov BYTE PTR header$[rbp+rcx], al - 00101 8b 45 64 mov eax, DWORD PTR k$[rbp] - 00104 ff c0 inc eax - 00106 89 45 64 mov DWORD PTR k$[rbp], eax - 00109 eb dc jmp SHORT $LN4@stbi__pars -$LN5@stbi__pars: - -; 4995 : len = header[1] * 256 + header[0]; - - 0010b b8 01 00 00 00 mov eax, 1 - 00110 48 6b c0 01 imul rax, rax, 1 - 00114 0f b6 44 05 04 movzx eax, BYTE PTR header$[rbp+rax] - 00119 69 c0 00 01 00 - 00 imul eax, eax, 256 ; 00000100H - 0011f b9 01 00 00 00 mov ecx, 1 - 00124 48 6b c9 00 imul rcx, rcx, 0 - 00128 0f b6 4c 0d 04 movzx ecx, BYTE PTR header$[rbp+rcx] - 0012d 03 c1 add eax, ecx - 0012f 89 45 24 mov DWORD PTR len$[rbp], eax - -; 4996 : nlen = header[3] * 256 + header[2]; - - 00132 b8 01 00 00 00 mov eax, 1 - 00137 48 6b c0 03 imul rax, rax, 3 - 0013b 0f b6 44 05 04 movzx eax, BYTE PTR header$[rbp+rax] - 00140 69 c0 00 01 00 - 00 imul eax, eax, 256 ; 00000100H - 00146 b9 01 00 00 00 mov ecx, 1 - 0014b 48 6b c9 02 imul rcx, rcx, 2 - 0014f 0f b6 4c 0d 04 movzx ecx, BYTE PTR header$[rbp+rcx] - 00154 03 c1 add eax, ecx - 00156 89 45 44 mov DWORD PTR nlen$[rbp], eax - -; 4997 : if (nlen != (len ^ 0xffff)) - - 00159 8b 45 24 mov eax, DWORD PTR len$[rbp] - 0015c 35 ff ff 00 00 xor eax, 65535 ; 0000ffffH - 00161 39 45 44 cmp DWORD PTR nlen$[rbp], eax - 00164 74 11 je SHORT $LN8@stbi__pars - -; 4998 : return stbi__err("zlib corrupt", "Corrupt PNG"); - - 00166 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0N@IECDHMDI@zlib?5corrupt@ - 0016d e8 00 00 00 00 call stbi__err - 00172 e9 c4 00 00 00 jmp $LN1@stbi__pars -$LN8@stbi__pars: - -; 4999 : if (a->zbuffer + len > a->zbuffer_end) - - 00177 48 63 45 24 movsxd rax, DWORD PTR len$[rbp] - 0017b 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00182 48 03 01 add rax, QWORD PTR [rcx] - 00185 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 0018c 48 3b 41 08 cmp rax, QWORD PTR [rcx+8] - 00190 76 11 jbe SHORT $LN9@stbi__pars - -; 5000 : return stbi__err("read past buffer", "Corrupt PNG"); - - 00192 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@PIPBCKIA@read?5past?5buffer@ - 00199 e8 00 00 00 00 call stbi__err - 0019e e9 98 00 00 00 jmp $LN1@stbi__pars -$LN9@stbi__pars: - -; 5001 : if (a->zout + len > a->zout_end) - - 001a3 48 63 45 24 movsxd rax, DWORD PTR len$[rbp] - 001a7 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 001ae 48 03 41 20 add rax, QWORD PTR [rcx+32] - 001b2 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 001b9 48 3b 41 30 cmp rax, QWORD PTR [rcx+48] - 001bd 76 23 jbe SHORT $LN10@stbi__pars - -; 5002 : if (!stbi__zexpand(a, a->zout, len)) - - 001bf 44 8b 45 24 mov r8d, DWORD PTR len$[rbp] - 001c3 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 001ca 48 8b 50 20 mov rdx, QWORD PTR [rax+32] - 001ce 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 001d5 e8 00 00 00 00 call stbi__zexpand - 001da 85 c0 test eax, eax - 001dc 75 04 jne SHORT $LN11@stbi__pars - -; 5003 : return 0; - - 001de 33 c0 xor eax, eax - 001e0 eb 59 jmp SHORT $LN1@stbi__pars -$LN11@stbi__pars: -$LN10@stbi__pars: - -; 5004 : memcpy(a->zout, a->zbuffer, len); - - 001e2 48 63 45 24 movsxd rax, DWORD PTR len$[rbp] - 001e6 4c 8b c0 mov r8, rax - 001e9 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 001f0 48 8b 10 mov rdx, QWORD PTR [rax] - 001f3 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 001fa 48 8b 48 20 mov rcx, QWORD PTR [rax+32] - 001fe e8 00 00 00 00 call memcpy - 00203 90 npad 1 - -; 5005 : a->zbuffer += len; - - 00204 48 63 45 24 movsxd rax, DWORD PTR len$[rbp] - 00208 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 0020f 48 03 01 add rax, QWORD PTR [rcx] - 00212 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00219 48 89 01 mov QWORD PTR [rcx], rax - -; 5006 : a->zout += len; - - 0021c 48 63 45 24 movsxd rax, DWORD PTR len$[rbp] - 00220 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00227 48 03 41 20 add rax, QWORD PTR [rcx+32] - 0022b 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00232 48 89 41 20 mov QWORD PTR [rcx+32], rax - -; 5007 : return 1; - - 00236 b8 01 00 00 00 mov eax, 1 -$LN1@stbi__pars: - -; 5008 : } - - 0023b 48 8b f8 mov rdi, rax - 0023e 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00242 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__parse_uncompressed_block$rtcFrameData - 00249 e8 00 00 00 00 call _RTC_CheckStackVars - 0024e 48 8b c7 mov rax, rdi - 00251 48 8d a5 48 01 - 00 00 lea rsp, QWORD PTR [rbp+328] - 00258 5f pop rdi - 00259 5d pop rbp - 0025a c3 ret 0 -stbi__parse_uncompressed_block ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__compute_huffman_codes -_TEXT SEGMENT -z_codelength$ = 16 -lencodes$ = 2080 -codelength_sizes$ = 2568 -i$ = 2612 -n$ = 2644 -hlit$ = 2676 -hdist$ = 2708 -hclen$ = 2740 -ntot$ = 2772 -s$6 = 2804 -c$7 = 2836 -fill$8 = 2868 -tv175 = 4040 -__$ArrayPad$ = 4048 -a$ = 4096 -stbi__compute_huffman_codes PROC ; COMDAT - -; 4920 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 b8 08 10 00 00 mov eax, 4104 ; 00001008H - 0000c e8 00 00 00 00 call __chkstk - 00011 48 2b e0 sub rsp, rax - 00014 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00019 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 0001e b9 da 02 00 00 mov ecx, 730 ; 000002daH - 00023 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00028 f3 ab rep stosd - 0002a 48 8b 8c 24 28 - 10 00 00 mov rcx, QWORD PTR [rsp+4136] - 00032 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00039 48 33 c5 xor rax, rbp - 0003c 48 89 85 d0 0f - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00043 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0004a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0004f 90 npad 1 - -; 4921 : static const stbi_uc length_dezigzag[19] = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, -; 4922 : 11, 4, 12, 3, 13, 2, 14, 1, 15 }; -; 4923 : stbi__zhuffman z_codelength; -; 4924 : stbi_uc lencodes[286 + 32 + 137]; //padding for maximum single op -; 4925 : stbi_uc codelength_sizes[19]; -; 4926 : int i, n; -; 4927 : -; 4928 : int hlit = stbi__zreceive(a, 5) + 257; - - 00050 ba 05 00 00 00 mov edx, 5 - 00055 48 8b 8d 00 10 - 00 00 mov rcx, QWORD PTR a$[rbp] - 0005c e8 00 00 00 00 call stbi__zreceive - 00061 05 01 01 00 00 add eax, 257 ; 00000101H - 00066 89 85 74 0a 00 - 00 mov DWORD PTR hlit$[rbp], eax - -; 4929 : int hdist = stbi__zreceive(a, 5) + 1; - - 0006c ba 05 00 00 00 mov edx, 5 - 00071 48 8b 8d 00 10 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00078 e8 00 00 00 00 call stbi__zreceive - 0007d ff c0 inc eax - 0007f 89 85 94 0a 00 - 00 mov DWORD PTR hdist$[rbp], eax - -; 4930 : int hclen = stbi__zreceive(a, 4) + 4; - - 00085 ba 04 00 00 00 mov edx, 4 - 0008a 48 8b 8d 00 10 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00091 e8 00 00 00 00 call stbi__zreceive - 00096 83 c0 04 add eax, 4 - 00099 89 85 b4 0a 00 - 00 mov DWORD PTR hclen$[rbp], eax - -; 4931 : int ntot = hlit + hdist; - - 0009f 8b 85 94 0a 00 - 00 mov eax, DWORD PTR hdist$[rbp] - 000a5 8b 8d 74 0a 00 - 00 mov ecx, DWORD PTR hlit$[rbp] - 000ab 03 c8 add ecx, eax - 000ad 8b c1 mov eax, ecx - 000af 89 85 d4 0a 00 - 00 mov DWORD PTR ntot$[rbp], eax - -; 4932 : -; 4933 : memset(codelength_sizes, 0, sizeof(codelength_sizes)); - - 000b5 41 b8 13 00 00 - 00 mov r8d, 19 - 000bb 33 d2 xor edx, edx - 000bd 48 8d 8d 08 0a - 00 00 lea rcx, QWORD PTR codelength_sizes$[rbp] - 000c4 e8 00 00 00 00 call memset - 000c9 90 npad 1 - -; 4934 : for (i = 0; i < hclen; ++i) { - - 000ca c7 85 34 0a 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 000d4 eb 0e jmp SHORT $LN4@stbi__comp -$LN2@stbi__comp: - 000d6 8b 85 34 0a 00 - 00 mov eax, DWORD PTR i$[rbp] - 000dc ff c0 inc eax - 000de 89 85 34 0a 00 - 00 mov DWORD PTR i$[rbp], eax -$LN4@stbi__comp: - 000e4 8b 85 b4 0a 00 - 00 mov eax, DWORD PTR hclen$[rbp] - 000ea 39 85 34 0a 00 - 00 cmp DWORD PTR i$[rbp], eax - 000f0 7d 39 jge SHORT $LN3@stbi__comp - -; 4935 : int s = stbi__zreceive(a, 3); - - 000f2 ba 03 00 00 00 mov edx, 3 - 000f7 48 8b 8d 00 10 - 00 00 mov rcx, QWORD PTR a$[rbp] - 000fe e8 00 00 00 00 call stbi__zreceive - 00103 89 85 f4 0a 00 - 00 mov DWORD PTR s$6[rbp], eax - -; 4936 : codelength_sizes[length_dezigzag[i]] = (stbi_uc)s; - - 00109 48 63 85 34 0a - 00 00 movsxd rax, DWORD PTR i$[rbp] - 00110 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:?length_dezigzag@?1??stbi__compute_huffman_codes@@9@9 - 00117 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0011b 0f b6 8d f4 0a - 00 00 movzx ecx, BYTE PTR s$6[rbp] - 00122 88 8c 05 08 0a - 00 00 mov BYTE PTR codelength_sizes$[rbp+rax], cl - -; 4937 : } - - 00129 eb ab jmp SHORT $LN2@stbi__comp -$LN3@stbi__comp: - -; 4938 : if (!stbi__zbuild_huffman(&z_codelength, codelength_sizes, 19)) - - 0012b 41 b8 13 00 00 - 00 mov r8d, 19 - 00131 48 8d 95 08 0a - 00 00 lea rdx, QWORD PTR codelength_sizes$[rbp] - 00138 48 8d 4d 10 lea rcx, QWORD PTR z_codelength$[rbp] - 0013c e8 00 00 00 00 call stbi__zbuild_huffman - 00141 85 c0 test eax, eax - 00143 75 07 jne SHORT $LN7@stbi__comp - -; 4939 : return 0; - - 00145 33 c0 xor eax, eax - 00147 e9 3a 02 00 00 jmp $LN1@stbi__comp -$LN7@stbi__comp: - -; 4940 : -; 4941 : n = 0; - - 0014c c7 85 54 0a 00 - 00 00 00 00 00 mov DWORD PTR n$[rbp], 0 -$LN5@stbi__comp: - -; 4942 : while (n < ntot) { - - 00156 8b 85 d4 0a 00 - 00 mov eax, DWORD PTR ntot$[rbp] - 0015c 39 85 54 0a 00 - 00 cmp DWORD PTR n$[rbp], eax - 00162 0f 8d a0 01 00 - 00 jge $LN6@stbi__comp - -; 4943 : int c = stbi__zhuffman_decode(a, &z_codelength); - - 00168 48 8d 55 10 lea rdx, QWORD PTR z_codelength$[rbp] - 0016c 48 8b 8d 00 10 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00173 e8 00 00 00 00 call stbi__zhuffman_decode - 00178 89 85 14 0b 00 - 00 mov DWORD PTR c$7[rbp], eax - -; 4944 : if (c < 0 || c >= 19) - - 0017e 83 bd 14 0b 00 - 00 00 cmp DWORD PTR c$7[rbp], 0 - 00185 7c 09 jl SHORT $LN9@stbi__comp - 00187 83 bd 14 0b 00 - 00 13 cmp DWORD PTR c$7[rbp], 19 - 0018e 7c 11 jl SHORT $LN8@stbi__comp -$LN9@stbi__comp: - -; 4945 : return stbi__err("bad codelengths", "Corrupt PNG"); - - 00190 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@MDNKOBMC@bad?5codelengths@ - 00197 e8 00 00 00 00 call stbi__err - 0019c e9 e5 01 00 00 jmp $LN1@stbi__comp -$LN8@stbi__comp: - -; 4946 : if (c < 16) - - 001a1 83 bd 14 0b 00 - 00 10 cmp DWORD PTR c$7[rbp], 16 - 001a8 7d 28 jge SHORT $LN10@stbi__comp - -; 4947 : lencodes[n++] = (stbi_uc)c; - - 001aa 48 63 85 54 0a - 00 00 movsxd rax, DWORD PTR n$[rbp] - 001b1 0f b6 8d 14 0b - 00 00 movzx ecx, BYTE PTR c$7[rbp] - 001b8 88 8c 05 20 08 - 00 00 mov BYTE PTR lencodes$[rbp+rax], cl - 001bf 8b 85 54 0a 00 - 00 mov eax, DWORD PTR n$[rbp] - 001c5 ff c0 inc eax - 001c7 89 85 54 0a 00 - 00 mov DWORD PTR n$[rbp], eax - 001cd e9 31 01 00 00 jmp $LN11@stbi__comp -$LN10@stbi__comp: - -; 4948 : else { -; 4949 : stbi_uc fill = 0; - - 001d2 c6 85 34 0b 00 - 00 00 mov BYTE PTR fill$8[rbp], 0 - -; 4950 : if (c == 16) { - - 001d9 83 bd 14 0b 00 - 00 10 cmp DWORD PTR c$7[rbp], 16 - 001e0 75 4e jne SHORT $LN12@stbi__comp - -; 4951 : c = stbi__zreceive(a, 2) + 3; - - 001e2 ba 02 00 00 00 mov edx, 2 - 001e7 48 8b 8d 00 10 - 00 00 mov rcx, QWORD PTR a$[rbp] - 001ee e8 00 00 00 00 call stbi__zreceive - 001f3 83 c0 03 add eax, 3 - 001f6 89 85 14 0b 00 - 00 mov DWORD PTR c$7[rbp], eax - -; 4952 : if (n == 0) - - 001fc 83 bd 54 0a 00 - 00 00 cmp DWORD PTR n$[rbp], 0 - 00203 75 11 jne SHORT $LN14@stbi__comp - -; 4953 : return stbi__err("bad codelengths", "Corrupt PNG"); - - 00205 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@MDNKOBMC@bad?5codelengths@ - 0020c e8 00 00 00 00 call stbi__err - 00211 e9 70 01 00 00 jmp $LN1@stbi__comp -$LN14@stbi__comp: - -; 4954 : fill = lencodes[n - 1]; - - 00216 8b 85 54 0a 00 - 00 mov eax, DWORD PTR n$[rbp] - 0021c ff c8 dec eax - 0021e 48 98 cdqe - 00220 0f b6 84 05 20 - 08 00 00 movzx eax, BYTE PTR lencodes$[rbp+rax] - 00228 88 85 34 0b 00 - 00 mov BYTE PTR fill$8[rbp], al - 0022e eb 5b jmp SHORT $LN13@stbi__comp -$LN12@stbi__comp: - -; 4955 : } else if (c == 17) { - - 00230 83 bd 14 0b 00 - 00 11 cmp DWORD PTR c$7[rbp], 17 - 00237 75 1c jne SHORT $LN15@stbi__comp - -; 4956 : c = stbi__zreceive(a, 3) + 3; - - 00239 ba 03 00 00 00 mov edx, 3 - 0023e 48 8b 8d 00 10 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00245 e8 00 00 00 00 call stbi__zreceive - 0024a 83 c0 03 add eax, 3 - 0024d 89 85 14 0b 00 - 00 mov DWORD PTR c$7[rbp], eax - 00253 eb 36 jmp SHORT $LN16@stbi__comp -$LN15@stbi__comp: - -; 4957 : } else if (c == 18) { - - 00255 83 bd 14 0b 00 - 00 12 cmp DWORD PTR c$7[rbp], 18 - 0025c 75 1c jne SHORT $LN17@stbi__comp - -; 4958 : c = stbi__zreceive(a, 7) + 11; - - 0025e ba 07 00 00 00 mov edx, 7 - 00263 48 8b 8d 00 10 - 00 00 mov rcx, QWORD PTR a$[rbp] - 0026a e8 00 00 00 00 call stbi__zreceive - 0026f 83 c0 0b add eax, 11 - 00272 89 85 14 0b 00 - 00 mov DWORD PTR c$7[rbp], eax - -; 4959 : } else { - - 00278 eb 11 jmp SHORT $LN18@stbi__comp -$LN17@stbi__comp: - -; 4960 : return stbi__err("bad codelengths", "Corrupt PNG"); - - 0027a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@MDNKOBMC@bad?5codelengths@ - 00281 e8 00 00 00 00 call stbi__err - 00286 e9 fb 00 00 00 jmp $LN1@stbi__comp -$LN18@stbi__comp: -$LN16@stbi__comp: -$LN13@stbi__comp: - -; 4961 : } -; 4962 : if (ntot - n < c) - - 0028b 8b 85 54 0a 00 - 00 mov eax, DWORD PTR n$[rbp] - 00291 8b 8d d4 0a 00 - 00 mov ecx, DWORD PTR ntot$[rbp] - 00297 2b c8 sub ecx, eax - 00299 8b c1 mov eax, ecx - 0029b 3b 85 14 0b 00 - 00 cmp eax, DWORD PTR c$7[rbp] - 002a1 7d 11 jge SHORT $LN19@stbi__comp - -; 4963 : return stbi__err("bad codelengths", "Corrupt PNG"); - - 002a3 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@MDNKOBMC@bad?5codelengths@ - 002aa e8 00 00 00 00 call stbi__err - 002af e9 d2 00 00 00 jmp $LN1@stbi__comp -$LN19@stbi__comp: - -; 4964 : memset(lencodes + n, fill, c); - - 002b4 48 63 85 14 0b - 00 00 movsxd rax, DWORD PTR c$7[rbp] - 002bb 0f b6 8d 34 0b - 00 00 movzx ecx, BYTE PTR fill$8[rbp] - 002c2 48 63 95 54 0a - 00 00 movsxd rdx, DWORD PTR n$[rbp] - 002c9 48 8d 94 15 20 - 08 00 00 lea rdx, QWORD PTR lencodes$[rbp+rdx] - 002d1 48 89 95 c8 0f - 00 00 mov QWORD PTR tv175[rbp], rdx - 002d8 4c 8b c0 mov r8, rax - 002db 8b d1 mov edx, ecx - 002dd 48 8b 85 c8 0f - 00 00 mov rax, QWORD PTR tv175[rbp] - 002e4 48 8b c8 mov rcx, rax - 002e7 e8 00 00 00 00 call memset - 002ec 90 npad 1 - -; 4965 : n += c; - - 002ed 8b 85 14 0b 00 - 00 mov eax, DWORD PTR c$7[rbp] - 002f3 8b 8d 54 0a 00 - 00 mov ecx, DWORD PTR n$[rbp] - 002f9 03 c8 add ecx, eax - 002fb 8b c1 mov eax, ecx - 002fd 89 85 54 0a 00 - 00 mov DWORD PTR n$[rbp], eax -$LN11@stbi__comp: - -; 4966 : } -; 4967 : } - - 00303 e9 4e fe ff ff jmp $LN5@stbi__comp -$LN6@stbi__comp: - -; 4968 : if (n != ntot) - - 00308 8b 85 d4 0a 00 - 00 mov eax, DWORD PTR ntot$[rbp] - 0030e 39 85 54 0a 00 - 00 cmp DWORD PTR n$[rbp], eax - 00314 74 0e je SHORT $LN20@stbi__comp - -; 4969 : return stbi__err("bad codelengths", "Corrupt PNG"); - - 00316 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@MDNKOBMC@bad?5codelengths@ - 0031d e8 00 00 00 00 call stbi__err - 00322 eb 62 jmp SHORT $LN1@stbi__comp -$LN20@stbi__comp: - -; 4970 : if (!stbi__zbuild_huffman(&a->z_length, lencodes, hlit)) - - 00324 48 8b 85 00 10 - 00 00 mov rax, QWORD PTR a$[rbp] - 0032b 48 83 c0 3c add rax, 60 ; 0000003cH - 0032f 44 8b 85 74 0a - 00 00 mov r8d, DWORD PTR hlit$[rbp] - 00336 48 8d 95 20 08 - 00 00 lea rdx, QWORD PTR lencodes$[rbp] - 0033d 48 8b c8 mov rcx, rax - 00340 e8 00 00 00 00 call stbi__zbuild_huffman - 00345 85 c0 test eax, eax - 00347 75 04 jne SHORT $LN21@stbi__comp - -; 4971 : return 0; - - 00349 33 c0 xor eax, eax - 0034b eb 39 jmp SHORT $LN1@stbi__comp -$LN21@stbi__comp: - -; 4972 : if (!stbi__zbuild_huffman(&a->z_distance, lencodes + hlit, hdist)) - - 0034d 48 63 85 74 0a - 00 00 movsxd rax, DWORD PTR hlit$[rbp] - 00354 48 8d 84 05 20 - 08 00 00 lea rax, QWORD PTR lencodes$[rbp+rax] - 0035c 48 8b 8d 00 10 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00363 48 81 c1 20 08 - 00 00 add rcx, 2080 ; 00000820H - 0036a 44 8b 85 94 0a - 00 00 mov r8d, DWORD PTR hdist$[rbp] - 00371 48 8b d0 mov rdx, rax - 00374 e8 00 00 00 00 call stbi__zbuild_huffman - 00379 85 c0 test eax, eax - 0037b 75 04 jne SHORT $LN22@stbi__comp - -; 4973 : return 0; - - 0037d 33 c0 xor eax, eax - 0037f eb 05 jmp SHORT $LN1@stbi__comp -$LN22@stbi__comp: - -; 4974 : return 1; - - 00381 b8 01 00 00 00 mov eax, 1 -$LN1@stbi__comp: - -; 4975 : } - - 00386 48 8b f8 mov rdi, rax - 00389 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0038d 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__compute_huffman_codes$rtcFrameData - 00394 e8 00 00 00 00 call _RTC_CheckStackVars - 00399 48 8b c7 mov rax, rdi - 0039c 48 8b 8d d0 0f - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 003a3 48 33 cd xor rcx, rbp - 003a6 e8 00 00 00 00 call __security_check_cookie - 003ab 48 8d a5 e8 0f - 00 00 lea rsp, QWORD PTR [rbp+4072] - 003b2 5f pop rdi - 003b3 5d pop rbp - 003b4 c3 ret 0 -stbi__compute_huffman_codes ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__parse_huffman_block -_TEXT SEGMENT -zout$ = 8 -z$1 = 36 -p$2 = 72 -len$3 = 100 -dist$4 = 132 -v$5 = 164 -a$ = 416 -stbi__parse_huffman_block PROC ; COMDAT - -; 4849 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec a8 01 - 00 00 sub rsp, 424 ; 000001a8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 4850 : char *zout = a->zout; - - 00020 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 00027 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 0002b 48 89 45 08 mov QWORD PTR zout$[rbp], rax -$LN2@stbi__pars: - -; 4851 : for (;;) { -; 4852 : int z = stbi__zhuffman_decode(a, &a->z_length); - - 0002f 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 00036 48 83 c0 3c add rax, 60 ; 0000003cH - 0003a 48 8b d0 mov rdx, rax - 0003d 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00044 e8 00 00 00 00 call stbi__zhuffman_decode - 00049 89 45 24 mov DWORD PTR z$1[rbp], eax - -; 4853 : if (z < 256) { - - 0004c 81 7d 24 00 01 - 00 00 cmp DWORD PTR z$1[rbp], 256 ; 00000100H - 00053 7d 72 jge SHORT $LN11@stbi__pars - -; 4854 : if (z < 0) - - 00055 83 7d 24 00 cmp DWORD PTR z$1[rbp], 0 - 00059 7d 11 jge SHORT $LN13@stbi__pars - -; 4855 : return stbi__err("bad huffman code", - - 0005b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@ - 00062 e8 00 00 00 00 call stbi__err - 00067 e9 ae 02 00 00 jmp $LN1@stbi__pars -$LN13@stbi__pars: - -; 4856 : "Corrupt PNG"); // error in huffman codes -; 4857 : if (zout >= a->zout_end) { - - 0006c 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 00073 48 8b 40 30 mov rax, QWORD PTR [rax+48] - 00077 48 39 45 08 cmp QWORD PTR zout$[rbp], rax - 0007b 72 30 jb SHORT $LN14@stbi__pars - -; 4858 : if (!stbi__zexpand(a, zout, 1)) - - 0007d 41 b8 01 00 00 - 00 mov r8d, 1 - 00083 48 8b 55 08 mov rdx, QWORD PTR zout$[rbp] - 00087 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 0008e e8 00 00 00 00 call stbi__zexpand - 00093 85 c0 test eax, eax - 00095 75 07 jne SHORT $LN15@stbi__pars - -; 4859 : return 0; - - 00097 33 c0 xor eax, eax - 00099 e9 7c 02 00 00 jmp $LN1@stbi__pars -$LN15@stbi__pars: - -; 4860 : zout = a->zout; - - 0009e 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 000a5 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 000a9 48 89 45 08 mov QWORD PTR zout$[rbp], rax -$LN14@stbi__pars: - -; 4861 : } -; 4862 : *zout++ = (char)z; - - 000ad 48 8b 45 08 mov rax, QWORD PTR zout$[rbp] - 000b1 0f b6 4d 24 movzx ecx, BYTE PTR z$1[rbp] - 000b5 88 08 mov BYTE PTR [rax], cl - 000b7 48 8b 45 08 mov rax, QWORD PTR zout$[rbp] - 000bb 48 ff c0 inc rax - 000be 48 89 45 08 mov QWORD PTR zout$[rbp], rax - -; 4863 : } else { - - 000c2 e9 4e 02 00 00 jmp $LN12@stbi__pars -$LN11@stbi__pars: - -; 4864 : stbi_uc *p; -; 4865 : int len, dist; -; 4866 : if (z == 256) { - - 000c7 81 7d 24 00 01 - 00 00 cmp DWORD PTR z$1[rbp], 256 ; 00000100H - 000ce 75 44 jne SHORT $LN16@stbi__pars - -; 4867 : a->zout = zout; - - 000d0 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 000d7 48 8b 4d 08 mov rcx, QWORD PTR zout$[rbp] - 000db 48 89 48 20 mov QWORD PTR [rax+32], rcx - -; 4868 : if (a->hit_zeof_once && a->num_bits < 16) { - - 000df 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 000e6 83 78 14 00 cmp DWORD PTR [rax+20], 0 - 000ea 74 1e je SHORT $LN17@stbi__pars - 000ec 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 000f3 83 78 10 10 cmp DWORD PTR [rax+16], 16 - 000f7 7d 11 jge SHORT $LN17@stbi__pars - -; 4869 : // The first time we hit zeof, we inserted 16 extra zero bits into our bit -; 4870 : // buffer so the decoder can just do its speculative decoding. But if we -; 4871 : // actually consumed any of those bits (which is the case when num_bits < 16), -; 4872 : // the stream actually read past the end so it is malformed. -; 4873 : return stbi__err("unexpected end", "Corrupt PNG"); - - 000f9 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0P@CLDJCNKP@unexpected?5end@ - 00100 e8 00 00 00 00 call stbi__err - 00105 e9 10 02 00 00 jmp $LN1@stbi__pars -$LN17@stbi__pars: - -; 4874 : } -; 4875 : return 1; - - 0010a b8 01 00 00 00 mov eax, 1 - 0010f e9 06 02 00 00 jmp $LN1@stbi__pars -$LN16@stbi__pars: - -; 4876 : } -; 4877 : if (z >= 286) - - 00114 81 7d 24 1e 01 - 00 00 cmp DWORD PTR z$1[rbp], 286 ; 0000011eH - 0011b 7c 11 jl SHORT $LN18@stbi__pars - -; 4878 : return stbi__err( - - 0011d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@ - 00124 e8 00 00 00 00 call stbi__err - 00129 e9 ec 01 00 00 jmp $LN1@stbi__pars -$LN18@stbi__pars: - -; 4879 : "bad huffman code", -; 4880 : "Corrupt PNG"); // per DEFLATE, length codes 286 and 287 must not appear in compressed data -; 4881 : z -= 257; - - 0012e 8b 45 24 mov eax, DWORD PTR z$1[rbp] - 00131 2d 01 01 00 00 sub eax, 257 ; 00000101H - 00136 89 45 24 mov DWORD PTR z$1[rbp], eax - -; 4882 : len = stbi__zlength_base[z]; - - 00139 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp] - 0013d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__zlength_base - 00144 8b 04 81 mov eax, DWORD PTR [rcx+rax*4] - 00147 89 45 64 mov DWORD PTR len$3[rbp], eax - -; 4883 : if (stbi__zlength_extra[z]) - - 0014a 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp] - 0014e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__zlength_extra - 00155 83 3c 81 00 cmp DWORD PTR [rcx+rax*4], 0 - 00159 74 24 je SHORT $LN19@stbi__pars - -; 4884 : len += stbi__zreceive(a, stbi__zlength_extra[z]); - - 0015b 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp] - 0015f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__zlength_extra - 00166 8b 14 81 mov edx, DWORD PTR [rcx+rax*4] - 00169 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00170 e8 00 00 00 00 call stbi__zreceive - 00175 8b 4d 64 mov ecx, DWORD PTR len$3[rbp] - 00178 03 c8 add ecx, eax - 0017a 8b c1 mov eax, ecx - 0017c 89 45 64 mov DWORD PTR len$3[rbp], eax -$LN19@stbi__pars: - -; 4885 : z = stbi__zhuffman_decode(a, &a->z_distance); - - 0017f 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 00186 48 05 20 08 00 - 00 add rax, 2080 ; 00000820H - 0018c 48 8b d0 mov rdx, rax - 0018f 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00196 e8 00 00 00 00 call stbi__zhuffman_decode - 0019b 89 45 24 mov DWORD PTR z$1[rbp], eax - -; 4886 : if (z < 0 || z >= 30) - - 0019e 83 7d 24 00 cmp DWORD PTR z$1[rbp], 0 - 001a2 7c 06 jl SHORT $LN21@stbi__pars - 001a4 83 7d 24 1e cmp DWORD PTR z$1[rbp], 30 - 001a8 7c 11 jl SHORT $LN20@stbi__pars -$LN21@stbi__pars: - -; 4887 : return stbi__err( - - 001aa 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@ - 001b1 e8 00 00 00 00 call stbi__err - 001b6 e9 5f 01 00 00 jmp $LN1@stbi__pars -$LN20@stbi__pars: - -; 4888 : "bad huffman code", -; 4889 : "Corrupt PNG"); // per DEFLATE, distance codes 30 and 31 must not appear in compressed data -; 4890 : dist = stbi__zdist_base[z]; - - 001bb 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp] - 001bf 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__zdist_base - 001c6 8b 04 81 mov eax, DWORD PTR [rcx+rax*4] - 001c9 89 85 84 00 00 - 00 mov DWORD PTR dist$4[rbp], eax - -; 4891 : if (stbi__zdist_extra[z]) - - 001cf 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp] - 001d3 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__zdist_extra - 001da 83 3c 81 00 cmp DWORD PTR [rcx+rax*4], 0 - 001de 74 2a je SHORT $LN22@stbi__pars - -; 4892 : dist += stbi__zreceive(a, stbi__zdist_extra[z]); - - 001e0 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp] - 001e4 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__zdist_extra - 001eb 8b 14 81 mov edx, DWORD PTR [rcx+rax*4] - 001ee 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 001f5 e8 00 00 00 00 call stbi__zreceive - 001fa 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR dist$4[rbp] - 00200 03 c8 add ecx, eax - 00202 8b c1 mov eax, ecx - 00204 89 85 84 00 00 - 00 mov DWORD PTR dist$4[rbp], eax -$LN22@stbi__pars: - -; 4893 : if (zout - a->zout_start < dist) - - 0020a 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 00211 48 8b 40 28 mov rax, QWORD PTR [rax+40] - 00215 48 8b 4d 08 mov rcx, QWORD PTR zout$[rbp] - 00219 48 2b c8 sub rcx, rax - 0021c 48 8b c1 mov rax, rcx - 0021f 48 63 8d 84 00 - 00 00 movsxd rcx, DWORD PTR dist$4[rbp] - 00226 48 3b c1 cmp rax, rcx - 00229 7d 11 jge SHORT $LN23@stbi__pars - -; 4894 : return stbi__err("bad dist", "Corrupt PNG"); - - 0022b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08DIAPIMGJ@bad?5dist@ - 00232 e8 00 00 00 00 call stbi__err - 00237 e9 de 00 00 00 jmp $LN1@stbi__pars -$LN23@stbi__pars: - -; 4895 : if (len > a->zout_end - zout) { - - 0023c 48 63 45 64 movsxd rax, DWORD PTR len$3[rbp] - 00240 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00247 48 8b 55 08 mov rdx, QWORD PTR zout$[rbp] - 0024b 48 8b 49 30 mov rcx, QWORD PTR [rcx+48] - 0024f 48 2b ca sub rcx, rdx - 00252 48 3b c1 cmp rax, rcx - 00255 7e 2e jle SHORT $LN24@stbi__pars - -; 4896 : if (!stbi__zexpand(a, zout, len)) - - 00257 44 8b 45 64 mov r8d, DWORD PTR len$3[rbp] - 0025b 48 8b 55 08 mov rdx, QWORD PTR zout$[rbp] - 0025f 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00266 e8 00 00 00 00 call stbi__zexpand - 0026b 85 c0 test eax, eax - 0026d 75 07 jne SHORT $LN25@stbi__pars - -; 4897 : return 0; - - 0026f 33 c0 xor eax, eax - 00271 e9 a4 00 00 00 jmp $LN1@stbi__pars -$LN25@stbi__pars: - -; 4898 : zout = a->zout; - - 00276 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 0027d 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 00281 48 89 45 08 mov QWORD PTR zout$[rbp], rax -$LN24@stbi__pars: - -; 4899 : } -; 4900 : p = (stbi_uc *)(zout - dist); - - 00285 48 63 85 84 00 - 00 00 movsxd rax, DWORD PTR dist$4[rbp] - 0028c 48 8b 4d 08 mov rcx, QWORD PTR zout$[rbp] - 00290 48 2b c8 sub rcx, rax - 00293 48 8b c1 mov rax, rcx - 00296 48 89 45 48 mov QWORD PTR p$2[rbp], rax - -; 4901 : if (dist == 1) { // run of one byte; common in images. - - 0029a 83 bd 84 00 00 - 00 01 cmp DWORD PTR dist$4[rbp], 1 - 002a1 75 3b jne SHORT $LN26@stbi__pars - -; 4902 : stbi_uc v = *p; - - 002a3 48 8b 45 48 mov rax, QWORD PTR p$2[rbp] - 002a7 0f b6 00 movzx eax, BYTE PTR [rax] - 002aa 88 85 a4 00 00 - 00 mov BYTE PTR v$5[rbp], al - -; 4903 : if (len) { - - 002b0 83 7d 64 00 cmp DWORD PTR len$3[rbp], 0 - 002b4 74 26 je SHORT $LN28@stbi__pars -$LN7@stbi__pars: - -; 4904 : do -; 4905 : *zout++ = v; - - 002b6 48 8b 45 08 mov rax, QWORD PTR zout$[rbp] - 002ba 0f b6 8d a4 00 - 00 00 movzx ecx, BYTE PTR v$5[rbp] - 002c1 88 08 mov BYTE PTR [rax], cl - 002c3 48 8b 45 08 mov rax, QWORD PTR zout$[rbp] - 002c7 48 ff c0 inc rax - 002ca 48 89 45 08 mov QWORD PTR zout$[rbp], rax - -; 4906 : while (--len); - - 002ce 8b 45 64 mov eax, DWORD PTR len$3[rbp] - 002d1 ff c8 dec eax - 002d3 89 45 64 mov DWORD PTR len$3[rbp], eax - 002d6 83 7d 64 00 cmp DWORD PTR len$3[rbp], 0 - 002da 75 da jne SHORT $LN7@stbi__pars -$LN28@stbi__pars: - -; 4907 : } -; 4908 : } else { - - 002dc eb 37 jmp SHORT $LN27@stbi__pars -$LN26@stbi__pars: - -; 4909 : if (len) { - - 002de 83 7d 64 00 cmp DWORD PTR len$3[rbp], 0 - 002e2 74 31 je SHORT $LN29@stbi__pars -$LN10@stbi__pars: - -; 4910 : do -; 4911 : *zout++ = *p++; - - 002e4 48 8b 45 08 mov rax, QWORD PTR zout$[rbp] - 002e8 48 8b 4d 48 mov rcx, QWORD PTR p$2[rbp] - 002ec 0f b6 09 movzx ecx, BYTE PTR [rcx] - 002ef 88 08 mov BYTE PTR [rax], cl - 002f1 48 8b 45 08 mov rax, QWORD PTR zout$[rbp] - 002f5 48 ff c0 inc rax - 002f8 48 89 45 08 mov QWORD PTR zout$[rbp], rax - 002fc 48 8b 45 48 mov rax, QWORD PTR p$2[rbp] - 00300 48 ff c0 inc rax - 00303 48 89 45 48 mov QWORD PTR p$2[rbp], rax - -; 4912 : while (--len); - - 00307 8b 45 64 mov eax, DWORD PTR len$3[rbp] - 0030a ff c8 dec eax - 0030c 89 45 64 mov DWORD PTR len$3[rbp], eax - 0030f 83 7d 64 00 cmp DWORD PTR len$3[rbp], 0 - 00313 75 cf jne SHORT $LN10@stbi__pars -$LN29@stbi__pars: -$LN27@stbi__pars: -$LN12@stbi__pars: - -; 4913 : } -; 4914 : } -; 4915 : } -; 4916 : } - - 00315 e9 15 fd ff ff jmp $LN2@stbi__pars -$LN1@stbi__pars: - -; 4917 : } - - 0031a 48 8d a5 88 01 - 00 00 lea rsp, QWORD PTR [rbp+392] - 00321 5f pop rdi - 00322 5d pop rbp - 00323 c3 ret 0 -stbi__parse_huffman_block ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__zexpand -_TEXT SEGMENT -q$ = 8 -cur$ = 36 -limit$ = 68 -old_limit$ = 100 -z$ = 352 -zout$ = 360 -n$ = 368 -stbi__zexpand PROC ; COMDAT - -; 4808 : { - - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec 68 01 - 00 00 sub rsp, 360 ; 00000168H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 90 npad 1 - -; 4809 : char *q; -; 4810 : unsigned int cur, limit, old_limit; -; 4811 : z->zout = zout; - - 0002a 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00031 48 8b 8d 68 01 - 00 00 mov rcx, QWORD PTR zout$[rbp] - 00038 48 89 48 20 mov QWORD PTR [rax+32], rcx - -; 4812 : if (!z->z_expandable) - - 0003c 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00043 83 78 38 00 cmp DWORD PTR [rax+56], 0 - 00047 75 11 jne SHORT $LN4@stbi__zexp - -; 4813 : return stbi__err("output buffer limit", "Corrupt PNG"); - - 00049 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BE@IBFIPFO@output?5buffer?5limit@ - 00050 e8 00 00 00 00 call stbi__err - 00055 e9 05 01 00 00 jmp $LN1@stbi__zexp -$LN4@stbi__zexp: - -; 4814 : cur = (unsigned int)(z->zout - z->zout_start); - - 0005a 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00061 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00068 48 8b 49 28 mov rcx, QWORD PTR [rcx+40] - 0006c 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 00070 48 2b c1 sub rax, rcx - 00073 89 45 24 mov DWORD PTR cur$[rbp], eax - -; 4815 : limit = old_limit = (unsigned)(z->zout_end - z->zout_start); - - 00076 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 0007d 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00084 48 8b 49 28 mov rcx, QWORD PTR [rcx+40] - 00088 48 8b 40 30 mov rax, QWORD PTR [rax+48] - 0008c 48 2b c1 sub rax, rcx - 0008f 89 45 64 mov DWORD PTR old_limit$[rbp], eax - 00092 8b 45 64 mov eax, DWORD PTR old_limit$[rbp] - 00095 89 45 44 mov DWORD PTR limit$[rbp], eax - -; 4816 : if (UINT_MAX - cur < (unsigned)n) - - 00098 b8 ff ff ff ff mov eax, -1 ; ffffffffH - 0009d 2b 45 24 sub eax, DWORD PTR cur$[rbp] - 000a0 3b 85 70 01 00 - 00 cmp eax, DWORD PTR n$[rbp] - 000a6 73 11 jae SHORT $LN5@stbi__zexp - -; 4817 : return stbi__err("outofmem", "Out of memory"); - - 000a8 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 000af e8 00 00 00 00 call stbi__err - 000b4 e9 a6 00 00 00 jmp $LN1@stbi__zexp -$LN5@stbi__zexp: -$LN2@stbi__zexp: - -; 4818 : while (cur + n > limit) { - - 000b9 8b 85 70 01 00 - 00 mov eax, DWORD PTR n$[rbp] - 000bf 8b 4d 24 mov ecx, DWORD PTR cur$[rbp] - 000c2 03 c8 add ecx, eax - 000c4 8b c1 mov eax, ecx - 000c6 3b 45 44 cmp eax, DWORD PTR limit$[rbp] - 000c9 76 21 jbe SHORT $LN3@stbi__zexp - -; 4819 : if (limit > UINT_MAX / 2) - - 000cb 81 7d 44 ff ff - ff 7f cmp DWORD PTR limit$[rbp], 2147483647 ; 7fffffffH - 000d2 76 0e jbe SHORT $LN6@stbi__zexp - -; 4820 : return stbi__err("outofmem", "Out of memory"); - - 000d4 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 000db e8 00 00 00 00 call stbi__err - 000e0 eb 7d jmp SHORT $LN1@stbi__zexp -$LN6@stbi__zexp: - -; 4821 : limit *= 2; - - 000e2 8b 45 44 mov eax, DWORD PTR limit$[rbp] - 000e5 d1 e0 shl eax, 1 - 000e7 89 45 44 mov DWORD PTR limit$[rbp], eax - -; 4822 : } - - 000ea eb cd jmp SHORT $LN2@stbi__zexp -$LN3@stbi__zexp: - -; 4823 : q = (char *)STBI_REALLOC_SIZED(z->zout_start, old_limit, limit); - - 000ec 8b 45 44 mov eax, DWORD PTR limit$[rbp] - 000ef 8b d0 mov edx, eax - 000f1 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 000f8 48 8b 48 28 mov rcx, QWORD PTR [rax+40] - 000fc ff 15 00 00 00 - 00 call QWORD PTR __imp_realloc - 00102 48 89 45 08 mov QWORD PTR q$[rbp], rax - -; 4824 : STBI_NOTUSED(old_limit); -; 4825 : if (q == NULL) - - 00106 48 83 7d 08 00 cmp QWORD PTR q$[rbp], 0 - 0010b 75 0e jne SHORT $LN7@stbi__zexp - -; 4826 : return stbi__err("outofmem", "Out of memory"); - - 0010d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 00114 e8 00 00 00 00 call stbi__err - 00119 eb 44 jmp SHORT $LN1@stbi__zexp -$LN7@stbi__zexp: - -; 4827 : z->zout_start = q; - - 0011b 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00122 48 8b 4d 08 mov rcx, QWORD PTR q$[rbp] - 00126 48 89 48 28 mov QWORD PTR [rax+40], rcx - -; 4828 : z->zout = q + cur; - - 0012a 8b 45 24 mov eax, DWORD PTR cur$[rbp] - 0012d 48 8b 4d 08 mov rcx, QWORD PTR q$[rbp] - 00131 48 03 c8 add rcx, rax - 00134 48 8b c1 mov rax, rcx - 00137 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0013e 48 89 41 20 mov QWORD PTR [rcx+32], rax - -; 4829 : z->zout_end = q + limit; - - 00142 8b 45 44 mov eax, DWORD PTR limit$[rbp] - 00145 48 8b 4d 08 mov rcx, QWORD PTR q$[rbp] - 00149 48 03 c8 add rcx, rax - 0014c 48 8b c1 mov rax, rcx - 0014f 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00156 48 89 41 30 mov QWORD PTR [rcx+48], rax - -; 4830 : return 1; - - 0015a b8 01 00 00 00 mov eax, 1 -$LN1@stbi__zexp: - -; 4831 : } - - 0015f 48 8d a5 48 01 - 00 00 lea rsp, QWORD PTR [rbp+328] - 00166 5f pop rdi - 00167 5d pop rbp - 00168 c3 ret 0 -stbi__zexpand ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__zhuffman_decode -_TEXT SEGMENT -b$ = 4 -s$ = 36 -tv145 = 248 -a$ = 288 -z$ = 296 -stbi__zhuffman_decode PROC ; COMDAT - -; 4778 : { - - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 - -; 4779 : int b, s; -; 4780 : if (a->num_bits < 16) { - - 00025 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 0002c 83 78 10 10 cmp DWORD PTR [rax+16], 16 - 00030 7d 5d jge SHORT $LN2@stbi__zhuf - -; 4781 : if (stbi__zeof(a)) { - - 00032 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00039 e8 00 00 00 00 call stbi__zeof - 0003e 85 c0 test eax, eax - 00040 74 40 je SHORT $LN3@stbi__zhuf - -; 4782 : if (!a->hit_zeof_once) { - - 00042 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 00049 83 78 14 00 cmp DWORD PTR [rax+20], 0 - 0004d 75 27 jne SHORT $LN5@stbi__zhuf - -; 4783 : // This is the first time we hit eof, insert 16 extra padding btis -; 4784 : // to allow us to keep going; if we actually consume any of them -; 4785 : // though, that is invalid data. This is caught later. -; 4786 : a->hit_zeof_once = 1; - - 0004f 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 00056 c7 40 14 01 00 - 00 00 mov DWORD PTR [rax+20], 1 - -; 4787 : a->num_bits += 16; // add 16 implicit zero bits - - 0005d 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 00064 8b 40 10 mov eax, DWORD PTR [rax+16] - 00067 83 c0 10 add eax, 16 - 0006a 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00071 89 41 10 mov DWORD PTR [rcx+16], eax - -; 4788 : } else { - - 00074 eb 0a jmp SHORT $LN6@stbi__zhuf -$LN5@stbi__zhuf: - -; 4789 : // We already inserted our extra 16 padding bits and are again -; 4790 : // out, this stream is actually prematurely terminated. -; 4791 : return -1; - - 00076 b8 ff ff ff ff mov eax, -1 - 0007b e9 9d 00 00 00 jmp $LN1@stbi__zhuf -$LN6@stbi__zhuf: - -; 4792 : } -; 4793 : } else { - - 00080 eb 0d jmp SHORT $LN4@stbi__zhuf -$LN3@stbi__zhuf: - -; 4794 : stbi__fill_bits(a); - - 00082 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00089 e8 00 00 00 00 call stbi__fill_bits - 0008e 90 npad 1 -$LN4@stbi__zhuf: -$LN2@stbi__zhuf: - -; 4795 : } -; 4796 : } -; 4797 : b = z->fast[a->code_buffer & STBI__ZFAST_MASK]; - - 0008f 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 00096 8b 40 18 mov eax, DWORD PTR [rax+24] - 00099 25 ff 01 00 00 and eax, 511 ; 000001ffH - 0009e 8b c0 mov eax, eax - 000a0 48 8b 8d 28 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 000a7 0f b7 04 41 movzx eax, WORD PTR [rcx+rax*2] - 000ab 89 45 04 mov DWORD PTR b$[rbp], eax - -; 4798 : if (b) { - - 000ae 83 7d 04 00 cmp DWORD PTR b$[rbp], 0 - 000b2 74 56 je SHORT $LN7@stbi__zhuf - -; 4799 : s = b >> 9; - - 000b4 8b 45 04 mov eax, DWORD PTR b$[rbp] - 000b7 c1 f8 09 sar eax, 9 - 000ba 89 45 24 mov DWORD PTR s$[rbp], eax - -; 4800 : a->code_buffer >>= s; - - 000bd 8b 45 24 mov eax, DWORD PTR s$[rbp] - 000c0 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 000c7 48 89 8d f8 00 - 00 00 mov QWORD PTR tv145[rbp], rcx - 000ce 0f b6 c8 movzx ecx, al - 000d1 48 8b 85 f8 00 - 00 00 mov rax, QWORD PTR tv145[rbp] - 000d8 8b 40 18 mov eax, DWORD PTR [rax+24] - 000db d3 e8 shr eax, cl - 000dd 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 000e4 89 41 18 mov DWORD PTR [rcx+24], eax - -; 4801 : a->num_bits -= s; - - 000e7 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 000ee 8b 4d 24 mov ecx, DWORD PTR s$[rbp] - 000f1 8b 40 10 mov eax, DWORD PTR [rax+16] - 000f4 2b c1 sub eax, ecx - 000f6 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 000fd 89 41 10 mov DWORD PTR [rcx+16], eax - -; 4802 : return b & 511; - - 00100 8b 45 04 mov eax, DWORD PTR b$[rbp] - 00103 25 ff 01 00 00 and eax, 511 ; 000001ffH - 00108 eb 13 jmp SHORT $LN1@stbi__zhuf -$LN7@stbi__zhuf: - -; 4803 : } -; 4804 : return stbi__zhuffman_decode_slowpath(a, z); - - 0010a 48 8b 95 28 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 00111 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00118 e8 00 00 00 00 call stbi__zhuffman_decode_slowpath -$LN1@stbi__zhuf: - -; 4805 : } - - 0011d 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 00124 5f pop rdi - 00125 5d pop rbp - 00126 c3 ret 0 -stbi__zhuffman_decode ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__zhuffman_decode_slowpath -_TEXT SEGMENT -b$ = 4 -s$ = 36 -k$ = 68 -tv159 = 280 -a$ = 320 -z$ = 328 -stbi__zhuffman_decode_slowpath PROC ; COMDAT - -; 4756 : { - - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 - -; 4757 : int b, s, k; -; 4758 : // not resolved by fast table, so compute it the slow way -; 4759 : // use jpeg approach, which requires MSbits at top -; 4760 : k = stbi__bit_reverse(a->code_buffer, 16); - - 00025 ba 10 00 00 00 mov edx, 16 - 0002a 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 00031 8b 48 18 mov ecx, DWORD PTR [rax+24] - 00034 e8 00 00 00 00 call stbi__bit_reverse - 00039 89 45 44 mov DWORD PTR k$[rbp], eax - -; 4761 : for (s = STBI__ZFAST_BITS + 1;; ++s) - - 0003c c7 45 24 0a 00 - 00 00 mov DWORD PTR s$[rbp], 10 - 00043 eb 08 jmp SHORT $LN4@stbi__zhuf -$LN2@stbi__zhuf: - 00045 8b 45 24 mov eax, DWORD PTR s$[rbp] - 00048 ff c0 inc eax - 0004a 89 45 24 mov DWORD PTR s$[rbp], eax -$LN4@stbi__zhuf: - -; 4762 : if (k < z->maxcode[s]) - - 0004d 48 63 45 24 movsxd rax, DWORD PTR s$[rbp] - 00051 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00058 8b 84 81 20 04 - 00 00 mov eax, DWORD PTR [rcx+rax*4+1056] - 0005f 39 45 44 cmp DWORD PTR k$[rbp], eax - 00062 7d 02 jge SHORT $LN5@stbi__zhuf - -; 4763 : break; - - 00064 eb 02 jmp SHORT $LN3@stbi__zhuf -$LN5@stbi__zhuf: - 00066 eb dd jmp SHORT $LN2@stbi__zhuf -$LN3@stbi__zhuf: - -; 4764 : if (s >= 16) - - 00068 83 7d 24 10 cmp DWORD PTR s$[rbp], 16 - 0006c 7c 0a jl SHORT $LN6@stbi__zhuf - -; 4765 : return -1; // invalid code! - - 0006e b8 ff ff ff ff mov eax, -1 - 00073 e9 c2 00 00 00 jmp $LN1@stbi__zhuf -$LN6@stbi__zhuf: - -; 4766 : // code size is s, so: -; 4767 : b = (k >> (16 - s)) - z->firstcode[s] + z->firstsymbol[s]; - - 00078 b8 10 00 00 00 mov eax, 16 - 0007d 2b 45 24 sub eax, DWORD PTR s$[rbp] - 00080 0f b6 c8 movzx ecx, al - 00083 8b 45 44 mov eax, DWORD PTR k$[rbp] - 00086 d3 f8 sar eax, cl - 00088 48 63 4d 24 movsxd rcx, DWORD PTR s$[rbp] - 0008c 48 8b 95 48 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 00093 0f b7 8c 4a 00 - 04 00 00 movzx ecx, WORD PTR [rdx+rcx*2+1024] - 0009b 2b c1 sub eax, ecx - 0009d 48 63 4d 24 movsxd rcx, DWORD PTR s$[rbp] - 000a1 48 8b 95 48 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 000a8 0f b7 8c 4a 64 - 04 00 00 movzx ecx, WORD PTR [rdx+rcx*2+1124] - 000b0 03 c1 add eax, ecx - 000b2 89 45 04 mov DWORD PTR b$[rbp], eax - -; 4768 : if (b >= STBI__ZNSYMS) - - 000b5 81 7d 04 20 01 - 00 00 cmp DWORD PTR b$[rbp], 288 ; 00000120H - 000bc 7c 07 jl SHORT $LN7@stbi__zhuf - -; 4769 : return -1; // some data was corrupt somewhere! - - 000be b8 ff ff ff ff mov eax, -1 - 000c3 eb 75 jmp SHORT $LN1@stbi__zhuf -$LN7@stbi__zhuf: - -; 4770 : if (z->size[b] != s) - - 000c5 48 63 45 04 movsxd rax, DWORD PTR b$[rbp] - 000c9 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 000d0 0f b6 84 01 84 - 04 00 00 movzx eax, BYTE PTR [rcx+rax+1156] - 000d8 3b 45 24 cmp eax, DWORD PTR s$[rbp] - 000db 74 07 je SHORT $LN8@stbi__zhuf - -; 4771 : return -1; // was originally an assert, but report failure instead. - - 000dd b8 ff ff ff ff mov eax, -1 - 000e2 eb 56 jmp SHORT $LN1@stbi__zhuf -$LN8@stbi__zhuf: - -; 4772 : a->code_buffer >>= s; - - 000e4 8b 45 24 mov eax, DWORD PTR s$[rbp] - 000e7 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 000ee 48 89 8d 18 01 - 00 00 mov QWORD PTR tv159[rbp], rcx - 000f5 0f b6 c8 movzx ecx, al - 000f8 48 8b 85 18 01 - 00 00 mov rax, QWORD PTR tv159[rbp] - 000ff 8b 40 18 mov eax, DWORD PTR [rax+24] - 00102 d3 e8 shr eax, cl - 00104 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 0010b 89 41 18 mov DWORD PTR [rcx+24], eax - -; 4773 : a->num_bits -= s; - - 0010e 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR a$[rbp] - 00115 8b 4d 24 mov ecx, DWORD PTR s$[rbp] - 00118 8b 40 10 mov eax, DWORD PTR [rax+16] - 0011b 2b c1 sub eax, ecx - 0011d 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR a$[rbp] - 00124 89 41 10 mov DWORD PTR [rcx+16], eax - -; 4774 : return z->value[b]; - - 00127 48 63 45 04 movsxd rax, DWORD PTR b$[rbp] - 0012b 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00132 0f b7 84 41 a4 - 05 00 00 movzx eax, WORD PTR [rcx+rax*2+1444] -$LN1@stbi__zhuf: - -; 4775 : } - - 0013a 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 00141 5f pop rdi - 00142 5d pop rbp - 00143 c3 ret 0 -stbi__zhuffman_decode_slowpath ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__zreceive -_TEXT SEGMENT -k$ = 4 -tv84 = 212 -tv90 = 216 -z$ = 256 -n$ = 264 -stbi__zreceive PROC ; COMDAT - -; 4745 : { - - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00023 90 npad 1 - -; 4746 : unsigned int k; -; 4747 : if (z->num_bits < n) - - 00024 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 0002b 8b 8d 08 01 00 - 00 mov ecx, DWORD PTR n$[rbp] - 00031 39 48 10 cmp DWORD PTR [rax+16], ecx - 00034 7d 0d jge SHORT $LN2@stbi__zrec - -; 4748 : stbi__fill_bits(z); - - 00036 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0003d e8 00 00 00 00 call stbi__fill_bits - 00042 90 npad 1 -$LN2@stbi__zrec: - -; 4749 : k = z->code_buffer & ((1 << n) - 1); - - 00043 8b 85 08 01 00 - 00 mov eax, DWORD PTR n$[rbp] - 00049 b9 01 00 00 00 mov ecx, 1 - 0004e 89 8d d4 00 00 - 00 mov DWORD PTR tv84[rbp], ecx - 00054 0f b6 c8 movzx ecx, al - 00057 8b 85 d4 00 00 - 00 mov eax, DWORD PTR tv84[rbp] - 0005d d3 e0 shl eax, cl - 0005f ff c8 dec eax - 00061 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00068 8b 49 18 mov ecx, DWORD PTR [rcx+24] - 0006b 23 c8 and ecx, eax - 0006d 8b c1 mov eax, ecx - 0006f 89 45 04 mov DWORD PTR k$[rbp], eax - -; 4750 : z->code_buffer >>= n; - - 00072 8b 85 08 01 00 - 00 mov eax, DWORD PTR n$[rbp] - 00078 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0007f 48 89 8d d8 00 - 00 00 mov QWORD PTR tv90[rbp], rcx - 00086 0f b6 c8 movzx ecx, al - 00089 48 8b 85 d8 00 - 00 00 mov rax, QWORD PTR tv90[rbp] - 00090 8b 40 18 mov eax, DWORD PTR [rax+24] - 00093 d3 e8 shr eax, cl - 00095 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0009c 89 41 18 mov DWORD PTR [rcx+24], eax - -; 4751 : z->num_bits -= n; - - 0009f 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 000a6 8b 8d 08 01 00 - 00 mov ecx, DWORD PTR n$[rbp] - 000ac 8b 40 10 mov eax, DWORD PTR [rax+16] - 000af 2b c1 sub eax, ecx - 000b1 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 000b8 89 41 10 mov DWORD PTR [rcx+16], eax - -; 4752 : return k; - - 000bb 8b 45 04 mov eax, DWORD PTR k$[rbp] - -; 4753 : } - - 000be 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 -stbi__zreceive ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__fill_bits -_TEXT SEGMENT -tv92 = 192 -z$ = 240 -stbi__fill_bits PROC ; COMDAT - -; 4733 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 -$LN4@stbi__fill: - -; 4734 : do { -; 4735 : if (z->code_buffer >= (1U << z->num_bits)) { - - 00020 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR z$[rbp] - 00027 8b 40 10 mov eax, DWORD PTR [rax+16] - 0002a b9 01 00 00 00 mov ecx, 1 - 0002f 89 8d c0 00 00 - 00 mov DWORD PTR tv92[rbp], ecx - 00035 0f b6 c8 movzx ecx, al - 00038 8b 85 c0 00 00 - 00 mov eax, DWORD PTR tv92[rbp] - 0003e d3 e0 shl eax, cl - 00040 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00047 39 41 18 cmp DWORD PTR [rcx+24], eax - 0004a 72 17 jb SHORT $LN5@stbi__fill - -; 4736 : z->zbuffer = z->zbuffer_end; /* treat this as EOF so we fail. */ - - 0004c 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR z$[rbp] - 00053 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0005a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 0005e 48 89 08 mov QWORD PTR [rax], rcx - -; 4737 : return; - - 00061 eb 5b jmp SHORT $LN1@stbi__fill -$LN5@stbi__fill: - -; 4738 : } -; 4739 : z->code_buffer |= (unsigned int)stbi__zget8(z) << z->num_bits; - - 00063 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0006a e8 00 00 00 00 call stbi__zget8 - 0006f 0f b6 c0 movzx eax, al - 00072 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00079 8b 49 10 mov ecx, DWORD PTR [rcx+16] - 0007c d3 e0 shl eax, cl - 0007e 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00085 8b 49 18 mov ecx, DWORD PTR [rcx+24] - 00088 0b c8 or ecx, eax - 0008a 8b c1 mov eax, ecx - 0008c 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00093 89 41 18 mov DWORD PTR [rcx+24], eax - -; 4740 : z->num_bits += 8; - - 00096 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR z$[rbp] - 0009d 8b 40 10 mov eax, DWORD PTR [rax+16] - 000a0 83 c0 08 add eax, 8 - 000a3 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR z$[rbp] - 000aa 89 41 10 mov DWORD PTR [rcx+16], eax - -; 4741 : } while (z->num_bits <= 24); - - 000ad 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR z$[rbp] - 000b4 83 78 10 18 cmp DWORD PTR [rax+16], 24 - 000b8 0f 8e 62 ff ff - ff jle $LN4@stbi__fill -$LN1@stbi__fill: - -; 4742 : } - - 000be 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 -stbi__fill_bits ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__zget8 -_TEXT SEGMENT -tv73 = 192 -z$ = 240 -stbi__zget8 PROC ; COMDAT - -; 4728 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 4729 : return stbi__zeof(z) ? 0 : *z->zbuffer++; - - 00020 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00027 e8 00 00 00 00 call stbi__zeof - 0002c 85 c0 test eax, eax - 0002e 74 0c je SHORT $LN3@stbi__zget - 00030 c7 85 c0 00 00 - 00 00 00 00 00 mov DWORD PTR tv73[rbp], 0 - 0003a eb 2a jmp SHORT $LN4@stbi__zget -$LN3@stbi__zget: - 0003c 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR z$[rbp] - 00043 48 8b 00 mov rax, QWORD PTR [rax] - 00046 0f b6 00 movzx eax, BYTE PTR [rax] - 00049 89 85 c0 00 00 - 00 mov DWORD PTR tv73[rbp], eax - 0004f 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR z$[rbp] - 00056 48 8b 00 mov rax, QWORD PTR [rax] - 00059 48 ff c0 inc rax - 0005c 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00063 48 89 01 mov QWORD PTR [rcx], rax -$LN4@stbi__zget: - 00066 0f b6 85 c0 00 - 00 00 movzx eax, BYTE PTR tv73[rbp] - -; 4730 : } - - 0006d 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 00074 5f pop rdi - 00075 5d pop rbp - 00076 c3 ret 0 -stbi__zget8 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__zeof -_TEXT SEGMENT -tv67 = 192 -z$ = 240 -stbi__zeof PROC ; COMDAT - -; 4723 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 4724 : return (z->zbuffer >= z->zbuffer_end); - - 00020 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR z$[rbp] - 00027 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0002e 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00032 48 39 08 cmp QWORD PTR [rax], rcx - 00035 72 0c jb SHORT $LN3@stbi__zeof - 00037 c7 85 c0 00 00 - 00 01 00 00 00 mov DWORD PTR tv67[rbp], 1 - 00041 eb 0a jmp SHORT $LN4@stbi__zeof -$LN3@stbi__zeof: - 00043 c7 85 c0 00 00 - 00 00 00 00 00 mov DWORD PTR tv67[rbp], 0 -$LN4@stbi__zeof: - 0004d 8b 85 c0 00 00 - 00 mov eax, DWORD PTR tv67[rbp] - -; 4725 : } - - 00053 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 0005a 5f pop rdi - 0005b 5d pop rbp - 0005c c3 ret 0 -stbi__zeof ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__zbuild_huffman -_TEXT SEGMENT -i$ = 4 -k$ = 36 -code$ = 68 -next_code$ = 112 -sizes$ = 208 -s$5 = 308 -c$6 = 340 -fastv$7 = 372 -j$8 = 404 -tv289 = 612 -__$ArrayPad$ = 616 -z$ = 656 -sizelist$ = 664 -num$ = 672 -stbi__zbuild_huffman PROC ; COMDAT - -; 4655 : { - - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec 98 02 - 00 00 sub rsp, 664 ; 00000298H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00022 b9 6e 00 00 00 mov ecx, 110 ; 0000006eH - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 b8 - 02 00 00 mov rcx, QWORD PTR [rsp+696] - 00036 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 68 02 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00053 90 npad 1 - -; 4656 : int i, k = 0; - - 00054 c7 45 24 00 00 - 00 00 mov DWORD PTR k$[rbp], 0 - -; 4657 : int code, next_code[16], sizes[17]; -; 4658 : -; 4659 : // DEFLATE spec for generating codes -; 4660 : memset(sizes, 0, sizeof(sizes)); - - 0005b 41 b8 44 00 00 - 00 mov r8d, 68 ; 00000044H - 00061 33 d2 xor edx, edx - 00063 48 8d 8d d0 00 - 00 00 lea rcx, QWORD PTR sizes$[rbp] - 0006a e8 00 00 00 00 call memset - 0006f 90 npad 1 - -; 4661 : memset(z->fast, 0, sizeof(z->fast)); - - 00070 48 8b 85 90 02 - 00 00 mov rax, QWORD PTR z$[rbp] - 00077 41 b8 00 04 00 - 00 mov r8d, 1024 ; 00000400H - 0007d 33 d2 xor edx, edx - 0007f 48 8b c8 mov rcx, rax - 00082 e8 00 00 00 00 call memset - 00087 90 npad 1 - -; 4662 : for (i = 0; i < num; ++i) - - 00088 c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 0008f eb 08 jmp SHORT $LN4@stbi__zbui -$LN2@stbi__zbui: - 00091 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00094 ff c0 inc eax - 00096 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__zbui: - 00099 8b 85 a0 02 00 - 00 mov eax, DWORD PTR num$[rbp] - 0009f 39 45 04 cmp DWORD PTR i$[rbp], eax - 000a2 7d 30 jge SHORT $LN3@stbi__zbui - -; 4663 : ++sizes[sizelist[i]]; - - 000a4 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 000a8 48 8b 8d 98 02 - 00 00 mov rcx, QWORD PTR sizelist$[rbp] - 000af 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 000b3 8b 84 85 d0 00 - 00 00 mov eax, DWORD PTR sizes$[rbp+rax*4] - 000ba ff c0 inc eax - 000bc 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] - 000c0 48 8b 95 98 02 - 00 00 mov rdx, QWORD PTR sizelist$[rbp] - 000c7 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 000cb 89 84 8d d0 00 - 00 00 mov DWORD PTR sizes$[rbp+rcx*4], eax - 000d2 eb bd jmp SHORT $LN2@stbi__zbui -$LN3@stbi__zbui: - -; 4664 : sizes[0] = 0; - - 000d4 b8 04 00 00 00 mov eax, 4 - 000d9 48 6b c0 00 imul rax, rax, 0 - 000dd c7 84 05 d0 00 - 00 00 00 00 00 - 00 mov DWORD PTR sizes$[rbp+rax], 0 - -; 4665 : for (i = 1; i < 16; ++i) - - 000e8 c7 45 04 01 00 - 00 00 mov DWORD PTR i$[rbp], 1 - 000ef eb 08 jmp SHORT $LN7@stbi__zbui -$LN5@stbi__zbui: - 000f1 8b 45 04 mov eax, DWORD PTR i$[rbp] - 000f4 ff c0 inc eax - 000f6 89 45 04 mov DWORD PTR i$[rbp], eax -$LN7@stbi__zbui: - 000f9 83 7d 04 10 cmp DWORD PTR i$[rbp], 16 - 000fd 7d 2c jge SHORT $LN6@stbi__zbui - -; 4666 : if (sizes[i] > (1 << i)) - - 000ff 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00103 8b 4d 04 mov ecx, DWORD PTR i$[rbp] - 00106 ba 01 00 00 00 mov edx, 1 - 0010b d3 e2 shl edx, cl - 0010d 8b ca mov ecx, edx - 0010f 39 8c 85 d0 00 - 00 00 cmp DWORD PTR sizes$[rbp+rax*4], ecx - 00116 7e 11 jle SHORT $LN16@stbi__zbui - -; 4667 : return stbi__err("bad sizes", "Corrupt PNG"); - - 00118 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09EOHLEIKL@bad?5sizes@ - 0011f e8 00 00 00 00 call stbi__err - 00124 e9 6b 02 00 00 jmp $LN1@stbi__zbui -$LN16@stbi__zbui: - 00129 eb c6 jmp SHORT $LN5@stbi__zbui -$LN6@stbi__zbui: - -; 4668 : code = 0; - - 0012b c7 45 44 00 00 - 00 00 mov DWORD PTR code$[rbp], 0 - -; 4669 : for (i = 1; i < 16; ++i) { - - 00132 c7 45 04 01 00 - 00 00 mov DWORD PTR i$[rbp], 1 - 00139 eb 08 jmp SHORT $LN10@stbi__zbui -$LN8@stbi__zbui: - 0013b 8b 45 04 mov eax, DWORD PTR i$[rbp] - 0013e ff c0 inc eax - 00140 89 45 04 mov DWORD PTR i$[rbp], eax -$LN10@stbi__zbui: - 00143 83 7d 04 10 cmp DWORD PTR i$[rbp], 16 - 00147 0f 8d c6 00 00 - 00 jge $LN9@stbi__zbui - -; 4670 : next_code[i] = code; - - 0014d 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00151 8b 4d 44 mov ecx, DWORD PTR code$[rbp] - 00154 89 4c 85 70 mov DWORD PTR next_code$[rbp+rax*4], ecx - -; 4671 : z->firstcode[i] = (stbi__uint16)code; - - 00158 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 0015c 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00163 0f b7 55 44 movzx edx, WORD PTR code$[rbp] - 00167 66 89 94 41 00 - 04 00 00 mov WORD PTR [rcx+rax*2+1024], dx - -; 4672 : z->firstsymbol[i] = (stbi__uint16)k; - - 0016f 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00173 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0017a 0f b7 55 24 movzx edx, WORD PTR k$[rbp] - 0017e 66 89 94 41 64 - 04 00 00 mov WORD PTR [rcx+rax*2+1124], dx - -; 4673 : code = (code + sizes[i]); - - 00186 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 0018a 8b 84 85 d0 00 - 00 00 mov eax, DWORD PTR sizes$[rbp+rax*4] - 00191 8b 4d 44 mov ecx, DWORD PTR code$[rbp] - 00194 03 c8 add ecx, eax - 00196 8b c1 mov eax, ecx - 00198 89 45 44 mov DWORD PTR code$[rbp], eax - -; 4674 : if (sizes[i]) - - 0019b 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 0019f 83 bc 85 d0 00 - 00 00 00 cmp DWORD PTR sizes$[rbp+rax*4], 0 - 001a7 74 26 je SHORT $LN17@stbi__zbui - -; 4675 : if (code - 1 >= (1 << i)) - - 001a9 8b 45 44 mov eax, DWORD PTR code$[rbp] - 001ac ff c8 dec eax - 001ae 8b 4d 04 mov ecx, DWORD PTR i$[rbp] - 001b1 ba 01 00 00 00 mov edx, 1 - 001b6 d3 e2 shl edx, cl - 001b8 8b ca mov ecx, edx - 001ba 3b c1 cmp eax, ecx - 001bc 7c 11 jl SHORT $LN18@stbi__zbui - -; 4676 : return stbi__err("bad codelengths", "Corrupt PNG"); - - 001be 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@MDNKOBMC@bad?5codelengths@ - 001c5 e8 00 00 00 00 call stbi__err - 001ca e9 c5 01 00 00 jmp $LN1@stbi__zbui -$LN18@stbi__zbui: -$LN17@stbi__zbui: - -; 4677 : z->maxcode[i] = code << (16 - i); // preshift for inner loop - - 001cf b8 10 00 00 00 mov eax, 16 - 001d4 2b 45 04 sub eax, DWORD PTR i$[rbp] - 001d7 0f b6 c8 movzx ecx, al - 001da 8b 45 44 mov eax, DWORD PTR code$[rbp] - 001dd d3 e0 shl eax, cl - 001df 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] - 001e3 48 8b 95 90 02 - 00 00 mov rdx, QWORD PTR z$[rbp] - 001ea 89 84 8a 20 04 - 00 00 mov DWORD PTR [rdx+rcx*4+1056], eax - -; 4678 : code <<= 1; - - 001f1 8b 45 44 mov eax, DWORD PTR code$[rbp] - 001f4 d1 e0 shl eax, 1 - 001f6 89 45 44 mov DWORD PTR code$[rbp], eax - -; 4679 : k += sizes[i]; - - 001f9 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 001fd 8b 84 85 d0 00 - 00 00 mov eax, DWORD PTR sizes$[rbp+rax*4] - 00204 8b 4d 24 mov ecx, DWORD PTR k$[rbp] - 00207 03 c8 add ecx, eax - 00209 8b c1 mov eax, ecx - 0020b 89 45 24 mov DWORD PTR k$[rbp], eax - -; 4680 : } - - 0020e e9 28 ff ff ff jmp $LN8@stbi__zbui -$LN9@stbi__zbui: - -; 4681 : z->maxcode[16] = 0x10000; // sentinel - - 00213 b8 04 00 00 00 mov eax, 4 - 00218 48 6b c0 10 imul rax, rax, 16 - 0021c 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00223 c7 84 01 20 04 - 00 00 00 00 01 - 00 mov DWORD PTR [rcx+rax+1056], 65536 ; 00010000H - -; 4682 : for (i = 0; i < num; ++i) { - - 0022e c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00235 eb 08 jmp SHORT $LN13@stbi__zbui -$LN11@stbi__zbui: - 00237 8b 45 04 mov eax, DWORD PTR i$[rbp] - 0023a ff c0 inc eax - 0023c 89 45 04 mov DWORD PTR i$[rbp], eax -$LN13@stbi__zbui: - 0023f 8b 85 a0 02 00 - 00 mov eax, DWORD PTR num$[rbp] - 00245 39 45 04 cmp DWORD PTR i$[rbp], eax - 00248 0f 8d 41 01 00 - 00 jge $LN12@stbi__zbui - -; 4683 : int s = sizelist[i]; - - 0024e 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00252 48 8b 8d 98 02 - 00 00 mov rcx, QWORD PTR sizelist$[rbp] - 00259 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0025d 89 85 34 01 00 - 00 mov DWORD PTR s$5[rbp], eax - -; 4684 : if (s) { - - 00263 83 bd 34 01 00 - 00 00 cmp DWORD PTR s$5[rbp], 0 - 0026a 0f 84 1a 01 00 - 00 je $LN19@stbi__zbui - -; 4685 : int c = next_code[s] - z->firstcode[s] + z->firstsymbol[s]; - - 00270 48 63 85 34 01 - 00 00 movsxd rax, DWORD PTR s$5[rbp] - 00277 48 63 8d 34 01 - 00 00 movsxd rcx, DWORD PTR s$5[rbp] - 0027e 48 8b 95 90 02 - 00 00 mov rdx, QWORD PTR z$[rbp] - 00285 0f b7 8c 4a 00 - 04 00 00 movzx ecx, WORD PTR [rdx+rcx*2+1024] - 0028d 8b 44 85 70 mov eax, DWORD PTR next_code$[rbp+rax*4] - 00291 2b c1 sub eax, ecx - 00293 48 63 8d 34 01 - 00 00 movsxd rcx, DWORD PTR s$5[rbp] - 0029a 48 8b 95 90 02 - 00 00 mov rdx, QWORD PTR z$[rbp] - 002a1 0f b7 8c 4a 64 - 04 00 00 movzx ecx, WORD PTR [rdx+rcx*2+1124] - 002a9 03 c1 add eax, ecx - 002ab 89 85 54 01 00 - 00 mov DWORD PTR c$6[rbp], eax - -; 4686 : stbi__uint16 fastv = (stbi__uint16)((s << 9) | i); - - 002b1 8b 85 34 01 00 - 00 mov eax, DWORD PTR s$5[rbp] - 002b7 c1 e0 09 shl eax, 9 - 002ba 0b 45 04 or eax, DWORD PTR i$[rbp] - 002bd 66 89 85 74 01 - 00 00 mov WORD PTR fastv$7[rbp], ax - -; 4687 : z->size[c] = (stbi_uc)s; - - 002c4 48 63 85 54 01 - 00 00 movsxd rax, DWORD PTR c$6[rbp] - 002cb 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR z$[rbp] - 002d2 0f b6 95 34 01 - 00 00 movzx edx, BYTE PTR s$5[rbp] - 002d9 88 94 01 84 04 - 00 00 mov BYTE PTR [rcx+rax+1156], dl - -; 4688 : z->value[c] = (stbi__uint16)i; - - 002e0 48 63 85 54 01 - 00 00 movsxd rax, DWORD PTR c$6[rbp] - 002e7 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR z$[rbp] - 002ee 0f b7 55 04 movzx edx, WORD PTR i$[rbp] - 002f2 66 89 94 41 a4 - 05 00 00 mov WORD PTR [rcx+rax*2+1444], dx - -; 4689 : if (s <= STBI__ZFAST_BITS) { - - 002fa 83 bd 34 01 00 - 00 09 cmp DWORD PTR s$5[rbp], 9 - 00301 7f 6f jg SHORT $LN20@stbi__zbui - -; 4690 : int j = stbi__bit_reverse(next_code[s], s); - - 00303 48 63 85 34 01 - 00 00 movsxd rax, DWORD PTR s$5[rbp] - 0030a 8b 95 34 01 00 - 00 mov edx, DWORD PTR s$5[rbp] - 00310 8b 4c 85 70 mov ecx, DWORD PTR next_code$[rbp+rax*4] - 00314 e8 00 00 00 00 call stbi__bit_reverse - 00319 89 85 94 01 00 - 00 mov DWORD PTR j$8[rbp], eax -$LN14@stbi__zbui: - -; 4691 : while (j < (1 << STBI__ZFAST_BITS)) { - - 0031f 81 bd 94 01 00 - 00 00 02 00 00 cmp DWORD PTR j$8[rbp], 512 ; 00000200H - 00329 7d 47 jge SHORT $LN15@stbi__zbui - -; 4692 : z->fast[j] = fastv; - - 0032b 48 63 85 94 01 - 00 00 movsxd rax, DWORD PTR j$8[rbp] - 00332 48 8b 8d 90 02 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00339 0f b7 95 74 01 - 00 00 movzx edx, WORD PTR fastv$7[rbp] - 00340 66 89 14 41 mov WORD PTR [rcx+rax*2], dx - -; 4693 : j += (1 << s); - - 00344 8b 85 34 01 00 - 00 mov eax, DWORD PTR s$5[rbp] - 0034a b9 01 00 00 00 mov ecx, 1 - 0034f 89 8d 64 02 00 - 00 mov DWORD PTR tv289[rbp], ecx - 00355 0f b6 c8 movzx ecx, al - 00358 8b 85 64 02 00 - 00 mov eax, DWORD PTR tv289[rbp] - 0035e d3 e0 shl eax, cl - 00360 8b 8d 94 01 00 - 00 mov ecx, DWORD PTR j$8[rbp] - 00366 03 c8 add ecx, eax - 00368 8b c1 mov eax, ecx - 0036a 89 85 94 01 00 - 00 mov DWORD PTR j$8[rbp], eax - -; 4694 : } - - 00370 eb ad jmp SHORT $LN14@stbi__zbui -$LN15@stbi__zbui: -$LN20@stbi__zbui: - -; 4695 : } -; 4696 : ++next_code[s]; - - 00372 48 63 85 34 01 - 00 00 movsxd rax, DWORD PTR s$5[rbp] - 00379 8b 44 85 70 mov eax, DWORD PTR next_code$[rbp+rax*4] - 0037d ff c0 inc eax - 0037f 48 63 8d 34 01 - 00 00 movsxd rcx, DWORD PTR s$5[rbp] - 00386 89 44 8d 70 mov DWORD PTR next_code$[rbp+rcx*4], eax -$LN19@stbi__zbui: - -; 4697 : } -; 4698 : } - - 0038a e9 a8 fe ff ff jmp $LN11@stbi__zbui -$LN12@stbi__zbui: - -; 4699 : return 1; - - 0038f b8 01 00 00 00 mov eax, 1 -$LN1@stbi__zbui: - -; 4700 : } - - 00394 48 8b f8 mov rdi, rax - 00397 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0039b 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__zbuild_huffman$rtcFrameData - 003a2 e8 00 00 00 00 call _RTC_CheckStackVars - 003a7 48 8b c7 mov rax, rdi - 003aa 48 8b 8d 68 02 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 003b1 48 33 cd xor rcx, rbp - 003b4 e8 00 00 00 00 call __security_check_cookie - 003b9 48 8d a5 78 02 - 00 00 lea rsp, QWORD PTR [rbp+632] - 003c0 5f pop rdi - 003c1 5d pop rbp - 003c2 c3 ret 0 -stbi__zbuild_huffman ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__bit_reverse -_TEXT SEGMENT -v$ = 224 -bits$ = 232 -stbi__bit_reverse PROC ; COMDAT - -; 4647 : { - - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00008 55 push rbp - 00009 57 push rdi - 0000a 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00011 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00016 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00022 90 npad 1 - -; 4648 : STBI_ASSERT(bits <= 16); - - 00023 83 bd e8 00 00 - 00 10 cmp DWORD PTR bits$[rbp], 16 - 0002a 7e 1c jle SHORT $LN3@stbi__bit_ - 0002c 41 b8 28 12 00 - 00 mov r8d, 4648 ; 00001228H - 00032 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1BG@HKNLHECB@?$AAb?$AAi?$AAt?$AAs?$AA?5?$AA?$DM?$AA?$DN?$AA?5?$AA1?$AA6@ - 00040 ff 15 00 00 00 - 00 call QWORD PTR __imp__wassert - 00046 33 c0 xor eax, eax -$LN3@stbi__bit_: - -; 4649 : // to bit reverse n bits, reverse 16 and shift -; 4650 : // e.g. 11 bits, bit reverse and shift away 5 -; 4651 : return stbi__bitreverse16(v) >> (16 - bits); - - 00048 8b 8d e0 00 00 - 00 mov ecx, DWORD PTR v$[rbp] - 0004e e8 00 00 00 00 call stbi__bitreverse16 - 00053 b9 10 00 00 00 mov ecx, 16 - 00058 2b 8d e8 00 00 - 00 sub ecx, DWORD PTR bits$[rbp] - 0005e d3 f8 sar eax, cl - -; 4652 : } - - 00060 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 -stbi__bit_reverse ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__bitreverse16 -_TEXT SEGMENT -n$ = 224 -stbi__bitreverse16 PROC ; COMDAT - -; 4638 : { - - 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00004 55 push rbp - 00005 57 push rdi - 00006 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00012 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001e 90 npad 1 - -; 4639 : n = ((n & 0xAAAA) >> 1) | ((n & 0x5555) << 1); - - 0001f 8b 85 e0 00 00 - 00 mov eax, DWORD PTR n$[rbp] - 00025 25 aa aa 00 00 and eax, 43690 ; 0000aaaaH - 0002a d1 f8 sar eax, 1 - 0002c 8b 8d e0 00 00 - 00 mov ecx, DWORD PTR n$[rbp] - 00032 81 e1 55 55 00 - 00 and ecx, 21845 ; 00005555H - 00038 d1 e1 shl ecx, 1 - 0003a 0b c1 or eax, ecx - 0003c 89 85 e0 00 00 - 00 mov DWORD PTR n$[rbp], eax - -; 4640 : n = ((n & 0xCCCC) >> 2) | ((n & 0x3333) << 2); - - 00042 8b 85 e0 00 00 - 00 mov eax, DWORD PTR n$[rbp] - 00048 25 cc cc 00 00 and eax, 52428 ; 0000ccccH - 0004d c1 f8 02 sar eax, 2 - 00050 8b 8d e0 00 00 - 00 mov ecx, DWORD PTR n$[rbp] - 00056 81 e1 33 33 00 - 00 and ecx, 13107 ; 00003333H - 0005c c1 e1 02 shl ecx, 2 - 0005f 0b c1 or eax, ecx - 00061 89 85 e0 00 00 - 00 mov DWORD PTR n$[rbp], eax - -; 4641 : n = ((n & 0xF0F0) >> 4) | ((n & 0x0F0F) << 4); - - 00067 8b 85 e0 00 00 - 00 mov eax, DWORD PTR n$[rbp] - 0006d 25 f0 f0 00 00 and eax, 61680 ; 0000f0f0H - 00072 c1 f8 04 sar eax, 4 - 00075 8b 8d e0 00 00 - 00 mov ecx, DWORD PTR n$[rbp] - 0007b 81 e1 0f 0f 00 - 00 and ecx, 3855 ; 00000f0fH - 00081 c1 e1 04 shl ecx, 4 - 00084 0b c1 or eax, ecx - 00086 89 85 e0 00 00 - 00 mov DWORD PTR n$[rbp], eax - -; 4642 : n = ((n & 0xFF00) >> 8) | ((n & 0x00FF) << 8); - - 0008c 8b 85 e0 00 00 - 00 mov eax, DWORD PTR n$[rbp] - 00092 25 00 ff 00 00 and eax, 65280 ; 0000ff00H - 00097 c1 f8 08 sar eax, 8 - 0009a 8b 8d e0 00 00 - 00 mov ecx, DWORD PTR n$[rbp] - 000a0 81 e1 ff 00 00 - 00 and ecx, 255 ; 000000ffH - 000a6 c1 e1 08 shl ecx, 8 - 000a9 0b c1 or eax, ecx - 000ab 89 85 e0 00 00 - 00 mov DWORD PTR n$[rbp], eax - -; 4643 : return n; - - 000b1 8b 85 e0 00 00 - 00 mov eax, DWORD PTR n$[rbp] - -; 4644 : } - - 000b7 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 000be 5f pop rdi - 000bf 5d pop rbp - 000c0 c3 ret 0 -stbi__bitreverse16 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__jpeg_info_raw -_TEXT SEGMENT -tv80 = 192 -j$ = 240 -x$ = 248 -y$ = 256 -comp$ = 264 -stbi__jpeg_info_raw PROC ; COMDAT - -; 4584 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 4585 : if (!stbi__decode_jpeg_header(j, STBI__SCAN_header)) { - - 0002f ba 02 00 00 00 mov edx, 2 - 00034 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR j$[rbp] - 0003b e8 00 00 00 00 call stbi__decode_jpeg_header - 00040 85 c0 test eax, eax - 00042 75 17 jne SHORT $LN2@stbi__jpeg - -; 4586 : stbi__rewind(j->s); - - 00044 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR j$[rbp] - 0004b 48 8b 08 mov rcx, QWORD PTR [rax] - 0004e e8 00 00 00 00 call stbi__rewind - 00053 90 npad 1 - -; 4587 : return 0; - - 00054 33 c0 xor eax, eax - 00056 e9 83 00 00 00 jmp $LN1@stbi__jpeg -$LN2@stbi__jpeg: - -; 4588 : } -; 4589 : if (x) - - 0005b 48 83 bd f8 00 - 00 00 00 cmp QWORD PTR x$[rbp], 0 - 00063 74 15 je SHORT $LN3@stbi__jpeg - -; 4590 : *x = j->s->img_x; - - 00065 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR j$[rbp] - 0006c 48 8b 00 mov rax, QWORD PTR [rax] - 0006f 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR x$[rbp] - 00076 8b 00 mov eax, DWORD PTR [rax] - 00078 89 01 mov DWORD PTR [rcx], eax -$LN3@stbi__jpeg: - -; 4591 : if (y) - - 0007a 48 83 bd 00 01 - 00 00 00 cmp QWORD PTR y$[rbp], 0 - 00082 74 16 je SHORT $LN4@stbi__jpeg - -; 4592 : *y = j->s->img_y; - - 00084 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR j$[rbp] - 0008b 48 8b 00 mov rax, QWORD PTR [rax] - 0008e 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR y$[rbp] - 00095 8b 40 04 mov eax, DWORD PTR [rax+4] - 00098 89 01 mov DWORD PTR [rcx], eax -$LN4@stbi__jpeg: - -; 4593 : if (comp) - - 0009a 48 83 bd 08 01 - 00 00 00 cmp QWORD PTR comp$[rbp], 0 - 000a2 74 35 je SHORT $LN5@stbi__jpeg - -; 4594 : *comp = j->s->img_n >= 3 ? 3 : 1; - - 000a4 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR j$[rbp] - 000ab 48 8b 00 mov rax, QWORD PTR [rax] - 000ae 83 78 08 03 cmp DWORD PTR [rax+8], 3 - 000b2 7c 0c jl SHORT $LN7@stbi__jpeg - 000b4 c7 85 c0 00 00 - 00 03 00 00 00 mov DWORD PTR tv80[rbp], 3 - 000be eb 0a jmp SHORT $LN8@stbi__jpeg -$LN7@stbi__jpeg: - 000c0 c7 85 c0 00 00 - 00 01 00 00 00 mov DWORD PTR tv80[rbp], 1 -$LN8@stbi__jpeg: - 000ca 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR comp$[rbp] - 000d1 8b 8d c0 00 00 - 00 mov ecx, DWORD PTR tv80[rbp] - 000d7 89 08 mov DWORD PTR [rax], ecx -$LN5@stbi__jpeg: - -; 4595 : return 1; - - 000d9 b8 01 00 00 00 mov eax, 1 -$LN1@stbi__jpeg: - -; 4596 : } - - 000de 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 000e5 5f pop rdi - 000e6 5d pop rbp - 000e7 c3 ret 0 -stbi__jpeg_info_raw ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT load_jpeg_image -_TEXT SEGMENT -n$ = 4 -decode_n$ = 36 -is_rgb$ = 68 -k$5 = 100 -i$6 = 132 -j$7 = 164 -output$8 = 200 -coutput$9 = 232 -res_comp$10 = 304 -r$11 = 520 -out$12 = 552 -r$13 = 584 -y_bot$14 = 612 -y$15 = 648 -m$16 = 676 -m$17 = 708 -m$18 = 740 -r$19 = 772 -g$20 = 804 -b$21 = 836 -y$22 = 872 -tv656 = 1268 -tv694 = 1268 -tv81 = 1268 -tv91 = 1268 -tv252 = 1268 -tv280 = 1268 -tv288 = 1268 -tv516 = 1268 -tv545 = 1268 -tv626 = 1268 -tv79 = 1272 -tv265 = 1272 -tv71 = 1272 -tv159 = 1272 -tv164 = 1272 -tv172 = 1272 -tv232 = 1272 -tv270 = 1280 -__$ArrayPad$ = 1288 -z$ = 1328 -out_x$ = 1336 -out_y$ = 1344 -comp$ = 1352 -req_comp$ = 1360 -load_jpeg_image PROC ; COMDAT - -; 4359 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 48 05 - 00 00 sub rsp, 1352 ; 00000548H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00027 b9 e6 00 00 00 mov ecx, 230 ; 000000e6H - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 68 - 05 00 00 mov rcx, QWORD PTR [rsp+1384] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 08 05 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 4360 : int n, decode_n, is_rgb; -; 4361 : z->s->img_n = 0; // make stbi__cleanup_jpeg safe - - 00059 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 00060 48 8b 00 mov rax, QWORD PTR [rax] - 00063 c7 40 08 00 00 - 00 00 mov DWORD PTR [rax+8], 0 - -; 4362 : -; 4363 : // validate req_comp -; 4364 : if (req_comp < 0 || req_comp > 4) - - 0006a 83 bd 50 05 00 - 00 00 cmp DWORD PTR req_comp$[rbp], 0 - 00071 7c 09 jl SHORT $LN42@load_jpeg_ - 00073 83 bd 50 05 00 - 00 04 cmp DWORD PTR req_comp$[rbp], 4 - 0007a 7e 34 jle SHORT $LN41@load_jpeg_ -$LN42@load_jpeg_: - -; 4365 : return stbi__errpuc("bad req_comp", "Internal error"); - - 0007c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0N@KBPNPPBJ@bad?5req_comp@ - 00083 e8 00 00 00 00 call stbi__err - 00088 85 c0 test eax, eax - 0008a 74 0d je SHORT $LN83@load_jpeg_ - 0008c 48 c7 85 f8 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv71[rbp], 0 - 00097 eb 0b jmp SHORT $LN84@load_jpeg_ -$LN83@load_jpeg_: - 00099 48 c7 85 f8 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv71[rbp], 0 -$LN84@load_jpeg_: - 000a4 48 8b 85 f8 04 - 00 00 mov rax, QWORD PTR tv71[rbp] - 000ab e9 fa 11 00 00 jmp $LN1@load_jpeg_ -$LN41@load_jpeg_: - -; 4366 : -; 4367 : // load a jpeg image from whichever source, but leave in YCbCr format -; 4368 : if (!stbi__decode_jpeg_image(z)) { - - 000b0 48 8b 8d 30 05 - 00 00 mov rcx, QWORD PTR z$[rbp] - 000b7 e8 00 00 00 00 call stbi__decode_jpeg_image - 000bc 85 c0 test eax, eax - 000be 75 14 jne SHORT $LN43@load_jpeg_ - -; 4369 : stbi__cleanup_jpeg(z); - - 000c0 48 8b 8d 30 05 - 00 00 mov rcx, QWORD PTR z$[rbp] - 000c7 e8 00 00 00 00 call stbi__cleanup_jpeg - 000cc 90 npad 1 - -; 4370 : return NULL; - - 000cd 33 c0 xor eax, eax - 000cf e9 d6 11 00 00 jmp $LN1@load_jpeg_ -$LN43@load_jpeg_: - -; 4371 : } -; 4372 : -; 4373 : // determine actual number of components to generate -; 4374 : n = req_comp ? req_comp : z->s->img_n >= 3 ? 3 : 1; - - 000d4 83 bd 50 05 00 - 00 00 cmp DWORD PTR req_comp$[rbp], 0 - 000db 74 0e je SHORT $LN87@load_jpeg_ - 000dd 8b 85 50 05 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 000e3 89 85 f4 04 00 - 00 mov DWORD PTR tv81[rbp], eax - 000e9 eb 32 jmp SHORT $LN88@load_jpeg_ -$LN87@load_jpeg_: - 000eb 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 000f2 48 8b 00 mov rax, QWORD PTR [rax] - 000f5 83 78 08 03 cmp DWORD PTR [rax+8], 3 - 000f9 7c 0c jl SHORT $LN85@load_jpeg_ - 000fb c7 85 f8 04 00 - 00 03 00 00 00 mov DWORD PTR tv79[rbp], 3 - 00105 eb 0a jmp SHORT $LN86@load_jpeg_ -$LN85@load_jpeg_: - 00107 c7 85 f8 04 00 - 00 01 00 00 00 mov DWORD PTR tv79[rbp], 1 -$LN86@load_jpeg_: - 00111 8b 85 f8 04 00 - 00 mov eax, DWORD PTR tv79[rbp] - 00117 89 85 f4 04 00 - 00 mov DWORD PTR tv81[rbp], eax -$LN88@load_jpeg_: - 0011d 8b 85 f4 04 00 - 00 mov eax, DWORD PTR tv81[rbp] - 00123 89 45 04 mov DWORD PTR n$[rbp], eax - -; 4375 : -; 4376 : is_rgb = z->s->img_n == 3 && (z->rgb == 3 || (z->app14_color_transform == 0 && !z->jfif)); - - 00126 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 0012d 48 8b 00 mov rax, QWORD PTR [rax] - 00130 83 78 08 03 cmp DWORD PTR [rax+8], 3 - 00134 75 3c jne SHORT $LN91@load_jpeg_ - 00136 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 0013d 83 b8 50 48 00 - 00 03 cmp DWORD PTR [rax+18512], 3 - 00144 74 20 je SHORT $LN90@load_jpeg_ - 00146 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 0014d 83 b8 4c 48 00 - 00 00 cmp DWORD PTR [rax+18508], 0 - 00154 75 1c jne SHORT $LN89@load_jpeg_ - 00156 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 0015d 83 b8 48 48 00 - 00 00 cmp DWORD PTR [rax+18504], 0 - 00164 75 0c jne SHORT $LN91@load_jpeg_ -$LN90@load_jpeg_: - 00166 c7 85 f4 04 00 - 00 01 00 00 00 mov DWORD PTR tv91[rbp], 1 - 00170 eb 0a jmp SHORT $LN92@load_jpeg_ -$LN91@load_jpeg_: -$LN89@load_jpeg_: - 00172 c7 85 f4 04 00 - 00 00 00 00 00 mov DWORD PTR tv91[rbp], 0 -$LN92@load_jpeg_: - 0017c 8b 85 f4 04 00 - 00 mov eax, DWORD PTR tv91[rbp] - 00182 89 45 44 mov DWORD PTR is_rgb$[rbp], eax - -; 4377 : -; 4378 : if (z->s->img_n == 3 && n < 3 && !is_rgb) - - 00185 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 0018c 48 8b 00 mov rax, QWORD PTR [rax] - 0018f 83 78 08 03 cmp DWORD PTR [rax+8], 3 - 00193 75 15 jne SHORT $LN44@load_jpeg_ - 00195 83 7d 04 03 cmp DWORD PTR n$[rbp], 3 - 00199 7d 0f jge SHORT $LN44@load_jpeg_ - 0019b 83 7d 44 00 cmp DWORD PTR is_rgb$[rbp], 0 - 0019f 75 09 jne SHORT $LN44@load_jpeg_ - -; 4379 : decode_n = 1; - - 001a1 c7 45 24 01 00 - 00 00 mov DWORD PTR decode_n$[rbp], 1 - 001a8 eb 10 jmp SHORT $LN45@load_jpeg_ -$LN44@load_jpeg_: - -; 4380 : else -; 4381 : decode_n = z->s->img_n; - - 001aa 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 001b1 48 8b 00 mov rax, QWORD PTR [rax] - 001b4 8b 40 08 mov eax, DWORD PTR [rax+8] - 001b7 89 45 24 mov DWORD PTR decode_n$[rbp], eax -$LN45@load_jpeg_: - -; 4382 : -; 4383 : // nothing to do if no components requested; check this now to avoid -; 4384 : // accessing uninitialized coutput[0] later -; 4385 : if (decode_n <= 0) { - - 001ba 83 7d 24 00 cmp DWORD PTR decode_n$[rbp], 0 - 001be 7f 14 jg SHORT $LN46@load_jpeg_ - -; 4386 : stbi__cleanup_jpeg(z); - - 001c0 48 8b 8d 30 05 - 00 00 mov rcx, QWORD PTR z$[rbp] - 001c7 e8 00 00 00 00 call stbi__cleanup_jpeg - 001cc 90 npad 1 - -; 4387 : return NULL; - - 001cd 33 c0 xor eax, eax - 001cf e9 d6 10 00 00 jmp $LN1@load_jpeg_ -$LN46@load_jpeg_: - -; 4388 : } -; 4389 : -; 4390 : // resample and color-convert -; 4391 : { -; 4392 : int k; -; 4393 : unsigned int i, j; -; 4394 : stbi_uc *output; -; 4395 : stbi_uc *coutput[4] = { NULL, NULL, NULL, NULL }; - - 001d4 48 c7 85 e8 00 - 00 00 00 00 00 - 00 mov QWORD PTR coutput$9[rbp], 0 - 001df 48 c7 85 f0 00 - 00 00 00 00 00 - 00 mov QWORD PTR coutput$9[rbp+8], 0 - 001ea 48 c7 85 f8 00 - 00 00 00 00 00 - 00 mov QWORD PTR coutput$9[rbp+16], 0 - 001f5 48 c7 85 00 01 - 00 00 00 00 00 - 00 mov QWORD PTR coutput$9[rbp+24], 0 - -; 4396 : -; 4397 : stbi__resample res_comp[4]; -; 4398 : -; 4399 : for (k = 0; k < decode_n; ++k) { - - 00200 c7 45 64 00 00 - 00 00 mov DWORD PTR k$5[rbp], 0 - 00207 eb 08 jmp SHORT $LN4@load_jpeg_ -$LN2@load_jpeg_: - 00209 8b 45 64 mov eax, DWORD PTR k$5[rbp] - 0020c ff c0 inc eax - 0020e 89 45 64 mov DWORD PTR k$5[rbp], eax -$LN4@load_jpeg_: - 00211 8b 45 24 mov eax, DWORD PTR decode_n$[rbp] - 00214 39 45 64 cmp DWORD PTR k$5[rbp], eax - 00217 0f 8d 7b 02 00 - 00 jge $LN3@load_jpeg_ - -; 4400 : stbi__resample *r = &res_comp[k]; - - 0021d 48 63 45 64 movsxd rax, DWORD PTR k$5[rbp] - 00221 48 6b c0 30 imul rax, rax, 48 ; 00000030H - 00225 48 8d 84 05 30 - 01 00 00 lea rax, QWORD PTR res_comp$10[rbp+rax] - 0022d 48 89 85 08 02 - 00 00 mov QWORD PTR r$11[rbp], rax - -; 4401 : -; 4402 : // allocate line buffer big enough for upsampling off the edges -; 4403 : // with upsample factor of 4 -; 4404 : z->img_comp[k].linebuf = (stbi_uc *)stbi__malloc(z->s->img_x + 3); - - 00234 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 0023b 48 8b 00 mov rax, QWORD PTR [rax] - 0023e 8b 00 mov eax, DWORD PTR [rax] - 00240 83 c0 03 add eax, 3 - 00243 8b c0 mov eax, eax - 00245 8b c8 mov ecx, eax - 00247 e8 00 00 00 00 call stbi__malloc - 0024c 48 63 4d 64 movsxd rcx, DWORD PTR k$5[rbp] - 00250 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 00254 48 8b 95 30 05 - 00 00 mov rdx, QWORD PTR z$[rbp] - 0025b 48 89 84 0a e8 - 46 00 00 mov QWORD PTR [rdx+rcx+18152], rax - -; 4405 : if (!z->img_comp[k].linebuf) { - - 00263 48 63 45 64 movsxd rax, DWORD PTR k$5[rbp] - 00267 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0026b 48 8b 8d 30 05 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00272 48 83 bc 01 e8 - 46 00 00 00 cmp QWORD PTR [rcx+rax+18152], 0 - 0027b 75 41 jne SHORT $LN47@load_jpeg_ - -; 4406 : stbi__cleanup_jpeg(z); - - 0027d 48 8b 8d 30 05 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00284 e8 00 00 00 00 call stbi__cleanup_jpeg - 00289 90 npad 1 - -; 4407 : return stbi__errpuc("outofmem", "Out of memory"); - - 0028a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 00291 e8 00 00 00 00 call stbi__err - 00296 85 c0 test eax, eax - 00298 74 0d je SHORT $LN93@load_jpeg_ - 0029a 48 c7 85 f8 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv159[rbp], 0 - 002a5 eb 0b jmp SHORT $LN94@load_jpeg_ -$LN93@load_jpeg_: - 002a7 48 c7 85 f8 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv159[rbp], 0 -$LN94@load_jpeg_: - 002b2 48 8b 85 f8 04 - 00 00 mov rax, QWORD PTR tv159[rbp] - 002b9 e9 ec 0f 00 00 jmp $LN1@load_jpeg_ -$LN47@load_jpeg_: - -; 4408 : } -; 4409 : -; 4410 : r->hs = z->img_h_max / z->img_comp[k].h; - - 002be 48 63 45 64 movsxd rax, DWORD PTR k$5[rbp] - 002c2 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 002c6 48 89 85 f8 04 - 00 00 mov QWORD PTR tv164[rbp], rax - 002cd 48 8b 8d 30 05 - 00 00 mov rcx, QWORD PTR z$[rbp] - 002d4 8b 81 88 46 00 - 00 mov eax, DWORD PTR [rcx+18056] - 002da 99 cdq - 002db 48 8b 8d 30 05 - 00 00 mov rcx, QWORD PTR z$[rbp] - 002e2 4c 8b 85 f8 04 - 00 00 mov r8, QWORD PTR tv164[rbp] - 002e9 42 f7 bc 01 a4 - 46 00 00 idiv DWORD PTR [rcx+r8+18084] - 002f1 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR r$11[rbp] - 002f8 89 41 18 mov DWORD PTR [rcx+24], eax - -; 4411 : r->vs = z->img_v_max / z->img_comp[k].v; - - 002fb 48 63 45 64 movsxd rax, DWORD PTR k$5[rbp] - 002ff 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00303 48 89 85 f8 04 - 00 00 mov QWORD PTR tv172[rbp], rax - 0030a 48 8b 8d 30 05 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00311 8b 81 8c 46 00 - 00 mov eax, DWORD PTR [rcx+18060] - 00317 99 cdq - 00318 48 8b 8d 30 05 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0031f 4c 8b 85 f8 04 - 00 00 mov r8, QWORD PTR tv172[rbp] - 00326 42 f7 bc 01 a8 - 46 00 00 idiv DWORD PTR [rcx+r8+18088] - 0032e 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR r$11[rbp] - 00335 89 41 1c mov DWORD PTR [rcx+28], eax - -; 4412 : r->ystep = r->vs >> 1; - - 00338 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR r$11[rbp] - 0033f 8b 40 1c mov eax, DWORD PTR [rax+28] - 00342 d1 f8 sar eax, 1 - 00344 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR r$11[rbp] - 0034b 89 41 24 mov DWORD PTR [rcx+36], eax - -; 4413 : r->w_lores = (z->s->img_x + r->hs - 1) / r->hs; - - 0034e 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 00355 48 8b 00 mov rax, QWORD PTR [rax] - 00358 8b 00 mov eax, DWORD PTR [rax] - 0035a 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR r$11[rbp] - 00361 8b 49 18 mov ecx, DWORD PTR [rcx+24] - 00364 8d 44 08 ff lea eax, DWORD PTR [rax+rcx-1] - 00368 33 d2 xor edx, edx - 0036a 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR r$11[rbp] - 00371 f7 71 18 div DWORD PTR [rcx+24] - 00374 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR r$11[rbp] - 0037b 89 41 20 mov DWORD PTR [rcx+32], eax - -; 4414 : r->ypos = 0; - - 0037e 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR r$11[rbp] - 00385 c7 40 28 00 00 - 00 00 mov DWORD PTR [rax+40], 0 - -; 4415 : r->line0 = r->line1 = z->img_comp[k].data; - - 0038c 48 63 45 64 movsxd rax, DWORD PTR k$5[rbp] - 00390 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00394 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR r$11[rbp] - 0039b 48 8b 95 30 05 - 00 00 mov rdx, QWORD PTR z$[rbp] - 003a2 48 8b 84 02 d0 - 46 00 00 mov rax, QWORD PTR [rdx+rax+18128] - 003aa 48 89 41 10 mov QWORD PTR [rcx+16], rax - 003ae 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR r$11[rbp] - 003b5 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR r$11[rbp] - 003bc 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 003c0 48 89 48 08 mov QWORD PTR [rax+8], rcx - -; 4416 : -; 4417 : if (r->hs == 1 && r->vs == 1) - - 003c4 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR r$11[rbp] - 003cb 83 78 18 01 cmp DWORD PTR [rax+24], 1 - 003cf 75 23 jne SHORT $LN48@load_jpeg_ - 003d1 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR r$11[rbp] - 003d8 83 78 1c 01 cmp DWORD PTR [rax+28], 1 - 003dc 75 16 jne SHORT $LN48@load_jpeg_ - -; 4418 : r->resample = resample_row_1; - - 003de 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR r$11[rbp] - 003e5 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:resample_row_1 - 003ec 48 89 08 mov QWORD PTR [rax], rcx - 003ef e9 9f 00 00 00 jmp $LN49@load_jpeg_ -$LN48@load_jpeg_: - -; 4419 : else if (r->hs == 1 && r->vs == 2) - - 003f4 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR r$11[rbp] - 003fb 83 78 18 01 cmp DWORD PTR [rax+24], 1 - 003ff 75 20 jne SHORT $LN50@load_jpeg_ - 00401 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR r$11[rbp] - 00408 83 78 1c 02 cmp DWORD PTR [rax+28], 2 - 0040c 75 13 jne SHORT $LN50@load_jpeg_ - -; 4420 : r->resample = stbi__resample_row_v_2; - - 0040e 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR r$11[rbp] - 00415 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__resample_row_v_2 - 0041c 48 89 08 mov QWORD PTR [rax], rcx - 0041f eb 72 jmp SHORT $LN51@load_jpeg_ -$LN50@load_jpeg_: - -; 4421 : else if (r->hs == 2 && r->vs == 1) - - 00421 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR r$11[rbp] - 00428 83 78 18 02 cmp DWORD PTR [rax+24], 2 - 0042c 75 20 jne SHORT $LN52@load_jpeg_ - 0042e 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR r$11[rbp] - 00435 83 78 1c 01 cmp DWORD PTR [rax+28], 1 - 00439 75 13 jne SHORT $LN52@load_jpeg_ - -; 4422 : r->resample = stbi__resample_row_h_2; - - 0043b 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR r$11[rbp] - 00442 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__resample_row_h_2 - 00449 48 89 08 mov QWORD PTR [rax], rcx - 0044c eb 45 jmp SHORT $LN53@load_jpeg_ -$LN52@load_jpeg_: - -; 4423 : else if (r->hs == 2 && r->vs == 2) - - 0044e 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR r$11[rbp] - 00455 83 78 18 02 cmp DWORD PTR [rax+24], 2 - 00459 75 27 jne SHORT $LN54@load_jpeg_ - 0045b 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR r$11[rbp] - 00462 83 78 1c 02 cmp DWORD PTR [rax+28], 2 - 00466 75 1a jne SHORT $LN54@load_jpeg_ - -; 4424 : r->resample = z->resample_row_hv_2_kernel; - - 00468 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR r$11[rbp] - 0046f 48 8b 8d 30 05 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00476 48 8b 89 80 48 - 00 00 mov rcx, QWORD PTR [rcx+18560] - 0047d 48 89 08 mov QWORD PTR [rax], rcx - 00480 eb 11 jmp SHORT $LN55@load_jpeg_ -$LN54@load_jpeg_: - -; 4425 : else -; 4426 : r->resample = stbi__resample_row_generic; - - 00482 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR r$11[rbp] - 00489 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__resample_row_generic - 00490 48 89 08 mov QWORD PTR [rax], rcx -$LN55@load_jpeg_: -$LN53@load_jpeg_: -$LN51@load_jpeg_: -$LN49@load_jpeg_: - -; 4427 : } - - 00493 e9 71 fd ff ff jmp $LN2@load_jpeg_ -$LN3@load_jpeg_: - -; 4428 : -; 4429 : // can't error after this so, this is safe -; 4430 : output = (stbi_uc *)stbi__malloc_mad3(n, z->s->img_x, z->s->img_y, 1); - - 00498 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 0049f 48 8b 00 mov rax, QWORD PTR [rax] - 004a2 48 8b 8d 30 05 - 00 00 mov rcx, QWORD PTR z$[rbp] - 004a9 48 8b 09 mov rcx, QWORD PTR [rcx] - 004ac 41 b9 01 00 00 - 00 mov r9d, 1 - 004b2 44 8b 40 04 mov r8d, DWORD PTR [rax+4] - 004b6 8b 11 mov edx, DWORD PTR [rcx] - 004b8 8b 4d 04 mov ecx, DWORD PTR n$[rbp] - 004bb e8 00 00 00 00 call stbi__malloc_mad3 - 004c0 48 89 85 c8 00 - 00 00 mov QWORD PTR output$8[rbp], rax - -; 4431 : if (!output) { - - 004c7 48 83 bd c8 00 - 00 00 00 cmp QWORD PTR output$8[rbp], 0 - 004cf 75 41 jne SHORT $LN56@load_jpeg_ - -; 4432 : stbi__cleanup_jpeg(z); - - 004d1 48 8b 8d 30 05 - 00 00 mov rcx, QWORD PTR z$[rbp] - 004d8 e8 00 00 00 00 call stbi__cleanup_jpeg - 004dd 90 npad 1 - -; 4433 : return stbi__errpuc("outofmem", "Out of memory"); - - 004de 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 004e5 e8 00 00 00 00 call stbi__err - 004ea 85 c0 test eax, eax - 004ec 74 0d je SHORT $LN95@load_jpeg_ - 004ee 48 c7 85 f8 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv232[rbp], 0 - 004f9 eb 0b jmp SHORT $LN96@load_jpeg_ -$LN95@load_jpeg_: - 004fb 48 c7 85 f8 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv232[rbp], 0 -$LN96@load_jpeg_: - 00506 48 8b 85 f8 04 - 00 00 mov rax, QWORD PTR tv232[rbp] - 0050d e9 98 0d 00 00 jmp $LN1@load_jpeg_ -$LN56@load_jpeg_: - -; 4434 : } -; 4435 : -; 4436 : // now go ahead and resample -; 4437 : for (j = 0; j < z->s->img_y; ++j) { - - 00512 c7 85 a4 00 00 - 00 00 00 00 00 mov DWORD PTR j$7[rbp], 0 - 0051c eb 0e jmp SHORT $LN7@load_jpeg_ -$LN5@load_jpeg_: - 0051e 8b 85 a4 00 00 - 00 mov eax, DWORD PTR j$7[rbp] - 00524 ff c0 inc eax - 00526 89 85 a4 00 00 - 00 mov DWORD PTR j$7[rbp], eax -$LN7@load_jpeg_: - 0052c 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 00533 48 8b 00 mov rax, QWORD PTR [rax] - 00536 8b 40 04 mov eax, DWORD PTR [rax+4] - 00539 39 85 a4 00 00 - 00 cmp DWORD PTR j$7[rbp], eax - 0053f 0f 83 e7 0c 00 - 00 jae $LN6@load_jpeg_ - -; 4438 : stbi_uc *out = output + n * z->s->img_x * j; - - 00545 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 0054c 48 8b 00 mov rax, QWORD PTR [rax] - 0054f 8b 4d 04 mov ecx, DWORD PTR n$[rbp] - 00552 0f af 08 imul ecx, DWORD PTR [rax] - 00555 8b c1 mov eax, ecx - 00557 0f af 85 a4 00 - 00 00 imul eax, DWORD PTR j$7[rbp] - 0055e 8b c0 mov eax, eax - 00560 48 8b 8d c8 00 - 00 00 mov rcx, QWORD PTR output$8[rbp] - 00567 48 03 c8 add rcx, rax - 0056a 48 8b c1 mov rax, rcx - 0056d 48 89 85 28 02 - 00 00 mov QWORD PTR out$12[rbp], rax - -; 4439 : for (k = 0; k < decode_n; ++k) { - - 00574 c7 45 64 00 00 - 00 00 mov DWORD PTR k$5[rbp], 0 - 0057b eb 08 jmp SHORT $LN10@load_jpeg_ -$LN8@load_jpeg_: - 0057d 8b 45 64 mov eax, DWORD PTR k$5[rbp] - 00580 ff c0 inc eax - 00582 89 45 64 mov DWORD PTR k$5[rbp], eax -$LN10@load_jpeg_: - 00585 8b 45 24 mov eax, DWORD PTR decode_n$[rbp] - 00588 39 45 64 cmp DWORD PTR k$5[rbp], eax - 0058b 0f 8d d0 01 00 - 00 jge $LN9@load_jpeg_ - -; 4440 : stbi__resample *r = &res_comp[k]; - - 00591 48 63 45 64 movsxd rax, DWORD PTR k$5[rbp] - 00595 48 6b c0 30 imul rax, rax, 48 ; 00000030H - 00599 48 8d 84 05 30 - 01 00 00 lea rax, QWORD PTR res_comp$10[rbp+rax] - 005a1 48 89 85 48 02 - 00 00 mov QWORD PTR r$13[rbp], rax - -; 4441 : int y_bot = r->ystep >= (r->vs >> 1); - - 005a8 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR r$13[rbp] - 005af 8b 40 1c mov eax, DWORD PTR [rax+28] - 005b2 d1 f8 sar eax, 1 - 005b4 48 8b 8d 48 02 - 00 00 mov rcx, QWORD PTR r$13[rbp] - 005bb 39 41 24 cmp DWORD PTR [rcx+36], eax - 005be 7c 0c jl SHORT $LN97@load_jpeg_ - 005c0 c7 85 f4 04 00 - 00 01 00 00 00 mov DWORD PTR tv252[rbp], 1 - 005ca eb 0a jmp SHORT $LN98@load_jpeg_ -$LN97@load_jpeg_: - 005cc c7 85 f4 04 00 - 00 00 00 00 00 mov DWORD PTR tv252[rbp], 0 -$LN98@load_jpeg_: - 005d6 8b 85 f4 04 00 - 00 mov eax, DWORD PTR tv252[rbp] - 005dc 89 85 64 02 00 - 00 mov DWORD PTR y_bot$14[rbp], eax - -; 4442 : coutput[k] = r->resample(z->img_comp[k].linebuf, - - 005e2 83 bd 64 02 00 - 00 00 cmp DWORD PTR y_bot$14[rbp], 0 - 005e9 74 14 je SHORT $LN99@load_jpeg_ - 005eb 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR r$13[rbp] - 005f2 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 005f6 48 89 85 f8 04 - 00 00 mov QWORD PTR tv265[rbp], rax - 005fd eb 12 jmp SHORT $LN100@load_jpeg_ -$LN99@load_jpeg_: - 005ff 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR r$13[rbp] - 00606 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 0060a 48 89 85 f8 04 - 00 00 mov QWORD PTR tv265[rbp], rax -$LN100@load_jpeg_: - 00611 83 bd 64 02 00 - 00 00 cmp DWORD PTR y_bot$14[rbp], 0 - 00618 74 14 je SHORT $LN101@load_jpeg_ - 0061a 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR r$13[rbp] - 00621 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 00625 48 89 85 00 05 - 00 00 mov QWORD PTR tv270[rbp], rax - 0062c eb 12 jmp SHORT $LN102@load_jpeg_ -$LN101@load_jpeg_: - 0062e 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR r$13[rbp] - 00635 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00639 48 89 85 00 05 - 00 00 mov QWORD PTR tv270[rbp], rax -$LN102@load_jpeg_: - 00640 48 63 45 64 movsxd rax, DWORD PTR k$5[rbp] - 00644 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00648 48 8b 8d 48 02 - 00 00 mov rcx, QWORD PTR r$13[rbp] - 0064f 8b 49 18 mov ecx, DWORD PTR [rcx+24] - 00652 89 4c 24 20 mov DWORD PTR [rsp+32], ecx - 00656 48 8b 8d 48 02 - 00 00 mov rcx, QWORD PTR r$13[rbp] - 0065d 44 8b 49 20 mov r9d, DWORD PTR [rcx+32] - 00661 4c 8b 85 f8 04 - 00 00 mov r8, QWORD PTR tv265[rbp] - 00668 48 8b 95 00 05 - 00 00 mov rdx, QWORD PTR tv270[rbp] - 0066f 48 8b 8d 30 05 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00676 48 8b 8c 01 e8 - 46 00 00 mov rcx, QWORD PTR [rcx+rax+18152] - 0067e 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR r$13[rbp] - 00685 ff 10 call QWORD PTR [rax] - 00687 48 63 4d 64 movsxd rcx, DWORD PTR k$5[rbp] - 0068b 48 89 84 cd e8 - 00 00 00 mov QWORD PTR coutput$9[rbp+rcx*8], rax - -; 4443 : y_bot ? r->line1 : r->line0, -; 4444 : y_bot ? r->line0 : r->line1, r->w_lores, -; 4445 : r->hs); -; 4446 : if (++r->ystep >= r->vs) { - - 00693 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR r$13[rbp] - 0069a 8b 40 24 mov eax, DWORD PTR [rax+36] - 0069d ff c0 inc eax - 0069f 89 85 f4 04 00 - 00 mov DWORD PTR tv280[rbp], eax - 006a5 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR r$13[rbp] - 006ac 8b 8d f4 04 00 - 00 mov ecx, DWORD PTR tv280[rbp] - 006b2 89 48 24 mov DWORD PTR [rax+36], ecx - 006b5 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR r$13[rbp] - 006bc 8b 40 1c mov eax, DWORD PTR [rax+28] - 006bf 39 85 f4 04 00 - 00 cmp DWORD PTR tv280[rbp], eax - 006c5 0f 8c 91 00 00 - 00 jl $LN57@load_jpeg_ - -; 4447 : r->ystep = 0; - - 006cb 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR r$13[rbp] - 006d2 c7 40 24 00 00 - 00 00 mov DWORD PTR [rax+36], 0 - -; 4448 : r->line0 = r->line1; - - 006d9 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR r$13[rbp] - 006e0 48 8b 8d 48 02 - 00 00 mov rcx, QWORD PTR r$13[rbp] - 006e7 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 006eb 48 89 48 08 mov QWORD PTR [rax+8], rcx - -; 4449 : if (++r->ypos < z->img_comp[k].y) - - 006ef 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR r$13[rbp] - 006f6 8b 40 28 mov eax, DWORD PTR [rax+40] - 006f9 ff c0 inc eax - 006fb 89 85 f4 04 00 - 00 mov DWORD PTR tv288[rbp], eax - 00701 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR r$13[rbp] - 00708 8b 8d f4 04 00 - 00 mov ecx, DWORD PTR tv288[rbp] - 0070e 89 48 28 mov DWORD PTR [rax+40], ecx - 00711 48 63 45 64 movsxd rax, DWORD PTR k$5[rbp] - 00715 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00719 48 8b 8d 30 05 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00720 8b 84 01 c0 46 - 00 00 mov eax, DWORD PTR [rcx+rax+18112] - 00727 39 85 f4 04 00 - 00 cmp DWORD PTR tv288[rbp], eax - 0072d 7d 2d jge SHORT $LN58@load_jpeg_ - -; 4450 : r->line1 += z->img_comp[k].w2; - - 0072f 48 63 45 64 movsxd rax, DWORD PTR k$5[rbp] - 00733 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00737 48 8b 8d 30 05 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0073e 48 63 84 01 c4 - 46 00 00 movsxd rax, DWORD PTR [rcx+rax+18116] - 00746 48 8b 8d 48 02 - 00 00 mov rcx, QWORD PTR r$13[rbp] - 0074d 48 03 41 10 add rax, QWORD PTR [rcx+16] - 00751 48 8b 8d 48 02 - 00 00 mov rcx, QWORD PTR r$13[rbp] - 00758 48 89 41 10 mov QWORD PTR [rcx+16], rax -$LN58@load_jpeg_: -$LN57@load_jpeg_: - -; 4451 : } -; 4452 : } - - 0075c e9 1c fe ff ff jmp $LN8@load_jpeg_ -$LN9@load_jpeg_: - -; 4453 : if (n >= 3) { - - 00761 83 7d 04 03 cmp DWORD PTR n$[rbp], 3 - 00765 0f 8c ac 05 00 - 00 jl $LN59@load_jpeg_ - -; 4454 : stbi_uc *y = coutput[0]; - - 0076b b8 08 00 00 00 mov eax, 8 - 00770 48 6b c0 00 imul rax, rax, 0 - 00774 48 8b 84 05 e8 - 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] - 0077c 48 89 85 88 02 - 00 00 mov QWORD PTR y$15[rbp], rax - -; 4455 : if (z->s->img_n == 3) { - - 00783 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 0078a 48 8b 00 mov rax, QWORD PTR [rax] - 0078d 83 78 08 03 cmp DWORD PTR [rax+8], 3 - 00791 0f 85 4e 01 00 - 00 jne $LN61@load_jpeg_ - -; 4456 : if (is_rgb) { - - 00797 83 7d 44 00 cmp DWORD PTR is_rgb$[rbp], 0 - 0079b 0f 84 e8 00 00 - 00 je $LN63@load_jpeg_ - -; 4457 : for (i = 0; i < z->s->img_x; ++i) { - - 007a1 c7 85 84 00 00 - 00 00 00 00 00 mov DWORD PTR i$6[rbp], 0 - 007ab eb 0e jmp SHORT $LN13@load_jpeg_ -$LN11@load_jpeg_: - 007ad 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$6[rbp] - 007b3 ff c0 inc eax - 007b5 89 85 84 00 00 - 00 mov DWORD PTR i$6[rbp], eax -$LN13@load_jpeg_: - 007bb 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 007c2 48 8b 00 mov rax, QWORD PTR [rax] - 007c5 8b 00 mov eax, DWORD PTR [rax] - 007c7 39 85 84 00 00 - 00 cmp DWORD PTR i$6[rbp], eax - 007cd 0f 83 b4 00 00 - 00 jae $LN12@load_jpeg_ - -; 4458 : out[0] = y[i]; - - 007d3 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$6[rbp] - 007d9 b9 01 00 00 00 mov ecx, 1 - 007de 48 6b c9 00 imul rcx, rcx, 0 - 007e2 48 8b 95 28 02 - 00 00 mov rdx, QWORD PTR out$12[rbp] - 007e9 4c 8b 85 88 02 - 00 00 mov r8, QWORD PTR y$15[rbp] - 007f0 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 007f5 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 4459 : out[1] = coutput[1][i]; - - 007f8 b8 08 00 00 00 mov eax, 8 - 007fd 48 6b c0 01 imul rax, rax, 1 - 00801 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR i$6[rbp] - 00807 48 8b 84 05 e8 - 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] - 0080f ba 01 00 00 00 mov edx, 1 - 00814 48 6b d2 01 imul rdx, rdx, 1 - 00818 4c 8b 85 28 02 - 00 00 mov r8, QWORD PTR out$12[rbp] - 0081f 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] - 00823 41 88 04 10 mov BYTE PTR [r8+rdx], al - -; 4460 : out[2] = coutput[2][i]; - - 00827 b8 08 00 00 00 mov eax, 8 - 0082c 48 6b c0 02 imul rax, rax, 2 - 00830 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR i$6[rbp] - 00836 48 8b 84 05 e8 - 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] - 0083e ba 01 00 00 00 mov edx, 1 - 00843 48 6b d2 02 imul rdx, rdx, 2 - 00847 4c 8b 85 28 02 - 00 00 mov r8, QWORD PTR out$12[rbp] - 0084e 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] - 00852 41 88 04 10 mov BYTE PTR [r8+rdx], al - -; 4461 : out[3] = 255; - - 00856 b8 01 00 00 00 mov eax, 1 - 0085b 48 6b c0 03 imul rax, rax, 3 - 0085f 48 8b 8d 28 02 - 00 00 mov rcx, QWORD PTR out$12[rbp] - 00866 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH - -; 4462 : out += n; - - 0086a 48 63 45 04 movsxd rax, DWORD PTR n$[rbp] - 0086e 48 8b 8d 28 02 - 00 00 mov rcx, QWORD PTR out$12[rbp] - 00875 48 03 c8 add rcx, rax - 00878 48 8b c1 mov rax, rcx - 0087b 48 89 85 28 02 - 00 00 mov QWORD PTR out$12[rbp], rax - -; 4463 : } - - 00882 e9 26 ff ff ff jmp $LN11@load_jpeg_ -$LN12@load_jpeg_: - -; 4464 : } else { - - 00887 eb 57 jmp SHORT $LN64@load_jpeg_ -$LN63@load_jpeg_: - -; 4465 : z->YCbCr_to_RGB_kernel(out, y, coutput[1], - - 00889 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 00890 48 8b 00 mov rax, QWORD PTR [rax] - 00893 b9 08 00 00 00 mov ecx, 8 - 00898 48 6b c9 02 imul rcx, rcx, 2 - 0089c ba 08 00 00 00 mov edx, 8 - 008a1 48 6b d2 01 imul rdx, rdx, 1 - 008a5 44 8b 45 04 mov r8d, DWORD PTR n$[rbp] - 008a9 44 89 44 24 28 mov DWORD PTR [rsp+40], r8d - 008ae 8b 00 mov eax, DWORD PTR [rax] - 008b0 89 44 24 20 mov DWORD PTR [rsp+32], eax - 008b4 4c 8b 8c 0d e8 - 00 00 00 mov r9, QWORD PTR coutput$9[rbp+rcx] - 008bc 4c 8b 84 15 e8 - 00 00 00 mov r8, QWORD PTR coutput$9[rbp+rdx] - 008c4 48 8b 95 88 02 - 00 00 mov rdx, QWORD PTR y$15[rbp] - 008cb 48 8b 8d 28 02 - 00 00 mov rcx, QWORD PTR out$12[rbp] - 008d2 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 008d9 ff 90 78 48 00 - 00 call QWORD PTR [rax+18552] - 008df 90 npad 1 -$LN64@load_jpeg_: - -; 4466 : coutput[2], z->s->img_x, n); -; 4467 : } - - 008e0 e9 2d 04 00 00 jmp $LN62@load_jpeg_ -$LN61@load_jpeg_: - -; 4468 : } else if (z->s->img_n == 4) { - - 008e5 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 008ec 48 8b 00 mov rax, QWORD PTR [rax] - 008ef 83 78 08 04 cmp DWORD PTR [rax+8], 4 - 008f3 0f 85 41 03 00 - 00 jne $LN65@load_jpeg_ - -; 4469 : if (z->app14_color_transform == 0) { // CMYK - - 008f9 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 00900 83 b8 4c 48 00 - 00 00 cmp DWORD PTR [rax+18508], 0 - 00907 0f 85 37 01 00 - 00 jne $LN67@load_jpeg_ - -; 4470 : for (i = 0; i < z->s->img_x; ++i) { - - 0090d c7 85 84 00 00 - 00 00 00 00 00 mov DWORD PTR i$6[rbp], 0 - 00917 eb 0e jmp SHORT $LN16@load_jpeg_ -$LN14@load_jpeg_: - 00919 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$6[rbp] - 0091f ff c0 inc eax - 00921 89 85 84 00 00 - 00 mov DWORD PTR i$6[rbp], eax -$LN16@load_jpeg_: - 00927 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 0092e 48 8b 00 mov rax, QWORD PTR [rax] - 00931 8b 00 mov eax, DWORD PTR [rax] - 00933 39 85 84 00 00 - 00 cmp DWORD PTR i$6[rbp], eax - 00939 0f 83 00 01 00 - 00 jae $LN15@load_jpeg_ - -; 4471 : stbi_uc m = coutput[3][i]; - - 0093f b8 08 00 00 00 mov eax, 8 - 00944 48 6b c0 03 imul rax, rax, 3 - 00948 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR i$6[rbp] - 0094e 48 8b 84 05 e8 - 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] - 00956 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] - 0095a 88 85 a4 02 00 - 00 mov BYTE PTR m$16[rbp], al - -; 4472 : out[0] = stbi__blinn_8x8(coutput[0][i], m); - - 00960 b8 08 00 00 00 mov eax, 8 - 00965 48 6b c0 00 imul rax, rax, 0 - 00969 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR i$6[rbp] - 0096f 48 8b 84 05 e8 - 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] - 00977 0f b6 95 a4 02 - 00 00 movzx edx, BYTE PTR m$16[rbp] - 0097e 0f b6 0c 08 movzx ecx, BYTE PTR [rax+rcx] - 00982 e8 00 00 00 00 call stbi__blinn_8x8 - 00987 b9 01 00 00 00 mov ecx, 1 - 0098c 48 6b c9 00 imul rcx, rcx, 0 - 00990 48 8b 95 28 02 - 00 00 mov rdx, QWORD PTR out$12[rbp] - 00997 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 4473 : out[1] = stbi__blinn_8x8(coutput[1][i], m); - - 0099a b8 08 00 00 00 mov eax, 8 - 0099f 48 6b c0 01 imul rax, rax, 1 - 009a3 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR i$6[rbp] - 009a9 48 8b 84 05 e8 - 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] - 009b1 0f b6 95 a4 02 - 00 00 movzx edx, BYTE PTR m$16[rbp] - 009b8 0f b6 0c 08 movzx ecx, BYTE PTR [rax+rcx] - 009bc e8 00 00 00 00 call stbi__blinn_8x8 - 009c1 b9 01 00 00 00 mov ecx, 1 - 009c6 48 6b c9 01 imul rcx, rcx, 1 - 009ca 48 8b 95 28 02 - 00 00 mov rdx, QWORD PTR out$12[rbp] - 009d1 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 4474 : out[2] = stbi__blinn_8x8(coutput[2][i], m); - - 009d4 b8 08 00 00 00 mov eax, 8 - 009d9 48 6b c0 02 imul rax, rax, 2 - 009dd 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR i$6[rbp] - 009e3 48 8b 84 05 e8 - 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] - 009eb 0f b6 95 a4 02 - 00 00 movzx edx, BYTE PTR m$16[rbp] - 009f2 0f b6 0c 08 movzx ecx, BYTE PTR [rax+rcx] - 009f6 e8 00 00 00 00 call stbi__blinn_8x8 - 009fb b9 01 00 00 00 mov ecx, 1 - 00a00 48 6b c9 02 imul rcx, rcx, 2 - 00a04 48 8b 95 28 02 - 00 00 mov rdx, QWORD PTR out$12[rbp] - 00a0b 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 4475 : out[3] = 255; - - 00a0e b8 01 00 00 00 mov eax, 1 - 00a13 48 6b c0 03 imul rax, rax, 3 - 00a17 48 8b 8d 28 02 - 00 00 mov rcx, QWORD PTR out$12[rbp] - 00a1e c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH - -; 4476 : out += n; - - 00a22 48 63 45 04 movsxd rax, DWORD PTR n$[rbp] - 00a26 48 8b 8d 28 02 - 00 00 mov rcx, QWORD PTR out$12[rbp] - 00a2d 48 03 c8 add rcx, rax - 00a30 48 8b c1 mov rax, rcx - 00a33 48 89 85 28 02 - 00 00 mov QWORD PTR out$12[rbp], rax - -; 4477 : } - - 00a3a e9 da fe ff ff jmp $LN14@load_jpeg_ -$LN15@load_jpeg_: - -; 4478 : } else if (z->app14_color_transform == 2) { // YCCK - - 00a3f e9 f1 01 00 00 jmp $LN68@load_jpeg_ -$LN67@load_jpeg_: - 00a44 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 00a4b 83 b8 4c 48 00 - 00 02 cmp DWORD PTR [rax+18508], 2 - 00a52 0f 85 86 01 00 - 00 jne $LN69@load_jpeg_ - -; 4479 : z->YCbCr_to_RGB_kernel(out, y, coutput[1], - - 00a58 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 00a5f 48 8b 00 mov rax, QWORD PTR [rax] - 00a62 b9 08 00 00 00 mov ecx, 8 - 00a67 48 6b c9 02 imul rcx, rcx, 2 - 00a6b ba 08 00 00 00 mov edx, 8 - 00a70 48 6b d2 01 imul rdx, rdx, 1 - 00a74 44 8b 45 04 mov r8d, DWORD PTR n$[rbp] - 00a78 44 89 44 24 28 mov DWORD PTR [rsp+40], r8d - 00a7d 8b 00 mov eax, DWORD PTR [rax] - 00a7f 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00a83 4c 8b 8c 0d e8 - 00 00 00 mov r9, QWORD PTR coutput$9[rbp+rcx] - 00a8b 4c 8b 84 15 e8 - 00 00 00 mov r8, QWORD PTR coutput$9[rbp+rdx] - 00a93 48 8b 95 88 02 - 00 00 mov rdx, QWORD PTR y$15[rbp] - 00a9a 48 8b 8d 28 02 - 00 00 mov rcx, QWORD PTR out$12[rbp] - 00aa1 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 00aa8 ff 90 78 48 00 - 00 call QWORD PTR [rax+18552] - 00aae 90 npad 1 - -; 4480 : coutput[2], z->s->img_x, n); -; 4481 : for (i = 0; i < z->s->img_x; ++i) { - - 00aaf c7 85 84 00 00 - 00 00 00 00 00 mov DWORD PTR i$6[rbp], 0 - 00ab9 eb 0e jmp SHORT $LN19@load_jpeg_ -$LN17@load_jpeg_: - 00abb 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$6[rbp] - 00ac1 ff c0 inc eax - 00ac3 89 85 84 00 00 - 00 mov DWORD PTR i$6[rbp], eax -$LN19@load_jpeg_: - 00ac9 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 00ad0 48 8b 00 mov rax, QWORD PTR [rax] - 00ad3 8b 00 mov eax, DWORD PTR [rax] - 00ad5 39 85 84 00 00 - 00 cmp DWORD PTR i$6[rbp], eax - 00adb 0f 83 fb 00 00 - 00 jae $LN18@load_jpeg_ - -; 4482 : stbi_uc m = coutput[3][i]; - - 00ae1 b8 08 00 00 00 mov eax, 8 - 00ae6 48 6b c0 03 imul rax, rax, 3 - 00aea 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR i$6[rbp] - 00af0 48 8b 84 05 e8 - 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] - 00af8 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] - 00afc 88 85 c4 02 00 - 00 mov BYTE PTR m$17[rbp], al - -; 4483 : out[0] = stbi__blinn_8x8(255 - out[0], m); - - 00b02 b8 01 00 00 00 mov eax, 1 - 00b07 48 6b c0 00 imul rax, rax, 0 - 00b0b 48 8b 8d 28 02 - 00 00 mov rcx, QWORD PTR out$12[rbp] - 00b12 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00b16 b9 ff 00 00 00 mov ecx, 255 ; 000000ffH - 00b1b 2b c8 sub ecx, eax - 00b1d 8b c1 mov eax, ecx - 00b1f 0f b6 95 c4 02 - 00 00 movzx edx, BYTE PTR m$17[rbp] - 00b26 0f b6 c8 movzx ecx, al - 00b29 e8 00 00 00 00 call stbi__blinn_8x8 - 00b2e b9 01 00 00 00 mov ecx, 1 - 00b33 48 6b c9 00 imul rcx, rcx, 0 - 00b37 48 8b 95 28 02 - 00 00 mov rdx, QWORD PTR out$12[rbp] - 00b3e 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 4484 : out[1] = stbi__blinn_8x8(255 - out[1], m); - - 00b41 b8 01 00 00 00 mov eax, 1 - 00b46 48 6b c0 01 imul rax, rax, 1 - 00b4a 48 8b 8d 28 02 - 00 00 mov rcx, QWORD PTR out$12[rbp] - 00b51 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00b55 b9 ff 00 00 00 mov ecx, 255 ; 000000ffH - 00b5a 2b c8 sub ecx, eax - 00b5c 8b c1 mov eax, ecx - 00b5e 0f b6 95 c4 02 - 00 00 movzx edx, BYTE PTR m$17[rbp] - 00b65 0f b6 c8 movzx ecx, al - 00b68 e8 00 00 00 00 call stbi__blinn_8x8 - 00b6d b9 01 00 00 00 mov ecx, 1 - 00b72 48 6b c9 01 imul rcx, rcx, 1 - 00b76 48 8b 95 28 02 - 00 00 mov rdx, QWORD PTR out$12[rbp] - 00b7d 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 4485 : out[2] = stbi__blinn_8x8(255 - out[2], m); - - 00b80 b8 01 00 00 00 mov eax, 1 - 00b85 48 6b c0 02 imul rax, rax, 2 - 00b89 48 8b 8d 28 02 - 00 00 mov rcx, QWORD PTR out$12[rbp] - 00b90 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00b94 b9 ff 00 00 00 mov ecx, 255 ; 000000ffH - 00b99 2b c8 sub ecx, eax - 00b9b 8b c1 mov eax, ecx - 00b9d 0f b6 95 c4 02 - 00 00 movzx edx, BYTE PTR m$17[rbp] - 00ba4 0f b6 c8 movzx ecx, al - 00ba7 e8 00 00 00 00 call stbi__blinn_8x8 - 00bac b9 01 00 00 00 mov ecx, 1 - 00bb1 48 6b c9 02 imul rcx, rcx, 2 - 00bb5 48 8b 95 28 02 - 00 00 mov rdx, QWORD PTR out$12[rbp] - 00bbc 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 4486 : out += n; - - 00bbf 48 63 45 04 movsxd rax, DWORD PTR n$[rbp] - 00bc3 48 8b 8d 28 02 - 00 00 mov rcx, QWORD PTR out$12[rbp] - 00bca 48 03 c8 add rcx, rax - 00bcd 48 8b c1 mov rax, rcx - 00bd0 48 89 85 28 02 - 00 00 mov QWORD PTR out$12[rbp], rax - -; 4487 : } - - 00bd7 e9 df fe ff ff jmp $LN17@load_jpeg_ -$LN18@load_jpeg_: - -; 4488 : } else { // YCbCr + alpha? Ignore the fourth channel for now - - 00bdc eb 57 jmp SHORT $LN70@load_jpeg_ -$LN69@load_jpeg_: - -; 4489 : z->YCbCr_to_RGB_kernel(out, y, coutput[1], - - 00bde 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 00be5 48 8b 00 mov rax, QWORD PTR [rax] - 00be8 b9 08 00 00 00 mov ecx, 8 - 00bed 48 6b c9 02 imul rcx, rcx, 2 - 00bf1 ba 08 00 00 00 mov edx, 8 - 00bf6 48 6b d2 01 imul rdx, rdx, 1 - 00bfa 44 8b 45 04 mov r8d, DWORD PTR n$[rbp] - 00bfe 44 89 44 24 28 mov DWORD PTR [rsp+40], r8d - 00c03 8b 00 mov eax, DWORD PTR [rax] - 00c05 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00c09 4c 8b 8c 0d e8 - 00 00 00 mov r9, QWORD PTR coutput$9[rbp+rcx] - 00c11 4c 8b 84 15 e8 - 00 00 00 mov r8, QWORD PTR coutput$9[rbp+rdx] - 00c19 48 8b 95 88 02 - 00 00 mov rdx, QWORD PTR y$15[rbp] - 00c20 48 8b 8d 28 02 - 00 00 mov rcx, QWORD PTR out$12[rbp] - 00c27 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 00c2e ff 90 78 48 00 - 00 call QWORD PTR [rax+18552] - 00c34 90 npad 1 -$LN70@load_jpeg_: -$LN68@load_jpeg_: - -; 4490 : coutput[2], z->s->img_x, n); -; 4491 : } -; 4492 : } else - - 00c35 e9 d8 00 00 00 jmp $LN66@load_jpeg_ -$LN65@load_jpeg_: - -; 4493 : for (i = 0; i < z->s->img_x; ++i) { - - 00c3a c7 85 84 00 00 - 00 00 00 00 00 mov DWORD PTR i$6[rbp], 0 - 00c44 eb 0e jmp SHORT $LN22@load_jpeg_ -$LN20@load_jpeg_: - 00c46 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$6[rbp] - 00c4c ff c0 inc eax - 00c4e 89 85 84 00 00 - 00 mov DWORD PTR i$6[rbp], eax -$LN22@load_jpeg_: - 00c54 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 00c5b 48 8b 00 mov rax, QWORD PTR [rax] - 00c5e 8b 00 mov eax, DWORD PTR [rax] - 00c60 39 85 84 00 00 - 00 cmp DWORD PTR i$6[rbp], eax - 00c66 0f 83 a6 00 00 - 00 jae $LN21@load_jpeg_ - -; 4494 : out[0] = out[1] = out[2] = y[i]; - - 00c6c 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$6[rbp] - 00c72 b9 01 00 00 00 mov ecx, 1 - 00c77 48 6b c9 02 imul rcx, rcx, 2 - 00c7b 48 8b 95 28 02 - 00 00 mov rdx, QWORD PTR out$12[rbp] - 00c82 4c 8b 85 88 02 - 00 00 mov r8, QWORD PTR y$15[rbp] - 00c89 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00c8e 88 04 0a mov BYTE PTR [rdx+rcx], al - 00c91 b8 01 00 00 00 mov eax, 1 - 00c96 48 6b c0 02 imul rax, rax, 2 - 00c9a b9 01 00 00 00 mov ecx, 1 - 00c9f 48 6b c9 01 imul rcx, rcx, 1 - 00ca3 48 8b 95 28 02 - 00 00 mov rdx, QWORD PTR out$12[rbp] - 00caa 4c 8b 85 28 02 - 00 00 mov r8, QWORD PTR out$12[rbp] - 00cb1 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00cb6 88 04 0a mov BYTE PTR [rdx+rcx], al - 00cb9 b8 01 00 00 00 mov eax, 1 - 00cbe 48 6b c0 01 imul rax, rax, 1 - 00cc2 b9 01 00 00 00 mov ecx, 1 - 00cc7 48 6b c9 00 imul rcx, rcx, 0 - 00ccb 48 8b 95 28 02 - 00 00 mov rdx, QWORD PTR out$12[rbp] - 00cd2 4c 8b 85 28 02 - 00 00 mov r8, QWORD PTR out$12[rbp] - 00cd9 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00cde 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 4495 : out[3] = 255; // not used if n==3 - - 00ce1 b8 01 00 00 00 mov eax, 1 - 00ce6 48 6b c0 03 imul rax, rax, 3 - 00cea 48 8b 8d 28 02 - 00 00 mov rcx, QWORD PTR out$12[rbp] - 00cf1 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH - -; 4496 : out += n; - - 00cf5 48 63 45 04 movsxd rax, DWORD PTR n$[rbp] - 00cf9 48 8b 8d 28 02 - 00 00 mov rcx, QWORD PTR out$12[rbp] - 00d00 48 03 c8 add rcx, rax - 00d03 48 8b c1 mov rax, rcx - 00d06 48 89 85 28 02 - 00 00 mov QWORD PTR out$12[rbp], rax - -; 4497 : } - - 00d0d e9 34 ff ff ff jmp $LN20@load_jpeg_ -$LN21@load_jpeg_: -$LN66@load_jpeg_: -$LN62@load_jpeg_: - -; 4498 : } else { - - 00d12 e9 10 05 00 00 jmp $LN60@load_jpeg_ -$LN59@load_jpeg_: - -; 4499 : if (is_rgb) { - - 00d17 83 7d 44 00 cmp DWORD PTR is_rgb$[rbp], 0 - 00d1b 0f 84 ab 01 00 - 00 je $LN71@load_jpeg_ - -; 4500 : if (n == 1) - - 00d21 83 7d 04 01 cmp DWORD PTR n$[rbp], 1 - 00d25 0f 85 c1 00 00 - 00 jne $LN73@load_jpeg_ - -; 4501 : for (i = 0; i < z->s->img_x; ++i) - - 00d2b c7 85 84 00 00 - 00 00 00 00 00 mov DWORD PTR i$6[rbp], 0 - 00d35 eb 0e jmp SHORT $LN25@load_jpeg_ -$LN23@load_jpeg_: - 00d37 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$6[rbp] - 00d3d ff c0 inc eax - 00d3f 89 85 84 00 00 - 00 mov DWORD PTR i$6[rbp], eax -$LN25@load_jpeg_: - 00d45 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 00d4c 48 8b 00 mov rax, QWORD PTR [rax] - 00d4f 8b 00 mov eax, DWORD PTR [rax] - 00d51 39 85 84 00 00 - 00 cmp DWORD PTR i$6[rbp], eax - 00d57 0f 83 8a 00 00 - 00 jae $LN24@load_jpeg_ - -; 4502 : *out++ = stbi__compute_y(coutput[0][i], - - 00d5d b8 08 00 00 00 mov eax, 8 - 00d62 48 6b c0 02 imul rax, rax, 2 - 00d66 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR i$6[rbp] - 00d6c 48 8b 84 05 e8 - 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] - 00d74 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] - 00d78 b9 08 00 00 00 mov ecx, 8 - 00d7d 48 6b c9 01 imul rcx, rcx, 1 - 00d81 8b 95 84 00 00 - 00 mov edx, DWORD PTR i$6[rbp] - 00d87 48 8b 8c 0d e8 - 00 00 00 mov rcx, QWORD PTR coutput$9[rbp+rcx] - 00d8f 0f b6 0c 11 movzx ecx, BYTE PTR [rcx+rdx] - 00d93 ba 08 00 00 00 mov edx, 8 - 00d98 48 6b d2 00 imul rdx, rdx, 0 - 00d9c 44 8b 85 84 00 - 00 00 mov r8d, DWORD PTR i$6[rbp] - 00da3 48 8b 94 15 e8 - 00 00 00 mov rdx, QWORD PTR coutput$9[rbp+rdx] - 00dab 42 0f b6 14 02 movzx edx, BYTE PTR [rdx+r8] - 00db0 89 95 f4 04 00 - 00 mov DWORD PTR tv516[rbp], edx - 00db6 44 8b c0 mov r8d, eax - 00db9 8b d1 mov edx, ecx - 00dbb 8b 85 f4 04 00 - 00 mov eax, DWORD PTR tv516[rbp] - 00dc1 8b c8 mov ecx, eax - 00dc3 e8 00 00 00 00 call stbi__compute_y - 00dc8 48 8b 8d 28 02 - 00 00 mov rcx, QWORD PTR out$12[rbp] - 00dcf 88 01 mov BYTE PTR [rcx], al - 00dd1 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR out$12[rbp] - 00dd8 48 ff c0 inc rax - 00ddb 48 89 85 28 02 - 00 00 mov QWORD PTR out$12[rbp], rax - 00de2 e9 50 ff ff ff jmp $LN23@load_jpeg_ -$LN24@load_jpeg_: - -; 4503 : coutput[1][i], -; 4504 : coutput[2][i]); - - 00de7 e9 db 00 00 00 jmp $LN74@load_jpeg_ -$LN73@load_jpeg_: - -; 4505 : else { -; 4506 : for (i = 0; i < z->s->img_x; ++i, out += 2) { - - 00dec c7 85 84 00 00 - 00 00 00 00 00 mov DWORD PTR i$6[rbp], 0 - 00df6 eb 20 jmp SHORT $LN28@load_jpeg_ -$LN26@load_jpeg_: - 00df8 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$6[rbp] - 00dfe ff c0 inc eax - 00e00 89 85 84 00 00 - 00 mov DWORD PTR i$6[rbp], eax - 00e06 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR out$12[rbp] - 00e0d 48 83 c0 02 add rax, 2 - 00e11 48 89 85 28 02 - 00 00 mov QWORD PTR out$12[rbp], rax -$LN28@load_jpeg_: - 00e18 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 00e1f 48 8b 00 mov rax, QWORD PTR [rax] - 00e22 8b 00 mov eax, DWORD PTR [rax] - 00e24 39 85 84 00 00 - 00 cmp DWORD PTR i$6[rbp], eax - 00e2a 0f 83 97 00 00 - 00 jae $LN27@load_jpeg_ - -; 4507 : out[0] = stbi__compute_y(coutput[0][i], - - 00e30 b8 08 00 00 00 mov eax, 8 - 00e35 48 6b c0 02 imul rax, rax, 2 - 00e39 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR i$6[rbp] - 00e3f 48 8b 84 05 e8 - 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] - 00e47 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] - 00e4b b9 08 00 00 00 mov ecx, 8 - 00e50 48 6b c9 01 imul rcx, rcx, 1 - 00e54 8b 95 84 00 00 - 00 mov edx, DWORD PTR i$6[rbp] - 00e5a 48 8b 8c 0d e8 - 00 00 00 mov rcx, QWORD PTR coutput$9[rbp+rcx] - 00e62 0f b6 0c 11 movzx ecx, BYTE PTR [rcx+rdx] - 00e66 ba 08 00 00 00 mov edx, 8 - 00e6b 48 6b d2 00 imul rdx, rdx, 0 - 00e6f 44 8b 85 84 00 - 00 00 mov r8d, DWORD PTR i$6[rbp] - 00e76 48 8b 94 15 e8 - 00 00 00 mov rdx, QWORD PTR coutput$9[rbp+rdx] - 00e7e 42 0f b6 14 02 movzx edx, BYTE PTR [rdx+r8] - 00e83 89 95 f4 04 00 - 00 mov DWORD PTR tv545[rbp], edx - 00e89 44 8b c0 mov r8d, eax - 00e8c 8b d1 mov edx, ecx - 00e8e 8b 85 f4 04 00 - 00 mov eax, DWORD PTR tv545[rbp] - 00e94 8b c8 mov ecx, eax - 00e96 e8 00 00 00 00 call stbi__compute_y - 00e9b b9 01 00 00 00 mov ecx, 1 - 00ea0 48 6b c9 00 imul rcx, rcx, 0 - 00ea4 48 8b 95 28 02 - 00 00 mov rdx, QWORD PTR out$12[rbp] - 00eab 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 4508 : coutput[1][i], -; 4509 : coutput[2][i]); -; 4510 : out[1] = 255; - - 00eae b8 01 00 00 00 mov eax, 1 - 00eb3 48 6b c0 01 imul rax, rax, 1 - 00eb7 48 8b 8d 28 02 - 00 00 mov rcx, QWORD PTR out$12[rbp] - 00ebe c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH - -; 4511 : } - - 00ec2 e9 31 ff ff ff jmp $LN26@load_jpeg_ -$LN27@load_jpeg_: -$LN74@load_jpeg_: - -; 4512 : } - - 00ec7 e9 5b 03 00 00 jmp $LN72@load_jpeg_ -$LN71@load_jpeg_: - -; 4513 : } else if (z->s->img_n == 4 && z->app14_color_transform == 0) { - - 00ecc 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 00ed3 48 8b 00 mov rax, QWORD PTR [rax] - 00ed6 83 78 08 04 cmp DWORD PTR [rax+8], 4 - 00eda 0f 85 64 01 00 - 00 jne $LN75@load_jpeg_ - 00ee0 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 00ee7 83 b8 4c 48 00 - 00 00 cmp DWORD PTR [rax+18508], 0 - 00eee 0f 85 50 01 00 - 00 jne $LN75@load_jpeg_ - -; 4514 : for (i = 0; i < z->s->img_x; ++i) { - - 00ef4 c7 85 84 00 00 - 00 00 00 00 00 mov DWORD PTR i$6[rbp], 0 - 00efe eb 0e jmp SHORT $LN31@load_jpeg_ -$LN29@load_jpeg_: - 00f00 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$6[rbp] - 00f06 ff c0 inc eax - 00f08 89 85 84 00 00 - 00 mov DWORD PTR i$6[rbp], eax -$LN31@load_jpeg_: - 00f0e 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 00f15 48 8b 00 mov rax, QWORD PTR [rax] - 00f18 8b 00 mov eax, DWORD PTR [rax] - 00f1a 39 85 84 00 00 - 00 cmp DWORD PTR i$6[rbp], eax - 00f20 0f 83 19 01 00 - 00 jae $LN30@load_jpeg_ - -; 4515 : stbi_uc m = coutput[3][i]; - - 00f26 b8 08 00 00 00 mov eax, 8 - 00f2b 48 6b c0 03 imul rax, rax, 3 - 00f2f 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR i$6[rbp] - 00f35 48 8b 84 05 e8 - 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] - 00f3d 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] - 00f41 88 85 e4 02 00 - 00 mov BYTE PTR m$18[rbp], al - -; 4516 : stbi_uc r = stbi__blinn_8x8(coutput[0][i], m); - - 00f47 b8 08 00 00 00 mov eax, 8 - 00f4c 48 6b c0 00 imul rax, rax, 0 - 00f50 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR i$6[rbp] - 00f56 48 8b 84 05 e8 - 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] - 00f5e 0f b6 95 e4 02 - 00 00 movzx edx, BYTE PTR m$18[rbp] - 00f65 0f b6 0c 08 movzx ecx, BYTE PTR [rax+rcx] - 00f69 e8 00 00 00 00 call stbi__blinn_8x8 - 00f6e 88 85 04 03 00 - 00 mov BYTE PTR r$19[rbp], al - -; 4517 : stbi_uc g = stbi__blinn_8x8(coutput[1][i], m); - - 00f74 b8 08 00 00 00 mov eax, 8 - 00f79 48 6b c0 01 imul rax, rax, 1 - 00f7d 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR i$6[rbp] - 00f83 48 8b 84 05 e8 - 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] - 00f8b 0f b6 95 e4 02 - 00 00 movzx edx, BYTE PTR m$18[rbp] - 00f92 0f b6 0c 08 movzx ecx, BYTE PTR [rax+rcx] - 00f96 e8 00 00 00 00 call stbi__blinn_8x8 - 00f9b 88 85 24 03 00 - 00 mov BYTE PTR g$20[rbp], al - -; 4518 : stbi_uc b = stbi__blinn_8x8(coutput[2][i], m); - - 00fa1 b8 08 00 00 00 mov eax, 8 - 00fa6 48 6b c0 02 imul rax, rax, 2 - 00faa 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR i$6[rbp] - 00fb0 48 8b 84 05 e8 - 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] - 00fb8 0f b6 95 e4 02 - 00 00 movzx edx, BYTE PTR m$18[rbp] - 00fbf 0f b6 0c 08 movzx ecx, BYTE PTR [rax+rcx] - 00fc3 e8 00 00 00 00 call stbi__blinn_8x8 - 00fc8 88 85 44 03 00 - 00 mov BYTE PTR b$21[rbp], al - -; 4519 : out[0] = stbi__compute_y(r, g, b); - - 00fce 0f b6 85 44 03 - 00 00 movzx eax, BYTE PTR b$21[rbp] - 00fd5 0f b6 8d 24 03 - 00 00 movzx ecx, BYTE PTR g$20[rbp] - 00fdc 0f b6 95 04 03 - 00 00 movzx edx, BYTE PTR r$19[rbp] - 00fe3 89 95 f4 04 00 - 00 mov DWORD PTR tv626[rbp], edx - 00fe9 44 8b c0 mov r8d, eax - 00fec 8b d1 mov edx, ecx - 00fee 8b 85 f4 04 00 - 00 mov eax, DWORD PTR tv626[rbp] - 00ff4 8b c8 mov ecx, eax - 00ff6 e8 00 00 00 00 call stbi__compute_y - 00ffb b9 01 00 00 00 mov ecx, 1 - 01000 48 6b c9 00 imul rcx, rcx, 0 - 01004 48 8b 95 28 02 - 00 00 mov rdx, QWORD PTR out$12[rbp] - 0100b 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 4520 : out[1] = 255; - - 0100e b8 01 00 00 00 mov eax, 1 - 01013 48 6b c0 01 imul rax, rax, 1 - 01017 48 8b 8d 28 02 - 00 00 mov rcx, QWORD PTR out$12[rbp] - 0101e c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH - -; 4521 : out += n; - - 01022 48 63 45 04 movsxd rax, DWORD PTR n$[rbp] - 01026 48 8b 8d 28 02 - 00 00 mov rcx, QWORD PTR out$12[rbp] - 0102d 48 03 c8 add rcx, rax - 01030 48 8b c1 mov rax, rcx - 01033 48 89 85 28 02 - 00 00 mov QWORD PTR out$12[rbp], rax - -; 4522 : } - - 0103a e9 c1 fe ff ff jmp $LN29@load_jpeg_ -$LN30@load_jpeg_: - -; 4523 : } else if (z->s->img_n == 4 && z->app14_color_transform == 2) { - - 0103f e9 e3 01 00 00 jmp $LN76@load_jpeg_ -$LN75@load_jpeg_: - 01044 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 0104b 48 8b 00 mov rax, QWORD PTR [rax] - 0104e 83 78 08 04 cmp DWORD PTR [rax+8], 4 - 01052 0f 85 e7 00 00 - 00 jne $LN77@load_jpeg_ - 01058 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 0105f 83 b8 4c 48 00 - 00 02 cmp DWORD PTR [rax+18508], 2 - 01066 0f 85 d3 00 00 - 00 jne $LN77@load_jpeg_ - -; 4524 : for (i = 0; i < z->s->img_x; ++i) { - - 0106c c7 85 84 00 00 - 00 00 00 00 00 mov DWORD PTR i$6[rbp], 0 - 01076 eb 0e jmp SHORT $LN34@load_jpeg_ -$LN32@load_jpeg_: - 01078 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$6[rbp] - 0107e ff c0 inc eax - 01080 89 85 84 00 00 - 00 mov DWORD PTR i$6[rbp], eax -$LN34@load_jpeg_: - 01086 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 0108d 48 8b 00 mov rax, QWORD PTR [rax] - 01090 8b 00 mov eax, DWORD PTR [rax] - 01092 39 85 84 00 00 - 00 cmp DWORD PTR i$6[rbp], eax - 01098 0f 83 9c 00 00 - 00 jae $LN33@load_jpeg_ - -; 4525 : out[0] = stbi__blinn_8x8(255 - coutput[0][i], - - 0109e b8 08 00 00 00 mov eax, 8 - 010a3 48 6b c0 03 imul rax, rax, 3 - 010a7 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR i$6[rbp] - 010ad 48 8b 84 05 e8 - 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] - 010b5 ba 08 00 00 00 mov edx, 8 - 010ba 48 6b d2 00 imul rdx, rdx, 0 - 010be 44 8b 85 84 00 - 00 00 mov r8d, DWORD PTR i$6[rbp] - 010c5 48 8b 94 15 e8 - 00 00 00 mov rdx, QWORD PTR coutput$9[rbp+rdx] - 010cd 42 0f b6 14 02 movzx edx, BYTE PTR [rdx+r8] - 010d2 41 b8 ff 00 00 - 00 mov r8d, 255 ; 000000ffH - 010d8 44 2b c2 sub r8d, edx - 010db 41 8b d0 mov edx, r8d - 010de 89 95 f4 04 00 - 00 mov DWORD PTR tv656[rbp], edx - 010e4 0f b6 14 08 movzx edx, BYTE PTR [rax+rcx] - 010e8 8b 85 f4 04 00 - 00 mov eax, DWORD PTR tv656[rbp] - 010ee 0f b6 c8 movzx ecx, al - 010f1 e8 00 00 00 00 call stbi__blinn_8x8 - 010f6 b9 01 00 00 00 mov ecx, 1 - 010fb 48 6b c9 00 imul rcx, rcx, 0 - 010ff 48 8b 95 28 02 - 00 00 mov rdx, QWORD PTR out$12[rbp] - 01106 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 4526 : coutput[3][i]); -; 4527 : out[1] = 255; - - 01109 b8 01 00 00 00 mov eax, 1 - 0110e 48 6b c0 01 imul rax, rax, 1 - 01112 48 8b 8d 28 02 - 00 00 mov rcx, QWORD PTR out$12[rbp] - 01119 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH - -; 4528 : out += n; - - 0111d 48 63 45 04 movsxd rax, DWORD PTR n$[rbp] - 01121 48 8b 8d 28 02 - 00 00 mov rcx, QWORD PTR out$12[rbp] - 01128 48 03 c8 add rcx, rax - 0112b 48 8b c1 mov rax, rcx - 0112e 48 89 85 28 02 - 00 00 mov QWORD PTR out$12[rbp], rax - -; 4529 : } - - 01135 e9 3e ff ff ff jmp $LN32@load_jpeg_ -$LN33@load_jpeg_: - -; 4530 : } else { - - 0113a e9 e8 00 00 00 jmp $LN78@load_jpeg_ -$LN77@load_jpeg_: - -; 4531 : stbi_uc *y = coutput[0]; - - 0113f b8 08 00 00 00 mov eax, 8 - 01144 48 6b c0 00 imul rax, rax, 0 - 01148 48 8b 84 05 e8 - 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] - 01150 48 89 85 68 03 - 00 00 mov QWORD PTR y$22[rbp], rax - -; 4532 : if (n == 1) - - 01157 83 7d 04 01 cmp DWORD PTR n$[rbp], 1 - 0115b 75 54 jne SHORT $LN79@load_jpeg_ - -; 4533 : for (i = 0; i < z->s->img_x; ++i) - - 0115d c7 85 84 00 00 - 00 00 00 00 00 mov DWORD PTR i$6[rbp], 0 - 01167 eb 0e jmp SHORT $LN37@load_jpeg_ -$LN35@load_jpeg_: - 01169 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$6[rbp] - 0116f ff c0 inc eax - 01171 89 85 84 00 00 - 00 mov DWORD PTR i$6[rbp], eax -$LN37@load_jpeg_: - 01177 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 0117e 48 8b 00 mov rax, QWORD PTR [rax] - 01181 8b 00 mov eax, DWORD PTR [rax] - 01183 39 85 84 00 00 - 00 cmp DWORD PTR i$6[rbp], eax - 01189 73 24 jae SHORT $LN36@load_jpeg_ - -; 4534 : out[i] = y[i]; - - 0118b 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$6[rbp] - 01191 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR i$6[rbp] - 01197 48 8b 95 28 02 - 00 00 mov rdx, QWORD PTR out$12[rbp] - 0119e 4c 8b 85 68 03 - 00 00 mov r8, QWORD PTR y$22[rbp] - 011a5 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 011aa 88 04 0a mov BYTE PTR [rdx+rcx], al - 011ad eb ba jmp SHORT $LN35@load_jpeg_ -$LN36@load_jpeg_: - 011af eb 76 jmp SHORT $LN80@load_jpeg_ -$LN79@load_jpeg_: - -; 4535 : else -; 4536 : for (i = 0; i < z->s->img_x; ++i) { - - 011b1 c7 85 84 00 00 - 00 00 00 00 00 mov DWORD PTR i$6[rbp], 0 - 011bb eb 0e jmp SHORT $LN40@load_jpeg_ -$LN38@load_jpeg_: - 011bd 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$6[rbp] - 011c3 ff c0 inc eax - 011c5 89 85 84 00 00 - 00 mov DWORD PTR i$6[rbp], eax -$LN40@load_jpeg_: - 011cb 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 011d2 48 8b 00 mov rax, QWORD PTR [rax] - 011d5 8b 00 mov eax, DWORD PTR [rax] - 011d7 39 85 84 00 00 - 00 cmp DWORD PTR i$6[rbp], eax - 011dd 73 48 jae SHORT $LN39@load_jpeg_ - -; 4537 : *out++ = y[i]; - - 011df 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$6[rbp] - 011e5 48 8b 8d 28 02 - 00 00 mov rcx, QWORD PTR out$12[rbp] - 011ec 48 8b 95 68 03 - 00 00 mov rdx, QWORD PTR y$22[rbp] - 011f3 0f b6 04 02 movzx eax, BYTE PTR [rdx+rax] - 011f7 88 01 mov BYTE PTR [rcx], al - 011f9 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR out$12[rbp] - 01200 48 ff c0 inc rax - 01203 48 89 85 28 02 - 00 00 mov QWORD PTR out$12[rbp], rax - -; 4538 : *out++ = 255; - - 0120a 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR out$12[rbp] - 01211 c6 00 ff mov BYTE PTR [rax], 255 ; 000000ffH - 01214 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR out$12[rbp] - 0121b 48 ff c0 inc rax - 0121e 48 89 85 28 02 - 00 00 mov QWORD PTR out$12[rbp], rax - -; 4539 : } - - 01225 eb 96 jmp SHORT $LN38@load_jpeg_ -$LN39@load_jpeg_: -$LN80@load_jpeg_: -$LN78@load_jpeg_: -$LN76@load_jpeg_: -$LN72@load_jpeg_: -$LN60@load_jpeg_: - -; 4540 : } -; 4541 : } -; 4542 : } - - 01227 e9 f2 f2 ff ff jmp $LN5@load_jpeg_ -$LN6@load_jpeg_: - -; 4543 : stbi__cleanup_jpeg(z); - - 0122c 48 8b 8d 30 05 - 00 00 mov rcx, QWORD PTR z$[rbp] - 01233 e8 00 00 00 00 call stbi__cleanup_jpeg - 01238 90 npad 1 - -; 4544 : *out_x = z->s->img_x; - - 01239 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 01240 48 8b 00 mov rax, QWORD PTR [rax] - 01243 48 8b 8d 38 05 - 00 00 mov rcx, QWORD PTR out_x$[rbp] - 0124a 8b 00 mov eax, DWORD PTR [rax] - 0124c 89 01 mov DWORD PTR [rcx], eax - -; 4545 : *out_y = z->s->img_y; - - 0124e 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 01255 48 8b 00 mov rax, QWORD PTR [rax] - 01258 48 8b 8d 40 05 - 00 00 mov rcx, QWORD PTR out_y$[rbp] - 0125f 8b 40 04 mov eax, DWORD PTR [rax+4] - 01262 89 01 mov DWORD PTR [rcx], eax - -; 4546 : if (comp) - - 01264 48 83 bd 48 05 - 00 00 00 cmp QWORD PTR comp$[rbp], 0 - 0126c 74 35 je SHORT $LN81@load_jpeg_ - -; 4547 : *comp = z->s->img_n >= 3 ? 3 : 1; // report original components, not output - - 0126e 48 8b 85 30 05 - 00 00 mov rax, QWORD PTR z$[rbp] - 01275 48 8b 00 mov rax, QWORD PTR [rax] - 01278 83 78 08 03 cmp DWORD PTR [rax+8], 3 - 0127c 7c 0c jl SHORT $LN103@load_jpeg_ - 0127e c7 85 f4 04 00 - 00 03 00 00 00 mov DWORD PTR tv694[rbp], 3 - 01288 eb 0a jmp SHORT $LN104@load_jpeg_ -$LN103@load_jpeg_: - 0128a c7 85 f4 04 00 - 00 01 00 00 00 mov DWORD PTR tv694[rbp], 1 -$LN104@load_jpeg_: - 01294 48 8b 85 48 05 - 00 00 mov rax, QWORD PTR comp$[rbp] - 0129b 8b 8d f4 04 00 - 00 mov ecx, DWORD PTR tv694[rbp] - 012a1 89 08 mov DWORD PTR [rax], ecx -$LN81@load_jpeg_: - -; 4548 : return output; - - 012a3 48 8b 85 c8 00 - 00 00 mov rax, QWORD PTR output$8[rbp] -$LN1@load_jpeg_: - -; 4549 : } -; 4550 : } - - 012aa 48 8b f8 mov rdi, rax - 012ad 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 012b1 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:load_jpeg_image$rtcFrameData - 012b8 e8 00 00 00 00 call _RTC_CheckStackVars - 012bd 48 8b c7 mov rax, rdi - 012c0 48 8b 8d 08 05 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 012c7 48 33 cd xor rcx, rbp - 012ca e8 00 00 00 00 call __security_check_cookie - 012cf 48 8d a5 18 05 - 00 00 lea rsp, QWORD PTR [rbp+1304] - 012d6 5f pop rdi - 012d7 5d pop rbp - 012d8 c3 ret 0 -load_jpeg_image ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__blinn_8x8 -_TEXT SEGMENT -t$ = 4 -x$ = 256 -y$ = 264 -stbi__blinn_8x8 PROC ; COMDAT - -; 4353 : { - - 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl - 00004 88 4c 24 08 mov BYTE PTR [rsp+8], cl - 00008 55 push rbp - 00009 57 push rdi - 0000a 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00011 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00016 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00022 90 npad 1 - -; 4354 : unsigned int t = x * y + 128; - - 00023 0f b6 85 00 01 - 00 00 movzx eax, BYTE PTR x$[rbp] - 0002a 0f b6 8d 08 01 - 00 00 movzx ecx, BYTE PTR y$[rbp] - 00031 0f af c1 imul eax, ecx - 00034 05 80 00 00 00 add eax, 128 ; 00000080H - 00039 89 45 04 mov DWORD PTR t$[rbp], eax - -; 4355 : return (stbi_uc)((t + (t >> 8)) >> 8); - - 0003c 8b 45 04 mov eax, DWORD PTR t$[rbp] - 0003f c1 e8 08 shr eax, 8 - 00042 8b 4d 04 mov ecx, DWORD PTR t$[rbp] - 00045 03 c8 add ecx, eax - 00047 8b c1 mov eax, ecx - 00049 c1 e8 08 shr eax, 8 - -; 4356 : } - - 0004c 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00053 5f pop rdi - 00054 5d pop rbp - 00055 c3 ret 0 -stbi__blinn_8x8 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__cleanup_jpeg -_TEXT SEGMENT -j$ = 224 -stbi__cleanup_jpeg PROC ; COMDAT - -; 4338 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 4339 : stbi__free_jpeg_components(j, j->s->img_n, 0); - - 00020 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR j$[rbp] - 00027 48 8b 00 mov rax, QWORD PTR [rax] - 0002a 45 33 c0 xor r8d, r8d - 0002d 8b 50 08 mov edx, DWORD PTR [rax+8] - 00030 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00037 e8 00 00 00 00 call stbi__free_jpeg_components - 0003c 90 npad 1 - -; 4340 : } - - 0003d 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 -stbi__cleanup_jpeg ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__setup_jpeg -_TEXT SEGMENT -j$ = 224 -stbi__setup_jpeg PROC ; COMDAT - -; 4316 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 4317 : j->idct_block_kernel = stbi__idct_block; - - 00020 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR j$[rbp] - 00027 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__idct_block - 0002e 48 89 88 70 48 - 00 00 mov QWORD PTR [rax+18544], rcx - -; 4318 : j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_row; - - 00035 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR j$[rbp] - 0003c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__YCbCr_to_RGB_row - 00043 48 89 88 78 48 - 00 00 mov QWORD PTR [rax+18552], rcx - -; 4319 : j->resample_row_hv_2_kernel = stbi__resample_row_hv_2; - - 0004a 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR j$[rbp] - 00051 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__resample_row_hv_2 - 00058 48 89 88 80 48 - 00 00 mov QWORD PTR [rax+18560], rcx - -; 4320 : -; 4321 : #ifdef STBI_SSE2 -; 4322 : if (stbi__sse2_available()) { - - 0005f e8 00 00 00 00 call stbi__sse2_available - 00064 85 c0 test eax, eax - 00066 74 3f je SHORT $LN2@stbi__setu - -; 4323 : j->idct_block_kernel = stbi__idct_simd; - - 00068 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR j$[rbp] - 0006f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__idct_simd - 00076 48 89 88 70 48 - 00 00 mov QWORD PTR [rax+18544], rcx - -; 4324 : j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; - - 0007d 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR j$[rbp] - 00084 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__YCbCr_to_RGB_simd - 0008b 48 89 88 78 48 - 00 00 mov QWORD PTR [rax+18552], rcx - -; 4325 : j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; - - 00092 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR j$[rbp] - 00099 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__resample_row_hv_2_simd - 000a0 48 89 88 80 48 - 00 00 mov QWORD PTR [rax+18560], rcx -$LN2@stbi__setu: - -; 4326 : } -; 4327 : #endif -; 4328 : -; 4329 : #ifdef STBI_NEON -; 4330 : j->idct_block_kernel = stbi__idct_simd; -; 4331 : j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; -; 4332 : j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; -; 4333 : #endif -; 4334 : } - - 000a7 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 000ae 5f pop rdi - 000af 5d pop rbp - 000b0 c3 ret 0 -stbi__setup_jpeg ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__YCbCr_to_RGB_simd -_TEXT SEGMENT -i$ = 4 -signflip$1 = 48 -cr_const0$2 = 96 -cr_const1$3 = 144 -cb_const0$4 = 192 -cb_const1$5 = 240 -y_bias$6 = 288 -xw$7 = 336 -y_bytes$8 = 384 -cr_bytes$9 = 432 -cb_bytes$10 = 480 -cr_biased$11 = 528 -cb_biased$12 = 576 -yw$13 = 624 -crw$14 = 672 -cbw$15 = 720 -yws$16 = 768 -cr0$17 = 816 -cb0$18 = 864 -cb1$19 = 912 -cr1$20 = 960 -rws$21 = 1008 -gwt$22 = 1056 -bws$23 = 1104 -gws$24 = 1152 -rw$25 = 1200 -bw$26 = 1248 -gw$27 = 1296 -brb$28 = 1344 -gxb$29 = 1392 -t0$30 = 1440 -t1$31 = 1488 -o0$32 = 1536 -o1$33 = 1584 -y_fixed$34 = 1620 -r$35 = 1652 -g$36 = 1684 -b$37 = 1716 -cr$38 = 1748 -cb$39 = 1780 -out$ = 2608 -y$ = 2616 -pcb$ = 2624 -pcr$ = 2632 -count$ = 2640 -step$ = 2648 -stbi__YCbCr_to_RGB_simd PROC ; COMDAT - -; 4165 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 38 0a - 00 00 sub rsp, 2616 ; 00000a38H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 4166 : int i = 0; - - 0002f c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - -; 4167 : -; 4168 : #ifdef STBI_SSE2 -; 4169 : // step == 3 is pretty ugly on the final interleave, and i'm not convinced -; 4170 : // it's useful in practice (you wouldn't use it for textures, for example). -; 4171 : // so just accelerate step == 4 case. -; 4172 : if (step == 4) { - - 00036 83 bd 58 0a 00 - 00 04 cmp DWORD PTR step$[rbp], 4 - 0003d 0f 85 28 03 00 - 00 jne $LN8@stbi__YCbC - -; 4173 : // this is a fairly straightforward implementation and not super-optimized. -; 4174 : __m128i signflip = _mm_set1_epi8(-0x80); - - 00043 66 0f 6f 05 00 - 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@80808080808080808080808080808080 - 0004b 66 0f 7f 45 30 movdqa XMMWORD PTR signflip$1[rbp], xmm0 - -; 4175 : __m128i cr_const0 = _mm_set1_epi16((short)(1.40200f * 4096.0f + 0.5f)); - - 00050 66 0f 6f 05 00 - 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@166f166f166f166f166f166f166f166f - 00058 66 0f 7f 45 60 movdqa XMMWORD PTR cr_const0$2[rbp], xmm0 - -; 4176 : __m128i cr_const1 = _mm_set1_epi16(-(short)(0.71414f * 4096.0f + 0.5f)); - - 0005d 66 0f 6f 05 00 - 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@f493f493f493f493f493f493f493f493 - 00065 66 0f 7f 85 90 - 00 00 00 movdqa XMMWORD PTR cr_const1$3[rbp], xmm0 - -; 4177 : __m128i cb_const0 = _mm_set1_epi16(-(short)(0.34414f * 4096.0f + 0.5f)); - - 0006d 66 0f 6f 05 00 - 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@fa7efa7efa7efa7efa7efa7efa7efa7e - 00075 66 0f 7f 85 c0 - 00 00 00 movdqa XMMWORD PTR cb_const0$4[rbp], xmm0 - -; 4178 : __m128i cb_const1 = _mm_set1_epi16((short)(1.77200f * 4096.0f + 0.5f)); - - 0007d 66 0f 6f 05 00 - 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@1c5a1c5a1c5a1c5a1c5a1c5a1c5a1c5a - 00085 66 0f 7f 85 f0 - 00 00 00 movdqa XMMWORD PTR cb_const1$5[rbp], xmm0 - -; 4179 : __m128i y_bias = _mm_set1_epi8((char)(unsigned char)128); - - 0008d 66 0f 6f 05 00 - 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@80808080808080808080808080808080 - 00095 66 0f 7f 85 20 - 01 00 00 movdqa XMMWORD PTR y_bias$6[rbp], xmm0 - -; 4180 : __m128i xw = _mm_set1_epi16(255); // alpha channel - - 0009d 66 0f 6f 05 00 - 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@00ff00ff00ff00ff00ff00ff00ff00ff - 000a5 66 0f 7f 85 50 - 01 00 00 movdqa XMMWORD PTR xw$7[rbp], xmm0 - -; 4181 : -; 4182 : for (; i + 7 < count; i += 8) { - - 000ad eb 09 jmp SHORT $LN4@stbi__YCbC -$LN2@stbi__YCbC: - 000af 8b 45 04 mov eax, DWORD PTR i$[rbp] - 000b2 83 c0 08 add eax, 8 - 000b5 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__YCbC: - 000b8 8b 45 04 mov eax, DWORD PTR i$[rbp] - 000bb 83 c0 07 add eax, 7 - 000be 3b 85 50 0a 00 - 00 cmp eax, DWORD PTR count$[rbp] - 000c4 0f 8d a1 02 00 - 00 jge $LN3@stbi__YCbC - -; 4183 : // load -; 4184 : __m128i y_bytes = _mm_loadl_epi64((__m128i *)(y + i)); - - 000ca 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 000ce 48 8b 8d 38 0a - 00 00 mov rcx, QWORD PTR y$[rbp] - 000d5 48 03 c8 add rcx, rax - 000d8 48 8b c1 mov rax, rcx - 000db f3 0f 7e 00 movq xmm0, QWORD PTR [rax] - 000df 66 0f 7f 85 80 - 01 00 00 movdqa XMMWORD PTR y_bytes$8[rbp], xmm0 - -; 4185 : __m128i cr_bytes = _mm_loadl_epi64((__m128i *)(pcr + i)); - - 000e7 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 000eb 48 8b 8d 48 0a - 00 00 mov rcx, QWORD PTR pcr$[rbp] - 000f2 48 03 c8 add rcx, rax - 000f5 48 8b c1 mov rax, rcx - 000f8 f3 0f 7e 00 movq xmm0, QWORD PTR [rax] - 000fc 66 0f 7f 85 b0 - 01 00 00 movdqa XMMWORD PTR cr_bytes$9[rbp], xmm0 - -; 4186 : __m128i cb_bytes = _mm_loadl_epi64((__m128i *)(pcb + i)); - - 00104 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00108 48 8b 8d 40 0a - 00 00 mov rcx, QWORD PTR pcb$[rbp] - 0010f 48 03 c8 add rcx, rax - 00112 48 8b c1 mov rax, rcx - 00115 f3 0f 7e 00 movq xmm0, QWORD PTR [rax] - 00119 66 0f 7f 85 e0 - 01 00 00 movdqa XMMWORD PTR cb_bytes$10[rbp], xmm0 - -; 4187 : __m128i cr_biased = _mm_xor_si128(cr_bytes, signflip); // -128 - - 00121 66 0f 6f 85 b0 - 01 00 00 movdqa xmm0, XMMWORD PTR cr_bytes$9[rbp] - 00129 0f 57 45 30 xorps xmm0, XMMWORD PTR signflip$1[rbp] - 0012d 66 0f 7f 85 10 - 02 00 00 movdqa XMMWORD PTR cr_biased$11[rbp], xmm0 - -; 4188 : __m128i cb_biased = _mm_xor_si128(cb_bytes, signflip); // -128 - - 00135 66 0f 6f 85 e0 - 01 00 00 movdqa xmm0, XMMWORD PTR cb_bytes$10[rbp] - 0013d 0f 57 45 30 xorps xmm0, XMMWORD PTR signflip$1[rbp] - 00141 66 0f 7f 85 40 - 02 00 00 movdqa XMMWORD PTR cb_biased$12[rbp], xmm0 - -; 4189 : -; 4190 : // unpack to short (and left-shift cr, cb by 8) -; 4191 : __m128i yw = _mm_unpacklo_epi8(y_bias, y_bytes); - - 00149 66 0f 6f 85 20 - 01 00 00 movdqa xmm0, XMMWORD PTR y_bias$6[rbp] - 00151 66 0f 60 85 80 - 01 00 00 punpcklbw xmm0, XMMWORD PTR y_bytes$8[rbp] - 00159 66 0f 7f 85 70 - 02 00 00 movdqa XMMWORD PTR yw$13[rbp], xmm0 - -; 4192 : __m128i crw = _mm_unpacklo_epi8(_mm_setzero_si128(), cr_biased); - - 00161 66 0f ef c0 pxor xmm0, xmm0 - 00165 66 0f 60 85 10 - 02 00 00 punpcklbw xmm0, XMMWORD PTR cr_biased$11[rbp] - 0016d 66 0f 7f 85 a0 - 02 00 00 movdqa XMMWORD PTR crw$14[rbp], xmm0 - -; 4193 : __m128i cbw = _mm_unpacklo_epi8(_mm_setzero_si128(), cb_biased); - - 00175 66 0f ef c0 pxor xmm0, xmm0 - 00179 66 0f 60 85 40 - 02 00 00 punpcklbw xmm0, XMMWORD PTR cb_biased$12[rbp] - 00181 66 0f 7f 85 d0 - 02 00 00 movdqa XMMWORD PTR cbw$15[rbp], xmm0 - -; 4194 : -; 4195 : // color transform -; 4196 : __m128i yws = _mm_srli_epi16(yw, 4); - - 00189 66 0f 6f 85 70 - 02 00 00 movdqa xmm0, XMMWORD PTR yw$13[rbp] - 00191 66 0f 71 d0 04 psrlw xmm0, 4 - 00196 66 0f 7f 85 00 - 03 00 00 movdqa XMMWORD PTR yws$16[rbp], xmm0 - -; 4197 : __m128i cr0 = _mm_mulhi_epi16(cr_const0, crw); - - 0019e 66 0f 6f 45 60 movdqa xmm0, XMMWORD PTR cr_const0$2[rbp] - 001a3 66 0f e5 85 a0 - 02 00 00 pmulhw xmm0, XMMWORD PTR crw$14[rbp] - 001ab 66 0f 7f 85 30 - 03 00 00 movdqa XMMWORD PTR cr0$17[rbp], xmm0 - -; 4198 : __m128i cb0 = _mm_mulhi_epi16(cb_const0, cbw); - - 001b3 66 0f 6f 85 c0 - 00 00 00 movdqa xmm0, XMMWORD PTR cb_const0$4[rbp] - 001bb 66 0f e5 85 d0 - 02 00 00 pmulhw xmm0, XMMWORD PTR cbw$15[rbp] - 001c3 66 0f 7f 85 60 - 03 00 00 movdqa XMMWORD PTR cb0$18[rbp], xmm0 - -; 4199 : __m128i cb1 = _mm_mulhi_epi16(cbw, cb_const1); - - 001cb 66 0f 6f 85 d0 - 02 00 00 movdqa xmm0, XMMWORD PTR cbw$15[rbp] - 001d3 66 0f e5 85 f0 - 00 00 00 pmulhw xmm0, XMMWORD PTR cb_const1$5[rbp] - 001db 66 0f 7f 85 90 - 03 00 00 movdqa XMMWORD PTR cb1$19[rbp], xmm0 - -; 4200 : __m128i cr1 = _mm_mulhi_epi16(crw, cr_const1); - - 001e3 66 0f 6f 85 a0 - 02 00 00 movdqa xmm0, XMMWORD PTR crw$14[rbp] - 001eb 66 0f e5 85 90 - 00 00 00 pmulhw xmm0, XMMWORD PTR cr_const1$3[rbp] - 001f3 66 0f 7f 85 c0 - 03 00 00 movdqa XMMWORD PTR cr1$20[rbp], xmm0 - -; 4201 : __m128i rws = _mm_add_epi16(cr0, yws); - - 001fb 66 0f 6f 85 30 - 03 00 00 movdqa xmm0, XMMWORD PTR cr0$17[rbp] - 00203 66 0f fd 85 00 - 03 00 00 paddw xmm0, XMMWORD PTR yws$16[rbp] - 0020b 66 0f 7f 85 f0 - 03 00 00 movdqa XMMWORD PTR rws$21[rbp], xmm0 - -; 4202 : __m128i gwt = _mm_add_epi16(cb0, yws); - - 00213 66 0f 6f 85 60 - 03 00 00 movdqa xmm0, XMMWORD PTR cb0$18[rbp] - 0021b 66 0f fd 85 00 - 03 00 00 paddw xmm0, XMMWORD PTR yws$16[rbp] - 00223 66 0f 7f 85 20 - 04 00 00 movdqa XMMWORD PTR gwt$22[rbp], xmm0 - -; 4203 : __m128i bws = _mm_add_epi16(yws, cb1); - - 0022b 66 0f 6f 85 00 - 03 00 00 movdqa xmm0, XMMWORD PTR yws$16[rbp] - 00233 66 0f fd 85 90 - 03 00 00 paddw xmm0, XMMWORD PTR cb1$19[rbp] - 0023b 66 0f 7f 85 50 - 04 00 00 movdqa XMMWORD PTR bws$23[rbp], xmm0 - -; 4204 : __m128i gws = _mm_add_epi16(gwt, cr1); - - 00243 66 0f 6f 85 20 - 04 00 00 movdqa xmm0, XMMWORD PTR gwt$22[rbp] - 0024b 66 0f fd 85 c0 - 03 00 00 paddw xmm0, XMMWORD PTR cr1$20[rbp] - 00253 66 0f 7f 85 80 - 04 00 00 movdqa XMMWORD PTR gws$24[rbp], xmm0 - -; 4205 : -; 4206 : // descale -; 4207 : __m128i rw = _mm_srai_epi16(rws, 4); - - 0025b 66 0f 6f 85 f0 - 03 00 00 movdqa xmm0, XMMWORD PTR rws$21[rbp] - 00263 66 0f 71 e0 04 psraw xmm0, 4 - 00268 66 0f 7f 85 b0 - 04 00 00 movdqa XMMWORD PTR rw$25[rbp], xmm0 - -; 4208 : __m128i bw = _mm_srai_epi16(bws, 4); - - 00270 66 0f 6f 85 50 - 04 00 00 movdqa xmm0, XMMWORD PTR bws$23[rbp] - 00278 66 0f 71 e0 04 psraw xmm0, 4 - 0027d 66 0f 7f 85 e0 - 04 00 00 movdqa XMMWORD PTR bw$26[rbp], xmm0 - -; 4209 : __m128i gw = _mm_srai_epi16(gws, 4); - - 00285 66 0f 6f 85 80 - 04 00 00 movdqa xmm0, XMMWORD PTR gws$24[rbp] - 0028d 66 0f 71 e0 04 psraw xmm0, 4 - 00292 66 0f 7f 85 10 - 05 00 00 movdqa XMMWORD PTR gw$27[rbp], xmm0 - -; 4210 : -; 4211 : // back to byte, set up for transpose -; 4212 : __m128i brb = _mm_packus_epi16(rw, bw); - - 0029a 66 0f 6f 85 b0 - 04 00 00 movdqa xmm0, XMMWORD PTR rw$25[rbp] - 002a2 66 0f 67 85 e0 - 04 00 00 packuswb xmm0, XMMWORD PTR bw$26[rbp] - 002aa 66 0f 7f 85 40 - 05 00 00 movdqa XMMWORD PTR brb$28[rbp], xmm0 - -; 4213 : __m128i gxb = _mm_packus_epi16(gw, xw); - - 002b2 66 0f 6f 85 10 - 05 00 00 movdqa xmm0, XMMWORD PTR gw$27[rbp] - 002ba 66 0f 67 85 50 - 01 00 00 packuswb xmm0, XMMWORD PTR xw$7[rbp] - 002c2 66 0f 7f 85 70 - 05 00 00 movdqa XMMWORD PTR gxb$29[rbp], xmm0 - -; 4214 : -; 4215 : // transpose to interleave channels -; 4216 : __m128i t0 = _mm_unpacklo_epi8(brb, gxb); - - 002ca 66 0f 6f 85 40 - 05 00 00 movdqa xmm0, XMMWORD PTR brb$28[rbp] - 002d2 66 0f 60 85 70 - 05 00 00 punpcklbw xmm0, XMMWORD PTR gxb$29[rbp] - 002da 66 0f 7f 85 a0 - 05 00 00 movdqa XMMWORD PTR t0$30[rbp], xmm0 - -; 4217 : __m128i t1 = _mm_unpackhi_epi8(brb, gxb); - - 002e2 66 0f 6f 85 40 - 05 00 00 movdqa xmm0, XMMWORD PTR brb$28[rbp] - 002ea 66 0f 68 85 70 - 05 00 00 punpckhbw xmm0, XMMWORD PTR gxb$29[rbp] - 002f2 66 0f 7f 85 d0 - 05 00 00 movdqa XMMWORD PTR t1$31[rbp], xmm0 - -; 4218 : __m128i o0 = _mm_unpacklo_epi16(t0, t1); - - 002fa 66 0f 6f 85 a0 - 05 00 00 movdqa xmm0, XMMWORD PTR t0$30[rbp] - 00302 66 0f 61 85 d0 - 05 00 00 punpcklwd xmm0, XMMWORD PTR t1$31[rbp] - 0030a 66 0f 7f 85 00 - 06 00 00 movdqa XMMWORD PTR o0$32[rbp], xmm0 - -; 4219 : __m128i o1 = _mm_unpackhi_epi16(t0, t1); - - 00312 66 0f 6f 85 a0 - 05 00 00 movdqa xmm0, XMMWORD PTR t0$30[rbp] - 0031a 66 0f 69 85 d0 - 05 00 00 punpckhwd xmm0, XMMWORD PTR t1$31[rbp] - 00322 66 0f 7f 85 30 - 06 00 00 movdqa XMMWORD PTR o1$33[rbp], xmm0 - -; 4220 : -; 4221 : // store -; 4222 : _mm_storeu_si128((__m128i *)(out + 0), o0); - - 0032a 48 8b 85 30 0a - 00 00 mov rax, QWORD PTR out$[rbp] - 00331 66 0f 6f 85 00 - 06 00 00 movdqa xmm0, XMMWORD PTR o0$32[rbp] - 00339 f3 0f 7f 00 movdqu XMMWORD PTR [rax], xmm0 - -; 4223 : _mm_storeu_si128((__m128i *)(out + 16), o1); - - 0033d 48 8b 85 30 0a - 00 00 mov rax, QWORD PTR out$[rbp] - 00344 48 83 c0 10 add rax, 16 - 00348 66 0f 6f 85 30 - 06 00 00 movdqa xmm0, XMMWORD PTR o1$33[rbp] - 00350 f3 0f 7f 00 movdqu XMMWORD PTR [rax], xmm0 - -; 4224 : out += 32; - - 00354 48 8b 85 30 0a - 00 00 mov rax, QWORD PTR out$[rbp] - 0035b 48 83 c0 20 add rax, 32 ; 00000020H - 0035f 48 89 85 30 0a - 00 00 mov QWORD PTR out$[rbp], rax - -; 4225 : } - - 00366 e9 44 fd ff ff jmp $LN2@stbi__YCbC -$LN3@stbi__YCbC: -$LN8@stbi__YCbC: - -; 4226 : } -; 4227 : #endif -; 4228 : -; 4229 : #ifdef STBI_NEON -; 4230 : // in this version, step=3 support would be easy to add. but is there demand? -; 4231 : if (step == 4) { -; 4232 : // this is a fairly straightforward implementation and not super-optimized. -; 4233 : uint8x8_t signflip = vdup_n_u8(0x80); -; 4234 : int16x8_t cr_const0 = vdupq_n_s16((short)(1.40200f * 4096.0f + 0.5f)); -; 4235 : int16x8_t cr_const1 = vdupq_n_s16(-(short)(0.71414f * 4096.0f + 0.5f)); -; 4236 : int16x8_t cb_const0 = vdupq_n_s16(-(short)(0.34414f * 4096.0f + 0.5f)); -; 4237 : int16x8_t cb_const1 = vdupq_n_s16((short)(1.77200f * 4096.0f + 0.5f)); -; 4238 : -; 4239 : for (; i + 7 < count; i += 8) { -; 4240 : // load -; 4241 : uint8x8_t y_bytes = vld1_u8(y + i); -; 4242 : uint8x8_t cr_bytes = vld1_u8(pcr + i); -; 4243 : uint8x8_t cb_bytes = vld1_u8(pcb + i); -; 4244 : int8x8_t cr_biased = vreinterpret_s8_u8(vsub_u8(cr_bytes, signflip)); -; 4245 : int8x8_t cb_biased = vreinterpret_s8_u8(vsub_u8(cb_bytes, signflip)); -; 4246 : -; 4247 : // expand to s16 -; 4248 : int16x8_t yws = vreinterpretq_s16_u16(vshll_n_u8(y_bytes, 4)); -; 4249 : int16x8_t crw = vshll_n_s8(cr_biased, 7); -; 4250 : int16x8_t cbw = vshll_n_s8(cb_biased, 7); -; 4251 : -; 4252 : // color transform -; 4253 : int16x8_t cr0 = vqdmulhq_s16(crw, cr_const0); -; 4254 : int16x8_t cb0 = vqdmulhq_s16(cbw, cb_const0); -; 4255 : int16x8_t cr1 = vqdmulhq_s16(crw, cr_const1); -; 4256 : int16x8_t cb1 = vqdmulhq_s16(cbw, cb_const1); -; 4257 : int16x8_t rws = vaddq_s16(yws, cr0); -; 4258 : int16x8_t gws = vaddq_s16(vaddq_s16(yws, cb0), cr1); -; 4259 : int16x8_t bws = vaddq_s16(yws, cb1); -; 4260 : -; 4261 : // undo scaling, round, convert to byte -; 4262 : uint8x8x4_t o; -; 4263 : o.val[0] = vqrshrun_n_s16(rws, 4); -; 4264 : o.val[1] = vqrshrun_n_s16(gws, 4); -; 4265 : o.val[2] = vqrshrun_n_s16(bws, 4); -; 4266 : o.val[3] = vdup_n_u8(255); -; 4267 : -; 4268 : // store, interleaving r/g/b/a -; 4269 : vst4_u8(out, o); -; 4270 : out += 8 * 4; -; 4271 : } -; 4272 : } -; 4273 : #endif -; 4274 : -; 4275 : for (; i < count; ++i) { - - 0036b eb 08 jmp SHORT $LN7@stbi__YCbC -$LN5@stbi__YCbC: - 0036d 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00370 ff c0 inc eax - 00372 89 45 04 mov DWORD PTR i$[rbp], eax -$LN7@stbi__YCbC: - 00375 8b 85 50 0a 00 - 00 mov eax, DWORD PTR count$[rbp] - 0037b 39 45 04 cmp DWORD PTR i$[rbp], eax - 0037e 0f 8d e1 01 00 - 00 jge $LN6@stbi__YCbC - -; 4276 : int y_fixed = (y[i] << 20) + (1 << 19); // rounding - - 00384 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00388 48 8b 8d 38 0a - 00 00 mov rcx, QWORD PTR y$[rbp] - 0038f 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00393 c1 e0 14 shl eax, 20 - 00396 05 00 00 08 00 add eax, 524288 ; 00080000H - 0039b 89 85 54 06 00 - 00 mov DWORD PTR y_fixed$34[rbp], eax - -; 4277 : int r, g, b; -; 4278 : int cr = pcr[i] - 128; - - 003a1 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 003a5 48 8b 8d 48 0a - 00 00 mov rcx, QWORD PTR pcr$[rbp] - 003ac 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 003b0 2d 80 00 00 00 sub eax, 128 ; 00000080H - 003b5 89 85 d4 06 00 - 00 mov DWORD PTR cr$38[rbp], eax - -; 4279 : int cb = pcb[i] - 128; - - 003bb 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 003bf 48 8b 8d 40 0a - 00 00 mov rcx, QWORD PTR pcb$[rbp] - 003c6 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 003ca 2d 80 00 00 00 sub eax, 128 ; 00000080H - 003cf 89 85 f4 06 00 - 00 mov DWORD PTR cb$39[rbp], eax - -; 4280 : r = y_fixed + cr * stbi__float2fixed(1.40200f); - - 003d5 69 85 d4 06 00 - 00 00 6f 16 00 imul eax, DWORD PTR cr$38[rbp], 1470208 ; 00166f00H - 003df 8b 8d 54 06 00 - 00 mov ecx, DWORD PTR y_fixed$34[rbp] - 003e5 03 c8 add ecx, eax - 003e7 8b c1 mov eax, ecx - 003e9 89 85 74 06 00 - 00 mov DWORD PTR r$35[rbp], eax - -; 4281 : g = y_fixed + cr * -stbi__float2fixed(0.71414f) + - - 003ef 69 85 d4 06 00 - 00 00 93 f4 ff imul eax, DWORD PTR cr$38[rbp], -748800 ; fffffffffff49300H - 003f9 8b 8d 54 06 00 - 00 mov ecx, DWORD PTR y_fixed$34[rbp] - 003ff 03 c8 add ecx, eax - 00401 8b c1 mov eax, ecx - 00403 69 8d f4 06 00 - 00 00 7e fa ff imul ecx, DWORD PTR cb$39[rbp], -360960 ; fffffffffffa7e00H - 0040d 81 e1 00 00 ff - ff and ecx, -65536 ; ffff0000H - 00413 03 c1 add eax, ecx - 00415 89 85 94 06 00 - 00 mov DWORD PTR g$36[rbp], eax - -; 4282 : ((cb * -stbi__float2fixed(0.34414f)) & 0xffff0000); -; 4283 : b = y_fixed + cb * stbi__float2fixed(1.77200f); - - 0041b 69 85 f4 06 00 - 00 00 5a 1c 00 imul eax, DWORD PTR cb$39[rbp], 1858048 ; 001c5a00H - 00425 8b 8d 54 06 00 - 00 mov ecx, DWORD PTR y_fixed$34[rbp] - 0042b 03 c8 add ecx, eax - 0042d 8b c1 mov eax, ecx - 0042f 89 85 b4 06 00 - 00 mov DWORD PTR b$37[rbp], eax - -; 4284 : r >>= 20; - - 00435 8b 85 74 06 00 - 00 mov eax, DWORD PTR r$35[rbp] - 0043b c1 f8 14 sar eax, 20 - 0043e 89 85 74 06 00 - 00 mov DWORD PTR r$35[rbp], eax - -; 4285 : g >>= 20; - - 00444 8b 85 94 06 00 - 00 mov eax, DWORD PTR g$36[rbp] - 0044a c1 f8 14 sar eax, 20 - 0044d 89 85 94 06 00 - 00 mov DWORD PTR g$36[rbp], eax - -; 4286 : b >>= 20; - - 00453 8b 85 b4 06 00 - 00 mov eax, DWORD PTR b$37[rbp] - 00459 c1 f8 14 sar eax, 20 - 0045c 89 85 b4 06 00 - 00 mov DWORD PTR b$37[rbp], eax - -; 4287 : if ((unsigned)r > 255) { - - 00462 81 bd 74 06 00 - 00 ff 00 00 00 cmp DWORD PTR r$35[rbp], 255 ; 000000ffH - 0046c 76 1f jbe SHORT $LN9@stbi__YCbC - -; 4288 : if (r < 0) - - 0046e 83 bd 74 06 00 - 00 00 cmp DWORD PTR r$35[rbp], 0 - 00475 7d 0c jge SHORT $LN10@stbi__YCbC - -; 4289 : r = 0; - - 00477 c7 85 74 06 00 - 00 00 00 00 00 mov DWORD PTR r$35[rbp], 0 - 00481 eb 0a jmp SHORT $LN11@stbi__YCbC -$LN10@stbi__YCbC: - -; 4290 : else -; 4291 : r = 255; - - 00483 c7 85 74 06 00 - 00 ff 00 00 00 mov DWORD PTR r$35[rbp], 255 ; 000000ffH -$LN11@stbi__YCbC: -$LN9@stbi__YCbC: - -; 4292 : } -; 4293 : if ((unsigned)g > 255) { - - 0048d 81 bd 94 06 00 - 00 ff 00 00 00 cmp DWORD PTR g$36[rbp], 255 ; 000000ffH - 00497 76 1f jbe SHORT $LN12@stbi__YCbC - -; 4294 : if (g < 0) - - 00499 83 bd 94 06 00 - 00 00 cmp DWORD PTR g$36[rbp], 0 - 004a0 7d 0c jge SHORT $LN13@stbi__YCbC - -; 4295 : g = 0; - - 004a2 c7 85 94 06 00 - 00 00 00 00 00 mov DWORD PTR g$36[rbp], 0 - 004ac eb 0a jmp SHORT $LN14@stbi__YCbC -$LN13@stbi__YCbC: - -; 4296 : else -; 4297 : g = 255; - - 004ae c7 85 94 06 00 - 00 ff 00 00 00 mov DWORD PTR g$36[rbp], 255 ; 000000ffH -$LN14@stbi__YCbC: -$LN12@stbi__YCbC: - -; 4298 : } -; 4299 : if ((unsigned)b > 255) { - - 004b8 81 bd b4 06 00 - 00 ff 00 00 00 cmp DWORD PTR b$37[rbp], 255 ; 000000ffH - 004c2 76 1f jbe SHORT $LN15@stbi__YCbC - -; 4300 : if (b < 0) - - 004c4 83 bd b4 06 00 - 00 00 cmp DWORD PTR b$37[rbp], 0 - 004cb 7d 0c jge SHORT $LN16@stbi__YCbC - -; 4301 : b = 0; - - 004cd c7 85 b4 06 00 - 00 00 00 00 00 mov DWORD PTR b$37[rbp], 0 - 004d7 eb 0a jmp SHORT $LN17@stbi__YCbC -$LN16@stbi__YCbC: - -; 4302 : else -; 4303 : b = 255; - - 004d9 c7 85 b4 06 00 - 00 ff 00 00 00 mov DWORD PTR b$37[rbp], 255 ; 000000ffH -$LN17@stbi__YCbC: -$LN15@stbi__YCbC: - -; 4304 : } -; 4305 : out[0] = (stbi_uc)r; - - 004e3 b8 01 00 00 00 mov eax, 1 - 004e8 48 6b c0 00 imul rax, rax, 0 - 004ec 48 8b 8d 30 0a - 00 00 mov rcx, QWORD PTR out$[rbp] - 004f3 0f b6 95 74 06 - 00 00 movzx edx, BYTE PTR r$35[rbp] - 004fa 88 14 01 mov BYTE PTR [rcx+rax], dl - -; 4306 : out[1] = (stbi_uc)g; - - 004fd b8 01 00 00 00 mov eax, 1 - 00502 48 6b c0 01 imul rax, rax, 1 - 00506 48 8b 8d 30 0a - 00 00 mov rcx, QWORD PTR out$[rbp] - 0050d 0f b6 95 94 06 - 00 00 movzx edx, BYTE PTR g$36[rbp] - 00514 88 14 01 mov BYTE PTR [rcx+rax], dl - -; 4307 : out[2] = (stbi_uc)b; - - 00517 b8 01 00 00 00 mov eax, 1 - 0051c 48 6b c0 02 imul rax, rax, 2 - 00520 48 8b 8d 30 0a - 00 00 mov rcx, QWORD PTR out$[rbp] - 00527 0f b6 95 b4 06 - 00 00 movzx edx, BYTE PTR b$37[rbp] - 0052e 88 14 01 mov BYTE PTR [rcx+rax], dl - -; 4308 : out[3] = 255; - - 00531 b8 01 00 00 00 mov eax, 1 - 00536 48 6b c0 03 imul rax, rax, 3 - 0053a 48 8b 8d 30 0a - 00 00 mov rcx, QWORD PTR out$[rbp] - 00541 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH - -; 4309 : out += step; - - 00545 48 63 85 58 0a - 00 00 movsxd rax, DWORD PTR step$[rbp] - 0054c 48 8b 8d 30 0a - 00 00 mov rcx, QWORD PTR out$[rbp] - 00553 48 03 c8 add rcx, rax - 00556 48 8b c1 mov rax, rcx - 00559 48 89 85 30 0a - 00 00 mov QWORD PTR out$[rbp], rax - -; 4310 : } - - 00560 e9 08 fe ff ff jmp $LN5@stbi__YCbC -$LN6@stbi__YCbC: - -; 4311 : } - - 00565 48 8d a5 18 0a - 00 00 lea rsp, QWORD PTR [rbp+2584] - 0056c 5f pop rdi - 0056d 5d pop rbp - 0056e c3 ret 0 -stbi__YCbCr_to_RGB_simd ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__YCbCr_to_RGB_row -_TEXT SEGMENT -i$ = 4 -y_fixed$1 = 36 -r$2 = 68 -g$3 = 100 -b$4 = 132 -cr$5 = 164 -cb$6 = 196 -out$ = 448 -y$ = 456 -pcb$ = 464 -pcr$ = 472 -count$ = 480 -step$ = 488 -stbi__YCbCr_to_RGB_row PROC ; COMDAT - -; 4122 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec c8 01 - 00 00 sub rsp, 456 ; 000001c8H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 4123 : int i; -; 4124 : for (i = 0; i < count; ++i) { - - 0002f c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00036 eb 08 jmp SHORT $LN4@stbi__YCbC -$LN2@stbi__YCbC: - 00038 8b 45 04 mov eax, DWORD PTR i$[rbp] - 0003b ff c0 inc eax - 0003d 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__YCbC: - 00040 8b 85 e0 01 00 - 00 mov eax, DWORD PTR count$[rbp] - 00046 39 45 04 cmp DWORD PTR i$[rbp], eax - 00049 0f 8d a5 01 00 - 00 jge $LN3@stbi__YCbC - -; 4125 : int y_fixed = (y[i] << 20) + (1 << 19); // rounding - - 0004f 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00053 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR y$[rbp] - 0005a 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0005e c1 e0 14 shl eax, 20 - 00061 05 00 00 08 00 add eax, 524288 ; 00080000H - 00066 89 45 24 mov DWORD PTR y_fixed$1[rbp], eax - -; 4126 : int r, g, b; -; 4127 : int cr = pcr[i] - 128; - - 00069 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 0006d 48 8b 8d d8 01 - 00 00 mov rcx, QWORD PTR pcr$[rbp] - 00074 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00078 2d 80 00 00 00 sub eax, 128 ; 00000080H - 0007d 89 85 a4 00 00 - 00 mov DWORD PTR cr$5[rbp], eax - -; 4128 : int cb = pcb[i] - 128; - - 00083 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00087 48 8b 8d d0 01 - 00 00 mov rcx, QWORD PTR pcb$[rbp] - 0008e 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00092 2d 80 00 00 00 sub eax, 128 ; 00000080H - 00097 89 85 c4 00 00 - 00 mov DWORD PTR cb$6[rbp], eax - -; 4129 : r = y_fixed + cr * stbi__float2fixed(1.40200f); - - 0009d 69 85 a4 00 00 - 00 00 6f 16 00 imul eax, DWORD PTR cr$5[rbp], 1470208 ; 00166f00H - 000a7 8b 4d 24 mov ecx, DWORD PTR y_fixed$1[rbp] - 000aa 03 c8 add ecx, eax - 000ac 8b c1 mov eax, ecx - 000ae 89 45 44 mov DWORD PTR r$2[rbp], eax - -; 4130 : g = y_fixed + (cr * -stbi__float2fixed(0.71414f)) + - - 000b1 69 85 a4 00 00 - 00 00 93 f4 ff imul eax, DWORD PTR cr$5[rbp], -748800 ; fffffffffff49300H - 000bb 8b 4d 24 mov ecx, DWORD PTR y_fixed$1[rbp] - 000be 03 c8 add ecx, eax - 000c0 8b c1 mov eax, ecx - 000c2 69 8d c4 00 00 - 00 00 7e fa ff imul ecx, DWORD PTR cb$6[rbp], -360960 ; fffffffffffa7e00H - 000cc 81 e1 00 00 ff - ff and ecx, -65536 ; ffff0000H - 000d2 03 c1 add eax, ecx - 000d4 89 45 64 mov DWORD PTR g$3[rbp], eax - -; 4131 : ((cb * -stbi__float2fixed(0.34414f)) & 0xffff0000); -; 4132 : b = y_fixed + cb * stbi__float2fixed(1.77200f); - - 000d7 69 85 c4 00 00 - 00 00 5a 1c 00 imul eax, DWORD PTR cb$6[rbp], 1858048 ; 001c5a00H - 000e1 8b 4d 24 mov ecx, DWORD PTR y_fixed$1[rbp] - 000e4 03 c8 add ecx, eax - 000e6 8b c1 mov eax, ecx - 000e8 89 85 84 00 00 - 00 mov DWORD PTR b$4[rbp], eax - -; 4133 : r >>= 20; - - 000ee 8b 45 44 mov eax, DWORD PTR r$2[rbp] - 000f1 c1 f8 14 sar eax, 20 - 000f4 89 45 44 mov DWORD PTR r$2[rbp], eax - -; 4134 : g >>= 20; - - 000f7 8b 45 64 mov eax, DWORD PTR g$3[rbp] - 000fa c1 f8 14 sar eax, 20 - 000fd 89 45 64 mov DWORD PTR g$3[rbp], eax - -; 4135 : b >>= 20; - - 00100 8b 85 84 00 00 - 00 mov eax, DWORD PTR b$4[rbp] - 00106 c1 f8 14 sar eax, 20 - 00109 89 85 84 00 00 - 00 mov DWORD PTR b$4[rbp], eax - -; 4136 : if ((unsigned)r > 255) { - - 0010f 81 7d 44 ff 00 - 00 00 cmp DWORD PTR r$2[rbp], 255 ; 000000ffH - 00116 76 16 jbe SHORT $LN5@stbi__YCbC - -; 4137 : if (r < 0) - - 00118 83 7d 44 00 cmp DWORD PTR r$2[rbp], 0 - 0011c 7d 09 jge SHORT $LN6@stbi__YCbC - -; 4138 : r = 0; - - 0011e c7 45 44 00 00 - 00 00 mov DWORD PTR r$2[rbp], 0 - 00125 eb 07 jmp SHORT $LN7@stbi__YCbC -$LN6@stbi__YCbC: - -; 4139 : else -; 4140 : r = 255; - - 00127 c7 45 44 ff 00 - 00 00 mov DWORD PTR r$2[rbp], 255 ; 000000ffH -$LN7@stbi__YCbC: -$LN5@stbi__YCbC: - -; 4141 : } -; 4142 : if ((unsigned)g > 255) { - - 0012e 81 7d 64 ff 00 - 00 00 cmp DWORD PTR g$3[rbp], 255 ; 000000ffH - 00135 76 16 jbe SHORT $LN8@stbi__YCbC - -; 4143 : if (g < 0) - - 00137 83 7d 64 00 cmp DWORD PTR g$3[rbp], 0 - 0013b 7d 09 jge SHORT $LN9@stbi__YCbC - -; 4144 : g = 0; - - 0013d c7 45 64 00 00 - 00 00 mov DWORD PTR g$3[rbp], 0 - 00144 eb 07 jmp SHORT $LN10@stbi__YCbC -$LN9@stbi__YCbC: - -; 4145 : else -; 4146 : g = 255; - - 00146 c7 45 64 ff 00 - 00 00 mov DWORD PTR g$3[rbp], 255 ; 000000ffH -$LN10@stbi__YCbC: -$LN8@stbi__YCbC: - -; 4147 : } -; 4148 : if ((unsigned)b > 255) { - - 0014d 81 bd 84 00 00 - 00 ff 00 00 00 cmp DWORD PTR b$4[rbp], 255 ; 000000ffH - 00157 76 1f jbe SHORT $LN11@stbi__YCbC - -; 4149 : if (b < 0) - - 00159 83 bd 84 00 00 - 00 00 cmp DWORD PTR b$4[rbp], 0 - 00160 7d 0c jge SHORT $LN12@stbi__YCbC - -; 4150 : b = 0; - - 00162 c7 85 84 00 00 - 00 00 00 00 00 mov DWORD PTR b$4[rbp], 0 - 0016c eb 0a jmp SHORT $LN13@stbi__YCbC -$LN12@stbi__YCbC: - -; 4151 : else -; 4152 : b = 255; - - 0016e c7 85 84 00 00 - 00 ff 00 00 00 mov DWORD PTR b$4[rbp], 255 ; 000000ffH -$LN13@stbi__YCbC: -$LN11@stbi__YCbC: - -; 4153 : } -; 4154 : out[0] = (stbi_uc)r; - - 00178 b8 01 00 00 00 mov eax, 1 - 0017d 48 6b c0 00 imul rax, rax, 0 - 00181 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR out$[rbp] - 00188 0f b6 55 44 movzx edx, BYTE PTR r$2[rbp] - 0018c 88 14 01 mov BYTE PTR [rcx+rax], dl - -; 4155 : out[1] = (stbi_uc)g; - - 0018f b8 01 00 00 00 mov eax, 1 - 00194 48 6b c0 01 imul rax, rax, 1 - 00198 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR out$[rbp] - 0019f 0f b6 55 64 movzx edx, BYTE PTR g$3[rbp] - 001a3 88 14 01 mov BYTE PTR [rcx+rax], dl - -; 4156 : out[2] = (stbi_uc)b; - - 001a6 b8 01 00 00 00 mov eax, 1 - 001ab 48 6b c0 02 imul rax, rax, 2 - 001af 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR out$[rbp] - 001b6 0f b6 95 84 00 - 00 00 movzx edx, BYTE PTR b$4[rbp] - 001bd 88 14 01 mov BYTE PTR [rcx+rax], dl - -; 4157 : out[3] = 255; - - 001c0 b8 01 00 00 00 mov eax, 1 - 001c5 48 6b c0 03 imul rax, rax, 3 - 001c9 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR out$[rbp] - 001d0 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH - -; 4158 : out += step; - - 001d4 48 63 85 e8 01 - 00 00 movsxd rax, DWORD PTR step$[rbp] - 001db 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR out$[rbp] - 001e2 48 03 c8 add rcx, rax - 001e5 48 8b c1 mov rax, rcx - 001e8 48 89 85 c0 01 - 00 00 mov QWORD PTR out$[rbp], rax - -; 4159 : } - - 001ef e9 44 fe ff ff jmp $LN2@stbi__YCbC -$LN3@stbi__YCbC: - -; 4160 : } - - 001f4 48 8d a5 a8 01 - 00 00 lea rsp, QWORD PTR [rbp+424] - 001fb 5f pop rdi - 001fc 5d pop rbp - 001fd c3 ret 0 -stbi__YCbCr_to_RGB_row ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__resample_row_generic -_TEXT SEGMENT -i$ = 4 -j$ = 36 -out$ = 288 -in_near$ = 296 -in_far$ = 304 -w$ = 312 -hs$ = 320 -stbi__resample_row_generic PROC ; COMDAT - -; 4107 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 4108 : // resample with nearest-neighbor -; 4109 : int i, j; -; 4110 : STBI_NOTUSED(in_far); -; 4111 : for (i = 0; i < w; ++i) - - 0002f c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00036 eb 08 jmp SHORT $LN4@stbi__resa -$LN2@stbi__resa: - 00038 8b 45 04 mov eax, DWORD PTR i$[rbp] - 0003b ff c0 inc eax - 0003d 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__resa: - 00040 8b 85 38 01 00 - 00 mov eax, DWORD PTR w$[rbp] - 00046 39 45 04 cmp DWORD PTR i$[rbp], eax - 00049 7d 4a jge SHORT $LN3@stbi__resa - -; 4112 : for (j = 0; j < hs; ++j) - - 0004b c7 45 24 00 00 - 00 00 mov DWORD PTR j$[rbp], 0 - 00052 eb 08 jmp SHORT $LN7@stbi__resa -$LN5@stbi__resa: - 00054 8b 45 24 mov eax, DWORD PTR j$[rbp] - 00057 ff c0 inc eax - 00059 89 45 24 mov DWORD PTR j$[rbp], eax -$LN7@stbi__resa: - 0005c 8b 85 40 01 00 - 00 mov eax, DWORD PTR hs$[rbp] - 00062 39 45 24 cmp DWORD PTR j$[rbp], eax - 00065 7d 2c jge SHORT $LN6@stbi__resa - -; 4113 : out[i * hs + j] = in_near[i]; - - 00067 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 0006b 8b 4d 04 mov ecx, DWORD PTR i$[rbp] - 0006e 0f af 8d 40 01 - 00 00 imul ecx, DWORD PTR hs$[rbp] - 00075 03 4d 24 add ecx, DWORD PTR j$[rbp] - 00078 48 63 c9 movsxd rcx, ecx - 0007b 48 8b 95 20 01 - 00 00 mov rdx, QWORD PTR out$[rbp] - 00082 4c 8b 85 28 01 - 00 00 mov r8, QWORD PTR in_near$[rbp] - 00089 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 0008e 88 04 0a mov BYTE PTR [rdx+rcx], al - 00091 eb c1 jmp SHORT $LN5@stbi__resa -$LN6@stbi__resa: - 00093 eb a3 jmp SHORT $LN2@stbi__resa -$LN3@stbi__resa: - -; 4114 : return out; - - 00095 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR out$[rbp] - -; 4115 : } - - 0009c 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000a3 5f pop rdi - 000a4 5d pop rbp - 000a5 c3 ret 0 -stbi__resample_row_generic ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__resample_row_hv_2_simd -_TEXT SEGMENT -i$ = 4 -t0$ = 36 -t1$ = 68 -zero$1 = 112 -farb$2 = 160 -nearb$3 = 208 -farw$4 = 256 -nearw$5 = 304 -diff$6 = 352 -nears$7 = 400 -curr$8 = 448 -prv0$9 = 496 -nxt0$10 = 544 -prev$11 = 592 -next$12 = 640 -bias$13 = 688 -curs$14 = 736 -prvd$15 = 784 -nxtd$16 = 832 -curb$17 = 880 -even$18 = 928 -odd$19 = 976 -int0$20 = 1024 -int1$21 = 1072 -de0$22 = 1120 -de1$23 = 1168 -outv$24 = 1216 -tv78 = 1812 -out$ = 1856 -in_near$ = 1864 -in_far$ = 1872 -w$ = 1880 -hs$ = 1888 -stbi__resample_row_hv_2_simd PROC ; COMDAT - -; 3990 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 48 07 - 00 00 sub rsp, 1864 ; 00000748H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 3991 : // need to generate 2x2 samples for every one in input -; 3992 : int i = 0, t0, t1; - - 0002f c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - -; 3993 : -; 3994 : if (w == 1) { - - 00036 83 bd 58 07 00 - 00 01 cmp DWORD PTR w$[rbp], 1 - 0003d 75 78 jne SHORT $LN8@stbi__resa - -; 3995 : out[0] = out[1] = stbi__div4(3 * in_near[0] + in_far[0] + 2); - - 0003f b8 01 00 00 00 mov eax, 1 - 00044 48 6b c0 00 imul rax, rax, 0 - 00048 48 8b 8d 48 07 - 00 00 mov rcx, QWORD PTR in_near$[rbp] - 0004f 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00053 6b c0 03 imul eax, eax, 3 - 00056 b9 01 00 00 00 mov ecx, 1 - 0005b 48 6b c9 00 imul rcx, rcx, 0 - 0005f 48 8b 95 50 07 - 00 00 mov rdx, QWORD PTR in_far$[rbp] - 00066 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 0006a 8d 44 08 02 lea eax, DWORD PTR [rax+rcx+2] - 0006e c1 f8 02 sar eax, 2 - 00071 89 85 14 07 00 - 00 mov DWORD PTR tv78[rbp], eax - 00077 b8 01 00 00 00 mov eax, 1 - 0007c 48 6b c0 01 imul rax, rax, 1 - 00080 48 8b 8d 40 07 - 00 00 mov rcx, QWORD PTR out$[rbp] - 00087 0f b6 95 14 07 - 00 00 movzx edx, BYTE PTR tv78[rbp] - 0008e 88 14 01 mov BYTE PTR [rcx+rax], dl - 00091 b8 01 00 00 00 mov eax, 1 - 00096 48 6b c0 00 imul rax, rax, 0 - 0009a 48 8b 8d 40 07 - 00 00 mov rcx, QWORD PTR out$[rbp] - 000a1 0f b6 95 14 07 - 00 00 movzx edx, BYTE PTR tv78[rbp] - 000a8 88 14 01 mov BYTE PTR [rcx+rax], dl - -; 3996 : return out; - - 000ab 48 8b 85 40 07 - 00 00 mov rax, QWORD PTR out$[rbp] - 000b2 e9 e8 03 00 00 jmp $LN1@stbi__resa -$LN8@stbi__resa: - -; 3997 : } -; 3998 : -; 3999 : t1 = 3 * in_near[0] + in_far[0]; - - 000b7 b8 01 00 00 00 mov eax, 1 - 000bc 48 6b c0 00 imul rax, rax, 0 - 000c0 48 8b 8d 48 07 - 00 00 mov rcx, QWORD PTR in_near$[rbp] - 000c7 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 000cb 6b c0 03 imul eax, eax, 3 - 000ce b9 01 00 00 00 mov ecx, 1 - 000d3 48 6b c9 00 imul rcx, rcx, 0 - 000d7 48 8b 95 50 07 - 00 00 mov rdx, QWORD PTR in_far$[rbp] - 000de 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 000e2 03 c1 add eax, ecx - 000e4 89 45 44 mov DWORD PTR t1$[rbp], eax - -; 4000 : // process groups of 8 pixels for as long as we can. -; 4001 : // note we can't handle the last pixel in a row in this loop -; 4002 : // because we need to handle the filter boundary conditions. -; 4003 : for (; i < ((w - 1) & ~7); i += 8) { - - 000e7 eb 09 jmp SHORT $LN4@stbi__resa -$LN2@stbi__resa: - 000e9 8b 45 04 mov eax, DWORD PTR i$[rbp] - 000ec 83 c0 08 add eax, 8 - 000ef 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__resa: - 000f2 8b 85 58 07 00 - 00 mov eax, DWORD PTR w$[rbp] - 000f8 ff c8 dec eax - 000fa 83 e0 f8 and eax, -8 - 000fd 39 45 04 cmp DWORD PTR i$[rbp], eax - 00100 0f 8d 96 02 00 - 00 jge $LN3@stbi__resa - -; 4004 : #if defined(STBI_SSE2) -; 4005 : // load and perform the vertical filtering pass -; 4006 : // this uses 3*x + y = 4*x + (y - x) -; 4007 : __m128i zero = _mm_setzero_si128(); - - 00106 66 0f ef c0 pxor xmm0, xmm0 - 0010a 66 0f 7f 45 70 movdqa XMMWORD PTR zero$1[rbp], xmm0 - -; 4008 : __m128i farb = _mm_loadl_epi64((__m128i *)(in_far + i)); - - 0010f 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00113 48 8b 8d 50 07 - 00 00 mov rcx, QWORD PTR in_far$[rbp] - 0011a 48 03 c8 add rcx, rax - 0011d 48 8b c1 mov rax, rcx - 00120 f3 0f 7e 00 movq xmm0, QWORD PTR [rax] - 00124 66 0f 7f 85 a0 - 00 00 00 movdqa XMMWORD PTR farb$2[rbp], xmm0 - -; 4009 : __m128i nearb = _mm_loadl_epi64((__m128i *)(in_near + i)); - - 0012c 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00130 48 8b 8d 48 07 - 00 00 mov rcx, QWORD PTR in_near$[rbp] - 00137 48 03 c8 add rcx, rax - 0013a 48 8b c1 mov rax, rcx - 0013d f3 0f 7e 00 movq xmm0, QWORD PTR [rax] - 00141 66 0f 7f 85 d0 - 00 00 00 movdqa XMMWORD PTR nearb$3[rbp], xmm0 - -; 4010 : __m128i farw = _mm_unpacklo_epi8(farb, zero); - - 00149 66 0f 6f 85 a0 - 00 00 00 movdqa xmm0, XMMWORD PTR farb$2[rbp] - 00151 66 0f 60 45 70 punpcklbw xmm0, XMMWORD PTR zero$1[rbp] - 00156 66 0f 7f 85 00 - 01 00 00 movdqa XMMWORD PTR farw$4[rbp], xmm0 - -; 4011 : __m128i nearw = _mm_unpacklo_epi8(nearb, zero); - - 0015e 66 0f 6f 85 d0 - 00 00 00 movdqa xmm0, XMMWORD PTR nearb$3[rbp] - 00166 66 0f 60 45 70 punpcklbw xmm0, XMMWORD PTR zero$1[rbp] - 0016b 66 0f 7f 85 30 - 01 00 00 movdqa XMMWORD PTR nearw$5[rbp], xmm0 - -; 4012 : __m128i diff = _mm_sub_epi16(farw, nearw); - - 00173 66 0f 6f 85 00 - 01 00 00 movdqa xmm0, XMMWORD PTR farw$4[rbp] - 0017b 66 0f f9 85 30 - 01 00 00 psubw xmm0, XMMWORD PTR nearw$5[rbp] - 00183 66 0f 7f 85 60 - 01 00 00 movdqa XMMWORD PTR diff$6[rbp], xmm0 - -; 4013 : __m128i nears = _mm_slli_epi16(nearw, 2); - - 0018b 66 0f 6f 85 30 - 01 00 00 movdqa xmm0, XMMWORD PTR nearw$5[rbp] - 00193 66 0f 71 f0 02 psllw xmm0, 2 - 00198 66 0f 7f 85 90 - 01 00 00 movdqa XMMWORD PTR nears$7[rbp], xmm0 - -; 4014 : __m128i curr = _mm_add_epi16(nears, diff); // current row - - 001a0 66 0f 6f 85 90 - 01 00 00 movdqa xmm0, XMMWORD PTR nears$7[rbp] - 001a8 66 0f fd 85 60 - 01 00 00 paddw xmm0, XMMWORD PTR diff$6[rbp] - 001b0 66 0f 7f 85 c0 - 01 00 00 movdqa XMMWORD PTR curr$8[rbp], xmm0 - -; 4015 : -; 4016 : // horizontal filter works the same based on shifted vers of current -; 4017 : // row. "prev" is current row shifted right by 1 pixel; we need to -; 4018 : // insert the previous pixel value (from t1). -; 4019 : // "next" is current row shifted left by 1 pixel, with first pixel -; 4020 : // of next block of 8 pixels added in. -; 4021 : __m128i prv0 = _mm_slli_si128(curr, 2); - - 001b8 66 0f 6f 85 c0 - 01 00 00 movdqa xmm0, XMMWORD PTR curr$8[rbp] - 001c0 66 0f 73 f8 02 pslldq xmm0, 2 - 001c5 66 0f 7f 85 f0 - 01 00 00 movdqa XMMWORD PTR prv0$9[rbp], xmm0 - -; 4022 : __m128i nxt0 = _mm_srli_si128(curr, 2); - - 001cd 66 0f 6f 85 c0 - 01 00 00 movdqa xmm0, XMMWORD PTR curr$8[rbp] - 001d5 66 0f 73 d8 02 psrldq xmm0, 2 - 001da 66 0f 7f 85 20 - 02 00 00 movdqa XMMWORD PTR nxt0$10[rbp], xmm0 - -; 4023 : __m128i prev = _mm_insert_epi16(prv0, t1, 0); - - 001e2 66 0f 6f 85 f0 - 01 00 00 movdqa xmm0, XMMWORD PTR prv0$9[rbp] - 001ea 66 0f c4 45 44 - 00 pinsrw xmm0, DWORD PTR t1$[rbp], 0 - 001f0 66 0f 7f 85 50 - 02 00 00 movdqa XMMWORD PTR prev$11[rbp], xmm0 - -; 4024 : __m128i next = _mm_insert_epi16(nxt0, 3 * in_near[i + 8] + in_far[i + 8], 7); - - 001f8 8b 45 04 mov eax, DWORD PTR i$[rbp] - 001fb 83 c0 08 add eax, 8 - 001fe 48 98 cdqe - 00200 48 8b 8d 48 07 - 00 00 mov rcx, QWORD PTR in_near$[rbp] - 00207 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0020b 6b c0 03 imul eax, eax, 3 - 0020e 8b 4d 04 mov ecx, DWORD PTR i$[rbp] - 00211 83 c1 08 add ecx, 8 - 00214 48 63 c9 movsxd rcx, ecx - 00217 48 8b 95 50 07 - 00 00 mov rdx, QWORD PTR in_far$[rbp] - 0021e 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 00222 03 c1 add eax, ecx - 00224 66 0f 6f 85 20 - 02 00 00 movdqa xmm0, XMMWORD PTR nxt0$10[rbp] - 0022c 66 0f c4 c0 07 pinsrw xmm0, eax, 7 - 00231 66 0f 7f 85 80 - 02 00 00 movdqa XMMWORD PTR next$12[rbp], xmm0 - -; 4025 : -; 4026 : // horizontal filter, polyphase implementation since it's convenient: -; 4027 : // even pixels = 3*cur + prev = cur*4 + (prev - cur) -; 4028 : // odd pixels = 3*cur + next = cur*4 + (next - cur) -; 4029 : // note the shared term. -; 4030 : __m128i bias = _mm_set1_epi16(8); - - 00239 66 0f 6f 05 00 - 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@00080008000800080008000800080008 - 00241 66 0f 7f 85 b0 - 02 00 00 movdqa XMMWORD PTR bias$13[rbp], xmm0 - -; 4031 : __m128i curs = _mm_slli_epi16(curr, 2); - - 00249 66 0f 6f 85 c0 - 01 00 00 movdqa xmm0, XMMWORD PTR curr$8[rbp] - 00251 66 0f 71 f0 02 psllw xmm0, 2 - 00256 66 0f 7f 85 e0 - 02 00 00 movdqa XMMWORD PTR curs$14[rbp], xmm0 - -; 4032 : __m128i prvd = _mm_sub_epi16(prev, curr); - - 0025e 66 0f 6f 85 50 - 02 00 00 movdqa xmm0, XMMWORD PTR prev$11[rbp] - 00266 66 0f f9 85 c0 - 01 00 00 psubw xmm0, XMMWORD PTR curr$8[rbp] - 0026e 66 0f 7f 85 10 - 03 00 00 movdqa XMMWORD PTR prvd$15[rbp], xmm0 - -; 4033 : __m128i nxtd = _mm_sub_epi16(next, curr); - - 00276 66 0f 6f 85 80 - 02 00 00 movdqa xmm0, XMMWORD PTR next$12[rbp] - 0027e 66 0f f9 85 c0 - 01 00 00 psubw xmm0, XMMWORD PTR curr$8[rbp] - 00286 66 0f 7f 85 40 - 03 00 00 movdqa XMMWORD PTR nxtd$16[rbp], xmm0 - -; 4034 : __m128i curb = _mm_add_epi16(curs, bias); - - 0028e 66 0f 6f 85 e0 - 02 00 00 movdqa xmm0, XMMWORD PTR curs$14[rbp] - 00296 66 0f fd 85 b0 - 02 00 00 paddw xmm0, XMMWORD PTR bias$13[rbp] - 0029e 66 0f 7f 85 70 - 03 00 00 movdqa XMMWORD PTR curb$17[rbp], xmm0 - -; 4035 : __m128i even = _mm_add_epi16(prvd, curb); - - 002a6 66 0f 6f 85 10 - 03 00 00 movdqa xmm0, XMMWORD PTR prvd$15[rbp] - 002ae 66 0f fd 85 70 - 03 00 00 paddw xmm0, XMMWORD PTR curb$17[rbp] - 002b6 66 0f 7f 85 a0 - 03 00 00 movdqa XMMWORD PTR even$18[rbp], xmm0 - -; 4036 : __m128i odd = _mm_add_epi16(nxtd, curb); - - 002be 66 0f 6f 85 40 - 03 00 00 movdqa xmm0, XMMWORD PTR nxtd$16[rbp] - 002c6 66 0f fd 85 70 - 03 00 00 paddw xmm0, XMMWORD PTR curb$17[rbp] - 002ce 66 0f 7f 85 d0 - 03 00 00 movdqa XMMWORD PTR odd$19[rbp], xmm0 - -; 4037 : -; 4038 : // interleave even and odd pixels, then undo scaling. -; 4039 : __m128i int0 = _mm_unpacklo_epi16(even, odd); - - 002d6 66 0f 6f 85 a0 - 03 00 00 movdqa xmm0, XMMWORD PTR even$18[rbp] - 002de 66 0f 61 85 d0 - 03 00 00 punpcklwd xmm0, XMMWORD PTR odd$19[rbp] - 002e6 66 0f 7f 85 00 - 04 00 00 movdqa XMMWORD PTR int0$20[rbp], xmm0 - -; 4040 : __m128i int1 = _mm_unpackhi_epi16(even, odd); - - 002ee 66 0f 6f 85 a0 - 03 00 00 movdqa xmm0, XMMWORD PTR even$18[rbp] - 002f6 66 0f 69 85 d0 - 03 00 00 punpckhwd xmm0, XMMWORD PTR odd$19[rbp] - 002fe 66 0f 7f 85 30 - 04 00 00 movdqa XMMWORD PTR int1$21[rbp], xmm0 - -; 4041 : __m128i de0 = _mm_srli_epi16(int0, 4); - - 00306 66 0f 6f 85 00 - 04 00 00 movdqa xmm0, XMMWORD PTR int0$20[rbp] - 0030e 66 0f 71 d0 04 psrlw xmm0, 4 - 00313 66 0f 7f 85 60 - 04 00 00 movdqa XMMWORD PTR de0$22[rbp], xmm0 - -; 4042 : __m128i de1 = _mm_srli_epi16(int1, 4); - - 0031b 66 0f 6f 85 30 - 04 00 00 movdqa xmm0, XMMWORD PTR int1$21[rbp] - 00323 66 0f 71 d0 04 psrlw xmm0, 4 - 00328 66 0f 7f 85 90 - 04 00 00 movdqa XMMWORD PTR de1$23[rbp], xmm0 - -; 4043 : -; 4044 : // pack and write output -; 4045 : __m128i outv = _mm_packus_epi16(de0, de1); - - 00330 66 0f 6f 85 60 - 04 00 00 movdqa xmm0, XMMWORD PTR de0$22[rbp] - 00338 66 0f 67 85 90 - 04 00 00 packuswb xmm0, XMMWORD PTR de1$23[rbp] - 00340 66 0f 7f 85 c0 - 04 00 00 movdqa XMMWORD PTR outv$24[rbp], xmm0 - -; 4046 : _mm_storeu_si128((__m128i *)(out + i * 2), outv); - - 00348 8b 45 04 mov eax, DWORD PTR i$[rbp] - 0034b 03 c0 add eax, eax - 0034d 48 98 cdqe - 0034f 48 8b 8d 40 07 - 00 00 mov rcx, QWORD PTR out$[rbp] - 00356 48 03 c8 add rcx, rax - 00359 48 8b c1 mov rax, rcx - 0035c 66 0f 6f 85 c0 - 04 00 00 movdqa xmm0, XMMWORD PTR outv$24[rbp] - 00364 f3 0f 7f 00 movdqu XMMWORD PTR [rax], xmm0 - -; 4047 : #elif defined(STBI_NEON) -; 4048 : // load and perform the vertical filtering pass -; 4049 : // this uses 3*x + y = 4*x + (y - x) -; 4050 : uint8x8_t farb = vld1_u8(in_far + i); -; 4051 : uint8x8_t nearb = vld1_u8(in_near + i); -; 4052 : int16x8_t diff = vreinterpretq_s16_u16(vsubl_u8(farb, nearb)); -; 4053 : int16x8_t nears = vreinterpretq_s16_u16(vshll_n_u8(nearb, 2)); -; 4054 : int16x8_t curr = vaddq_s16(nears, diff); // current row -; 4055 : -; 4056 : // horizontal filter works the same based on shifted vers of current -; 4057 : // row. "prev" is current row shifted right by 1 pixel; we need to -; 4058 : // insert the previous pixel value (from t1). -; 4059 : // "next" is current row shifted left by 1 pixel, with first pixel -; 4060 : // of next block of 8 pixels added in. -; 4061 : int16x8_t prv0 = vextq_s16(curr, curr, 7); -; 4062 : int16x8_t nxt0 = vextq_s16(curr, curr, 1); -; 4063 : int16x8_t prev = vsetq_lane_s16(t1, prv0, 0); -; 4064 : int16x8_t next = vsetq_lane_s16(3 * in_near[i + 8] + in_far[i + 8], nxt0, 7); -; 4065 : -; 4066 : // horizontal filter, polyphase implementation since it's convenient: -; 4067 : // even pixels = 3*cur + prev = cur*4 + (prev - cur) -; 4068 : // odd pixels = 3*cur + next = cur*4 + (next - cur) -; 4069 : // note the shared term. -; 4070 : int16x8_t curs = vshlq_n_s16(curr, 2); -; 4071 : int16x8_t prvd = vsubq_s16(prev, curr); -; 4072 : int16x8_t nxtd = vsubq_s16(next, curr); -; 4073 : int16x8_t even = vaddq_s16(curs, prvd); -; 4074 : int16x8_t odd = vaddq_s16(curs, nxtd); -; 4075 : -; 4076 : // undo scaling and round, then store with even/odd phases interleaved -; 4077 : uint8x8x2_t o; -; 4078 : o.val[0] = vqrshrun_n_s16(even, 4); -; 4079 : o.val[1] = vqrshrun_n_s16(odd, 4); -; 4080 : vst2_u8(out + i * 2, o); -; 4081 : #endif -; 4082 : -; 4083 : // "previous" value for next iter -; 4084 : t1 = 3 * in_near[i + 7] + in_far[i + 7]; - - 00368 8b 45 04 mov eax, DWORD PTR i$[rbp] - 0036b 83 c0 07 add eax, 7 - 0036e 48 98 cdqe - 00370 48 8b 8d 48 07 - 00 00 mov rcx, QWORD PTR in_near$[rbp] - 00377 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0037b 6b c0 03 imul eax, eax, 3 - 0037e 8b 4d 04 mov ecx, DWORD PTR i$[rbp] - 00381 83 c1 07 add ecx, 7 - 00384 48 63 c9 movsxd rcx, ecx - 00387 48 8b 95 50 07 - 00 00 mov rdx, QWORD PTR in_far$[rbp] - 0038e 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 00392 03 c1 add eax, ecx - 00394 89 45 44 mov DWORD PTR t1$[rbp], eax - -; 4085 : } - - 00397 e9 4d fd ff ff jmp $LN2@stbi__resa -$LN3@stbi__resa: - -; 4086 : -; 4087 : t0 = t1; - - 0039c 8b 45 44 mov eax, DWORD PTR t1$[rbp] - 0039f 89 45 24 mov DWORD PTR t0$[rbp], eax - -; 4088 : t1 = 3 * in_near[i] + in_far[i]; - - 003a2 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 003a6 48 8b 8d 48 07 - 00 00 mov rcx, QWORD PTR in_near$[rbp] - 003ad 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 003b1 6b c0 03 imul eax, eax, 3 - 003b4 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] - 003b8 48 8b 95 50 07 - 00 00 mov rdx, QWORD PTR in_far$[rbp] - 003bf 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 003c3 03 c1 add eax, ecx - 003c5 89 45 44 mov DWORD PTR t1$[rbp], eax - -; 4089 : out[i * 2] = stbi__div16(3 * t1 + t0 + 8); - - 003c8 6b 45 44 03 imul eax, DWORD PTR t1$[rbp], 3 - 003cc 8b 4d 24 mov ecx, DWORD PTR t0$[rbp] - 003cf 8d 44 08 08 lea eax, DWORD PTR [rax+rcx+8] - 003d3 c1 f8 04 sar eax, 4 - 003d6 8b 4d 04 mov ecx, DWORD PTR i$[rbp] - 003d9 03 c9 add ecx, ecx - 003db 48 63 c9 movsxd rcx, ecx - 003de 48 8b 95 40 07 - 00 00 mov rdx, QWORD PTR out$[rbp] - 003e5 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 4090 : -; 4091 : for (++i; i < w; ++i) { - - 003e8 8b 45 04 mov eax, DWORD PTR i$[rbp] - 003eb ff c0 inc eax - 003ed 89 45 04 mov DWORD PTR i$[rbp], eax - 003f0 eb 08 jmp SHORT $LN7@stbi__resa -$LN5@stbi__resa: - 003f2 8b 45 04 mov eax, DWORD PTR i$[rbp] - 003f5 ff c0 inc eax - 003f7 89 45 04 mov DWORD PTR i$[rbp], eax -$LN7@stbi__resa: - 003fa 8b 85 58 07 00 - 00 mov eax, DWORD PTR w$[rbp] - 00400 39 45 04 cmp DWORD PTR i$[rbp], eax - 00403 7d 73 jge SHORT $LN6@stbi__resa - -; 4092 : t0 = t1; - - 00405 8b 45 44 mov eax, DWORD PTR t1$[rbp] - 00408 89 45 24 mov DWORD PTR t0$[rbp], eax - -; 4093 : t1 = 3 * in_near[i] + in_far[i]; - - 0040b 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 0040f 48 8b 8d 48 07 - 00 00 mov rcx, QWORD PTR in_near$[rbp] - 00416 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0041a 6b c0 03 imul eax, eax, 3 - 0041d 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] - 00421 48 8b 95 50 07 - 00 00 mov rdx, QWORD PTR in_far$[rbp] - 00428 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 0042c 03 c1 add eax, ecx - 0042e 89 45 44 mov DWORD PTR t1$[rbp], eax - -; 4094 : out[i * 2 - 1] = stbi__div16(3 * t0 + t1 + 8); - - 00431 6b 45 24 03 imul eax, DWORD PTR t0$[rbp], 3 - 00435 8b 4d 44 mov ecx, DWORD PTR t1$[rbp] - 00438 8d 44 08 08 lea eax, DWORD PTR [rax+rcx+8] - 0043c c1 f8 04 sar eax, 4 - 0043f 8b 4d 04 mov ecx, DWORD PTR i$[rbp] - 00442 8d 4c 09 ff lea ecx, DWORD PTR [rcx+rcx-1] - 00446 48 63 c9 movsxd rcx, ecx - 00449 48 8b 95 40 07 - 00 00 mov rdx, QWORD PTR out$[rbp] - 00450 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 4095 : out[i * 2] = stbi__div16(3 * t1 + t0 + 8); - - 00453 6b 45 44 03 imul eax, DWORD PTR t1$[rbp], 3 - 00457 8b 4d 24 mov ecx, DWORD PTR t0$[rbp] - 0045a 8d 44 08 08 lea eax, DWORD PTR [rax+rcx+8] - 0045e c1 f8 04 sar eax, 4 - 00461 8b 4d 04 mov ecx, DWORD PTR i$[rbp] - 00464 d1 e1 shl ecx, 1 - 00466 48 63 c9 movsxd rcx, ecx - 00469 48 8b 95 40 07 - 00 00 mov rdx, QWORD PTR out$[rbp] - 00470 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 4096 : } - - 00473 e9 7a ff ff ff jmp $LN5@stbi__resa -$LN6@stbi__resa: - -; 4097 : out[w * 2 - 1] = stbi__div4(t1 + 2); - - 00478 8b 45 44 mov eax, DWORD PTR t1$[rbp] - 0047b 83 c0 02 add eax, 2 - 0047e c1 f8 02 sar eax, 2 - 00481 8b 8d 58 07 00 - 00 mov ecx, DWORD PTR w$[rbp] - 00487 8d 4c 09 ff lea ecx, DWORD PTR [rcx+rcx-1] - 0048b 48 63 c9 movsxd rcx, ecx - 0048e 48 8b 95 40 07 - 00 00 mov rdx, QWORD PTR out$[rbp] - 00495 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 4098 : -; 4099 : STBI_NOTUSED(hs); -; 4100 : -; 4101 : return out; - - 00498 48 8b 85 40 07 - 00 00 mov rax, QWORD PTR out$[rbp] -$LN1@stbi__resa: - -; 4102 : } - - 0049f 48 8d a5 28 07 - 00 00 lea rsp, QWORD PTR [rbp+1832] - 004a6 5f pop rdi - 004a7 5d pop rbp - 004a8 c3 ret 0 -stbi__resample_row_hv_2_simd ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__resample_row_hv_2 -_TEXT SEGMENT -i$ = 4 -t0$ = 36 -t1$ = 68 -tv78 = 276 -out$ = 320 -in_near$ = 328 -in_far$ = 336 -w$ = 344 -hs$ = 352 -stbi__resample_row_hv_2 PROC ; COMDAT - -; 3964 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 3965 : // need to generate 2x2 samples for every one in input -; 3966 : int i, t0, t1; -; 3967 : if (w == 1) { - - 0002f 83 bd 58 01 00 - 00 01 cmp DWORD PTR w$[rbp], 1 - 00036 75 78 jne SHORT $LN5@stbi__resa - -; 3968 : out[0] = out[1] = stbi__div4(3 * in_near[0] + in_far[0] + 2); - - 00038 b8 01 00 00 00 mov eax, 1 - 0003d 48 6b c0 00 imul rax, rax, 0 - 00041 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR in_near$[rbp] - 00048 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0004c 6b c0 03 imul eax, eax, 3 - 0004f b9 01 00 00 00 mov ecx, 1 - 00054 48 6b c9 00 imul rcx, rcx, 0 - 00058 48 8b 95 50 01 - 00 00 mov rdx, QWORD PTR in_far$[rbp] - 0005f 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 00063 8d 44 08 02 lea eax, DWORD PTR [rax+rcx+2] - 00067 c1 f8 02 sar eax, 2 - 0006a 89 85 14 01 00 - 00 mov DWORD PTR tv78[rbp], eax - 00070 b8 01 00 00 00 mov eax, 1 - 00075 48 6b c0 01 imul rax, rax, 1 - 00079 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR out$[rbp] - 00080 0f b6 95 14 01 - 00 00 movzx edx, BYTE PTR tv78[rbp] - 00087 88 14 01 mov BYTE PTR [rcx+rax], dl - 0008a b8 01 00 00 00 mov eax, 1 - 0008f 48 6b c0 00 imul rax, rax, 0 - 00093 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR out$[rbp] - 0009a 0f b6 95 14 01 - 00 00 movzx edx, BYTE PTR tv78[rbp] - 000a1 88 14 01 mov BYTE PTR [rcx+rax], dl - -; 3969 : return out; - - 000a4 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR out$[rbp] - 000ab e9 02 01 00 00 jmp $LN1@stbi__resa -$LN5@stbi__resa: - -; 3970 : } -; 3971 : -; 3972 : t1 = 3 * in_near[0] + in_far[0]; - - 000b0 b8 01 00 00 00 mov eax, 1 - 000b5 48 6b c0 00 imul rax, rax, 0 - 000b9 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR in_near$[rbp] - 000c0 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 000c4 6b c0 03 imul eax, eax, 3 - 000c7 b9 01 00 00 00 mov ecx, 1 - 000cc 48 6b c9 00 imul rcx, rcx, 0 - 000d0 48 8b 95 50 01 - 00 00 mov rdx, QWORD PTR in_far$[rbp] - 000d7 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 000db 03 c1 add eax, ecx - 000dd 89 45 44 mov DWORD PTR t1$[rbp], eax - -; 3973 : out[0] = stbi__div4(t1 + 2); - - 000e0 8b 45 44 mov eax, DWORD PTR t1$[rbp] - 000e3 83 c0 02 add eax, 2 - 000e6 c1 f8 02 sar eax, 2 - 000e9 b9 01 00 00 00 mov ecx, 1 - 000ee 48 6b c9 00 imul rcx, rcx, 0 - 000f2 48 8b 95 40 01 - 00 00 mov rdx, QWORD PTR out$[rbp] - 000f9 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 3974 : for (i = 1; i < w; ++i) { - - 000fc c7 45 04 01 00 - 00 00 mov DWORD PTR i$[rbp], 1 - 00103 eb 08 jmp SHORT $LN4@stbi__resa -$LN2@stbi__resa: - 00105 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00108 ff c0 inc eax - 0010a 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__resa: - 0010d 8b 85 58 01 00 - 00 mov eax, DWORD PTR w$[rbp] - 00113 39 45 04 cmp DWORD PTR i$[rbp], eax - 00116 7d 73 jge SHORT $LN3@stbi__resa - -; 3975 : t0 = t1; - - 00118 8b 45 44 mov eax, DWORD PTR t1$[rbp] - 0011b 89 45 24 mov DWORD PTR t0$[rbp], eax - -; 3976 : t1 = 3 * in_near[i] + in_far[i]; - - 0011e 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00122 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR in_near$[rbp] - 00129 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0012d 6b c0 03 imul eax, eax, 3 - 00130 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] - 00134 48 8b 95 50 01 - 00 00 mov rdx, QWORD PTR in_far$[rbp] - 0013b 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 0013f 03 c1 add eax, ecx - 00141 89 45 44 mov DWORD PTR t1$[rbp], eax - -; 3977 : out[i * 2 - 1] = stbi__div16(3 * t0 + t1 + 8); - - 00144 6b 45 24 03 imul eax, DWORD PTR t0$[rbp], 3 - 00148 8b 4d 44 mov ecx, DWORD PTR t1$[rbp] - 0014b 8d 44 08 08 lea eax, DWORD PTR [rax+rcx+8] - 0014f c1 f8 04 sar eax, 4 - 00152 8b 4d 04 mov ecx, DWORD PTR i$[rbp] - 00155 8d 4c 09 ff lea ecx, DWORD PTR [rcx+rcx-1] - 00159 48 63 c9 movsxd rcx, ecx - 0015c 48 8b 95 40 01 - 00 00 mov rdx, QWORD PTR out$[rbp] - 00163 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 3978 : out[i * 2] = stbi__div16(3 * t1 + t0 + 8); - - 00166 6b 45 44 03 imul eax, DWORD PTR t1$[rbp], 3 - 0016a 8b 4d 24 mov ecx, DWORD PTR t0$[rbp] - 0016d 8d 44 08 08 lea eax, DWORD PTR [rax+rcx+8] - 00171 c1 f8 04 sar eax, 4 - 00174 8b 4d 04 mov ecx, DWORD PTR i$[rbp] - 00177 d1 e1 shl ecx, 1 - 00179 48 63 c9 movsxd rcx, ecx - 0017c 48 8b 95 40 01 - 00 00 mov rdx, QWORD PTR out$[rbp] - 00183 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 3979 : } - - 00186 e9 7a ff ff ff jmp $LN2@stbi__resa -$LN3@stbi__resa: - -; 3980 : out[w * 2 - 1] = stbi__div4(t1 + 2); - - 0018b 8b 45 44 mov eax, DWORD PTR t1$[rbp] - 0018e 83 c0 02 add eax, 2 - 00191 c1 f8 02 sar eax, 2 - 00194 8b 8d 58 01 00 - 00 mov ecx, DWORD PTR w$[rbp] - 0019a 8d 4c 09 ff lea ecx, DWORD PTR [rcx+rcx-1] - 0019e 48 63 c9 movsxd rcx, ecx - 001a1 48 8b 95 40 01 - 00 00 mov rdx, QWORD PTR out$[rbp] - 001a8 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 3981 : -; 3982 : STBI_NOTUSED(hs); -; 3983 : -; 3984 : return out; - - 001ab 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR out$[rbp] -$LN1@stbi__resa: - -; 3985 : } - - 001b2 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 001b9 5f pop rdi - 001ba 5d pop rbp - 001bb c3 ret 0 -stbi__resample_row_hv_2 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__resample_row_h_2 -_TEXT SEGMENT -i$ = 4 -input$ = 40 -n$1 = 68 -out$ = 320 -in_near$ = 328 -in_far$ = 336 -w$ = 344 -hs$ = 352 -stbi__resample_row_h_2 PROC ; COMDAT - -; 3933 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 3934 : // need to generate two samples horizontally for every one in input -; 3935 : int i; -; 3936 : stbi_uc *input = in_near; - - 0002f 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR in_near$[rbp] - 00036 48 89 45 28 mov QWORD PTR input$[rbp], rax - -; 3937 : -; 3938 : if (w == 1) { - - 0003a 83 bd 58 01 00 - 00 01 cmp DWORD PTR w$[rbp], 1 - 00041 75 59 jne SHORT $LN5@stbi__resa - -; 3939 : // if only one sample, can't do any interpolation -; 3940 : out[0] = out[1] = input[0]; - - 00043 b8 01 00 00 00 mov eax, 1 - 00048 48 6b c0 00 imul rax, rax, 0 - 0004c b9 01 00 00 00 mov ecx, 1 - 00051 48 6b c9 01 imul rcx, rcx, 1 - 00055 48 8b 95 40 01 - 00 00 mov rdx, QWORD PTR out$[rbp] - 0005c 4c 8b 45 28 mov r8, QWORD PTR input$[rbp] - 00060 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00065 88 04 0a mov BYTE PTR [rdx+rcx], al - 00068 b8 01 00 00 00 mov eax, 1 - 0006d 48 6b c0 01 imul rax, rax, 1 - 00071 b9 01 00 00 00 mov ecx, 1 - 00076 48 6b c9 00 imul rcx, rcx, 0 - 0007a 48 8b 95 40 01 - 00 00 mov rdx, QWORD PTR out$[rbp] - 00081 4c 8b 85 40 01 - 00 00 mov r8, QWORD PTR out$[rbp] - 00088 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 0008d 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 3941 : return out; - - 00090 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR out$[rbp] - 00097 e9 64 01 00 00 jmp $LN1@stbi__resa -$LN5@stbi__resa: - -; 3942 : } -; 3943 : -; 3944 : out[0] = input[0]; - - 0009c b8 01 00 00 00 mov eax, 1 - 000a1 48 6b c0 00 imul rax, rax, 0 - 000a5 b9 01 00 00 00 mov ecx, 1 - 000aa 48 6b c9 00 imul rcx, rcx, 0 - 000ae 48 8b 95 40 01 - 00 00 mov rdx, QWORD PTR out$[rbp] - 000b5 4c 8b 45 28 mov r8, QWORD PTR input$[rbp] - 000b9 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 000be 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 3945 : out[1] = stbi__div4(input[0] * 3 + input[1] + 2); - - 000c1 b8 01 00 00 00 mov eax, 1 - 000c6 48 6b c0 00 imul rax, rax, 0 - 000ca 48 8b 4d 28 mov rcx, QWORD PTR input$[rbp] - 000ce 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 000d2 6b c0 03 imul eax, eax, 3 - 000d5 b9 01 00 00 00 mov ecx, 1 - 000da 48 6b c9 01 imul rcx, rcx, 1 - 000de 48 8b 55 28 mov rdx, QWORD PTR input$[rbp] - 000e2 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 000e6 8d 44 08 02 lea eax, DWORD PTR [rax+rcx+2] - 000ea c1 f8 02 sar eax, 2 - 000ed b9 01 00 00 00 mov ecx, 1 - 000f2 48 6b c9 01 imul rcx, rcx, 1 - 000f6 48 8b 95 40 01 - 00 00 mov rdx, QWORD PTR out$[rbp] - 000fd 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 3946 : for (i = 1; i < w - 1; ++i) { - - 00100 c7 45 04 01 00 - 00 00 mov DWORD PTR i$[rbp], 1 - 00107 eb 08 jmp SHORT $LN4@stbi__resa -$LN2@stbi__resa: - 00109 8b 45 04 mov eax, DWORD PTR i$[rbp] - 0010c ff c0 inc eax - 0010e 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__resa: - 00111 8b 85 58 01 00 - 00 mov eax, DWORD PTR w$[rbp] - 00117 ff c8 dec eax - 00119 39 45 04 cmp DWORD PTR i$[rbp], eax - 0011c 7d 72 jge SHORT $LN3@stbi__resa - -; 3947 : int n = 3 * input[i] + 2; - - 0011e 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00122 48 8b 4d 28 mov rcx, QWORD PTR input$[rbp] - 00126 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0012a 6b c0 03 imul eax, eax, 3 - 0012d 83 c0 02 add eax, 2 - 00130 89 45 44 mov DWORD PTR n$1[rbp], eax - -; 3948 : out[i * 2 + 0] = stbi__div4(n + input[i - 1]); - - 00133 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00136 ff c8 dec eax - 00138 48 98 cdqe - 0013a 48 8b 4d 28 mov rcx, QWORD PTR input$[rbp] - 0013e 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00142 8b 4d 44 mov ecx, DWORD PTR n$1[rbp] - 00145 03 c8 add ecx, eax - 00147 8b c1 mov eax, ecx - 00149 c1 f8 02 sar eax, 2 - 0014c 8b 4d 04 mov ecx, DWORD PTR i$[rbp] - 0014f 03 c9 add ecx, ecx - 00151 48 63 c9 movsxd rcx, ecx - 00154 48 8b 95 40 01 - 00 00 mov rdx, QWORD PTR out$[rbp] - 0015b 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 3949 : out[i * 2 + 1] = stbi__div4(n + input[i + 1]); - - 0015e 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00161 ff c0 inc eax - 00163 48 98 cdqe - 00165 48 8b 4d 28 mov rcx, QWORD PTR input$[rbp] - 00169 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0016d 8b 4d 44 mov ecx, DWORD PTR n$1[rbp] - 00170 03 c8 add ecx, eax - 00172 8b c1 mov eax, ecx - 00174 c1 f8 02 sar eax, 2 - 00177 8b 4d 04 mov ecx, DWORD PTR i$[rbp] - 0017a 8d 4c 09 01 lea ecx, DWORD PTR [rcx+rcx+1] - 0017e 48 63 c9 movsxd rcx, ecx - 00181 48 8b 95 40 01 - 00 00 mov rdx, QWORD PTR out$[rbp] - 00188 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 3950 : } - - 0018b e9 79 ff ff ff jmp $LN2@stbi__resa -$LN3@stbi__resa: - -; 3951 : out[i * 2 + 0] = stbi__div4(input[w - 2] * 3 + input[w - 1] + 2); - - 00190 8b 85 58 01 00 - 00 mov eax, DWORD PTR w$[rbp] - 00196 83 e8 02 sub eax, 2 - 00199 48 98 cdqe - 0019b 48 8b 4d 28 mov rcx, QWORD PTR input$[rbp] - 0019f 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 001a3 6b c0 03 imul eax, eax, 3 - 001a6 8b 8d 58 01 00 - 00 mov ecx, DWORD PTR w$[rbp] - 001ac ff c9 dec ecx - 001ae 48 63 c9 movsxd rcx, ecx - 001b1 48 8b 55 28 mov rdx, QWORD PTR input$[rbp] - 001b5 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 001b9 8d 44 08 02 lea eax, DWORD PTR [rax+rcx+2] - 001bd c1 f8 02 sar eax, 2 - 001c0 8b 4d 04 mov ecx, DWORD PTR i$[rbp] - 001c3 03 c9 add ecx, ecx - 001c5 48 63 c9 movsxd rcx, ecx - 001c8 48 8b 95 40 01 - 00 00 mov rdx, QWORD PTR out$[rbp] - 001cf 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 3952 : out[i * 2 + 1] = input[w - 1]; - - 001d2 8b 85 58 01 00 - 00 mov eax, DWORD PTR w$[rbp] - 001d8 ff c8 dec eax - 001da 48 98 cdqe - 001dc 8b 4d 04 mov ecx, DWORD PTR i$[rbp] - 001df 8d 4c 09 01 lea ecx, DWORD PTR [rcx+rcx+1] - 001e3 48 63 c9 movsxd rcx, ecx - 001e6 48 8b 95 40 01 - 00 00 mov rdx, QWORD PTR out$[rbp] - 001ed 4c 8b 45 28 mov r8, QWORD PTR input$[rbp] - 001f1 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 001f6 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 3953 : -; 3954 : STBI_NOTUSED(in_far); -; 3955 : STBI_NOTUSED(hs); -; 3956 : -; 3957 : return out; - - 001f9 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR out$[rbp] -$LN1@stbi__resa: - -; 3958 : } - - 00200 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 00207 5f pop rdi - 00208 5d pop rbp - 00209 c3 ret 0 -stbi__resample_row_h_2 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__resample_row_v_2 -_TEXT SEGMENT -i$ = 4 -out$ = 256 -in_near$ = 264 -in_far$ = 272 -w$ = 280 -hs$ = 288 -stbi__resample_row_v_2 PROC ; COMDAT - -; 3922 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 3923 : // need to generate two samples vertically for every one in input -; 3924 : int i; -; 3925 : STBI_NOTUSED(hs); -; 3926 : for (i = 0; i < w; ++i) - - 0002f c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00036 eb 08 jmp SHORT $LN4@stbi__resa -$LN2@stbi__resa: - 00038 8b 45 04 mov eax, DWORD PTR i$[rbp] - 0003b ff c0 inc eax - 0003d 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__resa: - 00040 8b 85 18 01 00 - 00 mov eax, DWORD PTR w$[rbp] - 00046 39 45 04 cmp DWORD PTR i$[rbp], eax - 00049 7d 38 jge SHORT $LN3@stbi__resa - -; 3927 : out[i] = stbi__div4(3 * in_near[i] + in_far[i] + 2); - - 0004b 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 0004f 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR in_near$[rbp] - 00056 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0005a 6b c0 03 imul eax, eax, 3 - 0005d 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] - 00061 48 8b 95 10 01 - 00 00 mov rdx, QWORD PTR in_far$[rbp] - 00068 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 0006c 8d 44 08 02 lea eax, DWORD PTR [rax+rcx+2] - 00070 c1 f8 02 sar eax, 2 - 00073 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] - 00077 48 8b 95 00 01 - 00 00 mov rdx, QWORD PTR out$[rbp] - 0007e 88 04 0a mov BYTE PTR [rdx+rcx], al - 00081 eb b5 jmp SHORT $LN2@stbi__resa -$LN3@stbi__resa: - -; 3928 : return out; - - 00083 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR out$[rbp] - -; 3929 : } - - 0008a 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00091 5f pop rdi - 00092 5d pop rbp - 00093 c3 ret 0 -stbi__resample_row_v_2 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT resample_row_1 -_TEXT SEGMENT -out$ = 224 -in_near$ = 232 -in_far$ = 240 -w$ = 248 -hs$ = 256 -resample_row_1 PROC ; COMDAT - -; 3912 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 3913 : STBI_NOTUSED(out); -; 3914 : STBI_NOTUSED(in_far); -; 3915 : STBI_NOTUSED(w); -; 3916 : STBI_NOTUSED(hs); -; 3917 : return in_near; - - 0002f 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR in_near$[rbp] - -; 3918 : } - - 00036 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0003d 5f pop rdi - 0003e 5d pop rbp - 0003f c3 ret 0 -resample_row_1 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__decode_jpeg_image -_TEXT SEGMENT -m$ = 4 -Ld$1 = 36 -NL$2 = 68 -j$ = 320 -stbi__decode_jpeg_image PROC ; COMDAT - -; 3863 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 3864 : int m; -; 3865 : for (m = 0; m < 4; m++) { - - 00020 c7 45 04 00 00 - 00 00 mov DWORD PTR m$[rbp], 0 - 00027 eb 08 jmp SHORT $LN4@stbi__deco -$LN2@stbi__deco: - 00029 8b 45 04 mov eax, DWORD PTR m$[rbp] - 0002c ff c0 inc eax - 0002e 89 45 04 mov DWORD PTR m$[rbp], eax -$LN4@stbi__deco: - 00031 83 7d 04 04 cmp DWORD PTR m$[rbp], 4 - 00035 7d 38 jge SHORT $LN3@stbi__deco - -; 3866 : j->img_comp[m].raw_data = NULL; - - 00037 48 63 45 04 movsxd rax, DWORD PTR m$[rbp] - 0003b 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0003f 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00046 48 c7 84 01 d8 - 46 00 00 00 00 - 00 00 mov QWORD PTR [rcx+rax+18136], 0 - -; 3867 : j->img_comp[m].raw_coeff = NULL; - - 00052 48 63 45 04 movsxd rax, DWORD PTR m$[rbp] - 00056 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0005a 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00061 48 c7 84 01 e0 - 46 00 00 00 00 - 00 00 mov QWORD PTR [rcx+rax+18144], 0 - -; 3868 : } - - 0006d eb ba jmp SHORT $LN2@stbi__deco -$LN3@stbi__deco: - -; 3869 : j->restart_interval = 0; - - 0006f 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00076 c7 80 68 48 00 - 00 00 00 00 00 mov DWORD PTR [rax+18536], 0 - -; 3870 : if (!stbi__decode_jpeg_header(j, STBI__SCAN_load)) - - 00080 33 d2 xor edx, edx - 00082 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00089 e8 00 00 00 00 call stbi__decode_jpeg_header - 0008e 85 c0 test eax, eax - 00090 75 07 jne SHORT $LN7@stbi__deco - -; 3871 : return 0; - - 00092 33 c0 xor eax, eax - 00094 e9 8e 01 00 00 jmp $LN1@stbi__deco -$LN7@stbi__deco: - -; 3872 : m = stbi__get_marker(j); - - 00099 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 000a0 e8 00 00 00 00 call stbi__get_marker - 000a5 0f b6 c0 movzx eax, al - 000a8 89 45 04 mov DWORD PTR m$[rbp], eax -$LN5@stbi__deco: - -; 3873 : while (!stbi__EOI(m)) { - - 000ab 81 7d 04 d9 00 - 00 00 cmp DWORD PTR m$[rbp], 217 ; 000000d9H - 000b2 0f 84 4d 01 00 - 00 je $LN6@stbi__deco - -; 3874 : if (stbi__SOS(m)) { - - 000b8 81 7d 04 da 00 - 00 00 cmp DWORD PTR m$[rbp], 218 ; 000000daH - 000bf 0f 85 97 00 00 - 00 jne $LN8@stbi__deco - -; 3875 : if (!stbi__process_scan_header(j)) - - 000c5 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 000cc e8 00 00 00 00 call stbi__process_scan_header - 000d1 85 c0 test eax, eax - 000d3 75 07 jne SHORT $LN10@stbi__deco - -; 3876 : return 0; - - 000d5 33 c0 xor eax, eax - 000d7 e9 4b 01 00 00 jmp $LN1@stbi__deco -$LN10@stbi__deco: - -; 3877 : if (!stbi__parse_entropy_coded_data(j)) - - 000dc 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 000e3 e8 00 00 00 00 call stbi__parse_entropy_coded_data - 000e8 85 c0 test eax, eax - 000ea 75 07 jne SHORT $LN11@stbi__deco - -; 3878 : return 0; - - 000ec 33 c0 xor eax, eax - 000ee e9 34 01 00 00 jmp $LN1@stbi__deco -$LN11@stbi__deco: - -; 3879 : if (j->marker == STBI__MARKER_none) { - - 000f3 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 000fa 0f b6 80 28 48 - 00 00 movzx eax, BYTE PTR [rax+18472] - 00101 3d ff 00 00 00 cmp eax, 255 ; 000000ffH - 00106 75 19 jne SHORT $LN12@stbi__deco - -; 3880 : j->marker = stbi__skip_jpeg_junk_at_end(j); - - 00108 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 0010f e8 00 00 00 00 call stbi__skip_jpeg_junk_at_end - 00114 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 0011b 88 81 28 48 00 - 00 mov BYTE PTR [rcx+18472], al -$LN12@stbi__deco: - -; 3881 : // if we reach eof without hitting a marker, stbi__get_marker() below will fail and we'll eventually return 0 -; 3882 : } -; 3883 : m = stbi__get_marker(j); - - 00121 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00128 e8 00 00 00 00 call stbi__get_marker - 0012d 0f b6 c0 movzx eax, al - 00130 89 45 04 mov DWORD PTR m$[rbp], eax - -; 3884 : if (STBI__RESTART(m)) - - 00133 81 7d 04 d0 00 - 00 00 cmp DWORD PTR m$[rbp], 208 ; 000000d0H - 0013a 7c 1b jl SHORT $LN13@stbi__deco - 0013c 81 7d 04 d7 00 - 00 00 cmp DWORD PTR m$[rbp], 215 ; 000000d7H - 00143 7f 12 jg SHORT $LN13@stbi__deco - -; 3885 : m = stbi__get_marker(j); - - 00145 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 0014c e8 00 00 00 00 call stbi__get_marker - 00151 0f b6 c0 movzx eax, al - 00154 89 45 04 mov DWORD PTR m$[rbp], eax -$LN13@stbi__deco: - -; 3886 : } else if (stbi__DNL(m)) { - - 00157 e9 a4 00 00 00 jmp $LN9@stbi__deco -$LN8@stbi__deco: - 0015c 81 7d 04 dc 00 - 00 00 cmp DWORD PTR m$[rbp], 220 ; 000000dcH - 00163 75 6f jne SHORT $LN14@stbi__deco - -; 3887 : int Ld = stbi__get16be(j->s); - - 00165 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 0016c 48 8b 08 mov rcx, QWORD PTR [rax] - 0016f e8 00 00 00 00 call stbi__get16be - 00174 89 45 24 mov DWORD PTR Ld$1[rbp], eax - -; 3888 : stbi__uint32 NL = stbi__get16be(j->s); - - 00177 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 0017e 48 8b 08 mov rcx, QWORD PTR [rax] - 00181 e8 00 00 00 00 call stbi__get16be - 00186 89 45 44 mov DWORD PTR NL$2[rbp], eax - -; 3889 : if (Ld != 4) - - 00189 83 7d 24 04 cmp DWORD PTR Ld$1[rbp], 4 - 0018d 74 11 je SHORT $LN16@stbi__deco - -; 3890 : return stbi__err("bad DNL len", "Corrupt JPEG"); - - 0018f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0M@EPMOIECP@bad?5DNL?5len@ - 00196 e8 00 00 00 00 call stbi__err - 0019b e9 87 00 00 00 jmp $LN1@stbi__deco -$LN16@stbi__deco: - -; 3891 : if (NL != j->s->img_y) - - 001a0 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 001a7 48 8b 00 mov rax, QWORD PTR [rax] - 001aa 8b 40 04 mov eax, DWORD PTR [rax+4] - 001ad 39 45 44 cmp DWORD PTR NL$2[rbp], eax - 001b0 74 0e je SHORT $LN17@stbi__deco - -; 3892 : return stbi__err("bad DNL height", "Corrupt JPEG"); - - 001b2 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0P@PNCLKCLJ@bad?5DNL?5height@ - 001b9 e8 00 00 00 00 call stbi__err - 001be eb 67 jmp SHORT $LN1@stbi__deco -$LN17@stbi__deco: - -; 3893 : m = stbi__get_marker(j); - - 001c0 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 001c7 e8 00 00 00 00 call stbi__get_marker - 001cc 0f b6 c0 movzx eax, al - 001cf 89 45 04 mov DWORD PTR m$[rbp], eax - -; 3894 : } else { - - 001d2 eb 2c jmp SHORT $LN15@stbi__deco -$LN14@stbi__deco: - -; 3895 : if (!stbi__process_marker(j, m)) - - 001d4 8b 55 04 mov edx, DWORD PTR m$[rbp] - 001d7 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 001de e8 00 00 00 00 call stbi__process_marker - 001e3 85 c0 test eax, eax - 001e5 75 07 jne SHORT $LN18@stbi__deco - -; 3896 : return 1; - - 001e7 b8 01 00 00 00 mov eax, 1 - 001ec eb 39 jmp SHORT $LN1@stbi__deco -$LN18@stbi__deco: - -; 3897 : m = stbi__get_marker(j); - - 001ee 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 001f5 e8 00 00 00 00 call stbi__get_marker - 001fa 0f b6 c0 movzx eax, al - 001fd 89 45 04 mov DWORD PTR m$[rbp], eax -$LN15@stbi__deco: -$LN9@stbi__deco: - -; 3898 : } -; 3899 : } - - 00200 e9 a6 fe ff ff jmp $LN5@stbi__deco -$LN6@stbi__deco: - -; 3900 : if (j->progressive) - - 00205 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 0020c 83 b8 30 48 00 - 00 00 cmp DWORD PTR [rax+18480], 0 - 00213 74 0d je SHORT $LN19@stbi__deco - -; 3901 : stbi__jpeg_finish(j); - - 00215 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 0021c e8 00 00 00 00 call stbi__jpeg_finish - 00221 90 npad 1 -$LN19@stbi__deco: - -; 3902 : return 1; - - 00222 b8 01 00 00 00 mov eax, 1 -$LN1@stbi__deco: - -; 3903 : } - - 00227 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 0022e 5f pop rdi - 0022f 5d pop rbp - 00230 c3 ret 0 -stbi__decode_jpeg_image ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__skip_jpeg_junk_at_end -_TEXT SEGMENT -x$1 = 4 -j$ = 256 -stbi__skip_jpeg_junk_at_end PROC ; COMDAT - -; 3839 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 -$LN2@stbi__skip: - -; 3840 : // some JPEGs have junk at end, skip over it but if we find what looks -; 3841 : // like a valid marker, resume there -; 3842 : while (!stbi__at_eof(j->s)) { - - 00020 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00027 48 8b 08 mov rcx, QWORD PTR [rax] - 0002a e8 00 00 00 00 call stbi__at_eof - 0002f 85 c0 test eax, eax - 00031 75 63 jne SHORT $LN3@stbi__skip - -; 3843 : stbi_uc x = stbi__get8(j->s); - - 00033 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 0003a 48 8b 08 mov rcx, QWORD PTR [rax] - 0003d e8 00 00 00 00 call stbi__get8 - 00042 88 45 04 mov BYTE PTR x$1[rbp], al -$LN4@stbi__skip: - -; 3844 : while (x == 0xff) { // might be a marker - - 00045 0f b6 45 04 movzx eax, BYTE PTR x$1[rbp] - 00049 3d ff 00 00 00 cmp eax, 255 ; 000000ffH - 0004e 75 44 jne SHORT $LN5@stbi__skip - -; 3845 : if (stbi__at_eof(j->s)) - - 00050 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00057 48 8b 08 mov rcx, QWORD PTR [rax] - 0005a e8 00 00 00 00 call stbi__at_eof - 0005f 85 c0 test eax, eax - 00061 74 04 je SHORT $LN6@stbi__skip - -; 3846 : return STBI__MARKER_none; - - 00063 b0 ff mov al, 255 ; 000000ffH - 00065 eb 31 jmp SHORT $LN1@stbi__skip -$LN6@stbi__skip: - -; 3847 : x = stbi__get8(j->s); - - 00067 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 0006e 48 8b 08 mov rcx, QWORD PTR [rax] - 00071 e8 00 00 00 00 call stbi__get8 - 00076 88 45 04 mov BYTE PTR x$1[rbp], al - -; 3848 : if (x != 0x00 && x != 0xff) { - - 00079 0f b6 45 04 movzx eax, BYTE PTR x$1[rbp] - 0007d 85 c0 test eax, eax - 0007f 74 11 je SHORT $LN7@stbi__skip - 00081 0f b6 45 04 movzx eax, BYTE PTR x$1[rbp] - 00085 3d ff 00 00 00 cmp eax, 255 ; 000000ffH - 0008a 74 06 je SHORT $LN7@stbi__skip - -; 3849 : // not a stuffed zero or lead-in to another marker, looks -; 3850 : // like an actual marker, return it -; 3851 : return x; - - 0008c 0f b6 45 04 movzx eax, BYTE PTR x$1[rbp] - 00090 eb 06 jmp SHORT $LN1@stbi__skip -$LN7@stbi__skip: - -; 3852 : } -; 3853 : // stuffed zero has x=0 now which ends the loop, meaning we go -; 3854 : // back to regular scan loop. -; 3855 : // repeated 0xff keeps trying to read the next byte of the marker. -; 3856 : } - - 00092 eb b1 jmp SHORT $LN4@stbi__skip -$LN5@stbi__skip: - -; 3857 : } - - 00094 eb 8a jmp SHORT $LN2@stbi__skip -$LN3@stbi__skip: - -; 3858 : return STBI__MARKER_none; - - 00096 b0 ff mov al, 255 ; 000000ffH -$LN1@stbi__skip: - -; 3859 : } - - 00098 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 0009f 5f pop rdi - 000a0 5d pop rbp - 000a1 c3 ret 0 -stbi__skip_jpeg_junk_at_end ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__decode_jpeg_header -_TEXT SEGMENT -m$ = 4 -tv131 = 212 -z$ = 256 -scan$ = 264 -stbi__decode_jpeg_header PROC ; COMDAT - -; 3810 : { - - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00023 90 npad 1 - -; 3811 : int m; -; 3812 : z->jfif = 0; - - 00024 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 0002b c7 80 48 48 00 - 00 00 00 00 00 mov DWORD PTR [rax+18504], 0 - -; 3813 : z->app14_color_transform = -1; // valid values are 0,1,2 - - 00035 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 0003c c7 80 4c 48 00 - 00 ff ff ff ff mov DWORD PTR [rax+18508], -1 - -; 3814 : z->marker = STBI__MARKER_none; // initialize cached marker to empty - - 00046 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 0004d c6 80 28 48 00 - 00 ff mov BYTE PTR [rax+18472], 255 ; 000000ffH - -; 3815 : m = stbi__get_marker(z); - - 00054 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0005b e8 00 00 00 00 call stbi__get_marker - 00060 0f b6 c0 movzx eax, al - 00063 89 45 04 mov DWORD PTR m$[rbp], eax - -; 3816 : if (!stbi__SOI(m)) - - 00066 81 7d 04 d8 00 - 00 00 cmp DWORD PTR m$[rbp], 216 ; 000000d8H - 0006d 74 11 je SHORT $LN6@stbi__deco - -; 3817 : return stbi__err("no SOI", "Corrupt JPEG"); - - 0006f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_06CLMBLEP@no?5SOI@ - 00076 e8 00 00 00 00 call stbi__err - 0007b e9 04 01 00 00 jmp $LN1@stbi__deco -$LN6@stbi__deco: - -; 3818 : if (scan == STBI__SCAN_type) - - 00080 83 bd 08 01 00 - 00 01 cmp DWORD PTR scan$[rbp], 1 - 00087 75 0a jne SHORT $LN7@stbi__deco - -; 3819 : return 1; - - 00089 b8 01 00 00 00 mov eax, 1 - 0008e e9 f1 00 00 00 jmp $LN1@stbi__deco -$LN7@stbi__deco: - -; 3820 : m = stbi__get_marker(z); - - 00093 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0009a e8 00 00 00 00 call stbi__get_marker - 0009f 0f b6 c0 movzx eax, al - 000a2 89 45 04 mov DWORD PTR m$[rbp], eax -$LN2@stbi__deco: - -; 3821 : while (!stbi__SOF(m)) { - - 000a5 81 7d 04 c0 00 - 00 00 cmp DWORD PTR m$[rbp], 192 ; 000000c0H - 000ac 0f 84 81 00 00 - 00 je $LN3@stbi__deco - 000b2 81 7d 04 c1 00 - 00 00 cmp DWORD PTR m$[rbp], 193 ; 000000c1H - 000b9 74 78 je SHORT $LN3@stbi__deco - 000bb 81 7d 04 c2 00 - 00 00 cmp DWORD PTR m$[rbp], 194 ; 000000c2H - 000c2 74 6f je SHORT $LN3@stbi__deco - -; 3822 : if (!stbi__process_marker(z, m)) - - 000c4 8b 55 04 mov edx, DWORD PTR m$[rbp] - 000c7 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 000ce e8 00 00 00 00 call stbi__process_marker - 000d3 85 c0 test eax, eax - 000d5 75 07 jne SHORT $LN8@stbi__deco - -; 3823 : return 0; - - 000d7 33 c0 xor eax, eax - 000d9 e9 a6 00 00 00 jmp $LN1@stbi__deco -$LN8@stbi__deco: - -; 3824 : m = stbi__get_marker(z); - - 000de 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 000e5 e8 00 00 00 00 call stbi__get_marker - 000ea 0f b6 c0 movzx eax, al - 000ed 89 45 04 mov DWORD PTR m$[rbp], eax -$LN4@stbi__deco: - -; 3825 : while (m == STBI__MARKER_none) { - - 000f0 81 7d 04 ff 00 - 00 00 cmp DWORD PTR m$[rbp], 255 ; 000000ffH - 000f7 75 35 jne SHORT $LN5@stbi__deco - -; 3826 : // some files have extra padding after their blocks, so ok, we'll scan -; 3827 : if (stbi__at_eof(z->s)) - - 000f9 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00100 48 8b 08 mov rcx, QWORD PTR [rax] - 00103 e8 00 00 00 00 call stbi__at_eof - 00108 85 c0 test eax, eax - 0010a 74 0e je SHORT $LN9@stbi__deco - -; 3828 : return stbi__err("no SOF", "Corrupt JPEG"); - - 0010c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_06IFCEAHIA@no?5SOF@ - 00113 e8 00 00 00 00 call stbi__err - 00118 eb 6a jmp SHORT $LN1@stbi__deco -$LN9@stbi__deco: - -; 3829 : m = stbi__get_marker(z); - - 0011a 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00121 e8 00 00 00 00 call stbi__get_marker - 00126 0f b6 c0 movzx eax, al - 00129 89 45 04 mov DWORD PTR m$[rbp], eax - -; 3830 : } - - 0012c eb c2 jmp SHORT $LN4@stbi__deco -$LN5@stbi__deco: - -; 3831 : } - - 0012e e9 72 ff ff ff jmp $LN2@stbi__deco -$LN3@stbi__deco: - -; 3832 : z->progressive = stbi__SOF_progressive(m); - - 00133 81 7d 04 c2 00 - 00 00 cmp DWORD PTR m$[rbp], 194 ; 000000c2H - 0013a 75 0c jne SHORT $LN12@stbi__deco - 0013c c7 85 d4 00 00 - 00 01 00 00 00 mov DWORD PTR tv131[rbp], 1 - 00146 eb 0a jmp SHORT $LN13@stbi__deco -$LN12@stbi__deco: - 00148 c7 85 d4 00 00 - 00 00 00 00 00 mov DWORD PTR tv131[rbp], 0 -$LN13@stbi__deco: - 00152 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00159 8b 8d d4 00 00 - 00 mov ecx, DWORD PTR tv131[rbp] - 0015f 89 88 30 48 00 - 00 mov DWORD PTR [rax+18480], ecx - -; 3833 : if (!stbi__process_frame_header(z, scan)) - - 00165 8b 95 08 01 00 - 00 mov edx, DWORD PTR scan$[rbp] - 0016b 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00172 e8 00 00 00 00 call stbi__process_frame_header - 00177 85 c0 test eax, eax - 00179 75 04 jne SHORT $LN10@stbi__deco - -; 3834 : return 0; - - 0017b 33 c0 xor eax, eax - 0017d eb 05 jmp SHORT $LN1@stbi__deco -$LN10@stbi__deco: - -; 3835 : return 1; - - 0017f b8 01 00 00 00 mov eax, 1 -$LN1@stbi__deco: - -; 3836 : } - - 00184 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 0018b 5f pop rdi - 0018c 5d pop rbp - 0018d c3 ret 0 -stbi__decode_jpeg_header ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__process_frame_header -_TEXT SEGMENT -s$ = 8 -Lf$ = 36 -p$ = 68 -i$ = 100 -q$ = 132 -h_max$ = 164 -v_max$ = 196 -c$ = 228 -tv285 = 440 -tv294 = 440 -z$ = 480 -scan$ = 488 -stbi__process_frame_header PROC ; COMDAT - -; 3677 : { - - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec e8 01 - 00 00 sub rsp, 488 ; 000001e8H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00023 90 npad 1 - -; 3678 : stbi__context *s = z->s; - - 00024 48 8b 85 e0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 0002b 48 8b 00 mov rax, QWORD PTR [rax] - 0002e 48 89 45 08 mov QWORD PTR s$[rbp], rax - -; 3679 : int Lf, p, i, q, h_max = 1, v_max = 1, c; - - 00032 c7 85 a4 00 00 - 00 01 00 00 00 mov DWORD PTR h_max$[rbp], 1 - 0003c c7 85 c4 00 00 - 00 01 00 00 00 mov DWORD PTR v_max$[rbp], 1 - -; 3680 : Lf = stbi__get16be(s); - - 00046 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] - 0004a e8 00 00 00 00 call stbi__get16be - 0004f 89 45 24 mov DWORD PTR Lf$[rbp], eax - -; 3681 : if (Lf < 11) - - 00052 83 7d 24 0b cmp DWORD PTR Lf$[rbp], 11 - 00056 7d 11 jge SHORT $LN17@stbi__proc - -; 3682 : return stbi__err("bad SOF len", "Corrupt JPEG"); // JPEG - - 00058 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0M@DOFMJEMP@bad?5SOF?5len@ - 0005f e8 00 00 00 00 call stbi__err - 00064 e9 11 09 00 00 jmp $LN1@stbi__proc -$LN17@stbi__proc: - -; 3683 : p = stbi__get8(s); - - 00069 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] - 0006d e8 00 00 00 00 call stbi__get8 - 00072 0f b6 c0 movzx eax, al - 00075 89 45 44 mov DWORD PTR p$[rbp], eax - -; 3684 : if (p != 8) - - 00078 83 7d 44 08 cmp DWORD PTR p$[rbp], 8 - 0007c 74 11 je SHORT $LN18@stbi__proc - -; 3685 : return stbi__err("only 8-bit", - - 0007e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0L@BCINMEBJ@only?58?9bit@ - 00085 e8 00 00 00 00 call stbi__err - 0008a e9 eb 08 00 00 jmp $LN1@stbi__proc -$LN18@stbi__proc: - -; 3686 : "JPEG format not supported: 8-bit only"); // JPEG baseline -; 3687 : s->img_y = stbi__get16be(s); - - 0008f 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] - 00093 e8 00 00 00 00 call stbi__get16be - 00098 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] - 0009c 89 41 04 mov DWORD PTR [rcx+4], eax - -; 3688 : if (s->img_y == 0) - - 0009f 48 8b 45 08 mov rax, QWORD PTR s$[rbp] - 000a3 83 78 04 00 cmp DWORD PTR [rax+4], 0 - 000a7 75 11 jne SHORT $LN19@stbi__proc - -; 3689 : return stbi__err( - - 000a9 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@LNEGOMA@no?5header?5height@ - 000b0 e8 00 00 00 00 call stbi__err - 000b5 e9 c0 08 00 00 jmp $LN1@stbi__proc -$LN19@stbi__proc: - -; 3690 : "no header height", -; 3691 : "JPEG format not supported: delayed height"); // Legal, but we don't handle it--but neither does IJG -; 3692 : s->img_x = stbi__get16be(s); - - 000ba 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] - 000be e8 00 00 00 00 call stbi__get16be - 000c3 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] - 000c7 89 01 mov DWORD PTR [rcx], eax - -; 3693 : if (s->img_x == 0) - - 000c9 48 8b 45 08 mov rax, QWORD PTR s$[rbp] - 000cd 83 38 00 cmp DWORD PTR [rax], 0 - 000d0 75 11 jne SHORT $LN20@stbi__proc - -; 3694 : return stbi__err("0 width", "Corrupt JPEG"); // JPEG requires - - 000d2 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07BIDACDEF@0?5width@ - 000d9 e8 00 00 00 00 call stbi__err - 000de e9 97 08 00 00 jmp $LN1@stbi__proc -$LN20@stbi__proc: - -; 3695 : if (s->img_y > STBI_MAX_DIMENSIONS) - - 000e3 48 8b 45 08 mov rax, QWORD PTR s$[rbp] - 000e7 81 78 04 00 00 - 00 01 cmp DWORD PTR [rax+4], 16777216 ; 01000000H - 000ee 76 11 jbe SHORT $LN21@stbi__proc - -; 3696 : return stbi__err("too large", "Very large image (corrupt?)"); - - 000f0 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 000f7 e8 00 00 00 00 call stbi__err - 000fc e9 79 08 00 00 jmp $LN1@stbi__proc -$LN21@stbi__proc: - -; 3697 : if (s->img_x > STBI_MAX_DIMENSIONS) - - 00101 48 8b 45 08 mov rax, QWORD PTR s$[rbp] - 00105 81 38 00 00 00 - 01 cmp DWORD PTR [rax], 16777216 ; 01000000H - 0010b 76 11 jbe SHORT $LN22@stbi__proc - -; 3698 : return stbi__err("too large", "Very large image (corrupt?)"); - - 0010d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 00114 e8 00 00 00 00 call stbi__err - 00119 e9 5c 08 00 00 jmp $LN1@stbi__proc -$LN22@stbi__proc: - -; 3699 : c = stbi__get8(s); - - 0011e 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] - 00122 e8 00 00 00 00 call stbi__get8 - 00127 0f b6 c0 movzx eax, al - 0012a 89 85 e4 00 00 - 00 mov DWORD PTR c$[rbp], eax - -; 3700 : if (c != 3 && c != 1 && c != 4) - - 00130 83 bd e4 00 00 - 00 03 cmp DWORD PTR c$[rbp], 3 - 00137 74 23 je SHORT $LN23@stbi__proc - 00139 83 bd e4 00 00 - 00 01 cmp DWORD PTR c$[rbp], 1 - 00140 74 1a je SHORT $LN23@stbi__proc - 00142 83 bd e4 00 00 - 00 04 cmp DWORD PTR c$[rbp], 4 - 00149 74 11 je SHORT $LN23@stbi__proc - -; 3701 : return stbi__err("bad component count", "Corrupt JPEG"); - - 0014b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BE@DAPHADHL@bad?5component?5count@ - 00152 e8 00 00 00 00 call stbi__err - 00157 e9 1e 08 00 00 jmp $LN1@stbi__proc -$LN23@stbi__proc: - -; 3702 : s->img_n = c; - - 0015c 48 8b 45 08 mov rax, QWORD PTR s$[rbp] - 00160 8b 8d e4 00 00 - 00 mov ecx, DWORD PTR c$[rbp] - 00166 89 48 08 mov DWORD PTR [rax+8], ecx - -; 3703 : for (i = 0; i < c; ++i) { - - 00169 c7 45 64 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00170 eb 08 jmp SHORT $LN4@stbi__proc -$LN2@stbi__proc: - 00172 8b 45 64 mov eax, DWORD PTR i$[rbp] - 00175 ff c0 inc eax - 00177 89 45 64 mov DWORD PTR i$[rbp], eax -$LN4@stbi__proc: - 0017a 8b 85 e4 00 00 - 00 mov eax, DWORD PTR c$[rbp] - 00180 39 45 64 cmp DWORD PTR i$[rbp], eax - 00183 7d 38 jge SHORT $LN3@stbi__proc - -; 3704 : z->img_comp[i].data = NULL; - - 00185 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 00189 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0018d 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00194 48 c7 84 01 d0 - 46 00 00 00 00 - 00 00 mov QWORD PTR [rcx+rax+18128], 0 - -; 3705 : z->img_comp[i].linebuf = NULL; - - 001a0 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 001a4 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 001a8 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 001af 48 c7 84 01 e8 - 46 00 00 00 00 - 00 00 mov QWORD PTR [rcx+rax+18152], 0 - -; 3706 : } - - 001bb eb b5 jmp SHORT $LN2@stbi__proc -$LN3@stbi__proc: - -; 3707 : -; 3708 : if (Lf != 8 + 3 * s->img_n) - - 001bd 48 8b 45 08 mov rax, QWORD PTR s$[rbp] - 001c1 6b 40 08 03 imul eax, DWORD PTR [rax+8], 3 - 001c5 83 c0 08 add eax, 8 - 001c8 39 45 24 cmp DWORD PTR Lf$[rbp], eax - 001cb 74 11 je SHORT $LN24@stbi__proc - -; 3709 : return stbi__err("bad SOF len", "Corrupt JPEG"); - - 001cd 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0M@DOFMJEMP@bad?5SOF?5len@ - 001d4 e8 00 00 00 00 call stbi__err - 001d9 e9 9c 07 00 00 jmp $LN1@stbi__proc -$LN24@stbi__proc: - -; 3710 : -; 3711 : z->rgb = 0; - - 001de 48 8b 85 e0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 001e5 c7 80 50 48 00 - 00 00 00 00 00 mov DWORD PTR [rax+18512], 0 - -; 3712 : for (i = 0; i < s->img_n; ++i) { - - 001ef c7 45 64 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 001f6 eb 08 jmp SHORT $LN7@stbi__proc -$LN5@stbi__proc: - 001f8 8b 45 64 mov eax, DWORD PTR i$[rbp] - 001fb ff c0 inc eax - 001fd 89 45 64 mov DWORD PTR i$[rbp], eax -$LN7@stbi__proc: - 00200 48 8b 45 08 mov rax, QWORD PTR s$[rbp] - 00204 8b 40 08 mov eax, DWORD PTR [rax+8] - 00207 39 45 64 cmp DWORD PTR i$[rbp], eax - 0020a 0f 8d 96 01 00 - 00 jge $LN6@stbi__proc - -; 3713 : static const unsigned char rgb[3] = { 'R', 'G', 'B' }; -; 3714 : z->img_comp[i].id = stbi__get8(s); - - 00210 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] - 00214 e8 00 00 00 00 call stbi__get8 - 00219 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] - 0021d 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 00221 0f b6 c0 movzx eax, al - 00224 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 0022b 89 84 0a a0 46 - 00 00 mov DWORD PTR [rdx+rcx+18080], eax - -; 3715 : if (s->img_n == 3 && z->img_comp[i].id == rgb[i]) - - 00232 48 8b 45 08 mov rax, QWORD PTR s$[rbp] - 00236 83 78 08 03 cmp DWORD PTR [rax+8], 3 - 0023a 75 43 jne SHORT $LN25@stbi__proc - 0023c 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 00240 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00244 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] - 00248 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?rgb@?5??stbi__process_frame_header@@9@9 - 0024f 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 00253 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 0025a 39 8c 02 a0 46 - 00 00 cmp DWORD PTR [rdx+rax+18080], ecx - 00261 75 1c jne SHORT $LN25@stbi__proc - -; 3716 : ++z->rgb; - - 00263 48 8b 85 e0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 0026a 8b 80 50 48 00 - 00 mov eax, DWORD PTR [rax+18512] - 00270 ff c0 inc eax - 00272 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00279 89 81 50 48 00 - 00 mov DWORD PTR [rcx+18512], eax -$LN25@stbi__proc: - -; 3717 : q = stbi__get8(s); - - 0027f 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] - 00283 e8 00 00 00 00 call stbi__get8 - 00288 0f b6 c0 movzx eax, al - 0028b 89 85 84 00 00 - 00 mov DWORD PTR q$[rbp], eax - -; 3718 : z->img_comp[i].h = (q >> 4); - - 00291 8b 85 84 00 00 - 00 mov eax, DWORD PTR q$[rbp] - 00297 c1 f8 04 sar eax, 4 - 0029a 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] - 0029e 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 002a2 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 002a9 89 84 0a a4 46 - 00 00 mov DWORD PTR [rdx+rcx+18084], eax - -; 3719 : if (!z->img_comp[i].h || z->img_comp[i].h > 4) - - 002b0 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 002b4 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 002b8 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 002bf 83 bc 01 a4 46 - 00 00 00 cmp DWORD PTR [rcx+rax+18084], 0 - 002c7 74 19 je SHORT $LN27@stbi__proc - 002c9 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 002cd 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 002d1 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 002d8 83 bc 01 a4 46 - 00 00 04 cmp DWORD PTR [rcx+rax+18084], 4 - 002e0 7e 11 jle SHORT $LN26@stbi__proc -$LN27@stbi__proc: - -; 3720 : return stbi__err("bad H", "Corrupt JPEG"); - - 002e2 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_05BLPKENEJ@bad?5H@ - 002e9 e8 00 00 00 00 call stbi__err - 002ee e9 87 06 00 00 jmp $LN1@stbi__proc -$LN26@stbi__proc: - -; 3721 : z->img_comp[i].v = q & 15; - - 002f3 8b 85 84 00 00 - 00 mov eax, DWORD PTR q$[rbp] - 002f9 83 e0 0f and eax, 15 - 002fc 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] - 00300 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 00304 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 0030b 89 84 0a a8 46 - 00 00 mov DWORD PTR [rdx+rcx+18088], eax - -; 3722 : if (!z->img_comp[i].v || z->img_comp[i].v > 4) - - 00312 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 00316 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0031a 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00321 83 bc 01 a8 46 - 00 00 00 cmp DWORD PTR [rcx+rax+18088], 0 - 00329 74 19 je SHORT $LN29@stbi__proc - 0032b 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 0032f 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00333 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0033a 83 bc 01 a8 46 - 00 00 04 cmp DWORD PTR [rcx+rax+18088], 4 - 00342 7e 11 jle SHORT $LN28@stbi__proc -$LN29@stbi__proc: - -; 3723 : return stbi__err("bad V", "Corrupt JPEG"); - - 00344 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_05MPLLHCJG@bad?5V@ - 0034b e8 00 00 00 00 call stbi__err - 00350 e9 25 06 00 00 jmp $LN1@stbi__proc -$LN28@stbi__proc: - -; 3724 : z->img_comp[i].tq = stbi__get8(s); - - 00355 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] - 00359 e8 00 00 00 00 call stbi__get8 - 0035e 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] - 00362 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 00366 0f b6 c0 movzx eax, al - 00369 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 00370 89 84 0a ac 46 - 00 00 mov DWORD PTR [rdx+rcx+18092], eax - -; 3725 : if (z->img_comp[i].tq > 3) - - 00377 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 0037b 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0037f 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00386 83 bc 01 ac 46 - 00 00 03 cmp DWORD PTR [rcx+rax+18092], 3 - 0038e 7e 11 jle SHORT $LN30@stbi__proc - -; 3726 : return stbi__err("bad TQ", "Corrupt JPEG"); - - 00390 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_06LJIHDFHI@bad?5TQ@ - 00397 e8 00 00 00 00 call stbi__err - 0039c e9 d9 05 00 00 jmp $LN1@stbi__proc -$LN30@stbi__proc: - -; 3727 : } - - 003a1 e9 52 fe ff ff jmp $LN5@stbi__proc -$LN6@stbi__proc: - -; 3728 : -; 3729 : if (scan != STBI__SCAN_load) - - 003a6 83 bd e8 01 00 - 00 00 cmp DWORD PTR scan$[rbp], 0 - 003ad 74 0a je SHORT $LN31@stbi__proc - -; 3730 : return 1; - - 003af b8 01 00 00 00 mov eax, 1 - 003b4 e9 c1 05 00 00 jmp $LN1@stbi__proc -$LN31@stbi__proc: - -; 3731 : -; 3732 : if (!stbi__mad3sizes_valid(s->img_x, s->img_y, s->img_n, 0)) - - 003b9 45 33 c9 xor r9d, r9d - 003bc 48 8b 45 08 mov rax, QWORD PTR s$[rbp] - 003c0 44 8b 40 08 mov r8d, DWORD PTR [rax+8] - 003c4 48 8b 45 08 mov rax, QWORD PTR s$[rbp] - 003c8 8b 50 04 mov edx, DWORD PTR [rax+4] - 003cb 48 8b 45 08 mov rax, QWORD PTR s$[rbp] - 003cf 8b 08 mov ecx, DWORD PTR [rax] - 003d1 e8 00 00 00 00 call stbi__mad3sizes_valid - 003d6 85 c0 test eax, eax - 003d8 75 11 jne SHORT $LN32@stbi__proc - -; 3733 : return stbi__err("too large", "Image too large to decode"); - - 003da 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 003e1 e8 00 00 00 00 call stbi__err - 003e6 e9 8f 05 00 00 jmp $LN1@stbi__proc -$LN32@stbi__proc: - -; 3734 : -; 3735 : for (i = 0; i < s->img_n; ++i) { - - 003eb c7 45 64 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 003f2 eb 08 jmp SHORT $LN10@stbi__proc -$LN8@stbi__proc: - 003f4 8b 45 64 mov eax, DWORD PTR i$[rbp] - 003f7 ff c0 inc eax - 003f9 89 45 64 mov DWORD PTR i$[rbp], eax -$LN10@stbi__proc: - 003fc 48 8b 45 08 mov rax, QWORD PTR s$[rbp] - 00400 8b 40 08 mov eax, DWORD PTR [rax+8] - 00403 39 45 64 cmp DWORD PTR i$[rbp], eax - 00406 7d 79 jge SHORT $LN9@stbi__proc - -; 3736 : if (z->img_comp[i].h > h_max) - - 00408 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 0040c 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00410 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00417 8b 95 a4 00 00 - 00 mov edx, DWORD PTR h_max$[rbp] - 0041d 39 94 01 a4 46 - 00 00 cmp DWORD PTR [rcx+rax+18084], edx - 00424 7e 1c jle SHORT $LN33@stbi__proc - -; 3737 : h_max = z->img_comp[i].h; - - 00426 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 0042a 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0042e 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00435 8b 84 01 a4 46 - 00 00 mov eax, DWORD PTR [rcx+rax+18084] - 0043c 89 85 a4 00 00 - 00 mov DWORD PTR h_max$[rbp], eax -$LN33@stbi__proc: - -; 3738 : if (z->img_comp[i].v > v_max) - - 00442 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 00446 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0044a 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00451 8b 95 c4 00 00 - 00 mov edx, DWORD PTR v_max$[rbp] - 00457 39 94 01 a8 46 - 00 00 cmp DWORD PTR [rcx+rax+18088], edx - 0045e 7e 1c jle SHORT $LN34@stbi__proc - -; 3739 : v_max = z->img_comp[i].v; - - 00460 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 00464 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00468 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0046f 8b 84 01 a8 46 - 00 00 mov eax, DWORD PTR [rcx+rax+18088] - 00476 89 85 c4 00 00 - 00 mov DWORD PTR v_max$[rbp], eax -$LN34@stbi__proc: - -; 3740 : } - - 0047c e9 73 ff ff ff jmp $LN8@stbi__proc -$LN9@stbi__proc: - -; 3741 : -; 3742 : // check that plane subsampling factors are integer ratios; our resamplers can't deal with fractional ratios -; 3743 : // and I've never seen a non-corrupted JPEG file actually use them -; 3744 : for (i = 0; i < s->img_n; ++i) { - - 00481 c7 45 64 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00488 eb 08 jmp SHORT $LN13@stbi__proc -$LN11@stbi__proc: - 0048a 8b 45 64 mov eax, DWORD PTR i$[rbp] - 0048d ff c0 inc eax - 0048f 89 45 64 mov DWORD PTR i$[rbp], eax -$LN13@stbi__proc: - 00492 48 8b 45 08 mov rax, QWORD PTR s$[rbp] - 00496 8b 40 08 mov eax, DWORD PTR [rax+8] - 00499 39 45 64 cmp DWORD PTR i$[rbp], eax - 0049c 0f 8d 8b 00 00 - 00 jge $LN12@stbi__proc - -; 3745 : if (h_max % z->img_comp[i].h != 0) - - 004a2 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 004a6 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 004aa 48 89 85 b8 01 - 00 00 mov QWORD PTR tv285[rbp], rax - 004b1 8b 85 a4 00 00 - 00 mov eax, DWORD PTR h_max$[rbp] - 004b7 99 cdq - 004b8 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 004bf 4c 8b 85 b8 01 - 00 00 mov r8, QWORD PTR tv285[rbp] - 004c6 42 f7 bc 01 a4 - 46 00 00 idiv DWORD PTR [rcx+r8+18084] - 004ce 8b c2 mov eax, edx - 004d0 85 c0 test eax, eax - 004d2 74 11 je SHORT $LN35@stbi__proc - -; 3746 : return stbi__err("bad H", "Corrupt JPEG"); - - 004d4 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_05BLPKENEJ@bad?5H@ - 004db e8 00 00 00 00 call stbi__err - 004e0 e9 95 04 00 00 jmp $LN1@stbi__proc -$LN35@stbi__proc: - -; 3747 : if (v_max % z->img_comp[i].v != 0) - - 004e5 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 004e9 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 004ed 48 89 85 b8 01 - 00 00 mov QWORD PTR tv294[rbp], rax - 004f4 8b 85 c4 00 00 - 00 mov eax, DWORD PTR v_max$[rbp] - 004fa 99 cdq - 004fb 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00502 4c 8b 85 b8 01 - 00 00 mov r8, QWORD PTR tv294[rbp] - 00509 42 f7 bc 01 a8 - 46 00 00 idiv DWORD PTR [rcx+r8+18088] - 00511 8b c2 mov eax, edx - 00513 85 c0 test eax, eax - 00515 74 11 je SHORT $LN36@stbi__proc - -; 3748 : return stbi__err("bad V", "Corrupt JPEG"); - - 00517 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_05MPLLHCJG@bad?5V@ - 0051e e8 00 00 00 00 call stbi__err - 00523 e9 52 04 00 00 jmp $LN1@stbi__proc -$LN36@stbi__proc: - -; 3749 : } - - 00528 e9 5d ff ff ff jmp $LN11@stbi__proc -$LN12@stbi__proc: - -; 3750 : -; 3751 : // compute interleaved mcu info -; 3752 : z->img_h_max = h_max; - - 0052d 48 8b 85 e0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00534 8b 8d a4 00 00 - 00 mov ecx, DWORD PTR h_max$[rbp] - 0053a 89 88 88 46 00 - 00 mov DWORD PTR [rax+18056], ecx - -; 3753 : z->img_v_max = v_max; - - 00540 48 8b 85 e0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00547 8b 8d c4 00 00 - 00 mov ecx, DWORD PTR v_max$[rbp] - 0054d 89 88 8c 46 00 - 00 mov DWORD PTR [rax+18060], ecx - -; 3754 : z->img_mcu_w = h_max * 8; - - 00553 8b 85 a4 00 00 - 00 mov eax, DWORD PTR h_max$[rbp] - 00559 c1 e0 03 shl eax, 3 - 0055c 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00563 89 81 98 46 00 - 00 mov DWORD PTR [rcx+18072], eax - -; 3755 : z->img_mcu_h = v_max * 8; - - 00569 8b 85 c4 00 00 - 00 mov eax, DWORD PTR v_max$[rbp] - 0056f c1 e0 03 shl eax, 3 - 00572 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00579 89 81 9c 46 00 - 00 mov DWORD PTR [rcx+18076], eax - -; 3756 : // these sizes can't be more than 17 bits -; 3757 : z->img_mcu_x = (s->img_x + z->img_mcu_w - 1) / z->img_mcu_w; - - 0057f 48 8b 45 08 mov rax, QWORD PTR s$[rbp] - 00583 8b 00 mov eax, DWORD PTR [rax] - 00585 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0058c 8b 89 98 46 00 - 00 mov ecx, DWORD PTR [rcx+18072] - 00592 8d 44 08 ff lea eax, DWORD PTR [rax+rcx-1] - 00596 33 d2 xor edx, edx - 00598 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0059f f7 b1 98 46 00 - 00 div DWORD PTR [rcx+18072] - 005a5 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 005ac 89 81 90 46 00 - 00 mov DWORD PTR [rcx+18064], eax - -; 3758 : z->img_mcu_y = (s->img_y + z->img_mcu_h - 1) / z->img_mcu_h; - - 005b2 48 8b 45 08 mov rax, QWORD PTR s$[rbp] - 005b6 8b 40 04 mov eax, DWORD PTR [rax+4] - 005b9 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 005c0 8b 89 9c 46 00 - 00 mov ecx, DWORD PTR [rcx+18076] - 005c6 8d 44 08 ff lea eax, DWORD PTR [rax+rcx-1] - 005ca 33 d2 xor edx, edx - 005cc 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 005d3 f7 b1 9c 46 00 - 00 div DWORD PTR [rcx+18076] - 005d9 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 005e0 89 81 94 46 00 - 00 mov DWORD PTR [rcx+18068], eax - -; 3759 : -; 3760 : for (i = 0; i < s->img_n; ++i) { - - 005e6 c7 45 64 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 005ed eb 08 jmp SHORT $LN16@stbi__proc -$LN14@stbi__proc: - 005ef 8b 45 64 mov eax, DWORD PTR i$[rbp] - 005f2 ff c0 inc eax - 005f4 89 45 64 mov DWORD PTR i$[rbp], eax -$LN16@stbi__proc: - 005f7 48 8b 45 08 mov rax, QWORD PTR s$[rbp] - 005fb 8b 40 08 mov eax, DWORD PTR [rax+8] - 005fe 39 45 64 cmp DWORD PTR i$[rbp], eax - 00601 0f 8d 6e 03 00 - 00 jge $LN15@stbi__proc - -; 3761 : // number of effective pixels (e.g. for non-interleaved MCU) -; 3762 : z->img_comp[i].x = (s->img_x * z->img_comp[i].h + h_max - 1) / h_max; - - 00607 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 0060b 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0060f 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] - 00613 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 0061a 8b 09 mov ecx, DWORD PTR [rcx] - 0061c 0f af 8c 02 a4 - 46 00 00 imul ecx, DWORD PTR [rdx+rax+18084] - 00624 8b c1 mov eax, ecx - 00626 8b 8d a4 00 00 - 00 mov ecx, DWORD PTR h_max$[rbp] - 0062c 8d 44 08 ff lea eax, DWORD PTR [rax+rcx-1] - 00630 33 d2 xor edx, edx - 00632 f7 b5 a4 00 00 - 00 div DWORD PTR h_max$[rbp] - 00638 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] - 0063c 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 00640 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 00647 89 84 0a bc 46 - 00 00 mov DWORD PTR [rdx+rcx+18108], eax - -; 3763 : z->img_comp[i].y = (s->img_y * z->img_comp[i].v + v_max - 1) / v_max; - - 0064e 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 00652 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00656 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] - 0065a 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 00661 8b 49 04 mov ecx, DWORD PTR [rcx+4] - 00664 0f af 8c 02 a8 - 46 00 00 imul ecx, DWORD PTR [rdx+rax+18088] - 0066c 8b c1 mov eax, ecx - 0066e 8b 8d c4 00 00 - 00 mov ecx, DWORD PTR v_max$[rbp] - 00674 8d 44 08 ff lea eax, DWORD PTR [rax+rcx-1] - 00678 33 d2 xor edx, edx - 0067a f7 b5 c4 00 00 - 00 div DWORD PTR v_max$[rbp] - 00680 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] - 00684 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 00688 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 0068f 89 84 0a c0 46 - 00 00 mov DWORD PTR [rdx+rcx+18112], eax - -; 3764 : // to simplify generation, we'll allocate enough memory to decode -; 3765 : // the bogus oversized data from using interleaved MCUs and their -; 3766 : // big blocks (e.g. a 16x16 iMCU on an image of width 33); we won't -; 3767 : // discard the extra data until colorspace conversion -; 3768 : // -; 3769 : // img_mcu_x, img_mcu_y: <=17 bits; comp[i].h and .v are <=4 (checked earlier) -; 3770 : // so these muls can't overflow with 32-bit ints (which we require) -; 3771 : z->img_comp[i].w2 = z->img_mcu_x * z->img_comp[i].h * 8; - - 00696 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 0069a 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0069e 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 006a5 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 006ac 8b 89 90 46 00 - 00 mov ecx, DWORD PTR [rcx+18064] - 006b2 0f af 8c 02 a4 - 46 00 00 imul ecx, DWORD PTR [rdx+rax+18084] - 006ba 8b c1 mov eax, ecx - 006bc c1 e0 03 shl eax, 3 - 006bf 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] - 006c3 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 006c7 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 006ce 89 84 0a c4 46 - 00 00 mov DWORD PTR [rdx+rcx+18116], eax - -; 3772 : z->img_comp[i].h2 = z->img_mcu_y * z->img_comp[i].v * 8; - - 006d5 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 006d9 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 006dd 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 006e4 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 006eb 8b 89 94 46 00 - 00 mov ecx, DWORD PTR [rcx+18068] - 006f1 0f af 8c 02 a8 - 46 00 00 imul ecx, DWORD PTR [rdx+rax+18088] - 006f9 8b c1 mov eax, ecx - 006fb c1 e0 03 shl eax, 3 - 006fe 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] - 00702 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 00706 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 0070d 89 84 0a c8 46 - 00 00 mov DWORD PTR [rdx+rcx+18120], eax - -; 3773 : z->img_comp[i].coeff = 0; - - 00714 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 00718 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0071c 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00723 48 c7 84 01 f0 - 46 00 00 00 00 - 00 00 mov QWORD PTR [rcx+rax+18160], 0 - -; 3774 : z->img_comp[i].raw_coeff = 0; - - 0072f 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 00733 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00737 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0073e 48 c7 84 01 e0 - 46 00 00 00 00 - 00 00 mov QWORD PTR [rcx+rax+18144], 0 - -; 3775 : z->img_comp[i].linebuf = NULL; - - 0074a 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 0074e 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00752 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00759 48 c7 84 01 e8 - 46 00 00 00 00 - 00 00 mov QWORD PTR [rcx+rax+18152], 0 - -; 3776 : z->img_comp[i].raw_data = - - 00765 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 00769 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0076d 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] - 00771 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 00775 41 b8 0f 00 00 - 00 mov r8d, 15 - 0077b 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 00782 8b 94 02 c8 46 - 00 00 mov edx, DWORD PTR [rdx+rax+18120] - 00789 48 8b 85 e0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00790 8b 8c 08 c4 46 - 00 00 mov ecx, DWORD PTR [rax+rcx+18116] - 00797 e8 00 00 00 00 call stbi__malloc_mad2 - 0079c 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] - 007a0 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 007a4 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 007ab 48 89 84 0a d8 - 46 00 00 mov QWORD PTR [rdx+rcx+18136], rax - -; 3777 : stbi__malloc_mad2(z->img_comp[i].w2, z->img_comp[i].h2, 15); -; 3778 : if (z->img_comp[i].raw_data == NULL) - - 007b3 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 007b7 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 007bb 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 007c2 48 83 bc 01 d8 - 46 00 00 00 cmp QWORD PTR [rcx+rax+18136], 0 - 007cb 75 27 jne SHORT $LN37@stbi__proc - -; 3779 : return stbi__free_jpeg_components(z, i + 1, - - 007cd 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 007d4 e8 00 00 00 00 call stbi__err - 007d9 8b 4d 64 mov ecx, DWORD PTR i$[rbp] - 007dc ff c1 inc ecx - 007de 44 8b c0 mov r8d, eax - 007e1 8b d1 mov edx, ecx - 007e3 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 007ea e8 00 00 00 00 call stbi__free_jpeg_components - 007ef e9 86 01 00 00 jmp $LN1@stbi__proc -$LN37@stbi__proc: - -; 3780 : stbi__err("outofmem", "Out of memory")); -; 3781 : // align blocks for idct using mmx/sse -; 3782 : z->img_comp[i].data = (stbi_uc *)(((size_t)z->img_comp[i].raw_data + 15) & ~15); - - 007f4 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 007f8 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 007fc 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00803 48 8b 84 01 d8 - 46 00 00 mov rax, QWORD PTR [rcx+rax+18136] - 0080b 48 83 c0 0f add rax, 15 - 0080f 48 83 e0 f0 and rax, -16 - 00813 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] - 00817 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 0081b 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 00822 48 89 84 0a d0 - 46 00 00 mov QWORD PTR [rdx+rcx+18128], rax - -; 3783 : if (z->progressive) { - - 0082a 48 8b 85 e0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00831 83 b8 30 48 00 - 00 00 cmp DWORD PTR [rax+18480], 0 - 00838 0f 84 32 01 00 - 00 je $LN38@stbi__proc - -; 3784 : // w2, h2 are multiples of 8 (see above) -; 3785 : z->img_comp[i].coeff_w = z->img_comp[i].w2 / 8; - - 0083e 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 00842 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00846 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0084d 8b 84 01 c4 46 - 00 00 mov eax, DWORD PTR [rcx+rax+18116] - 00854 99 cdq - 00855 83 e2 07 and edx, 7 - 00858 03 c2 add eax, edx - 0085a c1 f8 03 sar eax, 3 - 0085d 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] - 00861 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 00865 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 0086c 89 84 0a f8 46 - 00 00 mov DWORD PTR [rdx+rcx+18168], eax - -; 3786 : z->img_comp[i].coeff_h = z->img_comp[i].h2 / 8; - - 00873 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 00877 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0087b 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00882 8b 84 01 c8 46 - 00 00 mov eax, DWORD PTR [rcx+rax+18120] - 00889 99 cdq - 0088a 83 e2 07 and edx, 7 - 0088d 03 c2 add eax, edx - 0088f c1 f8 03 sar eax, 3 - 00892 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] - 00896 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 0089a 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 008a1 89 84 0a fc 46 - 00 00 mov DWORD PTR [rdx+rcx+18172], eax - -; 3787 : z->img_comp[i].raw_coeff = stbi__malloc_mad3( - - 008a8 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 008ac 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 008b0 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] - 008b4 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 008b8 41 b9 0f 00 00 - 00 mov r9d, 15 - 008be 41 b8 02 00 00 - 00 mov r8d, 2 - 008c4 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 008cb 8b 94 02 c8 46 - 00 00 mov edx, DWORD PTR [rdx+rax+18120] - 008d2 48 8b 85 e0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 008d9 8b 8c 08 c4 46 - 00 00 mov ecx, DWORD PTR [rax+rcx+18116] - 008e0 e8 00 00 00 00 call stbi__malloc_mad3 - 008e5 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] - 008e9 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 008ed 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 008f4 48 89 84 0a e0 - 46 00 00 mov QWORD PTR [rdx+rcx+18144], rax - -; 3788 : z->img_comp[i].w2, z->img_comp[i].h2, sizeof(short), 15); -; 3789 : if (z->img_comp[i].raw_coeff == NULL) - - 008fc 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 00900 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00904 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0090b 48 83 bc 01 e0 - 46 00 00 00 cmp QWORD PTR [rcx+rax+18144], 0 - 00914 75 24 jne SHORT $LN39@stbi__proc - -; 3790 : return stbi__free_jpeg_components( - - 00916 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 0091d e8 00 00 00 00 call stbi__err - 00922 8b 4d 64 mov ecx, DWORD PTR i$[rbp] - 00925 ff c1 inc ecx - 00927 44 8b c0 mov r8d, eax - 0092a 8b d1 mov edx, ecx - 0092c 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00933 e8 00 00 00 00 call stbi__free_jpeg_components - 00938 eb 40 jmp SHORT $LN1@stbi__proc -$LN39@stbi__proc: - -; 3791 : z, i + 1, stbi__err("outofmem", "Out of memory")); -; 3792 : z->img_comp[i].coeff = - - 0093a 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] - 0093e 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00942 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00949 48 8b 84 01 e0 - 46 00 00 mov rax, QWORD PTR [rcx+rax+18144] - 00951 48 83 c0 0f add rax, 15 - 00955 48 83 e0 f0 and rax, -16 - 00959 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] - 0095d 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 00961 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 00968 48 89 84 0a f0 - 46 00 00 mov QWORD PTR [rdx+rcx+18160], rax -$LN38@stbi__proc: - -; 3793 : (short *)(((size_t)z->img_comp[i].raw_coeff + 15) & ~15); -; 3794 : } -; 3795 : } - - 00970 e9 7a fc ff ff jmp $LN14@stbi__proc -$LN15@stbi__proc: - -; 3796 : -; 3797 : return 1; - - 00975 b8 01 00 00 00 mov eax, 1 -$LN1@stbi__proc: - -; 3798 : } - - 0097a 48 8d a5 c8 01 - 00 00 lea rsp, QWORD PTR [rbp+456] - 00981 5f pop rdi - 00982 5d pop rbp - 00983 c3 ret 0 -stbi__process_frame_header ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__free_jpeg_components -_TEXT SEGMENT -i$ = 4 -z$ = 256 -ncomp$ = 264 -why$ = 272 -stbi__free_jpeg_components PROC ; COMDAT - -; 3655 : { - - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000e 55 push rbp - 0000f 57 push rdi - 00010 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00028 90 npad 1 - -; 3656 : int i; -; 3657 : for (i = 0; i < ncomp; ++i) { - - 00029 c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00030 eb 08 jmp SHORT $LN4@stbi__free -$LN2@stbi__free: - 00032 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00035 ff c0 inc eax - 00037 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__free: - 0003a 8b 85 08 01 00 - 00 mov eax, DWORD PTR ncomp$[rbp] - 00040 39 45 04 cmp DWORD PTR i$[rbp], eax - 00043 0f 8d 34 01 00 - 00 jge $LN3@stbi__free - -; 3658 : if (z->img_comp[i].raw_data) { - - 00049 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 0004d 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00051 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00058 48 83 bc 01 d8 - 46 00 00 00 cmp QWORD PTR [rcx+rax+18136], 0 - 00061 74 54 je SHORT $LN5@stbi__free - -; 3659 : STBI_FREE(z->img_comp[i].raw_data); - - 00063 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00067 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0006b 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00072 48 8b 8c 01 d8 - 46 00 00 mov rcx, QWORD PTR [rcx+rax+18136] - 0007a ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00080 90 npad 1 - -; 3660 : z->img_comp[i].raw_data = NULL; - - 00081 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00085 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00089 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00090 48 c7 84 01 d8 - 46 00 00 00 00 - 00 00 mov QWORD PTR [rcx+rax+18136], 0 - -; 3661 : z->img_comp[i].data = NULL; - - 0009c 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 000a0 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 000a4 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 000ab 48 c7 84 01 d0 - 46 00 00 00 00 - 00 00 mov QWORD PTR [rcx+rax+18128], 0 -$LN5@stbi__free: - -; 3662 : } -; 3663 : if (z->img_comp[i].raw_coeff) { - - 000b7 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 000bb 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 000bf 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 000c6 48 83 bc 01 e0 - 46 00 00 00 cmp QWORD PTR [rcx+rax+18144], 0 - 000cf 74 54 je SHORT $LN6@stbi__free - -; 3664 : STBI_FREE(z->img_comp[i].raw_coeff); - - 000d1 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 000d5 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 000d9 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 000e0 48 8b 8c 01 e0 - 46 00 00 mov rcx, QWORD PTR [rcx+rax+18144] - 000e8 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 000ee 90 npad 1 - -; 3665 : z->img_comp[i].raw_coeff = 0; - - 000ef 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 000f3 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 000f7 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 000fe 48 c7 84 01 e0 - 46 00 00 00 00 - 00 00 mov QWORD PTR [rcx+rax+18144], 0 - -; 3666 : z->img_comp[i].coeff = 0; - - 0010a 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 0010e 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00112 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00119 48 c7 84 01 f0 - 46 00 00 00 00 - 00 00 mov QWORD PTR [rcx+rax+18160], 0 -$LN6@stbi__free: - -; 3667 : } -; 3668 : if (z->img_comp[i].linebuf) { - - 00125 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00129 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0012d 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00134 48 83 bc 01 e8 - 46 00 00 00 cmp QWORD PTR [rcx+rax+18152], 0 - 0013d 74 39 je SHORT $LN7@stbi__free - -; 3669 : STBI_FREE(z->img_comp[i].linebuf); - - 0013f 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00143 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00147 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0014e 48 8b 8c 01 e8 - 46 00 00 mov rcx, QWORD PTR [rcx+rax+18152] - 00156 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 0015c 90 npad 1 - -; 3670 : z->img_comp[i].linebuf = NULL; - - 0015d 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00161 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00165 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0016c 48 c7 84 01 e8 - 46 00 00 00 00 - 00 00 mov QWORD PTR [rcx+rax+18152], 0 -$LN7@stbi__free: - -; 3671 : } -; 3672 : } - - 00178 e9 b5 fe ff ff jmp $LN2@stbi__free -$LN3@stbi__free: - -; 3673 : return why; - - 0017d 8b 85 10 01 00 - 00 mov eax, DWORD PTR why$[rbp] - -; 3674 : } - - 00183 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 0018a 5f pop rdi - 0018b 5d pop rbp - 0018c c3 ret 0 -stbi__free_jpeg_components ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__process_scan_header -_TEXT SEGMENT -i$ = 4 -Ls$ = 36 -id$1 = 68 -which$2 = 100 -q$3 = 132 -aa$4 = 164 -z$ = 416 -stbi__process_scan_header PROC ; COMDAT - -; 3606 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec a8 01 - 00 00 sub rsp, 424 ; 000001a8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 3607 : int i; -; 3608 : int Ls = stbi__get16be(z->s); - - 00020 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00027 48 8b 08 mov rcx, QWORD PTR [rax] - 0002a e8 00 00 00 00 call stbi__get16be - 0002f 89 45 24 mov DWORD PTR Ls$[rbp], eax - -; 3609 : z->scan_n = stbi__get8(z->s); - - 00032 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00039 48 8b 08 mov rcx, QWORD PTR [rax] - 0003c e8 00 00 00 00 call stbi__get8 - 00041 0f b6 c0 movzx eax, al - 00044 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0004b 89 81 54 48 00 - 00 mov DWORD PTR [rcx+18516], eax - -; 3610 : if (z->scan_n < 1 || z->scan_n > 4 || z->scan_n > (int)z->s->img_n) - - 00051 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00058 83 b8 54 48 00 - 00 01 cmp DWORD PTR [rax+18516], 1 - 0005f 7c 2c jl SHORT $LN9@stbi__proc - 00061 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00068 83 b8 54 48 00 - 00 04 cmp DWORD PTR [rax+18516], 4 - 0006f 7f 1c jg SHORT $LN9@stbi__proc - 00071 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00078 48 8b 00 mov rax, QWORD PTR [rax] - 0007b 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00082 8b 40 08 mov eax, DWORD PTR [rax+8] - 00085 39 81 54 48 00 - 00 cmp DWORD PTR [rcx+18516], eax - 0008b 7e 11 jle SHORT $LN8@stbi__proc -$LN9@stbi__proc: - -; 3611 : return stbi__err("bad SOS component count", "Corrupt JPEG"); - - 0008d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BI@DHFJCMBA@bad?5SOS?5component?5count@ - 00094 e8 00 00 00 00 call stbi__err - 00099 e9 e2 02 00 00 jmp $LN1@stbi__proc -$LN8@stbi__proc: - -; 3612 : if (Ls != 6 + 2 * z->scan_n) - - 0009e 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 000a5 8b 80 54 48 00 - 00 mov eax, DWORD PTR [rax+18516] - 000ab 8d 44 00 06 lea eax, DWORD PTR [rax+rax+6] - 000af 39 45 24 cmp DWORD PTR Ls$[rbp], eax - 000b2 74 11 je SHORT $LN10@stbi__proc - -; 3613 : return stbi__err("bad SOS len", "Corrupt JPEG"); - - 000b4 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0M@GNEHAHOH@bad?5SOS?5len@ - 000bb e8 00 00 00 00 call stbi__err - 000c0 e9 bb 02 00 00 jmp $LN1@stbi__proc -$LN10@stbi__proc: - -; 3614 : for (i = 0; i < z->scan_n; ++i) { - - 000c5 c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 000cc eb 08 jmp SHORT $LN4@stbi__proc -$LN2@stbi__proc: - 000ce 8b 45 04 mov eax, DWORD PTR i$[rbp] - 000d1 ff c0 inc eax - 000d3 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__proc: - 000d6 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 000dd 8b 80 54 48 00 - 00 mov eax, DWORD PTR [rax+18516] - 000e3 39 45 04 cmp DWORD PTR i$[rbp], eax - 000e6 0f 8d 34 01 00 - 00 jge $LN3@stbi__proc - -; 3615 : int id = stbi__get8(z->s), which; - - 000ec 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 000f3 48 8b 08 mov rcx, QWORD PTR [rax] - 000f6 e8 00 00 00 00 call stbi__get8 - 000fb 0f b6 c0 movzx eax, al - 000fe 89 45 44 mov DWORD PTR id$1[rbp], eax - -; 3616 : int q = stbi__get8(z->s); - - 00101 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00108 48 8b 08 mov rcx, QWORD PTR [rax] - 0010b e8 00 00 00 00 call stbi__get8 - 00110 0f b6 c0 movzx eax, al - 00113 89 85 84 00 00 - 00 mov DWORD PTR q$3[rbp], eax - -; 3617 : for (which = 0; which < z->s->img_n; ++which) - - 00119 c7 45 64 00 00 - 00 00 mov DWORD PTR which$2[rbp], 0 - 00120 eb 08 jmp SHORT $LN7@stbi__proc -$LN5@stbi__proc: - 00122 8b 45 64 mov eax, DWORD PTR which$2[rbp] - 00125 ff c0 inc eax - 00127 89 45 64 mov DWORD PTR which$2[rbp], eax -$LN7@stbi__proc: - 0012a 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00131 48 8b 00 mov rax, QWORD PTR [rax] - 00134 8b 40 08 mov eax, DWORD PTR [rax+8] - 00137 39 45 64 cmp DWORD PTR which$2[rbp], eax - 0013a 7d 1f jge SHORT $LN6@stbi__proc - -; 3618 : if (z->img_comp[which].id == id) - - 0013c 48 63 45 64 movsxd rax, DWORD PTR which$2[rbp] - 00140 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00144 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0014b 8b 55 44 mov edx, DWORD PTR id$1[rbp] - 0014e 39 94 01 a0 46 - 00 00 cmp DWORD PTR [rcx+rax+18080], edx - 00155 75 02 jne SHORT $LN11@stbi__proc - -; 3619 : break; - - 00157 eb 02 jmp SHORT $LN6@stbi__proc -$LN11@stbi__proc: - 00159 eb c7 jmp SHORT $LN5@stbi__proc -$LN6@stbi__proc: - -; 3620 : if (which == z->s->img_n) - - 0015b 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00162 48 8b 00 mov rax, QWORD PTR [rax] - 00165 8b 40 08 mov eax, DWORD PTR [rax+8] - 00168 39 45 64 cmp DWORD PTR which$2[rbp], eax - 0016b 75 07 jne SHORT $LN12@stbi__proc - -; 3621 : return 0; // no match - - 0016d 33 c0 xor eax, eax - 0016f e9 0c 02 00 00 jmp $LN1@stbi__proc -$LN12@stbi__proc: - -; 3622 : z->img_comp[which].hd = q >> 4; - - 00174 8b 85 84 00 00 - 00 mov eax, DWORD PTR q$3[rbp] - 0017a c1 f8 04 sar eax, 4 - 0017d 48 63 4d 64 movsxd rcx, DWORD PTR which$2[rbp] - 00181 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 00185 48 8b 95 a0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 0018c 89 84 0a b0 46 - 00 00 mov DWORD PTR [rdx+rcx+18096], eax - -; 3623 : if (z->img_comp[which].hd > 3) - - 00193 48 63 45 64 movsxd rax, DWORD PTR which$2[rbp] - 00197 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0019b 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 001a2 83 bc 01 b0 46 - 00 00 03 cmp DWORD PTR [rcx+rax+18096], 3 - 001aa 7e 11 jle SHORT $LN13@stbi__proc - -; 3624 : return stbi__err("bad DC huff", "Corrupt JPEG"); - - 001ac 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0M@NOCCBFAC@bad?5DC?5huff@ - 001b3 e8 00 00 00 00 call stbi__err - 001b8 e9 c3 01 00 00 jmp $LN1@stbi__proc -$LN13@stbi__proc: - -; 3625 : z->img_comp[which].ha = q & 15; - - 001bd 8b 85 84 00 00 - 00 mov eax, DWORD PTR q$3[rbp] - 001c3 83 e0 0f and eax, 15 - 001c6 48 63 4d 64 movsxd rcx, DWORD PTR which$2[rbp] - 001ca 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 001ce 48 8b 95 a0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 001d5 89 84 0a b4 46 - 00 00 mov DWORD PTR [rdx+rcx+18100], eax - -; 3626 : if (z->img_comp[which].ha > 3) - - 001dc 48 63 45 64 movsxd rax, DWORD PTR which$2[rbp] - 001e0 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 001e4 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 001eb 83 bc 01 b4 46 - 00 00 03 cmp DWORD PTR [rcx+rax+18100], 3 - 001f3 7e 11 jle SHORT $LN14@stbi__proc - -; 3627 : return stbi__err("bad AC huff", "Corrupt JPEG"); - - 001f5 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0M@JGMCBLGG@bad?5AC?5huff@ - 001fc e8 00 00 00 00 call stbi__err - 00201 e9 7a 01 00 00 jmp $LN1@stbi__proc -$LN14@stbi__proc: - -; 3628 : z->order[i] = which; - - 00206 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 0020a 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00211 8b 55 64 mov edx, DWORD PTR which$2[rbp] - 00214 89 94 81 58 48 - 00 00 mov DWORD PTR [rcx+rax*4+18520], edx - -; 3629 : } - - 0021b e9 ae fe ff ff jmp $LN2@stbi__proc -$LN3@stbi__proc: - -; 3630 : -; 3631 : { -; 3632 : int aa; -; 3633 : z->spec_start = stbi__get8(z->s); - - 00220 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00227 48 8b 08 mov rcx, QWORD PTR [rax] - 0022a e8 00 00 00 00 call stbi__get8 - 0022f 0f b6 c0 movzx eax, al - 00232 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00239 89 81 34 48 00 - 00 mov DWORD PTR [rcx+18484], eax - -; 3634 : z->spec_end = stbi__get8(z->s); // should be 63, but might be 0 - - 0023f 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00246 48 8b 08 mov rcx, QWORD PTR [rax] - 00249 e8 00 00 00 00 call stbi__get8 - 0024e 0f b6 c0 movzx eax, al - 00251 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00258 89 81 38 48 00 - 00 mov DWORD PTR [rcx+18488], eax - -; 3635 : aa = stbi__get8(z->s); - - 0025e 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00265 48 8b 08 mov rcx, QWORD PTR [rax] - 00268 e8 00 00 00 00 call stbi__get8 - 0026d 0f b6 c0 movzx eax, al - 00270 89 85 a4 00 00 - 00 mov DWORD PTR aa$4[rbp], eax - -; 3636 : z->succ_high = (aa >> 4); - - 00276 8b 85 a4 00 00 - 00 mov eax, DWORD PTR aa$4[rbp] - 0027c c1 f8 04 sar eax, 4 - 0027f 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00286 89 81 3c 48 00 - 00 mov DWORD PTR [rcx+18492], eax - -; 3637 : z->succ_low = (aa & 15); - - 0028c 8b 85 a4 00 00 - 00 mov eax, DWORD PTR aa$4[rbp] - 00292 83 e0 0f and eax, 15 - 00295 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0029c 89 81 40 48 00 - 00 mov DWORD PTR [rcx+18496], eax - -; 3638 : if (z->progressive) { - - 002a2 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 002a9 83 b8 30 48 00 - 00 00 cmp DWORD PTR [rax+18480], 0 - 002b0 74 6c je SHORT $LN15@stbi__proc - -; 3639 : if (z->spec_start > 63 || z->spec_end > 63 || z->spec_start > z->spec_end || -; 3640 : z->succ_high > 13 || z->succ_low > 13) - - 002b2 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 002b9 83 b8 34 48 00 - 00 3f cmp DWORD PTR [rax+18484], 63 ; 0000003fH - 002c0 7f 4c jg SHORT $LN18@stbi__proc - 002c2 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 002c9 83 b8 38 48 00 - 00 3f cmp DWORD PTR [rax+18488], 63 ; 0000003fH - 002d0 7f 3c jg SHORT $LN18@stbi__proc - 002d2 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 002d9 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 002e0 8b 89 38 48 00 - 00 mov ecx, DWORD PTR [rcx+18488] - 002e6 39 88 34 48 00 - 00 cmp DWORD PTR [rax+18484], ecx - 002ec 7f 20 jg SHORT $LN18@stbi__proc - 002ee 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 002f5 83 b8 3c 48 00 - 00 0d cmp DWORD PTR [rax+18492], 13 - 002fc 7f 10 jg SHORT $LN18@stbi__proc - 002fe 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00305 83 b8 40 48 00 - 00 0d cmp DWORD PTR [rax+18496], 13 - 0030c 7e 0e jle SHORT $LN17@stbi__proc -$LN18@stbi__proc: - -; 3641 : return stbi__err("bad SOS", "Corrupt JPEG"); - - 0030e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07EEJOMGGP@bad?5SOS@ - 00315 e8 00 00 00 00 call stbi__err - 0031a eb 64 jmp SHORT $LN1@stbi__proc -$LN17@stbi__proc: - -; 3642 : } else { - - 0031c eb 5d jmp SHORT $LN16@stbi__proc -$LN15@stbi__proc: - -; 3643 : if (z->spec_start != 0) - - 0031e 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00325 83 b8 34 48 00 - 00 00 cmp DWORD PTR [rax+18484], 0 - 0032c 74 0e je SHORT $LN19@stbi__proc - -; 3644 : return stbi__err("bad SOS", "Corrupt JPEG"); - - 0032e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07EEJOMGGP@bad?5SOS@ - 00335 e8 00 00 00 00 call stbi__err - 0033a eb 44 jmp SHORT $LN1@stbi__proc -$LN19@stbi__proc: - -; 3645 : if (z->succ_high != 0 || z->succ_low != 0) - - 0033c 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00343 83 b8 3c 48 00 - 00 00 cmp DWORD PTR [rax+18492], 0 - 0034a 75 10 jne SHORT $LN21@stbi__proc - 0034c 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00353 83 b8 40 48 00 - 00 00 cmp DWORD PTR [rax+18496], 0 - 0035a 74 0e je SHORT $LN20@stbi__proc -$LN21@stbi__proc: - -; 3646 : return stbi__err("bad SOS", "Corrupt JPEG"); - - 0035c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07EEJOMGGP@bad?5SOS@ - 00363 e8 00 00 00 00 call stbi__err - 00368 eb 16 jmp SHORT $LN1@stbi__proc -$LN20@stbi__proc: - -; 3647 : z->spec_end = 63; - - 0036a 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00371 c7 80 38 48 00 - 00 3f 00 00 00 mov DWORD PTR [rax+18488], 63 ; 0000003fH -$LN16@stbi__proc: - -; 3648 : } -; 3649 : } -; 3650 : -; 3651 : return 1; - - 0037b b8 01 00 00 00 mov eax, 1 -$LN1@stbi__proc: - -; 3652 : } - - 00380 48 8d a5 88 01 - 00 00 lea rsp, QWORD PTR [rbp+392] - 00387 5f pop rdi - 00388 5d pop rbp - 00389 c3 ret 0 -stbi__process_scan_header ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__process_marker -_TEXT SEGMENT -L$ = 4 -q$4 = 36 -p$5 = 68 -sixteen$6 = 100 -t$7 = 132 -i$8 = 164 -v$9 = 200 -sizes$10 = 240 -i$11 = 324 -n$12 = 356 -q$13 = 388 -tc$14 = 420 -th$15 = 452 -ok$16 = 484 -i$17 = 516 -ok$18 = 548 -i$19 = 580 -tv64 = 980 -tv88 = 980 -tv149 = 980 -tv152 = 980 -tv155 = 980 -tv236 = 980 -__$ArrayPad$ = 984 -z$ = 1024 -m$ = 1032 -stbi__process_marker PROC ; COMDAT - -; 3491 : { - - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec 08 04 - 00 00 sub rsp, 1032 ; 00000408H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 0001c b9 9a 00 00 00 mov ecx, 154 ; 0000009aH - 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00026 f3 ab rep stosd - 00028 48 8b 8c 24 28 - 04 00 00 mov rcx, QWORD PTR [rsp+1064] - 00030 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00037 48 33 c5 xor rax, rbp - 0003a 48 89 85 d8 03 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00041 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0004d 90 npad 1 - -; 3492 : int L; -; 3493 : switch (m) { - - 0004e 8b 85 08 04 00 - 00 mov eax, DWORD PTR m$[rbp] - 00054 89 85 d4 03 00 - 00 mov DWORD PTR tv64[rbp], eax - 0005a 81 bd d4 03 00 - 00 c4 00 00 00 cmp DWORD PTR tv64[rbp], 196 ; 000000c4H - 00064 0f 84 19 02 00 - 00 je $LN29@stbi__proc - 0006a 81 bd d4 03 00 - 00 db 00 00 00 cmp DWORD PTR tv64[rbp], 219 ; 000000dbH - 00074 74 79 je SHORT $LN26@stbi__proc - 00076 81 bd d4 03 00 - 00 dd 00 00 00 cmp DWORD PTR tv64[rbp], 221 ; 000000ddH - 00080 74 22 je SHORT $LN24@stbi__proc - 00082 81 bd d4 03 00 - 00 ff 00 00 00 cmp DWORD PTR tv64[rbp], 255 ; 000000ffH - 0008c 74 05 je SHORT $LN23@stbi__proc - 0008e e9 8b 04 00 00 jmp $LN2@stbi__proc -$LN23@stbi__proc: - -; 3494 : case STBI__MARKER_none: // no marker found -; 3495 : return stbi__err("expected marker", "Corrupt JPEG"); - - 00093 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@KLNDOKJD@expected?5marker@ - 0009a e8 00 00 00 00 call stbi__err - 0009f e9 a1 06 00 00 jmp $LN1@stbi__proc -$LN24@stbi__proc: - -; 3496 : -; 3497 : case 0xDD: // DRI - specify restart interval -; 3498 : if (stbi__get16be(z->s) != 4) - - 000a4 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR z$[rbp] - 000ab 48 8b 08 mov rcx, QWORD PTR [rax] - 000ae e8 00 00 00 00 call stbi__get16be - 000b3 83 f8 04 cmp eax, 4 - 000b6 74 11 je SHORT $LN25@stbi__proc - -; 3499 : return stbi__err("bad DRI len", "Corrupt JPEG"); - - 000b8 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0M@LPHNODCG@bad?5DRI?5len@ - 000bf e8 00 00 00 00 call stbi__err - 000c4 e9 7c 06 00 00 jmp $LN1@stbi__proc -$LN25@stbi__proc: - -; 3500 : z->restart_interval = stbi__get16be(z->s); - - 000c9 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR z$[rbp] - 000d0 48 8b 08 mov rcx, QWORD PTR [rax] - 000d3 e8 00 00 00 00 call stbi__get16be - 000d8 48 8b 8d 00 04 - 00 00 mov rcx, QWORD PTR z$[rbp] - 000df 89 81 68 48 00 - 00 mov DWORD PTR [rcx+18536], eax - -; 3501 : return 1; - - 000e5 b8 01 00 00 00 mov eax, 1 - 000ea e9 56 06 00 00 jmp $LN1@stbi__proc -$LN26@stbi__proc: - -; 3502 : -; 3503 : case 0xDB: // DQT - define quantization table -; 3504 : L = stbi__get16be(z->s) - 2; - - 000ef 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR z$[rbp] - 000f6 48 8b 08 mov rcx, QWORD PTR [rax] - 000f9 e8 00 00 00 00 call stbi__get16be - 000fe 83 e8 02 sub eax, 2 - 00101 89 45 04 mov DWORD PTR L$[rbp], eax -$LN4@stbi__proc: - -; 3505 : while (L > 0) { - - 00104 83 7d 04 00 cmp DWORD PTR L$[rbp], 0 - 00108 0f 8e 4e 01 00 - 00 jle $LN5@stbi__proc - -; 3506 : int q = stbi__get8(z->s); - - 0010e 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR z$[rbp] - 00115 48 8b 08 mov rcx, QWORD PTR [rax] - 00118 e8 00 00 00 00 call stbi__get8 - 0011d 0f b6 c0 movzx eax, al - 00120 89 45 24 mov DWORD PTR q$4[rbp], eax - -; 3507 : int p = q >> 4, sixteen = (p != 0); - - 00123 8b 45 24 mov eax, DWORD PTR q$4[rbp] - 00126 c1 f8 04 sar eax, 4 - 00129 89 45 44 mov DWORD PTR p$5[rbp], eax - 0012c 83 7d 44 00 cmp DWORD PTR p$5[rbp], 0 - 00130 74 0c je SHORT $LN52@stbi__proc - 00132 c7 85 d4 03 00 - 00 01 00 00 00 mov DWORD PTR tv88[rbp], 1 - 0013c eb 0a jmp SHORT $LN53@stbi__proc -$LN52@stbi__proc: - 0013e c7 85 d4 03 00 - 00 00 00 00 00 mov DWORD PTR tv88[rbp], 0 -$LN53@stbi__proc: - 00148 8b 85 d4 03 00 - 00 mov eax, DWORD PTR tv88[rbp] - 0014e 89 45 64 mov DWORD PTR sixteen$6[rbp], eax - -; 3508 : int t = q & 15, i; - - 00151 8b 45 24 mov eax, DWORD PTR q$4[rbp] - 00154 83 e0 0f and eax, 15 - 00157 89 85 84 00 00 - 00 mov DWORD PTR t$7[rbp], eax - -; 3509 : if (p != 0 && p != 1) - - 0015d 83 7d 44 00 cmp DWORD PTR p$5[rbp], 0 - 00161 74 17 je SHORT $LN27@stbi__proc - 00163 83 7d 44 01 cmp DWORD PTR p$5[rbp], 1 - 00167 74 11 je SHORT $LN27@stbi__proc - -; 3510 : return stbi__err("bad DQT type", "Corrupt JPEG"); - - 00169 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0N@BOFJCHAP@bad?5DQT?5type@ - 00170 e8 00 00 00 00 call stbi__err - 00175 e9 cb 05 00 00 jmp $LN1@stbi__proc -$LN27@stbi__proc: - -; 3511 : if (t > 3) - - 0017a 83 bd 84 00 00 - 00 03 cmp DWORD PTR t$7[rbp], 3 - 00181 7e 11 jle SHORT $LN28@stbi__proc - -; 3512 : return stbi__err("bad DQT table", "Corrupt JPEG"); - - 00183 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0O@CNHKKDIM@bad?5DQT?5table@ - 0018a e8 00 00 00 00 call stbi__err - 0018f e9 b1 05 00 00 jmp $LN1@stbi__proc -$LN28@stbi__proc: - -; 3513 : -; 3514 : for (i = 0; i < 64; ++i) - - 00194 c7 85 a4 00 00 - 00 00 00 00 00 mov DWORD PTR i$8[rbp], 0 - 0019e eb 0e jmp SHORT $LN8@stbi__proc -$LN6@stbi__proc: - 001a0 8b 85 a4 00 00 - 00 mov eax, DWORD PTR i$8[rbp] - 001a6 ff c0 inc eax - 001a8 89 85 a4 00 00 - 00 mov DWORD PTR i$8[rbp], eax -$LN8@stbi__proc: - 001ae 83 bd a4 00 00 - 00 40 cmp DWORD PTR i$8[rbp], 64 ; 00000040H - 001b5 7d 74 jge SHORT $LN7@stbi__proc - -; 3515 : z->dequant[t][stbi__jpeg_dezigzag[i]] = - - 001b7 83 7d 64 00 cmp DWORD PTR sixteen$6[rbp], 0 - 001bb 74 17 je SHORT $LN54@stbi__proc - 001bd 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR z$[rbp] - 001c4 48 8b 08 mov rcx, QWORD PTR [rax] - 001c7 e8 00 00 00 00 call stbi__get16be - 001cc 89 85 d4 03 00 - 00 mov DWORD PTR tv149[rbp], eax - 001d2 eb 18 jmp SHORT $LN55@stbi__proc -$LN54@stbi__proc: - 001d4 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR z$[rbp] - 001db 48 8b 08 mov rcx, QWORD PTR [rax] - 001de e8 00 00 00 00 call stbi__get8 - 001e3 0f b6 c0 movzx eax, al - 001e6 89 85 d4 03 00 - 00 mov DWORD PTR tv149[rbp], eax -$LN55@stbi__proc: - 001ec 48 63 85 84 00 - 00 00 movsxd rax, DWORD PTR t$7[rbp] - 001f3 48 69 c0 80 00 - 00 00 imul rax, rax, 128 ; 00000080H - 001fa 48 8b 8d 00 04 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00201 48 8d 84 01 88 - 34 00 00 lea rax, QWORD PTR [rcx+rax+13448] - 00209 48 63 8d a4 00 - 00 00 movsxd rcx, DWORD PTR i$8[rbp] - 00210 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__jpeg_dezigzag - 00217 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 0021b 0f b7 95 d4 03 - 00 00 movzx edx, WORD PTR tv149[rbp] - 00222 66 89 14 48 mov WORD PTR [rax+rcx*2], dx - 00226 e9 75 ff ff ff jmp $LN6@stbi__proc -$LN7@stbi__proc: - -; 3516 : (stbi__uint16)(sixteen ? stbi__get16be(z->s) : -; 3517 : stbi__get8(z->s)); -; 3518 : L -= (sixteen ? 129 : 65); - - 0022b 83 7d 64 00 cmp DWORD PTR sixteen$6[rbp], 0 - 0022f 74 0c je SHORT $LN56@stbi__proc - 00231 c7 85 d4 03 00 - 00 81 00 00 00 mov DWORD PTR tv152[rbp], 129 ; 00000081H - 0023b eb 0a jmp SHORT $LN57@stbi__proc -$LN56@stbi__proc: - 0023d c7 85 d4 03 00 - 00 41 00 00 00 mov DWORD PTR tv152[rbp], 65 ; 00000041H -$LN57@stbi__proc: - 00247 8b 85 d4 03 00 - 00 mov eax, DWORD PTR tv152[rbp] - 0024d 8b 4d 04 mov ecx, DWORD PTR L$[rbp] - 00250 2b c8 sub ecx, eax - 00252 8b c1 mov eax, ecx - 00254 89 45 04 mov DWORD PTR L$[rbp], eax - -; 3519 : } - - 00257 e9 a8 fe ff ff jmp $LN4@stbi__proc -$LN5@stbi__proc: - -; 3520 : return L == 0; - - 0025c 83 7d 04 00 cmp DWORD PTR L$[rbp], 0 - 00260 75 0c jne SHORT $LN58@stbi__proc - 00262 c7 85 d4 03 00 - 00 01 00 00 00 mov DWORD PTR tv155[rbp], 1 - 0026c eb 0a jmp SHORT $LN59@stbi__proc -$LN58@stbi__proc: - 0026e c7 85 d4 03 00 - 00 00 00 00 00 mov DWORD PTR tv155[rbp], 0 -$LN59@stbi__proc: - 00278 8b 85 d4 03 00 - 00 mov eax, DWORD PTR tv155[rbp] - 0027e e9 c2 04 00 00 jmp $LN1@stbi__proc -$LN29@stbi__proc: - -; 3521 : -; 3522 : case 0xC4: // DHT - define huffman table -; 3523 : L = stbi__get16be(z->s) - 2; - - 00283 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR z$[rbp] - 0028a 48 8b 08 mov rcx, QWORD PTR [rax] - 0028d e8 00 00 00 00 call stbi__get16be - 00292 83 e8 02 sub eax, 2 - 00295 89 45 04 mov DWORD PTR L$[rbp], eax -$LN9@stbi__proc: - -; 3524 : while (L > 0) { - - 00298 83 7d 04 00 cmp DWORD PTR L$[rbp], 0 - 0029c 0f 8e 55 02 00 - 00 jle $LN10@stbi__proc - -; 3525 : stbi_uc *v; -; 3526 : int sizes[16], i, n = 0; - - 002a2 c7 85 64 01 00 - 00 00 00 00 00 mov DWORD PTR n$12[rbp], 0 - -; 3527 : int q = stbi__get8(z->s); - - 002ac 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR z$[rbp] - 002b3 48 8b 08 mov rcx, QWORD PTR [rax] - 002b6 e8 00 00 00 00 call stbi__get8 - 002bb 0f b6 c0 movzx eax, al - 002be 89 85 84 01 00 - 00 mov DWORD PTR q$13[rbp], eax - -; 3528 : int tc = q >> 4; - - 002c4 8b 85 84 01 00 - 00 mov eax, DWORD PTR q$13[rbp] - 002ca c1 f8 04 sar eax, 4 - 002cd 89 85 a4 01 00 - 00 mov DWORD PTR tc$14[rbp], eax - -; 3529 : int th = q & 15; - - 002d3 8b 85 84 01 00 - 00 mov eax, DWORD PTR q$13[rbp] - 002d9 83 e0 0f and eax, 15 - 002dc 89 85 c4 01 00 - 00 mov DWORD PTR th$15[rbp], eax - -; 3530 : if (tc > 1 || th > 3) - - 002e2 83 bd a4 01 00 - 00 01 cmp DWORD PTR tc$14[rbp], 1 - 002e9 7f 09 jg SHORT $LN31@stbi__proc - 002eb 83 bd c4 01 00 - 00 03 cmp DWORD PTR th$15[rbp], 3 - 002f2 7e 11 jle SHORT $LN30@stbi__proc -$LN31@stbi__proc: - -; 3531 : return stbi__err("bad DHT header", "Corrupt JPEG"); - - 002f4 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0P@JLGKOCGN@bad?5DHT?5header@ - 002fb e8 00 00 00 00 call stbi__err - 00300 e9 40 04 00 00 jmp $LN1@stbi__proc -$LN30@stbi__proc: - -; 3532 : for (i = 0; i < 16; ++i) { - - 00305 c7 85 44 01 00 - 00 00 00 00 00 mov DWORD PTR i$11[rbp], 0 - 0030f eb 0e jmp SHORT $LN13@stbi__proc -$LN11@stbi__proc: - 00311 8b 85 44 01 00 - 00 mov eax, DWORD PTR i$11[rbp] - 00317 ff c0 inc eax - 00319 89 85 44 01 00 - 00 mov DWORD PTR i$11[rbp], eax -$LN13@stbi__proc: - 0031f 83 bd 44 01 00 - 00 10 cmp DWORD PTR i$11[rbp], 16 - 00326 7d 40 jge SHORT $LN12@stbi__proc - -; 3533 : sizes[i] = stbi__get8(z->s); - - 00328 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR z$[rbp] - 0032f 48 8b 08 mov rcx, QWORD PTR [rax] - 00332 e8 00 00 00 00 call stbi__get8 - 00337 48 63 8d 44 01 - 00 00 movsxd rcx, DWORD PTR i$11[rbp] - 0033e 0f b6 c0 movzx eax, al - 00341 89 84 8d f0 00 - 00 00 mov DWORD PTR sizes$10[rbp+rcx*4], eax - -; 3534 : n += sizes[i]; - - 00348 48 63 85 44 01 - 00 00 movsxd rax, DWORD PTR i$11[rbp] - 0034f 8b 84 85 f0 00 - 00 00 mov eax, DWORD PTR sizes$10[rbp+rax*4] - 00356 8b 8d 64 01 00 - 00 mov ecx, DWORD PTR n$12[rbp] - 0035c 03 c8 add ecx, eax - 0035e 8b c1 mov eax, ecx - 00360 89 85 64 01 00 - 00 mov DWORD PTR n$12[rbp], eax - -; 3535 : } - - 00366 eb a9 jmp SHORT $LN11@stbi__proc -$LN12@stbi__proc: - -; 3536 : if (n > 256) - - 00368 81 bd 64 01 00 - 00 00 01 00 00 cmp DWORD PTR n$12[rbp], 256 ; 00000100H - 00372 7e 11 jle SHORT $LN32@stbi__proc - -; 3537 : return stbi__err( - - 00374 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0P@JLGKOCGN@bad?5DHT?5header@ - 0037b e8 00 00 00 00 call stbi__err - 00380 e9 c0 03 00 00 jmp $LN1@stbi__proc -$LN32@stbi__proc: - -; 3538 : "bad DHT header", -; 3539 : "Corrupt JPEG"); // Loop over i < n would write past end of values! -; 3540 : L -= 17; - - 00385 8b 45 04 mov eax, DWORD PTR L$[rbp] - 00388 83 e8 11 sub eax, 17 - 0038b 89 45 04 mov DWORD PTR L$[rbp], eax - -; 3541 : if (tc == 0) { - - 0038e 83 bd a4 01 00 - 00 00 cmp DWORD PTR tc$14[rbp], 0 - 00395 75 5a jne SHORT $LN33@stbi__proc - -; 3542 : if (!stbi__build_huffman(z->huff_dc + th, sizes)) - - 00397 48 63 85 c4 01 - 00 00 movsxd rax, DWORD PTR th$15[rbp] - 0039e 48 69 c0 90 06 - 00 00 imul rax, rax, 1680 ; 00000690H - 003a5 48 8b 8d 00 04 - 00 00 mov rcx, QWORD PTR z$[rbp] - 003ac 48 8d 44 01 08 lea rax, QWORD PTR [rcx+rax+8] - 003b1 48 8d 95 f0 00 - 00 00 lea rdx, QWORD PTR sizes$10[rbp] - 003b8 48 8b c8 mov rcx, rax - 003bb e8 00 00 00 00 call stbi__build_huffman - 003c0 85 c0 test eax, eax - 003c2 75 07 jne SHORT $LN35@stbi__proc - -; 3543 : return 0; - - 003c4 33 c0 xor eax, eax - 003c6 e9 7a 03 00 00 jmp $LN1@stbi__proc -$LN35@stbi__proc: - -; 3544 : v = z->huff_dc[th].values; - - 003cb 48 63 85 c4 01 - 00 00 movsxd rax, DWORD PTR th$15[rbp] - 003d2 48 69 c0 90 06 - 00 00 imul rax, rax, 1680 ; 00000690H - 003d9 48 8b 8d 00 04 - 00 00 mov rcx, QWORD PTR z$[rbp] - 003e0 48 8d 84 01 08 - 04 00 00 lea rax, QWORD PTR [rcx+rax+1032] - 003e8 48 89 85 c8 00 - 00 00 mov QWORD PTR v$9[rbp], rax - -; 3545 : } else { - - 003ef eb 5b jmp SHORT $LN34@stbi__proc -$LN33@stbi__proc: - -; 3546 : if (!stbi__build_huffman(z->huff_ac + th, sizes)) - - 003f1 48 63 85 c4 01 - 00 00 movsxd rax, DWORD PTR th$15[rbp] - 003f8 48 69 c0 90 06 - 00 00 imul rax, rax, 1680 ; 00000690H - 003ff 48 8b 8d 00 04 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00406 48 8d 84 01 48 - 1a 00 00 lea rax, QWORD PTR [rcx+rax+6728] - 0040e 48 8d 95 f0 00 - 00 00 lea rdx, QWORD PTR sizes$10[rbp] - 00415 48 8b c8 mov rcx, rax - 00418 e8 00 00 00 00 call stbi__build_huffman - 0041d 85 c0 test eax, eax - 0041f 75 07 jne SHORT $LN36@stbi__proc - -; 3547 : return 0; - - 00421 33 c0 xor eax, eax - 00423 e9 1d 03 00 00 jmp $LN1@stbi__proc -$LN36@stbi__proc: - -; 3548 : v = z->huff_ac[th].values; - - 00428 48 63 85 c4 01 - 00 00 movsxd rax, DWORD PTR th$15[rbp] - 0042f 48 69 c0 90 06 - 00 00 imul rax, rax, 1680 ; 00000690H - 00436 48 8b 8d 00 04 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0043d 48 8d 84 01 48 - 1e 00 00 lea rax, QWORD PTR [rcx+rax+7752] - 00445 48 89 85 c8 00 - 00 00 mov QWORD PTR v$9[rbp], rax -$LN34@stbi__proc: - -; 3549 : } -; 3550 : for (i = 0; i < n; ++i) - - 0044c c7 85 44 01 00 - 00 00 00 00 00 mov DWORD PTR i$11[rbp], 0 - 00456 eb 0e jmp SHORT $LN16@stbi__proc -$LN14@stbi__proc: - 00458 8b 85 44 01 00 - 00 mov eax, DWORD PTR i$11[rbp] - 0045e ff c0 inc eax - 00460 89 85 44 01 00 - 00 mov DWORD PTR i$11[rbp], eax -$LN16@stbi__proc: - 00466 8b 85 64 01 00 - 00 mov eax, DWORD PTR n$12[rbp] - 0046c 39 85 44 01 00 - 00 cmp DWORD PTR i$11[rbp], eax - 00472 7d 22 jge SHORT $LN15@stbi__proc - -; 3551 : v[i] = stbi__get8(z->s); - - 00474 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR z$[rbp] - 0047b 48 8b 08 mov rcx, QWORD PTR [rax] - 0047e e8 00 00 00 00 call stbi__get8 - 00483 48 63 8d 44 01 - 00 00 movsxd rcx, DWORD PTR i$11[rbp] - 0048a 48 8b 95 c8 00 - 00 00 mov rdx, QWORD PTR v$9[rbp] - 00491 88 04 0a mov BYTE PTR [rdx+rcx], al - 00494 eb c2 jmp SHORT $LN14@stbi__proc -$LN15@stbi__proc: - -; 3552 : if (tc != 0) - - 00496 83 bd a4 01 00 - 00 00 cmp DWORD PTR tc$14[rbp], 0 - 0049d 74 43 je SHORT $LN37@stbi__proc - -; 3553 : stbi__build_fast_ac(z->fast_ac[th], z->huff_ac + th); - - 0049f 48 63 85 c4 01 - 00 00 movsxd rax, DWORD PTR th$15[rbp] - 004a6 48 69 c0 90 06 - 00 00 imul rax, rax, 1680 ; 00000690H - 004ad 48 8b 8d 00 04 - 00 00 mov rcx, QWORD PTR z$[rbp] - 004b4 48 8d 84 01 48 - 1a 00 00 lea rax, QWORD PTR [rcx+rax+6728] - 004bc 48 63 8d c4 01 - 00 00 movsxd rcx, DWORD PTR th$15[rbp] - 004c3 48 69 c9 00 04 - 00 00 imul rcx, rcx, 1024 ; 00000400H - 004ca 48 8b 95 00 04 - 00 00 mov rdx, QWORD PTR z$[rbp] - 004d1 48 8d 8c 0a 88 - 36 00 00 lea rcx, QWORD PTR [rdx+rcx+13960] - 004d9 48 8b d0 mov rdx, rax - 004dc e8 00 00 00 00 call stbi__build_fast_ac - 004e1 90 npad 1 -$LN37@stbi__proc: - -; 3554 : L -= n; - - 004e2 8b 85 64 01 00 - 00 mov eax, DWORD PTR n$12[rbp] - 004e8 8b 4d 04 mov ecx, DWORD PTR L$[rbp] - 004eb 2b c8 sub ecx, eax - 004ed 8b c1 mov eax, ecx - 004ef 89 45 04 mov DWORD PTR L$[rbp], eax - -; 3555 : } - - 004f2 e9 a1 fd ff ff jmp $LN9@stbi__proc -$LN10@stbi__proc: - -; 3556 : return L == 0; - - 004f7 83 7d 04 00 cmp DWORD PTR L$[rbp], 0 - 004fb 75 0c jne SHORT $LN60@stbi__proc - 004fd c7 85 d4 03 00 - 00 01 00 00 00 mov DWORD PTR tv236[rbp], 1 - 00507 eb 0a jmp SHORT $LN61@stbi__proc -$LN60@stbi__proc: - 00509 c7 85 d4 03 00 - 00 00 00 00 00 mov DWORD PTR tv236[rbp], 0 -$LN61@stbi__proc: - 00513 8b 85 d4 03 00 - 00 mov eax, DWORD PTR tv236[rbp] - 00519 e9 27 02 00 00 jmp $LN1@stbi__proc -$LN2@stbi__proc: - -; 3557 : } -; 3558 : -; 3559 : // check for comment block or APP blocks -; 3560 : if ((m >= 0xE0 && m <= 0xEF) || m == 0xFE) { - - 0051e 81 bd 08 04 00 - 00 e0 00 00 00 cmp DWORD PTR m$[rbp], 224 ; 000000e0H - 00528 7c 0c jl SHORT $LN40@stbi__proc - 0052a 81 bd 08 04 00 - 00 ef 00 00 00 cmp DWORD PTR m$[rbp], 239 ; 000000efH - 00534 7e 10 jle SHORT $LN39@stbi__proc -$LN40@stbi__proc: - 00536 81 bd 08 04 00 - 00 fe 00 00 00 cmp DWORD PTR m$[rbp], 254 ; 000000feH - 00540 0f 85 f3 01 00 - 00 jne $LN38@stbi__proc -$LN39@stbi__proc: - -; 3561 : L = stbi__get16be(z->s); - - 00546 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR z$[rbp] - 0054d 48 8b 08 mov rcx, QWORD PTR [rax] - 00550 e8 00 00 00 00 call stbi__get16be - 00555 89 45 04 mov DWORD PTR L$[rbp], eax - -; 3562 : if (L < 2) { - - 00558 83 7d 04 02 cmp DWORD PTR L$[rbp], 2 - 0055c 7d 30 jge SHORT $LN41@stbi__proc - -; 3563 : if (m == 0xFE) - - 0055e 81 bd 08 04 00 - 00 fe 00 00 00 cmp DWORD PTR m$[rbp], 254 ; 000000feH - 00568 75 13 jne SHORT $LN42@stbi__proc - -; 3564 : return stbi__err("bad COM len", "Corrupt JPEG"); - - 0056a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0M@CICAFFCH@bad?5COM?5len@ - 00571 e8 00 00 00 00 call stbi__err - 00576 e9 ca 01 00 00 jmp $LN1@stbi__proc - 0057b eb 11 jmp SHORT $LN43@stbi__proc -$LN42@stbi__proc: - -; 3565 : else -; 3566 : return stbi__err("bad APP len", "Corrupt JPEG"); - - 0057d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0M@EENLKPDI@bad?5APP?5len@ - 00584 e8 00 00 00 00 call stbi__err - 00589 e9 b7 01 00 00 jmp $LN1@stbi__proc -$LN43@stbi__proc: -$LN41@stbi__proc: - -; 3567 : } -; 3568 : L -= 2; - - 0058e 8b 45 04 mov eax, DWORD PTR L$[rbp] - 00591 83 e8 02 sub eax, 2 - 00594 89 45 04 mov DWORD PTR L$[rbp], eax - -; 3569 : -; 3570 : if (m == 0xE0 && L >= 5) { // JFIF APP0 segment - - 00597 81 bd 08 04 00 - 00 e0 00 00 00 cmp DWORD PTR m$[rbp], 224 ; 000000e0H - 005a1 0f 85 93 00 00 - 00 jne $LN44@stbi__proc - 005a7 83 7d 04 05 cmp DWORD PTR L$[rbp], 5 - 005ab 0f 8c 89 00 00 - 00 jl $LN44@stbi__proc - -; 3571 : static const unsigned char tag[5] = { 'J', 'F', 'I', 'F', '\0' }; -; 3572 : int ok = 1; - - 005b1 c7 85 e4 01 00 - 00 01 00 00 00 mov DWORD PTR ok$16[rbp], 1 - -; 3573 : int i; -; 3574 : for (i = 0; i < 5; ++i) - - 005bb c7 85 04 02 00 - 00 00 00 00 00 mov DWORD PTR i$17[rbp], 0 - 005c5 eb 0e jmp SHORT $LN19@stbi__proc -$LN17@stbi__proc: - 005c7 8b 85 04 02 00 - 00 mov eax, DWORD PTR i$17[rbp] - 005cd ff c0 inc eax - 005cf 89 85 04 02 00 - 00 mov DWORD PTR i$17[rbp], eax -$LN19@stbi__proc: - 005d5 83 bd 04 02 00 - 00 05 cmp DWORD PTR i$17[rbp], 5 - 005dc 7d 34 jge SHORT $LN18@stbi__proc - -; 3575 : if (stbi__get8(z->s) != tag[i]) - - 005de 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR z$[rbp] - 005e5 48 8b 08 mov rcx, QWORD PTR [rax] - 005e8 e8 00 00 00 00 call stbi__get8 - 005ed 0f b6 c0 movzx eax, al - 005f0 48 63 8d 04 02 - 00 00 movsxd rcx, DWORD PTR i$17[rbp] - 005f7 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?tag@?O@??stbi__process_marker@@9@9 - 005fe 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 00602 3b c1 cmp eax, ecx - 00604 74 0a je SHORT $LN46@stbi__proc - -; 3576 : ok = 0; - - 00606 c7 85 e4 01 00 - 00 00 00 00 00 mov DWORD PTR ok$16[rbp], 0 -$LN46@stbi__proc: - 00610 eb b5 jmp SHORT $LN17@stbi__proc -$LN18@stbi__proc: - -; 3577 : L -= 5; - - 00612 8b 45 04 mov eax, DWORD PTR L$[rbp] - 00615 83 e8 05 sub eax, 5 - 00618 89 45 04 mov DWORD PTR L$[rbp], eax - -; 3578 : if (ok) - - 0061b 83 bd e4 01 00 - 00 00 cmp DWORD PTR ok$16[rbp], 0 - 00622 74 11 je SHORT $LN47@stbi__proc - -; 3579 : z->jfif = 1; - - 00624 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR z$[rbp] - 0062b c7 80 48 48 00 - 00 01 00 00 00 mov DWORD PTR [rax+18504], 1 -$LN47@stbi__proc: - -; 3580 : } else if (m == 0xEE && L >= 12) { // Adobe APP14 segment - - 00635 e9 e5 00 00 00 jmp $LN45@stbi__proc -$LN44@stbi__proc: - 0063a 81 bd 08 04 00 - 00 ee 00 00 00 cmp DWORD PTR m$[rbp], 238 ; 000000eeH - 00644 0f 85 d5 00 00 - 00 jne $LN48@stbi__proc - 0064a 83 7d 04 0c cmp DWORD PTR L$[rbp], 12 - 0064e 0f 8c cb 00 00 - 00 jl $LN48@stbi__proc - -; 3581 : static const unsigned char tag[6] = { 'A', 'd', 'o', 'b', 'e', '\0' }; -; 3582 : int ok = 1; - - 00654 c7 85 24 02 00 - 00 01 00 00 00 mov DWORD PTR ok$18[rbp], 1 - -; 3583 : int i; -; 3584 : for (i = 0; i < 6; ++i) - - 0065e c7 85 44 02 00 - 00 00 00 00 00 mov DWORD PTR i$19[rbp], 0 - 00668 eb 0e jmp SHORT $LN22@stbi__proc -$LN20@stbi__proc: - 0066a 8b 85 44 02 00 - 00 mov eax, DWORD PTR i$19[rbp] - 00670 ff c0 inc eax - 00672 89 85 44 02 00 - 00 mov DWORD PTR i$19[rbp], eax -$LN22@stbi__proc: - 00678 83 bd 44 02 00 - 00 06 cmp DWORD PTR i$19[rbp], 6 - 0067f 7d 34 jge SHORT $LN21@stbi__proc - -; 3585 : if (stbi__get8(z->s) != tag[i]) - - 00681 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR z$[rbp] - 00688 48 8b 08 mov rcx, QWORD PTR [rax] - 0068b e8 00 00 00 00 call stbi__get8 - 00690 0f b6 c0 movzx eax, al - 00693 48 63 8d 44 02 - 00 00 movsxd rcx, DWORD PTR i$19[rbp] - 0069a 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?tag@?BA@??stbi__process_marker@@9@9 - 006a1 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 006a5 3b c1 cmp eax, ecx - 006a7 74 0a je SHORT $LN49@stbi__proc - -; 3586 : ok = 0; - - 006a9 c7 85 24 02 00 - 00 00 00 00 00 mov DWORD PTR ok$18[rbp], 0 -$LN49@stbi__proc: - 006b3 eb b5 jmp SHORT $LN20@stbi__proc -$LN21@stbi__proc: - -; 3587 : L -= 6; - - 006b5 8b 45 04 mov eax, DWORD PTR L$[rbp] - 006b8 83 e8 06 sub eax, 6 - 006bb 89 45 04 mov DWORD PTR L$[rbp], eax - -; 3588 : if (ok) { - - 006be 83 bd 24 02 00 - 00 00 cmp DWORD PTR ok$18[rbp], 0 - 006c5 74 58 je SHORT $LN50@stbi__proc - -; 3589 : stbi__get8(z->s); // version - - 006c7 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR z$[rbp] - 006ce 48 8b 08 mov rcx, QWORD PTR [rax] - 006d1 e8 00 00 00 00 call stbi__get8 - 006d6 90 npad 1 - -; 3590 : stbi__get16be(z->s); // flags0 - - 006d7 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR z$[rbp] - 006de 48 8b 08 mov rcx, QWORD PTR [rax] - 006e1 e8 00 00 00 00 call stbi__get16be - 006e6 90 npad 1 - -; 3591 : stbi__get16be(z->s); // flags1 - - 006e7 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR z$[rbp] - 006ee 48 8b 08 mov rcx, QWORD PTR [rax] - 006f1 e8 00 00 00 00 call stbi__get16be - 006f6 90 npad 1 - -; 3592 : z->app14_color_transform = stbi__get8(z->s); // color transform - - 006f7 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR z$[rbp] - 006fe 48 8b 08 mov rcx, QWORD PTR [rax] - 00701 e8 00 00 00 00 call stbi__get8 - 00706 0f b6 c0 movzx eax, al - 00709 48 8b 8d 00 04 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00710 89 81 4c 48 00 - 00 mov DWORD PTR [rcx+18508], eax - -; 3593 : L -= 6; - - 00716 8b 45 04 mov eax, DWORD PTR L$[rbp] - 00719 83 e8 06 sub eax, 6 - 0071c 89 45 04 mov DWORD PTR L$[rbp], eax -$LN50@stbi__proc: -$LN48@stbi__proc: -$LN45@stbi__proc: - -; 3594 : } -; 3595 : } -; 3596 : -; 3597 : stbi__skip(z->s, L); - - 0071f 8b 55 04 mov edx, DWORD PTR L$[rbp] - 00722 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR z$[rbp] - 00729 48 8b 08 mov rcx, QWORD PTR [rax] - 0072c e8 00 00 00 00 call stbi__skip - 00731 90 npad 1 - -; 3598 : return 1; - - 00732 b8 01 00 00 00 mov eax, 1 - 00737 eb 0c jmp SHORT $LN1@stbi__proc -$LN38@stbi__proc: - -; 3599 : } -; 3600 : -; 3601 : return stbi__err("unknown marker", "Corrupt JPEG"); - - 00739 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0P@NNGPHMMK@unknown?5marker@ - 00740 e8 00 00 00 00 call stbi__err -$LN1@stbi__proc: - -; 3602 : } - - 00745 48 8b f8 mov rdi, rax - 00748 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0074c 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__process_marker$rtcFrameData - 00753 e8 00 00 00 00 call _RTC_CheckStackVars - 00758 48 8b c7 mov rax, rdi - 0075b 48 8b 8d d8 03 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00762 48 33 cd xor rcx, rbp - 00765 e8 00 00 00 00 call __security_check_cookie - 0076a 48 8d a5 e8 03 - 00 00 lea rsp, QWORD PTR [rbp+1000] - 00771 5f pop rdi - 00772 5d pop rbp - 00773 c3 ret 0 -stbi__process_marker ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__jpeg_finish -_TEXT SEGMENT -i$1 = 4 -j$2 = 36 -n$3 = 68 -w$4 = 100 -h$5 = 132 -data$6 = 168 -z$ = 416 -stbi__jpeg_finish PROC ; COMDAT - -; 3468 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec a8 01 - 00 00 sub rsp, 424 ; 000001a8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 3469 : if (z->progressive) { - - 00020 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 00027 83 b8 30 48 00 - 00 00 cmp DWORD PTR [rax+18480], 0 - 0002e 0f 84 b1 01 00 - 00 je $LN11@stbi__jpeg - -; 3470 : // dequantize and idct the data -; 3471 : int i, j, n; -; 3472 : for (n = 0; n < z->s->img_n; ++n) { - - 00034 c7 45 44 00 00 - 00 00 mov DWORD PTR n$3[rbp], 0 - 0003b eb 08 jmp SHORT $LN4@stbi__jpeg -$LN2@stbi__jpeg: - 0003d 8b 45 44 mov eax, DWORD PTR n$3[rbp] - 00040 ff c0 inc eax - 00042 89 45 44 mov DWORD PTR n$3[rbp], eax -$LN4@stbi__jpeg: - 00045 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 0004c 48 8b 00 mov rax, QWORD PTR [rax] - 0004f 8b 40 08 mov eax, DWORD PTR [rax+8] - 00052 39 45 44 cmp DWORD PTR n$3[rbp], eax - 00055 0f 8d 8a 01 00 - 00 jge $LN3@stbi__jpeg - -; 3473 : int w = (z->img_comp[n].x + 7) >> 3; - - 0005b 48 63 45 44 movsxd rax, DWORD PTR n$3[rbp] - 0005f 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00063 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0006a 8b 84 01 bc 46 - 00 00 mov eax, DWORD PTR [rcx+rax+18108] - 00071 83 c0 07 add eax, 7 - 00074 c1 f8 03 sar eax, 3 - 00077 89 45 64 mov DWORD PTR w$4[rbp], eax - -; 3474 : int h = (z->img_comp[n].y + 7) >> 3; - - 0007a 48 63 45 44 movsxd rax, DWORD PTR n$3[rbp] - 0007e 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00082 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00089 8b 84 01 c0 46 - 00 00 mov eax, DWORD PTR [rcx+rax+18112] - 00090 83 c0 07 add eax, 7 - 00093 c1 f8 03 sar eax, 3 - 00096 89 85 84 00 00 - 00 mov DWORD PTR h$5[rbp], eax - -; 3475 : for (j = 0; j < h; ++j) { - - 0009c c7 45 24 00 00 - 00 00 mov DWORD PTR j$2[rbp], 0 - 000a3 eb 08 jmp SHORT $LN7@stbi__jpeg -$LN5@stbi__jpeg: - 000a5 8b 45 24 mov eax, DWORD PTR j$2[rbp] - 000a8 ff c0 inc eax - 000aa 89 45 24 mov DWORD PTR j$2[rbp], eax -$LN7@stbi__jpeg: - 000ad 8b 85 84 00 00 - 00 mov eax, DWORD PTR h$5[rbp] - 000b3 39 45 24 cmp DWORD PTR j$2[rbp], eax - 000b6 0f 8d 24 01 00 - 00 jge $LN6@stbi__jpeg - -; 3476 : for (i = 0; i < w; ++i) { - - 000bc c7 45 04 00 00 - 00 00 mov DWORD PTR i$1[rbp], 0 - 000c3 eb 08 jmp SHORT $LN10@stbi__jpeg -$LN8@stbi__jpeg: - 000c5 8b 45 04 mov eax, DWORD PTR i$1[rbp] - 000c8 ff c0 inc eax - 000ca 89 45 04 mov DWORD PTR i$1[rbp], eax -$LN10@stbi__jpeg: - 000cd 8b 45 64 mov eax, DWORD PTR w$4[rbp] - 000d0 39 45 04 cmp DWORD PTR i$1[rbp], eax - 000d3 0f 8d 02 01 00 - 00 jge $LN9@stbi__jpeg - -; 3477 : short *data = z->img_comp[n].coeff + - - 000d9 48 63 45 44 movsxd rax, DWORD PTR n$3[rbp] - 000dd 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 000e1 48 63 4d 44 movsxd rcx, DWORD PTR n$3[rbp] - 000e5 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 000e9 48 8b 95 a0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 000f0 44 8b 45 24 mov r8d, DWORD PTR j$2[rbp] - 000f4 44 0f af 84 0a - f8 46 00 00 imul r8d, DWORD PTR [rdx+rcx+18168] - 000fd 41 8b c8 mov ecx, r8d - 00100 8b 55 04 mov edx, DWORD PTR i$1[rbp] - 00103 03 d1 add edx, ecx - 00105 8b ca mov ecx, edx - 00107 6b c9 40 imul ecx, ecx, 64 ; 00000040H - 0010a 48 63 c9 movsxd rcx, ecx - 0010d 48 8b 95 a0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 00114 48 8b 84 02 f0 - 46 00 00 mov rax, QWORD PTR [rdx+rax+18160] - 0011c 48 8d 04 48 lea rax, QWORD PTR [rax+rcx*2] - 00120 48 89 85 a8 00 - 00 00 mov QWORD PTR data$6[rbp], rax - -; 3478 : 64 * (i + j * z->img_comp[n].coeff_w); -; 3479 : stbi__jpeg_dequantize(data, z->dequant[z->img_comp[n].tq]); - - 00127 48 63 45 44 movsxd rax, DWORD PTR n$3[rbp] - 0012b 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0012f 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00136 48 63 84 01 ac - 46 00 00 movsxd rax, DWORD PTR [rcx+rax+18092] - 0013e 48 69 c0 80 00 - 00 00 imul rax, rax, 128 ; 00000080H - 00145 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0014c 48 8d 84 01 88 - 34 00 00 lea rax, QWORD PTR [rcx+rax+13448] - 00154 48 8b d0 mov rdx, rax - 00157 48 8b 8d a8 00 - 00 00 mov rcx, QWORD PTR data$6[rbp] - 0015e e8 00 00 00 00 call stbi__jpeg_dequantize - 00163 90 npad 1 - -; 3480 : z->idct_block_kernel(z->img_comp[n].data + - - 00164 48 63 45 44 movsxd rax, DWORD PTR n$3[rbp] - 00168 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0016c 48 63 4d 44 movsxd rcx, DWORD PTR n$3[rbp] - 00170 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 00174 48 63 55 44 movsxd rdx, DWORD PTR n$3[rbp] - 00178 48 6b d2 60 imul rdx, rdx, 96 ; 00000060H - 0017c 4c 8b 85 a0 01 - 00 00 mov r8, QWORD PTR z$[rbp] - 00183 41 8b 94 10 c4 - 46 00 00 mov edx, DWORD PTR [r8+rdx+18116] - 0018b 0f af 55 24 imul edx, DWORD PTR j$2[rbp] - 0018f c1 e2 03 shl edx, 3 - 00192 48 63 d2 movsxd rdx, edx - 00195 4c 8b 85 a0 01 - 00 00 mov r8, QWORD PTR z$[rbp] - 0019c 49 8b 8c 08 d0 - 46 00 00 mov rcx, QWORD PTR [r8+rcx+18128] - 001a4 48 03 ca add rcx, rdx - 001a7 8b 55 04 mov edx, DWORD PTR i$1[rbp] - 001aa c1 e2 03 shl edx, 3 - 001ad 48 63 d2 movsxd rdx, edx - 001b0 48 03 ca add rcx, rdx - 001b3 4c 8b 85 a8 00 - 00 00 mov r8, QWORD PTR data$6[rbp] - 001ba 48 8b 95 a0 01 - 00 00 mov rdx, QWORD PTR z$[rbp] - 001c1 8b 94 02 c4 46 - 00 00 mov edx, DWORD PTR [rdx+rax+18116] - 001c8 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR z$[rbp] - 001cf ff 90 70 48 00 - 00 call QWORD PTR [rax+18544] - 001d5 90 npad 1 - -; 3481 : z->img_comp[n].w2 * j * 8 + -; 3482 : i * 8, -; 3483 : z->img_comp[n].w2, data); -; 3484 : } - - 001d6 e9 ea fe ff ff jmp $LN8@stbi__jpeg -$LN9@stbi__jpeg: - -; 3485 : } - - 001db e9 c5 fe ff ff jmp $LN5@stbi__jpeg -$LN6@stbi__jpeg: - -; 3486 : } - - 001e0 e9 58 fe ff ff jmp $LN2@stbi__jpeg -$LN3@stbi__jpeg: -$LN11@stbi__jpeg: - -; 3487 : } -; 3488 : } - - 001e5 48 8d a5 88 01 - 00 00 lea rsp, QWORD PTR [rbp+392] - 001ec 5f pop rdi - 001ed 5d pop rbp - 001ee c3 ret 0 -stbi__jpeg_finish ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__jpeg_dequantize -_TEXT SEGMENT -i$ = 4 -data$ = 256 -dequant$ = 264 -stbi__jpeg_dequantize PROC ; COMDAT - -; 3461 : { - - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 - -; 3462 : int i; -; 3463 : for (i = 0; i < 64; ++i) - - 00025 c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 0002c eb 08 jmp SHORT $LN4@stbi__jpeg -$LN2@stbi__jpeg: - 0002e 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00031 ff c0 inc eax - 00033 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__jpeg: - 00036 83 7d 04 40 cmp DWORD PTR i$[rbp], 64 ; 00000040H - 0003a 7d 32 jge SHORT $LN3@stbi__jpeg - -; 3464 : data[i] *= dequant[i]; - - 0003c 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00040 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] - 00044 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR dequant$[rbp] - 0004b 0f b7 0c 4a movzx ecx, WORD PTR [rdx+rcx*2] - 0004f 48 8b 95 00 01 - 00 00 mov rdx, QWORD PTR data$[rbp] - 00056 0f bf 04 42 movsx eax, WORD PTR [rdx+rax*2] - 0005a 0f af c1 imul eax, ecx - 0005d 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] - 00061 48 8b 95 00 01 - 00 00 mov rdx, QWORD PTR data$[rbp] - 00068 66 89 04 4a mov WORD PTR [rdx+rcx*2], ax - 0006c eb c0 jmp SHORT $LN2@stbi__jpeg -$LN3@stbi__jpeg: - -; 3465 : } - - 0006e 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00075 5f pop rdi - 00076 5d pop rbp - 00077 c3 ret 0 -stbi__jpeg_dequantize ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__parse_entropy_coded_data -_TEXT SEGMENT -i$5 = 4 -j$6 = 36 -data$7 = 80 -n$8 = 228 -w$9 = 260 -h$10 = 292 -ha$11 = 324 -i$12 = 356 -j$13 = 388 -k$14 = 420 -x$15 = 452 -y$16 = 484 -data$17 = 528 -n$18 = 676 -x2$19 = 708 -y2$20 = 740 -ha$21 = 772 -i$22 = 804 -j$23 = 836 -n$24 = 868 -w$25 = 900 -h$26 = 932 -data$27 = 968 -ha$28 = 996 -i$29 = 1028 -j$30 = 1060 -k$31 = 1092 -x$32 = 1124 -y$33 = 1156 -n$34 = 1188 -x2$35 = 1220 -y2$36 = 1252 -data$37 = 1288 -tv518 = 1876 -tv190 = 1876 -tv311 = 1876 -tv400 = 1876 -__$ArrayPad$ = 1880 -z$ = 1920 -stbi__parse_entropy_coded_data PROC ; COMDAT - -; 3291 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec a8 07 - 00 00 sub rsp, 1960 ; 000007a8H - 0000e 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00013 48 8d 7c 24 40 lea rdi, QWORD PTR [rsp+64] - 00018 b9 4a 01 00 00 mov ecx, 330 ; 0000014aH - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 c8 - 07 00 00 mov rcx, QWORD PTR [rsp+1992] - 0002c 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 58 07 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00049 90 npad 1 - -; 3292 : stbi__jpeg_reset(z); - - 0004a 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00051 e8 00 00 00 00 call stbi__jpeg_reset - 00056 90 npad 1 - -; 3293 : if (!z->progressive) { - - 00057 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 0005e 83 b8 30 48 00 - 00 00 cmp DWORD PTR [rax+18480], 0 - 00065 0f 85 72 06 00 - 00 jne $LN44@stbi__pars - -; 3294 : if (z->scan_n == 1) { - - 0006b 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 00072 83 b8 54 48 00 - 00 01 cmp DWORD PTR [rax+18516], 1 - 00079 0f 85 af 02 00 - 00 jne $LN46@stbi__pars - -; 3295 : int i, j; -; 3296 : STBI_SIMD_ALIGN(short, data[64]); -; 3297 : int n = z->order[0]; - - 0007f b8 04 00 00 00 mov eax, 4 - 00084 48 6b c0 00 imul rax, rax, 0 - 00088 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0008f 8b 84 01 58 48 - 00 00 mov eax, DWORD PTR [rcx+rax+18520] - 00096 89 85 e4 00 00 - 00 mov DWORD PTR n$8[rbp], eax - -; 3298 : // non-interleaved data, we just need to process one block at a time, -; 3299 : // in trivial scanline order -; 3300 : // number of blocks to do just depends on how many actual "pixels" this -; 3301 : // component has, independent of interleaved MCU blocking and such -; 3302 : int w = (z->img_comp[n].x + 7) >> 3; - - 0009c 48 63 85 e4 00 - 00 00 movsxd rax, DWORD PTR n$8[rbp] - 000a3 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 000a7 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 000ae 8b 84 01 bc 46 - 00 00 mov eax, DWORD PTR [rcx+rax+18108] - 000b5 83 c0 07 add eax, 7 - 000b8 c1 f8 03 sar eax, 3 - 000bb 89 85 04 01 00 - 00 mov DWORD PTR w$9[rbp], eax - -; 3303 : int h = (z->img_comp[n].y + 7) >> 3; - - 000c1 48 63 85 e4 00 - 00 00 movsxd rax, DWORD PTR n$8[rbp] - 000c8 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 000cc 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 000d3 8b 84 01 c0 46 - 00 00 mov eax, DWORD PTR [rcx+rax+18112] - 000da 83 c0 07 add eax, 7 - 000dd c1 f8 03 sar eax, 3 - 000e0 89 85 24 01 00 - 00 mov DWORD PTR h$10[rbp], eax - -; 3304 : for (j = 0; j < h; ++j) { - - 000e6 c7 45 24 00 00 - 00 00 mov DWORD PTR j$6[rbp], 0 - 000ed eb 08 jmp SHORT $LN4@stbi__pars -$LN2@stbi__pars: - 000ef 8b 45 24 mov eax, DWORD PTR j$6[rbp] - 000f2 ff c0 inc eax - 000f4 89 45 24 mov DWORD PTR j$6[rbp], eax -$LN4@stbi__pars: - 000f7 8b 85 24 01 00 - 00 mov eax, DWORD PTR h$10[rbp] - 000fd 39 45 24 cmp DWORD PTR j$6[rbp], eax - 00100 0f 8d 19 02 00 - 00 jge $LN3@stbi__pars - -; 3305 : for (i = 0; i < w; ++i) { - - 00106 c7 45 04 00 00 - 00 00 mov DWORD PTR i$5[rbp], 0 - 0010d eb 08 jmp SHORT $LN7@stbi__pars -$LN5@stbi__pars: - 0010f 8b 45 04 mov eax, DWORD PTR i$5[rbp] - 00112 ff c0 inc eax - 00114 89 45 04 mov DWORD PTR i$5[rbp], eax -$LN7@stbi__pars: - 00117 8b 85 04 01 00 - 00 mov eax, DWORD PTR w$9[rbp] - 0011d 39 45 04 cmp DWORD PTR i$5[rbp], eax - 00120 0f 8d f4 01 00 - 00 jge $LN6@stbi__pars - -; 3306 : int ha = z->img_comp[n].ha; - - 00126 48 63 85 e4 00 - 00 00 movsxd rax, DWORD PTR n$8[rbp] - 0012d 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00131 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00138 8b 84 01 b4 46 - 00 00 mov eax, DWORD PTR [rcx+rax+18100] - 0013f 89 85 44 01 00 - 00 mov DWORD PTR ha$11[rbp], eax - -; 3307 : if (!stbi__jpeg_decode_block( - - 00145 48 63 85 e4 00 - 00 00 movsxd rax, DWORD PTR n$8[rbp] - 0014c 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00150 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00157 48 63 84 01 ac - 46 00 00 movsxd rax, DWORD PTR [rcx+rax+18092] - 0015f 48 69 c0 80 00 - 00 00 imul rax, rax, 128 ; 00000080H - 00166 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0016d 48 8d 84 01 88 - 34 00 00 lea rax, QWORD PTR [rcx+rax+13448] - 00175 48 63 8d 44 01 - 00 00 movsxd rcx, DWORD PTR ha$11[rbp] - 0017c 48 69 c9 00 04 - 00 00 imul rcx, rcx, 1024 ; 00000400H - 00183 48 8b 95 80 07 - 00 00 mov rdx, QWORD PTR z$[rbp] - 0018a 48 8d 8c 0a 88 - 36 00 00 lea rcx, QWORD PTR [rdx+rcx+13960] - 00192 48 63 95 44 01 - 00 00 movsxd rdx, DWORD PTR ha$11[rbp] - 00199 48 69 d2 90 06 - 00 00 imul rdx, rdx, 1680 ; 00000690H - 001a0 4c 8b 85 80 07 - 00 00 mov r8, QWORD PTR z$[rbp] - 001a7 49 8d 94 10 48 - 1a 00 00 lea rdx, QWORD PTR [r8+rdx+6728] - 001af 4c 63 85 e4 00 - 00 00 movsxd r8, DWORD PTR n$8[rbp] - 001b6 4d 6b c0 60 imul r8, r8, 96 ; 00000060H - 001ba 4c 8b 8d 80 07 - 00 00 mov r9, QWORD PTR z$[rbp] - 001c1 4f 63 84 01 b0 - 46 00 00 movsxd r8, DWORD PTR [r9+r8+18096] - 001c9 4d 69 c0 90 06 - 00 00 imul r8, r8, 1680 ; 00000690H - 001d0 4c 8b 8d 80 07 - 00 00 mov r9, QWORD PTR z$[rbp] - 001d7 4f 8d 44 01 08 lea r8, QWORD PTR [r9+r8+8] - 001dc 48 89 44 24 30 mov QWORD PTR [rsp+48], rax - 001e1 8b 85 e4 00 00 - 00 mov eax, DWORD PTR n$8[rbp] - 001e7 89 44 24 28 mov DWORD PTR [rsp+40], eax - 001eb 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 001f0 4c 8b ca mov r9, rdx - 001f3 48 8d 55 50 lea rdx, QWORD PTR data$7[rbp] - 001f7 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 001fe e8 00 00 00 00 call stbi__jpeg_decode_block - 00203 85 c0 test eax, eax - 00205 75 07 jne SHORT $LN48@stbi__pars - -; 3308 : z, data, z->huff_dc + z->img_comp[n].hd, -; 3309 : z->huff_ac + ha, z->fast_ac[ha], n, -; 3310 : z->dequant[z->img_comp[n].tq])) -; 3311 : return 0; - - 00207 33 c0 xor eax, eax - 00209 e9 6f 0a 00 00 jmp $LN1@stbi__pars -$LN48@stbi__pars: - -; 3312 : z->idct_block_kernel(z->img_comp[n].data + - - 0020e 48 63 85 e4 00 - 00 00 movsxd rax, DWORD PTR n$8[rbp] - 00215 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00219 48 63 8d e4 00 - 00 00 movsxd rcx, DWORD PTR n$8[rbp] - 00220 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 00224 48 63 95 e4 00 - 00 00 movsxd rdx, DWORD PTR n$8[rbp] - 0022b 48 6b d2 60 imul rdx, rdx, 96 ; 00000060H - 0022f 4c 8b 85 80 07 - 00 00 mov r8, QWORD PTR z$[rbp] - 00236 41 8b 94 10 c4 - 46 00 00 mov edx, DWORD PTR [r8+rdx+18116] - 0023e 0f af 55 24 imul edx, DWORD PTR j$6[rbp] - 00242 c1 e2 03 shl edx, 3 - 00245 48 63 d2 movsxd rdx, edx - 00248 4c 8b 85 80 07 - 00 00 mov r8, QWORD PTR z$[rbp] - 0024f 49 8b 8c 08 d0 - 46 00 00 mov rcx, QWORD PTR [r8+rcx+18128] - 00257 48 03 ca add rcx, rdx - 0025a 8b 55 04 mov edx, DWORD PTR i$5[rbp] - 0025d c1 e2 03 shl edx, 3 - 00260 48 63 d2 movsxd rdx, edx - 00263 48 03 ca add rcx, rdx - 00266 4c 8d 45 50 lea r8, QWORD PTR data$7[rbp] - 0026a 48 8b 95 80 07 - 00 00 mov rdx, QWORD PTR z$[rbp] - 00271 8b 94 02 c4 46 - 00 00 mov edx, DWORD PTR [rdx+rax+18116] - 00278 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 0027f ff 90 70 48 00 - 00 call QWORD PTR [rax+18544] - 00285 90 npad 1 - -; 3313 : z->img_comp[n].w2 * j * 8 + -; 3314 : i * 8, -; 3315 : z->img_comp[n].w2, data); -; 3316 : // every data block is an MCU, so countdown the restart interval -; 3317 : if (--z->todo <= 0) { - - 00286 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 0028d 8b 80 6c 48 00 - 00 mov eax, DWORD PTR [rax+18540] - 00293 ff c8 dec eax - 00295 89 85 54 07 00 - 00 mov DWORD PTR tv190[rbp], eax - 0029b 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 002a2 8b 8d 54 07 00 - 00 mov ecx, DWORD PTR tv190[rbp] - 002a8 89 88 6c 48 00 - 00 mov DWORD PTR [rax+18540], ecx - 002ae 83 bd 54 07 00 - 00 00 cmp DWORD PTR tv190[rbp], 0 - 002b5 7f 5e jg SHORT $LN49@stbi__pars - -; 3318 : if (z->code_bits < 24) - - 002b7 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 002be 83 b8 24 48 00 - 00 18 cmp DWORD PTR [rax+18468], 24 - 002c5 7d 0d jge SHORT $LN50@stbi__pars - -; 3319 : stbi__grow_buffer_unsafe(z); - - 002c7 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 002ce e8 00 00 00 00 call stbi__grow_buffer_unsafe - 002d3 90 npad 1 -$LN50@stbi__pars: - -; 3320 : // if it's NOT a restart, then just bail, so we get corrupt data -; 3321 : // rather than no data -; 3322 : if (!STBI__RESTART(z->marker)) - - 002d4 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 002db 0f b6 80 28 48 - 00 00 movzx eax, BYTE PTR [rax+18472] - 002e2 3d d0 00 00 00 cmp eax, 208 ; 000000d0H - 002e7 7c 15 jl SHORT $LN52@stbi__pars - 002e9 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 002f0 0f b6 80 28 48 - 00 00 movzx eax, BYTE PTR [rax+18472] - 002f7 3d d7 00 00 00 cmp eax, 215 ; 000000d7H - 002fc 7e 0a jle SHORT $LN51@stbi__pars -$LN52@stbi__pars: - -; 3323 : return 1; - - 002fe b8 01 00 00 00 mov eax, 1 - 00303 e9 75 09 00 00 jmp $LN1@stbi__pars -$LN51@stbi__pars: - -; 3324 : stbi__jpeg_reset(z); - - 00308 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0030f e8 00 00 00 00 call stbi__jpeg_reset - 00314 90 npad 1 -$LN49@stbi__pars: - -; 3325 : } -; 3326 : } - - 00315 e9 f5 fd ff ff jmp $LN5@stbi__pars -$LN6@stbi__pars: - -; 3327 : } - - 0031a e9 d0 fd ff ff jmp $LN2@stbi__pars -$LN3@stbi__pars: - -; 3328 : return 1; - - 0031f b8 01 00 00 00 mov eax, 1 - 00324 e9 54 09 00 00 jmp $LN1@stbi__pars - -; 3329 : } else { // interleaved - - 00329 e9 aa 03 00 00 jmp $LN47@stbi__pars -$LN46@stbi__pars: - -; 3330 : int i, j, k, x, y; -; 3331 : STBI_SIMD_ALIGN(short, data[64]); -; 3332 : for (j = 0; j < z->img_mcu_y; ++j) { - - 0032e c7 85 84 01 00 - 00 00 00 00 00 mov DWORD PTR j$13[rbp], 0 - 00338 eb 0e jmp SHORT $LN10@stbi__pars -$LN8@stbi__pars: - 0033a 8b 85 84 01 00 - 00 mov eax, DWORD PTR j$13[rbp] - 00340 ff c0 inc eax - 00342 89 85 84 01 00 - 00 mov DWORD PTR j$13[rbp], eax -$LN10@stbi__pars: - 00348 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 0034f 8b 80 94 46 00 - 00 mov eax, DWORD PTR [rax+18068] - 00355 39 85 84 01 00 - 00 cmp DWORD PTR j$13[rbp], eax - 0035b 0f 8d 6d 03 00 - 00 jge $LN9@stbi__pars - -; 3333 : for (i = 0; i < z->img_mcu_x; ++i) { - - 00361 c7 85 64 01 00 - 00 00 00 00 00 mov DWORD PTR i$12[rbp], 0 - 0036b eb 0e jmp SHORT $LN13@stbi__pars -$LN11@stbi__pars: - 0036d 8b 85 64 01 00 - 00 mov eax, DWORD PTR i$12[rbp] - 00373 ff c0 inc eax - 00375 89 85 64 01 00 - 00 mov DWORD PTR i$12[rbp], eax -$LN13@stbi__pars: - 0037b 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 00382 8b 80 90 46 00 - 00 mov eax, DWORD PTR [rax+18064] - 00388 39 85 64 01 00 - 00 cmp DWORD PTR i$12[rbp], eax - 0038e 0f 8d 35 03 00 - 00 jge $LN12@stbi__pars - -; 3334 : // scan an interleaved mcu... process scan_n components in order -; 3335 : for (k = 0; k < z->scan_n; ++k) { - - 00394 c7 85 a4 01 00 - 00 00 00 00 00 mov DWORD PTR k$14[rbp], 0 - 0039e eb 0e jmp SHORT $LN16@stbi__pars -$LN14@stbi__pars: - 003a0 8b 85 a4 01 00 - 00 mov eax, DWORD PTR k$14[rbp] - 003a6 ff c0 inc eax - 003a8 89 85 a4 01 00 - 00 mov DWORD PTR k$14[rbp], eax -$LN16@stbi__pars: - 003ae 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 003b5 8b 80 54 48 00 - 00 mov eax, DWORD PTR [rax+18516] - 003bb 39 85 a4 01 00 - 00 cmp DWORD PTR k$14[rbp], eax - 003c1 0f 8d 6e 02 00 - 00 jge $LN15@stbi__pars - -; 3336 : int n = z->order[k]; - - 003c7 48 63 85 a4 01 - 00 00 movsxd rax, DWORD PTR k$14[rbp] - 003ce 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 003d5 8b 84 81 58 48 - 00 00 mov eax, DWORD PTR [rcx+rax*4+18520] - 003dc 89 85 a4 02 00 - 00 mov DWORD PTR n$18[rbp], eax - -; 3337 : // scan out an mcu's worth of this component; that's just determined -; 3338 : // by the basic H and V specified for the component -; 3339 : for (y = 0; y < z->img_comp[n].v; ++y) { - - 003e2 c7 85 e4 01 00 - 00 00 00 00 00 mov DWORD PTR y$16[rbp], 0 - 003ec eb 0e jmp SHORT $LN19@stbi__pars -$LN17@stbi__pars: - 003ee 8b 85 e4 01 00 - 00 mov eax, DWORD PTR y$16[rbp] - 003f4 ff c0 inc eax - 003f6 89 85 e4 01 00 - 00 mov DWORD PTR y$16[rbp], eax -$LN19@stbi__pars: - 003fc 48 63 85 a4 02 - 00 00 movsxd rax, DWORD PTR n$18[rbp] - 00403 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00407 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0040e 8b 84 01 a8 46 - 00 00 mov eax, DWORD PTR [rcx+rax+18088] - 00415 39 85 e4 01 00 - 00 cmp DWORD PTR y$16[rbp], eax - 0041b 0f 8d 0f 02 00 - 00 jge $LN18@stbi__pars - -; 3340 : for (x = 0; x < z->img_comp[n].h; ++x) { - - 00421 c7 85 c4 01 00 - 00 00 00 00 00 mov DWORD PTR x$15[rbp], 0 - 0042b eb 0e jmp SHORT $LN22@stbi__pars -$LN20@stbi__pars: - 0042d 8b 85 c4 01 00 - 00 mov eax, DWORD PTR x$15[rbp] - 00433 ff c0 inc eax - 00435 89 85 c4 01 00 - 00 mov DWORD PTR x$15[rbp], eax -$LN22@stbi__pars: - 0043b 48 63 85 a4 02 - 00 00 movsxd rax, DWORD PTR n$18[rbp] - 00442 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00446 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0044d 8b 84 01 a4 46 - 00 00 mov eax, DWORD PTR [rcx+rax+18084] - 00454 39 85 c4 01 00 - 00 cmp DWORD PTR x$15[rbp], eax - 0045a 0f 8d cb 01 00 - 00 jge $LN21@stbi__pars - -; 3341 : int x2 = - - 00460 48 63 85 a4 02 - 00 00 movsxd rax, DWORD PTR n$18[rbp] - 00467 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0046b 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00472 8b 95 64 01 00 - 00 mov edx, DWORD PTR i$12[rbp] - 00478 0f af 94 01 a4 - 46 00 00 imul edx, DWORD PTR [rcx+rax+18084] - 00480 8b c2 mov eax, edx - 00482 03 85 c4 01 00 - 00 add eax, DWORD PTR x$15[rbp] - 00488 c1 e0 03 shl eax, 3 - 0048b 89 85 c4 02 00 - 00 mov DWORD PTR x2$19[rbp], eax - -; 3342 : (i * z->img_comp[n].h + x) * -; 3343 : 8; -; 3344 : int y2 = - - 00491 48 63 85 a4 02 - 00 00 movsxd rax, DWORD PTR n$18[rbp] - 00498 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0049c 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 004a3 8b 95 84 01 00 - 00 mov edx, DWORD PTR j$13[rbp] - 004a9 0f af 94 01 a8 - 46 00 00 imul edx, DWORD PTR [rcx+rax+18088] - 004b1 8b c2 mov eax, edx - 004b3 03 85 e4 01 00 - 00 add eax, DWORD PTR y$16[rbp] - 004b9 c1 e0 03 shl eax, 3 - 004bc 89 85 e4 02 00 - 00 mov DWORD PTR y2$20[rbp], eax - -; 3345 : (j * z->img_comp[n].v + y) * -; 3346 : 8; -; 3347 : int ha = z->img_comp[n].ha; - - 004c2 48 63 85 a4 02 - 00 00 movsxd rax, DWORD PTR n$18[rbp] - 004c9 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 004cd 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 004d4 8b 84 01 b4 46 - 00 00 mov eax, DWORD PTR [rcx+rax+18100] - 004db 89 85 04 03 00 - 00 mov DWORD PTR ha$21[rbp], eax - -; 3348 : if (!stbi__jpeg_decode_block( - - 004e1 48 63 85 a4 02 - 00 00 movsxd rax, DWORD PTR n$18[rbp] - 004e8 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 004ec 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 004f3 48 63 84 01 ac - 46 00 00 movsxd rax, DWORD PTR [rcx+rax+18092] - 004fb 48 69 c0 80 00 - 00 00 imul rax, rax, 128 ; 00000080H - 00502 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00509 48 8d 84 01 88 - 34 00 00 lea rax, QWORD PTR [rcx+rax+13448] - 00511 48 63 8d 04 03 - 00 00 movsxd rcx, DWORD PTR ha$21[rbp] - 00518 48 69 c9 00 04 - 00 00 imul rcx, rcx, 1024 ; 00000400H - 0051f 48 8b 95 80 07 - 00 00 mov rdx, QWORD PTR z$[rbp] - 00526 48 8d 8c 0a 88 - 36 00 00 lea rcx, QWORD PTR [rdx+rcx+13960] - 0052e 48 63 95 04 03 - 00 00 movsxd rdx, DWORD PTR ha$21[rbp] - 00535 48 69 d2 90 06 - 00 00 imul rdx, rdx, 1680 ; 00000690H - 0053c 4c 8b 85 80 07 - 00 00 mov r8, QWORD PTR z$[rbp] - 00543 49 8d 94 10 48 - 1a 00 00 lea rdx, QWORD PTR [r8+rdx+6728] - 0054b 4c 63 85 a4 02 - 00 00 movsxd r8, DWORD PTR n$18[rbp] - 00552 4d 6b c0 60 imul r8, r8, 96 ; 00000060H - 00556 4c 8b 8d 80 07 - 00 00 mov r9, QWORD PTR z$[rbp] - 0055d 4f 63 84 01 b0 - 46 00 00 movsxd r8, DWORD PTR [r9+r8+18096] - 00565 4d 69 c0 90 06 - 00 00 imul r8, r8, 1680 ; 00000690H - 0056c 4c 8b 8d 80 07 - 00 00 mov r9, QWORD PTR z$[rbp] - 00573 4f 8d 44 01 08 lea r8, QWORD PTR [r9+r8+8] - 00578 48 89 44 24 30 mov QWORD PTR [rsp+48], rax - 0057d 8b 85 a4 02 00 - 00 mov eax, DWORD PTR n$18[rbp] - 00583 89 44 24 28 mov DWORD PTR [rsp+40], eax - 00587 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 0058c 4c 8b ca mov r9, rdx - 0058f 48 8d 95 10 02 - 00 00 lea rdx, QWORD PTR data$17[rbp] - 00596 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0059d e8 00 00 00 00 call stbi__jpeg_decode_block - 005a2 85 c0 test eax, eax - 005a4 75 07 jne SHORT $LN53@stbi__pars - -; 3349 : z, data, -; 3350 : z->huff_dc + -; 3351 : z->img_comp[n] -; 3352 : .hd, -; 3353 : z->huff_ac + ha, -; 3354 : z->fast_ac[ha], n, -; 3355 : z->dequant[z->img_comp[n] -; 3356 : .tq])) -; 3357 : return 0; - - 005a6 33 c0 xor eax, eax - 005a8 e9 d0 06 00 00 jmp $LN1@stbi__pars -$LN53@stbi__pars: - -; 3358 : z->idct_block_kernel( - - 005ad 48 63 85 a4 02 - 00 00 movsxd rax, DWORD PTR n$18[rbp] - 005b4 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 005b8 48 63 8d a4 02 - 00 00 movsxd rcx, DWORD PTR n$18[rbp] - 005bf 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 005c3 48 63 95 a4 02 - 00 00 movsxd rdx, DWORD PTR n$18[rbp] - 005ca 48 6b d2 60 imul rdx, rdx, 96 ; 00000060H - 005ce 4c 8b 85 80 07 - 00 00 mov r8, QWORD PTR z$[rbp] - 005d5 41 8b 94 10 c4 - 46 00 00 mov edx, DWORD PTR [r8+rdx+18116] - 005dd 0f af 95 e4 02 - 00 00 imul edx, DWORD PTR y2$20[rbp] - 005e4 48 63 d2 movsxd rdx, edx - 005e7 4c 8b 85 80 07 - 00 00 mov r8, QWORD PTR z$[rbp] - 005ee 49 8b 8c 08 d0 - 46 00 00 mov rcx, QWORD PTR [r8+rcx+18128] - 005f6 48 03 ca add rcx, rdx - 005f9 48 63 95 c4 02 - 00 00 movsxd rdx, DWORD PTR x2$19[rbp] - 00600 48 03 ca add rcx, rdx - 00603 4c 8d 85 10 02 - 00 00 lea r8, QWORD PTR data$17[rbp] - 0060a 48 8b 95 80 07 - 00 00 mov rdx, QWORD PTR z$[rbp] - 00611 8b 94 02 c4 46 - 00 00 mov edx, DWORD PTR [rdx+rax+18116] - 00618 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 0061f ff 90 70 48 00 - 00 call QWORD PTR [rax+18544] - 00625 90 npad 1 - -; 3359 : z->img_comp[n].data + -; 3360 : z->img_comp[n].w2 * -; 3361 : y2 + -; 3362 : x2, -; 3363 : z->img_comp[n].w2, data); -; 3364 : } - - 00626 e9 02 fe ff ff jmp $LN20@stbi__pars -$LN21@stbi__pars: - -; 3365 : } - - 0062b e9 be fd ff ff jmp $LN17@stbi__pars -$LN18@stbi__pars: - -; 3366 : } - - 00630 e9 6b fd ff ff jmp $LN14@stbi__pars -$LN15@stbi__pars: - -; 3367 : // after all interleaved components, that's an interleaved MCU, -; 3368 : // so now count down the restart interval -; 3369 : if (--z->todo <= 0) { - - 00635 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 0063c 8b 80 6c 48 00 - 00 mov eax, DWORD PTR [rax+18540] - 00642 ff c8 dec eax - 00644 89 85 54 07 00 - 00 mov DWORD PTR tv311[rbp], eax - 0064a 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 00651 8b 8d 54 07 00 - 00 mov ecx, DWORD PTR tv311[rbp] - 00657 89 88 6c 48 00 - 00 mov DWORD PTR [rax+18540], ecx - 0065d 83 bd 54 07 00 - 00 00 cmp DWORD PTR tv311[rbp], 0 - 00664 7f 5e jg SHORT $LN54@stbi__pars - -; 3370 : if (z->code_bits < 24) - - 00666 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 0066d 83 b8 24 48 00 - 00 18 cmp DWORD PTR [rax+18468], 24 - 00674 7d 0d jge SHORT $LN55@stbi__pars - -; 3371 : stbi__grow_buffer_unsafe(z); - - 00676 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0067d e8 00 00 00 00 call stbi__grow_buffer_unsafe - 00682 90 npad 1 -$LN55@stbi__pars: - -; 3372 : if (!STBI__RESTART(z->marker)) - - 00683 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 0068a 0f b6 80 28 48 - 00 00 movzx eax, BYTE PTR [rax+18472] - 00691 3d d0 00 00 00 cmp eax, 208 ; 000000d0H - 00696 7c 15 jl SHORT $LN57@stbi__pars - 00698 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 0069f 0f b6 80 28 48 - 00 00 movzx eax, BYTE PTR [rax+18472] - 006a6 3d d7 00 00 00 cmp eax, 215 ; 000000d7H - 006ab 7e 0a jle SHORT $LN56@stbi__pars -$LN57@stbi__pars: - -; 3373 : return 1; - - 006ad b8 01 00 00 00 mov eax, 1 - 006b2 e9 c6 05 00 00 jmp $LN1@stbi__pars -$LN56@stbi__pars: - -; 3374 : stbi__jpeg_reset(z); - - 006b7 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 006be e8 00 00 00 00 call stbi__jpeg_reset - 006c3 90 npad 1 -$LN54@stbi__pars: - -; 3375 : } -; 3376 : } - - 006c4 e9 a4 fc ff ff jmp $LN11@stbi__pars -$LN12@stbi__pars: - -; 3377 : } - - 006c9 e9 6c fc ff ff jmp $LN8@stbi__pars -$LN9@stbi__pars: - -; 3378 : return 1; - - 006ce b8 01 00 00 00 mov eax, 1 - 006d3 e9 a5 05 00 00 jmp $LN1@stbi__pars -$LN47@stbi__pars: - -; 3379 : } -; 3380 : } else { - - 006d8 e9 a0 05 00 00 jmp $LN45@stbi__pars -$LN44@stbi__pars: - -; 3381 : if (z->scan_n == 1) { - - 006dd 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 006e4 83 b8 54 48 00 - 00 01 cmp DWORD PTR [rax+18516], 1 - 006eb 0f 85 a5 02 00 - 00 jne $LN58@stbi__pars - -; 3382 : int i, j; -; 3383 : int n = z->order[0]; - - 006f1 b8 04 00 00 00 mov eax, 4 - 006f6 48 6b c0 00 imul rax, rax, 0 - 006fa 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00701 8b 84 01 58 48 - 00 00 mov eax, DWORD PTR [rcx+rax+18520] - 00708 89 85 64 03 00 - 00 mov DWORD PTR n$24[rbp], eax - -; 3384 : // non-interleaved data, we just need to process one block at a time, -; 3385 : // in trivial scanline order -; 3386 : // number of blocks to do just depends on how many actual "pixels" this -; 3387 : // component has, independent of interleaved MCU blocking and such -; 3388 : int w = (z->img_comp[n].x + 7) >> 3; - - 0070e 48 63 85 64 03 - 00 00 movsxd rax, DWORD PTR n$24[rbp] - 00715 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00719 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00720 8b 84 01 bc 46 - 00 00 mov eax, DWORD PTR [rcx+rax+18108] - 00727 83 c0 07 add eax, 7 - 0072a c1 f8 03 sar eax, 3 - 0072d 89 85 84 03 00 - 00 mov DWORD PTR w$25[rbp], eax - -; 3389 : int h = (z->img_comp[n].y + 7) >> 3; - - 00733 48 63 85 64 03 - 00 00 movsxd rax, DWORD PTR n$24[rbp] - 0073a 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0073e 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00745 8b 84 01 c0 46 - 00 00 mov eax, DWORD PTR [rcx+rax+18112] - 0074c 83 c0 07 add eax, 7 - 0074f c1 f8 03 sar eax, 3 - 00752 89 85 a4 03 00 - 00 mov DWORD PTR h$26[rbp], eax - -; 3390 : for (j = 0; j < h; ++j) { - - 00758 c7 85 44 03 00 - 00 00 00 00 00 mov DWORD PTR j$23[rbp], 0 - 00762 eb 0e jmp SHORT $LN25@stbi__pars -$LN23@stbi__pars: - 00764 8b 85 44 03 00 - 00 mov eax, DWORD PTR j$23[rbp] - 0076a ff c0 inc eax - 0076c 89 85 44 03 00 - 00 mov DWORD PTR j$23[rbp], eax -$LN25@stbi__pars: - 00772 8b 85 a4 03 00 - 00 mov eax, DWORD PTR h$26[rbp] - 00778 39 85 44 03 00 - 00 cmp DWORD PTR j$23[rbp], eax - 0077e 0f 8d 03 02 00 - 00 jge $LN24@stbi__pars - -; 3391 : for (i = 0; i < w; ++i) { - - 00784 c7 85 24 03 00 - 00 00 00 00 00 mov DWORD PTR i$22[rbp], 0 - 0078e eb 0e jmp SHORT $LN28@stbi__pars -$LN26@stbi__pars: - 00790 8b 85 24 03 00 - 00 mov eax, DWORD PTR i$22[rbp] - 00796 ff c0 inc eax - 00798 89 85 24 03 00 - 00 mov DWORD PTR i$22[rbp], eax -$LN28@stbi__pars: - 0079e 8b 85 84 03 00 - 00 mov eax, DWORD PTR w$25[rbp] - 007a4 39 85 24 03 00 - 00 cmp DWORD PTR i$22[rbp], eax - 007aa 0f 8d d2 01 00 - 00 jge $LN27@stbi__pars - -; 3392 : short *data = z->img_comp[n].coeff + - - 007b0 48 63 85 64 03 - 00 00 movsxd rax, DWORD PTR n$24[rbp] - 007b7 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 007bb 48 63 8d 64 03 - 00 00 movsxd rcx, DWORD PTR n$24[rbp] - 007c2 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 007c6 48 8b 95 80 07 - 00 00 mov rdx, QWORD PTR z$[rbp] - 007cd 44 8b 85 44 03 - 00 00 mov r8d, DWORD PTR j$23[rbp] - 007d4 44 0f af 84 0a - f8 46 00 00 imul r8d, DWORD PTR [rdx+rcx+18168] - 007dd 41 8b c8 mov ecx, r8d - 007e0 8b 95 24 03 00 - 00 mov edx, DWORD PTR i$22[rbp] - 007e6 03 d1 add edx, ecx - 007e8 8b ca mov ecx, edx - 007ea 6b c9 40 imul ecx, ecx, 64 ; 00000040H - 007ed 48 63 c9 movsxd rcx, ecx - 007f0 48 8b 95 80 07 - 00 00 mov rdx, QWORD PTR z$[rbp] - 007f7 48 8b 84 02 f0 - 46 00 00 mov rax, QWORD PTR [rdx+rax+18160] - 007ff 48 8d 04 48 lea rax, QWORD PTR [rax+rcx*2] - 00803 48 89 85 c8 03 - 00 00 mov QWORD PTR data$27[rbp], rax - -; 3393 : 64 * (i + j * z->img_comp[n].coeff_w); -; 3394 : if (z->spec_start == 0) { - - 0080a 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 00811 83 b8 34 48 00 - 00 00 cmp DWORD PTR [rax+18484], 0 - 00818 75 57 jne SHORT $LN60@stbi__pars - -; 3395 : if (!stbi__jpeg_decode_block_prog_dc( - - 0081a 48 63 85 64 03 - 00 00 movsxd rax, DWORD PTR n$24[rbp] - 00821 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00825 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0082c 48 63 84 01 b0 - 46 00 00 movsxd rax, DWORD PTR [rcx+rax+18096] - 00834 48 69 c0 90 06 - 00 00 imul rax, rax, 1680 ; 00000690H - 0083b 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00842 48 8d 44 01 08 lea rax, QWORD PTR [rcx+rax+8] - 00847 44 8b 8d 64 03 - 00 00 mov r9d, DWORD PTR n$24[rbp] - 0084e 4c 8b c0 mov r8, rax - 00851 48 8b 95 c8 03 - 00 00 mov rdx, QWORD PTR data$27[rbp] - 00858 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 0085f e8 00 00 00 00 call stbi__jpeg_decode_block_prog_dc - 00864 85 c0 test eax, eax - 00866 75 07 jne SHORT $LN62@stbi__pars - -; 3396 : z, data, &z->huff_dc[z->img_comp[n].hd], -; 3397 : n)) -; 3398 : return 0; - - 00868 33 c0 xor eax, eax - 0086a e9 0e 04 00 00 jmp $LN1@stbi__pars -$LN62@stbi__pars: - -; 3399 : } else { - - 0086f eb 7d jmp SHORT $LN61@stbi__pars -$LN60@stbi__pars: - -; 3400 : int ha = z->img_comp[n].ha; - - 00871 48 63 85 64 03 - 00 00 movsxd rax, DWORD PTR n$24[rbp] - 00878 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0087c 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00883 8b 84 01 b4 46 - 00 00 mov eax, DWORD PTR [rcx+rax+18100] - 0088a 89 85 e4 03 00 - 00 mov DWORD PTR ha$28[rbp], eax - -; 3401 : if (!stbi__jpeg_decode_block_prog_ac( - - 00890 48 63 85 e4 03 - 00 00 movsxd rax, DWORD PTR ha$28[rbp] - 00897 48 69 c0 00 04 - 00 00 imul rax, rax, 1024 ; 00000400H - 0089e 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 008a5 48 8d 84 01 88 - 36 00 00 lea rax, QWORD PTR [rcx+rax+13960] - 008ad 48 63 8d e4 03 - 00 00 movsxd rcx, DWORD PTR ha$28[rbp] - 008b4 48 69 c9 90 06 - 00 00 imul rcx, rcx, 1680 ; 00000690H - 008bb 48 8b 95 80 07 - 00 00 mov rdx, QWORD PTR z$[rbp] - 008c2 48 8d 8c 0a 48 - 1a 00 00 lea rcx, QWORD PTR [rdx+rcx+6728] - 008ca 4c 8b c8 mov r9, rax - 008cd 4c 8b c1 mov r8, rcx - 008d0 48 8b 95 c8 03 - 00 00 mov rdx, QWORD PTR data$27[rbp] - 008d7 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 008de e8 00 00 00 00 call stbi__jpeg_decode_block_prog_ac - 008e3 85 c0 test eax, eax - 008e5 75 07 jne SHORT $LN63@stbi__pars - -; 3402 : z, data, &z->huff_ac[ha], -; 3403 : z->fast_ac[ha])) -; 3404 : return 0; - - 008e7 33 c0 xor eax, eax - 008e9 e9 8f 03 00 00 jmp $LN1@stbi__pars -$LN63@stbi__pars: -$LN61@stbi__pars: - -; 3405 : } -; 3406 : // every data block is an MCU, so countdown the restart interval -; 3407 : if (--z->todo <= 0) { - - 008ee 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 008f5 8b 80 6c 48 00 - 00 mov eax, DWORD PTR [rax+18540] - 008fb ff c8 dec eax - 008fd 89 85 54 07 00 - 00 mov DWORD PTR tv400[rbp], eax - 00903 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 0090a 8b 8d 54 07 00 - 00 mov ecx, DWORD PTR tv400[rbp] - 00910 89 88 6c 48 00 - 00 mov DWORD PTR [rax+18540], ecx - 00916 83 bd 54 07 00 - 00 00 cmp DWORD PTR tv400[rbp], 0 - 0091d 7f 5e jg SHORT $LN64@stbi__pars - -; 3408 : if (z->code_bits < 24) - - 0091f 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 00926 83 b8 24 48 00 - 00 18 cmp DWORD PTR [rax+18468], 24 - 0092d 7d 0d jge SHORT $LN65@stbi__pars - -; 3409 : stbi__grow_buffer_unsafe(z); - - 0092f 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00936 e8 00 00 00 00 call stbi__grow_buffer_unsafe - 0093b 90 npad 1 -$LN65@stbi__pars: - -; 3410 : if (!STBI__RESTART(z->marker)) - - 0093c 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 00943 0f b6 80 28 48 - 00 00 movzx eax, BYTE PTR [rax+18472] - 0094a 3d d0 00 00 00 cmp eax, 208 ; 000000d0H - 0094f 7c 15 jl SHORT $LN67@stbi__pars - 00951 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 00958 0f b6 80 28 48 - 00 00 movzx eax, BYTE PTR [rax+18472] - 0095f 3d d7 00 00 00 cmp eax, 215 ; 000000d7H - 00964 7e 0a jle SHORT $LN66@stbi__pars -$LN67@stbi__pars: - -; 3411 : return 1; - - 00966 b8 01 00 00 00 mov eax, 1 - 0096b e9 0d 03 00 00 jmp $LN1@stbi__pars -$LN66@stbi__pars: - -; 3412 : stbi__jpeg_reset(z); - - 00970 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00977 e8 00 00 00 00 call stbi__jpeg_reset - 0097c 90 npad 1 -$LN64@stbi__pars: - -; 3413 : } -; 3414 : } - - 0097d e9 0e fe ff ff jmp $LN26@stbi__pars -$LN27@stbi__pars: - -; 3415 : } - - 00982 e9 dd fd ff ff jmp $LN23@stbi__pars -$LN24@stbi__pars: - -; 3416 : return 1; - - 00987 b8 01 00 00 00 mov eax, 1 - 0098c e9 ec 02 00 00 jmp $LN1@stbi__pars - -; 3417 : } else { // interleaved - - 00991 e9 e7 02 00 00 jmp $LN59@stbi__pars -$LN58@stbi__pars: - -; 3418 : int i, j, k, x, y; -; 3419 : for (j = 0; j < z->img_mcu_y; ++j) { - - 00996 c7 85 24 04 00 - 00 00 00 00 00 mov DWORD PTR j$30[rbp], 0 - 009a0 eb 0e jmp SHORT $LN31@stbi__pars -$LN29@stbi__pars: - 009a2 8b 85 24 04 00 - 00 mov eax, DWORD PTR j$30[rbp] - 009a8 ff c0 inc eax - 009aa 89 85 24 04 00 - 00 mov DWORD PTR j$30[rbp], eax -$LN31@stbi__pars: - 009b0 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 009b7 8b 80 94 46 00 - 00 mov eax, DWORD PTR [rax+18068] - 009bd 39 85 24 04 00 - 00 cmp DWORD PTR j$30[rbp], eax - 009c3 0f 8d af 02 00 - 00 jge $LN30@stbi__pars - -; 3420 : for (i = 0; i < z->img_mcu_x; ++i) { - - 009c9 c7 85 04 04 00 - 00 00 00 00 00 mov DWORD PTR i$29[rbp], 0 - 009d3 eb 0e jmp SHORT $LN34@stbi__pars -$LN32@stbi__pars: - 009d5 8b 85 04 04 00 - 00 mov eax, DWORD PTR i$29[rbp] - 009db ff c0 inc eax - 009dd 89 85 04 04 00 - 00 mov DWORD PTR i$29[rbp], eax -$LN34@stbi__pars: - 009e3 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 009ea 8b 80 90 46 00 - 00 mov eax, DWORD PTR [rax+18064] - 009f0 39 85 04 04 00 - 00 cmp DWORD PTR i$29[rbp], eax - 009f6 0f 8d 77 02 00 - 00 jge $LN33@stbi__pars - -; 3421 : // scan an interleaved mcu... process scan_n components in order -; 3422 : for (k = 0; k < z->scan_n; ++k) { - - 009fc c7 85 44 04 00 - 00 00 00 00 00 mov DWORD PTR k$31[rbp], 0 - 00a06 eb 0e jmp SHORT $LN37@stbi__pars -$LN35@stbi__pars: - 00a08 8b 85 44 04 00 - 00 mov eax, DWORD PTR k$31[rbp] - 00a0e ff c0 inc eax - 00a10 89 85 44 04 00 - 00 mov DWORD PTR k$31[rbp], eax -$LN37@stbi__pars: - 00a16 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 00a1d 8b 80 54 48 00 - 00 mov eax, DWORD PTR [rax+18516] - 00a23 39 85 44 04 00 - 00 cmp DWORD PTR k$31[rbp], eax - 00a29 0f 8d b3 01 00 - 00 jge $LN36@stbi__pars - -; 3423 : int n = z->order[k]; - - 00a2f 48 63 85 44 04 - 00 00 movsxd rax, DWORD PTR k$31[rbp] - 00a36 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00a3d 8b 84 81 58 48 - 00 00 mov eax, DWORD PTR [rcx+rax*4+18520] - 00a44 89 85 a4 04 00 - 00 mov DWORD PTR n$34[rbp], eax - -; 3424 : // scan out an mcu's worth of this component; that's just determined -; 3425 : // by the basic H and V specified for the component -; 3426 : for (y = 0; y < z->img_comp[n].v; ++y) { - - 00a4a c7 85 84 04 00 - 00 00 00 00 00 mov DWORD PTR y$33[rbp], 0 - 00a54 eb 0e jmp SHORT $LN40@stbi__pars -$LN38@stbi__pars: - 00a56 8b 85 84 04 00 - 00 mov eax, DWORD PTR y$33[rbp] - 00a5c ff c0 inc eax - 00a5e 89 85 84 04 00 - 00 mov DWORD PTR y$33[rbp], eax -$LN40@stbi__pars: - 00a64 48 63 85 a4 04 - 00 00 movsxd rax, DWORD PTR n$34[rbp] - 00a6b 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00a6f 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00a76 8b 84 01 a8 46 - 00 00 mov eax, DWORD PTR [rcx+rax+18088] - 00a7d 39 85 84 04 00 - 00 cmp DWORD PTR y$33[rbp], eax - 00a83 0f 8d 54 01 00 - 00 jge $LN39@stbi__pars - -; 3427 : for (x = 0; x < z->img_comp[n].h; ++x) { - - 00a89 c7 85 64 04 00 - 00 00 00 00 00 mov DWORD PTR x$32[rbp], 0 - 00a93 eb 0e jmp SHORT $LN43@stbi__pars -$LN41@stbi__pars: - 00a95 8b 85 64 04 00 - 00 mov eax, DWORD PTR x$32[rbp] - 00a9b ff c0 inc eax - 00a9d 89 85 64 04 00 - 00 mov DWORD PTR x$32[rbp], eax -$LN43@stbi__pars: - 00aa3 48 63 85 a4 04 - 00 00 movsxd rax, DWORD PTR n$34[rbp] - 00aaa 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00aae 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00ab5 8b 84 01 a4 46 - 00 00 mov eax, DWORD PTR [rcx+rax+18084] - 00abc 39 85 64 04 00 - 00 cmp DWORD PTR x$32[rbp], eax - 00ac2 0f 8d 10 01 00 - 00 jge $LN42@stbi__pars - -; 3428 : int x2 = (i * z->img_comp[n].h + x); - - 00ac8 48 63 85 a4 04 - 00 00 movsxd rax, DWORD PTR n$34[rbp] - 00acf 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00ad3 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00ada 8b 95 04 04 00 - 00 mov edx, DWORD PTR i$29[rbp] - 00ae0 0f af 94 01 a4 - 46 00 00 imul edx, DWORD PTR [rcx+rax+18084] - 00ae8 8b c2 mov eax, edx - 00aea 03 85 64 04 00 - 00 add eax, DWORD PTR x$32[rbp] - 00af0 89 85 c4 04 00 - 00 mov DWORD PTR x2$35[rbp], eax - -; 3429 : int y2 = (j * z->img_comp[n].v + y); - - 00af6 48 63 85 a4 04 - 00 00 movsxd rax, DWORD PTR n$34[rbp] - 00afd 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00b01 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00b08 8b 95 24 04 00 - 00 mov edx, DWORD PTR j$30[rbp] - 00b0e 0f af 94 01 a8 - 46 00 00 imul edx, DWORD PTR [rcx+rax+18088] - 00b16 8b c2 mov eax, edx - 00b18 03 85 84 04 00 - 00 add eax, DWORD PTR y$33[rbp] - 00b1e 89 85 e4 04 00 - 00 mov DWORD PTR y2$36[rbp], eax - -; 3430 : short *data = - - 00b24 48 63 85 a4 04 - 00 00 movsxd rax, DWORD PTR n$34[rbp] - 00b2b 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00b2f 48 63 8d a4 04 - 00 00 movsxd rcx, DWORD PTR n$34[rbp] - 00b36 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H - 00b3a 48 8b 95 80 07 - 00 00 mov rdx, QWORD PTR z$[rbp] - 00b41 44 8b 85 e4 04 - 00 00 mov r8d, DWORD PTR y2$36[rbp] - 00b48 44 0f af 84 0a - f8 46 00 00 imul r8d, DWORD PTR [rdx+rcx+18168] - 00b51 41 8b c8 mov ecx, r8d - 00b54 8b 95 c4 04 00 - 00 mov edx, DWORD PTR x2$35[rbp] - 00b5a 03 d1 add edx, ecx - 00b5c 8b ca mov ecx, edx - 00b5e 6b c9 40 imul ecx, ecx, 64 ; 00000040H - 00b61 48 63 c9 movsxd rcx, ecx - 00b64 48 8b 95 80 07 - 00 00 mov rdx, QWORD PTR z$[rbp] - 00b6b 48 8b 84 02 f0 - 46 00 00 mov rax, QWORD PTR [rdx+rax+18160] - 00b73 48 8d 04 48 lea rax, QWORD PTR [rax+rcx*2] - 00b77 48 89 85 08 05 - 00 00 mov QWORD PTR data$37[rbp], rax - -; 3431 : z->img_comp[n].coeff + -; 3432 : 64 * (x2 + -; 3433 : y2 * z->img_comp[n] -; 3434 : .coeff_w); -; 3435 : if (!stbi__jpeg_decode_block_prog_dc( - - 00b7e 48 63 85 a4 04 - 00 00 movsxd rax, DWORD PTR n$34[rbp] - 00b85 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00b89 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00b90 48 63 84 01 b0 - 46 00 00 movsxd rax, DWORD PTR [rcx+rax+18096] - 00b98 48 69 c0 90 06 - 00 00 imul rax, rax, 1680 ; 00000690H - 00b9f 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00ba6 48 8d 44 01 08 lea rax, QWORD PTR [rcx+rax+8] - 00bab 44 8b 8d a4 04 - 00 00 mov r9d, DWORD PTR n$34[rbp] - 00bb2 4c 8b c0 mov r8, rax - 00bb5 48 8b 95 08 05 - 00 00 mov rdx, QWORD PTR data$37[rbp] - 00bbc 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00bc3 e8 00 00 00 00 call stbi__jpeg_decode_block_prog_dc - 00bc8 85 c0 test eax, eax - 00bca 75 07 jne SHORT $LN68@stbi__pars - -; 3436 : z, data, -; 3437 : &z->huff_dc[z->img_comp[n] -; 3438 : .hd], -; 3439 : n)) -; 3440 : return 0; - - 00bcc 33 c0 xor eax, eax - 00bce e9 aa 00 00 00 jmp $LN1@stbi__pars -$LN68@stbi__pars: - -; 3441 : } - - 00bd3 e9 bd fe ff ff jmp $LN41@stbi__pars -$LN42@stbi__pars: - -; 3442 : } - - 00bd8 e9 79 fe ff ff jmp $LN38@stbi__pars -$LN39@stbi__pars: - -; 3443 : } - - 00bdd e9 26 fe ff ff jmp $LN35@stbi__pars -$LN36@stbi__pars: - -; 3444 : // after all interleaved components, that's an interleaved MCU, -; 3445 : // so now count down the restart interval -; 3446 : if (--z->todo <= 0) { - - 00be2 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 00be9 8b 80 6c 48 00 - 00 mov eax, DWORD PTR [rax+18540] - 00bef ff c8 dec eax - 00bf1 89 85 54 07 00 - 00 mov DWORD PTR tv518[rbp], eax - 00bf7 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 00bfe 8b 8d 54 07 00 - 00 mov ecx, DWORD PTR tv518[rbp] - 00c04 89 88 6c 48 00 - 00 mov DWORD PTR [rax+18540], ecx - 00c0a 83 bd 54 07 00 - 00 00 cmp DWORD PTR tv518[rbp], 0 - 00c11 7f 5b jg SHORT $LN69@stbi__pars - -; 3447 : if (z->code_bits < 24) - - 00c13 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 00c1a 83 b8 24 48 00 - 00 18 cmp DWORD PTR [rax+18468], 24 - 00c21 7d 0d jge SHORT $LN70@stbi__pars - -; 3448 : stbi__grow_buffer_unsafe(z); - - 00c23 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00c2a e8 00 00 00 00 call stbi__grow_buffer_unsafe - 00c2f 90 npad 1 -$LN70@stbi__pars: - -; 3449 : if (!STBI__RESTART(z->marker)) - - 00c30 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 00c37 0f b6 80 28 48 - 00 00 movzx eax, BYTE PTR [rax+18472] - 00c3e 3d d0 00 00 00 cmp eax, 208 ; 000000d0H - 00c43 7c 15 jl SHORT $LN72@stbi__pars - 00c45 48 8b 85 80 07 - 00 00 mov rax, QWORD PTR z$[rbp] - 00c4c 0f b6 80 28 48 - 00 00 movzx eax, BYTE PTR [rax+18472] - 00c53 3d d7 00 00 00 cmp eax, 215 ; 000000d7H - 00c58 7e 07 jle SHORT $LN71@stbi__pars -$LN72@stbi__pars: - -; 3450 : return 1; - - 00c5a b8 01 00 00 00 mov eax, 1 - 00c5f eb 1c jmp SHORT $LN1@stbi__pars -$LN71@stbi__pars: - -; 3451 : stbi__jpeg_reset(z); - - 00c61 48 8b 8d 80 07 - 00 00 mov rcx, QWORD PTR z$[rbp] - 00c68 e8 00 00 00 00 call stbi__jpeg_reset - 00c6d 90 npad 1 -$LN69@stbi__pars: - -; 3452 : } -; 3453 : } - - 00c6e e9 62 fd ff ff jmp $LN32@stbi__pars -$LN33@stbi__pars: - -; 3454 : } - - 00c73 e9 2a fd ff ff jmp $LN29@stbi__pars -$LN30@stbi__pars: - -; 3455 : return 1; - - 00c78 b8 01 00 00 00 mov eax, 1 -$LN59@stbi__pars: -$LN45@stbi__pars: -$LN1@stbi__pars: - -; 3456 : } -; 3457 : } -; 3458 : } - - 00c7d 48 8b f8 mov rdi, rax - 00c80 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] - 00c84 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__parse_entropy_coded_data$rtcFrameData - 00c8b e8 00 00 00 00 call _RTC_CheckStackVars - 00c90 48 8b c7 mov rax, rdi - 00c93 48 8b 8d 58 07 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00c9a 48 33 cd xor rcx, rbp - 00c9d e8 00 00 00 00 call __security_check_cookie - 00ca2 48 8d a5 68 07 - 00 00 lea rsp, QWORD PTR [rbp+1896] - 00ca9 5f pop rdi - 00caa 5d pop rbp - 00cab c3 ret 0 -stbi__parse_entropy_coded_data ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__jpeg_reset -_TEXT SEGMENT -tv88 = 192 -j$ = 240 -stbi__jpeg_reset PROC ; COMDAT - -; 3277 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 3278 : j->code_bits = 0; - - 00020 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR j$[rbp] - 00027 c7 80 24 48 00 - 00 00 00 00 00 mov DWORD PTR [rax+18468], 0 - -; 3279 : j->code_buffer = 0; - - 00031 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR j$[rbp] - 00038 c7 80 20 48 00 - 00 00 00 00 00 mov DWORD PTR [rax+18464], 0 - -; 3280 : j->nomore = 0; - - 00042 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR j$[rbp] - 00049 c7 80 2c 48 00 - 00 00 00 00 00 mov DWORD PTR [rax+18476], 0 - -; 3281 : j->img_comp[0].dc_pred = j->img_comp[1].dc_pred = j->img_comp[2].dc_pred = - - 00053 b8 60 00 00 00 mov eax, 96 ; 00000060H - 00058 48 6b c0 03 imul rax, rax, 3 - 0005c 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00063 c7 84 01 b8 46 - 00 00 00 00 00 - 00 mov DWORD PTR [rcx+rax+18104], 0 - 0006e b8 60 00 00 00 mov eax, 96 ; 00000060H - 00073 48 6b c0 02 imul rax, rax, 2 - 00077 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR j$[rbp] - 0007e c7 84 01 b8 46 - 00 00 00 00 00 - 00 mov DWORD PTR [rcx+rax+18104], 0 - 00089 b8 60 00 00 00 mov eax, 96 ; 00000060H - 0008e 48 6b c0 01 imul rax, rax, 1 - 00092 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00099 c7 84 01 b8 46 - 00 00 00 00 00 - 00 mov DWORD PTR [rcx+rax+18104], 0 - 000a4 b8 60 00 00 00 mov eax, 96 ; 00000060H - 000a9 48 6b c0 00 imul rax, rax, 0 - 000ad 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR j$[rbp] - 000b4 c7 84 01 b8 46 - 00 00 00 00 00 - 00 mov DWORD PTR [rcx+rax+18104], 0 - -; 3282 : j->img_comp[3].dc_pred = 0; -; 3283 : j->marker = STBI__MARKER_none; - - 000bf 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR j$[rbp] - 000c6 c6 80 28 48 00 - 00 ff mov BYTE PTR [rax+18472], 255 ; 000000ffH - -; 3284 : j->todo = j->restart_interval ? j->restart_interval : 0x7fffffff; - - 000cd 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR j$[rbp] - 000d4 83 b8 68 48 00 - 00 00 cmp DWORD PTR [rax+18536], 0 - 000db 74 15 je SHORT $LN3@stbi__jpeg - 000dd 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR j$[rbp] - 000e4 8b 80 68 48 00 - 00 mov eax, DWORD PTR [rax+18536] - 000ea 89 85 c0 00 00 - 00 mov DWORD PTR tv88[rbp], eax - 000f0 eb 0a jmp SHORT $LN4@stbi__jpeg -$LN3@stbi__jpeg: - 000f2 c7 85 c0 00 00 - 00 ff ff ff 7f mov DWORD PTR tv88[rbp], 2147483647 ; 7fffffffH -$LN4@stbi__jpeg: - 000fc 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR j$[rbp] - 00103 8b 8d c0 00 00 - 00 mov ecx, DWORD PTR tv88[rbp] - 00109 89 88 6c 48 00 - 00 mov DWORD PTR [rax+18540], ecx - -; 3285 : j->eob_run = 0; - - 0010f 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR j$[rbp] - 00116 c7 80 44 48 00 - 00 00 00 00 00 mov DWORD PTR [rax+18500], 0 - -; 3286 : // no more than 1<<31 MCUs if no restart_interal? that's plenty safe, -; 3287 : // since we don't even allow 1<<30 pixels -; 3288 : } - - 00120 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 00127 5f pop rdi - 00128 5d pop rbp - 00129 c3 ret 0 -stbi__jpeg_reset ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__get_marker -_TEXT SEGMENT -x$ = 4 -j$ = 256 -stbi__get_marker PROC ; COMDAT - -; 3255 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 3256 : stbi_uc x; -; 3257 : if (j->marker != STBI__MARKER_none) { - - 00020 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00027 0f b6 80 28 48 - 00 00 movzx eax, BYTE PTR [rax+18472] - 0002e 3d ff 00 00 00 cmp eax, 255 ; 000000ffH - 00033 74 25 je SHORT $LN4@stbi__get_ - -; 3258 : x = j->marker; - - 00035 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 0003c 0f b6 80 28 48 - 00 00 movzx eax, BYTE PTR [rax+18472] - 00043 88 45 04 mov BYTE PTR x$[rbp], al - -; 3259 : j->marker = STBI__MARKER_none; - - 00046 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 0004d c6 80 28 48 00 - 00 ff mov BYTE PTR [rax+18472], 255 ; 000000ffH - -; 3260 : return x; - - 00054 0f b6 45 04 movzx eax, BYTE PTR x$[rbp] - 00058 eb 44 jmp SHORT $LN1@stbi__get_ -$LN4@stbi__get_: - -; 3261 : } -; 3262 : x = stbi__get8(j->s); - - 0005a 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00061 48 8b 08 mov rcx, QWORD PTR [rax] - 00064 e8 00 00 00 00 call stbi__get8 - 00069 88 45 04 mov BYTE PTR x$[rbp], al - -; 3263 : if (x != 0xff) - - 0006c 0f b6 45 04 movzx eax, BYTE PTR x$[rbp] - 00070 3d ff 00 00 00 cmp eax, 255 ; 000000ffH - 00075 74 04 je SHORT $LN5@stbi__get_ - -; 3264 : return STBI__MARKER_none; - - 00077 b0 ff mov al, 255 ; 000000ffH - 00079 eb 23 jmp SHORT $LN1@stbi__get_ -$LN5@stbi__get_: -$LN2@stbi__get_: - -; 3265 : while (x == 0xff) - - 0007b 0f b6 45 04 movzx eax, BYTE PTR x$[rbp] - 0007f 3d ff 00 00 00 cmp eax, 255 ; 000000ffH - 00084 75 14 jne SHORT $LN3@stbi__get_ - -; 3266 : x = stbi__get8(j->s); // consume repeated 0xff fill bytes - - 00086 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 0008d 48 8b 08 mov rcx, QWORD PTR [rax] - 00090 e8 00 00 00 00 call stbi__get8 - 00095 88 45 04 mov BYTE PTR x$[rbp], al - 00098 eb e1 jmp SHORT $LN2@stbi__get_ -$LN3@stbi__get_: - -; 3267 : return x; - - 0009a 0f b6 45 04 movzx eax, BYTE PTR x$[rbp] -$LN1@stbi__get_: - -; 3268 : } - - 0009e 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 000a5 5f pop rdi - 000a6 5d pop rbp - 000a7 c3 ret 0 -stbi__get_marker ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__idct_simd -_TEXT SEGMENT -row0$ = 16 -row1$ = 64 -row2$ = 112 -row3$ = 160 -row4$ = 208 -row5$ = 256 -row6$ = 304 -row7$ = 352 -tmp$ = 400 -rot0_0$ = 448 -rot0_1$ = 496 -rot1_0$ = 544 -rot1_1$ = 592 -rot2_0$ = 640 -rot2_1$ = 688 -rot3_0$ = 736 -rot3_1$ = 784 -bias_0$ = 832 -bias_1$ = 880 -rot0_0lo$1 = 928 -rot0_0hi$2 = 976 -t2e_l$3 = 1024 -t2e_h$4 = 1072 -t3e_l$5 = 1120 -t3e_h$6 = 1168 -sum04$7 = 1216 -dif04$8 = 1264 -t0e_l$9 = 1312 -t0e_h$10 = 1360 -t1e_l$11 = 1408 -t1e_h$12 = 1456 -x0_l$13 = 1504 -x0_h$14 = 1552 -x3_l$15 = 1600 -x3_h$16 = 1648 -x1_l$17 = 1696 -x1_h$18 = 1744 -x2_l$19 = 1792 -x2_h$20 = 1840 -rot2_0lo$21 = 1888 -rot2_0hi$22 = 1936 -y0o_l$23 = 1984 -y0o_h$24 = 2032 -y2o_l$25 = 2080 -y2o_h$26 = 2128 -rot3_0lo$27 = 2176 -rot3_0hi$28 = 2224 -y1o_l$29 = 2272 -y1o_h$30 = 2320 -y3o_l$31 = 2368 -y3o_h$32 = 2416 -sum17$33 = 2464 -sum35$34 = 2512 -rot1_0lo$35 = 2560 -rot1_0hi$36 = 2608 -y4o_l$37 = 2656 -y4o_h$38 = 2704 -y5o_l$39 = 2752 -y5o_h$40 = 2800 -x4_l$41 = 2848 -x4_h$42 = 2896 -x5_l$43 = 2944 -x5_h$44 = 2992 -x6_l$45 = 3040 -x6_h$46 = 3088 -x7_l$47 = 3136 -x7_h$48 = 3184 -abiased_l$49 = 3232 -abiased_h$50 = 3280 -sum_l$51 = 3328 -sum_h$52 = 3376 -dif_l$53 = 3424 -dif_h$54 = 3472 -abiased_l$55 = 3520 -abiased_h$56 = 3568 -sum_l$57 = 3616 -sum_h$58 = 3664 -dif_l$59 = 3712 -dif_h$60 = 3760 -abiased_l$61 = 3808 -abiased_h$62 = 3856 -sum_l$63 = 3904 -sum_h$64 = 3952 -dif_l$65 = 4000 -dif_h$66 = 4048 -abiased_l$67 = 4096 -abiased_h$68 = 4144 -sum_l$69 = 4192 -sum_h$70 = 4240 -dif_l$71 = 4288 -dif_h$72 = 4336 -rot0_0lo$73 = 4384 -rot0_0hi$74 = 4432 -t2e_l$75 = 4480 -t2e_h$76 = 4528 -t3e_l$77 = 4576 -t3e_h$78 = 4624 -sum04$79 = 4672 -dif04$80 = 4720 -t0e_l$81 = 4768 -t0e_h$82 = 4816 -t1e_l$83 = 4864 -t1e_h$84 = 4912 -x0_l$85 = 4960 -x0_h$86 = 5008 -x3_l$87 = 5056 -x3_h$88 = 5104 -x1_l$89 = 5152 -x1_h$90 = 5200 -x2_l$91 = 5248 -x2_h$92 = 5296 -rot2_0lo$93 = 5344 -rot2_0hi$94 = 5392 -y0o_l$95 = 5440 -y0o_h$96 = 5488 -y2o_l$97 = 5536 -y2o_h$98 = 5584 -rot3_0lo$99 = 5632 -rot3_0hi$100 = 5680 -y1o_l$101 = 5728 -y1o_h$102 = 5776 -y3o_l$103 = 5824 -y3o_h$104 = 5872 -sum17$105 = 5920 -sum35$106 = 5968 -rot1_0lo$107 = 6016 -rot1_0hi$108 = 6064 -y4o_l$109 = 6112 -y4o_h$110 = 6160 -y5o_l$111 = 6208 -y5o_h$112 = 6256 -x4_l$113 = 6304 -x4_h$114 = 6352 -x5_l$115 = 6400 -x5_h$116 = 6448 -x6_l$117 = 6496 -x6_h$118 = 6544 -x7_l$119 = 6592 -x7_h$120 = 6640 -abiased_l$121 = 6688 -abiased_h$122 = 6736 -sum_l$123 = 6784 -sum_h$124 = 6832 -dif_l$125 = 6880 -dif_h$126 = 6928 -abiased_l$127 = 6976 -abiased_h$128 = 7024 -sum_l$129 = 7072 -sum_h$130 = 7120 -dif_l$131 = 7168 -dif_h$132 = 7216 -abiased_l$133 = 7264 -abiased_h$134 = 7312 -sum_l$135 = 7360 -sum_h$136 = 7408 -dif_l$137 = 7456 -dif_h$138 = 7504 -abiased_l$139 = 7552 -abiased_h$140 = 7600 -sum_l$141 = 7648 -sum_h$142 = 7696 -dif_l$143 = 7744 -dif_h$144 = 7792 -p0$145 = 7840 -p1$146 = 7888 -p2$147 = 7936 -p3$148 = 7984 -out$ = 9584 -out_stride$ = 9592 -data$ = 9600 -stbi__idct_simd PROC ; COMDAT - -; 2813 : { - - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000e 55 push rbp - 0000f 57 push rdi - 00010 b8 78 25 00 00 mov eax, 9592 ; 00002578H - 00015 e8 00 00 00 00 call __chkstk - 0001a 48 2b e0 sub rsp, rax - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 2814 : // This is constructed to match our regular (generic) integer IDCT exactly. -; 2815 : __m128i row0, row1, row2, row3, row4, row5, row6, row7; -; 2816 : __m128i tmp; -; 2817 : -; 2818 : // dot product constant: even elems=x, odd elems=y -; 2819 : #define dct_const(x, y) _mm_setr_epi16((x), (y), (x), (y), (x), (y), (x), (y)) -; 2820 : -; 2821 : // out(0) = c0[even]*x + c0[odd]*y (c0, x, y 16-bit, out 32-bit) -; 2822 : // out(1) = c1[even]*x + c1[odd]*y -; 2823 : #define dct_rot(out0, out1, x, y, c0, c1) \ -; 2824 : __m128i c0##lo = _mm_unpacklo_epi16((x), (y)); \ -; 2825 : __m128i c0##hi = _mm_unpackhi_epi16((x), (y)); \ -; 2826 : __m128i out0##_l = _mm_madd_epi16(c0##lo, c0); \ -; 2827 : __m128i out0##_h = _mm_madd_epi16(c0##hi, c0); \ -; 2828 : __m128i out1##_l = _mm_madd_epi16(c0##lo, c1); \ -; 2829 : __m128i out1##_h = _mm_madd_epi16(c0##hi, c1) -; 2830 : -; 2831 : // out = in << 12 (in 16-bit, out 32-bit) -; 2832 : #define dct_widen(out, in) \ -; 2833 : __m128i out##_l = _mm_srai_epi32(_mm_unpacklo_epi16(_mm_setzero_si128(), (in)), 4); \ -; 2834 : __m128i out##_h = _mm_srai_epi32(_mm_unpackhi_epi16(_mm_setzero_si128(), (in)), 4) -; 2835 : -; 2836 : // wide add -; 2837 : #define dct_wadd(out, a, b) \ -; 2838 : __m128i out##_l = _mm_add_epi32(a##_l, b##_l); \ -; 2839 : __m128i out##_h = _mm_add_epi32(a##_h, b##_h) -; 2840 : -; 2841 : // wide sub -; 2842 : #define dct_wsub(out, a, b) \ -; 2843 : __m128i out##_l = _mm_sub_epi32(a##_l, b##_l); \ -; 2844 : __m128i out##_h = _mm_sub_epi32(a##_h, b##_h) -; 2845 : -; 2846 : // butterfly a/b, add bias, then shift by "s" and pack -; 2847 : #define dct_bfly32o(out0, out1, a, b, bias, s) \ -; 2848 : { \ -; 2849 : __m128i abiased_l = _mm_add_epi32(a##_l, bias); \ -; 2850 : __m128i abiased_h = _mm_add_epi32(a##_h, bias); \ -; 2851 : dct_wadd(sum, abiased, b); \ -; 2852 : dct_wsub(dif, abiased, b); \ -; 2853 : out0 = _mm_packs_epi32(_mm_srai_epi32(sum_l, s), _mm_srai_epi32(sum_h, s)); \ -; 2854 : out1 = _mm_packs_epi32(_mm_srai_epi32(dif_l, s), _mm_srai_epi32(dif_h, s)); \ -; 2855 : } -; 2856 : -; 2857 : // 8-bit interleave step (for transposes) -; 2858 : #define dct_interleave8(a, b) \ -; 2859 : tmp = a; \ -; 2860 : a = _mm_unpacklo_epi8(a, b); \ -; 2861 : b = _mm_unpackhi_epi8(tmp, b) -; 2862 : -; 2863 : // 16-bit interleave step (for transposes) -; 2864 : #define dct_interleave16(a, b) \ -; 2865 : tmp = a; \ -; 2866 : a = _mm_unpacklo_epi16(a, b); \ -; 2867 : b = _mm_unpackhi_epi16(tmp, b) -; 2868 : -; 2869 : #define dct_pass(bias, shift) \ -; 2870 : { \ -; 2871 : /* even part */ \ -; 2872 : dct_rot(t2e, t3e, row2, row6, rot0_0, rot0_1); \ -; 2873 : __m128i sum04 = _mm_add_epi16(row0, row4); \ -; 2874 : __m128i dif04 = _mm_sub_epi16(row0, row4); \ -; 2875 : dct_widen(t0e, sum04); \ -; 2876 : dct_widen(t1e, dif04); \ -; 2877 : dct_wadd(x0, t0e, t3e); \ -; 2878 : dct_wsub(x3, t0e, t3e); \ -; 2879 : dct_wadd(x1, t1e, t2e); \ -; 2880 : dct_wsub(x2, t1e, t2e); \ -; 2881 : /* odd part */ \ -; 2882 : dct_rot(y0o, y2o, row7, row3, rot2_0, rot2_1); \ -; 2883 : dct_rot(y1o, y3o, row5, row1, rot3_0, rot3_1); \ -; 2884 : __m128i sum17 = _mm_add_epi16(row1, row7); \ -; 2885 : __m128i sum35 = _mm_add_epi16(row3, row5); \ -; 2886 : dct_rot(y4o, y5o, sum17, sum35, rot1_0, rot1_1); \ -; 2887 : dct_wadd(x4, y0o, y4o); \ -; 2888 : dct_wadd(x5, y1o, y5o); \ -; 2889 : dct_wadd(x6, y2o, y5o); \ -; 2890 : dct_wadd(x7, y3o, y4o); \ -; 2891 : dct_bfly32o(row0, row7, x0, x7, bias, shift); \ -; 2892 : dct_bfly32o(row1, row6, x1, x6, bias, shift); \ -; 2893 : dct_bfly32o(row2, row5, x2, x5, bias, shift); \ -; 2894 : dct_bfly32o(row3, row4, x3, x4, bias, shift); \ -; 2895 : } -; 2896 : -; 2897 : __m128i rot0_0 = - - 0002f 66 0f 6f 05 00 - 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@eb1a08a9eb1a08a9eb1a08a9eb1a08a9 - 00037 66 0f 7f 85 c0 - 01 00 00 movdqa XMMWORD PTR rot0_0$[rbp], xmm0 - -; 2898 : dct_const(stbi__f2f(0.5411961f), stbi__f2f(0.5411961f) + stbi__f2f(-1.847759065f)); -; 2899 : __m128i rot0_1 = - - 0003f 66 0f 6f 05 00 - 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@08a914e808a914e808a914e808a914e8 - 00047 66 0f 7f 85 f0 - 01 00 00 movdqa XMMWORD PTR rot0_1$[rbp], xmm0 - -; 2900 : dct_const(stbi__f2f(0.5411961f) + stbi__f2f(0.765366865f), stbi__f2f(0.5411961f)); -; 2901 : __m128i rot1_0 = dct_const(stbi__f2f(1.175875602f) + stbi__f2f(-0.899976223f), - - 0004f 66 0f 6f 05 00 - 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@12d0046b12d0046b12d0046b12d0046b - 00057 66 0f 7f 85 20 - 02 00 00 movdqa XMMWORD PTR rot1_0$[rbp], xmm0 - -; 2902 : stbi__f2f(1.175875602f)); -; 2903 : __m128i rot1_1 = dct_const(stbi__f2f(1.175875602f), - - 0005f 66 0f 6f 05 00 - 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@e9cf12d0e9cf12d0e9cf12d0e9cf12d0 - 00067 66 0f 7f 85 50 - 02 00 00 movdqa XMMWORD PTR rot1_1$[rbp], xmm0 - -; 2904 : stbi__f2f(1.175875602f) + stbi__f2f(-2.562915447f)); -; 2905 : __m128i rot2_0 = dct_const(stbi__f2f(-1.961570560f) + stbi__f2f(0.298631336f), - - 0006f 66 0f 6f 05 00 - 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@e09ee565e09ee565e09ee565e09ee565 - 00077 66 0f 7f 85 80 - 02 00 00 movdqa XMMWORD PTR rot2_0$[rbp], xmm0 - -; 2906 : stbi__f2f(-1.961570560f)); -; 2907 : __m128i rot2_1 = dct_const(stbi__f2f(-1.961570560f), - - 0007f 66 0f 6f 05 00 - 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@11c8e09e11c8e09e11c8e09e11c8e09e - 00087 66 0f 7f 85 b0 - 02 00 00 movdqa XMMWORD PTR rot2_1$[rbp], xmm0 - -; 2908 : stbi__f2f(-1.961570560f) + stbi__f2f(3.072711026f)); -; 2909 : __m128i rot3_0 = dct_const(stbi__f2f(-0.390180644f) + stbi__f2f(2.053119869f), - - 0008f 66 0f 6f 05 00 - 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@f9c31a9df9c31a9df9c31a9df9c31a9d - 00097 66 0f 7f 85 e0 - 02 00 00 movdqa XMMWORD PTR rot3_0$[rbp], xmm0 - -; 2910 : stbi__f2f(-0.390180644f)); -; 2911 : __m128i rot3_1 = dct_const(stbi__f2f(-0.390180644f), - - 0009f 66 0f 6f 05 00 - 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@11c8f9c311c8f9c311c8f9c311c8f9c3 - 000a7 66 0f 7f 85 10 - 03 00 00 movdqa XMMWORD PTR rot3_1$[rbp], xmm0 - -; 2912 : stbi__f2f(-0.390180644f) + stbi__f2f(1.501321110f)); -; 2913 : -; 2914 : // rounding biases in column/row passes, see stbi__idct_block for explanation. -; 2915 : __m128i bias_0 = _mm_set1_epi32(512); - - 000af 66 0f 6f 05 00 - 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@00000200000002000000020000000200 - 000b7 66 0f 7f 85 40 - 03 00 00 movdqa XMMWORD PTR bias_0$[rbp], xmm0 - -; 2916 : __m128i bias_1 = _mm_set1_epi32(65536 + (128 << 17)); - - 000bf 66 0f 6f 05 00 - 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@01010000010100000101000001010000 - 000c7 66 0f 7f 85 70 - 03 00 00 movdqa XMMWORD PTR bias_1$[rbp], xmm0 - -; 2917 : -; 2918 : // load -; 2919 : row0 = _mm_load_si128((const __m128i *)(data + 0 * 8)); - - 000cf 48 8b 85 80 25 - 00 00 mov rax, QWORD PTR data$[rbp] - 000d6 f3 0f 6f 00 movdqu xmm0, XMMWORD PTR [rax] - 000da 66 0f 7f 45 10 movdqa XMMWORD PTR row0$[rbp], xmm0 - -; 2920 : row1 = _mm_load_si128((const __m128i *)(data + 1 * 8)); - - 000df 48 8b 85 80 25 - 00 00 mov rax, QWORD PTR data$[rbp] - 000e6 48 83 c0 10 add rax, 16 - 000ea f3 0f 6f 00 movdqu xmm0, XMMWORD PTR [rax] - 000ee 66 0f 7f 45 40 movdqa XMMWORD PTR row1$[rbp], xmm0 - -; 2921 : row2 = _mm_load_si128((const __m128i *)(data + 2 * 8)); - - 000f3 48 8b 85 80 25 - 00 00 mov rax, QWORD PTR data$[rbp] - 000fa 48 83 c0 20 add rax, 32 ; 00000020H - 000fe f3 0f 6f 00 movdqu xmm0, XMMWORD PTR [rax] - 00102 66 0f 7f 45 70 movdqa XMMWORD PTR row2$[rbp], xmm0 - -; 2922 : row3 = _mm_load_si128((const __m128i *)(data + 3 * 8)); - - 00107 48 8b 85 80 25 - 00 00 mov rax, QWORD PTR data$[rbp] - 0010e 48 83 c0 30 add rax, 48 ; 00000030H - 00112 f3 0f 6f 00 movdqu xmm0, XMMWORD PTR [rax] - 00116 66 0f 7f 85 a0 - 00 00 00 movdqa XMMWORD PTR row3$[rbp], xmm0 - -; 2923 : row4 = _mm_load_si128((const __m128i *)(data + 4 * 8)); - - 0011e 48 8b 85 80 25 - 00 00 mov rax, QWORD PTR data$[rbp] - 00125 48 83 c0 40 add rax, 64 ; 00000040H - 00129 f3 0f 6f 00 movdqu xmm0, XMMWORD PTR [rax] - 0012d 66 0f 7f 85 d0 - 00 00 00 movdqa XMMWORD PTR row4$[rbp], xmm0 - -; 2924 : row5 = _mm_load_si128((const __m128i *)(data + 5 * 8)); - - 00135 48 8b 85 80 25 - 00 00 mov rax, QWORD PTR data$[rbp] - 0013c 48 83 c0 50 add rax, 80 ; 00000050H - 00140 f3 0f 6f 00 movdqu xmm0, XMMWORD PTR [rax] - 00144 66 0f 7f 85 00 - 01 00 00 movdqa XMMWORD PTR row5$[rbp], xmm0 - -; 2925 : row6 = _mm_load_si128((const __m128i *)(data + 6 * 8)); - - 0014c 48 8b 85 80 25 - 00 00 mov rax, QWORD PTR data$[rbp] - 00153 48 83 c0 60 add rax, 96 ; 00000060H - 00157 f3 0f 6f 00 movdqu xmm0, XMMWORD PTR [rax] - 0015b 66 0f 7f 85 30 - 01 00 00 movdqa XMMWORD PTR row6$[rbp], xmm0 - -; 2926 : row7 = _mm_load_si128((const __m128i *)(data + 7 * 8)); - - 00163 48 8b 85 80 25 - 00 00 mov rax, QWORD PTR data$[rbp] - 0016a 48 83 c0 70 add rax, 112 ; 00000070H - 0016e f3 0f 6f 00 movdqu xmm0, XMMWORD PTR [rax] - 00172 66 0f 7f 85 60 - 01 00 00 movdqa XMMWORD PTR row7$[rbp], xmm0 - -; 2927 : -; 2928 : // column pass -; 2929 : dct_pass(bias_0, 10); - - 0017a 66 0f 6f 45 70 movdqa xmm0, XMMWORD PTR row2$[rbp] - 0017f 66 0f 61 85 30 - 01 00 00 punpcklwd xmm0, XMMWORD PTR row6$[rbp] - 00187 66 0f 7f 85 a0 - 03 00 00 movdqa XMMWORD PTR rot0_0lo$1[rbp], xmm0 - 0018f 66 0f 6f 45 70 movdqa xmm0, XMMWORD PTR row2$[rbp] - 00194 66 0f 69 85 30 - 01 00 00 punpckhwd xmm0, XMMWORD PTR row6$[rbp] - 0019c 66 0f 7f 85 d0 - 03 00 00 movdqa XMMWORD PTR rot0_0hi$2[rbp], xmm0 - 001a4 66 0f 6f 85 a0 - 03 00 00 movdqa xmm0, XMMWORD PTR rot0_0lo$1[rbp] - 001ac 66 0f f5 85 c0 - 01 00 00 pmaddwd xmm0, XMMWORD PTR rot0_0$[rbp] - 001b4 66 0f 7f 85 00 - 04 00 00 movdqa XMMWORD PTR t2e_l$3[rbp], xmm0 - 001bc 66 0f 6f 85 d0 - 03 00 00 movdqa xmm0, XMMWORD PTR rot0_0hi$2[rbp] - 001c4 66 0f f5 85 c0 - 01 00 00 pmaddwd xmm0, XMMWORD PTR rot0_0$[rbp] - 001cc 66 0f 7f 85 30 - 04 00 00 movdqa XMMWORD PTR t2e_h$4[rbp], xmm0 - 001d4 66 0f 6f 85 a0 - 03 00 00 movdqa xmm0, XMMWORD PTR rot0_0lo$1[rbp] - 001dc 66 0f f5 85 f0 - 01 00 00 pmaddwd xmm0, XMMWORD PTR rot0_1$[rbp] - 001e4 66 0f 7f 85 60 - 04 00 00 movdqa XMMWORD PTR t3e_l$5[rbp], xmm0 - 001ec 66 0f 6f 85 d0 - 03 00 00 movdqa xmm0, XMMWORD PTR rot0_0hi$2[rbp] - 001f4 66 0f f5 85 f0 - 01 00 00 pmaddwd xmm0, XMMWORD PTR rot0_1$[rbp] - 001fc 66 0f 7f 85 90 - 04 00 00 movdqa XMMWORD PTR t3e_h$6[rbp], xmm0 - 00204 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] - 00209 66 0f fd 85 d0 - 00 00 00 paddw xmm0, XMMWORD PTR row4$[rbp] - 00211 66 0f 7f 85 c0 - 04 00 00 movdqa XMMWORD PTR sum04$7[rbp], xmm0 - 00219 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] - 0021e 66 0f f9 85 d0 - 00 00 00 psubw xmm0, XMMWORD PTR row4$[rbp] - 00226 66 0f 7f 85 f0 - 04 00 00 movdqa XMMWORD PTR dif04$8[rbp], xmm0 - 0022e 66 0f ef c0 pxor xmm0, xmm0 - 00232 66 0f 61 85 c0 - 04 00 00 punpcklwd xmm0, XMMWORD PTR sum04$7[rbp] - 0023a 66 0f 72 e0 04 psrad xmm0, 4 - 0023f 66 0f 7f 85 20 - 05 00 00 movdqa XMMWORD PTR t0e_l$9[rbp], xmm0 - 00247 66 0f ef c0 pxor xmm0, xmm0 - 0024b 66 0f 69 85 c0 - 04 00 00 punpckhwd xmm0, XMMWORD PTR sum04$7[rbp] - 00253 66 0f 72 e0 04 psrad xmm0, 4 - 00258 66 0f 7f 85 50 - 05 00 00 movdqa XMMWORD PTR t0e_h$10[rbp], xmm0 - 00260 66 0f ef c0 pxor xmm0, xmm0 - 00264 66 0f 61 85 f0 - 04 00 00 punpcklwd xmm0, XMMWORD PTR dif04$8[rbp] - 0026c 66 0f 72 e0 04 psrad xmm0, 4 - 00271 66 0f 7f 85 80 - 05 00 00 movdqa XMMWORD PTR t1e_l$11[rbp], xmm0 - 00279 66 0f ef c0 pxor xmm0, xmm0 - 0027d 66 0f 69 85 f0 - 04 00 00 punpckhwd xmm0, XMMWORD PTR dif04$8[rbp] - 00285 66 0f 72 e0 04 psrad xmm0, 4 - 0028a 66 0f 7f 85 b0 - 05 00 00 movdqa XMMWORD PTR t1e_h$12[rbp], xmm0 - 00292 66 0f 6f 85 20 - 05 00 00 movdqa xmm0, XMMWORD PTR t0e_l$9[rbp] - 0029a 66 0f fe 85 60 - 04 00 00 paddd xmm0, XMMWORD PTR t3e_l$5[rbp] - 002a2 66 0f 7f 85 e0 - 05 00 00 movdqa XMMWORD PTR x0_l$13[rbp], xmm0 - 002aa 66 0f 6f 85 50 - 05 00 00 movdqa xmm0, XMMWORD PTR t0e_h$10[rbp] - 002b2 66 0f fe 85 90 - 04 00 00 paddd xmm0, XMMWORD PTR t3e_h$6[rbp] - 002ba 66 0f 7f 85 10 - 06 00 00 movdqa XMMWORD PTR x0_h$14[rbp], xmm0 - 002c2 66 0f 6f 85 20 - 05 00 00 movdqa xmm0, XMMWORD PTR t0e_l$9[rbp] - 002ca 66 0f fa 85 60 - 04 00 00 psubd xmm0, XMMWORD PTR t3e_l$5[rbp] - 002d2 66 0f 7f 85 40 - 06 00 00 movdqa XMMWORD PTR x3_l$15[rbp], xmm0 - 002da 66 0f 6f 85 50 - 05 00 00 movdqa xmm0, XMMWORD PTR t0e_h$10[rbp] - 002e2 66 0f fa 85 90 - 04 00 00 psubd xmm0, XMMWORD PTR t3e_h$6[rbp] - 002ea 66 0f 7f 85 70 - 06 00 00 movdqa XMMWORD PTR x3_h$16[rbp], xmm0 - 002f2 66 0f 6f 85 80 - 05 00 00 movdqa xmm0, XMMWORD PTR t1e_l$11[rbp] - 002fa 66 0f fe 85 00 - 04 00 00 paddd xmm0, XMMWORD PTR t2e_l$3[rbp] - 00302 66 0f 7f 85 a0 - 06 00 00 movdqa XMMWORD PTR x1_l$17[rbp], xmm0 - 0030a 66 0f 6f 85 b0 - 05 00 00 movdqa xmm0, XMMWORD PTR t1e_h$12[rbp] - 00312 66 0f fe 85 30 - 04 00 00 paddd xmm0, XMMWORD PTR t2e_h$4[rbp] - 0031a 66 0f 7f 85 d0 - 06 00 00 movdqa XMMWORD PTR x1_h$18[rbp], xmm0 - 00322 66 0f 6f 85 80 - 05 00 00 movdqa xmm0, XMMWORD PTR t1e_l$11[rbp] - 0032a 66 0f fa 85 00 - 04 00 00 psubd xmm0, XMMWORD PTR t2e_l$3[rbp] - 00332 66 0f 7f 85 00 - 07 00 00 movdqa XMMWORD PTR x2_l$19[rbp], xmm0 - 0033a 66 0f 6f 85 b0 - 05 00 00 movdqa xmm0, XMMWORD PTR t1e_h$12[rbp] - 00342 66 0f fa 85 30 - 04 00 00 psubd xmm0, XMMWORD PTR t2e_h$4[rbp] - 0034a 66 0f 7f 85 30 - 07 00 00 movdqa XMMWORD PTR x2_h$20[rbp], xmm0 - 00352 66 0f 6f 85 60 - 01 00 00 movdqa xmm0, XMMWORD PTR row7$[rbp] - 0035a 66 0f 61 85 a0 - 00 00 00 punpcklwd xmm0, XMMWORD PTR row3$[rbp] - 00362 66 0f 7f 85 60 - 07 00 00 movdqa XMMWORD PTR rot2_0lo$21[rbp], xmm0 - 0036a 66 0f 6f 85 60 - 01 00 00 movdqa xmm0, XMMWORD PTR row7$[rbp] - 00372 66 0f 69 85 a0 - 00 00 00 punpckhwd xmm0, XMMWORD PTR row3$[rbp] - 0037a 66 0f 7f 85 90 - 07 00 00 movdqa XMMWORD PTR rot2_0hi$22[rbp], xmm0 - 00382 66 0f 6f 85 60 - 07 00 00 movdqa xmm0, XMMWORD PTR rot2_0lo$21[rbp] - 0038a 66 0f f5 85 80 - 02 00 00 pmaddwd xmm0, XMMWORD PTR rot2_0$[rbp] - 00392 66 0f 7f 85 c0 - 07 00 00 movdqa XMMWORD PTR y0o_l$23[rbp], xmm0 - 0039a 66 0f 6f 85 90 - 07 00 00 movdqa xmm0, XMMWORD PTR rot2_0hi$22[rbp] - 003a2 66 0f f5 85 80 - 02 00 00 pmaddwd xmm0, XMMWORD PTR rot2_0$[rbp] - 003aa 66 0f 7f 85 f0 - 07 00 00 movdqa XMMWORD PTR y0o_h$24[rbp], xmm0 - 003b2 66 0f 6f 85 60 - 07 00 00 movdqa xmm0, XMMWORD PTR rot2_0lo$21[rbp] - 003ba 66 0f f5 85 b0 - 02 00 00 pmaddwd xmm0, XMMWORD PTR rot2_1$[rbp] - 003c2 66 0f 7f 85 20 - 08 00 00 movdqa XMMWORD PTR y2o_l$25[rbp], xmm0 - 003ca 66 0f 6f 85 90 - 07 00 00 movdqa xmm0, XMMWORD PTR rot2_0hi$22[rbp] - 003d2 66 0f f5 85 b0 - 02 00 00 pmaddwd xmm0, XMMWORD PTR rot2_1$[rbp] - 003da 66 0f 7f 85 50 - 08 00 00 movdqa XMMWORD PTR y2o_h$26[rbp], xmm0 - 003e2 66 0f 6f 85 00 - 01 00 00 movdqa xmm0, XMMWORD PTR row5$[rbp] - 003ea 66 0f 61 45 40 punpcklwd xmm0, XMMWORD PTR row1$[rbp] - 003ef 66 0f 7f 85 80 - 08 00 00 movdqa XMMWORD PTR rot3_0lo$27[rbp], xmm0 - 003f7 66 0f 6f 85 00 - 01 00 00 movdqa xmm0, XMMWORD PTR row5$[rbp] - 003ff 66 0f 69 45 40 punpckhwd xmm0, XMMWORD PTR row1$[rbp] - 00404 66 0f 7f 85 b0 - 08 00 00 movdqa XMMWORD PTR rot3_0hi$28[rbp], xmm0 - 0040c 66 0f 6f 85 80 - 08 00 00 movdqa xmm0, XMMWORD PTR rot3_0lo$27[rbp] - 00414 66 0f f5 85 e0 - 02 00 00 pmaddwd xmm0, XMMWORD PTR rot3_0$[rbp] - 0041c 66 0f 7f 85 e0 - 08 00 00 movdqa XMMWORD PTR y1o_l$29[rbp], xmm0 - 00424 66 0f 6f 85 b0 - 08 00 00 movdqa xmm0, XMMWORD PTR rot3_0hi$28[rbp] - 0042c 66 0f f5 85 e0 - 02 00 00 pmaddwd xmm0, XMMWORD PTR rot3_0$[rbp] - 00434 66 0f 7f 85 10 - 09 00 00 movdqa XMMWORD PTR y1o_h$30[rbp], xmm0 - 0043c 66 0f 6f 85 80 - 08 00 00 movdqa xmm0, XMMWORD PTR rot3_0lo$27[rbp] - 00444 66 0f f5 85 10 - 03 00 00 pmaddwd xmm0, XMMWORD PTR rot3_1$[rbp] - 0044c 66 0f 7f 85 40 - 09 00 00 movdqa XMMWORD PTR y3o_l$31[rbp], xmm0 - 00454 66 0f 6f 85 b0 - 08 00 00 movdqa xmm0, XMMWORD PTR rot3_0hi$28[rbp] - 0045c 66 0f f5 85 10 - 03 00 00 pmaddwd xmm0, XMMWORD PTR rot3_1$[rbp] - 00464 66 0f 7f 85 70 - 09 00 00 movdqa XMMWORD PTR y3o_h$32[rbp], xmm0 - 0046c 66 0f 6f 45 40 movdqa xmm0, XMMWORD PTR row1$[rbp] - 00471 66 0f fd 85 60 - 01 00 00 paddw xmm0, XMMWORD PTR row7$[rbp] - 00479 66 0f 7f 85 a0 - 09 00 00 movdqa XMMWORD PTR sum17$33[rbp], xmm0 - 00481 66 0f 6f 85 a0 - 00 00 00 movdqa xmm0, XMMWORD PTR row3$[rbp] - 00489 66 0f fd 85 00 - 01 00 00 paddw xmm0, XMMWORD PTR row5$[rbp] - 00491 66 0f 7f 85 d0 - 09 00 00 movdqa XMMWORD PTR sum35$34[rbp], xmm0 - 00499 66 0f 6f 85 a0 - 09 00 00 movdqa xmm0, XMMWORD PTR sum17$33[rbp] - 004a1 66 0f 61 85 d0 - 09 00 00 punpcklwd xmm0, XMMWORD PTR sum35$34[rbp] - 004a9 66 0f 7f 85 00 - 0a 00 00 movdqa XMMWORD PTR rot1_0lo$35[rbp], xmm0 - 004b1 66 0f 6f 85 a0 - 09 00 00 movdqa xmm0, XMMWORD PTR sum17$33[rbp] - 004b9 66 0f 69 85 d0 - 09 00 00 punpckhwd xmm0, XMMWORD PTR sum35$34[rbp] - 004c1 66 0f 7f 85 30 - 0a 00 00 movdqa XMMWORD PTR rot1_0hi$36[rbp], xmm0 - 004c9 66 0f 6f 85 00 - 0a 00 00 movdqa xmm0, XMMWORD PTR rot1_0lo$35[rbp] - 004d1 66 0f f5 85 20 - 02 00 00 pmaddwd xmm0, XMMWORD PTR rot1_0$[rbp] - 004d9 66 0f 7f 85 60 - 0a 00 00 movdqa XMMWORD PTR y4o_l$37[rbp], xmm0 - 004e1 66 0f 6f 85 30 - 0a 00 00 movdqa xmm0, XMMWORD PTR rot1_0hi$36[rbp] - 004e9 66 0f f5 85 20 - 02 00 00 pmaddwd xmm0, XMMWORD PTR rot1_0$[rbp] - 004f1 66 0f 7f 85 90 - 0a 00 00 movdqa XMMWORD PTR y4o_h$38[rbp], xmm0 - 004f9 66 0f 6f 85 00 - 0a 00 00 movdqa xmm0, XMMWORD PTR rot1_0lo$35[rbp] - 00501 66 0f f5 85 50 - 02 00 00 pmaddwd xmm0, XMMWORD PTR rot1_1$[rbp] - 00509 66 0f 7f 85 c0 - 0a 00 00 movdqa XMMWORD PTR y5o_l$39[rbp], xmm0 - 00511 66 0f 6f 85 30 - 0a 00 00 movdqa xmm0, XMMWORD PTR rot1_0hi$36[rbp] - 00519 66 0f f5 85 50 - 02 00 00 pmaddwd xmm0, XMMWORD PTR rot1_1$[rbp] - 00521 66 0f 7f 85 f0 - 0a 00 00 movdqa XMMWORD PTR y5o_h$40[rbp], xmm0 - 00529 66 0f 6f 85 c0 - 07 00 00 movdqa xmm0, XMMWORD PTR y0o_l$23[rbp] - 00531 66 0f fe 85 60 - 0a 00 00 paddd xmm0, XMMWORD PTR y4o_l$37[rbp] - 00539 66 0f 7f 85 20 - 0b 00 00 movdqa XMMWORD PTR x4_l$41[rbp], xmm0 - 00541 66 0f 6f 85 f0 - 07 00 00 movdqa xmm0, XMMWORD PTR y0o_h$24[rbp] - 00549 66 0f fe 85 90 - 0a 00 00 paddd xmm0, XMMWORD PTR y4o_h$38[rbp] - 00551 66 0f 7f 85 50 - 0b 00 00 movdqa XMMWORD PTR x4_h$42[rbp], xmm0 - 00559 66 0f 6f 85 e0 - 08 00 00 movdqa xmm0, XMMWORD PTR y1o_l$29[rbp] - 00561 66 0f fe 85 c0 - 0a 00 00 paddd xmm0, XMMWORD PTR y5o_l$39[rbp] - 00569 66 0f 7f 85 80 - 0b 00 00 movdqa XMMWORD PTR x5_l$43[rbp], xmm0 - 00571 66 0f 6f 85 10 - 09 00 00 movdqa xmm0, XMMWORD PTR y1o_h$30[rbp] - 00579 66 0f fe 85 f0 - 0a 00 00 paddd xmm0, XMMWORD PTR y5o_h$40[rbp] - 00581 66 0f 7f 85 b0 - 0b 00 00 movdqa XMMWORD PTR x5_h$44[rbp], xmm0 - 00589 66 0f 6f 85 20 - 08 00 00 movdqa xmm0, XMMWORD PTR y2o_l$25[rbp] - 00591 66 0f fe 85 c0 - 0a 00 00 paddd xmm0, XMMWORD PTR y5o_l$39[rbp] - 00599 66 0f 7f 85 e0 - 0b 00 00 movdqa XMMWORD PTR x6_l$45[rbp], xmm0 - 005a1 66 0f 6f 85 50 - 08 00 00 movdqa xmm0, XMMWORD PTR y2o_h$26[rbp] - 005a9 66 0f fe 85 f0 - 0a 00 00 paddd xmm0, XMMWORD PTR y5o_h$40[rbp] - 005b1 66 0f 7f 85 10 - 0c 00 00 movdqa XMMWORD PTR x6_h$46[rbp], xmm0 - 005b9 66 0f 6f 85 40 - 09 00 00 movdqa xmm0, XMMWORD PTR y3o_l$31[rbp] - 005c1 66 0f fe 85 60 - 0a 00 00 paddd xmm0, XMMWORD PTR y4o_l$37[rbp] - 005c9 66 0f 7f 85 40 - 0c 00 00 movdqa XMMWORD PTR x7_l$47[rbp], xmm0 - 005d1 66 0f 6f 85 70 - 09 00 00 movdqa xmm0, XMMWORD PTR y3o_h$32[rbp] - 005d9 66 0f fe 85 90 - 0a 00 00 paddd xmm0, XMMWORD PTR y4o_h$38[rbp] - 005e1 66 0f 7f 85 70 - 0c 00 00 movdqa XMMWORD PTR x7_h$48[rbp], xmm0 - 005e9 66 0f 6f 85 e0 - 05 00 00 movdqa xmm0, XMMWORD PTR x0_l$13[rbp] - 005f1 66 0f fe 85 40 - 03 00 00 paddd xmm0, XMMWORD PTR bias_0$[rbp] - 005f9 66 0f 7f 85 a0 - 0c 00 00 movdqa XMMWORD PTR abiased_l$49[rbp], xmm0 - 00601 66 0f 6f 85 10 - 06 00 00 movdqa xmm0, XMMWORD PTR x0_h$14[rbp] - 00609 66 0f fe 85 40 - 03 00 00 paddd xmm0, XMMWORD PTR bias_0$[rbp] - 00611 66 0f 7f 85 d0 - 0c 00 00 movdqa XMMWORD PTR abiased_h$50[rbp], xmm0 - 00619 66 0f 6f 85 a0 - 0c 00 00 movdqa xmm0, XMMWORD PTR abiased_l$49[rbp] - 00621 66 0f fe 85 40 - 0c 00 00 paddd xmm0, XMMWORD PTR x7_l$47[rbp] - 00629 66 0f 7f 85 00 - 0d 00 00 movdqa XMMWORD PTR sum_l$51[rbp], xmm0 - 00631 66 0f 6f 85 d0 - 0c 00 00 movdqa xmm0, XMMWORD PTR abiased_h$50[rbp] - 00639 66 0f fe 85 70 - 0c 00 00 paddd xmm0, XMMWORD PTR x7_h$48[rbp] - 00641 66 0f 7f 85 30 - 0d 00 00 movdqa XMMWORD PTR sum_h$52[rbp], xmm0 - 00649 66 0f 6f 85 a0 - 0c 00 00 movdqa xmm0, XMMWORD PTR abiased_l$49[rbp] - 00651 66 0f fa 85 40 - 0c 00 00 psubd xmm0, XMMWORD PTR x7_l$47[rbp] - 00659 66 0f 7f 85 60 - 0d 00 00 movdqa XMMWORD PTR dif_l$53[rbp], xmm0 - 00661 66 0f 6f 85 d0 - 0c 00 00 movdqa xmm0, XMMWORD PTR abiased_h$50[rbp] - 00669 66 0f fa 85 70 - 0c 00 00 psubd xmm0, XMMWORD PTR x7_h$48[rbp] - 00671 66 0f 7f 85 90 - 0d 00 00 movdqa XMMWORD PTR dif_h$54[rbp], xmm0 - 00679 66 0f 6f 85 30 - 0d 00 00 movdqa xmm0, XMMWORD PTR sum_h$52[rbp] - 00681 66 0f 72 e0 0a psrad xmm0, 10 - 00686 66 0f 6f 8d 00 - 0d 00 00 movdqa xmm1, XMMWORD PTR sum_l$51[rbp] - 0068e 66 0f 72 e1 0a psrad xmm1, 10 - 00693 66 0f 6b c8 packssdw xmm1, xmm0 - 00697 66 0f 6f c1 movdqa xmm0, xmm1 - 0069b 66 0f 7f 45 10 movdqa XMMWORD PTR row0$[rbp], xmm0 - 006a0 66 0f 6f 85 90 - 0d 00 00 movdqa xmm0, XMMWORD PTR dif_h$54[rbp] - 006a8 66 0f 72 e0 0a psrad xmm0, 10 - 006ad 66 0f 6f 8d 60 - 0d 00 00 movdqa xmm1, XMMWORD PTR dif_l$53[rbp] - 006b5 66 0f 72 e1 0a psrad xmm1, 10 - 006ba 66 0f 6b c8 packssdw xmm1, xmm0 - 006be 66 0f 6f c1 movdqa xmm0, xmm1 - 006c2 66 0f 7f 85 60 - 01 00 00 movdqa XMMWORD PTR row7$[rbp], xmm0 - 006ca 66 0f 6f 85 a0 - 06 00 00 movdqa xmm0, XMMWORD PTR x1_l$17[rbp] - 006d2 66 0f fe 85 40 - 03 00 00 paddd xmm0, XMMWORD PTR bias_0$[rbp] - 006da 66 0f 7f 85 c0 - 0d 00 00 movdqa XMMWORD PTR abiased_l$55[rbp], xmm0 - 006e2 66 0f 6f 85 d0 - 06 00 00 movdqa xmm0, XMMWORD PTR x1_h$18[rbp] - 006ea 66 0f fe 85 40 - 03 00 00 paddd xmm0, XMMWORD PTR bias_0$[rbp] - 006f2 66 0f 7f 85 f0 - 0d 00 00 movdqa XMMWORD PTR abiased_h$56[rbp], xmm0 - 006fa 66 0f 6f 85 c0 - 0d 00 00 movdqa xmm0, XMMWORD PTR abiased_l$55[rbp] - 00702 66 0f fe 85 e0 - 0b 00 00 paddd xmm0, XMMWORD PTR x6_l$45[rbp] - 0070a 66 0f 7f 85 20 - 0e 00 00 movdqa XMMWORD PTR sum_l$57[rbp], xmm0 - 00712 66 0f 6f 85 f0 - 0d 00 00 movdqa xmm0, XMMWORD PTR abiased_h$56[rbp] - 0071a 66 0f fe 85 10 - 0c 00 00 paddd xmm0, XMMWORD PTR x6_h$46[rbp] - 00722 66 0f 7f 85 50 - 0e 00 00 movdqa XMMWORD PTR sum_h$58[rbp], xmm0 - 0072a 66 0f 6f 85 c0 - 0d 00 00 movdqa xmm0, XMMWORD PTR abiased_l$55[rbp] - 00732 66 0f fa 85 e0 - 0b 00 00 psubd xmm0, XMMWORD PTR x6_l$45[rbp] - 0073a 66 0f 7f 85 80 - 0e 00 00 movdqa XMMWORD PTR dif_l$59[rbp], xmm0 - 00742 66 0f 6f 85 f0 - 0d 00 00 movdqa xmm0, XMMWORD PTR abiased_h$56[rbp] - 0074a 66 0f fa 85 10 - 0c 00 00 psubd xmm0, XMMWORD PTR x6_h$46[rbp] - 00752 66 0f 7f 85 b0 - 0e 00 00 movdqa XMMWORD PTR dif_h$60[rbp], xmm0 - 0075a 66 0f 6f 85 50 - 0e 00 00 movdqa xmm0, XMMWORD PTR sum_h$58[rbp] - 00762 66 0f 72 e0 0a psrad xmm0, 10 - 00767 66 0f 6f 8d 20 - 0e 00 00 movdqa xmm1, XMMWORD PTR sum_l$57[rbp] - 0076f 66 0f 72 e1 0a psrad xmm1, 10 - 00774 66 0f 6b c8 packssdw xmm1, xmm0 - 00778 66 0f 6f c1 movdqa xmm0, xmm1 - 0077c 66 0f 7f 45 40 movdqa XMMWORD PTR row1$[rbp], xmm0 - 00781 66 0f 6f 85 b0 - 0e 00 00 movdqa xmm0, XMMWORD PTR dif_h$60[rbp] - 00789 66 0f 72 e0 0a psrad xmm0, 10 - 0078e 66 0f 6f 8d 80 - 0e 00 00 movdqa xmm1, XMMWORD PTR dif_l$59[rbp] - 00796 66 0f 72 e1 0a psrad xmm1, 10 - 0079b 66 0f 6b c8 packssdw xmm1, xmm0 - 0079f 66 0f 6f c1 movdqa xmm0, xmm1 - 007a3 66 0f 7f 85 30 - 01 00 00 movdqa XMMWORD PTR row6$[rbp], xmm0 - 007ab 66 0f 6f 85 00 - 07 00 00 movdqa xmm0, XMMWORD PTR x2_l$19[rbp] - 007b3 66 0f fe 85 40 - 03 00 00 paddd xmm0, XMMWORD PTR bias_0$[rbp] - 007bb 66 0f 7f 85 e0 - 0e 00 00 movdqa XMMWORD PTR abiased_l$61[rbp], xmm0 - 007c3 66 0f 6f 85 30 - 07 00 00 movdqa xmm0, XMMWORD PTR x2_h$20[rbp] - 007cb 66 0f fe 85 40 - 03 00 00 paddd xmm0, XMMWORD PTR bias_0$[rbp] - 007d3 66 0f 7f 85 10 - 0f 00 00 movdqa XMMWORD PTR abiased_h$62[rbp], xmm0 - 007db 66 0f 6f 85 e0 - 0e 00 00 movdqa xmm0, XMMWORD PTR abiased_l$61[rbp] - 007e3 66 0f fe 85 80 - 0b 00 00 paddd xmm0, XMMWORD PTR x5_l$43[rbp] - 007eb 66 0f 7f 85 40 - 0f 00 00 movdqa XMMWORD PTR sum_l$63[rbp], xmm0 - 007f3 66 0f 6f 85 10 - 0f 00 00 movdqa xmm0, XMMWORD PTR abiased_h$62[rbp] - 007fb 66 0f fe 85 b0 - 0b 00 00 paddd xmm0, XMMWORD PTR x5_h$44[rbp] - 00803 66 0f 7f 85 70 - 0f 00 00 movdqa XMMWORD PTR sum_h$64[rbp], xmm0 - 0080b 66 0f 6f 85 e0 - 0e 00 00 movdqa xmm0, XMMWORD PTR abiased_l$61[rbp] - 00813 66 0f fa 85 80 - 0b 00 00 psubd xmm0, XMMWORD PTR x5_l$43[rbp] - 0081b 66 0f 7f 85 a0 - 0f 00 00 movdqa XMMWORD PTR dif_l$65[rbp], xmm0 - 00823 66 0f 6f 85 10 - 0f 00 00 movdqa xmm0, XMMWORD PTR abiased_h$62[rbp] - 0082b 66 0f fa 85 b0 - 0b 00 00 psubd xmm0, XMMWORD PTR x5_h$44[rbp] - 00833 66 0f 7f 85 d0 - 0f 00 00 movdqa XMMWORD PTR dif_h$66[rbp], xmm0 - 0083b 66 0f 6f 85 70 - 0f 00 00 movdqa xmm0, XMMWORD PTR sum_h$64[rbp] - 00843 66 0f 72 e0 0a psrad xmm0, 10 - 00848 66 0f 6f 8d 40 - 0f 00 00 movdqa xmm1, XMMWORD PTR sum_l$63[rbp] - 00850 66 0f 72 e1 0a psrad xmm1, 10 - 00855 66 0f 6b c8 packssdw xmm1, xmm0 - 00859 66 0f 6f c1 movdqa xmm0, xmm1 - 0085d 66 0f 7f 45 70 movdqa XMMWORD PTR row2$[rbp], xmm0 - 00862 66 0f 6f 85 d0 - 0f 00 00 movdqa xmm0, XMMWORD PTR dif_h$66[rbp] - 0086a 66 0f 72 e0 0a psrad xmm0, 10 - 0086f 66 0f 6f 8d a0 - 0f 00 00 movdqa xmm1, XMMWORD PTR dif_l$65[rbp] - 00877 66 0f 72 e1 0a psrad xmm1, 10 - 0087c 66 0f 6b c8 packssdw xmm1, xmm0 - 00880 66 0f 6f c1 movdqa xmm0, xmm1 - 00884 66 0f 7f 85 00 - 01 00 00 movdqa XMMWORD PTR row5$[rbp], xmm0 - 0088c 66 0f 6f 85 40 - 06 00 00 movdqa xmm0, XMMWORD PTR x3_l$15[rbp] - 00894 66 0f fe 85 40 - 03 00 00 paddd xmm0, XMMWORD PTR bias_0$[rbp] - 0089c 66 0f 7f 85 00 - 10 00 00 movdqa XMMWORD PTR abiased_l$67[rbp], xmm0 - 008a4 66 0f 6f 85 70 - 06 00 00 movdqa xmm0, XMMWORD PTR x3_h$16[rbp] - 008ac 66 0f fe 85 40 - 03 00 00 paddd xmm0, XMMWORD PTR bias_0$[rbp] - 008b4 66 0f 7f 85 30 - 10 00 00 movdqa XMMWORD PTR abiased_h$68[rbp], xmm0 - 008bc 66 0f 6f 85 00 - 10 00 00 movdqa xmm0, XMMWORD PTR abiased_l$67[rbp] - 008c4 66 0f fe 85 20 - 0b 00 00 paddd xmm0, XMMWORD PTR x4_l$41[rbp] - 008cc 66 0f 7f 85 60 - 10 00 00 movdqa XMMWORD PTR sum_l$69[rbp], xmm0 - 008d4 66 0f 6f 85 30 - 10 00 00 movdqa xmm0, XMMWORD PTR abiased_h$68[rbp] - 008dc 66 0f fe 85 50 - 0b 00 00 paddd xmm0, XMMWORD PTR x4_h$42[rbp] - 008e4 66 0f 7f 85 90 - 10 00 00 movdqa XMMWORD PTR sum_h$70[rbp], xmm0 - 008ec 66 0f 6f 85 00 - 10 00 00 movdqa xmm0, XMMWORD PTR abiased_l$67[rbp] - 008f4 66 0f fa 85 20 - 0b 00 00 psubd xmm0, XMMWORD PTR x4_l$41[rbp] - 008fc 66 0f 7f 85 c0 - 10 00 00 movdqa XMMWORD PTR dif_l$71[rbp], xmm0 - 00904 66 0f 6f 85 30 - 10 00 00 movdqa xmm0, XMMWORD PTR abiased_h$68[rbp] - 0090c 66 0f fa 85 50 - 0b 00 00 psubd xmm0, XMMWORD PTR x4_h$42[rbp] - 00914 66 0f 7f 85 f0 - 10 00 00 movdqa XMMWORD PTR dif_h$72[rbp], xmm0 - 0091c 66 0f 6f 85 90 - 10 00 00 movdqa xmm0, XMMWORD PTR sum_h$70[rbp] - 00924 66 0f 72 e0 0a psrad xmm0, 10 - 00929 66 0f 6f 8d 60 - 10 00 00 movdqa xmm1, XMMWORD PTR sum_l$69[rbp] - 00931 66 0f 72 e1 0a psrad xmm1, 10 - 00936 66 0f 6b c8 packssdw xmm1, xmm0 - 0093a 66 0f 6f c1 movdqa xmm0, xmm1 - 0093e 66 0f 7f 85 a0 - 00 00 00 movdqa XMMWORD PTR row3$[rbp], xmm0 - 00946 66 0f 6f 85 f0 - 10 00 00 movdqa xmm0, XMMWORD PTR dif_h$72[rbp] - 0094e 66 0f 72 e0 0a psrad xmm0, 10 - 00953 66 0f 6f 8d c0 - 10 00 00 movdqa xmm1, XMMWORD PTR dif_l$71[rbp] - 0095b 66 0f 72 e1 0a psrad xmm1, 10 - 00960 66 0f 6b c8 packssdw xmm1, xmm0 - 00964 66 0f 6f c1 movdqa xmm0, xmm1 - 00968 66 0f 7f 85 d0 - 00 00 00 movdqa XMMWORD PTR row4$[rbp], xmm0 - -; 2930 : -; 2931 : { -; 2932 : // 16bit 8x8 transpose pass 1 -; 2933 : dct_interleave16(row0, row4); - - 00970 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] - 00975 66 0f 7f 85 90 - 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 - 0097d 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] - 00982 66 0f 61 85 d0 - 00 00 00 punpcklwd xmm0, XMMWORD PTR row4$[rbp] - 0098a 66 0f 7f 45 10 movdqa XMMWORD PTR row0$[rbp], xmm0 - 0098f 66 0f 6f 85 90 - 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] - 00997 66 0f 69 85 d0 - 00 00 00 punpckhwd xmm0, XMMWORD PTR row4$[rbp] - 0099f 66 0f 7f 85 d0 - 00 00 00 movdqa XMMWORD PTR row4$[rbp], xmm0 - -; 2934 : dct_interleave16(row1, row5); - - 009a7 66 0f 6f 45 40 movdqa xmm0, XMMWORD PTR row1$[rbp] - 009ac 66 0f 7f 85 90 - 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 - 009b4 66 0f 6f 45 40 movdqa xmm0, XMMWORD PTR row1$[rbp] - 009b9 66 0f 61 85 00 - 01 00 00 punpcklwd xmm0, XMMWORD PTR row5$[rbp] - 009c1 66 0f 7f 45 40 movdqa XMMWORD PTR row1$[rbp], xmm0 - 009c6 66 0f 6f 85 90 - 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] - 009ce 66 0f 69 85 00 - 01 00 00 punpckhwd xmm0, XMMWORD PTR row5$[rbp] - 009d6 66 0f 7f 85 00 - 01 00 00 movdqa XMMWORD PTR row5$[rbp], xmm0 - -; 2935 : dct_interleave16(row2, row6); - - 009de 66 0f 6f 45 70 movdqa xmm0, XMMWORD PTR row2$[rbp] - 009e3 66 0f 7f 85 90 - 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 - 009eb 66 0f 6f 45 70 movdqa xmm0, XMMWORD PTR row2$[rbp] - 009f0 66 0f 61 85 30 - 01 00 00 punpcklwd xmm0, XMMWORD PTR row6$[rbp] - 009f8 66 0f 7f 45 70 movdqa XMMWORD PTR row2$[rbp], xmm0 - 009fd 66 0f 6f 85 90 - 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] - 00a05 66 0f 69 85 30 - 01 00 00 punpckhwd xmm0, XMMWORD PTR row6$[rbp] - 00a0d 66 0f 7f 85 30 - 01 00 00 movdqa XMMWORD PTR row6$[rbp], xmm0 - -; 2936 : dct_interleave16(row3, row7); - - 00a15 66 0f 6f 85 a0 - 00 00 00 movdqa xmm0, XMMWORD PTR row3$[rbp] - 00a1d 66 0f 7f 85 90 - 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 - 00a25 66 0f 6f 85 a0 - 00 00 00 movdqa xmm0, XMMWORD PTR row3$[rbp] - 00a2d 66 0f 61 85 60 - 01 00 00 punpcklwd xmm0, XMMWORD PTR row7$[rbp] - 00a35 66 0f 7f 85 a0 - 00 00 00 movdqa XMMWORD PTR row3$[rbp], xmm0 - 00a3d 66 0f 6f 85 90 - 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] - 00a45 66 0f 69 85 60 - 01 00 00 punpckhwd xmm0, XMMWORD PTR row7$[rbp] - 00a4d 66 0f 7f 85 60 - 01 00 00 movdqa XMMWORD PTR row7$[rbp], xmm0 - -; 2937 : -; 2938 : // transpose pass 2 -; 2939 : dct_interleave16(row0, row2); - - 00a55 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] - 00a5a 66 0f 7f 85 90 - 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 - 00a62 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] - 00a67 66 0f 61 45 70 punpcklwd xmm0, XMMWORD PTR row2$[rbp] - 00a6c 66 0f 7f 45 10 movdqa XMMWORD PTR row0$[rbp], xmm0 - 00a71 66 0f 6f 85 90 - 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] - 00a79 66 0f 69 45 70 punpckhwd xmm0, XMMWORD PTR row2$[rbp] - 00a7e 66 0f 7f 45 70 movdqa XMMWORD PTR row2$[rbp], xmm0 - -; 2940 : dct_interleave16(row1, row3); - - 00a83 66 0f 6f 45 40 movdqa xmm0, XMMWORD PTR row1$[rbp] - 00a88 66 0f 7f 85 90 - 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 - 00a90 66 0f 6f 45 40 movdqa xmm0, XMMWORD PTR row1$[rbp] - 00a95 66 0f 61 85 a0 - 00 00 00 punpcklwd xmm0, XMMWORD PTR row3$[rbp] - 00a9d 66 0f 7f 45 40 movdqa XMMWORD PTR row1$[rbp], xmm0 - 00aa2 66 0f 6f 85 90 - 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] - 00aaa 66 0f 69 85 a0 - 00 00 00 punpckhwd xmm0, XMMWORD PTR row3$[rbp] - 00ab2 66 0f 7f 85 a0 - 00 00 00 movdqa XMMWORD PTR row3$[rbp], xmm0 - -; 2941 : dct_interleave16(row4, row6); - - 00aba 66 0f 6f 85 d0 - 00 00 00 movdqa xmm0, XMMWORD PTR row4$[rbp] - 00ac2 66 0f 7f 85 90 - 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 - 00aca 66 0f 6f 85 d0 - 00 00 00 movdqa xmm0, XMMWORD PTR row4$[rbp] - 00ad2 66 0f 61 85 30 - 01 00 00 punpcklwd xmm0, XMMWORD PTR row6$[rbp] - 00ada 66 0f 7f 85 d0 - 00 00 00 movdqa XMMWORD PTR row4$[rbp], xmm0 - 00ae2 66 0f 6f 85 90 - 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] - 00aea 66 0f 69 85 30 - 01 00 00 punpckhwd xmm0, XMMWORD PTR row6$[rbp] - 00af2 66 0f 7f 85 30 - 01 00 00 movdqa XMMWORD PTR row6$[rbp], xmm0 - -; 2942 : dct_interleave16(row5, row7); - - 00afa 66 0f 6f 85 00 - 01 00 00 movdqa xmm0, XMMWORD PTR row5$[rbp] - 00b02 66 0f 7f 85 90 - 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 - 00b0a 66 0f 6f 85 00 - 01 00 00 movdqa xmm0, XMMWORD PTR row5$[rbp] - 00b12 66 0f 61 85 60 - 01 00 00 punpcklwd xmm0, XMMWORD PTR row7$[rbp] - 00b1a 66 0f 7f 85 00 - 01 00 00 movdqa XMMWORD PTR row5$[rbp], xmm0 - 00b22 66 0f 6f 85 90 - 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] - 00b2a 66 0f 69 85 60 - 01 00 00 punpckhwd xmm0, XMMWORD PTR row7$[rbp] - 00b32 66 0f 7f 85 60 - 01 00 00 movdqa XMMWORD PTR row7$[rbp], xmm0 - -; 2943 : -; 2944 : // transpose pass 3 -; 2945 : dct_interleave16(row0, row1); - - 00b3a 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] - 00b3f 66 0f 7f 85 90 - 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 - 00b47 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] - 00b4c 66 0f 61 45 40 punpcklwd xmm0, XMMWORD PTR row1$[rbp] - 00b51 66 0f 7f 45 10 movdqa XMMWORD PTR row0$[rbp], xmm0 - 00b56 66 0f 6f 85 90 - 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] - 00b5e 66 0f 69 45 40 punpckhwd xmm0, XMMWORD PTR row1$[rbp] - 00b63 66 0f 7f 45 40 movdqa XMMWORD PTR row1$[rbp], xmm0 - -; 2946 : dct_interleave16(row2, row3); - - 00b68 66 0f 6f 45 70 movdqa xmm0, XMMWORD PTR row2$[rbp] - 00b6d 66 0f 7f 85 90 - 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 - 00b75 66 0f 6f 45 70 movdqa xmm0, XMMWORD PTR row2$[rbp] - 00b7a 66 0f 61 85 a0 - 00 00 00 punpcklwd xmm0, XMMWORD PTR row3$[rbp] - 00b82 66 0f 7f 45 70 movdqa XMMWORD PTR row2$[rbp], xmm0 - 00b87 66 0f 6f 85 90 - 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] - 00b8f 66 0f 69 85 a0 - 00 00 00 punpckhwd xmm0, XMMWORD PTR row3$[rbp] - 00b97 66 0f 7f 85 a0 - 00 00 00 movdqa XMMWORD PTR row3$[rbp], xmm0 - -; 2947 : dct_interleave16(row4, row5); - - 00b9f 66 0f 6f 85 d0 - 00 00 00 movdqa xmm0, XMMWORD PTR row4$[rbp] - 00ba7 66 0f 7f 85 90 - 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 - 00baf 66 0f 6f 85 d0 - 00 00 00 movdqa xmm0, XMMWORD PTR row4$[rbp] - 00bb7 66 0f 61 85 00 - 01 00 00 punpcklwd xmm0, XMMWORD PTR row5$[rbp] - 00bbf 66 0f 7f 85 d0 - 00 00 00 movdqa XMMWORD PTR row4$[rbp], xmm0 - 00bc7 66 0f 6f 85 90 - 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] - 00bcf 66 0f 69 85 00 - 01 00 00 punpckhwd xmm0, XMMWORD PTR row5$[rbp] - 00bd7 66 0f 7f 85 00 - 01 00 00 movdqa XMMWORD PTR row5$[rbp], xmm0 - -; 2948 : dct_interleave16(row6, row7); - - 00bdf 66 0f 6f 85 30 - 01 00 00 movdqa xmm0, XMMWORD PTR row6$[rbp] - 00be7 66 0f 7f 85 90 - 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 - 00bef 66 0f 6f 85 30 - 01 00 00 movdqa xmm0, XMMWORD PTR row6$[rbp] - 00bf7 66 0f 61 85 60 - 01 00 00 punpcklwd xmm0, XMMWORD PTR row7$[rbp] - 00bff 66 0f 7f 85 30 - 01 00 00 movdqa XMMWORD PTR row6$[rbp], xmm0 - 00c07 66 0f 6f 85 90 - 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] - 00c0f 66 0f 69 85 60 - 01 00 00 punpckhwd xmm0, XMMWORD PTR row7$[rbp] - 00c17 66 0f 7f 85 60 - 01 00 00 movdqa XMMWORD PTR row7$[rbp], xmm0 - -; 2949 : } -; 2950 : -; 2951 : // row pass -; 2952 : dct_pass(bias_1, 17); - - 00c1f 66 0f 6f 45 70 movdqa xmm0, XMMWORD PTR row2$[rbp] - 00c24 66 0f 61 85 30 - 01 00 00 punpcklwd xmm0, XMMWORD PTR row6$[rbp] - 00c2c 66 0f 7f 85 20 - 11 00 00 movdqa XMMWORD PTR rot0_0lo$73[rbp], xmm0 - 00c34 66 0f 6f 45 70 movdqa xmm0, XMMWORD PTR row2$[rbp] - 00c39 66 0f 69 85 30 - 01 00 00 punpckhwd xmm0, XMMWORD PTR row6$[rbp] - 00c41 66 0f 7f 85 50 - 11 00 00 movdqa XMMWORD PTR rot0_0hi$74[rbp], xmm0 - 00c49 66 0f 6f 85 20 - 11 00 00 movdqa xmm0, XMMWORD PTR rot0_0lo$73[rbp] - 00c51 66 0f f5 85 c0 - 01 00 00 pmaddwd xmm0, XMMWORD PTR rot0_0$[rbp] - 00c59 66 0f 7f 85 80 - 11 00 00 movdqa XMMWORD PTR t2e_l$75[rbp], xmm0 - 00c61 66 0f 6f 85 50 - 11 00 00 movdqa xmm0, XMMWORD PTR rot0_0hi$74[rbp] - 00c69 66 0f f5 85 c0 - 01 00 00 pmaddwd xmm0, XMMWORD PTR rot0_0$[rbp] - 00c71 66 0f 7f 85 b0 - 11 00 00 movdqa XMMWORD PTR t2e_h$76[rbp], xmm0 - 00c79 66 0f 6f 85 20 - 11 00 00 movdqa xmm0, XMMWORD PTR rot0_0lo$73[rbp] - 00c81 66 0f f5 85 f0 - 01 00 00 pmaddwd xmm0, XMMWORD PTR rot0_1$[rbp] - 00c89 66 0f 7f 85 e0 - 11 00 00 movdqa XMMWORD PTR t3e_l$77[rbp], xmm0 - 00c91 66 0f 6f 85 50 - 11 00 00 movdqa xmm0, XMMWORD PTR rot0_0hi$74[rbp] - 00c99 66 0f f5 85 f0 - 01 00 00 pmaddwd xmm0, XMMWORD PTR rot0_1$[rbp] - 00ca1 66 0f 7f 85 10 - 12 00 00 movdqa XMMWORD PTR t3e_h$78[rbp], xmm0 - 00ca9 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] - 00cae 66 0f fd 85 d0 - 00 00 00 paddw xmm0, XMMWORD PTR row4$[rbp] - 00cb6 66 0f 7f 85 40 - 12 00 00 movdqa XMMWORD PTR sum04$79[rbp], xmm0 - 00cbe 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] - 00cc3 66 0f f9 85 d0 - 00 00 00 psubw xmm0, XMMWORD PTR row4$[rbp] - 00ccb 66 0f 7f 85 70 - 12 00 00 movdqa XMMWORD PTR dif04$80[rbp], xmm0 - 00cd3 66 0f ef c0 pxor xmm0, xmm0 - 00cd7 66 0f 61 85 40 - 12 00 00 punpcklwd xmm0, XMMWORD PTR sum04$79[rbp] - 00cdf 66 0f 72 e0 04 psrad xmm0, 4 - 00ce4 66 0f 7f 85 a0 - 12 00 00 movdqa XMMWORD PTR t0e_l$81[rbp], xmm0 - 00cec 66 0f ef c0 pxor xmm0, xmm0 - 00cf0 66 0f 69 85 40 - 12 00 00 punpckhwd xmm0, XMMWORD PTR sum04$79[rbp] - 00cf8 66 0f 72 e0 04 psrad xmm0, 4 - 00cfd 66 0f 7f 85 d0 - 12 00 00 movdqa XMMWORD PTR t0e_h$82[rbp], xmm0 - 00d05 66 0f ef c0 pxor xmm0, xmm0 - 00d09 66 0f 61 85 70 - 12 00 00 punpcklwd xmm0, XMMWORD PTR dif04$80[rbp] - 00d11 66 0f 72 e0 04 psrad xmm0, 4 - 00d16 66 0f 7f 85 00 - 13 00 00 movdqa XMMWORD PTR t1e_l$83[rbp], xmm0 - 00d1e 66 0f ef c0 pxor xmm0, xmm0 - 00d22 66 0f 69 85 70 - 12 00 00 punpckhwd xmm0, XMMWORD PTR dif04$80[rbp] - 00d2a 66 0f 72 e0 04 psrad xmm0, 4 - 00d2f 66 0f 7f 85 30 - 13 00 00 movdqa XMMWORD PTR t1e_h$84[rbp], xmm0 - 00d37 66 0f 6f 85 a0 - 12 00 00 movdqa xmm0, XMMWORD PTR t0e_l$81[rbp] - 00d3f 66 0f fe 85 e0 - 11 00 00 paddd xmm0, XMMWORD PTR t3e_l$77[rbp] - 00d47 66 0f 7f 85 60 - 13 00 00 movdqa XMMWORD PTR x0_l$85[rbp], xmm0 - 00d4f 66 0f 6f 85 d0 - 12 00 00 movdqa xmm0, XMMWORD PTR t0e_h$82[rbp] - 00d57 66 0f fe 85 10 - 12 00 00 paddd xmm0, XMMWORD PTR t3e_h$78[rbp] - 00d5f 66 0f 7f 85 90 - 13 00 00 movdqa XMMWORD PTR x0_h$86[rbp], xmm0 - 00d67 66 0f 6f 85 a0 - 12 00 00 movdqa xmm0, XMMWORD PTR t0e_l$81[rbp] - 00d6f 66 0f fa 85 e0 - 11 00 00 psubd xmm0, XMMWORD PTR t3e_l$77[rbp] - 00d77 66 0f 7f 85 c0 - 13 00 00 movdqa XMMWORD PTR x3_l$87[rbp], xmm0 - 00d7f 66 0f 6f 85 d0 - 12 00 00 movdqa xmm0, XMMWORD PTR t0e_h$82[rbp] - 00d87 66 0f fa 85 10 - 12 00 00 psubd xmm0, XMMWORD PTR t3e_h$78[rbp] - 00d8f 66 0f 7f 85 f0 - 13 00 00 movdqa XMMWORD PTR x3_h$88[rbp], xmm0 - 00d97 66 0f 6f 85 00 - 13 00 00 movdqa xmm0, XMMWORD PTR t1e_l$83[rbp] - 00d9f 66 0f fe 85 80 - 11 00 00 paddd xmm0, XMMWORD PTR t2e_l$75[rbp] - 00da7 66 0f 7f 85 20 - 14 00 00 movdqa XMMWORD PTR x1_l$89[rbp], xmm0 - 00daf 66 0f 6f 85 30 - 13 00 00 movdqa xmm0, XMMWORD PTR t1e_h$84[rbp] - 00db7 66 0f fe 85 b0 - 11 00 00 paddd xmm0, XMMWORD PTR t2e_h$76[rbp] - 00dbf 66 0f 7f 85 50 - 14 00 00 movdqa XMMWORD PTR x1_h$90[rbp], xmm0 - 00dc7 66 0f 6f 85 00 - 13 00 00 movdqa xmm0, XMMWORD PTR t1e_l$83[rbp] - 00dcf 66 0f fa 85 80 - 11 00 00 psubd xmm0, XMMWORD PTR t2e_l$75[rbp] - 00dd7 66 0f 7f 85 80 - 14 00 00 movdqa XMMWORD PTR x2_l$91[rbp], xmm0 - 00ddf 66 0f 6f 85 30 - 13 00 00 movdqa xmm0, XMMWORD PTR t1e_h$84[rbp] - 00de7 66 0f fa 85 b0 - 11 00 00 psubd xmm0, XMMWORD PTR t2e_h$76[rbp] - 00def 66 0f 7f 85 b0 - 14 00 00 movdqa XMMWORD PTR x2_h$92[rbp], xmm0 - 00df7 66 0f 6f 85 60 - 01 00 00 movdqa xmm0, XMMWORD PTR row7$[rbp] - 00dff 66 0f 61 85 a0 - 00 00 00 punpcklwd xmm0, XMMWORD PTR row3$[rbp] - 00e07 66 0f 7f 85 e0 - 14 00 00 movdqa XMMWORD PTR rot2_0lo$93[rbp], xmm0 - 00e0f 66 0f 6f 85 60 - 01 00 00 movdqa xmm0, XMMWORD PTR row7$[rbp] - 00e17 66 0f 69 85 a0 - 00 00 00 punpckhwd xmm0, XMMWORD PTR row3$[rbp] - 00e1f 66 0f 7f 85 10 - 15 00 00 movdqa XMMWORD PTR rot2_0hi$94[rbp], xmm0 - 00e27 66 0f 6f 85 e0 - 14 00 00 movdqa xmm0, XMMWORD PTR rot2_0lo$93[rbp] - 00e2f 66 0f f5 85 80 - 02 00 00 pmaddwd xmm0, XMMWORD PTR rot2_0$[rbp] - 00e37 66 0f 7f 85 40 - 15 00 00 movdqa XMMWORD PTR y0o_l$95[rbp], xmm0 - 00e3f 66 0f 6f 85 10 - 15 00 00 movdqa xmm0, XMMWORD PTR rot2_0hi$94[rbp] - 00e47 66 0f f5 85 80 - 02 00 00 pmaddwd xmm0, XMMWORD PTR rot2_0$[rbp] - 00e4f 66 0f 7f 85 70 - 15 00 00 movdqa XMMWORD PTR y0o_h$96[rbp], xmm0 - 00e57 66 0f 6f 85 e0 - 14 00 00 movdqa xmm0, XMMWORD PTR rot2_0lo$93[rbp] - 00e5f 66 0f f5 85 b0 - 02 00 00 pmaddwd xmm0, XMMWORD PTR rot2_1$[rbp] - 00e67 66 0f 7f 85 a0 - 15 00 00 movdqa XMMWORD PTR y2o_l$97[rbp], xmm0 - 00e6f 66 0f 6f 85 10 - 15 00 00 movdqa xmm0, XMMWORD PTR rot2_0hi$94[rbp] - 00e77 66 0f f5 85 b0 - 02 00 00 pmaddwd xmm0, XMMWORD PTR rot2_1$[rbp] - 00e7f 66 0f 7f 85 d0 - 15 00 00 movdqa XMMWORD PTR y2o_h$98[rbp], xmm0 - 00e87 66 0f 6f 85 00 - 01 00 00 movdqa xmm0, XMMWORD PTR row5$[rbp] - 00e8f 66 0f 61 45 40 punpcklwd xmm0, XMMWORD PTR row1$[rbp] - 00e94 66 0f 7f 85 00 - 16 00 00 movdqa XMMWORD PTR rot3_0lo$99[rbp], xmm0 - 00e9c 66 0f 6f 85 00 - 01 00 00 movdqa xmm0, XMMWORD PTR row5$[rbp] - 00ea4 66 0f 69 45 40 punpckhwd xmm0, XMMWORD PTR row1$[rbp] - 00ea9 66 0f 7f 85 30 - 16 00 00 movdqa XMMWORD PTR rot3_0hi$100[rbp], xmm0 - 00eb1 66 0f 6f 85 00 - 16 00 00 movdqa xmm0, XMMWORD PTR rot3_0lo$99[rbp] - 00eb9 66 0f f5 85 e0 - 02 00 00 pmaddwd xmm0, XMMWORD PTR rot3_0$[rbp] - 00ec1 66 0f 7f 85 60 - 16 00 00 movdqa XMMWORD PTR y1o_l$101[rbp], xmm0 - 00ec9 66 0f 6f 85 30 - 16 00 00 movdqa xmm0, XMMWORD PTR rot3_0hi$100[rbp] - 00ed1 66 0f f5 85 e0 - 02 00 00 pmaddwd xmm0, XMMWORD PTR rot3_0$[rbp] - 00ed9 66 0f 7f 85 90 - 16 00 00 movdqa XMMWORD PTR y1o_h$102[rbp], xmm0 - 00ee1 66 0f 6f 85 00 - 16 00 00 movdqa xmm0, XMMWORD PTR rot3_0lo$99[rbp] - 00ee9 66 0f f5 85 10 - 03 00 00 pmaddwd xmm0, XMMWORD PTR rot3_1$[rbp] - 00ef1 66 0f 7f 85 c0 - 16 00 00 movdqa XMMWORD PTR y3o_l$103[rbp], xmm0 - 00ef9 66 0f 6f 85 30 - 16 00 00 movdqa xmm0, XMMWORD PTR rot3_0hi$100[rbp] - 00f01 66 0f f5 85 10 - 03 00 00 pmaddwd xmm0, XMMWORD PTR rot3_1$[rbp] - 00f09 66 0f 7f 85 f0 - 16 00 00 movdqa XMMWORD PTR y3o_h$104[rbp], xmm0 - 00f11 66 0f 6f 45 40 movdqa xmm0, XMMWORD PTR row1$[rbp] - 00f16 66 0f fd 85 60 - 01 00 00 paddw xmm0, XMMWORD PTR row7$[rbp] - 00f1e 66 0f 7f 85 20 - 17 00 00 movdqa XMMWORD PTR sum17$105[rbp], xmm0 - 00f26 66 0f 6f 85 a0 - 00 00 00 movdqa xmm0, XMMWORD PTR row3$[rbp] - 00f2e 66 0f fd 85 00 - 01 00 00 paddw xmm0, XMMWORD PTR row5$[rbp] - 00f36 66 0f 7f 85 50 - 17 00 00 movdqa XMMWORD PTR sum35$106[rbp], xmm0 - 00f3e 66 0f 6f 85 20 - 17 00 00 movdqa xmm0, XMMWORD PTR sum17$105[rbp] - 00f46 66 0f 61 85 50 - 17 00 00 punpcklwd xmm0, XMMWORD PTR sum35$106[rbp] - 00f4e 66 0f 7f 85 80 - 17 00 00 movdqa XMMWORD PTR rot1_0lo$107[rbp], xmm0 - 00f56 66 0f 6f 85 20 - 17 00 00 movdqa xmm0, XMMWORD PTR sum17$105[rbp] - 00f5e 66 0f 69 85 50 - 17 00 00 punpckhwd xmm0, XMMWORD PTR sum35$106[rbp] - 00f66 66 0f 7f 85 b0 - 17 00 00 movdqa XMMWORD PTR rot1_0hi$108[rbp], xmm0 - 00f6e 66 0f 6f 85 80 - 17 00 00 movdqa xmm0, XMMWORD PTR rot1_0lo$107[rbp] - 00f76 66 0f f5 85 20 - 02 00 00 pmaddwd xmm0, XMMWORD PTR rot1_0$[rbp] - 00f7e 66 0f 7f 85 e0 - 17 00 00 movdqa XMMWORD PTR y4o_l$109[rbp], xmm0 - 00f86 66 0f 6f 85 b0 - 17 00 00 movdqa xmm0, XMMWORD PTR rot1_0hi$108[rbp] - 00f8e 66 0f f5 85 20 - 02 00 00 pmaddwd xmm0, XMMWORD PTR rot1_0$[rbp] - 00f96 66 0f 7f 85 10 - 18 00 00 movdqa XMMWORD PTR y4o_h$110[rbp], xmm0 - 00f9e 66 0f 6f 85 80 - 17 00 00 movdqa xmm0, XMMWORD PTR rot1_0lo$107[rbp] - 00fa6 66 0f f5 85 50 - 02 00 00 pmaddwd xmm0, XMMWORD PTR rot1_1$[rbp] - 00fae 66 0f 7f 85 40 - 18 00 00 movdqa XMMWORD PTR y5o_l$111[rbp], xmm0 - 00fb6 66 0f 6f 85 b0 - 17 00 00 movdqa xmm0, XMMWORD PTR rot1_0hi$108[rbp] - 00fbe 66 0f f5 85 50 - 02 00 00 pmaddwd xmm0, XMMWORD PTR rot1_1$[rbp] - 00fc6 66 0f 7f 85 70 - 18 00 00 movdqa XMMWORD PTR y5o_h$112[rbp], xmm0 - 00fce 66 0f 6f 85 40 - 15 00 00 movdqa xmm0, XMMWORD PTR y0o_l$95[rbp] - 00fd6 66 0f fe 85 e0 - 17 00 00 paddd xmm0, XMMWORD PTR y4o_l$109[rbp] - 00fde 66 0f 7f 85 a0 - 18 00 00 movdqa XMMWORD PTR x4_l$113[rbp], xmm0 - 00fe6 66 0f 6f 85 70 - 15 00 00 movdqa xmm0, XMMWORD PTR y0o_h$96[rbp] - 00fee 66 0f fe 85 10 - 18 00 00 paddd xmm0, XMMWORD PTR y4o_h$110[rbp] - 00ff6 66 0f 7f 85 d0 - 18 00 00 movdqa XMMWORD PTR x4_h$114[rbp], xmm0 - 00ffe 66 0f 6f 85 60 - 16 00 00 movdqa xmm0, XMMWORD PTR y1o_l$101[rbp] - 01006 66 0f fe 85 40 - 18 00 00 paddd xmm0, XMMWORD PTR y5o_l$111[rbp] - 0100e 66 0f 7f 85 00 - 19 00 00 movdqa XMMWORD PTR x5_l$115[rbp], xmm0 - 01016 66 0f 6f 85 90 - 16 00 00 movdqa xmm0, XMMWORD PTR y1o_h$102[rbp] - 0101e 66 0f fe 85 70 - 18 00 00 paddd xmm0, XMMWORD PTR y5o_h$112[rbp] - 01026 66 0f 7f 85 30 - 19 00 00 movdqa XMMWORD PTR x5_h$116[rbp], xmm0 - 0102e 66 0f 6f 85 a0 - 15 00 00 movdqa xmm0, XMMWORD PTR y2o_l$97[rbp] - 01036 66 0f fe 85 40 - 18 00 00 paddd xmm0, XMMWORD PTR y5o_l$111[rbp] - 0103e 66 0f 7f 85 60 - 19 00 00 movdqa XMMWORD PTR x6_l$117[rbp], xmm0 - 01046 66 0f 6f 85 d0 - 15 00 00 movdqa xmm0, XMMWORD PTR y2o_h$98[rbp] - 0104e 66 0f fe 85 70 - 18 00 00 paddd xmm0, XMMWORD PTR y5o_h$112[rbp] - 01056 66 0f 7f 85 90 - 19 00 00 movdqa XMMWORD PTR x6_h$118[rbp], xmm0 - 0105e 66 0f 6f 85 c0 - 16 00 00 movdqa xmm0, XMMWORD PTR y3o_l$103[rbp] - 01066 66 0f fe 85 e0 - 17 00 00 paddd xmm0, XMMWORD PTR y4o_l$109[rbp] - 0106e 66 0f 7f 85 c0 - 19 00 00 movdqa XMMWORD PTR x7_l$119[rbp], xmm0 - 01076 66 0f 6f 85 f0 - 16 00 00 movdqa xmm0, XMMWORD PTR y3o_h$104[rbp] - 0107e 66 0f fe 85 10 - 18 00 00 paddd xmm0, XMMWORD PTR y4o_h$110[rbp] - 01086 66 0f 7f 85 f0 - 19 00 00 movdqa XMMWORD PTR x7_h$120[rbp], xmm0 - 0108e 66 0f 6f 85 60 - 13 00 00 movdqa xmm0, XMMWORD PTR x0_l$85[rbp] - 01096 66 0f fe 85 70 - 03 00 00 paddd xmm0, XMMWORD PTR bias_1$[rbp] - 0109e 66 0f 7f 85 20 - 1a 00 00 movdqa XMMWORD PTR abiased_l$121[rbp], xmm0 - 010a6 66 0f 6f 85 90 - 13 00 00 movdqa xmm0, XMMWORD PTR x0_h$86[rbp] - 010ae 66 0f fe 85 70 - 03 00 00 paddd xmm0, XMMWORD PTR bias_1$[rbp] - 010b6 66 0f 7f 85 50 - 1a 00 00 movdqa XMMWORD PTR abiased_h$122[rbp], xmm0 - 010be 66 0f 6f 85 20 - 1a 00 00 movdqa xmm0, XMMWORD PTR abiased_l$121[rbp] - 010c6 66 0f fe 85 c0 - 19 00 00 paddd xmm0, XMMWORD PTR x7_l$119[rbp] - 010ce 66 0f 7f 85 80 - 1a 00 00 movdqa XMMWORD PTR sum_l$123[rbp], xmm0 - 010d6 66 0f 6f 85 50 - 1a 00 00 movdqa xmm0, XMMWORD PTR abiased_h$122[rbp] - 010de 66 0f fe 85 f0 - 19 00 00 paddd xmm0, XMMWORD PTR x7_h$120[rbp] - 010e6 66 0f 7f 85 b0 - 1a 00 00 movdqa XMMWORD PTR sum_h$124[rbp], xmm0 - 010ee 66 0f 6f 85 20 - 1a 00 00 movdqa xmm0, XMMWORD PTR abiased_l$121[rbp] - 010f6 66 0f fa 85 c0 - 19 00 00 psubd xmm0, XMMWORD PTR x7_l$119[rbp] - 010fe 66 0f 7f 85 e0 - 1a 00 00 movdqa XMMWORD PTR dif_l$125[rbp], xmm0 - 01106 66 0f 6f 85 50 - 1a 00 00 movdqa xmm0, XMMWORD PTR abiased_h$122[rbp] - 0110e 66 0f fa 85 f0 - 19 00 00 psubd xmm0, XMMWORD PTR x7_h$120[rbp] - 01116 66 0f 7f 85 10 - 1b 00 00 movdqa XMMWORD PTR dif_h$126[rbp], xmm0 - 0111e 66 0f 6f 85 b0 - 1a 00 00 movdqa xmm0, XMMWORD PTR sum_h$124[rbp] - 01126 66 0f 72 e0 11 psrad xmm0, 17 - 0112b 66 0f 6f 8d 80 - 1a 00 00 movdqa xmm1, XMMWORD PTR sum_l$123[rbp] - 01133 66 0f 72 e1 11 psrad xmm1, 17 - 01138 66 0f 6b c8 packssdw xmm1, xmm0 - 0113c 66 0f 6f c1 movdqa xmm0, xmm1 - 01140 66 0f 7f 45 10 movdqa XMMWORD PTR row0$[rbp], xmm0 - 01145 66 0f 6f 85 10 - 1b 00 00 movdqa xmm0, XMMWORD PTR dif_h$126[rbp] - 0114d 66 0f 72 e0 11 psrad xmm0, 17 - 01152 66 0f 6f 8d e0 - 1a 00 00 movdqa xmm1, XMMWORD PTR dif_l$125[rbp] - 0115a 66 0f 72 e1 11 psrad xmm1, 17 - 0115f 66 0f 6b c8 packssdw xmm1, xmm0 - 01163 66 0f 6f c1 movdqa xmm0, xmm1 - 01167 66 0f 7f 85 60 - 01 00 00 movdqa XMMWORD PTR row7$[rbp], xmm0 - 0116f 66 0f 6f 85 20 - 14 00 00 movdqa xmm0, XMMWORD PTR x1_l$89[rbp] - 01177 66 0f fe 85 70 - 03 00 00 paddd xmm0, XMMWORD PTR bias_1$[rbp] - 0117f 66 0f 7f 85 40 - 1b 00 00 movdqa XMMWORD PTR abiased_l$127[rbp], xmm0 - 01187 66 0f 6f 85 50 - 14 00 00 movdqa xmm0, XMMWORD PTR x1_h$90[rbp] - 0118f 66 0f fe 85 70 - 03 00 00 paddd xmm0, XMMWORD PTR bias_1$[rbp] - 01197 66 0f 7f 85 70 - 1b 00 00 movdqa XMMWORD PTR abiased_h$128[rbp], xmm0 - 0119f 66 0f 6f 85 40 - 1b 00 00 movdqa xmm0, XMMWORD PTR abiased_l$127[rbp] - 011a7 66 0f fe 85 60 - 19 00 00 paddd xmm0, XMMWORD PTR x6_l$117[rbp] - 011af 66 0f 7f 85 a0 - 1b 00 00 movdqa XMMWORD PTR sum_l$129[rbp], xmm0 - 011b7 66 0f 6f 85 70 - 1b 00 00 movdqa xmm0, XMMWORD PTR abiased_h$128[rbp] - 011bf 66 0f fe 85 90 - 19 00 00 paddd xmm0, XMMWORD PTR x6_h$118[rbp] - 011c7 66 0f 7f 85 d0 - 1b 00 00 movdqa XMMWORD PTR sum_h$130[rbp], xmm0 - 011cf 66 0f 6f 85 40 - 1b 00 00 movdqa xmm0, XMMWORD PTR abiased_l$127[rbp] - 011d7 66 0f fa 85 60 - 19 00 00 psubd xmm0, XMMWORD PTR x6_l$117[rbp] - 011df 66 0f 7f 85 00 - 1c 00 00 movdqa XMMWORD PTR dif_l$131[rbp], xmm0 - 011e7 66 0f 6f 85 70 - 1b 00 00 movdqa xmm0, XMMWORD PTR abiased_h$128[rbp] - 011ef 66 0f fa 85 90 - 19 00 00 psubd xmm0, XMMWORD PTR x6_h$118[rbp] - 011f7 66 0f 7f 85 30 - 1c 00 00 movdqa XMMWORD PTR dif_h$132[rbp], xmm0 - 011ff 66 0f 6f 85 d0 - 1b 00 00 movdqa xmm0, XMMWORD PTR sum_h$130[rbp] - 01207 66 0f 72 e0 11 psrad xmm0, 17 - 0120c 66 0f 6f 8d a0 - 1b 00 00 movdqa xmm1, XMMWORD PTR sum_l$129[rbp] - 01214 66 0f 72 e1 11 psrad xmm1, 17 - 01219 66 0f 6b c8 packssdw xmm1, xmm0 - 0121d 66 0f 6f c1 movdqa xmm0, xmm1 - 01221 66 0f 7f 45 40 movdqa XMMWORD PTR row1$[rbp], xmm0 - 01226 66 0f 6f 85 30 - 1c 00 00 movdqa xmm0, XMMWORD PTR dif_h$132[rbp] - 0122e 66 0f 72 e0 11 psrad xmm0, 17 - 01233 66 0f 6f 8d 00 - 1c 00 00 movdqa xmm1, XMMWORD PTR dif_l$131[rbp] - 0123b 66 0f 72 e1 11 psrad xmm1, 17 - 01240 66 0f 6b c8 packssdw xmm1, xmm0 - 01244 66 0f 6f c1 movdqa xmm0, xmm1 - 01248 66 0f 7f 85 30 - 01 00 00 movdqa XMMWORD PTR row6$[rbp], xmm0 - 01250 66 0f 6f 85 80 - 14 00 00 movdqa xmm0, XMMWORD PTR x2_l$91[rbp] - 01258 66 0f fe 85 70 - 03 00 00 paddd xmm0, XMMWORD PTR bias_1$[rbp] - 01260 66 0f 7f 85 60 - 1c 00 00 movdqa XMMWORD PTR abiased_l$133[rbp], xmm0 - 01268 66 0f 6f 85 b0 - 14 00 00 movdqa xmm0, XMMWORD PTR x2_h$92[rbp] - 01270 66 0f fe 85 70 - 03 00 00 paddd xmm0, XMMWORD PTR bias_1$[rbp] - 01278 66 0f 7f 85 90 - 1c 00 00 movdqa XMMWORD PTR abiased_h$134[rbp], xmm0 - 01280 66 0f 6f 85 60 - 1c 00 00 movdqa xmm0, XMMWORD PTR abiased_l$133[rbp] - 01288 66 0f fe 85 00 - 19 00 00 paddd xmm0, XMMWORD PTR x5_l$115[rbp] - 01290 66 0f 7f 85 c0 - 1c 00 00 movdqa XMMWORD PTR sum_l$135[rbp], xmm0 - 01298 66 0f 6f 85 90 - 1c 00 00 movdqa xmm0, XMMWORD PTR abiased_h$134[rbp] - 012a0 66 0f fe 85 30 - 19 00 00 paddd xmm0, XMMWORD PTR x5_h$116[rbp] - 012a8 66 0f 7f 85 f0 - 1c 00 00 movdqa XMMWORD PTR sum_h$136[rbp], xmm0 - 012b0 66 0f 6f 85 60 - 1c 00 00 movdqa xmm0, XMMWORD PTR abiased_l$133[rbp] - 012b8 66 0f fa 85 00 - 19 00 00 psubd xmm0, XMMWORD PTR x5_l$115[rbp] - 012c0 66 0f 7f 85 20 - 1d 00 00 movdqa XMMWORD PTR dif_l$137[rbp], xmm0 - 012c8 66 0f 6f 85 90 - 1c 00 00 movdqa xmm0, XMMWORD PTR abiased_h$134[rbp] - 012d0 66 0f fa 85 30 - 19 00 00 psubd xmm0, XMMWORD PTR x5_h$116[rbp] - 012d8 66 0f 7f 85 50 - 1d 00 00 movdqa XMMWORD PTR dif_h$138[rbp], xmm0 - 012e0 66 0f 6f 85 f0 - 1c 00 00 movdqa xmm0, XMMWORD PTR sum_h$136[rbp] - 012e8 66 0f 72 e0 11 psrad xmm0, 17 - 012ed 66 0f 6f 8d c0 - 1c 00 00 movdqa xmm1, XMMWORD PTR sum_l$135[rbp] - 012f5 66 0f 72 e1 11 psrad xmm1, 17 - 012fa 66 0f 6b c8 packssdw xmm1, xmm0 - 012fe 66 0f 6f c1 movdqa xmm0, xmm1 - 01302 66 0f 7f 45 70 movdqa XMMWORD PTR row2$[rbp], xmm0 - 01307 66 0f 6f 85 50 - 1d 00 00 movdqa xmm0, XMMWORD PTR dif_h$138[rbp] - 0130f 66 0f 72 e0 11 psrad xmm0, 17 - 01314 66 0f 6f 8d 20 - 1d 00 00 movdqa xmm1, XMMWORD PTR dif_l$137[rbp] - 0131c 66 0f 72 e1 11 psrad xmm1, 17 - 01321 66 0f 6b c8 packssdw xmm1, xmm0 - 01325 66 0f 6f c1 movdqa xmm0, xmm1 - 01329 66 0f 7f 85 00 - 01 00 00 movdqa XMMWORD PTR row5$[rbp], xmm0 - 01331 66 0f 6f 85 c0 - 13 00 00 movdqa xmm0, XMMWORD PTR x3_l$87[rbp] - 01339 66 0f fe 85 70 - 03 00 00 paddd xmm0, XMMWORD PTR bias_1$[rbp] - 01341 66 0f 7f 85 80 - 1d 00 00 movdqa XMMWORD PTR abiased_l$139[rbp], xmm0 - 01349 66 0f 6f 85 f0 - 13 00 00 movdqa xmm0, XMMWORD PTR x3_h$88[rbp] - 01351 66 0f fe 85 70 - 03 00 00 paddd xmm0, XMMWORD PTR bias_1$[rbp] - 01359 66 0f 7f 85 b0 - 1d 00 00 movdqa XMMWORD PTR abiased_h$140[rbp], xmm0 - 01361 66 0f 6f 85 80 - 1d 00 00 movdqa xmm0, XMMWORD PTR abiased_l$139[rbp] - 01369 66 0f fe 85 a0 - 18 00 00 paddd xmm0, XMMWORD PTR x4_l$113[rbp] - 01371 66 0f 7f 85 e0 - 1d 00 00 movdqa XMMWORD PTR sum_l$141[rbp], xmm0 - 01379 66 0f 6f 85 b0 - 1d 00 00 movdqa xmm0, XMMWORD PTR abiased_h$140[rbp] - 01381 66 0f fe 85 d0 - 18 00 00 paddd xmm0, XMMWORD PTR x4_h$114[rbp] - 01389 66 0f 7f 85 10 - 1e 00 00 movdqa XMMWORD PTR sum_h$142[rbp], xmm0 - 01391 66 0f 6f 85 80 - 1d 00 00 movdqa xmm0, XMMWORD PTR abiased_l$139[rbp] - 01399 66 0f fa 85 a0 - 18 00 00 psubd xmm0, XMMWORD PTR x4_l$113[rbp] - 013a1 66 0f 7f 85 40 - 1e 00 00 movdqa XMMWORD PTR dif_l$143[rbp], xmm0 - 013a9 66 0f 6f 85 b0 - 1d 00 00 movdqa xmm0, XMMWORD PTR abiased_h$140[rbp] - 013b1 66 0f fa 85 d0 - 18 00 00 psubd xmm0, XMMWORD PTR x4_h$114[rbp] - 013b9 66 0f 7f 85 70 - 1e 00 00 movdqa XMMWORD PTR dif_h$144[rbp], xmm0 - 013c1 66 0f 6f 85 10 - 1e 00 00 movdqa xmm0, XMMWORD PTR sum_h$142[rbp] - 013c9 66 0f 72 e0 11 psrad xmm0, 17 - 013ce 66 0f 6f 8d e0 - 1d 00 00 movdqa xmm1, XMMWORD PTR sum_l$141[rbp] - 013d6 66 0f 72 e1 11 psrad xmm1, 17 - 013db 66 0f 6b c8 packssdw xmm1, xmm0 - 013df 66 0f 6f c1 movdqa xmm0, xmm1 - 013e3 66 0f 7f 85 a0 - 00 00 00 movdqa XMMWORD PTR row3$[rbp], xmm0 - 013eb 66 0f 6f 85 70 - 1e 00 00 movdqa xmm0, XMMWORD PTR dif_h$144[rbp] - 013f3 66 0f 72 e0 11 psrad xmm0, 17 - 013f8 66 0f 6f 8d 40 - 1e 00 00 movdqa xmm1, XMMWORD PTR dif_l$143[rbp] - 01400 66 0f 72 e1 11 psrad xmm1, 17 - 01405 66 0f 6b c8 packssdw xmm1, xmm0 - 01409 66 0f 6f c1 movdqa xmm0, xmm1 - 0140d 66 0f 7f 85 d0 - 00 00 00 movdqa XMMWORD PTR row4$[rbp], xmm0 - -; 2953 : -; 2954 : { -; 2955 : // pack -; 2956 : __m128i p0 = _mm_packus_epi16(row0, row1); // a0a1a2a3...a7b0b1b2b3...b7 - - 01415 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] - 0141a 66 0f 67 45 40 packuswb xmm0, XMMWORD PTR row1$[rbp] - 0141f 66 0f 7f 85 a0 - 1e 00 00 movdqa XMMWORD PTR p0$145[rbp], xmm0 - -; 2957 : __m128i p1 = _mm_packus_epi16(row2, row3); - - 01427 66 0f 6f 45 70 movdqa xmm0, XMMWORD PTR row2$[rbp] - 0142c 66 0f 67 85 a0 - 00 00 00 packuswb xmm0, XMMWORD PTR row3$[rbp] - 01434 66 0f 7f 85 d0 - 1e 00 00 movdqa XMMWORD PTR p1$146[rbp], xmm0 - -; 2958 : __m128i p2 = _mm_packus_epi16(row4, row5); - - 0143c 66 0f 6f 85 d0 - 00 00 00 movdqa xmm0, XMMWORD PTR row4$[rbp] - 01444 66 0f 67 85 00 - 01 00 00 packuswb xmm0, XMMWORD PTR row5$[rbp] - 0144c 66 0f 7f 85 00 - 1f 00 00 movdqa XMMWORD PTR p2$147[rbp], xmm0 - -; 2959 : __m128i p3 = _mm_packus_epi16(row6, row7); - - 01454 66 0f 6f 85 30 - 01 00 00 movdqa xmm0, XMMWORD PTR row6$[rbp] - 0145c 66 0f 67 85 60 - 01 00 00 packuswb xmm0, XMMWORD PTR row7$[rbp] - 01464 66 0f 7f 85 30 - 1f 00 00 movdqa XMMWORD PTR p3$148[rbp], xmm0 - -; 2960 : -; 2961 : // 8bit 8x8 transpose pass 1 -; 2962 : dct_interleave8(p0, p2); // a0e0a1e1... - - 0146c 66 0f 6f 85 a0 - 1e 00 00 movdqa xmm0, XMMWORD PTR p0$145[rbp] - 01474 66 0f 7f 85 90 - 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 - 0147c 66 0f 6f 85 a0 - 1e 00 00 movdqa xmm0, XMMWORD PTR p0$145[rbp] - 01484 66 0f 60 85 00 - 1f 00 00 punpcklbw xmm0, XMMWORD PTR p2$147[rbp] - 0148c 66 0f 7f 85 a0 - 1e 00 00 movdqa XMMWORD PTR p0$145[rbp], xmm0 - 01494 66 0f 6f 85 90 - 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] - 0149c 66 0f 68 85 00 - 1f 00 00 punpckhbw xmm0, XMMWORD PTR p2$147[rbp] - 014a4 66 0f 7f 85 00 - 1f 00 00 movdqa XMMWORD PTR p2$147[rbp], xmm0 - -; 2963 : dct_interleave8(p1, p3); // c0g0c1g1... - - 014ac 66 0f 6f 85 d0 - 1e 00 00 movdqa xmm0, XMMWORD PTR p1$146[rbp] - 014b4 66 0f 7f 85 90 - 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 - 014bc 66 0f 6f 85 d0 - 1e 00 00 movdqa xmm0, XMMWORD PTR p1$146[rbp] - 014c4 66 0f 60 85 30 - 1f 00 00 punpcklbw xmm0, XMMWORD PTR p3$148[rbp] - 014cc 66 0f 7f 85 d0 - 1e 00 00 movdqa XMMWORD PTR p1$146[rbp], xmm0 - 014d4 66 0f 6f 85 90 - 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] - 014dc 66 0f 68 85 30 - 1f 00 00 punpckhbw xmm0, XMMWORD PTR p3$148[rbp] - 014e4 66 0f 7f 85 30 - 1f 00 00 movdqa XMMWORD PTR p3$148[rbp], xmm0 - -; 2964 : -; 2965 : // transpose pass 2 -; 2966 : dct_interleave8(p0, p1); // a0c0e0g0... - - 014ec 66 0f 6f 85 a0 - 1e 00 00 movdqa xmm0, XMMWORD PTR p0$145[rbp] - 014f4 66 0f 7f 85 90 - 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 - 014fc 66 0f 6f 85 a0 - 1e 00 00 movdqa xmm0, XMMWORD PTR p0$145[rbp] - 01504 66 0f 60 85 d0 - 1e 00 00 punpcklbw xmm0, XMMWORD PTR p1$146[rbp] - 0150c 66 0f 7f 85 a0 - 1e 00 00 movdqa XMMWORD PTR p0$145[rbp], xmm0 - 01514 66 0f 6f 85 90 - 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] - 0151c 66 0f 68 85 d0 - 1e 00 00 punpckhbw xmm0, XMMWORD PTR p1$146[rbp] - 01524 66 0f 7f 85 d0 - 1e 00 00 movdqa XMMWORD PTR p1$146[rbp], xmm0 - -; 2967 : dct_interleave8(p2, p3); // b0d0f0h0... - - 0152c 66 0f 6f 85 00 - 1f 00 00 movdqa xmm0, XMMWORD PTR p2$147[rbp] - 01534 66 0f 7f 85 90 - 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 - 0153c 66 0f 6f 85 00 - 1f 00 00 movdqa xmm0, XMMWORD PTR p2$147[rbp] - 01544 66 0f 60 85 30 - 1f 00 00 punpcklbw xmm0, XMMWORD PTR p3$148[rbp] - 0154c 66 0f 7f 85 00 - 1f 00 00 movdqa XMMWORD PTR p2$147[rbp], xmm0 - 01554 66 0f 6f 85 90 - 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] - 0155c 66 0f 68 85 30 - 1f 00 00 punpckhbw xmm0, XMMWORD PTR p3$148[rbp] - 01564 66 0f 7f 85 30 - 1f 00 00 movdqa XMMWORD PTR p3$148[rbp], xmm0 - -; 2968 : -; 2969 : // transpose pass 3 -; 2970 : dct_interleave8(p0, p2); // a0b0c0d0... - - 0156c 66 0f 6f 85 a0 - 1e 00 00 movdqa xmm0, XMMWORD PTR p0$145[rbp] - 01574 66 0f 7f 85 90 - 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 - 0157c 66 0f 6f 85 a0 - 1e 00 00 movdqa xmm0, XMMWORD PTR p0$145[rbp] - 01584 66 0f 60 85 00 - 1f 00 00 punpcklbw xmm0, XMMWORD PTR p2$147[rbp] - 0158c 66 0f 7f 85 a0 - 1e 00 00 movdqa XMMWORD PTR p0$145[rbp], xmm0 - 01594 66 0f 6f 85 90 - 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] - 0159c 66 0f 68 85 00 - 1f 00 00 punpckhbw xmm0, XMMWORD PTR p2$147[rbp] - 015a4 66 0f 7f 85 00 - 1f 00 00 movdqa XMMWORD PTR p2$147[rbp], xmm0 - -; 2971 : dct_interleave8(p1, p3); // a4b4c4d4... - - 015ac 66 0f 6f 85 d0 - 1e 00 00 movdqa xmm0, XMMWORD PTR p1$146[rbp] - 015b4 66 0f 7f 85 90 - 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 - 015bc 66 0f 6f 85 d0 - 1e 00 00 movdqa xmm0, XMMWORD PTR p1$146[rbp] - 015c4 66 0f 60 85 30 - 1f 00 00 punpcklbw xmm0, XMMWORD PTR p3$148[rbp] - 015cc 66 0f 7f 85 d0 - 1e 00 00 movdqa XMMWORD PTR p1$146[rbp], xmm0 - 015d4 66 0f 6f 85 90 - 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] - 015dc 66 0f 68 85 30 - 1f 00 00 punpckhbw xmm0, XMMWORD PTR p3$148[rbp] - 015e4 66 0f 7f 85 30 - 1f 00 00 movdqa XMMWORD PTR p3$148[rbp], xmm0 - -; 2972 : -; 2973 : // store -; 2974 : _mm_storel_epi64((__m128i *)out, p0); - - 015ec 48 8b 85 70 25 - 00 00 mov rax, QWORD PTR out$[rbp] - 015f3 66 0f 6f 85 a0 - 1e 00 00 movdqa xmm0, XMMWORD PTR p0$145[rbp] - 015fb 66 0f d6 00 movq QWORD PTR [rax], xmm0 - -; 2975 : out += out_stride; - - 015ff 48 63 85 78 25 - 00 00 movsxd rax, DWORD PTR out_stride$[rbp] - 01606 48 8b 8d 70 25 - 00 00 mov rcx, QWORD PTR out$[rbp] - 0160d 48 03 c8 add rcx, rax - 01610 48 8b c1 mov rax, rcx - 01613 48 89 85 70 25 - 00 00 mov QWORD PTR out$[rbp], rax - -; 2976 : _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p0, 0x4e)); - - 0161a 66 0f 6f 85 a0 - 1e 00 00 movdqa xmm0, XMMWORD PTR p0$145[rbp] - 01622 66 0f 70 c0 4e pshufd xmm0, xmm0, 78 ; 0000004eH - 01627 48 8b 85 70 25 - 00 00 mov rax, QWORD PTR out$[rbp] - 0162e 66 0f d6 00 movq QWORD PTR [rax], xmm0 - -; 2977 : out += out_stride; - - 01632 48 63 85 78 25 - 00 00 movsxd rax, DWORD PTR out_stride$[rbp] - 01639 48 8b 8d 70 25 - 00 00 mov rcx, QWORD PTR out$[rbp] - 01640 48 03 c8 add rcx, rax - 01643 48 8b c1 mov rax, rcx - 01646 48 89 85 70 25 - 00 00 mov QWORD PTR out$[rbp], rax - -; 2978 : _mm_storel_epi64((__m128i *)out, p2); - - 0164d 48 8b 85 70 25 - 00 00 mov rax, QWORD PTR out$[rbp] - 01654 66 0f 6f 85 00 - 1f 00 00 movdqa xmm0, XMMWORD PTR p2$147[rbp] - 0165c 66 0f d6 00 movq QWORD PTR [rax], xmm0 - -; 2979 : out += out_stride; - - 01660 48 63 85 78 25 - 00 00 movsxd rax, DWORD PTR out_stride$[rbp] - 01667 48 8b 8d 70 25 - 00 00 mov rcx, QWORD PTR out$[rbp] - 0166e 48 03 c8 add rcx, rax - 01671 48 8b c1 mov rax, rcx - 01674 48 89 85 70 25 - 00 00 mov QWORD PTR out$[rbp], rax - -; 2980 : _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p2, 0x4e)); - - 0167b 66 0f 6f 85 00 - 1f 00 00 movdqa xmm0, XMMWORD PTR p2$147[rbp] - 01683 66 0f 70 c0 4e pshufd xmm0, xmm0, 78 ; 0000004eH - 01688 48 8b 85 70 25 - 00 00 mov rax, QWORD PTR out$[rbp] - 0168f 66 0f d6 00 movq QWORD PTR [rax], xmm0 - -; 2981 : out += out_stride; - - 01693 48 63 85 78 25 - 00 00 movsxd rax, DWORD PTR out_stride$[rbp] - 0169a 48 8b 8d 70 25 - 00 00 mov rcx, QWORD PTR out$[rbp] - 016a1 48 03 c8 add rcx, rax - 016a4 48 8b c1 mov rax, rcx - 016a7 48 89 85 70 25 - 00 00 mov QWORD PTR out$[rbp], rax - -; 2982 : _mm_storel_epi64((__m128i *)out, p1); - - 016ae 48 8b 85 70 25 - 00 00 mov rax, QWORD PTR out$[rbp] - 016b5 66 0f 6f 85 d0 - 1e 00 00 movdqa xmm0, XMMWORD PTR p1$146[rbp] - 016bd 66 0f d6 00 movq QWORD PTR [rax], xmm0 - -; 2983 : out += out_stride; - - 016c1 48 63 85 78 25 - 00 00 movsxd rax, DWORD PTR out_stride$[rbp] - 016c8 48 8b 8d 70 25 - 00 00 mov rcx, QWORD PTR out$[rbp] - 016cf 48 03 c8 add rcx, rax - 016d2 48 8b c1 mov rax, rcx - 016d5 48 89 85 70 25 - 00 00 mov QWORD PTR out$[rbp], rax - -; 2984 : _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p1, 0x4e)); - - 016dc 66 0f 6f 85 d0 - 1e 00 00 movdqa xmm0, XMMWORD PTR p1$146[rbp] - 016e4 66 0f 70 c0 4e pshufd xmm0, xmm0, 78 ; 0000004eH - 016e9 48 8b 85 70 25 - 00 00 mov rax, QWORD PTR out$[rbp] - 016f0 66 0f d6 00 movq QWORD PTR [rax], xmm0 - -; 2985 : out += out_stride; - - 016f4 48 63 85 78 25 - 00 00 movsxd rax, DWORD PTR out_stride$[rbp] - 016fb 48 8b 8d 70 25 - 00 00 mov rcx, QWORD PTR out$[rbp] - 01702 48 03 c8 add rcx, rax - 01705 48 8b c1 mov rax, rcx - 01708 48 89 85 70 25 - 00 00 mov QWORD PTR out$[rbp], rax - -; 2986 : _mm_storel_epi64((__m128i *)out, p3); - - 0170f 48 8b 85 70 25 - 00 00 mov rax, QWORD PTR out$[rbp] - 01716 66 0f 6f 85 30 - 1f 00 00 movdqa xmm0, XMMWORD PTR p3$148[rbp] - 0171e 66 0f d6 00 movq QWORD PTR [rax], xmm0 - -; 2987 : out += out_stride; - - 01722 48 63 85 78 25 - 00 00 movsxd rax, DWORD PTR out_stride$[rbp] - 01729 48 8b 8d 70 25 - 00 00 mov rcx, QWORD PTR out$[rbp] - 01730 48 03 c8 add rcx, rax - 01733 48 8b c1 mov rax, rcx - 01736 48 89 85 70 25 - 00 00 mov QWORD PTR out$[rbp], rax - -; 2988 : _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p3, 0x4e)); - - 0173d 66 0f 6f 85 30 - 1f 00 00 movdqa xmm0, XMMWORD PTR p3$148[rbp] - 01745 66 0f 70 c0 4e pshufd xmm0, xmm0, 78 ; 0000004eH - 0174a 48 8b 85 70 25 - 00 00 mov rax, QWORD PTR out$[rbp] - 01751 66 0f d6 00 movq QWORD PTR [rax], xmm0 - -; 2989 : } -; 2990 : -; 2991 : #undef dct_const -; 2992 : #undef dct_rot -; 2993 : #undef dct_widen -; 2994 : #undef dct_wadd -; 2995 : #undef dct_wsub -; 2996 : #undef dct_bfly32o -; 2997 : #undef dct_interleave8 -; 2998 : #undef dct_interleave16 -; 2999 : #undef dct_pass -; 3000 : } - - 01755 48 8d a5 58 25 - 00 00 lea rsp, QWORD PTR [rbp+9560] - 0175c 5f pop rdi - 0175d 5d pop rbp - 0175e c3 ret 0 -stbi__idct_simd ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__idct_block -_TEXT SEGMENT -i$ = 4 -val$ = 48 -v$ = 328 -o$ = 360 -d$ = 392 -dcterm$4 = 420 -t0$5 = 452 -t1$6 = 484 -t2$7 = 516 -t3$8 = 548 -p1$9 = 580 -p2$10 = 612 -p3$11 = 644 -p4$12 = 676 -p5$13 = 708 -x0$14 = 740 -x1$15 = 772 -x2$16 = 804 -x3$17 = 836 -t0$18 = 868 -t1$19 = 900 -t2$20 = 932 -t3$21 = 964 -p1$22 = 996 -p2$23 = 1028 -p3$24 = 1060 -p4$25 = 1092 -p5$26 = 1124 -x0$27 = 1156 -x1$28 = 1188 -x2$29 = 1220 -x3$30 = 1252 -__$ArrayPad$ = 1848 -out$ = 1888 -out_stride$ = 1896 -data$ = 1904 -stbi__idct_block PROC ; COMDAT - -; 2747 : { - - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000e 55 push rbp - 0000f 57 push rdi - 00010 48 81 ec 68 07 - 00 00 sub rsp, 1896 ; 00000768H - 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001c 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00021 b9 42 01 00 00 mov ecx, 322 ; 00000142H - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 88 - 07 00 00 mov rcx, QWORD PTR [rsp+1928] - 00035 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 38 07 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00052 90 npad 1 - -; 2748 : int i, val[64], *v = val; - - 00053 48 8d 45 30 lea rax, QWORD PTR val$[rbp] - 00057 48 89 85 48 01 - 00 00 mov QWORD PTR v$[rbp], rax - -; 2749 : stbi_uc *o; -; 2750 : short *d = data; - - 0005e 48 8b 85 70 07 - 00 00 mov rax, QWORD PTR data$[rbp] - 00065 48 89 85 88 01 - 00 00 mov QWORD PTR d$[rbp], rax - -; 2751 : -; 2752 : // columns -; 2753 : for (i = 0; i < 8; ++i, ++d, ++v) { - - 0006c c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00073 eb 2c jmp SHORT $LN4@stbi__idct -$LN2@stbi__idct: - 00075 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00078 ff c0 inc eax - 0007a 89 45 04 mov DWORD PTR i$[rbp], eax - 0007d 48 8b 85 88 01 - 00 00 mov rax, QWORD PTR d$[rbp] - 00084 48 83 c0 02 add rax, 2 - 00088 48 89 85 88 01 - 00 00 mov QWORD PTR d$[rbp], rax - 0008f 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR v$[rbp] - 00096 48 83 c0 04 add rax, 4 - 0009a 48 89 85 48 01 - 00 00 mov QWORD PTR v$[rbp], rax -$LN4@stbi__idct: - 000a1 83 7d 04 08 cmp DWORD PTR i$[rbp], 8 - 000a5 0f 8d 5f 06 00 - 00 jge $LN3@stbi__idct - -; 2754 : // if all zeroes, shortcut -- this avoids dequantizing 0s and IDCTing -; 2755 : if (d[8] == 0 && d[16] == 0 && d[24] == 0 && d[32] == 0 && d[40] == 0 && -; 2756 : d[48] == 0 && d[56] == 0) { - - 000ab b8 02 00 00 00 mov eax, 2 - 000b0 48 6b c0 08 imul rax, rax, 8 - 000b4 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR d$[rbp] - 000bb 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] - 000bf 85 c0 test eax, eax - 000c1 0f 85 92 01 00 - 00 jne $LN8@stbi__idct - 000c7 b8 02 00 00 00 mov eax, 2 - 000cc 48 6b c0 10 imul rax, rax, 16 - 000d0 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR d$[rbp] - 000d7 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] - 000db 85 c0 test eax, eax - 000dd 0f 85 76 01 00 - 00 jne $LN8@stbi__idct - 000e3 b8 02 00 00 00 mov eax, 2 - 000e8 48 6b c0 18 imul rax, rax, 24 - 000ec 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR d$[rbp] - 000f3 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] - 000f7 85 c0 test eax, eax - 000f9 0f 85 5a 01 00 - 00 jne $LN8@stbi__idct - 000ff b8 02 00 00 00 mov eax, 2 - 00104 48 6b c0 20 imul rax, rax, 32 ; 00000020H - 00108 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR d$[rbp] - 0010f 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] - 00113 85 c0 test eax, eax - 00115 0f 85 3e 01 00 - 00 jne $LN8@stbi__idct - 0011b b8 02 00 00 00 mov eax, 2 - 00120 48 6b c0 28 imul rax, rax, 40 ; 00000028H - 00124 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR d$[rbp] - 0012b 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] - 0012f 85 c0 test eax, eax - 00131 0f 85 22 01 00 - 00 jne $LN8@stbi__idct - 00137 b8 02 00 00 00 mov eax, 2 - 0013c 48 6b c0 30 imul rax, rax, 48 ; 00000030H - 00140 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR d$[rbp] - 00147 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] - 0014b 85 c0 test eax, eax - 0014d 0f 85 06 01 00 - 00 jne $LN8@stbi__idct - 00153 b8 02 00 00 00 mov eax, 2 - 00158 48 6b c0 38 imul rax, rax, 56 ; 00000038H - 0015c 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR d$[rbp] - 00163 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] - 00167 85 c0 test eax, eax - 00169 0f 85 ea 00 00 - 00 jne $LN8@stbi__idct - -; 2757 : // no shortcut 0 seconds -; 2758 : // (1|2|3|4|5|6|7)==0 0 seconds -; 2759 : // all separate -0.047 seconds -; 2760 : // 1 && 2|3 && 4|5 && 6|7: -0.047 seconds -; 2761 : int dcterm = d[0] * 4; - - 0016f b8 02 00 00 00 mov eax, 2 - 00174 48 6b c0 00 imul rax, rax, 0 - 00178 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR d$[rbp] - 0017f 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] - 00183 c1 e0 02 shl eax, 2 - 00186 89 85 a4 01 00 - 00 mov DWORD PTR dcterm$4[rbp], eax - -; 2762 : v[0] = v[8] = v[16] = v[24] = v[32] = v[40] = v[48] = v[56] = dcterm; - - 0018c b8 04 00 00 00 mov eax, 4 - 00191 48 6b c0 38 imul rax, rax, 56 ; 00000038H - 00195 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR v$[rbp] - 0019c 8b 95 a4 01 00 - 00 mov edx, DWORD PTR dcterm$4[rbp] - 001a2 89 14 01 mov DWORD PTR [rcx+rax], edx - 001a5 b8 04 00 00 00 mov eax, 4 - 001aa 48 6b c0 30 imul rax, rax, 48 ; 00000030H - 001ae 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR v$[rbp] - 001b5 8b 95 a4 01 00 - 00 mov edx, DWORD PTR dcterm$4[rbp] - 001bb 89 14 01 mov DWORD PTR [rcx+rax], edx - 001be b8 04 00 00 00 mov eax, 4 - 001c3 48 6b c0 28 imul rax, rax, 40 ; 00000028H - 001c7 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR v$[rbp] - 001ce 8b 95 a4 01 00 - 00 mov edx, DWORD PTR dcterm$4[rbp] - 001d4 89 14 01 mov DWORD PTR [rcx+rax], edx - 001d7 b8 04 00 00 00 mov eax, 4 - 001dc 48 6b c0 20 imul rax, rax, 32 ; 00000020H - 001e0 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR v$[rbp] - 001e7 8b 95 a4 01 00 - 00 mov edx, DWORD PTR dcterm$4[rbp] - 001ed 89 14 01 mov DWORD PTR [rcx+rax], edx - 001f0 b8 04 00 00 00 mov eax, 4 - 001f5 48 6b c0 18 imul rax, rax, 24 - 001f9 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR v$[rbp] - 00200 8b 95 a4 01 00 - 00 mov edx, DWORD PTR dcterm$4[rbp] - 00206 89 14 01 mov DWORD PTR [rcx+rax], edx - 00209 b8 04 00 00 00 mov eax, 4 - 0020e 48 6b c0 10 imul rax, rax, 16 - 00212 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR v$[rbp] - 00219 8b 95 a4 01 00 - 00 mov edx, DWORD PTR dcterm$4[rbp] - 0021f 89 14 01 mov DWORD PTR [rcx+rax], edx - 00222 b8 04 00 00 00 mov eax, 4 - 00227 48 6b c0 08 imul rax, rax, 8 - 0022b 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR v$[rbp] - 00232 8b 95 a4 01 00 - 00 mov edx, DWORD PTR dcterm$4[rbp] - 00238 89 14 01 mov DWORD PTR [rcx+rax], edx - 0023b b8 04 00 00 00 mov eax, 4 - 00240 48 6b c0 00 imul rax, rax, 0 - 00244 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR v$[rbp] - 0024b 8b 95 a4 01 00 - 00 mov edx, DWORD PTR dcterm$4[rbp] - 00251 89 14 01 mov DWORD PTR [rcx+rax], edx - -; 2763 : } else { - - 00254 e9 ac 04 00 00 jmp $LN9@stbi__idct -$LN8@stbi__idct: - -; 2764 : STBI__IDCT_1D(d[0], d[8], d[16], d[24], d[32], d[40], d[48], d[56]) - - 00259 b8 02 00 00 00 mov eax, 2 - 0025e 48 6b c0 10 imul rax, rax, 16 - 00262 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR d$[rbp] - 00269 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] - 0026d 89 85 64 02 00 - 00 mov DWORD PTR p2$10[rbp], eax - 00273 b8 02 00 00 00 mov eax, 2 - 00278 48 6b c0 30 imul rax, rax, 48 ; 00000030H - 0027c 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR d$[rbp] - 00283 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] - 00287 89 85 84 02 00 - 00 mov DWORD PTR p3$11[rbp], eax - 0028d 8b 85 84 02 00 - 00 mov eax, DWORD PTR p3$11[rbp] - 00293 8b 8d 64 02 00 - 00 mov ecx, DWORD PTR p2$10[rbp] - 00299 03 c8 add ecx, eax - 0029b 8b c1 mov eax, ecx - 0029d 69 c0 a9 08 00 - 00 imul eax, eax, 2217 ; 000008a9H - 002a3 89 85 44 02 00 - 00 mov DWORD PTR p1$9[rbp], eax - 002a9 69 85 84 02 00 - 00 71 e2 ff ff imul eax, DWORD PTR p3$11[rbp], -7567 ; ffffffffffffe271H - 002b3 8b 8d 44 02 00 - 00 mov ecx, DWORD PTR p1$9[rbp] - 002b9 03 c8 add ecx, eax - 002bb 8b c1 mov eax, ecx - 002bd 89 85 04 02 00 - 00 mov DWORD PTR t2$7[rbp], eax - 002c3 69 85 64 02 00 - 00 3f 0c 00 00 imul eax, DWORD PTR p2$10[rbp], 3135 ; 00000c3fH - 002cd 8b 8d 44 02 00 - 00 mov ecx, DWORD PTR p1$9[rbp] - 002d3 03 c8 add ecx, eax - 002d5 8b c1 mov eax, ecx - 002d7 89 85 24 02 00 - 00 mov DWORD PTR t3$8[rbp], eax - 002dd b8 02 00 00 00 mov eax, 2 - 002e2 48 6b c0 00 imul rax, rax, 0 - 002e6 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR d$[rbp] - 002ed 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] - 002f1 89 85 64 02 00 - 00 mov DWORD PTR p2$10[rbp], eax - 002f7 b8 02 00 00 00 mov eax, 2 - 002fc 48 6b c0 20 imul rax, rax, 32 ; 00000020H - 00300 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR d$[rbp] - 00307 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] - 0030b 89 85 84 02 00 - 00 mov DWORD PTR p3$11[rbp], eax - 00311 8b 85 84 02 00 - 00 mov eax, DWORD PTR p3$11[rbp] - 00317 8b 8d 64 02 00 - 00 mov ecx, DWORD PTR p2$10[rbp] - 0031d 03 c8 add ecx, eax - 0031f 8b c1 mov eax, ecx - 00321 69 c0 00 10 00 - 00 imul eax, eax, 4096 ; 00001000H - 00327 89 85 c4 01 00 - 00 mov DWORD PTR t0$5[rbp], eax - 0032d 8b 85 84 02 00 - 00 mov eax, DWORD PTR p3$11[rbp] - 00333 8b 8d 64 02 00 - 00 mov ecx, DWORD PTR p2$10[rbp] - 00339 2b c8 sub ecx, eax - 0033b 8b c1 mov eax, ecx - 0033d 69 c0 00 10 00 - 00 imul eax, eax, 4096 ; 00001000H - 00343 89 85 e4 01 00 - 00 mov DWORD PTR t1$6[rbp], eax - 00349 8b 85 24 02 00 - 00 mov eax, DWORD PTR t3$8[rbp] - 0034f 8b 8d c4 01 00 - 00 mov ecx, DWORD PTR t0$5[rbp] - 00355 03 c8 add ecx, eax - 00357 8b c1 mov eax, ecx - 00359 89 85 e4 02 00 - 00 mov DWORD PTR x0$14[rbp], eax - 0035f 8b 85 24 02 00 - 00 mov eax, DWORD PTR t3$8[rbp] - 00365 8b 8d c4 01 00 - 00 mov ecx, DWORD PTR t0$5[rbp] - 0036b 2b c8 sub ecx, eax - 0036d 8b c1 mov eax, ecx - 0036f 89 85 44 03 00 - 00 mov DWORD PTR x3$17[rbp], eax - 00375 8b 85 04 02 00 - 00 mov eax, DWORD PTR t2$7[rbp] - 0037b 8b 8d e4 01 00 - 00 mov ecx, DWORD PTR t1$6[rbp] - 00381 03 c8 add ecx, eax - 00383 8b c1 mov eax, ecx - 00385 89 85 04 03 00 - 00 mov DWORD PTR x1$15[rbp], eax - 0038b 8b 85 04 02 00 - 00 mov eax, DWORD PTR t2$7[rbp] - 00391 8b 8d e4 01 00 - 00 mov ecx, DWORD PTR t1$6[rbp] - 00397 2b c8 sub ecx, eax - 00399 8b c1 mov eax, ecx - 0039b 89 85 24 03 00 - 00 mov DWORD PTR x2$16[rbp], eax - 003a1 b8 02 00 00 00 mov eax, 2 - 003a6 48 6b c0 38 imul rax, rax, 56 ; 00000038H - 003aa 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR d$[rbp] - 003b1 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] - 003b5 89 85 c4 01 00 - 00 mov DWORD PTR t0$5[rbp], eax - 003bb b8 02 00 00 00 mov eax, 2 - 003c0 48 6b c0 28 imul rax, rax, 40 ; 00000028H - 003c4 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR d$[rbp] - 003cb 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] - 003cf 89 85 e4 01 00 - 00 mov DWORD PTR t1$6[rbp], eax - 003d5 b8 02 00 00 00 mov eax, 2 - 003da 48 6b c0 18 imul rax, rax, 24 - 003de 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR d$[rbp] - 003e5 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] - 003e9 89 85 04 02 00 - 00 mov DWORD PTR t2$7[rbp], eax - 003ef b8 02 00 00 00 mov eax, 2 - 003f4 48 6b c0 08 imul rax, rax, 8 - 003f8 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR d$[rbp] - 003ff 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] - 00403 89 85 24 02 00 - 00 mov DWORD PTR t3$8[rbp], eax - 00409 8b 85 04 02 00 - 00 mov eax, DWORD PTR t2$7[rbp] - 0040f 8b 8d c4 01 00 - 00 mov ecx, DWORD PTR t0$5[rbp] - 00415 03 c8 add ecx, eax - 00417 8b c1 mov eax, ecx - 00419 89 85 84 02 00 - 00 mov DWORD PTR p3$11[rbp], eax - 0041f 8b 85 24 02 00 - 00 mov eax, DWORD PTR t3$8[rbp] - 00425 8b 8d e4 01 00 - 00 mov ecx, DWORD PTR t1$6[rbp] - 0042b 03 c8 add ecx, eax - 0042d 8b c1 mov eax, ecx - 0042f 89 85 a4 02 00 - 00 mov DWORD PTR p4$12[rbp], eax - 00435 8b 85 24 02 00 - 00 mov eax, DWORD PTR t3$8[rbp] - 0043b 8b 8d c4 01 00 - 00 mov ecx, DWORD PTR t0$5[rbp] - 00441 03 c8 add ecx, eax - 00443 8b c1 mov eax, ecx - 00445 89 85 44 02 00 - 00 mov DWORD PTR p1$9[rbp], eax - 0044b 8b 85 04 02 00 - 00 mov eax, DWORD PTR t2$7[rbp] - 00451 8b 8d e4 01 00 - 00 mov ecx, DWORD PTR t1$6[rbp] - 00457 03 c8 add ecx, eax - 00459 8b c1 mov eax, ecx - 0045b 89 85 64 02 00 - 00 mov DWORD PTR p2$10[rbp], eax - 00461 8b 85 a4 02 00 - 00 mov eax, DWORD PTR p4$12[rbp] - 00467 8b 8d 84 02 00 - 00 mov ecx, DWORD PTR p3$11[rbp] - 0046d 03 c8 add ecx, eax - 0046f 8b c1 mov eax, ecx - 00471 69 c0 d0 12 00 - 00 imul eax, eax, 4816 ; 000012d0H - 00477 89 85 c4 02 00 - 00 mov DWORD PTR p5$13[rbp], eax - 0047d 69 85 c4 01 00 - 00 c7 04 00 00 imul eax, DWORD PTR t0$5[rbp], 1223 ; 000004c7H - 00487 89 85 c4 01 00 - 00 mov DWORD PTR t0$5[rbp], eax - 0048d 69 85 e4 01 00 - 00 da 20 00 00 imul eax, DWORD PTR t1$6[rbp], 8410 ; 000020daH - 00497 89 85 e4 01 00 - 00 mov DWORD PTR t1$6[rbp], eax - 0049d 69 85 04 02 00 - 00 2a 31 00 00 imul eax, DWORD PTR t2$7[rbp], 12586 ; 0000312aH - 004a7 89 85 04 02 00 - 00 mov DWORD PTR t2$7[rbp], eax - 004ad 69 85 24 02 00 - 00 05 18 00 00 imul eax, DWORD PTR t3$8[rbp], 6149 ; 00001805H - 004b7 89 85 24 02 00 - 00 mov DWORD PTR t3$8[rbp], eax - 004bd 69 85 44 02 00 - 00 9b f1 ff ff imul eax, DWORD PTR p1$9[rbp], -3685 ; fffffffffffff19bH - 004c7 8b 8d c4 02 00 - 00 mov ecx, DWORD PTR p5$13[rbp] - 004cd 03 c8 add ecx, eax - 004cf 8b c1 mov eax, ecx - 004d1 89 85 44 02 00 - 00 mov DWORD PTR p1$9[rbp], eax - 004d7 69 85 64 02 00 - 00 ff d6 ff ff imul eax, DWORD PTR p2$10[rbp], -10497 ; ffffffffffffd6ffH - 004e1 8b 8d c4 02 00 - 00 mov ecx, DWORD PTR p5$13[rbp] - 004e7 03 c8 add ecx, eax - 004e9 8b c1 mov eax, ecx - 004eb 89 85 64 02 00 - 00 mov DWORD PTR p2$10[rbp], eax - 004f1 69 85 84 02 00 - 00 9e e0 ff ff imul eax, DWORD PTR p3$11[rbp], -8034 ; ffffffffffffe09eH - 004fb 89 85 84 02 00 - 00 mov DWORD PTR p3$11[rbp], eax - 00501 69 85 a4 02 00 - 00 c3 f9 ff ff imul eax, DWORD PTR p4$12[rbp], -1597 ; fffffffffffff9c3H - 0050b 89 85 a4 02 00 - 00 mov DWORD PTR p4$12[rbp], eax - 00511 8b 85 a4 02 00 - 00 mov eax, DWORD PTR p4$12[rbp] - 00517 8b 8d 44 02 00 - 00 mov ecx, DWORD PTR p1$9[rbp] - 0051d 03 c8 add ecx, eax - 0051f 8b c1 mov eax, ecx - 00521 8b 8d 24 02 00 - 00 mov ecx, DWORD PTR t3$8[rbp] - 00527 03 c8 add ecx, eax - 00529 8b c1 mov eax, ecx - 0052b 89 85 24 02 00 - 00 mov DWORD PTR t3$8[rbp], eax - 00531 8b 85 84 02 00 - 00 mov eax, DWORD PTR p3$11[rbp] - 00537 8b 8d 64 02 00 - 00 mov ecx, DWORD PTR p2$10[rbp] - 0053d 03 c8 add ecx, eax - 0053f 8b c1 mov eax, ecx - 00541 8b 8d 04 02 00 - 00 mov ecx, DWORD PTR t2$7[rbp] - 00547 03 c8 add ecx, eax - 00549 8b c1 mov eax, ecx - 0054b 89 85 04 02 00 - 00 mov DWORD PTR t2$7[rbp], eax - 00551 8b 85 a4 02 00 - 00 mov eax, DWORD PTR p4$12[rbp] - 00557 8b 8d 64 02 00 - 00 mov ecx, DWORD PTR p2$10[rbp] - 0055d 03 c8 add ecx, eax - 0055f 8b c1 mov eax, ecx - 00561 8b 8d e4 01 00 - 00 mov ecx, DWORD PTR t1$6[rbp] - 00567 03 c8 add ecx, eax - 00569 8b c1 mov eax, ecx - 0056b 89 85 e4 01 00 - 00 mov DWORD PTR t1$6[rbp], eax - 00571 8b 85 84 02 00 - 00 mov eax, DWORD PTR p3$11[rbp] - 00577 8b 8d 44 02 00 - 00 mov ecx, DWORD PTR p1$9[rbp] - 0057d 03 c8 add ecx, eax - 0057f 8b c1 mov eax, ecx - 00581 8b 8d c4 01 00 - 00 mov ecx, DWORD PTR t0$5[rbp] - 00587 03 c8 add ecx, eax - 00589 8b c1 mov eax, ecx - 0058b 89 85 c4 01 00 - 00 mov DWORD PTR t0$5[rbp], eax - -; 2765 : // constants scaled things up by 1<<12; let's bring them back -; 2766 : // down, but keep 2 extra bits of precision -; 2767 : x0 += 512; - - 00591 8b 85 e4 02 00 - 00 mov eax, DWORD PTR x0$14[rbp] - 00597 05 00 02 00 00 add eax, 512 ; 00000200H - 0059c 89 85 e4 02 00 - 00 mov DWORD PTR x0$14[rbp], eax - -; 2768 : x1 += 512; - - 005a2 8b 85 04 03 00 - 00 mov eax, DWORD PTR x1$15[rbp] - 005a8 05 00 02 00 00 add eax, 512 ; 00000200H - 005ad 89 85 04 03 00 - 00 mov DWORD PTR x1$15[rbp], eax - -; 2769 : x2 += 512; - - 005b3 8b 85 24 03 00 - 00 mov eax, DWORD PTR x2$16[rbp] - 005b9 05 00 02 00 00 add eax, 512 ; 00000200H - 005be 89 85 24 03 00 - 00 mov DWORD PTR x2$16[rbp], eax - -; 2770 : x3 += 512; - - 005c4 8b 85 44 03 00 - 00 mov eax, DWORD PTR x3$17[rbp] - 005ca 05 00 02 00 00 add eax, 512 ; 00000200H - 005cf 89 85 44 03 00 - 00 mov DWORD PTR x3$17[rbp], eax - -; 2771 : v[0] = (x0 + t3) >> 10; - - 005d5 8b 85 24 02 00 - 00 mov eax, DWORD PTR t3$8[rbp] - 005db 8b 8d e4 02 00 - 00 mov ecx, DWORD PTR x0$14[rbp] - 005e1 03 c8 add ecx, eax - 005e3 8b c1 mov eax, ecx - 005e5 c1 f8 0a sar eax, 10 - 005e8 b9 04 00 00 00 mov ecx, 4 - 005ed 48 6b c9 00 imul rcx, rcx, 0 - 005f1 48 8b 95 48 01 - 00 00 mov rdx, QWORD PTR v$[rbp] - 005f8 89 04 0a mov DWORD PTR [rdx+rcx], eax - -; 2772 : v[56] = (x0 - t3) >> 10; - - 005fb 8b 85 24 02 00 - 00 mov eax, DWORD PTR t3$8[rbp] - 00601 8b 8d e4 02 00 - 00 mov ecx, DWORD PTR x0$14[rbp] - 00607 2b c8 sub ecx, eax - 00609 8b c1 mov eax, ecx - 0060b c1 f8 0a sar eax, 10 - 0060e b9 04 00 00 00 mov ecx, 4 - 00613 48 6b c9 38 imul rcx, rcx, 56 ; 00000038H - 00617 48 8b 95 48 01 - 00 00 mov rdx, QWORD PTR v$[rbp] - 0061e 89 04 0a mov DWORD PTR [rdx+rcx], eax - -; 2773 : v[8] = (x1 + t2) >> 10; - - 00621 8b 85 04 02 00 - 00 mov eax, DWORD PTR t2$7[rbp] - 00627 8b 8d 04 03 00 - 00 mov ecx, DWORD PTR x1$15[rbp] - 0062d 03 c8 add ecx, eax - 0062f 8b c1 mov eax, ecx - 00631 c1 f8 0a sar eax, 10 - 00634 b9 04 00 00 00 mov ecx, 4 - 00639 48 6b c9 08 imul rcx, rcx, 8 - 0063d 48 8b 95 48 01 - 00 00 mov rdx, QWORD PTR v$[rbp] - 00644 89 04 0a mov DWORD PTR [rdx+rcx], eax - -; 2774 : v[48] = (x1 - t2) >> 10; - - 00647 8b 85 04 02 00 - 00 mov eax, DWORD PTR t2$7[rbp] - 0064d 8b 8d 04 03 00 - 00 mov ecx, DWORD PTR x1$15[rbp] - 00653 2b c8 sub ecx, eax - 00655 8b c1 mov eax, ecx - 00657 c1 f8 0a sar eax, 10 - 0065a b9 04 00 00 00 mov ecx, 4 - 0065f 48 6b c9 30 imul rcx, rcx, 48 ; 00000030H - 00663 48 8b 95 48 01 - 00 00 mov rdx, QWORD PTR v$[rbp] - 0066a 89 04 0a mov DWORD PTR [rdx+rcx], eax - -; 2775 : v[16] = (x2 + t1) >> 10; - - 0066d 8b 85 e4 01 00 - 00 mov eax, DWORD PTR t1$6[rbp] - 00673 8b 8d 24 03 00 - 00 mov ecx, DWORD PTR x2$16[rbp] - 00679 03 c8 add ecx, eax - 0067b 8b c1 mov eax, ecx - 0067d c1 f8 0a sar eax, 10 - 00680 b9 04 00 00 00 mov ecx, 4 - 00685 48 6b c9 10 imul rcx, rcx, 16 - 00689 48 8b 95 48 01 - 00 00 mov rdx, QWORD PTR v$[rbp] - 00690 89 04 0a mov DWORD PTR [rdx+rcx], eax - -; 2776 : v[40] = (x2 - t1) >> 10; - - 00693 8b 85 e4 01 00 - 00 mov eax, DWORD PTR t1$6[rbp] - 00699 8b 8d 24 03 00 - 00 mov ecx, DWORD PTR x2$16[rbp] - 0069f 2b c8 sub ecx, eax - 006a1 8b c1 mov eax, ecx - 006a3 c1 f8 0a sar eax, 10 - 006a6 b9 04 00 00 00 mov ecx, 4 - 006ab 48 6b c9 28 imul rcx, rcx, 40 ; 00000028H - 006af 48 8b 95 48 01 - 00 00 mov rdx, QWORD PTR v$[rbp] - 006b6 89 04 0a mov DWORD PTR [rdx+rcx], eax - -; 2777 : v[24] = (x3 + t0) >> 10; - - 006b9 8b 85 c4 01 00 - 00 mov eax, DWORD PTR t0$5[rbp] - 006bf 8b 8d 44 03 00 - 00 mov ecx, DWORD PTR x3$17[rbp] - 006c5 03 c8 add ecx, eax - 006c7 8b c1 mov eax, ecx - 006c9 c1 f8 0a sar eax, 10 - 006cc b9 04 00 00 00 mov ecx, 4 - 006d1 48 6b c9 18 imul rcx, rcx, 24 - 006d5 48 8b 95 48 01 - 00 00 mov rdx, QWORD PTR v$[rbp] - 006dc 89 04 0a mov DWORD PTR [rdx+rcx], eax - -; 2778 : v[32] = (x3 - t0) >> 10; - - 006df 8b 85 c4 01 00 - 00 mov eax, DWORD PTR t0$5[rbp] - 006e5 8b 8d 44 03 00 - 00 mov ecx, DWORD PTR x3$17[rbp] - 006eb 2b c8 sub ecx, eax - 006ed 8b c1 mov eax, ecx - 006ef c1 f8 0a sar eax, 10 - 006f2 b9 04 00 00 00 mov ecx, 4 - 006f7 48 6b c9 20 imul rcx, rcx, 32 ; 00000020H - 006fb 48 8b 95 48 01 - 00 00 mov rdx, QWORD PTR v$[rbp] - 00702 89 04 0a mov DWORD PTR [rdx+rcx], eax -$LN9@stbi__idct: - -; 2779 : } -; 2780 : } - - 00705 e9 6b f9 ff ff jmp $LN2@stbi__idct -$LN3@stbi__idct: - -; 2781 : -; 2782 : for (i = 0, v = val, o = out; i < 8; ++i, v += 8, o += out_stride) { - - 0070a c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00711 48 8d 45 30 lea rax, QWORD PTR val$[rbp] - 00715 48 89 85 48 01 - 00 00 mov QWORD PTR v$[rbp], rax - 0071c 48 8b 85 60 07 - 00 00 mov rax, QWORD PTR out$[rbp] - 00723 48 89 85 68 01 - 00 00 mov QWORD PTR o$[rbp], rax - 0072a eb 35 jmp SHORT $LN7@stbi__idct -$LN5@stbi__idct: - 0072c 8b 45 04 mov eax, DWORD PTR i$[rbp] - 0072f ff c0 inc eax - 00731 89 45 04 mov DWORD PTR i$[rbp], eax - 00734 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR v$[rbp] - 0073b 48 83 c0 20 add rax, 32 ; 00000020H - 0073f 48 89 85 48 01 - 00 00 mov QWORD PTR v$[rbp], rax - 00746 48 63 85 68 07 - 00 00 movsxd rax, DWORD PTR out_stride$[rbp] - 0074d 48 8b 8d 68 01 - 00 00 mov rcx, QWORD PTR o$[rbp] - 00754 48 03 c8 add rcx, rax - 00757 48 8b c1 mov rax, rcx - 0075a 48 89 85 68 01 - 00 00 mov QWORD PTR o$[rbp], rax -$LN7@stbi__idct: - 00761 83 7d 04 08 cmp DWORD PTR i$[rbp], 8 - 00765 0f 8d e1 04 00 - 00 jge $LN6@stbi__idct - -; 2783 : // no fast case since the first 1D IDCT spread components out -; 2784 : STBI__IDCT_1D(v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7]) - - 0076b b8 04 00 00 00 mov eax, 4 - 00770 48 6b c0 02 imul rax, rax, 2 - 00774 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR v$[rbp] - 0077b 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 0077e 89 85 04 04 00 - 00 mov DWORD PTR p2$23[rbp], eax - 00784 b8 04 00 00 00 mov eax, 4 - 00789 48 6b c0 06 imul rax, rax, 6 - 0078d 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR v$[rbp] - 00794 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 00797 89 85 24 04 00 - 00 mov DWORD PTR p3$24[rbp], eax - 0079d 8b 85 24 04 00 - 00 mov eax, DWORD PTR p3$24[rbp] - 007a3 8b 8d 04 04 00 - 00 mov ecx, DWORD PTR p2$23[rbp] - 007a9 03 c8 add ecx, eax - 007ab 8b c1 mov eax, ecx - 007ad 69 c0 a9 08 00 - 00 imul eax, eax, 2217 ; 000008a9H - 007b3 89 85 e4 03 00 - 00 mov DWORD PTR p1$22[rbp], eax - 007b9 69 85 24 04 00 - 00 71 e2 ff ff imul eax, DWORD PTR p3$24[rbp], -7567 ; ffffffffffffe271H - 007c3 8b 8d e4 03 00 - 00 mov ecx, DWORD PTR p1$22[rbp] - 007c9 03 c8 add ecx, eax - 007cb 8b c1 mov eax, ecx - 007cd 89 85 a4 03 00 - 00 mov DWORD PTR t2$20[rbp], eax - 007d3 69 85 04 04 00 - 00 3f 0c 00 00 imul eax, DWORD PTR p2$23[rbp], 3135 ; 00000c3fH - 007dd 8b 8d e4 03 00 - 00 mov ecx, DWORD PTR p1$22[rbp] - 007e3 03 c8 add ecx, eax - 007e5 8b c1 mov eax, ecx - 007e7 89 85 c4 03 00 - 00 mov DWORD PTR t3$21[rbp], eax - 007ed b8 04 00 00 00 mov eax, 4 - 007f2 48 6b c0 00 imul rax, rax, 0 - 007f6 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR v$[rbp] - 007fd 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 00800 89 85 04 04 00 - 00 mov DWORD PTR p2$23[rbp], eax - 00806 b8 04 00 00 00 mov eax, 4 - 0080b 48 6b c0 04 imul rax, rax, 4 - 0080f 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR v$[rbp] - 00816 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 00819 89 85 24 04 00 - 00 mov DWORD PTR p3$24[rbp], eax - 0081f 8b 85 24 04 00 - 00 mov eax, DWORD PTR p3$24[rbp] - 00825 8b 8d 04 04 00 - 00 mov ecx, DWORD PTR p2$23[rbp] - 0082b 03 c8 add ecx, eax - 0082d 8b c1 mov eax, ecx - 0082f 69 c0 00 10 00 - 00 imul eax, eax, 4096 ; 00001000H - 00835 89 85 64 03 00 - 00 mov DWORD PTR t0$18[rbp], eax - 0083b 8b 85 24 04 00 - 00 mov eax, DWORD PTR p3$24[rbp] - 00841 8b 8d 04 04 00 - 00 mov ecx, DWORD PTR p2$23[rbp] - 00847 2b c8 sub ecx, eax - 00849 8b c1 mov eax, ecx - 0084b 69 c0 00 10 00 - 00 imul eax, eax, 4096 ; 00001000H - 00851 89 85 84 03 00 - 00 mov DWORD PTR t1$19[rbp], eax - 00857 8b 85 c4 03 00 - 00 mov eax, DWORD PTR t3$21[rbp] - 0085d 8b 8d 64 03 00 - 00 mov ecx, DWORD PTR t0$18[rbp] - 00863 03 c8 add ecx, eax - 00865 8b c1 mov eax, ecx - 00867 89 85 84 04 00 - 00 mov DWORD PTR x0$27[rbp], eax - 0086d 8b 85 c4 03 00 - 00 mov eax, DWORD PTR t3$21[rbp] - 00873 8b 8d 64 03 00 - 00 mov ecx, DWORD PTR t0$18[rbp] - 00879 2b c8 sub ecx, eax - 0087b 8b c1 mov eax, ecx - 0087d 89 85 e4 04 00 - 00 mov DWORD PTR x3$30[rbp], eax - 00883 8b 85 a4 03 00 - 00 mov eax, DWORD PTR t2$20[rbp] - 00889 8b 8d 84 03 00 - 00 mov ecx, DWORD PTR t1$19[rbp] - 0088f 03 c8 add ecx, eax - 00891 8b c1 mov eax, ecx - 00893 89 85 a4 04 00 - 00 mov DWORD PTR x1$28[rbp], eax - 00899 8b 85 a4 03 00 - 00 mov eax, DWORD PTR t2$20[rbp] - 0089f 8b 8d 84 03 00 - 00 mov ecx, DWORD PTR t1$19[rbp] - 008a5 2b c8 sub ecx, eax - 008a7 8b c1 mov eax, ecx - 008a9 89 85 c4 04 00 - 00 mov DWORD PTR x2$29[rbp], eax - 008af b8 04 00 00 00 mov eax, 4 - 008b4 48 6b c0 07 imul rax, rax, 7 - 008b8 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR v$[rbp] - 008bf 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 008c2 89 85 64 03 00 - 00 mov DWORD PTR t0$18[rbp], eax - 008c8 b8 04 00 00 00 mov eax, 4 - 008cd 48 6b c0 05 imul rax, rax, 5 - 008d1 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR v$[rbp] - 008d8 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 008db 89 85 84 03 00 - 00 mov DWORD PTR t1$19[rbp], eax - 008e1 b8 04 00 00 00 mov eax, 4 - 008e6 48 6b c0 03 imul rax, rax, 3 - 008ea 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR v$[rbp] - 008f1 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 008f4 89 85 a4 03 00 - 00 mov DWORD PTR t2$20[rbp], eax - 008fa b8 04 00 00 00 mov eax, 4 - 008ff 48 6b c0 01 imul rax, rax, 1 - 00903 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR v$[rbp] - 0090a 8b 04 01 mov eax, DWORD PTR [rcx+rax] - 0090d 89 85 c4 03 00 - 00 mov DWORD PTR t3$21[rbp], eax - 00913 8b 85 a4 03 00 - 00 mov eax, DWORD PTR t2$20[rbp] - 00919 8b 8d 64 03 00 - 00 mov ecx, DWORD PTR t0$18[rbp] - 0091f 03 c8 add ecx, eax - 00921 8b c1 mov eax, ecx - 00923 89 85 24 04 00 - 00 mov DWORD PTR p3$24[rbp], eax - 00929 8b 85 c4 03 00 - 00 mov eax, DWORD PTR t3$21[rbp] - 0092f 8b 8d 84 03 00 - 00 mov ecx, DWORD PTR t1$19[rbp] - 00935 03 c8 add ecx, eax - 00937 8b c1 mov eax, ecx - 00939 89 85 44 04 00 - 00 mov DWORD PTR p4$25[rbp], eax - 0093f 8b 85 c4 03 00 - 00 mov eax, DWORD PTR t3$21[rbp] - 00945 8b 8d 64 03 00 - 00 mov ecx, DWORD PTR t0$18[rbp] - 0094b 03 c8 add ecx, eax - 0094d 8b c1 mov eax, ecx - 0094f 89 85 e4 03 00 - 00 mov DWORD PTR p1$22[rbp], eax - 00955 8b 85 a4 03 00 - 00 mov eax, DWORD PTR t2$20[rbp] - 0095b 8b 8d 84 03 00 - 00 mov ecx, DWORD PTR t1$19[rbp] - 00961 03 c8 add ecx, eax - 00963 8b c1 mov eax, ecx - 00965 89 85 04 04 00 - 00 mov DWORD PTR p2$23[rbp], eax - 0096b 8b 85 44 04 00 - 00 mov eax, DWORD PTR p4$25[rbp] - 00971 8b 8d 24 04 00 - 00 mov ecx, DWORD PTR p3$24[rbp] - 00977 03 c8 add ecx, eax - 00979 8b c1 mov eax, ecx - 0097b 69 c0 d0 12 00 - 00 imul eax, eax, 4816 ; 000012d0H - 00981 89 85 64 04 00 - 00 mov DWORD PTR p5$26[rbp], eax - 00987 69 85 64 03 00 - 00 c7 04 00 00 imul eax, DWORD PTR t0$18[rbp], 1223 ; 000004c7H - 00991 89 85 64 03 00 - 00 mov DWORD PTR t0$18[rbp], eax - 00997 69 85 84 03 00 - 00 da 20 00 00 imul eax, DWORD PTR t1$19[rbp], 8410 ; 000020daH - 009a1 89 85 84 03 00 - 00 mov DWORD PTR t1$19[rbp], eax - 009a7 69 85 a4 03 00 - 00 2a 31 00 00 imul eax, DWORD PTR t2$20[rbp], 12586 ; 0000312aH - 009b1 89 85 a4 03 00 - 00 mov DWORD PTR t2$20[rbp], eax - 009b7 69 85 c4 03 00 - 00 05 18 00 00 imul eax, DWORD PTR t3$21[rbp], 6149 ; 00001805H - 009c1 89 85 c4 03 00 - 00 mov DWORD PTR t3$21[rbp], eax - 009c7 69 85 e4 03 00 - 00 9b f1 ff ff imul eax, DWORD PTR p1$22[rbp], -3685 ; fffffffffffff19bH - 009d1 8b 8d 64 04 00 - 00 mov ecx, DWORD PTR p5$26[rbp] - 009d7 03 c8 add ecx, eax - 009d9 8b c1 mov eax, ecx - 009db 89 85 e4 03 00 - 00 mov DWORD PTR p1$22[rbp], eax - 009e1 69 85 04 04 00 - 00 ff d6 ff ff imul eax, DWORD PTR p2$23[rbp], -10497 ; ffffffffffffd6ffH - 009eb 8b 8d 64 04 00 - 00 mov ecx, DWORD PTR p5$26[rbp] - 009f1 03 c8 add ecx, eax - 009f3 8b c1 mov eax, ecx - 009f5 89 85 04 04 00 - 00 mov DWORD PTR p2$23[rbp], eax - 009fb 69 85 24 04 00 - 00 9e e0 ff ff imul eax, DWORD PTR p3$24[rbp], -8034 ; ffffffffffffe09eH - 00a05 89 85 24 04 00 - 00 mov DWORD PTR p3$24[rbp], eax - 00a0b 69 85 44 04 00 - 00 c3 f9 ff ff imul eax, DWORD PTR p4$25[rbp], -1597 ; fffffffffffff9c3H - 00a15 89 85 44 04 00 - 00 mov DWORD PTR p4$25[rbp], eax - 00a1b 8b 85 44 04 00 - 00 mov eax, DWORD PTR p4$25[rbp] - 00a21 8b 8d e4 03 00 - 00 mov ecx, DWORD PTR p1$22[rbp] - 00a27 03 c8 add ecx, eax - 00a29 8b c1 mov eax, ecx - 00a2b 8b 8d c4 03 00 - 00 mov ecx, DWORD PTR t3$21[rbp] - 00a31 03 c8 add ecx, eax - 00a33 8b c1 mov eax, ecx - 00a35 89 85 c4 03 00 - 00 mov DWORD PTR t3$21[rbp], eax - 00a3b 8b 85 24 04 00 - 00 mov eax, DWORD PTR p3$24[rbp] - 00a41 8b 8d 04 04 00 - 00 mov ecx, DWORD PTR p2$23[rbp] - 00a47 03 c8 add ecx, eax - 00a49 8b c1 mov eax, ecx - 00a4b 8b 8d a4 03 00 - 00 mov ecx, DWORD PTR t2$20[rbp] - 00a51 03 c8 add ecx, eax - 00a53 8b c1 mov eax, ecx - 00a55 89 85 a4 03 00 - 00 mov DWORD PTR t2$20[rbp], eax - 00a5b 8b 85 44 04 00 - 00 mov eax, DWORD PTR p4$25[rbp] - 00a61 8b 8d 04 04 00 - 00 mov ecx, DWORD PTR p2$23[rbp] - 00a67 03 c8 add ecx, eax - 00a69 8b c1 mov eax, ecx - 00a6b 8b 8d 84 03 00 - 00 mov ecx, DWORD PTR t1$19[rbp] - 00a71 03 c8 add ecx, eax - 00a73 8b c1 mov eax, ecx - 00a75 89 85 84 03 00 - 00 mov DWORD PTR t1$19[rbp], eax - 00a7b 8b 85 24 04 00 - 00 mov eax, DWORD PTR p3$24[rbp] - 00a81 8b 8d e4 03 00 - 00 mov ecx, DWORD PTR p1$22[rbp] - 00a87 03 c8 add ecx, eax - 00a89 8b c1 mov eax, ecx - 00a8b 8b 8d 64 03 00 - 00 mov ecx, DWORD PTR t0$18[rbp] - 00a91 03 c8 add ecx, eax - 00a93 8b c1 mov eax, ecx - 00a95 89 85 64 03 00 - 00 mov DWORD PTR t0$18[rbp], eax - -; 2785 : // constants scaled things up by 1<<12, plus we had 1<<2 from first -; 2786 : // loop, plus horizontal and vertical each scale by sqrt(8) so together -; 2787 : // we've got an extra 1<<3, so 1<<17 total we need to remove. -; 2788 : // so we want to round that, which means adding 0.5 * 1<<17, -; 2789 : // aka 65536. Also, we'll end up with -128 to 127 that we want -; 2790 : // to encode as 0..255 by adding 128, so we'll add that before the shift -; 2791 : x0 += 65536 + (128 << 17); - - 00a9b 8b 85 84 04 00 - 00 mov eax, DWORD PTR x0$27[rbp] - 00aa1 05 00 00 01 01 add eax, 16842752 ; 01010000H - 00aa6 89 85 84 04 00 - 00 mov DWORD PTR x0$27[rbp], eax - -; 2792 : x1 += 65536 + (128 << 17); - - 00aac 8b 85 a4 04 00 - 00 mov eax, DWORD PTR x1$28[rbp] - 00ab2 05 00 00 01 01 add eax, 16842752 ; 01010000H - 00ab7 89 85 a4 04 00 - 00 mov DWORD PTR x1$28[rbp], eax - -; 2793 : x2 += 65536 + (128 << 17); - - 00abd 8b 85 c4 04 00 - 00 mov eax, DWORD PTR x2$29[rbp] - 00ac3 05 00 00 01 01 add eax, 16842752 ; 01010000H - 00ac8 89 85 c4 04 00 - 00 mov DWORD PTR x2$29[rbp], eax - -; 2794 : x3 += 65536 + (128 << 17); - - 00ace 8b 85 e4 04 00 - 00 mov eax, DWORD PTR x3$30[rbp] - 00ad4 05 00 00 01 01 add eax, 16842752 ; 01010000H - 00ad9 89 85 e4 04 00 - 00 mov DWORD PTR x3$30[rbp], eax - -; 2795 : // tried computing the shifts into temps, or'ing the temps to see -; 2796 : // if any were out of range, but that was slower -; 2797 : o[0] = stbi__clamp((x0 + t3) >> 17); - - 00adf 8b 85 c4 03 00 - 00 mov eax, DWORD PTR t3$21[rbp] - 00ae5 8b 8d 84 04 00 - 00 mov ecx, DWORD PTR x0$27[rbp] - 00aeb 03 c8 add ecx, eax - 00aed 8b c1 mov eax, ecx - 00aef c1 f8 11 sar eax, 17 - 00af2 8b c8 mov ecx, eax - 00af4 e8 00 00 00 00 call stbi__clamp - 00af9 b9 01 00 00 00 mov ecx, 1 - 00afe 48 6b c9 00 imul rcx, rcx, 0 - 00b02 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR o$[rbp] - 00b09 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 2798 : o[7] = stbi__clamp((x0 - t3) >> 17); - - 00b0c 8b 85 c4 03 00 - 00 mov eax, DWORD PTR t3$21[rbp] - 00b12 8b 8d 84 04 00 - 00 mov ecx, DWORD PTR x0$27[rbp] - 00b18 2b c8 sub ecx, eax - 00b1a 8b c1 mov eax, ecx - 00b1c c1 f8 11 sar eax, 17 - 00b1f 8b c8 mov ecx, eax - 00b21 e8 00 00 00 00 call stbi__clamp - 00b26 b9 01 00 00 00 mov ecx, 1 - 00b2b 48 6b c9 07 imul rcx, rcx, 7 - 00b2f 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR o$[rbp] - 00b36 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 2799 : o[1] = stbi__clamp((x1 + t2) >> 17); - - 00b39 8b 85 a4 03 00 - 00 mov eax, DWORD PTR t2$20[rbp] - 00b3f 8b 8d a4 04 00 - 00 mov ecx, DWORD PTR x1$28[rbp] - 00b45 03 c8 add ecx, eax - 00b47 8b c1 mov eax, ecx - 00b49 c1 f8 11 sar eax, 17 - 00b4c 8b c8 mov ecx, eax - 00b4e e8 00 00 00 00 call stbi__clamp - 00b53 b9 01 00 00 00 mov ecx, 1 - 00b58 48 6b c9 01 imul rcx, rcx, 1 - 00b5c 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR o$[rbp] - 00b63 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 2800 : o[6] = stbi__clamp((x1 - t2) >> 17); - - 00b66 8b 85 a4 03 00 - 00 mov eax, DWORD PTR t2$20[rbp] - 00b6c 8b 8d a4 04 00 - 00 mov ecx, DWORD PTR x1$28[rbp] - 00b72 2b c8 sub ecx, eax - 00b74 8b c1 mov eax, ecx - 00b76 c1 f8 11 sar eax, 17 - 00b79 8b c8 mov ecx, eax - 00b7b e8 00 00 00 00 call stbi__clamp - 00b80 b9 01 00 00 00 mov ecx, 1 - 00b85 48 6b c9 06 imul rcx, rcx, 6 - 00b89 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR o$[rbp] - 00b90 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 2801 : o[2] = stbi__clamp((x2 + t1) >> 17); - - 00b93 8b 85 84 03 00 - 00 mov eax, DWORD PTR t1$19[rbp] - 00b99 8b 8d c4 04 00 - 00 mov ecx, DWORD PTR x2$29[rbp] - 00b9f 03 c8 add ecx, eax - 00ba1 8b c1 mov eax, ecx - 00ba3 c1 f8 11 sar eax, 17 - 00ba6 8b c8 mov ecx, eax - 00ba8 e8 00 00 00 00 call stbi__clamp - 00bad b9 01 00 00 00 mov ecx, 1 - 00bb2 48 6b c9 02 imul rcx, rcx, 2 - 00bb6 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR o$[rbp] - 00bbd 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 2802 : o[5] = stbi__clamp((x2 - t1) >> 17); - - 00bc0 8b 85 84 03 00 - 00 mov eax, DWORD PTR t1$19[rbp] - 00bc6 8b 8d c4 04 00 - 00 mov ecx, DWORD PTR x2$29[rbp] - 00bcc 2b c8 sub ecx, eax - 00bce 8b c1 mov eax, ecx - 00bd0 c1 f8 11 sar eax, 17 - 00bd3 8b c8 mov ecx, eax - 00bd5 e8 00 00 00 00 call stbi__clamp - 00bda b9 01 00 00 00 mov ecx, 1 - 00bdf 48 6b c9 05 imul rcx, rcx, 5 - 00be3 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR o$[rbp] - 00bea 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 2803 : o[3] = stbi__clamp((x3 + t0) >> 17); - - 00bed 8b 85 64 03 00 - 00 mov eax, DWORD PTR t0$18[rbp] - 00bf3 8b 8d e4 04 00 - 00 mov ecx, DWORD PTR x3$30[rbp] - 00bf9 03 c8 add ecx, eax - 00bfb 8b c1 mov eax, ecx - 00bfd c1 f8 11 sar eax, 17 - 00c00 8b c8 mov ecx, eax - 00c02 e8 00 00 00 00 call stbi__clamp - 00c07 b9 01 00 00 00 mov ecx, 1 - 00c0c 48 6b c9 03 imul rcx, rcx, 3 - 00c10 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR o$[rbp] - 00c17 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 2804 : o[4] = stbi__clamp((x3 - t0) >> 17); - - 00c1a 8b 85 64 03 00 - 00 mov eax, DWORD PTR t0$18[rbp] - 00c20 8b 8d e4 04 00 - 00 mov ecx, DWORD PTR x3$30[rbp] - 00c26 2b c8 sub ecx, eax - 00c28 8b c1 mov eax, ecx - 00c2a c1 f8 11 sar eax, 17 - 00c2d 8b c8 mov ecx, eax - 00c2f e8 00 00 00 00 call stbi__clamp - 00c34 b9 01 00 00 00 mov ecx, 1 - 00c39 48 6b c9 04 imul rcx, rcx, 4 - 00c3d 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR o$[rbp] - 00c44 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 2805 : } - - 00c47 e9 e0 fa ff ff jmp $LN5@stbi__idct -$LN6@stbi__idct: - -; 2806 : } - - 00c4c 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00c50 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__idct_block$rtcFrameData - 00c57 e8 00 00 00 00 call _RTC_CheckStackVars - 00c5c 48 8b 8d 38 07 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00c63 48 33 cd xor rcx, rbp - 00c66 e8 00 00 00 00 call __security_check_cookie - 00c6b 48 8d a5 48 07 - 00 00 lea rsp, QWORD PTR [rbp+1864] - 00c72 5f pop rdi - 00c73 5d pop rbp - 00c74 c3 ret 0 -stbi__idct_block ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__clamp -_TEXT SEGMENT -x$ = 224 -stbi__clamp PROC ; COMDAT - -; 2694 : { - - 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00004 55 push rbp - 00005 57 push rdi - 00006 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00012 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001e 90 npad 1 - -; 2695 : // trick to use a single test to catch both cases -; 2696 : if ((unsigned int)x > 255) { - - 0001f 81 bd e0 00 00 - 00 ff 00 00 00 cmp DWORD PTR x$[rbp], 255 ; 000000ffH - 00029 76 1d jbe SHORT $LN2@stbi__clam - -; 2697 : if (x < 0) - - 0002b 83 bd e0 00 00 - 00 00 cmp DWORD PTR x$[rbp], 0 - 00032 7d 04 jge SHORT $LN3@stbi__clam - -; 2698 : return 0; - - 00034 32 c0 xor al, al - 00036 eb 17 jmp SHORT $LN1@stbi__clam -$LN3@stbi__clam: - -; 2699 : if (x > 255) - - 00038 81 bd e0 00 00 - 00 ff 00 00 00 cmp DWORD PTR x$[rbp], 255 ; 000000ffH - 00042 7e 04 jle SHORT $LN4@stbi__clam - -; 2700 : return 255; - - 00044 b0 ff mov al, 255 ; 000000ffH - 00046 eb 07 jmp SHORT $LN1@stbi__clam -$LN4@stbi__clam: -$LN2@stbi__clam: - -; 2701 : } -; 2702 : return (stbi_uc)x; - - 00048 0f b6 85 e0 00 - 00 00 movzx eax, BYTE PTR x$[rbp] -$LN1@stbi__clam: - -; 2703 : } - - 0004f 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00056 5f pop rdi - 00057 5d pop rbp - 00058 c3 ret 0 -stbi__clamp ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__jpeg_decode_block_prog_ac -_TEXT SEGMENT -k$ = 4 -shift$1 = 36 -zig$2 = 68 -c$3 = 100 -r$4 = 132 -s$5 = 164 -rs$6 = 196 -bit$7 = 228 -p$8 = 264 -r$9 = 292 -s$10 = 324 -rs$11 = 356 -p$12 = 392 -tv371 = 596 -tv393 = 596 -tv420 = 596 -tv354 = 600 -j$ = 640 -data$ = 648 -hac$ = 656 -fac$ = 664 -stbi__jpeg_decode_block_prog_ac PROC ; COMDAT - -; 2561 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 88 02 - 00 00 sub rsp, 648 ; 00000288H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 2562 : int k; -; 2563 : if (j->spec_start == 0) - - 0002f 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 00036 83 b8 34 48 00 - 00 00 cmp DWORD PTR [rax+18484], 0 - 0003d 75 11 jne SHORT $LN13@stbi__jpeg - -; 2564 : return stbi__err("can't merge dc and ac", "Corrupt JPEG"); - - 0003f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BG@PJBJDAGM@can?8t?5merge?5dc?5and?5ac@ - 00046 e8 00 00 00 00 call stbi__err - 0004b e9 75 06 00 00 jmp $LN1@stbi__jpeg -$LN13@stbi__jpeg: - -; 2565 : -; 2566 : if (j->succ_high == 0) { - - 00050 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 00057 83 b8 3c 48 00 - 00 00 cmp DWORD PTR [rax+18492], 0 - 0005e 0f 85 f4 02 00 - 00 jne $LN14@stbi__jpeg - -; 2567 : int shift = j->succ_low; - - 00064 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 0006b 8b 80 40 48 00 - 00 mov eax, DWORD PTR [rax+18496] - 00071 89 45 24 mov DWORD PTR shift$1[rbp], eax - -; 2568 : -; 2569 : if (j->eob_run) { - - 00074 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 0007b 83 b8 44 48 00 - 00 00 cmp DWORD PTR [rax+18500], 0 - 00082 74 26 je SHORT $LN16@stbi__jpeg - -; 2570 : --j->eob_run; - - 00084 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 0008b 8b 80 44 48 00 - 00 mov eax, DWORD PTR [rax+18500] - 00091 ff c8 dec eax - 00093 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 0009a 89 81 44 48 00 - 00 mov DWORD PTR [rcx+18500], eax - -; 2571 : return 1; - - 000a0 b8 01 00 00 00 mov eax, 1 - 000a5 e9 1b 06 00 00 jmp $LN1@stbi__jpeg -$LN16@stbi__jpeg: - -; 2572 : } -; 2573 : -; 2574 : k = j->spec_start; - - 000aa 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 000b1 8b 80 34 48 00 - 00 mov eax, DWORD PTR [rax+18484] - 000b7 89 45 04 mov DWORD PTR k$[rbp], eax -$LN4@stbi__jpeg: - -; 2575 : do { -; 2576 : unsigned int zig; -; 2577 : int c, r, s; -; 2578 : if (j->code_bits < 16) - - 000ba 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 000c1 83 b8 24 48 00 - 00 10 cmp DWORD PTR [rax+18468], 16 - 000c8 7d 0d jge SHORT $LN17@stbi__jpeg - -; 2579 : stbi__grow_buffer_unsafe(j); - - 000ca 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 000d1 e8 00 00 00 00 call stbi__grow_buffer_unsafe - 000d6 90 npad 1 -$LN17@stbi__jpeg: - -; 2580 : c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS) - 1); - - 000d7 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 000de 8b 80 20 48 00 - 00 mov eax, DWORD PTR [rax+18464] - 000e4 c1 e8 17 shr eax, 23 - 000e7 25 ff 01 00 00 and eax, 511 ; 000001ffH - 000ec 89 45 64 mov DWORD PTR c$3[rbp], eax - -; 2581 : r = fac[c]; - - 000ef 48 63 45 64 movsxd rax, DWORD PTR c$3[rbp] - 000f3 48 8b 8d 98 02 - 00 00 mov rcx, QWORD PTR fac$[rbp] - 000fa 0f bf 04 41 movsx eax, WORD PTR [rcx+rax*2] - 000fe 89 85 84 00 00 - 00 mov DWORD PTR r$4[rbp], eax - -; 2582 : if (r) { // fast-AC path - - 00104 83 bd 84 00 00 - 00 00 cmp DWORD PTR r$4[rbp], 0 - 0010b 0f 84 e5 00 00 - 00 je $LN18@stbi__jpeg - -; 2583 : k += (r >> 4) & 15; // run - - 00111 8b 85 84 00 00 - 00 mov eax, DWORD PTR r$4[rbp] - 00117 c1 f8 04 sar eax, 4 - 0011a 83 e0 0f and eax, 15 - 0011d 8b 4d 04 mov ecx, DWORD PTR k$[rbp] - 00120 03 c8 add ecx, eax - 00122 8b c1 mov eax, ecx - 00124 89 45 04 mov DWORD PTR k$[rbp], eax - -; 2584 : s = r & 15; // combined length - - 00127 8b 85 84 00 00 - 00 mov eax, DWORD PTR r$4[rbp] - 0012d 83 e0 0f and eax, 15 - 00130 89 85 a4 00 00 - 00 mov DWORD PTR s$5[rbp], eax - -; 2585 : if (s > j->code_bits) - - 00136 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 0013d 8b 80 24 48 00 - 00 mov eax, DWORD PTR [rax+18468] - 00143 39 85 a4 00 00 - 00 cmp DWORD PTR s$5[rbp], eax - 00149 7e 11 jle SHORT $LN20@stbi__jpeg - -; 2586 : return stbi__err( - - 0014b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@ - 00152 e8 00 00 00 00 call stbi__err - 00157 e9 69 05 00 00 jmp $LN1@stbi__jpeg -$LN20@stbi__jpeg: - -; 2587 : "bad huffman code", -; 2588 : "Combined length longer than code bits available"); -; 2589 : j->code_buffer <<= s; - - 0015c 8b 85 a4 00 00 - 00 mov eax, DWORD PTR s$5[rbp] - 00162 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00169 48 89 8d 58 02 - 00 00 mov QWORD PTR tv354[rbp], rcx - 00170 0f b6 c8 movzx ecx, al - 00173 48 8b 85 58 02 - 00 00 mov rax, QWORD PTR tv354[rbp] - 0017a 8b 80 20 48 00 - 00 mov eax, DWORD PTR [rax+18464] - 00180 d3 e0 shl eax, cl - 00182 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00189 89 81 20 48 00 - 00 mov DWORD PTR [rcx+18464], eax - -; 2590 : j->code_bits -= s; - - 0018f 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 00196 8b 8d a4 00 00 - 00 mov ecx, DWORD PTR s$5[rbp] - 0019c 8b 80 24 48 00 - 00 mov eax, DWORD PTR [rax+18468] - 001a2 2b c1 sub eax, ecx - 001a4 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 001ab 89 81 24 48 00 - 00 mov DWORD PTR [rcx+18468], eax - -; 2591 : zig = stbi__jpeg_dezigzag[k++]; - - 001b1 48 63 45 04 movsxd rax, DWORD PTR k$[rbp] - 001b5 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__jpeg_dezigzag - 001bc 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 001c0 89 45 44 mov DWORD PTR zig$2[rbp], eax - 001c3 8b 45 04 mov eax, DWORD PTR k$[rbp] - 001c6 ff c0 inc eax - 001c8 89 45 04 mov DWORD PTR k$[rbp], eax - -; 2592 : data[zig] = (short)((r >> 8) * (1 << shift)); - - 001cb 8b 85 84 00 00 - 00 mov eax, DWORD PTR r$4[rbp] - 001d1 c1 f8 08 sar eax, 8 - 001d4 8b 4d 24 mov ecx, DWORD PTR shift$1[rbp] - 001d7 ba 01 00 00 00 mov edx, 1 - 001dc d3 e2 shl edx, cl - 001de 8b ca mov ecx, edx - 001e0 0f af c1 imul eax, ecx - 001e3 8b 4d 44 mov ecx, DWORD PTR zig$2[rbp] - 001e6 48 8b 95 88 02 - 00 00 mov rdx, QWORD PTR data$[rbp] - 001ed 66 89 04 4a mov WORD PTR [rdx+rcx*2], ax - -; 2593 : } else { - - 001f1 e9 47 01 00 00 jmp $LN19@stbi__jpeg -$LN18@stbi__jpeg: - -; 2594 : int rs = stbi__jpeg_huff_decode(j, hac); - - 001f6 48 8b 95 90 02 - 00 00 mov rdx, QWORD PTR hac$[rbp] - 001fd 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00204 e8 00 00 00 00 call stbi__jpeg_huff_decode - 00209 89 85 c4 00 00 - 00 mov DWORD PTR rs$6[rbp], eax - -; 2595 : if (rs < 0) - - 0020f 83 bd c4 00 00 - 00 00 cmp DWORD PTR rs$6[rbp], 0 - 00216 7d 11 jge SHORT $LN21@stbi__jpeg - -; 2596 : return stbi__err("bad huffman code", "Corrupt JPEG"); - - 00218 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@ - 0021f e8 00 00 00 00 call stbi__err - 00224 e9 9c 04 00 00 jmp $LN1@stbi__jpeg -$LN21@stbi__jpeg: - -; 2597 : s = rs & 15; - - 00229 8b 85 c4 00 00 - 00 mov eax, DWORD PTR rs$6[rbp] - 0022f 83 e0 0f and eax, 15 - 00232 89 85 a4 00 00 - 00 mov DWORD PTR s$5[rbp], eax - -; 2598 : r = rs >> 4; - - 00238 8b 85 c4 00 00 - 00 mov eax, DWORD PTR rs$6[rbp] - 0023e c1 f8 04 sar eax, 4 - 00241 89 85 84 00 00 - 00 mov DWORD PTR r$4[rbp], eax - -; 2599 : if (s == 0) { - - 00247 83 bd a4 00 00 - 00 00 cmp DWORD PTR s$5[rbp], 0 - 0024e 0f 85 90 00 00 - 00 jne $LN22@stbi__jpeg - -; 2600 : if (r < 15) { - - 00254 83 bd 84 00 00 - 00 0f cmp DWORD PTR r$4[rbp], 15 - 0025b 7d 7c jge SHORT $LN24@stbi__jpeg - -; 2601 : j->eob_run = (1 << r); - - 0025d 8b 85 84 00 00 - 00 mov eax, DWORD PTR r$4[rbp] - 00263 b9 01 00 00 00 mov ecx, 1 - 00268 89 8d 54 02 00 - 00 mov DWORD PTR tv371[rbp], ecx - 0026e 0f b6 c8 movzx ecx, al - 00271 8b 85 54 02 00 - 00 mov eax, DWORD PTR tv371[rbp] - 00277 d3 e0 shl eax, cl - 00279 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00280 89 81 44 48 00 - 00 mov DWORD PTR [rcx+18500], eax - -; 2602 : if (r) - - 00286 83 bd 84 00 00 - 00 00 cmp DWORD PTR r$4[rbp], 0 - 0028d 74 2c je SHORT $LN25@stbi__jpeg - -; 2603 : j->eob_run += stbi__jpeg_get_bits(j, r); - - 0028f 8b 95 84 00 00 - 00 mov edx, DWORD PTR r$4[rbp] - 00295 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 0029c e8 00 00 00 00 call stbi__jpeg_get_bits - 002a1 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 002a8 03 81 44 48 00 - 00 add eax, DWORD PTR [rcx+18500] - 002ae 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 002b5 89 81 44 48 00 - 00 mov DWORD PTR [rcx+18500], eax -$LN25@stbi__jpeg: - -; 2604 : --j->eob_run; - - 002bb 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 002c2 8b 80 44 48 00 - 00 mov eax, DWORD PTR [rax+18500] - 002c8 ff c8 dec eax - 002ca 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 002d1 89 81 44 48 00 - 00 mov DWORD PTR [rcx+18500], eax - -; 2605 : break; - - 002d7 eb 7a jmp SHORT $LN3@stbi__jpeg -$LN24@stbi__jpeg: - -; 2606 : } -; 2607 : k += 16; - - 002d9 8b 45 04 mov eax, DWORD PTR k$[rbp] - 002dc 83 c0 10 add eax, 16 - 002df 89 45 04 mov DWORD PTR k$[rbp], eax - -; 2608 : } else { - - 002e2 eb 59 jmp SHORT $LN23@stbi__jpeg -$LN22@stbi__jpeg: - -; 2609 : k += r; - - 002e4 8b 85 84 00 00 - 00 mov eax, DWORD PTR r$4[rbp] - 002ea 8b 4d 04 mov ecx, DWORD PTR k$[rbp] - 002ed 03 c8 add ecx, eax - 002ef 8b c1 mov eax, ecx - 002f1 89 45 04 mov DWORD PTR k$[rbp], eax - -; 2610 : zig = stbi__jpeg_dezigzag[k++]; - - 002f4 48 63 45 04 movsxd rax, DWORD PTR k$[rbp] - 002f8 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__jpeg_dezigzag - 002ff 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00303 89 45 44 mov DWORD PTR zig$2[rbp], eax - 00306 8b 45 04 mov eax, DWORD PTR k$[rbp] - 00309 ff c0 inc eax - 0030b 89 45 04 mov DWORD PTR k$[rbp], eax - -; 2611 : data[zig] = - - 0030e 8b 95 a4 00 00 - 00 mov edx, DWORD PTR s$5[rbp] - 00314 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 0031b e8 00 00 00 00 call stbi__extend_receive - 00320 8b 4d 24 mov ecx, DWORD PTR shift$1[rbp] - 00323 ba 01 00 00 00 mov edx, 1 - 00328 d3 e2 shl edx, cl - 0032a 8b ca mov ecx, edx - 0032c 0f af c1 imul eax, ecx - 0032f 8b 4d 44 mov ecx, DWORD PTR zig$2[rbp] - 00332 48 8b 95 88 02 - 00 00 mov rdx, QWORD PTR data$[rbp] - 00339 66 89 04 4a mov WORD PTR [rdx+rcx*2], ax -$LN23@stbi__jpeg: -$LN19@stbi__jpeg: - -; 2612 : (short)(stbi__extend_receive(j, s) * (1 << shift)); -; 2613 : } -; 2614 : } -; 2615 : } while (k <= j->spec_end); - - 0033d 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 00344 8b 80 38 48 00 - 00 mov eax, DWORD PTR [rax+18488] - 0034a 39 45 04 cmp DWORD PTR k$[rbp], eax - 0034d 0f 8e 67 fd ff - ff jle $LN4@stbi__jpeg -$LN3@stbi__jpeg: - -; 2616 : } else { - - 00353 e9 68 03 00 00 jmp $LN15@stbi__jpeg -$LN14@stbi__jpeg: - -; 2617 : // refinement scan for these AC coefficients -; 2618 : -; 2619 : short bit = (short)(1 << j->succ_low); - - 00358 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 0035f 8b 80 40 48 00 - 00 mov eax, DWORD PTR [rax+18496] - 00365 b9 01 00 00 00 mov ecx, 1 - 0036a 89 8d 54 02 00 - 00 mov DWORD PTR tv393[rbp], ecx - 00370 0f b6 c8 movzx ecx, al - 00373 8b 85 54 02 00 - 00 mov eax, DWORD PTR tv393[rbp] - 00379 d3 e0 shl eax, cl - 0037b 66 89 85 e4 00 - 00 00 mov WORD PTR bit$7[rbp], ax - -; 2620 : -; 2621 : if (j->eob_run) { - - 00382 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 00389 83 b8 44 48 00 - 00 00 cmp DWORD PTR [rax+18500], 0 - 00390 0f 84 fa 00 00 - 00 je $LN26@stbi__jpeg - -; 2622 : --j->eob_run; - - 00396 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 0039d 8b 80 44 48 00 - 00 mov eax, DWORD PTR [rax+18500] - 003a3 ff c8 dec eax - 003a5 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 003ac 89 81 44 48 00 - 00 mov DWORD PTR [rcx+18500], eax - -; 2623 : for (k = j->spec_start; k <= j->spec_end; ++k) { - - 003b2 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 003b9 8b 80 34 48 00 - 00 mov eax, DWORD PTR [rax+18484] - 003bf 89 45 04 mov DWORD PTR k$[rbp], eax - 003c2 eb 08 jmp SHORT $LN7@stbi__jpeg -$LN5@stbi__jpeg: - 003c4 8b 45 04 mov eax, DWORD PTR k$[rbp] - 003c7 ff c0 inc eax - 003c9 89 45 04 mov DWORD PTR k$[rbp], eax -$LN7@stbi__jpeg: - 003cc 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 003d3 8b 80 38 48 00 - 00 mov eax, DWORD PTR [rax+18488] - 003d9 39 45 04 cmp DWORD PTR k$[rbp], eax - 003dc 0f 8f a9 00 00 - 00 jg $LN6@stbi__jpeg - -; 2624 : short *p = &data[stbi__jpeg_dezigzag[k]]; - - 003e2 48 63 45 04 movsxd rax, DWORD PTR k$[rbp] - 003e6 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__jpeg_dezigzag - 003ed 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 003f1 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR data$[rbp] - 003f8 48 8d 04 41 lea rax, QWORD PTR [rcx+rax*2] - 003fc 48 89 85 08 01 - 00 00 mov QWORD PTR p$8[rbp], rax - -; 2625 : if (*p != 0) - - 00403 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR p$8[rbp] - 0040a 0f bf 00 movsx eax, WORD PTR [rax] - 0040d 85 c0 test eax, eax - 0040f 74 75 je SHORT $LN28@stbi__jpeg - -; 2626 : if (stbi__jpeg_get_bit(j)) - - 00411 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00418 e8 00 00 00 00 call stbi__jpeg_get_bit - 0041d 85 c0 test eax, eax - 0041f 74 65 je SHORT $LN29@stbi__jpeg - -; 2627 : if ((*p & bit) == 0) { - - 00421 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR p$8[rbp] - 00428 0f bf 00 movsx eax, WORD PTR [rax] - 0042b 0f bf 8d e4 00 - 00 00 movsx ecx, WORD PTR bit$7[rbp] - 00432 23 c1 and eax, ecx - 00434 85 c0 test eax, eax - 00436 75 4e jne SHORT $LN30@stbi__jpeg - -; 2628 : if (*p > 0) - - 00438 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR p$8[rbp] - 0043f 0f bf 00 movsx eax, WORD PTR [rax] - 00442 85 c0 test eax, eax - 00444 7e 21 jle SHORT $LN31@stbi__jpeg - -; 2629 : *p += bit; - - 00446 0f bf 85 e4 00 - 00 00 movsx eax, WORD PTR bit$7[rbp] - 0044d 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR p$8[rbp] - 00454 0f bf 09 movsx ecx, WORD PTR [rcx] - 00457 03 c8 add ecx, eax - 00459 8b c1 mov eax, ecx - 0045b 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR p$8[rbp] - 00462 66 89 01 mov WORD PTR [rcx], ax - 00465 eb 1f jmp SHORT $LN32@stbi__jpeg -$LN31@stbi__jpeg: - -; 2630 : else -; 2631 : *p -= bit; - - 00467 0f bf 85 e4 00 - 00 00 movsx eax, WORD PTR bit$7[rbp] - 0046e 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR p$8[rbp] - 00475 0f bf 09 movsx ecx, WORD PTR [rcx] - 00478 2b c8 sub ecx, eax - 0047a 8b c1 mov eax, ecx - 0047c 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR p$8[rbp] - 00483 66 89 01 mov WORD PTR [rcx], ax -$LN32@stbi__jpeg: -$LN30@stbi__jpeg: -$LN29@stbi__jpeg: -$LN28@stbi__jpeg: - -; 2632 : } -; 2633 : } - - 00486 e9 39 ff ff ff jmp $LN5@stbi__jpeg -$LN6@stbi__jpeg: - -; 2634 : } else { - - 0048b e9 30 02 00 00 jmp $LN27@stbi__jpeg -$LN26@stbi__jpeg: - -; 2635 : k = j->spec_start; - - 00490 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 00497 8b 80 34 48 00 - 00 mov eax, DWORD PTR [rax+18484] - 0049d 89 45 04 mov DWORD PTR k$[rbp], eax -$LN10@stbi__jpeg: - -; 2636 : do { -; 2637 : int r, s; -; 2638 : int rs = stbi__jpeg_huff_decode( - - 004a0 48 8b 95 90 02 - 00 00 mov rdx, QWORD PTR hac$[rbp] - 004a7 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 004ae e8 00 00 00 00 call stbi__jpeg_huff_decode - 004b3 89 85 64 01 00 - 00 mov DWORD PTR rs$11[rbp], eax - -; 2639 : j, -; 2640 : hac); // @OPTIMIZE see if we can use the fast path here, advance-by-r is so slow, eh -; 2641 : if (rs < 0) - - 004b9 83 bd 64 01 00 - 00 00 cmp DWORD PTR rs$11[rbp], 0 - 004c0 7d 11 jge SHORT $LN33@stbi__jpeg - -; 2642 : return stbi__err("bad huffman code", "Corrupt JPEG"); - - 004c2 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@ - 004c9 e8 00 00 00 00 call stbi__err - 004ce e9 f2 01 00 00 jmp $LN1@stbi__jpeg -$LN33@stbi__jpeg: - -; 2643 : s = rs & 15; - - 004d3 8b 85 64 01 00 - 00 mov eax, DWORD PTR rs$11[rbp] - 004d9 83 e0 0f and eax, 15 - 004dc 89 85 44 01 00 - 00 mov DWORD PTR s$10[rbp], eax - -; 2644 : r = rs >> 4; - - 004e2 8b 85 64 01 00 - 00 mov eax, DWORD PTR rs$11[rbp] - 004e8 c1 f8 04 sar eax, 4 - 004eb 89 85 24 01 00 - 00 mov DWORD PTR r$9[rbp], eax - -; 2645 : if (s == 0) { - - 004f1 83 bd 44 01 00 - 00 00 cmp DWORD PTR s$10[rbp], 0 - 004f8 75 75 jne SHORT $LN34@stbi__jpeg - -; 2646 : if (r < 15) { - - 004fa 83 bd 24 01 00 - 00 0f cmp DWORD PTR r$9[rbp], 15 - 00501 7d 6a jge SHORT $LN36@stbi__jpeg - -; 2647 : j->eob_run = (1 << r) - 1; - - 00503 8b 85 24 01 00 - 00 mov eax, DWORD PTR r$9[rbp] - 00509 b9 01 00 00 00 mov ecx, 1 - 0050e 89 8d 54 02 00 - 00 mov DWORD PTR tv420[rbp], ecx - 00514 0f b6 c8 movzx ecx, al - 00517 8b 85 54 02 00 - 00 mov eax, DWORD PTR tv420[rbp] - 0051d d3 e0 shl eax, cl - 0051f ff c8 dec eax - 00521 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00528 89 81 44 48 00 - 00 mov DWORD PTR [rcx+18500], eax - -; 2648 : if (r) - - 0052e 83 bd 24 01 00 - 00 00 cmp DWORD PTR r$9[rbp], 0 - 00535 74 2c je SHORT $LN38@stbi__jpeg - -; 2649 : j->eob_run += stbi__jpeg_get_bits(j, r); - - 00537 8b 95 24 01 00 - 00 mov edx, DWORD PTR r$9[rbp] - 0053d 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00544 e8 00 00 00 00 call stbi__jpeg_get_bits - 00549 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00550 03 81 44 48 00 - 00 add eax, DWORD PTR [rcx+18500] - 00556 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 0055d 89 81 44 48 00 - 00 mov DWORD PTR [rcx+18500], eax -$LN38@stbi__jpeg: - -; 2650 : r = 64; // force end of block - - 00563 c7 85 24 01 00 - 00 40 00 00 00 mov DWORD PTR r$9[rbp], 64 ; 00000040H -$LN36@stbi__jpeg: - -; 2651 : } else { -; 2652 : // r=15 s=0 should write 16 0s, so we just do -; 2653 : // a run of 15 0s and then write s (which is 0), -; 2654 : // so we don't have to do anything special here -; 2655 : } -; 2656 : } else { - - 0056d eb 48 jmp SHORT $LN35@stbi__jpeg -$LN34@stbi__jpeg: - -; 2657 : if (s != 1) - - 0056f 83 bd 44 01 00 - 00 01 cmp DWORD PTR s$10[rbp], 1 - 00576 74 11 je SHORT $LN39@stbi__jpeg - -; 2658 : return stbi__err("bad huffman code", - - 00578 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@ - 0057f e8 00 00 00 00 call stbi__err - 00584 e9 3c 01 00 00 jmp $LN1@stbi__jpeg -$LN39@stbi__jpeg: - -; 2659 : "Corrupt JPEG"); -; 2660 : // sign bit -; 2661 : if (stbi__jpeg_get_bit(j)) - - 00589 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00590 e8 00 00 00 00 call stbi__jpeg_get_bit - 00595 85 c0 test eax, eax - 00597 74 0f je SHORT $LN40@stbi__jpeg - -; 2662 : s = bit; - - 00599 0f bf 85 e4 00 - 00 00 movsx eax, WORD PTR bit$7[rbp] - 005a0 89 85 44 01 00 - 00 mov DWORD PTR s$10[rbp], eax - 005a6 eb 0f jmp SHORT $LN41@stbi__jpeg -$LN40@stbi__jpeg: - -; 2663 : else -; 2664 : s = -bit; - - 005a8 0f bf 85 e4 00 - 00 00 movsx eax, WORD PTR bit$7[rbp] - 005af f7 d8 neg eax - 005b1 89 85 44 01 00 - 00 mov DWORD PTR s$10[rbp], eax -$LN41@stbi__jpeg: -$LN35@stbi__jpeg: -$LN11@stbi__jpeg: - -; 2665 : } -; 2666 : -; 2667 : // advance by r -; 2668 : while (k <= j->spec_end) { - - 005b7 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 005be 8b 80 38 48 00 - 00 mov eax, DWORD PTR [rax+18488] - 005c4 39 45 04 cmp DWORD PTR k$[rbp], eax - 005c7 0f 8f dd 00 00 - 00 jg $LN12@stbi__jpeg - -; 2669 : short *p = &data[stbi__jpeg_dezigzag[k++]]; - - 005cd 48 63 45 04 movsxd rax, DWORD PTR k$[rbp] - 005d1 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__jpeg_dezigzag - 005d8 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 005dc 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR data$[rbp] - 005e3 48 8d 04 41 lea rax, QWORD PTR [rcx+rax*2] - 005e7 48 89 85 88 01 - 00 00 mov QWORD PTR p$12[rbp], rax - 005ee 8b 45 04 mov eax, DWORD PTR k$[rbp] - 005f1 ff c0 inc eax - 005f3 89 45 04 mov DWORD PTR k$[rbp], eax - -; 2670 : if (*p != 0) { - - 005f6 48 8b 85 88 01 - 00 00 mov rax, QWORD PTR p$12[rbp] - 005fd 0f bf 00 movsx eax, WORD PTR [rax] - 00600 85 c0 test eax, eax - 00602 74 77 je SHORT $LN42@stbi__jpeg - -; 2671 : if (stbi__jpeg_get_bit(j)) - - 00604 48 8b 8d 80 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 0060b e8 00 00 00 00 call stbi__jpeg_get_bit - 00610 85 c0 test eax, eax - 00612 74 65 je SHORT $LN44@stbi__jpeg - -; 2672 : if ((*p & bit) == 0) { - - 00614 48 8b 85 88 01 - 00 00 mov rax, QWORD PTR p$12[rbp] - 0061b 0f bf 00 movsx eax, WORD PTR [rax] - 0061e 0f bf 8d e4 00 - 00 00 movsx ecx, WORD PTR bit$7[rbp] - 00625 23 c1 and eax, ecx - 00627 85 c0 test eax, eax - 00629 75 4e jne SHORT $LN45@stbi__jpeg - -; 2673 : if (*p > 0) - - 0062b 48 8b 85 88 01 - 00 00 mov rax, QWORD PTR p$12[rbp] - 00632 0f bf 00 movsx eax, WORD PTR [rax] - 00635 85 c0 test eax, eax - 00637 7e 21 jle SHORT $LN46@stbi__jpeg - -; 2674 : *p += bit; - - 00639 0f bf 85 e4 00 - 00 00 movsx eax, WORD PTR bit$7[rbp] - 00640 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR p$12[rbp] - 00647 0f bf 09 movsx ecx, WORD PTR [rcx] - 0064a 03 c8 add ecx, eax - 0064c 8b c1 mov eax, ecx - 0064e 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR p$12[rbp] - 00655 66 89 01 mov WORD PTR [rcx], ax - 00658 eb 1f jmp SHORT $LN47@stbi__jpeg -$LN46@stbi__jpeg: - -; 2675 : else -; 2676 : *p -= bit; - - 0065a 0f bf 85 e4 00 - 00 00 movsx eax, WORD PTR bit$7[rbp] - 00661 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR p$12[rbp] - 00668 0f bf 09 movsx ecx, WORD PTR [rcx] - 0066b 2b c8 sub ecx, eax - 0066d 8b c1 mov eax, ecx - 0066f 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR p$12[rbp] - 00676 66 89 01 mov WORD PTR [rcx], ax -$LN47@stbi__jpeg: -$LN45@stbi__jpeg: -$LN44@stbi__jpeg: - -; 2677 : } -; 2678 : } else { - - 00679 eb 2a jmp SHORT $LN43@stbi__jpeg -$LN42@stbi__jpeg: - -; 2679 : if (r == 0) { - - 0067b 83 bd 24 01 00 - 00 00 cmp DWORD PTR r$9[rbp], 0 - 00682 75 13 jne SHORT $LN48@stbi__jpeg - -; 2680 : *p = (short)s; - - 00684 48 8b 85 88 01 - 00 00 mov rax, QWORD PTR p$12[rbp] - 0068b 0f b7 8d 44 01 - 00 00 movzx ecx, WORD PTR s$10[rbp] - 00692 66 89 08 mov WORD PTR [rax], cx - -; 2681 : break; - - 00695 eb 13 jmp SHORT $LN12@stbi__jpeg -$LN48@stbi__jpeg: - -; 2682 : } -; 2683 : --r; - - 00697 8b 85 24 01 00 - 00 mov eax, DWORD PTR r$9[rbp] - 0069d ff c8 dec eax - 0069f 89 85 24 01 00 - 00 mov DWORD PTR r$9[rbp], eax -$LN43@stbi__jpeg: - -; 2684 : } -; 2685 : } - - 006a5 e9 0d ff ff ff jmp $LN11@stbi__jpeg -$LN12@stbi__jpeg: - -; 2686 : } while (k <= j->spec_end); - - 006aa 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 006b1 8b 80 38 48 00 - 00 mov eax, DWORD PTR [rax+18488] - 006b7 39 45 04 cmp DWORD PTR k$[rbp], eax - 006ba 0f 8e e0 fd ff - ff jle $LN10@stbi__jpeg -$LN27@stbi__jpeg: -$LN15@stbi__jpeg: - -; 2687 : } -; 2688 : } -; 2689 : return 1; - - 006c0 b8 01 00 00 00 mov eax, 1 -$LN1@stbi__jpeg: - -; 2690 : } - - 006c5 48 8d a5 68 02 - 00 00 lea rsp, QWORD PTR [rbp+616] - 006cc 5f pop rdi - 006cd 5d pop rbp - 006ce c3 ret 0 -stbi__jpeg_decode_block_prog_ac ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__jpeg_decode_block_prog_dc -_TEXT SEGMENT -diff$ = 4 -dc$ = 36 -t$ = 68 -tv87 = 276 -tv206 = 276 -tv210 = 276 -j$ = 320 -data$ = 328 -hdc$ = 336 -b$ = 344 -stbi__jpeg_decode_block_prog_dc PROC ; COMDAT - -; 2525 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 2526 : int diff, dc; -; 2527 : int t; -; 2528 : if (j->spec_end != 0) - - 0002f 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00036 83 b8 38 48 00 - 00 00 cmp DWORD PTR [rax+18488], 0 - 0003d 74 11 je SHORT $LN2@stbi__jpeg - -; 2529 : return stbi__err("can't merge dc and ac", "Corrupt JPEG"); - - 0003f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BG@PJBJDAGM@can?8t?5merge?5dc?5and?5ac@ - 00046 e8 00 00 00 00 call stbi__err - 0004b e9 f5 01 00 00 jmp $LN1@stbi__jpeg -$LN2@stbi__jpeg: - -; 2530 : -; 2531 : if (j->code_bits < 16) - - 00050 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00057 83 b8 24 48 00 - 00 10 cmp DWORD PTR [rax+18468], 16 - 0005e 7d 0d jge SHORT $LN3@stbi__jpeg - -; 2532 : stbi__grow_buffer_unsafe(j); - - 00060 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00067 e8 00 00 00 00 call stbi__grow_buffer_unsafe - 0006c 90 npad 1 -$LN3@stbi__jpeg: - -; 2533 : -; 2534 : if (j->succ_high == 0) { - - 0006d 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00074 83 b8 3c 48 00 - 00 00 cmp DWORD PTR [rax+18492], 0 - 0007b 0f 85 6c 01 00 - 00 jne $LN4@stbi__jpeg - -; 2535 : // first scan for DC coefficient, must be first -; 2536 : memset(data, 0, 64 * sizeof(data[0])); // 0 all the ac values now - - 00081 41 b8 80 00 00 - 00 mov r8d, 128 ; 00000080H - 00087 33 d2 xor edx, edx - 00089 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR data$[rbp] - 00090 e8 00 00 00 00 call memset - 00095 90 npad 1 - -; 2537 : t = stbi__jpeg_huff_decode(j, hdc); - - 00096 48 8b 95 50 01 - 00 00 mov rdx, QWORD PTR hdc$[rbp] - 0009d 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 000a4 e8 00 00 00 00 call stbi__jpeg_huff_decode - 000a9 89 45 44 mov DWORD PTR t$[rbp], eax - -; 2538 : if (t < 0 || t > 15) - - 000ac 83 7d 44 00 cmp DWORD PTR t$[rbp], 0 - 000b0 7c 06 jl SHORT $LN7@stbi__jpeg - 000b2 83 7d 44 0f cmp DWORD PTR t$[rbp], 15 - 000b6 7e 11 jle SHORT $LN6@stbi__jpeg -$LN7@stbi__jpeg: - -; 2539 : return stbi__err("can't merge dc and ac", "Corrupt JPEG"); - - 000b8 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BG@PJBJDAGM@can?8t?5merge?5dc?5and?5ac@ - 000bf e8 00 00 00 00 call stbi__err - 000c4 e9 7c 01 00 00 jmp $LN1@stbi__jpeg -$LN6@stbi__jpeg: - -; 2540 : diff = t ? stbi__extend_receive(j, t) : 0; - - 000c9 83 7d 44 00 cmp DWORD PTR t$[rbp], 0 - 000cd 74 17 je SHORT $LN12@stbi__jpeg - 000cf 8b 55 44 mov edx, DWORD PTR t$[rbp] - 000d2 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 000d9 e8 00 00 00 00 call stbi__extend_receive - 000de 89 85 14 01 00 - 00 mov DWORD PTR tv87[rbp], eax - 000e4 eb 0a jmp SHORT $LN13@stbi__jpeg -$LN12@stbi__jpeg: - 000e6 c7 85 14 01 00 - 00 00 00 00 00 mov DWORD PTR tv87[rbp], 0 -$LN13@stbi__jpeg: - 000f0 8b 85 14 01 00 - 00 mov eax, DWORD PTR tv87[rbp] - 000f6 89 45 04 mov DWORD PTR diff$[rbp], eax - -; 2541 : -; 2542 : if (!stbi__addints_valid(j->img_comp[b].dc_pred, diff)) - - 000f9 48 63 85 58 01 - 00 00 movsxd rax, DWORD PTR b$[rbp] - 00100 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00104 8b 55 04 mov edx, DWORD PTR diff$[rbp] - 00107 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 0010e 8b 8c 01 b8 46 - 00 00 mov ecx, DWORD PTR [rcx+rax+18104] - 00115 e8 00 00 00 00 call stbi__addints_valid - 0011a 85 c0 test eax, eax - 0011c 75 11 jne SHORT $LN8@stbi__jpeg - -; 2543 : return stbi__err("bad delta", "Corrupt JPEG"); - - 0011e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09IFDKCGFO@bad?5delta@ - 00125 e8 00 00 00 00 call stbi__err - 0012a e9 16 01 00 00 jmp $LN1@stbi__jpeg -$LN8@stbi__jpeg: - -; 2544 : dc = j->img_comp[b].dc_pred + diff; - - 0012f 48 63 85 58 01 - 00 00 movsxd rax, DWORD PTR b$[rbp] - 00136 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 0013a 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00141 8b 84 01 b8 46 - 00 00 mov eax, DWORD PTR [rcx+rax+18104] - 00148 03 45 04 add eax, DWORD PTR diff$[rbp] - 0014b 89 45 24 mov DWORD PTR dc$[rbp], eax - -; 2545 : j->img_comp[b].dc_pred = dc; - - 0014e 48 63 85 58 01 - 00 00 movsxd rax, DWORD PTR b$[rbp] - 00155 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00159 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00160 8b 55 24 mov edx, DWORD PTR dc$[rbp] - 00163 89 94 01 b8 46 - 00 00 mov DWORD PTR [rcx+rax+18104], edx - -; 2546 : if (!stbi__mul2shorts_valid(dc, 1 << j->succ_low)) - - 0016a 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00171 8b 80 40 48 00 - 00 mov eax, DWORD PTR [rax+18496] - 00177 b9 01 00 00 00 mov ecx, 1 - 0017c 89 8d 14 01 00 - 00 mov DWORD PTR tv206[rbp], ecx - 00182 0f b6 c8 movzx ecx, al - 00185 8b 85 14 01 00 - 00 mov eax, DWORD PTR tv206[rbp] - 0018b d3 e0 shl eax, cl - 0018d 8b d0 mov edx, eax - 0018f 8b 4d 24 mov ecx, DWORD PTR dc$[rbp] - 00192 e8 00 00 00 00 call stbi__mul2shorts_valid - 00197 85 c0 test eax, eax - 00199 75 11 jne SHORT $LN9@stbi__jpeg - -; 2547 : return stbi__err("can't merge dc and ac", "Corrupt JPEG"); - - 0019b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BG@PJBJDAGM@can?8t?5merge?5dc?5and?5ac@ - 001a2 e8 00 00 00 00 call stbi__err - 001a7 e9 99 00 00 00 jmp $LN1@stbi__jpeg -$LN9@stbi__jpeg: - -; 2548 : data[0] = (short)(dc * (1 << j->succ_low)); - - 001ac 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 001b3 8b 80 40 48 00 - 00 mov eax, DWORD PTR [rax+18496] - 001b9 b9 01 00 00 00 mov ecx, 1 - 001be 89 8d 14 01 00 - 00 mov DWORD PTR tv210[rbp], ecx - 001c4 0f b6 c8 movzx ecx, al - 001c7 8b 85 14 01 00 - 00 mov eax, DWORD PTR tv210[rbp] - 001cd d3 e0 shl eax, cl - 001cf 8b 4d 24 mov ecx, DWORD PTR dc$[rbp] - 001d2 0f af c8 imul ecx, eax - 001d5 8b c1 mov eax, ecx - 001d7 b9 02 00 00 00 mov ecx, 2 - 001dc 48 6b c9 00 imul rcx, rcx, 0 - 001e0 48 8b 95 48 01 - 00 00 mov rdx, QWORD PTR data$[rbp] - 001e7 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 2549 : } else { - - 001eb eb 53 jmp SHORT $LN5@stbi__jpeg -$LN4@stbi__jpeg: - -; 2550 : // refinement scan for DC coefficient -; 2551 : if (stbi__jpeg_get_bit(j)) - - 001ed 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 001f4 e8 00 00 00 00 call stbi__jpeg_get_bit - 001f9 85 c0 test eax, eax - 001fb 74 43 je SHORT $LN10@stbi__jpeg - -; 2552 : data[0] += (short)(1 << j->succ_low); - - 001fd b8 02 00 00 00 mov eax, 2 - 00202 48 6b c0 00 imul rax, rax, 0 - 00206 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 0020d 8b 89 40 48 00 - 00 mov ecx, DWORD PTR [rcx+18496] - 00213 ba 01 00 00 00 mov edx, 1 - 00218 d3 e2 shl edx, cl - 0021a 8b ca mov ecx, edx - 0021c 0f bf c9 movsx ecx, cx - 0021f 48 8b 95 48 01 - 00 00 mov rdx, QWORD PTR data$[rbp] - 00226 0f bf 04 02 movsx eax, WORD PTR [rdx+rax] - 0022a 03 c1 add eax, ecx - 0022c b9 02 00 00 00 mov ecx, 2 - 00231 48 6b c9 00 imul rcx, rcx, 0 - 00235 48 8b 95 48 01 - 00 00 mov rdx, QWORD PTR data$[rbp] - 0023c 66 89 04 0a mov WORD PTR [rdx+rcx], ax -$LN10@stbi__jpeg: -$LN5@stbi__jpeg: - -; 2553 : } -; 2554 : return 1; - - 00240 b8 01 00 00 00 mov eax, 1 -$LN1@stbi__jpeg: - -; 2555 : } - - 00245 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 0024c 5f pop rdi - 0024d 5d pop rbp - 0024e c3 ret 0 -stbi__jpeg_decode_block_prog_dc ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__jpeg_decode_block -_TEXT SEGMENT -diff$ = 4 -dc$ = 36 -k$ = 68 -t$ = 100 -zig$1 = 132 -c$2 = 164 -r$3 = 196 -s$4 = 228 -rs$5 = 260 -tv81 = 468 -tv276 = 472 -j$ = 512 -data$ = 520 -hdc$ = 528 -hac$ = 536 -fac$ = 544 -b$ = 552 -dequant$ = 560 -stbi__jpeg_decode_block PROC ; COMDAT - -; 2461 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 08 02 - 00 00 sub rsp, 520 ; 00000208H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 2462 : int diff, dc, k; -; 2463 : int t; -; 2464 : -; 2465 : if (j->code_bits < 16) - - 0002f 48 8b 85 00 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 00036 83 b8 24 48 00 - 00 10 cmp DWORD PTR [rax+18468], 16 - 0003d 7d 0d jge SHORT $LN5@stbi__jpeg - -; 2466 : stbi__grow_buffer_unsafe(j); - - 0003f 48 8b 8d 00 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00046 e8 00 00 00 00 call stbi__grow_buffer_unsafe - 0004b 90 npad 1 -$LN5@stbi__jpeg: - -; 2467 : t = stbi__jpeg_huff_decode(j, hdc); - - 0004c 48 8b 95 10 02 - 00 00 mov rdx, QWORD PTR hdc$[rbp] - 00053 48 8b 8d 00 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 0005a e8 00 00 00 00 call stbi__jpeg_huff_decode - 0005f 89 45 64 mov DWORD PTR t$[rbp], eax - -; 2468 : if (t < 0 || t > 15) - - 00062 83 7d 64 00 cmp DWORD PTR t$[rbp], 0 - 00066 7c 06 jl SHORT $LN7@stbi__jpeg - 00068 83 7d 64 0f cmp DWORD PTR t$[rbp], 15 - 0006c 7e 11 jle SHORT $LN6@stbi__jpeg -$LN7@stbi__jpeg: - -; 2469 : return stbi__err("bad huffman code", "Corrupt JPEG"); - - 0006e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@ - 00075 e8 00 00 00 00 call stbi__err - 0007a e9 53 03 00 00 jmp $LN1@stbi__jpeg -$LN6@stbi__jpeg: - -; 2470 : -; 2471 : // 0 all the ac values now so we can do it 32-bits at a time -; 2472 : memset(data, 0, 64 * sizeof(data[0])); - - 0007f 41 b8 80 00 00 - 00 mov r8d, 128 ; 00000080H - 00085 33 d2 xor edx, edx - 00087 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR data$[rbp] - 0008e e8 00 00 00 00 call memset - 00093 90 npad 1 - -; 2473 : -; 2474 : diff = t ? stbi__extend_receive(j, t) : 0; - - 00094 83 7d 64 00 cmp DWORD PTR t$[rbp], 0 - 00098 74 17 je SHORT $LN19@stbi__jpeg - 0009a 8b 55 64 mov edx, DWORD PTR t$[rbp] - 0009d 48 8b 8d 00 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 000a4 e8 00 00 00 00 call stbi__extend_receive - 000a9 89 85 d4 01 00 - 00 mov DWORD PTR tv81[rbp], eax - 000af eb 0a jmp SHORT $LN20@stbi__jpeg -$LN19@stbi__jpeg: - 000b1 c7 85 d4 01 00 - 00 00 00 00 00 mov DWORD PTR tv81[rbp], 0 -$LN20@stbi__jpeg: - 000bb 8b 85 d4 01 00 - 00 mov eax, DWORD PTR tv81[rbp] - 000c1 89 45 04 mov DWORD PTR diff$[rbp], eax - -; 2475 : if (!stbi__addints_valid(j->img_comp[b].dc_pred, diff)) - - 000c4 48 63 85 28 02 - 00 00 movsxd rax, DWORD PTR b$[rbp] - 000cb 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 000cf 8b 55 04 mov edx, DWORD PTR diff$[rbp] - 000d2 48 8b 8d 00 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 000d9 8b 8c 01 b8 46 - 00 00 mov ecx, DWORD PTR [rcx+rax+18104] - 000e0 e8 00 00 00 00 call stbi__addints_valid - 000e5 85 c0 test eax, eax - 000e7 75 11 jne SHORT $LN8@stbi__jpeg - -; 2476 : return stbi__err("bad delta", "Corrupt JPEG"); - - 000e9 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09IFDKCGFO@bad?5delta@ - 000f0 e8 00 00 00 00 call stbi__err - 000f5 e9 d8 02 00 00 jmp $LN1@stbi__jpeg -$LN8@stbi__jpeg: - -; 2477 : dc = j->img_comp[b].dc_pred + diff; - - 000fa 48 63 85 28 02 - 00 00 movsxd rax, DWORD PTR b$[rbp] - 00101 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00105 48 8b 8d 00 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 0010c 8b 84 01 b8 46 - 00 00 mov eax, DWORD PTR [rcx+rax+18104] - 00113 03 45 04 add eax, DWORD PTR diff$[rbp] - 00116 89 45 24 mov DWORD PTR dc$[rbp], eax - -; 2478 : j->img_comp[b].dc_pred = dc; - - 00119 48 63 85 28 02 - 00 00 movsxd rax, DWORD PTR b$[rbp] - 00120 48 6b c0 60 imul rax, rax, 96 ; 00000060H - 00124 48 8b 8d 00 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 0012b 8b 55 24 mov edx, DWORD PTR dc$[rbp] - 0012e 89 94 01 b8 46 - 00 00 mov DWORD PTR [rcx+rax+18104], edx - -; 2479 : if (!stbi__mul2shorts_valid(dc, dequant[0])) - - 00135 b8 02 00 00 00 mov eax, 2 - 0013a 48 6b c0 00 imul rax, rax, 0 - 0013e 48 8b 8d 30 02 - 00 00 mov rcx, QWORD PTR dequant$[rbp] - 00145 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] - 00149 8b d0 mov edx, eax - 0014b 8b 4d 24 mov ecx, DWORD PTR dc$[rbp] - 0014e e8 00 00 00 00 call stbi__mul2shorts_valid - 00153 85 c0 test eax, eax - 00155 75 11 jne SHORT $LN9@stbi__jpeg - -; 2480 : return stbi__err("can't merge dc and ac", "Corrupt JPEG"); - - 00157 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BG@PJBJDAGM@can?8t?5merge?5dc?5and?5ac@ - 0015e e8 00 00 00 00 call stbi__err - 00163 e9 6a 02 00 00 jmp $LN1@stbi__jpeg -$LN9@stbi__jpeg: - -; 2481 : data[0] = (short)(dc * dequant[0]); - - 00168 b8 02 00 00 00 mov eax, 2 - 0016d 48 6b c0 00 imul rax, rax, 0 - 00171 48 8b 8d 30 02 - 00 00 mov rcx, QWORD PTR dequant$[rbp] - 00178 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] - 0017c 8b 4d 24 mov ecx, DWORD PTR dc$[rbp] - 0017f 0f af c8 imul ecx, eax - 00182 8b c1 mov eax, ecx - 00184 b9 02 00 00 00 mov ecx, 2 - 00189 48 6b c9 00 imul rcx, rcx, 0 - 0018d 48 8b 95 08 02 - 00 00 mov rdx, QWORD PTR data$[rbp] - 00194 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 2482 : -; 2483 : // decode AC components, see JPEG spec -; 2484 : k = 1; - - 00198 c7 45 44 01 00 - 00 00 mov DWORD PTR k$[rbp], 1 -$LN4@stbi__jpeg: - -; 2485 : do { -; 2486 : unsigned int zig; -; 2487 : int c, r, s; -; 2488 : if (j->code_bits < 16) - - 0019f 48 8b 85 00 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 001a6 83 b8 24 48 00 - 00 10 cmp DWORD PTR [rax+18468], 16 - 001ad 7d 0d jge SHORT $LN10@stbi__jpeg - -; 2489 : stbi__grow_buffer_unsafe(j); - - 001af 48 8b 8d 00 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 001b6 e8 00 00 00 00 call stbi__grow_buffer_unsafe - 001bb 90 npad 1 -$LN10@stbi__jpeg: - -; 2490 : c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS) - 1); - - 001bc 48 8b 85 00 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 001c3 8b 80 20 48 00 - 00 mov eax, DWORD PTR [rax+18464] - 001c9 c1 e8 17 shr eax, 23 - 001cc 25 ff 01 00 00 and eax, 511 ; 000001ffH - 001d1 89 85 a4 00 00 - 00 mov DWORD PTR c$2[rbp], eax - -; 2491 : r = fac[c]; - - 001d7 48 63 85 a4 00 - 00 00 movsxd rax, DWORD PTR c$2[rbp] - 001de 48 8b 8d 20 02 - 00 00 mov rcx, QWORD PTR fac$[rbp] - 001e5 0f bf 04 41 movsx eax, WORD PTR [rcx+rax*2] - 001e9 89 85 c4 00 00 - 00 mov DWORD PTR r$3[rbp], eax - -; 2492 : if (r) { // fast-AC path - - 001ef 83 bd c4 00 00 - 00 00 cmp DWORD PTR r$3[rbp], 0 - 001f6 0f 84 f0 00 00 - 00 je $LN11@stbi__jpeg - -; 2493 : k += (r >> 4) & 15; // run - - 001fc 8b 85 c4 00 00 - 00 mov eax, DWORD PTR r$3[rbp] - 00202 c1 f8 04 sar eax, 4 - 00205 83 e0 0f and eax, 15 - 00208 8b 4d 44 mov ecx, DWORD PTR k$[rbp] - 0020b 03 c8 add ecx, eax - 0020d 8b c1 mov eax, ecx - 0020f 89 45 44 mov DWORD PTR k$[rbp], eax - -; 2494 : s = r & 15; // combined length - - 00212 8b 85 c4 00 00 - 00 mov eax, DWORD PTR r$3[rbp] - 00218 83 e0 0f and eax, 15 - 0021b 89 85 e4 00 00 - 00 mov DWORD PTR s$4[rbp], eax - -; 2495 : if (s > j->code_bits) - - 00221 48 8b 85 00 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 00228 8b 80 24 48 00 - 00 mov eax, DWORD PTR [rax+18468] - 0022e 39 85 e4 00 00 - 00 cmp DWORD PTR s$4[rbp], eax - 00234 7e 11 jle SHORT $LN13@stbi__jpeg - -; 2496 : return stbi__err("bad huffman code", - - 00236 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@ - 0023d e8 00 00 00 00 call stbi__err - 00242 e9 8b 01 00 00 jmp $LN1@stbi__jpeg -$LN13@stbi__jpeg: - -; 2497 : "Combined length longer than code bits available"); -; 2498 : j->code_buffer <<= s; - - 00247 8b 85 e4 00 00 - 00 mov eax, DWORD PTR s$4[rbp] - 0024d 48 8b 8d 00 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00254 48 89 8d d8 01 - 00 00 mov QWORD PTR tv276[rbp], rcx - 0025b 0f b6 c8 movzx ecx, al - 0025e 48 8b 85 d8 01 - 00 00 mov rax, QWORD PTR tv276[rbp] - 00265 8b 80 20 48 00 - 00 mov eax, DWORD PTR [rax+18464] - 0026b d3 e0 shl eax, cl - 0026d 48 8b 8d 00 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00274 89 81 20 48 00 - 00 mov DWORD PTR [rcx+18464], eax - -; 2499 : j->code_bits -= s; - - 0027a 48 8b 85 00 02 - 00 00 mov rax, QWORD PTR j$[rbp] - 00281 8b 8d e4 00 00 - 00 mov ecx, DWORD PTR s$4[rbp] - 00287 8b 80 24 48 00 - 00 mov eax, DWORD PTR [rax+18468] - 0028d 2b c1 sub eax, ecx - 0028f 48 8b 8d 00 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00296 89 81 24 48 00 - 00 mov DWORD PTR [rcx+18468], eax - -; 2500 : // decode into unzigzag'd location -; 2501 : zig = stbi__jpeg_dezigzag[k++]; - - 0029c 48 63 45 44 movsxd rax, DWORD PTR k$[rbp] - 002a0 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__jpeg_dezigzag - 002a7 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 002ab 89 85 84 00 00 - 00 mov DWORD PTR zig$1[rbp], eax - 002b1 8b 45 44 mov eax, DWORD PTR k$[rbp] - 002b4 ff c0 inc eax - 002b6 89 45 44 mov DWORD PTR k$[rbp], eax - -; 2502 : data[zig] = (short)((r >> 8) * dequant[zig]); - - 002b9 8b 85 c4 00 00 - 00 mov eax, DWORD PTR r$3[rbp] - 002bf c1 f8 08 sar eax, 8 - 002c2 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR zig$1[rbp] - 002c8 48 8b 95 30 02 - 00 00 mov rdx, QWORD PTR dequant$[rbp] - 002cf 0f b7 0c 4a movzx ecx, WORD PTR [rdx+rcx*2] - 002d3 0f af c1 imul eax, ecx - 002d6 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR zig$1[rbp] - 002dc 48 8b 95 08 02 - 00 00 mov rdx, QWORD PTR data$[rbp] - 002e3 66 89 04 4a mov WORD PTR [rdx+rcx*2], ax - -; 2503 : } else { - - 002e7 e9 d7 00 00 00 jmp $LN12@stbi__jpeg -$LN11@stbi__jpeg: - -; 2504 : int rs = stbi__jpeg_huff_decode(j, hac); - - 002ec 48 8b 95 18 02 - 00 00 mov rdx, QWORD PTR hac$[rbp] - 002f3 48 8b 8d 00 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 002fa e8 00 00 00 00 call stbi__jpeg_huff_decode - 002ff 89 85 04 01 00 - 00 mov DWORD PTR rs$5[rbp], eax - -; 2505 : if (rs < 0) - - 00305 83 bd 04 01 00 - 00 00 cmp DWORD PTR rs$5[rbp], 0 - 0030c 7d 11 jge SHORT $LN14@stbi__jpeg - -; 2506 : return stbi__err("bad huffman code", "Corrupt JPEG"); - - 0030e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@ - 00315 e8 00 00 00 00 call stbi__err - 0031a e9 b3 00 00 00 jmp $LN1@stbi__jpeg -$LN14@stbi__jpeg: - -; 2507 : s = rs & 15; - - 0031f 8b 85 04 01 00 - 00 mov eax, DWORD PTR rs$5[rbp] - 00325 83 e0 0f and eax, 15 - 00328 89 85 e4 00 00 - 00 mov DWORD PTR s$4[rbp], eax - -; 2508 : r = rs >> 4; - - 0032e 8b 85 04 01 00 - 00 mov eax, DWORD PTR rs$5[rbp] - 00334 c1 f8 04 sar eax, 4 - 00337 89 85 c4 00 00 - 00 mov DWORD PTR r$3[rbp], eax - -; 2509 : if (s == 0) { - - 0033d 83 bd e4 00 00 - 00 00 cmp DWORD PTR s$4[rbp], 0 - 00344 75 19 jne SHORT $LN15@stbi__jpeg - -; 2510 : if (rs != 0xf0) - - 00346 81 bd 04 01 00 - 00 f0 00 00 00 cmp DWORD PTR rs$5[rbp], 240 ; 000000f0H - 00350 74 02 je SHORT $LN17@stbi__jpeg - -; 2511 : break; // end block - - 00352 eb 79 jmp SHORT $LN3@stbi__jpeg -$LN17@stbi__jpeg: - -; 2512 : k += 16; - - 00354 8b 45 44 mov eax, DWORD PTR k$[rbp] - 00357 83 c0 10 add eax, 16 - 0035a 89 45 44 mov DWORD PTR k$[rbp], eax - -; 2513 : } else { - - 0035d eb 64 jmp SHORT $LN16@stbi__jpeg -$LN15@stbi__jpeg: - -; 2514 : k += r; - - 0035f 8b 85 c4 00 00 - 00 mov eax, DWORD PTR r$3[rbp] - 00365 8b 4d 44 mov ecx, DWORD PTR k$[rbp] - 00368 03 c8 add ecx, eax - 0036a 8b c1 mov eax, ecx - 0036c 89 45 44 mov DWORD PTR k$[rbp], eax - -; 2515 : // decode into unzigzag'd location -; 2516 : zig = stbi__jpeg_dezigzag[k++]; - - 0036f 48 63 45 44 movsxd rax, DWORD PTR k$[rbp] - 00373 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__jpeg_dezigzag - 0037a 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0037e 89 85 84 00 00 - 00 mov DWORD PTR zig$1[rbp], eax - 00384 8b 45 44 mov eax, DWORD PTR k$[rbp] - 00387 ff c0 inc eax - 00389 89 45 44 mov DWORD PTR k$[rbp], eax - -; 2517 : data[zig] = (short)(stbi__extend_receive(j, s) * dequant[zig]); - - 0038c 8b 95 e4 00 00 - 00 mov edx, DWORD PTR s$4[rbp] - 00392 48 8b 8d 00 02 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00399 e8 00 00 00 00 call stbi__extend_receive - 0039e 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR zig$1[rbp] - 003a4 48 8b 95 30 02 - 00 00 mov rdx, QWORD PTR dequant$[rbp] - 003ab 0f b7 0c 4a movzx ecx, WORD PTR [rdx+rcx*2] - 003af 0f af c1 imul eax, ecx - 003b2 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR zig$1[rbp] - 003b8 48 8b 95 08 02 - 00 00 mov rdx, QWORD PTR data$[rbp] - 003bf 66 89 04 4a mov WORD PTR [rdx+rcx*2], ax -$LN16@stbi__jpeg: -$LN12@stbi__jpeg: - -; 2518 : } -; 2519 : } -; 2520 : } while (k < 64); - - 003c3 83 7d 44 40 cmp DWORD PTR k$[rbp], 64 ; 00000040H - 003c7 0f 8c d2 fd ff - ff jl $LN4@stbi__jpeg -$LN3@stbi__jpeg: - -; 2521 : return 1; - - 003cd b8 01 00 00 00 mov eax, 1 -$LN1@stbi__jpeg: - -; 2522 : } - - 003d2 48 8d a5 e8 01 - 00 00 lea rsp, QWORD PTR [rbp+488] - 003d9 5f pop rdi - 003da 5d pop rbp - 003db c3 ret 0 -stbi__jpeg_decode_block ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__jpeg_get_bit -_TEXT SEGMENT -k$ = 4 -j$ = 256 -stbi__jpeg_get_bit PROC ; COMDAT - -; 2435 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 2436 : unsigned int k; -; 2437 : if (j->code_bits < 1) - - 00020 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00027 83 b8 24 48 00 - 00 01 cmp DWORD PTR [rax+18468], 1 - 0002e 7d 0d jge SHORT $LN2@stbi__jpeg - -; 2438 : stbi__grow_buffer_unsafe(j); - - 00030 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00037 e8 00 00 00 00 call stbi__grow_buffer_unsafe - 0003c 90 npad 1 -$LN2@stbi__jpeg: - -; 2439 : if (j->code_bits < 1) - - 0003d 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00044 83 b8 24 48 00 - 00 01 cmp DWORD PTR [rax+18468], 1 - 0004b 7d 04 jge SHORT $LN3@stbi__jpeg - -; 2440 : return 0; // ran out of bits from stream, return 0s intead of continuing - - 0004d 33 c0 xor eax, eax - 0004f eb 50 jmp SHORT $LN1@stbi__jpeg -$LN3@stbi__jpeg: - -; 2441 : k = j->code_buffer; - - 00051 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00058 8b 80 20 48 00 - 00 mov eax, DWORD PTR [rax+18464] - 0005e 89 45 04 mov DWORD PTR k$[rbp], eax - -; 2442 : j->code_buffer <<= 1; - - 00061 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00068 8b 80 20 48 00 - 00 mov eax, DWORD PTR [rax+18464] - 0006e d1 e0 shl eax, 1 - 00070 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00077 89 81 20 48 00 - 00 mov DWORD PTR [rcx+18464], eax - -; 2443 : --j->code_bits; - - 0007d 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00084 8b 80 24 48 00 - 00 mov eax, DWORD PTR [rax+18468] - 0008a ff c8 dec eax - 0008c 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00093 89 81 24 48 00 - 00 mov DWORD PTR [rcx+18468], eax - -; 2444 : return k & 0x80000000; - - 00099 8b 45 04 mov eax, DWORD PTR k$[rbp] - 0009c 25 00 00 00 80 and eax, -2147483648 ; 80000000H -$LN1@stbi__jpeg: - -; 2445 : } - - 000a1 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 000a8 5f pop rdi - 000a9 5d pop rbp - 000aa c3 ret 0 -stbi__jpeg_get_bit ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__jpeg_get_bits -_TEXT SEGMENT -k$ = 4 -j$ = 256 -n$ = 264 -stbi__jpeg_get_bits PROC ; COMDAT - -; 2421 : { - - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00023 90 npad 1 - -; 2422 : unsigned int k; -; 2423 : if (j->code_bits < n) - - 00024 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 0002b 8b 8d 08 01 00 - 00 mov ecx, DWORD PTR n$[rbp] - 00031 39 88 24 48 00 - 00 cmp DWORD PTR [rax+18468], ecx - 00037 7d 0d jge SHORT $LN2@stbi__jpeg - -; 2424 : stbi__grow_buffer_unsafe(j); - - 00039 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00040 e8 00 00 00 00 call stbi__grow_buffer_unsafe - 00045 90 npad 1 -$LN2@stbi__jpeg: - -; 2425 : if (j->code_bits < n) - - 00046 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 0004d 8b 8d 08 01 00 - 00 mov ecx, DWORD PTR n$[rbp] - 00053 39 88 24 48 00 - 00 cmp DWORD PTR [rax+18468], ecx - 00059 7d 07 jge SHORT $LN3@stbi__jpeg - -; 2426 : return 0; // ran out of bits from stream, return 0s intead of continuing - - 0005b 33 c0 xor eax, eax - 0005d e9 82 00 00 00 jmp $LN1@stbi__jpeg -$LN3@stbi__jpeg: - -; 2427 : k = stbi_lrot(j->code_buffer, n); - - 00062 8b 95 08 01 00 - 00 mov edx, DWORD PTR n$[rbp] - 00068 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 0006f 8b 88 20 48 00 - 00 mov ecx, DWORD PTR [rax+18464] - 00075 e8 00 00 00 00 call _lrotl - 0007a 89 45 04 mov DWORD PTR k$[rbp], eax - -; 2428 : j->code_buffer = k & ~stbi__bmask[n]; - - 0007d 48 63 85 08 01 - 00 00 movsxd rax, DWORD PTR n$[rbp] - 00084 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__bmask - 0008b 8b 04 81 mov eax, DWORD PTR [rcx+rax*4] - 0008e f7 d0 not eax - 00090 8b 4d 04 mov ecx, DWORD PTR k$[rbp] - 00093 23 c8 and ecx, eax - 00095 8b c1 mov eax, ecx - 00097 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 0009e 89 81 20 48 00 - 00 mov DWORD PTR [rcx+18464], eax - -; 2429 : k &= stbi__bmask[n]; - - 000a4 48 63 85 08 01 - 00 00 movsxd rax, DWORD PTR n$[rbp] - 000ab 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__bmask - 000b2 8b 04 81 mov eax, DWORD PTR [rcx+rax*4] - 000b5 8b 4d 04 mov ecx, DWORD PTR k$[rbp] - 000b8 23 c8 and ecx, eax - 000ba 8b c1 mov eax, ecx - 000bc 89 45 04 mov DWORD PTR k$[rbp], eax - -; 2430 : j->code_bits -= n; - - 000bf 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 000c6 8b 8d 08 01 00 - 00 mov ecx, DWORD PTR n$[rbp] - 000cc 8b 80 24 48 00 - 00 mov eax, DWORD PTR [rax+18468] - 000d2 2b c1 sub eax, ecx - 000d4 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 000db 89 81 24 48 00 - 00 mov DWORD PTR [rcx+18468], eax - -; 2431 : return k; - - 000e1 8b 45 04 mov eax, DWORD PTR k$[rbp] -$LN1@stbi__jpeg: - -; 2432 : } - - 000e4 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 000eb 5f pop rdi - 000ec 5d pop rbp - 000ed c3 ret 0 -stbi__jpeg_get_bits ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__extend_receive -_TEXT SEGMENT -k$ = 4 -sgn$ = 36 -j$ = 288 -n$ = 296 -stbi__extend_receive PROC ; COMDAT - -; 2402 : { - - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00023 90 npad 1 - -; 2403 : unsigned int k; -; 2404 : int sgn; -; 2405 : if (j->code_bits < n) - - 00024 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 0002b 8b 8d 28 01 00 - 00 mov ecx, DWORD PTR n$[rbp] - 00031 39 88 24 48 00 - 00 cmp DWORD PTR [rax+18468], ecx - 00037 7d 0d jge SHORT $LN2@stbi__exte - -; 2406 : stbi__grow_buffer_unsafe(j); - - 00039 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00040 e8 00 00 00 00 call stbi__grow_buffer_unsafe - 00045 90 npad 1 -$LN2@stbi__exte: - -; 2407 : if (j->code_bits < n) - - 00046 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 0004d 8b 8d 28 01 00 - 00 mov ecx, DWORD PTR n$[rbp] - 00053 39 88 24 48 00 - 00 cmp DWORD PTR [rax+18468], ecx - 00059 7d 07 jge SHORT $LN3@stbi__exte - -; 2408 : return 0; // ran out of bits from stream, return 0s intead of continuing - - 0005b 33 c0 xor eax, eax - 0005d e9 b1 00 00 00 jmp $LN1@stbi__exte -$LN3@stbi__exte: - -; 2409 : -; 2410 : sgn = j->code_buffer >> - - 00062 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00069 8b 80 20 48 00 - 00 mov eax, DWORD PTR [rax+18464] - 0006f c1 e8 1f shr eax, 31 - 00072 89 45 24 mov DWORD PTR sgn$[rbp], eax - -; 2411 : 31; // sign bit always in MSB; 0 if MSB clear (positive), 1 if MSB set (negative) -; 2412 : k = stbi_lrot(j->code_buffer, n); - - 00075 8b 95 28 01 00 - 00 mov edx, DWORD PTR n$[rbp] - 0007b 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00082 8b 88 20 48 00 - 00 mov ecx, DWORD PTR [rax+18464] - 00088 e8 00 00 00 00 call _lrotl - 0008d 89 45 04 mov DWORD PTR k$[rbp], eax - -; 2413 : j->code_buffer = k & ~stbi__bmask[n]; - - 00090 48 63 85 28 01 - 00 00 movsxd rax, DWORD PTR n$[rbp] - 00097 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__bmask - 0009e 8b 04 81 mov eax, DWORD PTR [rcx+rax*4] - 000a1 f7 d0 not eax - 000a3 8b 4d 04 mov ecx, DWORD PTR k$[rbp] - 000a6 23 c8 and ecx, eax - 000a8 8b c1 mov eax, ecx - 000aa 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 000b1 89 81 20 48 00 - 00 mov DWORD PTR [rcx+18464], eax - -; 2414 : k &= stbi__bmask[n]; - - 000b7 48 63 85 28 01 - 00 00 movsxd rax, DWORD PTR n$[rbp] - 000be 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__bmask - 000c5 8b 04 81 mov eax, DWORD PTR [rcx+rax*4] - 000c8 8b 4d 04 mov ecx, DWORD PTR k$[rbp] - 000cb 23 c8 and ecx, eax - 000cd 8b c1 mov eax, ecx - 000cf 89 45 04 mov DWORD PTR k$[rbp], eax - -; 2415 : j->code_bits -= n; - - 000d2 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 000d9 8b 8d 28 01 00 - 00 mov ecx, DWORD PTR n$[rbp] - 000df 8b 80 24 48 00 - 00 mov eax, DWORD PTR [rax+18468] - 000e5 2b c1 sub eax, ecx - 000e7 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 000ee 89 81 24 48 00 - 00 mov DWORD PTR [rcx+18468], eax - -; 2416 : return k + (stbi__jbias[n] & (sgn - 1)); - - 000f4 48 63 85 28 01 - 00 00 movsxd rax, DWORD PTR n$[rbp] - 000fb 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:stbi__jbias - 00102 8b 55 24 mov edx, DWORD PTR sgn$[rbp] - 00105 ff ca dec edx - 00107 8b 04 81 mov eax, DWORD PTR [rcx+rax*4] - 0010a 23 c2 and eax, edx - 0010c 8b 4d 04 mov ecx, DWORD PTR k$[rbp] - 0010f 03 c8 add ecx, eax - 00111 8b c1 mov eax, ecx -$LN1@stbi__exte: - -; 2417 : } - - 00113 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 0011a 5f pop rdi - 0011b 5d pop rbp - 0011c c3 ret 0 -stbi__extend_receive ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__jpeg_huff_decode -_TEXT SEGMENT -temp$ = 4 -c$ = 36 -k$ = 68 -s$1 = 100 -tv212 = 312 -tv233 = 312 -tv242 = 312 -tv253 = 312 -j$ = 352 -h$ = 360 -stbi__jpeg_huff_decode PROC ; COMDAT - -; 2343 : { - - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 68 01 - 00 00 sub rsp, 360 ; 00000168H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 - -; 2344 : unsigned int temp; -; 2345 : int c, k; -; 2346 : -; 2347 : if (j->code_bits < 16) - - 00025 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 0002c 83 b8 24 48 00 - 00 10 cmp DWORD PTR [rax+18468], 16 - 00033 7d 0d jge SHORT $LN5@stbi__jpeg - -; 2348 : stbi__grow_buffer_unsafe(j); - - 00035 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 0003c e8 00 00 00 00 call stbi__grow_buffer_unsafe - 00041 90 npad 1 -$LN5@stbi__jpeg: - -; 2349 : -; 2350 : // look at the top FAST_BITS and determine what symbol ID it is, -; 2351 : // if the code is <= FAST_BITS -; 2352 : c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS) - 1); - - 00042 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00049 8b 80 20 48 00 - 00 mov eax, DWORD PTR [rax+18464] - 0004f c1 e8 17 shr eax, 23 - 00052 25 ff 01 00 00 and eax, 511 ; 000001ffH - 00057 89 45 24 mov DWORD PTR c$[rbp], eax - -; 2353 : k = h->fast[c]; - - 0005a 48 63 45 24 movsxd rax, DWORD PTR c$[rbp] - 0005e 48 8b 8d 68 01 - 00 00 mov rcx, QWORD PTR h$[rbp] - 00065 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00069 89 45 44 mov DWORD PTR k$[rbp], eax - -; 2354 : if (k < 255) { - - 0006c 81 7d 44 ff 00 - 00 00 cmp DWORD PTR k$[rbp], 255 ; 000000ffH - 00073 0f 8d 99 00 00 - 00 jge $LN6@stbi__jpeg - -; 2355 : int s = h->size[k]; - - 00079 48 63 45 44 movsxd rax, DWORD PTR k$[rbp] - 0007d 48 8b 8d 68 01 - 00 00 mov rcx, QWORD PTR h$[rbp] - 00084 0f b6 84 01 00 - 05 00 00 movzx eax, BYTE PTR [rcx+rax+1280] - 0008c 89 45 64 mov DWORD PTR s$1[rbp], eax - -; 2356 : if (s > j->code_bits) - - 0008f 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00096 8b 80 24 48 00 - 00 mov eax, DWORD PTR [rax+18468] - 0009c 39 45 64 cmp DWORD PTR s$1[rbp], eax - 0009f 7e 0a jle SHORT $LN7@stbi__jpeg - -; 2357 : return -1; - - 000a1 b8 ff ff ff ff mov eax, -1 - 000a6 e9 41 02 00 00 jmp $LN1@stbi__jpeg -$LN7@stbi__jpeg: - -; 2358 : j->code_buffer <<= s; - - 000ab 8b 45 64 mov eax, DWORD PTR s$1[rbp] - 000ae 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 000b5 48 89 8d 38 01 - 00 00 mov QWORD PTR tv212[rbp], rcx - 000bc 0f b6 c8 movzx ecx, al - 000bf 48 8b 85 38 01 - 00 00 mov rax, QWORD PTR tv212[rbp] - 000c6 8b 80 20 48 00 - 00 mov eax, DWORD PTR [rax+18464] - 000cc d3 e0 shl eax, cl - 000ce 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 000d5 89 81 20 48 00 - 00 mov DWORD PTR [rcx+18464], eax - -; 2359 : j->code_bits -= s; - - 000db 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 000e2 8b 4d 64 mov ecx, DWORD PTR s$1[rbp] - 000e5 8b 80 24 48 00 - 00 mov eax, DWORD PTR [rax+18468] - 000eb 2b c1 sub eax, ecx - 000ed 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 000f4 89 81 24 48 00 - 00 mov DWORD PTR [rcx+18468], eax - -; 2360 : return h->values[k]; - - 000fa 48 63 45 44 movsxd rax, DWORD PTR k$[rbp] - 000fe 48 8b 8d 68 01 - 00 00 mov rcx, QWORD PTR h$[rbp] - 00105 0f b6 84 01 00 - 04 00 00 movzx eax, BYTE PTR [rcx+rax+1024] - 0010d e9 da 01 00 00 jmp $LN1@stbi__jpeg -$LN6@stbi__jpeg: - -; 2361 : } -; 2362 : -; 2363 : // naive test is to shift the code_buffer down so k bits are -; 2364 : // valid, then test against maxcode. To speed this up, we've -; 2365 : // preshifted maxcode left so that it has (16-k) 0s at the -; 2366 : // end; in other words, regardless of the number of bits, it -; 2367 : // wants to be compared against something shifted to have 16; -; 2368 : // that way we don't need to shift inside the loop. -; 2369 : temp = j->code_buffer >> 16; - - 00112 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00119 8b 80 20 48 00 - 00 mov eax, DWORD PTR [rax+18464] - 0011f c1 e8 10 shr eax, 16 - 00122 89 45 04 mov DWORD PTR temp$[rbp], eax - -; 2370 : for (k = FAST_BITS + 1;; ++k) - - 00125 c7 45 44 0a 00 - 00 00 mov DWORD PTR k$[rbp], 10 - 0012c eb 08 jmp SHORT $LN4@stbi__jpeg -$LN2@stbi__jpeg: - 0012e 8b 45 44 mov eax, DWORD PTR k$[rbp] - 00131 ff c0 inc eax - 00133 89 45 44 mov DWORD PTR k$[rbp], eax -$LN4@stbi__jpeg: - -; 2371 : if (temp < h->maxcode[k]) - - 00136 48 63 45 44 movsxd rax, DWORD PTR k$[rbp] - 0013a 48 8b 8d 68 01 - 00 00 mov rcx, QWORD PTR h$[rbp] - 00141 8b 84 81 04 06 - 00 00 mov eax, DWORD PTR [rcx+rax*4+1540] - 00148 39 45 04 cmp DWORD PTR temp$[rbp], eax - 0014b 73 02 jae SHORT $LN8@stbi__jpeg - -; 2372 : break; - - 0014d eb 02 jmp SHORT $LN3@stbi__jpeg -$LN8@stbi__jpeg: - 0014f eb dd jmp SHORT $LN2@stbi__jpeg -$LN3@stbi__jpeg: - -; 2373 : if (k == 17) { - - 00151 83 7d 44 11 cmp DWORD PTR k$[rbp], 17 - 00155 75 27 jne SHORT $LN9@stbi__jpeg - -; 2374 : // error! code not found -; 2375 : j->code_bits -= 16; - - 00157 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 0015e 8b 80 24 48 00 - 00 mov eax, DWORD PTR [rax+18468] - 00164 83 e8 10 sub eax, 16 - 00167 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 0016e 89 81 24 48 00 - 00 mov DWORD PTR [rcx+18468], eax - -; 2376 : return -1; - - 00174 b8 ff ff ff ff mov eax, -1 - 00179 e9 6e 01 00 00 jmp $LN1@stbi__jpeg -$LN9@stbi__jpeg: - -; 2377 : } -; 2378 : -; 2379 : if (k > j->code_bits) - - 0017e 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00185 8b 80 24 48 00 - 00 mov eax, DWORD PTR [rax+18468] - 0018b 39 45 44 cmp DWORD PTR k$[rbp], eax - 0018e 7e 0a jle SHORT $LN10@stbi__jpeg - -; 2380 : return -1; - - 00190 b8 ff ff ff ff mov eax, -1 - 00195 e9 52 01 00 00 jmp $LN1@stbi__jpeg -$LN10@stbi__jpeg: - -; 2381 : -; 2382 : // convert the huffman code to the symbol id -; 2383 : c = ((j->code_buffer >> (32 - k)) & stbi__bmask[k]) + h->delta[k]; - - 0019a b8 20 00 00 00 mov eax, 32 ; 00000020H - 0019f 2b 45 44 sub eax, DWORD PTR k$[rbp] - 001a2 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 001a9 48 89 8d 38 01 - 00 00 mov QWORD PTR tv233[rbp], rcx - 001b0 0f b6 c8 movzx ecx, al - 001b3 48 8b 85 38 01 - 00 00 mov rax, QWORD PTR tv233[rbp] - 001ba 8b 80 20 48 00 - 00 mov eax, DWORD PTR [rax+18464] - 001c0 d3 e8 shr eax, cl - 001c2 48 63 4d 44 movsxd rcx, DWORD PTR k$[rbp] - 001c6 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__bmask - 001cd 23 04 8a and eax, DWORD PTR [rdx+rcx*4] - 001d0 48 63 4d 44 movsxd rcx, DWORD PTR k$[rbp] - 001d4 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR h$[rbp] - 001db 03 84 8a 4c 06 - 00 00 add eax, DWORD PTR [rdx+rcx*4+1612] - 001e2 89 45 24 mov DWORD PTR c$[rbp], eax - -; 2384 : if (c < 0 || c >= 256) // symbol id out of bounds! - - 001e5 83 7d 24 00 cmp DWORD PTR c$[rbp], 0 - 001e9 7c 09 jl SHORT $LN12@stbi__jpeg - 001eb 81 7d 24 00 01 - 00 00 cmp DWORD PTR c$[rbp], 256 ; 00000100H - 001f2 7c 0a jl SHORT $LN11@stbi__jpeg -$LN12@stbi__jpeg: - -; 2385 : return -1; - - 001f4 b8 ff ff ff ff mov eax, -1 - 001f9 e9 ee 00 00 00 jmp $LN1@stbi__jpeg -$LN11@stbi__jpeg: - -; 2386 : STBI_ASSERT((((j->code_buffer) >> (32 - h->size[c])) & stbi__bmask[h->size[c]]) == - - 001fe 48 63 45 24 movsxd rax, DWORD PTR c$[rbp] - 00202 48 8b 8d 68 01 - 00 00 mov rcx, QWORD PTR h$[rbp] - 00209 0f b6 84 01 00 - 05 00 00 movzx eax, BYTE PTR [rcx+rax+1280] - 00211 b9 20 00 00 00 mov ecx, 32 ; 00000020H - 00216 2b c8 sub ecx, eax - 00218 8b c1 mov eax, ecx - 0021a 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00221 48 89 8d 38 01 - 00 00 mov QWORD PTR tv242[rbp], rcx - 00228 0f b6 c8 movzx ecx, al - 0022b 48 8b 85 38 01 - 00 00 mov rax, QWORD PTR tv242[rbp] - 00232 8b 80 20 48 00 - 00 mov eax, DWORD PTR [rax+18464] - 00238 d3 e8 shr eax, cl - 0023a 48 63 4d 24 movsxd rcx, DWORD PTR c$[rbp] - 0023e 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR h$[rbp] - 00245 0f b6 8c 0a 00 - 05 00 00 movzx ecx, BYTE PTR [rdx+rcx+1280] - 0024d 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__bmask - 00254 23 04 8a and eax, DWORD PTR [rdx+rcx*4] - 00257 48 63 4d 24 movsxd rcx, DWORD PTR c$[rbp] - 0025b 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR h$[rbp] - 00262 0f b7 8c 4a 00 - 02 00 00 movzx ecx, WORD PTR [rdx+rcx*2+512] - 0026a 3b c1 cmp eax, ecx - 0026c 74 1c je SHORT $LN14@stbi__jpeg - 0026e 41 b8 53 09 00 - 00 mov r8d, 2387 ; 00000953H - 00274 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ - 0027b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1KE@JGKPJEBO@?$AA?$CI?$AA?$CI?$AA?$CI?$AAj?$AA?9?$AA?$DO?$AAc?$AAo?$AAd?$AAe?$AA_?$AAb?$AAu?$AAf?$AAf@ - 00282 ff 15 00 00 00 - 00 call QWORD PTR __imp__wassert - 00288 33 c0 xor eax, eax -$LN14@stbi__jpeg: - -; 2387 : h->code[c]); -; 2388 : -; 2389 : // convert the id to a symbol -; 2390 : j->code_bits -= k; - - 0028a 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00291 8b 4d 44 mov ecx, DWORD PTR k$[rbp] - 00294 8b 80 24 48 00 - 00 mov eax, DWORD PTR [rax+18468] - 0029a 2b c1 sub eax, ecx - 0029c 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 002a3 89 81 24 48 00 - 00 mov DWORD PTR [rcx+18468], eax - -; 2391 : j->code_buffer <<= k; - - 002a9 8b 45 44 mov eax, DWORD PTR k$[rbp] - 002ac 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 002b3 48 89 8d 38 01 - 00 00 mov QWORD PTR tv253[rbp], rcx - 002ba 0f b6 c8 movzx ecx, al - 002bd 48 8b 85 38 01 - 00 00 mov rax, QWORD PTR tv253[rbp] - 002c4 8b 80 20 48 00 - 00 mov eax, DWORD PTR [rax+18464] - 002ca d3 e0 shl eax, cl - 002cc 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 002d3 89 81 20 48 00 - 00 mov DWORD PTR [rcx+18464], eax - -; 2392 : return h->values[c]; - - 002d9 48 63 45 24 movsxd rax, DWORD PTR c$[rbp] - 002dd 48 8b 8d 68 01 - 00 00 mov rcx, QWORD PTR h$[rbp] - 002e4 0f b6 84 01 00 - 04 00 00 movzx eax, BYTE PTR [rcx+rax+1024] -$LN1@stbi__jpeg: - -; 2393 : } - - 002ec 48 8d a5 48 01 - 00 00 lea rsp, QWORD PTR [rbp+328] - 002f3 5f pop rdi - 002f4 5d pop rbp - 002f5 c3 ret 0 -stbi__jpeg_huff_decode ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__grow_buffer_unsafe -_TEXT SEGMENT -b$1 = 4 -c$2 = 36 -tv70 = 244 -j$ = 288 -stbi__grow_buffer_unsafe PROC ; COMDAT - -; 2319 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 -$LN4@stbi__grow: - -; 2320 : do { -; 2321 : unsigned int b = j->nomore ? 0 : stbi__get8(j->s); - - 00020 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00027 83 b8 2c 48 00 - 00 00 cmp DWORD PTR [rax+18476], 0 - 0002e 74 0c je SHORT $LN10@stbi__grow - 00030 c7 85 f4 00 00 - 00 00 00 00 00 mov DWORD PTR tv70[rbp], 0 - 0003a eb 18 jmp SHORT $LN11@stbi__grow -$LN10@stbi__grow: - 0003c 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00043 48 8b 08 mov rcx, QWORD PTR [rax] - 00046 e8 00 00 00 00 call stbi__get8 - 0004b 0f b6 c0 movzx eax, al - 0004e 89 85 f4 00 00 - 00 mov DWORD PTR tv70[rbp], eax -$LN11@stbi__grow: - 00054 8b 85 f4 00 00 - 00 mov eax, DWORD PTR tv70[rbp] - 0005a 89 45 04 mov DWORD PTR b$1[rbp], eax - -; 2322 : if (b == 0xff) { - - 0005d 81 7d 04 ff 00 - 00 00 cmp DWORD PTR b$1[rbp], 255 ; 000000ffH - 00064 75 5f jne SHORT $LN7@stbi__grow - -; 2323 : int c = stbi__get8(j->s); - - 00066 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 0006d 48 8b 08 mov rcx, QWORD PTR [rax] - 00070 e8 00 00 00 00 call stbi__get8 - 00075 0f b6 c0 movzx eax, al - 00078 89 45 24 mov DWORD PTR c$2[rbp], eax -$LN5@stbi__grow: - -; 2324 : while (c == 0xff) - - 0007b 81 7d 24 ff 00 - 00 00 cmp DWORD PTR c$2[rbp], 255 ; 000000ffH - 00082 75 17 jne SHORT $LN6@stbi__grow - -; 2325 : c = stbi__get8(j->s); // consume fill bytes - - 00084 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 0008b 48 8b 08 mov rcx, QWORD PTR [rax] - 0008e e8 00 00 00 00 call stbi__get8 - 00093 0f b6 c0 movzx eax, al - 00096 89 45 24 mov DWORD PTR c$2[rbp], eax - 00099 eb e0 jmp SHORT $LN5@stbi__grow -$LN6@stbi__grow: - -; 2326 : if (c != 0) { - - 0009b 83 7d 24 00 cmp DWORD PTR c$2[rbp], 0 - 0009f 74 24 je SHORT $LN8@stbi__grow - -; 2327 : j->marker = (unsigned char)c; - - 000a1 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 000a8 0f b6 4d 24 movzx ecx, BYTE PTR c$2[rbp] - 000ac 88 88 28 48 00 - 00 mov BYTE PTR [rax+18472], cl - -; 2328 : j->nomore = 1; - - 000b2 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 000b9 c7 80 2c 48 00 - 00 01 00 00 00 mov DWORD PTR [rax+18476], 1 - -; 2329 : return; - - 000c3 eb 6b jmp SHORT $LN1@stbi__grow -$LN8@stbi__grow: -$LN7@stbi__grow: - -; 2330 : } -; 2331 : } -; 2332 : j->code_buffer |= b << (24 - j->code_bits); - - 000c5 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 000cc b9 18 00 00 00 mov ecx, 24 - 000d1 2b 88 24 48 00 - 00 sub ecx, DWORD PTR [rax+18468] - 000d7 8b c1 mov eax, ecx - 000d9 0f b6 c8 movzx ecx, al - 000dc 8b 45 04 mov eax, DWORD PTR b$1[rbp] - 000df d3 e0 shl eax, cl - 000e1 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 000e8 8b 89 20 48 00 - 00 mov ecx, DWORD PTR [rcx+18464] - 000ee 0b c8 or ecx, eax - 000f0 8b c1 mov eax, ecx - 000f2 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 000f9 89 81 20 48 00 - 00 mov DWORD PTR [rcx+18464], eax - -; 2333 : j->code_bits += 8; - - 000ff 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00106 8b 80 24 48 00 - 00 mov eax, DWORD PTR [rax+18468] - 0010c 83 c0 08 add eax, 8 - 0010f 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR j$[rbp] - 00116 89 81 24 48 00 - 00 mov DWORD PTR [rcx+18468], eax - -; 2334 : } while (j->code_bits <= 24); - - 0011c 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR j$[rbp] - 00123 83 b8 24 48 00 - 00 18 cmp DWORD PTR [rax+18468], 24 - 0012a 0f 8e f0 fe ff - ff jle $LN4@stbi__grow -$LN1@stbi__grow: - -; 2335 : } - - 00130 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 00137 5f pop rdi - 00138 5d pop rbp - 00139 c3 ret 0 -stbi__grow_buffer_unsafe ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__build_fast_ac -_TEXT SEGMENT -i$ = 4 -fast$1 = 36 -rs$2 = 68 -run$3 = 100 -magbits$4 = 132 -len$5 = 164 -k$6 = 196 -m$7 = 228 -tv174 = 436 -tv178 = 436 -fast_ac$ = 480 -h$ = 488 -stbi__build_fast_ac PROC ; COMDAT - -; 2291 : { - - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec e8 01 - 00 00 sub rsp, 488 ; 000001e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 - -; 2292 : int i; -; 2293 : for (i = 0; i < (1 << FAST_BITS); ++i) { - - 00025 c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 0002c eb 08 jmp SHORT $LN4@stbi__buil -$LN2@stbi__buil: - 0002e 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00031 ff c0 inc eax - 00033 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__buil: - 00036 81 7d 04 00 02 - 00 00 cmp DWORD PTR i$[rbp], 512 ; 00000200H - 0003d 0f 8d 6b 01 00 - 00 jge $LN3@stbi__buil - -; 2294 : stbi_uc fast = h->fast[i]; - - 00043 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00047 48 8b 8d e8 01 - 00 00 mov rcx, QWORD PTR h$[rbp] - 0004e 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00052 88 45 24 mov BYTE PTR fast$1[rbp], al - -; 2295 : fast_ac[i] = 0; - - 00055 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00059 33 c9 xor ecx, ecx - 0005b 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR fast_ac$[rbp] - 00062 66 89 0c 42 mov WORD PTR [rdx+rax*2], cx - -; 2296 : if (fast < 255) { - - 00066 0f b6 45 24 movzx eax, BYTE PTR fast$1[rbp] - 0006a 3d ff 00 00 00 cmp eax, 255 ; 000000ffH - 0006f 0f 8d 34 01 00 - 00 jge $LN5@stbi__buil - -; 2297 : int rs = h->values[fast]; - - 00075 0f b6 45 24 movzx eax, BYTE PTR fast$1[rbp] - 00079 48 8b 8d e8 01 - 00 00 mov rcx, QWORD PTR h$[rbp] - 00080 0f b6 84 01 00 - 04 00 00 movzx eax, BYTE PTR [rcx+rax+1024] - 00088 89 45 44 mov DWORD PTR rs$2[rbp], eax - -; 2298 : int run = (rs >> 4) & 15; - - 0008b 8b 45 44 mov eax, DWORD PTR rs$2[rbp] - 0008e c1 f8 04 sar eax, 4 - 00091 83 e0 0f and eax, 15 - 00094 89 45 64 mov DWORD PTR run$3[rbp], eax - -; 2299 : int magbits = rs & 15; - - 00097 8b 45 44 mov eax, DWORD PTR rs$2[rbp] - 0009a 83 e0 0f and eax, 15 - 0009d 89 85 84 00 00 - 00 mov DWORD PTR magbits$4[rbp], eax - -; 2300 : int len = h->size[fast]; - - 000a3 0f b6 45 24 movzx eax, BYTE PTR fast$1[rbp] - 000a7 48 8b 8d e8 01 - 00 00 mov rcx, QWORD PTR h$[rbp] - 000ae 0f b6 84 01 00 - 05 00 00 movzx eax, BYTE PTR [rcx+rax+1280] - 000b6 89 85 a4 00 00 - 00 mov DWORD PTR len$5[rbp], eax - -; 2301 : -; 2302 : if (magbits && len + magbits <= FAST_BITS) { - - 000bc 83 bd 84 00 00 - 00 00 cmp DWORD PTR magbits$4[rbp], 0 - 000c3 0f 84 e0 00 00 - 00 je $LN6@stbi__buil - 000c9 8b 85 84 00 00 - 00 mov eax, DWORD PTR magbits$4[rbp] - 000cf 8b 8d a4 00 00 - 00 mov ecx, DWORD PTR len$5[rbp] - 000d5 03 c8 add ecx, eax - 000d7 8b c1 mov eax, ecx - 000d9 83 f8 09 cmp eax, 9 - 000dc 0f 8f c7 00 00 - 00 jg $LN6@stbi__buil - -; 2303 : // magnitude code followed by receive_extend code -; 2304 : int k = ((i << len) & ((1 << FAST_BITS) - 1)) >> - - 000e2 8b 85 a4 00 00 - 00 mov eax, DWORD PTR len$5[rbp] - 000e8 0f b6 c8 movzx ecx, al - 000eb 8b 45 04 mov eax, DWORD PTR i$[rbp] - 000ee d3 e0 shl eax, cl - 000f0 25 ff 01 00 00 and eax, 511 ; 000001ffH - 000f5 b9 09 00 00 00 mov ecx, 9 - 000fa 2b 8d 84 00 00 - 00 sub ecx, DWORD PTR magbits$4[rbp] - 00100 d3 f8 sar eax, cl - 00102 89 85 c4 00 00 - 00 mov DWORD PTR k$6[rbp], eax - -; 2305 : (FAST_BITS - magbits); -; 2306 : int m = 1 << (magbits - 1); - - 00108 8b 85 84 00 00 - 00 mov eax, DWORD PTR magbits$4[rbp] - 0010e ff c8 dec eax - 00110 b9 01 00 00 00 mov ecx, 1 - 00115 89 8d b4 01 00 - 00 mov DWORD PTR tv174[rbp], ecx - 0011b 0f b6 c8 movzx ecx, al - 0011e 8b 85 b4 01 00 - 00 mov eax, DWORD PTR tv174[rbp] - 00124 d3 e0 shl eax, cl - 00126 89 85 e4 00 00 - 00 mov DWORD PTR m$7[rbp], eax - -; 2307 : if (k < m) - - 0012c 8b 85 e4 00 00 - 00 mov eax, DWORD PTR m$7[rbp] - 00132 39 85 c4 00 00 - 00 cmp DWORD PTR k$6[rbp], eax - 00138 7d 2c jge SHORT $LN7@stbi__buil - -; 2308 : k += (~0U << magbits) + 1; - - 0013a 8b 85 84 00 00 - 00 mov eax, DWORD PTR magbits$4[rbp] - 00140 b9 ff ff ff ff mov ecx, -1 ; ffffffffH - 00145 89 8d b4 01 00 - 00 mov DWORD PTR tv178[rbp], ecx - 0014b 0f b6 c8 movzx ecx, al - 0014e 8b 85 b4 01 00 - 00 mov eax, DWORD PTR tv178[rbp] - 00154 d3 e0 shl eax, cl - 00156 8b 8d c4 00 00 - 00 mov ecx, DWORD PTR k$6[rbp] - 0015c 8d 44 01 01 lea eax, DWORD PTR [rcx+rax+1] - 00160 89 85 c4 00 00 - 00 mov DWORD PTR k$6[rbp], eax -$LN7@stbi__buil: - -; 2309 : // if the result is small enough, we can fit it in fast_ac table -; 2310 : if (k >= -128 && k <= 127) - - 00166 83 bd c4 00 00 - 00 80 cmp DWORD PTR k$6[rbp], -128 ; ffffffffffffff80H - 0016d 7c 3a jl SHORT $LN8@stbi__buil - 0016f 83 bd c4 00 00 - 00 7f cmp DWORD PTR k$6[rbp], 127 ; 0000007fH - 00176 7f 31 jg SHORT $LN8@stbi__buil - -; 2311 : fast_ac[i] = (stbi__int16)((k * 256) + (run * 16) + - - 00178 69 85 c4 00 00 - 00 00 01 00 00 imul eax, DWORD PTR k$6[rbp], 256 ; 00000100H - 00182 6b 4d 64 10 imul ecx, DWORD PTR run$3[rbp], 16 - 00186 03 c1 add eax, ecx - 00188 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR magbits$4[rbp] - 0018e 8b 95 a4 00 00 - 00 mov edx, DWORD PTR len$5[rbp] - 00194 03 d1 add edx, ecx - 00196 8b ca mov ecx, edx - 00198 03 c1 add eax, ecx - 0019a 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] - 0019e 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR fast_ac$[rbp] - 001a5 66 89 04 4a mov WORD PTR [rdx+rcx*2], ax -$LN8@stbi__buil: -$LN6@stbi__buil: -$LN5@stbi__buil: - -; 2312 : (len + magbits)); -; 2313 : } -; 2314 : } -; 2315 : } - - 001a9 e9 80 fe ff ff jmp $LN2@stbi__buil -$LN3@stbi__buil: - -; 2316 : } - - 001ae 48 8d a5 c8 01 - 00 00 lea rsp, QWORD PTR [rbp+456] - 001b5 5f pop rdi - 001b6 5d pop rbp - 001b7 c3 ret 0 -stbi__build_fast_ac ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__build_huffman -_TEXT SEGMENT -i$ = 4 -j$ = 36 -k$ = 68 -code$ = 100 -s$1 = 132 -c$2 = 164 -m$3 = 196 -tv238 = 404 -h$ = 448 -count$ = 456 -stbi__build_huffman PROC ; COMDAT - -; 2242 : { - - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec c8 01 - 00 00 sub rsp, 456 ; 000001c8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 - -; 2243 : int i, j, k = 0; - - 00025 c7 45 44 00 00 - 00 00 mov DWORD PTR k$[rbp], 0 - -; 2244 : unsigned int code; -; 2245 : // build size list for each symbol (from JPEG spec) -; 2246 : for (i = 0; i < 16; ++i) { - - 0002c c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00033 eb 08 jmp SHORT $LN4@stbi__buil -$LN2@stbi__buil: - 00035 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00038 ff c0 inc eax - 0003a 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__buil: - 0003d 83 7d 04 10 cmp DWORD PTR i$[rbp], 16 - 00041 7d 61 jge SHORT $LN3@stbi__buil - -; 2247 : for (j = 0; j < count[i]; ++j) { - - 00043 c7 45 24 00 00 - 00 00 mov DWORD PTR j$[rbp], 0 - 0004a eb 08 jmp SHORT $LN7@stbi__buil -$LN5@stbi__buil: - 0004c 8b 45 24 mov eax, DWORD PTR j$[rbp] - 0004f ff c0 inc eax - 00051 89 45 24 mov DWORD PTR j$[rbp], eax -$LN7@stbi__buil: - 00054 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00058 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR count$[rbp] - 0005f 8b 04 81 mov eax, DWORD PTR [rcx+rax*4] - 00062 39 45 24 cmp DWORD PTR j$[rbp], eax - 00065 7d 3b jge SHORT $LN6@stbi__buil - -; 2248 : h->size[k++] = (stbi_uc)(i + 1); - - 00067 8b 45 04 mov eax, DWORD PTR i$[rbp] - 0006a ff c0 inc eax - 0006c 48 63 4d 44 movsxd rcx, DWORD PTR k$[rbp] - 00070 48 8b 95 c0 01 - 00 00 mov rdx, QWORD PTR h$[rbp] - 00077 88 84 0a 00 05 - 00 00 mov BYTE PTR [rdx+rcx+1280], al - 0007e 8b 45 44 mov eax, DWORD PTR k$[rbp] - 00081 ff c0 inc eax - 00083 89 45 44 mov DWORD PTR k$[rbp], eax - -; 2249 : if (k >= 257) - - 00086 81 7d 44 01 01 - 00 00 cmp DWORD PTR k$[rbp], 257 ; 00000101H - 0008d 7c 11 jl SHORT $LN19@stbi__buil - -; 2250 : return stbi__err("bad size list", "Corrupt JPEG"); - - 0008f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0O@DEFOLMLB@bad?5size?5list@ - 00096 e8 00 00 00 00 call stbi__err - 0009b e9 10 02 00 00 jmp $LN1@stbi__buil -$LN19@stbi__buil: - -; 2251 : } - - 000a0 eb aa jmp SHORT $LN5@stbi__buil -$LN6@stbi__buil: - -; 2252 : } - - 000a2 eb 91 jmp SHORT $LN2@stbi__buil -$LN3@stbi__buil: - -; 2253 : h->size[k] = 0; - - 000a4 48 63 45 44 movsxd rax, DWORD PTR k$[rbp] - 000a8 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR h$[rbp] - 000af c6 84 01 00 05 - 00 00 00 mov BYTE PTR [rcx+rax+1280], 0 - -; 2254 : -; 2255 : // compute actual symbols (from jpeg spec) -; 2256 : code = 0; - - 000b7 c7 45 64 00 00 - 00 00 mov DWORD PTR code$[rbp], 0 - -; 2257 : k = 0; - - 000be c7 45 44 00 00 - 00 00 mov DWORD PTR k$[rbp], 0 - -; 2258 : for (j = 1; j <= 16; ++j) { - - 000c5 c7 45 24 01 00 - 00 00 mov DWORD PTR j$[rbp], 1 - 000cc eb 08 jmp SHORT $LN10@stbi__buil -$LN8@stbi__buil: - 000ce 8b 45 24 mov eax, DWORD PTR j$[rbp] - 000d1 ff c0 inc eax - 000d3 89 45 24 mov DWORD PTR j$[rbp], eax -$LN10@stbi__buil: - 000d6 83 7d 24 10 cmp DWORD PTR j$[rbp], 16 - 000da 0f 8f ca 00 00 - 00 jg $LN9@stbi__buil - -; 2259 : // compute delta to add to code to compute symbol id -; 2260 : h->delta[j] = k - code; - - 000e0 8b 45 64 mov eax, DWORD PTR code$[rbp] - 000e3 8b 4d 44 mov ecx, DWORD PTR k$[rbp] - 000e6 2b c8 sub ecx, eax - 000e8 8b c1 mov eax, ecx - 000ea 48 63 4d 24 movsxd rcx, DWORD PTR j$[rbp] - 000ee 48 8b 95 c0 01 - 00 00 mov rdx, QWORD PTR h$[rbp] - 000f5 89 84 8a 4c 06 - 00 00 mov DWORD PTR [rdx+rcx*4+1612], eax - -; 2261 : if (h->size[k] == j) { - - 000fc 48 63 45 44 movsxd rax, DWORD PTR k$[rbp] - 00100 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR h$[rbp] - 00107 0f b6 84 01 00 - 05 00 00 movzx eax, BYTE PTR [rcx+rax+1280] - 0010f 3b 45 24 cmp eax, DWORD PTR j$[rbp] - 00112 75 67 jne SHORT $LN20@stbi__buil -$LN11@stbi__buil: - -; 2262 : while (h->size[k] == j) - - 00114 48 63 45 44 movsxd rax, DWORD PTR k$[rbp] - 00118 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR h$[rbp] - 0011f 0f b6 84 01 00 - 05 00 00 movzx eax, BYTE PTR [rcx+rax+1280] - 00127 3b 45 24 cmp eax, DWORD PTR j$[rbp] - 0012a 75 29 jne SHORT $LN12@stbi__buil - -; 2263 : h->code[k++] = (stbi__uint16)(code++); - - 0012c 48 63 45 44 movsxd rax, DWORD PTR k$[rbp] - 00130 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR h$[rbp] - 00137 0f b7 55 64 movzx edx, WORD PTR code$[rbp] - 0013b 66 89 94 41 00 - 02 00 00 mov WORD PTR [rcx+rax*2+512], dx - 00143 8b 45 44 mov eax, DWORD PTR k$[rbp] - 00146 ff c0 inc eax - 00148 89 45 44 mov DWORD PTR k$[rbp], eax - 0014b 8b 45 64 mov eax, DWORD PTR code$[rbp] - 0014e ff c0 inc eax - 00150 89 45 64 mov DWORD PTR code$[rbp], eax - 00153 eb bf jmp SHORT $LN11@stbi__buil -$LN12@stbi__buil: - -; 2264 : if (code - 1 >= (1u << j)) - - 00155 8b 45 64 mov eax, DWORD PTR code$[rbp] - 00158 ff c8 dec eax - 0015a 8b 4d 24 mov ecx, DWORD PTR j$[rbp] - 0015d ba 01 00 00 00 mov edx, 1 - 00162 d3 e2 shl edx, cl - 00164 8b ca mov ecx, edx - 00166 3b c1 cmp eax, ecx - 00168 72 11 jb SHORT $LN21@stbi__buil - -; 2265 : return stbi__err("bad code lengths", "Corrupt JPEG"); - - 0016a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FOKGPEKG@bad?5code?5lengths@ - 00171 e8 00 00 00 00 call stbi__err - 00176 e9 35 01 00 00 jmp $LN1@stbi__buil -$LN21@stbi__buil: -$LN20@stbi__buil: - -; 2266 : } -; 2267 : // compute largest code + 1 for this size, preshifted as needed later -; 2268 : h->maxcode[j] = code << (16 - j); - - 0017b b8 10 00 00 00 mov eax, 16 - 00180 2b 45 24 sub eax, DWORD PTR j$[rbp] - 00183 0f b6 c8 movzx ecx, al - 00186 8b 45 64 mov eax, DWORD PTR code$[rbp] - 00189 d3 e0 shl eax, cl - 0018b 48 63 4d 24 movsxd rcx, DWORD PTR j$[rbp] - 0018f 48 8b 95 c0 01 - 00 00 mov rdx, QWORD PTR h$[rbp] - 00196 89 84 8a 04 06 - 00 00 mov DWORD PTR [rdx+rcx*4+1540], eax - -; 2269 : code <<= 1; - - 0019d 8b 45 64 mov eax, DWORD PTR code$[rbp] - 001a0 d1 e0 shl eax, 1 - 001a2 89 45 64 mov DWORD PTR code$[rbp], eax - -; 2270 : } - - 001a5 e9 24 ff ff ff jmp $LN8@stbi__buil -$LN9@stbi__buil: - -; 2271 : h->maxcode[j] = 0xffffffff; - - 001aa 48 63 45 24 movsxd rax, DWORD PTR j$[rbp] - 001ae 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR h$[rbp] - 001b5 c7 84 81 04 06 - 00 00 ff ff ff - ff mov DWORD PTR [rcx+rax*4+1540], -1 ; ffffffffH - -; 2272 : -; 2273 : // build non-spec acceleration table; 255 is flag for not-accelerated -; 2274 : memset(h->fast, 255, 1 << FAST_BITS); - - 001c0 48 8b 85 c0 01 - 00 00 mov rax, QWORD PTR h$[rbp] - 001c7 41 b8 00 02 00 - 00 mov r8d, 512 ; 00000200H - 001cd ba ff 00 00 00 mov edx, 255 ; 000000ffH - 001d2 48 8b c8 mov rcx, rax - 001d5 e8 00 00 00 00 call memset - 001da 90 npad 1 - -; 2275 : for (i = 0; i < k; ++i) { - - 001db c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 001e2 eb 08 jmp SHORT $LN15@stbi__buil -$LN13@stbi__buil: - 001e4 8b 45 04 mov eax, DWORD PTR i$[rbp] - 001e7 ff c0 inc eax - 001e9 89 45 04 mov DWORD PTR i$[rbp], eax -$LN15@stbi__buil: - 001ec 8b 45 44 mov eax, DWORD PTR k$[rbp] - 001ef 39 45 04 cmp DWORD PTR i$[rbp], eax - 001f2 0f 8d b3 00 00 - 00 jge $LN14@stbi__buil - -; 2276 : int s = h->size[i]; - - 001f8 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 001fc 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR h$[rbp] - 00203 0f b6 84 01 00 - 05 00 00 movzx eax, BYTE PTR [rcx+rax+1280] - 0020b 89 85 84 00 00 - 00 mov DWORD PTR s$1[rbp], eax - -; 2277 : if (s <= FAST_BITS) { - - 00211 83 bd 84 00 00 - 00 09 cmp DWORD PTR s$1[rbp], 9 - 00218 0f 8f 88 00 00 - 00 jg $LN22@stbi__buil - -; 2278 : int c = h->code[i] << (FAST_BITS - s); - - 0021e 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 00222 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR h$[rbp] - 00229 0f b7 84 41 00 - 02 00 00 movzx eax, WORD PTR [rcx+rax*2+512] - 00231 b9 09 00 00 00 mov ecx, 9 - 00236 2b 8d 84 00 00 - 00 sub ecx, DWORD PTR s$1[rbp] - 0023c d3 e0 shl eax, cl - 0023e 89 85 a4 00 00 - 00 mov DWORD PTR c$2[rbp], eax - -; 2279 : int m = 1 << (FAST_BITS - s); - - 00244 b8 09 00 00 00 mov eax, 9 - 00249 2b 85 84 00 00 - 00 sub eax, DWORD PTR s$1[rbp] - 0024f b9 01 00 00 00 mov ecx, 1 - 00254 89 8d 94 01 00 - 00 mov DWORD PTR tv238[rbp], ecx - 0025a 0f b6 c8 movzx ecx, al - 0025d 8b 85 94 01 00 - 00 mov eax, DWORD PTR tv238[rbp] - 00263 d3 e0 shl eax, cl - 00265 89 85 c4 00 00 - 00 mov DWORD PTR m$3[rbp], eax - -; 2280 : for (j = 0; j < m; ++j) { - - 0026b c7 45 24 00 00 - 00 00 mov DWORD PTR j$[rbp], 0 - 00272 eb 08 jmp SHORT $LN18@stbi__buil -$LN16@stbi__buil: - 00274 8b 45 24 mov eax, DWORD PTR j$[rbp] - 00277 ff c0 inc eax - 00279 89 45 24 mov DWORD PTR j$[rbp], eax -$LN18@stbi__buil: - 0027c 8b 85 c4 00 00 - 00 mov eax, DWORD PTR m$3[rbp] - 00282 39 45 24 cmp DWORD PTR j$[rbp], eax - 00285 7d 1f jge SHORT $LN17@stbi__buil - -; 2281 : h->fast[c + j] = (stbi_uc)i; - - 00287 8b 45 24 mov eax, DWORD PTR j$[rbp] - 0028a 8b 8d a4 00 00 - 00 mov ecx, DWORD PTR c$2[rbp] - 00290 03 c8 add ecx, eax - 00292 8b c1 mov eax, ecx - 00294 48 98 cdqe - 00296 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR h$[rbp] - 0029d 0f b6 55 04 movzx edx, BYTE PTR i$[rbp] - 002a1 88 14 01 mov BYTE PTR [rcx+rax], dl - -; 2282 : } - - 002a4 eb ce jmp SHORT $LN16@stbi__buil -$LN17@stbi__buil: -$LN22@stbi__buil: - -; 2283 : } -; 2284 : } - - 002a6 e9 39 ff ff ff jmp $LN13@stbi__buil -$LN14@stbi__buil: - -; 2285 : return 1; - - 002ab b8 01 00 00 00 mov eax, 1 -$LN1@stbi__buil: - -; 2286 : } - - 002b0 48 8d a5 a8 01 - 00 00 lea rsp, QWORD PTR [rbp+424] - 002b7 5f pop rdi - 002b8 5d pop rbp - 002b9 c3 ret 0 -stbi__build_huffman ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__convert_format16 -_TEXT SEGMENT -i$ = 4 -j$ = 36 -good$ = 72 -src$1 = 104 -dest$2 = 136 -tv129 = 340 -tv261 = 340 -tv281 = 340 -tv303 = 340 -tv323 = 340 -tv82 = 344 -tv356 = 344 -data$ = 384 -img_n$ = 392 -req_comp$ = 400 -x$ = 408 -y$ = 416 -stbi__convert_format16 PROC ; COMDAT - -; 1963 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00013 55 push rbp - 00014 57 push rdi - 00015 48 81 ec 88 01 - 00 00 sub rsp, 392 ; 00000188H - 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00021 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002d 90 npad 1 - -; 1964 : int i, j; -; 1965 : stbi__uint16 *good; -; 1966 : -; 1967 : if (req_comp == img_n) - - 0002e 8b 85 88 01 00 - 00 mov eax, DWORD PTR img_n$[rbp] - 00034 39 85 90 01 00 - 00 cmp DWORD PTR req_comp$[rbp], eax - 0003a 75 0c jne SHORT $LN43@stbi__conv - -; 1968 : return data; - - 0003c 48 8b 85 80 01 - 00 00 mov rax, QWORD PTR data$[rbp] - 00043 e9 37 0a 00 00 jmp $LN1@stbi__conv -$LN43@stbi__conv: - -; 1969 : STBI_ASSERT(req_comp >= 1 && req_comp <= 4); - - 00048 83 bd 90 01 00 - 00 01 cmp DWORD PTR req_comp$[rbp], 1 - 0004f 7c 09 jl SHORT $LN59@stbi__conv - 00051 83 bd 90 01 00 - 00 04 cmp DWORD PTR req_comp$[rbp], 4 - 00058 7e 1c jle SHORT $LN60@stbi__conv -$LN59@stbi__conv: - 0005a 41 b8 b1 07 00 - 00 mov r8d, 1969 ; 000007b1H - 00060 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ - 00067 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1DO@MABJBNAJ@?$AAr?$AAe?$AAq?$AA_?$AAc?$AAo?$AAm?$AAp?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA1?$AA?5?$AA?$CG@ - 0006e ff 15 00 00 00 - 00 call QWORD PTR __imp__wassert - 00074 33 c0 xor eax, eax -$LN60@stbi__conv: - -; 1970 : -; 1971 : good = (stbi__uint16 *)stbi__malloc(req_comp * x * y * 2); - - 00076 8b 85 90 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 0007c 0f af 85 98 01 - 00 00 imul eax, DWORD PTR x$[rbp] - 00083 0f af 85 a0 01 - 00 00 imul eax, DWORD PTR y$[rbp] - 0008a d1 e0 shl eax, 1 - 0008c 8b c0 mov eax, eax - 0008e 8b c8 mov ecx, eax - 00090 e8 00 00 00 00 call stbi__malloc - 00095 48 89 45 48 mov QWORD PTR good$[rbp], rax - -; 1972 : if (good == NULL) { - - 00099 48 83 7d 48 00 cmp QWORD PTR good$[rbp], 0 - 0009e 75 42 jne SHORT $LN44@stbi__conv - -; 1973 : STBI_FREE(data); - - 000a0 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR data$[rbp] - 000a7 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 000ad 90 npad 1 - -; 1974 : return (stbi__uint16 *)stbi__errpuc("outofmem", "Out of memory"); - - 000ae 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 000b5 e8 00 00 00 00 call stbi__err - 000ba 85 c0 test eax, eax - 000bc 74 0d je SHORT $LN61@stbi__conv - 000be 48 c7 85 58 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv82[rbp], 0 - 000c9 eb 0b jmp SHORT $LN62@stbi__conv -$LN61@stbi__conv: - 000cb 48 c7 85 58 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv82[rbp], 0 -$LN62@stbi__conv: - 000d6 48 8b 85 58 01 - 00 00 mov rax, QWORD PTR tv82[rbp] - 000dd e9 9d 09 00 00 jmp $LN1@stbi__conv -$LN44@stbi__conv: - -; 1975 : } -; 1976 : -; 1977 : for (j = 0; j < (int)y; ++j) { - - 000e2 c7 45 24 00 00 - 00 00 mov DWORD PTR j$[rbp], 0 - 000e9 eb 08 jmp SHORT $LN4@stbi__conv -$LN2@stbi__conv: - 000eb 8b 45 24 mov eax, DWORD PTR j$[rbp] - 000ee ff c0 inc eax - 000f0 89 45 24 mov DWORD PTR j$[rbp], eax -$LN4@stbi__conv: - 000f3 8b 85 a0 01 00 - 00 mov eax, DWORD PTR y$[rbp] - 000f9 39 45 24 cmp DWORD PTR j$[rbp], eax - 000fc 0f 8d 6b 09 00 - 00 jge $LN3@stbi__conv - -; 1978 : stbi__uint16 *src = data + j * x * img_n; - - 00102 8b 45 24 mov eax, DWORD PTR j$[rbp] - 00105 0f af 85 98 01 - 00 00 imul eax, DWORD PTR x$[rbp] - 0010c 0f af 85 88 01 - 00 00 imul eax, DWORD PTR img_n$[rbp] - 00113 8b c0 mov eax, eax - 00115 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR data$[rbp] - 0011c 48 8d 04 41 lea rax, QWORD PTR [rcx+rax*2] - 00120 48 89 45 68 mov QWORD PTR src$1[rbp], rax - -; 1979 : stbi__uint16 *dest = good + j * x * req_comp; - - 00124 8b 45 24 mov eax, DWORD PTR j$[rbp] - 00127 0f af 85 98 01 - 00 00 imul eax, DWORD PTR x$[rbp] - 0012e 0f af 85 90 01 - 00 00 imul eax, DWORD PTR req_comp$[rbp] - 00135 8b c0 mov eax, eax - 00137 48 8b 4d 48 mov rcx, QWORD PTR good$[rbp] - 0013b 48 8d 04 41 lea rax, QWORD PTR [rcx+rax*2] - 0013f 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax - -; 1980 : -; 1981 : #define STBI__COMBO(a, b) ((a) * 8 + (b)) -; 1982 : #define STBI__CASE(a, b) \ -; 1983 : case STBI__COMBO(a, b): \ -; 1984 : for (i = x - 1; i >= 0; --i, src += a, dest += b) -; 1985 : // convert source image with img_n components to one with req_comp components; -; 1986 : // avoid switch per pixel, so use switch per scanline and massive macros -; 1987 : switch (STBI__COMBO(img_n, req_comp)) { - - 00146 8b 85 90 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 0014c 8b 8d 88 01 00 - 00 mov ecx, DWORD PTR img_n$[rbp] - 00152 8d 04 c8 lea eax, DWORD PTR [rax+rcx*8] - 00155 89 85 54 01 00 - 00 mov DWORD PTR tv129[rbp], eax - 0015b 8b 85 54 01 00 - 00 mov eax, DWORD PTR tv129[rbp] - 00161 83 e8 0a sub eax, 10 - 00164 89 85 54 01 00 - 00 mov DWORD PTR tv129[rbp], eax - 0016a 83 bd 54 01 00 - 00 19 cmp DWORD PTR tv129[rbp], 25 - 00171 0f 87 85 08 00 - 00 ja $LN57@stbi__conv - 00177 48 63 85 54 01 - 00 00 movsxd rax, DWORD PTR tv129[rbp] - 0017e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__ImageBase - 00185 8b 84 81 00 00 - 00 00 mov eax, DWORD PTR $LN66@stbi__conv[rcx+rax*4] - 0018c 48 03 c1 add rax, rcx - 0018f ff e0 jmp rax -$LN45@stbi__conv: - -; 1988 : STBI__CASE(1, 2) - - 00191 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 00197 ff c8 dec eax - 00199 89 45 04 mov DWORD PTR i$[rbp], eax - 0019c eb 26 jmp SHORT $LN9@stbi__conv -$LN7@stbi__conv: - 0019e 8b 45 04 mov eax, DWORD PTR i$[rbp] - 001a1 ff c8 dec eax - 001a3 89 45 04 mov DWORD PTR i$[rbp], eax - 001a6 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 001aa 48 83 c0 02 add rax, 2 - 001ae 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 001b2 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 001b9 48 83 c0 04 add rax, 4 - 001bd 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN9@stbi__conv: - 001c4 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 001c8 7c 41 jl SHORT $LN8@stbi__conv - -; 1989 : { -; 1990 : dest[0] = src[0]; - - 001ca b8 02 00 00 00 mov eax, 2 - 001cf 48 6b c0 00 imul rax, rax, 0 - 001d3 b9 02 00 00 00 mov ecx, 2 - 001d8 48 6b c9 00 imul rcx, rcx, 0 - 001dc 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 001e3 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 001e7 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 001ec 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 1991 : dest[1] = 0xffff; - - 001f0 b8 02 00 00 00 mov eax, 2 - 001f5 48 6b c0 01 imul rax, rax, 1 - 001f9 b9 ff ff 00 00 mov ecx, 65535 ; 0000ffffH - 001fe 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00205 66 89 0c 02 mov WORD PTR [rdx+rax], cx - -; 1992 : } - - 00209 eb 93 jmp SHORT $LN7@stbi__conv -$LN8@stbi__conv: - -; 1993 : break; - - 0020b e9 58 08 00 00 jmp $LN5@stbi__conv -$LN46@stbi__conv: - -; 1994 : STBI__CASE(1, 3) - - 00210 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 00216 ff c8 dec eax - 00218 89 45 04 mov DWORD PTR i$[rbp], eax - 0021b eb 26 jmp SHORT $LN12@stbi__conv -$LN10@stbi__conv: - 0021d 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00220 ff c8 dec eax - 00222 89 45 04 mov DWORD PTR i$[rbp], eax - 00225 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 00229 48 83 c0 02 add rax, 2 - 0022d 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 00231 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 00238 48 83 c0 06 add rax, 6 - 0023c 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN12@stbi__conv: - 00243 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 00247 7c 7d jl SHORT $LN11@stbi__conv - -; 1995 : { -; 1996 : dest[0] = dest[1] = dest[2] = src[0]; - - 00249 b8 02 00 00 00 mov eax, 2 - 0024e 48 6b c0 00 imul rax, rax, 0 - 00252 b9 02 00 00 00 mov ecx, 2 - 00257 48 6b c9 02 imul rcx, rcx, 2 - 0025b 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00262 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 00266 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 0026b 66 89 04 0a mov WORD PTR [rdx+rcx], ax - 0026f b8 02 00 00 00 mov eax, 2 - 00274 48 6b c0 02 imul rax, rax, 2 - 00278 b9 02 00 00 00 mov ecx, 2 - 0027d 48 6b c9 01 imul rcx, rcx, 1 - 00281 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00288 4c 8b 85 88 00 - 00 00 mov r8, QWORD PTR dest$2[rbp] - 0028f 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 00294 66 89 04 0a mov WORD PTR [rdx+rcx], ax - 00298 b8 02 00 00 00 mov eax, 2 - 0029d 48 6b c0 01 imul rax, rax, 1 - 002a1 b9 02 00 00 00 mov ecx, 2 - 002a6 48 6b c9 00 imul rcx, rcx, 0 - 002aa 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 002b1 4c 8b 85 88 00 - 00 00 mov r8, QWORD PTR dest$2[rbp] - 002b8 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 002bd 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 1997 : } - - 002c1 e9 57 ff ff ff jmp $LN10@stbi__conv -$LN11@stbi__conv: - -; 1998 : break; - - 002c6 e9 9d 07 00 00 jmp $LN5@stbi__conv -$LN47@stbi__conv: - -; 1999 : STBI__CASE(1, 4) - - 002cb 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 002d1 ff c8 dec eax - 002d3 89 45 04 mov DWORD PTR i$[rbp], eax - 002d6 eb 26 jmp SHORT $LN15@stbi__conv -$LN13@stbi__conv: - 002d8 8b 45 04 mov eax, DWORD PTR i$[rbp] - 002db ff c8 dec eax - 002dd 89 45 04 mov DWORD PTR i$[rbp], eax - 002e0 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 002e4 48 83 c0 02 add rax, 2 - 002e8 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 002ec 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 002f3 48 83 c0 08 add rax, 8 - 002f7 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN15@stbi__conv: - 002fe 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 00302 0f 8c 96 00 00 - 00 jl $LN14@stbi__conv - -; 2000 : { -; 2001 : dest[0] = dest[1] = dest[2] = src[0]; - - 00308 b8 02 00 00 00 mov eax, 2 - 0030d 48 6b c0 00 imul rax, rax, 0 - 00311 b9 02 00 00 00 mov ecx, 2 - 00316 48 6b c9 02 imul rcx, rcx, 2 - 0031a 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00321 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 00325 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 0032a 66 89 04 0a mov WORD PTR [rdx+rcx], ax - 0032e b8 02 00 00 00 mov eax, 2 - 00333 48 6b c0 02 imul rax, rax, 2 - 00337 b9 02 00 00 00 mov ecx, 2 - 0033c 48 6b c9 01 imul rcx, rcx, 1 - 00340 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00347 4c 8b 85 88 00 - 00 00 mov r8, QWORD PTR dest$2[rbp] - 0034e 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 00353 66 89 04 0a mov WORD PTR [rdx+rcx], ax - 00357 b8 02 00 00 00 mov eax, 2 - 0035c 48 6b c0 01 imul rax, rax, 1 - 00360 b9 02 00 00 00 mov ecx, 2 - 00365 48 6b c9 00 imul rcx, rcx, 0 - 00369 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00370 4c 8b 85 88 00 - 00 00 mov r8, QWORD PTR dest$2[rbp] - 00377 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 0037c 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 2002 : dest[3] = 0xffff; - - 00380 b8 02 00 00 00 mov eax, 2 - 00385 48 6b c0 03 imul rax, rax, 3 - 00389 b9 ff ff 00 00 mov ecx, 65535 ; 0000ffffH - 0038e 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00395 66 89 0c 02 mov WORD PTR [rdx+rax], cx - -; 2003 : } - - 00399 e9 3a ff ff ff jmp $LN13@stbi__conv -$LN14@stbi__conv: - -; 2004 : break; - - 0039e e9 c5 06 00 00 jmp $LN5@stbi__conv -$LN48@stbi__conv: - -; 2005 : STBI__CASE(2, 1) - - 003a3 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 003a9 ff c8 dec eax - 003ab 89 45 04 mov DWORD PTR i$[rbp], eax - 003ae eb 26 jmp SHORT $LN18@stbi__conv -$LN16@stbi__conv: - 003b0 8b 45 04 mov eax, DWORD PTR i$[rbp] - 003b3 ff c8 dec eax - 003b5 89 45 04 mov DWORD PTR i$[rbp], eax - 003b8 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 003bc 48 83 c0 04 add rax, 4 - 003c0 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 003c4 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 003cb 48 83 c0 02 add rax, 2 - 003cf 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN18@stbi__conv: - 003d6 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 003da 7c 28 jl SHORT $LN17@stbi__conv - -; 2006 : { -; 2007 : dest[0] = src[0]; - - 003dc b8 02 00 00 00 mov eax, 2 - 003e1 48 6b c0 00 imul rax, rax, 0 - 003e5 b9 02 00 00 00 mov ecx, 2 - 003ea 48 6b c9 00 imul rcx, rcx, 0 - 003ee 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 003f5 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 003f9 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 003fe 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 2008 : } - - 00402 eb ac jmp SHORT $LN16@stbi__conv -$LN17@stbi__conv: - -; 2009 : break; - - 00404 e9 5f 06 00 00 jmp $LN5@stbi__conv -$LN49@stbi__conv: - -; 2010 : STBI__CASE(2, 3) - - 00409 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 0040f ff c8 dec eax - 00411 89 45 04 mov DWORD PTR i$[rbp], eax - 00414 eb 26 jmp SHORT $LN21@stbi__conv -$LN19@stbi__conv: - 00416 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00419 ff c8 dec eax - 0041b 89 45 04 mov DWORD PTR i$[rbp], eax - 0041e 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 00422 48 83 c0 04 add rax, 4 - 00426 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 0042a 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 00431 48 83 c0 06 add rax, 6 - 00435 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN21@stbi__conv: - 0043c 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 00440 7c 7d jl SHORT $LN20@stbi__conv - -; 2011 : { -; 2012 : dest[0] = dest[1] = dest[2] = src[0]; - - 00442 b8 02 00 00 00 mov eax, 2 - 00447 48 6b c0 00 imul rax, rax, 0 - 0044b b9 02 00 00 00 mov ecx, 2 - 00450 48 6b c9 02 imul rcx, rcx, 2 - 00454 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 0045b 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 0045f 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 00464 66 89 04 0a mov WORD PTR [rdx+rcx], ax - 00468 b8 02 00 00 00 mov eax, 2 - 0046d 48 6b c0 02 imul rax, rax, 2 - 00471 b9 02 00 00 00 mov ecx, 2 - 00476 48 6b c9 01 imul rcx, rcx, 1 - 0047a 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00481 4c 8b 85 88 00 - 00 00 mov r8, QWORD PTR dest$2[rbp] - 00488 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 0048d 66 89 04 0a mov WORD PTR [rdx+rcx], ax - 00491 b8 02 00 00 00 mov eax, 2 - 00496 48 6b c0 01 imul rax, rax, 1 - 0049a b9 02 00 00 00 mov ecx, 2 - 0049f 48 6b c9 00 imul rcx, rcx, 0 - 004a3 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 004aa 4c 8b 85 88 00 - 00 00 mov r8, QWORD PTR dest$2[rbp] - 004b1 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 004b6 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 2013 : } - - 004ba e9 57 ff ff ff jmp $LN19@stbi__conv -$LN20@stbi__conv: - -; 2014 : break; - - 004bf e9 a4 05 00 00 jmp $LN5@stbi__conv -$LN50@stbi__conv: - -; 2015 : STBI__CASE(2, 4) - - 004c4 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 004ca ff c8 dec eax - 004cc 89 45 04 mov DWORD PTR i$[rbp], eax - 004cf eb 26 jmp SHORT $LN24@stbi__conv -$LN22@stbi__conv: - 004d1 8b 45 04 mov eax, DWORD PTR i$[rbp] - 004d4 ff c8 dec eax - 004d6 89 45 04 mov DWORD PTR i$[rbp], eax - 004d9 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 004dd 48 83 c0 04 add rax, 4 - 004e1 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 004e5 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 004ec 48 83 c0 08 add rax, 8 - 004f0 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN24@stbi__conv: - 004f7 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 004fb 0f 8c a3 00 00 - 00 jl $LN23@stbi__conv - -; 2016 : { -; 2017 : dest[0] = dest[1] = dest[2] = src[0]; - - 00501 b8 02 00 00 00 mov eax, 2 - 00506 48 6b c0 00 imul rax, rax, 0 - 0050a b9 02 00 00 00 mov ecx, 2 - 0050f 48 6b c9 02 imul rcx, rcx, 2 - 00513 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 0051a 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 0051e 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 00523 66 89 04 0a mov WORD PTR [rdx+rcx], ax - 00527 b8 02 00 00 00 mov eax, 2 - 0052c 48 6b c0 02 imul rax, rax, 2 - 00530 b9 02 00 00 00 mov ecx, 2 - 00535 48 6b c9 01 imul rcx, rcx, 1 - 00539 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00540 4c 8b 85 88 00 - 00 00 mov r8, QWORD PTR dest$2[rbp] - 00547 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 0054c 66 89 04 0a mov WORD PTR [rdx+rcx], ax - 00550 b8 02 00 00 00 mov eax, 2 - 00555 48 6b c0 01 imul rax, rax, 1 - 00559 b9 02 00 00 00 mov ecx, 2 - 0055e 48 6b c9 00 imul rcx, rcx, 0 - 00562 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00569 4c 8b 85 88 00 - 00 00 mov r8, QWORD PTR dest$2[rbp] - 00570 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 00575 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 2018 : dest[3] = src[1]; - - 00579 b8 02 00 00 00 mov eax, 2 - 0057e 48 6b c0 01 imul rax, rax, 1 - 00582 b9 02 00 00 00 mov ecx, 2 - 00587 48 6b c9 03 imul rcx, rcx, 3 - 0058b 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00592 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 00596 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 0059b 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 2019 : } - - 0059f e9 2d ff ff ff jmp $LN22@stbi__conv -$LN23@stbi__conv: - -; 2020 : break; - - 005a4 e9 bf 04 00 00 jmp $LN5@stbi__conv -$LN51@stbi__conv: - -; 2021 : STBI__CASE(3, 4) - - 005a9 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 005af ff c8 dec eax - 005b1 89 45 04 mov DWORD PTR i$[rbp], eax - 005b4 eb 26 jmp SHORT $LN27@stbi__conv -$LN25@stbi__conv: - 005b6 8b 45 04 mov eax, DWORD PTR i$[rbp] - 005b9 ff c8 dec eax - 005bb 89 45 04 mov DWORD PTR i$[rbp], eax - 005be 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 005c2 48 83 c0 06 add rax, 6 - 005c6 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 005ca 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 005d1 48 83 c0 08 add rax, 8 - 005d5 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN27@stbi__conv: - 005dc 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 005e0 0f 8c 90 00 00 - 00 jl $LN26@stbi__conv - -; 2022 : { -; 2023 : dest[0] = src[0]; - - 005e6 b8 02 00 00 00 mov eax, 2 - 005eb 48 6b c0 00 imul rax, rax, 0 - 005ef b9 02 00 00 00 mov ecx, 2 - 005f4 48 6b c9 00 imul rcx, rcx, 0 - 005f8 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 005ff 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 00603 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 00608 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 2024 : dest[1] = src[1]; - - 0060c b8 02 00 00 00 mov eax, 2 - 00611 48 6b c0 01 imul rax, rax, 1 - 00615 b9 02 00 00 00 mov ecx, 2 - 0061a 48 6b c9 01 imul rcx, rcx, 1 - 0061e 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00625 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 00629 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 0062e 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 2025 : dest[2] = src[2]; - - 00632 b8 02 00 00 00 mov eax, 2 - 00637 48 6b c0 02 imul rax, rax, 2 - 0063b b9 02 00 00 00 mov ecx, 2 - 00640 48 6b c9 02 imul rcx, rcx, 2 - 00644 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 0064b 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 0064f 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 00654 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 2026 : dest[3] = 0xffff; - - 00658 b8 02 00 00 00 mov eax, 2 - 0065d 48 6b c0 03 imul rax, rax, 3 - 00661 b9 ff ff 00 00 mov ecx, 65535 ; 0000ffffH - 00666 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 0066d 66 89 0c 02 mov WORD PTR [rdx+rax], cx - -; 2027 : } - - 00671 e9 40 ff ff ff jmp $LN25@stbi__conv -$LN26@stbi__conv: - -; 2028 : break; - - 00676 e9 ed 03 00 00 jmp $LN5@stbi__conv -$LN52@stbi__conv: - -; 2029 : STBI__CASE(3, 1) - - 0067b 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 00681 ff c8 dec eax - 00683 89 45 04 mov DWORD PTR i$[rbp], eax - 00686 eb 26 jmp SHORT $LN30@stbi__conv -$LN28@stbi__conv: - 00688 8b 45 04 mov eax, DWORD PTR i$[rbp] - 0068b ff c8 dec eax - 0068d 89 45 04 mov DWORD PTR i$[rbp], eax - 00690 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 00694 48 83 c0 06 add rax, 6 - 00698 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 0069c 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 006a3 48 83 c0 02 add rax, 2 - 006a7 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN30@stbi__conv: - 006ae 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 006b2 7c 65 jl SHORT $LN29@stbi__conv - -; 2030 : { -; 2031 : dest[0] = stbi__compute_y_16(src[0], src[1], src[2]); - - 006b4 b8 02 00 00 00 mov eax, 2 - 006b9 48 6b c0 02 imul rax, rax, 2 - 006bd 48 8b 4d 68 mov rcx, QWORD PTR src$1[rbp] - 006c1 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] - 006c5 b9 02 00 00 00 mov ecx, 2 - 006ca 48 6b c9 01 imul rcx, rcx, 1 - 006ce 48 8b 55 68 mov rdx, QWORD PTR src$1[rbp] - 006d2 0f b7 0c 0a movzx ecx, WORD PTR [rdx+rcx] - 006d6 ba 02 00 00 00 mov edx, 2 - 006db 48 6b d2 00 imul rdx, rdx, 0 - 006df 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 006e3 41 0f b7 14 10 movzx edx, WORD PTR [r8+rdx] - 006e8 89 95 54 01 00 - 00 mov DWORD PTR tv261[rbp], edx - 006ee 44 8b c0 mov r8d, eax - 006f1 8b d1 mov edx, ecx - 006f3 8b 85 54 01 00 - 00 mov eax, DWORD PTR tv261[rbp] - 006f9 8b c8 mov ecx, eax - 006fb e8 00 00 00 00 call stbi__compute_y_16 - 00700 b9 02 00 00 00 mov ecx, 2 - 00705 48 6b c9 00 imul rcx, rcx, 0 - 00709 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00710 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 2032 : } - - 00714 e9 6f ff ff ff jmp $LN28@stbi__conv -$LN29@stbi__conv: - -; 2033 : break; - - 00719 e9 4a 03 00 00 jmp $LN5@stbi__conv -$LN53@stbi__conv: - -; 2034 : STBI__CASE(3, 2) - - 0071e 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 00724 ff c8 dec eax - 00726 89 45 04 mov DWORD PTR i$[rbp], eax - 00729 eb 26 jmp SHORT $LN33@stbi__conv -$LN31@stbi__conv: - 0072b 8b 45 04 mov eax, DWORD PTR i$[rbp] - 0072e ff c8 dec eax - 00730 89 45 04 mov DWORD PTR i$[rbp], eax - 00733 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 00737 48 83 c0 06 add rax, 6 - 0073b 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 0073f 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 00746 48 83 c0 04 add rax, 4 - 0074a 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN33@stbi__conv: - 00751 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 00755 7c 7e jl SHORT $LN32@stbi__conv - -; 2035 : { -; 2036 : dest[0] = stbi__compute_y_16(src[0], src[1], src[2]); - - 00757 b8 02 00 00 00 mov eax, 2 - 0075c 48 6b c0 02 imul rax, rax, 2 - 00760 48 8b 4d 68 mov rcx, QWORD PTR src$1[rbp] - 00764 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] - 00768 b9 02 00 00 00 mov ecx, 2 - 0076d 48 6b c9 01 imul rcx, rcx, 1 - 00771 48 8b 55 68 mov rdx, QWORD PTR src$1[rbp] - 00775 0f b7 0c 0a movzx ecx, WORD PTR [rdx+rcx] - 00779 ba 02 00 00 00 mov edx, 2 - 0077e 48 6b d2 00 imul rdx, rdx, 0 - 00782 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 00786 41 0f b7 14 10 movzx edx, WORD PTR [r8+rdx] - 0078b 89 95 54 01 00 - 00 mov DWORD PTR tv281[rbp], edx - 00791 44 8b c0 mov r8d, eax - 00794 8b d1 mov edx, ecx - 00796 8b 85 54 01 00 - 00 mov eax, DWORD PTR tv281[rbp] - 0079c 8b c8 mov ecx, eax - 0079e e8 00 00 00 00 call stbi__compute_y_16 - 007a3 b9 02 00 00 00 mov ecx, 2 - 007a8 48 6b c9 00 imul rcx, rcx, 0 - 007ac 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 007b3 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 2037 : dest[1] = 0xffff; - - 007b7 b8 02 00 00 00 mov eax, 2 - 007bc 48 6b c0 01 imul rax, rax, 1 - 007c0 b9 ff ff 00 00 mov ecx, 65535 ; 0000ffffH - 007c5 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 007cc 66 89 0c 02 mov WORD PTR [rdx+rax], cx - -; 2038 : } - - 007d0 e9 56 ff ff ff jmp $LN31@stbi__conv -$LN32@stbi__conv: - -; 2039 : break; - - 007d5 e9 8e 02 00 00 jmp $LN5@stbi__conv -$LN54@stbi__conv: - -; 2040 : STBI__CASE(4, 1) - - 007da 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 007e0 ff c8 dec eax - 007e2 89 45 04 mov DWORD PTR i$[rbp], eax - 007e5 eb 26 jmp SHORT $LN36@stbi__conv -$LN34@stbi__conv: - 007e7 8b 45 04 mov eax, DWORD PTR i$[rbp] - 007ea ff c8 dec eax - 007ec 89 45 04 mov DWORD PTR i$[rbp], eax - 007ef 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 007f3 48 83 c0 08 add rax, 8 - 007f7 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 007fb 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 00802 48 83 c0 02 add rax, 2 - 00806 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN36@stbi__conv: - 0080d 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 00811 7c 65 jl SHORT $LN35@stbi__conv - -; 2041 : { -; 2042 : dest[0] = stbi__compute_y_16(src[0], src[1], src[2]); - - 00813 b8 02 00 00 00 mov eax, 2 - 00818 48 6b c0 02 imul rax, rax, 2 - 0081c 48 8b 4d 68 mov rcx, QWORD PTR src$1[rbp] - 00820 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] - 00824 b9 02 00 00 00 mov ecx, 2 - 00829 48 6b c9 01 imul rcx, rcx, 1 - 0082d 48 8b 55 68 mov rdx, QWORD PTR src$1[rbp] - 00831 0f b7 0c 0a movzx ecx, WORD PTR [rdx+rcx] - 00835 ba 02 00 00 00 mov edx, 2 - 0083a 48 6b d2 00 imul rdx, rdx, 0 - 0083e 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 00842 41 0f b7 14 10 movzx edx, WORD PTR [r8+rdx] - 00847 89 95 54 01 00 - 00 mov DWORD PTR tv303[rbp], edx - 0084d 44 8b c0 mov r8d, eax - 00850 8b d1 mov edx, ecx - 00852 8b 85 54 01 00 - 00 mov eax, DWORD PTR tv303[rbp] - 00858 8b c8 mov ecx, eax - 0085a e8 00 00 00 00 call stbi__compute_y_16 - 0085f b9 02 00 00 00 mov ecx, 2 - 00864 48 6b c9 00 imul rcx, rcx, 0 - 00868 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 0086f 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 2043 : } - - 00873 e9 6f ff ff ff jmp $LN34@stbi__conv -$LN35@stbi__conv: - -; 2044 : break; - - 00878 e9 eb 01 00 00 jmp $LN5@stbi__conv -$LN55@stbi__conv: - -; 2045 : STBI__CASE(4, 2) - - 0087d 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 00883 ff c8 dec eax - 00885 89 45 04 mov DWORD PTR i$[rbp], eax - 00888 eb 26 jmp SHORT $LN39@stbi__conv -$LN37@stbi__conv: - 0088a 8b 45 04 mov eax, DWORD PTR i$[rbp] - 0088d ff c8 dec eax - 0088f 89 45 04 mov DWORD PTR i$[rbp], eax - 00892 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 00896 48 83 c0 08 add rax, 8 - 0089a 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 0089e 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 008a5 48 83 c0 04 add rax, 4 - 008a9 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN39@stbi__conv: - 008b0 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 008b4 0f 8c 8b 00 00 - 00 jl $LN38@stbi__conv - -; 2046 : { -; 2047 : dest[0] = stbi__compute_y_16(src[0], src[1], src[2]); - - 008ba b8 02 00 00 00 mov eax, 2 - 008bf 48 6b c0 02 imul rax, rax, 2 - 008c3 48 8b 4d 68 mov rcx, QWORD PTR src$1[rbp] - 008c7 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] - 008cb b9 02 00 00 00 mov ecx, 2 - 008d0 48 6b c9 01 imul rcx, rcx, 1 - 008d4 48 8b 55 68 mov rdx, QWORD PTR src$1[rbp] - 008d8 0f b7 0c 0a movzx ecx, WORD PTR [rdx+rcx] - 008dc ba 02 00 00 00 mov edx, 2 - 008e1 48 6b d2 00 imul rdx, rdx, 0 - 008e5 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 008e9 41 0f b7 14 10 movzx edx, WORD PTR [r8+rdx] - 008ee 89 95 54 01 00 - 00 mov DWORD PTR tv323[rbp], edx - 008f4 44 8b c0 mov r8d, eax - 008f7 8b d1 mov edx, ecx - 008f9 8b 85 54 01 00 - 00 mov eax, DWORD PTR tv323[rbp] - 008ff 8b c8 mov ecx, eax - 00901 e8 00 00 00 00 call stbi__compute_y_16 - 00906 b9 02 00 00 00 mov ecx, 2 - 0090b 48 6b c9 00 imul rcx, rcx, 0 - 0090f 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00916 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 2048 : dest[1] = src[3]; - - 0091a b8 02 00 00 00 mov eax, 2 - 0091f 48 6b c0 03 imul rax, rax, 3 - 00923 b9 02 00 00 00 mov ecx, 2 - 00928 48 6b c9 01 imul rcx, rcx, 1 - 0092c 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00933 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 00937 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 0093c 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 2049 : } - - 00940 e9 45 ff ff ff jmp $LN37@stbi__conv -$LN38@stbi__conv: - -; 2050 : break; - - 00945 e9 1e 01 00 00 jmp $LN5@stbi__conv -$LN56@stbi__conv: - -; 2051 : STBI__CASE(4, 3) - - 0094a 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 00950 ff c8 dec eax - 00952 89 45 04 mov DWORD PTR i$[rbp], eax - 00955 eb 26 jmp SHORT $LN42@stbi__conv -$LN40@stbi__conv: - 00957 8b 45 04 mov eax, DWORD PTR i$[rbp] - 0095a ff c8 dec eax - 0095c 89 45 04 mov DWORD PTR i$[rbp], eax - 0095f 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 00963 48 83 c0 08 add rax, 8 - 00967 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 0096b 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 00972 48 83 c0 06 add rax, 6 - 00976 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN42@stbi__conv: - 0097d 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 00981 7c 77 jl SHORT $LN41@stbi__conv - -; 2052 : { -; 2053 : dest[0] = src[0]; - - 00983 b8 02 00 00 00 mov eax, 2 - 00988 48 6b c0 00 imul rax, rax, 0 - 0098c b9 02 00 00 00 mov ecx, 2 - 00991 48 6b c9 00 imul rcx, rcx, 0 - 00995 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 0099c 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 009a0 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 009a5 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 2054 : dest[1] = src[1]; - - 009a9 b8 02 00 00 00 mov eax, 2 - 009ae 48 6b c0 01 imul rax, rax, 1 - 009b2 b9 02 00 00 00 mov ecx, 2 - 009b7 48 6b c9 01 imul rcx, rcx, 1 - 009bb 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 009c2 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 009c6 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 009cb 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 2055 : dest[2] = src[2]; - - 009cf b8 02 00 00 00 mov eax, 2 - 009d4 48 6b c0 02 imul rax, rax, 2 - 009d8 b9 02 00 00 00 mov ecx, 2 - 009dd 48 6b c9 02 imul rcx, rcx, 2 - 009e1 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 009e8 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 009ec 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] - 009f1 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 2056 : } - - 009f5 e9 5d ff ff ff jmp $LN40@stbi__conv -$LN41@stbi__conv: - -; 2057 : break; - - 009fa eb 6c jmp SHORT $LN5@stbi__conv -$LN57@stbi__conv: - -; 2058 : default: -; 2059 : STBI_ASSERT(0); - - 009fc 33 c0 xor eax, eax - 009fe 85 c0 test eax, eax - 00a00 75 1c jne SHORT $LN63@stbi__conv - 00a02 41 b8 0b 08 00 - 00 mov r8d, 2059 ; 0000080bH - 00a08 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ - 00a0f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_13COJANIEC@?$AA0@ - 00a16 ff 15 00 00 00 - 00 call QWORD PTR __imp__wassert - 00a1c 33 c0 xor eax, eax -$LN63@stbi__conv: - -; 2060 : STBI_FREE(data); - - 00a1e 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR data$[rbp] - 00a25 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00a2b 90 npad 1 - -; 2061 : STBI_FREE(good); - - 00a2c 48 8b 4d 48 mov rcx, QWORD PTR good$[rbp] - 00a30 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00a36 90 npad 1 - -; 2062 : return (stbi__uint16 *)stbi__errpuc("unsupported", - - 00a37 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0M@MHDBFHD@unsupported@ - 00a3e e8 00 00 00 00 call stbi__err - 00a43 85 c0 test eax, eax - 00a45 74 0d je SHORT $LN64@stbi__conv - 00a47 48 c7 85 58 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv356[rbp], 0 - 00a52 eb 0b jmp SHORT $LN65@stbi__conv -$LN64@stbi__conv: - 00a54 48 c7 85 58 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv356[rbp], 0 -$LN65@stbi__conv: - 00a5f 48 8b 85 58 01 - 00 00 mov rax, QWORD PTR tv356[rbp] - 00a66 eb 17 jmp SHORT $LN1@stbi__conv -$LN5@stbi__conv: - -; 2063 : "Unsupported format conversion"); -; 2064 : } -; 2065 : #undef STBI__CASE -; 2066 : } - - 00a68 e9 7e f6 ff ff jmp $LN2@stbi__conv -$LN3@stbi__conv: - -; 2067 : -; 2068 : STBI_FREE(data); - - 00a6d 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR data$[rbp] - 00a74 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00a7a 90 npad 1 - -; 2069 : return good; - - 00a7b 48 8b 45 48 mov rax, QWORD PTR good$[rbp] -$LN1@stbi__conv: - -; 2070 : } - - 00a7f 48 8d a5 68 01 - 00 00 lea rsp, QWORD PTR [rbp+360] - 00a86 5f pop rdi - 00a87 5d pop rbp - 00a88 c3 ret 0 - 00a89 0f 1f 00 npad 3 -$LN66@stbi__conv: - 00a8c 00 00 00 00 DD $LN45@stbi__conv - 00a90 00 00 00 00 DD $LN46@stbi__conv - 00a94 00 00 00 00 DD $LN47@stbi__conv - 00a98 00 00 00 00 DD $LN57@stbi__conv - 00a9c 00 00 00 00 DD $LN57@stbi__conv - 00aa0 00 00 00 00 DD $LN57@stbi__conv - 00aa4 00 00 00 00 DD $LN57@stbi__conv - 00aa8 00 00 00 00 DD $LN48@stbi__conv - 00aac 00 00 00 00 DD $LN57@stbi__conv - 00ab0 00 00 00 00 DD $LN49@stbi__conv - 00ab4 00 00 00 00 DD $LN50@stbi__conv - 00ab8 00 00 00 00 DD $LN57@stbi__conv - 00abc 00 00 00 00 DD $LN57@stbi__conv - 00ac0 00 00 00 00 DD $LN57@stbi__conv - 00ac4 00 00 00 00 DD $LN57@stbi__conv - 00ac8 00 00 00 00 DD $LN52@stbi__conv - 00acc 00 00 00 00 DD $LN53@stbi__conv - 00ad0 00 00 00 00 DD $LN57@stbi__conv - 00ad4 00 00 00 00 DD $LN51@stbi__conv - 00ad8 00 00 00 00 DD $LN57@stbi__conv - 00adc 00 00 00 00 DD $LN57@stbi__conv - 00ae0 00 00 00 00 DD $LN57@stbi__conv - 00ae4 00 00 00 00 DD $LN57@stbi__conv - 00ae8 00 00 00 00 DD $LN54@stbi__conv - 00aec 00 00 00 00 DD $LN55@stbi__conv - 00af0 00 00 00 00 DD $LN56@stbi__conv -stbi__convert_format16 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__compute_y_16 -_TEXT SEGMENT -r$ = 224 -g$ = 232 -b$ = 240 -stbi__compute_y_16 PROC ; COMDAT - -; 1953 : { - - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00009 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 0000d 55 push rbp - 0000e 57 push rdi - 0000f 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00016 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00027 90 npad 1 - -; 1954 : return (stbi__uint16)(((r * 77) + (g * 150) + (29 * b)) >> 8); - - 00028 6b 85 e0 00 00 - 00 4d imul eax, DWORD PTR r$[rbp], 77 ; 0000004dH - 0002f 69 8d e8 00 00 - 00 96 00 00 00 imul ecx, DWORD PTR g$[rbp], 150 ; 00000096H - 00039 03 c1 add eax, ecx - 0003b 6b 8d f0 00 00 - 00 1d imul ecx, DWORD PTR b$[rbp], 29 - 00042 03 c1 add eax, ecx - 00044 c1 f8 08 sar eax, 8 - -; 1955 : } - - 00047 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0004e 5f pop rdi - 0004f 5d pop rbp - 00050 c3 ret 0 -stbi__compute_y_16 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__convert_format -_TEXT SEGMENT -i$ = 4 -j$ = 36 -good$ = 72 -src$1 = 104 -dest$2 = 136 -tv94 = 340 -tv258 = 340 -tv278 = 340 -tv300 = 340 -tv320 = 340 -tv81 = 344 -tv353 = 344 -data$ = 384 -img_n$ = 392 -req_comp$ = 400 -x$ = 408 -y$ = 416 -stbi__convert_format PROC ; COMDAT - -; 1840 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00013 55 push rbp - 00014 57 push rdi - 00015 48 81 ec 88 01 - 00 00 sub rsp, 392 ; 00000188H - 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00021 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002d 90 npad 1 - -; 1841 : int i, j; -; 1842 : unsigned char *good; -; 1843 : -; 1844 : if (req_comp == img_n) - - 0002e 8b 85 88 01 00 - 00 mov eax, DWORD PTR img_n$[rbp] - 00034 39 85 90 01 00 - 00 cmp DWORD PTR req_comp$[rbp], eax - 0003a 75 0c jne SHORT $LN43@stbi__conv - -; 1845 : return data; - - 0003c 48 8b 85 80 01 - 00 00 mov rax, QWORD PTR data$[rbp] - 00043 e9 03 0a 00 00 jmp $LN1@stbi__conv -$LN43@stbi__conv: - -; 1846 : STBI_ASSERT(req_comp >= 1 && req_comp <= 4); - - 00048 83 bd 90 01 00 - 00 01 cmp DWORD PTR req_comp$[rbp], 1 - 0004f 7c 09 jl SHORT $LN59@stbi__conv - 00051 83 bd 90 01 00 - 00 04 cmp DWORD PTR req_comp$[rbp], 4 - 00058 7e 1c jle SHORT $LN60@stbi__conv -$LN59@stbi__conv: - 0005a 41 b8 36 07 00 - 00 mov r8d, 1846 ; 00000736H - 00060 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ - 00067 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1DO@MABJBNAJ@?$AAr?$AAe?$AAq?$AA_?$AAc?$AAo?$AAm?$AAp?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA1?$AA?5?$AA?$CG@ - 0006e ff 15 00 00 00 - 00 call QWORD PTR __imp__wassert - 00074 33 c0 xor eax, eax -$LN60@stbi__conv: - -; 1847 : -; 1848 : good = (unsigned char *)stbi__malloc_mad3(req_comp, x, y, 0); - - 00076 45 33 c9 xor r9d, r9d - 00079 44 8b 85 a0 01 - 00 00 mov r8d, DWORD PTR y$[rbp] - 00080 8b 95 98 01 00 - 00 mov edx, DWORD PTR x$[rbp] - 00086 8b 8d 90 01 00 - 00 mov ecx, DWORD PTR req_comp$[rbp] - 0008c e8 00 00 00 00 call stbi__malloc_mad3 - 00091 48 89 45 48 mov QWORD PTR good$[rbp], rax - -; 1849 : if (good == NULL) { - - 00095 48 83 7d 48 00 cmp QWORD PTR good$[rbp], 0 - 0009a 75 42 jne SHORT $LN44@stbi__conv - -; 1850 : STBI_FREE(data); - - 0009c 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR data$[rbp] - 000a3 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 000a9 90 npad 1 - -; 1851 : return stbi__errpuc("outofmem", "Out of memory"); - - 000aa 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 000b1 e8 00 00 00 00 call stbi__err - 000b6 85 c0 test eax, eax - 000b8 74 0d je SHORT $LN61@stbi__conv - 000ba 48 c7 85 58 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv81[rbp], 0 - 000c5 eb 0b jmp SHORT $LN62@stbi__conv -$LN61@stbi__conv: - 000c7 48 c7 85 58 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv81[rbp], 0 -$LN62@stbi__conv: - 000d2 48 8b 85 58 01 - 00 00 mov rax, QWORD PTR tv81[rbp] - 000d9 e9 6d 09 00 00 jmp $LN1@stbi__conv -$LN44@stbi__conv: - -; 1852 : } -; 1853 : -; 1854 : for (j = 0; j < (int)y; ++j) { - - 000de c7 45 24 00 00 - 00 00 mov DWORD PTR j$[rbp], 0 - 000e5 eb 08 jmp SHORT $LN4@stbi__conv -$LN2@stbi__conv: - 000e7 8b 45 24 mov eax, DWORD PTR j$[rbp] - 000ea ff c0 inc eax - 000ec 89 45 24 mov DWORD PTR j$[rbp], eax -$LN4@stbi__conv: - 000ef 8b 85 a0 01 00 - 00 mov eax, DWORD PTR y$[rbp] - 000f5 39 45 24 cmp DWORD PTR j$[rbp], eax - 000f8 0f 8d 3b 09 00 - 00 jge $LN3@stbi__conv - -; 1855 : unsigned char *src = data + j * x * img_n; - - 000fe 8b 45 24 mov eax, DWORD PTR j$[rbp] - 00101 0f af 85 98 01 - 00 00 imul eax, DWORD PTR x$[rbp] - 00108 0f af 85 88 01 - 00 00 imul eax, DWORD PTR img_n$[rbp] - 0010f 8b c0 mov eax, eax - 00111 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR data$[rbp] - 00118 48 03 c8 add rcx, rax - 0011b 48 8b c1 mov rax, rcx - 0011e 48 89 45 68 mov QWORD PTR src$1[rbp], rax - -; 1856 : unsigned char *dest = good + j * x * req_comp; - - 00122 8b 45 24 mov eax, DWORD PTR j$[rbp] - 00125 0f af 85 98 01 - 00 00 imul eax, DWORD PTR x$[rbp] - 0012c 0f af 85 90 01 - 00 00 imul eax, DWORD PTR req_comp$[rbp] - 00133 8b c0 mov eax, eax - 00135 48 8b 4d 48 mov rcx, QWORD PTR good$[rbp] - 00139 48 03 c8 add rcx, rax - 0013c 48 8b c1 mov rax, rcx - 0013f 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax - -; 1857 : -; 1858 : #define STBI__COMBO(a, b) ((a) * 8 + (b)) -; 1859 : #define STBI__CASE(a, b) \ -; 1860 : case STBI__COMBO(a, b): \ -; 1861 : for (i = x - 1; i >= 0; --i, src += a, dest += b) -; 1862 : // convert source image with img_n components to one with req_comp components; -; 1863 : // avoid switch per pixel, so use switch per scanline and massive macros -; 1864 : switch (STBI__COMBO(img_n, req_comp)) { - - 00146 8b 85 90 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 0014c 8b 8d 88 01 00 - 00 mov ecx, DWORD PTR img_n$[rbp] - 00152 8d 04 c8 lea eax, DWORD PTR [rax+rcx*8] - 00155 89 85 54 01 00 - 00 mov DWORD PTR tv94[rbp], eax - 0015b 8b 85 54 01 00 - 00 mov eax, DWORD PTR tv94[rbp] - 00161 83 e8 0a sub eax, 10 - 00164 89 85 54 01 00 - 00 mov DWORD PTR tv94[rbp], eax - 0016a 83 bd 54 01 00 - 00 19 cmp DWORD PTR tv94[rbp], 25 - 00171 0f 87 51 08 00 - 00 ja $LN57@stbi__conv - 00177 48 63 85 54 01 - 00 00 movsxd rax, DWORD PTR tv94[rbp] - 0017e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__ImageBase - 00185 8b 84 81 00 00 - 00 00 mov eax, DWORD PTR $LN66@stbi__conv[rcx+rax*4] - 0018c 48 03 c1 add rax, rcx - 0018f ff e0 jmp rax -$LN45@stbi__conv: - -; 1865 : STBI__CASE(1, 2) - - 00191 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 00197 ff c8 dec eax - 00199 89 45 04 mov DWORD PTR i$[rbp], eax - 0019c eb 25 jmp SHORT $LN9@stbi__conv -$LN7@stbi__conv: - 0019e 8b 45 04 mov eax, DWORD PTR i$[rbp] - 001a1 ff c8 dec eax - 001a3 89 45 04 mov DWORD PTR i$[rbp], eax - 001a6 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 001aa 48 ff c0 inc rax - 001ad 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 001b1 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 001b8 48 83 c0 02 add rax, 2 - 001bc 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN9@stbi__conv: - 001c3 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 001c7 7c 3b jl SHORT $LN8@stbi__conv - -; 1866 : { -; 1867 : dest[0] = src[0]; - - 001c9 b8 01 00 00 00 mov eax, 1 - 001ce 48 6b c0 00 imul rax, rax, 0 - 001d2 b9 01 00 00 00 mov ecx, 1 - 001d7 48 6b c9 00 imul rcx, rcx, 0 - 001db 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 001e2 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 001e6 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 001eb 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 1868 : dest[1] = 255; - - 001ee b8 01 00 00 00 mov eax, 1 - 001f3 48 6b c0 01 imul rax, rax, 1 - 001f7 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR dest$2[rbp] - 001fe c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH - -; 1869 : } - - 00202 eb 9a jmp SHORT $LN7@stbi__conv -$LN8@stbi__conv: - -; 1870 : break; - - 00204 e9 2b 08 00 00 jmp $LN5@stbi__conv -$LN46@stbi__conv: - -; 1871 : STBI__CASE(1, 3) - - 00209 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 0020f ff c8 dec eax - 00211 89 45 04 mov DWORD PTR i$[rbp], eax - 00214 eb 25 jmp SHORT $LN12@stbi__conv -$LN10@stbi__conv: - 00216 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00219 ff c8 dec eax - 0021b 89 45 04 mov DWORD PTR i$[rbp], eax - 0021e 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 00222 48 ff c0 inc rax - 00225 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 00229 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 00230 48 83 c0 03 add rax, 3 - 00234 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN12@stbi__conv: - 0023b 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 0023f 7c 7a jl SHORT $LN11@stbi__conv - -; 1872 : { -; 1873 : dest[0] = dest[1] = dest[2] = src[0]; - - 00241 b8 01 00 00 00 mov eax, 1 - 00246 48 6b c0 00 imul rax, rax, 0 - 0024a b9 01 00 00 00 mov ecx, 1 - 0024f 48 6b c9 02 imul rcx, rcx, 2 - 00253 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 0025a 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 0025e 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00263 88 04 0a mov BYTE PTR [rdx+rcx], al - 00266 b8 01 00 00 00 mov eax, 1 - 0026b 48 6b c0 02 imul rax, rax, 2 - 0026f b9 01 00 00 00 mov ecx, 1 - 00274 48 6b c9 01 imul rcx, rcx, 1 - 00278 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 0027f 4c 8b 85 88 00 - 00 00 mov r8, QWORD PTR dest$2[rbp] - 00286 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 0028b 88 04 0a mov BYTE PTR [rdx+rcx], al - 0028e b8 01 00 00 00 mov eax, 1 - 00293 48 6b c0 01 imul rax, rax, 1 - 00297 b9 01 00 00 00 mov ecx, 1 - 0029c 48 6b c9 00 imul rcx, rcx, 0 - 002a0 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 002a7 4c 8b 85 88 00 - 00 00 mov r8, QWORD PTR dest$2[rbp] - 002ae 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 002b3 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 1874 : } - - 002b6 e9 5b ff ff ff jmp $LN10@stbi__conv -$LN11@stbi__conv: - -; 1875 : break; - - 002bb e9 74 07 00 00 jmp $LN5@stbi__conv -$LN47@stbi__conv: - -; 1876 : STBI__CASE(1, 4) - - 002c0 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 002c6 ff c8 dec eax - 002c8 89 45 04 mov DWORD PTR i$[rbp], eax - 002cb eb 25 jmp SHORT $LN15@stbi__conv -$LN13@stbi__conv: - 002cd 8b 45 04 mov eax, DWORD PTR i$[rbp] - 002d0 ff c8 dec eax - 002d2 89 45 04 mov DWORD PTR i$[rbp], eax - 002d5 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 002d9 48 ff c0 inc rax - 002dc 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 002e0 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 002e7 48 83 c0 04 add rax, 4 - 002eb 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN15@stbi__conv: - 002f2 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 002f6 0f 8c 8e 00 00 - 00 jl $LN14@stbi__conv - -; 1877 : { -; 1878 : dest[0] = dest[1] = dest[2] = src[0]; - - 002fc b8 01 00 00 00 mov eax, 1 - 00301 48 6b c0 00 imul rax, rax, 0 - 00305 b9 01 00 00 00 mov ecx, 1 - 0030a 48 6b c9 02 imul rcx, rcx, 2 - 0030e 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00315 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 00319 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 0031e 88 04 0a mov BYTE PTR [rdx+rcx], al - 00321 b8 01 00 00 00 mov eax, 1 - 00326 48 6b c0 02 imul rax, rax, 2 - 0032a b9 01 00 00 00 mov ecx, 1 - 0032f 48 6b c9 01 imul rcx, rcx, 1 - 00333 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 0033a 4c 8b 85 88 00 - 00 00 mov r8, QWORD PTR dest$2[rbp] - 00341 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00346 88 04 0a mov BYTE PTR [rdx+rcx], al - 00349 b8 01 00 00 00 mov eax, 1 - 0034e 48 6b c0 01 imul rax, rax, 1 - 00352 b9 01 00 00 00 mov ecx, 1 - 00357 48 6b c9 00 imul rcx, rcx, 0 - 0035b 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00362 4c 8b 85 88 00 - 00 00 mov r8, QWORD PTR dest$2[rbp] - 00369 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 0036e 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 1879 : dest[3] = 255; - - 00371 b8 01 00 00 00 mov eax, 1 - 00376 48 6b c0 03 imul rax, rax, 3 - 0037a 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR dest$2[rbp] - 00381 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH - -; 1880 : } - - 00385 e9 43 ff ff ff jmp $LN13@stbi__conv -$LN14@stbi__conv: - -; 1881 : break; - - 0038a e9 a5 06 00 00 jmp $LN5@stbi__conv -$LN48@stbi__conv: - -; 1882 : STBI__CASE(2, 1) - - 0038f 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 00395 ff c8 dec eax - 00397 89 45 04 mov DWORD PTR i$[rbp], eax - 0039a eb 25 jmp SHORT $LN18@stbi__conv -$LN16@stbi__conv: - 0039c 8b 45 04 mov eax, DWORD PTR i$[rbp] - 0039f ff c8 dec eax - 003a1 89 45 04 mov DWORD PTR i$[rbp], eax - 003a4 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 003a8 48 83 c0 02 add rax, 2 - 003ac 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 003b0 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 003b7 48 ff c0 inc rax - 003ba 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN18@stbi__conv: - 003c1 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 003c5 7c 27 jl SHORT $LN17@stbi__conv - -; 1883 : { -; 1884 : dest[0] = src[0]; - - 003c7 b8 01 00 00 00 mov eax, 1 - 003cc 48 6b c0 00 imul rax, rax, 0 - 003d0 b9 01 00 00 00 mov ecx, 1 - 003d5 48 6b c9 00 imul rcx, rcx, 0 - 003d9 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 003e0 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 003e4 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 003e9 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 1885 : } - - 003ec eb ae jmp SHORT $LN16@stbi__conv -$LN17@stbi__conv: - -; 1886 : break; - - 003ee e9 41 06 00 00 jmp $LN5@stbi__conv -$LN49@stbi__conv: - -; 1887 : STBI__CASE(2, 3) - - 003f3 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 003f9 ff c8 dec eax - 003fb 89 45 04 mov DWORD PTR i$[rbp], eax - 003fe eb 26 jmp SHORT $LN21@stbi__conv -$LN19@stbi__conv: - 00400 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00403 ff c8 dec eax - 00405 89 45 04 mov DWORD PTR i$[rbp], eax - 00408 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 0040c 48 83 c0 02 add rax, 2 - 00410 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 00414 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 0041b 48 83 c0 03 add rax, 3 - 0041f 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN21@stbi__conv: - 00426 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 0042a 7c 7a jl SHORT $LN20@stbi__conv - -; 1888 : { -; 1889 : dest[0] = dest[1] = dest[2] = src[0]; - - 0042c b8 01 00 00 00 mov eax, 1 - 00431 48 6b c0 00 imul rax, rax, 0 - 00435 b9 01 00 00 00 mov ecx, 1 - 0043a 48 6b c9 02 imul rcx, rcx, 2 - 0043e 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00445 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 00449 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 0044e 88 04 0a mov BYTE PTR [rdx+rcx], al - 00451 b8 01 00 00 00 mov eax, 1 - 00456 48 6b c0 02 imul rax, rax, 2 - 0045a b9 01 00 00 00 mov ecx, 1 - 0045f 48 6b c9 01 imul rcx, rcx, 1 - 00463 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 0046a 4c 8b 85 88 00 - 00 00 mov r8, QWORD PTR dest$2[rbp] - 00471 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00476 88 04 0a mov BYTE PTR [rdx+rcx], al - 00479 b8 01 00 00 00 mov eax, 1 - 0047e 48 6b c0 01 imul rax, rax, 1 - 00482 b9 01 00 00 00 mov ecx, 1 - 00487 48 6b c9 00 imul rcx, rcx, 0 - 0048b 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00492 4c 8b 85 88 00 - 00 00 mov r8, QWORD PTR dest$2[rbp] - 00499 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 0049e 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 1890 : } - - 004a1 e9 5a ff ff ff jmp $LN19@stbi__conv -$LN20@stbi__conv: - -; 1891 : break; - - 004a6 e9 89 05 00 00 jmp $LN5@stbi__conv -$LN50@stbi__conv: - -; 1892 : STBI__CASE(2, 4) - - 004ab 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 004b1 ff c8 dec eax - 004b3 89 45 04 mov DWORD PTR i$[rbp], eax - 004b6 eb 26 jmp SHORT $LN24@stbi__conv -$LN22@stbi__conv: - 004b8 8b 45 04 mov eax, DWORD PTR i$[rbp] - 004bb ff c8 dec eax - 004bd 89 45 04 mov DWORD PTR i$[rbp], eax - 004c0 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 004c4 48 83 c0 02 add rax, 2 - 004c8 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 004cc 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 004d3 48 83 c0 04 add rax, 4 - 004d7 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN24@stbi__conv: - 004de 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 004e2 0f 8c 9f 00 00 - 00 jl $LN23@stbi__conv - -; 1893 : { -; 1894 : dest[0] = dest[1] = dest[2] = src[0]; - - 004e8 b8 01 00 00 00 mov eax, 1 - 004ed 48 6b c0 00 imul rax, rax, 0 - 004f1 b9 01 00 00 00 mov ecx, 1 - 004f6 48 6b c9 02 imul rcx, rcx, 2 - 004fa 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00501 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 00505 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 0050a 88 04 0a mov BYTE PTR [rdx+rcx], al - 0050d b8 01 00 00 00 mov eax, 1 - 00512 48 6b c0 02 imul rax, rax, 2 - 00516 b9 01 00 00 00 mov ecx, 1 - 0051b 48 6b c9 01 imul rcx, rcx, 1 - 0051f 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00526 4c 8b 85 88 00 - 00 00 mov r8, QWORD PTR dest$2[rbp] - 0052d 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00532 88 04 0a mov BYTE PTR [rdx+rcx], al - 00535 b8 01 00 00 00 mov eax, 1 - 0053a 48 6b c0 01 imul rax, rax, 1 - 0053e b9 01 00 00 00 mov ecx, 1 - 00543 48 6b c9 00 imul rcx, rcx, 0 - 00547 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 0054e 4c 8b 85 88 00 - 00 00 mov r8, QWORD PTR dest$2[rbp] - 00555 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 0055a 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 1895 : dest[3] = src[1]; - - 0055d b8 01 00 00 00 mov eax, 1 - 00562 48 6b c0 01 imul rax, rax, 1 - 00566 b9 01 00 00 00 mov ecx, 1 - 0056b 48 6b c9 03 imul rcx, rcx, 3 - 0056f 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00576 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 0057a 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 0057f 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 1896 : } - - 00582 e9 31 ff ff ff jmp $LN22@stbi__conv -$LN23@stbi__conv: - -; 1897 : break; - - 00587 e9 a8 04 00 00 jmp $LN5@stbi__conv -$LN51@stbi__conv: - -; 1898 : STBI__CASE(3, 4) - - 0058c 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 00592 ff c8 dec eax - 00594 89 45 04 mov DWORD PTR i$[rbp], eax - 00597 eb 26 jmp SHORT $LN27@stbi__conv -$LN25@stbi__conv: - 00599 8b 45 04 mov eax, DWORD PTR i$[rbp] - 0059c ff c8 dec eax - 0059e 89 45 04 mov DWORD PTR i$[rbp], eax - 005a1 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 005a5 48 83 c0 03 add rax, 3 - 005a9 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 005ad 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 005b4 48 83 c0 04 add rax, 4 - 005b8 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN27@stbi__conv: - 005bf 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 005c3 0f 8c 88 00 00 - 00 jl $LN26@stbi__conv - -; 1899 : { -; 1900 : dest[0] = src[0]; - - 005c9 b8 01 00 00 00 mov eax, 1 - 005ce 48 6b c0 00 imul rax, rax, 0 - 005d2 b9 01 00 00 00 mov ecx, 1 - 005d7 48 6b c9 00 imul rcx, rcx, 0 - 005db 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 005e2 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 005e6 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 005eb 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 1901 : dest[1] = src[1]; - - 005ee b8 01 00 00 00 mov eax, 1 - 005f3 48 6b c0 01 imul rax, rax, 1 - 005f7 b9 01 00 00 00 mov ecx, 1 - 005fc 48 6b c9 01 imul rcx, rcx, 1 - 00600 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00607 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 0060b 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00610 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 1902 : dest[2] = src[2]; - - 00613 b8 01 00 00 00 mov eax, 1 - 00618 48 6b c0 02 imul rax, rax, 2 - 0061c b9 01 00 00 00 mov ecx, 1 - 00621 48 6b c9 02 imul rcx, rcx, 2 - 00625 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 0062c 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 00630 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00635 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 1903 : dest[3] = 255; - - 00638 b8 01 00 00 00 mov eax, 1 - 0063d 48 6b c0 03 imul rax, rax, 3 - 00641 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR dest$2[rbp] - 00648 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH - -; 1904 : } - - 0064c e9 48 ff ff ff jmp $LN25@stbi__conv -$LN26@stbi__conv: - -; 1905 : break; - - 00651 e9 de 03 00 00 jmp $LN5@stbi__conv -$LN52@stbi__conv: - -; 1906 : STBI__CASE(3, 1) - - 00656 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 0065c ff c8 dec eax - 0065e 89 45 04 mov DWORD PTR i$[rbp], eax - 00661 eb 25 jmp SHORT $LN30@stbi__conv -$LN28@stbi__conv: - 00663 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00666 ff c8 dec eax - 00668 89 45 04 mov DWORD PTR i$[rbp], eax - 0066b 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 0066f 48 83 c0 03 add rax, 3 - 00673 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 00677 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 0067e 48 ff c0 inc rax - 00681 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN30@stbi__conv: - 00688 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 0068c 7c 64 jl SHORT $LN29@stbi__conv - -; 1907 : { -; 1908 : dest[0] = stbi__compute_y(src[0], src[1], src[2]); - - 0068e b8 01 00 00 00 mov eax, 1 - 00693 48 6b c0 02 imul rax, rax, 2 - 00697 48 8b 4d 68 mov rcx, QWORD PTR src$1[rbp] - 0069b 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0069f b9 01 00 00 00 mov ecx, 1 - 006a4 48 6b c9 01 imul rcx, rcx, 1 - 006a8 48 8b 55 68 mov rdx, QWORD PTR src$1[rbp] - 006ac 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 006b0 ba 01 00 00 00 mov edx, 1 - 006b5 48 6b d2 00 imul rdx, rdx, 0 - 006b9 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 006bd 41 0f b6 14 10 movzx edx, BYTE PTR [r8+rdx] - 006c2 89 95 54 01 00 - 00 mov DWORD PTR tv258[rbp], edx - 006c8 44 8b c0 mov r8d, eax - 006cb 8b d1 mov edx, ecx - 006cd 8b 85 54 01 00 - 00 mov eax, DWORD PTR tv258[rbp] - 006d3 8b c8 mov ecx, eax - 006d5 e8 00 00 00 00 call stbi__compute_y - 006da b9 01 00 00 00 mov ecx, 1 - 006df 48 6b c9 00 imul rcx, rcx, 0 - 006e3 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 006ea 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 1909 : } - - 006ed e9 71 ff ff ff jmp $LN28@stbi__conv -$LN29@stbi__conv: - -; 1910 : break; - - 006f2 e9 3d 03 00 00 jmp $LN5@stbi__conv -$LN53@stbi__conv: - -; 1911 : STBI__CASE(3, 2) - - 006f7 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 006fd ff c8 dec eax - 006ff 89 45 04 mov DWORD PTR i$[rbp], eax - 00702 eb 26 jmp SHORT $LN33@stbi__conv -$LN31@stbi__conv: - 00704 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00707 ff c8 dec eax - 00709 89 45 04 mov DWORD PTR i$[rbp], eax - 0070c 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 00710 48 83 c0 03 add rax, 3 - 00714 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 00718 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 0071f 48 83 c0 02 add rax, 2 - 00723 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN33@stbi__conv: - 0072a 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 0072e 7c 78 jl SHORT $LN32@stbi__conv - -; 1912 : { -; 1913 : dest[0] = stbi__compute_y(src[0], src[1], src[2]); - - 00730 b8 01 00 00 00 mov eax, 1 - 00735 48 6b c0 02 imul rax, rax, 2 - 00739 48 8b 4d 68 mov rcx, QWORD PTR src$1[rbp] - 0073d 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00741 b9 01 00 00 00 mov ecx, 1 - 00746 48 6b c9 01 imul rcx, rcx, 1 - 0074a 48 8b 55 68 mov rdx, QWORD PTR src$1[rbp] - 0074e 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 00752 ba 01 00 00 00 mov edx, 1 - 00757 48 6b d2 00 imul rdx, rdx, 0 - 0075b 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 0075f 41 0f b6 14 10 movzx edx, BYTE PTR [r8+rdx] - 00764 89 95 54 01 00 - 00 mov DWORD PTR tv278[rbp], edx - 0076a 44 8b c0 mov r8d, eax - 0076d 8b d1 mov edx, ecx - 0076f 8b 85 54 01 00 - 00 mov eax, DWORD PTR tv278[rbp] - 00775 8b c8 mov ecx, eax - 00777 e8 00 00 00 00 call stbi__compute_y - 0077c b9 01 00 00 00 mov ecx, 1 - 00781 48 6b c9 00 imul rcx, rcx, 0 - 00785 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 0078c 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 1914 : dest[1] = 255; - - 0078f b8 01 00 00 00 mov eax, 1 - 00794 48 6b c0 01 imul rax, rax, 1 - 00798 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR dest$2[rbp] - 0079f c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH - -; 1915 : } - - 007a3 e9 5c ff ff ff jmp $LN31@stbi__conv -$LN32@stbi__conv: - -; 1916 : break; - - 007a8 e9 87 02 00 00 jmp $LN5@stbi__conv -$LN54@stbi__conv: - -; 1917 : STBI__CASE(4, 1) - - 007ad 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 007b3 ff c8 dec eax - 007b5 89 45 04 mov DWORD PTR i$[rbp], eax - 007b8 eb 25 jmp SHORT $LN36@stbi__conv -$LN34@stbi__conv: - 007ba 8b 45 04 mov eax, DWORD PTR i$[rbp] - 007bd ff c8 dec eax - 007bf 89 45 04 mov DWORD PTR i$[rbp], eax - 007c2 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 007c6 48 83 c0 04 add rax, 4 - 007ca 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 007ce 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 007d5 48 ff c0 inc rax - 007d8 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN36@stbi__conv: - 007df 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 007e3 7c 64 jl SHORT $LN35@stbi__conv - -; 1918 : { -; 1919 : dest[0] = stbi__compute_y(src[0], src[1], src[2]); - - 007e5 b8 01 00 00 00 mov eax, 1 - 007ea 48 6b c0 02 imul rax, rax, 2 - 007ee 48 8b 4d 68 mov rcx, QWORD PTR src$1[rbp] - 007f2 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 007f6 b9 01 00 00 00 mov ecx, 1 - 007fb 48 6b c9 01 imul rcx, rcx, 1 - 007ff 48 8b 55 68 mov rdx, QWORD PTR src$1[rbp] - 00803 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 00807 ba 01 00 00 00 mov edx, 1 - 0080c 48 6b d2 00 imul rdx, rdx, 0 - 00810 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 00814 41 0f b6 14 10 movzx edx, BYTE PTR [r8+rdx] - 00819 89 95 54 01 00 - 00 mov DWORD PTR tv300[rbp], edx - 0081f 44 8b c0 mov r8d, eax - 00822 8b d1 mov edx, ecx - 00824 8b 85 54 01 00 - 00 mov eax, DWORD PTR tv300[rbp] - 0082a 8b c8 mov ecx, eax - 0082c e8 00 00 00 00 call stbi__compute_y - 00831 b9 01 00 00 00 mov ecx, 1 - 00836 48 6b c9 00 imul rcx, rcx, 0 - 0083a 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00841 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 1920 : } - - 00844 e9 71 ff ff ff jmp $LN34@stbi__conv -$LN35@stbi__conv: - -; 1921 : break; - - 00849 e9 e6 01 00 00 jmp $LN5@stbi__conv -$LN55@stbi__conv: - -; 1922 : STBI__CASE(4, 2) - - 0084e 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 00854 ff c8 dec eax - 00856 89 45 04 mov DWORD PTR i$[rbp], eax - 00859 eb 26 jmp SHORT $LN39@stbi__conv -$LN37@stbi__conv: - 0085b 8b 45 04 mov eax, DWORD PTR i$[rbp] - 0085e ff c8 dec eax - 00860 89 45 04 mov DWORD PTR i$[rbp], eax - 00863 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 00867 48 83 c0 04 add rax, 4 - 0086b 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 0086f 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 00876 48 83 c0 02 add rax, 2 - 0087a 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN39@stbi__conv: - 00881 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 00885 0f 8c 89 00 00 - 00 jl $LN38@stbi__conv - -; 1923 : { -; 1924 : dest[0] = stbi__compute_y(src[0], src[1], src[2]); - - 0088b b8 01 00 00 00 mov eax, 1 - 00890 48 6b c0 02 imul rax, rax, 2 - 00894 48 8b 4d 68 mov rcx, QWORD PTR src$1[rbp] - 00898 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0089c b9 01 00 00 00 mov ecx, 1 - 008a1 48 6b c9 01 imul rcx, rcx, 1 - 008a5 48 8b 55 68 mov rdx, QWORD PTR src$1[rbp] - 008a9 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 008ad ba 01 00 00 00 mov edx, 1 - 008b2 48 6b d2 00 imul rdx, rdx, 0 - 008b6 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 008ba 41 0f b6 14 10 movzx edx, BYTE PTR [r8+rdx] - 008bf 89 95 54 01 00 - 00 mov DWORD PTR tv320[rbp], edx - 008c5 44 8b c0 mov r8d, eax - 008c8 8b d1 mov edx, ecx - 008ca 8b 85 54 01 00 - 00 mov eax, DWORD PTR tv320[rbp] - 008d0 8b c8 mov ecx, eax - 008d2 e8 00 00 00 00 call stbi__compute_y - 008d7 b9 01 00 00 00 mov ecx, 1 - 008dc 48 6b c9 00 imul rcx, rcx, 0 - 008e0 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 008e7 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 1925 : dest[1] = src[3]; - - 008ea b8 01 00 00 00 mov eax, 1 - 008ef 48 6b c0 03 imul rax, rax, 3 - 008f3 b9 01 00 00 00 mov ecx, 1 - 008f8 48 6b c9 01 imul rcx, rcx, 1 - 008fc 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00903 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 00907 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 0090c 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 1926 : } - - 0090f e9 47 ff ff ff jmp $LN37@stbi__conv -$LN38@stbi__conv: - -; 1927 : break; - - 00914 e9 1b 01 00 00 jmp $LN5@stbi__conv -$LN56@stbi__conv: - -; 1928 : STBI__CASE(4, 3) - - 00919 8b 85 98 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 0091f ff c8 dec eax - 00921 89 45 04 mov DWORD PTR i$[rbp], eax - 00924 eb 26 jmp SHORT $LN42@stbi__conv -$LN40@stbi__conv: - 00926 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00929 ff c8 dec eax - 0092b 89 45 04 mov DWORD PTR i$[rbp], eax - 0092e 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] - 00932 48 83 c0 04 add rax, 4 - 00936 48 89 45 68 mov QWORD PTR src$1[rbp], rax - 0093a 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR dest$2[rbp] - 00941 48 83 c0 03 add rax, 3 - 00945 48 89 85 88 00 - 00 00 mov QWORD PTR dest$2[rbp], rax -$LN42@stbi__conv: - 0094c 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 - 00950 7c 74 jl SHORT $LN41@stbi__conv - -; 1929 : { -; 1930 : dest[0] = src[0]; - - 00952 b8 01 00 00 00 mov eax, 1 - 00957 48 6b c0 00 imul rax, rax, 0 - 0095b b9 01 00 00 00 mov ecx, 1 - 00960 48 6b c9 00 imul rcx, rcx, 0 - 00964 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 0096b 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 0096f 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00974 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 1931 : dest[1] = src[1]; - - 00977 b8 01 00 00 00 mov eax, 1 - 0097c 48 6b c0 01 imul rax, rax, 1 - 00980 b9 01 00 00 00 mov ecx, 1 - 00985 48 6b c9 01 imul rcx, rcx, 1 - 00989 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 00990 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 00994 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 00999 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 1932 : dest[2] = src[2]; - - 0099c b8 01 00 00 00 mov eax, 1 - 009a1 48 6b c0 02 imul rax, rax, 2 - 009a5 b9 01 00 00 00 mov ecx, 1 - 009aa 48 6b c9 02 imul rcx, rcx, 2 - 009ae 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR dest$2[rbp] - 009b5 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] - 009b9 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 009be 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 1933 : } - - 009c1 e9 60 ff ff ff jmp $LN40@stbi__conv -$LN41@stbi__conv: - -; 1934 : break; - - 009c6 eb 6c jmp SHORT $LN5@stbi__conv -$LN57@stbi__conv: - -; 1935 : default: -; 1936 : STBI_ASSERT(0); - - 009c8 33 c0 xor eax, eax - 009ca 85 c0 test eax, eax - 009cc 75 1c jne SHORT $LN63@stbi__conv - 009ce 41 b8 90 07 00 - 00 mov r8d, 1936 ; 00000790H - 009d4 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ - 009db 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_13COJANIEC@?$AA0@ - 009e2 ff 15 00 00 00 - 00 call QWORD PTR __imp__wassert - 009e8 33 c0 xor eax, eax -$LN63@stbi__conv: - -; 1937 : STBI_FREE(data); - - 009ea 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR data$[rbp] - 009f1 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 009f7 90 npad 1 - -; 1938 : STBI_FREE(good); - - 009f8 48 8b 4d 48 mov rcx, QWORD PTR good$[rbp] - 009fc ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00a02 90 npad 1 - -; 1939 : return stbi__errpuc("unsupported", "Unsupported format conversion"); - - 00a03 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0M@MHDBFHD@unsupported@ - 00a0a e8 00 00 00 00 call stbi__err - 00a0f 85 c0 test eax, eax - 00a11 74 0d je SHORT $LN64@stbi__conv - 00a13 48 c7 85 58 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv353[rbp], 0 - 00a1e eb 0b jmp SHORT $LN65@stbi__conv -$LN64@stbi__conv: - 00a20 48 c7 85 58 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv353[rbp], 0 -$LN65@stbi__conv: - 00a2b 48 8b 85 58 01 - 00 00 mov rax, QWORD PTR tv353[rbp] - 00a32 eb 17 jmp SHORT $LN1@stbi__conv -$LN5@stbi__conv: - -; 1940 : } -; 1941 : #undef STBI__CASE -; 1942 : } - - 00a34 e9 ae f6 ff ff jmp $LN2@stbi__conv -$LN3@stbi__conv: - -; 1943 : -; 1944 : STBI_FREE(data); - - 00a39 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR data$[rbp] - 00a40 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00a46 90 npad 1 - -; 1945 : return good; - - 00a47 48 8b 45 48 mov rax, QWORD PTR good$[rbp] -$LN1@stbi__conv: - -; 1946 : } - - 00a4b 48 8d a5 68 01 - 00 00 lea rsp, QWORD PTR [rbp+360] - 00a52 5f pop rdi - 00a53 5d pop rbp - 00a54 c3 ret 0 - 00a55 0f 1f 00 npad 3 -$LN66@stbi__conv: - 00a58 00 00 00 00 DD $LN45@stbi__conv - 00a5c 00 00 00 00 DD $LN46@stbi__conv - 00a60 00 00 00 00 DD $LN47@stbi__conv - 00a64 00 00 00 00 DD $LN57@stbi__conv - 00a68 00 00 00 00 DD $LN57@stbi__conv - 00a6c 00 00 00 00 DD $LN57@stbi__conv - 00a70 00 00 00 00 DD $LN57@stbi__conv - 00a74 00 00 00 00 DD $LN48@stbi__conv - 00a78 00 00 00 00 DD $LN57@stbi__conv - 00a7c 00 00 00 00 DD $LN49@stbi__conv - 00a80 00 00 00 00 DD $LN50@stbi__conv - 00a84 00 00 00 00 DD $LN57@stbi__conv - 00a88 00 00 00 00 DD $LN57@stbi__conv - 00a8c 00 00 00 00 DD $LN57@stbi__conv - 00a90 00 00 00 00 DD $LN57@stbi__conv - 00a94 00 00 00 00 DD $LN52@stbi__conv - 00a98 00 00 00 00 DD $LN53@stbi__conv - 00a9c 00 00 00 00 DD $LN57@stbi__conv - 00aa0 00 00 00 00 DD $LN51@stbi__conv - 00aa4 00 00 00 00 DD $LN57@stbi__conv - 00aa8 00 00 00 00 DD $LN57@stbi__conv - 00aac 00 00 00 00 DD $LN57@stbi__conv - 00ab0 00 00 00 00 DD $LN57@stbi__conv - 00ab4 00 00 00 00 DD $LN54@stbi__conv - 00ab8 00 00 00 00 DD $LN55@stbi__conv - 00abc 00 00 00 00 DD $LN56@stbi__conv -stbi__convert_format ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__compute_y -_TEXT SEGMENT -r$ = 224 -g$ = 232 -b$ = 240 -stbi__compute_y PROC ; COMDAT - -; 1828 : { - - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00009 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 0000d 55 push rbp - 0000e 57 push rdi - 0000f 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00016 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00027 90 npad 1 - -; 1829 : return (stbi_uc)(((r * 77) + (g * 150) + (29 * b)) >> 8); - - 00028 6b 85 e0 00 00 - 00 4d imul eax, DWORD PTR r$[rbp], 77 ; 0000004dH - 0002f 69 8d e8 00 00 - 00 96 00 00 00 imul ecx, DWORD PTR g$[rbp], 150 ; 00000096H - 00039 03 c1 add eax, ecx - 0003b 6b 8d f0 00 00 - 00 1d imul ecx, DWORD PTR b$[rbp], 29 - 00042 03 c1 add eax, ecx - 00044 c1 f8 08 sar eax, 8 - -; 1830 : } - - 00047 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0004e 5f pop rdi - 0004f 5d pop rbp - 00050 c3 ret 0 -stbi__compute_y ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__get32le -_TEXT SEGMENT -z$ = 4 -s$ = 256 -stbi__get32le PROC ; COMDAT - -; 1802 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 1803 : stbi__uint32 z = stbi__get16le(s); - - 00020 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00027 e8 00 00 00 00 call stbi__get16le - 0002c 89 45 04 mov DWORD PTR z$[rbp], eax - -; 1804 : z += (stbi__uint32)stbi__get16le(s) << 16; - - 0002f 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00036 e8 00 00 00 00 call stbi__get16le - 0003b c1 e0 10 shl eax, 16 - 0003e 8b 4d 04 mov ecx, DWORD PTR z$[rbp] - 00041 03 c8 add ecx, eax - 00043 8b c1 mov eax, ecx - 00045 89 45 04 mov DWORD PTR z$[rbp], eax - -; 1805 : return z; - - 00048 8b 45 04 mov eax, DWORD PTR z$[rbp] - -; 1806 : } - - 0004b 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00052 5f pop rdi - 00053 5d pop rbp - 00054 c3 ret 0 -stbi__get32le ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__get16le -_TEXT SEGMENT -z$ = 4 -s$ = 256 -stbi__get16le PROC ; COMDAT - -; 1794 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 1795 : int z = stbi__get8(s); - - 00020 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00027 e8 00 00 00 00 call stbi__get8 - 0002c 0f b6 c0 movzx eax, al - 0002f 89 45 04 mov DWORD PTR z$[rbp], eax - -; 1796 : return z + (stbi__get8(s) << 8); - - 00032 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00039 e8 00 00 00 00 call stbi__get8 - 0003e 0f b6 c0 movzx eax, al - 00041 c1 e0 08 shl eax, 8 - 00044 8b 4d 04 mov ecx, DWORD PTR z$[rbp] - 00047 03 c8 add ecx, eax - 00049 8b c1 mov eax, ecx - -; 1797 : } - - 0004b 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00052 5f pop rdi - 00053 5d pop rbp - 00054 c3 ret 0 -stbi__get16le ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__get32be -_TEXT SEGMENT -z$ = 4 -tv66 = 212 -s$ = 256 -stbi__get32be PROC ; COMDAT - -; 1784 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 1785 : stbi__uint32 z = stbi__get16be(s); - - 00020 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00027 e8 00 00 00 00 call stbi__get16be - 0002c 89 45 04 mov DWORD PTR z$[rbp], eax - -; 1786 : return (z << 16) + stbi__get16be(s); - - 0002f 8b 45 04 mov eax, DWORD PTR z$[rbp] - 00032 c1 e0 10 shl eax, 16 - 00035 89 85 d4 00 00 - 00 mov DWORD PTR tv66[rbp], eax - 0003b 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00042 e8 00 00 00 00 call stbi__get16be - 00047 8b 8d d4 00 00 - 00 mov ecx, DWORD PTR tv66[rbp] - 0004d 03 c8 add ecx, eax - 0004f 8b c1 mov eax, ecx - -; 1787 : } - - 00051 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00058 5f pop rdi - 00059 5d pop rbp - 0005a c3 ret 0 -stbi__get32be ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__get16be -_TEXT SEGMENT -z$ = 4 -tv67 = 212 -s$ = 256 -stbi__get16be PROC ; COMDAT - -; 1774 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 1775 : int z = stbi__get8(s); - - 00020 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00027 e8 00 00 00 00 call stbi__get8 - 0002c 0f b6 c0 movzx eax, al - 0002f 89 45 04 mov DWORD PTR z$[rbp], eax - -; 1776 : return (z << 8) + stbi__get8(s); - - 00032 8b 45 04 mov eax, DWORD PTR z$[rbp] - 00035 c1 e0 08 shl eax, 8 - 00038 89 85 d4 00 00 - 00 mov DWORD PTR tv67[rbp], eax - 0003e 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00045 e8 00 00 00 00 call stbi__get8 - 0004a 0f b6 c0 movzx eax, al - 0004d 8b 8d d4 00 00 - 00 mov ecx, DWORD PTR tv67[rbp] - 00053 03 c8 add ecx, eax - 00055 8b c1 mov eax, ecx - -; 1777 : } - - 00057 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 0005e 5f pop rdi - 0005f 5d pop rbp - 00060 c3 ret 0 -stbi__get16be ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__getn -_TEXT SEGMENT -blen$1 = 4 -res$2 = 36 -count$3 = 68 -tv87 = 276 -s$ = 320 -buffer$ = 328 -n$ = 336 -stbi__getn PROC ; COMDAT - -; 1746 : { - - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 90 npad 1 - -; 1747 : if (s->io.read) { - - 0002a 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00031 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 - 00036 0f 84 e1 00 00 - 00 je $LN2@stbi__getn - -; 1748 : int blen = (int)(s->img_buffer_end - s->img_buffer); - - 0003c 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00043 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0004a 48 8b 89 c0 00 - 00 00 mov rcx, QWORD PTR [rcx+192] - 00051 48 8b 80 c8 00 - 00 00 mov rax, QWORD PTR [rax+200] - 00058 48 2b c1 sub rax, rcx - 0005b 89 45 04 mov DWORD PTR blen$1[rbp], eax - -; 1749 : if (blen < n) { - - 0005e 8b 85 50 01 00 - 00 mov eax, DWORD PTR n$[rbp] - 00064 39 45 04 cmp DWORD PTR blen$1[rbp], eax - 00067 0f 8d b0 00 00 - 00 jge $LN3@stbi__getn - -; 1750 : int res, count; -; 1751 : -; 1752 : memcpy(buffer, s->img_buffer, blen); - - 0006d 48 63 45 04 movsxd rax, DWORD PTR blen$1[rbp] - 00071 4c 8b c0 mov r8, rax - 00074 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 0007b 48 8b 90 c0 00 - 00 00 mov rdx, QWORD PTR [rax+192] - 00082 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR buffer$[rbp] - 00089 e8 00 00 00 00 call memcpy - 0008e 90 npad 1 - -; 1753 : -; 1754 : count = (s->io.read)(s->io_user_data, (char *)buffer + blen, n - blen); - - 0008f 8b 45 04 mov eax, DWORD PTR blen$1[rbp] - 00092 8b 8d 50 01 00 - 00 mov ecx, DWORD PTR n$[rbp] - 00098 2b c8 sub ecx, eax - 0009a 8b c1 mov eax, ecx - 0009c 48 63 4d 04 movsxd rcx, DWORD PTR blen$1[rbp] - 000a0 48 8b 95 48 01 - 00 00 mov rdx, QWORD PTR buffer$[rbp] - 000a7 48 03 d1 add rdx, rcx - 000aa 48 8b ca mov rcx, rdx - 000ad 44 8b c0 mov r8d, eax - 000b0 48 8b d1 mov rdx, rcx - 000b3 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 000ba 48 8b 48 28 mov rcx, QWORD PTR [rax+40] - 000be 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 000c5 ff 50 10 call QWORD PTR [rax+16] - 000c8 89 45 44 mov DWORD PTR count$3[rbp], eax - -; 1755 : res = (count == (n - blen)); - - 000cb 8b 45 04 mov eax, DWORD PTR blen$1[rbp] - 000ce 8b 8d 50 01 00 - 00 mov ecx, DWORD PTR n$[rbp] - 000d4 2b c8 sub ecx, eax - 000d6 8b c1 mov eax, ecx - 000d8 39 45 44 cmp DWORD PTR count$3[rbp], eax - 000db 75 0c jne SHORT $LN7@stbi__getn - 000dd c7 85 14 01 00 - 00 01 00 00 00 mov DWORD PTR tv87[rbp], 1 - 000e7 eb 0a jmp SHORT $LN8@stbi__getn -$LN7@stbi__getn: - 000e9 c7 85 14 01 00 - 00 00 00 00 00 mov DWORD PTR tv87[rbp], 0 -$LN8@stbi__getn: - 000f3 8b 85 14 01 00 - 00 mov eax, DWORD PTR tv87[rbp] - 000f9 89 45 24 mov DWORD PTR res$2[rbp], eax - -; 1756 : s->img_buffer = s->img_buffer_end; - - 000fc 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00103 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0010a 48 8b 89 c8 00 - 00 00 mov rcx, QWORD PTR [rcx+200] - 00111 48 89 88 c0 00 - 00 00 mov QWORD PTR [rax+192], rcx - -; 1757 : return res; - - 00118 8b 45 24 mov eax, DWORD PTR res$2[rbp] - 0011b eb 78 jmp SHORT $LN1@stbi__getn -$LN3@stbi__getn: -$LN2@stbi__getn: - -; 1758 : } -; 1759 : } -; 1760 : -; 1761 : if (s->img_buffer + n <= s->img_buffer_end) { - - 0011d 48 63 85 50 01 - 00 00 movsxd rax, DWORD PTR n$[rbp] - 00124 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0012b 48 03 81 c0 00 - 00 00 add rax, QWORD PTR [rcx+192] - 00132 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00139 48 3b 81 c8 00 - 00 00 cmp rax, QWORD PTR [rcx+200] - 00140 77 51 ja SHORT $LN4@stbi__getn - -; 1762 : memcpy(buffer, s->img_buffer, n); - - 00142 48 63 85 50 01 - 00 00 movsxd rax, DWORD PTR n$[rbp] - 00149 4c 8b c0 mov r8, rax - 0014c 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00153 48 8b 90 c0 00 - 00 00 mov rdx, QWORD PTR [rax+192] - 0015a 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR buffer$[rbp] - 00161 e8 00 00 00 00 call memcpy - 00166 90 npad 1 - -; 1763 : s->img_buffer += n; - - 00167 48 63 85 50 01 - 00 00 movsxd rax, DWORD PTR n$[rbp] - 0016e 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00175 48 03 81 c0 00 - 00 00 add rax, QWORD PTR [rcx+192] - 0017c 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00183 48 89 81 c0 00 - 00 00 mov QWORD PTR [rcx+192], rax - -; 1764 : return 1; - - 0018a b8 01 00 00 00 mov eax, 1 - 0018f eb 04 jmp SHORT $LN1@stbi__getn - -; 1765 : } else - - 00191 eb 02 jmp SHORT $LN5@stbi__getn -$LN4@stbi__getn: - -; 1766 : return 0; - - 00193 33 c0 xor eax, eax -$LN5@stbi__getn: -$LN1@stbi__getn: - -; 1767 : } - - 00195 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 0019c 5f pop rdi - 0019d 5d pop rbp - 0019e c3 ret 0 -stbi__getn ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__skip -_TEXT SEGMENT -blen$1 = 4 -s$ = 256 -n$ = 264 -stbi__skip PROC ; COMDAT - -; 1723 : { - - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00023 90 npad 1 - -; 1724 : if (n == 0) - - 00024 83 bd 08 01 00 - 00 00 cmp DWORD PTR n$[rbp], 0 - 0002b 75 05 jne SHORT $LN2@stbi__skip - -; 1725 : return; // already there! - - 0002d e9 cb 00 00 00 jmp $LN1@stbi__skip -$LN2@stbi__skip: - -; 1726 : if (n < 0) { - - 00032 83 bd 08 01 00 - 00 00 cmp DWORD PTR n$[rbp], 0 - 00039 7d 21 jge SHORT $LN3@stbi__skip - -; 1727 : s->img_buffer = s->img_buffer_end; - - 0003b 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00042 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00049 48 8b 89 c8 00 - 00 00 mov rcx, QWORD PTR [rcx+200] - 00050 48 89 88 c0 00 - 00 00 mov QWORD PTR [rax+192], rcx - -; 1728 : return; - - 00057 e9 a1 00 00 00 jmp $LN1@stbi__skip -$LN3@stbi__skip: - -; 1729 : } -; 1730 : if (s->io.read) { - - 0005c 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00063 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 - 00068 74 70 je SHORT $LN4@stbi__skip - -; 1731 : int blen = (int)(s->img_buffer_end - s->img_buffer); - - 0006a 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00071 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00078 48 8b 89 c0 00 - 00 00 mov rcx, QWORD PTR [rcx+192] - 0007f 48 8b 80 c8 00 - 00 00 mov rax, QWORD PTR [rax+200] - 00086 48 2b c1 sub rax, rcx - 00089 89 45 04 mov DWORD PTR blen$1[rbp], eax - -; 1732 : if (blen < n) { - - 0008c 8b 85 08 01 00 - 00 mov eax, DWORD PTR n$[rbp] - 00092 39 45 04 cmp DWORD PTR blen$1[rbp], eax - 00095 7d 43 jge SHORT $LN5@stbi__skip - -; 1733 : s->img_buffer = s->img_buffer_end; - - 00097 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 0009e 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000a5 48 8b 89 c8 00 - 00 00 mov rcx, QWORD PTR [rcx+200] - 000ac 48 89 88 c0 00 - 00 00 mov QWORD PTR [rax+192], rcx - -; 1734 : (s->io.skip)(s->io_user_data, n - blen); - - 000b3 8b 45 04 mov eax, DWORD PTR blen$1[rbp] - 000b6 8b 8d 08 01 00 - 00 mov ecx, DWORD PTR n$[rbp] - 000bc 2b c8 sub ecx, eax - 000be 8b c1 mov eax, ecx - 000c0 8b d0 mov edx, eax - 000c2 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 000c9 48 8b 48 28 mov rcx, QWORD PTR [rax+40] - 000cd 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 000d4 ff 50 18 call QWORD PTR [rax+24] - 000d7 90 npad 1 - -; 1735 : return; - - 000d8 eb 23 jmp SHORT $LN1@stbi__skip -$LN5@stbi__skip: -$LN4@stbi__skip: - -; 1736 : } -; 1737 : } -; 1738 : s->img_buffer += n; - - 000da 48 63 85 08 01 - 00 00 movsxd rax, DWORD PTR n$[rbp] - 000e1 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000e8 48 03 81 c0 00 - 00 00 add rax, QWORD PTR [rcx+192] - 000ef 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000f6 48 89 81 c0 00 - 00 00 mov QWORD PTR [rcx+192], rax -$LN1@stbi__skip: - -; 1739 : } - - 000fd 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00104 5f pop rdi - 00105 5d pop rbp - 00106 c3 ret 0 -stbi__skip ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__at_eof -_TEXT SEGMENT -tv76 = 192 -s$ = 240 -stbi__at_eof PROC ; COMDAT - -; 1703 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 1704 : if (s->io.read) { - - 00020 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 00027 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 - 0002c 74 31 je SHORT $LN2@stbi__at_e - -; 1705 : if (!(s->io.eof)(s->io_user_data)) - - 0002e 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 00035 48 8b 48 28 mov rcx, QWORD PTR [rax+40] - 00039 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 00040 ff 50 20 call QWORD PTR [rax+32] - 00043 85 c0 test eax, eax - 00045 75 04 jne SHORT $LN3@stbi__at_e - -; 1706 : return 0; - - 00047 33 c0 xor eax, eax - 00049 eb 4e jmp SHORT $LN1@stbi__at_e -$LN3@stbi__at_e: - -; 1707 : // if feof() is true, check if buffer = end -; 1708 : // special case: we've only got the special 0 character at the end -; 1709 : if (s->read_from_callbacks == 0) - - 0004b 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 00052 83 78 30 00 cmp DWORD PTR [rax+48], 0 - 00056 75 07 jne SHORT $LN4@stbi__at_e - -; 1710 : return 1; - - 00058 b8 01 00 00 00 mov eax, 1 - 0005d eb 3a jmp SHORT $LN1@stbi__at_e -$LN4@stbi__at_e: -$LN2@stbi__at_e: - -; 1711 : } -; 1712 : -; 1713 : return s->img_buffer >= s->img_buffer_end; - - 0005f 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 00066 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0006d 48 8b 89 c8 00 - 00 00 mov rcx, QWORD PTR [rcx+200] - 00074 48 39 88 c0 00 - 00 00 cmp QWORD PTR [rax+192], rcx - 0007b 72 0c jb SHORT $LN6@stbi__at_e - 0007d c7 85 c0 00 00 - 00 01 00 00 00 mov DWORD PTR tv76[rbp], 1 - 00087 eb 0a jmp SHORT $LN7@stbi__at_e -$LN6@stbi__at_e: - 00089 c7 85 c0 00 00 - 00 00 00 00 00 mov DWORD PTR tv76[rbp], 0 -$LN7@stbi__at_e: - 00093 8b 85 c0 00 00 - 00 mov eax, DWORD PTR tv76[rbp] -$LN1@stbi__at_e: - -; 1714 : } - - 00099 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 000a0 5f pop rdi - 000a1 5d pop rbp - 000a2 c3 ret 0 -stbi__at_eof ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__get8 -_TEXT SEGMENT -tv72 = 192 -tv81 = 192 -s$ = 240 -stbi__get8 PROC ; COMDAT - -; 1689 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 1690 : if (s->img_buffer < s->img_buffer_end) - - 00020 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 00027 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0002e 48 8b 89 c8 00 - 00 00 mov rcx, QWORD PTR [rcx+200] - 00035 48 39 88 c0 00 - 00 00 cmp QWORD PTR [rax+192], rcx - 0003c 73 3f jae SHORT $LN2@stbi__get8 - -; 1691 : return *s->img_buffer++; - - 0003e 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 00045 48 8b 80 c0 00 - 00 00 mov rax, QWORD PTR [rax+192] - 0004c 0f b6 00 movzx eax, BYTE PTR [rax] - 0004f 88 85 c0 00 00 - 00 mov BYTE PTR tv72[rbp], al - 00055 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 0005c 48 8b 80 c0 00 - 00 00 mov rax, QWORD PTR [rax+192] - 00063 48 ff c0 inc rax - 00066 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0006d 48 89 81 c0 00 - 00 00 mov QWORD PTR [rcx+192], rax - 00074 0f b6 85 c0 00 - 00 00 movzx eax, BYTE PTR tv72[rbp] - 0007b eb 5b jmp SHORT $LN1@stbi__get8 -$LN2@stbi__get8: - -; 1692 : if (s->read_from_callbacks) { - - 0007d 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 00084 83 78 30 00 cmp DWORD PTR [rax+48], 0 - 00088 74 4c je SHORT $LN3@stbi__get8 - -; 1693 : stbi__refill_buffer(s); - - 0008a 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00091 e8 00 00 00 00 call stbi__refill_buffer - 00096 90 npad 1 - -; 1694 : return *s->img_buffer++; - - 00097 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 0009e 48 8b 80 c0 00 - 00 00 mov rax, QWORD PTR [rax+192] - 000a5 0f b6 00 movzx eax, BYTE PTR [rax] - 000a8 88 85 c0 00 00 - 00 mov BYTE PTR tv81[rbp], al - 000ae 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 000b5 48 8b 80 c0 00 - 00 00 mov rax, QWORD PTR [rax+192] - 000bc 48 ff c0 inc rax - 000bf 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000c6 48 89 81 c0 00 - 00 00 mov QWORD PTR [rcx+192], rax - 000cd 0f b6 85 c0 00 - 00 00 movzx eax, BYTE PTR tv81[rbp] - 000d4 eb 02 jmp SHORT $LN1@stbi__get8 -$LN3@stbi__get8: - -; 1695 : } -; 1696 : return 0; - - 000d6 32 c0 xor al, al -$LN1@stbi__get8: - -; 1697 : } - - 000d8 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 000df 5f pop rdi - 000e0 5d pop rbp - 000e1 c3 ret 0 -stbi__get8 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__loadf_main -_TEXT SEGMENT -data$ = 8 -ri$4 = 40 -hdr_data$5 = 88 -tv89 = 292 -tv129 = 296 -__$ArrayPad$ = 304 -s$ = 352 -x$ = 360 -y$ = 368 -comp$ = 376 -req_comp$ = 384 -stbi__loadf_main PROC ; COMDAT - -; 1526 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 78 01 - 00 00 sub rsp, 376 ; 00000178H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00027 b9 22 00 00 00 mov ecx, 34 ; 00000022H - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 98 - 01 00 00 mov rcx, QWORD PTR [rsp+408] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 30 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 1527 : unsigned char *data; -; 1528 : #ifndef STBI_NO_HDR -; 1529 : if (stbi__hdr_test(s)) { - - 00059 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00060 e8 00 00 00 00 call stbi__hdr_test - 00065 85 c0 test eax, eax - 00067 74 71 je SHORT $LN2@stbi__load - -; 1530 : stbi__result_info ri; -; 1531 : float *hdr_data = stbi__hdr_load(s, x, y, comp, req_comp, &ri); - - 00069 48 8d 45 28 lea rax, QWORD PTR ri$4[rbp] - 0006d 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 00072 8b 85 80 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 00078 89 44 24 20 mov DWORD PTR [rsp+32], eax - 0007c 4c 8b 8d 78 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00083 4c 8b 85 70 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 0008a 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00091 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00098 e8 00 00 00 00 call stbi__hdr_load - 0009d 48 89 45 58 mov QWORD PTR hdr_data$5[rbp], rax - -; 1532 : if (hdr_data) - - 000a1 48 83 7d 58 00 cmp QWORD PTR hdr_data$5[rbp], 0 - 000a6 74 29 je SHORT $LN3@stbi__load - -; 1533 : stbi__float_postprocess(hdr_data, x, y, comp, req_comp); - - 000a8 8b 85 80 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 000ae 89 44 24 20 mov DWORD PTR [rsp+32], eax - 000b2 4c 8b 8d 78 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 000b9 4c 8b 85 70 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 000c0 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 000c7 48 8b 4d 58 mov rcx, QWORD PTR hdr_data$5[rbp] - 000cb e8 00 00 00 00 call stbi__float_postprocess - 000d0 90 npad 1 -$LN3@stbi__load: - -; 1534 : return hdr_data; - - 000d1 48 8b 45 58 mov rax, QWORD PTR hdr_data$5[rbp] - 000d5 e9 b0 00 00 00 jmp $LN1@stbi__load -$LN2@stbi__load: - -; 1535 : } -; 1536 : #endif -; 1537 : data = stbi__load_and_postprocess_8bit(s, x, y, comp, req_comp); - - 000da 8b 85 80 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 000e0 89 44 24 20 mov DWORD PTR [rsp+32], eax - 000e4 4c 8b 8d 78 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 000eb 4c 8b 85 70 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 000f2 48 8b 95 68 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 000f9 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00100 e8 00 00 00 00 call stbi__load_and_postprocess_8bit - 00105 48 89 45 08 mov QWORD PTR data$[rbp], rax - -; 1538 : if (data) - - 00109 48 83 7d 08 00 cmp QWORD PTR data$[rbp], 0 - 0010e 74 4b je SHORT $LN4@stbi__load - -; 1539 : return stbi__ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp); - - 00110 83 bd 80 01 00 - 00 00 cmp DWORD PTR req_comp$[rbp], 0 - 00117 74 0e je SHORT $LN6@stbi__load - 00119 8b 85 80 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 0011f 89 85 24 01 00 - 00 mov DWORD PTR tv89[rbp], eax - 00125 eb 0f jmp SHORT $LN7@stbi__load -$LN6@stbi__load: - 00127 48 8b 85 78 01 - 00 00 mov rax, QWORD PTR comp$[rbp] - 0012e 8b 00 mov eax, DWORD PTR [rax] - 00130 89 85 24 01 00 - 00 mov DWORD PTR tv89[rbp], eax -$LN7@stbi__load: - 00136 44 8b 8d 24 01 - 00 00 mov r9d, DWORD PTR tv89[rbp] - 0013d 48 8b 85 70 01 - 00 00 mov rax, QWORD PTR y$[rbp] - 00144 44 8b 00 mov r8d, DWORD PTR [rax] - 00147 48 8b 85 68 01 - 00 00 mov rax, QWORD PTR x$[rbp] - 0014e 8b 10 mov edx, DWORD PTR [rax] - 00150 48 8b 4d 08 mov rcx, QWORD PTR data$[rbp] - 00154 e8 00 00 00 00 call stbi__ldr_to_hdr - 00159 eb 2f jmp SHORT $LN1@stbi__load -$LN4@stbi__load: - -; 1540 : return stbi__errpf("unknown image type", "Image not of any known type, or corrupt"); - - 0015b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BD@CBEDEJPH@unknown?5image?5type@ - 00162 e8 00 00 00 00 call stbi__err - 00167 85 c0 test eax, eax - 00169 74 0d je SHORT $LN8@stbi__load - 0016b 48 c7 85 28 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv129[rbp], 0 - 00176 eb 0b jmp SHORT $LN9@stbi__load -$LN8@stbi__load: - 00178 48 c7 85 28 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv129[rbp], 0 -$LN9@stbi__load: - 00183 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR tv129[rbp] -$LN1@stbi__load: - -; 1541 : } - - 0018a 48 8b f8 mov rdi, rax - 0018d 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00191 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__loadf_main$rtcFrameData - 00198 e8 00 00 00 00 call _RTC_CheckStackVars - 0019d 48 8b c7 mov rax, rdi - 001a0 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 001a7 48 33 cd xor rcx, rbp - 001aa e8 00 00 00 00 call __security_check_cookie - 001af 48 8d a5 48 01 - 00 00 lea rsp, QWORD PTR [rbp+328] - 001b6 5f pop rdi - 001b7 5d pop rbp - 001b8 c3 ret 0 -stbi__loadf_main ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__fopen -_TEXT SEGMENT -f$ = 8 -__$ArrayPad$ = 216 -filename$ = 256 -mode$ = 264 -stbi__fopen PROC ; COMDAT - -; 1396 : { - - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 0001d b9 0a 00 00 00 mov ecx, 10 - 00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00027 f3 ab rep stosd - 00029 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 00031 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00038 48 33 c5 xor rax, rbp - 0003b 48 89 85 d8 00 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00042 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0004e 90 npad 1 - -; 1397 : FILE *f; -; 1398 : #if defined(_WIN32) && defined(STBI_WINDOWS_UTF8) -; 1399 : wchar_t wMode[64]; -; 1400 : wchar_t wFilename[1024]; -; 1401 : if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, filename, -1, wFilename, -; 1402 : sizeof(wFilename) / sizeof(*wFilename))) -; 1403 : return 0; -; 1404 : -; 1405 : if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, mode, -1, wMode, -; 1406 : sizeof(wMode) / sizeof(*wMode))) -; 1407 : return 0; -; 1408 : -; 1409 : #if defined(_MSC_VER) && _MSC_VER >= 1400 -; 1410 : if (0 != _wfopen_s(&f, wFilename, wMode)) -; 1411 : f = 0; -; 1412 : #else -; 1413 : f = _wfopen(wFilename, wMode); -; 1414 : #endif -; 1415 : -; 1416 : #elif defined(_MSC_VER) && _MSC_VER >= 1400 -; 1417 : if (0 != fopen_s(&f, filename, mode)) - - 0004f 4c 8b 85 08 01 - 00 00 mov r8, QWORD PTR mode$[rbp] - 00056 48 8b 95 00 01 - 00 00 mov rdx, QWORD PTR filename$[rbp] - 0005d 48 8d 4d 08 lea rcx, QWORD PTR f$[rbp] - 00061 ff 15 00 00 00 - 00 call QWORD PTR __imp_fopen_s - 00067 85 c0 test eax, eax - 00069 74 08 je SHORT $LN2@stbi__fope - -; 1418 : f = 0; - - 0006b 48 c7 45 08 00 - 00 00 00 mov QWORD PTR f$[rbp], 0 -$LN2@stbi__fope: - -; 1419 : #else -; 1420 : f = fopen(filename, mode); -; 1421 : #endif -; 1422 : return f; - - 00073 48 8b 45 08 mov rax, QWORD PTR f$[rbp] - -; 1423 : } - - 00077 48 8b f8 mov rdi, rax - 0007a 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0007e 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__fopen$rtcFrameData - 00085 e8 00 00 00 00 call _RTC_CheckStackVars - 0008a 48 8b c7 mov rax, rdi - 0008d 48 8b 8d d8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00094 48 33 cd xor rcx, rbp - 00097 e8 00 00 00 00 call __security_check_cookie - 0009c 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 000a3 5f pop rdi - 000a4 5d pop rbp - 000a5 c3 ret 0 -stbi__fopen ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__float_postprocess -_TEXT SEGMENT -channels$1 = 4 -tv77 = 212 -tv81 = 212 -result$ = 256 -x$ = 264 -y$ = 272 -comp$ = 280 -req_comp$ = 288 -stbi__float_postprocess PROC ; COMDAT - -; 1367 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 1368 : if (stbi__vertically_flip_on_load && result != NULL) { - - 0002f b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__vertically_flip_on_load_set - 00034 8b c0 mov eax, eax - 00036 8b 0d 00 00 00 - 00 mov ecx, DWORD PTR _tls_index - 0003c 65 48 8b 14 25 - 58 00 00 00 mov rdx, QWORD PTR gs:88 - 00045 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] - 00049 83 3c 08 00 cmp DWORD PTR [rax+rcx], 0 - 0004d 74 25 je SHORT $LN4@stbi__floa - 0004f b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__vertically_flip_on_load_local - 00054 8b c0 mov eax, eax - 00056 8b 0d 00 00 00 - 00 mov ecx, DWORD PTR _tls_index - 0005c 65 48 8b 14 25 - 58 00 00 00 mov rdx, QWORD PTR gs:88 - 00065 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] - 00069 8b 04 08 mov eax, DWORD PTR [rax+rcx] - 0006c 89 85 d4 00 00 - 00 mov DWORD PTR tv77[rbp], eax - 00072 eb 0c jmp SHORT $LN5@stbi__floa -$LN4@stbi__floa: - 00074 8b 05 00 00 00 - 00 mov eax, DWORD PTR stbi__vertically_flip_on_load_global - 0007a 89 85 d4 00 00 - 00 mov DWORD PTR tv77[rbp], eax -$LN5@stbi__floa: - 00080 83 bd d4 00 00 - 00 00 cmp DWORD PTR tv77[rbp], 0 - 00087 74 64 je SHORT $LN2@stbi__floa - 00089 48 83 bd 00 01 - 00 00 00 cmp QWORD PTR result$[rbp], 0 - 00091 74 5a je SHORT $LN2@stbi__floa - -; 1369 : int channels = req_comp ? req_comp : *comp; - - 00093 83 bd 20 01 00 - 00 00 cmp DWORD PTR req_comp$[rbp], 0 - 0009a 74 0e je SHORT $LN6@stbi__floa - 0009c 8b 85 20 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 000a2 89 85 d4 00 00 - 00 mov DWORD PTR tv81[rbp], eax - 000a8 eb 0f jmp SHORT $LN7@stbi__floa -$LN6@stbi__floa: - 000aa 48 8b 85 18 01 - 00 00 mov rax, QWORD PTR comp$[rbp] - 000b1 8b 00 mov eax, DWORD PTR [rax] - 000b3 89 85 d4 00 00 - 00 mov DWORD PTR tv81[rbp], eax -$LN7@stbi__floa: - 000b9 8b 85 d4 00 00 - 00 mov eax, DWORD PTR tv81[rbp] - 000bf 89 45 04 mov DWORD PTR channels$1[rbp], eax - -; 1370 : stbi__vertical_flip(result, *x, *y, channels * sizeof(float)); - - 000c2 48 63 45 04 movsxd rax, DWORD PTR channels$1[rbp] - 000c6 48 c1 e0 02 shl rax, 2 - 000ca 44 8b c8 mov r9d, eax - 000cd 48 8b 85 10 01 - 00 00 mov rax, QWORD PTR y$[rbp] - 000d4 44 8b 00 mov r8d, DWORD PTR [rax] - 000d7 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR x$[rbp] - 000de 8b 10 mov edx, DWORD PTR [rax] - 000e0 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR result$[rbp] - 000e7 e8 00 00 00 00 call stbi__vertical_flip - 000ec 90 npad 1 -$LN2@stbi__floa: - -; 1371 : } -; 1372 : } - - 000ed 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 000f4 5f pop rdi - 000f5 5d pop rbp - 000f6 c3 ret 0 -stbi__float_postprocess ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__load_and_postprocess_16bit -_TEXT SEGMENT -ri$ = 8 -result$ = 56 -channels$4 = 84 -tv82 = 292 -tv132 = 292 -tv135 = 292 -__$ArrayPad$ = 296 -s$ = 336 -x$ = 344 -y$ = 352 -comp$ = 360 -req_comp$ = 368 -stbi__load_and_postprocess_16bit PROC ; COMDAT - -; 1338 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 78 01 - 00 00 sub rsp, 376 ; 00000178H - 0001d 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00022 48 8d 7c 24 40 lea rdi, QWORD PTR [rsp+64] - 00027 b9 1e 00 00 00 mov ecx, 30 - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 98 - 01 00 00 mov rcx, QWORD PTR [rsp+408] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 28 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 1339 : stbi__result_info ri; -; 1340 : void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 16); - - 00059 c7 44 24 30 10 - 00 00 00 mov DWORD PTR [rsp+48], 16 - 00061 48 8d 45 08 lea rax, QWORD PTR ri$[rbp] - 00065 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 0006a 8b 85 70 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 00070 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00074 4c 8b 8d 68 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 0007b 4c 8b 85 60 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 00082 48 8b 95 58 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00089 48 8b 8d 50 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00090 e8 00 00 00 00 call stbi__load_main - 00095 48 89 45 38 mov QWORD PTR result$[rbp], rax - -; 1341 : -; 1342 : if (result == NULL) - - 00099 48 83 7d 38 00 cmp QWORD PTR result$[rbp], 0 - 0009e 75 07 jne SHORT $LN2@stbi__load - -; 1343 : return NULL; - - 000a0 33 c0 xor eax, eax - 000a2 e9 36 01 00 00 jmp $LN1@stbi__load -$LN2@stbi__load: - -; 1344 : -; 1345 : // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. -; 1346 : STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); - - 000a7 83 7d 08 08 cmp DWORD PTR ri$[rbp], 8 - 000ab 74 22 je SHORT $LN6@stbi__load - 000ad 83 7d 08 10 cmp DWORD PTR ri$[rbp], 16 - 000b1 74 1c je SHORT $LN6@stbi__load - 000b3 41 b8 42 05 00 - 00 mov r8d, 1346 ; 00000542H - 000b9 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ - 000c0 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1GM@LFNCFCEN@?$AAr?$AAi?$AA?4?$AAb?$AAi?$AAt?$AAs?$AA_?$AAp?$AAe?$AAr?$AA_?$AAc?$AAh?$AAa@ - 000c7 ff 15 00 00 00 - 00 call QWORD PTR __imp__wassert - 000cd 33 c0 xor eax, eax -$LN6@stbi__load: - -; 1347 : -; 1348 : if (ri.bits_per_channel != 16) { - - 000cf 83 7d 08 10 cmp DWORD PTR ri$[rbp], 16 - 000d3 74 54 je SHORT $LN3@stbi__load - -; 1349 : result = stbi__convert_8_to_16((stbi_uc *)result, *x, *y, - - 000d5 83 bd 70 01 00 - 00 00 cmp DWORD PTR req_comp$[rbp], 0 - 000dc 75 11 jne SHORT $LN7@stbi__load - 000de 48 8b 85 68 01 - 00 00 mov rax, QWORD PTR comp$[rbp] - 000e5 8b 00 mov eax, DWORD PTR [rax] - 000e7 89 85 24 01 00 - 00 mov DWORD PTR tv82[rbp], eax - 000ed eb 0c jmp SHORT $LN8@stbi__load -$LN7@stbi__load: - 000ef 8b 85 70 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 000f5 89 85 24 01 00 - 00 mov DWORD PTR tv82[rbp], eax -$LN8@stbi__load: - 000fb 44 8b 8d 24 01 - 00 00 mov r9d, DWORD PTR tv82[rbp] - 00102 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR y$[rbp] - 00109 44 8b 00 mov r8d, DWORD PTR [rax] - 0010c 48 8b 85 58 01 - 00 00 mov rax, QWORD PTR x$[rbp] - 00113 8b 10 mov edx, DWORD PTR [rax] - 00115 48 8b 4d 38 mov rcx, QWORD PTR result$[rbp] - 00119 e8 00 00 00 00 call stbi__convert_8_to_16 - 0011e 48 89 45 38 mov QWORD PTR result$[rbp], rax - -; 1350 : req_comp == 0 ? *comp : req_comp); -; 1351 : ri.bits_per_channel = 16; - - 00122 c7 45 08 10 00 - 00 00 mov DWORD PTR ri$[rbp], 16 -$LN3@stbi__load: - -; 1352 : } -; 1353 : -; 1354 : // @TODO: move stbi__convert_format16 to here -; 1355 : // @TODO: special case RGB-to-Y (and RGBA-to-YA) for 8-bit-to-16-bit case to keep more precision -; 1356 : -; 1357 : if (stbi__vertically_flip_on_load) { - - 00129 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__vertically_flip_on_load_set - 0012e 8b c0 mov eax, eax - 00130 8b 0d 00 00 00 - 00 mov ecx, DWORD PTR _tls_index - 00136 65 48 8b 14 25 - 58 00 00 00 mov rdx, QWORD PTR gs:88 - 0013f 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] - 00143 83 3c 08 00 cmp DWORD PTR [rax+rcx], 0 - 00147 74 25 je SHORT $LN9@stbi__load - 00149 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__vertically_flip_on_load_local - 0014e 8b c0 mov eax, eax - 00150 8b 0d 00 00 00 - 00 mov ecx, DWORD PTR _tls_index - 00156 65 48 8b 14 25 - 58 00 00 00 mov rdx, QWORD PTR gs:88 - 0015f 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] - 00163 8b 04 08 mov eax, DWORD PTR [rax+rcx] - 00166 89 85 24 01 00 - 00 mov DWORD PTR tv132[rbp], eax - 0016c eb 0c jmp SHORT $LN10@stbi__load -$LN9@stbi__load: - 0016e 8b 05 00 00 00 - 00 mov eax, DWORD PTR stbi__vertically_flip_on_load_global - 00174 89 85 24 01 00 - 00 mov DWORD PTR tv132[rbp], eax -$LN10@stbi__load: - 0017a 83 bd 24 01 00 - 00 00 cmp DWORD PTR tv132[rbp], 0 - 00181 74 56 je SHORT $LN4@stbi__load - -; 1358 : int channels = req_comp ? req_comp : *comp; - - 00183 83 bd 70 01 00 - 00 00 cmp DWORD PTR req_comp$[rbp], 0 - 0018a 74 0e je SHORT $LN11@stbi__load - 0018c 8b 85 70 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 00192 89 85 24 01 00 - 00 mov DWORD PTR tv135[rbp], eax - 00198 eb 0f jmp SHORT $LN12@stbi__load -$LN11@stbi__load: - 0019a 48 8b 85 68 01 - 00 00 mov rax, QWORD PTR comp$[rbp] - 001a1 8b 00 mov eax, DWORD PTR [rax] - 001a3 89 85 24 01 00 - 00 mov DWORD PTR tv135[rbp], eax -$LN12@stbi__load: - 001a9 8b 85 24 01 00 - 00 mov eax, DWORD PTR tv135[rbp] - 001af 89 45 54 mov DWORD PTR channels$4[rbp], eax - -; 1359 : stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi__uint16)); - - 001b2 48 63 45 54 movsxd rax, DWORD PTR channels$4[rbp] - 001b6 48 d1 e0 shl rax, 1 - 001b9 44 8b c8 mov r9d, eax - 001bc 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR y$[rbp] - 001c3 44 8b 00 mov r8d, DWORD PTR [rax] - 001c6 48 8b 85 58 01 - 00 00 mov rax, QWORD PTR x$[rbp] - 001cd 8b 10 mov edx, DWORD PTR [rax] - 001cf 48 8b 4d 38 mov rcx, QWORD PTR result$[rbp] - 001d3 e8 00 00 00 00 call stbi__vertical_flip - 001d8 90 npad 1 -$LN4@stbi__load: - -; 1360 : } -; 1361 : -; 1362 : return (stbi__uint16 *)result; - - 001d9 48 8b 45 38 mov rax, QWORD PTR result$[rbp] -$LN1@stbi__load: - -; 1363 : } - - 001dd 48 8b f8 mov rdi, rax - 001e0 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] - 001e4 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__load_and_postprocess_16bit$rtcFrameData - 001eb e8 00 00 00 00 call _RTC_CheckStackVars - 001f0 48 8b c7 mov rax, rdi - 001f3 48 8b 8d 28 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 001fa 48 33 cd xor rcx, rbp - 001fd e8 00 00 00 00 call __security_check_cookie - 00202 48 8d a5 38 01 - 00 00 lea rsp, QWORD PTR [rbp+312] - 00209 5f pop rdi - 0020a 5d pop rbp - 0020b c3 ret 0 -stbi__load_and_postprocess_16bit ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__load_and_postprocess_8bit -_TEXT SEGMENT -ri$ = 8 -result$ = 56 -channels$4 = 84 -tv82 = 292 -tv132 = 292 -tv135 = 292 -__$ArrayPad$ = 296 -s$ = 336 -x$ = 344 -y$ = 352 -comp$ = 360 -req_comp$ = 368 -stbi__load_and_postprocess_8bit PROC ; COMDAT - -; 1310 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 78 01 - 00 00 sub rsp, 376 ; 00000178H - 0001d 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00022 48 8d 7c 24 40 lea rdi, QWORD PTR [rsp+64] - 00027 b9 1e 00 00 00 mov ecx, 30 - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 98 - 01 00 00 mov rcx, QWORD PTR [rsp+408] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 28 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 1311 : stbi__result_info ri; -; 1312 : void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 8); - - 00059 c7 44 24 30 08 - 00 00 00 mov DWORD PTR [rsp+48], 8 - 00061 48 8d 45 08 lea rax, QWORD PTR ri$[rbp] - 00065 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 0006a 8b 85 70 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 00070 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00074 4c 8b 8d 68 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 0007b 4c 8b 85 60 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 00082 48 8b 95 58 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00089 48 8b 8d 50 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00090 e8 00 00 00 00 call stbi__load_main - 00095 48 89 45 38 mov QWORD PTR result$[rbp], rax - -; 1313 : -; 1314 : if (result == NULL) - - 00099 48 83 7d 38 00 cmp QWORD PTR result$[rbp], 0 - 0009e 75 07 jne SHORT $LN2@stbi__load - -; 1315 : return NULL; - - 000a0 33 c0 xor eax, eax - 000a2 e9 30 01 00 00 jmp $LN1@stbi__load -$LN2@stbi__load: - -; 1316 : -; 1317 : // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. -; 1318 : STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); - - 000a7 83 7d 08 08 cmp DWORD PTR ri$[rbp], 8 - 000ab 74 22 je SHORT $LN6@stbi__load - 000ad 83 7d 08 10 cmp DWORD PTR ri$[rbp], 16 - 000b1 74 1c je SHORT $LN6@stbi__load - 000b3 41 b8 26 05 00 - 00 mov r8d, 1318 ; 00000526H - 000b9 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ - 000c0 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1GM@LFNCFCEN@?$AAr?$AAi?$AA?4?$AAb?$AAi?$AAt?$AAs?$AA_?$AAp?$AAe?$AAr?$AA_?$AAc?$AAh?$AAa@ - 000c7 ff 15 00 00 00 - 00 call QWORD PTR __imp__wassert - 000cd 33 c0 xor eax, eax -$LN6@stbi__load: - -; 1319 : -; 1320 : if (ri.bits_per_channel != 8) { - - 000cf 83 7d 08 08 cmp DWORD PTR ri$[rbp], 8 - 000d3 74 54 je SHORT $LN3@stbi__load - -; 1321 : result = stbi__convert_16_to_8((stbi__uint16 *)result, *x, *y, - - 000d5 83 bd 70 01 00 - 00 00 cmp DWORD PTR req_comp$[rbp], 0 - 000dc 75 11 jne SHORT $LN7@stbi__load - 000de 48 8b 85 68 01 - 00 00 mov rax, QWORD PTR comp$[rbp] - 000e5 8b 00 mov eax, DWORD PTR [rax] - 000e7 89 85 24 01 00 - 00 mov DWORD PTR tv82[rbp], eax - 000ed eb 0c jmp SHORT $LN8@stbi__load -$LN7@stbi__load: - 000ef 8b 85 70 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 000f5 89 85 24 01 00 - 00 mov DWORD PTR tv82[rbp], eax -$LN8@stbi__load: - 000fb 44 8b 8d 24 01 - 00 00 mov r9d, DWORD PTR tv82[rbp] - 00102 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR y$[rbp] - 00109 44 8b 00 mov r8d, DWORD PTR [rax] - 0010c 48 8b 85 58 01 - 00 00 mov rax, QWORD PTR x$[rbp] - 00113 8b 10 mov edx, DWORD PTR [rax] - 00115 48 8b 4d 38 mov rcx, QWORD PTR result$[rbp] - 00119 e8 00 00 00 00 call stbi__convert_16_to_8 - 0011e 48 89 45 38 mov QWORD PTR result$[rbp], rax - -; 1322 : req_comp == 0 ? *comp : req_comp); -; 1323 : ri.bits_per_channel = 8; - - 00122 c7 45 08 08 00 - 00 00 mov DWORD PTR ri$[rbp], 8 -$LN3@stbi__load: - -; 1324 : } -; 1325 : -; 1326 : // @TODO: move stbi__convert_format to here -; 1327 : -; 1328 : if (stbi__vertically_flip_on_load) { - - 00129 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__vertically_flip_on_load_set - 0012e 8b c0 mov eax, eax - 00130 8b 0d 00 00 00 - 00 mov ecx, DWORD PTR _tls_index - 00136 65 48 8b 14 25 - 58 00 00 00 mov rdx, QWORD PTR gs:88 - 0013f 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] - 00143 83 3c 08 00 cmp DWORD PTR [rax+rcx], 0 - 00147 74 25 je SHORT $LN9@stbi__load - 00149 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__vertically_flip_on_load_local - 0014e 8b c0 mov eax, eax - 00150 8b 0d 00 00 00 - 00 mov ecx, DWORD PTR _tls_index - 00156 65 48 8b 14 25 - 58 00 00 00 mov rdx, QWORD PTR gs:88 - 0015f 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] - 00163 8b 04 08 mov eax, DWORD PTR [rax+rcx] - 00166 89 85 24 01 00 - 00 mov DWORD PTR tv132[rbp], eax - 0016c eb 0c jmp SHORT $LN10@stbi__load -$LN9@stbi__load: - 0016e 8b 05 00 00 00 - 00 mov eax, DWORD PTR stbi__vertically_flip_on_load_global - 00174 89 85 24 01 00 - 00 mov DWORD PTR tv132[rbp], eax -$LN10@stbi__load: - 0017a 83 bd 24 01 00 - 00 00 cmp DWORD PTR tv132[rbp], 0 - 00181 74 50 je SHORT $LN4@stbi__load - -; 1329 : int channels = req_comp ? req_comp : *comp; - - 00183 83 bd 70 01 00 - 00 00 cmp DWORD PTR req_comp$[rbp], 0 - 0018a 74 0e je SHORT $LN11@stbi__load - 0018c 8b 85 70 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 00192 89 85 24 01 00 - 00 mov DWORD PTR tv135[rbp], eax - 00198 eb 0f jmp SHORT $LN12@stbi__load -$LN11@stbi__load: - 0019a 48 8b 85 68 01 - 00 00 mov rax, QWORD PTR comp$[rbp] - 001a1 8b 00 mov eax, DWORD PTR [rax] - 001a3 89 85 24 01 00 - 00 mov DWORD PTR tv135[rbp], eax -$LN12@stbi__load: - 001a9 8b 85 24 01 00 - 00 mov eax, DWORD PTR tv135[rbp] - 001af 89 45 54 mov DWORD PTR channels$4[rbp], eax - -; 1330 : stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi_uc)); - - 001b2 44 8b 4d 54 mov r9d, DWORD PTR channels$4[rbp] - 001b6 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR y$[rbp] - 001bd 44 8b 00 mov r8d, DWORD PTR [rax] - 001c0 48 8b 85 58 01 - 00 00 mov rax, QWORD PTR x$[rbp] - 001c7 8b 10 mov edx, DWORD PTR [rax] - 001c9 48 8b 4d 38 mov rcx, QWORD PTR result$[rbp] - 001cd e8 00 00 00 00 call stbi__vertical_flip - 001d2 90 npad 1 -$LN4@stbi__load: - -; 1331 : } -; 1332 : -; 1333 : return (unsigned char *)result; - - 001d3 48 8b 45 38 mov rax, QWORD PTR result$[rbp] -$LN1@stbi__load: - -; 1334 : } - - 001d7 48 8b f8 mov rdi, rax - 001da 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] - 001de 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__load_and_postprocess_8bit$rtcFrameData - 001e5 e8 00 00 00 00 call _RTC_CheckStackVars - 001ea 48 8b c7 mov rax, rdi - 001ed 48 8b 8d 28 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 001f4 48 33 cd xor rcx, rbp - 001f7 e8 00 00 00 00 call __security_check_cookie - 001fc 48 8d a5 38 01 - 00 00 lea rsp, QWORD PTR [rbp+312] - 00203 5f pop rdi - 00204 5d pop rbp - 00205 c3 ret 0 -stbi__load_and_postprocess_8bit ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__vertical_flip_slices -_TEXT SEGMENT -slice$ = 4 -slice_size$ = 36 -bytes$ = 72 -image$ = 320 -w$ = 328 -h$ = 336 -z$ = 344 -bytes_per_pixel$ = 352 -stbi__vertical_flip_slices PROC ; COMDAT - -; 1296 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00013 55 push rbp - 00014 57 push rdi - 00015 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H - 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00021 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002d 90 npad 1 - -; 1297 : int slice; -; 1298 : int slice_size = w * h * bytes_per_pixel; - - 0002e 8b 85 48 01 00 - 00 mov eax, DWORD PTR w$[rbp] - 00034 0f af 85 50 01 - 00 00 imul eax, DWORD PTR h$[rbp] - 0003b 0f af 85 60 01 - 00 00 imul eax, DWORD PTR bytes_per_pixel$[rbp] - 00042 89 45 24 mov DWORD PTR slice_size$[rbp], eax - -; 1299 : -; 1300 : stbi_uc *bytes = (stbi_uc *)image; - - 00045 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR image$[rbp] - 0004c 48 89 45 48 mov QWORD PTR bytes$[rbp], rax - -; 1301 : for (slice = 0; slice < z; ++slice) { - - 00050 c7 45 04 00 00 - 00 00 mov DWORD PTR slice$[rbp], 0 - 00057 eb 08 jmp SHORT $LN4@stbi__vert -$LN2@stbi__vert: - 00059 8b 45 04 mov eax, DWORD PTR slice$[rbp] - 0005c ff c0 inc eax - 0005e 89 45 04 mov DWORD PTR slice$[rbp], eax -$LN4@stbi__vert: - 00061 8b 85 58 01 00 - 00 mov eax, DWORD PTR z$[rbp] - 00067 39 45 04 cmp DWORD PTR slice$[rbp], eax - 0006a 7d 32 jge SHORT $LN3@stbi__vert - -; 1302 : stbi__vertical_flip(bytes, w, h, bytes_per_pixel); - - 0006c 44 8b 8d 60 01 - 00 00 mov r9d, DWORD PTR bytes_per_pixel$[rbp] - 00073 44 8b 85 50 01 - 00 00 mov r8d, DWORD PTR h$[rbp] - 0007a 8b 95 48 01 00 - 00 mov edx, DWORD PTR w$[rbp] - 00080 48 8b 4d 48 mov rcx, QWORD PTR bytes$[rbp] - 00084 e8 00 00 00 00 call stbi__vertical_flip - 00089 90 npad 1 - -; 1303 : bytes += slice_size; - - 0008a 48 63 45 24 movsxd rax, DWORD PTR slice_size$[rbp] - 0008e 48 8b 4d 48 mov rcx, QWORD PTR bytes$[rbp] - 00092 48 03 c8 add rcx, rax - 00095 48 8b c1 mov rax, rcx - 00098 48 89 45 48 mov QWORD PTR bytes$[rbp], rax - -; 1304 : } - - 0009c eb bb jmp SHORT $LN2@stbi__vert -$LN3@stbi__vert: - -; 1305 : } - - 0009e 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 000a5 5f pop rdi - 000a6 5d pop rbp - 000a7 c3 ret 0 -stbi__vertical_flip_slices ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__vertical_flip -_TEXT SEGMENT -row$ = 4 -bytes_per_row$ = 40 -temp$ = 80 -bytes$ = 2152 -row0$4 = 2184 -row1$5 = 2216 -bytes_left$6 = 2248 -bytes_copy$7 = 2280 -tv80 = 3256 -__$ArrayPad$ = 3264 -image$ = 3312 -w$ = 3320 -h$ = 3328 -bytes_per_pixel$ = 3336 -stbi__vertical_flip PROC ; COMDAT - -; 1271 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00013 55 push rbp - 00014 57 push rdi - 00015 48 81 ec f8 0c - 00 00 sub rsp, 3320 ; 00000cf8H - 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00021 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00026 b9 46 02 00 00 mov ecx, 582 ; 00000246H - 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00030 f3 ab rep stosd - 00032 48 8b 8c 24 18 - 0d 00 00 mov rcx, QWORD PTR [rsp+3352] - 0003a 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00041 48 33 c5 xor rax, rbp - 00044 48 89 85 c0 0c - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00057 90 npad 1 - -; 1272 : int row; -; 1273 : size_t bytes_per_row = (size_t)w * bytes_per_pixel; - - 00058 48 63 85 f8 0c - 00 00 movsxd rax, DWORD PTR w$[rbp] - 0005f 48 63 8d 08 0d - 00 00 movsxd rcx, DWORD PTR bytes_per_pixel$[rbp] - 00066 48 0f af c1 imul rax, rcx - 0006a 48 89 45 28 mov QWORD PTR bytes_per_row$[rbp], rax - -; 1274 : stbi_uc temp[2048]; -; 1275 : stbi_uc *bytes = (stbi_uc *)image; - - 0006e 48 8b 85 f0 0c - 00 00 mov rax, QWORD PTR image$[rbp] - 00075 48 89 85 68 08 - 00 00 mov QWORD PTR bytes$[rbp], rax - -; 1276 : -; 1277 : for (row = 0; row < (h >> 1); row++) { - - 0007c c7 45 04 00 00 - 00 00 mov DWORD PTR row$[rbp], 0 - 00083 eb 08 jmp SHORT $LN4@stbi__vert -$LN2@stbi__vert: - 00085 8b 45 04 mov eax, DWORD PTR row$[rbp] - 00088 ff c0 inc eax - 0008a 89 45 04 mov DWORD PTR row$[rbp], eax -$LN4@stbi__vert: - 0008d 8b 85 00 0d 00 - 00 mov eax, DWORD PTR h$[rbp] - 00093 d1 f8 sar eax, 1 - 00095 39 45 04 cmp DWORD PTR row$[rbp], eax - 00098 0f 8d 3c 01 00 - 00 jge $LN3@stbi__vert - -; 1278 : stbi_uc *row0 = bytes + row * bytes_per_row; - - 0009e 48 63 45 04 movsxd rax, DWORD PTR row$[rbp] - 000a2 48 0f af 45 28 imul rax, QWORD PTR bytes_per_row$[rbp] - 000a7 48 8b 8d 68 08 - 00 00 mov rcx, QWORD PTR bytes$[rbp] - 000ae 48 03 c8 add rcx, rax - 000b1 48 8b c1 mov rax, rcx - 000b4 48 89 85 88 08 - 00 00 mov QWORD PTR row0$4[rbp], rax - -; 1279 : stbi_uc *row1 = bytes + (h - row - 1) * bytes_per_row; - - 000bb 8b 45 04 mov eax, DWORD PTR row$[rbp] - 000be 8b 8d 00 0d 00 - 00 mov ecx, DWORD PTR h$[rbp] - 000c4 2b c8 sub ecx, eax - 000c6 8b c1 mov eax, ecx - 000c8 ff c8 dec eax - 000ca 48 98 cdqe - 000cc 48 0f af 45 28 imul rax, QWORD PTR bytes_per_row$[rbp] - 000d1 48 8b 8d 68 08 - 00 00 mov rcx, QWORD PTR bytes$[rbp] - 000d8 48 03 c8 add rcx, rax - 000db 48 8b c1 mov rax, rcx - 000de 48 89 85 a8 08 - 00 00 mov QWORD PTR row1$5[rbp], rax - -; 1280 : // swap row0 with row1 -; 1281 : size_t bytes_left = bytes_per_row; - - 000e5 48 8b 45 28 mov rax, QWORD PTR bytes_per_row$[rbp] - 000e9 48 89 85 c8 08 - 00 00 mov QWORD PTR bytes_left$6[rbp], rax -$LN5@stbi__vert: - -; 1282 : while (bytes_left) { - - 000f0 48 83 bd c8 08 - 00 00 00 cmp QWORD PTR bytes_left$6[rbp], 0 - 000f8 0f 84 d7 00 00 - 00 je $LN6@stbi__vert - -; 1283 : size_t bytes_copy = (bytes_left < sizeof(temp)) ? bytes_left : sizeof(temp); - - 000fe 48 81 bd c8 08 - 00 00 00 08 00 - 00 cmp QWORD PTR bytes_left$6[rbp], 2048 ; 00000800H - 00109 73 10 jae SHORT $LN8@stbi__vert - 0010b 48 8b 85 c8 08 - 00 00 mov rax, QWORD PTR bytes_left$6[rbp] - 00112 48 89 85 b8 0c - 00 00 mov QWORD PTR tv80[rbp], rax - 00119 eb 0b jmp SHORT $LN9@stbi__vert -$LN8@stbi__vert: - 0011b 48 c7 85 b8 0c - 00 00 00 08 00 - 00 mov QWORD PTR tv80[rbp], 2048 ; 00000800H -$LN9@stbi__vert: - 00126 48 8b 85 b8 0c - 00 00 mov rax, QWORD PTR tv80[rbp] - 0012d 48 89 85 e8 08 - 00 00 mov QWORD PTR bytes_copy$7[rbp], rax - -; 1284 : memcpy(temp, row0, bytes_copy); - - 00134 4c 8b 85 e8 08 - 00 00 mov r8, QWORD PTR bytes_copy$7[rbp] - 0013b 48 8b 95 88 08 - 00 00 mov rdx, QWORD PTR row0$4[rbp] - 00142 48 8d 4d 50 lea rcx, QWORD PTR temp$[rbp] - 00146 e8 00 00 00 00 call memcpy - 0014b 90 npad 1 - -; 1285 : memcpy(row0, row1, bytes_copy); - - 0014c 4c 8b 85 e8 08 - 00 00 mov r8, QWORD PTR bytes_copy$7[rbp] - 00153 48 8b 95 a8 08 - 00 00 mov rdx, QWORD PTR row1$5[rbp] - 0015a 48 8b 8d 88 08 - 00 00 mov rcx, QWORD PTR row0$4[rbp] - 00161 e8 00 00 00 00 call memcpy - 00166 90 npad 1 - -; 1286 : memcpy(row1, temp, bytes_copy); - - 00167 4c 8b 85 e8 08 - 00 00 mov r8, QWORD PTR bytes_copy$7[rbp] - 0016e 48 8d 55 50 lea rdx, QWORD PTR temp$[rbp] - 00172 48 8b 8d a8 08 - 00 00 mov rcx, QWORD PTR row1$5[rbp] - 00179 e8 00 00 00 00 call memcpy - 0017e 90 npad 1 - -; 1287 : row0 += bytes_copy; - - 0017f 48 8b 85 e8 08 - 00 00 mov rax, QWORD PTR bytes_copy$7[rbp] - 00186 48 8b 8d 88 08 - 00 00 mov rcx, QWORD PTR row0$4[rbp] - 0018d 48 03 c8 add rcx, rax - 00190 48 8b c1 mov rax, rcx - 00193 48 89 85 88 08 - 00 00 mov QWORD PTR row0$4[rbp], rax - -; 1288 : row1 += bytes_copy; - - 0019a 48 8b 85 e8 08 - 00 00 mov rax, QWORD PTR bytes_copy$7[rbp] - 001a1 48 8b 8d a8 08 - 00 00 mov rcx, QWORD PTR row1$5[rbp] - 001a8 48 03 c8 add rcx, rax - 001ab 48 8b c1 mov rax, rcx - 001ae 48 89 85 a8 08 - 00 00 mov QWORD PTR row1$5[rbp], rax - -; 1289 : bytes_left -= bytes_copy; - - 001b5 48 8b 85 e8 08 - 00 00 mov rax, QWORD PTR bytes_copy$7[rbp] - 001bc 48 8b 8d c8 08 - 00 00 mov rcx, QWORD PTR bytes_left$6[rbp] - 001c3 48 2b c8 sub rcx, rax - 001c6 48 8b c1 mov rax, rcx - 001c9 48 89 85 c8 08 - 00 00 mov QWORD PTR bytes_left$6[rbp], rax - -; 1290 : } - - 001d0 e9 1b ff ff ff jmp $LN5@stbi__vert -$LN6@stbi__vert: - -; 1291 : } - - 001d5 e9 ab fe ff ff jmp $LN2@stbi__vert -$LN3@stbi__vert: - -; 1292 : } - - 001da 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 001de 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__vertical_flip$rtcFrameData - 001e5 e8 00 00 00 00 call _RTC_CheckStackVars - 001ea 48 8b 8d c0 0c - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 001f1 48 33 cd xor rcx, rbp - 001f4 e8 00 00 00 00 call __security_check_cookie - 001f9 48 8d a5 d8 0c - 00 00 lea rsp, QWORD PTR [rbp+3288] - 00200 5f pop rdi - 00201 5d pop rbp - 00202 c3 ret 0 -stbi__vertical_flip ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__convert_8_to_16 -_TEXT SEGMENT -i$ = 4 -img_len$ = 36 -enlarged$ = 72 -tv74 = 280 -orig$ = 320 -w$ = 328 -h$ = 336 -channels$ = 344 -stbi__convert_8_to_16 PROC ; COMDAT - -; 1252 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00013 55 push rbp - 00014 57 push rdi - 00015 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H - 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00021 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002d 90 npad 1 - -; 1253 : int i; -; 1254 : int img_len = w * h * channels; - - 0002e 8b 85 48 01 00 - 00 mov eax, DWORD PTR w$[rbp] - 00034 0f af 85 50 01 - 00 00 imul eax, DWORD PTR h$[rbp] - 0003b 0f af 85 58 01 - 00 00 imul eax, DWORD PTR channels$[rbp] - 00042 89 45 24 mov DWORD PTR img_len$[rbp], eax - -; 1255 : stbi__uint16 *enlarged; -; 1256 : -; 1257 : enlarged = (stbi__uint16 *)stbi__malloc(img_len * 2); - - 00045 8b 45 24 mov eax, DWORD PTR img_len$[rbp] - 00048 d1 e0 shl eax, 1 - 0004a 48 98 cdqe - 0004c 48 8b c8 mov rcx, rax - 0004f e8 00 00 00 00 call stbi__malloc - 00054 48 89 45 48 mov QWORD PTR enlarged$[rbp], rax - -; 1258 : if (enlarged == NULL) - - 00058 48 83 7d 48 00 cmp QWORD PTR enlarged$[rbp], 0 - 0005d 75 31 jne SHORT $LN5@stbi__conv - -; 1259 : return (stbi__uint16 *)stbi__errpuc("outofmem", "Out of memory"); - - 0005f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 00066 e8 00 00 00 00 call stbi__err - 0006b 85 c0 test eax, eax - 0006d 74 0d je SHORT $LN7@stbi__conv - 0006f 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv74[rbp], 0 - 0007a eb 0b jmp SHORT $LN8@stbi__conv -$LN7@stbi__conv: - 0007c 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv74[rbp], 0 -$LN8@stbi__conv: - 00087 48 8b 85 18 01 - 00 00 mov rax, QWORD PTR tv74[rbp] - 0008e eb 5c jmp SHORT $LN1@stbi__conv -$LN5@stbi__conv: - -; 1260 : -; 1261 : for (i = 0; i < img_len; ++i) - - 00090 c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00097 eb 08 jmp SHORT $LN4@stbi__conv -$LN2@stbi__conv: - 00099 8b 45 04 mov eax, DWORD PTR i$[rbp] - 0009c ff c0 inc eax - 0009e 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__conv: - 000a1 8b 45 24 mov eax, DWORD PTR img_len$[rbp] - 000a4 39 45 04 cmp DWORD PTR i$[rbp], eax - 000a7 7d 31 jge SHORT $LN3@stbi__conv - -; 1262 : enlarged[i] = - - 000a9 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 000ad 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR orig$[rbp] - 000b4 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 000b8 c1 e0 08 shl eax, 8 - 000bb 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] - 000bf 48 8b 95 40 01 - 00 00 mov rdx, QWORD PTR orig$[rbp] - 000c6 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] - 000ca 03 c1 add eax, ecx - 000cc 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] - 000d0 48 8b 55 48 mov rdx, QWORD PTR enlarged$[rbp] - 000d4 66 89 04 4a mov WORD PTR [rdx+rcx*2], ax - 000d8 eb bf jmp SHORT $LN2@stbi__conv -$LN3@stbi__conv: - -; 1263 : (stbi__uint16)((orig[i] << 8) + -; 1264 : orig[i]); // replicate to high and low byte, maps 0->0, 255->0xffff -; 1265 : -; 1266 : STBI_FREE(orig); - - 000da 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR orig$[rbp] - 000e1 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 000e7 90 npad 1 - -; 1267 : return enlarged; - - 000e8 48 8b 45 48 mov rax, QWORD PTR enlarged$[rbp] -$LN1@stbi__conv: - -; 1268 : } - - 000ec 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 000f3 5f pop rdi - 000f4 5d pop rbp - 000f5 c3 ret 0 -stbi__convert_8_to_16 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__convert_16_to_8 -_TEXT SEGMENT -i$ = 4 -img_len$ = 36 -reduced$ = 72 -tv73 = 280 -orig$ = 320 -w$ = 328 -h$ = 336 -channels$ = 344 -stbi__convert_16_to_8 PROC ; COMDAT - -; 1233 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00013 55 push rbp - 00014 57 push rdi - 00015 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H - 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00021 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002d 90 npad 1 - -; 1234 : int i; -; 1235 : int img_len = w * h * channels; - - 0002e 8b 85 48 01 00 - 00 mov eax, DWORD PTR w$[rbp] - 00034 0f af 85 50 01 - 00 00 imul eax, DWORD PTR h$[rbp] - 0003b 0f af 85 58 01 - 00 00 imul eax, DWORD PTR channels$[rbp] - 00042 89 45 24 mov DWORD PTR img_len$[rbp], eax - -; 1236 : stbi_uc *reduced; -; 1237 : -; 1238 : reduced = (stbi_uc *)stbi__malloc(img_len); - - 00045 48 63 45 24 movsxd rax, DWORD PTR img_len$[rbp] - 00049 48 8b c8 mov rcx, rax - 0004c e8 00 00 00 00 call stbi__malloc - 00051 48 89 45 48 mov QWORD PTR reduced$[rbp], rax - -; 1239 : if (reduced == NULL) - - 00055 48 83 7d 48 00 cmp QWORD PTR reduced$[rbp], 0 - 0005a 75 31 jne SHORT $LN5@stbi__conv - -; 1240 : return stbi__errpuc("outofmem", "Out of memory"); - - 0005c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 00063 e8 00 00 00 00 call stbi__err - 00068 85 c0 test eax, eax - 0006a 74 0d je SHORT $LN7@stbi__conv - 0006c 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv73[rbp], 0 - 00077 eb 0b jmp SHORT $LN8@stbi__conv -$LN7@stbi__conv: - 00079 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv73[rbp], 0 -$LN8@stbi__conv: - 00084 48 8b 85 18 01 - 00 00 mov rax, QWORD PTR tv73[rbp] - 0008b eb 4f jmp SHORT $LN1@stbi__conv -$LN5@stbi__conv: - -; 1241 : -; 1242 : for (i = 0; i < img_len; ++i) - - 0008d c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00094 eb 08 jmp SHORT $LN4@stbi__conv -$LN2@stbi__conv: - 00096 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00099 ff c0 inc eax - 0009b 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__conv: - 0009e 8b 45 24 mov eax, DWORD PTR img_len$[rbp] - 000a1 39 45 04 cmp DWORD PTR i$[rbp], eax - 000a4 7d 24 jge SHORT $LN3@stbi__conv - -; 1243 : reduced[i] = - - 000a6 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] - 000aa 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR orig$[rbp] - 000b1 0f b7 04 41 movzx eax, WORD PTR [rcx+rax*2] - 000b5 c1 f8 08 sar eax, 8 - 000b8 25 ff 00 00 00 and eax, 255 ; 000000ffH - 000bd 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] - 000c1 48 8b 55 48 mov rdx, QWORD PTR reduced$[rbp] - 000c5 88 04 0a mov BYTE PTR [rdx+rcx], al - 000c8 eb cc jmp SHORT $LN2@stbi__conv -$LN3@stbi__conv: - -; 1244 : (stbi_uc)((orig[i] >> 8) & -; 1245 : 0xFF); // top half of each byte is sufficient approx of 16->8 bit scaling -; 1246 : -; 1247 : STBI_FREE(orig); - - 000ca 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR orig$[rbp] - 000d1 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 000d7 90 npad 1 - -; 1248 : return reduced; - - 000d8 48 8b 45 48 mov rax, QWORD PTR reduced$[rbp] -$LN1@stbi__conv: - -; 1249 : } - - 000dc 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 000e3 5f pop rdi - 000e4 5d pop rbp - 000e5 c3 ret 0 -stbi__convert_16_to_8 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__load_main -_TEXT SEGMENT -hdr$1 = 8 -tv185 = 212 -tv203 = 216 -s$ = 256 -x$ = 264 -y$ = 272 -comp$ = 280 -req_comp$ = 288 -ri$ = 296 -bpc$ = 304 -stbi__load_main PROC ; COMDAT - -; 1172 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0001d 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 1173 : memset(ri, 0, sizeof(*ri)); // make sure it's initialized if we add new fields - - 0002f 41 b8 0c 00 00 - 00 mov r8d, 12 - 00035 33 d2 xor edx, edx - 00037 48 8b 8d 28 01 - 00 00 mov rcx, QWORD PTR ri$[rbp] - 0003e e8 00 00 00 00 call memset - 00043 90 npad 1 - -; 1174 : ri->bits_per_channel = 8; // default is 8 so most paths don't have to be changed - - 00044 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR ri$[rbp] - 0004b c7 00 08 00 00 - 00 mov DWORD PTR [rax], 8 - -; 1175 : ri->channel_order = - - 00051 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR ri$[rbp] - 00058 c7 40 08 00 00 - 00 00 mov DWORD PTR [rax+8], 0 - -; 1176 : STBI_ORDER_RGB; // all current input & output are this, but this is here so we can add BGR order -; 1177 : ri->num_channels = 0; - - 0005f 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR ri$[rbp] - 00066 c7 40 04 00 00 - 00 00 mov DWORD PTR [rax+4], 0 - -; 1178 : -; 1179 : // test the formats with a very explicit header first (at least a FOURCC -; 1180 : // or distinctive magic number first) -; 1181 : #ifndef STBI_NO_PNG -; 1182 : if (stbi__png_test(s)) - - 0006d 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00074 e8 00 00 00 00 call stbi__png_test - 00079 85 c0 test eax, eax - 0007b 74 3c je SHORT $LN2@stbi__load - -; 1183 : return stbi__png_load(s, x, y, comp, req_comp, ri); - - 0007d 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR ri$[rbp] - 00084 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 00089 8b 85 20 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 0008f 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00093 4c 8b 8d 18 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 0009a 4c 8b 85 10 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 000a1 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 000a8 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000af e8 00 00 00 00 call stbi__png_load - 000b4 e9 e4 02 00 00 jmp $LN1@stbi__load -$LN2@stbi__load: - -; 1184 : #endif -; 1185 : #ifndef STBI_NO_BMP -; 1186 : if (stbi__bmp_test(s)) - - 000b9 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000c0 e8 00 00 00 00 call stbi__bmp_test - 000c5 85 c0 test eax, eax - 000c7 74 3c je SHORT $LN3@stbi__load - -; 1187 : return stbi__bmp_load(s, x, y, comp, req_comp, ri); - - 000c9 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR ri$[rbp] - 000d0 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 000d5 8b 85 20 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 000db 89 44 24 20 mov DWORD PTR [rsp+32], eax - 000df 4c 8b 8d 18 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 000e6 4c 8b 85 10 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 000ed 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 000f4 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000fb e8 00 00 00 00 call stbi__bmp_load - 00100 e9 98 02 00 00 jmp $LN1@stbi__load -$LN3@stbi__load: - -; 1188 : #endif -; 1189 : #ifndef STBI_NO_GIF -; 1190 : if (stbi__gif_test(s)) - - 00105 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0010c e8 00 00 00 00 call stbi__gif_test - 00111 85 c0 test eax, eax - 00113 74 3c je SHORT $LN4@stbi__load - -; 1191 : return stbi__gif_load(s, x, y, comp, req_comp, ri); - - 00115 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR ri$[rbp] - 0011c 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 00121 8b 85 20 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 00127 89 44 24 20 mov DWORD PTR [rsp+32], eax - 0012b 4c 8b 8d 18 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00132 4c 8b 85 10 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 00139 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00140 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00147 e8 00 00 00 00 call stbi__gif_load - 0014c e9 4c 02 00 00 jmp $LN1@stbi__load -$LN4@stbi__load: - -; 1192 : #endif -; 1193 : #ifndef STBI_NO_PSD -; 1194 : if (stbi__psd_test(s)) - - 00151 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00158 e8 00 00 00 00 call stbi__psd_test - 0015d 85 c0 test eax, eax - 0015f 74 46 je SHORT $LN5@stbi__load - -; 1195 : return stbi__psd_load(s, x, y, comp, req_comp, ri, bpc); - - 00161 8b 85 30 01 00 - 00 mov eax, DWORD PTR bpc$[rbp] - 00167 89 44 24 30 mov DWORD PTR [rsp+48], eax - 0016b 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR ri$[rbp] - 00172 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 00177 8b 85 20 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 0017d 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00181 4c 8b 8d 18 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00188 4c 8b 85 10 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 0018f 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00196 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0019d e8 00 00 00 00 call stbi__psd_load - 001a2 e9 f6 01 00 00 jmp $LN1@stbi__load -$LN5@stbi__load: - -; 1196 : #else -; 1197 : STBI_NOTUSED(bpc); -; 1198 : #endif -; 1199 : #ifndef STBI_NO_PIC -; 1200 : if (stbi__pic_test(s)) - - 001a7 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001ae e8 00 00 00 00 call stbi__pic_test - 001b3 85 c0 test eax, eax - 001b5 74 3c je SHORT $LN6@stbi__load - -; 1201 : return stbi__pic_load(s, x, y, comp, req_comp, ri); - - 001b7 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR ri$[rbp] - 001be 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 001c3 8b 85 20 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 001c9 89 44 24 20 mov DWORD PTR [rsp+32], eax - 001cd 4c 8b 8d 18 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 001d4 4c 8b 85 10 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 001db 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 001e2 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001e9 e8 00 00 00 00 call stbi__pic_load - 001ee e9 aa 01 00 00 jmp $LN1@stbi__load -$LN6@stbi__load: - -; 1202 : #endif -; 1203 : -; 1204 : // then the formats that can end up attempting to load with just 1 or 2 -; 1205 : // bytes matching expectations; these are prone to false positives, so -; 1206 : // try them later -; 1207 : #ifndef STBI_NO_JPEG -; 1208 : if (stbi__jpeg_test(s)) - - 001f3 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001fa e8 00 00 00 00 call stbi__jpeg_test - 001ff 85 c0 test eax, eax - 00201 74 3c je SHORT $LN7@stbi__load - -; 1209 : return stbi__jpeg_load(s, x, y, comp, req_comp, ri); - - 00203 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR ri$[rbp] - 0020a 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 0020f 8b 85 20 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 00215 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00219 4c 8b 8d 18 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00220 4c 8b 85 10 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 00227 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 0022e 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00235 e8 00 00 00 00 call stbi__jpeg_load - 0023a e9 5e 01 00 00 jmp $LN1@stbi__load -$LN7@stbi__load: - -; 1210 : #endif -; 1211 : #ifndef STBI_NO_PNM -; 1212 : if (stbi__pnm_test(s)) - - 0023f 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00246 e8 00 00 00 00 call stbi__pnm_test - 0024b 85 c0 test eax, eax - 0024d 74 3c je SHORT $LN8@stbi__load - -; 1213 : return stbi__pnm_load(s, x, y, comp, req_comp, ri); - - 0024f 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR ri$[rbp] - 00256 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 0025b 8b 85 20 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 00261 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00265 4c 8b 8d 18 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 0026c 4c 8b 85 10 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 00273 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 0027a 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00281 e8 00 00 00 00 call stbi__pnm_load - 00286 e9 12 01 00 00 jmp $LN1@stbi__load -$LN8@stbi__load: - -; 1214 : #endif -; 1215 : -; 1216 : #ifndef STBI_NO_HDR -; 1217 : if (stbi__hdr_test(s)) { - - 0028b 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00292 e8 00 00 00 00 call stbi__hdr_test - 00297 85 c0 test eax, eax - 00299 0f 84 86 00 00 - 00 je $LN9@stbi__load - -; 1218 : float *hdr = stbi__hdr_load(s, x, y, comp, req_comp, ri); - - 0029f 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR ri$[rbp] - 002a6 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 002ab 8b 85 20 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 002b1 89 44 24 20 mov DWORD PTR [rsp+32], eax - 002b5 4c 8b 8d 18 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 002bc 4c 8b 85 10 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 002c3 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 002ca 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 002d1 e8 00 00 00 00 call stbi__hdr_load - 002d6 48 89 45 08 mov QWORD PTR hdr$1[rbp], rax - -; 1219 : return stbi__hdr_to_ldr(hdr, *x, *y, req_comp ? req_comp : *comp); - - 002da 83 bd 20 01 00 - 00 00 cmp DWORD PTR req_comp$[rbp], 0 - 002e1 74 0e je SHORT $LN12@stbi__load - 002e3 8b 85 20 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 002e9 89 85 d4 00 00 - 00 mov DWORD PTR tv185[rbp], eax - 002ef eb 0f jmp SHORT $LN13@stbi__load -$LN12@stbi__load: - 002f1 48 8b 85 18 01 - 00 00 mov rax, QWORD PTR comp$[rbp] - 002f8 8b 00 mov eax, DWORD PTR [rax] - 002fa 89 85 d4 00 00 - 00 mov DWORD PTR tv185[rbp], eax -$LN13@stbi__load: - 00300 44 8b 8d d4 00 - 00 00 mov r9d, DWORD PTR tv185[rbp] - 00307 48 8b 85 10 01 - 00 00 mov rax, QWORD PTR y$[rbp] - 0030e 44 8b 00 mov r8d, DWORD PTR [rax] - 00311 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR x$[rbp] - 00318 8b 10 mov edx, DWORD PTR [rax] - 0031a 48 8b 4d 08 mov rcx, QWORD PTR hdr$1[rbp] - 0031e e8 00 00 00 00 call stbi__hdr_to_ldr - 00323 eb 78 jmp SHORT $LN1@stbi__load -$LN9@stbi__load: - -; 1220 : } -; 1221 : #endif -; 1222 : -; 1223 : #ifndef STBI_NO_TGA -; 1224 : // test tga last because it's a crappy test! -; 1225 : if (stbi__tga_test(s)) - - 00325 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0032c e8 00 00 00 00 call stbi__tga_test - 00331 85 c0 test eax, eax - 00333 74 39 je SHORT $LN10@stbi__load - -; 1226 : return stbi__tga_load(s, x, y, comp, req_comp, ri); - - 00335 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR ri$[rbp] - 0033c 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 00341 8b 85 20 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 00347 89 44 24 20 mov DWORD PTR [rsp+32], eax - 0034b 4c 8b 8d 18 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00352 4c 8b 85 10 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 00359 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00360 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00367 e8 00 00 00 00 call stbi__tga_load - 0036c eb 2f jmp SHORT $LN1@stbi__load -$LN10@stbi__load: - -; 1227 : #endif -; 1228 : -; 1229 : return stbi__errpuc("unknown image type", "Image not of any known type, or corrupt"); - - 0036e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BD@CBEDEJPH@unknown?5image?5type@ - 00375 e8 00 00 00 00 call stbi__err - 0037a 85 c0 test eax, eax - 0037c 74 0d je SHORT $LN14@stbi__load - 0037e 48 c7 85 d8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv203[rbp], 0 - 00389 eb 0b jmp SHORT $LN15@stbi__load -$LN14@stbi__load: - 0038b 48 c7 85 d8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv203[rbp], 0 -$LN15@stbi__load: - 00396 48 8b 85 d8 00 - 00 00 mov rax, QWORD PTR tv203[rbp] -$LN1@stbi__load: - -; 1230 : } - - 0039d 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 003a4 5f pop rdi - 003a5 5d pop rbp - 003a6 c3 ret 0 -stbi__load_main ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__hdr_to_ldr -_TEXT SEGMENT -i$ = 4 -k$ = 36 -n$ = 68 -output$ = 104 -z$1 = 132 -z$2 = 164 -tv75 = 376 -tv93 = 376 -data$ = 416 -x$ = 424 -y$ = 432 -comp$ = 440 -stbi__hdr_to_ldr PROC ; COMDAT - -; 2110 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00013 55 push rbp - 00014 57 push rdi - 00015 48 81 ec a8 01 - 00 00 sub rsp, 424 ; 000001a8H - 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00021 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002d 90 npad 1 - -; 2111 : int i, k, n; -; 2112 : stbi_uc *output; -; 2113 : if (!data) - - 0002e 48 83 bd a0 01 - 00 00 00 cmp QWORD PTR data$[rbp], 0 - 00036 75 07 jne SHORT $LN8@stbi__hdr_ - -; 2114 : return NULL; - - 00038 33 c0 xor eax, eax - 0003a e9 3e 02 00 00 jmp $LN1@stbi__hdr_ -$LN8@stbi__hdr_: - -; 2115 : output = (stbi_uc *)stbi__malloc_mad3(x, y, comp, 0); - - 0003f 45 33 c9 xor r9d, r9d - 00042 44 8b 85 b8 01 - 00 00 mov r8d, DWORD PTR comp$[rbp] - 00049 8b 95 b0 01 00 - 00 mov edx, DWORD PTR y$[rbp] - 0004f 8b 8d a8 01 00 - 00 mov ecx, DWORD PTR x$[rbp] - 00055 e8 00 00 00 00 call stbi__malloc_mad3 - 0005a 48 89 45 68 mov QWORD PTR output$[rbp], rax - -; 2116 : if (output == NULL) { - - 0005e 48 83 7d 68 00 cmp QWORD PTR output$[rbp], 0 - 00063 75 42 jne SHORT $LN9@stbi__hdr_ - -; 2117 : STBI_FREE(data); - - 00065 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR data$[rbp] - 0006c ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00072 90 npad 1 - -; 2118 : return stbi__errpuc("outofmem", "Out of memory"); - - 00073 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 0007a e8 00 00 00 00 call stbi__err - 0007f 85 c0 test eax, eax - 00081 74 0d je SHORT $LN18@stbi__hdr_ - 00083 48 c7 85 78 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv75[rbp], 0 - 0008e eb 0b jmp SHORT $LN19@stbi__hdr_ -$LN18@stbi__hdr_: - 00090 48 c7 85 78 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv75[rbp], 0 -$LN19@stbi__hdr_: - 0009b 48 8b 85 78 01 - 00 00 mov rax, QWORD PTR tv75[rbp] - 000a2 e9 d6 01 00 00 jmp $LN1@stbi__hdr_ -$LN9@stbi__hdr_: - -; 2119 : } -; 2120 : // compute number of non-alpha components -; 2121 : if (comp & 1) - - 000a7 8b 85 b8 01 00 - 00 mov eax, DWORD PTR comp$[rbp] - 000ad 83 e0 01 and eax, 1 - 000b0 85 c0 test eax, eax - 000b2 74 0b je SHORT $LN10@stbi__hdr_ - -; 2122 : n = comp; - - 000b4 8b 85 b8 01 00 - 00 mov eax, DWORD PTR comp$[rbp] - 000ba 89 45 44 mov DWORD PTR n$[rbp], eax - 000bd eb 0b jmp SHORT $LN11@stbi__hdr_ -$LN10@stbi__hdr_: - -; 2123 : else -; 2124 : n = comp - 1; - - 000bf 8b 85 b8 01 00 - 00 mov eax, DWORD PTR comp$[rbp] - 000c5 ff c8 dec eax - 000c7 89 45 44 mov DWORD PTR n$[rbp], eax -$LN11@stbi__hdr_: - -; 2125 : for (i = 0; i < x * y; ++i) { - - 000ca c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 000d1 eb 08 jmp SHORT $LN4@stbi__hdr_ -$LN2@stbi__hdr_: - 000d3 8b 45 04 mov eax, DWORD PTR i$[rbp] - 000d6 ff c0 inc eax - 000d8 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__hdr_: - 000db 8b 85 a8 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 000e1 0f af 85 b0 01 - 00 00 imul eax, DWORD PTR y$[rbp] - 000e8 39 45 04 cmp DWORD PTR i$[rbp], eax - 000eb 0f 8d 7a 01 00 - 00 jge $LN3@stbi__hdr_ - -; 2126 : for (k = 0; k < n; ++k) { - - 000f1 c7 45 24 00 00 - 00 00 mov DWORD PTR k$[rbp], 0 - 000f8 eb 08 jmp SHORT $LN7@stbi__hdr_ -$LN5@stbi__hdr_: - 000fa 8b 45 24 mov eax, DWORD PTR k$[rbp] - 000fd ff c0 inc eax - 000ff 89 45 24 mov DWORD PTR k$[rbp], eax -$LN7@stbi__hdr_: - 00102 8b 45 44 mov eax, DWORD PTR n$[rbp] - 00105 39 45 24 cmp DWORD PTR k$[rbp], eax - 00108 0f 8d bf 00 00 - 00 jge $LN6@stbi__hdr_ - -; 2127 : float z = (float)pow(data[i * comp + k] * stbi__h2l_scale_i, - - 0010e f3 0f 5a 05 00 - 00 00 00 cvtss2sd xmm0, DWORD PTR stbi__h2l_gamma_i - 00116 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00119 0f af 85 b8 01 - 00 00 imul eax, DWORD PTR comp$[rbp] - 00120 03 45 24 add eax, DWORD PTR k$[rbp] - 00123 48 98 cdqe - 00125 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR data$[rbp] - 0012c f3 0f 10 0c 81 movss xmm1, DWORD PTR [rcx+rax*4] - 00131 f3 0f 59 0d 00 - 00 00 00 mulss xmm1, DWORD PTR stbi__h2l_scale_i - 00139 f3 0f 5a c9 cvtss2sd xmm1, xmm1 - 0013d f2 0f 11 8d 78 - 01 00 00 movsd QWORD PTR tv93[rbp], xmm1 - 00145 0f 28 c8 movaps xmm1, xmm0 - 00148 f2 0f 10 85 78 - 01 00 00 movsd xmm0, QWORD PTR tv93[rbp] - 00150 e8 00 00 00 00 call pow - 00155 f2 0f 5a c0 cvtsd2ss xmm0, xmm0 - 00159 f3 0f 59 05 00 - 00 00 00 mulss xmm0, DWORD PTR __real@437f0000 - 00161 f3 0f 58 05 00 - 00 00 00 addss xmm0, DWORD PTR __real@3f000000 - 00169 f3 0f 11 85 84 - 00 00 00 movss DWORD PTR z$1[rbp], xmm0 - -; 2128 : stbi__h2l_gamma_i) * -; 2129 : 255 + -; 2130 : 0.5f; -; 2131 : if (z < 0) - - 00171 0f 57 c0 xorps xmm0, xmm0 - 00174 0f 2f 85 84 00 - 00 00 comiss xmm0, DWORD PTR z$1[rbp] - 0017b 76 0b jbe SHORT $LN12@stbi__hdr_ - -; 2132 : z = 0; - - 0017d 0f 57 c0 xorps xmm0, xmm0 - 00180 f3 0f 11 85 84 - 00 00 00 movss DWORD PTR z$1[rbp], xmm0 -$LN12@stbi__hdr_: - -; 2133 : if (z > 255) - - 00188 f3 0f 10 85 84 - 00 00 00 movss xmm0, DWORD PTR z$1[rbp] - 00190 0f 2f 05 00 00 - 00 00 comiss xmm0, DWORD PTR __real@437f0000 - 00197 76 10 jbe SHORT $LN13@stbi__hdr_ - -; 2134 : z = 255; - - 00199 f3 0f 10 05 00 - 00 00 00 movss xmm0, DWORD PTR __real@437f0000 - 001a1 f3 0f 11 85 84 - 00 00 00 movss DWORD PTR z$1[rbp], xmm0 -$LN13@stbi__hdr_: - -; 2135 : output[i * comp + k] = (stbi_uc)stbi__float2int(z); - - 001a9 f3 0f 2c 85 84 - 00 00 00 cvttss2si eax, DWORD PTR z$1[rbp] - 001b1 8b 4d 04 mov ecx, DWORD PTR i$[rbp] - 001b4 0f af 8d b8 01 - 00 00 imul ecx, DWORD PTR comp$[rbp] - 001bb 03 4d 24 add ecx, DWORD PTR k$[rbp] - 001be 48 63 c9 movsxd rcx, ecx - 001c1 48 8b 55 68 mov rdx, QWORD PTR output$[rbp] - 001c5 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 2136 : } - - 001c8 e9 2d ff ff ff jmp $LN5@stbi__hdr_ -$LN6@stbi__hdr_: - -; 2137 : if (k < comp) { - - 001cd 8b 85 b8 01 00 - 00 mov eax, DWORD PTR comp$[rbp] - 001d3 39 45 24 cmp DWORD PTR k$[rbp], eax - 001d6 0f 8d 8a 00 00 - 00 jge $LN14@stbi__hdr_ - -; 2138 : float z = data[i * comp + k] * 255 + 0.5f; - - 001dc 8b 45 04 mov eax, DWORD PTR i$[rbp] - 001df 0f af 85 b8 01 - 00 00 imul eax, DWORD PTR comp$[rbp] - 001e6 03 45 24 add eax, DWORD PTR k$[rbp] - 001e9 48 98 cdqe - 001eb 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR data$[rbp] - 001f2 f3 0f 10 04 81 movss xmm0, DWORD PTR [rcx+rax*4] - 001f7 f3 0f 59 05 00 - 00 00 00 mulss xmm0, DWORD PTR __real@437f0000 - 001ff f3 0f 58 05 00 - 00 00 00 addss xmm0, DWORD PTR __real@3f000000 - 00207 f3 0f 11 85 a4 - 00 00 00 movss DWORD PTR z$2[rbp], xmm0 - -; 2139 : if (z < 0) - - 0020f 0f 57 c0 xorps xmm0, xmm0 - 00212 0f 2f 85 a4 00 - 00 00 comiss xmm0, DWORD PTR z$2[rbp] - 00219 76 0b jbe SHORT $LN15@stbi__hdr_ - -; 2140 : z = 0; - - 0021b 0f 57 c0 xorps xmm0, xmm0 - 0021e f3 0f 11 85 a4 - 00 00 00 movss DWORD PTR z$2[rbp], xmm0 -$LN15@stbi__hdr_: - -; 2141 : if (z > 255) - - 00226 f3 0f 10 85 a4 - 00 00 00 movss xmm0, DWORD PTR z$2[rbp] - 0022e 0f 2f 05 00 00 - 00 00 comiss xmm0, DWORD PTR __real@437f0000 - 00235 76 10 jbe SHORT $LN16@stbi__hdr_ - -; 2142 : z = 255; - - 00237 f3 0f 10 05 00 - 00 00 00 movss xmm0, DWORD PTR __real@437f0000 - 0023f f3 0f 11 85 a4 - 00 00 00 movss DWORD PTR z$2[rbp], xmm0 -$LN16@stbi__hdr_: - -; 2143 : output[i * comp + k] = (stbi_uc)stbi__float2int(z); - - 00247 f3 0f 2c 85 a4 - 00 00 00 cvttss2si eax, DWORD PTR z$2[rbp] - 0024f 8b 4d 04 mov ecx, DWORD PTR i$[rbp] - 00252 0f af 8d b8 01 - 00 00 imul ecx, DWORD PTR comp$[rbp] - 00259 03 4d 24 add ecx, DWORD PTR k$[rbp] - 0025c 48 63 c9 movsxd rcx, ecx - 0025f 48 8b 55 68 mov rdx, QWORD PTR output$[rbp] - 00263 88 04 0a mov BYTE PTR [rdx+rcx], al -$LN14@stbi__hdr_: - -; 2144 : } -; 2145 : } - - 00266 e9 68 fe ff ff jmp $LN2@stbi__hdr_ -$LN3@stbi__hdr_: - -; 2146 : STBI_FREE(data); - - 0026b 48 8b 8d a0 01 - 00 00 mov rcx, QWORD PTR data$[rbp] - 00272 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00278 90 npad 1 - -; 2147 : return output; - - 00279 48 8b 45 68 mov rax, QWORD PTR output$[rbp] -$LN1@stbi__hdr_: - -; 2148 : } - - 0027d 48 8d a5 88 01 - 00 00 lea rsp, QWORD PTR [rbp+392] - 00284 5f pop rdi - 00285 5d pop rbp - 00286 c3 ret 0 -stbi__hdr_to_ldr ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__ldr_to_hdr -_TEXT SEGMENT -i$ = 4 -k$ = 36 -n$ = 68 -output$ = 104 -tv76 = 312 -tv133 = 312 -data$ = 352 -x$ = 360 -y$ = 368 -comp$ = 376 -stbi__ldr_to_hdr PROC ; COMDAT - -; 2075 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00013 55 push rbp - 00014 57 push rdi - 00015 48 81 ec 78 01 - 00 00 sub rsp, 376 ; 00000178H - 0001c 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00021 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002d 90 npad 1 - -; 2076 : int i, k, n; -; 2077 : float *output; -; 2078 : if (!data) - - 0002e 48 83 bd 60 01 - 00 00 00 cmp QWORD PTR data$[rbp], 0 - 00036 75 07 jne SHORT $LN11@stbi__ldr_ - -; 2079 : return NULL; - - 00038 33 c0 xor eax, eax - 0003a e9 d2 01 00 00 jmp $LN1@stbi__ldr_ -$LN11@stbi__ldr_: - -; 2080 : output = (float *)stbi__malloc_mad4(x, y, comp, sizeof(float), 0); - - 0003f c7 44 24 20 00 - 00 00 00 mov DWORD PTR [rsp+32], 0 - 00047 41 b9 04 00 00 - 00 mov r9d, 4 - 0004d 44 8b 85 78 01 - 00 00 mov r8d, DWORD PTR comp$[rbp] - 00054 8b 95 70 01 00 - 00 mov edx, DWORD PTR y$[rbp] - 0005a 8b 8d 68 01 00 - 00 mov ecx, DWORD PTR x$[rbp] - 00060 e8 00 00 00 00 call stbi__malloc_mad4 - 00065 48 89 45 68 mov QWORD PTR output$[rbp], rax - -; 2081 : if (output == NULL) { - - 00069 48 83 7d 68 00 cmp QWORD PTR output$[rbp], 0 - 0006e 75 42 jne SHORT $LN12@stbi__ldr_ - -; 2082 : STBI_FREE(data); - - 00070 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR data$[rbp] - 00077 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 0007d 90 npad 1 - -; 2083 : return stbi__errpf("outofmem", "Out of memory"); - - 0007e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 00085 e8 00 00 00 00 call stbi__err - 0008a 85 c0 test eax, eax - 0008c 74 0d je SHORT $LN17@stbi__ldr_ - 0008e 48 c7 85 38 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv76[rbp], 0 - 00099 eb 0b jmp SHORT $LN18@stbi__ldr_ -$LN17@stbi__ldr_: - 0009b 48 c7 85 38 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv76[rbp], 0 -$LN18@stbi__ldr_: - 000a6 48 8b 85 38 01 - 00 00 mov rax, QWORD PTR tv76[rbp] - 000ad e9 5f 01 00 00 jmp $LN1@stbi__ldr_ -$LN12@stbi__ldr_: - -; 2084 : } -; 2085 : // compute number of non-alpha components -; 2086 : if (comp & 1) - - 000b2 8b 85 78 01 00 - 00 mov eax, DWORD PTR comp$[rbp] - 000b8 83 e0 01 and eax, 1 - 000bb 85 c0 test eax, eax - 000bd 74 0b je SHORT $LN13@stbi__ldr_ - -; 2087 : n = comp; - - 000bf 8b 85 78 01 00 - 00 mov eax, DWORD PTR comp$[rbp] - 000c5 89 45 44 mov DWORD PTR n$[rbp], eax - 000c8 eb 0b jmp SHORT $LN14@stbi__ldr_ -$LN13@stbi__ldr_: - -; 2088 : else -; 2089 : n = comp - 1; - - 000ca 8b 85 78 01 00 - 00 mov eax, DWORD PTR comp$[rbp] - 000d0 ff c8 dec eax - 000d2 89 45 44 mov DWORD PTR n$[rbp], eax -$LN14@stbi__ldr_: - -; 2090 : for (i = 0; i < x * y; ++i) { - - 000d5 c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 000dc eb 08 jmp SHORT $LN4@stbi__ldr_ -$LN2@stbi__ldr_: - 000de 8b 45 04 mov eax, DWORD PTR i$[rbp] - 000e1 ff c0 inc eax - 000e3 89 45 04 mov DWORD PTR i$[rbp], eax -$LN4@stbi__ldr_: - 000e6 8b 85 68 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 000ec 0f af 85 70 01 - 00 00 imul eax, DWORD PTR y$[rbp] - 000f3 39 45 04 cmp DWORD PTR i$[rbp], eax - 000f6 0f 8d 95 00 00 - 00 jge $LN3@stbi__ldr_ - -; 2091 : for (k = 0; k < n; ++k) { - - 000fc c7 45 24 00 00 - 00 00 mov DWORD PTR k$[rbp], 0 - 00103 eb 08 jmp SHORT $LN7@stbi__ldr_ -$LN5@stbi__ldr_: - 00105 8b 45 24 mov eax, DWORD PTR k$[rbp] - 00108 ff c0 inc eax - 0010a 89 45 24 mov DWORD PTR k$[rbp], eax -$LN7@stbi__ldr_: - 0010d 8b 45 44 mov eax, DWORD PTR n$[rbp] - 00110 39 45 24 cmp DWORD PTR k$[rbp], eax - 00113 7d 77 jge SHORT $LN6@stbi__ldr_ - -; 2092 : output[i * comp + k] = - - 00115 f3 0f 5a 05 00 - 00 00 00 cvtss2sd xmm0, DWORD PTR stbi__l2h_gamma - 0011d 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00120 0f af 85 78 01 - 00 00 imul eax, DWORD PTR comp$[rbp] - 00127 03 45 24 add eax, DWORD PTR k$[rbp] - 0012a 48 98 cdqe - 0012c 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR data$[rbp] - 00133 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00137 f3 0f 2a c8 cvtsi2ss xmm1, eax - 0013b f3 0f 5e 0d 00 - 00 00 00 divss xmm1, DWORD PTR __real@437f0000 - 00143 f3 0f 5a c9 cvtss2sd xmm1, xmm1 - 00147 f2 0f 11 8d 38 - 01 00 00 movsd QWORD PTR tv133[rbp], xmm1 - 0014f 0f 28 c8 movaps xmm1, xmm0 - 00152 f2 0f 10 85 38 - 01 00 00 movsd xmm0, QWORD PTR tv133[rbp] - 0015a e8 00 00 00 00 call pow - 0015f f3 0f 5a 0d 00 - 00 00 00 cvtss2sd xmm1, DWORD PTR stbi__l2h_scale - 00167 f2 0f 59 c1 mulsd xmm0, xmm1 - 0016b f2 0f 5a c0 cvtsd2ss xmm0, xmm0 - 0016f 8b 45 04 mov eax, DWORD PTR i$[rbp] - 00172 0f af 85 78 01 - 00 00 imul eax, DWORD PTR comp$[rbp] - 00179 03 45 24 add eax, DWORD PTR k$[rbp] - 0017c 48 98 cdqe - 0017e 48 8b 4d 68 mov rcx, QWORD PTR output$[rbp] - 00182 f3 0f 11 04 81 movss DWORD PTR [rcx+rax*4], xmm0 - -; 2093 : (float)(pow(data[i * comp + k] / 255.0f, stbi__l2h_gamma) * -; 2094 : stbi__l2h_scale); -; 2095 : } - - 00187 e9 79 ff ff ff jmp $LN5@stbi__ldr_ -$LN6@stbi__ldr_: - -; 2096 : } - - 0018c e9 4d ff ff ff jmp $LN2@stbi__ldr_ -$LN3@stbi__ldr_: - -; 2097 : if (n < comp) { - - 00191 8b 85 78 01 00 - 00 mov eax, DWORD PTR comp$[rbp] - 00197 39 45 44 cmp DWORD PTR n$[rbp], eax - 0019a 7d 63 jge SHORT $LN15@stbi__ldr_ - -; 2098 : for (i = 0; i < x * y; ++i) { - - 0019c c7 45 04 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 001a3 eb 08 jmp SHORT $LN10@stbi__ldr_ -$LN8@stbi__ldr_: - 001a5 8b 45 04 mov eax, DWORD PTR i$[rbp] - 001a8 ff c0 inc eax - 001aa 89 45 04 mov DWORD PTR i$[rbp], eax -$LN10@stbi__ldr_: - 001ad 8b 85 68 01 00 - 00 mov eax, DWORD PTR x$[rbp] - 001b3 0f af 85 70 01 - 00 00 imul eax, DWORD PTR y$[rbp] - 001ba 39 45 04 cmp DWORD PTR i$[rbp], eax - 001bd 7d 40 jge SHORT $LN9@stbi__ldr_ - -; 2099 : output[i * comp + n] = data[i * comp + n] / 255.0f; - - 001bf 8b 45 04 mov eax, DWORD PTR i$[rbp] - 001c2 0f af 85 78 01 - 00 00 imul eax, DWORD PTR comp$[rbp] - 001c9 03 45 44 add eax, DWORD PTR n$[rbp] - 001cc 48 98 cdqe - 001ce 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR data$[rbp] - 001d5 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 001d9 f3 0f 2a c0 cvtsi2ss xmm0, eax - 001dd f3 0f 5e 05 00 - 00 00 00 divss xmm0, DWORD PTR __real@437f0000 - 001e5 8b 45 04 mov eax, DWORD PTR i$[rbp] - 001e8 0f af 85 78 01 - 00 00 imul eax, DWORD PTR comp$[rbp] - 001ef 03 45 44 add eax, DWORD PTR n$[rbp] - 001f2 48 98 cdqe - 001f4 48 8b 4d 68 mov rcx, QWORD PTR output$[rbp] - 001f8 f3 0f 11 04 81 movss DWORD PTR [rcx+rax*4], xmm0 - -; 2100 : } - - 001fd eb a6 jmp SHORT $LN8@stbi__ldr_ -$LN9@stbi__ldr_: -$LN15@stbi__ldr_: - -; 2101 : } -; 2102 : STBI_FREE(data); - - 001ff 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR data$[rbp] - 00206 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 0020c 90 npad 1 - -; 2103 : return output; - - 0020d 48 8b 45 68 mov rax, QWORD PTR output$[rbp] -$LN1@stbi__ldr_: - -; 2104 : } - - 00211 48 8d a5 48 01 - 00 00 lea rsp, QWORD PTR [rbp+328] - 00218 5f pop rdi - 00219 5d pop rbp - 0021a c3 ret 0 -stbi__ldr_to_hdr ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__mul2shorts_valid -_TEXT SEGMENT -tv69 = 192 -tv73 = 192 -tv77 = 192 -tv80 = 192 -tv68 = 196 -a$ = 240 -b$ = 248 -stbi__mul2shorts_valid PROC ; COMDAT - -; 1109 : { - - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00008 55 push rbp - 00009 57 push rdi - 0000a 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 00011 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00016 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00022 90 npad 1 - -; 1110 : if (b == 0 || b == -1) - - 00023 83 bd f8 00 00 - 00 00 cmp DWORD PTR b$[rbp], 0 - 0002a 74 09 je SHORT $LN3@stbi__mul2 - 0002c 83 bd f8 00 00 - 00 ff cmp DWORD PTR b$[rbp], -1 - 00033 75 0a jne SHORT $LN2@stbi__mul2 -$LN3@stbi__mul2: - -; 1111 : return 1; // multiplication by 0 is always 0; check for -1 so SHRT_MIN/b doesn't overflow - - 00035 b8 01 00 00 00 mov eax, 1 - 0003a e9 e9 00 00 00 jmp $LN1@stbi__mul2 -$LN2@stbi__mul2: - -; 1112 : if ((a >= 0) == (b >= 0)) - - 0003f 83 bd f0 00 00 - 00 00 cmp DWORD PTR a$[rbp], 0 - 00046 7c 0c jl SHORT $LN9@stbi__mul2 - 00048 c7 85 c0 00 00 - 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1 - 00052 eb 0a jmp SHORT $LN10@stbi__mul2 -$LN9@stbi__mul2: - 00054 c7 85 c0 00 00 - 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0 -$LN10@stbi__mul2: - 0005e 83 bd f8 00 00 - 00 00 cmp DWORD PTR b$[rbp], 0 - 00065 7c 0c jl SHORT $LN7@stbi__mul2 - 00067 c7 85 c4 00 00 - 00 01 00 00 00 mov DWORD PTR tv68[rbp], 1 - 00071 eb 0a jmp SHORT $LN8@stbi__mul2 -$LN7@stbi__mul2: - 00073 c7 85 c4 00 00 - 00 00 00 00 00 mov DWORD PTR tv68[rbp], 0 -$LN8@stbi__mul2: - 0007d 8b 85 c4 00 00 - 00 mov eax, DWORD PTR tv68[rbp] - 00083 39 85 c0 00 00 - 00 cmp DWORD PTR tv69[rbp], eax - 00089 75 32 jne SHORT $LN4@stbi__mul2 - -; 1113 : return a <= SHRT_MAX / b; // product is positive, so similar to mul2sizes_valid - - 0008b b8 ff 7f 00 00 mov eax, 32767 ; 00007fffH - 00090 99 cdq - 00091 f7 bd f8 00 00 - 00 idiv DWORD PTR b$[rbp] - 00097 39 85 f0 00 00 - 00 cmp DWORD PTR a$[rbp], eax - 0009d 7f 0c jg SHORT $LN11@stbi__mul2 - 0009f c7 85 c0 00 00 - 00 01 00 00 00 mov DWORD PTR tv73[rbp], 1 - 000a9 eb 0a jmp SHORT $LN12@stbi__mul2 -$LN11@stbi__mul2: - 000ab c7 85 c0 00 00 - 00 00 00 00 00 mov DWORD PTR tv73[rbp], 0 -$LN12@stbi__mul2: - 000b5 8b 85 c0 00 00 - 00 mov eax, DWORD PTR tv73[rbp] - 000bb eb 6b jmp SHORT $LN1@stbi__mul2 -$LN4@stbi__mul2: - -; 1114 : if (b < 0) - - 000bd 83 bd f8 00 00 - 00 00 cmp DWORD PTR b$[rbp], 0 - 000c4 7d 32 jge SHORT $LN5@stbi__mul2 - -; 1115 : return a <= SHRT_MIN / b; // same as a * b >= SHRT_MIN - - 000c6 b8 00 80 ff ff mov eax, -32768 ; ffffffffffff8000H - 000cb 99 cdq - 000cc f7 bd f8 00 00 - 00 idiv DWORD PTR b$[rbp] - 000d2 39 85 f0 00 00 - 00 cmp DWORD PTR a$[rbp], eax - 000d8 7f 0c jg SHORT $LN13@stbi__mul2 - 000da c7 85 c0 00 00 - 00 01 00 00 00 mov DWORD PTR tv77[rbp], 1 - 000e4 eb 0a jmp SHORT $LN14@stbi__mul2 -$LN13@stbi__mul2: - 000e6 c7 85 c0 00 00 - 00 00 00 00 00 mov DWORD PTR tv77[rbp], 0 -$LN14@stbi__mul2: - 000f0 8b 85 c0 00 00 - 00 mov eax, DWORD PTR tv77[rbp] - 000f6 eb 30 jmp SHORT $LN1@stbi__mul2 -$LN5@stbi__mul2: - -; 1116 : return a >= SHRT_MIN / b; - - 000f8 b8 00 80 ff ff mov eax, -32768 ; ffffffffffff8000H - 000fd 99 cdq - 000fe f7 bd f8 00 00 - 00 idiv DWORD PTR b$[rbp] - 00104 39 85 f0 00 00 - 00 cmp DWORD PTR a$[rbp], eax - 0010a 7c 0c jl SHORT $LN15@stbi__mul2 - 0010c c7 85 c0 00 00 - 00 01 00 00 00 mov DWORD PTR tv80[rbp], 1 - 00116 eb 0a jmp SHORT $LN16@stbi__mul2 -$LN15@stbi__mul2: - 00118 c7 85 c0 00 00 - 00 00 00 00 00 mov DWORD PTR tv80[rbp], 0 -$LN16@stbi__mul2: - 00122 8b 85 c0 00 00 - 00 mov eax, DWORD PTR tv80[rbp] -$LN1@stbi__mul2: - -; 1117 : } - - 00128 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 0012f 5f pop rdi - 00130 5d pop rbp - 00131 c3 ret 0 -stbi__mul2shorts_valid ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__addints_valid -_TEXT SEGMENT -tv67 = 192 -tv73 = 192 -tv76 = 192 -tv66 = 196 -a$ = 240 -b$ = 248 -stbi__addints_valid PROC ; COMDAT - -; 1097 : { - - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00008 55 push rbp - 00009 57 push rdi - 0000a 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 00011 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00016 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00022 90 npad 1 - -; 1098 : if ((a >= 0) != (b >= 0)) - - 00023 83 bd f0 00 00 - 00 00 cmp DWORD PTR a$[rbp], 0 - 0002a 7c 0c jl SHORT $LN7@stbi__addi - 0002c c7 85 c0 00 00 - 00 01 00 00 00 mov DWORD PTR tv67[rbp], 1 - 00036 eb 0a jmp SHORT $LN8@stbi__addi -$LN7@stbi__addi: - 00038 c7 85 c0 00 00 - 00 00 00 00 00 mov DWORD PTR tv67[rbp], 0 -$LN8@stbi__addi: - 00042 83 bd f8 00 00 - 00 00 cmp DWORD PTR b$[rbp], 0 - 00049 7c 0c jl SHORT $LN5@stbi__addi - 0004b c7 85 c4 00 00 - 00 01 00 00 00 mov DWORD PTR tv66[rbp], 1 - 00055 eb 0a jmp SHORT $LN6@stbi__addi -$LN5@stbi__addi: - 00057 c7 85 c4 00 00 - 00 00 00 00 00 mov DWORD PTR tv66[rbp], 0 -$LN6@stbi__addi: - 00061 8b 85 c4 00 00 - 00 mov eax, DWORD PTR tv66[rbp] - 00067 39 85 c0 00 00 - 00 cmp DWORD PTR tv67[rbp], eax - 0006d 74 07 je SHORT $LN2@stbi__addi - -; 1099 : return 1; // a and b have different signs, so no overflow - - 0006f b8 01 00 00 00 mov eax, 1 - 00074 eb 72 jmp SHORT $LN1@stbi__addi -$LN2@stbi__addi: - -; 1100 : if (a < 0 && b < 0) - - 00076 83 bd f0 00 00 - 00 00 cmp DWORD PTR a$[rbp], 0 - 0007d 7d 3a jge SHORT $LN3@stbi__addi - 0007f 83 bd f8 00 00 - 00 00 cmp DWORD PTR b$[rbp], 0 - 00086 7d 31 jge SHORT $LN3@stbi__addi - -; 1101 : return a >= - - 00088 b8 00 00 00 80 mov eax, -2147483648 ; ffffffff80000000H - 0008d 2b 85 f8 00 00 - 00 sub eax, DWORD PTR b$[rbp] - 00093 39 85 f0 00 00 - 00 cmp DWORD PTR a$[rbp], eax - 00099 7c 0c jl SHORT $LN9@stbi__addi - 0009b c7 85 c0 00 00 - 00 01 00 00 00 mov DWORD PTR tv73[rbp], 1 - 000a5 eb 0a jmp SHORT $LN10@stbi__addi -$LN9@stbi__addi: - 000a7 c7 85 c0 00 00 - 00 00 00 00 00 mov DWORD PTR tv73[rbp], 0 -$LN10@stbi__addi: - 000b1 8b 85 c0 00 00 - 00 mov eax, DWORD PTR tv73[rbp] - 000b7 eb 2f jmp SHORT $LN1@stbi__addi -$LN3@stbi__addi: - -; 1102 : INT_MIN - -; 1103 : b; // same as a + b >= INT_MIN; INT_MIN - b cannot overflow since b < 0. -; 1104 : return a <= INT_MAX - b; - - 000b9 b8 ff ff ff 7f mov eax, 2147483647 ; 7fffffffH - 000be 2b 85 f8 00 00 - 00 sub eax, DWORD PTR b$[rbp] - 000c4 39 85 f0 00 00 - 00 cmp DWORD PTR a$[rbp], eax - 000ca 7f 0c jg SHORT $LN11@stbi__addi - 000cc c7 85 c0 00 00 - 00 01 00 00 00 mov DWORD PTR tv76[rbp], 1 - 000d6 eb 0a jmp SHORT $LN12@stbi__addi -$LN11@stbi__addi: - 000d8 c7 85 c0 00 00 - 00 00 00 00 00 mov DWORD PTR tv76[rbp], 0 -$LN12@stbi__addi: - 000e2 8b 85 c0 00 00 - 00 mov eax, DWORD PTR tv76[rbp] -$LN1@stbi__addi: - -; 1105 : } - - 000e8 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 000ef 5f pop rdi - 000f0 5d pop rbp - 000f1 c3 ret 0 -stbi__addints_valid ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__malloc_mad4 -_TEXT SEGMENT -a$ = 224 -b$ = 232 -c$ = 240 -d$ = 248 -add$ = 256 -stbi__malloc_mad4 PROC ; COMDAT - -; 1088 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00012 55 push rbp - 00013 57 push rdi - 00014 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 0001b 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00020 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00027 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002c 90 npad 1 - -; 1089 : if (!stbi__mad4sizes_valid(a, b, c, d, add)) - - 0002d 8b 85 00 01 00 - 00 mov eax, DWORD PTR add$[rbp] - 00033 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00037 44 8b 8d f8 00 - 00 00 mov r9d, DWORD PTR d$[rbp] - 0003e 44 8b 85 f0 00 - 00 00 mov r8d, DWORD PTR c$[rbp] - 00045 8b 95 e8 00 00 - 00 mov edx, DWORD PTR b$[rbp] - 0004b 8b 8d e0 00 00 - 00 mov ecx, DWORD PTR a$[rbp] - 00051 e8 00 00 00 00 call stbi__mad4sizes_valid - 00056 85 c0 test eax, eax - 00058 75 04 jne SHORT $LN2@stbi__mall - -; 1090 : return NULL; - - 0005a 33 c0 xor eax, eax - 0005c eb 2b jmp SHORT $LN1@stbi__mall -$LN2@stbi__mall: - -; 1091 : return stbi__malloc(a * b * c * d + add); - - 0005e 8b 85 e0 00 00 - 00 mov eax, DWORD PTR a$[rbp] - 00064 0f af 85 e8 00 - 00 00 imul eax, DWORD PTR b$[rbp] - 0006b 0f af 85 f0 00 - 00 00 imul eax, DWORD PTR c$[rbp] - 00072 0f af 85 f8 00 - 00 00 imul eax, DWORD PTR d$[rbp] - 00079 03 85 00 01 00 - 00 add eax, DWORD PTR add$[rbp] - 0007f 48 98 cdqe - 00081 48 8b c8 mov rcx, rax - 00084 e8 00 00 00 00 call stbi__malloc -$LN1@stbi__mall: - -; 1092 : } - - 00089 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00090 5f pop rdi - 00091 5d pop rbp - 00092 c3 ret 0 -stbi__malloc_mad4 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__malloc_mad3 -_TEXT SEGMENT -a$ = 224 -b$ = 232 -c$ = 240 -add$ = 248 -stbi__malloc_mad3 PROC ; COMDAT - -; 1080 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00012 55 push rbp - 00013 57 push rdi - 00014 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0001b 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00020 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00027 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002c 90 npad 1 - -; 1081 : if (!stbi__mad3sizes_valid(a, b, c, add)) - - 0002d 44 8b 8d f8 00 - 00 00 mov r9d, DWORD PTR add$[rbp] - 00034 44 8b 85 f0 00 - 00 00 mov r8d, DWORD PTR c$[rbp] - 0003b 8b 95 e8 00 00 - 00 mov edx, DWORD PTR b$[rbp] - 00041 8b 8d e0 00 00 - 00 mov ecx, DWORD PTR a$[rbp] - 00047 e8 00 00 00 00 call stbi__mad3sizes_valid - 0004c 85 c0 test eax, eax - 0004e 75 04 jne SHORT $LN2@stbi__mall - -; 1082 : return NULL; - - 00050 33 c0 xor eax, eax - 00052 eb 24 jmp SHORT $LN1@stbi__mall -$LN2@stbi__mall: - -; 1083 : return stbi__malloc(a * b * c + add); - - 00054 8b 85 e0 00 00 - 00 mov eax, DWORD PTR a$[rbp] - 0005a 0f af 85 e8 00 - 00 00 imul eax, DWORD PTR b$[rbp] - 00061 0f af 85 f0 00 - 00 00 imul eax, DWORD PTR c$[rbp] - 00068 03 85 f8 00 00 - 00 add eax, DWORD PTR add$[rbp] - 0006e 48 98 cdqe - 00070 48 8b c8 mov rcx, rax - 00073 e8 00 00 00 00 call stbi__malloc -$LN1@stbi__mall: - -; 1084 : } - - 00078 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0007f 5f pop rdi - 00080 5d pop rbp - 00081 c3 ret 0 -stbi__malloc_mad3 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__malloc_mad2 -_TEXT SEGMENT -a$ = 224 -b$ = 232 -add$ = 240 -stbi__malloc_mad2 PROC ; COMDAT - -; 1072 : { - - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00009 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 0000d 55 push rbp - 0000e 57 push rdi - 0000f 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00016 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00027 90 npad 1 - -; 1073 : if (!stbi__mad2sizes_valid(a, b, add)) - - 00028 44 8b 85 f0 00 - 00 00 mov r8d, DWORD PTR add$[rbp] - 0002f 8b 95 e8 00 00 - 00 mov edx, DWORD PTR b$[rbp] - 00035 8b 8d e0 00 00 - 00 mov ecx, DWORD PTR a$[rbp] - 0003b e8 00 00 00 00 call stbi__mad2sizes_valid - 00040 85 c0 test eax, eax - 00042 75 04 jne SHORT $LN2@stbi__mall - -; 1074 : return NULL; - - 00044 33 c0 xor eax, eax - 00046 eb 1d jmp SHORT $LN1@stbi__mall -$LN2@stbi__mall: - -; 1075 : return stbi__malloc(a * b + add); - - 00048 8b 85 e0 00 00 - 00 mov eax, DWORD PTR a$[rbp] - 0004e 0f af 85 e8 00 - 00 00 imul eax, DWORD PTR b$[rbp] - 00055 03 85 f0 00 00 - 00 add eax, DWORD PTR add$[rbp] - 0005b 48 98 cdqe - 0005d 48 8b c8 mov rcx, rax - 00060 e8 00 00 00 00 call stbi__malloc -$LN1@stbi__mall: - -; 1076 : } - - 00065 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0006c 5f pop rdi - 0006d 5d pop rbp - 0006e c3 ret 0 -stbi__malloc_mad2 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__mad4sizes_valid -_TEXT SEGMENT -tv86 = 192 -a$ = 240 -b$ = 248 -c$ = 256 -d$ = 264 -add$ = 272 -stbi__mad4sizes_valid PROC ; COMDAT - -; 1062 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00012 55 push rbp - 00013 57 push rdi - 00014 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 0001b 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00020 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00027 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002c 90 npad 1 - -; 1063 : return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a * b, c) && - - 0002d 8b 95 f8 00 00 - 00 mov edx, DWORD PTR b$[rbp] - 00033 8b 8d f0 00 00 - 00 mov ecx, DWORD PTR a$[rbp] - 00039 e8 00 00 00 00 call stbi__mul2sizes_valid - 0003e 85 c0 test eax, eax - 00040 74 7b je SHORT $LN3@stbi__mad4 - 00042 8b 85 f0 00 00 - 00 mov eax, DWORD PTR a$[rbp] - 00048 0f af 85 f8 00 - 00 00 imul eax, DWORD PTR b$[rbp] - 0004f 8b 95 00 01 00 - 00 mov edx, DWORD PTR c$[rbp] - 00055 8b c8 mov ecx, eax - 00057 e8 00 00 00 00 call stbi__mul2sizes_valid - 0005c 85 c0 test eax, eax - 0005e 74 5d je SHORT $LN3@stbi__mad4 - 00060 8b 85 f0 00 00 - 00 mov eax, DWORD PTR a$[rbp] - 00066 0f af 85 f8 00 - 00 00 imul eax, DWORD PTR b$[rbp] - 0006d 0f af 85 00 01 - 00 00 imul eax, DWORD PTR c$[rbp] - 00074 8b 95 08 01 00 - 00 mov edx, DWORD PTR d$[rbp] - 0007a 8b c8 mov ecx, eax - 0007c e8 00 00 00 00 call stbi__mul2sizes_valid - 00081 85 c0 test eax, eax - 00083 74 38 je SHORT $LN3@stbi__mad4 - 00085 8b 85 f0 00 00 - 00 mov eax, DWORD PTR a$[rbp] - 0008b 0f af 85 f8 00 - 00 00 imul eax, DWORD PTR b$[rbp] - 00092 0f af 85 00 01 - 00 00 imul eax, DWORD PTR c$[rbp] - 00099 0f af 85 08 01 - 00 00 imul eax, DWORD PTR d$[rbp] - 000a0 8b 95 10 01 00 - 00 mov edx, DWORD PTR add$[rbp] - 000a6 8b c8 mov ecx, eax - 000a8 e8 00 00 00 00 call stbi__addsizes_valid - 000ad 85 c0 test eax, eax - 000af 74 0c je SHORT $LN3@stbi__mad4 - 000b1 c7 85 c0 00 00 - 00 01 00 00 00 mov DWORD PTR tv86[rbp], 1 - 000bb eb 0a jmp SHORT $LN4@stbi__mad4 -$LN3@stbi__mad4: - 000bd c7 85 c0 00 00 - 00 00 00 00 00 mov DWORD PTR tv86[rbp], 0 -$LN4@stbi__mad4: - 000c7 8b 85 c0 00 00 - 00 mov eax, DWORD PTR tv86[rbp] - -; 1064 : stbi__mul2sizes_valid(a * b * c, d) && stbi__addsizes_valid(a * b * c * d, add); -; 1065 : } - - 000cd 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 000d4 5f pop rdi - 000d5 5d pop rbp - 000d6 c3 ret 0 -stbi__mad4sizes_valid ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__mad3sizes_valid -_TEXT SEGMENT -tv79 = 192 -a$ = 240 -b$ = 248 -c$ = 256 -add$ = 264 -stbi__mad3sizes_valid PROC ; COMDAT - -; 1054 : { - - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00012 55 push rbp - 00013 57 push rdi - 00014 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 0001b 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00020 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00027 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002c 90 npad 1 - -; 1055 : return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a * b, c) && - - 0002d 8b 95 f8 00 00 - 00 mov edx, DWORD PTR b$[rbp] - 00033 8b 8d f0 00 00 - 00 mov ecx, DWORD PTR a$[rbp] - 00039 e8 00 00 00 00 call stbi__mul2sizes_valid - 0003e 85 c0 test eax, eax - 00040 74 4f je SHORT $LN3@stbi__mad3 - 00042 8b 85 f0 00 00 - 00 mov eax, DWORD PTR a$[rbp] - 00048 0f af 85 f8 00 - 00 00 imul eax, DWORD PTR b$[rbp] - 0004f 8b 95 00 01 00 - 00 mov edx, DWORD PTR c$[rbp] - 00055 8b c8 mov ecx, eax - 00057 e8 00 00 00 00 call stbi__mul2sizes_valid - 0005c 85 c0 test eax, eax - 0005e 74 31 je SHORT $LN3@stbi__mad3 - 00060 8b 85 f0 00 00 - 00 mov eax, DWORD PTR a$[rbp] - 00066 0f af 85 f8 00 - 00 00 imul eax, DWORD PTR b$[rbp] - 0006d 0f af 85 00 01 - 00 00 imul eax, DWORD PTR c$[rbp] - 00074 8b 95 08 01 00 - 00 mov edx, DWORD PTR add$[rbp] - 0007a 8b c8 mov ecx, eax - 0007c e8 00 00 00 00 call stbi__addsizes_valid - 00081 85 c0 test eax, eax - 00083 74 0c je SHORT $LN3@stbi__mad3 - 00085 c7 85 c0 00 00 - 00 01 00 00 00 mov DWORD PTR tv79[rbp], 1 - 0008f eb 0a jmp SHORT $LN4@stbi__mad3 -$LN3@stbi__mad3: - 00091 c7 85 c0 00 00 - 00 00 00 00 00 mov DWORD PTR tv79[rbp], 0 -$LN4@stbi__mad3: - 0009b 8b 85 c0 00 00 - 00 mov eax, DWORD PTR tv79[rbp] - -; 1056 : stbi__addsizes_valid(a * b * c, add); -; 1057 : } - - 000a1 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 000a8 5f pop rdi - 000a9 5d pop rbp - 000aa c3 ret 0 -stbi__mad3sizes_valid ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__mad2sizes_valid -_TEXT SEGMENT -tv73 = 192 -a$ = 240 -b$ = 248 -add$ = 256 -stbi__mad2sizes_valid PROC ; COMDAT - -; 1047 : { - - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00009 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 0000d 55 push rbp - 0000e 57 push rdi - 0000f 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 00016 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00027 90 npad 1 - -; 1048 : return stbi__mul2sizes_valid(a, b) && stbi__addsizes_valid(a * b, add); - - 00028 8b 95 f8 00 00 - 00 mov edx, DWORD PTR b$[rbp] - 0002e 8b 8d f0 00 00 - 00 mov ecx, DWORD PTR a$[rbp] - 00034 e8 00 00 00 00 call stbi__mul2sizes_valid - 00039 85 c0 test eax, eax - 0003b 74 2a je SHORT $LN3@stbi__mad2 - 0003d 8b 85 f0 00 00 - 00 mov eax, DWORD PTR a$[rbp] - 00043 0f af 85 f8 00 - 00 00 imul eax, DWORD PTR b$[rbp] - 0004a 8b 95 00 01 00 - 00 mov edx, DWORD PTR add$[rbp] - 00050 8b c8 mov ecx, eax - 00052 e8 00 00 00 00 call stbi__addsizes_valid - 00057 85 c0 test eax, eax - 00059 74 0c je SHORT $LN3@stbi__mad2 - 0005b c7 85 c0 00 00 - 00 01 00 00 00 mov DWORD PTR tv73[rbp], 1 - 00065 eb 0a jmp SHORT $LN4@stbi__mad2 -$LN3@stbi__mad2: - 00067 c7 85 c0 00 00 - 00 00 00 00 00 mov DWORD PTR tv73[rbp], 0 -$LN4@stbi__mad2: - 00071 8b 85 c0 00 00 - 00 mov eax, DWORD PTR tv73[rbp] - -; 1049 : } - - 00077 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 0007e 5f pop rdi - 0007f 5d pop rbp - 00080 c3 ret 0 -stbi__mad2sizes_valid ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__mul2sizes_valid -_TEXT SEGMENT -tv69 = 192 -a$ = 240 -b$ = 248 -stbi__mul2sizes_valid PROC ; COMDAT - -; 1034 : { - - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00008 55 push rbp - 00009 57 push rdi - 0000a 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 00011 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00016 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00022 90 npad 1 - -; 1035 : if (a < 0 || b < 0) - - 00023 83 bd f0 00 00 - 00 00 cmp DWORD PTR a$[rbp], 0 - 0002a 7c 09 jl SHORT $LN3@stbi__mul2 - 0002c 83 bd f8 00 00 - 00 00 cmp DWORD PTR b$[rbp], 0 - 00033 7d 04 jge SHORT $LN2@stbi__mul2 -$LN3@stbi__mul2: - -; 1036 : return 0; - - 00035 33 c0 xor eax, eax - 00037 eb 40 jmp SHORT $LN1@stbi__mul2 -$LN2@stbi__mul2: - -; 1037 : if (b == 0) - - 00039 83 bd f8 00 00 - 00 00 cmp DWORD PTR b$[rbp], 0 - 00040 75 07 jne SHORT $LN4@stbi__mul2 - -; 1038 : return 1; // mul-by-0 is always safe - - 00042 b8 01 00 00 00 mov eax, 1 - 00047 eb 30 jmp SHORT $LN1@stbi__mul2 -$LN4@stbi__mul2: - -; 1039 : // portable way to check for no overflows in a*b -; 1040 : return a <= INT_MAX / b; - - 00049 b8 ff ff ff 7f mov eax, 2147483647 ; 7fffffffH - 0004e 99 cdq - 0004f f7 bd f8 00 00 - 00 idiv DWORD PTR b$[rbp] - 00055 39 85 f0 00 00 - 00 cmp DWORD PTR a$[rbp], eax - 0005b 7f 0c jg SHORT $LN6@stbi__mul2 - 0005d c7 85 c0 00 00 - 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1 - 00067 eb 0a jmp SHORT $LN7@stbi__mul2 -$LN6@stbi__mul2: - 00069 c7 85 c0 00 00 - 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0 -$LN7@stbi__mul2: - 00073 8b 85 c0 00 00 - 00 mov eax, DWORD PTR tv69[rbp] -$LN1@stbi__mul2: - -; 1041 : } - - 00079 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 00080 5f pop rdi - 00081 5d pop rbp - 00082 c3 ret 0 -stbi__mul2sizes_valid ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__addsizes_valid -_TEXT SEGMENT -tv67 = 192 -a$ = 240 -b$ = 248 -stbi__addsizes_valid PROC ; COMDAT - -; 1021 : { - - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00008 55 push rbp - 00009 57 push rdi - 0000a 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 00011 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00016 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00022 90 npad 1 - -; 1022 : if (b < 0) - - 00023 83 bd f8 00 00 - 00 00 cmp DWORD PTR b$[rbp], 0 - 0002a 7d 04 jge SHORT $LN2@stbi__adds - -; 1023 : return 0; - - 0002c 33 c0 xor eax, eax - 0002e eb 2f jmp SHORT $LN1@stbi__adds -$LN2@stbi__adds: - -; 1024 : // now 0 <= b <= INT_MAX, hence also -; 1025 : // 0 <= INT_MAX - b <= INTMAX. -; 1026 : // And "a + b <= INT_MAX" (which might overflow) is the -; 1027 : // same as a <= INT_MAX - b (no overflow) -; 1028 : return a <= INT_MAX - b; - - 00030 b8 ff ff ff 7f mov eax, 2147483647 ; 7fffffffH - 00035 2b 85 f8 00 00 - 00 sub eax, DWORD PTR b$[rbp] - 0003b 39 85 f0 00 00 - 00 cmp DWORD PTR a$[rbp], eax - 00041 7f 0c jg SHORT $LN4@stbi__adds - 00043 c7 85 c0 00 00 - 00 01 00 00 00 mov DWORD PTR tv67[rbp], 1 - 0004d eb 0a jmp SHORT $LN5@stbi__adds -$LN4@stbi__adds: - 0004f c7 85 c0 00 00 - 00 00 00 00 00 mov DWORD PTR tv67[rbp], 0 -$LN5@stbi__adds: - 00059 8b 85 c0 00 00 - 00 mov eax, DWORD PTR tv67[rbp] -$LN1@stbi__adds: - -; 1029 : } - - 0005f 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 -stbi__addsizes_valid ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__malloc -_TEXT SEGMENT -size$ = 224 -stbi__malloc PROC ; COMDAT - -; 1004 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 1005 : return STBI_MALLOC(size); - - 00020 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR size$[rbp] - 00027 ff 15 00 00 00 - 00 call QWORD PTR __imp_malloc - -; 1006 : } - - 0002d 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00034 5f pop rdi - 00035 5d pop rbp - 00036 c3 ret 0 -stbi__malloc ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__err -_TEXT SEGMENT -str$ = 224 -stbi__err PROC ; COMDAT - -; 997 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 998 : stbi__g_failure_reason = str; - - 00020 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__g_failure_reason - 00025 8b c0 mov eax, eax - 00027 8b 0d 00 00 00 - 00 mov ecx, DWORD PTR _tls_index - 0002d 65 48 8b 14 25 - 58 00 00 00 mov rdx, QWORD PTR gs:88 - 00036 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] - 0003a 48 8b 95 e0 00 - 00 00 mov rdx, QWORD PTR str$[rbp] - 00041 48 89 14 08 mov QWORD PTR [rax+rcx], rdx - -; 999 : return 0; - - 00045 33 c0 xor eax, eax - -; 1000 : } - - 00047 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0004e 5f pop rdi - 0004f 5d pop rbp - 00050 c3 ret 0 -stbi__err ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__pnm_is16 -_TEXT SEGMENT -s$ = 224 -stbi__pnm_is16 PROC ; COMDAT - -; 8552 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 8553 : if (stbi__pnm_info(s, NULL, NULL, NULL) == 16) - - 00020 45 33 c9 xor r9d, r9d - 00023 45 33 c0 xor r8d, r8d - 00026 33 d2 xor edx, edx - 00028 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0002f e8 00 00 00 00 call stbi__pnm_info - 00034 83 f8 10 cmp eax, 16 - 00037 75 07 jne SHORT $LN2@stbi__pnm_ - -; 8554 : return 1; - - 00039 b8 01 00 00 00 mov eax, 1 - 0003e eb 02 jmp SHORT $LN1@stbi__pnm_ -$LN2@stbi__pnm_: - -; 8555 : return 0; - - 00040 33 c0 xor eax, eax -$LN1@stbi__pnm_: - -; 8556 : } - - 00042 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00049 5f pop rdi - 0004a 5d pop rbp - 0004b c3 ret 0 -stbi__pnm_is16 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__pnm_info -_TEXT SEGMENT -maxv$ = 4 -dummy$ = 36 -c$ = 68 -p$ = 100 -t$ = 132 -tv81 = 340 -__$ArrayPad$ = 344 -s$ = 384 -x$ = 392 -y$ = 400 -comp$ = 408 -stbi__pnm_info PROC ; COMDAT - -; 8505 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 88 01 - 00 00 sub rsp, 392 ; 00000188H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00027 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 a8 - 01 00 00 mov rcx, QWORD PTR [rsp+424] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 58 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 8506 : int maxv, dummy; -; 8507 : char c, p, t; -; 8508 : -; 8509 : if (!x) - - 00059 48 83 bd 88 01 - 00 00 00 cmp QWORD PTR x$[rbp], 0 - 00061 75 0b jne SHORT $LN2@stbi__pnm_ - -; 8510 : x = &dummy; - - 00063 48 8d 45 24 lea rax, QWORD PTR dummy$[rbp] - 00067 48 89 85 88 01 - 00 00 mov QWORD PTR x$[rbp], rax -$LN2@stbi__pnm_: - -; 8511 : if (!y) - - 0006e 48 83 bd 90 01 - 00 00 00 cmp QWORD PTR y$[rbp], 0 - 00076 75 0b jne SHORT $LN3@stbi__pnm_ - -; 8512 : y = &dummy; - - 00078 48 8d 45 24 lea rax, QWORD PTR dummy$[rbp] - 0007c 48 89 85 90 01 - 00 00 mov QWORD PTR y$[rbp], rax -$LN3@stbi__pnm_: - -; 8513 : if (!comp) - - 00083 48 83 bd 98 01 - 00 00 00 cmp QWORD PTR comp$[rbp], 0 - 0008b 75 0b jne SHORT $LN4@stbi__pnm_ - -; 8514 : comp = &dummy; - - 0008d 48 8d 45 24 lea rax, QWORD PTR dummy$[rbp] - 00091 48 89 85 98 01 - 00 00 mov QWORD PTR comp$[rbp], rax -$LN4@stbi__pnm_: - -; 8515 : -; 8516 : stbi__rewind(s); - - 00098 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0009f e8 00 00 00 00 call stbi__rewind - 000a4 90 npad 1 - -; 8517 : -; 8518 : // Get identifier -; 8519 : p = (char)stbi__get8(s); - - 000a5 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000ac e8 00 00 00 00 call stbi__get8 - 000b1 88 45 64 mov BYTE PTR p$[rbp], al - -; 8520 : t = (char)stbi__get8(s); - - 000b4 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000bb e8 00 00 00 00 call stbi__get8 - 000c0 88 85 84 00 00 - 00 mov BYTE PTR t$[rbp], al - -; 8521 : if (p != 'P' || (t != '5' && t != '6')) { - - 000c6 0f be 45 64 movsx eax, BYTE PTR p$[rbp] - 000ca 83 f8 50 cmp eax, 80 ; 00000050H - 000cd 75 18 jne SHORT $LN6@stbi__pnm_ - 000cf 0f be 85 84 00 - 00 00 movsx eax, BYTE PTR t$[rbp] - 000d6 83 f8 35 cmp eax, 53 ; 00000035H - 000d9 74 20 je SHORT $LN5@stbi__pnm_ - 000db 0f be 85 84 00 - 00 00 movsx eax, BYTE PTR t$[rbp] - 000e2 83 f8 36 cmp eax, 54 ; 00000036H - 000e5 74 14 je SHORT $LN5@stbi__pnm_ -$LN6@stbi__pnm_: - -; 8522 : stbi__rewind(s); - - 000e7 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000ee e8 00 00 00 00 call stbi__rewind - 000f3 90 npad 1 - -; 8523 : return 0; - - 000f4 33 c0 xor eax, eax - 000f6 e9 1f 01 00 00 jmp $LN1@stbi__pnm_ -$LN5@stbi__pnm_: - -; 8524 : } -; 8525 : -; 8526 : *comp = (t == '6') ? 3 : 1; // '5' is 1-component .pgm; '6' is 3-component .ppm - - 000fb 0f be 85 84 00 - 00 00 movsx eax, BYTE PTR t$[rbp] - 00102 83 f8 36 cmp eax, 54 ; 00000036H - 00105 75 0c jne SHORT $LN14@stbi__pnm_ - 00107 c7 85 54 01 00 - 00 03 00 00 00 mov DWORD PTR tv81[rbp], 3 - 00111 eb 0a jmp SHORT $LN15@stbi__pnm_ -$LN14@stbi__pnm_: - 00113 c7 85 54 01 00 - 00 01 00 00 00 mov DWORD PTR tv81[rbp], 1 -$LN15@stbi__pnm_: - 0011d 48 8b 85 98 01 - 00 00 mov rax, QWORD PTR comp$[rbp] - 00124 8b 8d 54 01 00 - 00 mov ecx, DWORD PTR tv81[rbp] - 0012a 89 08 mov DWORD PTR [rax], ecx - -; 8527 : -; 8528 : c = (char)stbi__get8(s); - - 0012c 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00133 e8 00 00 00 00 call stbi__get8 - 00138 88 45 44 mov BYTE PTR c$[rbp], al - -; 8529 : stbi__pnm_skip_whitespace(s, &c); - - 0013b 48 8d 55 44 lea rdx, QWORD PTR c$[rbp] - 0013f 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00146 e8 00 00 00 00 call stbi__pnm_skip_whitespace - 0014b 90 npad 1 - -; 8530 : -; 8531 : *x = stbi__pnm_getinteger(s, &c); // read width - - 0014c 48 8d 55 44 lea rdx, QWORD PTR c$[rbp] - 00150 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00157 e8 00 00 00 00 call stbi__pnm_getinteger - 0015c 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR x$[rbp] - 00163 89 01 mov DWORD PTR [rcx], eax - -; 8532 : if (*x == 0) - - 00165 48 8b 85 88 01 - 00 00 mov rax, QWORD PTR x$[rbp] - 0016c 83 38 00 cmp DWORD PTR [rax], 0 - 0016f 75 11 jne SHORT $LN7@stbi__pnm_ - -; 8533 : return stbi__err("invalid width", "PPM image header had zero or overflowing width"); - - 00171 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0O@MKGNGALN@invalid?5width@ - 00178 e8 00 00 00 00 call stbi__err - 0017d e9 98 00 00 00 jmp $LN1@stbi__pnm_ -$LN7@stbi__pnm_: - -; 8534 : stbi__pnm_skip_whitespace(s, &c); - - 00182 48 8d 55 44 lea rdx, QWORD PTR c$[rbp] - 00186 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0018d e8 00 00 00 00 call stbi__pnm_skip_whitespace - 00192 90 npad 1 - -; 8535 : -; 8536 : *y = stbi__pnm_getinteger(s, &c); // read height - - 00193 48 8d 55 44 lea rdx, QWORD PTR c$[rbp] - 00197 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0019e e8 00 00 00 00 call stbi__pnm_getinteger - 001a3 48 8b 8d 90 01 - 00 00 mov rcx, QWORD PTR y$[rbp] - 001aa 89 01 mov DWORD PTR [rcx], eax - -; 8537 : if (*y == 0) - - 001ac 48 8b 85 90 01 - 00 00 mov rax, QWORD PTR y$[rbp] - 001b3 83 38 00 cmp DWORD PTR [rax], 0 - 001b6 75 0e jne SHORT $LN8@stbi__pnm_ - -; 8538 : return stbi__err("invalid width", "PPM image header had zero or overflowing width"); - - 001b8 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0O@MKGNGALN@invalid?5width@ - 001bf e8 00 00 00 00 call stbi__err - 001c4 eb 54 jmp SHORT $LN1@stbi__pnm_ -$LN8@stbi__pnm_: - -; 8539 : stbi__pnm_skip_whitespace(s, &c); - - 001c6 48 8d 55 44 lea rdx, QWORD PTR c$[rbp] - 001ca 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001d1 e8 00 00 00 00 call stbi__pnm_skip_whitespace - 001d6 90 npad 1 - -; 8540 : -; 8541 : maxv = stbi__pnm_getinteger(s, &c); // read max value - - 001d7 48 8d 55 44 lea rdx, QWORD PTR c$[rbp] - 001db 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001e2 e8 00 00 00 00 call stbi__pnm_getinteger - 001e7 89 45 04 mov DWORD PTR maxv$[rbp], eax - -; 8542 : if (maxv > 65535) - - 001ea 81 7d 04 ff ff - 00 00 cmp DWORD PTR maxv$[rbp], 65535 ; 0000ffffH - 001f1 7e 10 jle SHORT $LN9@stbi__pnm_ - -; 8543 : return stbi__err("max value > 65535", - - 001f3 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BC@CNFMOKHC@max?5value?5?$DO?565535@ - 001fa e8 00 00 00 00 call stbi__err - 001ff eb 19 jmp SHORT $LN1@stbi__pnm_ - 00201 eb 17 jmp SHORT $LN10@stbi__pnm_ -$LN9@stbi__pnm_: - -; 8544 : "PPM image supports only 8-bit and 16-bit images"); -; 8545 : else if (maxv > 255) - - 00203 81 7d 04 ff 00 - 00 00 cmp DWORD PTR maxv$[rbp], 255 ; 000000ffH - 0020a 7e 09 jle SHORT $LN11@stbi__pnm_ - -; 8546 : return 16; - - 0020c b8 10 00 00 00 mov eax, 16 - 00211 eb 07 jmp SHORT $LN1@stbi__pnm_ - 00213 eb 05 jmp SHORT $LN12@stbi__pnm_ -$LN11@stbi__pnm_: - -; 8547 : else -; 8548 : return 8; - - 00215 b8 08 00 00 00 mov eax, 8 -$LN12@stbi__pnm_: -$LN10@stbi__pnm_: -$LN1@stbi__pnm_: - -; 8549 : } - - 0021a 48 8b f8 mov rdi, rax - 0021d 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00221 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__pnm_info$rtcFrameData - 00228 e8 00 00 00 00 call _RTC_CheckStackVars - 0022d 48 8b c7 mov rax, rdi - 00230 48 8b 8d 58 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00237 48 33 cd xor rcx, rbp - 0023a e8 00 00 00 00 call __security_check_cookie - 0023f 48 8d a5 68 01 - 00 00 lea rsp, QWORD PTR [rbp+360] - 00246 5f pop rdi - 00247 5d pop rbp - 00248 c3 ret 0 -stbi__pnm_info ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__pnm_load -_TEXT SEGMENT -out$ = 8 -tv160 = 212 -tv80 = 216 -tv86 = 216 -tv138 = 216 -tv154 = 216 -tv172 = 216 -s$ = 256 -x$ = 264 -y$ = 272 -comp$ = 280 -req_comp$ = 288 -ri$ = 296 -stbi__pnm_load PROC ; COMDAT - -; 8420 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 18 01 - 00 00 sub rsp, 280 ; 00000118H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 8421 : stbi_uc *out; -; 8422 : STBI_NOTUSED(ri); -; 8423 : -; 8424 : ri->bits_per_channel = - - 0002f 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00036 48 83 c0 08 add rax, 8 - 0003a 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00041 48 83 c1 04 add rcx, 4 - 00045 48 8b 95 00 01 - 00 00 mov rdx, QWORD PTR s$[rbp] - 0004c 4c 8b c8 mov r9, rax - 0004f 4c 8b c1 mov r8, rcx - 00052 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00059 e8 00 00 00 00 call stbi__pnm_info - 0005e 48 8b 8d 28 01 - 00 00 mov rcx, QWORD PTR ri$[rbp] - 00065 89 01 mov DWORD PTR [rcx], eax - -; 8425 : stbi__pnm_info(s, (int *)&s->img_x, (int *)&s->img_y, (int *)&s->img_n); -; 8426 : if (ri->bits_per_channel == 0) - - 00067 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR ri$[rbp] - 0006e 83 38 00 cmp DWORD PTR [rax], 0 - 00071 75 07 jne SHORT $LN2@stbi__pnm_ - -; 8427 : return 0; - - 00073 33 c0 xor eax, eax - 00075 e9 06 03 00 00 jmp $LN1@stbi__pnm_ -$LN2@stbi__pnm_: - -; 8428 : -; 8429 : if (s->img_y > STBI_MAX_DIMENSIONS) - - 0007a 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00081 81 78 04 00 00 - 00 01 cmp DWORD PTR [rax+4], 16777216 ; 01000000H - 00088 76 34 jbe SHORT $LN3@stbi__pnm_ - -; 8430 : return stbi__errpuc("too large", "Very large image (corrupt?)"); - - 0008a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 00091 e8 00 00 00 00 call stbi__err - 00096 85 c0 test eax, eax - 00098 74 0d je SHORT $LN14@stbi__pnm_ - 0009a 48 c7 85 d8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv80[rbp], 0 - 000a5 eb 0b jmp SHORT $LN15@stbi__pnm_ -$LN14@stbi__pnm_: - 000a7 48 c7 85 d8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv80[rbp], 0 -$LN15@stbi__pnm_: - 000b2 48 8b 85 d8 00 - 00 00 mov rax, QWORD PTR tv80[rbp] - 000b9 e9 c2 02 00 00 jmp $LN1@stbi__pnm_ -$LN3@stbi__pnm_: - -; 8431 : if (s->img_x > STBI_MAX_DIMENSIONS) - - 000be 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 000c5 81 38 00 00 00 - 01 cmp DWORD PTR [rax], 16777216 ; 01000000H - 000cb 76 34 jbe SHORT $LN4@stbi__pnm_ - -; 8432 : return stbi__errpuc("too large", "Very large image (corrupt?)"); - - 000cd 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 000d4 e8 00 00 00 00 call stbi__err - 000d9 85 c0 test eax, eax - 000db 74 0d je SHORT $LN16@stbi__pnm_ - 000dd 48 c7 85 d8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv86[rbp], 0 - 000e8 eb 0b jmp SHORT $LN17@stbi__pnm_ -$LN16@stbi__pnm_: - 000ea 48 c7 85 d8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv86[rbp], 0 -$LN17@stbi__pnm_: - 000f5 48 8b 85 d8 00 - 00 00 mov rax, QWORD PTR tv86[rbp] - 000fc e9 7f 02 00 00 jmp $LN1@stbi__pnm_ -$LN4@stbi__pnm_: - -; 8433 : -; 8434 : *x = s->img_x; - - 00101 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR x$[rbp] - 00108 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0010f 8b 09 mov ecx, DWORD PTR [rcx] - 00111 89 08 mov DWORD PTR [rax], ecx - -; 8435 : *y = s->img_y; - - 00113 48 8b 85 10 01 - 00 00 mov rax, QWORD PTR y$[rbp] - 0011a 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00121 8b 49 04 mov ecx, DWORD PTR [rcx+4] - 00124 89 08 mov DWORD PTR [rax], ecx - -; 8436 : if (comp) - - 00126 48 83 bd 18 01 - 00 00 00 cmp QWORD PTR comp$[rbp], 0 - 0012e 74 13 je SHORT $LN5@stbi__pnm_ - -; 8437 : *comp = s->img_n; - - 00130 48 8b 85 18 01 - 00 00 mov rax, QWORD PTR comp$[rbp] - 00137 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0013e 8b 49 08 mov ecx, DWORD PTR [rcx+8] - 00141 89 08 mov DWORD PTR [rax], ecx -$LN5@stbi__pnm_: - -; 8438 : -; 8439 : if (!stbi__mad4sizes_valid(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8, 0)) - - 00143 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR ri$[rbp] - 0014a 8b 00 mov eax, DWORD PTR [rax] - 0014c 99 cdq - 0014d 83 e2 07 and edx, 7 - 00150 03 c2 add eax, edx - 00152 c1 f8 03 sar eax, 3 - 00155 c7 44 24 20 00 - 00 00 00 mov DWORD PTR [rsp+32], 0 - 0015d 44 8b c8 mov r9d, eax - 00160 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00167 44 8b 40 04 mov r8d, DWORD PTR [rax+4] - 0016b 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00172 8b 10 mov edx, DWORD PTR [rax] - 00174 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 0017b 8b 48 08 mov ecx, DWORD PTR [rax+8] - 0017e e8 00 00 00 00 call stbi__mad4sizes_valid - 00183 85 c0 test eax, eax - 00185 75 34 jne SHORT $LN6@stbi__pnm_ - -; 8440 : return stbi__errpuc("too large", "PNM too large"); - - 00187 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 0018e e8 00 00 00 00 call stbi__err - 00193 85 c0 test eax, eax - 00195 74 0d je SHORT $LN18@stbi__pnm_ - 00197 48 c7 85 d8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv138[rbp], 0 - 001a2 eb 0b jmp SHORT $LN19@stbi__pnm_ -$LN18@stbi__pnm_: - 001a4 48 c7 85 d8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv138[rbp], 0 -$LN19@stbi__pnm_: - 001af 48 8b 85 d8 00 - 00 00 mov rax, QWORD PTR tv138[rbp] - 001b6 e9 c5 01 00 00 jmp $LN1@stbi__pnm_ -$LN6@stbi__pnm_: - -; 8441 : -; 8442 : out = (stbi_uc *)stbi__malloc_mad4(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8, - - 001bb 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR ri$[rbp] - 001c2 8b 00 mov eax, DWORD PTR [rax] - 001c4 99 cdq - 001c5 83 e2 07 and edx, 7 - 001c8 03 c2 add eax, edx - 001ca c1 f8 03 sar eax, 3 - 001cd c7 44 24 20 00 - 00 00 00 mov DWORD PTR [rsp+32], 0 - 001d5 44 8b c8 mov r9d, eax - 001d8 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 001df 44 8b 40 04 mov r8d, DWORD PTR [rax+4] - 001e3 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 001ea 8b 10 mov edx, DWORD PTR [rax] - 001ec 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 001f3 8b 48 08 mov ecx, DWORD PTR [rax+8] - 001f6 e8 00 00 00 00 call stbi__malloc_mad4 - 001fb 48 89 45 08 mov QWORD PTR out$[rbp], rax - -; 8443 : 0); -; 8444 : if (!out) - - 001ff 48 83 7d 08 00 cmp QWORD PTR out$[rbp], 0 - 00204 75 34 jne SHORT $LN7@stbi__pnm_ - -; 8445 : return stbi__errpuc("outofmem", "Out of memory"); - - 00206 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 0020d e8 00 00 00 00 call stbi__err - 00212 85 c0 test eax, eax - 00214 74 0d je SHORT $LN20@stbi__pnm_ - 00216 48 c7 85 d8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv154[rbp], 0 - 00221 eb 0b jmp SHORT $LN21@stbi__pnm_ -$LN20@stbi__pnm_: - 00223 48 c7 85 d8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv154[rbp], 0 -$LN21@stbi__pnm_: - 0022e 48 8b 85 d8 00 - 00 00 mov rax, QWORD PTR tv154[rbp] - 00235 e9 46 01 00 00 jmp $LN1@stbi__pnm_ -$LN7@stbi__pnm_: - -; 8446 : if (!stbi__getn(s, out, s->img_n * s->img_x * s->img_y * (ri->bits_per_channel / 8))) { - - 0023a 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00241 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00248 8b 40 08 mov eax, DWORD PTR [rax+8] - 0024b 0f af 01 imul eax, DWORD PTR [rcx] - 0024e 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00255 0f af 41 04 imul eax, DWORD PTR [rcx+4] - 00259 89 85 d4 00 00 - 00 mov DWORD PTR tv160[rbp], eax - 0025f 48 8b 8d 28 01 - 00 00 mov rcx, QWORD PTR ri$[rbp] - 00266 8b 01 mov eax, DWORD PTR [rcx] - 00268 99 cdq - 00269 83 e2 07 and edx, 7 - 0026c 03 c2 add eax, edx - 0026e c1 f8 03 sar eax, 3 - 00271 8b 8d d4 00 00 - 00 mov ecx, DWORD PTR tv160[rbp] - 00277 0f af c8 imul ecx, eax - 0027a 8b c1 mov eax, ecx - 0027c 44 8b c0 mov r8d, eax - 0027f 48 8b 55 08 mov rdx, QWORD PTR out$[rbp] - 00283 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0028a e8 00 00 00 00 call stbi__getn - 0028f 85 c0 test eax, eax - 00291 75 3f jne SHORT $LN8@stbi__pnm_ - -; 8447 : STBI_FREE(out); - - 00293 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] - 00297 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 0029d 90 npad 1 - -; 8448 : return stbi__errpuc("bad PNM", "PNM file truncated"); - - 0029e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07IDKIDMGJ@bad?5PNM@ - 002a5 e8 00 00 00 00 call stbi__err - 002aa 85 c0 test eax, eax - 002ac 74 0d je SHORT $LN22@stbi__pnm_ - 002ae 48 c7 85 d8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv172[rbp], 0 - 002b9 eb 0b jmp SHORT $LN23@stbi__pnm_ -$LN22@stbi__pnm_: - 002bb 48 c7 85 d8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv172[rbp], 0 -$LN23@stbi__pnm_: - 002c6 48 8b 85 d8 00 - 00 00 mov rax, QWORD PTR tv172[rbp] - 002cd e9 ae 00 00 00 jmp $LN1@stbi__pnm_ -$LN8@stbi__pnm_: - -; 8449 : } -; 8450 : -; 8451 : if (req_comp && req_comp != s->img_n) { - - 002d2 83 bd 20 01 00 - 00 00 cmp DWORD PTR req_comp$[rbp], 0 - 002d9 0f 84 9d 00 00 - 00 je $LN9@stbi__pnm_ - 002df 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 002e6 8b 40 08 mov eax, DWORD PTR [rax+8] - 002e9 39 85 20 01 00 - 00 cmp DWORD PTR req_comp$[rbp], eax - 002ef 0f 84 87 00 00 - 00 je $LN9@stbi__pnm_ - -; 8452 : if (ri->bits_per_channel == 16) { - - 002f5 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR ri$[rbp] - 002fc 83 38 10 cmp DWORD PTR [rax], 16 - 002ff 75 38 jne SHORT $LN10@stbi__pnm_ - -; 8453 : out = (stbi_uc *)stbi__convert_format16((stbi__uint16 *)out, s->img_n, - - 00301 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00308 8b 40 04 mov eax, DWORD PTR [rax+4] - 0030b 89 44 24 20 mov DWORD PTR [rsp+32], eax - 0030f 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00316 44 8b 08 mov r9d, DWORD PTR [rax] - 00319 44 8b 85 20 01 - 00 00 mov r8d, DWORD PTR req_comp$[rbp] - 00320 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00327 8b 50 08 mov edx, DWORD PTR [rax+8] - 0032a 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] - 0032e e8 00 00 00 00 call stbi__convert_format16 - 00333 48 89 45 08 mov QWORD PTR out$[rbp], rax - -; 8454 : req_comp, s->img_x, s->img_y); -; 8455 : } else { - - 00337 eb 36 jmp SHORT $LN11@stbi__pnm_ -$LN10@stbi__pnm_: - -; 8456 : out = stbi__convert_format(out, s->img_n, req_comp, s->img_x, s->img_y); - - 00339 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00340 8b 40 04 mov eax, DWORD PTR [rax+4] - 00343 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00347 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 0034e 44 8b 08 mov r9d, DWORD PTR [rax] - 00351 44 8b 85 20 01 - 00 00 mov r8d, DWORD PTR req_comp$[rbp] - 00358 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 0035f 8b 50 08 mov edx, DWORD PTR [rax+8] - 00362 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] - 00366 e8 00 00 00 00 call stbi__convert_format - 0036b 48 89 45 08 mov QWORD PTR out$[rbp], rax -$LN11@stbi__pnm_: - -; 8457 : } -; 8458 : if (out == NULL) - - 0036f 48 83 7d 08 00 cmp QWORD PTR out$[rbp], 0 - 00374 75 06 jne SHORT $LN12@stbi__pnm_ - -; 8459 : return out; // stbi__convert_format frees input on failure - - 00376 48 8b 45 08 mov rax, QWORD PTR out$[rbp] - 0037a eb 04 jmp SHORT $LN1@stbi__pnm_ -$LN12@stbi__pnm_: -$LN9@stbi__pnm_: - -; 8460 : } -; 8461 : return out; - - 0037c 48 8b 45 08 mov rax, QWORD PTR out$[rbp] -$LN1@stbi__pnm_: - -; 8462 : } - - 00380 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00387 5f pop rdi - 00388 5d pop rbp - 00389 c3 ret 0 -stbi__pnm_load ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__pnm_test -_TEXT SEGMENT -p$ = 4 -t$ = 36 -s$ = 288 -stbi__pnm_test PROC ; COMDAT - -; 8407 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 8408 : char p, t; -; 8409 : p = (char)stbi__get8(s); - - 00020 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00027 e8 00 00 00 00 call stbi__get8 - 0002c 88 45 04 mov BYTE PTR p$[rbp], al - -; 8410 : t = (char)stbi__get8(s); - - 0002f 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00036 e8 00 00 00 00 call stbi__get8 - 0003b 88 45 24 mov BYTE PTR t$[rbp], al - -; 8411 : if (p != 'P' || (t != '5' && t != '6')) { - - 0003e 0f be 45 04 movsx eax, BYTE PTR p$[rbp] - 00042 83 f8 50 cmp eax, 80 ; 00000050H - 00045 75 12 jne SHORT $LN3@stbi__pnm_ - 00047 0f be 45 24 movsx eax, BYTE PTR t$[rbp] - 0004b 83 f8 35 cmp eax, 53 ; 00000035H - 0004e 74 1a je SHORT $LN2@stbi__pnm_ - 00050 0f be 45 24 movsx eax, BYTE PTR t$[rbp] - 00054 83 f8 36 cmp eax, 54 ; 00000036H - 00057 74 11 je SHORT $LN2@stbi__pnm_ -$LN3@stbi__pnm_: - -; 8412 : stbi__rewind(s); - - 00059 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00060 e8 00 00 00 00 call stbi__rewind - 00065 90 npad 1 - -; 8413 : return 0; - - 00066 33 c0 xor eax, eax - 00068 eb 05 jmp SHORT $LN1@stbi__pnm_ -$LN2@stbi__pnm_: - -; 8414 : } -; 8415 : return 1; - - 0006a b8 01 00 00 00 mov eax, 1 -$LN1@stbi__pnm_: - -; 8416 : } - - 0006f 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 00076 5f pop rdi - 00077 5d pop rbp - 00078 c3 ret 0 -stbi__pnm_test ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__gif_info -_TEXT SEGMENT -s$ = 224 -x$ = 232 -y$ = 240 -comp$ = 248 -stbi__gif_info PROC ; COMDAT - -; 7942 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 7943 : return stbi__gif_info_raw(s, x, y, comp); - - 0002f 4c 8b 8d f8 00 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00036 4c 8b 85 f0 00 - 00 00 mov r8, QWORD PTR y$[rbp] - 0003d 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00044 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0004b e8 00 00 00 00 call stbi__gif_info_raw - -; 7944 : } - - 00050 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00057 5f pop rdi - 00058 5d pop rbp - 00059 c3 ret 0 -stbi__gif_info ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__load_gif_main -_TEXT SEGMENT -layers$4 = 4 -u$5 = 40 -out$6 = 72 -two_back$7 = 104 -g$8 = 144 -stride$9 = 35092 -out_size$10 = 35124 -delays_size$11 = 35156 -tmp$12 = 35192 -new_delays$13 = 35224 -tv137 = 36776 -tv211 = 36776 -__$ArrayPad$ = 36784 -s$ = 36832 -delays$ = 36840 -x$ = 36848 -y$ = 36856 -z$ = 36864 -comp$ = 36872 -req_comp$ = 36880 -stbi__load_gif_main PROC ; COMDAT - -; 7819 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 b8 f8 8f 00 00 mov eax, 36856 ; 00008ff8H - 0001b e8 00 00 00 00 call __chkstk - 00020 48 2b e0 sub rsp, rax - 00023 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00028 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 0002d b9 72 22 00 00 mov ecx, 8818 ; 00002272H - 00032 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00037 f3 ab rep stosd - 00039 48 8b 8c 24 18 - 90 00 00 mov rcx, QWORD PTR [rsp+36888] - 00041 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00048 48 33 c5 xor rax, rbp - 0004b 48 89 85 b0 8f - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00052 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00059 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0005e 90 npad 1 - -; 7820 : if (stbi__gif_test(s)) { - - 0005f 48 8b 8d e0 8f - 00 00 mov rcx, QWORD PTR s$[rbp] - 00066 e8 00 00 00 00 call stbi__gif_test - 0006b 85 c0 test eax, eax - 0006d 0f 84 9a 03 00 - 00 je $LN5@stbi__load - -; 7821 : int layers = 0; - - 00073 c7 45 04 00 00 - 00 00 mov DWORD PTR layers$4[rbp], 0 - -; 7822 : stbi_uc *u = 0; - - 0007a 48 c7 45 28 00 - 00 00 00 mov QWORD PTR u$5[rbp], 0 - -; 7823 : stbi_uc *out = 0; - - 00082 48 c7 45 48 00 - 00 00 00 mov QWORD PTR out$6[rbp], 0 - -; 7824 : stbi_uc *two_back = 0; - - 0008a 48 c7 45 68 00 - 00 00 00 mov QWORD PTR two_back$7[rbp], 0 - -; 7825 : stbi__gif g; -; 7826 : int stride; -; 7827 : int out_size = 0; - - 00092 c7 85 34 89 00 - 00 00 00 00 00 mov DWORD PTR out_size$10[rbp], 0 - -; 7828 : int delays_size = 0; - - 0009c c7 85 54 89 00 - 00 00 00 00 00 mov DWORD PTR delays_size$11[rbp], 0 - -; 7829 : -; 7830 : STBI_NOTUSED(out_size); -; 7831 : STBI_NOTUSED(delays_size); -; 7832 : -; 7833 : memset(&g, 0, sizeof(g)); - - 000a6 41 b8 70 88 00 - 00 mov r8d, 34928 ; 00008870H - 000ac 33 d2 xor edx, edx - 000ae 48 8d 8d 90 00 - 00 00 lea rcx, QWORD PTR g$8[rbp] - 000b5 e8 00 00 00 00 call memset - 000ba 90 npad 1 - -; 7834 : if (delays) { - - 000bb 48 83 bd e8 8f - 00 00 00 cmp QWORD PTR delays$[rbp], 0 - 000c3 74 0e je SHORT $LN7@stbi__load - -; 7835 : *delays = 0; - - 000c5 48 8b 85 e8 8f - 00 00 mov rax, QWORD PTR delays$[rbp] - 000cc 48 c7 00 00 00 - 00 00 mov QWORD PTR [rax], 0 -$LN7@stbi__load: -$LN4@stbi__load: - -; 7836 : } -; 7837 : -; 7838 : do { -; 7839 : u = stbi__gif_load_next(s, &g, comp, req_comp, two_back); - - 000d3 48 8b 45 68 mov rax, QWORD PTR two_back$7[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 44 8b 8d 10 90 - 00 00 mov r9d, DWORD PTR req_comp$[rbp] - 000e3 4c 8b 85 08 90 - 00 00 mov r8, QWORD PTR comp$[rbp] - 000ea 48 8d 95 90 00 - 00 00 lea rdx, QWORD PTR g$8[rbp] - 000f1 48 8b 8d e0 8f - 00 00 mov rcx, QWORD PTR s$[rbp] - 000f8 e8 00 00 00 00 call stbi__gif_load_next - 000fd 48 89 45 28 mov QWORD PTR u$5[rbp], rax - -; 7840 : if (u == (stbi_uc *)s) - - 00101 48 8b 85 e0 8f - 00 00 mov rax, QWORD PTR s$[rbp] - 00108 48 39 45 28 cmp QWORD PTR u$5[rbp], rax - 0010c 75 08 jne SHORT $LN8@stbi__load - -; 7841 : u = 0; // end of animated gif marker - - 0010e 48 c7 45 28 00 - 00 00 00 mov QWORD PTR u$5[rbp], 0 -$LN8@stbi__load: - -; 7842 : -; 7843 : if (u) { - - 00116 48 83 7d 28 00 cmp QWORD PTR u$5[rbp], 0 - 0011b 0f 84 61 02 00 - 00 je $LN9@stbi__load - -; 7844 : *x = g.w; - - 00121 48 8b 85 f0 8f - 00 00 mov rax, QWORD PTR x$[rbp] - 00128 8b 8d 90 00 00 - 00 mov ecx, DWORD PTR g$8[rbp] - 0012e 89 08 mov DWORD PTR [rax], ecx - -; 7845 : *y = g.h; - - 00130 48 8b 85 f8 8f - 00 00 mov rax, QWORD PTR y$[rbp] - 00137 8b 8d 94 00 00 - 00 mov ecx, DWORD PTR g$8[rbp+4] - 0013d 89 08 mov DWORD PTR [rax], ecx - -; 7846 : ++layers; - - 0013f 8b 45 04 mov eax, DWORD PTR layers$4[rbp] - 00142 ff c0 inc eax - 00144 89 45 04 mov DWORD PTR layers$4[rbp], eax - -; 7847 : stride = g.w * g.h * 4; - - 00147 8b 85 90 00 00 - 00 mov eax, DWORD PTR g$8[rbp] - 0014d 0f af 85 94 00 - 00 00 imul eax, DWORD PTR g$8[rbp+4] - 00154 c1 e0 02 shl eax, 2 - 00157 89 85 14 89 00 - 00 mov DWORD PTR stride$9[rbp], eax - -; 7848 : -; 7849 : if (out) { - - 0015d 48 83 7d 48 00 cmp QWORD PTR out$6[rbp], 0 - 00162 0f 84 05 01 00 - 00 je $LN10@stbi__load - -; 7850 : void *tmp = (stbi_uc *)STBI_REALLOC_SIZED(out, out_size, - - 00168 8b 45 04 mov eax, DWORD PTR layers$4[rbp] - 0016b 0f af 85 14 89 - 00 00 imul eax, DWORD PTR stride$9[rbp] - 00172 48 98 cdqe - 00174 48 c7 c1 ff ff - ff ff mov rcx, -1 - 0017b 48 0f 40 c1 cmovo rax, rcx - 0017f 48 8b d0 mov rdx, rax - 00182 48 8b 4d 48 mov rcx, QWORD PTR out$6[rbp] - 00186 ff 15 00 00 00 - 00 call QWORD PTR __imp_realloc - 0018c 48 89 85 78 89 - 00 00 mov QWORD PTR tmp$12[rbp], rax - -; 7851 : layers * stride); -; 7852 : if (!tmp) - - 00193 48 83 bd 78 89 - 00 00 00 cmp QWORD PTR tmp$12[rbp], 0 - 0019b 75 1e jne SHORT $LN12@stbi__load - -; 7853 : return stbi__load_gif_main_outofmem(&g, out, - - 0019d 4c 8b 85 e8 8f - 00 00 mov r8, QWORD PTR delays$[rbp] - 001a4 48 8b 55 48 mov rdx, QWORD PTR out$6[rbp] - 001a8 48 8d 8d 90 00 - 00 00 lea rcx, QWORD PTR g$8[rbp] - 001af e8 00 00 00 00 call stbi__load_gif_main_outofmem - 001b4 e9 83 02 00 00 jmp $LN1@stbi__load - 001b9 eb 1b jmp SHORT $LN13@stbi__load -$LN12@stbi__load: - -; 7854 : delays); -; 7855 : else { -; 7856 : out = (stbi_uc *)tmp; - - 001bb 48 8b 85 78 89 - 00 00 mov rax, QWORD PTR tmp$12[rbp] - 001c2 48 89 45 48 mov QWORD PTR out$6[rbp], rax - -; 7857 : out_size = layers * stride; - - 001c6 8b 45 04 mov eax, DWORD PTR layers$4[rbp] - 001c9 0f af 85 14 89 - 00 00 imul eax, DWORD PTR stride$9[rbp] - 001d0 89 85 34 89 00 - 00 mov DWORD PTR out_size$10[rbp], eax -$LN13@stbi__load: - -; 7858 : } -; 7859 : -; 7860 : if (delays) { - - 001d6 48 83 bd e8 8f - 00 00 00 cmp QWORD PTR delays$[rbp], 0 - 001de 0f 84 84 00 00 - 00 je $LN14@stbi__load - -; 7861 : int *new_delays = (int *)STBI_REALLOC_SIZED( - - 001e4 48 63 45 04 movsxd rax, DWORD PTR layers$4[rbp] - 001e8 48 89 85 a8 8f - 00 00 mov QWORD PTR tv137[rbp], rax - 001ef b8 04 00 00 00 mov eax, 4 - 001f4 48 8b 8d a8 8f - 00 00 mov rcx, QWORD PTR tv137[rbp] - 001fb 48 f7 e1 mul rcx - 001fe 48 c7 c1 ff ff - ff ff mov rcx, -1 - 00205 48 0f 42 c1 cmovb rax, rcx - 00209 48 8b d0 mov rdx, rax - 0020c 48 8b 85 e8 8f - 00 00 mov rax, QWORD PTR delays$[rbp] - 00213 48 8b 08 mov rcx, QWORD PTR [rax] - 00216 ff 15 00 00 00 - 00 call QWORD PTR __imp_realloc - 0021c 48 89 85 98 89 - 00 00 mov QWORD PTR new_delays$13[rbp], rax - -; 7862 : *delays, delays_size, sizeof(int) * layers); -; 7863 : if (!new_delays) - - 00223 48 83 bd 98 89 - 00 00 00 cmp QWORD PTR new_delays$13[rbp], 0 - 0022b 75 1c jne SHORT $LN15@stbi__load - -; 7864 : return stbi__load_gif_main_outofmem(&g, out, - - 0022d 4c 8b 85 e8 8f - 00 00 mov r8, QWORD PTR delays$[rbp] - 00234 48 8b 55 48 mov rdx, QWORD PTR out$6[rbp] - 00238 48 8d 8d 90 00 - 00 00 lea rcx, QWORD PTR g$8[rbp] - 0023f e8 00 00 00 00 call stbi__load_gif_main_outofmem - 00244 e9 f3 01 00 00 jmp $LN1@stbi__load -$LN15@stbi__load: - -; 7865 : delays); -; 7866 : *delays = new_delays; - - 00249 48 8b 85 e8 8f - 00 00 mov rax, QWORD PTR delays$[rbp] - 00250 48 8b 8d 98 89 - 00 00 mov rcx, QWORD PTR new_delays$13[rbp] - 00257 48 89 08 mov QWORD PTR [rax], rcx - -; 7867 : delays_size = layers * sizeof(int); - - 0025a 48 63 45 04 movsxd rax, DWORD PTR layers$4[rbp] - 0025e 48 c1 e0 02 shl rax, 2 - 00262 89 85 54 89 00 - 00 mov DWORD PTR delays_size$11[rbp], eax -$LN14@stbi__load: - -; 7868 : } -; 7869 : } else { - - 00268 e9 a6 00 00 00 jmp $LN11@stbi__load -$LN10@stbi__load: - -; 7870 : out = (stbi_uc *)stbi__malloc(layers * stride); - - 0026d 8b 45 04 mov eax, DWORD PTR layers$4[rbp] - 00270 0f af 85 14 89 - 00 00 imul eax, DWORD PTR stride$9[rbp] - 00277 48 98 cdqe - 00279 48 8b c8 mov rcx, rax - 0027c e8 00 00 00 00 call stbi__malloc - 00281 48 89 45 48 mov QWORD PTR out$6[rbp], rax - -; 7871 : if (!out) - - 00285 48 83 7d 48 00 cmp QWORD PTR out$6[rbp], 0 - 0028a 75 1c jne SHORT $LN16@stbi__load - -; 7872 : return stbi__load_gif_main_outofmem(&g, out, - - 0028c 4c 8b 85 e8 8f - 00 00 mov r8, QWORD PTR delays$[rbp] - 00293 48 8b 55 48 mov rdx, QWORD PTR out$6[rbp] - 00297 48 8d 8d 90 00 - 00 00 lea rcx, QWORD PTR g$8[rbp] - 0029e e8 00 00 00 00 call stbi__load_gif_main_outofmem - 002a3 e9 94 01 00 00 jmp $LN1@stbi__load -$LN16@stbi__load: - -; 7873 : delays); -; 7874 : out_size = layers * stride; - - 002a8 8b 45 04 mov eax, DWORD PTR layers$4[rbp] - 002ab 0f af 85 14 89 - 00 00 imul eax, DWORD PTR stride$9[rbp] - 002b2 89 85 34 89 00 - 00 mov DWORD PTR out_size$10[rbp], eax - -; 7875 : if (delays) { - - 002b8 48 83 bd e8 8f - 00 00 00 cmp QWORD PTR delays$[rbp], 0 - 002c0 74 51 je SHORT $LN17@stbi__load - -; 7876 : *delays = (int *)stbi__malloc(layers * sizeof(int)); - - 002c2 48 63 45 04 movsxd rax, DWORD PTR layers$4[rbp] - 002c6 48 c1 e0 02 shl rax, 2 - 002ca 48 8b c8 mov rcx, rax - 002cd e8 00 00 00 00 call stbi__malloc - 002d2 48 8b 8d e8 8f - 00 00 mov rcx, QWORD PTR delays$[rbp] - 002d9 48 89 01 mov QWORD PTR [rcx], rax - -; 7877 : if (!*delays) - - 002dc 48 8b 85 e8 8f - 00 00 mov rax, QWORD PTR delays$[rbp] - 002e3 48 83 38 00 cmp QWORD PTR [rax], 0 - 002e7 75 1c jne SHORT $LN18@stbi__load - -; 7878 : return stbi__load_gif_main_outofmem(&g, out, - - 002e9 4c 8b 85 e8 8f - 00 00 mov r8, QWORD PTR delays$[rbp] - 002f0 48 8b 55 48 mov rdx, QWORD PTR out$6[rbp] - 002f4 48 8d 8d 90 00 - 00 00 lea rcx, QWORD PTR g$8[rbp] - 002fb e8 00 00 00 00 call stbi__load_gif_main_outofmem - 00300 e9 37 01 00 00 jmp $LN1@stbi__load -$LN18@stbi__load: - -; 7879 : delays); -; 7880 : delays_size = layers * sizeof(int); - - 00305 48 63 45 04 movsxd rax, DWORD PTR layers$4[rbp] - 00309 48 c1 e0 02 shl rax, 2 - 0030d 89 85 54 89 00 - 00 mov DWORD PTR delays_size$11[rbp], eax -$LN17@stbi__load: -$LN11@stbi__load: - -; 7881 : } -; 7882 : } -; 7883 : memcpy(out + ((layers - 1) * stride), u, stride); - - 00313 48 63 85 14 89 - 00 00 movsxd rax, DWORD PTR stride$9[rbp] - 0031a 8b 4d 04 mov ecx, DWORD PTR layers$4[rbp] - 0031d ff c9 dec ecx - 0031f 0f af 8d 14 89 - 00 00 imul ecx, DWORD PTR stride$9[rbp] - 00326 48 63 c9 movsxd rcx, ecx - 00329 48 8b 55 48 mov rdx, QWORD PTR out$6[rbp] - 0032d 48 03 d1 add rdx, rcx - 00330 48 8b ca mov rcx, rdx - 00333 4c 8b c0 mov r8, rax - 00336 48 8b 55 28 mov rdx, QWORD PTR u$5[rbp] - 0033a e8 00 00 00 00 call memcpy - 0033f 90 npad 1 - -; 7884 : if (layers >= 2) { - - 00340 83 7d 04 02 cmp DWORD PTR layers$4[rbp], 2 - 00344 7c 18 jl SHORT $LN19@stbi__load - -; 7885 : two_back = out - 2 * stride; - - 00346 8b 85 14 89 00 - 00 mov eax, DWORD PTR stride$9[rbp] - 0034c d1 e0 shl eax, 1 - 0034e 48 98 cdqe - 00350 48 8b 4d 48 mov rcx, QWORD PTR out$6[rbp] - 00354 48 2b c8 sub rcx, rax - 00357 48 8b c1 mov rax, rcx - 0035a 48 89 45 68 mov QWORD PTR two_back$7[rbp], rax -$LN19@stbi__load: - -; 7886 : } -; 7887 : -; 7888 : if (delays) { - - 0035e 48 83 bd e8 8f - 00 00 00 cmp QWORD PTR delays$[rbp], 0 - 00366 74 1a je SHORT $LN20@stbi__load - -; 7889 : (*delays)[layers - 1U] = g.delay; - - 00368 8b 45 04 mov eax, DWORD PTR layers$4[rbp] - 0036b ff c8 dec eax - 0036d 8b c0 mov eax, eax - 0036f 48 8b 8d e8 8f - 00 00 mov rcx, QWORD PTR delays$[rbp] - 00376 48 8b 09 mov rcx, QWORD PTR [rcx] - 00379 8b 95 f8 88 00 - 00 mov edx, DWORD PTR g$8[rbp+34920] - 0037f 89 14 81 mov DWORD PTR [rcx+rax*4], edx -$LN20@stbi__load: -$LN9@stbi__load: - -; 7890 : } -; 7891 : } -; 7892 : } while (u != 0); - - 00382 48 83 7d 28 00 cmp QWORD PTR u$5[rbp], 0 - 00387 0f 85 46 fd ff - ff jne $LN4@stbi__load - -; 7893 : -; 7894 : // free temp buffer; -; 7895 : STBI_FREE(g.out); - - 0038d 48 8b 8d 98 00 - 00 00 mov rcx, QWORD PTR g$8[rbp+8] - 00394 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 0039a 90 npad 1 - -; 7896 : STBI_FREE(g.history); - - 0039b 48 8b 8d a8 00 - 00 00 mov rcx, QWORD PTR g$8[rbp+24] - 003a2 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 003a8 90 npad 1 - -; 7897 : STBI_FREE(g.background); - - 003a9 48 8b 8d a0 00 - 00 00 mov rcx, QWORD PTR g$8[rbp+16] - 003b0 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 003b6 90 npad 1 - -; 7898 : -; 7899 : // do the final conversion after loading everything; -; 7900 : if (req_comp && req_comp != 4) - - 003b7 83 bd 10 90 00 - 00 00 cmp DWORD PTR req_comp$[rbp], 0 - 003be 74 39 je SHORT $LN21@stbi__load - 003c0 83 bd 10 90 00 - 00 04 cmp DWORD PTR req_comp$[rbp], 4 - 003c7 74 30 je SHORT $LN21@stbi__load - -; 7901 : out = stbi__convert_format(out, 4, req_comp, layers * g.w, g.h); - - 003c9 8b 45 04 mov eax, DWORD PTR layers$4[rbp] - 003cc 0f af 85 90 00 - 00 00 imul eax, DWORD PTR g$8[rbp] - 003d3 8b 8d 94 00 00 - 00 mov ecx, DWORD PTR g$8[rbp+4] - 003d9 89 4c 24 20 mov DWORD PTR [rsp+32], ecx - 003dd 44 8b c8 mov r9d, eax - 003e0 44 8b 85 10 90 - 00 00 mov r8d, DWORD PTR req_comp$[rbp] - 003e7 ba 04 00 00 00 mov edx, 4 - 003ec 48 8b 4d 48 mov rcx, QWORD PTR out$6[rbp] - 003f0 e8 00 00 00 00 call stbi__convert_format - 003f5 48 89 45 48 mov QWORD PTR out$6[rbp], rax -$LN21@stbi__load: - -; 7902 : -; 7903 : *z = layers; - - 003f9 48 8b 85 00 90 - 00 00 mov rax, QWORD PTR z$[rbp] - 00400 8b 4d 04 mov ecx, DWORD PTR layers$4[rbp] - 00403 89 08 mov DWORD PTR [rax], ecx - -; 7904 : return out; - - 00405 48 8b 45 48 mov rax, QWORD PTR out$6[rbp] - 00409 eb 31 jmp SHORT $LN1@stbi__load - -; 7905 : } else { - - 0040b eb 2f jmp SHORT $LN6@stbi__load -$LN5@stbi__load: - -; 7906 : return stbi__errpuc("not GIF", "Image was not as a gif type."); - - 0040d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07KMJLPAII@not?5GIF@ - 00414 e8 00 00 00 00 call stbi__err - 00419 85 c0 test eax, eax - 0041b 74 0d je SHORT $LN23@stbi__load - 0041d 48 c7 85 a8 8f - 00 00 00 00 00 - 00 mov QWORD PTR tv211[rbp], 0 - 00428 eb 0b jmp SHORT $LN24@stbi__load -$LN23@stbi__load: - 0042a 48 c7 85 a8 8f - 00 00 00 00 00 - 00 mov QWORD PTR tv211[rbp], 0 -$LN24@stbi__load: - 00435 48 8b 85 a8 8f - 00 00 mov rax, QWORD PTR tv211[rbp] -$LN6@stbi__load: -$LN1@stbi__load: - -; 7907 : } -; 7908 : } - - 0043c 48 8b f8 mov rdi, rax - 0043f 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00443 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__load_gif_main$rtcFrameData - 0044a e8 00 00 00 00 call _RTC_CheckStackVars - 0044f 48 8b c7 mov rax, rdi - 00452 48 8b 8d b0 8f - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00459 48 33 cd xor rcx, rbp - 0045c e8 00 00 00 00 call __security_check_cookie - 00461 48 8d a5 c8 8f - 00 00 lea rsp, QWORD PTR [rbp+36808] - 00468 5f pop rdi - 00469 5d pop rbp - 0046a c3 ret 0 -stbi__load_gif_main ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__gif_load -_TEXT SEGMENT -u$ = 8 -g$ = 48 -__$ArrayPad$ = 36520 -s$ = 36560 -x$ = 36568 -y$ = 36576 -comp$ = 36584 -req_comp$ = 36592 -ri$ = 36600 -stbi__gif_load PROC ; COMDAT - -; 7912 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 b8 e8 8e 00 00 mov eax, 36584 ; 00008ee8H - 0001b e8 00 00 00 00 call __chkstk - 00020 48 2b e0 sub rsp, rax - 00023 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00028 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 0002d b9 2e 22 00 00 mov ecx, 8750 ; 0000222eH - 00032 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00037 f3 ab rep stosd - 00039 48 8b 8c 24 08 - 8f 00 00 mov rcx, QWORD PTR [rsp+36616] - 00041 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00048 48 33 c5 xor rax, rbp - 0004b 48 89 85 a8 8e - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00052 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00059 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0005e 90 npad 1 - -; 7913 : stbi_uc *u = 0; - - 0005f 48 c7 45 08 00 - 00 00 00 mov QWORD PTR u$[rbp], 0 - -; 7914 : stbi__gif g; -; 7915 : memset(&g, 0, sizeof(g)); - - 00067 41 b8 70 88 00 - 00 mov r8d, 34928 ; 00008870H - 0006d 33 d2 xor edx, edx - 0006f 48 8d 4d 30 lea rcx, QWORD PTR g$[rbp] - 00073 e8 00 00 00 00 call memset - 00078 90 npad 1 - -; 7916 : STBI_NOTUSED(ri); -; 7917 : -; 7918 : u = stbi__gif_load_next(s, &g, comp, req_comp, 0); - - 00079 48 c7 44 24 20 - 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 00082 44 8b 8d f0 8e - 00 00 mov r9d, DWORD PTR req_comp$[rbp] - 00089 4c 8b 85 e8 8e - 00 00 mov r8, QWORD PTR comp$[rbp] - 00090 48 8d 55 30 lea rdx, QWORD PTR g$[rbp] - 00094 48 8b 8d d0 8e - 00 00 mov rcx, QWORD PTR s$[rbp] - 0009b e8 00 00 00 00 call stbi__gif_load_next - 000a0 48 89 45 08 mov QWORD PTR u$[rbp], rax - -; 7919 : if (u == (stbi_uc *)s) - - 000a4 48 8b 85 d0 8e - 00 00 mov rax, QWORD PTR s$[rbp] - 000ab 48 39 45 08 cmp QWORD PTR u$[rbp], rax - 000af 75 08 jne SHORT $LN2@stbi__gif_ - -; 7920 : u = 0; // end of animated gif marker - - 000b1 48 c7 45 08 00 - 00 00 00 mov QWORD PTR u$[rbp], 0 -$LN2@stbi__gif_: - -; 7921 : if (u) { - - 000b9 48 83 7d 08 00 cmp QWORD PTR u$[rbp], 0 - 000be 74 50 je SHORT $LN3@stbi__gif_ - -; 7922 : *x = g.w; - - 000c0 48 8b 85 d8 8e - 00 00 mov rax, QWORD PTR x$[rbp] - 000c7 8b 4d 30 mov ecx, DWORD PTR g$[rbp] - 000ca 89 08 mov DWORD PTR [rax], ecx - -; 7923 : *y = g.h; - - 000cc 48 8b 85 e0 8e - 00 00 mov rax, QWORD PTR y$[rbp] - 000d3 8b 4d 34 mov ecx, DWORD PTR g$[rbp+4] - 000d6 89 08 mov DWORD PTR [rax], ecx - -; 7924 : -; 7925 : // moved conversion to after successful load so that the same -; 7926 : // can be done for multiple frames. -; 7927 : if (req_comp && req_comp != 4) - - 000d8 83 bd f0 8e 00 - 00 00 cmp DWORD PTR req_comp$[rbp], 0 - 000df 74 2d je SHORT $LN5@stbi__gif_ - 000e1 83 bd f0 8e 00 - 00 04 cmp DWORD PTR req_comp$[rbp], 4 - 000e8 74 24 je SHORT $LN5@stbi__gif_ - -; 7928 : u = stbi__convert_format(u, 4, req_comp, g.w, g.h); - - 000ea 8b 45 34 mov eax, DWORD PTR g$[rbp+4] - 000ed 89 44 24 20 mov DWORD PTR [rsp+32], eax - 000f1 44 8b 4d 30 mov r9d, DWORD PTR g$[rbp] - 000f5 44 8b 85 f0 8e - 00 00 mov r8d, DWORD PTR req_comp$[rbp] - 000fc ba 04 00 00 00 mov edx, 4 - 00101 48 8b 4d 08 mov rcx, QWORD PTR u$[rbp] - 00105 e8 00 00 00 00 call stbi__convert_format - 0010a 48 89 45 08 mov QWORD PTR u$[rbp], rax -$LN5@stbi__gif_: - -; 7929 : } else if (g.out) { - - 0010e eb 12 jmp SHORT $LN4@stbi__gif_ -$LN3@stbi__gif_: - 00110 48 83 7d 38 00 cmp QWORD PTR g$[rbp+8], 0 - 00115 74 0b je SHORT $LN6@stbi__gif_ - -; 7930 : // if there was an error and we allocated an image buffer, free it! -; 7931 : STBI_FREE(g.out); - - 00117 48 8b 4d 38 mov rcx, QWORD PTR g$[rbp+8] - 0011b ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00121 90 npad 1 -$LN6@stbi__gif_: -$LN4@stbi__gif_: - -; 7932 : } -; 7933 : -; 7934 : // free buffers needed for multiple frame loading; -; 7935 : STBI_FREE(g.history); - - 00122 48 8b 4d 48 mov rcx, QWORD PTR g$[rbp+24] - 00126 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 0012c 90 npad 1 - -; 7936 : STBI_FREE(g.background); - - 0012d 48 8b 4d 40 mov rcx, QWORD PTR g$[rbp+16] - 00131 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00137 90 npad 1 - -; 7937 : -; 7938 : return u; - - 00138 48 8b 45 08 mov rax, QWORD PTR u$[rbp] - -; 7939 : } - - 0013c 48 8b f8 mov rdi, rax - 0013f 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00143 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__gif_load$rtcFrameData - 0014a e8 00 00 00 00 call _RTC_CheckStackVars - 0014f 48 8b c7 mov rax, rdi - 00152 48 8b 8d a8 8e - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00159 48 33 cd xor rcx, rbp - 0015c e8 00 00 00 00 call __security_check_cookie - 00161 48 8d a5 b8 8e - 00 00 lea rsp, QWORD PTR [rbp+36536] - 00168 5f pop rdi - 00169 5d pop rbp - 0016a c3 ret 0 -stbi__gif_load ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__gif_test -_TEXT SEGMENT -r$ = 4 -s$ = 256 -stbi__gif_test PROC ; COMDAT - -; 7417 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 7418 : int r = stbi__gif_test_raw(s); - - 00020 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00027 e8 00 00 00 00 call stbi__gif_test_raw - 0002c 89 45 04 mov DWORD PTR r$[rbp], eax - -; 7419 : stbi__rewind(s); - - 0002f 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00036 e8 00 00 00 00 call stbi__rewind - 0003b 90 npad 1 - -; 7420 : return r; - - 0003c 8b 45 04 mov eax, DWORD PTR r$[rbp] - -; 7421 : } - - 0003f 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00046 5f pop rdi - 00047 5d pop rbp - 00048 c3 ret 0 -stbi__gif_test ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__pic_info -_TEXT SEGMENT -act_comp$ = 4 -num_packets$ = 36 -chained$ = 68 -dummy$ = 100 -packets$ = 136 -packet$5 = 200 -tv152 = 404 -__$ArrayPad$ = 408 -s$ = 448 -x$ = 456 -y$ = 464 -comp$ = 472 -stbi__pic_info PROC ; COMDAT - -; 8333 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec c8 01 - 00 00 sub rsp, 456 ; 000001c8H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00027 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 e8 - 01 00 00 mov rcx, QWORD PTR [rsp+488] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 98 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 8334 : int act_comp = 0, num_packets = 0, chained, dummy; - - 00059 c7 45 04 00 00 - 00 00 mov DWORD PTR act_comp$[rbp], 0 - 00060 c7 45 24 00 00 - 00 00 mov DWORD PTR num_packets$[rbp], 0 - -; 8335 : stbi__pic_packet packets[10]; -; 8336 : -; 8337 : if (!x) - - 00067 48 83 bd c8 01 - 00 00 00 cmp QWORD PTR x$[rbp], 0 - 0006f 75 0b jne SHORT $LN5@stbi__pic_ - -; 8338 : x = &dummy; - - 00071 48 8d 45 64 lea rax, QWORD PTR dummy$[rbp] - 00075 48 89 85 c8 01 - 00 00 mov QWORD PTR x$[rbp], rax -$LN5@stbi__pic_: - -; 8339 : if (!y) - - 0007c 48 83 bd d0 01 - 00 00 00 cmp QWORD PTR y$[rbp], 0 - 00084 75 0b jne SHORT $LN6@stbi__pic_ - -; 8340 : y = &dummy; - - 00086 48 8d 45 64 lea rax, QWORD PTR dummy$[rbp] - 0008a 48 89 85 d0 01 - 00 00 mov QWORD PTR y$[rbp], rax -$LN6@stbi__pic_: - -; 8341 : if (!comp) - - 00091 48 83 bd d8 01 - 00 00 00 cmp QWORD PTR comp$[rbp], 0 - 00099 75 0b jne SHORT $LN7@stbi__pic_ - -; 8342 : comp = &dummy; - - 0009b 48 8d 45 64 lea rax, QWORD PTR dummy$[rbp] - 0009f 48 89 85 d8 01 - 00 00 mov QWORD PTR comp$[rbp], rax -$LN7@stbi__pic_: - -; 8343 : -; 8344 : if (!stbi__pic_is4(s, "\x53\x80\xF6\x34")) { - - 000a6 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_04KBFEPHFH@S?$IA?v4@ - 000ad 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000b4 e8 00 00 00 00 call stbi__pic_is4 - 000b9 85 c0 test eax, eax - 000bb 75 14 jne SHORT $LN8@stbi__pic_ - -; 8345 : stbi__rewind(s); - - 000bd 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000c4 e8 00 00 00 00 call stbi__rewind - 000c9 90 npad 1 - -; 8346 : return 0; - - 000ca 33 c0 xor eax, eax - 000cc e9 c3 01 00 00 jmp $LN1@stbi__pic_ -$LN8@stbi__pic_: - -; 8347 : } -; 8348 : -; 8349 : stbi__skip(s, 88); - - 000d1 ba 58 00 00 00 mov edx, 88 ; 00000058H - 000d6 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000dd e8 00 00 00 00 call stbi__skip - 000e2 90 npad 1 - -; 8350 : -; 8351 : *x = stbi__get16be(s); - - 000e3 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000ea e8 00 00 00 00 call stbi__get16be - 000ef 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR x$[rbp] - 000f6 89 01 mov DWORD PTR [rcx], eax - -; 8352 : *y = stbi__get16be(s); - - 000f8 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000ff e8 00 00 00 00 call stbi__get16be - 00104 48 8b 8d d0 01 - 00 00 mov rcx, QWORD PTR y$[rbp] - 0010b 89 01 mov DWORD PTR [rcx], eax - -; 8353 : if (stbi__at_eof(s)) { - - 0010d 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00114 e8 00 00 00 00 call stbi__at_eof - 00119 85 c0 test eax, eax - 0011b 74 14 je SHORT $LN9@stbi__pic_ - -; 8354 : stbi__rewind(s); - - 0011d 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00124 e8 00 00 00 00 call stbi__rewind - 00129 90 npad 1 - -; 8355 : return 0; - - 0012a 33 c0 xor eax, eax - 0012c e9 63 01 00 00 jmp $LN1@stbi__pic_ -$LN9@stbi__pic_: - -; 8356 : } -; 8357 : if ((*x) != 0 && (1 << 28) / (*x) < (*y)) { - - 00131 48 8b 85 c8 01 - 00 00 mov rax, QWORD PTR x$[rbp] - 00138 83 38 00 cmp DWORD PTR [rax], 0 - 0013b 74 2e je SHORT $LN10@stbi__pic_ - 0013d b8 00 00 00 10 mov eax, 268435456 ; 10000000H - 00142 99 cdq - 00143 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR x$[rbp] - 0014a f7 39 idiv DWORD PTR [rcx] - 0014c 48 8b 8d d0 01 - 00 00 mov rcx, QWORD PTR y$[rbp] - 00153 3b 01 cmp eax, DWORD PTR [rcx] - 00155 7d 14 jge SHORT $LN10@stbi__pic_ - -; 8358 : stbi__rewind(s); - - 00157 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0015e e8 00 00 00 00 call stbi__rewind - 00163 90 npad 1 - -; 8359 : return 0; - - 00164 33 c0 xor eax, eax - 00166 e9 29 01 00 00 jmp $LN1@stbi__pic_ -$LN10@stbi__pic_: - -; 8360 : } -; 8361 : -; 8362 : stbi__skip(s, 8); - - 0016b ba 08 00 00 00 mov edx, 8 - 00170 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00177 e8 00 00 00 00 call stbi__skip - 0017c 90 npad 1 -$LN4@stbi__pic_: - -; 8363 : -; 8364 : do { -; 8365 : stbi__pic_packet *packet; -; 8366 : -; 8367 : if (num_packets == sizeof(packets) / sizeof(packets[0])) - - 0017d 48 63 45 24 movsxd rax, DWORD PTR num_packets$[rbp] - 00181 48 83 f8 0a cmp rax, 10 - 00185 75 07 jne SHORT $LN11@stbi__pic_ - -; 8368 : return 0; - - 00187 33 c0 xor eax, eax - 00189 e9 06 01 00 00 jmp $LN1@stbi__pic_ -$LN11@stbi__pic_: - -; 8369 : -; 8370 : packet = &packets[num_packets++]; - - 0018e 48 63 45 24 movsxd rax, DWORD PTR num_packets$[rbp] - 00192 48 6b c0 03 imul rax, rax, 3 - 00196 48 8d 84 05 88 - 00 00 00 lea rax, QWORD PTR packets$[rbp+rax] - 0019e 48 89 85 c8 00 - 00 00 mov QWORD PTR packet$5[rbp], rax - 001a5 8b 45 24 mov eax, DWORD PTR num_packets$[rbp] - 001a8 ff c0 inc eax - 001aa 89 45 24 mov DWORD PTR num_packets$[rbp], eax - -; 8371 : chained = stbi__get8(s); - - 001ad 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001b4 e8 00 00 00 00 call stbi__get8 - 001b9 0f b6 c0 movzx eax, al - 001bc 89 45 44 mov DWORD PTR chained$[rbp], eax - -; 8372 : packet->size = stbi__get8(s); - - 001bf 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001c6 e8 00 00 00 00 call stbi__get8 - 001cb 48 8b 8d c8 00 - 00 00 mov rcx, QWORD PTR packet$5[rbp] - 001d2 88 01 mov BYTE PTR [rcx], al - -; 8373 : packet->type = stbi__get8(s); - - 001d4 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001db e8 00 00 00 00 call stbi__get8 - 001e0 48 8b 8d c8 00 - 00 00 mov rcx, QWORD PTR packet$5[rbp] - 001e7 88 41 01 mov BYTE PTR [rcx+1], al - -; 8374 : packet->channel = stbi__get8(s); - - 001ea 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001f1 e8 00 00 00 00 call stbi__get8 - 001f6 48 8b 8d c8 00 - 00 00 mov rcx, QWORD PTR packet$5[rbp] - 001fd 88 41 02 mov BYTE PTR [rcx+2], al - -; 8375 : act_comp |= packet->channel; - - 00200 48 8b 85 c8 00 - 00 00 mov rax, QWORD PTR packet$5[rbp] - 00207 0f b6 40 02 movzx eax, BYTE PTR [rax+2] - 0020b 8b 4d 04 mov ecx, DWORD PTR act_comp$[rbp] - 0020e 0b c8 or ecx, eax - 00210 8b c1 mov eax, ecx - 00212 89 45 04 mov DWORD PTR act_comp$[rbp], eax - -; 8376 : -; 8377 : if (stbi__at_eof(s)) { - - 00215 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0021c e8 00 00 00 00 call stbi__at_eof - 00221 85 c0 test eax, eax - 00223 74 11 je SHORT $LN12@stbi__pic_ - -; 8378 : stbi__rewind(s); - - 00225 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0022c e8 00 00 00 00 call stbi__rewind - 00231 90 npad 1 - -; 8379 : return 0; - - 00232 33 c0 xor eax, eax - 00234 eb 5e jmp SHORT $LN1@stbi__pic_ -$LN12@stbi__pic_: - -; 8380 : } -; 8381 : if (packet->size != 8) { - - 00236 48 8b 85 c8 00 - 00 00 mov rax, QWORD PTR packet$5[rbp] - 0023d 0f b6 00 movzx eax, BYTE PTR [rax] - 00240 83 f8 08 cmp eax, 8 - 00243 74 11 je SHORT $LN13@stbi__pic_ - -; 8382 : stbi__rewind(s); - - 00245 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0024c e8 00 00 00 00 call stbi__rewind - 00251 90 npad 1 - -; 8383 : return 0; - - 00252 33 c0 xor eax, eax - 00254 eb 3e jmp SHORT $LN1@stbi__pic_ -$LN13@stbi__pic_: - -; 8384 : } -; 8385 : } while (chained); - - 00256 83 7d 44 00 cmp DWORD PTR chained$[rbp], 0 - 0025a 0f 85 1d ff ff - ff jne $LN4@stbi__pic_ - -; 8386 : -; 8387 : *comp = (act_comp & 0x10 ? 4 : 3); - - 00260 8b 45 04 mov eax, DWORD PTR act_comp$[rbp] - 00263 83 e0 10 and eax, 16 - 00266 85 c0 test eax, eax - 00268 74 0c je SHORT $LN15@stbi__pic_ - 0026a c7 85 94 01 00 - 00 04 00 00 00 mov DWORD PTR tv152[rbp], 4 - 00274 eb 0a jmp SHORT $LN16@stbi__pic_ -$LN15@stbi__pic_: - 00276 c7 85 94 01 00 - 00 03 00 00 00 mov DWORD PTR tv152[rbp], 3 -$LN16@stbi__pic_: - 00280 48 8b 85 d8 01 - 00 00 mov rax, QWORD PTR comp$[rbp] - 00287 8b 8d 94 01 00 - 00 mov ecx, DWORD PTR tv152[rbp] - 0028d 89 08 mov DWORD PTR [rax], ecx - -; 8388 : -; 8389 : return 1; - - 0028f b8 01 00 00 00 mov eax, 1 -$LN1@stbi__pic_: - -; 8390 : } - - 00294 48 8b f8 mov rdi, rax - 00297 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0029b 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__pic_info$rtcFrameData - 002a2 e8 00 00 00 00 call _RTC_CheckStackVars - 002a7 48 8b c7 mov rax, rdi - 002aa 48 8b 8d 98 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 002b1 48 33 cd xor rcx, rbp - 002b4 e8 00 00 00 00 call __security_check_cookie - 002b9 48 8d a5 a8 01 - 00 00 lea rsp, QWORD PTR [rbp+424] - 002c0 5f pop rdi - 002c1 5d pop rbp - 002c2 c3 ret 0 -stbi__pic_info ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__pic_load -_TEXT SEGMENT -result$ = 8 -i$ = 36 -x$ = 68 -y$ = 100 -internal_comp$ = 132 -tv76 = 344 -tv81 = 344 -tv88 = 344 -tv130 = 344 -tv143 = 344 -__$ArrayPad$ = 352 -s$ = 400 -px$ = 408 -py$ = 416 -comp$ = 424 -req_comp$ = 432 -ri$ = 440 -stbi__pic_load PROC ; COMDAT - -; 7318 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec a8 01 - 00 00 sub rsp, 424 ; 000001a8H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00027 b9 2e 00 00 00 mov ecx, 46 ; 0000002eH - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 c8 - 01 00 00 mov rcx, QWORD PTR [rsp+456] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 60 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 7319 : stbi_uc *result; -; 7320 : int i, x, y, internal_comp; -; 7321 : STBI_NOTUSED(ri); -; 7322 : -; 7323 : if (!comp) - - 00059 48 83 bd a8 01 - 00 00 00 cmp QWORD PTR comp$[rbp], 0 - 00061 75 0e jne SHORT $LN5@stbi__pic_ - -; 7324 : comp = &internal_comp; - - 00063 48 8d 85 84 00 - 00 00 lea rax, QWORD PTR internal_comp$[rbp] - 0006a 48 89 85 a8 01 - 00 00 mov QWORD PTR comp$[rbp], rax -$LN5@stbi__pic_: - -; 7325 : -; 7326 : for (i = 0; i < 92; ++i) - - 00071 c7 45 24 00 00 - 00 00 mov DWORD PTR i$[rbp], 0 - 00078 eb 08 jmp SHORT $LN4@stbi__pic_ -$LN2@stbi__pic_: - 0007a 8b 45 24 mov eax, DWORD PTR i$[rbp] - 0007d ff c0 inc eax - 0007f 89 45 24 mov DWORD PTR i$[rbp], eax -$LN4@stbi__pic_: - 00082 83 7d 24 5c cmp DWORD PTR i$[rbp], 92 ; 0000005cH - 00086 7d 0f jge SHORT $LN3@stbi__pic_ - -; 7327 : stbi__get8(s); - - 00088 48 8b 8d 90 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0008f e8 00 00 00 00 call stbi__get8 - 00094 90 npad 1 - 00095 eb e3 jmp SHORT $LN2@stbi__pic_ -$LN3@stbi__pic_: - -; 7328 : -; 7329 : x = stbi__get16be(s); - - 00097 48 8b 8d 90 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0009e e8 00 00 00 00 call stbi__get16be - 000a3 89 45 44 mov DWORD PTR x$[rbp], eax - -; 7330 : y = stbi__get16be(s); - - 000a6 48 8b 8d 90 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000ad e8 00 00 00 00 call stbi__get16be - 000b2 89 45 64 mov DWORD PTR y$[rbp], eax - -; 7331 : -; 7332 : if (y > STBI_MAX_DIMENSIONS) - - 000b5 81 7d 64 00 00 - 00 01 cmp DWORD PTR y$[rbp], 16777216 ; 01000000H - 000bc 7e 34 jle SHORT $LN6@stbi__pic_ - -; 7333 : return stbi__errpuc("too large", "Very large image (corrupt?)"); - - 000be 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 000c5 e8 00 00 00 00 call stbi__err - 000ca 85 c0 test eax, eax - 000cc 74 0d je SHORT $LN14@stbi__pic_ - 000ce 48 c7 85 58 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv76[rbp], 0 - 000d9 eb 0b jmp SHORT $LN15@stbi__pic_ -$LN14@stbi__pic_: - 000db 48 c7 85 58 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv76[rbp], 0 -$LN15@stbi__pic_: - 000e6 48 8b 85 58 01 - 00 00 mov rax, QWORD PTR tv76[rbp] - 000ed e9 f8 01 00 00 jmp $LN1@stbi__pic_ -$LN6@stbi__pic_: - -; 7334 : if (x > STBI_MAX_DIMENSIONS) - - 000f2 81 7d 44 00 00 - 00 01 cmp DWORD PTR x$[rbp], 16777216 ; 01000000H - 000f9 7e 34 jle SHORT $LN7@stbi__pic_ - -; 7335 : return stbi__errpuc("too large", "Very large image (corrupt?)"); - - 000fb 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 00102 e8 00 00 00 00 call stbi__err - 00107 85 c0 test eax, eax - 00109 74 0d je SHORT $LN16@stbi__pic_ - 0010b 48 c7 85 58 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv81[rbp], 0 - 00116 eb 0b jmp SHORT $LN17@stbi__pic_ -$LN16@stbi__pic_: - 00118 48 c7 85 58 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv81[rbp], 0 -$LN17@stbi__pic_: - 00123 48 8b 85 58 01 - 00 00 mov rax, QWORD PTR tv81[rbp] - 0012a e9 bb 01 00 00 jmp $LN1@stbi__pic_ -$LN7@stbi__pic_: - -; 7336 : -; 7337 : if (stbi__at_eof(s)) - - 0012f 48 8b 8d 90 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00136 e8 00 00 00 00 call stbi__at_eof - 0013b 85 c0 test eax, eax - 0013d 74 34 je SHORT $LN8@stbi__pic_ - -; 7338 : return stbi__errpuc("bad file", "file too short (pic header)"); - - 0013f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08GGMBIFE@bad?5file@ - 00146 e8 00 00 00 00 call stbi__err - 0014b 85 c0 test eax, eax - 0014d 74 0d je SHORT $LN18@stbi__pic_ - 0014f 48 c7 85 58 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv88[rbp], 0 - 0015a eb 0b jmp SHORT $LN19@stbi__pic_ -$LN18@stbi__pic_: - 0015c 48 c7 85 58 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv88[rbp], 0 -$LN19@stbi__pic_: - 00167 48 8b 85 58 01 - 00 00 mov rax, QWORD PTR tv88[rbp] - 0016e e9 77 01 00 00 jmp $LN1@stbi__pic_ -$LN8@stbi__pic_: - -; 7339 : if (!stbi__mad3sizes_valid(x, y, 4, 0)) - - 00173 45 33 c9 xor r9d, r9d - 00176 41 b8 04 00 00 - 00 mov r8d, 4 - 0017c 8b 55 64 mov edx, DWORD PTR y$[rbp] - 0017f 8b 4d 44 mov ecx, DWORD PTR x$[rbp] - 00182 e8 00 00 00 00 call stbi__mad3sizes_valid - 00187 85 c0 test eax, eax - 00189 75 34 jne SHORT $LN9@stbi__pic_ - -; 7340 : return stbi__errpuc("too large", "PIC image too large to decode"); - - 0018b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 00192 e8 00 00 00 00 call stbi__err - 00197 85 c0 test eax, eax - 00199 74 0d je SHORT $LN20@stbi__pic_ - 0019b 48 c7 85 58 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv130[rbp], 0 - 001a6 eb 0b jmp SHORT $LN21@stbi__pic_ -$LN20@stbi__pic_: - 001a8 48 c7 85 58 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv130[rbp], 0 -$LN21@stbi__pic_: - 001b3 48 8b 85 58 01 - 00 00 mov rax, QWORD PTR tv130[rbp] - 001ba e9 2b 01 00 00 jmp $LN1@stbi__pic_ -$LN9@stbi__pic_: - -; 7341 : -; 7342 : stbi__get32be(s); //skip `ratio' - - 001bf 48 8b 8d 90 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001c6 e8 00 00 00 00 call stbi__get32be - 001cb 90 npad 1 - -; 7343 : stbi__get16be(s); //skip `fields' - - 001cc 48 8b 8d 90 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001d3 e8 00 00 00 00 call stbi__get16be - 001d8 90 npad 1 - -; 7344 : stbi__get16be(s); //skip `pad' - - 001d9 48 8b 8d 90 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001e0 e8 00 00 00 00 call stbi__get16be - 001e5 90 npad 1 - -; 7345 : -; 7346 : // intermediate buffer is RGBA -; 7347 : result = (stbi_uc *)stbi__malloc_mad3(x, y, 4, 0); - - 001e6 45 33 c9 xor r9d, r9d - 001e9 41 b8 04 00 00 - 00 mov r8d, 4 - 001ef 8b 55 64 mov edx, DWORD PTR y$[rbp] - 001f2 8b 4d 44 mov ecx, DWORD PTR x$[rbp] - 001f5 e8 00 00 00 00 call stbi__malloc_mad3 - 001fa 48 89 45 08 mov QWORD PTR result$[rbp], rax - -; 7348 : if (!result) - - 001fe 48 83 7d 08 00 cmp QWORD PTR result$[rbp], 0 - 00203 75 34 jne SHORT $LN10@stbi__pic_ - -; 7349 : return stbi__errpuc("outofmem", "Out of memory"); - - 00205 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 0020c e8 00 00 00 00 call stbi__err - 00211 85 c0 test eax, eax - 00213 74 0d je SHORT $LN22@stbi__pic_ - 00215 48 c7 85 58 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv143[rbp], 0 - 00220 eb 0b jmp SHORT $LN23@stbi__pic_ -$LN22@stbi__pic_: - 00222 48 c7 85 58 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv143[rbp], 0 -$LN23@stbi__pic_: - 0022d 48 8b 85 58 01 - 00 00 mov rax, QWORD PTR tv143[rbp] - 00234 e9 b1 00 00 00 jmp $LN1@stbi__pic_ -$LN10@stbi__pic_: - -; 7350 : memset(result, 0xff, x * y * 4); - - 00239 8b 45 44 mov eax, DWORD PTR x$[rbp] - 0023c 0f af 45 64 imul eax, DWORD PTR y$[rbp] - 00240 c1 e0 02 shl eax, 2 - 00243 48 98 cdqe - 00245 4c 8b c0 mov r8, rax - 00248 ba ff 00 00 00 mov edx, 255 ; 000000ffH - 0024d 48 8b 4d 08 mov rcx, QWORD PTR result$[rbp] - 00251 e8 00 00 00 00 call memset - 00256 90 npad 1 - -; 7351 : -; 7352 : if (!stbi__pic_load_core(s, x, y, comp, result)) { - - 00257 48 8b 45 08 mov rax, QWORD PTR result$[rbp] - 0025b 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 00260 4c 8b 8d a8 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00267 44 8b 45 64 mov r8d, DWORD PTR y$[rbp] - 0026b 8b 55 44 mov edx, DWORD PTR x$[rbp] - 0026e 48 8b 8d 90 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00275 e8 00 00 00 00 call stbi__pic_load_core - 0027a 48 85 c0 test rax, rax - 0027d 75 13 jne SHORT $LN11@stbi__pic_ - -; 7353 : STBI_FREE(result); - - 0027f 48 8b 4d 08 mov rcx, QWORD PTR result$[rbp] - 00283 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00289 90 npad 1 - -; 7354 : result = 0; - - 0028a 48 c7 45 08 00 - 00 00 00 mov QWORD PTR result$[rbp], 0 -$LN11@stbi__pic_: - -; 7355 : } -; 7356 : *px = x; - - 00292 48 8b 85 98 01 - 00 00 mov rax, QWORD PTR px$[rbp] - 00299 8b 4d 44 mov ecx, DWORD PTR x$[rbp] - 0029c 89 08 mov DWORD PTR [rax], ecx - -; 7357 : *py = y; - - 0029e 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR py$[rbp] - 002a5 8b 4d 64 mov ecx, DWORD PTR y$[rbp] - 002a8 89 08 mov DWORD PTR [rax], ecx - -; 7358 : if (req_comp == 0) - - 002aa 83 bd b0 01 00 - 00 00 cmp DWORD PTR req_comp$[rbp], 0 - 002b1 75 0f jne SHORT $LN12@stbi__pic_ - -; 7359 : req_comp = *comp; - - 002b3 48 8b 85 a8 01 - 00 00 mov rax, QWORD PTR comp$[rbp] - 002ba 8b 00 mov eax, DWORD PTR [rax] - 002bc 89 85 b0 01 00 - 00 mov DWORD PTR req_comp$[rbp], eax -$LN12@stbi__pic_: - -; 7360 : result = stbi__convert_format(result, 4, req_comp, x, y); - - 002c2 8b 45 64 mov eax, DWORD PTR y$[rbp] - 002c5 89 44 24 20 mov DWORD PTR [rsp+32], eax - 002c9 44 8b 4d 44 mov r9d, DWORD PTR x$[rbp] - 002cd 44 8b 85 b0 01 - 00 00 mov r8d, DWORD PTR req_comp$[rbp] - 002d4 ba 04 00 00 00 mov edx, 4 - 002d9 48 8b 4d 08 mov rcx, QWORD PTR result$[rbp] - 002dd e8 00 00 00 00 call stbi__convert_format - 002e2 48 89 45 08 mov QWORD PTR result$[rbp], rax - -; 7361 : -; 7362 : return result; - - 002e6 48 8b 45 08 mov rax, QWORD PTR result$[rbp] -$LN1@stbi__pic_: - -; 7363 : } - - 002ea 48 8b f8 mov rdi, rax - 002ed 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 002f1 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__pic_load$rtcFrameData - 002f8 e8 00 00 00 00 call _RTC_CheckStackVars - 002fd 48 8b c7 mov rax, rdi - 00300 48 8b 8d 60 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00307 48 33 cd xor rcx, rbp - 0030a e8 00 00 00 00 call __security_check_cookie - 0030f 48 8d a5 78 01 - 00 00 lea rsp, QWORD PTR [rbp+376] - 00316 5f pop rdi - 00317 5d pop rbp - 00318 c3 ret 0 -stbi__pic_load ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__pic_test -_TEXT SEGMENT -r$ = 4 -s$ = 256 -stbi__pic_test PROC ; COMDAT - -; 7366 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 7367 : int r = stbi__pic_test_core(s); - - 00020 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00027 e8 00 00 00 00 call stbi__pic_test_core - 0002c 89 45 04 mov DWORD PTR r$[rbp], eax - -; 7368 : stbi__rewind(s); - - 0002f 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00036 e8 00 00 00 00 call stbi__rewind - 0003b 90 npad 1 - -; 7369 : return r; - - 0003c 8b 45 04 mov eax, DWORD PTR r$[rbp] - -; 7370 : } - - 0003f 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00046 5f pop rdi - 00047 5d pop rbp - 00048 c3 ret 0 -stbi__pic_test ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__hdr_info -_TEXT SEGMENT -buffer$ = 16 -token$ = 1064 -valid$ = 1092 -dummy$ = 1124 -__$ArrayPad$ = 1720 -s$ = 1760 -x$ = 1768 -y$ = 1776 -comp$ = 1784 -stbi__hdr_info PROC ; COMDAT - -; 8188 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec e8 06 - 00 00 sub rsp, 1768 ; 000006e8H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00027 b9 22 01 00 00 mov ecx, 290 ; 00000122H - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 08 - 07 00 00 mov rcx, QWORD PTR [rsp+1800] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 b8 06 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 8189 : char buffer[STBI__HDR_BUFLEN]; -; 8190 : char *token; -; 8191 : int valid = 0; - - 00059 c7 85 44 04 00 - 00 00 00 00 00 mov DWORD PTR valid$[rbp], 0 - -; 8192 : int dummy; -; 8193 : -; 8194 : if (!x) - - 00063 48 83 bd e8 06 - 00 00 00 cmp QWORD PTR x$[rbp], 0 - 0006b 75 0e jne SHORT $LN7@stbi__hdr_ - -; 8195 : x = &dummy; - - 0006d 48 8d 85 64 04 - 00 00 lea rax, QWORD PTR dummy$[rbp] - 00074 48 89 85 e8 06 - 00 00 mov QWORD PTR x$[rbp], rax -$LN7@stbi__hdr_: - -; 8196 : if (!y) - - 0007b 48 83 bd f0 06 - 00 00 00 cmp QWORD PTR y$[rbp], 0 - 00083 75 0e jne SHORT $LN8@stbi__hdr_ - -; 8197 : y = &dummy; - - 00085 48 8d 85 64 04 - 00 00 lea rax, QWORD PTR dummy$[rbp] - 0008c 48 89 85 f0 06 - 00 00 mov QWORD PTR y$[rbp], rax -$LN8@stbi__hdr_: - -; 8198 : if (!comp) - - 00093 48 83 bd f8 06 - 00 00 00 cmp QWORD PTR comp$[rbp], 0 - 0009b 75 0e jne SHORT $LN9@stbi__hdr_ - -; 8199 : comp = &dummy; - - 0009d 48 8d 85 64 04 - 00 00 lea rax, QWORD PTR dummy$[rbp] - 000a4 48 89 85 f8 06 - 00 00 mov QWORD PTR comp$[rbp], rax -$LN9@stbi__hdr_: - -; 8200 : -; 8201 : if (stbi__hdr_test(s) == 0) { - - 000ab 48 8b 8d e0 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000b2 e8 00 00 00 00 call stbi__hdr_test - 000b7 85 c0 test eax, eax - 000b9 75 14 jne SHORT $LN10@stbi__hdr_ - -; 8202 : stbi__rewind(s); - - 000bb 48 8b 8d e0 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000c2 e8 00 00 00 00 call stbi__rewind - 000c7 90 npad 1 - -; 8203 : return 0; - - 000c8 33 c0 xor eax, eax - 000ca e9 82 01 00 00 jmp $LN1@stbi__hdr_ -$LN10@stbi__hdr_: -$LN2@stbi__hdr_: - -; 8204 : } -; 8205 : -; 8206 : for (;;) { -; 8207 : token = stbi__hdr_gettoken(s, buffer); - - 000cf 48 8d 55 10 lea rdx, QWORD PTR buffer$[rbp] - 000d3 48 8b 8d e0 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000da e8 00 00 00 00 call stbi__hdr_gettoken - 000df 48 89 85 28 04 - 00 00 mov QWORD PTR token$[rbp], rax - -; 8208 : if (token[0] == 0) - - 000e6 b8 01 00 00 00 mov eax, 1 - 000eb 48 6b c0 00 imul rax, rax, 0 - 000ef 48 8b 8d 28 04 - 00 00 mov rcx, QWORD PTR token$[rbp] - 000f6 0f be 04 01 movsx eax, BYTE PTR [rcx+rax] - 000fa 85 c0 test eax, eax - 000fc 75 02 jne SHORT $LN11@stbi__hdr_ - -; 8209 : break; - - 000fe eb 23 jmp SHORT $LN3@stbi__hdr_ -$LN11@stbi__hdr_: - -; 8210 : if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) - - 00100 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0BH@JFGBLLKC@FORMAT?$DN32?9bit_rle_rgbe@ - 00107 48 8b 8d 28 04 - 00 00 mov rcx, QWORD PTR token$[rbp] - 0010e e8 00 00 00 00 call strcmp - 00113 85 c0 test eax, eax - 00115 75 0a jne SHORT $LN12@stbi__hdr_ - -; 8211 : valid = 1; - - 00117 c7 85 44 04 00 - 00 01 00 00 00 mov DWORD PTR valid$[rbp], 1 -$LN12@stbi__hdr_: - -; 8212 : } - - 00121 eb ac jmp SHORT $LN2@stbi__hdr_ -$LN3@stbi__hdr_: - -; 8213 : -; 8214 : if (!valid) { - - 00123 83 bd 44 04 00 - 00 00 cmp DWORD PTR valid$[rbp], 0 - 0012a 75 14 jne SHORT $LN13@stbi__hdr_ - -; 8215 : stbi__rewind(s); - - 0012c 48 8b 8d e0 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00133 e8 00 00 00 00 call stbi__rewind - 00138 90 npad 1 - -; 8216 : return 0; - - 00139 33 c0 xor eax, eax - 0013b e9 11 01 00 00 jmp $LN1@stbi__hdr_ -$LN13@stbi__hdr_: - -; 8217 : } -; 8218 : token = stbi__hdr_gettoken(s, buffer); - - 00140 48 8d 55 10 lea rdx, QWORD PTR buffer$[rbp] - 00144 48 8b 8d e0 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0014b e8 00 00 00 00 call stbi__hdr_gettoken - 00150 48 89 85 28 04 - 00 00 mov QWORD PTR token$[rbp], rax - -; 8219 : if (strncmp(token, "-Y ", 3)) { - - 00157 41 b8 03 00 00 - 00 mov r8d, 3 - 0015d 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_03HKAKGGJN@?9Y?5@ - 00164 48 8b 8d 28 04 - 00 00 mov rcx, QWORD PTR token$[rbp] - 0016b ff 15 00 00 00 - 00 call QWORD PTR __imp_strncmp - 00171 85 c0 test eax, eax - 00173 74 14 je SHORT $LN14@stbi__hdr_ - -; 8220 : stbi__rewind(s); - - 00175 48 8b 8d e0 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0017c e8 00 00 00 00 call stbi__rewind - 00181 90 npad 1 - -; 8221 : return 0; - - 00182 33 c0 xor eax, eax - 00184 e9 c8 00 00 00 jmp $LN1@stbi__hdr_ -$LN14@stbi__hdr_: - -; 8222 : } -; 8223 : token += 3; - - 00189 48 8b 85 28 04 - 00 00 mov rax, QWORD PTR token$[rbp] - 00190 48 83 c0 03 add rax, 3 - 00194 48 89 85 28 04 - 00 00 mov QWORD PTR token$[rbp], rax - -; 8224 : *y = (int)strtol(token, &token, 10); - - 0019b 41 b8 0a 00 00 - 00 mov r8d, 10 - 001a1 48 8d 95 28 04 - 00 00 lea rdx, QWORD PTR token$[rbp] - 001a8 48 8b 8d 28 04 - 00 00 mov rcx, QWORD PTR token$[rbp] - 001af ff 15 00 00 00 - 00 call QWORD PTR __imp_strtol - 001b5 48 8b 8d f0 06 - 00 00 mov rcx, QWORD PTR y$[rbp] - 001bc 89 01 mov DWORD PTR [rcx], eax -$LN5@stbi__hdr_: - -; 8225 : while (*token == ' ') - - 001be 48 8b 85 28 04 - 00 00 mov rax, QWORD PTR token$[rbp] - 001c5 0f be 00 movsx eax, BYTE PTR [rax] - 001c8 83 f8 20 cmp eax, 32 ; 00000020H - 001cb 75 13 jne SHORT $LN6@stbi__hdr_ - -; 8226 : ++token; - - 001cd 48 8b 85 28 04 - 00 00 mov rax, QWORD PTR token$[rbp] - 001d4 48 ff c0 inc rax - 001d7 48 89 85 28 04 - 00 00 mov QWORD PTR token$[rbp], rax - 001de eb de jmp SHORT $LN5@stbi__hdr_ -$LN6@stbi__hdr_: - -; 8227 : if (strncmp(token, "+X ", 3)) { - - 001e0 41 b8 03 00 00 - 00 mov r8d, 3 - 001e6 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_03FOKDFDHG@?$CLX?5@ - 001ed 48 8b 8d 28 04 - 00 00 mov rcx, QWORD PTR token$[rbp] - 001f4 ff 15 00 00 00 - 00 call QWORD PTR __imp_strncmp - 001fa 85 c0 test eax, eax - 001fc 74 11 je SHORT $LN15@stbi__hdr_ - -; 8228 : stbi__rewind(s); - - 001fe 48 8b 8d e0 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00205 e8 00 00 00 00 call stbi__rewind - 0020a 90 npad 1 - -; 8229 : return 0; - - 0020b 33 c0 xor eax, eax - 0020d eb 42 jmp SHORT $LN1@stbi__hdr_ -$LN15@stbi__hdr_: - -; 8230 : } -; 8231 : token += 3; - - 0020f 48 8b 85 28 04 - 00 00 mov rax, QWORD PTR token$[rbp] - 00216 48 83 c0 03 add rax, 3 - 0021a 48 89 85 28 04 - 00 00 mov QWORD PTR token$[rbp], rax - -; 8232 : *x = (int)strtol(token, NULL, 10); - - 00221 41 b8 0a 00 00 - 00 mov r8d, 10 - 00227 33 d2 xor edx, edx - 00229 48 8b 8d 28 04 - 00 00 mov rcx, QWORD PTR token$[rbp] - 00230 ff 15 00 00 00 - 00 call QWORD PTR __imp_strtol - 00236 48 8b 8d e8 06 - 00 00 mov rcx, QWORD PTR x$[rbp] - 0023d 89 01 mov DWORD PTR [rcx], eax - -; 8233 : *comp = 3; - - 0023f 48 8b 85 f8 06 - 00 00 mov rax, QWORD PTR comp$[rbp] - 00246 c7 00 03 00 00 - 00 mov DWORD PTR [rax], 3 - -; 8234 : return 1; - - 0024c b8 01 00 00 00 mov eax, 1 -$LN1@stbi__hdr_: - -; 8235 : } - - 00251 48 8b f8 mov rdi, rax - 00254 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00258 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__hdr_info$rtcFrameData - 0025f e8 00 00 00 00 call _RTC_CheckStackVars - 00264 48 8b c7 mov rax, rdi - 00267 48 8b 8d b8 06 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0026e 48 33 cd xor rcx, rbp - 00271 e8 00 00 00 00 call __security_check_cookie - 00276 48 8d a5 c8 06 - 00 00 lea rsp, QWORD PTR [rbp+1736] - 0027d 5f pop rdi - 0027e 5d pop rbp - 0027f c3 ret 0 -stbi__hdr_info ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__hdr_load -_TEXT SEGMENT -buffer$ = 16 -token$ = 1064 -valid$ = 1092 -width$ = 1124 -height$ = 1156 -scanline$ = 1192 -hdr_data$ = 1224 -len$ = 1252 -count$ = 1284 -value$ = 1316 -i$ = 1348 -j$ = 1380 -k$ = 1412 -c1$ = 1444 -c2$ = 1476 -z$ = 1508 -headerToken$ = 1544 -rgbe$7 = 1572 -rgbe$8 = 1604 -nleft$9 = 1636 -tv309 = 2424 -tv78 = 2424 -tv94 = 2424 -tv138 = 2424 -tv155 = 2424 -tv165 = 2424 -tv170 = 2424 -tv183 = 2424 -tv194 = 2424 -tv256 = 2424 -tv267 = 2424 -tv290 = 2424 -__$ArrayPad$ = 2432 -s$ = 2480 -x$ = 2488 -y$ = 2496 -comp$ = 2504 -req_comp$ = 2512 -ri$ = 2520 -stbi__hdr_load PROC ; COMDAT - -; 8030 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec c8 09 - 00 00 sub rsp, 2504 ; 000009c8H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00027 b9 a6 01 00 00 mov ecx, 422 ; 000001a6H - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 e8 - 09 00 00 mov rcx, QWORD PTR [rsp+2536] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 80 09 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 8031 : char buffer[STBI__HDR_BUFLEN]; -; 8032 : char *token; -; 8033 : int valid = 0; - - 00059 c7 85 44 04 00 - 00 00 00 00 00 mov DWORD PTR valid$[rbp], 0 - -; 8034 : int width, height; -; 8035 : stbi_uc *scanline; -; 8036 : float *hdr_data; -; 8037 : int len; -; 8038 : unsigned char count, value; -; 8039 : int i, j, k, c1, c2, z; -; 8040 : const char *headerToken; -; 8041 : STBI_NOTUSED(ri); -; 8042 : -; 8043 : // Check identifier -; 8044 : headerToken = stbi__hdr_gettoken(s, buffer); - - 00063 48 8d 55 10 lea rdx, QWORD PTR buffer$[rbp] - 00067 48 8b 8d b0 09 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0006e e8 00 00 00 00 call stbi__hdr_gettoken - 00073 48 89 85 08 06 - 00 00 mov QWORD PTR headerToken$[rbp], rax - -; 8045 : if (strcmp(headerToken, "#?RADIANCE") != 0 && strcmp(headerToken, "#?RGBE") != 0) - - 0007a 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0L@NCPEAJBD@?$CD?$DPRADIANCE@ - 00081 48 8b 8d 08 06 - 00 00 mov rcx, QWORD PTR headerToken$[rbp] - 00088 e8 00 00 00 00 call strcmp - 0008d 85 c0 test eax, eax - 0008f 74 4b je SHORT $LN30@stbi__hdr_ - 00091 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_06NDOKKIDJ@?$CD?$DPRGBE@ - 00098 48 8b 8d 08 06 - 00 00 mov rcx, QWORD PTR headerToken$[rbp] - 0009f e8 00 00 00 00 call strcmp - 000a4 85 c0 test eax, eax - 000a6 74 34 je SHORT $LN30@stbi__hdr_ - -; 8046 : return stbi__errpf("not HDR", "Corrupt HDR image"); - - 000a8 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07NCIOKENI@not?5HDR@ - 000af e8 00 00 00 00 call stbi__err - 000b4 85 c0 test eax, eax - 000b6 74 0d je SHORT $LN58@stbi__hdr_ - 000b8 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv78[rbp], 0 - 000c3 eb 0b jmp SHORT $LN59@stbi__hdr_ -$LN58@stbi__hdr_: - 000c5 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv78[rbp], 0 -$LN59@stbi__hdr_: - 000d0 48 8b 85 78 09 - 00 00 mov rax, QWORD PTR tv78[rbp] - 000d7 e9 53 09 00 00 jmp $LN1@stbi__hdr_ -$LN30@stbi__hdr_: -$LN2@stbi__hdr_: - -; 8047 : -; 8048 : // Parse header -; 8049 : for (;;) { -; 8050 : token = stbi__hdr_gettoken(s, buffer); - - 000dc 48 8d 55 10 lea rdx, QWORD PTR buffer$[rbp] - 000e0 48 8b 8d b0 09 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000e7 e8 00 00 00 00 call stbi__hdr_gettoken - 000ec 48 89 85 28 04 - 00 00 mov QWORD PTR token$[rbp], rax - -; 8051 : if (token[0] == 0) - - 000f3 b8 01 00 00 00 mov eax, 1 - 000f8 48 6b c0 00 imul rax, rax, 0 - 000fc 48 8b 8d 28 04 - 00 00 mov rcx, QWORD PTR token$[rbp] - 00103 0f be 04 01 movsx eax, BYTE PTR [rcx+rax] - 00107 85 c0 test eax, eax - 00109 75 02 jne SHORT $LN31@stbi__hdr_ - -; 8052 : break; - - 0010b eb 23 jmp SHORT $LN3@stbi__hdr_ -$LN31@stbi__hdr_: - -; 8053 : if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) - - 0010d 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0BH@JFGBLLKC@FORMAT?$DN32?9bit_rle_rgbe@ - 00114 48 8b 8d 28 04 - 00 00 mov rcx, QWORD PTR token$[rbp] - 0011b e8 00 00 00 00 call strcmp - 00120 85 c0 test eax, eax - 00122 75 0a jne SHORT $LN32@stbi__hdr_ - -; 8054 : valid = 1; - - 00124 c7 85 44 04 00 - 00 01 00 00 00 mov DWORD PTR valid$[rbp], 1 -$LN32@stbi__hdr_: - -; 8055 : } - - 0012e eb ac jmp SHORT $LN2@stbi__hdr_ -$LN3@stbi__hdr_: - -; 8056 : -; 8057 : if (!valid) - - 00130 83 bd 44 04 00 - 00 00 cmp DWORD PTR valid$[rbp], 0 - 00137 75 34 jne SHORT $LN33@stbi__hdr_ - -; 8058 : return stbi__errpf("unsupported format", "Unsupported HDR format"); - - 00139 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BD@NKJFFLKL@unsupported?5format@ - 00140 e8 00 00 00 00 call stbi__err - 00145 85 c0 test eax, eax - 00147 74 0d je SHORT $LN60@stbi__hdr_ - 00149 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv94[rbp], 0 - 00154 eb 0b jmp SHORT $LN61@stbi__hdr_ -$LN60@stbi__hdr_: - 00156 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv94[rbp], 0 -$LN61@stbi__hdr_: - 00161 48 8b 85 78 09 - 00 00 mov rax, QWORD PTR tv94[rbp] - 00168 e9 c2 08 00 00 jmp $LN1@stbi__hdr_ -$LN33@stbi__hdr_: - -; 8059 : -; 8060 : // Parse width and height -; 8061 : // can't use sscanf() if we're not using stdio! -; 8062 : token = stbi__hdr_gettoken(s, buffer); - - 0016d 48 8d 55 10 lea rdx, QWORD PTR buffer$[rbp] - 00171 48 8b 8d b0 09 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00178 e8 00 00 00 00 call stbi__hdr_gettoken - 0017d 48 89 85 28 04 - 00 00 mov QWORD PTR token$[rbp], rax - -; 8063 : if (strncmp(token, "-Y ", 3)) - - 00184 41 b8 03 00 00 - 00 mov r8d, 3 - 0018a 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_03HKAKGGJN@?9Y?5@ - 00191 48 8b 8d 28 04 - 00 00 mov rcx, QWORD PTR token$[rbp] - 00198 ff 15 00 00 00 - 00 call QWORD PTR __imp_strncmp - 0019e 85 c0 test eax, eax - 001a0 74 34 je SHORT $LN34@stbi__hdr_ - -; 8064 : return stbi__errpf("unsupported data layout", "Unsupported HDR format"); - - 001a2 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BI@DCNDPIOH@unsupported?5data?5layout@ - 001a9 e8 00 00 00 00 call stbi__err - 001ae 85 c0 test eax, eax - 001b0 74 0d je SHORT $LN62@stbi__hdr_ - 001b2 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv138[rbp], 0 - 001bd eb 0b jmp SHORT $LN63@stbi__hdr_ -$LN62@stbi__hdr_: - 001bf 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv138[rbp], 0 -$LN63@stbi__hdr_: - 001ca 48 8b 85 78 09 - 00 00 mov rax, QWORD PTR tv138[rbp] - 001d1 e9 59 08 00 00 jmp $LN1@stbi__hdr_ -$LN34@stbi__hdr_: - -; 8065 : token += 3; - - 001d6 48 8b 85 28 04 - 00 00 mov rax, QWORD PTR token$[rbp] - 001dd 48 83 c0 03 add rax, 3 - 001e1 48 89 85 28 04 - 00 00 mov QWORD PTR token$[rbp], rax - -; 8066 : height = (int)strtol(token, &token, 10); - - 001e8 41 b8 0a 00 00 - 00 mov r8d, 10 - 001ee 48 8d 95 28 04 - 00 00 lea rdx, QWORD PTR token$[rbp] - 001f5 48 8b 8d 28 04 - 00 00 mov rcx, QWORD PTR token$[rbp] - 001fc ff 15 00 00 00 - 00 call QWORD PTR __imp_strtol - 00202 89 85 84 04 00 - 00 mov DWORD PTR height$[rbp], eax -$LN5@stbi__hdr_: - -; 8067 : while (*token == ' ') - - 00208 48 8b 85 28 04 - 00 00 mov rax, QWORD PTR token$[rbp] - 0020f 0f be 00 movsx eax, BYTE PTR [rax] - 00212 83 f8 20 cmp eax, 32 ; 00000020H - 00215 75 13 jne SHORT $LN6@stbi__hdr_ - -; 8068 : ++token; - - 00217 48 8b 85 28 04 - 00 00 mov rax, QWORD PTR token$[rbp] - 0021e 48 ff c0 inc rax - 00221 48 89 85 28 04 - 00 00 mov QWORD PTR token$[rbp], rax - 00228 eb de jmp SHORT $LN5@stbi__hdr_ -$LN6@stbi__hdr_: - -; 8069 : if (strncmp(token, "+X ", 3)) - - 0022a 41 b8 03 00 00 - 00 mov r8d, 3 - 00230 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_03FOKDFDHG@?$CLX?5@ - 00237 48 8b 8d 28 04 - 00 00 mov rcx, QWORD PTR token$[rbp] - 0023e ff 15 00 00 00 - 00 call QWORD PTR __imp_strncmp - 00244 85 c0 test eax, eax - 00246 74 34 je SHORT $LN35@stbi__hdr_ - -; 8070 : return stbi__errpf("unsupported data layout", "Unsupported HDR format"); - - 00248 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BI@DCNDPIOH@unsupported?5data?5layout@ - 0024f e8 00 00 00 00 call stbi__err - 00254 85 c0 test eax, eax - 00256 74 0d je SHORT $LN64@stbi__hdr_ - 00258 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv155[rbp], 0 - 00263 eb 0b jmp SHORT $LN65@stbi__hdr_ -$LN64@stbi__hdr_: - 00265 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv155[rbp], 0 -$LN65@stbi__hdr_: - 00270 48 8b 85 78 09 - 00 00 mov rax, QWORD PTR tv155[rbp] - 00277 e9 b3 07 00 00 jmp $LN1@stbi__hdr_ -$LN35@stbi__hdr_: - -; 8071 : token += 3; - - 0027c 48 8b 85 28 04 - 00 00 mov rax, QWORD PTR token$[rbp] - 00283 48 83 c0 03 add rax, 3 - 00287 48 89 85 28 04 - 00 00 mov QWORD PTR token$[rbp], rax - -; 8072 : width = (int)strtol(token, NULL, 10); - - 0028e 41 b8 0a 00 00 - 00 mov r8d, 10 - 00294 33 d2 xor edx, edx - 00296 48 8b 8d 28 04 - 00 00 mov rcx, QWORD PTR token$[rbp] - 0029d ff 15 00 00 00 - 00 call QWORD PTR __imp_strtol - 002a3 89 85 64 04 00 - 00 mov DWORD PTR width$[rbp], eax - -; 8073 : -; 8074 : if (height > STBI_MAX_DIMENSIONS) - - 002a9 81 bd 84 04 00 - 00 00 00 00 01 cmp DWORD PTR height$[rbp], 16777216 ; 01000000H - 002b3 7e 34 jle SHORT $LN36@stbi__hdr_ - -; 8075 : return stbi__errpf("too large", "Very large image (corrupt?)"); - - 002b5 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 002bc e8 00 00 00 00 call stbi__err - 002c1 85 c0 test eax, eax - 002c3 74 0d je SHORT $LN66@stbi__hdr_ - 002c5 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv165[rbp], 0 - 002d0 eb 0b jmp SHORT $LN67@stbi__hdr_ -$LN66@stbi__hdr_: - 002d2 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv165[rbp], 0 -$LN67@stbi__hdr_: - 002dd 48 8b 85 78 09 - 00 00 mov rax, QWORD PTR tv165[rbp] - 002e4 e9 46 07 00 00 jmp $LN1@stbi__hdr_ -$LN36@stbi__hdr_: - -; 8076 : if (width > STBI_MAX_DIMENSIONS) - - 002e9 81 bd 64 04 00 - 00 00 00 00 01 cmp DWORD PTR width$[rbp], 16777216 ; 01000000H - 002f3 7e 34 jle SHORT $LN37@stbi__hdr_ - -; 8077 : return stbi__errpf("too large", "Very large image (corrupt?)"); - - 002f5 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 002fc e8 00 00 00 00 call stbi__err - 00301 85 c0 test eax, eax - 00303 74 0d je SHORT $LN68@stbi__hdr_ - 00305 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv170[rbp], 0 - 00310 eb 0b jmp SHORT $LN69@stbi__hdr_ -$LN68@stbi__hdr_: - 00312 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv170[rbp], 0 -$LN69@stbi__hdr_: - 0031d 48 8b 85 78 09 - 00 00 mov rax, QWORD PTR tv170[rbp] - 00324 e9 06 07 00 00 jmp $LN1@stbi__hdr_ -$LN37@stbi__hdr_: - -; 8078 : -; 8079 : *x = width; - - 00329 48 8b 85 b8 09 - 00 00 mov rax, QWORD PTR x$[rbp] - 00330 8b 8d 64 04 00 - 00 mov ecx, DWORD PTR width$[rbp] - 00336 89 08 mov DWORD PTR [rax], ecx - -; 8080 : *y = height; - - 00338 48 8b 85 c0 09 - 00 00 mov rax, QWORD PTR y$[rbp] - 0033f 8b 8d 84 04 00 - 00 mov ecx, DWORD PTR height$[rbp] - 00345 89 08 mov DWORD PTR [rax], ecx - -; 8081 : -; 8082 : if (comp) - - 00347 48 83 bd c8 09 - 00 00 00 cmp QWORD PTR comp$[rbp], 0 - 0034f 74 0d je SHORT $LN38@stbi__hdr_ - -; 8083 : *comp = 3; - - 00351 48 8b 85 c8 09 - 00 00 mov rax, QWORD PTR comp$[rbp] - 00358 c7 00 03 00 00 - 00 mov DWORD PTR [rax], 3 -$LN38@stbi__hdr_: - -; 8084 : if (req_comp == 0) - - 0035e 83 bd d0 09 00 - 00 00 cmp DWORD PTR req_comp$[rbp], 0 - 00365 75 0a jne SHORT $LN39@stbi__hdr_ - -; 8085 : req_comp = 3; - - 00367 c7 85 d0 09 00 - 00 03 00 00 00 mov DWORD PTR req_comp$[rbp], 3 -$LN39@stbi__hdr_: - -; 8086 : -; 8087 : if (!stbi__mad4sizes_valid(width, height, req_comp, sizeof(float), 0)) - - 00371 c7 44 24 20 00 - 00 00 00 mov DWORD PTR [rsp+32], 0 - 00379 41 b9 04 00 00 - 00 mov r9d, 4 - 0037f 44 8b 85 d0 09 - 00 00 mov r8d, DWORD PTR req_comp$[rbp] - 00386 8b 95 84 04 00 - 00 mov edx, DWORD PTR height$[rbp] - 0038c 8b 8d 64 04 00 - 00 mov ecx, DWORD PTR width$[rbp] - 00392 e8 00 00 00 00 call stbi__mad4sizes_valid - 00397 85 c0 test eax, eax - 00399 75 34 jne SHORT $LN40@stbi__hdr_ - -; 8088 : return stbi__errpf("too large", "HDR image is too large"); - - 0039b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 003a2 e8 00 00 00 00 call stbi__err - 003a7 85 c0 test eax, eax - 003a9 74 0d je SHORT $LN70@stbi__hdr_ - 003ab 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv183[rbp], 0 - 003b6 eb 0b jmp SHORT $LN71@stbi__hdr_ -$LN70@stbi__hdr_: - 003b8 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv183[rbp], 0 -$LN71@stbi__hdr_: - 003c3 48 8b 85 78 09 - 00 00 mov rax, QWORD PTR tv183[rbp] - 003ca e9 60 06 00 00 jmp $LN1@stbi__hdr_ -$LN40@stbi__hdr_: - -; 8089 : -; 8090 : // Read data -; 8091 : hdr_data = (float *)stbi__malloc_mad4(width, height, req_comp, sizeof(float), 0); - - 003cf c7 44 24 20 00 - 00 00 00 mov DWORD PTR [rsp+32], 0 - 003d7 41 b9 04 00 00 - 00 mov r9d, 4 - 003dd 44 8b 85 d0 09 - 00 00 mov r8d, DWORD PTR req_comp$[rbp] - 003e4 8b 95 84 04 00 - 00 mov edx, DWORD PTR height$[rbp] - 003ea 8b 8d 64 04 00 - 00 mov ecx, DWORD PTR width$[rbp] - 003f0 e8 00 00 00 00 call stbi__malloc_mad4 - 003f5 48 89 85 c8 04 - 00 00 mov QWORD PTR hdr_data$[rbp], rax - -; 8092 : if (!hdr_data) - - 003fc 48 83 bd c8 04 - 00 00 00 cmp QWORD PTR hdr_data$[rbp], 0 - 00404 75 34 jne SHORT $LN41@stbi__hdr_ - -; 8093 : return stbi__errpf("outofmem", "Out of memory"); - - 00406 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 0040d e8 00 00 00 00 call stbi__err - 00412 85 c0 test eax, eax - 00414 74 0d je SHORT $LN72@stbi__hdr_ - 00416 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv194[rbp], 0 - 00421 eb 0b jmp SHORT $LN73@stbi__hdr_ -$LN72@stbi__hdr_: - 00423 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv194[rbp], 0 -$LN73@stbi__hdr_: - 0042e 48 8b 85 78 09 - 00 00 mov rax, QWORD PTR tv194[rbp] - 00435 e9 f5 05 00 00 jmp $LN1@stbi__hdr_ -$LN41@stbi__hdr_: - -; 8094 : -; 8095 : // Load image data -; 8096 : // image data is stored as some number of sca -; 8097 : if (width < 8 || width >= 32768) { - - 0043a 83 bd 64 04 00 - 00 08 cmp DWORD PTR width$[rbp], 8 - 00441 7c 10 jl SHORT $LN44@stbi__hdr_ - 00443 81 bd 64 04 00 - 00 00 80 00 00 cmp DWORD PTR width$[rbp], 32768 ; 00008000H - 0044d 0f 8c c9 00 00 - 00 jl $LN42@stbi__hdr_ -$LN44@stbi__hdr_: - -; 8098 : // Read flat data -; 8099 : for (j = 0; j < height; ++j) { - - 00453 c7 85 64 05 00 - 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 - 0045d eb 0e jmp SHORT $LN9@stbi__hdr_ -$LN7@stbi__hdr_: - 0045f 8b 85 64 05 00 - 00 mov eax, DWORD PTR j$[rbp] - 00465 ff c0 inc eax - 00467 89 85 64 05 00 - 00 mov DWORD PTR j$[rbp], eax -$LN9@stbi__hdr_: - 0046d 8b 85 84 04 00 - 00 mov eax, DWORD PTR height$[rbp] - 00473 39 85 64 05 00 - 00 cmp DWORD PTR j$[rbp], eax - 00479 0f 8d 98 00 00 - 00 jge $LN8@stbi__hdr_ - -; 8100 : for (i = 0; i < width; ++i) { - - 0047f c7 85 44 05 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 00489 eb 0e jmp SHORT $LN12@stbi__hdr_ -$LN10@stbi__hdr_: - 0048b 8b 85 44 05 00 - 00 mov eax, DWORD PTR i$[rbp] - 00491 ff c0 inc eax - 00493 89 85 44 05 00 - 00 mov DWORD PTR i$[rbp], eax -$LN12@stbi__hdr_: - 00499 8b 85 64 04 00 - 00 mov eax, DWORD PTR width$[rbp] - 0049f 39 85 44 05 00 - 00 cmp DWORD PTR i$[rbp], eax - 004a5 7d 6b jge SHORT $LN11@stbi__hdr_ -$main_decode_loop$82: - -; 8101 : stbi_uc rgbe[4]; -; 8102 : main_decode_loop: -; 8103 : stbi__getn(s, rgbe, 4); - - 004a7 41 b8 04 00 00 - 00 mov r8d, 4 - 004ad 48 8d 95 24 06 - 00 00 lea rdx, QWORD PTR rgbe$7[rbp] - 004b4 48 8b 8d b0 09 - 00 00 mov rcx, QWORD PTR s$[rbp] - 004bb e8 00 00 00 00 call stbi__getn - 004c0 90 npad 1 - -; 8104 : stbi__hdr_convert(hdr_data + j * width * req_comp + i * req_comp, - - 004c1 8b 85 64 05 00 - 00 mov eax, DWORD PTR j$[rbp] - 004c7 0f af 85 64 04 - 00 00 imul eax, DWORD PTR width$[rbp] - 004ce 0f af 85 d0 09 - 00 00 imul eax, DWORD PTR req_comp$[rbp] - 004d5 48 98 cdqe - 004d7 48 8b 8d c8 04 - 00 00 mov rcx, QWORD PTR hdr_data$[rbp] - 004de 48 8d 04 81 lea rax, QWORD PTR [rcx+rax*4] - 004e2 8b 8d 44 05 00 - 00 mov ecx, DWORD PTR i$[rbp] - 004e8 0f af 8d d0 09 - 00 00 imul ecx, DWORD PTR req_comp$[rbp] - 004ef 48 63 c9 movsxd rcx, ecx - 004f2 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] - 004f6 44 8b 85 d0 09 - 00 00 mov r8d, DWORD PTR req_comp$[rbp] - 004fd 48 8d 95 24 06 - 00 00 lea rdx, QWORD PTR rgbe$7[rbp] - 00504 48 8b c8 mov rcx, rax - 00507 e8 00 00 00 00 call stbi__hdr_convert - 0050c 90 npad 1 - -; 8105 : rgbe, req_comp); -; 8106 : } - - 0050d e9 79 ff ff ff jmp $LN10@stbi__hdr_ -$LN11@stbi__hdr_: - -; 8107 : } - - 00512 e9 48 ff ff ff jmp $LN7@stbi__hdr_ -$LN8@stbi__hdr_: - -; 8108 : } else { - - 00517 e9 0c 05 00 00 jmp $LN43@stbi__hdr_ -$LN42@stbi__hdr_: - -; 8109 : // Read RLE-encoded data -; 8110 : scanline = NULL; - - 0051c 48 c7 85 a8 04 - 00 00 00 00 00 - 00 mov QWORD PTR scanline$[rbp], 0 - -; 8111 : -; 8112 : for (j = 0; j < height; ++j) { - - 00527 c7 85 64 05 00 - 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 - 00531 eb 0e jmp SHORT $LN15@stbi__hdr_ -$LN13@stbi__hdr_: - 00533 8b 85 64 05 00 - 00 mov eax, DWORD PTR j$[rbp] - 00539 ff c0 inc eax - 0053b 89 85 64 05 00 - 00 mov DWORD PTR j$[rbp], eax -$LN15@stbi__hdr_: - 00541 8b 85 84 04 00 - 00 mov eax, DWORD PTR height$[rbp] - 00547 39 85 64 05 00 - 00 cmp DWORD PTR j$[rbp], eax - 0054d 0f 8d bd 04 00 - 00 jge $LN14@stbi__hdr_ - -; 8113 : c1 = stbi__get8(s); - - 00553 48 8b 8d b0 09 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0055a e8 00 00 00 00 call stbi__get8 - 0055f 0f b6 c0 movzx eax, al - 00562 89 85 a4 05 00 - 00 mov DWORD PTR c1$[rbp], eax - -; 8114 : c2 = stbi__get8(s); - - 00568 48 8b 8d b0 09 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0056f e8 00 00 00 00 call stbi__get8 - 00574 0f b6 c0 movzx eax, al - 00577 89 85 c4 05 00 - 00 mov DWORD PTR c2$[rbp], eax - -; 8115 : len = stbi__get8(s); - - 0057d 48 8b 8d b0 09 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00584 e8 00 00 00 00 call stbi__get8 - 00589 0f b6 c0 movzx eax, al - 0058c 89 85 e4 04 00 - 00 mov DWORD PTR len$[rbp], eax - -; 8116 : if (c1 != 2 || c2 != 2 || (len & 0x80)) { - - 00592 83 bd a4 05 00 - 00 02 cmp DWORD PTR c1$[rbp], 2 - 00599 75 1c jne SHORT $LN46@stbi__hdr_ - 0059b 83 bd c4 05 00 - 00 02 cmp DWORD PTR c2$[rbp], 2 - 005a2 75 13 jne SHORT $LN46@stbi__hdr_ - 005a4 8b 85 e4 04 00 - 00 mov eax, DWORD PTR len$[rbp] - 005aa 25 80 00 00 00 and eax, 128 ; 00000080H - 005af 85 c0 test eax, eax - 005b1 0f 84 a3 00 00 - 00 je $LN45@stbi__hdr_ -$LN46@stbi__hdr_: - -; 8117 : // not run-length encoded, so we have to actually use THIS data as a decoded -; 8118 : // pixel (note this can't be a valid pixel--one of RGB must be >= 128) -; 8119 : stbi_uc rgbe[4]; -; 8120 : rgbe[0] = (stbi_uc)c1; - - 005b7 b8 01 00 00 00 mov eax, 1 - 005bc 48 6b c0 00 imul rax, rax, 0 - 005c0 0f b6 8d a4 05 - 00 00 movzx ecx, BYTE PTR c1$[rbp] - 005c7 88 8c 05 44 06 - 00 00 mov BYTE PTR rgbe$8[rbp+rax], cl - -; 8121 : rgbe[1] = (stbi_uc)c2; - - 005ce b8 01 00 00 00 mov eax, 1 - 005d3 48 6b c0 01 imul rax, rax, 1 - 005d7 0f b6 8d c4 05 - 00 00 movzx ecx, BYTE PTR c2$[rbp] - 005de 88 8c 05 44 06 - 00 00 mov BYTE PTR rgbe$8[rbp+rax], cl - -; 8122 : rgbe[2] = (stbi_uc)len; - - 005e5 b8 01 00 00 00 mov eax, 1 - 005ea 48 6b c0 02 imul rax, rax, 2 - 005ee 0f b6 8d e4 04 - 00 00 movzx ecx, BYTE PTR len$[rbp] - 005f5 88 8c 05 44 06 - 00 00 mov BYTE PTR rgbe$8[rbp+rax], cl - -; 8123 : rgbe[3] = (stbi_uc)stbi__get8(s); - - 005fc 48 8b 8d b0 09 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00603 e8 00 00 00 00 call stbi__get8 - 00608 b9 01 00 00 00 mov ecx, 1 - 0060d 48 6b c9 03 imul rcx, rcx, 3 - 00611 88 84 0d 44 06 - 00 00 mov BYTE PTR rgbe$8[rbp+rcx], al - -; 8124 : stbi__hdr_convert(hdr_data, rgbe, req_comp); - - 00618 44 8b 85 d0 09 - 00 00 mov r8d, DWORD PTR req_comp$[rbp] - 0061f 48 8d 95 44 06 - 00 00 lea rdx, QWORD PTR rgbe$8[rbp] - 00626 48 8b 8d c8 04 - 00 00 mov rcx, QWORD PTR hdr_data$[rbp] - 0062d e8 00 00 00 00 call stbi__hdr_convert - 00632 90 npad 1 - -; 8125 : i = 1; - - 00633 c7 85 44 05 00 - 00 01 00 00 00 mov DWORD PTR i$[rbp], 1 - -; 8126 : j = 0; - - 0063d c7 85 64 05 00 - 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 - -; 8127 : STBI_FREE(scanline); - - 00647 48 8b 8d a8 04 - 00 00 mov rcx, QWORD PTR scanline$[rbp] - 0064e ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00654 90 npad 1 - -; 8128 : goto main_decode_loop; // yes, this makes no sense - - 00655 e9 4d fe ff ff jmp $main_decode_loop$82 -$LN45@stbi__hdr_: - -; 8129 : } -; 8130 : len <<= 8; - - 0065a 8b 85 e4 04 00 - 00 mov eax, DWORD PTR len$[rbp] - 00660 c1 e0 08 shl eax, 8 - 00663 89 85 e4 04 00 - 00 mov DWORD PTR len$[rbp], eax - -; 8131 : len |= stbi__get8(s); - - 00669 48 8b 8d b0 09 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00670 e8 00 00 00 00 call stbi__get8 - 00675 0f b6 c0 movzx eax, al - 00678 8b 8d e4 04 00 - 00 mov ecx, DWORD PTR len$[rbp] - 0067e 0b c8 or ecx, eax - 00680 8b c1 mov eax, ecx - 00682 89 85 e4 04 00 - 00 mov DWORD PTR len$[rbp], eax - -; 8132 : if (len != width) { - - 00688 8b 85 64 04 00 - 00 mov eax, DWORD PTR width$[rbp] - 0068e 39 85 e4 04 00 - 00 cmp DWORD PTR len$[rbp], eax - 00694 74 50 je SHORT $LN47@stbi__hdr_ - -; 8133 : STBI_FREE(hdr_data); - - 00696 48 8b 8d c8 04 - 00 00 mov rcx, QWORD PTR hdr_data$[rbp] - 0069d ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 006a3 90 npad 1 - -; 8134 : STBI_FREE(scanline); - - 006a4 48 8b 8d a8 04 - 00 00 mov rcx, QWORD PTR scanline$[rbp] - 006ab ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 006b1 90 npad 1 - -; 8135 : return stbi__errpf("invalid decoded scanline length", - - 006b2 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0CA@JBEOCDFN@invalid?5decoded?5scanline?5length@ - 006b9 e8 00 00 00 00 call stbi__err - 006be 85 c0 test eax, eax - 006c0 74 0d je SHORT $LN74@stbi__hdr_ - 006c2 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv256[rbp], 0 - 006cd eb 0b jmp SHORT $LN75@stbi__hdr_ -$LN74@stbi__hdr_: - 006cf 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv256[rbp], 0 -$LN75@stbi__hdr_: - 006da 48 8b 85 78 09 - 00 00 mov rax, QWORD PTR tv256[rbp] - 006e1 e9 49 03 00 00 jmp $LN1@stbi__hdr_ -$LN47@stbi__hdr_: - -; 8136 : "corrupt HDR"); -; 8137 : } -; 8138 : if (scanline == NULL) { - - 006e6 48 83 bd a8 04 - 00 00 00 cmp QWORD PTR scanline$[rbp], 0 - 006ee 75 66 jne SHORT $LN48@stbi__hdr_ - -; 8139 : scanline = (stbi_uc *)stbi__malloc_mad2(width, 4, 0); - - 006f0 45 33 c0 xor r8d, r8d - 006f3 ba 04 00 00 00 mov edx, 4 - 006f8 8b 8d 64 04 00 - 00 mov ecx, DWORD PTR width$[rbp] - 006fe e8 00 00 00 00 call stbi__malloc_mad2 - 00703 48 89 85 a8 04 - 00 00 mov QWORD PTR scanline$[rbp], rax - -; 8140 : if (!scanline) { - - 0070a 48 83 bd a8 04 - 00 00 00 cmp QWORD PTR scanline$[rbp], 0 - 00712 75 42 jne SHORT $LN49@stbi__hdr_ - -; 8141 : STBI_FREE(hdr_data); - - 00714 48 8b 8d c8 04 - 00 00 mov rcx, QWORD PTR hdr_data$[rbp] - 0071b ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00721 90 npad 1 - -; 8142 : return stbi__errpf("outofmem", "Out of memory"); - - 00722 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 00729 e8 00 00 00 00 call stbi__err - 0072e 85 c0 test eax, eax - 00730 74 0d je SHORT $LN76@stbi__hdr_ - 00732 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv267[rbp], 0 - 0073d eb 0b jmp SHORT $LN77@stbi__hdr_ -$LN76@stbi__hdr_: - 0073f 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv267[rbp], 0 -$LN77@stbi__hdr_: - 0074a 48 8b 85 78 09 - 00 00 mov rax, QWORD PTR tv267[rbp] - 00751 e9 d9 02 00 00 jmp $LN1@stbi__hdr_ -$LN49@stbi__hdr_: -$LN48@stbi__hdr_: - -; 8143 : } -; 8144 : } -; 8145 : -; 8146 : for (k = 0; k < 4; ++k) { - - 00756 c7 85 84 05 00 - 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 - 00760 eb 0e jmp SHORT $LN18@stbi__hdr_ -$LN16@stbi__hdr_: - 00762 8b 85 84 05 00 - 00 mov eax, DWORD PTR k$[rbp] - 00768 ff c0 inc eax - 0076a 89 85 84 05 00 - 00 mov DWORD PTR k$[rbp], eax -$LN18@stbi__hdr_: - 00770 83 bd 84 05 00 - 00 04 cmp DWORD PTR k$[rbp], 4 - 00777 0f 8d 14 02 00 - 00 jge $LN17@stbi__hdr_ - -; 8147 : int nleft; -; 8148 : i = 0; - - 0077d c7 85 44 05 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 -$LN19@stbi__hdr_: - -; 8149 : while ((nleft = width - i) > 0) { - - 00787 8b 85 44 05 00 - 00 mov eax, DWORD PTR i$[rbp] - 0078d 8b 8d 64 04 00 - 00 mov ecx, DWORD PTR width$[rbp] - 00793 2b c8 sub ecx, eax - 00795 8b c1 mov eax, ecx - 00797 89 85 64 06 00 - 00 mov DWORD PTR nleft$9[rbp], eax - 0079d 83 bd 64 06 00 - 00 00 cmp DWORD PTR nleft$9[rbp], 0 - 007a4 0f 8e e2 01 00 - 00 jle $LN20@stbi__hdr_ - -; 8150 : count = stbi__get8(s); - - 007aa 48 8b 8d b0 09 - 00 00 mov rcx, QWORD PTR s$[rbp] - 007b1 e8 00 00 00 00 call stbi__get8 - 007b6 88 85 04 05 00 - 00 mov BYTE PTR count$[rbp], al - -; 8151 : if (count > 128) { - - 007bc 0f b6 85 04 05 - 00 00 movzx eax, BYTE PTR count$[rbp] - 007c3 3d 80 00 00 00 cmp eax, 128 ; 00000080H - 007c8 0f 8e ee 00 00 - 00 jle $LN50@stbi__hdr_ - -; 8152 : // Run -; 8153 : value = stbi__get8(s); - - 007ce 48 8b 8d b0 09 - 00 00 mov rcx, QWORD PTR s$[rbp] - 007d5 e8 00 00 00 00 call stbi__get8 - 007da 88 85 24 05 00 - 00 mov BYTE PTR value$[rbp], al - -; 8154 : count -= 128; - - 007e0 0f b6 85 04 05 - 00 00 movzx eax, BYTE PTR count$[rbp] - 007e7 2d 80 00 00 00 sub eax, 128 ; 00000080H - 007ec 88 85 04 05 00 - 00 mov BYTE PTR count$[rbp], al - -; 8155 : if ((count == 0) || (count > nleft)) { - - 007f2 0f b6 85 04 05 - 00 00 movzx eax, BYTE PTR count$[rbp] - 007f9 85 c0 test eax, eax - 007fb 74 0f je SHORT $LN53@stbi__hdr_ - 007fd 0f b6 85 04 05 - 00 00 movzx eax, BYTE PTR count$[rbp] - 00804 3b 85 64 06 00 - 00 cmp eax, DWORD PTR nleft$9[rbp] - 0080a 7e 50 jle SHORT $LN52@stbi__hdr_ -$LN53@stbi__hdr_: - -; 8156 : STBI_FREE(hdr_data); - - 0080c 48 8b 8d c8 04 - 00 00 mov rcx, QWORD PTR hdr_data$[rbp] - 00813 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00819 90 npad 1 - -; 8157 : STBI_FREE(scanline); - - 0081a 48 8b 8d a8 04 - 00 00 mov rcx, QWORD PTR scanline$[rbp] - 00821 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00827 90 npad 1 - -; 8158 : return stbi__errpf("corrupt", - - 00828 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07DPPMCAKL@corrupt@ - 0082f e8 00 00 00 00 call stbi__err - 00834 85 c0 test eax, eax - 00836 74 0d je SHORT $LN78@stbi__hdr_ - 00838 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv290[rbp], 0 - 00843 eb 0b jmp SHORT $LN79@stbi__hdr_ -$LN78@stbi__hdr_: - 00845 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv290[rbp], 0 -$LN79@stbi__hdr_: - 00850 48 8b 85 78 09 - 00 00 mov rax, QWORD PTR tv290[rbp] - 00857 e9 d3 01 00 00 jmp $LN1@stbi__hdr_ -$LN52@stbi__hdr_: - -; 8159 : "bad RLE data in HDR"); -; 8160 : } -; 8161 : for (z = 0; z < count; ++z) - - 0085c c7 85 e4 05 00 - 00 00 00 00 00 mov DWORD PTR z$[rbp], 0 - 00866 eb 0e jmp SHORT $LN23@stbi__hdr_ -$LN21@stbi__hdr_: - 00868 8b 85 e4 05 00 - 00 mov eax, DWORD PTR z$[rbp] - 0086e ff c0 inc eax - 00870 89 85 e4 05 00 - 00 mov DWORD PTR z$[rbp], eax -$LN23@stbi__hdr_: - 00876 0f b6 85 04 05 - 00 00 movzx eax, BYTE PTR count$[rbp] - 0087d 39 85 e4 05 00 - 00 cmp DWORD PTR z$[rbp], eax - 00883 7d 32 jge SHORT $LN22@stbi__hdr_ - -; 8162 : scanline[i++ * 4 + k] = value; - - 00885 8b 85 84 05 00 - 00 mov eax, DWORD PTR k$[rbp] - 0088b 8b 8d 44 05 00 - 00 mov ecx, DWORD PTR i$[rbp] - 00891 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] - 00894 48 98 cdqe - 00896 48 8b 8d a8 04 - 00 00 mov rcx, QWORD PTR scanline$[rbp] - 0089d 0f b6 95 24 05 - 00 00 movzx edx, BYTE PTR value$[rbp] - 008a4 88 14 01 mov BYTE PTR [rcx+rax], dl - 008a7 8b 85 44 05 00 - 00 mov eax, DWORD PTR i$[rbp] - 008ad ff c0 inc eax - 008af 89 85 44 05 00 - 00 mov DWORD PTR i$[rbp], eax - 008b5 eb b1 jmp SHORT $LN21@stbi__hdr_ -$LN22@stbi__hdr_: - -; 8163 : } else { - - 008b7 e9 cb 00 00 00 jmp $LN51@stbi__hdr_ -$LN50@stbi__hdr_: - -; 8164 : // Dump -; 8165 : if ((count == 0) || (count > nleft)) { - - 008bc 0f b6 85 04 05 - 00 00 movzx eax, BYTE PTR count$[rbp] - 008c3 85 c0 test eax, eax - 008c5 74 0f je SHORT $LN55@stbi__hdr_ - 008c7 0f b6 85 04 05 - 00 00 movzx eax, BYTE PTR count$[rbp] - 008ce 3b 85 64 06 00 - 00 cmp eax, DWORD PTR nleft$9[rbp] - 008d4 7e 50 jle SHORT $LN54@stbi__hdr_ -$LN55@stbi__hdr_: - -; 8166 : STBI_FREE(hdr_data); - - 008d6 48 8b 8d c8 04 - 00 00 mov rcx, QWORD PTR hdr_data$[rbp] - 008dd ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 008e3 90 npad 1 - -; 8167 : STBI_FREE(scanline); - - 008e4 48 8b 8d a8 04 - 00 00 mov rcx, QWORD PTR scanline$[rbp] - 008eb ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 008f1 90 npad 1 - -; 8168 : return stbi__errpf("corrupt", - - 008f2 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07DPPMCAKL@corrupt@ - 008f9 e8 00 00 00 00 call stbi__err - 008fe 85 c0 test eax, eax - 00900 74 0d je SHORT $LN80@stbi__hdr_ - 00902 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv309[rbp], 0 - 0090d eb 0b jmp SHORT $LN81@stbi__hdr_ -$LN80@stbi__hdr_: - 0090f 48 c7 85 78 09 - 00 00 00 00 00 - 00 mov QWORD PTR tv309[rbp], 0 -$LN81@stbi__hdr_: - 0091a 48 8b 85 78 09 - 00 00 mov rax, QWORD PTR tv309[rbp] - 00921 e9 09 01 00 00 jmp $LN1@stbi__hdr_ -$LN54@stbi__hdr_: - -; 8169 : "bad RLE data in HDR"); -; 8170 : } -; 8171 : for (z = 0; z < count; ++z) - - 00926 c7 85 e4 05 00 - 00 00 00 00 00 mov DWORD PTR z$[rbp], 0 - 00930 eb 0e jmp SHORT $LN26@stbi__hdr_ -$LN24@stbi__hdr_: - 00932 8b 85 e4 05 00 - 00 mov eax, DWORD PTR z$[rbp] - 00938 ff c0 inc eax - 0093a 89 85 e4 05 00 - 00 mov DWORD PTR z$[rbp], eax -$LN26@stbi__hdr_: - 00940 0f b6 85 04 05 - 00 00 movzx eax, BYTE PTR count$[rbp] - 00947 39 85 e4 05 00 - 00 cmp DWORD PTR z$[rbp], eax - 0094d 7d 38 jge SHORT $LN25@stbi__hdr_ - -; 8172 : scanline[i++ * 4 + k] = stbi__get8(s); - - 0094f 48 8b 8d b0 09 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00956 e8 00 00 00 00 call stbi__get8 - 0095b 8b 8d 84 05 00 - 00 mov ecx, DWORD PTR k$[rbp] - 00961 8b 95 44 05 00 - 00 mov edx, DWORD PTR i$[rbp] - 00967 8d 0c 91 lea ecx, DWORD PTR [rcx+rdx*4] - 0096a 48 63 c9 movsxd rcx, ecx - 0096d 48 8b 95 a8 04 - 00 00 mov rdx, QWORD PTR scanline$[rbp] - 00974 88 04 0a mov BYTE PTR [rdx+rcx], al - 00977 8b 85 44 05 00 - 00 mov eax, DWORD PTR i$[rbp] - 0097d ff c0 inc eax - 0097f 89 85 44 05 00 - 00 mov DWORD PTR i$[rbp], eax - 00985 eb ab jmp SHORT $LN24@stbi__hdr_ -$LN25@stbi__hdr_: -$LN51@stbi__hdr_: - -; 8173 : } -; 8174 : } - - 00987 e9 fb fd ff ff jmp $LN19@stbi__hdr_ -$LN20@stbi__hdr_: - -; 8175 : } - - 0098c e9 d1 fd ff ff jmp $LN16@stbi__hdr_ -$LN17@stbi__hdr_: - -; 8176 : for (i = 0; i < width; ++i) - - 00991 c7 85 44 05 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 0099b eb 0e jmp SHORT $LN29@stbi__hdr_ -$LN27@stbi__hdr_: - 0099d 8b 85 44 05 00 - 00 mov eax, DWORD PTR i$[rbp] - 009a3 ff c0 inc eax - 009a5 89 85 44 05 00 - 00 mov DWORD PTR i$[rbp], eax -$LN29@stbi__hdr_: - 009ab 8b 85 64 04 00 - 00 mov eax, DWORD PTR width$[rbp] - 009b1 39 85 44 05 00 - 00 cmp DWORD PTR i$[rbp], eax - 009b7 7d 52 jge SHORT $LN28@stbi__hdr_ - -; 8177 : stbi__hdr_convert(hdr_data + (j * width + i) * req_comp, - - 009b9 8b 85 44 05 00 - 00 mov eax, DWORD PTR i$[rbp] - 009bf c1 e0 02 shl eax, 2 - 009c2 48 98 cdqe - 009c4 48 8b 8d a8 04 - 00 00 mov rcx, QWORD PTR scanline$[rbp] - 009cb 48 03 c8 add rcx, rax - 009ce 48 8b c1 mov rax, rcx - 009d1 8b 8d 64 05 00 - 00 mov ecx, DWORD PTR j$[rbp] - 009d7 0f af 8d 64 04 - 00 00 imul ecx, DWORD PTR width$[rbp] - 009de 03 8d 44 05 00 - 00 add ecx, DWORD PTR i$[rbp] - 009e4 0f af 8d d0 09 - 00 00 imul ecx, DWORD PTR req_comp$[rbp] - 009eb 48 63 c9 movsxd rcx, ecx - 009ee 48 8b 95 c8 04 - 00 00 mov rdx, QWORD PTR hdr_data$[rbp] - 009f5 48 8d 0c 8a lea rcx, QWORD PTR [rdx+rcx*4] - 009f9 44 8b 85 d0 09 - 00 00 mov r8d, DWORD PTR req_comp$[rbp] - 00a00 48 8b d0 mov rdx, rax - 00a03 e8 00 00 00 00 call stbi__hdr_convert - 00a08 90 npad 1 - 00a09 eb 92 jmp SHORT $LN27@stbi__hdr_ -$LN28@stbi__hdr_: - -; 8178 : scanline + i * 4, req_comp); -; 8179 : } - - 00a0b e9 23 fb ff ff jmp $LN13@stbi__hdr_ -$LN14@stbi__hdr_: - -; 8180 : if (scanline) - - 00a10 48 83 bd a8 04 - 00 00 00 cmp QWORD PTR scanline$[rbp], 0 - 00a18 74 0e je SHORT $LN56@stbi__hdr_ - -; 8181 : STBI_FREE(scanline); - - 00a1a 48 8b 8d a8 04 - 00 00 mov rcx, QWORD PTR scanline$[rbp] - 00a21 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00a27 90 npad 1 -$LN56@stbi__hdr_: -$LN43@stbi__hdr_: - -; 8182 : } -; 8183 : -; 8184 : return hdr_data; - - 00a28 48 8b 85 c8 04 - 00 00 mov rax, QWORD PTR hdr_data$[rbp] -$LN1@stbi__hdr_: - -; 8185 : } - - 00a2f 48 8b f8 mov rdi, rax - 00a32 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00a36 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__hdr_load$rtcFrameData - 00a3d e8 00 00 00 00 call _RTC_CheckStackVars - 00a42 48 8b c7 mov rax, rdi - 00a45 48 8b 8d 80 09 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00a4c 48 33 cd xor rcx, rbp - 00a4f e8 00 00 00 00 call __security_check_cookie - 00a54 48 8d a5 98 09 - 00 00 lea rsp, QWORD PTR [rbp+2456] - 00a5b 5f pop rdi - 00a5c 5d pop rbp - 00a5d c3 ret 0 -stbi__hdr_load ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__hdr_test -_TEXT SEGMENT -r$ = 4 -s$ = 256 -stbi__hdr_test PROC ; COMDAT - -; 7962 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 7963 : int r = stbi__hdr_test_core(s, "#?RADIANCE\n"); - - 00020 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0M@HOIDFNFN@?$CD?$DPRADIANCE?6@ - 00027 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0002e e8 00 00 00 00 call stbi__hdr_test_core - 00033 89 45 04 mov DWORD PTR r$[rbp], eax - -; 7964 : stbi__rewind(s); - - 00036 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0003d e8 00 00 00 00 call stbi__rewind - 00042 90 npad 1 - -; 7965 : if (!r) { - - 00043 83 7d 04 00 cmp DWORD PTR r$[rbp], 0 - 00047 75 23 jne SHORT $LN2@stbi__hdr_ - -; 7966 : r = stbi__hdr_test_core(s, "#?RGBE\n"); - - 00049 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_07KFDJIKCK@?$CD?$DPRGBE?6@ - 00050 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00057 e8 00 00 00 00 call stbi__hdr_test_core - 0005c 89 45 04 mov DWORD PTR r$[rbp], eax - -; 7967 : stbi__rewind(s); - - 0005f 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00066 e8 00 00 00 00 call stbi__rewind - 0006b 90 npad 1 -$LN2@stbi__hdr_: - -; 7968 : } -; 7969 : return r; - - 0006c 8b 45 04 mov eax, DWORD PTR r$[rbp] - -; 7970 : } - - 0006f 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00076 5f pop rdi - 00077 5d pop rbp - 00078 c3 ret 0 -stbi__hdr_test ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__psd_is16 -_TEXT SEGMENT -channelCount$ = 4 -depth$ = 36 -s$ = 288 -stbi__psd_is16 PROC ; COMDAT - -; 8304 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 8305 : int channelCount, depth; -; 8306 : if (stbi__get32be(s) != 0x38425053) { - - 00020 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00027 e8 00 00 00 00 call stbi__get32be - 0002c 3d 53 50 42 38 cmp eax, 943870035 ; 38425053H - 00031 74 14 je SHORT $LN2@stbi__psd_ - -; 8307 : stbi__rewind(s); - - 00033 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0003a e8 00 00 00 00 call stbi__rewind - 0003f 90 npad 1 - -; 8308 : return 0; - - 00040 33 c0 xor eax, eax - 00042 e9 a8 00 00 00 jmp $LN1@stbi__psd_ -$LN2@stbi__psd_: - -; 8309 : } -; 8310 : if (stbi__get16be(s) != 1) { - - 00047 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0004e e8 00 00 00 00 call stbi__get16be - 00053 83 f8 01 cmp eax, 1 - 00056 74 14 je SHORT $LN3@stbi__psd_ - -; 8311 : stbi__rewind(s); - - 00058 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0005f e8 00 00 00 00 call stbi__rewind - 00064 90 npad 1 - -; 8312 : return 0; - - 00065 33 c0 xor eax, eax - 00067 e9 83 00 00 00 jmp $LN1@stbi__psd_ -$LN3@stbi__psd_: - -; 8313 : } -; 8314 : stbi__skip(s, 6); - - 0006c ba 06 00 00 00 mov edx, 6 - 00071 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00078 e8 00 00 00 00 call stbi__skip - 0007d 90 npad 1 - -; 8315 : channelCount = stbi__get16be(s); - - 0007e 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00085 e8 00 00 00 00 call stbi__get16be - 0008a 89 45 04 mov DWORD PTR channelCount$[rbp], eax - -; 8316 : if (channelCount < 0 || channelCount > 16) { - - 0008d 83 7d 04 00 cmp DWORD PTR channelCount$[rbp], 0 - 00091 7c 06 jl SHORT $LN5@stbi__psd_ - 00093 83 7d 04 10 cmp DWORD PTR channelCount$[rbp], 16 - 00097 7e 11 jle SHORT $LN4@stbi__psd_ -$LN5@stbi__psd_: - -; 8317 : stbi__rewind(s); - - 00099 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000a0 e8 00 00 00 00 call stbi__rewind - 000a5 90 npad 1 - -; 8318 : return 0; - - 000a6 33 c0 xor eax, eax - 000a8 eb 45 jmp SHORT $LN1@stbi__psd_ -$LN4@stbi__psd_: - -; 8319 : } -; 8320 : STBI_NOTUSED(stbi__get32be(s)); - - 000aa 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000b1 e8 00 00 00 00 call stbi__get32be - 000b6 90 npad 1 - -; 8321 : STBI_NOTUSED(stbi__get32be(s)); - - 000b7 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000be e8 00 00 00 00 call stbi__get32be - 000c3 90 npad 1 - -; 8322 : depth = stbi__get16be(s); - - 000c4 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000cb e8 00 00 00 00 call stbi__get16be - 000d0 89 45 24 mov DWORD PTR depth$[rbp], eax - -; 8323 : if (depth != 16) { - - 000d3 83 7d 24 10 cmp DWORD PTR depth$[rbp], 16 - 000d7 74 11 je SHORT $LN6@stbi__psd_ - -; 8324 : stbi__rewind(s); - - 000d9 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000e0 e8 00 00 00 00 call stbi__rewind - 000e5 90 npad 1 - -; 8325 : return 0; - - 000e6 33 c0 xor eax, eax - 000e8 eb 05 jmp SHORT $LN1@stbi__psd_ -$LN6@stbi__psd_: - -; 8326 : } -; 8327 : return 1; - - 000ea b8 01 00 00 00 mov eax, 1 -$LN1@stbi__psd_: - -; 8328 : } - - 000ef 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000f6 5f pop rdi - 000f7 5d pop rbp - 000f8 c3 ret 0 -stbi__psd_is16 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__psd_info -_TEXT SEGMENT -channelCount$ = 4 -dummy$ = 36 -depth$ = 68 -__$ArrayPad$ = 280 -s$ = 320 -x$ = 328 -y$ = 336 -comp$ = 344 -stbi__psd_info PROC ; COMDAT - -; 8266 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00027 b9 1a 00 00 00 mov ecx, 26 - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 68 - 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 18 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 8267 : int channelCount, dummy, depth; -; 8268 : if (!x) - - 00059 48 83 bd 48 01 - 00 00 00 cmp QWORD PTR x$[rbp], 0 - 00061 75 0b jne SHORT $LN2@stbi__psd_ - -; 8269 : x = &dummy; - - 00063 48 8d 45 24 lea rax, QWORD PTR dummy$[rbp] - 00067 48 89 85 48 01 - 00 00 mov QWORD PTR x$[rbp], rax -$LN2@stbi__psd_: - -; 8270 : if (!y) - - 0006e 48 83 bd 50 01 - 00 00 00 cmp QWORD PTR y$[rbp], 0 - 00076 75 0b jne SHORT $LN3@stbi__psd_ - -; 8271 : y = &dummy; - - 00078 48 8d 45 24 lea rax, QWORD PTR dummy$[rbp] - 0007c 48 89 85 50 01 - 00 00 mov QWORD PTR y$[rbp], rax -$LN3@stbi__psd_: - -; 8272 : if (!comp) - - 00083 48 83 bd 58 01 - 00 00 00 cmp QWORD PTR comp$[rbp], 0 - 0008b 75 0b jne SHORT $LN4@stbi__psd_ - -; 8273 : comp = &dummy; - - 0008d 48 8d 45 24 lea rax, QWORD PTR dummy$[rbp] - 00091 48 89 85 58 01 - 00 00 mov QWORD PTR comp$[rbp], rax -$LN4@stbi__psd_: - -; 8274 : if (stbi__get32be(s) != 0x38425053) { - - 00098 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0009f e8 00 00 00 00 call stbi__get32be - 000a4 3d 53 50 42 38 cmp eax, 943870035 ; 38425053H - 000a9 74 14 je SHORT $LN5@stbi__psd_ - -; 8275 : stbi__rewind(s); - - 000ab 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000b2 e8 00 00 00 00 call stbi__rewind - 000b7 90 npad 1 - -; 8276 : return 0; - - 000b8 33 c0 xor eax, eax - 000ba e9 f0 00 00 00 jmp $LN1@stbi__psd_ -$LN5@stbi__psd_: - -; 8277 : } -; 8278 : if (stbi__get16be(s) != 1) { - - 000bf 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000c6 e8 00 00 00 00 call stbi__get16be - 000cb 83 f8 01 cmp eax, 1 - 000ce 74 14 je SHORT $LN6@stbi__psd_ - -; 8279 : stbi__rewind(s); - - 000d0 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000d7 e8 00 00 00 00 call stbi__rewind - 000dc 90 npad 1 - -; 8280 : return 0; - - 000dd 33 c0 xor eax, eax - 000df e9 cb 00 00 00 jmp $LN1@stbi__psd_ -$LN6@stbi__psd_: - -; 8281 : } -; 8282 : stbi__skip(s, 6); - - 000e4 ba 06 00 00 00 mov edx, 6 - 000e9 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000f0 e8 00 00 00 00 call stbi__skip - 000f5 90 npad 1 - -; 8283 : channelCount = stbi__get16be(s); - - 000f6 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000fd e8 00 00 00 00 call stbi__get16be - 00102 89 45 04 mov DWORD PTR channelCount$[rbp], eax - -; 8284 : if (channelCount < 0 || channelCount > 16) { - - 00105 83 7d 04 00 cmp DWORD PTR channelCount$[rbp], 0 - 00109 7c 06 jl SHORT $LN8@stbi__psd_ - 0010b 83 7d 04 10 cmp DWORD PTR channelCount$[rbp], 16 - 0010f 7e 14 jle SHORT $LN7@stbi__psd_ -$LN8@stbi__psd_: - -; 8285 : stbi__rewind(s); - - 00111 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00118 e8 00 00 00 00 call stbi__rewind - 0011d 90 npad 1 - -; 8286 : return 0; - - 0011e 33 c0 xor eax, eax - 00120 e9 8a 00 00 00 jmp $LN1@stbi__psd_ -$LN7@stbi__psd_: - -; 8287 : } -; 8288 : *y = stbi__get32be(s); - - 00125 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0012c e8 00 00 00 00 call stbi__get32be - 00131 48 8b 8d 50 01 - 00 00 mov rcx, QWORD PTR y$[rbp] - 00138 89 01 mov DWORD PTR [rcx], eax - -; 8289 : *x = stbi__get32be(s); - - 0013a 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00141 e8 00 00 00 00 call stbi__get32be - 00146 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR x$[rbp] - 0014d 89 01 mov DWORD PTR [rcx], eax - -; 8290 : depth = stbi__get16be(s); - - 0014f 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00156 e8 00 00 00 00 call stbi__get16be - 0015b 89 45 44 mov DWORD PTR depth$[rbp], eax - -; 8291 : if (depth != 8 && depth != 16) { - - 0015e 83 7d 44 08 cmp DWORD PTR depth$[rbp], 8 - 00162 74 17 je SHORT $LN9@stbi__psd_ - 00164 83 7d 44 10 cmp DWORD PTR depth$[rbp], 16 - 00168 74 11 je SHORT $LN9@stbi__psd_ - -; 8292 : stbi__rewind(s); - - 0016a 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00171 e8 00 00 00 00 call stbi__rewind - 00176 90 npad 1 - -; 8293 : return 0; - - 00177 33 c0 xor eax, eax - 00179 eb 34 jmp SHORT $LN1@stbi__psd_ -$LN9@stbi__psd_: - -; 8294 : } -; 8295 : if (stbi__get16be(s) != 3) { - - 0017b 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00182 e8 00 00 00 00 call stbi__get16be - 00187 83 f8 03 cmp eax, 3 - 0018a 74 11 je SHORT $LN10@stbi__psd_ - -; 8296 : stbi__rewind(s); - - 0018c 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00193 e8 00 00 00 00 call stbi__rewind - 00198 90 npad 1 - -; 8297 : return 0; - - 00199 33 c0 xor eax, eax - 0019b eb 12 jmp SHORT $LN1@stbi__psd_ -$LN10@stbi__psd_: - -; 8298 : } -; 8299 : *comp = 4; - - 0019d 48 8b 85 58 01 - 00 00 mov rax, QWORD PTR comp$[rbp] - 001a4 c7 00 04 00 00 - 00 mov DWORD PTR [rax], 4 - -; 8300 : return 1; - - 001aa b8 01 00 00 00 mov eax, 1 -$LN1@stbi__psd_: - -; 8301 : } - - 001af 48 8b f8 mov rdi, rax - 001b2 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 001b6 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__psd_info$rtcFrameData - 001bd e8 00 00 00 00 call _RTC_CheckStackVars - 001c2 48 8b c7 mov rax, rdi - 001c5 48 8b 8d 18 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 001cc 48 33 cd xor rcx, rbp - 001cf e8 00 00 00 00 call __security_check_cookie - 001d4 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 001db 5f pop rdi - 001dc 5d pop rbp - 001dd c3 ret 0 -stbi__psd_info ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__psd_load -_TEXT SEGMENT -pixelCount$ = 4 -channelCount$ = 36 -compression$ = 68 -channel$ = 100 -i$ = 132 -bitdepth$ = 164 -w$ = 196 -h$ = 228 -out$ = 264 -p$1 = 296 -q$2 = 328 -val$3 = 356 -p$4 = 392 -val$5 = 420 -q$6 = 456 -p$7 = 488 -pixel$8 = 520 -a$9 = 548 -ra$10 = 580 -inv_a$11 = 612 -pixel$12 = 648 -a$13 = 676 -ra$14 = 708 -inv_a$15 = 740 -tv241 = 1140 -tv212 = 1140 -tv233 = 1140 -tv87 = 1144 -tv128 = 1144 -tv133 = 1144 -tv141 = 1144 -tv148 = 1144 -tv167 = 1144 -tv196 = 1144 -tv70 = 1144 -tv223 = 1144 -tv77 = 1144 -tv177 = 1144 -s$ = 1184 -x$ = 1192 -y$ = 1200 -comp$ = 1208 -req_comp$ = 1216 -ri$ = 1224 -bpc$ = 1232 -stbi__psd_load PROC ; COMDAT - -; 6922 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec b8 04 - 00 00 sub rsp, 1208 ; 000004b8H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 6923 : int pixelCount; -; 6924 : int channelCount, compression; -; 6925 : int channel, i; -; 6926 : int bitdepth; -; 6927 : int w, h; -; 6928 : stbi_uc *out; -; 6929 : STBI_NOTUSED(ri); -; 6930 : -; 6931 : // Check identifier -; 6932 : if (stbi__get32be(s) != 0x38425053) // "8BPS" - - 0002f 48 8b 8d a0 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00036 e8 00 00 00 00 call stbi__get32be - 0003b 3d 53 50 42 38 cmp eax, 943870035 ; 38425053H - 00040 74 34 je SHORT $LN32@stbi__psd_ - -; 6933 : return stbi__errpuc("not PSD", "Corrupt PSD image"); - - 00042 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07ECNCNLIK@not?5PSD@ - 00049 e8 00 00 00 00 call stbi__err - 0004e 85 c0 test eax, eax - 00050 74 0d je SHORT $LN69@stbi__psd_ - 00052 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv70[rbp], 0 - 0005d eb 0b jmp SHORT $LN70@stbi__psd_ -$LN69@stbi__psd_: - 0005f 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv70[rbp], 0 -$LN70@stbi__psd_: - 0006a 48 8b 85 78 04 - 00 00 mov rax, QWORD PTR tv70[rbp] - 00071 e9 b7 0b 00 00 jmp $LN1@stbi__psd_ -$LN32@stbi__psd_: - -; 6934 : -; 6935 : // Check file type version. -; 6936 : if (stbi__get16be(s) != 1) - - 00076 48 8b 8d a0 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0007d e8 00 00 00 00 call stbi__get16be - 00082 83 f8 01 cmp eax, 1 - 00085 74 34 je SHORT $LN33@stbi__psd_ - -; 6937 : return stbi__errpuc("wrong version", "Unsupported version of PSD image"); - - 00087 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0O@CHBCDKKC@wrong?5version@ - 0008e e8 00 00 00 00 call stbi__err - 00093 85 c0 test eax, eax - 00095 74 0d je SHORT $LN71@stbi__psd_ - 00097 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv77[rbp], 0 - 000a2 eb 0b jmp SHORT $LN72@stbi__psd_ -$LN71@stbi__psd_: - 000a4 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv77[rbp], 0 -$LN72@stbi__psd_: - 000af 48 8b 85 78 04 - 00 00 mov rax, QWORD PTR tv77[rbp] - 000b6 e9 72 0b 00 00 jmp $LN1@stbi__psd_ -$LN33@stbi__psd_: - -; 6938 : -; 6939 : // Skip 6 reserved bytes. -; 6940 : stbi__skip(s, 6); - - 000bb ba 06 00 00 00 mov edx, 6 - 000c0 48 8b 8d a0 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000c7 e8 00 00 00 00 call stbi__skip - 000cc 90 npad 1 - -; 6941 : -; 6942 : // Read the number of channels (R, G, B, A, etc). -; 6943 : channelCount = stbi__get16be(s); - - 000cd 48 8b 8d a0 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000d4 e8 00 00 00 00 call stbi__get16be - 000d9 89 45 24 mov DWORD PTR channelCount$[rbp], eax - -; 6944 : if (channelCount < 0 || channelCount > 16) - - 000dc 83 7d 24 00 cmp DWORD PTR channelCount$[rbp], 0 - 000e0 7c 06 jl SHORT $LN35@stbi__psd_ - 000e2 83 7d 24 10 cmp DWORD PTR channelCount$[rbp], 16 - 000e6 7e 34 jle SHORT $LN34@stbi__psd_ -$LN35@stbi__psd_: - -; 6945 : return stbi__errpuc("wrong channel count", - - 000e8 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BE@PJBNGDBE@wrong?5channel?5count@ - 000ef e8 00 00 00 00 call stbi__err - 000f4 85 c0 test eax, eax - 000f6 74 0d je SHORT $LN73@stbi__psd_ - 000f8 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv87[rbp], 0 - 00103 eb 0b jmp SHORT $LN74@stbi__psd_ -$LN73@stbi__psd_: - 00105 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv87[rbp], 0 -$LN74@stbi__psd_: - 00110 48 8b 85 78 04 - 00 00 mov rax, QWORD PTR tv87[rbp] - 00117 e9 11 0b 00 00 jmp $LN1@stbi__psd_ -$LN34@stbi__psd_: - -; 6946 : "Unsupported number of channels in PSD image"); -; 6947 : -; 6948 : // Read the rows and columns of the image. -; 6949 : h = stbi__get32be(s); - - 0011c 48 8b 8d a0 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00123 e8 00 00 00 00 call stbi__get32be - 00128 89 85 e4 00 00 - 00 mov DWORD PTR h$[rbp], eax - -; 6950 : w = stbi__get32be(s); - - 0012e 48 8b 8d a0 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00135 e8 00 00 00 00 call stbi__get32be - 0013a 89 85 c4 00 00 - 00 mov DWORD PTR w$[rbp], eax - -; 6951 : -; 6952 : if (h > STBI_MAX_DIMENSIONS) - - 00140 81 bd e4 00 00 - 00 00 00 00 01 cmp DWORD PTR h$[rbp], 16777216 ; 01000000H - 0014a 7e 34 jle SHORT $LN36@stbi__psd_ - -; 6953 : return stbi__errpuc("too large", "Very large image (corrupt?)"); - - 0014c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 00153 e8 00 00 00 00 call stbi__err - 00158 85 c0 test eax, eax - 0015a 74 0d je SHORT $LN75@stbi__psd_ - 0015c 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv128[rbp], 0 - 00167 eb 0b jmp SHORT $LN76@stbi__psd_ -$LN75@stbi__psd_: - 00169 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv128[rbp], 0 -$LN76@stbi__psd_: - 00174 48 8b 85 78 04 - 00 00 mov rax, QWORD PTR tv128[rbp] - 0017b e9 ad 0a 00 00 jmp $LN1@stbi__psd_ -$LN36@stbi__psd_: - -; 6954 : if (w > STBI_MAX_DIMENSIONS) - - 00180 81 bd c4 00 00 - 00 00 00 00 01 cmp DWORD PTR w$[rbp], 16777216 ; 01000000H - 0018a 7e 34 jle SHORT $LN37@stbi__psd_ - -; 6955 : return stbi__errpuc("too large", "Very large image (corrupt?)"); - - 0018c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 00193 e8 00 00 00 00 call stbi__err - 00198 85 c0 test eax, eax - 0019a 74 0d je SHORT $LN77@stbi__psd_ - 0019c 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv133[rbp], 0 - 001a7 eb 0b jmp SHORT $LN78@stbi__psd_ -$LN77@stbi__psd_: - 001a9 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv133[rbp], 0 -$LN78@stbi__psd_: - 001b4 48 8b 85 78 04 - 00 00 mov rax, QWORD PTR tv133[rbp] - 001bb e9 6d 0a 00 00 jmp $LN1@stbi__psd_ -$LN37@stbi__psd_: - -; 6956 : -; 6957 : // Make sure the depth is 8 bits. -; 6958 : bitdepth = stbi__get16be(s); - - 001c0 48 8b 8d a0 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001c7 e8 00 00 00 00 call stbi__get16be - 001cc 89 85 a4 00 00 - 00 mov DWORD PTR bitdepth$[rbp], eax - -; 6959 : if (bitdepth != 8 && bitdepth != 16) - - 001d2 83 bd a4 00 00 - 00 08 cmp DWORD PTR bitdepth$[rbp], 8 - 001d9 74 3d je SHORT $LN38@stbi__psd_ - 001db 83 bd a4 00 00 - 00 10 cmp DWORD PTR bitdepth$[rbp], 16 - 001e2 74 34 je SHORT $LN38@stbi__psd_ - -; 6960 : return stbi__errpuc("unsupported bit depth", "PSD bit depth is not 8 or 16 bit"); - - 001e4 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BG@NOLDLPP@unsupported?5bit?5depth@ - 001eb e8 00 00 00 00 call stbi__err - 001f0 85 c0 test eax, eax - 001f2 74 0d je SHORT $LN79@stbi__psd_ - 001f4 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv141[rbp], 0 - 001ff eb 0b jmp SHORT $LN80@stbi__psd_ -$LN79@stbi__psd_: - 00201 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv141[rbp], 0 -$LN80@stbi__psd_: - 0020c 48 8b 85 78 04 - 00 00 mov rax, QWORD PTR tv141[rbp] - 00213 e9 15 0a 00 00 jmp $LN1@stbi__psd_ -$LN38@stbi__psd_: - -; 6961 : -; 6962 : // Make sure the color mode is RGB. -; 6963 : // Valid options are: -; 6964 : // 0: Bitmap -; 6965 : // 1: Grayscale -; 6966 : // 2: Indexed color -; 6967 : // 3: RGB color -; 6968 : // 4: CMYK color -; 6969 : // 7: Multichannel -; 6970 : // 8: Duotone -; 6971 : // 9: Lab color -; 6972 : if (stbi__get16be(s) != 3) - - 00218 48 8b 8d a0 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0021f e8 00 00 00 00 call stbi__get16be - 00224 83 f8 03 cmp eax, 3 - 00227 74 34 je SHORT $LN39@stbi__psd_ - -; 6973 : return stbi__errpuc("wrong color format", "PSD is not in RGB color format"); - - 00229 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BD@IOGGBMNK@wrong?5color?5format@ - 00230 e8 00 00 00 00 call stbi__err - 00235 85 c0 test eax, eax - 00237 74 0d je SHORT $LN81@stbi__psd_ - 00239 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv148[rbp], 0 - 00244 eb 0b jmp SHORT $LN82@stbi__psd_ -$LN81@stbi__psd_: - 00246 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv148[rbp], 0 -$LN82@stbi__psd_: - 00251 48 8b 85 78 04 - 00 00 mov rax, QWORD PTR tv148[rbp] - 00258 e9 d0 09 00 00 jmp $LN1@stbi__psd_ -$LN39@stbi__psd_: - -; 6974 : -; 6975 : // Skip the Mode Data. (It's the palette for indexed color; other info for other modes.) -; 6976 : stbi__skip(s, stbi__get32be(s)); - - 0025d 48 8b 8d a0 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00264 e8 00 00 00 00 call stbi__get32be - 00269 8b d0 mov edx, eax - 0026b 48 8b 8d a0 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00272 e8 00 00 00 00 call stbi__skip - 00277 90 npad 1 - -; 6977 : -; 6978 : // Skip the image resources. (resolution, pen tool paths, etc) -; 6979 : stbi__skip(s, stbi__get32be(s)); - - 00278 48 8b 8d a0 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0027f e8 00 00 00 00 call stbi__get32be - 00284 8b d0 mov edx, eax - 00286 48 8b 8d a0 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0028d e8 00 00 00 00 call stbi__skip - 00292 90 npad 1 - -; 6980 : -; 6981 : // Skip the reserved data. -; 6982 : stbi__skip(s, stbi__get32be(s)); - - 00293 48 8b 8d a0 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0029a e8 00 00 00 00 call stbi__get32be - 0029f 8b d0 mov edx, eax - 002a1 48 8b 8d a0 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 002a8 e8 00 00 00 00 call stbi__skip - 002ad 90 npad 1 - -; 6983 : -; 6984 : // Find out if the data is compressed. -; 6985 : // Known values: -; 6986 : // 0: no compression -; 6987 : // 1: RLE compressed -; 6988 : compression = stbi__get16be(s); - - 002ae 48 8b 8d a0 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 002b5 e8 00 00 00 00 call stbi__get16be - 002ba 89 45 44 mov DWORD PTR compression$[rbp], eax - -; 6989 : if (compression > 1) - - 002bd 83 7d 44 01 cmp DWORD PTR compression$[rbp], 1 - 002c1 7e 34 jle SHORT $LN40@stbi__psd_ - -; 6990 : return stbi__errpuc("bad compression", "PSD has an unknown compression format"); - - 002c3 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@MCNBDLPD@bad?5compression@ - 002ca e8 00 00 00 00 call stbi__err - 002cf 85 c0 test eax, eax - 002d1 74 0d je SHORT $LN83@stbi__psd_ - 002d3 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv167[rbp], 0 - 002de eb 0b jmp SHORT $LN84@stbi__psd_ -$LN83@stbi__psd_: - 002e0 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv167[rbp], 0 -$LN84@stbi__psd_: - 002eb 48 8b 85 78 04 - 00 00 mov rax, QWORD PTR tv167[rbp] - 002f2 e9 36 09 00 00 jmp $LN1@stbi__psd_ -$LN40@stbi__psd_: - -; 6991 : -; 6992 : // Check size -; 6993 : if (!stbi__mad3sizes_valid(4, w, h, 0)) - - 002f7 45 33 c9 xor r9d, r9d - 002fa 44 8b 85 e4 00 - 00 00 mov r8d, DWORD PTR h$[rbp] - 00301 8b 95 c4 00 00 - 00 mov edx, DWORD PTR w$[rbp] - 00307 b9 04 00 00 00 mov ecx, 4 - 0030c e8 00 00 00 00 call stbi__mad3sizes_valid - 00311 85 c0 test eax, eax - 00313 75 34 jne SHORT $LN41@stbi__psd_ - -; 6994 : return stbi__errpuc("too large", "Corrupt PSD"); - - 00315 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 0031c e8 00 00 00 00 call stbi__err - 00321 85 c0 test eax, eax - 00323 74 0d je SHORT $LN85@stbi__psd_ - 00325 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv177[rbp], 0 - 00330 eb 0b jmp SHORT $LN86@stbi__psd_ -$LN85@stbi__psd_: - 00332 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv177[rbp], 0 -$LN86@stbi__psd_: - 0033d 48 8b 85 78 04 - 00 00 mov rax, QWORD PTR tv177[rbp] - 00344 e9 e4 08 00 00 jmp $LN1@stbi__psd_ -$LN41@stbi__psd_: - -; 6995 : -; 6996 : // Create the destination image. -; 6997 : -; 6998 : if (!compression && bitdepth == 16 && bpc == 16) { - - 00349 83 7d 44 00 cmp DWORD PTR compression$[rbp], 0 - 0034d 75 42 jne SHORT $LN42@stbi__psd_ - 0034f 83 bd a4 00 00 - 00 10 cmp DWORD PTR bitdepth$[rbp], 16 - 00356 75 39 jne SHORT $LN42@stbi__psd_ - 00358 83 bd d0 04 00 - 00 10 cmp DWORD PTR bpc$[rbp], 16 - 0035f 75 30 jne SHORT $LN42@stbi__psd_ - -; 6999 : out = (stbi_uc *)stbi__malloc_mad3(8, w, h, 0); - - 00361 45 33 c9 xor r9d, r9d - 00364 44 8b 85 e4 00 - 00 00 mov r8d, DWORD PTR h$[rbp] - 0036b 8b 95 c4 00 00 - 00 mov edx, DWORD PTR w$[rbp] - 00371 b9 08 00 00 00 mov ecx, 8 - 00376 e8 00 00 00 00 call stbi__malloc_mad3 - 0037b 48 89 85 08 01 - 00 00 mov QWORD PTR out$[rbp], rax - -; 7000 : ri->bits_per_channel = 16; - - 00382 48 8b 85 c8 04 - 00 00 mov rax, QWORD PTR ri$[rbp] - 00389 c7 00 10 00 00 - 00 mov DWORD PTR [rax], 16 - -; 7001 : } else - - 0038f eb 21 jmp SHORT $LN43@stbi__psd_ -$LN42@stbi__psd_: - -; 7002 : out = (stbi_uc *)stbi__malloc(4 * w * h); - - 00391 8b 85 c4 00 00 - 00 mov eax, DWORD PTR w$[rbp] - 00397 c1 e0 02 shl eax, 2 - 0039a 0f af 85 e4 00 - 00 00 imul eax, DWORD PTR h$[rbp] - 003a1 48 98 cdqe - 003a3 48 8b c8 mov rcx, rax - 003a6 e8 00 00 00 00 call stbi__malloc - 003ab 48 89 85 08 01 - 00 00 mov QWORD PTR out$[rbp], rax -$LN43@stbi__psd_: - -; 7003 : -; 7004 : if (!out) - - 003b2 48 83 bd 08 01 - 00 00 00 cmp QWORD PTR out$[rbp], 0 - 003ba 75 34 jne SHORT $LN44@stbi__psd_ - -; 7005 : return stbi__errpuc("outofmem", "Out of memory"); - - 003bc 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 003c3 e8 00 00 00 00 call stbi__err - 003c8 85 c0 test eax, eax - 003ca 74 0d je SHORT $LN87@stbi__psd_ - 003cc 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv196[rbp], 0 - 003d7 eb 0b jmp SHORT $LN88@stbi__psd_ -$LN87@stbi__psd_: - 003d9 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv196[rbp], 0 -$LN88@stbi__psd_: - 003e4 48 8b 85 78 04 - 00 00 mov rax, QWORD PTR tv196[rbp] - 003eb e9 3d 08 00 00 jmp $LN1@stbi__psd_ -$LN44@stbi__psd_: - -; 7006 : pixelCount = w * h; - - 003f0 8b 85 c4 00 00 - 00 mov eax, DWORD PTR w$[rbp] - 003f6 0f af 85 e4 00 - 00 00 imul eax, DWORD PTR h$[rbp] - 003fd 89 45 04 mov DWORD PTR pixelCount$[rbp], eax - -; 7007 : -; 7008 : // Initialize the data to zero. -; 7009 : //memset( out, 0, pixelCount * 4 ); -; 7010 : -; 7011 : // Finally, the image data. -; 7012 : if (compression) { - - 00400 83 7d 44 00 cmp DWORD PTR compression$[rbp], 0 - 00404 0f 84 24 01 00 - 00 je $LN45@stbi__psd_ - -; 7013 : // RLE as used by .PSD and .TIFF -; 7014 : // Loop until you get the number of unpacked bytes you are expecting: -; 7015 : // Read the next source byte into n. -; 7016 : // If n is between 0 and 127 inclusive, copy the next n+1 bytes literally. -; 7017 : // Else if n is between -127 and -1 inclusive, copy the next byte -n+1 times. -; 7018 : // Else if n is 128, noop. -; 7019 : // Endloop -; 7020 : -; 7021 : // The RLE-compressed data is preceded by a 2-byte data count for each row in the data, -; 7022 : // which we're going to just skip. -; 7023 : stbi__skip(s, h * channelCount * 2); - - 0040a 8b 85 e4 00 00 - 00 mov eax, DWORD PTR h$[rbp] - 00410 0f af 45 24 imul eax, DWORD PTR channelCount$[rbp] - 00414 d1 e0 shl eax, 1 - 00416 8b d0 mov edx, eax - 00418 48 8b 8d a0 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0041f e8 00 00 00 00 call stbi__skip - 00424 90 npad 1 - -; 7024 : -; 7025 : // Read the RLE data by channel. -; 7026 : for (channel = 0; channel < 4; channel++) { - - 00425 c7 45 64 00 00 - 00 00 mov DWORD PTR channel$[rbp], 0 - 0042c eb 08 jmp SHORT $LN4@stbi__psd_ -$LN2@stbi__psd_: - 0042e 8b 45 64 mov eax, DWORD PTR channel$[rbp] - 00431 ff c0 inc eax - 00433 89 45 64 mov DWORD PTR channel$[rbp], eax -$LN4@stbi__psd_: - 00436 83 7d 64 04 cmp DWORD PTR channel$[rbp], 4 - 0043a 0f 8d e9 00 00 - 00 jge $LN3@stbi__psd_ - -; 7027 : stbi_uc *p; -; 7028 : -; 7029 : p = out + channel; - - 00440 48 63 45 64 movsxd rax, DWORD PTR channel$[rbp] - 00444 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR out$[rbp] - 0044b 48 03 c8 add rcx, rax - 0044e 48 8b c1 mov rax, rcx - 00451 48 89 85 28 01 - 00 00 mov QWORD PTR p$1[rbp], rax - -; 7030 : if (channel >= channelCount) { - - 00458 8b 45 24 mov eax, DWORD PTR channelCount$[rbp] - 0045b 39 45 64 cmp DWORD PTR channel$[rbp], eax - 0045e 7c 67 jl SHORT $LN47@stbi__psd_ - -; 7031 : // Fill this channel with default data. -; 7032 : for (i = 0; i < pixelCount; i++, p += 4) - - 00460 c7 85 84 00 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 0046a eb 20 jmp SHORT $LN7@stbi__psd_ -$LN5@stbi__psd_: - 0046c 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$[rbp] - 00472 ff c0 inc eax - 00474 89 85 84 00 00 - 00 mov DWORD PTR i$[rbp], eax - 0047a 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR p$1[rbp] - 00481 48 83 c0 04 add rax, 4 - 00485 48 89 85 28 01 - 00 00 mov QWORD PTR p$1[rbp], rax -$LN7@stbi__psd_: - 0048c 8b 45 04 mov eax, DWORD PTR pixelCount$[rbp] - 0048f 39 85 84 00 00 - 00 cmp DWORD PTR i$[rbp], eax - 00495 7d 2e jge SHORT $LN6@stbi__psd_ - -; 7033 : *p = (channel == 3 ? 255 : 0); - - 00497 83 7d 64 03 cmp DWORD PTR channel$[rbp], 3 - 0049b 75 0c jne SHORT $LN89@stbi__psd_ - 0049d c7 85 74 04 00 - 00 ff 00 00 00 mov DWORD PTR tv212[rbp], 255 ; 000000ffH - 004a7 eb 0a jmp SHORT $LN90@stbi__psd_ -$LN89@stbi__psd_: - 004a9 c7 85 74 04 00 - 00 00 00 00 00 mov DWORD PTR tv212[rbp], 0 -$LN90@stbi__psd_: - 004b3 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR p$1[rbp] - 004ba 0f b6 8d 74 04 - 00 00 movzx ecx, BYTE PTR tv212[rbp] - 004c1 88 08 mov BYTE PTR [rax], cl - 004c3 eb a7 jmp SHORT $LN5@stbi__psd_ -$LN6@stbi__psd_: - -; 7034 : } else { - - 004c5 eb 5d jmp SHORT $LN48@stbi__psd_ -$LN47@stbi__psd_: - -; 7035 : // Read the RLE data. -; 7036 : if (!stbi__psd_decode_rle(s, p, pixelCount)) { - - 004c7 44 8b 45 04 mov r8d, DWORD PTR pixelCount$[rbp] - 004cb 48 8b 95 28 01 - 00 00 mov rdx, QWORD PTR p$1[rbp] - 004d2 48 8b 8d a0 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 004d9 e8 00 00 00 00 call stbi__psd_decode_rle - 004de 85 c0 test eax, eax - 004e0 75 42 jne SHORT $LN49@stbi__psd_ - -; 7037 : STBI_FREE(out); - - 004e2 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR out$[rbp] - 004e9 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 004ef 90 npad 1 - -; 7038 : return stbi__errpuc("corrupt", "bad RLE data"); - - 004f0 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07DPPMCAKL@corrupt@ - 004f7 e8 00 00 00 00 call stbi__err - 004fc 85 c0 test eax, eax - 004fe 74 0d je SHORT $LN91@stbi__psd_ - 00500 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv223[rbp], 0 - 0050b eb 0b jmp SHORT $LN92@stbi__psd_ -$LN91@stbi__psd_: - 0050d 48 c7 85 78 04 - 00 00 00 00 00 - 00 mov QWORD PTR tv223[rbp], 0 -$LN92@stbi__psd_: - 00518 48 8b 85 78 04 - 00 00 mov rax, QWORD PTR tv223[rbp] - 0051f e9 09 07 00 00 jmp $LN1@stbi__psd_ -$LN49@stbi__psd_: -$LN48@stbi__psd_: - -; 7039 : } -; 7040 : } -; 7041 : } - - 00524 e9 05 ff ff ff jmp $LN2@stbi__psd_ -$LN3@stbi__psd_: - -; 7042 : -; 7043 : } else { - - 00529 e9 9c 02 00 00 jmp $LN46@stbi__psd_ -$LN45@stbi__psd_: - -; 7044 : // We're at the raw image data. It's each channel in order (Red, Green, Blue, Alpha, ...) -; 7045 : // where each channel consists of an 8-bit (or 16-bit) value for each pixel in the image. -; 7046 : -; 7047 : // Read the data by channel. -; 7048 : for (channel = 0; channel < 4; channel++) { - - 0052e c7 45 64 00 00 - 00 00 mov DWORD PTR channel$[rbp], 0 - 00535 eb 08 jmp SHORT $LN10@stbi__psd_ -$LN8@stbi__psd_: - 00537 8b 45 64 mov eax, DWORD PTR channel$[rbp] - 0053a ff c0 inc eax - 0053c 89 45 64 mov DWORD PTR channel$[rbp], eax -$LN10@stbi__psd_: - 0053f 83 7d 64 04 cmp DWORD PTR channel$[rbp], 4 - 00543 0f 8d 81 02 00 - 00 jge $LN9@stbi__psd_ - -; 7049 : if (channel >= channelCount) { - - 00549 8b 45 24 mov eax, DWORD PTR channelCount$[rbp] - 0054c 39 45 64 cmp DWORD PTR channel$[rbp], eax - 0054f 0f 8c 38 01 00 - 00 jl $LN50@stbi__psd_ - -; 7050 : // Fill this channel with default data. -; 7051 : if (bitdepth == 16 && bpc == 16) { - - 00555 83 bd a4 00 00 - 00 10 cmp DWORD PTR bitdepth$[rbp], 16 - 0055c 0f 85 9c 00 00 - 00 jne $LN52@stbi__psd_ - 00562 83 bd d0 04 00 - 00 10 cmp DWORD PTR bpc$[rbp], 16 - 00569 0f 85 8f 00 00 - 00 jne $LN52@stbi__psd_ - -; 7052 : stbi__uint16 *q = ((stbi__uint16 *)out) + channel; - - 0056f 48 63 45 64 movsxd rax, DWORD PTR channel$[rbp] - 00573 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR out$[rbp] - 0057a 48 8d 04 41 lea rax, QWORD PTR [rcx+rax*2] - 0057e 48 89 85 48 01 - 00 00 mov QWORD PTR q$2[rbp], rax - -; 7053 : stbi__uint16 val = channel == 3 ? 65535 : 0; - - 00585 83 7d 64 03 cmp DWORD PTR channel$[rbp], 3 - 00589 75 0c jne SHORT $LN93@stbi__psd_ - 0058b c7 85 74 04 00 - 00 ff ff 00 00 mov DWORD PTR tv233[rbp], 65535 ; 0000ffffH - 00595 eb 0a jmp SHORT $LN94@stbi__psd_ -$LN93@stbi__psd_: - 00597 c7 85 74 04 00 - 00 00 00 00 00 mov DWORD PTR tv233[rbp], 0 -$LN94@stbi__psd_: - 005a1 0f b7 85 74 04 - 00 00 movzx eax, WORD PTR tv233[rbp] - 005a8 66 89 85 64 01 - 00 00 mov WORD PTR val$3[rbp], ax - -; 7054 : for (i = 0; i < pixelCount; i++, q += 4) - - 005af c7 85 84 00 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 005b9 eb 20 jmp SHORT $LN13@stbi__psd_ -$LN11@stbi__psd_: - 005bb 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$[rbp] - 005c1 ff c0 inc eax - 005c3 89 85 84 00 00 - 00 mov DWORD PTR i$[rbp], eax - 005c9 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR q$2[rbp] - 005d0 48 83 c0 08 add rax, 8 - 005d4 48 89 85 48 01 - 00 00 mov QWORD PTR q$2[rbp], rax -$LN13@stbi__psd_: - 005db 8b 45 04 mov eax, DWORD PTR pixelCount$[rbp] - 005de 39 85 84 00 00 - 00 cmp DWORD PTR i$[rbp], eax - 005e4 7d 13 jge SHORT $LN12@stbi__psd_ - -; 7055 : *q = val; - - 005e6 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR q$2[rbp] - 005ed 0f b7 8d 64 01 - 00 00 movzx ecx, WORD PTR val$3[rbp] - 005f4 66 89 08 mov WORD PTR [rax], cx - 005f7 eb c2 jmp SHORT $LN11@stbi__psd_ -$LN12@stbi__psd_: - -; 7056 : } else { - - 005f9 e9 8a 00 00 00 jmp $LN53@stbi__psd_ -$LN52@stbi__psd_: - -; 7057 : stbi_uc *p = out + channel; - - 005fe 48 63 45 64 movsxd rax, DWORD PTR channel$[rbp] - 00602 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR out$[rbp] - 00609 48 03 c8 add rcx, rax - 0060c 48 8b c1 mov rax, rcx - 0060f 48 89 85 88 01 - 00 00 mov QWORD PTR p$4[rbp], rax - -; 7058 : stbi_uc val = channel == 3 ? 255 : 0; - - 00616 83 7d 64 03 cmp DWORD PTR channel$[rbp], 3 - 0061a 75 0c jne SHORT $LN95@stbi__psd_ - 0061c c7 85 74 04 00 - 00 ff 00 00 00 mov DWORD PTR tv241[rbp], 255 ; 000000ffH - 00626 eb 0a jmp SHORT $LN96@stbi__psd_ -$LN95@stbi__psd_: - 00628 c7 85 74 04 00 - 00 00 00 00 00 mov DWORD PTR tv241[rbp], 0 -$LN96@stbi__psd_: - 00632 0f b6 85 74 04 - 00 00 movzx eax, BYTE PTR tv241[rbp] - 00639 88 85 a4 01 00 - 00 mov BYTE PTR val$5[rbp], al - -; 7059 : for (i = 0; i < pixelCount; i++, p += 4) - - 0063f c7 85 84 00 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 00649 eb 20 jmp SHORT $LN16@stbi__psd_ -$LN14@stbi__psd_: - 0064b 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$[rbp] - 00651 ff c0 inc eax - 00653 89 85 84 00 00 - 00 mov DWORD PTR i$[rbp], eax - 00659 48 8b 85 88 01 - 00 00 mov rax, QWORD PTR p$4[rbp] - 00660 48 83 c0 04 add rax, 4 - 00664 48 89 85 88 01 - 00 00 mov QWORD PTR p$4[rbp], rax -$LN16@stbi__psd_: - 0066b 8b 45 04 mov eax, DWORD PTR pixelCount$[rbp] - 0066e 39 85 84 00 00 - 00 cmp DWORD PTR i$[rbp], eax - 00674 7d 12 jge SHORT $LN15@stbi__psd_ - -; 7060 : *p = val; - - 00676 48 8b 85 88 01 - 00 00 mov rax, QWORD PTR p$4[rbp] - 0067d 0f b6 8d a4 01 - 00 00 movzx ecx, BYTE PTR val$5[rbp] - 00684 88 08 mov BYTE PTR [rax], cl - 00686 eb c3 jmp SHORT $LN14@stbi__psd_ -$LN15@stbi__psd_: -$LN53@stbi__psd_: - -; 7061 : } -; 7062 : } else { - - 00688 e9 38 01 00 00 jmp $LN51@stbi__psd_ -$LN50@stbi__psd_: - -; 7063 : if (ri->bits_per_channel == 16) { // output bpc - - 0068d 48 8b 85 c8 04 - 00 00 mov rax, QWORD PTR ri$[rbp] - 00694 83 38 10 cmp DWORD PTR [rax], 16 - 00697 75 6a jne SHORT $LN54@stbi__psd_ - -; 7064 : stbi__uint16 *q = ((stbi__uint16 *)out) + channel; - - 00699 48 63 45 64 movsxd rax, DWORD PTR channel$[rbp] - 0069d 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR out$[rbp] - 006a4 48 8d 04 41 lea rax, QWORD PTR [rcx+rax*2] - 006a8 48 89 85 c8 01 - 00 00 mov QWORD PTR q$6[rbp], rax - -; 7065 : for (i = 0; i < pixelCount; i++, q += 4) - - 006af c7 85 84 00 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 006b9 eb 20 jmp SHORT $LN19@stbi__psd_ -$LN17@stbi__psd_: - 006bb 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$[rbp] - 006c1 ff c0 inc eax - 006c3 89 85 84 00 00 - 00 mov DWORD PTR i$[rbp], eax - 006c9 48 8b 85 c8 01 - 00 00 mov rax, QWORD PTR q$6[rbp] - 006d0 48 83 c0 08 add rax, 8 - 006d4 48 89 85 c8 01 - 00 00 mov QWORD PTR q$6[rbp], rax -$LN19@stbi__psd_: - 006db 8b 45 04 mov eax, DWORD PTR pixelCount$[rbp] - 006de 39 85 84 00 00 - 00 cmp DWORD PTR i$[rbp], eax - 006e4 7d 18 jge SHORT $LN18@stbi__psd_ - -; 7066 : *q = (stbi__uint16)stbi__get16be(s); - - 006e6 48 8b 8d a0 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 006ed e8 00 00 00 00 call stbi__get16be - 006f2 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR q$6[rbp] - 006f9 66 89 01 mov WORD PTR [rcx], ax - 006fc eb bd jmp SHORT $LN17@stbi__psd_ -$LN18@stbi__psd_: - -; 7067 : } else { - - 006fe e9 c2 00 00 00 jmp $LN55@stbi__psd_ -$LN54@stbi__psd_: - -; 7068 : stbi_uc *p = out + channel; - - 00703 48 63 45 64 movsxd rax, DWORD PTR channel$[rbp] - 00707 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR out$[rbp] - 0070e 48 03 c8 add rcx, rax - 00711 48 8b c1 mov rax, rcx - 00714 48 89 85 e8 01 - 00 00 mov QWORD PTR p$7[rbp], rax - -; 7069 : if (bitdepth == 16) { // input bpc - - 0071b 83 bd a4 00 00 - 00 10 cmp DWORD PTR bitdepth$[rbp], 16 - 00722 75 53 jne SHORT $LN56@stbi__psd_ - -; 7070 : for (i = 0; i < pixelCount; i++, p += 4) - - 00724 c7 85 84 00 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 0072e eb 20 jmp SHORT $LN22@stbi__psd_ -$LN20@stbi__psd_: - 00730 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$[rbp] - 00736 ff c0 inc eax - 00738 89 85 84 00 00 - 00 mov DWORD PTR i$[rbp], eax - 0073e 48 8b 85 e8 01 - 00 00 mov rax, QWORD PTR p$7[rbp] - 00745 48 83 c0 04 add rax, 4 - 00749 48 89 85 e8 01 - 00 00 mov QWORD PTR p$7[rbp], rax -$LN22@stbi__psd_: - 00750 8b 45 04 mov eax, DWORD PTR pixelCount$[rbp] - 00753 39 85 84 00 00 - 00 cmp DWORD PTR i$[rbp], eax - 00759 7d 1a jge SHORT $LN21@stbi__psd_ - -; 7071 : *p = (stbi_uc)(stbi__get16be(s) >> 8); - - 0075b 48 8b 8d a0 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00762 e8 00 00 00 00 call stbi__get16be - 00767 c1 f8 08 sar eax, 8 - 0076a 48 8b 8d e8 01 - 00 00 mov rcx, QWORD PTR p$7[rbp] - 00771 88 01 mov BYTE PTR [rcx], al - 00773 eb bb jmp SHORT $LN20@stbi__psd_ -$LN21@stbi__psd_: - -; 7072 : } else { - - 00775 eb 4e jmp SHORT $LN57@stbi__psd_ -$LN56@stbi__psd_: - -; 7073 : for (i = 0; i < pixelCount; i++, p += 4) - - 00777 c7 85 84 00 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 00781 eb 20 jmp SHORT $LN25@stbi__psd_ -$LN23@stbi__psd_: - 00783 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$[rbp] - 00789 ff c0 inc eax - 0078b 89 85 84 00 00 - 00 mov DWORD PTR i$[rbp], eax - 00791 48 8b 85 e8 01 - 00 00 mov rax, QWORD PTR p$7[rbp] - 00798 48 83 c0 04 add rax, 4 - 0079c 48 89 85 e8 01 - 00 00 mov QWORD PTR p$7[rbp], rax -$LN25@stbi__psd_: - 007a3 8b 45 04 mov eax, DWORD PTR pixelCount$[rbp] - 007a6 39 85 84 00 00 - 00 cmp DWORD PTR i$[rbp], eax - 007ac 7d 17 jge SHORT $LN24@stbi__psd_ - -; 7074 : *p = stbi__get8(s); - - 007ae 48 8b 8d a0 04 - 00 00 mov rcx, QWORD PTR s$[rbp] - 007b5 e8 00 00 00 00 call stbi__get8 - 007ba 48 8b 8d e8 01 - 00 00 mov rcx, QWORD PTR p$7[rbp] - 007c1 88 01 mov BYTE PTR [rcx], al - 007c3 eb be jmp SHORT $LN23@stbi__psd_ -$LN24@stbi__psd_: -$LN57@stbi__psd_: -$LN55@stbi__psd_: -$LN51@stbi__psd_: - -; 7075 : } -; 7076 : } -; 7077 : } -; 7078 : } - - 007c5 e9 6d fd ff ff jmp $LN8@stbi__psd_ -$LN9@stbi__psd_: -$LN46@stbi__psd_: - -; 7079 : } -; 7080 : -; 7081 : // remove weird white matte from PSD -; 7082 : if (channelCount >= 4) { - - 007ca 83 7d 24 04 cmp DWORD PTR channelCount$[rbp], 4 - 007ce 0f 8c 82 03 00 - 00 jl $LN58@stbi__psd_ - -; 7083 : if (ri->bits_per_channel == 16) { - - 007d4 48 8b 85 c8 04 - 00 00 mov rax, QWORD PTR ri$[rbp] - 007db 83 38 10 cmp DWORD PTR [rax], 16 - 007de 0f 85 bc 01 00 - 00 jne $LN59@stbi__psd_ - -; 7084 : for (i = 0; i < w * h; ++i) { - - 007e4 c7 85 84 00 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 007ee eb 0e jmp SHORT $LN28@stbi__psd_ -$LN26@stbi__psd_: - 007f0 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$[rbp] - 007f6 ff c0 inc eax - 007f8 89 85 84 00 00 - 00 mov DWORD PTR i$[rbp], eax -$LN28@stbi__psd_: - 007fe 8b 85 c4 00 00 - 00 mov eax, DWORD PTR w$[rbp] - 00804 0f af 85 e4 00 - 00 00 imul eax, DWORD PTR h$[rbp] - 0080b 39 85 84 00 00 - 00 cmp DWORD PTR i$[rbp], eax - 00811 0f 8d 84 01 00 - 00 jge $LN27@stbi__psd_ - -; 7085 : stbi__uint16 *pixel = (stbi__uint16 *)out + 4 * i; - - 00817 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$[rbp] - 0081d c1 e0 02 shl eax, 2 - 00820 48 98 cdqe - 00822 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR out$[rbp] - 00829 48 8d 04 41 lea rax, QWORD PTR [rcx+rax*2] - 0082d 48 89 85 08 02 - 00 00 mov QWORD PTR pixel$8[rbp], rax - -; 7086 : if (pixel[3] != 0 && pixel[3] != 65535) { - - 00834 b8 02 00 00 00 mov eax, 2 - 00839 48 6b c0 03 imul rax, rax, 3 - 0083d 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR pixel$8[rbp] - 00844 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] - 00848 85 c0 test eax, eax - 0084a 0f 84 46 01 00 - 00 je $LN61@stbi__psd_ - 00850 b8 02 00 00 00 mov eax, 2 - 00855 48 6b c0 03 imul rax, rax, 3 - 00859 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR pixel$8[rbp] - 00860 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] - 00864 3d ff ff 00 00 cmp eax, 65535 ; 0000ffffH - 00869 0f 84 27 01 00 - 00 je $LN61@stbi__psd_ - -; 7087 : float a = pixel[3] / 65535.0f; - - 0086f b8 02 00 00 00 mov eax, 2 - 00874 48 6b c0 03 imul rax, rax, 3 - 00878 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR pixel$8[rbp] - 0087f 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] - 00883 f3 0f 2a c0 cvtsi2ss xmm0, eax - 00887 f3 0f 5e 05 00 - 00 00 00 divss xmm0, DWORD PTR __real@477fff00 - 0088f f3 0f 11 85 24 - 02 00 00 movss DWORD PTR a$9[rbp], xmm0 - -; 7088 : float ra = 1.0f / a; - - 00897 f3 0f 10 05 00 - 00 00 00 movss xmm0, DWORD PTR __real@3f800000 - 0089f f3 0f 5e 85 24 - 02 00 00 divss xmm0, DWORD PTR a$9[rbp] - 008a7 f3 0f 11 85 44 - 02 00 00 movss DWORD PTR ra$10[rbp], xmm0 - -; 7089 : float inv_a = 65535.0f * (1 - ra); - - 008af f3 0f 10 05 00 - 00 00 00 movss xmm0, DWORD PTR __real@3f800000 - 008b7 f3 0f 5c 85 44 - 02 00 00 subss xmm0, DWORD PTR ra$10[rbp] - 008bf f3 0f 10 0d 00 - 00 00 00 movss xmm1, DWORD PTR __real@477fff00 - 008c7 f3 0f 59 c8 mulss xmm1, xmm0 - 008cb 0f 28 c1 movaps xmm0, xmm1 - 008ce f3 0f 11 85 64 - 02 00 00 movss DWORD PTR inv_a$11[rbp], xmm0 - -; 7090 : pixel[0] = (stbi__uint16)(pixel[0] * ra + inv_a); - - 008d6 b8 02 00 00 00 mov eax, 2 - 008db 48 6b c0 00 imul rax, rax, 0 - 008df 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR pixel$8[rbp] - 008e6 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] - 008ea f3 0f 2a c0 cvtsi2ss xmm0, eax - 008ee f3 0f 59 85 44 - 02 00 00 mulss xmm0, DWORD PTR ra$10[rbp] - 008f6 f3 0f 58 85 64 - 02 00 00 addss xmm0, DWORD PTR inv_a$11[rbp] - 008fe f3 0f 2c c0 cvttss2si eax, xmm0 - 00902 b9 02 00 00 00 mov ecx, 2 - 00907 48 6b c9 00 imul rcx, rcx, 0 - 0090b 48 8b 95 08 02 - 00 00 mov rdx, QWORD PTR pixel$8[rbp] - 00912 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 7091 : pixel[1] = (stbi__uint16)(pixel[1] * ra + inv_a); - - 00916 b8 02 00 00 00 mov eax, 2 - 0091b 48 6b c0 01 imul rax, rax, 1 - 0091f 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR pixel$8[rbp] - 00926 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] - 0092a f3 0f 2a c0 cvtsi2ss xmm0, eax - 0092e f3 0f 59 85 44 - 02 00 00 mulss xmm0, DWORD PTR ra$10[rbp] - 00936 f3 0f 58 85 64 - 02 00 00 addss xmm0, DWORD PTR inv_a$11[rbp] - 0093e f3 0f 2c c0 cvttss2si eax, xmm0 - 00942 b9 02 00 00 00 mov ecx, 2 - 00947 48 6b c9 01 imul rcx, rcx, 1 - 0094b 48 8b 95 08 02 - 00 00 mov rdx, QWORD PTR pixel$8[rbp] - 00952 66 89 04 0a mov WORD PTR [rdx+rcx], ax - -; 7092 : pixel[2] = (stbi__uint16)(pixel[2] * ra + inv_a); - - 00956 b8 02 00 00 00 mov eax, 2 - 0095b 48 6b c0 02 imul rax, rax, 2 - 0095f 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR pixel$8[rbp] - 00966 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] - 0096a f3 0f 2a c0 cvtsi2ss xmm0, eax - 0096e f3 0f 59 85 44 - 02 00 00 mulss xmm0, DWORD PTR ra$10[rbp] - 00976 f3 0f 58 85 64 - 02 00 00 addss xmm0, DWORD PTR inv_a$11[rbp] - 0097e f3 0f 2c c0 cvttss2si eax, xmm0 - 00982 b9 02 00 00 00 mov ecx, 2 - 00987 48 6b c9 02 imul rcx, rcx, 2 - 0098b 48 8b 95 08 02 - 00 00 mov rdx, QWORD PTR pixel$8[rbp] - 00992 66 89 04 0a mov WORD PTR [rdx+rcx], ax -$LN61@stbi__psd_: - -; 7093 : } -; 7094 : } - - 00996 e9 55 fe ff ff jmp $LN26@stbi__psd_ -$LN27@stbi__psd_: - -; 7095 : } else { - - 0099b e9 b6 01 00 00 jmp $LN60@stbi__psd_ -$LN59@stbi__psd_: - -; 7096 : for (i = 0; i < w * h; ++i) { - - 009a0 c7 85 84 00 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 009aa eb 0e jmp SHORT $LN31@stbi__psd_ -$LN29@stbi__psd_: - 009ac 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$[rbp] - 009b2 ff c0 inc eax - 009b4 89 85 84 00 00 - 00 mov DWORD PTR i$[rbp], eax -$LN31@stbi__psd_: - 009ba 8b 85 c4 00 00 - 00 mov eax, DWORD PTR w$[rbp] - 009c0 0f af 85 e4 00 - 00 00 imul eax, DWORD PTR h$[rbp] - 009c7 39 85 84 00 00 - 00 cmp DWORD PTR i$[rbp], eax - 009cd 0f 8d 83 01 00 - 00 jge $LN30@stbi__psd_ - -; 7097 : unsigned char *pixel = out + 4 * i; - - 009d3 8b 85 84 00 00 - 00 mov eax, DWORD PTR i$[rbp] - 009d9 c1 e0 02 shl eax, 2 - 009dc 48 98 cdqe - 009de 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR out$[rbp] - 009e5 48 03 c8 add rcx, rax - 009e8 48 8b c1 mov rax, rcx - 009eb 48 89 85 88 02 - 00 00 mov QWORD PTR pixel$12[rbp], rax - -; 7098 : if (pixel[3] != 0 && pixel[3] != 255) { - - 009f2 b8 01 00 00 00 mov eax, 1 - 009f7 48 6b c0 03 imul rax, rax, 3 - 009fb 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR pixel$12[rbp] - 00a02 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00a06 85 c0 test eax, eax - 00a08 0f 84 43 01 00 - 00 je $LN62@stbi__psd_ - 00a0e b8 01 00 00 00 mov eax, 1 - 00a13 48 6b c0 03 imul rax, rax, 3 - 00a17 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR pixel$12[rbp] - 00a1e 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00a22 3d ff 00 00 00 cmp eax, 255 ; 000000ffH - 00a27 0f 84 24 01 00 - 00 je $LN62@stbi__psd_ - -; 7099 : float a = pixel[3] / 255.0f; - - 00a2d b8 01 00 00 00 mov eax, 1 - 00a32 48 6b c0 03 imul rax, rax, 3 - 00a36 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR pixel$12[rbp] - 00a3d 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00a41 f3 0f 2a c0 cvtsi2ss xmm0, eax - 00a45 f3 0f 5e 05 00 - 00 00 00 divss xmm0, DWORD PTR __real@437f0000 - 00a4d f3 0f 11 85 a4 - 02 00 00 movss DWORD PTR a$13[rbp], xmm0 - -; 7100 : float ra = 1.0f / a; - - 00a55 f3 0f 10 05 00 - 00 00 00 movss xmm0, DWORD PTR __real@3f800000 - 00a5d f3 0f 5e 85 a4 - 02 00 00 divss xmm0, DWORD PTR a$13[rbp] - 00a65 f3 0f 11 85 c4 - 02 00 00 movss DWORD PTR ra$14[rbp], xmm0 - -; 7101 : float inv_a = 255.0f * (1 - ra); - - 00a6d f3 0f 10 05 00 - 00 00 00 movss xmm0, DWORD PTR __real@3f800000 - 00a75 f3 0f 5c 85 c4 - 02 00 00 subss xmm0, DWORD PTR ra$14[rbp] - 00a7d f3 0f 10 0d 00 - 00 00 00 movss xmm1, DWORD PTR __real@437f0000 - 00a85 f3 0f 59 c8 mulss xmm1, xmm0 - 00a89 0f 28 c1 movaps xmm0, xmm1 - 00a8c f3 0f 11 85 e4 - 02 00 00 movss DWORD PTR inv_a$15[rbp], xmm0 - -; 7102 : pixel[0] = (unsigned char)(pixel[0] * ra + inv_a); - - 00a94 b8 01 00 00 00 mov eax, 1 - 00a99 48 6b c0 00 imul rax, rax, 0 - 00a9d 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR pixel$12[rbp] - 00aa4 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00aa8 f3 0f 2a c0 cvtsi2ss xmm0, eax - 00aac f3 0f 59 85 c4 - 02 00 00 mulss xmm0, DWORD PTR ra$14[rbp] - 00ab4 f3 0f 58 85 e4 - 02 00 00 addss xmm0, DWORD PTR inv_a$15[rbp] - 00abc f3 0f 2c c0 cvttss2si eax, xmm0 - 00ac0 b9 01 00 00 00 mov ecx, 1 - 00ac5 48 6b c9 00 imul rcx, rcx, 0 - 00ac9 48 8b 95 88 02 - 00 00 mov rdx, QWORD PTR pixel$12[rbp] - 00ad0 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 7103 : pixel[1] = (unsigned char)(pixel[1] * ra + inv_a); - - 00ad3 b8 01 00 00 00 mov eax, 1 - 00ad8 48 6b c0 01 imul rax, rax, 1 - 00adc 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR pixel$12[rbp] - 00ae3 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00ae7 f3 0f 2a c0 cvtsi2ss xmm0, eax - 00aeb f3 0f 59 85 c4 - 02 00 00 mulss xmm0, DWORD PTR ra$14[rbp] - 00af3 f3 0f 58 85 e4 - 02 00 00 addss xmm0, DWORD PTR inv_a$15[rbp] - 00afb f3 0f 2c c0 cvttss2si eax, xmm0 - 00aff b9 01 00 00 00 mov ecx, 1 - 00b04 48 6b c9 01 imul rcx, rcx, 1 - 00b08 48 8b 95 88 02 - 00 00 mov rdx, QWORD PTR pixel$12[rbp] - 00b0f 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 7104 : pixel[2] = (unsigned char)(pixel[2] * ra + inv_a); - - 00b12 b8 01 00 00 00 mov eax, 1 - 00b17 48 6b c0 02 imul rax, rax, 2 - 00b1b 48 8b 8d 88 02 - 00 00 mov rcx, QWORD PTR pixel$12[rbp] - 00b22 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00b26 f3 0f 2a c0 cvtsi2ss xmm0, eax - 00b2a f3 0f 59 85 c4 - 02 00 00 mulss xmm0, DWORD PTR ra$14[rbp] - 00b32 f3 0f 58 85 e4 - 02 00 00 addss xmm0, DWORD PTR inv_a$15[rbp] - 00b3a f3 0f 2c c0 cvttss2si eax, xmm0 - 00b3e b9 01 00 00 00 mov ecx, 1 - 00b43 48 6b c9 02 imul rcx, rcx, 2 - 00b47 48 8b 95 88 02 - 00 00 mov rdx, QWORD PTR pixel$12[rbp] - 00b4e 88 04 0a mov BYTE PTR [rdx+rcx], al -$LN62@stbi__psd_: - -; 7105 : } -; 7106 : } - - 00b51 e9 56 fe ff ff jmp $LN29@stbi__psd_ -$LN30@stbi__psd_: -$LN60@stbi__psd_: -$LN58@stbi__psd_: - -; 7107 : } -; 7108 : } -; 7109 : -; 7110 : // convert to desired output format -; 7111 : if (req_comp && req_comp != 4) { - - 00b56 83 bd c0 04 00 - 00 00 cmp DWORD PTR req_comp$[rbp], 0 - 00b5d 0f 84 8e 00 00 - 00 je $LN63@stbi__psd_ - 00b63 83 bd c0 04 00 - 00 04 cmp DWORD PTR req_comp$[rbp], 4 - 00b6a 0f 84 81 00 00 - 00 je $LN63@stbi__psd_ - -; 7112 : if (ri->bits_per_channel == 16) - - 00b70 48 8b 85 c8 04 - 00 00 mov rax, QWORD PTR ri$[rbp] - 00b77 83 38 10 cmp DWORD PTR [rax], 16 - 00b7a 75 32 jne SHORT $LN64@stbi__psd_ - -; 7113 : out = (stbi_uc *)stbi__convert_format16((stbi__uint16 *)out, 4, req_comp, w, - - 00b7c 8b 85 e4 00 00 - 00 mov eax, DWORD PTR h$[rbp] - 00b82 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00b86 44 8b 8d c4 00 - 00 00 mov r9d, DWORD PTR w$[rbp] - 00b8d 44 8b 85 c0 04 - 00 00 mov r8d, DWORD PTR req_comp$[rbp] - 00b94 ba 04 00 00 00 mov edx, 4 - 00b99 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR out$[rbp] - 00ba0 e8 00 00 00 00 call stbi__convert_format16 - 00ba5 48 89 85 08 01 - 00 00 mov QWORD PTR out$[rbp], rax - 00bac eb 30 jmp SHORT $LN65@stbi__psd_ -$LN64@stbi__psd_: - -; 7114 : h); -; 7115 : else -; 7116 : out = stbi__convert_format(out, 4, req_comp, w, h); - - 00bae 8b 85 e4 00 00 - 00 mov eax, DWORD PTR h$[rbp] - 00bb4 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00bb8 44 8b 8d c4 00 - 00 00 mov r9d, DWORD PTR w$[rbp] - 00bbf 44 8b 85 c0 04 - 00 00 mov r8d, DWORD PTR req_comp$[rbp] - 00bc6 ba 04 00 00 00 mov edx, 4 - 00bcb 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR out$[rbp] - 00bd2 e8 00 00 00 00 call stbi__convert_format - 00bd7 48 89 85 08 01 - 00 00 mov QWORD PTR out$[rbp], rax -$LN65@stbi__psd_: - -; 7117 : if (out == NULL) - - 00bde 48 83 bd 08 01 - 00 00 00 cmp QWORD PTR out$[rbp], 0 - 00be6 75 09 jne SHORT $LN66@stbi__psd_ - -; 7118 : return out; // stbi__convert_format frees input on failure - - 00be8 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR out$[rbp] - 00bef eb 3c jmp SHORT $LN1@stbi__psd_ -$LN66@stbi__psd_: -$LN63@stbi__psd_: - -; 7119 : } -; 7120 : -; 7121 : if (comp) - - 00bf1 48 83 bd b8 04 - 00 00 00 cmp QWORD PTR comp$[rbp], 0 - 00bf9 74 0d je SHORT $LN67@stbi__psd_ - -; 7122 : *comp = 4; - - 00bfb 48 8b 85 b8 04 - 00 00 mov rax, QWORD PTR comp$[rbp] - 00c02 c7 00 04 00 00 - 00 mov DWORD PTR [rax], 4 -$LN67@stbi__psd_: - -; 7123 : *y = h; - - 00c08 48 8b 85 b0 04 - 00 00 mov rax, QWORD PTR y$[rbp] - 00c0f 8b 8d e4 00 00 - 00 mov ecx, DWORD PTR h$[rbp] - 00c15 89 08 mov DWORD PTR [rax], ecx - -; 7124 : *x = w; - - 00c17 48 8b 85 a8 04 - 00 00 mov rax, QWORD PTR x$[rbp] - 00c1e 8b 8d c4 00 00 - 00 mov ecx, DWORD PTR w$[rbp] - 00c24 89 08 mov DWORD PTR [rax], ecx - -; 7125 : -; 7126 : return out; - - 00c26 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR out$[rbp] -$LN1@stbi__psd_: - -; 7127 : } - - 00c2d 48 8d a5 88 04 - 00 00 lea rsp, QWORD PTR [rbp+1160] - 00c34 5f pop rdi - 00c35 5d pop rbp - 00c36 c3 ret 0 -stbi__psd_load ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__psd_test -_TEXT SEGMENT -r$ = 4 -tv67 = 212 -s$ = 256 -stbi__psd_test PROC ; COMDAT - -; 6874 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 6875 : int r = (stbi__get32be(s) == 0x38425053); - - 00020 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00027 e8 00 00 00 00 call stbi__get32be - 0002c 3d 53 50 42 38 cmp eax, 943870035 ; 38425053H - 00031 75 0c jne SHORT $LN3@stbi__psd_ - 00033 c7 85 d4 00 00 - 00 01 00 00 00 mov DWORD PTR tv67[rbp], 1 - 0003d eb 0a jmp SHORT $LN4@stbi__psd_ -$LN3@stbi__psd_: - 0003f c7 85 d4 00 00 - 00 00 00 00 00 mov DWORD PTR tv67[rbp], 0 -$LN4@stbi__psd_: - 00049 8b 85 d4 00 00 - 00 mov eax, DWORD PTR tv67[rbp] - 0004f 89 45 04 mov DWORD PTR r$[rbp], eax - -; 6876 : stbi__rewind(s); - - 00052 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00059 e8 00 00 00 00 call stbi__rewind - 0005e 90 npad 1 - -; 6877 : return r; - - 0005f 8b 45 04 mov eax, DWORD PTR r$[rbp] - -; 6878 : } - - 00062 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00069 5f pop rdi - 0006a 5d pop rbp - 0006b c3 ret 0 -stbi__psd_test ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__tga_info -_TEXT SEGMENT -tga_w$ = 4 -tga_h$ = 36 -tga_comp$ = 68 -tga_image_type$ = 100 -tga_bits_per_pixel$ = 132 -tga_colormap_bpp$ = 164 -sz$ = 196 -tga_colormap_type$ = 228 -tv153 = 436 -s$ = 480 -x$ = 488 -y$ = 496 -comp$ = 504 -stbi__tga_info PROC ; COMDAT - -; 6540 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec e8 01 - 00 00 sub rsp, 488 ; 000001e8H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 6541 : int tga_w, tga_h, tga_comp, tga_image_type, tga_bits_per_pixel, tga_colormap_bpp; -; 6542 : int sz, tga_colormap_type; -; 6543 : stbi__get8(s); // discard Offset - - 0002f 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00036 e8 00 00 00 00 call stbi__get8 - 0003b 90 npad 1 - -; 6544 : tga_colormap_type = stbi__get8(s); // colormap type - - 0003c 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00043 e8 00 00 00 00 call stbi__get8 - 00048 0f b6 c0 movzx eax, al - 0004b 89 85 e4 00 00 - 00 mov DWORD PTR tga_colormap_type$[rbp], eax - -; 6545 : if (tga_colormap_type > 1) { - - 00051 83 bd e4 00 00 - 00 01 cmp DWORD PTR tga_colormap_type$[rbp], 1 - 00058 7e 14 jle SHORT $LN2@stbi__tga_ - -; 6546 : stbi__rewind(s); - - 0005a 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00061 e8 00 00 00 00 call stbi__rewind - 00066 90 npad 1 - -; 6547 : return 0; // only RGB or indexed allowed - - 00067 33 c0 xor eax, eax - 00069 e9 5e 02 00 00 jmp $LN1@stbi__tga_ -$LN2@stbi__tga_: - -; 6548 : } -; 6549 : tga_image_type = stbi__get8(s); // image type - - 0006e 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00075 e8 00 00 00 00 call stbi__get8 - 0007a 0f b6 c0 movzx eax, al - 0007d 89 45 64 mov DWORD PTR tga_image_type$[rbp], eax - -; 6550 : if (tga_colormap_type == 1) { // colormapped (paletted) image - - 00080 83 bd e4 00 00 - 00 01 cmp DWORD PTR tga_colormap_type$[rbp], 1 - 00087 0f 85 a8 00 00 - 00 jne $LN3@stbi__tga_ - -; 6551 : if (tga_image_type != 1 && tga_image_type != 9) { - - 0008d 83 7d 64 01 cmp DWORD PTR tga_image_type$[rbp], 1 - 00091 74 1a je SHORT $LN5@stbi__tga_ - 00093 83 7d 64 09 cmp DWORD PTR tga_image_type$[rbp], 9 - 00097 74 14 je SHORT $LN5@stbi__tga_ - -; 6552 : stbi__rewind(s); - - 00099 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000a0 e8 00 00 00 00 call stbi__rewind - 000a5 90 npad 1 - -; 6553 : return 0; - - 000a6 33 c0 xor eax, eax - 000a8 e9 1f 02 00 00 jmp $LN1@stbi__tga_ -$LN5@stbi__tga_: - -; 6554 : } -; 6555 : stbi__skip(s, 4); // skip index of first colormap entry and number of entries - - 000ad ba 04 00 00 00 mov edx, 4 - 000b2 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000b9 e8 00 00 00 00 call stbi__skip - 000be 90 npad 1 - -; 6556 : sz = stbi__get8(s); // check bits per palette color entry - - 000bf 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000c6 e8 00 00 00 00 call stbi__get8 - 000cb 0f b6 c0 movzx eax, al - 000ce 89 85 c4 00 00 - 00 mov DWORD PTR sz$[rbp], eax - -; 6557 : if ((sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32)) { - - 000d4 83 bd c4 00 00 - 00 08 cmp DWORD PTR sz$[rbp], 8 - 000db 74 38 je SHORT $LN6@stbi__tga_ - 000dd 83 bd c4 00 00 - 00 0f cmp DWORD PTR sz$[rbp], 15 - 000e4 74 2f je SHORT $LN6@stbi__tga_ - 000e6 83 bd c4 00 00 - 00 10 cmp DWORD PTR sz$[rbp], 16 - 000ed 74 26 je SHORT $LN6@stbi__tga_ - 000ef 83 bd c4 00 00 - 00 18 cmp DWORD PTR sz$[rbp], 24 - 000f6 74 1d je SHORT $LN6@stbi__tga_ - 000f8 83 bd c4 00 00 - 00 20 cmp DWORD PTR sz$[rbp], 32 ; 00000020H - 000ff 74 14 je SHORT $LN6@stbi__tga_ - -; 6558 : stbi__rewind(s); - - 00101 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00108 e8 00 00 00 00 call stbi__rewind - 0010d 90 npad 1 - -; 6559 : return 0; - - 0010e 33 c0 xor eax, eax - 00110 e9 b7 01 00 00 jmp $LN1@stbi__tga_ -$LN6@stbi__tga_: - -; 6560 : } -; 6561 : stbi__skip(s, 4); // skip image x and y origin - - 00115 ba 04 00 00 00 mov edx, 4 - 0011a 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00121 e8 00 00 00 00 call stbi__skip - 00126 90 npad 1 - -; 6562 : tga_colormap_bpp = sz; - - 00127 8b 85 c4 00 00 - 00 mov eax, DWORD PTR sz$[rbp] - 0012d 89 85 a4 00 00 - 00 mov DWORD PTR tga_colormap_bpp$[rbp], eax - -; 6563 : } else { // "normal" image w/o colormap - only RGB or grey allowed, +/- RLE - - 00133 eb 48 jmp SHORT $LN4@stbi__tga_ -$LN3@stbi__tga_: - -; 6564 : if ((tga_image_type != 2) && (tga_image_type != 3) && (tga_image_type != 10) && - - 00135 83 7d 64 02 cmp DWORD PTR tga_image_type$[rbp], 2 - 00139 74 26 je SHORT $LN7@stbi__tga_ - 0013b 83 7d 64 03 cmp DWORD PTR tga_image_type$[rbp], 3 - 0013f 74 20 je SHORT $LN7@stbi__tga_ - 00141 83 7d 64 0a cmp DWORD PTR tga_image_type$[rbp], 10 - 00145 74 1a je SHORT $LN7@stbi__tga_ - 00147 83 7d 64 0b cmp DWORD PTR tga_image_type$[rbp], 11 - 0014b 74 14 je SHORT $LN7@stbi__tga_ - -; 6565 : (tga_image_type != 11)) { -; 6566 : stbi__rewind(s); - - 0014d 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00154 e8 00 00 00 00 call stbi__rewind - 00159 90 npad 1 - -; 6567 : return 0; // only RGB or grey allowed, +/- RLE - - 0015a 33 c0 xor eax, eax - 0015c e9 6b 01 00 00 jmp $LN1@stbi__tga_ -$LN7@stbi__tga_: - -; 6568 : } -; 6569 : stbi__skip(s, 9); // skip colormap specification and image x/y origin - - 00161 ba 09 00 00 00 mov edx, 9 - 00166 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0016d e8 00 00 00 00 call stbi__skip - 00172 90 npad 1 - -; 6570 : tga_colormap_bpp = 0; - - 00173 c7 85 a4 00 00 - 00 00 00 00 00 mov DWORD PTR tga_colormap_bpp$[rbp], 0 -$LN4@stbi__tga_: - -; 6571 : } -; 6572 : tga_w = stbi__get16le(s); - - 0017d 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00184 e8 00 00 00 00 call stbi__get16le - 00189 89 45 04 mov DWORD PTR tga_w$[rbp], eax - -; 6573 : if (tga_w < 1) { - - 0018c 83 7d 04 01 cmp DWORD PTR tga_w$[rbp], 1 - 00190 7d 14 jge SHORT $LN8@stbi__tga_ - -; 6574 : stbi__rewind(s); - - 00192 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00199 e8 00 00 00 00 call stbi__rewind - 0019e 90 npad 1 - -; 6575 : return 0; // test width - - 0019f 33 c0 xor eax, eax - 001a1 e9 26 01 00 00 jmp $LN1@stbi__tga_ -$LN8@stbi__tga_: - -; 6576 : } -; 6577 : tga_h = stbi__get16le(s); - - 001a6 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001ad e8 00 00 00 00 call stbi__get16le - 001b2 89 45 24 mov DWORD PTR tga_h$[rbp], eax - -; 6578 : if (tga_h < 1) { - - 001b5 83 7d 24 01 cmp DWORD PTR tga_h$[rbp], 1 - 001b9 7d 14 jge SHORT $LN9@stbi__tga_ - -; 6579 : stbi__rewind(s); - - 001bb 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001c2 e8 00 00 00 00 call stbi__rewind - 001c7 90 npad 1 - -; 6580 : return 0; // test height - - 001c8 33 c0 xor eax, eax - 001ca e9 fd 00 00 00 jmp $LN1@stbi__tga_ -$LN9@stbi__tga_: - -; 6581 : } -; 6582 : tga_bits_per_pixel = stbi__get8(s); // bits per pixel - - 001cf 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001d6 e8 00 00 00 00 call stbi__get8 - 001db 0f b6 c0 movzx eax, al - 001de 89 85 84 00 00 - 00 mov DWORD PTR tga_bits_per_pixel$[rbp], eax - -; 6583 : stbi__get8(s); // ignore alpha bits - - 001e4 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 001eb e8 00 00 00 00 call stbi__get8 - 001f0 90 npad 1 - -; 6584 : if (tga_colormap_bpp != 0) { - - 001f1 83 bd a4 00 00 - 00 00 cmp DWORD PTR tga_colormap_bpp$[rbp], 0 - 001f8 74 3b je SHORT $LN10@stbi__tga_ - -; 6585 : if ((tga_bits_per_pixel != 8) && (tga_bits_per_pixel != 16)) { - - 001fa 83 bd 84 00 00 - 00 08 cmp DWORD PTR tga_bits_per_pixel$[rbp], 8 - 00201 74 1d je SHORT $LN12@stbi__tga_ - 00203 83 bd 84 00 00 - 00 10 cmp DWORD PTR tga_bits_per_pixel$[rbp], 16 - 0020a 74 14 je SHORT $LN12@stbi__tga_ - -; 6586 : // when using a colormap, tga_bits_per_pixel is the size of the indexes -; 6587 : // I don't think anything but 8 or 16bit indexes makes sense -; 6588 : stbi__rewind(s); - - 0020c 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00213 e8 00 00 00 00 call stbi__rewind - 00218 90 npad 1 - -; 6589 : return 0; - - 00219 33 c0 xor eax, eax - 0021b e9 ac 00 00 00 jmp $LN1@stbi__tga_ -$LN12@stbi__tga_: - -; 6590 : } -; 6591 : tga_comp = stbi__tga_get_comp(tga_colormap_bpp, 0, NULL); - - 00220 45 33 c0 xor r8d, r8d - 00223 33 d2 xor edx, edx - 00225 8b 8d a4 00 00 - 00 mov ecx, DWORD PTR tga_colormap_bpp$[rbp] - 0022b e8 00 00 00 00 call stbi__tga_get_comp - 00230 89 45 44 mov DWORD PTR tga_comp$[rbp], eax - -; 6592 : } else { - - 00233 eb 39 jmp SHORT $LN11@stbi__tga_ -$LN10@stbi__tga_: - -; 6593 : tga_comp = stbi__tga_get_comp( - - 00235 83 7d 64 03 cmp DWORD PTR tga_image_type$[rbp], 3 - 00239 74 12 je SHORT $LN18@stbi__tga_ - 0023b 83 7d 64 0b cmp DWORD PTR tga_image_type$[rbp], 11 - 0023f 74 0c je SHORT $LN18@stbi__tga_ - 00241 c7 85 b4 01 00 - 00 00 00 00 00 mov DWORD PTR tv153[rbp], 0 - 0024b eb 0a jmp SHORT $LN19@stbi__tga_ -$LN18@stbi__tga_: - 0024d c7 85 b4 01 00 - 00 01 00 00 00 mov DWORD PTR tv153[rbp], 1 -$LN19@stbi__tga_: - 00257 45 33 c0 xor r8d, r8d - 0025a 8b 95 b4 01 00 - 00 mov edx, DWORD PTR tv153[rbp] - 00260 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR tga_bits_per_pixel$[rbp] - 00266 e8 00 00 00 00 call stbi__tga_get_comp - 0026b 89 45 44 mov DWORD PTR tga_comp$[rbp], eax -$LN11@stbi__tga_: - -; 6594 : tga_bits_per_pixel, (tga_image_type == 3) || (tga_image_type == 11), NULL); -; 6595 : } -; 6596 : if (!tga_comp) { - - 0026e 83 7d 44 00 cmp DWORD PTR tga_comp$[rbp], 0 - 00272 75 11 jne SHORT $LN13@stbi__tga_ - -; 6597 : stbi__rewind(s); - - 00274 48 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0027b e8 00 00 00 00 call stbi__rewind - 00280 90 npad 1 - -; 6598 : return 0; - - 00281 33 c0 xor eax, eax - 00283 eb 47 jmp SHORT $LN1@stbi__tga_ -$LN13@stbi__tga_: - -; 6599 : } -; 6600 : if (x) - - 00285 48 83 bd e8 01 - 00 00 00 cmp QWORD PTR x$[rbp], 0 - 0028d 74 0c je SHORT $LN14@stbi__tga_ - -; 6601 : *x = tga_w; - - 0028f 48 8b 85 e8 01 - 00 00 mov rax, QWORD PTR x$[rbp] - 00296 8b 4d 04 mov ecx, DWORD PTR tga_w$[rbp] - 00299 89 08 mov DWORD PTR [rax], ecx -$LN14@stbi__tga_: - -; 6602 : if (y) - - 0029b 48 83 bd f0 01 - 00 00 00 cmp QWORD PTR y$[rbp], 0 - 002a3 74 0c je SHORT $LN15@stbi__tga_ - -; 6603 : *y = tga_h; - - 002a5 48 8b 85 f0 01 - 00 00 mov rax, QWORD PTR y$[rbp] - 002ac 8b 4d 24 mov ecx, DWORD PTR tga_h$[rbp] - 002af 89 08 mov DWORD PTR [rax], ecx -$LN15@stbi__tga_: - -; 6604 : if (comp) - - 002b1 48 83 bd f8 01 - 00 00 00 cmp QWORD PTR comp$[rbp], 0 - 002b9 74 0c je SHORT $LN16@stbi__tga_ - -; 6605 : *comp = tga_comp; - - 002bb 48 8b 85 f8 01 - 00 00 mov rax, QWORD PTR comp$[rbp] - 002c2 8b 4d 44 mov ecx, DWORD PTR tga_comp$[rbp] - 002c5 89 08 mov DWORD PTR [rax], ecx -$LN16@stbi__tga_: - -; 6606 : return 1; // seems to have passed everything - - 002c7 b8 01 00 00 00 mov eax, 1 -$LN1@stbi__tga_: - -; 6607 : } - - 002cc 48 8d a5 c8 01 - 00 00 lea rsp, QWORD PTR [rbp+456] - 002d3 5f pop rdi - 002d4 5d pop rbp - 002d5 c3 ret 0 -stbi__tga_info ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__tga_load -_TEXT SEGMENT -tga_offset$ = 4 -tga_indexed$ = 36 -tga_image_type$ = 68 -tga_is_RLE$ = 100 -tga_palette_start$ = 132 -tga_palette_len$ = 164 -tga_palette_bits$ = 196 -tga_x_origin$ = 228 -tga_y_origin$ = 260 -tga_width$ = 292 -tga_height$ = 324 -tga_bits_per_pixel$ = 356 -tga_comp$ = 388 -tga_rgb16$ = 420 -tga_inverted$ = 452 -tga_data$ = 488 -tga_palette$ = 520 -i$ = 548 -j$ = 580 -raw_data$ = 612 -RLE_count$ = 644 -RLE_repeating$ = 676 -read_next_pixel$ = 708 -row$5 = 740 -tga_row$6 = 776 -pal_entry$7 = 808 -RLE_cmd$8 = 836 -pal_idx$9 = 868 -index1$10 = 900 -index2$11 = 932 -temp$12 = 964 -tga_pixel$13 = 1000 -temp$14 = 1028 -tv192 = 1620 -tv296 = 1620 -tv153 = 1620 -tv181 = 1624 -tv219 = 1624 -tv134 = 1624 -tv139 = 1624 -tv160 = 1624 -tv171 = 1624 -tv275 = 1624 -tv207 = 1624 -__$ArrayPad$ = 1632 -s$ = 1680 -x$ = 1688 -y$ = 1696 -comp$ = 1704 -req_comp$ = 1712 -ri$ = 1720 -stbi__tga_load PROC ; COMDAT - -; 6670 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec a8 06 - 00 00 sub rsp, 1704 ; 000006a8H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00027 b9 0e 01 00 00 mov ecx, 270 ; 0000010eH - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 c8 - 06 00 00 mov rcx, QWORD PTR [rsp+1736] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 60 06 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 6671 : // read in the TGA header stuff -; 6672 : int tga_offset = stbi__get8(s); - - 00059 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00060 e8 00 00 00 00 call stbi__get8 - 00065 0f b6 c0 movzx eax, al - 00068 89 45 04 mov DWORD PTR tga_offset$[rbp], eax - -; 6673 : int tga_indexed = stbi__get8(s); - - 0006b 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00072 e8 00 00 00 00 call stbi__get8 - 00077 0f b6 c0 movzx eax, al - 0007a 89 45 24 mov DWORD PTR tga_indexed$[rbp], eax - -; 6674 : int tga_image_type = stbi__get8(s); - - 0007d 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00084 e8 00 00 00 00 call stbi__get8 - 00089 0f b6 c0 movzx eax, al - 0008c 89 45 44 mov DWORD PTR tga_image_type$[rbp], eax - -; 6675 : int tga_is_RLE = 0; - - 0008f c7 45 64 00 00 - 00 00 mov DWORD PTR tga_is_RLE$[rbp], 0 - -; 6676 : int tga_palette_start = stbi__get16le(s); - - 00096 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0009d e8 00 00 00 00 call stbi__get16le - 000a2 89 85 84 00 00 - 00 mov DWORD PTR tga_palette_start$[rbp], eax - -; 6677 : int tga_palette_len = stbi__get16le(s); - - 000a8 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000af e8 00 00 00 00 call stbi__get16le - 000b4 89 85 a4 00 00 - 00 mov DWORD PTR tga_palette_len$[rbp], eax - -; 6678 : int tga_palette_bits = stbi__get8(s); - - 000ba 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000c1 e8 00 00 00 00 call stbi__get8 - 000c6 0f b6 c0 movzx eax, al - 000c9 89 85 c4 00 00 - 00 mov DWORD PTR tga_palette_bits$[rbp], eax - -; 6679 : int tga_x_origin = stbi__get16le(s); - - 000cf 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000d6 e8 00 00 00 00 call stbi__get16le - 000db 89 85 e4 00 00 - 00 mov DWORD PTR tga_x_origin$[rbp], eax - -; 6680 : int tga_y_origin = stbi__get16le(s); - - 000e1 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000e8 e8 00 00 00 00 call stbi__get16le - 000ed 89 85 04 01 00 - 00 mov DWORD PTR tga_y_origin$[rbp], eax - -; 6681 : int tga_width = stbi__get16le(s); - - 000f3 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000fa e8 00 00 00 00 call stbi__get16le - 000ff 89 85 24 01 00 - 00 mov DWORD PTR tga_width$[rbp], eax - -; 6682 : int tga_height = stbi__get16le(s); - - 00105 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0010c e8 00 00 00 00 call stbi__get16le - 00111 89 85 44 01 00 - 00 mov DWORD PTR tga_height$[rbp], eax - -; 6683 : int tga_bits_per_pixel = stbi__get8(s); - - 00117 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0011e e8 00 00 00 00 call stbi__get8 - 00123 0f b6 c0 movzx eax, al - 00126 89 85 64 01 00 - 00 mov DWORD PTR tga_bits_per_pixel$[rbp], eax - -; 6684 : int tga_comp, tga_rgb16 = 0; - - 0012c c7 85 a4 01 00 - 00 00 00 00 00 mov DWORD PTR tga_rgb16$[rbp], 0 - -; 6685 : int tga_inverted = stbi__get8(s); - - 00136 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0013d e8 00 00 00 00 call stbi__get8 - 00142 0f b6 c0 movzx eax, al - 00145 89 85 c4 01 00 - 00 mov DWORD PTR tga_inverted$[rbp], eax - -; 6686 : // int tga_alpha_bits = tga_inverted & 15; // the 4 lowest bits - unused (useless?) -; 6687 : // image data -; 6688 : unsigned char *tga_data; -; 6689 : unsigned char *tga_palette = NULL; - - 0014b 48 c7 85 08 02 - 00 00 00 00 00 - 00 mov QWORD PTR tga_palette$[rbp], 0 - -; 6690 : int i, j; -; 6691 : unsigned char raw_data[4] = { 0 }; - - 00156 48 8d 85 64 02 - 00 00 lea rax, QWORD PTR raw_data$[rbp] - 0015d 48 8b f8 mov rdi, rax - 00160 33 c0 xor eax, eax - 00162 b9 04 00 00 00 mov ecx, 4 - 00167 f3 aa rep stosb - -; 6692 : int RLE_count = 0; - - 00169 c7 85 84 02 00 - 00 00 00 00 00 mov DWORD PTR RLE_count$[rbp], 0 - -; 6693 : int RLE_repeating = 0; - - 00173 c7 85 a4 02 00 - 00 00 00 00 00 mov DWORD PTR RLE_repeating$[rbp], 0 - -; 6694 : int read_next_pixel = 1; - - 0017d c7 85 c4 02 00 - 00 01 00 00 00 mov DWORD PTR read_next_pixel$[rbp], 1 - -; 6695 : STBI_NOTUSED(ri); -; 6696 : STBI_NOTUSED(tga_x_origin); // @TODO -; 6697 : STBI_NOTUSED(tga_y_origin); // @TODO -; 6698 : -; 6699 : if (tga_height > STBI_MAX_DIMENSIONS) - - 00187 81 bd 44 01 00 - 00 00 00 00 01 cmp DWORD PTR tga_height$[rbp], 16777216 ; 01000000H - 00191 7e 34 jle SHORT $LN29@stbi__tga_ - -; 6700 : return stbi__errpuc("too large", "Very large image (corrupt?)"); - - 00193 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 0019a e8 00 00 00 00 call stbi__err - 0019f 85 c0 test eax, eax - 001a1 74 0d je SHORT $LN62@stbi__tga_ - 001a3 48 c7 85 58 06 - 00 00 00 00 00 - 00 mov QWORD PTR tv134[rbp], 0 - 001ae eb 0b jmp SHORT $LN63@stbi__tga_ -$LN62@stbi__tga_: - 001b0 48 c7 85 58 06 - 00 00 00 00 00 - 00 mov QWORD PTR tv134[rbp], 0 -$LN63@stbi__tga_: - 001bb 48 8b 85 58 06 - 00 00 mov rax, QWORD PTR tv134[rbp] - 001c2 e9 ce 09 00 00 jmp $LN1@stbi__tga_ -$LN29@stbi__tga_: - -; 6701 : if (tga_width > STBI_MAX_DIMENSIONS) - - 001c7 81 bd 24 01 00 - 00 00 00 00 01 cmp DWORD PTR tga_width$[rbp], 16777216 ; 01000000H - 001d1 7e 34 jle SHORT $LN30@stbi__tga_ - -; 6702 : return stbi__errpuc("too large", "Very large image (corrupt?)"); - - 001d3 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 001da e8 00 00 00 00 call stbi__err - 001df 85 c0 test eax, eax - 001e1 74 0d je SHORT $LN64@stbi__tga_ - 001e3 48 c7 85 58 06 - 00 00 00 00 00 - 00 mov QWORD PTR tv139[rbp], 0 - 001ee eb 0b jmp SHORT $LN65@stbi__tga_ -$LN64@stbi__tga_: - 001f0 48 c7 85 58 06 - 00 00 00 00 00 - 00 mov QWORD PTR tv139[rbp], 0 -$LN65@stbi__tga_: - 001fb 48 8b 85 58 06 - 00 00 mov rax, QWORD PTR tv139[rbp] - 00202 e9 8e 09 00 00 jmp $LN1@stbi__tga_ -$LN30@stbi__tga_: - -; 6703 : -; 6704 : // do a tiny bit of precessing -; 6705 : if (tga_image_type >= 8) { - - 00207 83 7d 44 08 cmp DWORD PTR tga_image_type$[rbp], 8 - 0020b 7c 10 jl SHORT $LN31@stbi__tga_ - -; 6706 : tga_image_type -= 8; - - 0020d 8b 45 44 mov eax, DWORD PTR tga_image_type$[rbp] - 00210 83 e8 08 sub eax, 8 - 00213 89 45 44 mov DWORD PTR tga_image_type$[rbp], eax - -; 6707 : tga_is_RLE = 1; - - 00216 c7 45 64 01 00 - 00 00 mov DWORD PTR tga_is_RLE$[rbp], 1 -$LN31@stbi__tga_: - -; 6708 : } -; 6709 : tga_inverted = 1 - ((tga_inverted >> 5) & 1); - - 0021d 8b 85 c4 01 00 - 00 mov eax, DWORD PTR tga_inverted$[rbp] - 00223 c1 f8 05 sar eax, 5 - 00226 83 e0 01 and eax, 1 - 00229 b9 01 00 00 00 mov ecx, 1 - 0022e 2b c8 sub ecx, eax - 00230 8b c1 mov eax, ecx - 00232 89 85 c4 01 00 - 00 mov DWORD PTR tga_inverted$[rbp], eax - -; 6710 : -; 6711 : // If I'm paletted, then I'll use the number of bits from the palette -; 6712 : if (tga_indexed) - - 00238 83 7d 24 00 cmp DWORD PTR tga_indexed$[rbp], 0 - 0023c 74 1c je SHORT $LN32@stbi__tga_ - -; 6713 : tga_comp = stbi__tga_get_comp(tga_palette_bits, 0, &tga_rgb16); - - 0023e 4c 8d 85 a4 01 - 00 00 lea r8, QWORD PTR tga_rgb16$[rbp] - 00245 33 d2 xor edx, edx - 00247 8b 8d c4 00 00 - 00 mov ecx, DWORD PTR tga_palette_bits$[rbp] - 0024d e8 00 00 00 00 call stbi__tga_get_comp - 00252 89 85 84 01 00 - 00 mov DWORD PTR tga_comp$[rbp], eax - 00258 eb 3a jmp SHORT $LN33@stbi__tga_ -$LN32@stbi__tga_: - -; 6714 : else -; 6715 : tga_comp = - - 0025a 83 7d 44 03 cmp DWORD PTR tga_image_type$[rbp], 3 - 0025e 75 0c jne SHORT $LN66@stbi__tga_ - 00260 c7 85 54 06 00 - 00 01 00 00 00 mov DWORD PTR tv153[rbp], 1 - 0026a eb 0a jmp SHORT $LN67@stbi__tga_ -$LN66@stbi__tga_: - 0026c c7 85 54 06 00 - 00 00 00 00 00 mov DWORD PTR tv153[rbp], 0 -$LN67@stbi__tga_: - 00276 4c 8d 85 a4 01 - 00 00 lea r8, QWORD PTR tga_rgb16$[rbp] - 0027d 8b 95 54 06 00 - 00 mov edx, DWORD PTR tv153[rbp] - 00283 8b 8d 64 01 00 - 00 mov ecx, DWORD PTR tga_bits_per_pixel$[rbp] - 00289 e8 00 00 00 00 call stbi__tga_get_comp - 0028e 89 85 84 01 00 - 00 mov DWORD PTR tga_comp$[rbp], eax -$LN33@stbi__tga_: - -; 6716 : stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3), &tga_rgb16); -; 6717 : -; 6718 : if (!tga_comp) // shouldn't really happen, stbi__tga_test() should have ensured basic consistency - - 00294 83 bd 84 01 00 - 00 00 cmp DWORD PTR tga_comp$[rbp], 0 - 0029b 75 34 jne SHORT $LN34@stbi__tga_ - -; 6719 : return stbi__errpuc("bad format", "Can't find out TGA pixelformat"); - - 0029d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0L@DMAPJJO@bad?5format@ - 002a4 e8 00 00 00 00 call stbi__err - 002a9 85 c0 test eax, eax - 002ab 74 0d je SHORT $LN68@stbi__tga_ - 002ad 48 c7 85 58 06 - 00 00 00 00 00 - 00 mov QWORD PTR tv160[rbp], 0 - 002b8 eb 0b jmp SHORT $LN69@stbi__tga_ -$LN68@stbi__tga_: - 002ba 48 c7 85 58 06 - 00 00 00 00 00 - 00 mov QWORD PTR tv160[rbp], 0 -$LN69@stbi__tga_: - 002c5 48 8b 85 58 06 - 00 00 mov rax, QWORD PTR tv160[rbp] - 002cc e9 c4 08 00 00 jmp $LN1@stbi__tga_ -$LN34@stbi__tga_: - -; 6720 : -; 6721 : // tga info -; 6722 : *x = tga_width; - - 002d1 48 8b 85 98 06 - 00 00 mov rax, QWORD PTR x$[rbp] - 002d8 8b 8d 24 01 00 - 00 mov ecx, DWORD PTR tga_width$[rbp] - 002de 89 08 mov DWORD PTR [rax], ecx - -; 6723 : *y = tga_height; - - 002e0 48 8b 85 a0 06 - 00 00 mov rax, QWORD PTR y$[rbp] - 002e7 8b 8d 44 01 00 - 00 mov ecx, DWORD PTR tga_height$[rbp] - 002ed 89 08 mov DWORD PTR [rax], ecx - -; 6724 : if (comp) - - 002ef 48 83 bd a8 06 - 00 00 00 cmp QWORD PTR comp$[rbp], 0 - 002f7 74 0f je SHORT $LN35@stbi__tga_ - -; 6725 : *comp = tga_comp; - - 002f9 48 8b 85 a8 06 - 00 00 mov rax, QWORD PTR comp$[rbp] - 00300 8b 8d 84 01 00 - 00 mov ecx, DWORD PTR tga_comp$[rbp] - 00306 89 08 mov DWORD PTR [rax], ecx -$LN35@stbi__tga_: - -; 6726 : -; 6727 : if (!stbi__mad3sizes_valid(tga_width, tga_height, tga_comp, 0)) - - 00308 45 33 c9 xor r9d, r9d - 0030b 44 8b 85 84 01 - 00 00 mov r8d, DWORD PTR tga_comp$[rbp] - 00312 8b 95 44 01 00 - 00 mov edx, DWORD PTR tga_height$[rbp] - 00318 8b 8d 24 01 00 - 00 mov ecx, DWORD PTR tga_width$[rbp] - 0031e e8 00 00 00 00 call stbi__mad3sizes_valid - 00323 85 c0 test eax, eax - 00325 75 34 jne SHORT $LN36@stbi__tga_ - -; 6728 : return stbi__errpuc("too large", "Corrupt TGA"); - - 00327 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 0032e e8 00 00 00 00 call stbi__err - 00333 85 c0 test eax, eax - 00335 74 0d je SHORT $LN70@stbi__tga_ - 00337 48 c7 85 58 06 - 00 00 00 00 00 - 00 mov QWORD PTR tv171[rbp], 0 - 00342 eb 0b jmp SHORT $LN71@stbi__tga_ -$LN70@stbi__tga_: - 00344 48 c7 85 58 06 - 00 00 00 00 00 - 00 mov QWORD PTR tv171[rbp], 0 -$LN71@stbi__tga_: - 0034f 48 8b 85 58 06 - 00 00 mov rax, QWORD PTR tv171[rbp] - 00356 e9 3a 08 00 00 jmp $LN1@stbi__tga_ -$LN36@stbi__tga_: - -; 6729 : -; 6730 : tga_data = (unsigned char *)stbi__malloc_mad3(tga_width, tga_height, tga_comp, 0); - - 0035b 45 33 c9 xor r9d, r9d - 0035e 44 8b 85 84 01 - 00 00 mov r8d, DWORD PTR tga_comp$[rbp] - 00365 8b 95 44 01 00 - 00 mov edx, DWORD PTR tga_height$[rbp] - 0036b 8b 8d 24 01 00 - 00 mov ecx, DWORD PTR tga_width$[rbp] - 00371 e8 00 00 00 00 call stbi__malloc_mad3 - 00376 48 89 85 e8 01 - 00 00 mov QWORD PTR tga_data$[rbp], rax - -; 6731 : if (!tga_data) - - 0037d 48 83 bd e8 01 - 00 00 00 cmp QWORD PTR tga_data$[rbp], 0 - 00385 75 34 jne SHORT $LN37@stbi__tga_ - -; 6732 : return stbi__errpuc("outofmem", "Out of memory"); - - 00387 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 0038e e8 00 00 00 00 call stbi__err - 00393 85 c0 test eax, eax - 00395 74 0d je SHORT $LN72@stbi__tga_ - 00397 48 c7 85 58 06 - 00 00 00 00 00 - 00 mov QWORD PTR tv181[rbp], 0 - 003a2 eb 0b jmp SHORT $LN73@stbi__tga_ -$LN72@stbi__tga_: - 003a4 48 c7 85 58 06 - 00 00 00 00 00 - 00 mov QWORD PTR tv181[rbp], 0 -$LN73@stbi__tga_: - 003af 48 8b 85 58 06 - 00 00 mov rax, QWORD PTR tv181[rbp] - 003b6 e9 da 07 00 00 jmp $LN1@stbi__tga_ -$LN37@stbi__tga_: - -; 6733 : -; 6734 : // skip to the data's starting position (offset usually = 0) -; 6735 : stbi__skip(s, tga_offset); - - 003bb 8b 55 04 mov edx, DWORD PTR tga_offset$[rbp] - 003be 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 003c5 e8 00 00 00 00 call stbi__skip - 003ca 90 npad 1 - -; 6736 : -; 6737 : if (!tga_indexed && !tga_is_RLE && !tga_rgb16) { - - 003cb 83 7d 24 00 cmp DWORD PTR tga_indexed$[rbp], 0 - 003cf 0f 85 d6 00 00 - 00 jne $LN38@stbi__tga_ - 003d5 83 7d 64 00 cmp DWORD PTR tga_is_RLE$[rbp], 0 - 003d9 0f 85 cc 00 00 - 00 jne $LN38@stbi__tga_ - 003df 83 bd a4 01 00 - 00 00 cmp DWORD PTR tga_rgb16$[rbp], 0 - 003e6 0f 85 bf 00 00 - 00 jne $LN38@stbi__tga_ - -; 6738 : for (i = 0; i < tga_height; ++i) { - - 003ec c7 85 24 02 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 003f6 eb 0e jmp SHORT $LN4@stbi__tga_ -$LN2@stbi__tga_: - 003f8 8b 85 24 02 00 - 00 mov eax, DWORD PTR i$[rbp] - 003fe ff c0 inc eax - 00400 89 85 24 02 00 - 00 mov DWORD PTR i$[rbp], eax -$LN4@stbi__tga_: - 00406 8b 85 44 01 00 - 00 mov eax, DWORD PTR tga_height$[rbp] - 0040c 39 85 24 02 00 - 00 cmp DWORD PTR i$[rbp], eax - 00412 0f 8d 8e 00 00 - 00 jge $LN3@stbi__tga_ - -; 6739 : int row = tga_inverted ? tga_height - i - 1 : i; - - 00418 83 bd c4 01 00 - 00 00 cmp DWORD PTR tga_inverted$[rbp], 0 - 0041f 74 1a je SHORT $LN74@stbi__tga_ - 00421 8b 85 24 02 00 - 00 mov eax, DWORD PTR i$[rbp] - 00427 8b 8d 44 01 00 - 00 mov ecx, DWORD PTR tga_height$[rbp] - 0042d 2b c8 sub ecx, eax - 0042f 8b c1 mov eax, ecx - 00431 ff c8 dec eax - 00433 89 85 54 06 00 - 00 mov DWORD PTR tv192[rbp], eax - 00439 eb 0c jmp SHORT $LN75@stbi__tga_ -$LN74@stbi__tga_: - 0043b 8b 85 24 02 00 - 00 mov eax, DWORD PTR i$[rbp] - 00441 89 85 54 06 00 - 00 mov DWORD PTR tv192[rbp], eax -$LN75@stbi__tga_: - 00447 8b 85 54 06 00 - 00 mov eax, DWORD PTR tv192[rbp] - 0044d 89 85 e4 02 00 - 00 mov DWORD PTR row$5[rbp], eax - -; 6740 : stbi_uc *tga_row = tga_data + row * tga_width * tga_comp; - - 00453 8b 85 e4 02 00 - 00 mov eax, DWORD PTR row$5[rbp] - 00459 0f af 85 24 01 - 00 00 imul eax, DWORD PTR tga_width$[rbp] - 00460 0f af 85 84 01 - 00 00 imul eax, DWORD PTR tga_comp$[rbp] - 00467 48 98 cdqe - 00469 48 8b 8d e8 01 - 00 00 mov rcx, QWORD PTR tga_data$[rbp] - 00470 48 03 c8 add rcx, rax - 00473 48 8b c1 mov rax, rcx - 00476 48 89 85 08 03 - 00 00 mov QWORD PTR tga_row$6[rbp], rax - -; 6741 : stbi__getn(s, tga_row, tga_width * tga_comp); - - 0047d 8b 85 24 01 00 - 00 mov eax, DWORD PTR tga_width$[rbp] - 00483 0f af 85 84 01 - 00 00 imul eax, DWORD PTR tga_comp$[rbp] - 0048a 44 8b c0 mov r8d, eax - 0048d 48 8b 95 08 03 - 00 00 mov rdx, QWORD PTR tga_row$6[rbp] - 00494 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0049b e8 00 00 00 00 call stbi__getn - 004a0 90 npad 1 - -; 6742 : } - - 004a1 e9 52 ff ff ff jmp $LN2@stbi__tga_ -$LN3@stbi__tga_: - -; 6743 : } else { - - 004a6 e9 8f 05 00 00 jmp $LN39@stbi__tga_ -$LN38@stbi__tga_: - -; 6744 : // do I need to load a palette? -; 6745 : if (tga_indexed) { - - 004ab 83 7d 24 00 cmp DWORD PTR tga_indexed$[rbp], 0 - 004af 0f 84 d7 01 00 - 00 je $LN40@stbi__tga_ - -; 6746 : if (tga_palette_len == 0) { /* you have to have at least one entry! */ - - 004b5 83 bd a4 00 00 - 00 00 cmp DWORD PTR tga_palette_len$[rbp], 0 - 004bc 75 42 jne SHORT $LN41@stbi__tga_ - -; 6747 : STBI_FREE(tga_data); - - 004be 48 8b 8d e8 01 - 00 00 mov rcx, QWORD PTR tga_data$[rbp] - 004c5 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 004cb 90 npad 1 - -; 6748 : return stbi__errpuc("bad palette", "Corrupt TGA"); - - 004cc 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0M@ILLOCNCO@bad?5palette@ - 004d3 e8 00 00 00 00 call stbi__err - 004d8 85 c0 test eax, eax - 004da 74 0d je SHORT $LN76@stbi__tga_ - 004dc 48 c7 85 58 06 - 00 00 00 00 00 - 00 mov QWORD PTR tv207[rbp], 0 - 004e7 eb 0b jmp SHORT $LN77@stbi__tga_ -$LN76@stbi__tga_: - 004e9 48 c7 85 58 06 - 00 00 00 00 00 - 00 mov QWORD PTR tv207[rbp], 0 -$LN77@stbi__tga_: - 004f4 48 8b 85 58 06 - 00 00 mov rax, QWORD PTR tv207[rbp] - 004fb e9 95 06 00 00 jmp $LN1@stbi__tga_ -$LN41@stbi__tga_: - -; 6749 : } -; 6750 : -; 6751 : // any data to skip? (offset usually = 0) -; 6752 : stbi__skip(s, tga_palette_start); - - 00500 8b 95 84 00 00 - 00 mov edx, DWORD PTR tga_palette_start$[rbp] - 00506 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0050d e8 00 00 00 00 call stbi__skip - 00512 90 npad 1 - -; 6753 : // load the palette -; 6754 : tga_palette = - - 00513 45 33 c0 xor r8d, r8d - 00516 8b 95 84 01 00 - 00 mov edx, DWORD PTR tga_comp$[rbp] - 0051c 8b 8d a4 00 00 - 00 mov ecx, DWORD PTR tga_palette_len$[rbp] - 00522 e8 00 00 00 00 call stbi__malloc_mad2 - 00527 48 89 85 08 02 - 00 00 mov QWORD PTR tga_palette$[rbp], rax - -; 6755 : (unsigned char *)stbi__malloc_mad2(tga_palette_len, tga_comp, 0); -; 6756 : if (!tga_palette) { - - 0052e 48 83 bd 08 02 - 00 00 00 cmp QWORD PTR tga_palette$[rbp], 0 - 00536 75 42 jne SHORT $LN42@stbi__tga_ - -; 6757 : STBI_FREE(tga_data); - - 00538 48 8b 8d e8 01 - 00 00 mov rcx, QWORD PTR tga_data$[rbp] - 0053f ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00545 90 npad 1 - -; 6758 : return stbi__errpuc("outofmem", "Out of memory"); - - 00546 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 0054d e8 00 00 00 00 call stbi__err - 00552 85 c0 test eax, eax - 00554 74 0d je SHORT $LN78@stbi__tga_ - 00556 48 c7 85 58 06 - 00 00 00 00 00 - 00 mov QWORD PTR tv219[rbp], 0 - 00561 eb 0b jmp SHORT $LN79@stbi__tga_ -$LN78@stbi__tga_: - 00563 48 c7 85 58 06 - 00 00 00 00 00 - 00 mov QWORD PTR tv219[rbp], 0 -$LN79@stbi__tga_: - 0056e 48 8b 85 58 06 - 00 00 mov rax, QWORD PTR tv219[rbp] - 00575 e9 1b 06 00 00 jmp $LN1@stbi__tga_ -$LN42@stbi__tga_: - -; 6759 : } -; 6760 : if (tga_rgb16) { - - 0057a 83 bd a4 01 00 - 00 00 cmp DWORD PTR tga_rgb16$[rbp], 0 - 00581 0f 84 8e 00 00 - 00 je $LN43@stbi__tga_ - -; 6761 : stbi_uc *pal_entry = tga_palette; - - 00587 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR tga_palette$[rbp] - 0058e 48 89 85 28 03 - 00 00 mov QWORD PTR pal_entry$7[rbp], rax - -; 6762 : STBI_ASSERT(tga_comp == STBI_rgb); - - 00595 83 bd 84 01 00 - 00 03 cmp DWORD PTR tga_comp$[rbp], 3 - 0059c 74 1c je SHORT $LN80@stbi__tga_ - 0059e 41 b8 6a 1a 00 - 00 mov r8d, 6762 ; 00001a6aH - 005a4 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ - 005ab 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1CK@GOOINIO@?$AAt?$AAg?$AAa?$AA_?$AAc?$AAo?$AAm?$AAp?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAS?$AAT?$AAB@ - 005b2 ff 15 00 00 00 - 00 call QWORD PTR __imp__wassert - 005b8 33 c0 xor eax, eax -$LN80@stbi__tga_: - -; 6763 : for (i = 0; i < tga_palette_len; ++i) { - - 005ba c7 85 24 02 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 005c4 eb 0e jmp SHORT $LN7@stbi__tga_ -$LN5@stbi__tga_: - 005c6 8b 85 24 02 00 - 00 mov eax, DWORD PTR i$[rbp] - 005cc ff c0 inc eax - 005ce 89 85 24 02 00 - 00 mov DWORD PTR i$[rbp], eax -$LN7@stbi__tga_: - 005d4 8b 85 a4 00 00 - 00 mov eax, DWORD PTR tga_palette_len$[rbp] - 005da 39 85 24 02 00 - 00 cmp DWORD PTR i$[rbp], eax - 005e0 7d 31 jge SHORT $LN6@stbi__tga_ - -; 6764 : stbi__tga_read_rgb16(s, pal_entry); - - 005e2 48 8b 95 28 03 - 00 00 mov rdx, QWORD PTR pal_entry$7[rbp] - 005e9 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 005f0 e8 00 00 00 00 call stbi__tga_read_rgb16 - 005f5 90 npad 1 - -; 6765 : pal_entry += tga_comp; - - 005f6 48 63 85 84 01 - 00 00 movsxd rax, DWORD PTR tga_comp$[rbp] - 005fd 48 8b 8d 28 03 - 00 00 mov rcx, QWORD PTR pal_entry$7[rbp] - 00604 48 03 c8 add rcx, rax - 00607 48 8b c1 mov rax, rcx - 0060a 48 89 85 28 03 - 00 00 mov QWORD PTR pal_entry$7[rbp], rax - -; 6766 : } - - 00611 eb b3 jmp SHORT $LN5@stbi__tga_ -$LN6@stbi__tga_: - -; 6767 : } else if (!stbi__getn(s, tga_palette, tga_palette_len * tga_comp)) { - - 00613 eb 77 jmp SHORT $LN44@stbi__tga_ -$LN43@stbi__tga_: - 00615 8b 85 a4 00 00 - 00 mov eax, DWORD PTR tga_palette_len$[rbp] - 0061b 0f af 85 84 01 - 00 00 imul eax, DWORD PTR tga_comp$[rbp] - 00622 44 8b c0 mov r8d, eax - 00625 48 8b 95 08 02 - 00 00 mov rdx, QWORD PTR tga_palette$[rbp] - 0062c 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00633 e8 00 00 00 00 call stbi__getn - 00638 85 c0 test eax, eax - 0063a 75 50 jne SHORT $LN45@stbi__tga_ - -; 6768 : STBI_FREE(tga_data); - - 0063c 48 8b 8d e8 01 - 00 00 mov rcx, QWORD PTR tga_data$[rbp] - 00643 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00649 90 npad 1 - -; 6769 : STBI_FREE(tga_palette); - - 0064a 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR tga_palette$[rbp] - 00651 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00657 90 npad 1 - -; 6770 : return stbi__errpuc("bad palette", "Corrupt TGA"); - - 00658 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0M@ILLOCNCO@bad?5palette@ - 0065f e8 00 00 00 00 call stbi__err - 00664 85 c0 test eax, eax - 00666 74 0d je SHORT $LN81@stbi__tga_ - 00668 48 c7 85 58 06 - 00 00 00 00 00 - 00 mov QWORD PTR tv275[rbp], 0 - 00673 eb 0b jmp SHORT $LN82@stbi__tga_ -$LN81@stbi__tga_: - 00675 48 c7 85 58 06 - 00 00 00 00 00 - 00 mov QWORD PTR tv275[rbp], 0 -$LN82@stbi__tga_: - 00680 48 8b 85 58 06 - 00 00 mov rax, QWORD PTR tv275[rbp] - 00687 e9 09 05 00 00 jmp $LN1@stbi__tga_ -$LN45@stbi__tga_: -$LN44@stbi__tga_: -$LN40@stbi__tga_: - -; 6771 : } -; 6772 : } -; 6773 : // load the data -; 6774 : for (i = 0; i < tga_width * tga_height; ++i) { - - 0068c c7 85 24 02 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 00696 eb 0e jmp SHORT $LN10@stbi__tga_ -$LN8@stbi__tga_: - 00698 8b 85 24 02 00 - 00 mov eax, DWORD PTR i$[rbp] - 0069e ff c0 inc eax - 006a0 89 85 24 02 00 - 00 mov DWORD PTR i$[rbp], eax -$LN10@stbi__tga_: - 006a6 8b 85 24 01 00 - 00 mov eax, DWORD PTR tga_width$[rbp] - 006ac 0f af 85 44 01 - 00 00 imul eax, DWORD PTR tga_height$[rbp] - 006b3 39 85 24 02 00 - 00 cmp DWORD PTR i$[rbp], eax - 006b9 0f 8d 47 02 00 - 00 jge $LN9@stbi__tga_ - -; 6775 : // if I'm in RLE mode, do I need to get a RLE stbi__pngchunk? -; 6776 : if (tga_is_RLE) { - - 006bf 83 7d 64 00 cmp DWORD PTR tga_is_RLE$[rbp], 0 - 006c3 74 5f je SHORT $LN46@stbi__tga_ - -; 6777 : if (RLE_count == 0) { - - 006c5 83 bd 84 02 00 - 00 00 cmp DWORD PTR RLE_count$[rbp], 0 - 006cc 75 41 jne SHORT $LN48@stbi__tga_ - -; 6778 : // yep, get the next byte as a RLE command -; 6779 : int RLE_cmd = stbi__get8(s); - - 006ce 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 006d5 e8 00 00 00 00 call stbi__get8 - 006da 0f b6 c0 movzx eax, al - 006dd 89 85 44 03 00 - 00 mov DWORD PTR RLE_cmd$8[rbp], eax - -; 6780 : RLE_count = 1 + (RLE_cmd & 127); - - 006e3 8b 85 44 03 00 - 00 mov eax, DWORD PTR RLE_cmd$8[rbp] - 006e9 83 e0 7f and eax, 127 ; 0000007fH - 006ec ff c0 inc eax - 006ee 89 85 84 02 00 - 00 mov DWORD PTR RLE_count$[rbp], eax - -; 6781 : RLE_repeating = RLE_cmd >> 7; - - 006f4 8b 85 44 03 00 - 00 mov eax, DWORD PTR RLE_cmd$8[rbp] - 006fa c1 f8 07 sar eax, 7 - 006fd 89 85 a4 02 00 - 00 mov DWORD PTR RLE_repeating$[rbp], eax - -; 6782 : read_next_pixel = 1; - - 00703 c7 85 c4 02 00 - 00 01 00 00 00 mov DWORD PTR read_next_pixel$[rbp], 1 - 0070d eb 13 jmp SHORT $LN49@stbi__tga_ -$LN48@stbi__tga_: - -; 6783 : } else if (!RLE_repeating) { - - 0070f 83 bd a4 02 00 - 00 00 cmp DWORD PTR RLE_repeating$[rbp], 0 - 00716 75 0a jne SHORT $LN50@stbi__tga_ - -; 6784 : read_next_pixel = 1; - - 00718 c7 85 c4 02 00 - 00 01 00 00 00 mov DWORD PTR read_next_pixel$[rbp], 1 -$LN50@stbi__tga_: -$LN49@stbi__tga_: - -; 6785 : } -; 6786 : } else { - - 00722 eb 0a jmp SHORT $LN47@stbi__tga_ -$LN46@stbi__tga_: - -; 6787 : read_next_pixel = 1; - - 00724 c7 85 c4 02 00 - 00 01 00 00 00 mov DWORD PTR read_next_pixel$[rbp], 1 -$LN47@stbi__tga_: - -; 6788 : } -; 6789 : // OK, if I need to read a pixel, do it now -; 6790 : if (read_next_pixel) { - - 0072e 83 bd c4 02 00 - 00 00 cmp DWORD PTR read_next_pixel$[rbp], 0 - 00735 0f 84 5f 01 00 - 00 je $LN51@stbi__tga_ - -; 6791 : // load however much data we did have -; 6792 : if (tga_indexed) { - - 0073b 83 7d 24 00 cmp DWORD PTR tga_indexed$[rbp], 0 - 0073f 0f 84 c3 00 00 - 00 je $LN52@stbi__tga_ - -; 6793 : // read in index, then perform the lookup -; 6794 : int pal_idx = (tga_bits_per_pixel == 8) ? stbi__get8(s) : - - 00745 83 bd 64 01 00 - 00 08 cmp DWORD PTR tga_bits_per_pixel$[rbp], 8 - 0074c 75 17 jne SHORT $LN83@stbi__tga_ - 0074e 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00755 e8 00 00 00 00 call stbi__get8 - 0075a 0f b6 c0 movzx eax, al - 0075d 89 85 54 06 00 - 00 mov DWORD PTR tv296[rbp], eax - 00763 eb 12 jmp SHORT $LN84@stbi__tga_ -$LN83@stbi__tga_: - 00765 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0076c e8 00 00 00 00 call stbi__get16le - 00771 89 85 54 06 00 - 00 mov DWORD PTR tv296[rbp], eax -$LN84@stbi__tga_: - 00777 8b 85 54 06 00 - 00 mov eax, DWORD PTR tv296[rbp] - 0077d 89 85 64 03 00 - 00 mov DWORD PTR pal_idx$9[rbp], eax - -; 6795 : stbi__get16le(s); -; 6796 : if (pal_idx >= tga_palette_len) { - - 00783 8b 85 a4 00 00 - 00 mov eax, DWORD PTR tga_palette_len$[rbp] - 00789 39 85 64 03 00 - 00 cmp DWORD PTR pal_idx$9[rbp], eax - 0078f 7c 0a jl SHORT $LN54@stbi__tga_ - -; 6797 : // invalid index -; 6798 : pal_idx = 0; - - 00791 c7 85 64 03 00 - 00 00 00 00 00 mov DWORD PTR pal_idx$9[rbp], 0 -$LN54@stbi__tga_: - -; 6799 : } -; 6800 : pal_idx *= tga_comp; - - 0079b 8b 85 64 03 00 - 00 mov eax, DWORD PTR pal_idx$9[rbp] - 007a1 0f af 85 84 01 - 00 00 imul eax, DWORD PTR tga_comp$[rbp] - 007a8 89 85 64 03 00 - 00 mov DWORD PTR pal_idx$9[rbp], eax - -; 6801 : for (j = 0; j < tga_comp; ++j) { - - 007ae c7 85 44 02 00 - 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 - 007b8 eb 0e jmp SHORT $LN13@stbi__tga_ -$LN11@stbi__tga_: - 007ba 8b 85 44 02 00 - 00 mov eax, DWORD PTR j$[rbp] - 007c0 ff c0 inc eax - 007c2 89 85 44 02 00 - 00 mov DWORD PTR j$[rbp], eax -$LN13@stbi__tga_: - 007c8 8b 85 84 01 00 - 00 mov eax, DWORD PTR tga_comp$[rbp] - 007ce 39 85 44 02 00 - 00 cmp DWORD PTR j$[rbp], eax - 007d4 7d 2d jge SHORT $LN12@stbi__tga_ - -; 6802 : raw_data[j] = tga_palette[pal_idx + j]; - - 007d6 8b 85 44 02 00 - 00 mov eax, DWORD PTR j$[rbp] - 007dc 8b 8d 64 03 00 - 00 mov ecx, DWORD PTR pal_idx$9[rbp] - 007e2 03 c8 add ecx, eax - 007e4 8b c1 mov eax, ecx - 007e6 48 98 cdqe - 007e8 48 63 8d 44 02 - 00 00 movsxd rcx, DWORD PTR j$[rbp] - 007ef 48 8b 95 08 02 - 00 00 mov rdx, QWORD PTR tga_palette$[rbp] - 007f6 0f b6 04 02 movzx eax, BYTE PTR [rdx+rax] - 007fa 88 84 0d 64 02 - 00 00 mov BYTE PTR raw_data$[rbp+rcx], al - -; 6803 : } - - 00801 eb b7 jmp SHORT $LN11@stbi__tga_ -$LN12@stbi__tga_: - -; 6804 : } else if (tga_rgb16) { - - 00803 e9 88 00 00 00 jmp $LN53@stbi__tga_ -$LN52@stbi__tga_: - 00808 83 bd a4 01 00 - 00 00 cmp DWORD PTR tga_rgb16$[rbp], 0 - 0080f 74 3b je SHORT $LN55@stbi__tga_ - -; 6805 : STBI_ASSERT(tga_comp == STBI_rgb); - - 00811 83 bd 84 01 00 - 00 03 cmp DWORD PTR tga_comp$[rbp], 3 - 00818 74 1c je SHORT $LN85@stbi__tga_ - 0081a 41 b8 95 1a 00 - 00 mov r8d, 6805 ; 00001a95H - 00820 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ - 00827 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1CK@GOOINIO@?$AAt?$AAg?$AAa?$AA_?$AAc?$AAo?$AAm?$AAp?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAS?$AAT?$AAB@ - 0082e ff 15 00 00 00 - 00 call QWORD PTR __imp__wassert - 00834 33 c0 xor eax, eax -$LN85@stbi__tga_: - -; 6806 : stbi__tga_read_rgb16(s, raw_data); - - 00836 48 8d 95 64 02 - 00 00 lea rdx, QWORD PTR raw_data$[rbp] - 0083d 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00844 e8 00 00 00 00 call stbi__tga_read_rgb16 - 00849 90 npad 1 - -; 6807 : } else { - - 0084a eb 44 jmp SHORT $LN56@stbi__tga_ -$LN55@stbi__tga_: - -; 6808 : // read in the data raw -; 6809 : for (j = 0; j < tga_comp; ++j) { - - 0084c c7 85 44 02 00 - 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 - 00856 eb 0e jmp SHORT $LN16@stbi__tga_ -$LN14@stbi__tga_: - 00858 8b 85 44 02 00 - 00 mov eax, DWORD PTR j$[rbp] - 0085e ff c0 inc eax - 00860 89 85 44 02 00 - 00 mov DWORD PTR j$[rbp], eax -$LN16@stbi__tga_: - 00866 8b 85 84 01 00 - 00 mov eax, DWORD PTR tga_comp$[rbp] - 0086c 39 85 44 02 00 - 00 cmp DWORD PTR j$[rbp], eax - 00872 7d 1c jge SHORT $LN15@stbi__tga_ - -; 6810 : raw_data[j] = stbi__get8(s); - - 00874 48 8b 8d 90 06 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0087b e8 00 00 00 00 call stbi__get8 - 00880 48 63 8d 44 02 - 00 00 movsxd rcx, DWORD PTR j$[rbp] - 00887 88 84 0d 64 02 - 00 00 mov BYTE PTR raw_data$[rbp+rcx], al - -; 6811 : } - - 0088e eb c8 jmp SHORT $LN14@stbi__tga_ -$LN15@stbi__tga_: -$LN56@stbi__tga_: -$LN53@stbi__tga_: - -; 6812 : } -; 6813 : // clear the reading flag for the next pixel -; 6814 : read_next_pixel = 0; - - 00890 c7 85 c4 02 00 - 00 00 00 00 00 mov DWORD PTR read_next_pixel$[rbp], 0 -$LN51@stbi__tga_: - -; 6815 : } // end of reading a pixel -; 6816 : -; 6817 : // copy data -; 6818 : for (j = 0; j < tga_comp; ++j) - - 0089a c7 85 44 02 00 - 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 - 008a4 eb 0e jmp SHORT $LN19@stbi__tga_ -$LN17@stbi__tga_: - 008a6 8b 85 44 02 00 - 00 mov eax, DWORD PTR j$[rbp] - 008ac ff c0 inc eax - 008ae 89 85 44 02 00 - 00 mov DWORD PTR j$[rbp], eax -$LN19@stbi__tga_: - 008b4 8b 85 84 01 00 - 00 mov eax, DWORD PTR tga_comp$[rbp] - 008ba 39 85 44 02 00 - 00 cmp DWORD PTR j$[rbp], eax - 008c0 7d 31 jge SHORT $LN18@stbi__tga_ - -; 6819 : tga_data[i * tga_comp + j] = raw_data[j]; - - 008c2 48 63 85 44 02 - 00 00 movsxd rax, DWORD PTR j$[rbp] - 008c9 8b 8d 24 02 00 - 00 mov ecx, DWORD PTR i$[rbp] - 008cf 0f af 8d 84 01 - 00 00 imul ecx, DWORD PTR tga_comp$[rbp] - 008d6 03 8d 44 02 00 - 00 add ecx, DWORD PTR j$[rbp] - 008dc 48 63 c9 movsxd rcx, ecx - 008df 48 8b 95 e8 01 - 00 00 mov rdx, QWORD PTR tga_data$[rbp] - 008e6 0f b6 84 05 64 - 02 00 00 movzx eax, BYTE PTR raw_data$[rbp+rax] - 008ee 88 04 0a mov BYTE PTR [rdx+rcx], al - 008f1 eb b3 jmp SHORT $LN17@stbi__tga_ -$LN18@stbi__tga_: - -; 6820 : -; 6821 : // in case we're in RLE mode, keep counting down -; 6822 : --RLE_count; - - 008f3 8b 85 84 02 00 - 00 mov eax, DWORD PTR RLE_count$[rbp] - 008f9 ff c8 dec eax - 008fb 89 85 84 02 00 - 00 mov DWORD PTR RLE_count$[rbp], eax - -; 6823 : } - - 00901 e9 92 fd ff ff jmp $LN8@stbi__tga_ -$LN9@stbi__tga_: - -; 6824 : // do I need to invert the image? -; 6825 : if (tga_inverted) { - - 00906 83 bd c4 01 00 - 00 00 cmp DWORD PTR tga_inverted$[rbp], 0 - 0090d 0f 84 0f 01 00 - 00 je $LN57@stbi__tga_ - -; 6826 : for (j = 0; j * 2 < tga_height; ++j) { - - 00913 c7 85 44 02 00 - 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 - 0091d eb 0e jmp SHORT $LN22@stbi__tga_ -$LN20@stbi__tga_: - 0091f 8b 85 44 02 00 - 00 mov eax, DWORD PTR j$[rbp] - 00925 ff c0 inc eax - 00927 89 85 44 02 00 - 00 mov DWORD PTR j$[rbp], eax -$LN22@stbi__tga_: - 0092d 8b 85 44 02 00 - 00 mov eax, DWORD PTR j$[rbp] - 00933 d1 e0 shl eax, 1 - 00935 3b 85 44 01 00 - 00 cmp eax, DWORD PTR tga_height$[rbp] - 0093b 0f 8d e1 00 00 - 00 jge $LN21@stbi__tga_ - -; 6827 : int index1 = j * tga_width * tga_comp; - - 00941 8b 85 44 02 00 - 00 mov eax, DWORD PTR j$[rbp] - 00947 0f af 85 24 01 - 00 00 imul eax, DWORD PTR tga_width$[rbp] - 0094e 0f af 85 84 01 - 00 00 imul eax, DWORD PTR tga_comp$[rbp] - 00955 89 85 84 03 00 - 00 mov DWORD PTR index1$10[rbp], eax - -; 6828 : int index2 = (tga_height - 1 - j) * tga_width * tga_comp; - - 0095b 8b 85 44 01 00 - 00 mov eax, DWORD PTR tga_height$[rbp] - 00961 ff c8 dec eax - 00963 2b 85 44 02 00 - 00 sub eax, DWORD PTR j$[rbp] - 00969 0f af 85 24 01 - 00 00 imul eax, DWORD PTR tga_width$[rbp] - 00970 0f af 85 84 01 - 00 00 imul eax, DWORD PTR tga_comp$[rbp] - 00977 89 85 a4 03 00 - 00 mov DWORD PTR index2$11[rbp], eax - -; 6829 : for (i = tga_width * tga_comp; i > 0; --i) { - - 0097d 8b 85 24 01 00 - 00 mov eax, DWORD PTR tga_width$[rbp] - 00983 0f af 85 84 01 - 00 00 imul eax, DWORD PTR tga_comp$[rbp] - 0098a 89 85 24 02 00 - 00 mov DWORD PTR i$[rbp], eax - 00990 eb 0e jmp SHORT $LN25@stbi__tga_ -$LN23@stbi__tga_: - 00992 8b 85 24 02 00 - 00 mov eax, DWORD PTR i$[rbp] - 00998 ff c8 dec eax - 0099a 89 85 24 02 00 - 00 mov DWORD PTR i$[rbp], eax -$LN25@stbi__tga_: - 009a0 83 bd 24 02 00 - 00 00 cmp DWORD PTR i$[rbp], 0 - 009a7 7e 74 jle SHORT $LN24@stbi__tga_ - -; 6830 : unsigned char temp = tga_data[index1]; - - 009a9 48 63 85 84 03 - 00 00 movsxd rax, DWORD PTR index1$10[rbp] - 009b0 48 8b 8d e8 01 - 00 00 mov rcx, QWORD PTR tga_data$[rbp] - 009b7 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 009bb 88 85 c4 03 00 - 00 mov BYTE PTR temp$12[rbp], al - -; 6831 : tga_data[index1] = tga_data[index2]; - - 009c1 48 63 85 a4 03 - 00 00 movsxd rax, DWORD PTR index2$11[rbp] - 009c8 48 63 8d 84 03 - 00 00 movsxd rcx, DWORD PTR index1$10[rbp] - 009cf 48 8b 95 e8 01 - 00 00 mov rdx, QWORD PTR tga_data$[rbp] - 009d6 48 8b bd e8 01 - 00 00 mov rdi, QWORD PTR tga_data$[rbp] - 009dd 0f b6 04 07 movzx eax, BYTE PTR [rdi+rax] - 009e1 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 6832 : tga_data[index2] = temp; - - 009e4 48 63 85 a4 03 - 00 00 movsxd rax, DWORD PTR index2$11[rbp] - 009eb 48 8b 8d e8 01 - 00 00 mov rcx, QWORD PTR tga_data$[rbp] - 009f2 0f b6 95 c4 03 - 00 00 movzx edx, BYTE PTR temp$12[rbp] - 009f9 88 14 01 mov BYTE PTR [rcx+rax], dl - -; 6833 : ++index1; - - 009fc 8b 85 84 03 00 - 00 mov eax, DWORD PTR index1$10[rbp] - 00a02 ff c0 inc eax - 00a04 89 85 84 03 00 - 00 mov DWORD PTR index1$10[rbp], eax - -; 6834 : ++index2; - - 00a0a 8b 85 a4 03 00 - 00 mov eax, DWORD PTR index2$11[rbp] - 00a10 ff c0 inc eax - 00a12 89 85 a4 03 00 - 00 mov DWORD PTR index2$11[rbp], eax - -; 6835 : } - - 00a18 e9 75 ff ff ff jmp $LN23@stbi__tga_ -$LN24@stbi__tga_: - -; 6836 : } - - 00a1d e9 fd fe ff ff jmp $LN20@stbi__tga_ -$LN21@stbi__tga_: -$LN57@stbi__tga_: - -; 6837 : } -; 6838 : // clear my palette, if I had one -; 6839 : if (tga_palette != NULL) { - - 00a22 48 83 bd 08 02 - 00 00 00 cmp QWORD PTR tga_palette$[rbp], 0 - 00a2a 74 0e je SHORT $LN58@stbi__tga_ - -; 6840 : STBI_FREE(tga_palette); - - 00a2c 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR tga_palette$[rbp] - 00a33 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00a39 90 npad 1 -$LN58@stbi__tga_: -$LN39@stbi__tga_: - -; 6841 : } -; 6842 : } -; 6843 : -; 6844 : // swap RGB - if the source data was RGB16, it already is in the right order -; 6845 : if (tga_comp >= 3 && !tga_rgb16) { - - 00a3a 83 bd 84 01 00 - 00 03 cmp DWORD PTR tga_comp$[rbp], 3 - 00a41 0f 8c c5 00 00 - 00 jl $LN59@stbi__tga_ - 00a47 83 bd a4 01 00 - 00 00 cmp DWORD PTR tga_rgb16$[rbp], 0 - 00a4e 0f 85 b8 00 00 - 00 jne $LN59@stbi__tga_ - -; 6846 : unsigned char *tga_pixel = tga_data; - - 00a54 48 8b 85 e8 01 - 00 00 mov rax, QWORD PTR tga_data$[rbp] - 00a5b 48 89 85 e8 03 - 00 00 mov QWORD PTR tga_pixel$13[rbp], rax - -; 6847 : for (i = 0; i < tga_width * tga_height; ++i) { - - 00a62 c7 85 24 02 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 00a6c eb 0e jmp SHORT $LN28@stbi__tga_ -$LN26@stbi__tga_: - 00a6e 8b 85 24 02 00 - 00 mov eax, DWORD PTR i$[rbp] - 00a74 ff c0 inc eax - 00a76 89 85 24 02 00 - 00 mov DWORD PTR i$[rbp], eax -$LN28@stbi__tga_: - 00a7c 8b 85 24 01 00 - 00 mov eax, DWORD PTR tga_width$[rbp] - 00a82 0f af 85 44 01 - 00 00 imul eax, DWORD PTR tga_height$[rbp] - 00a89 39 85 24 02 00 - 00 cmp DWORD PTR i$[rbp], eax - 00a8f 7d 7b jge SHORT $LN27@stbi__tga_ - -; 6848 : unsigned char temp = tga_pixel[0]; - - 00a91 b8 01 00 00 00 mov eax, 1 - 00a96 48 6b c0 00 imul rax, rax, 0 - 00a9a 48 8b 8d e8 03 - 00 00 mov rcx, QWORD PTR tga_pixel$13[rbp] - 00aa1 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00aa5 88 85 04 04 00 - 00 mov BYTE PTR temp$14[rbp], al - -; 6849 : tga_pixel[0] = tga_pixel[2]; - - 00aab b8 01 00 00 00 mov eax, 1 - 00ab0 48 6b c0 02 imul rax, rax, 2 - 00ab4 b9 01 00 00 00 mov ecx, 1 - 00ab9 48 6b c9 00 imul rcx, rcx, 0 - 00abd 48 8b 95 e8 03 - 00 00 mov rdx, QWORD PTR tga_pixel$13[rbp] - 00ac4 48 8b bd e8 03 - 00 00 mov rdi, QWORD PTR tga_pixel$13[rbp] - 00acb 0f b6 04 07 movzx eax, BYTE PTR [rdi+rax] - 00acf 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 6850 : tga_pixel[2] = temp; - - 00ad2 b8 01 00 00 00 mov eax, 1 - 00ad7 48 6b c0 02 imul rax, rax, 2 - 00adb 48 8b 8d e8 03 - 00 00 mov rcx, QWORD PTR tga_pixel$13[rbp] - 00ae2 0f b6 95 04 04 - 00 00 movzx edx, BYTE PTR temp$14[rbp] - 00ae9 88 14 01 mov BYTE PTR [rcx+rax], dl - -; 6851 : tga_pixel += tga_comp; - - 00aec 48 63 85 84 01 - 00 00 movsxd rax, DWORD PTR tga_comp$[rbp] - 00af3 48 8b 8d e8 03 - 00 00 mov rcx, QWORD PTR tga_pixel$13[rbp] - 00afa 48 03 c8 add rcx, rax - 00afd 48 8b c1 mov rax, rcx - 00b00 48 89 85 e8 03 - 00 00 mov QWORD PTR tga_pixel$13[rbp], rax - -; 6852 : } - - 00b07 e9 62 ff ff ff jmp $LN26@stbi__tga_ -$LN27@stbi__tga_: -$LN59@stbi__tga_: - -; 6853 : } -; 6854 : -; 6855 : // convert to target component count -; 6856 : if (req_comp && req_comp != tga_comp) - - 00b0c 83 bd b0 06 00 - 00 00 cmp DWORD PTR req_comp$[rbp], 0 - 00b13 74 3f je SHORT $LN60@stbi__tga_ - 00b15 8b 85 84 01 00 - 00 mov eax, DWORD PTR tga_comp$[rbp] - 00b1b 39 85 b0 06 00 - 00 cmp DWORD PTR req_comp$[rbp], eax - 00b21 74 31 je SHORT $LN60@stbi__tga_ - -; 6857 : tga_data = - - 00b23 8b 85 44 01 00 - 00 mov eax, DWORD PTR tga_height$[rbp] - 00b29 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00b2d 44 8b 8d 24 01 - 00 00 mov r9d, DWORD PTR tga_width$[rbp] - 00b34 44 8b 85 b0 06 - 00 00 mov r8d, DWORD PTR req_comp$[rbp] - 00b3b 8b 95 84 01 00 - 00 mov edx, DWORD PTR tga_comp$[rbp] - 00b41 48 8b 8d e8 01 - 00 00 mov rcx, QWORD PTR tga_data$[rbp] - 00b48 e8 00 00 00 00 call stbi__convert_format - 00b4d 48 89 85 e8 01 - 00 00 mov QWORD PTR tga_data$[rbp], rax -$LN60@stbi__tga_: - -; 6858 : stbi__convert_format(tga_data, tga_comp, req_comp, tga_width, tga_height); -; 6859 : -; 6860 : // the things I do to get rid of an error message, and yet keep -; 6861 : // Microsoft's C compilers happy... [8^( -; 6862 : tga_palette_start = tga_palette_len = tga_palette_bits = tga_x_origin = tga_y_origin = 0; - - 00b54 c7 85 04 01 00 - 00 00 00 00 00 mov DWORD PTR tga_y_origin$[rbp], 0 - 00b5e 8b 85 04 01 00 - 00 mov eax, DWORD PTR tga_y_origin$[rbp] - 00b64 89 85 e4 00 00 - 00 mov DWORD PTR tga_x_origin$[rbp], eax - 00b6a 8b 85 e4 00 00 - 00 mov eax, DWORD PTR tga_x_origin$[rbp] - 00b70 89 85 c4 00 00 - 00 mov DWORD PTR tga_palette_bits$[rbp], eax - 00b76 8b 85 c4 00 00 - 00 mov eax, DWORD PTR tga_palette_bits$[rbp] - 00b7c 89 85 a4 00 00 - 00 mov DWORD PTR tga_palette_len$[rbp], eax - 00b82 8b 85 a4 00 00 - 00 mov eax, DWORD PTR tga_palette_len$[rbp] - 00b88 89 85 84 00 00 - 00 mov DWORD PTR tga_palette_start$[rbp], eax - -; 6863 : STBI_NOTUSED(tga_palette_start); -; 6864 : // OK, done -; 6865 : return tga_data; - - 00b8e 48 8b 85 e8 01 - 00 00 mov rax, QWORD PTR tga_data$[rbp] -$LN1@stbi__tga_: - -; 6866 : } - - 00b95 48 8b f8 mov rdi, rax - 00b98 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00b9c 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__tga_load$rtcFrameData - 00ba3 e8 00 00 00 00 call _RTC_CheckStackVars - 00ba8 48 8b c7 mov rax, rdi - 00bab 48 8b 8d 60 06 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00bb2 48 33 cd xor rcx, rbp - 00bb5 e8 00 00 00 00 call __security_check_cookie - 00bba 48 8d a5 78 06 - 00 00 lea rsp, QWORD PTR [rbp+1656] - 00bc1 5f pop rdi - 00bc2 5d pop rbp - 00bc3 c3 ret 0 -stbi__tga_load ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__tga_test -_TEXT SEGMENT -res$ = 4 -sz$ = 36 -tga_color_type$ = 68 -s$ = 320 -stbi__tga_test PROC ; COMDAT - -; 6610 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 6611 : int res = 0; - - 00020 c7 45 04 00 00 - 00 00 mov DWORD PTR res$[rbp], 0 - -; 6612 : int sz, tga_color_type; -; 6613 : stbi__get8(s); // discard Offset - - 00027 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0002e e8 00 00 00 00 call stbi__get8 - 00033 90 npad 1 - -; 6614 : tga_color_type = stbi__get8(s); // color type - - 00034 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0003b e8 00 00 00 00 call stbi__get8 - 00040 0f b6 c0 movzx eax, al - 00043 89 45 44 mov DWORD PTR tga_color_type$[rbp], eax - -; 6615 : if (tga_color_type > 1) - - 00046 83 7d 44 01 cmp DWORD PTR tga_color_type$[rbp], 1 - 0004a 7e 05 jle SHORT $LN2@stbi__tga_ - -; 6616 : goto errorEnd; // only RGB or indexed allowed - - 0004c e9 26 01 00 00 jmp $errorEnd$13 -$LN2@stbi__tga_: - -; 6617 : sz = stbi__get8(s); // image type - - 00051 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00058 e8 00 00 00 00 call stbi__get8 - 0005d 0f b6 c0 movzx eax, al - 00060 89 45 24 mov DWORD PTR sz$[rbp], eax - -; 6618 : if (tga_color_type == 1) { // colormapped (paletted) image - - 00063 83 7d 44 01 cmp DWORD PTR tga_color_type$[rbp], 1 - 00067 75 6c jne SHORT $LN3@stbi__tga_ - -; 6619 : if (sz != 1 && sz != 9) - - 00069 83 7d 24 01 cmp DWORD PTR sz$[rbp], 1 - 0006d 74 0b je SHORT $LN5@stbi__tga_ - 0006f 83 7d 24 09 cmp DWORD PTR sz$[rbp], 9 - 00073 74 05 je SHORT $LN5@stbi__tga_ - -; 6620 : goto errorEnd; // colortype 1 demands image type 1 or 9 - - 00075 e9 fd 00 00 00 jmp $errorEnd$13 -$LN5@stbi__tga_: - -; 6621 : stbi__skip(s, 4); // skip index of first colormap entry and number of entries - - 0007a ba 04 00 00 00 mov edx, 4 - 0007f 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00086 e8 00 00 00 00 call stbi__skip - 0008b 90 npad 1 - -; 6622 : sz = stbi__get8(s); // check bits per palette color entry - - 0008c 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00093 e8 00 00 00 00 call stbi__get8 - 00098 0f b6 c0 movzx eax, al - 0009b 89 45 24 mov DWORD PTR sz$[rbp], eax - -; 6623 : if ((sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32)) - - 0009e 83 7d 24 08 cmp DWORD PTR sz$[rbp], 8 - 000a2 74 1d je SHORT $LN6@stbi__tga_ - 000a4 83 7d 24 0f cmp DWORD PTR sz$[rbp], 15 - 000a8 74 17 je SHORT $LN6@stbi__tga_ - 000aa 83 7d 24 10 cmp DWORD PTR sz$[rbp], 16 - 000ae 74 11 je SHORT $LN6@stbi__tga_ - 000b0 83 7d 24 18 cmp DWORD PTR sz$[rbp], 24 - 000b4 74 0b je SHORT $LN6@stbi__tga_ - 000b6 83 7d 24 20 cmp DWORD PTR sz$[rbp], 32 ; 00000020H - 000ba 74 05 je SHORT $LN6@stbi__tga_ - -; 6624 : goto errorEnd; - - 000bc e9 b6 00 00 00 jmp $errorEnd$13 -$LN6@stbi__tga_: - -; 6625 : stbi__skip(s, 4); // skip image x and y origin - - 000c1 ba 04 00 00 00 mov edx, 4 - 000c6 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000cd e8 00 00 00 00 call stbi__skip - 000d2 90 npad 1 - -; 6626 : } else { // "normal" image w/o colormap - - 000d3 eb 2f jmp SHORT $LN4@stbi__tga_ -$LN3@stbi__tga_: - -; 6627 : if ((sz != 2) && (sz != 3) && (sz != 10) && (sz != 11)) - - 000d5 83 7d 24 02 cmp DWORD PTR sz$[rbp], 2 - 000d9 74 17 je SHORT $LN7@stbi__tga_ - 000db 83 7d 24 03 cmp DWORD PTR sz$[rbp], 3 - 000df 74 11 je SHORT $LN7@stbi__tga_ - 000e1 83 7d 24 0a cmp DWORD PTR sz$[rbp], 10 - 000e5 74 0b je SHORT $LN7@stbi__tga_ - 000e7 83 7d 24 0b cmp DWORD PTR sz$[rbp], 11 - 000eb 74 05 je SHORT $LN7@stbi__tga_ - -; 6628 : goto errorEnd; // only RGB or grey allowed, +/- RLE - - 000ed e9 85 00 00 00 jmp $errorEnd$13 -$LN7@stbi__tga_: - -; 6629 : stbi__skip(s, 9); // skip colormap specification and image x/y origin - - 000f2 ba 09 00 00 00 mov edx, 9 - 000f7 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000fe e8 00 00 00 00 call stbi__skip - 00103 90 npad 1 -$LN4@stbi__tga_: - -; 6630 : } -; 6631 : if (stbi__get16le(s) < 1) - - 00104 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0010b e8 00 00 00 00 call stbi__get16le - 00110 83 f8 01 cmp eax, 1 - 00113 7d 02 jge SHORT $LN8@stbi__tga_ - -; 6632 : goto errorEnd; // test width - - 00115 eb 60 jmp SHORT $errorEnd$13 -$LN8@stbi__tga_: - -; 6633 : if (stbi__get16le(s) < 1) - - 00117 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0011e e8 00 00 00 00 call stbi__get16le - 00123 83 f8 01 cmp eax, 1 - 00126 7d 02 jge SHORT $LN9@stbi__tga_ - -; 6634 : goto errorEnd; // test height - - 00128 eb 4d jmp SHORT $errorEnd$13 -$LN9@stbi__tga_: - -; 6635 : sz = stbi__get8(s); // bits per pixel - - 0012a 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00131 e8 00 00 00 00 call stbi__get8 - 00136 0f b6 c0 movzx eax, al - 00139 89 45 24 mov DWORD PTR sz$[rbp], eax - -; 6636 : if ((tga_color_type == 1) && (sz != 8) && (sz != 16)) - - 0013c 83 7d 44 01 cmp DWORD PTR tga_color_type$[rbp], 1 - 00140 75 0e jne SHORT $LN10@stbi__tga_ - 00142 83 7d 24 08 cmp DWORD PTR sz$[rbp], 8 - 00146 74 08 je SHORT $LN10@stbi__tga_ - 00148 83 7d 24 10 cmp DWORD PTR sz$[rbp], 16 - 0014c 74 02 je SHORT $LN10@stbi__tga_ - -; 6637 : goto errorEnd; // for colormapped images, bpp is size of an index - - 0014e eb 27 jmp SHORT $errorEnd$13 -$LN10@stbi__tga_: - -; 6638 : if ((sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32)) - - 00150 83 7d 24 08 cmp DWORD PTR sz$[rbp], 8 - 00154 74 1a je SHORT $LN11@stbi__tga_ - 00156 83 7d 24 0f cmp DWORD PTR sz$[rbp], 15 - 0015a 74 14 je SHORT $LN11@stbi__tga_ - 0015c 83 7d 24 10 cmp DWORD PTR sz$[rbp], 16 - 00160 74 0e je SHORT $LN11@stbi__tga_ - 00162 83 7d 24 18 cmp DWORD PTR sz$[rbp], 24 - 00166 74 08 je SHORT $LN11@stbi__tga_ - 00168 83 7d 24 20 cmp DWORD PTR sz$[rbp], 32 ; 00000020H - 0016c 74 02 je SHORT $LN11@stbi__tga_ - -; 6639 : goto errorEnd; - - 0016e eb 07 jmp SHORT $errorEnd$13 -$LN11@stbi__tga_: - -; 6640 : -; 6641 : res = 1; // if we got this far, everything's good and we can return 1 instead of 0 - - 00170 c7 45 04 01 00 - 00 00 mov DWORD PTR res$[rbp], 1 -$errorEnd$13: - -; 6642 : -; 6643 : errorEnd: -; 6644 : stbi__rewind(s); - - 00177 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0017e e8 00 00 00 00 call stbi__rewind - 00183 90 npad 1 - -; 6645 : return res; - - 00184 8b 45 04 mov eax, DWORD PTR res$[rbp] - -; 6646 : } - - 00187 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 0018e 5f pop rdi - 0018f 5d pop rbp - 00190 c3 ret 0 -stbi__tga_test ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__bmp_info -_TEXT SEGMENT -p$ = 8 -info$ = 40 -tv77 = 276 -__$ArrayPad$ = 280 -s$ = 320 -x$ = 328 -y$ = 336 -comp$ = 344 -stbi__bmp_info PROC ; COMDAT - -; 8240 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00027 b9 1a 00 00 00 mov ecx, 26 - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 68 - 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 18 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 8241 : void *p; -; 8242 : stbi__bmp_data info; -; 8243 : -; 8244 : info.all_a = 255; - - 00059 c7 45 44 ff 00 - 00 00 mov DWORD PTR info$[rbp+28], 255 ; 000000ffH - -; 8245 : p = stbi__bmp_parse_header(s, &info); - - 00060 48 8d 55 28 lea rdx, QWORD PTR info$[rbp] - 00064 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0006b e8 00 00 00 00 call stbi__bmp_parse_header - 00070 48 89 45 08 mov QWORD PTR p$[rbp], rax - -; 8246 : if (p == NULL) { - - 00074 48 83 7d 08 00 cmp QWORD PTR p$[rbp], 0 - 00079 75 14 jne SHORT $LN2@stbi__bmp_ - -; 8247 : stbi__rewind(s); - - 0007b 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00082 e8 00 00 00 00 call stbi__rewind - 00087 90 npad 1 - -; 8248 : return 0; - - 00088 33 c0 xor eax, eax - 0008a e9 91 00 00 00 jmp $LN1@stbi__bmp_ -$LN2@stbi__bmp_: - -; 8249 : } -; 8250 : if (x) - - 0008f 48 83 bd 48 01 - 00 00 00 cmp QWORD PTR x$[rbp], 0 - 00097 74 12 je SHORT $LN3@stbi__bmp_ - -; 8251 : *x = s->img_x; - - 00099 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR x$[rbp] - 000a0 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000a7 8b 09 mov ecx, DWORD PTR [rcx] - 000a9 89 08 mov DWORD PTR [rax], ecx -$LN3@stbi__bmp_: - -; 8252 : if (y) - - 000ab 48 83 bd 50 01 - 00 00 00 cmp QWORD PTR y$[rbp], 0 - 000b3 74 13 je SHORT $LN4@stbi__bmp_ - -; 8253 : *y = s->img_y; - - 000b5 48 8b 85 50 01 - 00 00 mov rax, QWORD PTR y$[rbp] - 000bc 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000c3 8b 49 04 mov ecx, DWORD PTR [rcx+4] - 000c6 89 08 mov DWORD PTR [rax], ecx -$LN4@stbi__bmp_: - -; 8254 : if (comp) { - - 000c8 48 83 bd 58 01 - 00 00 00 cmp QWORD PTR comp$[rbp], 0 - 000d0 74 49 je SHORT $LN5@stbi__bmp_ - -; 8255 : if (info.bpp == 24 && info.ma == 0xff000000) - - 000d2 83 7d 28 18 cmp DWORD PTR info$[rbp], 24 - 000d6 75 18 jne SHORT $LN6@stbi__bmp_ - 000d8 81 7d 40 00 00 - 00 ff cmp DWORD PTR info$[rbp+24], -16777216 ; ff000000H - 000df 75 0f jne SHORT $LN6@stbi__bmp_ - -; 8256 : *comp = 3; - - 000e1 48 8b 85 58 01 - 00 00 mov rax, QWORD PTR comp$[rbp] - 000e8 c7 00 03 00 00 - 00 mov DWORD PTR [rax], 3 - 000ee eb 2b jmp SHORT $LN7@stbi__bmp_ -$LN6@stbi__bmp_: - -; 8257 : else -; 8258 : *comp = info.ma ? 4 : 3; - - 000f0 83 7d 40 00 cmp DWORD PTR info$[rbp+24], 0 - 000f4 74 0c je SHORT $LN9@stbi__bmp_ - 000f6 c7 85 14 01 00 - 00 04 00 00 00 mov DWORD PTR tv77[rbp], 4 - 00100 eb 0a jmp SHORT $LN10@stbi__bmp_ -$LN9@stbi__bmp_: - 00102 c7 85 14 01 00 - 00 03 00 00 00 mov DWORD PTR tv77[rbp], 3 -$LN10@stbi__bmp_: - 0010c 48 8b 85 58 01 - 00 00 mov rax, QWORD PTR comp$[rbp] - 00113 8b 8d 14 01 00 - 00 mov ecx, DWORD PTR tv77[rbp] - 00119 89 08 mov DWORD PTR [rax], ecx -$LN7@stbi__bmp_: -$LN5@stbi__bmp_: - -; 8259 : } -; 8260 : return 1; - - 0011b b8 01 00 00 00 mov eax, 1 -$LN1@stbi__bmp_: - -; 8261 : } - - 00120 48 8b f8 mov rdi, rax - 00123 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00127 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__bmp_info$rtcFrameData - 0012e e8 00 00 00 00 call _RTC_CheckStackVars - 00133 48 8b c7 mov rax, rdi - 00136 48 8b 8d 18 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0013d 48 33 cd xor rcx, rbp - 00140 e8 00 00 00 00 call __security_check_cookie - 00145 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 0014c 5f pop rdi - 0014d 5d pop rbp - 0014e c3 ret 0 -stbi__bmp_info ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__bmp_load -_TEXT SEGMENT -out$ = 8 -mr$ = 36 -mg$ = 68 -mb$ = 100 -ma$ = 132 -all_a$ = 164 -pal$ = 208 -psize$ = 1252 -i$ = 1284 -j$ = 1316 -width$ = 1348 -flip_vertically$ = 1380 -pad$ = 1412 -target$ = 1444 -info$ = 1480 -bytes_read_so_far$5 = 1540 -header_limit$6 = 1572 -extra_data_limit$7 = 1604 -z$8 = 1636 -bit_offset$9 = 1668 -v$10 = 1700 -color$11 = 1732 -v$12 = 1764 -v2$13 = 1796 -rshift$14 = 1828 -gshift$15 = 1860 -bshift$16 = 1892 -ashift$17 = 1924 -rcount$18 = 1956 -gcount$19 = 1988 -bcount$20 = 2020 -acount$21 = 2052 -z$22 = 2084 -easy$23 = 2116 -a$24 = 2148 -bpp$25 = 2180 -v$26 = 2212 -a$27 = 2244 -t$28 = 2276 -p1$29 = 2312 -p2$30 = 2344 -tv70 = 3316 -tv188 = 3316 -tv257 = 3316 -tv384 = 3316 -tv505 = 3316 -tv522 = 3316 -tv562 = 3316 -tv86 = 3320 -tv172 = 3320 -tv179 = 3320 -tv203 = 3320 -tv215 = 3320 -tv223 = 3320 -tv80 = 3320 -tv445 = 3320 -tv474 = 3320 -tv276 = 3320 -__$ArrayPad$ = 3328 -s$ = 3376 -x$ = 3384 -y$ = 3392 -comp$ = 3400 -req_comp$ = 3408 -ri$ = 3416 -stbi__bmp_load PROC ; COMDAT - -; 6260 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 48 0d - 00 00 sub rsp, 3400 ; 00000d48H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00027 b9 56 02 00 00 mov ecx, 598 ; 00000256H - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 68 - 0d 00 00 mov rcx, QWORD PTR [rsp+3432] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 00 0d - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 6261 : stbi_uc *out; -; 6262 : unsigned int mr = 0, mg = 0, mb = 0, ma = 0, all_a; - - 00059 c7 45 24 00 00 - 00 00 mov DWORD PTR mr$[rbp], 0 - 00060 c7 45 44 00 00 - 00 00 mov DWORD PTR mg$[rbp], 0 - 00067 c7 45 64 00 00 - 00 00 mov DWORD PTR mb$[rbp], 0 - 0006e c7 85 84 00 00 - 00 00 00 00 00 mov DWORD PTR ma$[rbp], 0 - -; 6263 : stbi_uc pal[256][4]; -; 6264 : int psize = 0, i, j, width; - - 00078 c7 85 e4 04 00 - 00 00 00 00 00 mov DWORD PTR psize$[rbp], 0 - -; 6265 : int flip_vertically, pad, target; -; 6266 : stbi__bmp_data info; -; 6267 : STBI_NOTUSED(ri); -; 6268 : -; 6269 : info.all_a = 255; - - 00082 c7 85 e4 05 00 - 00 ff 00 00 00 mov DWORD PTR info$[rbp+28], 255 ; 000000ffH - -; 6270 : if (stbi__bmp_parse_header(s, &info) == NULL) - - 0008c 48 8d 95 c8 05 - 00 00 lea rdx, QWORD PTR info$[rbp] - 00093 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 0009a e8 00 00 00 00 call stbi__bmp_parse_header - 0009f 48 85 c0 test rax, rax - 000a2 75 07 jne SHORT $LN35@stbi__bmp_ - -; 6271 : return NULL; // error code already set - - 000a4 33 c0 xor eax, eax - 000a6 e9 67 12 00 00 jmp $LN1@stbi__bmp_ -$LN35@stbi__bmp_: - -; 6272 : -; 6273 : flip_vertically = ((int)s->img_y) > 0; - - 000ab 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 000b2 83 78 04 00 cmp DWORD PTR [rax+4], 0 - 000b6 7e 0c jle SHORT $LN97@stbi__bmp_ - 000b8 c7 85 f4 0c 00 - 00 01 00 00 00 mov DWORD PTR tv70[rbp], 1 - 000c2 eb 0a jmp SHORT $LN98@stbi__bmp_ -$LN97@stbi__bmp_: - 000c4 c7 85 f4 0c 00 - 00 00 00 00 00 mov DWORD PTR tv70[rbp], 0 -$LN98@stbi__bmp_: - 000ce 8b 85 f4 0c 00 - 00 mov eax, DWORD PTR tv70[rbp] - 000d4 89 85 64 05 00 - 00 mov DWORD PTR flip_vertically$[rbp], eax - -; 6274 : s->img_y = abs((int)s->img_y); - - 000da 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 000e1 8b 48 04 mov ecx, DWORD PTR [rax+4] - 000e4 e8 00 00 00 00 call abs - 000e9 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 000f0 89 41 04 mov DWORD PTR [rcx+4], eax - -; 6275 : -; 6276 : if (s->img_y > STBI_MAX_DIMENSIONS) - - 000f3 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 000fa 81 78 04 00 00 - 00 01 cmp DWORD PTR [rax+4], 16777216 ; 01000000H - 00101 76 34 jbe SHORT $LN36@stbi__bmp_ - -; 6277 : return stbi__errpuc("too large", "Very large image (corrupt?)"); - - 00103 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 0010a e8 00 00 00 00 call stbi__err - 0010f 85 c0 test eax, eax - 00111 74 0d je SHORT $LN99@stbi__bmp_ - 00113 48 c7 85 f8 0c - 00 00 00 00 00 - 00 mov QWORD PTR tv80[rbp], 0 - 0011e eb 0b jmp SHORT $LN100@stbi__bmp_ -$LN99@stbi__bmp_: - 00120 48 c7 85 f8 0c - 00 00 00 00 00 - 00 mov QWORD PTR tv80[rbp], 0 -$LN100@stbi__bmp_: - 0012b 48 8b 85 f8 0c - 00 00 mov rax, QWORD PTR tv80[rbp] - 00132 e9 db 11 00 00 jmp $LN1@stbi__bmp_ -$LN36@stbi__bmp_: - -; 6278 : if (s->img_x > STBI_MAX_DIMENSIONS) - - 00137 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 0013e 81 38 00 00 00 - 01 cmp DWORD PTR [rax], 16777216 ; 01000000H - 00144 76 34 jbe SHORT $LN37@stbi__bmp_ - -; 6279 : return stbi__errpuc("too large", "Very large image (corrupt?)"); - - 00146 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 0014d e8 00 00 00 00 call stbi__err - 00152 85 c0 test eax, eax - 00154 74 0d je SHORT $LN101@stbi__bmp_ - 00156 48 c7 85 f8 0c - 00 00 00 00 00 - 00 mov QWORD PTR tv86[rbp], 0 - 00161 eb 0b jmp SHORT $LN102@stbi__bmp_ -$LN101@stbi__bmp_: - 00163 48 c7 85 f8 0c - 00 00 00 00 00 - 00 mov QWORD PTR tv86[rbp], 0 -$LN102@stbi__bmp_: - 0016e 48 8b 85 f8 0c - 00 00 mov rax, QWORD PTR tv86[rbp] - 00175 e9 98 11 00 00 jmp $LN1@stbi__bmp_ -$LN37@stbi__bmp_: - -; 6280 : -; 6281 : mr = info.mr; - - 0017a 8b 85 d4 05 00 - 00 mov eax, DWORD PTR info$[rbp+12] - 00180 89 45 24 mov DWORD PTR mr$[rbp], eax - -; 6282 : mg = info.mg; - - 00183 8b 85 d8 05 00 - 00 mov eax, DWORD PTR info$[rbp+16] - 00189 89 45 44 mov DWORD PTR mg$[rbp], eax - -; 6283 : mb = info.mb; - - 0018c 8b 85 dc 05 00 - 00 mov eax, DWORD PTR info$[rbp+20] - 00192 89 45 64 mov DWORD PTR mb$[rbp], eax - -; 6284 : ma = info.ma; - - 00195 8b 85 e0 05 00 - 00 mov eax, DWORD PTR info$[rbp+24] - 0019b 89 85 84 00 00 - 00 mov DWORD PTR ma$[rbp], eax - -; 6285 : all_a = info.all_a; - - 001a1 8b 85 e4 05 00 - 00 mov eax, DWORD PTR info$[rbp+28] - 001a7 89 85 a4 00 00 - 00 mov DWORD PTR all_a$[rbp], eax - -; 6286 : -; 6287 : if (info.hsz == 12) { - - 001ad 83 bd d0 05 00 - 00 0c cmp DWORD PTR info$[rbp+8], 12 - 001b4 75 2c jne SHORT $LN38@stbi__bmp_ - -; 6288 : if (info.bpp < 24) - - 001b6 83 bd c8 05 00 - 00 18 cmp DWORD PTR info$[rbp], 24 - 001bd 7d 21 jge SHORT $LN40@stbi__bmp_ - -; 6289 : psize = (info.offset - info.extra_read - 24) / 3; - - 001bf 8b 85 e8 05 00 - 00 mov eax, DWORD PTR info$[rbp+32] - 001c5 8b 8d cc 05 00 - 00 mov ecx, DWORD PTR info$[rbp+4] - 001cb 2b c8 sub ecx, eax - 001cd 8b c1 mov eax, ecx - 001cf 83 e8 18 sub eax, 24 - 001d2 99 cdq - 001d3 b9 03 00 00 00 mov ecx, 3 - 001d8 f7 f9 idiv ecx - 001da 89 85 e4 04 00 - 00 mov DWORD PTR psize$[rbp], eax -$LN40@stbi__bmp_: - -; 6290 : } else { - - 001e0 eb 28 jmp SHORT $LN39@stbi__bmp_ -$LN38@stbi__bmp_: - -; 6291 : if (info.bpp < 16) - - 001e2 83 bd c8 05 00 - 00 10 cmp DWORD PTR info$[rbp], 16 - 001e9 7d 1f jge SHORT $LN41@stbi__bmp_ - -; 6292 : psize = (info.offset - info.extra_read - info.hsz) >> 2; - - 001eb 8b 85 e8 05 00 - 00 mov eax, DWORD PTR info$[rbp+32] - 001f1 8b 8d cc 05 00 - 00 mov ecx, DWORD PTR info$[rbp+4] - 001f7 2b c8 sub ecx, eax - 001f9 8b c1 mov eax, ecx - 001fb 2b 85 d0 05 00 - 00 sub eax, DWORD PTR info$[rbp+8] - 00201 c1 f8 02 sar eax, 2 - 00204 89 85 e4 04 00 - 00 mov DWORD PTR psize$[rbp], eax -$LN41@stbi__bmp_: -$LN39@stbi__bmp_: - -; 6293 : } -; 6294 : if (psize == 0) { - - 0020a 83 bd e4 04 00 - 00 00 cmp DWORD PTR psize$[rbp], 0 - 00211 0f 85 0c 01 00 - 00 jne $LN42@stbi__bmp_ - -; 6295 : // accept some number of extra bytes after the header, but if the offset points either to before -; 6296 : // the header ends or implies a large amount of extra data, reject the file as malformed -; 6297 : int bytes_read_so_far = - - 00217 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 0021e 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 00225 48 8b 89 d0 00 - 00 00 mov rcx, QWORD PTR [rcx+208] - 0022c 48 8b 80 c0 00 - 00 00 mov rax, QWORD PTR [rax+192] - 00233 48 2b c1 sub rax, rcx - 00236 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 0023d 03 81 b8 00 00 - 00 add eax, DWORD PTR [rcx+184] - 00243 89 85 04 06 00 - 00 mov DWORD PTR bytes_read_so_far$5[rbp], eax - -; 6298 : s->callback_already_read + (int)(s->img_buffer - s->img_buffer_original); -; 6299 : int header_limit = 1024; // max we actually read is below 256 bytes currently. - - 00249 c7 85 24 06 00 - 00 00 04 00 00 mov DWORD PTR header_limit$6[rbp], 1024 ; 00000400H - -; 6300 : int extra_data_limit = - - 00253 c7 85 44 06 00 - 00 00 04 00 00 mov DWORD PTR extra_data_limit$7[rbp], 1024 ; 00000400H - -; 6301 : 256 * -; 6302 : 4; // what ordinarily goes here is a palette; 256 entries*4 bytes is its max size. -; 6303 : if (bytes_read_so_far <= 0 || bytes_read_so_far > header_limit) { - - 0025d 83 bd 04 06 00 - 00 00 cmp DWORD PTR bytes_read_so_far$5[rbp], 0 - 00264 7e 0e jle SHORT $LN44@stbi__bmp_ - 00266 8b 85 24 06 00 - 00 mov eax, DWORD PTR header_limit$6[rbp] - 0026c 39 85 04 06 00 - 00 cmp DWORD PTR bytes_read_so_far$5[rbp], eax - 00272 7e 34 jle SHORT $LN43@stbi__bmp_ -$LN44@stbi__bmp_: - -; 6304 : return stbi__errpuc("bad header", "Corrupt BMP"); - - 00274 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0L@PJHPAMCH@bad?5header@ - 0027b e8 00 00 00 00 call stbi__err - 00280 85 c0 test eax, eax - 00282 74 0d je SHORT $LN103@stbi__bmp_ - 00284 48 c7 85 f8 0c - 00 00 00 00 00 - 00 mov QWORD PTR tv172[rbp], 0 - 0028f eb 0b jmp SHORT $LN104@stbi__bmp_ -$LN103@stbi__bmp_: - 00291 48 c7 85 f8 0c - 00 00 00 00 00 - 00 mov QWORD PTR tv172[rbp], 0 -$LN104@stbi__bmp_: - 0029c 48 8b 85 f8 0c - 00 00 mov rax, QWORD PTR tv172[rbp] - 002a3 e9 6a 10 00 00 jmp $LN1@stbi__bmp_ -$LN43@stbi__bmp_: - -; 6305 : } -; 6306 : // we established that bytes_read_so_far is positive and sensible. -; 6307 : // the first half of this test rejects offsets that are either too small positives, or -; 6308 : // negative, and guarantees that info.offset >= bytes_read_so_far > 0. this in turn -; 6309 : // ensures the number computed in the second half of the test can't overflow. -; 6310 : if (info.offset < bytes_read_so_far || - - 002a8 8b 85 04 06 00 - 00 mov eax, DWORD PTR bytes_read_so_far$5[rbp] - 002ae 39 85 cc 05 00 - 00 cmp DWORD PTR info$[rbp+4], eax - 002b4 7c 18 jl SHORT $LN47@stbi__bmp_ - 002b6 8b 85 04 06 00 - 00 mov eax, DWORD PTR bytes_read_so_far$5[rbp] - 002bc 8b 8d cc 05 00 - 00 mov ecx, DWORD PTR info$[rbp+4] - 002c2 2b c8 sub ecx, eax - 002c4 8b c1 mov eax, ecx - 002c6 3b 85 44 06 00 - 00 cmp eax, DWORD PTR extra_data_limit$7[rbp] - 002cc 7e 36 jle SHORT $LN45@stbi__bmp_ -$LN47@stbi__bmp_: - -; 6311 : info.offset - bytes_read_so_far > extra_data_limit) { -; 6312 : return stbi__errpuc("bad offset", "Corrupt BMP"); - - 002ce 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0L@JDPIFELH@bad?5offset@ - 002d5 e8 00 00 00 00 call stbi__err - 002da 85 c0 test eax, eax - 002dc 74 0d je SHORT $LN105@stbi__bmp_ - 002de 48 c7 85 f8 0c - 00 00 00 00 00 - 00 mov QWORD PTR tv179[rbp], 0 - 002e9 eb 0b jmp SHORT $LN106@stbi__bmp_ -$LN105@stbi__bmp_: - 002eb 48 c7 85 f8 0c - 00 00 00 00 00 - 00 mov QWORD PTR tv179[rbp], 0 -$LN106@stbi__bmp_: - 002f6 48 8b 85 f8 0c - 00 00 mov rax, QWORD PTR tv179[rbp] - 002fd e9 10 10 00 00 jmp $LN1@stbi__bmp_ - -; 6313 : } else { - - 00302 eb 1f jmp SHORT $LN46@stbi__bmp_ -$LN45@stbi__bmp_: - -; 6314 : stbi__skip(s, info.offset - bytes_read_so_far); - - 00304 8b 85 04 06 00 - 00 mov eax, DWORD PTR bytes_read_so_far$5[rbp] - 0030a 8b 8d cc 05 00 - 00 mov ecx, DWORD PTR info$[rbp+4] - 00310 2b c8 sub ecx, eax - 00312 8b c1 mov eax, ecx - 00314 8b d0 mov edx, eax - 00316 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 0031d e8 00 00 00 00 call stbi__skip - 00322 90 npad 1 -$LN46@stbi__bmp_: -$LN42@stbi__bmp_: - -; 6315 : } -; 6316 : } -; 6317 : -; 6318 : if (info.bpp == 24 && ma == 0xff000000) - - 00323 83 bd c8 05 00 - 00 18 cmp DWORD PTR info$[rbp], 24 - 0032a 75 1c jne SHORT $LN48@stbi__bmp_ - 0032c 81 bd 84 00 00 - 00 00 00 00 ff cmp DWORD PTR ma$[rbp], -16777216 ; ff000000H - 00336 75 10 jne SHORT $LN48@stbi__bmp_ - -; 6319 : s->img_n = 3; - - 00338 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 0033f c7 40 08 03 00 - 00 00 mov DWORD PTR [rax+8], 3 - 00346 eb 2f jmp SHORT $LN49@stbi__bmp_ -$LN48@stbi__bmp_: - -; 6320 : else -; 6321 : s->img_n = ma ? 4 : 3; - - 00348 83 bd 84 00 00 - 00 00 cmp DWORD PTR ma$[rbp], 0 - 0034f 74 0c je SHORT $LN107@stbi__bmp_ - 00351 c7 85 f4 0c 00 - 00 04 00 00 00 mov DWORD PTR tv188[rbp], 4 - 0035b eb 0a jmp SHORT $LN108@stbi__bmp_ -$LN107@stbi__bmp_: - 0035d c7 85 f4 0c 00 - 00 03 00 00 00 mov DWORD PTR tv188[rbp], 3 -$LN108@stbi__bmp_: - 00367 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 0036e 8b 8d f4 0c 00 - 00 mov ecx, DWORD PTR tv188[rbp] - 00374 89 48 08 mov DWORD PTR [rax+8], ecx -$LN49@stbi__bmp_: - -; 6322 : if (req_comp && req_comp >= 3) // we can directly decode 3 or 4 - - 00377 83 bd 50 0d 00 - 00 00 cmp DWORD PTR req_comp$[rbp], 0 - 0037e 74 17 je SHORT $LN50@stbi__bmp_ - 00380 83 bd 50 0d 00 - 00 03 cmp DWORD PTR req_comp$[rbp], 3 - 00387 7c 0e jl SHORT $LN50@stbi__bmp_ - -; 6323 : target = req_comp; - - 00389 8b 85 50 0d 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 0038f 89 85 a4 05 00 - 00 mov DWORD PTR target$[rbp], eax - 00395 eb 10 jmp SHORT $LN51@stbi__bmp_ -$LN50@stbi__bmp_: - -; 6324 : else -; 6325 : target = s->img_n; // if they want monochrome, we'll post-convert - - 00397 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 0039e 8b 40 08 mov eax, DWORD PTR [rax+8] - 003a1 89 85 a4 05 00 - 00 mov DWORD PTR target$[rbp], eax -$LN51@stbi__bmp_: - -; 6326 : -; 6327 : // sanity-check size -; 6328 : if (!stbi__mad3sizes_valid(target, s->img_x, s->img_y, 0)) - - 003a7 45 33 c9 xor r9d, r9d - 003aa 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 003b1 44 8b 40 04 mov r8d, DWORD PTR [rax+4] - 003b5 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 003bc 8b 10 mov edx, DWORD PTR [rax] - 003be 8b 8d a4 05 00 - 00 mov ecx, DWORD PTR target$[rbp] - 003c4 e8 00 00 00 00 call stbi__mad3sizes_valid - 003c9 85 c0 test eax, eax - 003cb 75 34 jne SHORT $LN52@stbi__bmp_ - -; 6329 : return stbi__errpuc("too large", "Corrupt BMP"); - - 003cd 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ - 003d4 e8 00 00 00 00 call stbi__err - 003d9 85 c0 test eax, eax - 003db 74 0d je SHORT $LN109@stbi__bmp_ - 003dd 48 c7 85 f8 0c - 00 00 00 00 00 - 00 mov QWORD PTR tv203[rbp], 0 - 003e8 eb 0b jmp SHORT $LN110@stbi__bmp_ -$LN109@stbi__bmp_: - 003ea 48 c7 85 f8 0c - 00 00 00 00 00 - 00 mov QWORD PTR tv203[rbp], 0 -$LN110@stbi__bmp_: - 003f5 48 8b 85 f8 0c - 00 00 mov rax, QWORD PTR tv203[rbp] - 003fc e9 11 0f 00 00 jmp $LN1@stbi__bmp_ -$LN52@stbi__bmp_: - -; 6330 : -; 6331 : out = (stbi_uc *)stbi__malloc_mad3(target, s->img_x, s->img_y, 0); - - 00401 45 33 c9 xor r9d, r9d - 00404 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 0040b 44 8b 40 04 mov r8d, DWORD PTR [rax+4] - 0040f 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 00416 8b 10 mov edx, DWORD PTR [rax] - 00418 8b 8d a4 05 00 - 00 mov ecx, DWORD PTR target$[rbp] - 0041e e8 00 00 00 00 call stbi__malloc_mad3 - 00423 48 89 45 08 mov QWORD PTR out$[rbp], rax - -; 6332 : if (!out) - - 00427 48 83 7d 08 00 cmp QWORD PTR out$[rbp], 0 - 0042c 75 34 jne SHORT $LN53@stbi__bmp_ - -; 6333 : return stbi__errpuc("outofmem", "Out of memory"); - - 0042e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 00435 e8 00 00 00 00 call stbi__err - 0043a 85 c0 test eax, eax - 0043c 74 0d je SHORT $LN111@stbi__bmp_ - 0043e 48 c7 85 f8 0c - 00 00 00 00 00 - 00 mov QWORD PTR tv215[rbp], 0 - 00449 eb 0b jmp SHORT $LN112@stbi__bmp_ -$LN111@stbi__bmp_: - 0044b 48 c7 85 f8 0c - 00 00 00 00 00 - 00 mov QWORD PTR tv215[rbp], 0 -$LN112@stbi__bmp_: - 00456 48 8b 85 f8 0c - 00 00 mov rax, QWORD PTR tv215[rbp] - 0045d e9 b0 0e 00 00 jmp $LN1@stbi__bmp_ -$LN53@stbi__bmp_: - -; 6334 : if (info.bpp < 16) { - - 00462 83 bd c8 05 00 - 00 10 cmp DWORD PTR info$[rbp], 16 - 00469 0f 8d ce 06 00 - 00 jge $LN54@stbi__bmp_ - -; 6335 : int z = 0; - - 0046f c7 85 64 06 00 - 00 00 00 00 00 mov DWORD PTR z$8[rbp], 0 - -; 6336 : if (psize == 0 || psize > 256) { - - 00479 83 bd e4 04 00 - 00 00 cmp DWORD PTR psize$[rbp], 0 - 00480 74 0c je SHORT $LN57@stbi__bmp_ - 00482 81 bd e4 04 00 - 00 00 01 00 00 cmp DWORD PTR psize$[rbp], 256 ; 00000100H - 0048c 7e 3f jle SHORT $LN56@stbi__bmp_ -$LN57@stbi__bmp_: - -; 6337 : STBI_FREE(out); - - 0048e 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] - 00492 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00498 90 npad 1 - -; 6338 : return stbi__errpuc("invalid", "Corrupt BMP"); - - 00499 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07MALOAKCI@invalid@ - 004a0 e8 00 00 00 00 call stbi__err - 004a5 85 c0 test eax, eax - 004a7 74 0d je SHORT $LN113@stbi__bmp_ - 004a9 48 c7 85 f8 0c - 00 00 00 00 00 - 00 mov QWORD PTR tv223[rbp], 0 - 004b4 eb 0b jmp SHORT $LN114@stbi__bmp_ -$LN113@stbi__bmp_: - 004b6 48 c7 85 f8 0c - 00 00 00 00 00 - 00 mov QWORD PTR tv223[rbp], 0 -$LN114@stbi__bmp_: - 004c1 48 8b 85 f8 0c - 00 00 mov rax, QWORD PTR tv223[rbp] - 004c8 e9 45 0e 00 00 jmp $LN1@stbi__bmp_ -$LN56@stbi__bmp_: - -; 6339 : } -; 6340 : for (i = 0; i < psize; ++i) { - - 004cd c7 85 04 05 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 004d7 eb 0e jmp SHORT $LN4@stbi__bmp_ -$LN2@stbi__bmp_: - 004d9 8b 85 04 05 00 - 00 mov eax, DWORD PTR i$[rbp] - 004df ff c0 inc eax - 004e1 89 85 04 05 00 - 00 mov DWORD PTR i$[rbp], eax -$LN4@stbi__bmp_: - 004e7 8b 85 e4 04 00 - 00 mov eax, DWORD PTR psize$[rbp] - 004ed 39 85 04 05 00 - 00 cmp DWORD PTR i$[rbp], eax - 004f3 0f 8d ac 00 00 - 00 jge $LN3@stbi__bmp_ - -; 6341 : pal[i][2] = stbi__get8(s); - - 004f9 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 00500 e8 00 00 00 00 call stbi__get8 - 00505 48 63 8d 04 05 - 00 00 movsxd rcx, DWORD PTR i$[rbp] - 0050c 48 8d 8c 8d d0 - 00 00 00 lea rcx, QWORD PTR pal$[rbp+rcx*4] - 00514 ba 01 00 00 00 mov edx, 1 - 00519 48 6b d2 02 imul rdx, rdx, 2 - 0051d 88 04 11 mov BYTE PTR [rcx+rdx], al - -; 6342 : pal[i][1] = stbi__get8(s); - - 00520 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 00527 e8 00 00 00 00 call stbi__get8 - 0052c 48 63 8d 04 05 - 00 00 movsxd rcx, DWORD PTR i$[rbp] - 00533 48 8d 8c 8d d0 - 00 00 00 lea rcx, QWORD PTR pal$[rbp+rcx*4] - 0053b ba 01 00 00 00 mov edx, 1 - 00540 48 6b d2 01 imul rdx, rdx, 1 - 00544 88 04 11 mov BYTE PTR [rcx+rdx], al - -; 6343 : pal[i][0] = stbi__get8(s); - - 00547 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 0054e e8 00 00 00 00 call stbi__get8 - 00553 48 63 8d 04 05 - 00 00 movsxd rcx, DWORD PTR i$[rbp] - 0055a 48 8d 8c 8d d0 - 00 00 00 lea rcx, QWORD PTR pal$[rbp+rcx*4] - 00562 ba 01 00 00 00 mov edx, 1 - 00567 48 6b d2 00 imul rdx, rdx, 0 - 0056b 88 04 11 mov BYTE PTR [rcx+rdx], al - -; 6344 : if (info.hsz != 12) - - 0056e 83 bd d0 05 00 - 00 0c cmp DWORD PTR info$[rbp+8], 12 - 00575 74 0d je SHORT $LN58@stbi__bmp_ - -; 6345 : stbi__get8(s); - - 00577 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 0057e e8 00 00 00 00 call stbi__get8 - 00583 90 npad 1 -$LN58@stbi__bmp_: - -; 6346 : pal[i][3] = 255; - - 00584 48 63 85 04 05 - 00 00 movsxd rax, DWORD PTR i$[rbp] - 0058b 48 8d 84 85 d0 - 00 00 00 lea rax, QWORD PTR pal$[rbp+rax*4] - 00593 b9 01 00 00 00 mov ecx, 1 - 00598 48 6b c9 03 imul rcx, rcx, 3 - 0059c c6 04 08 ff mov BYTE PTR [rax+rcx], 255 ; 000000ffH - -; 6347 : } - - 005a0 e9 34 ff ff ff jmp $LN2@stbi__bmp_ -$LN3@stbi__bmp_: - -; 6348 : stbi__skip(s, info.offset - info.extra_read - info.hsz - - - 005a5 83 bd d0 05 00 - 00 0c cmp DWORD PTR info$[rbp+8], 12 - 005ac 75 0c jne SHORT $LN115@stbi__bmp_ - 005ae c7 85 f4 0c 00 - 00 03 00 00 00 mov DWORD PTR tv257[rbp], 3 - 005b8 eb 0a jmp SHORT $LN116@stbi__bmp_ -$LN115@stbi__bmp_: - 005ba c7 85 f4 0c 00 - 00 04 00 00 00 mov DWORD PTR tv257[rbp], 4 -$LN116@stbi__bmp_: - 005c4 8b 85 e8 05 00 - 00 mov eax, DWORD PTR info$[rbp+32] - 005ca 8b 8d cc 05 00 - 00 mov ecx, DWORD PTR info$[rbp+4] - 005d0 2b c8 sub ecx, eax - 005d2 8b c1 mov eax, ecx - 005d4 2b 85 d0 05 00 - 00 sub eax, DWORD PTR info$[rbp+8] - 005da 8b 8d e4 04 00 - 00 mov ecx, DWORD PTR psize$[rbp] - 005e0 0f af 8d f4 0c - 00 00 imul ecx, DWORD PTR tv257[rbp] - 005e7 2b c1 sub eax, ecx - 005e9 8b d0 mov edx, eax - 005eb 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 005f2 e8 00 00 00 00 call stbi__skip - 005f7 90 npad 1 - -; 6349 : psize * (info.hsz == 12 ? 3 : 4)); -; 6350 : if (info.bpp == 1) - - 005f8 83 bd c8 05 00 - 00 01 cmp DWORD PTR info$[rbp], 1 - 005ff 75 17 jne SHORT $LN59@stbi__bmp_ - -; 6351 : width = (s->img_x + 7) >> 3; - - 00601 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 00608 8b 00 mov eax, DWORD PTR [rax] - 0060a 83 c0 07 add eax, 7 - 0060d c1 e8 03 shr eax, 3 - 00610 89 85 44 05 00 - 00 mov DWORD PTR width$[rbp], eax - 00616 eb 77 jmp SHORT $LN60@stbi__bmp_ -$LN59@stbi__bmp_: - -; 6352 : else if (info.bpp == 4) - - 00618 83 bd c8 05 00 - 00 04 cmp DWORD PTR info$[rbp], 4 - 0061f 75 15 jne SHORT $LN61@stbi__bmp_ - -; 6353 : width = (s->img_x + 1) >> 1; - - 00621 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 00628 8b 00 mov eax, DWORD PTR [rax] - 0062a ff c0 inc eax - 0062c d1 e8 shr eax, 1 - 0062e 89 85 44 05 00 - 00 mov DWORD PTR width$[rbp], eax - 00634 eb 59 jmp SHORT $LN62@stbi__bmp_ -$LN61@stbi__bmp_: - -; 6354 : else if (info.bpp == 8) - - 00636 83 bd c8 05 00 - 00 08 cmp DWORD PTR info$[rbp], 8 - 0063d 75 11 jne SHORT $LN63@stbi__bmp_ - -; 6355 : width = s->img_x; - - 0063f 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 00646 8b 00 mov eax, DWORD PTR [rax] - 00648 89 85 44 05 00 - 00 mov DWORD PTR width$[rbp], eax - 0064e eb 3f jmp SHORT $LN64@stbi__bmp_ -$LN63@stbi__bmp_: - -; 6356 : else { -; 6357 : STBI_FREE(out); - - 00650 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] - 00654 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 0065a 90 npad 1 - -; 6358 : return stbi__errpuc("bad bpp", "Corrupt BMP"); - - 0065b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07JNJHIMGH@bad?5bpp@ - 00662 e8 00 00 00 00 call stbi__err - 00667 85 c0 test eax, eax - 00669 74 0d je SHORT $LN117@stbi__bmp_ - 0066b 48 c7 85 f8 0c - 00 00 00 00 00 - 00 mov QWORD PTR tv276[rbp], 0 - 00676 eb 0b jmp SHORT $LN118@stbi__bmp_ -$LN117@stbi__bmp_: - 00678 48 c7 85 f8 0c - 00 00 00 00 00 - 00 mov QWORD PTR tv276[rbp], 0 -$LN118@stbi__bmp_: - 00683 48 8b 85 f8 0c - 00 00 mov rax, QWORD PTR tv276[rbp] - 0068a e9 83 0c 00 00 jmp $LN1@stbi__bmp_ -$LN64@stbi__bmp_: -$LN62@stbi__bmp_: -$LN60@stbi__bmp_: - -; 6359 : } -; 6360 : pad = (-width) & 3; - - 0068f 8b 85 44 05 00 - 00 mov eax, DWORD PTR width$[rbp] - 00695 f7 d8 neg eax - 00697 83 e0 03 and eax, 3 - 0069a 89 85 84 05 00 - 00 mov DWORD PTR pad$[rbp], eax - -; 6361 : if (info.bpp == 1) { - - 006a0 83 bd c8 05 00 - 00 01 cmp DWORD PTR info$[rbp], 1 - 006a7 0f 85 d6 01 00 - 00 jne $LN65@stbi__bmp_ - -; 6362 : for (j = 0; j < (int)s->img_y; ++j) { - - 006ad c7 85 24 05 00 - 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 - 006b7 eb 0e jmp SHORT $LN7@stbi__bmp_ -$LN5@stbi__bmp_: - 006b9 8b 85 24 05 00 - 00 mov eax, DWORD PTR j$[rbp] - 006bf ff c0 inc eax - 006c1 89 85 24 05 00 - 00 mov DWORD PTR j$[rbp], eax -$LN7@stbi__bmp_: - 006c7 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 006ce 8b 40 04 mov eax, DWORD PTR [rax+4] - 006d1 39 85 24 05 00 - 00 cmp DWORD PTR j$[rbp], eax - 006d7 0f 8d a1 01 00 - 00 jge $LN6@stbi__bmp_ - -; 6363 : int bit_offset = 7, v = stbi__get8(s); - - 006dd c7 85 84 06 00 - 00 07 00 00 00 mov DWORD PTR bit_offset$9[rbp], 7 - 006e7 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 006ee e8 00 00 00 00 call stbi__get8 - 006f3 0f b6 c0 movzx eax, al - 006f6 89 85 a4 06 00 - 00 mov DWORD PTR v$10[rbp], eax - -; 6364 : for (i = 0; i < (int)s->img_x; ++i) { - - 006fc c7 85 04 05 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 00706 eb 0e jmp SHORT $LN10@stbi__bmp_ -$LN8@stbi__bmp_: - 00708 8b 85 04 05 00 - 00 mov eax, DWORD PTR i$[rbp] - 0070e ff c0 inc eax - 00710 89 85 04 05 00 - 00 mov DWORD PTR i$[rbp], eax -$LN10@stbi__bmp_: - 00716 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 0071d 8b 00 mov eax, DWORD PTR [rax] - 0071f 39 85 04 05 00 - 00 cmp DWORD PTR i$[rbp], eax - 00725 0f 8d 3b 01 00 - 00 jge $LN9@stbi__bmp_ - -; 6365 : int color = (v >> bit_offset) & 0x1; - - 0072b 8b 85 84 06 00 - 00 mov eax, DWORD PTR bit_offset$9[rbp] - 00731 0f b6 c8 movzx ecx, al - 00734 8b 85 a4 06 00 - 00 mov eax, DWORD PTR v$10[rbp] - 0073a d3 f8 sar eax, cl - 0073c 83 e0 01 and eax, 1 - 0073f 89 85 c4 06 00 - 00 mov DWORD PTR color$11[rbp], eax - -; 6366 : out[z++] = pal[color][0]; - - 00745 48 63 85 c4 06 - 00 00 movsxd rax, DWORD PTR color$11[rbp] - 0074c 48 8d 84 85 d0 - 00 00 00 lea rax, QWORD PTR pal$[rbp+rax*4] - 00754 b9 01 00 00 00 mov ecx, 1 - 00759 48 6b c9 00 imul rcx, rcx, 0 - 0075d 48 63 95 64 06 - 00 00 movsxd rdx, DWORD PTR z$8[rbp] - 00764 4c 8b 45 08 mov r8, QWORD PTR out$[rbp] - 00768 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] - 0076c 41 88 04 10 mov BYTE PTR [r8+rdx], al - 00770 8b 85 64 06 00 - 00 mov eax, DWORD PTR z$8[rbp] - 00776 ff c0 inc eax - 00778 89 85 64 06 00 - 00 mov DWORD PTR z$8[rbp], eax - -; 6367 : out[z++] = pal[color][1]; - - 0077e 48 63 85 c4 06 - 00 00 movsxd rax, DWORD PTR color$11[rbp] - 00785 48 8d 84 85 d0 - 00 00 00 lea rax, QWORD PTR pal$[rbp+rax*4] - 0078d b9 01 00 00 00 mov ecx, 1 - 00792 48 6b c9 01 imul rcx, rcx, 1 - 00796 48 63 95 64 06 - 00 00 movsxd rdx, DWORD PTR z$8[rbp] - 0079d 4c 8b 45 08 mov r8, QWORD PTR out$[rbp] - 007a1 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] - 007a5 41 88 04 10 mov BYTE PTR [r8+rdx], al - 007a9 8b 85 64 06 00 - 00 mov eax, DWORD PTR z$8[rbp] - 007af ff c0 inc eax - 007b1 89 85 64 06 00 - 00 mov DWORD PTR z$8[rbp], eax - -; 6368 : out[z++] = pal[color][2]; - - 007b7 48 63 85 c4 06 - 00 00 movsxd rax, DWORD PTR color$11[rbp] - 007be 48 8d 84 85 d0 - 00 00 00 lea rax, QWORD PTR pal$[rbp+rax*4] - 007c6 b9 01 00 00 00 mov ecx, 1 - 007cb 48 6b c9 02 imul rcx, rcx, 2 - 007cf 48 63 95 64 06 - 00 00 movsxd rdx, DWORD PTR z$8[rbp] - 007d6 4c 8b 45 08 mov r8, QWORD PTR out$[rbp] - 007da 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] - 007de 41 88 04 10 mov BYTE PTR [r8+rdx], al - 007e2 8b 85 64 06 00 - 00 mov eax, DWORD PTR z$8[rbp] - 007e8 ff c0 inc eax - 007ea 89 85 64 06 00 - 00 mov DWORD PTR z$8[rbp], eax - -; 6369 : if (target == 4) - - 007f0 83 bd a4 05 00 - 00 04 cmp DWORD PTR target$[rbp], 4 - 007f7 75 1d jne SHORT $LN67@stbi__bmp_ - -; 6370 : out[z++] = 255; - - 007f9 48 63 85 64 06 - 00 00 movsxd rax, DWORD PTR z$8[rbp] - 00800 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] - 00804 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH - 00808 8b 85 64 06 00 - 00 mov eax, DWORD PTR z$8[rbp] - 0080e ff c0 inc eax - 00810 89 85 64 06 00 - 00 mov DWORD PTR z$8[rbp], eax -$LN67@stbi__bmp_: - -; 6371 : if (i + 1 == (int)s->img_x) - - 00816 8b 85 04 05 00 - 00 mov eax, DWORD PTR i$[rbp] - 0081c ff c0 inc eax - 0081e 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 00825 3b 01 cmp eax, DWORD PTR [rcx] - 00827 75 02 jne SHORT $LN68@stbi__bmp_ - -; 6372 : break; - - 00829 eb 3b jmp SHORT $LN9@stbi__bmp_ -$LN68@stbi__bmp_: - -; 6373 : if ((--bit_offset) < 0) { - - 0082b 8b 85 84 06 00 - 00 mov eax, DWORD PTR bit_offset$9[rbp] - 00831 ff c8 dec eax - 00833 89 85 84 06 00 - 00 mov DWORD PTR bit_offset$9[rbp], eax - 00839 83 bd 84 06 00 - 00 00 cmp DWORD PTR bit_offset$9[rbp], 0 - 00840 7d 1f jge SHORT $LN69@stbi__bmp_ - -; 6374 : bit_offset = 7; - - 00842 c7 85 84 06 00 - 00 07 00 00 00 mov DWORD PTR bit_offset$9[rbp], 7 - -; 6375 : v = stbi__get8(s); - - 0084c 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 00853 e8 00 00 00 00 call stbi__get8 - 00858 0f b6 c0 movzx eax, al - 0085b 89 85 a4 06 00 - 00 mov DWORD PTR v$10[rbp], eax -$LN69@stbi__bmp_: - -; 6376 : } -; 6377 : } - - 00861 e9 a2 fe ff ff jmp $LN8@stbi__bmp_ -$LN9@stbi__bmp_: - -; 6378 : stbi__skip(s, pad); - - 00866 8b 95 84 05 00 - 00 mov edx, DWORD PTR pad$[rbp] - 0086c 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 00873 e8 00 00 00 00 call stbi__skip - 00878 90 npad 1 - -; 6379 : } - - 00879 e9 3b fe ff ff jmp $LN5@stbi__bmp_ -$LN6@stbi__bmp_: - -; 6380 : } else { - - 0087e e9 b5 02 00 00 jmp $LN66@stbi__bmp_ -$LN65@stbi__bmp_: - -; 6381 : for (j = 0; j < (int)s->img_y; ++j) { - - 00883 c7 85 24 05 00 - 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 - 0088d eb 0e jmp SHORT $LN13@stbi__bmp_ -$LN11@stbi__bmp_: - 0088f 8b 85 24 05 00 - 00 mov eax, DWORD PTR j$[rbp] - 00895 ff c0 inc eax - 00897 89 85 24 05 00 - 00 mov DWORD PTR j$[rbp], eax -$LN13@stbi__bmp_: - 0089d 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 008a4 8b 40 04 mov eax, DWORD PTR [rax+4] - 008a7 39 85 24 05 00 - 00 cmp DWORD PTR j$[rbp], eax - 008ad 0f 8d 85 02 00 - 00 jge $LN12@stbi__bmp_ - -; 6382 : for (i = 0; i < (int)s->img_x; i += 2) { - - 008b3 c7 85 04 05 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 008bd eb 0f jmp SHORT $LN16@stbi__bmp_ -$LN14@stbi__bmp_: - 008bf 8b 85 04 05 00 - 00 mov eax, DWORD PTR i$[rbp] - 008c5 83 c0 02 add eax, 2 - 008c8 89 85 04 05 00 - 00 mov DWORD PTR i$[rbp], eax -$LN16@stbi__bmp_: - 008ce 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 008d5 8b 00 mov eax, DWORD PTR [rax] - 008d7 39 85 04 05 00 - 00 cmp DWORD PTR i$[rbp], eax - 008dd 0f 8d 3d 02 00 - 00 jge $LN15@stbi__bmp_ - -; 6383 : int v = stbi__get8(s), v2 = 0; - - 008e3 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 008ea e8 00 00 00 00 call stbi__get8 - 008ef 0f b6 c0 movzx eax, al - 008f2 89 85 e4 06 00 - 00 mov DWORD PTR v$12[rbp], eax - 008f8 c7 85 04 07 00 - 00 00 00 00 00 mov DWORD PTR v2$13[rbp], 0 - -; 6384 : if (info.bpp == 4) { - - 00902 83 bd c8 05 00 - 00 04 cmp DWORD PTR info$[rbp], 4 - 00909 75 1e jne SHORT $LN70@stbi__bmp_ - -; 6385 : v2 = v & 15; - - 0090b 8b 85 e4 06 00 - 00 mov eax, DWORD PTR v$12[rbp] - 00911 83 e0 0f and eax, 15 - 00914 89 85 04 07 00 - 00 mov DWORD PTR v2$13[rbp], eax - -; 6386 : v >>= 4; - - 0091a 8b 85 e4 06 00 - 00 mov eax, DWORD PTR v$12[rbp] - 00920 c1 f8 04 sar eax, 4 - 00923 89 85 e4 06 00 - 00 mov DWORD PTR v$12[rbp], eax -$LN70@stbi__bmp_: - -; 6387 : } -; 6388 : out[z++] = pal[v][0]; - - 00929 48 63 85 e4 06 - 00 00 movsxd rax, DWORD PTR v$12[rbp] - 00930 48 8d 84 85 d0 - 00 00 00 lea rax, QWORD PTR pal$[rbp+rax*4] - 00938 b9 01 00 00 00 mov ecx, 1 - 0093d 48 6b c9 00 imul rcx, rcx, 0 - 00941 48 63 95 64 06 - 00 00 movsxd rdx, DWORD PTR z$8[rbp] - 00948 4c 8b 45 08 mov r8, QWORD PTR out$[rbp] - 0094c 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] - 00950 41 88 04 10 mov BYTE PTR [r8+rdx], al - 00954 8b 85 64 06 00 - 00 mov eax, DWORD PTR z$8[rbp] - 0095a ff c0 inc eax - 0095c 89 85 64 06 00 - 00 mov DWORD PTR z$8[rbp], eax - -; 6389 : out[z++] = pal[v][1]; - - 00962 48 63 85 e4 06 - 00 00 movsxd rax, DWORD PTR v$12[rbp] - 00969 48 8d 84 85 d0 - 00 00 00 lea rax, QWORD PTR pal$[rbp+rax*4] - 00971 b9 01 00 00 00 mov ecx, 1 - 00976 48 6b c9 01 imul rcx, rcx, 1 - 0097a 48 63 95 64 06 - 00 00 movsxd rdx, DWORD PTR z$8[rbp] - 00981 4c 8b 45 08 mov r8, QWORD PTR out$[rbp] - 00985 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] - 00989 41 88 04 10 mov BYTE PTR [r8+rdx], al - 0098d 8b 85 64 06 00 - 00 mov eax, DWORD PTR z$8[rbp] - 00993 ff c0 inc eax - 00995 89 85 64 06 00 - 00 mov DWORD PTR z$8[rbp], eax - -; 6390 : out[z++] = pal[v][2]; - - 0099b 48 63 85 e4 06 - 00 00 movsxd rax, DWORD PTR v$12[rbp] - 009a2 48 8d 84 85 d0 - 00 00 00 lea rax, QWORD PTR pal$[rbp+rax*4] - 009aa b9 01 00 00 00 mov ecx, 1 - 009af 48 6b c9 02 imul rcx, rcx, 2 - 009b3 48 63 95 64 06 - 00 00 movsxd rdx, DWORD PTR z$8[rbp] - 009ba 4c 8b 45 08 mov r8, QWORD PTR out$[rbp] - 009be 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] - 009c2 41 88 04 10 mov BYTE PTR [r8+rdx], al - 009c6 8b 85 64 06 00 - 00 mov eax, DWORD PTR z$8[rbp] - 009cc ff c0 inc eax - 009ce 89 85 64 06 00 - 00 mov DWORD PTR z$8[rbp], eax - -; 6391 : if (target == 4) - - 009d4 83 bd a4 05 00 - 00 04 cmp DWORD PTR target$[rbp], 4 - 009db 75 1d jne SHORT $LN71@stbi__bmp_ - -; 6392 : out[z++] = 255; - - 009dd 48 63 85 64 06 - 00 00 movsxd rax, DWORD PTR z$8[rbp] - 009e4 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] - 009e8 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH - 009ec 8b 85 64 06 00 - 00 mov eax, DWORD PTR z$8[rbp] - 009f2 ff c0 inc eax - 009f4 89 85 64 06 00 - 00 mov DWORD PTR z$8[rbp], eax -$LN71@stbi__bmp_: - -; 6393 : if (i + 1 == (int)s->img_x) - - 009fa 8b 85 04 05 00 - 00 mov eax, DWORD PTR i$[rbp] - 00a00 ff c0 inc eax - 00a02 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 00a09 3b 01 cmp eax, DWORD PTR [rcx] - 00a0b 75 05 jne SHORT $LN72@stbi__bmp_ - -; 6394 : break; - - 00a0d e9 0e 01 00 00 jmp $LN15@stbi__bmp_ -$LN72@stbi__bmp_: - -; 6395 : v = (info.bpp == 8) ? stbi__get8(s) : v2; - - 00a12 83 bd c8 05 00 - 00 08 cmp DWORD PTR info$[rbp], 8 - 00a19 75 17 jne SHORT $LN119@stbi__bmp_ - 00a1b 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 00a22 e8 00 00 00 00 call stbi__get8 - 00a27 0f b6 c0 movzx eax, al - 00a2a 89 85 f4 0c 00 - 00 mov DWORD PTR tv384[rbp], eax - 00a30 eb 0c jmp SHORT $LN120@stbi__bmp_ -$LN119@stbi__bmp_: - 00a32 8b 85 04 07 00 - 00 mov eax, DWORD PTR v2$13[rbp] - 00a38 89 85 f4 0c 00 - 00 mov DWORD PTR tv384[rbp], eax -$LN120@stbi__bmp_: - 00a3e 8b 85 f4 0c 00 - 00 mov eax, DWORD PTR tv384[rbp] - 00a44 89 85 e4 06 00 - 00 mov DWORD PTR v$12[rbp], eax - -; 6396 : out[z++] = pal[v][0]; - - 00a4a 48 63 85 e4 06 - 00 00 movsxd rax, DWORD PTR v$12[rbp] - 00a51 48 8d 84 85 d0 - 00 00 00 lea rax, QWORD PTR pal$[rbp+rax*4] - 00a59 b9 01 00 00 00 mov ecx, 1 - 00a5e 48 6b c9 00 imul rcx, rcx, 0 - 00a62 48 63 95 64 06 - 00 00 movsxd rdx, DWORD PTR z$8[rbp] - 00a69 4c 8b 45 08 mov r8, QWORD PTR out$[rbp] - 00a6d 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] - 00a71 41 88 04 10 mov BYTE PTR [r8+rdx], al - 00a75 8b 85 64 06 00 - 00 mov eax, DWORD PTR z$8[rbp] - 00a7b ff c0 inc eax - 00a7d 89 85 64 06 00 - 00 mov DWORD PTR z$8[rbp], eax - -; 6397 : out[z++] = pal[v][1]; - - 00a83 48 63 85 e4 06 - 00 00 movsxd rax, DWORD PTR v$12[rbp] - 00a8a 48 8d 84 85 d0 - 00 00 00 lea rax, QWORD PTR pal$[rbp+rax*4] - 00a92 b9 01 00 00 00 mov ecx, 1 - 00a97 48 6b c9 01 imul rcx, rcx, 1 - 00a9b 48 63 95 64 06 - 00 00 movsxd rdx, DWORD PTR z$8[rbp] - 00aa2 4c 8b 45 08 mov r8, QWORD PTR out$[rbp] - 00aa6 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] - 00aaa 41 88 04 10 mov BYTE PTR [r8+rdx], al - 00aae 8b 85 64 06 00 - 00 mov eax, DWORD PTR z$8[rbp] - 00ab4 ff c0 inc eax - 00ab6 89 85 64 06 00 - 00 mov DWORD PTR z$8[rbp], eax - -; 6398 : out[z++] = pal[v][2]; - - 00abc 48 63 85 e4 06 - 00 00 movsxd rax, DWORD PTR v$12[rbp] - 00ac3 48 8d 84 85 d0 - 00 00 00 lea rax, QWORD PTR pal$[rbp+rax*4] - 00acb b9 01 00 00 00 mov ecx, 1 - 00ad0 48 6b c9 02 imul rcx, rcx, 2 - 00ad4 48 63 95 64 06 - 00 00 movsxd rdx, DWORD PTR z$8[rbp] - 00adb 4c 8b 45 08 mov r8, QWORD PTR out$[rbp] - 00adf 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] - 00ae3 41 88 04 10 mov BYTE PTR [r8+rdx], al - 00ae7 8b 85 64 06 00 - 00 mov eax, DWORD PTR z$8[rbp] - 00aed ff c0 inc eax - 00aef 89 85 64 06 00 - 00 mov DWORD PTR z$8[rbp], eax - -; 6399 : if (target == 4) - - 00af5 83 bd a4 05 00 - 00 04 cmp DWORD PTR target$[rbp], 4 - 00afc 75 1d jne SHORT $LN73@stbi__bmp_ - -; 6400 : out[z++] = 255; - - 00afe 48 63 85 64 06 - 00 00 movsxd rax, DWORD PTR z$8[rbp] - 00b05 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] - 00b09 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH - 00b0d 8b 85 64 06 00 - 00 mov eax, DWORD PTR z$8[rbp] - 00b13 ff c0 inc eax - 00b15 89 85 64 06 00 - 00 mov DWORD PTR z$8[rbp], eax -$LN73@stbi__bmp_: - -; 6401 : } - - 00b1b e9 9f fd ff ff jmp $LN14@stbi__bmp_ -$LN15@stbi__bmp_: - -; 6402 : stbi__skip(s, pad); - - 00b20 8b 95 84 05 00 - 00 mov edx, DWORD PTR pad$[rbp] - 00b26 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 00b2d e8 00 00 00 00 call stbi__skip - 00b32 90 npad 1 - -; 6403 : } - - 00b33 e9 57 fd ff ff jmp $LN11@stbi__bmp_ -$LN12@stbi__bmp_: -$LN66@stbi__bmp_: - -; 6404 : } -; 6405 : } else { - - 00b38 e9 af 05 00 00 jmp $LN55@stbi__bmp_ -$LN54@stbi__bmp_: - -; 6406 : int rshift = 0, gshift = 0, bshift = 0, ashift = 0, rcount = 0, gcount = 0, - - 00b3d c7 85 24 07 00 - 00 00 00 00 00 mov DWORD PTR rshift$14[rbp], 0 - 00b47 c7 85 44 07 00 - 00 00 00 00 00 mov DWORD PTR gshift$15[rbp], 0 - 00b51 c7 85 64 07 00 - 00 00 00 00 00 mov DWORD PTR bshift$16[rbp], 0 - 00b5b c7 85 84 07 00 - 00 00 00 00 00 mov DWORD PTR ashift$17[rbp], 0 - 00b65 c7 85 a4 07 00 - 00 00 00 00 00 mov DWORD PTR rcount$18[rbp], 0 - 00b6f c7 85 c4 07 00 - 00 00 00 00 00 mov DWORD PTR gcount$19[rbp], 0 - -; 6407 : bcount = 0, acount = 0; - - 00b79 c7 85 e4 07 00 - 00 00 00 00 00 mov DWORD PTR bcount$20[rbp], 0 - 00b83 c7 85 04 08 00 - 00 00 00 00 00 mov DWORD PTR acount$21[rbp], 0 - -; 6408 : int z = 0; - - 00b8d c7 85 24 08 00 - 00 00 00 00 00 mov DWORD PTR z$22[rbp], 0 - -; 6409 : int easy = 0; - - 00b97 c7 85 44 08 00 - 00 00 00 00 00 mov DWORD PTR easy$23[rbp], 0 - -; 6410 : stbi__skip(s, info.offset - info.extra_read - info.hsz); - - 00ba1 8b 85 e8 05 00 - 00 mov eax, DWORD PTR info$[rbp+32] - 00ba7 8b 8d cc 05 00 - 00 mov ecx, DWORD PTR info$[rbp+4] - 00bad 2b c8 sub ecx, eax - 00baf 8b c1 mov eax, ecx - 00bb1 2b 85 d0 05 00 - 00 sub eax, DWORD PTR info$[rbp+8] - 00bb7 8b d0 mov edx, eax - 00bb9 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 00bc0 e8 00 00 00 00 call stbi__skip - 00bc5 90 npad 1 - -; 6411 : if (info.bpp == 24) - - 00bc6 83 bd c8 05 00 - 00 18 cmp DWORD PTR info$[rbp], 24 - 00bcd 75 12 jne SHORT $LN74@stbi__bmp_ - -; 6412 : width = 3 * s->img_x; - - 00bcf 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 00bd6 6b 00 03 imul eax, DWORD PTR [rax], 3 - 00bd9 89 85 44 05 00 - 00 mov DWORD PTR width$[rbp], eax - 00bdf eb 26 jmp SHORT $LN75@stbi__bmp_ -$LN74@stbi__bmp_: - -; 6413 : else if (info.bpp == 16) - - 00be1 83 bd c8 05 00 - 00 10 cmp DWORD PTR info$[rbp], 16 - 00be8 75 13 jne SHORT $LN76@stbi__bmp_ - -; 6414 : width = 2 * s->img_x; - - 00bea 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 00bf1 8b 00 mov eax, DWORD PTR [rax] - 00bf3 d1 e0 shl eax, 1 - 00bf5 89 85 44 05 00 - 00 mov DWORD PTR width$[rbp], eax - 00bfb eb 0a jmp SHORT $LN77@stbi__bmp_ -$LN76@stbi__bmp_: - -; 6415 : else /* bpp = 32 and pad = 0 */ -; 6416 : width = 0; - - 00bfd c7 85 44 05 00 - 00 00 00 00 00 mov DWORD PTR width$[rbp], 0 -$LN77@stbi__bmp_: -$LN75@stbi__bmp_: - -; 6417 : pad = (-width) & 3; - - 00c07 8b 85 44 05 00 - 00 mov eax, DWORD PTR width$[rbp] - 00c0d f7 d8 neg eax - 00c0f 83 e0 03 and eax, 3 - 00c12 89 85 84 05 00 - 00 mov DWORD PTR pad$[rbp], eax - -; 6418 : if (info.bpp == 24) { - - 00c18 83 bd c8 05 00 - 00 18 cmp DWORD PTR info$[rbp], 24 - 00c1f 75 0c jne SHORT $LN78@stbi__bmp_ - -; 6419 : easy = 1; - - 00c21 c7 85 44 08 00 - 00 01 00 00 00 mov DWORD PTR easy$23[rbp], 1 - 00c2b eb 3a jmp SHORT $LN79@stbi__bmp_ -$LN78@stbi__bmp_: - -; 6420 : } else if (info.bpp == 32) { - - 00c2d 83 bd c8 05 00 - 00 20 cmp DWORD PTR info$[rbp], 32 ; 00000020H - 00c34 75 31 jne SHORT $LN80@stbi__bmp_ - -; 6421 : if (mb == 0xff && mg == 0xff00 && mr == 0x00ff0000 && ma == 0xff000000) - - 00c36 81 7d 64 ff 00 - 00 00 cmp DWORD PTR mb$[rbp], 255 ; 000000ffH - 00c3d 75 28 jne SHORT $LN81@stbi__bmp_ - 00c3f 81 7d 44 00 ff - 00 00 cmp DWORD PTR mg$[rbp], 65280 ; 0000ff00H - 00c46 75 1f jne SHORT $LN81@stbi__bmp_ - 00c48 81 7d 24 00 00 - ff 00 cmp DWORD PTR mr$[rbp], 16711680 ; 00ff0000H - 00c4f 75 16 jne SHORT $LN81@stbi__bmp_ - 00c51 81 bd 84 00 00 - 00 00 00 00 ff cmp DWORD PTR ma$[rbp], -16777216 ; ff000000H - 00c5b 75 0a jne SHORT $LN81@stbi__bmp_ - -; 6422 : easy = 2; - - 00c5d c7 85 44 08 00 - 00 02 00 00 00 mov DWORD PTR easy$23[rbp], 2 -$LN81@stbi__bmp_: -$LN80@stbi__bmp_: -$LN79@stbi__bmp_: - -; 6423 : } -; 6424 : if (!easy) { - - 00c67 83 bd 44 08 00 - 00 00 cmp DWORD PTR easy$23[rbp], 0 - 00c6e 0f 85 36 01 00 - 00 jne $LN82@stbi__bmp_ - -; 6425 : if (!mr || !mg || !mb) { - - 00c74 83 7d 24 00 cmp DWORD PTR mr$[rbp], 0 - 00c78 74 0c je SHORT $LN84@stbi__bmp_ - 00c7a 83 7d 44 00 cmp DWORD PTR mg$[rbp], 0 - 00c7e 74 06 je SHORT $LN84@stbi__bmp_ - 00c80 83 7d 64 00 cmp DWORD PTR mb$[rbp], 0 - 00c84 75 3f jne SHORT $LN83@stbi__bmp_ -$LN84@stbi__bmp_: - -; 6426 : STBI_FREE(out); - - 00c86 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] - 00c8a ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00c90 90 npad 1 - -; 6427 : return stbi__errpuc("bad masks", "Corrupt BMP"); - - 00c91 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09DAEBACAB@bad?5masks@ - 00c98 e8 00 00 00 00 call stbi__err - 00c9d 85 c0 test eax, eax - 00c9f 74 0d je SHORT $LN121@stbi__bmp_ - 00ca1 48 c7 85 f8 0c - 00 00 00 00 00 - 00 mov QWORD PTR tv445[rbp], 0 - 00cac eb 0b jmp SHORT $LN122@stbi__bmp_ -$LN121@stbi__bmp_: - 00cae 48 c7 85 f8 0c - 00 00 00 00 00 - 00 mov QWORD PTR tv445[rbp], 0 -$LN122@stbi__bmp_: - 00cb9 48 8b 85 f8 0c - 00 00 mov rax, QWORD PTR tv445[rbp] - 00cc0 e9 4d 06 00 00 jmp $LN1@stbi__bmp_ -$LN83@stbi__bmp_: - -; 6428 : } -; 6429 : // right shift amt to put high bit in position #7 -; 6430 : rshift = stbi__high_bit(mr) - 7; - - 00cc5 8b 4d 24 mov ecx, DWORD PTR mr$[rbp] - 00cc8 e8 00 00 00 00 call stbi__high_bit - 00ccd 83 e8 07 sub eax, 7 - 00cd0 89 85 24 07 00 - 00 mov DWORD PTR rshift$14[rbp], eax - -; 6431 : rcount = stbi__bitcount(mr); - - 00cd6 8b 4d 24 mov ecx, DWORD PTR mr$[rbp] - 00cd9 e8 00 00 00 00 call stbi__bitcount - 00cde 89 85 a4 07 00 - 00 mov DWORD PTR rcount$18[rbp], eax - -; 6432 : gshift = stbi__high_bit(mg) - 7; - - 00ce4 8b 4d 44 mov ecx, DWORD PTR mg$[rbp] - 00ce7 e8 00 00 00 00 call stbi__high_bit - 00cec 83 e8 07 sub eax, 7 - 00cef 89 85 44 07 00 - 00 mov DWORD PTR gshift$15[rbp], eax - -; 6433 : gcount = stbi__bitcount(mg); - - 00cf5 8b 4d 44 mov ecx, DWORD PTR mg$[rbp] - 00cf8 e8 00 00 00 00 call stbi__bitcount - 00cfd 89 85 c4 07 00 - 00 mov DWORD PTR gcount$19[rbp], eax - -; 6434 : bshift = stbi__high_bit(mb) - 7; - - 00d03 8b 4d 64 mov ecx, DWORD PTR mb$[rbp] - 00d06 e8 00 00 00 00 call stbi__high_bit - 00d0b 83 e8 07 sub eax, 7 - 00d0e 89 85 64 07 00 - 00 mov DWORD PTR bshift$16[rbp], eax - -; 6435 : bcount = stbi__bitcount(mb); - - 00d14 8b 4d 64 mov ecx, DWORD PTR mb$[rbp] - 00d17 e8 00 00 00 00 call stbi__bitcount - 00d1c 89 85 e4 07 00 - 00 mov DWORD PTR bcount$20[rbp], eax - -; 6436 : ashift = stbi__high_bit(ma) - 7; - - 00d22 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR ma$[rbp] - 00d28 e8 00 00 00 00 call stbi__high_bit - 00d2d 83 e8 07 sub eax, 7 - 00d30 89 85 84 07 00 - 00 mov DWORD PTR ashift$17[rbp], eax - -; 6437 : acount = stbi__bitcount(ma); - - 00d36 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR ma$[rbp] - 00d3c e8 00 00 00 00 call stbi__bitcount - 00d41 89 85 04 08 00 - 00 mov DWORD PTR acount$21[rbp], eax - -; 6438 : if (rcount > 8 || gcount > 8 || bcount > 8 || acount > 8) { - - 00d47 83 bd a4 07 00 - 00 08 cmp DWORD PTR rcount$18[rbp], 8 - 00d4e 7f 1b jg SHORT $LN86@stbi__bmp_ - 00d50 83 bd c4 07 00 - 00 08 cmp DWORD PTR gcount$19[rbp], 8 - 00d57 7f 12 jg SHORT $LN86@stbi__bmp_ - 00d59 83 bd e4 07 00 - 00 08 cmp DWORD PTR bcount$20[rbp], 8 - 00d60 7f 09 jg SHORT $LN86@stbi__bmp_ - 00d62 83 bd 04 08 00 - 00 08 cmp DWORD PTR acount$21[rbp], 8 - 00d69 7e 3f jle SHORT $LN85@stbi__bmp_ -$LN86@stbi__bmp_: - -; 6439 : STBI_FREE(out); - - 00d6b 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] - 00d6f ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00d75 90 npad 1 - -; 6440 : return stbi__errpuc("bad masks", "Corrupt BMP"); - - 00d76 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_09DAEBACAB@bad?5masks@ - 00d7d e8 00 00 00 00 call stbi__err - 00d82 85 c0 test eax, eax - 00d84 74 0d je SHORT $LN123@stbi__bmp_ - 00d86 48 c7 85 f8 0c - 00 00 00 00 00 - 00 mov QWORD PTR tv474[rbp], 0 - 00d91 eb 0b jmp SHORT $LN124@stbi__bmp_ -$LN123@stbi__bmp_: - 00d93 48 c7 85 f8 0c - 00 00 00 00 00 - 00 mov QWORD PTR tv474[rbp], 0 -$LN124@stbi__bmp_: - 00d9e 48 8b 85 f8 0c - 00 00 mov rax, QWORD PTR tv474[rbp] - 00da5 e9 68 05 00 00 jmp $LN1@stbi__bmp_ -$LN85@stbi__bmp_: -$LN82@stbi__bmp_: - -; 6441 : } -; 6442 : } -; 6443 : for (j = 0; j < (int)s->img_y; ++j) { - - 00daa c7 85 24 05 00 - 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 - 00db4 eb 0e jmp SHORT $LN19@stbi__bmp_ -$LN17@stbi__bmp_: - 00db6 8b 85 24 05 00 - 00 mov eax, DWORD PTR j$[rbp] - 00dbc ff c0 inc eax - 00dbe 89 85 24 05 00 - 00 mov DWORD PTR j$[rbp], eax -$LN19@stbi__bmp_: - 00dc4 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 00dcb 8b 40 04 mov eax, DWORD PTR [rax+4] - 00dce 39 85 24 05 00 - 00 cmp DWORD PTR j$[rbp], eax - 00dd4 0f 8d 12 03 00 - 00 jge $LN18@stbi__bmp_ - -; 6444 : if (easy) { - - 00dda 83 bd 44 08 00 - 00 00 cmp DWORD PTR easy$23[rbp], 0 - 00de1 0f 84 1b 01 00 - 00 je $LN87@stbi__bmp_ - -; 6445 : for (i = 0; i < (int)s->img_x; ++i) { - - 00de7 c7 85 04 05 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 00df1 eb 0e jmp SHORT $LN22@stbi__bmp_ -$LN20@stbi__bmp_: - 00df3 8b 85 04 05 00 - 00 mov eax, DWORD PTR i$[rbp] - 00df9 ff c0 inc eax - 00dfb 89 85 04 05 00 - 00 mov DWORD PTR i$[rbp], eax -$LN22@stbi__bmp_: - 00e01 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 00e08 8b 00 mov eax, DWORD PTR [rax] - 00e0a 39 85 04 05 00 - 00 cmp DWORD PTR i$[rbp], eax - 00e10 0f 8d e7 00 00 - 00 jge $LN21@stbi__bmp_ - -; 6446 : unsigned char a; -; 6447 : out[z + 2] = stbi__get8(s); - - 00e16 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 00e1d e8 00 00 00 00 call stbi__get8 - 00e22 8b 8d 24 08 00 - 00 mov ecx, DWORD PTR z$22[rbp] - 00e28 83 c1 02 add ecx, 2 - 00e2b 48 63 c9 movsxd rcx, ecx - 00e2e 48 8b 55 08 mov rdx, QWORD PTR out$[rbp] - 00e32 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 6448 : out[z + 1] = stbi__get8(s); - - 00e35 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 00e3c e8 00 00 00 00 call stbi__get8 - 00e41 8b 8d 24 08 00 - 00 mov ecx, DWORD PTR z$22[rbp] - 00e47 ff c1 inc ecx - 00e49 48 63 c9 movsxd rcx, ecx - 00e4c 48 8b 55 08 mov rdx, QWORD PTR out$[rbp] - 00e50 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 6449 : out[z + 0] = stbi__get8(s); - - 00e53 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 00e5a e8 00 00 00 00 call stbi__get8 - 00e5f 8b 8d 24 08 00 - 00 mov ecx, DWORD PTR z$22[rbp] - 00e65 48 63 c9 movsxd rcx, ecx - 00e68 48 8b 55 08 mov rdx, QWORD PTR out$[rbp] - 00e6c 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 6450 : z += 3; - - 00e6f 8b 85 24 08 00 - 00 mov eax, DWORD PTR z$22[rbp] - 00e75 83 c0 03 add eax, 3 - 00e78 89 85 24 08 00 - 00 mov DWORD PTR z$22[rbp], eax - -; 6451 : a = (easy == 2 ? stbi__get8(s) : 255); - - 00e7e 83 bd 44 08 00 - 00 02 cmp DWORD PTR easy$23[rbp], 2 - 00e85 75 17 jne SHORT $LN125@stbi__bmp_ - 00e87 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 00e8e e8 00 00 00 00 call stbi__get8 - 00e93 0f b6 c0 movzx eax, al - 00e96 89 85 f4 0c 00 - 00 mov DWORD PTR tv505[rbp], eax - 00e9c eb 0a jmp SHORT $LN126@stbi__bmp_ -$LN125@stbi__bmp_: - 00e9e c7 85 f4 0c 00 - 00 ff 00 00 00 mov DWORD PTR tv505[rbp], 255 ; 000000ffH -$LN126@stbi__bmp_: - 00ea8 0f b6 85 f4 0c - 00 00 movzx eax, BYTE PTR tv505[rbp] - 00eaf 88 85 64 08 00 - 00 mov BYTE PTR a$24[rbp], al - -; 6452 : all_a |= a; - - 00eb5 0f b6 85 64 08 - 00 00 movzx eax, BYTE PTR a$24[rbp] - 00ebc 8b 8d a4 00 00 - 00 mov ecx, DWORD PTR all_a$[rbp] - 00ec2 0b c8 or ecx, eax - 00ec4 8b c1 mov eax, ecx - 00ec6 89 85 a4 00 00 - 00 mov DWORD PTR all_a$[rbp], eax - -; 6453 : if (target == 4) - - 00ecc 83 bd a4 05 00 - 00 04 cmp DWORD PTR target$[rbp], 4 - 00ed3 75 23 jne SHORT $LN89@stbi__bmp_ - -; 6454 : out[z++] = a; - - 00ed5 48 63 85 24 08 - 00 00 movsxd rax, DWORD PTR z$22[rbp] - 00edc 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] - 00ee0 0f b6 95 64 08 - 00 00 movzx edx, BYTE PTR a$24[rbp] - 00ee7 88 14 01 mov BYTE PTR [rcx+rax], dl - 00eea 8b 85 24 08 00 - 00 mov eax, DWORD PTR z$22[rbp] - 00ef0 ff c0 inc eax - 00ef2 89 85 24 08 00 - 00 mov DWORD PTR z$22[rbp], eax -$LN89@stbi__bmp_: - -; 6455 : } - - 00ef8 e9 f6 fe ff ff jmp $LN20@stbi__bmp_ -$LN21@stbi__bmp_: - -; 6456 : } else { - - 00efd e9 d2 01 00 00 jmp $LN88@stbi__bmp_ -$LN87@stbi__bmp_: - -; 6457 : int bpp = info.bpp; - - 00f02 8b 85 c8 05 00 - 00 mov eax, DWORD PTR info$[rbp] - 00f08 89 85 84 08 00 - 00 mov DWORD PTR bpp$25[rbp], eax - -; 6458 : for (i = 0; i < (int)s->img_x; ++i) { - - 00f0e c7 85 04 05 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 00f18 eb 0e jmp SHORT $LN25@stbi__bmp_ -$LN23@stbi__bmp_: - 00f1a 8b 85 04 05 00 - 00 mov eax, DWORD PTR i$[rbp] - 00f20 ff c0 inc eax - 00f22 89 85 04 05 00 - 00 mov DWORD PTR i$[rbp], eax -$LN25@stbi__bmp_: - 00f28 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 00f2f 8b 00 mov eax, DWORD PTR [rax] - 00f31 39 85 04 05 00 - 00 cmp DWORD PTR i$[rbp], eax - 00f37 0f 8d 97 01 00 - 00 jge $LN24@stbi__bmp_ - -; 6459 : stbi__uint32 v = (bpp == 16 ? - - 00f3d 83 bd 84 08 00 - 00 10 cmp DWORD PTR bpp$25[rbp], 16 - 00f44 75 14 jne SHORT $LN127@stbi__bmp_ - 00f46 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 00f4d e8 00 00 00 00 call stbi__get16le - 00f52 89 85 f4 0c 00 - 00 mov DWORD PTR tv522[rbp], eax - 00f58 eb 12 jmp SHORT $LN128@stbi__bmp_ -$LN127@stbi__bmp_: - 00f5a 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 00f61 e8 00 00 00 00 call stbi__get32le - 00f66 89 85 f4 0c 00 - 00 mov DWORD PTR tv522[rbp], eax -$LN128@stbi__bmp_: - 00f6c 8b 85 f4 0c 00 - 00 mov eax, DWORD PTR tv522[rbp] - 00f72 89 85 a4 08 00 - 00 mov DWORD PTR v$26[rbp], eax - -; 6460 : (stbi__uint32)stbi__get16le(s) : -; 6461 : stbi__get32le(s)); -; 6462 : unsigned int a; -; 6463 : out[z++] = STBI__BYTECAST( - - 00f78 8b 45 24 mov eax, DWORD PTR mr$[rbp] - 00f7b 8b 8d a4 08 00 - 00 mov ecx, DWORD PTR v$26[rbp] - 00f81 23 c8 and ecx, eax - 00f83 8b c1 mov eax, ecx - 00f85 44 8b 85 a4 07 - 00 00 mov r8d, DWORD PTR rcount$18[rbp] - 00f8c 8b 95 24 07 00 - 00 mov edx, DWORD PTR rshift$14[rbp] - 00f92 8b c8 mov ecx, eax - 00f94 e8 00 00 00 00 call stbi__shiftsigned - 00f99 25 ff 00 00 00 and eax, 255 ; 000000ffH - 00f9e 48 63 8d 24 08 - 00 00 movsxd rcx, DWORD PTR z$22[rbp] - 00fa5 48 8b 55 08 mov rdx, QWORD PTR out$[rbp] - 00fa9 88 04 0a mov BYTE PTR [rdx+rcx], al - 00fac 8b 85 24 08 00 - 00 mov eax, DWORD PTR z$22[rbp] - 00fb2 ff c0 inc eax - 00fb4 89 85 24 08 00 - 00 mov DWORD PTR z$22[rbp], eax - -; 6464 : stbi__shiftsigned(v & mr, rshift, rcount)); -; 6465 : out[z++] = STBI__BYTECAST( - - 00fba 8b 45 44 mov eax, DWORD PTR mg$[rbp] - 00fbd 8b 8d a4 08 00 - 00 mov ecx, DWORD PTR v$26[rbp] - 00fc3 23 c8 and ecx, eax - 00fc5 8b c1 mov eax, ecx - 00fc7 44 8b 85 c4 07 - 00 00 mov r8d, DWORD PTR gcount$19[rbp] - 00fce 8b 95 44 07 00 - 00 mov edx, DWORD PTR gshift$15[rbp] - 00fd4 8b c8 mov ecx, eax - 00fd6 e8 00 00 00 00 call stbi__shiftsigned - 00fdb 25 ff 00 00 00 and eax, 255 ; 000000ffH - 00fe0 48 63 8d 24 08 - 00 00 movsxd rcx, DWORD PTR z$22[rbp] - 00fe7 48 8b 55 08 mov rdx, QWORD PTR out$[rbp] - 00feb 88 04 0a mov BYTE PTR [rdx+rcx], al - 00fee 8b 85 24 08 00 - 00 mov eax, DWORD PTR z$22[rbp] - 00ff4 ff c0 inc eax - 00ff6 89 85 24 08 00 - 00 mov DWORD PTR z$22[rbp], eax - -; 6466 : stbi__shiftsigned(v & mg, gshift, gcount)); -; 6467 : out[z++] = STBI__BYTECAST( - - 00ffc 8b 45 64 mov eax, DWORD PTR mb$[rbp] - 00fff 8b 8d a4 08 00 - 00 mov ecx, DWORD PTR v$26[rbp] - 01005 23 c8 and ecx, eax - 01007 8b c1 mov eax, ecx - 01009 44 8b 85 e4 07 - 00 00 mov r8d, DWORD PTR bcount$20[rbp] - 01010 8b 95 64 07 00 - 00 mov edx, DWORD PTR bshift$16[rbp] - 01016 8b c8 mov ecx, eax - 01018 e8 00 00 00 00 call stbi__shiftsigned - 0101d 25 ff 00 00 00 and eax, 255 ; 000000ffH - 01022 48 63 8d 24 08 - 00 00 movsxd rcx, DWORD PTR z$22[rbp] - 01029 48 8b 55 08 mov rdx, QWORD PTR out$[rbp] - 0102d 88 04 0a mov BYTE PTR [rdx+rcx], al - 01030 8b 85 24 08 00 - 00 mov eax, DWORD PTR z$22[rbp] - 01036 ff c0 inc eax - 01038 89 85 24 08 00 - 00 mov DWORD PTR z$22[rbp], eax - -; 6468 : stbi__shiftsigned(v & mb, bshift, bcount)); -; 6469 : a = (ma ? stbi__shiftsigned(v & ma, ashift, acount) : 255); - - 0103e 83 bd 84 00 00 - 00 00 cmp DWORD PTR ma$[rbp], 0 - 01045 74 2c je SHORT $LN129@stbi__bmp_ - 01047 8b 85 84 00 00 - 00 mov eax, DWORD PTR ma$[rbp] - 0104d 8b 8d a4 08 00 - 00 mov ecx, DWORD PTR v$26[rbp] - 01053 23 c8 and ecx, eax - 01055 8b c1 mov eax, ecx - 01057 44 8b 85 04 08 - 00 00 mov r8d, DWORD PTR acount$21[rbp] - 0105e 8b 95 84 07 00 - 00 mov edx, DWORD PTR ashift$17[rbp] - 01064 8b c8 mov ecx, eax - 01066 e8 00 00 00 00 call stbi__shiftsigned - 0106b 89 85 f4 0c 00 - 00 mov DWORD PTR tv562[rbp], eax - 01071 eb 0a jmp SHORT $LN130@stbi__bmp_ -$LN129@stbi__bmp_: - 01073 c7 85 f4 0c 00 - 00 ff 00 00 00 mov DWORD PTR tv562[rbp], 255 ; 000000ffH -$LN130@stbi__bmp_: - 0107d 8b 85 f4 0c 00 - 00 mov eax, DWORD PTR tv562[rbp] - 01083 89 85 c4 08 00 - 00 mov DWORD PTR a$27[rbp], eax - -; 6470 : all_a |= a; - - 01089 8b 85 c4 08 00 - 00 mov eax, DWORD PTR a$27[rbp] - 0108f 8b 8d a4 00 00 - 00 mov ecx, DWORD PTR all_a$[rbp] - 01095 0b c8 or ecx, eax - 01097 8b c1 mov eax, ecx - 01099 89 85 a4 00 00 - 00 mov DWORD PTR all_a$[rbp], eax - -; 6471 : if (target == 4) - - 0109f 83 bd a4 05 00 - 00 04 cmp DWORD PTR target$[rbp], 4 - 010a6 75 27 jne SHORT $LN90@stbi__bmp_ - -; 6472 : out[z++] = STBI__BYTECAST(a); - - 010a8 8b 85 c4 08 00 - 00 mov eax, DWORD PTR a$27[rbp] - 010ae 25 ff 00 00 00 and eax, 255 ; 000000ffH - 010b3 48 63 8d 24 08 - 00 00 movsxd rcx, DWORD PTR z$22[rbp] - 010ba 48 8b 55 08 mov rdx, QWORD PTR out$[rbp] - 010be 88 04 0a mov BYTE PTR [rdx+rcx], al - 010c1 8b 85 24 08 00 - 00 mov eax, DWORD PTR z$22[rbp] - 010c7 ff c0 inc eax - 010c9 89 85 24 08 00 - 00 mov DWORD PTR z$22[rbp], eax -$LN90@stbi__bmp_: - -; 6473 : } - - 010cf e9 46 fe ff ff jmp $LN23@stbi__bmp_ -$LN24@stbi__bmp_: -$LN88@stbi__bmp_: - -; 6474 : } -; 6475 : stbi__skip(s, pad); - - 010d4 8b 95 84 05 00 - 00 mov edx, DWORD PTR pad$[rbp] - 010da 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 010e1 e8 00 00 00 00 call stbi__skip - 010e6 90 npad 1 - -; 6476 : } - - 010e7 e9 ca fc ff ff jmp $LN17@stbi__bmp_ -$LN18@stbi__bmp_: -$LN55@stbi__bmp_: - -; 6477 : } -; 6478 : -; 6479 : // if alpha channel is all 0s, replace with all 255s -; 6480 : if (target == 4 && all_a == 0) - - 010ec 83 bd a4 05 00 - 00 04 cmp DWORD PTR target$[rbp], 4 - 010f3 75 53 jne SHORT $LN91@stbi__bmp_ - 010f5 83 bd a4 00 00 - 00 00 cmp DWORD PTR all_a$[rbp], 0 - 010fc 75 4a jne SHORT $LN91@stbi__bmp_ - -; 6481 : for (i = 4 * s->img_x * s->img_y - 1; i >= 0; i -= 4) - - 010fe 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 01105 8b 00 mov eax, DWORD PTR [rax] - 01107 c1 e0 02 shl eax, 2 - 0110a 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 01111 0f af 41 04 imul eax, DWORD PTR [rcx+4] - 01115 ff c8 dec eax - 01117 89 85 04 05 00 - 00 mov DWORD PTR i$[rbp], eax - 0111d eb 0f jmp SHORT $LN28@stbi__bmp_ -$LN26@stbi__bmp_: - 0111f 8b 85 04 05 00 - 00 mov eax, DWORD PTR i$[rbp] - 01125 83 e8 04 sub eax, 4 - 01128 89 85 04 05 00 - 00 mov DWORD PTR i$[rbp], eax -$LN28@stbi__bmp_: - 0112e 83 bd 04 05 00 - 00 00 cmp DWORD PTR i$[rbp], 0 - 01135 7c 11 jl SHORT $LN27@stbi__bmp_ - -; 6482 : out[i] = 255; - - 01137 48 63 85 04 05 - 00 00 movsxd rax, DWORD PTR i$[rbp] - 0113e 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] - 01142 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH - 01146 eb d7 jmp SHORT $LN26@stbi__bmp_ -$LN27@stbi__bmp_: -$LN91@stbi__bmp_: - -; 6483 : -; 6484 : if (flip_vertically) { - - 01148 83 bd 64 05 00 - 00 00 cmp DWORD PTR flip_vertically$[rbp], 0 - 0114f 0f 84 21 01 00 - 00 je $LN92@stbi__bmp_ - -; 6485 : stbi_uc t; -; 6486 : for (j = 0; j < (int)s->img_y >> 1; ++j) { - - 01155 c7 85 24 05 00 - 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 - 0115f eb 0e jmp SHORT $LN31@stbi__bmp_ -$LN29@stbi__bmp_: - 01161 8b 85 24 05 00 - 00 mov eax, DWORD PTR j$[rbp] - 01167 ff c0 inc eax - 01169 89 85 24 05 00 - 00 mov DWORD PTR j$[rbp], eax -$LN31@stbi__bmp_: - 0116f 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 01176 8b 40 04 mov eax, DWORD PTR [rax+4] - 01179 d1 f8 sar eax, 1 - 0117b 39 85 24 05 00 - 00 cmp DWORD PTR j$[rbp], eax - 01181 0f 8d ef 00 00 - 00 jge $LN30@stbi__bmp_ - -; 6487 : stbi_uc *p1 = out + j * s->img_x * target; - - 01187 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 0118e 8b 8d 24 05 00 - 00 mov ecx, DWORD PTR j$[rbp] - 01194 0f af 08 imul ecx, DWORD PTR [rax] - 01197 8b c1 mov eax, ecx - 01199 0f af 85 a4 05 - 00 00 imul eax, DWORD PTR target$[rbp] - 011a0 8b c0 mov eax, eax - 011a2 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] - 011a6 48 03 c8 add rcx, rax - 011a9 48 8b c1 mov rax, rcx - 011ac 48 89 85 08 09 - 00 00 mov QWORD PTR p1$29[rbp], rax - -; 6488 : stbi_uc *p2 = out + (s->img_y - 1 - j) * s->img_x * target; - - 011b3 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 011ba 8b 40 04 mov eax, DWORD PTR [rax+4] - 011bd ff c8 dec eax - 011bf 2b 85 24 05 00 - 00 sub eax, DWORD PTR j$[rbp] - 011c5 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 011cc 0f af 01 imul eax, DWORD PTR [rcx] - 011cf 0f af 85 a4 05 - 00 00 imul eax, DWORD PTR target$[rbp] - 011d6 8b c0 mov eax, eax - 011d8 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] - 011dc 48 03 c8 add rcx, rax - 011df 48 8b c1 mov rax, rcx - 011e2 48 89 85 28 09 - 00 00 mov QWORD PTR p2$30[rbp], rax - -; 6489 : for (i = 0; i < (int)s->img_x * target; ++i) { - - 011e9 c7 85 04 05 00 - 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 - 011f3 eb 0e jmp SHORT $LN34@stbi__bmp_ -$LN32@stbi__bmp_: - 011f5 8b 85 04 05 00 - 00 mov eax, DWORD PTR i$[rbp] - 011fb ff c0 inc eax - 011fd 89 85 04 05 00 - 00 mov DWORD PTR i$[rbp], eax -$LN34@stbi__bmp_: - 01203 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 0120a 8b 00 mov eax, DWORD PTR [rax] - 0120c 0f af 85 a4 05 - 00 00 imul eax, DWORD PTR target$[rbp] - 01213 39 85 04 05 00 - 00 cmp DWORD PTR i$[rbp], eax - 01219 7d 56 jge SHORT $LN33@stbi__bmp_ - -; 6490 : t = p1[i]; - - 0121b 48 63 85 04 05 - 00 00 movsxd rax, DWORD PTR i$[rbp] - 01222 48 8b 8d 08 09 - 00 00 mov rcx, QWORD PTR p1$29[rbp] - 01229 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0122d 88 85 e4 08 00 - 00 mov BYTE PTR t$28[rbp], al - -; 6491 : p1[i] = p2[i]; - - 01233 48 63 85 04 05 - 00 00 movsxd rax, DWORD PTR i$[rbp] - 0123a 48 63 8d 04 05 - 00 00 movsxd rcx, DWORD PTR i$[rbp] - 01241 48 8b 95 08 09 - 00 00 mov rdx, QWORD PTR p1$29[rbp] - 01248 4c 8b 85 28 09 - 00 00 mov r8, QWORD PTR p2$30[rbp] - 0124f 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] - 01254 88 04 0a mov BYTE PTR [rdx+rcx], al - -; 6492 : p2[i] = t; - - 01257 48 63 85 04 05 - 00 00 movsxd rax, DWORD PTR i$[rbp] - 0125e 48 8b 8d 28 09 - 00 00 mov rcx, QWORD PTR p2$30[rbp] - 01265 0f b6 95 e4 08 - 00 00 movzx edx, BYTE PTR t$28[rbp] - 0126c 88 14 01 mov BYTE PTR [rcx+rax], dl - -; 6493 : } - - 0126f eb 84 jmp SHORT $LN32@stbi__bmp_ -$LN33@stbi__bmp_: - -; 6494 : } - - 01271 e9 eb fe ff ff jmp $LN29@stbi__bmp_ -$LN30@stbi__bmp_: -$LN92@stbi__bmp_: - -; 6495 : } -; 6496 : -; 6497 : if (req_comp && req_comp != target) { - - 01276 83 bd 50 0d 00 - 00 00 cmp DWORD PTR req_comp$[rbp], 0 - 0127d 74 4d je SHORT $LN93@stbi__bmp_ - 0127f 8b 85 a4 05 00 - 00 mov eax, DWORD PTR target$[rbp] - 01285 39 85 50 0d 00 - 00 cmp DWORD PTR req_comp$[rbp], eax - 0128b 74 3f je SHORT $LN93@stbi__bmp_ - -; 6498 : out = stbi__convert_format(out, target, req_comp, s->img_x, s->img_y); - - 0128d 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 01294 8b 40 04 mov eax, DWORD PTR [rax+4] - 01297 89 44 24 20 mov DWORD PTR [rsp+32], eax - 0129b 48 8b 85 30 0d - 00 00 mov rax, QWORD PTR s$[rbp] - 012a2 44 8b 08 mov r9d, DWORD PTR [rax] - 012a5 44 8b 85 50 0d - 00 00 mov r8d, DWORD PTR req_comp$[rbp] - 012ac 8b 95 a4 05 00 - 00 mov edx, DWORD PTR target$[rbp] - 012b2 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] - 012b6 e8 00 00 00 00 call stbi__convert_format - 012bb 48 89 45 08 mov QWORD PTR out$[rbp], rax - -; 6499 : if (out == NULL) - - 012bf 48 83 7d 08 00 cmp QWORD PTR out$[rbp], 0 - 012c4 75 06 jne SHORT $LN94@stbi__bmp_ - -; 6500 : return out; // stbi__convert_format frees input on failure - - 012c6 48 8b 45 08 mov rax, QWORD PTR out$[rbp] - 012ca eb 46 jmp SHORT $LN1@stbi__bmp_ -$LN94@stbi__bmp_: -$LN93@stbi__bmp_: - -; 6501 : } -; 6502 : -; 6503 : *x = s->img_x; - - 012cc 48 8b 85 38 0d - 00 00 mov rax, QWORD PTR x$[rbp] - 012d3 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 012da 8b 09 mov ecx, DWORD PTR [rcx] - 012dc 89 08 mov DWORD PTR [rax], ecx - -; 6504 : *y = s->img_y; - - 012de 48 8b 85 40 0d - 00 00 mov rax, QWORD PTR y$[rbp] - 012e5 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 012ec 8b 49 04 mov ecx, DWORD PTR [rcx+4] - 012ef 89 08 mov DWORD PTR [rax], ecx - -; 6505 : if (comp) - - 012f1 48 83 bd 48 0d - 00 00 00 cmp QWORD PTR comp$[rbp], 0 - 012f9 74 13 je SHORT $LN95@stbi__bmp_ - -; 6506 : *comp = s->img_n; - - 012fb 48 8b 85 48 0d - 00 00 mov rax, QWORD PTR comp$[rbp] - 01302 48 8b 8d 30 0d - 00 00 mov rcx, QWORD PTR s$[rbp] - 01309 8b 49 08 mov ecx, DWORD PTR [rcx+8] - 0130c 89 08 mov DWORD PTR [rax], ecx -$LN95@stbi__bmp_: - -; 6507 : return out; - - 0130e 48 8b 45 08 mov rax, QWORD PTR out$[rbp] -$LN1@stbi__bmp_: - -; 6508 : } - - 01312 48 8b f8 mov rdi, rax - 01315 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 01319 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__bmp_load$rtcFrameData - 01320 e8 00 00 00 00 call _RTC_CheckStackVars - 01325 48 8b c7 mov rax, rdi - 01328 48 8b 8d 00 0d - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0132f 48 33 cd xor rcx, rbp - 01332 e8 00 00 00 00 call __security_check_cookie - 01337 48 8d a5 18 0d - 00 00 lea rsp, QWORD PTR [rbp+3352] - 0133e 5f pop rdi - 0133f 5d pop rbp - 01340 c3 ret 0 -stbi__bmp_load ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__bmp_test -_TEXT SEGMENT -r$ = 4 -s$ = 256 -stbi__bmp_test PROC ; COMDAT - -; 6059 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 6060 : int r = stbi__bmp_test_raw(s); - - 00020 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00027 e8 00 00 00 00 call stbi__bmp_test_raw - 0002c 89 45 04 mov DWORD PTR r$[rbp], eax - -; 6061 : stbi__rewind(s); - - 0002f 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00036 e8 00 00 00 00 call stbi__rewind - 0003b 90 npad 1 - -; 6062 : return r; - - 0003c 8b 45 04 mov eax, DWORD PTR r$[rbp] - -; 6063 : } - - 0003f 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00046 5f pop rdi - 00047 5d pop rbp - 00048 c3 ret 0 -stbi__bmp_test ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__png_is16 -_TEXT SEGMENT -p$ = 8 -__$ArrayPad$ = 248 -s$ = 288 -stbi__png_is16 PROC ; COMDAT - -; 6025 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 12 00 00 00 mov ecx, 18 - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0002c 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 f8 00 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00049 90 npad 1 - -; 6026 : stbi__png p; -; 6027 : p.s = s; - - 0004a 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00051 48 89 45 08 mov QWORD PTR p$[rbp], rax - -; 6028 : if (!stbi__png_info_raw(&p, NULL, NULL, NULL)) - - 00055 45 33 c9 xor r9d, r9d - 00058 45 33 c0 xor r8d, r8d - 0005b 33 d2 xor edx, edx - 0005d 48 8d 4d 08 lea rcx, QWORD PTR p$[rbp] - 00061 e8 00 00 00 00 call stbi__png_info_raw - 00066 85 c0 test eax, eax - 00068 75 04 jne SHORT $LN2@stbi__png_ - -; 6029 : return 0; - - 0006a 33 c0 xor eax, eax - 0006c eb 19 jmp SHORT $LN1@stbi__png_ -$LN2@stbi__png_: - -; 6030 : if (p.depth != 16) { - - 0006e 83 7d 28 10 cmp DWORD PTR p$[rbp+32], 16 - 00072 74 0e je SHORT $LN3@stbi__png_ - -; 6031 : stbi__rewind(p.s); - - 00074 48 8b 4d 08 mov rcx, QWORD PTR p$[rbp] - 00078 e8 00 00 00 00 call stbi__rewind - 0007d 90 npad 1 - -; 6032 : return 0; - - 0007e 33 c0 xor eax, eax - 00080 eb 05 jmp SHORT $LN1@stbi__png_ -$LN3@stbi__png_: - -; 6033 : } -; 6034 : return 1; - - 00082 b8 01 00 00 00 mov eax, 1 -$LN1@stbi__png_: - -; 6035 : } - - 00087 48 8b f8 mov rdi, rax - 0008a 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0008e 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__png_is16$rtcFrameData - 00095 e8 00 00 00 00 call _RTC_CheckStackVars - 0009a 48 8b c7 mov rax, rdi - 0009d 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000a4 48 33 cd xor rcx, rbp - 000a7 e8 00 00 00 00 call __security_check_cookie - 000ac 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000b3 5f pop rdi - 000b4 5d pop rbp - 000b5 c3 ret 0 -stbi__png_is16 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__png_info -_TEXT SEGMENT -p$ = 8 -__$ArrayPad$ = 248 -s$ = 288 -x$ = 296 -y$ = 304 -comp$ = 312 -stbi__png_info PROC ; COMDAT - -; 6018 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00027 b9 12 00 00 00 mov ecx, 18 - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 f8 00 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 6019 : stbi__png p; -; 6020 : p.s = s; - - 00059 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00060 48 89 45 08 mov QWORD PTR p$[rbp], rax - -; 6021 : return stbi__png_info_raw(&p, x, y, comp); - - 00064 4c 8b 8d 38 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 0006b 4c 8b 85 30 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 00072 48 8b 95 28 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00079 48 8d 4d 08 lea rcx, QWORD PTR p$[rbp] - 0007d e8 00 00 00 00 call stbi__png_info_raw - -; 6022 : } - - 00082 48 8b f8 mov rdi, rax - 00085 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00089 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__png_info$rtcFrameData - 00090 e8 00 00 00 00 call _RTC_CheckStackVars - 00095 48 8b c7 mov rax, rdi - 00098 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0009f 48 33 cd xor rcx, rbp - 000a2 e8 00 00 00 00 call __security_check_cookie - 000a7 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000ae 5f pop rdi - 000af 5d pop rbp - 000b0 c3 ret 0 -stbi__png_info ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__png_load -_TEXT SEGMENT -p$ = 8 -__$ArrayPad$ = 248 -s$ = 288 -x$ = 296 -y$ = 304 -comp$ = 312 -req_comp$ = 320 -ri$ = 328 -stbi__png_load PROC ; COMDAT - -; 5988 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 38 01 - 00 00 sub rsp, 312 ; 00000138H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00027 b9 12 00 00 00 mov ecx, 18 - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 f8 00 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 5989 : stbi__png p; -; 5990 : p.s = s; - - 00059 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00060 48 89 45 08 mov QWORD PTR p$[rbp], rax - -; 5991 : return stbi__do_png(&p, x, y, comp, req_comp, ri); - - 00064 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR ri$[rbp] - 0006b 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 00070 8b 85 40 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 00076 89 44 24 20 mov DWORD PTR [rsp+32], eax - 0007a 4c 8b 8d 38 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00081 4c 8b 85 30 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 00088 48 8b 95 28 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 0008f 48 8d 4d 08 lea rcx, QWORD PTR p$[rbp] - 00093 e8 00 00 00 00 call stbi__do_png - -; 5992 : } - - 00098 48 8b f8 mov rdi, rax - 0009b 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 0009f 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__png_load$rtcFrameData - 000a6 e8 00 00 00 00 call _RTC_CheckStackVars - 000ab 48 8b c7 mov rax, rdi - 000ae 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000b5 48 33 cd xor rcx, rbp - 000b8 e8 00 00 00 00 call __security_check_cookie - 000bd 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000c4 5f pop rdi - 000c5 5d pop rbp - 000c6 c3 ret 0 -stbi__png_load ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__png_test -_TEXT SEGMENT -r$ = 4 -s$ = 256 -stbi__png_test PROC ; COMDAT - -; 5995 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 5996 : int r; -; 5997 : r = stbi__check_png_header(s); - - 00020 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00027 e8 00 00 00 00 call stbi__check_png_header - 0002c 89 45 04 mov DWORD PTR r$[rbp], eax - -; 5998 : stbi__rewind(s); - - 0002f 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00036 e8 00 00 00 00 call stbi__rewind - 0003b 90 npad 1 - -; 5999 : return r; - - 0003c 8b 45 04 mov eax, DWORD PTR r$[rbp] - -; 6000 : } - - 0003f 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00046 5f pop rdi - 00047 5d pop rbp - 00048 c3 ret 0 -stbi__png_test ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__jpeg_info -_TEXT SEGMENT -result$ = 4 -j$ = 40 -s$ = 288 -x$ = 296 -y$ = 304 -comp$ = 312 -stbi__jpeg_info PROC ; COMDAT - -; 4599 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 4600 : int result; -; 4601 : stbi__jpeg *j = (stbi__jpeg *)(stbi__malloc(sizeof(stbi__jpeg))); - - 0002f b9 88 48 00 00 mov ecx, 18568 ; 00004888H - 00034 e8 00 00 00 00 call stbi__malloc - 00039 48 89 45 28 mov QWORD PTR j$[rbp], rax - -; 4602 : if (!j) - - 0003d 48 83 7d 28 00 cmp QWORD PTR j$[rbp], 0 - 00042 75 0e jne SHORT $LN2@stbi__jpeg - -; 4603 : return stbi__err("outofmem", "Out of memory"); - - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 0004b e8 00 00 00 00 call stbi__err - 00050 eb 4f jmp SHORT $LN1@stbi__jpeg -$LN2@stbi__jpeg: - -; 4604 : memset(j, 0, sizeof(stbi__jpeg)); - - 00052 41 b8 88 48 00 - 00 mov r8d, 18568 ; 00004888H - 00058 33 d2 xor edx, edx - 0005a 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] - 0005e e8 00 00 00 00 call memset - 00063 90 npad 1 - -; 4605 : j->s = s; - - 00064 48 8b 45 28 mov rax, QWORD PTR j$[rbp] - 00068 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0006f 48 89 08 mov QWORD PTR [rax], rcx - -; 4606 : result = stbi__jpeg_info_raw(j, x, y, comp); - - 00072 4c 8b 8d 38 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00079 4c 8b 85 30 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 00080 48 8b 95 28 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00087 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] - 0008b e8 00 00 00 00 call stbi__jpeg_info_raw - 00090 89 45 04 mov DWORD PTR result$[rbp], eax - -; 4607 : STBI_FREE(j); - - 00093 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] - 00097 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 0009d 90 npad 1 - -; 4608 : return result; - - 0009e 8b 45 04 mov eax, DWORD PTR result$[rbp] -$LN1@stbi__jpeg: - -; 4609 : } - - 000a1 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000a8 5f pop rdi - 000a9 5d pop rbp - 000aa c3 ret 0 -stbi__jpeg_info ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__jpeg_load -_TEXT SEGMENT -result$ = 8 -j$ = 40 -tv70 = 248 -s$ = 288 -x$ = 296 -y$ = 304 -comp$ = 312 -req_comp$ = 320 -ri$ = 328 -stbi__jpeg_load PROC ; COMDAT - -; 4554 : { - - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 38 01 - 00 00 sub rsp, 312 ; 00000138H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 4555 : unsigned char *result; -; 4556 : stbi__jpeg *j = (stbi__jpeg *)stbi__malloc(sizeof(stbi__jpeg)); - - 0002f b9 88 48 00 00 mov ecx, 18568 ; 00004888H - 00034 e8 00 00 00 00 call stbi__malloc - 00039 48 89 45 28 mov QWORD PTR j$[rbp], rax - -; 4557 : if (!j) - - 0003d 48 83 7d 28 00 cmp QWORD PTR j$[rbp], 0 - 00042 75 31 jne SHORT $LN2@stbi__jpeg - -; 4558 : return stbi__errpuc("outofmem", "Out of memory"); - - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 0004b e8 00 00 00 00 call stbi__err - 00050 85 c0 test eax, eax - 00052 74 0d je SHORT $LN4@stbi__jpeg - 00054 48 c7 85 f8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv70[rbp], 0 - 0005f eb 0b jmp SHORT $LN5@stbi__jpeg -$LN4@stbi__jpeg: - 00061 48 c7 85 f8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv70[rbp], 0 -$LN5@stbi__jpeg: - 0006c 48 8b 85 f8 00 - 00 00 mov rax, QWORD PTR tv70[rbp] - 00073 eb 65 jmp SHORT $LN1@stbi__jpeg -$LN2@stbi__jpeg: - -; 4559 : memset(j, 0, sizeof(stbi__jpeg)); - - 00075 41 b8 88 48 00 - 00 mov r8d, 18568 ; 00004888H - 0007b 33 d2 xor edx, edx - 0007d 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] - 00081 e8 00 00 00 00 call memset - 00086 90 npad 1 - -; 4560 : STBI_NOTUSED(ri); -; 4561 : j->s = s; - - 00087 48 8b 45 28 mov rax, QWORD PTR j$[rbp] - 0008b 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00092 48 89 08 mov QWORD PTR [rax], rcx - -; 4562 : stbi__setup_jpeg(j); - - 00095 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] - 00099 e8 00 00 00 00 call stbi__setup_jpeg - 0009e 90 npad 1 - -; 4563 : result = load_jpeg_image(j, x, y, comp, req_comp); - - 0009f 8b 85 40 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 000a5 89 44 24 20 mov DWORD PTR [rsp+32], eax - 000a9 4c 8b 8d 38 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 000b0 4c 8b 85 30 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 000b7 48 8b 95 28 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 000be 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] - 000c2 e8 00 00 00 00 call load_jpeg_image - 000c7 48 89 45 08 mov QWORD PTR result$[rbp], rax - -; 4564 : STBI_FREE(j); - - 000cb 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] - 000cf ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 000d5 90 npad 1 - -; 4565 : return result; - - 000d6 48 8b 45 08 mov rax, QWORD PTR result$[rbp] -$LN1@stbi__jpeg: - -; 4566 : } - - 000da 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000e1 5f pop rdi - 000e2 5d pop rbp - 000e3 c3 ret 0 -stbi__jpeg_load ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__jpeg_test -_TEXT SEGMENT -r$ = 4 -j$ = 40 -s$ = 288 -stbi__jpeg_test PROC ; COMDAT - -; 4569 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 4570 : int r; -; 4571 : stbi__jpeg *j = (stbi__jpeg *)stbi__malloc(sizeof(stbi__jpeg)); - - 00020 b9 88 48 00 00 mov ecx, 18568 ; 00004888H - 00025 e8 00 00 00 00 call stbi__malloc - 0002a 48 89 45 28 mov QWORD PTR j$[rbp], rax - -; 4572 : if (!j) - - 0002e 48 83 7d 28 00 cmp QWORD PTR j$[rbp], 0 - 00033 75 0e jne SHORT $LN2@stbi__jpeg - -; 4573 : return stbi__err("outofmem", "Out of memory"); - - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ - 0003c e8 00 00 00 00 call stbi__err - 00041 eb 56 jmp SHORT $LN1@stbi__jpeg -$LN2@stbi__jpeg: - -; 4574 : memset(j, 0, sizeof(stbi__jpeg)); - - 00043 41 b8 88 48 00 - 00 mov r8d, 18568 ; 00004888H - 00049 33 d2 xor edx, edx - 0004b 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] - 0004f e8 00 00 00 00 call memset - 00054 90 npad 1 - -; 4575 : j->s = s; - - 00055 48 8b 45 28 mov rax, QWORD PTR j$[rbp] - 00059 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00060 48 89 08 mov QWORD PTR [rax], rcx - -; 4576 : stbi__setup_jpeg(j); - - 00063 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] - 00067 e8 00 00 00 00 call stbi__setup_jpeg - 0006c 90 npad 1 - -; 4577 : r = stbi__decode_jpeg_header(j, STBI__SCAN_type); - - 0006d ba 01 00 00 00 mov edx, 1 - 00072 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] - 00076 e8 00 00 00 00 call stbi__decode_jpeg_header - 0007b 89 45 04 mov DWORD PTR r$[rbp], eax - -; 4578 : stbi__rewind(s); - - 0007e 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00085 e8 00 00 00 00 call stbi__rewind - 0008a 90 npad 1 - -; 4579 : STBI_FREE(j); - - 0008b 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] - 0008f ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00095 90 npad 1 - -; 4580 : return r; - - 00096 8b 45 04 mov eax, DWORD PTR r$[rbp] -$LN1@stbi__jpeg: - -; 4581 : } - - 00099 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000a0 5f pop rdi - 000a1 5d pop rbp - 000a2 c3 ret 0 -stbi__jpeg_test ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__rewind -_TEXT SEGMENT -s$ = 224 -stbi__rewind PROC ; COMDAT - -; 900 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 901 : // conceptually rewind SHOULD rewind to the beginning of the stream, -; 902 : // but we just rewind to the beginning of the initial buffer, because -; 903 : // we only use it after doing 'test', which only ever looks at at most 92 bytes -; 904 : s->img_buffer = s->img_buffer_original; - - 00020 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 00027 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0002e 48 8b 89 d0 00 - 00 00 mov rcx, QWORD PTR [rcx+208] - 00035 48 89 88 c0 00 - 00 00 mov QWORD PTR [rax+192], rcx - -; 905 : s->img_buffer_end = s->img_buffer_original_end; - - 0003c 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 00043 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0004a 48 8b 89 d8 00 - 00 00 mov rcx, QWORD PTR [rcx+216] - 00051 48 89 88 c8 00 - 00 00 mov QWORD PTR [rax+200], rcx - -; 906 : } - - 00058 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0005f 5f pop rdi - 00060 5d pop rbp - 00061 c3 ret 0 -stbi__rewind ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__start_file -_TEXT SEGMENT -s$ = 224 -f$ = 232 -stbi__start_file PROC ; COMDAT - -; 891 : { - - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 - -; 892 : stbi__start_callbacks(s, &stbi__stdio_callbacks, (void *)f); - - 00025 4c 8b 85 e8 00 - 00 00 mov r8, QWORD PTR f$[rbp] - 0002c 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__stdio_callbacks - 00033 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0003a e8 00 00 00 00 call stbi__start_callbacks - 0003f 90 npad 1 - -; 893 : } - - 00040 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00047 5f pop rdi - 00048 5d pop rbp - 00049 c3 ret 0 -stbi__start_file ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__stdio_eof -_TEXT SEGMENT -tv70 = 192 -user$ = 240 -stbi__stdio_eof PROC ; COMDAT - -; 880 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 881 : return feof((FILE *)user) || ferror((FILE *)user); - - 00020 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR user$[rbp] - 00027 ff 15 00 00 00 - 00 call QWORD PTR __imp_feof - 0002d 85 c0 test eax, eax - 0002f 75 1d jne SHORT $LN3@stbi__stdi - 00031 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR user$[rbp] - 00038 ff 15 00 00 00 - 00 call QWORD PTR __imp_ferror - 0003e 85 c0 test eax, eax - 00040 75 0c jne SHORT $LN3@stbi__stdi - 00042 c7 85 c0 00 00 - 00 00 00 00 00 mov DWORD PTR tv70[rbp], 0 - 0004c eb 0a jmp SHORT $LN4@stbi__stdi -$LN3@stbi__stdi: - 0004e c7 85 c0 00 00 - 00 01 00 00 00 mov DWORD PTR tv70[rbp], 1 -$LN4@stbi__stdi: - 00058 8b 85 c0 00 00 - 00 mov eax, DWORD PTR tv70[rbp] - -; 882 : } - - 0005e 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 00065 5f pop rdi - 00066 5d pop rbp - 00067 c3 ret 0 -stbi__stdio_eof ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__stdio_skip -_TEXT SEGMENT -ch$ = 4 -user$ = 256 -n$ = 264 -stbi__stdio_skip PROC ; COMDAT - -; 870 : { - - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00023 90 npad 1 - -; 871 : int ch; -; 872 : fseek((FILE *)user, n, SEEK_CUR); - - 00024 41 b8 01 00 00 - 00 mov r8d, 1 - 0002a 8b 95 08 01 00 - 00 mov edx, DWORD PTR n$[rbp] - 00030 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR user$[rbp] - 00037 ff 15 00 00 00 - 00 call QWORD PTR __imp_fseek - 0003d 90 npad 1 - -; 873 : ch = fgetc((FILE *)user); /* have to read a byte to reset feof()'s flag */ - - 0003e 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR user$[rbp] - 00045 ff 15 00 00 00 - 00 call QWORD PTR __imp_fgetc - 0004b 89 45 04 mov DWORD PTR ch$[rbp], eax - -; 874 : if (ch != EOF) { - - 0004e 83 7d 04 ff cmp DWORD PTR ch$[rbp], -1 - 00052 74 11 je SHORT $LN2@stbi__stdi - -; 875 : ungetc(ch, (FILE *)user); /* push byte back onto stream if valid. */ - - 00054 48 8b 95 00 01 - 00 00 mov rdx, QWORD PTR user$[rbp] - 0005b 8b 4d 04 mov ecx, DWORD PTR ch$[rbp] - 0005e ff 15 00 00 00 - 00 call QWORD PTR __imp_ungetc - 00064 90 npad 1 -$LN2@stbi__stdi: - -; 876 : } -; 877 : } - - 00065 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 0006c 5f pop rdi - 0006d 5d pop rbp - 0006e c3 ret 0 -stbi__stdio_skip ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__stdio_read -_TEXT SEGMENT -user$ = 224 -data$ = 232 -size$ = 240 -stbi__stdio_read PROC ; COMDAT - -; 865 : { - - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 90 npad 1 - -; 866 : return (int)fread(data, 1, size, (FILE *)user); - - 0002a 48 63 85 f0 00 - 00 00 movsxd rax, DWORD PTR size$[rbp] - 00031 4c 8b 8d e0 00 - 00 00 mov r9, QWORD PTR user$[rbp] - 00038 4c 8b c0 mov r8, rax - 0003b ba 01 00 00 00 mov edx, 1 - 00040 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR data$[rbp] - 00047 ff 15 00 00 00 - 00 call QWORD PTR __imp_fread - -; 867 : } - - 0004d 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00054 5f pop rdi - 00055 5d pop rbp - 00056 c3 ret 0 -stbi__stdio_read ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__start_callbacks -_TEXT SEGMENT -tv72 = 192 -s$ = 240 -c$ = 248 -user$ = 256 -stbi__start_callbacks PROC ; COMDAT - -; 851 : { - - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 56 push rsi - 00011 57 push rdi - 00012 48 81 ec f0 00 - 00 00 sub rsp, 240 ; 000000f0H - 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002a 90 npad 1 - -; 852 : s->io = *c; - - 0002b 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 00032 48 8d 78 10 lea rdi, QWORD PTR [rax+16] - 00036 48 8b b5 f8 00 - 00 00 mov rsi, QWORD PTR c$[rbp] - 0003d b9 18 00 00 00 mov ecx, 24 - 00042 f3 a4 rep movsb - -; 853 : s->io_user_data = user; - - 00044 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 0004b 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR user$[rbp] - 00052 48 89 48 28 mov QWORD PTR [rax+40], rcx - -; 854 : s->buflen = sizeof(s->buffer_start); - - 00056 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 0005d c7 40 34 80 00 - 00 00 mov DWORD PTR [rax+52], 128 ; 00000080H - -; 855 : s->read_from_callbacks = 1; - - 00064 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 0006b c7 40 30 01 00 - 00 00 mov DWORD PTR [rax+48], 1 - -; 856 : s->callback_already_read = 0; - - 00072 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 00079 c7 80 b8 00 00 - 00 00 00 00 00 mov DWORD PTR [rax+184], 0 - -; 857 : s->img_buffer = s->img_buffer_original = s->buffer_start; - - 00083 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 0008a 48 83 c0 38 add rax, 56 ; 00000038H - 0008e 48 89 85 c0 00 - 00 00 mov QWORD PTR tv72[rbp], rax - 00095 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 0009c 48 8b 8d c0 00 - 00 00 mov rcx, QWORD PTR tv72[rbp] - 000a3 48 89 88 d0 00 - 00 00 mov QWORD PTR [rax+208], rcx - 000aa 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 000b1 48 8b 8d c0 00 - 00 00 mov rcx, QWORD PTR tv72[rbp] - 000b8 48 89 88 c0 00 - 00 00 mov QWORD PTR [rax+192], rcx - -; 858 : stbi__refill_buffer(s); - - 000bf 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000c6 e8 00 00 00 00 call stbi__refill_buffer - 000cb 90 npad 1 - -; 859 : s->img_buffer_original_end = s->img_buffer_end; - - 000cc 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 000d3 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000da 48 8b 89 c8 00 - 00 00 mov rcx, QWORD PTR [rcx+200] - 000e1 48 89 88 d8 00 - 00 00 mov QWORD PTR [rax+216], rcx - -; 860 : } - - 000e8 48 8d a5 d0 00 - 00 00 lea rsp, QWORD PTR [rbp+208] - 000ef 5f pop rdi - 000f0 5e pop rsi - 000f1 5d pop rbp - 000f2 c3 ret 0 -stbi__start_callbacks ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__start_mem -_TEXT SEGMENT -tv72 = 192 -s$ = 240 -buffer$ = 248 -len$ = 256 -stbi__start_mem PROC ; COMDAT - -; 841 : { - - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 90 npad 1 - -; 842 : s->io.read = NULL; - - 0002a 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 00031 48 c7 40 10 00 - 00 00 00 mov QWORD PTR [rax+16], 0 - -; 843 : s->read_from_callbacks = 0; - - 00039 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 00040 c7 40 30 00 00 - 00 00 mov DWORD PTR [rax+48], 0 - -; 844 : s->callback_already_read = 0; - - 00047 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 0004e c7 80 b8 00 00 - 00 00 00 00 00 mov DWORD PTR [rax+184], 0 - -; 845 : s->img_buffer = s->img_buffer_original = (stbi_uc *)buffer; - - 00058 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 0005f 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR buffer$[rbp] - 00066 48 89 88 d0 00 - 00 00 mov QWORD PTR [rax+208], rcx - 0006d 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 00074 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR buffer$[rbp] - 0007b 48 89 88 c0 00 - 00 00 mov QWORD PTR [rax+192], rcx - -; 846 : s->img_buffer_end = s->img_buffer_original_end = (stbi_uc *)buffer + len; - - 00082 48 63 85 00 01 - 00 00 movsxd rax, DWORD PTR len$[rbp] - 00089 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR buffer$[rbp] - 00090 48 03 c8 add rcx, rax - 00093 48 89 8d c0 00 - 00 00 mov QWORD PTR tv72[rbp], rcx - 0009a 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 000a1 48 8b 8d c0 00 - 00 00 mov rcx, QWORD PTR tv72[rbp] - 000a8 48 89 88 d8 00 - 00 00 mov QWORD PTR [rax+216], rcx - 000af 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp] - 000b6 48 8b 8d c0 00 - 00 00 mov rcx, QWORD PTR tv72[rbp] - 000bd 48 89 88 c8 00 - 00 00 mov QWORD PTR [rax+200], rcx - -; 847 : } - - 000c4 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 000cb 5f pop rdi - 000cc 5d pop rbp - 000cd c3 ret 0 -stbi__start_mem ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__refill_buffer -_TEXT SEGMENT -n$ = 4 -s$ = 256 -stbi__refill_buffer PROC ; COMDAT - -; 1672 : { - - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 1673 : int n = (s->io.read)(s->io_user_data, (char *)s->buffer_start, s->buflen); - - 00020 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00027 48 83 c0 38 add rax, 56 ; 00000038H - 0002b 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00032 44 8b 41 34 mov r8d, DWORD PTR [rcx+52] - 00036 48 8b d0 mov rdx, rax - 00039 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00040 48 8b 48 28 mov rcx, QWORD PTR [rax+40] - 00044 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 0004b ff 50 10 call QWORD PTR [rax+16] - 0004e 89 45 04 mov DWORD PTR n$[rbp], eax - -; 1674 : s->callback_already_read += (int)(s->img_buffer - s->img_buffer_original); - - 00051 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00058 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 0005f 48 8b 89 d0 00 - 00 00 mov rcx, QWORD PTR [rcx+208] - 00066 48 8b 80 c0 00 - 00 00 mov rax, QWORD PTR [rax+192] - 0006d 48 2b c1 sub rax, rcx - 00070 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00077 03 81 b8 00 00 - 00 add eax, DWORD PTR [rcx+184] - 0007d 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00084 89 81 b8 00 00 - 00 mov DWORD PTR [rcx+184], eax - -; 1675 : if (n == 0) { - - 0008a 83 7d 04 00 cmp DWORD PTR n$[rbp], 0 - 0008e 75 53 jne SHORT $LN2@stbi__refi - -; 1676 : // at end of file, treat same as if from memory, but need to handle case -; 1677 : // where s->img_buffer isn't pointing to safe memory, e.g. 0-byte file -; 1678 : s->read_from_callbacks = 0; - - 00090 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 00097 c7 40 30 00 00 - 00 00 mov DWORD PTR [rax+48], 0 - -; 1679 : s->img_buffer = s->buffer_start; - - 0009e 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 000a5 48 83 c0 38 add rax, 56 ; 00000038H - 000a9 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000b0 48 89 81 c0 00 - 00 00 mov QWORD PTR [rcx+192], rax - -; 1680 : s->img_buffer_end = s->buffer_start + 1; - - 000b7 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 000be 48 83 c0 39 add rax, 57 ; 00000039H - 000c2 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000c9 48 89 81 c8 00 - 00 00 mov QWORD PTR [rcx+200], rax - -; 1681 : *s->img_buffer = 0; - - 000d0 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 000d7 48 8b 80 c0 00 - 00 00 mov rax, QWORD PTR [rax+192] - 000de c6 00 00 mov BYTE PTR [rax], 0 - -; 1682 : } else { - - 000e1 eb 37 jmp SHORT $LN3@stbi__refi -$LN2@stbi__refi: - -; 1683 : s->img_buffer = s->buffer_start; - - 000e3 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR s$[rbp] - 000ea 48 83 c0 38 add rax, 56 ; 00000038H - 000ee 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 000f5 48 89 81 c0 00 - 00 00 mov QWORD PTR [rcx+192], rax - -; 1684 : s->img_buffer_end = s->buffer_start + n; - - 000fc 48 63 45 04 movsxd rax, DWORD PTR n$[rbp] - 00100 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00107 48 8d 44 01 38 lea rax, QWORD PTR [rcx+rax+56] - 0010c 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR s$[rbp] - 00113 48 89 81 c8 00 - 00 00 mov QWORD PTR [rcx+200], rax -$LN3@stbi__refi: - -; 1685 : } -; 1686 : } - - 0011a 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00121 5f pop rdi - 00122 5d pop rbp - 00123 c3 ret 0 -stbi__refill_buffer ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__sse2_available -_TEXT SEGMENT -info3$ = 4 -tv68 = 212 -stbi__sse2_available PROC ; COMDAT - -; 771 : { - - 00000 40 55 push rbp - 00002 57 push rdi - 00003 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001b 90 npad 1 - -; 772 : int info3 = stbi__cpuid3(); - - 0001c e8 00 00 00 00 call stbi__cpuid3 - 00021 89 45 04 mov DWORD PTR info3$[rbp], eax - -; 773 : return ((info3 >> 26) & 1) != 0; - - 00024 8b 45 04 mov eax, DWORD PTR info3$[rbp] - 00027 c1 f8 1a sar eax, 26 - 0002a 83 e0 01 and eax, 1 - 0002d 85 c0 test eax, eax - 0002f 74 0c je SHORT $LN3@stbi__sse2 - 00031 c7 85 d4 00 00 - 00 01 00 00 00 mov DWORD PTR tv68[rbp], 1 - 0003b eb 0a jmp SHORT $LN4@stbi__sse2 -$LN3@stbi__sse2: - 0003d c7 85 d4 00 00 - 00 00 00 00 00 mov DWORD PTR tv68[rbp], 0 -$LN4@stbi__sse2: - 00047 8b 85 d4 00 00 - 00 mov eax, DWORD PTR tv68[rbp] - -; 774 : } - - 0004d 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00054 5f pop rdi - 00055 5d pop rbp - 00056 c3 ret 0 -stbi__sse2_available ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi__cpuid3 -_TEXT SEGMENT -info$ = 8 -__$ArrayPad$ = 232 -stbi__cpuid3 PROC ; COMDAT - -; 749 : { - - 00000 40 55 push rbp - 00002 53 push rbx - 00003 57 push rdi - 00004 48 81 ec 10 01 - 00 00 sub rsp, 272 ; 00000110H - 0000b 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00010 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00015 b9 0c 00 00 00 mov ecx, 12 - 0001a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001f f3 ab rep stosd - 00021 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00028 48 33 c5 xor rax, rbp - 0002b 48 89 85 e8 00 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00032 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00039 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003e 90 npad 1 - -; 750 : int info[4]; -; 751 : __cpuid(info, 1); - - 0003f b8 01 00 00 00 mov eax, 1 - 00044 33 c9 xor ecx, ecx - 00046 0f a2 cpuid - 00048 4c 8d 45 08 lea r8, QWORD PTR info$[rbp] - 0004c 41 89 00 mov DWORD PTR [r8], eax - 0004f 41 89 58 04 mov DWORD PTR [r8+4], ebx - 00053 41 89 48 08 mov DWORD PTR [r8+8], ecx - 00057 41 89 50 0c mov DWORD PTR [r8+12], edx - -; 752 : return info[3]; - - 0005b b8 04 00 00 00 mov eax, 4 - 00060 48 6b c0 03 imul rax, rax, 3 - 00064 8b 44 05 08 mov eax, DWORD PTR info$[rbp+rax] - -; 753 : } - - 00068 8b f8 mov edi, eax - 0006a 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0006e 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi__cpuid3$rtcFrameData - 00075 e8 00 00 00 00 call _RTC_CheckStackVars - 0007a 8b c7 mov eax, edi - 0007c 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00083 48 33 cd xor rcx, rbp - 00086 e8 00 00 00 00 call __security_check_cookie - 0008b 48 8d a5 f0 00 - 00 00 lea rsp, QWORD PTR [rbp+240] - 00092 5f pop rdi - 00093 5b pop rbx - 00094 5d pop rbp - 00095 c3 ret 0 -stbi__cpuid3 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_zlib_decode_noheader_buffer -_TEXT SEGMENT -a$ = 16 -__$ArrayPad$ = 5672 -obuffer$ = 5712 -olen$ = 5720 -ibuffer$ = 5728 -ilen$ = 5736 -stbi_zlib_decode_noheader_buffer PROC ; COMDAT - -; 5179 : { - -$LN5: - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00013 55 push rbp - 00014 57 push rdi - 00015 b8 68 16 00 00 mov eax, 5736 ; 00001668H - 0001a e8 00 00 00 00 call __chkstk - 0001f 48 2b e0 sub rsp, rax - 00022 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00027 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 0002c b9 0e 04 00 00 mov ecx, 1038 ; 0000040eH - 00031 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00036 f3 ab rep stosd - 00038 48 8b 8c 24 88 - 16 00 00 mov rcx, QWORD PTR [rsp+5768] - 00040 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00047 48 33 c5 xor rax, rbp - 0004a 48 89 85 28 16 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00051 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00058 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0005d 90 npad 1 - -; 5180 : stbi__zbuf a; -; 5181 : a.zbuffer = (stbi_uc *)ibuffer; - - 0005e 48 8b 85 60 16 - 00 00 mov rax, QWORD PTR ibuffer$[rbp] - 00065 48 89 45 10 mov QWORD PTR a$[rbp], rax - -; 5182 : a.zbuffer_end = (stbi_uc *)ibuffer + ilen; - - 00069 48 63 85 68 16 - 00 00 movsxd rax, DWORD PTR ilen$[rbp] - 00070 48 8b 8d 60 16 - 00 00 mov rcx, QWORD PTR ibuffer$[rbp] - 00077 48 03 c8 add rcx, rax - 0007a 48 8b c1 mov rax, rcx - 0007d 48 89 45 18 mov QWORD PTR a$[rbp+8], rax - -; 5183 : if (stbi__do_zlib(&a, obuffer, olen, 0, 0)) - - 00081 c7 44 24 20 00 - 00 00 00 mov DWORD PTR [rsp+32], 0 - 00089 45 33 c9 xor r9d, r9d - 0008c 44 8b 85 58 16 - 00 00 mov r8d, DWORD PTR olen$[rbp] - 00093 48 8b 95 50 16 - 00 00 mov rdx, QWORD PTR obuffer$[rbp] - 0009a 48 8d 4d 10 lea rcx, QWORD PTR a$[rbp] - 0009e e8 00 00 00 00 call stbi__do_zlib - 000a3 85 c0 test eax, eax - 000a5 74 12 je SHORT $LN2@stbi_zlib_ - -; 5184 : return (int)(a.zout - a.zout_start); - - 000a7 48 8b 45 38 mov rax, QWORD PTR a$[rbp+40] - 000ab 48 8b 4d 30 mov rcx, QWORD PTR a$[rbp+32] - 000af 48 2b c8 sub rcx, rax - 000b2 48 8b c1 mov rax, rcx - 000b5 eb 07 jmp SHORT $LN1@stbi_zlib_ - 000b7 eb 05 jmp SHORT $LN3@stbi_zlib_ -$LN2@stbi_zlib_: - -; 5185 : else -; 5186 : return -1; - - 000b9 b8 ff ff ff ff mov eax, -1 -$LN3@stbi_zlib_: -$LN1@stbi_zlib_: - -; 5187 : } - - 000be 48 8b f8 mov rdi, rax - 000c1 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 000c5 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_zlib_decode_noheader_buffer$rtcFrameData - 000cc e8 00 00 00 00 call _RTC_CheckStackVars - 000d1 48 8b c7 mov rax, rdi - 000d4 48 8b 8d 28 16 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000db 48 33 cd xor rcx, rbp - 000de e8 00 00 00 00 call __security_check_cookie - 000e3 48 8d a5 38 16 - 00 00 lea rsp, QWORD PTR [rbp+5688] - 000ea 5f pop rdi - 000eb 5d pop rbp - 000ec c3 ret 0 -stbi_zlib_decode_noheader_buffer ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_zlib_decode_noheader_malloc -_TEXT SEGMENT -a$ = 16 -p$ = 4152 -__$ArrayPad$ = 5704 -buffer$ = 5744 -len$ = 5752 -outlen$ = 5760 -stbi_zlib_decode_noheader_malloc PROC ; COMDAT - -; 5161 : { - -$LN7: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000e 55 push rbp - 0000f 57 push rdi - 00010 b8 88 16 00 00 mov eax, 5768 ; 00001688H - 00015 e8 00 00 00 00 call __chkstk - 0001a 48 2b e0 sub rsp, rax - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00027 b9 16 04 00 00 mov ecx, 1046 ; 00000416H - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 a8 - 16 00 00 mov rcx, QWORD PTR [rsp+5800] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 48 16 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 5162 : stbi__zbuf a; -; 5163 : char *p = (char *)stbi__malloc(16384); - - 00059 b9 00 40 00 00 mov ecx, 16384 ; 00004000H - 0005e e8 00 00 00 00 call stbi__malloc - 00063 48 89 85 38 10 - 00 00 mov QWORD PTR p$[rbp], rax - -; 5164 : if (p == NULL) - - 0006a 48 83 bd 38 10 - 00 00 00 cmp QWORD PTR p$[rbp], 0 - 00072 75 07 jne SHORT $LN2@stbi_zlib_ - -; 5165 : return NULL; - - 00074 33 c0 xor eax, eax - 00076 e9 81 00 00 00 jmp $LN1@stbi_zlib_ -$LN2@stbi_zlib_: - -; 5166 : a.zbuffer = (stbi_uc *)buffer; - - 0007b 48 8b 85 70 16 - 00 00 mov rax, QWORD PTR buffer$[rbp] - 00082 48 89 45 10 mov QWORD PTR a$[rbp], rax - -; 5167 : a.zbuffer_end = (stbi_uc *)buffer + len; - - 00086 48 63 85 78 16 - 00 00 movsxd rax, DWORD PTR len$[rbp] - 0008d 48 8b 8d 70 16 - 00 00 mov rcx, QWORD PTR buffer$[rbp] - 00094 48 03 c8 add rcx, rax - 00097 48 8b c1 mov rax, rcx - 0009a 48 89 45 18 mov QWORD PTR a$[rbp+8], rax - -; 5168 : if (stbi__do_zlib(&a, p, 16384, 1, 0)) { - - 0009e c7 44 24 20 00 - 00 00 00 mov DWORD PTR [rsp+32], 0 - 000a6 41 b9 01 00 00 - 00 mov r9d, 1 - 000ac 41 b8 00 40 00 - 00 mov r8d, 16384 ; 00004000H - 000b2 48 8b 95 38 10 - 00 00 mov rdx, QWORD PTR p$[rbp] - 000b9 48 8d 4d 10 lea rcx, QWORD PTR a$[rbp] - 000bd e8 00 00 00 00 call stbi__do_zlib - 000c2 85 c0 test eax, eax - 000c4 74 29 je SHORT $LN3@stbi_zlib_ - -; 5169 : if (outlen) - - 000c6 48 83 bd 80 16 - 00 00 00 cmp QWORD PTR outlen$[rbp], 0 - 000ce 74 17 je SHORT $LN5@stbi_zlib_ - -; 5170 : *outlen = (int)(a.zout - a.zout_start); - - 000d0 48 8b 45 38 mov rax, QWORD PTR a$[rbp+40] - 000d4 48 8b 4d 30 mov rcx, QWORD PTR a$[rbp+32] - 000d8 48 2b c8 sub rcx, rax - 000db 48 8b c1 mov rax, rcx - 000de 48 8b 8d 80 16 - 00 00 mov rcx, QWORD PTR outlen$[rbp] - 000e5 89 01 mov DWORD PTR [rcx], eax -$LN5@stbi_zlib_: - -; 5171 : return a.zout_start; - - 000e7 48 8b 45 38 mov rax, QWORD PTR a$[rbp+40] - 000eb eb 0f jmp SHORT $LN1@stbi_zlib_ - -; 5172 : } else { - - 000ed eb 0d jmp SHORT $LN4@stbi_zlib_ -$LN3@stbi_zlib_: - -; 5173 : STBI_FREE(a.zout_start); - - 000ef 48 8b 4d 38 mov rcx, QWORD PTR a$[rbp+40] - 000f3 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 000f9 90 npad 1 - -; 5174 : return NULL; - - 000fa 33 c0 xor eax, eax -$LN4@stbi_zlib_: -$LN1@stbi_zlib_: - -; 5175 : } -; 5176 : } - - 000fc 48 8b f8 mov rdi, rax - 000ff 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00103 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_zlib_decode_noheader_malloc$rtcFrameData - 0010a e8 00 00 00 00 call _RTC_CheckStackVars - 0010f 48 8b c7 mov rax, rdi - 00112 48 8b 8d 48 16 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00119 48 33 cd xor rcx, rbp - 0011c e8 00 00 00 00 call __security_check_cookie - 00121 48 8d a5 58 16 - 00 00 lea rsp, QWORD PTR [rbp+5720] - 00128 5f pop rdi - 00129 5d pop rbp - 0012a c3 ret 0 -stbi_zlib_decode_noheader_malloc ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_zlib_decode_buffer -_TEXT SEGMENT -a$ = 16 -__$ArrayPad$ = 5672 -obuffer$ = 5712 -olen$ = 5720 -ibuffer$ = 5728 -ilen$ = 5736 -stbi_zlib_decode_buffer PROC ; COMDAT - -; 5150 : { - -$LN5: - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00013 55 push rbp - 00014 57 push rdi - 00015 b8 68 16 00 00 mov eax, 5736 ; 00001668H - 0001a e8 00 00 00 00 call __chkstk - 0001f 48 2b e0 sub rsp, rax - 00022 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00027 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 0002c b9 0e 04 00 00 mov ecx, 1038 ; 0000040eH - 00031 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00036 f3 ab rep stosd - 00038 48 8b 8c 24 88 - 16 00 00 mov rcx, QWORD PTR [rsp+5768] - 00040 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00047 48 33 c5 xor rax, rbp - 0004a 48 89 85 28 16 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00051 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00058 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0005d 90 npad 1 - -; 5151 : stbi__zbuf a; -; 5152 : a.zbuffer = (stbi_uc *)ibuffer; - - 0005e 48 8b 85 60 16 - 00 00 mov rax, QWORD PTR ibuffer$[rbp] - 00065 48 89 45 10 mov QWORD PTR a$[rbp], rax - -; 5153 : a.zbuffer_end = (stbi_uc *)ibuffer + ilen; - - 00069 48 63 85 68 16 - 00 00 movsxd rax, DWORD PTR ilen$[rbp] - 00070 48 8b 8d 60 16 - 00 00 mov rcx, QWORD PTR ibuffer$[rbp] - 00077 48 03 c8 add rcx, rax - 0007a 48 8b c1 mov rax, rcx - 0007d 48 89 45 18 mov QWORD PTR a$[rbp+8], rax - -; 5154 : if (stbi__do_zlib(&a, obuffer, olen, 0, 1)) - - 00081 c7 44 24 20 01 - 00 00 00 mov DWORD PTR [rsp+32], 1 - 00089 45 33 c9 xor r9d, r9d - 0008c 44 8b 85 58 16 - 00 00 mov r8d, DWORD PTR olen$[rbp] - 00093 48 8b 95 50 16 - 00 00 mov rdx, QWORD PTR obuffer$[rbp] - 0009a 48 8d 4d 10 lea rcx, QWORD PTR a$[rbp] - 0009e e8 00 00 00 00 call stbi__do_zlib - 000a3 85 c0 test eax, eax - 000a5 74 12 je SHORT $LN2@stbi_zlib_ - -; 5155 : return (int)(a.zout - a.zout_start); - - 000a7 48 8b 45 38 mov rax, QWORD PTR a$[rbp+40] - 000ab 48 8b 4d 30 mov rcx, QWORD PTR a$[rbp+32] - 000af 48 2b c8 sub rcx, rax - 000b2 48 8b c1 mov rax, rcx - 000b5 eb 07 jmp SHORT $LN1@stbi_zlib_ - 000b7 eb 05 jmp SHORT $LN3@stbi_zlib_ -$LN2@stbi_zlib_: - -; 5156 : else -; 5157 : return -1; - - 000b9 b8 ff ff ff ff mov eax, -1 -$LN3@stbi_zlib_: -$LN1@stbi_zlib_: - -; 5158 : } - - 000be 48 8b f8 mov rdi, rax - 000c1 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 000c5 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_zlib_decode_buffer$rtcFrameData - 000cc e8 00 00 00 00 call _RTC_CheckStackVars - 000d1 48 8b c7 mov rax, rdi - 000d4 48 8b 8d 28 16 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000db 48 33 cd xor rcx, rbp - 000de e8 00 00 00 00 call __security_check_cookie - 000e3 48 8d a5 38 16 - 00 00 lea rsp, QWORD PTR [rbp+5688] - 000ea 5f pop rdi - 000eb 5d pop rbp - 000ec c3 ret 0 -stbi_zlib_decode_buffer ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_zlib_decode_malloc -_TEXT SEGMENT -buffer$ = 224 -len$ = 232 -outlen$ = 240 -stbi_zlib_decode_malloc PROC ; COMDAT - -; 5125 : { - -$LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000e 55 push rbp - 0000f 57 push rdi - 00010 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00028 90 npad 1 - -; 5126 : return stbi_zlib_decode_malloc_guesssize(buffer, len, 16384, outlen); - - 00029 4c 8b 8d f0 00 - 00 00 mov r9, QWORD PTR outlen$[rbp] - 00030 41 b8 00 40 00 - 00 mov r8d, 16384 ; 00004000H - 00036 8b 95 e8 00 00 - 00 mov edx, DWORD PTR len$[rbp] - 0003c 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR buffer$[rbp] - 00043 e8 00 00 00 00 call stbi_zlib_decode_malloc_guesssize - -; 5127 : } - - 00048 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 -stbi_zlib_decode_malloc ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_zlib_decode_malloc_guesssize_headerflag -_TEXT SEGMENT -a$ = 16 -p$ = 4152 -__$ArrayPad$ = 5704 -buffer$ = 5744 -len$ = 5752 -initial_size$ = 5760 -outlen$ = 5768 -parse_header$ = 5776 -stbi_zlib_decode_malloc_guesssize_headerflag PROC ; COMDAT - -; 5132 : { - -$LN7: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00013 55 push rbp - 00014 57 push rdi - 00015 b8 88 16 00 00 mov eax, 5768 ; 00001688H - 0001a e8 00 00 00 00 call __chkstk - 0001f 48 2b e0 sub rsp, rax - 00022 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00027 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 0002c b9 16 04 00 00 mov ecx, 1046 ; 00000416H - 00031 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00036 f3 ab rep stosd - 00038 48 8b 8c 24 a8 - 16 00 00 mov rcx, QWORD PTR [rsp+5800] - 00040 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00047 48 33 c5 xor rax, rbp - 0004a 48 89 85 48 16 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00051 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00058 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0005d 90 npad 1 - -; 5133 : stbi__zbuf a; -; 5134 : char *p = (char *)stbi__malloc(initial_size); - - 0005e 48 63 85 80 16 - 00 00 movsxd rax, DWORD PTR initial_size$[rbp] - 00065 48 8b c8 mov rcx, rax - 00068 e8 00 00 00 00 call stbi__malloc - 0006d 48 89 85 38 10 - 00 00 mov QWORD PTR p$[rbp], rax - -; 5135 : if (p == NULL) - - 00074 48 83 bd 38 10 - 00 00 00 cmp QWORD PTR p$[rbp], 0 - 0007c 75 07 jne SHORT $LN2@stbi_zlib_ - -; 5136 : return NULL; - - 0007e 33 c0 xor eax, eax - 00080 e9 84 00 00 00 jmp $LN1@stbi_zlib_ -$LN2@stbi_zlib_: - -; 5137 : a.zbuffer = (stbi_uc *)buffer; - - 00085 48 8b 85 70 16 - 00 00 mov rax, QWORD PTR buffer$[rbp] - 0008c 48 89 45 10 mov QWORD PTR a$[rbp], rax - -; 5138 : a.zbuffer_end = (stbi_uc *)buffer + len; - - 00090 48 63 85 78 16 - 00 00 movsxd rax, DWORD PTR len$[rbp] - 00097 48 8b 8d 70 16 - 00 00 mov rcx, QWORD PTR buffer$[rbp] - 0009e 48 03 c8 add rcx, rax - 000a1 48 8b c1 mov rax, rcx - 000a4 48 89 45 18 mov QWORD PTR a$[rbp+8], rax - -; 5139 : if (stbi__do_zlib(&a, p, initial_size, 1, parse_header)) { - - 000a8 8b 85 90 16 00 - 00 mov eax, DWORD PTR parse_header$[rbp] - 000ae 89 44 24 20 mov DWORD PTR [rsp+32], eax - 000b2 41 b9 01 00 00 - 00 mov r9d, 1 - 000b8 44 8b 85 80 16 - 00 00 mov r8d, DWORD PTR initial_size$[rbp] - 000bf 48 8b 95 38 10 - 00 00 mov rdx, QWORD PTR p$[rbp] - 000c6 48 8d 4d 10 lea rcx, QWORD PTR a$[rbp] - 000ca e8 00 00 00 00 call stbi__do_zlib - 000cf 85 c0 test eax, eax - 000d1 74 29 je SHORT $LN3@stbi_zlib_ - -; 5140 : if (outlen) - - 000d3 48 83 bd 88 16 - 00 00 00 cmp QWORD PTR outlen$[rbp], 0 - 000db 74 17 je SHORT $LN5@stbi_zlib_ - -; 5141 : *outlen = (int)(a.zout - a.zout_start); - - 000dd 48 8b 45 38 mov rax, QWORD PTR a$[rbp+40] - 000e1 48 8b 4d 30 mov rcx, QWORD PTR a$[rbp+32] - 000e5 48 2b c8 sub rcx, rax - 000e8 48 8b c1 mov rax, rcx - 000eb 48 8b 8d 88 16 - 00 00 mov rcx, QWORD PTR outlen$[rbp] - 000f2 89 01 mov DWORD PTR [rcx], eax -$LN5@stbi_zlib_: - -; 5142 : return a.zout_start; - - 000f4 48 8b 45 38 mov rax, QWORD PTR a$[rbp+40] - 000f8 eb 0f jmp SHORT $LN1@stbi_zlib_ - -; 5143 : } else { - - 000fa eb 0d jmp SHORT $LN4@stbi_zlib_ -$LN3@stbi_zlib_: - -; 5144 : STBI_FREE(a.zout_start); - - 000fc 48 8b 4d 38 mov rcx, QWORD PTR a$[rbp+40] - 00100 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00106 90 npad 1 - -; 5145 : return NULL; - - 00107 33 c0 xor eax, eax -$LN4@stbi_zlib_: -$LN1@stbi_zlib_: - -; 5146 : } -; 5147 : } - - 00109 48 8b f8 mov rdi, rax - 0010c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00110 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_zlib_decode_malloc_guesssize_headerflag$rtcFrameData - 00117 e8 00 00 00 00 call _RTC_CheckStackVars - 0011c 48 8b c7 mov rax, rdi - 0011f 48 8b 8d 48 16 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00126 48 33 cd xor rcx, rbp - 00129 e8 00 00 00 00 call __security_check_cookie - 0012e 48 8d a5 58 16 - 00 00 lea rsp, QWORD PTR [rbp+5720] - 00135 5f pop rdi - 00136 5d pop rbp - 00137 c3 ret 0 -stbi_zlib_decode_malloc_guesssize_headerflag ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_zlib_decode_malloc_guesssize -_TEXT SEGMENT -a$ = 16 -p$ = 4152 -__$ArrayPad$ = 5704 -buffer$ = 5744 -len$ = 5752 -initial_size$ = 5760 -outlen$ = 5768 -stbi_zlib_decode_malloc_guesssize PROC ; COMDAT - -; 5107 : { - -$LN7: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00013 55 push rbp - 00014 57 push rdi - 00015 b8 88 16 00 00 mov eax, 5768 ; 00001688H - 0001a e8 00 00 00 00 call __chkstk - 0001f 48 2b e0 sub rsp, rax - 00022 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00027 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 0002c b9 16 04 00 00 mov ecx, 1046 ; 00000416H - 00031 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00036 f3 ab rep stosd - 00038 48 8b 8c 24 a8 - 16 00 00 mov rcx, QWORD PTR [rsp+5800] - 00040 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00047 48 33 c5 xor rax, rbp - 0004a 48 89 85 48 16 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00051 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00058 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0005d 90 npad 1 - -; 5108 : stbi__zbuf a; -; 5109 : char *p = (char *)stbi__malloc(initial_size); - - 0005e 48 63 85 80 16 - 00 00 movsxd rax, DWORD PTR initial_size$[rbp] - 00065 48 8b c8 mov rcx, rax - 00068 e8 00 00 00 00 call stbi__malloc - 0006d 48 89 85 38 10 - 00 00 mov QWORD PTR p$[rbp], rax - -; 5110 : if (p == NULL) - - 00074 48 83 bd 38 10 - 00 00 00 cmp QWORD PTR p$[rbp], 0 - 0007c 75 07 jne SHORT $LN2@stbi_zlib_ - -; 5111 : return NULL; - - 0007e 33 c0 xor eax, eax - 00080 e9 82 00 00 00 jmp $LN1@stbi_zlib_ -$LN2@stbi_zlib_: - -; 5112 : a.zbuffer = (stbi_uc *)buffer; - - 00085 48 8b 85 70 16 - 00 00 mov rax, QWORD PTR buffer$[rbp] - 0008c 48 89 45 10 mov QWORD PTR a$[rbp], rax - -; 5113 : a.zbuffer_end = (stbi_uc *)buffer + len; - - 00090 48 63 85 78 16 - 00 00 movsxd rax, DWORD PTR len$[rbp] - 00097 48 8b 8d 70 16 - 00 00 mov rcx, QWORD PTR buffer$[rbp] - 0009e 48 03 c8 add rcx, rax - 000a1 48 8b c1 mov rax, rcx - 000a4 48 89 45 18 mov QWORD PTR a$[rbp+8], rax - -; 5114 : if (stbi__do_zlib(&a, p, initial_size, 1, 1)) { - - 000a8 c7 44 24 20 01 - 00 00 00 mov DWORD PTR [rsp+32], 1 - 000b0 41 b9 01 00 00 - 00 mov r9d, 1 - 000b6 44 8b 85 80 16 - 00 00 mov r8d, DWORD PTR initial_size$[rbp] - 000bd 48 8b 95 38 10 - 00 00 mov rdx, QWORD PTR p$[rbp] - 000c4 48 8d 4d 10 lea rcx, QWORD PTR a$[rbp] - 000c8 e8 00 00 00 00 call stbi__do_zlib - 000cd 85 c0 test eax, eax - 000cf 74 29 je SHORT $LN3@stbi_zlib_ - -; 5115 : if (outlen) - - 000d1 48 83 bd 88 16 - 00 00 00 cmp QWORD PTR outlen$[rbp], 0 - 000d9 74 17 je SHORT $LN5@stbi_zlib_ - -; 5116 : *outlen = (int)(a.zout - a.zout_start); - - 000db 48 8b 45 38 mov rax, QWORD PTR a$[rbp+40] - 000df 48 8b 4d 30 mov rcx, QWORD PTR a$[rbp+32] - 000e3 48 2b c8 sub rcx, rax - 000e6 48 8b c1 mov rax, rcx - 000e9 48 8b 8d 88 16 - 00 00 mov rcx, QWORD PTR outlen$[rbp] - 000f0 89 01 mov DWORD PTR [rcx], eax -$LN5@stbi_zlib_: - -; 5117 : return a.zout_start; - - 000f2 48 8b 45 38 mov rax, QWORD PTR a$[rbp+40] - 000f6 eb 0f jmp SHORT $LN1@stbi_zlib_ - -; 5118 : } else { - - 000f8 eb 0d jmp SHORT $LN4@stbi_zlib_ -$LN3@stbi_zlib_: - -; 5119 : STBI_FREE(a.zout_start); - - 000fa 48 8b 4d 38 mov rcx, QWORD PTR a$[rbp+40] - 000fe ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 00104 90 npad 1 - -; 5120 : return NULL; - - 00105 33 c0 xor eax, eax -$LN4@stbi_zlib_: -$LN1@stbi_zlib_: - -; 5121 : } -; 5122 : } - - 00107 48 8b f8 mov rdi, rax - 0010a 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 0010e 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_zlib_decode_malloc_guesssize$rtcFrameData - 00115 e8 00 00 00 00 call _RTC_CheckStackVars - 0011a 48 8b c7 mov rax, rdi - 0011d 48 8b 8d 48 16 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00124 48 33 cd xor rcx, rbp - 00127 e8 00 00 00 00 call __security_check_cookie - 0012c 48 8d a5 58 16 - 00 00 lea rsp, QWORD PTR [rbp+5720] - 00133 5f pop rdi - 00134 5d pop rbp - 00135 c3 ret 0 -stbi_zlib_decode_malloc_guesssize ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_set_flip_vertically_on_load_thread -_TEXT SEGMENT -flag_true_if_should_flip$ = 224 -stbi_set_flip_vertically_on_load_thread PROC ; COMDAT - -; 1160 : { - -$LN3: - 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00004 55 push rbp - 00005 57 push rdi - 00006 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00012 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001e 90 npad 1 - -; 1161 : stbi__vertically_flip_on_load_local = flag_true_if_should_flip; - - 0001f b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__vertically_flip_on_load_local - 00024 8b c0 mov eax, eax - 00026 8b 0d 00 00 00 - 00 mov ecx, DWORD PTR _tls_index - 0002c 65 48 8b 14 25 - 58 00 00 00 mov rdx, QWORD PTR gs:88 - 00035 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] - 00039 8b 95 e0 00 00 - 00 mov edx, DWORD PTR flag_true_if_should_flip$[rbp] - 0003f 89 14 08 mov DWORD PTR [rax+rcx], edx - -; 1162 : stbi__vertically_flip_on_load_set = 1; - - 00042 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__vertically_flip_on_load_set - 00047 8b c0 mov eax, eax - 00049 8b 0d 00 00 00 - 00 mov ecx, DWORD PTR _tls_index - 0004f 65 48 8b 14 25 - 58 00 00 00 mov rdx, QWORD PTR gs:88 - 00058 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] - 0005c c7 04 08 01 00 - 00 00 mov DWORD PTR [rax+rcx], 1 - -; 1163 : } - - 00063 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0006a 5f pop rdi - 0006b 5d pop rbp - 0006c c3 ret 0 -stbi_set_flip_vertically_on_load_thread ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_convert_iphone_png_to_rgb_thread -_TEXT SEGMENT -flag_true_if_should_convert$ = 224 -stbi_convert_iphone_png_to_rgb_thread PROC ; COMDAT - -; 5631 : { - -$LN3: - 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00004 55 push rbp - 00005 57 push rdi - 00006 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00012 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001e 90 npad 1 - -; 5632 : stbi__de_iphone_flag_local = flag_true_if_should_convert; - - 0001f b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__de_iphone_flag_local - 00024 8b c0 mov eax, eax - 00026 8b 0d 00 00 00 - 00 mov ecx, DWORD PTR _tls_index - 0002c 65 48 8b 14 25 - 58 00 00 00 mov rdx, QWORD PTR gs:88 - 00035 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] - 00039 8b 95 e0 00 00 - 00 mov edx, DWORD PTR flag_true_if_should_convert$[rbp] - 0003f 89 14 08 mov DWORD PTR [rax+rcx], edx - -; 5633 : stbi__de_iphone_flag_set = 1; - - 00042 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__de_iphone_flag_set - 00047 8b c0 mov eax, eax - 00049 8b 0d 00 00 00 - 00 mov ecx, DWORD PTR _tls_index - 0004f 65 48 8b 14 25 - 58 00 00 00 mov rdx, QWORD PTR gs:88 - 00058 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] - 0005c c7 04 08 01 00 - 00 00 mov DWORD PTR [rax+rcx], 1 - -; 5634 : } - - 00063 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0006a 5f pop rdi - 0006b 5d pop rbp - 0006c c3 ret 0 -stbi_convert_iphone_png_to_rgb_thread ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_set_unpremultiply_on_load_thread -_TEXT SEGMENT -flag_true_if_should_unpremultiply$ = 224 -stbi_set_unpremultiply_on_load_thread PROC ; COMDAT - -; 5625 : { - -$LN3: - 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00004 55 push rbp - 00005 57 push rdi - 00006 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00012 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001e 90 npad 1 - -; 5626 : stbi__unpremultiply_on_load_local = flag_true_if_should_unpremultiply; - - 0001f b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__unpremultiply_on_load_local - 00024 8b c0 mov eax, eax - 00026 8b 0d 00 00 00 - 00 mov ecx, DWORD PTR _tls_index - 0002c 65 48 8b 14 25 - 58 00 00 00 mov rdx, QWORD PTR gs:88 - 00035 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] - 00039 8b 95 e0 00 00 - 00 mov edx, DWORD PTR flag_true_if_should_unpremultiply$[rbp] - 0003f 89 14 08 mov DWORD PTR [rax+rcx], edx - -; 5627 : stbi__unpremultiply_on_load_set = 1; - - 00042 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__unpremultiply_on_load_set - 00047 8b c0 mov eax, eax - 00049 8b 0d 00 00 00 - 00 mov ecx, DWORD PTR _tls_index - 0004f 65 48 8b 14 25 - 58 00 00 00 mov rdx, QWORD PTR gs:88 - 00058 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] - 0005c c7 04 08 01 00 - 00 00 mov DWORD PTR [rax+rcx], 1 - -; 5628 : } - - 00063 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0006a 5f pop rdi - 0006b 5d pop rbp - 0006c c3 ret 0 -stbi_set_unpremultiply_on_load_thread ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_set_flip_vertically_on_load -_TEXT SEGMENT -flag_true_if_should_flip$ = 224 -stbi_set_flip_vertically_on_load PROC ; COMDAT - -; 1150 : { - -$LN3: - 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00004 55 push rbp - 00005 57 push rdi - 00006 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00012 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001e 90 npad 1 - -; 1151 : stbi__vertically_flip_on_load_global = flag_true_if_should_flip; - - 0001f 8b 85 e0 00 00 - 00 mov eax, DWORD PTR flag_true_if_should_flip$[rbp] - 00025 89 05 00 00 00 - 00 mov DWORD PTR stbi__vertically_flip_on_load_global, eax - -; 1152 : } - - 0002b 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00032 5f pop rdi - 00033 5d pop rbp - 00034 c3 ret 0 -stbi_set_flip_vertically_on_load ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_convert_iphone_png_to_rgb -_TEXT SEGMENT -flag_true_if_should_convert$ = 224 -stbi_convert_iphone_png_to_rgb PROC ; COMDAT - -; 5613 : { - -$LN3: - 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00004 55 push rbp - 00005 57 push rdi - 00006 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00012 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001e 90 npad 1 - -; 5614 : stbi__de_iphone_flag_global = flag_true_if_should_convert; - - 0001f 8b 85 e0 00 00 - 00 mov eax, DWORD PTR flag_true_if_should_convert$[rbp] - 00025 89 05 00 00 00 - 00 mov DWORD PTR stbi__de_iphone_flag_global, eax - -; 5615 : } - - 0002b 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00032 5f pop rdi - 00033 5d pop rbp - 00034 c3 ret 0 -stbi_convert_iphone_png_to_rgb ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_set_unpremultiply_on_load -_TEXT SEGMENT -flag_true_if_should_unpremultiply$ = 224 -stbi_set_unpremultiply_on_load PROC ; COMDAT - -; 5608 : { - -$LN3: - 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00004 55 push rbp - 00005 57 push rdi - 00006 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00012 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001e 90 npad 1 - -; 5609 : stbi__unpremultiply_on_load_global = flag_true_if_should_unpremultiply; - - 0001f 8b 85 e0 00 00 - 00 mov eax, DWORD PTR flag_true_if_should_unpremultiply$[rbp] - 00025 89 05 00 00 00 - 00 mov DWORD PTR stbi__unpremultiply_on_load_global, eax - -; 5610 : } - - 0002b 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00032 5f pop rdi - 00033 5d pop rbp - 00034 c3 ret 0 -stbi_set_unpremultiply_on_load ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_is_16_bit_from_file -_TEXT SEGMENT -r$ = 4 -s$ = 48 -pos$ = 292 -__$ArrayPad$ = 504 -f$ = 544 -stbi_is_16_bit_from_file PROC ; COMDAT - -; 8663 : { - -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 28 02 - 00 00 sub rsp, 552 ; 00000228H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 48 - 02 00 00 mov rcx, QWORD PTR [rsp+584] - 0002c 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 f8 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00049 90 npad 1 - -; 8664 : int r; -; 8665 : stbi__context s; -; 8666 : long pos = ftell(f); - - 0004a 48 8b 8d 20 02 - 00 00 mov rcx, QWORD PTR f$[rbp] - 00051 ff 15 00 00 00 - 00 call QWORD PTR __imp_ftell - 00057 89 85 24 01 00 - 00 mov DWORD PTR pos$[rbp], eax - -; 8667 : stbi__start_file(&s, f); - - 0005d 48 8b 95 20 02 - 00 00 mov rdx, QWORD PTR f$[rbp] - 00064 48 8d 4d 30 lea rcx, QWORD PTR s$[rbp] - 00068 e8 00 00 00 00 call stbi__start_file - 0006d 90 npad 1 - -; 8668 : r = stbi__is_16_main(&s); - - 0006e 48 8d 4d 30 lea rcx, QWORD PTR s$[rbp] - 00072 e8 00 00 00 00 call stbi__is_16_main - 00077 89 45 04 mov DWORD PTR r$[rbp], eax - -; 8669 : fseek(f, pos, SEEK_SET); - - 0007a 45 33 c0 xor r8d, r8d - 0007d 8b 95 24 01 00 - 00 mov edx, DWORD PTR pos$[rbp] - 00083 48 8b 8d 20 02 - 00 00 mov rcx, QWORD PTR f$[rbp] - 0008a ff 15 00 00 00 - 00 call QWORD PTR __imp_fseek - 00090 90 npad 1 - -; 8670 : return r; - - 00091 8b 45 04 mov eax, DWORD PTR r$[rbp] - -; 8671 : } - - 00094 8b f8 mov edi, eax - 00096 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0009a 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_is_16_bit_from_file$rtcFrameData - 000a1 e8 00 00 00 00 call _RTC_CheckStackVars - 000a6 8b c7 mov eax, edi - 000a8 48 8b 8d f8 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000af 48 33 cd xor rcx, rbp - 000b2 e8 00 00 00 00 call __security_check_cookie - 000b7 48 8d a5 08 02 - 00 00 lea rsp, QWORD PTR [rbp+520] - 000be 5f pop rdi - 000bf 5d pop rbp - 000c0 c3 ret 0 -stbi_is_16_bit_from_file ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_is_16_bit -_TEXT SEGMENT -f$ = 8 -result$ = 36 -filename$ = 288 -stbi_is_16_bit PROC ; COMDAT - -; 8652 : { - -$LN4: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 8653 : FILE *f = stbi__fopen(filename, "rb"); - - 00020 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_02JDPG@rb@ - 00027 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR filename$[rbp] - 0002e e8 00 00 00 00 call stbi__fopen - 00033 48 89 45 08 mov QWORD PTR f$[rbp], rax - -; 8654 : int result; -; 8655 : if (!f) - - 00037 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0 - 0003c 75 0e jne SHORT $LN2@stbi_is_16 - -; 8656 : return stbi__err("can't fopen", "Unable to open file"); - - 0003e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0M@JPDHFAGK@can?8t?5fopen@ - 00045 e8 00 00 00 00 call stbi__err - 0004a eb 1a jmp SHORT $LN1@stbi_is_16 -$LN2@stbi_is_16: - -; 8657 : result = stbi_is_16_bit_from_file(f); - - 0004c 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] - 00050 e8 00 00 00 00 call stbi_is_16_bit_from_file - 00055 89 45 24 mov DWORD PTR result$[rbp], eax - -; 8658 : fclose(f); - - 00058 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] - 0005c ff 15 00 00 00 - 00 call QWORD PTR __imp_fclose - 00062 90 npad 1 - -; 8659 : return result; - - 00063 8b 45 24 mov eax, DWORD PTR result$[rbp] -$LN1@stbi_is_16: - -; 8660 : } - - 00066 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 0006d 5f pop rdi - 0006e 5d pop rbp - 0006f c3 ret 0 -stbi_is_16_bit ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_info_from_file -_TEXT SEGMENT -r$ = 4 -s$ = 48 -pos$ = 292 -__$ArrayPad$ = 504 -f$ = 544 -x$ = 552 -y$ = 560 -comp$ = 568 -stbi_info_from_file PROC ; COMDAT - -; 8641 : { - -$LN3: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 28 02 - 00 00 sub rsp, 552 ; 00000228H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00027 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 48 - 02 00 00 mov rcx, QWORD PTR [rsp+584] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 f8 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 8642 : int r; -; 8643 : stbi__context s; -; 8644 : long pos = ftell(f); - - 00059 48 8b 8d 20 02 - 00 00 mov rcx, QWORD PTR f$[rbp] - 00060 ff 15 00 00 00 - 00 call QWORD PTR __imp_ftell - 00066 89 85 24 01 00 - 00 mov DWORD PTR pos$[rbp], eax - -; 8645 : stbi__start_file(&s, f); - - 0006c 48 8b 95 20 02 - 00 00 mov rdx, QWORD PTR f$[rbp] - 00073 48 8d 4d 30 lea rcx, QWORD PTR s$[rbp] - 00077 e8 00 00 00 00 call stbi__start_file - 0007c 90 npad 1 - -; 8646 : r = stbi__info_main(&s, x, y, comp); - - 0007d 4c 8b 8d 38 02 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00084 4c 8b 85 30 02 - 00 00 mov r8, QWORD PTR y$[rbp] - 0008b 48 8b 95 28 02 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00092 48 8d 4d 30 lea rcx, QWORD PTR s$[rbp] - 00096 e8 00 00 00 00 call stbi__info_main - 0009b 89 45 04 mov DWORD PTR r$[rbp], eax - -; 8647 : fseek(f, pos, SEEK_SET); - - 0009e 45 33 c0 xor r8d, r8d - 000a1 8b 95 24 01 00 - 00 mov edx, DWORD PTR pos$[rbp] - 000a7 48 8b 8d 20 02 - 00 00 mov rcx, QWORD PTR f$[rbp] - 000ae ff 15 00 00 00 - 00 call QWORD PTR __imp_fseek - 000b4 90 npad 1 - -; 8648 : return r; - - 000b5 8b 45 04 mov eax, DWORD PTR r$[rbp] - -; 8649 : } - - 000b8 8b f8 mov edi, eax - 000ba 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000be 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_info_from_file$rtcFrameData - 000c5 e8 00 00 00 00 call _RTC_CheckStackVars - 000ca 8b c7 mov eax, edi - 000cc 48 8b 8d f8 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000d3 48 33 cd xor rcx, rbp - 000d6 e8 00 00 00 00 call __security_check_cookie - 000db 48 8d a5 08 02 - 00 00 lea rsp, QWORD PTR [rbp+520] - 000e2 5f pop rdi - 000e3 5d pop rbp - 000e4 c3 ret 0 -stbi_info_from_file ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_info -_TEXT SEGMENT -f$ = 8 -result$ = 36 -filename$ = 288 -x$ = 296 -y$ = 304 -comp$ = 312 -stbi_info PROC ; COMDAT - -; 8630 : { - -$LN4: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 8631 : FILE *f = stbi__fopen(filename, "rb"); - - 0002f 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_02JDPG@rb@ - 00036 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR filename$[rbp] - 0003d e8 00 00 00 00 call stbi__fopen - 00042 48 89 45 08 mov QWORD PTR f$[rbp], rax - -; 8632 : int result; -; 8633 : if (!f) - - 00046 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0 - 0004b 75 0e jne SHORT $LN2@stbi_info - -; 8634 : return stbi__err("can't fopen", "Unable to open file"); - - 0004d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0M@JPDHFAGK@can?8t?5fopen@ - 00054 e8 00 00 00 00 call stbi__err - 00059 eb 2f jmp SHORT $LN1@stbi_info -$LN2@stbi_info: - -; 8635 : result = stbi_info_from_file(f, x, y, comp); - - 0005b 4c 8b 8d 38 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00062 4c 8b 85 30 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 00069 48 8b 95 28 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00070 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] - 00074 e8 00 00 00 00 call stbi_info_from_file - 00079 89 45 24 mov DWORD PTR result$[rbp], eax - -; 8636 : fclose(f); - - 0007c 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] - 00080 ff 15 00 00 00 - 00 call QWORD PTR __imp_fclose - 00086 90 npad 1 - -; 8637 : return result; - - 00087 8b 45 24 mov eax, DWORD PTR result$[rbp] -$LN1@stbi_info: - -; 8638 : } - - 0008a 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 00091 5f pop rdi - 00092 5d pop rbp - 00093 c3 ret 0 -stbi_info ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_is_16_bit_from_callbacks -_TEXT SEGMENT -s$ = 16 -__$ArrayPad$ = 440 -c$ = 480 -user$ = 488 -stbi_is_16_bit_from_callbacks PROC ; COMDAT - -; 8697 : { - -$LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec e8 01 - 00 00 sub rsp, 488 ; 000001e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 0001d b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00027 f3 ab rep stosd - 00029 48 8b 8c 24 08 - 02 00 00 mov rcx, QWORD PTR [rsp+520] - 00031 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00038 48 33 c5 xor rax, rbp - 0003b 48 89 85 b8 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00042 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0004e 90 npad 1 - -; 8698 : stbi__context s; -; 8699 : stbi__start_callbacks(&s, (stbi_io_callbacks *)c, user); - - 0004f 4c 8b 85 e8 01 - 00 00 mov r8, QWORD PTR user$[rbp] - 00056 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR c$[rbp] - 0005d 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 00061 e8 00 00 00 00 call stbi__start_callbacks - 00066 90 npad 1 - -; 8700 : return stbi__is_16_main(&s); - - 00067 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 0006b e8 00 00 00 00 call stbi__is_16_main - -; 8701 : } - - 00070 48 8b f8 mov rdi, rax - 00073 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00077 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_is_16_bit_from_callbacks$rtcFrameData - 0007e e8 00 00 00 00 call _RTC_CheckStackVars - 00083 48 8b c7 mov rax, rdi - 00086 48 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0008d 48 33 cd xor rcx, rbp - 00090 e8 00 00 00 00 call __security_check_cookie - 00095 48 8d a5 c8 01 - 00 00 lea rsp, QWORD PTR [rbp+456] - 0009c 5f pop rdi - 0009d 5d pop rbp - 0009e c3 ret 0 -stbi_is_16_bit_from_callbacks ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_is_16_bit_from_memory -_TEXT SEGMENT -s$ = 16 -__$ArrayPad$ = 440 -buffer$ = 480 -len$ = 488 -stbi_is_16_bit_from_memory PROC ; COMDAT - -; 8690 : { - -$LN3: - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec e8 01 - 00 00 sub rsp, 488 ; 000001e8H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 0001c b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00026 f3 ab rep stosd - 00028 48 8b 8c 24 08 - 02 00 00 mov rcx, QWORD PTR [rsp+520] - 00030 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00037 48 33 c5 xor rax, rbp - 0003a 48 89 85 b8 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00041 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0004d 90 npad 1 - -; 8691 : stbi__context s; -; 8692 : stbi__start_mem(&s, buffer, len); - - 0004e 44 8b 85 e8 01 - 00 00 mov r8d, DWORD PTR len$[rbp] - 00055 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR buffer$[rbp] - 0005c 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 00060 e8 00 00 00 00 call stbi__start_mem - 00065 90 npad 1 - -; 8693 : return stbi__is_16_main(&s); - - 00066 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 0006a e8 00 00 00 00 call stbi__is_16_main - -; 8694 : } - - 0006f 48 8b f8 mov rdi, rax - 00072 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00076 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_is_16_bit_from_memory$rtcFrameData - 0007d e8 00 00 00 00 call _RTC_CheckStackVars - 00082 48 8b c7 mov rax, rdi - 00085 48 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0008c 48 33 cd xor rcx, rbp - 0008f e8 00 00 00 00 call __security_check_cookie - 00094 48 8d a5 c8 01 - 00 00 lea rsp, QWORD PTR [rbp+456] - 0009b 5f pop rdi - 0009c 5d pop rbp - 0009d c3 ret 0 -stbi_is_16_bit_from_memory ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_info_from_callbacks -_TEXT SEGMENT -s$ = 16 -__$ArrayPad$ = 440 -c$ = 480 -user$ = 488 -x$ = 496 -y$ = 504 -comp$ = 512 -stbi_info_from_callbacks PROC ; COMDAT - -; 8683 : { - -$LN3: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec e8 01 - 00 00 sub rsp, 488 ; 000001e8H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00027 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 08 - 02 00 00 mov rcx, QWORD PTR [rsp+520] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 b8 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 8684 : stbi__context s; -; 8685 : stbi__start_callbacks(&s, (stbi_io_callbacks *)c, user); - - 00059 4c 8b 85 e8 01 - 00 00 mov r8, QWORD PTR user$[rbp] - 00060 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR c$[rbp] - 00067 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 0006b e8 00 00 00 00 call stbi__start_callbacks - 00070 90 npad 1 - -; 8686 : return stbi__info_main(&s, x, y, comp); - - 00071 4c 8b 8d 00 02 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00078 4c 8b 85 f8 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 0007f 48 8b 95 f0 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00086 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 0008a e8 00 00 00 00 call stbi__info_main - -; 8687 : } - - 0008f 48 8b f8 mov rdi, rax - 00092 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00096 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_info_from_callbacks$rtcFrameData - 0009d e8 00 00 00 00 call _RTC_CheckStackVars - 000a2 48 8b c7 mov rax, rdi - 000a5 48 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000ac 48 33 cd xor rcx, rbp - 000af e8 00 00 00 00 call __security_check_cookie - 000b4 48 8d a5 c8 01 - 00 00 lea rsp, QWORD PTR [rbp+456] - 000bb 5f pop rdi - 000bc 5d pop rbp - 000bd c3 ret 0 -stbi_info_from_callbacks ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_info_from_memory -_TEXT SEGMENT -s$ = 16 -__$ArrayPad$ = 440 -buffer$ = 480 -len$ = 488 -x$ = 496 -y$ = 504 -comp$ = 512 -stbi_info_from_memory PROC ; COMDAT - -; 8675 : { - -$LN3: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00013 55 push rbp - 00014 57 push rdi - 00015 48 81 ec e8 01 - 00 00 sub rsp, 488 ; 000001e8H - 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00021 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00026 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00030 f3 ab rep stosd - 00032 48 8b 8c 24 08 - 02 00 00 mov rcx, QWORD PTR [rsp+520] - 0003a 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00041 48 33 c5 xor rax, rbp - 00044 48 89 85 b8 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00057 90 npad 1 - -; 8676 : stbi__context s; -; 8677 : stbi__start_mem(&s, buffer, len); - - 00058 44 8b 85 e8 01 - 00 00 mov r8d, DWORD PTR len$[rbp] - 0005f 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR buffer$[rbp] - 00066 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 0006a e8 00 00 00 00 call stbi__start_mem - 0006f 90 npad 1 - -; 8678 : return stbi__info_main(&s, x, y, comp); - - 00070 4c 8b 8d 00 02 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00077 4c 8b 85 f8 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 0007e 48 8b 95 f0 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00085 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 00089 e8 00 00 00 00 call stbi__info_main - -; 8679 : } - - 0008e 48 8b f8 mov rdi, rax - 00091 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00095 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_info_from_memory$rtcFrameData - 0009c e8 00 00 00 00 call _RTC_CheckStackVars - 000a1 48 8b c7 mov rax, rdi - 000a4 48 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000ab 48 33 cd xor rcx, rbp - 000ae e8 00 00 00 00 call __security_check_cookie - 000b3 48 8d a5 c8 01 - 00 00 lea rsp, QWORD PTR [rbp+456] - 000ba 5f pop rdi - 000bb 5d pop rbp - 000bc c3 ret 0 -stbi_info_from_memory ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_image_free -_TEXT SEGMENT -retval_from_stbi_load$ = 224 -stbi_image_free PROC ; COMDAT - -; 1135 : { - -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 1136 : STBI_FREE(retval_from_stbi_load); - - 00020 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR retval_from_stbi_load$[rbp] - 00027 ff 15 00 00 00 - 00 call QWORD PTR __imp_free - 0002d 90 npad 1 - -; 1137 : } - - 0002e 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00035 5f pop rdi - 00036 5d pop rbp - 00037 c3 ret 0 -stbi_image_free ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_failure_reason -_TEXT SEGMENT -stbi_failure_reason PROC ; COMDAT - -; 991 : { - -$LN3: - 00000 40 55 push rbp - 00002 57 push rdi - 00003 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001b 90 npad 1 - -; 992 : return stbi__g_failure_reason; - - 0001c b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__g_failure_reason - 00021 8b c0 mov eax, eax - 00023 8b 0d 00 00 00 - 00 mov ecx, DWORD PTR _tls_index - 00029 65 48 8b 14 25 - 58 00 00 00 mov rdx, QWORD PTR gs:88 - 00032 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] - 00036 48 8b 04 08 mov rax, QWORD PTR [rax+rcx] - -; 993 : } - - 0003a 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00041 5f pop rdi - 00042 5d pop rbp - 00043 c3 ret 0 -stbi_failure_reason ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_is_hdr_from_file -_TEXT SEGMENT -pos$ = 4 -res$ = 36 -s$ = 80 -__$ArrayPad$ = 504 -f$ = 544 -stbi_is_hdr_from_file PROC ; COMDAT - -; 1611 : { - -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 28 02 - 00 00 sub rsp, 552 ; 00000228H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 48 - 02 00 00 mov rcx, QWORD PTR [rsp+584] - 0002c 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 f8 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00049 90 npad 1 - -; 1612 : #ifndef STBI_NO_HDR -; 1613 : long pos = ftell(f); - - 0004a 48 8b 8d 20 02 - 00 00 mov rcx, QWORD PTR f$[rbp] - 00051 ff 15 00 00 00 - 00 call QWORD PTR __imp_ftell - 00057 89 45 04 mov DWORD PTR pos$[rbp], eax - -; 1614 : int res; -; 1615 : stbi__context s; -; 1616 : stbi__start_file(&s, f); - - 0005a 48 8b 95 20 02 - 00 00 mov rdx, QWORD PTR f$[rbp] - 00061 48 8d 4d 50 lea rcx, QWORD PTR s$[rbp] - 00065 e8 00 00 00 00 call stbi__start_file - 0006a 90 npad 1 - -; 1617 : res = stbi__hdr_test(&s); - - 0006b 48 8d 4d 50 lea rcx, QWORD PTR s$[rbp] - 0006f e8 00 00 00 00 call stbi__hdr_test - 00074 89 45 24 mov DWORD PTR res$[rbp], eax - -; 1618 : fseek(f, pos, SEEK_SET); - - 00077 45 33 c0 xor r8d, r8d - 0007a 8b 55 04 mov edx, DWORD PTR pos$[rbp] - 0007d 48 8b 8d 20 02 - 00 00 mov rcx, QWORD PTR f$[rbp] - 00084 ff 15 00 00 00 - 00 call QWORD PTR __imp_fseek - 0008a 90 npad 1 - -; 1619 : return res; - - 0008b 8b 45 24 mov eax, DWORD PTR res$[rbp] - -; 1620 : #else -; 1621 : STBI_NOTUSED(f); -; 1622 : return 0; -; 1623 : #endif -; 1624 : } - - 0008e 8b f8 mov edi, eax - 00090 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00094 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_is_hdr_from_file$rtcFrameData - 0009b e8 00 00 00 00 call _RTC_CheckStackVars - 000a0 8b c7 mov eax, edi - 000a2 48 8b 8d f8 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000a9 48 33 cd xor rcx, rbp - 000ac e8 00 00 00 00 call __security_check_cookie - 000b1 48 8d a5 08 02 - 00 00 lea rsp, QWORD PTR [rbp+520] - 000b8 5f pop rdi - 000b9 5d pop rbp - 000ba c3 ret 0 -stbi_is_hdr_from_file ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_is_hdr -_TEXT SEGMENT -f$ = 8 -result$ = 36 -filename$ = 288 -stbi_is_hdr PROC ; COMDAT - -; 1600 : { - -$LN4: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 90 npad 1 - -; 1601 : FILE *f = stbi__fopen(filename, "rb"); - - 00020 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_02JDPG@rb@ - 00027 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR filename$[rbp] - 0002e e8 00 00 00 00 call stbi__fopen - 00033 48 89 45 08 mov QWORD PTR f$[rbp], rax - -; 1602 : int result = 0; - - 00037 c7 45 24 00 00 - 00 00 mov DWORD PTR result$[rbp], 0 - -; 1603 : if (f) { - - 0003e 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0 - 00043 74 17 je SHORT $LN2@stbi_is_hd - -; 1604 : result = stbi_is_hdr_from_file(f); - - 00045 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] - 00049 e8 00 00 00 00 call stbi_is_hdr_from_file - 0004e 89 45 24 mov DWORD PTR result$[rbp], eax - -; 1605 : fclose(f); - - 00051 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] - 00055 ff 15 00 00 00 - 00 call QWORD PTR __imp_fclose - 0005b 90 npad 1 -$LN2@stbi_is_hd: - -; 1606 : } -; 1607 : return result; - - 0005c 8b 45 24 mov eax, DWORD PTR result$[rbp] - -; 1608 : } - - 0005f 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 -stbi_is_hdr ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_is_hdr_from_memory -_TEXT SEGMENT -s$ = 16 -__$ArrayPad$ = 440 -buffer$ = 480 -len$ = 488 -stbi_is_hdr_from_memory PROC ; COMDAT - -; 1586 : { - -$LN3: - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec e8 01 - 00 00 sub rsp, 488 ; 000001e8H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 0001c b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00026 f3 ab rep stosd - 00028 48 8b 8c 24 08 - 02 00 00 mov rcx, QWORD PTR [rsp+520] - 00030 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00037 48 33 c5 xor rax, rbp - 0003a 48 89 85 b8 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00041 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0004d 90 npad 1 - -; 1587 : #ifndef STBI_NO_HDR -; 1588 : stbi__context s; -; 1589 : stbi__start_mem(&s, buffer, len); - - 0004e 44 8b 85 e8 01 - 00 00 mov r8d, DWORD PTR len$[rbp] - 00055 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR buffer$[rbp] - 0005c 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 00060 e8 00 00 00 00 call stbi__start_mem - 00065 90 npad 1 - -; 1590 : return stbi__hdr_test(&s); - - 00066 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 0006a e8 00 00 00 00 call stbi__hdr_test - -; 1591 : #else -; 1592 : STBI_NOTUSED(buffer); -; 1593 : STBI_NOTUSED(len); -; 1594 : return 0; -; 1595 : #endif -; 1596 : } - - 0006f 48 8b f8 mov rdi, rax - 00072 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00076 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_is_hdr_from_memory$rtcFrameData - 0007d e8 00 00 00 00 call _RTC_CheckStackVars - 00082 48 8b c7 mov rax, rdi - 00085 48 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0008c 48 33 cd xor rcx, rbp - 0008f e8 00 00 00 00 call __security_check_cookie - 00094 48 8d a5 c8 01 - 00 00 lea rsp, QWORD PTR [rbp+456] - 0009b 5f pop rdi - 0009c 5d pop rbp - 0009d c3 ret 0 -stbi_is_hdr_from_memory ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_is_hdr_from_callbacks -_TEXT SEGMENT -s$ = 16 -__$ArrayPad$ = 440 -clbk$ = 480 -user$ = 488 -stbi_is_hdr_from_callbacks PROC ; COMDAT - -; 1628 : { - -$LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec e8 01 - 00 00 sub rsp, 488 ; 000001e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 0001d b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00027 f3 ab rep stosd - 00029 48 8b 8c 24 08 - 02 00 00 mov rcx, QWORD PTR [rsp+520] - 00031 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00038 48 33 c5 xor rax, rbp - 0003b 48 89 85 b8 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00042 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0004e 90 npad 1 - -; 1629 : #ifndef STBI_NO_HDR -; 1630 : stbi__context s; -; 1631 : stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user); - - 0004f 4c 8b 85 e8 01 - 00 00 mov r8, QWORD PTR user$[rbp] - 00056 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR clbk$[rbp] - 0005d 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 00061 e8 00 00 00 00 call stbi__start_callbacks - 00066 90 npad 1 - -; 1632 : return stbi__hdr_test(&s); - - 00067 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 0006b e8 00 00 00 00 call stbi__hdr_test - -; 1633 : #else -; 1634 : STBI_NOTUSED(clbk); -; 1635 : STBI_NOTUSED(user); -; 1636 : return 0; -; 1637 : #endif -; 1638 : } - - 00070 48 8b f8 mov rdi, rax - 00073 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00077 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_is_hdr_from_callbacks$rtcFrameData - 0007e e8 00 00 00 00 call _RTC_CheckStackVars - 00083 48 8b c7 mov rax, rdi - 00086 48 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0008d 48 33 cd xor rcx, rbp - 00090 e8 00 00 00 00 call __security_check_cookie - 00095 48 8d a5 c8 01 - 00 00 lea rsp, QWORD PTR [rbp+456] - 0009c 5f pop rdi - 0009d 5d pop rbp - 0009e c3 ret 0 -stbi_is_hdr_from_callbacks ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_ldr_to_hdr_scale -_TEXT SEGMENT -scale$ = 224 -stbi_ldr_to_hdr_scale PROC ; COMDAT - -; 1648 : { - -$LN3: - 00000 f3 0f 11 44 24 - 08 movss DWORD PTR [rsp+8], xmm0 - 00006 55 push rbp - 00007 57 push rdi - 00008 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000f 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00014 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00020 90 npad 1 - -; 1649 : stbi__l2h_scale = scale; - - 00021 f3 0f 10 85 e0 - 00 00 00 movss xmm0, DWORD PTR scale$[rbp] - 00029 f3 0f 11 05 00 - 00 00 00 movss DWORD PTR stbi__l2h_scale, xmm0 - -; 1650 : } - - 00031 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00038 5f pop rdi - 00039 5d pop rbp - 0003a c3 ret 0 -stbi_ldr_to_hdr_scale ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_ldr_to_hdr_gamma -_TEXT SEGMENT -gamma$ = 224 -stbi_ldr_to_hdr_gamma PROC ; COMDAT - -; 1644 : { - -$LN3: - 00000 f3 0f 11 44 24 - 08 movss DWORD PTR [rsp+8], xmm0 - 00006 55 push rbp - 00007 57 push rdi - 00008 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000f 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00014 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00020 90 npad 1 - -; 1645 : stbi__l2h_gamma = gamma; - - 00021 f3 0f 10 85 e0 - 00 00 00 movss xmm0, DWORD PTR gamma$[rbp] - 00029 f3 0f 11 05 00 - 00 00 00 movss DWORD PTR stbi__l2h_gamma, xmm0 - -; 1646 : } - - 00031 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00038 5f pop rdi - 00039 5d pop rbp - 0003a c3 ret 0 -stbi_ldr_to_hdr_gamma ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_hdr_to_ldr_scale -_TEXT SEGMENT -scale$ = 224 -stbi_hdr_to_ldr_scale PROC ; COMDAT - -; 1660 : { - -$LN3: - 00000 f3 0f 11 44 24 - 08 movss DWORD PTR [rsp+8], xmm0 - 00006 55 push rbp - 00007 57 push rdi - 00008 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000f 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00014 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00020 90 npad 1 - -; 1661 : stbi__h2l_scale_i = 1 / scale; - - 00021 f3 0f 10 05 00 - 00 00 00 movss xmm0, DWORD PTR __real@3f800000 - 00029 f3 0f 5e 85 e0 - 00 00 00 divss xmm0, DWORD PTR scale$[rbp] - 00031 f3 0f 11 05 00 - 00 00 00 movss DWORD PTR stbi__h2l_scale_i, xmm0 - -; 1662 : } - - 00039 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00040 5f pop rdi - 00041 5d pop rbp - 00042 c3 ret 0 -stbi_hdr_to_ldr_scale ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_hdr_to_ldr_gamma -_TEXT SEGMENT -gamma$ = 224 -stbi_hdr_to_ldr_gamma PROC ; COMDAT - -; 1656 : { - -$LN3: - 00000 f3 0f 11 44 24 - 08 movss DWORD PTR [rsp+8], xmm0 - 00006 55 push rbp - 00007 57 push rdi - 00008 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000f 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00014 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 0001b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00020 90 npad 1 - -; 1657 : stbi__h2l_gamma_i = 1 / gamma; - - 00021 f3 0f 10 05 00 - 00 00 00 movss xmm0, DWORD PTR __real@3f800000 - 00029 f3 0f 5e 85 e0 - 00 00 00 divss xmm0, DWORD PTR gamma$[rbp] - 00031 f3 0f 11 05 00 - 00 00 00 movss DWORD PTR stbi__h2l_gamma_i, xmm0 - -; 1658 : } - - 00039 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00040 5f pop rdi - 00041 5d pop rbp - 00042 c3 ret 0 -stbi_hdr_to_ldr_gamma ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_loadf_from_file -_TEXT SEGMENT -s$ = 16 -__$ArrayPad$ = 440 -f$ = 480 -x$ = 488 -y$ = 496 -comp$ = 504 -req_comp$ = 512 -stbi_loadf_from_file PROC ; COMDAT - -; 1572 : { - -$LN3: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec f8 01 - 00 00 sub rsp, 504 ; 000001f8H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00027 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 18 - 02 00 00 mov rcx, QWORD PTR [rsp+536] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 b8 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 1573 : stbi__context s; -; 1574 : stbi__start_file(&s, f); - - 00059 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR f$[rbp] - 00060 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 00064 e8 00 00 00 00 call stbi__start_file - 00069 90 npad 1 - -; 1575 : return stbi__loadf_main(&s, x, y, comp, req_comp); - - 0006a 8b 85 00 02 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 00070 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00074 4c 8b 8d f8 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 0007b 4c 8b 85 f0 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 00082 48 8b 95 e8 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00089 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 0008d e8 00 00 00 00 call stbi__loadf_main - -; 1576 : } - - 00092 48 8b f8 mov rdi, rax - 00095 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00099 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_loadf_from_file$rtcFrameData - 000a0 e8 00 00 00 00 call _RTC_CheckStackVars - 000a5 48 8b c7 mov rax, rdi - 000a8 48 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000af 48 33 cd xor rcx, rbp - 000b2 e8 00 00 00 00 call __security_check_cookie - 000b7 48 8d a5 c8 01 - 00 00 lea rsp, QWORD PTR [rbp+456] - 000be 5f pop rdi - 000bf 5d pop rbp - 000c0 c3 ret 0 -stbi_loadf_from_file ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_loadf -_TEXT SEGMENT -result$ = 8 -f$ = 40 -tv71 = 248 -filename$ = 288 -x$ = 296 -y$ = 304 -comp$ = 312 -req_comp$ = 320 -stbi_loadf PROC ; COMDAT - -; 1561 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 38 01 - 00 00 sub rsp, 312 ; 00000138H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 1562 : float *result; -; 1563 : FILE *f = stbi__fopen(filename, "rb"); - - 0002f 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_02JDPG@rb@ - 00036 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR filename$[rbp] - 0003d e8 00 00 00 00 call stbi__fopen - 00042 48 89 45 28 mov QWORD PTR f$[rbp], rax - -; 1564 : if (!f) - - 00046 48 83 7d 28 00 cmp QWORD PTR f$[rbp], 0 - 0004b 75 31 jne SHORT $LN2@stbi_loadf - -; 1565 : return stbi__errpf("can't fopen", "Unable to open file"); - - 0004d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0M@JPDHFAGK@can?8t?5fopen@ - 00054 e8 00 00 00 00 call stbi__err - 00059 85 c0 test eax, eax - 0005b 74 0d je SHORT $LN4@stbi_loadf - 0005d 48 c7 85 f8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv71[rbp], 0 - 00068 eb 0b jmp SHORT $LN5@stbi_loadf -$LN4@stbi_loadf: - 0006a 48 c7 85 f8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv71[rbp], 0 -$LN5@stbi_loadf: - 00075 48 8b 85 f8 00 - 00 00 mov rax, QWORD PTR tv71[rbp] - 0007c eb 3b jmp SHORT $LN1@stbi_loadf -$LN2@stbi_loadf: - -; 1566 : result = stbi_loadf_from_file(f, x, y, comp, req_comp); - - 0007e 8b 85 40 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 00084 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00088 4c 8b 8d 38 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 0008f 4c 8b 85 30 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 00096 48 8b 95 28 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 0009d 48 8b 4d 28 mov rcx, QWORD PTR f$[rbp] - 000a1 e8 00 00 00 00 call stbi_loadf_from_file - 000a6 48 89 45 08 mov QWORD PTR result$[rbp], rax - -; 1567 : fclose(f); - - 000aa 48 8b 4d 28 mov rcx, QWORD PTR f$[rbp] - 000ae ff 15 00 00 00 - 00 call QWORD PTR __imp_fclose - 000b4 90 npad 1 - -; 1568 : return result; - - 000b5 48 8b 45 08 mov rax, QWORD PTR result$[rbp] -$LN1@stbi_loadf: - -; 1569 : } - - 000b9 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000c0 5f pop rdi - 000c1 5d pop rbp - 000c2 c3 ret 0 -stbi_loadf ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_loadf_from_callbacks -_TEXT SEGMENT -s$ = 16 -__$ArrayPad$ = 440 -clbk$ = 480 -user$ = 488 -x$ = 496 -y$ = 504 -comp$ = 512 -req_comp$ = 520 -stbi_loadf_from_callbacks PROC ; COMDAT - -; 1553 : { - -$LN3: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec f8 01 - 00 00 sub rsp, 504 ; 000001f8H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00027 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 18 - 02 00 00 mov rcx, QWORD PTR [rsp+536] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 b8 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 1554 : stbi__context s; -; 1555 : stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user); - - 00059 4c 8b 85 e8 01 - 00 00 mov r8, QWORD PTR user$[rbp] - 00060 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR clbk$[rbp] - 00067 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 0006b e8 00 00 00 00 call stbi__start_callbacks - 00070 90 npad 1 - -; 1556 : return stbi__loadf_main(&s, x, y, comp, req_comp); - - 00071 8b 85 08 02 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 00077 89 44 24 20 mov DWORD PTR [rsp+32], eax - 0007b 4c 8b 8d 00 02 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00082 4c 8b 85 f8 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 00089 48 8b 95 f0 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00090 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 00094 e8 00 00 00 00 call stbi__loadf_main - -; 1557 : } - - 00099 48 8b f8 mov rdi, rax - 0009c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 000a0 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_loadf_from_callbacks$rtcFrameData - 000a7 e8 00 00 00 00 call _RTC_CheckStackVars - 000ac 48 8b c7 mov rax, rdi - 000af 48 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000b6 48 33 cd xor rcx, rbp - 000b9 e8 00 00 00 00 call __security_check_cookie - 000be 48 8d a5 c8 01 - 00 00 lea rsp, QWORD PTR [rbp+456] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 -stbi_loadf_from_callbacks ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_loadf_from_memory -_TEXT SEGMENT -s$ = 16 -__$ArrayPad$ = 440 -buffer$ = 480 -len$ = 488 -x$ = 496 -y$ = 504 -comp$ = 512 -req_comp$ = 520 -stbi_loadf_from_memory PROC ; COMDAT - -; 1545 : { - -$LN3: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00013 55 push rbp - 00014 57 push rdi - 00015 48 81 ec f8 01 - 00 00 sub rsp, 504 ; 000001f8H - 0001c 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00021 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00026 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00030 f3 ab rep stosd - 00032 48 8b 8c 24 18 - 02 00 00 mov rcx, QWORD PTR [rsp+536] - 0003a 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00041 48 33 c5 xor rax, rbp - 00044 48 89 85 b8 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00057 90 npad 1 - -; 1546 : stbi__context s; -; 1547 : stbi__start_mem(&s, buffer, len); - - 00058 44 8b 85 e8 01 - 00 00 mov r8d, DWORD PTR len$[rbp] - 0005f 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR buffer$[rbp] - 00066 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 0006a e8 00 00 00 00 call stbi__start_mem - 0006f 90 npad 1 - -; 1548 : return stbi__loadf_main(&s, x, y, comp, req_comp); - - 00070 8b 85 08 02 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 00076 89 44 24 20 mov DWORD PTR [rsp+32], eax - 0007a 4c 8b 8d 00 02 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00081 4c 8b 85 f8 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 00088 48 8b 95 f0 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 0008f 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 00093 e8 00 00 00 00 call stbi__loadf_main - -; 1549 : } - - 00098 48 8b f8 mov rdi, rax - 0009b 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 0009f 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_loadf_from_memory$rtcFrameData - 000a6 e8 00 00 00 00 call _RTC_CheckStackVars - 000ab 48 8b c7 mov rax, rdi - 000ae 48 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000b5 48 33 cd xor rcx, rbp - 000b8 e8 00 00 00 00 call __security_check_cookie - 000bd 48 8d a5 c8 01 - 00 00 lea rsp, QWORD PTR [rbp+456] - 000c4 5f pop rdi - 000c5 5d pop rbp - 000c6 c3 ret 0 -stbi_loadf_from_memory ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_load_from_file_16 -_TEXT SEGMENT -result$ = 8 -s$ = 48 -__$ArrayPad$ = 472 -f$ = 512 -x$ = 520 -y$ = 528 -comp$ = 536 -req_comp$ = 544 -stbi_load_from_file_16 PROC ; COMDAT - -; 1450 : { - -$LN4: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 18 02 - 00 00 sub rsp, 536 ; 00000218H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00027 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 38 - 02 00 00 mov rcx, QWORD PTR [rsp+568] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 d8 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 1451 : stbi__uint16 *result; -; 1452 : stbi__context s; -; 1453 : stbi__start_file(&s, f); - - 00059 48 8b 95 00 02 - 00 00 mov rdx, QWORD PTR f$[rbp] - 00060 48 8d 4d 30 lea rcx, QWORD PTR s$[rbp] - 00064 e8 00 00 00 00 call stbi__start_file - 00069 90 npad 1 - -; 1454 : result = stbi__load_and_postprocess_16bit(&s, x, y, comp, req_comp); - - 0006a 8b 85 20 02 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 00070 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00074 4c 8b 8d 18 02 - 00 00 mov r9, QWORD PTR comp$[rbp] - 0007b 4c 8b 85 10 02 - 00 00 mov r8, QWORD PTR y$[rbp] - 00082 48 8b 95 08 02 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00089 48 8d 4d 30 lea rcx, QWORD PTR s$[rbp] - 0008d e8 00 00 00 00 call stbi__load_and_postprocess_16bit - 00092 48 89 45 08 mov QWORD PTR result$[rbp], rax - -; 1455 : if (result) { - - 00096 48 83 7d 08 00 cmp QWORD PTR result$[rbp], 0 - 0009b 74 2c je SHORT $LN2@stbi_load_ - -; 1456 : // need to 'unget' all the characters in the IO buffer -; 1457 : fseek(f, -(int)(s.img_buffer_end - s.img_buffer), SEEK_CUR); - - 0009d 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp+192] - 000a4 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR s$[rbp+200] - 000ab 48 2b c8 sub rcx, rax - 000ae 48 8b c1 mov rax, rcx - 000b1 f7 d8 neg eax - 000b3 41 b8 01 00 00 - 00 mov r8d, 1 - 000b9 8b d0 mov edx, eax - 000bb 48 8b 8d 00 02 - 00 00 mov rcx, QWORD PTR f$[rbp] - 000c2 ff 15 00 00 00 - 00 call QWORD PTR __imp_fseek - 000c8 90 npad 1 -$LN2@stbi_load_: - -; 1458 : } -; 1459 : return result; - - 000c9 48 8b 45 08 mov rax, QWORD PTR result$[rbp] - -; 1460 : } - - 000cd 48 8b f8 mov rdi, rax - 000d0 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 000d4 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_load_from_file_16$rtcFrameData - 000db e8 00 00 00 00 call _RTC_CheckStackVars - 000e0 48 8b c7 mov rax, rdi - 000e3 48 8b 8d d8 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000ea 48 33 cd xor rcx, rbp - 000ed e8 00 00 00 00 call __security_check_cookie - 000f2 48 8d a5 e8 01 - 00 00 lea rsp, QWORD PTR [rbp+488] - 000f9 5f pop rdi - 000fa 5d pop rbp - 000fb c3 ret 0 -stbi_load_from_file_16 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_load_16 -_TEXT SEGMENT -f$ = 8 -result$ = 40 -tv71 = 248 -filename$ = 288 -x$ = 296 -y$ = 304 -comp$ = 312 -req_comp$ = 320 -stbi_load_16 PROC ; COMDAT - -; 1463 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 38 01 - 00 00 sub rsp, 312 ; 00000138H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 1464 : FILE *f = stbi__fopen(filename, "rb"); - - 0002f 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_02JDPG@rb@ - 00036 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR filename$[rbp] - 0003d e8 00 00 00 00 call stbi__fopen - 00042 48 89 45 08 mov QWORD PTR f$[rbp], rax - -; 1465 : stbi__uint16 *result; -; 1466 : if (!f) - - 00046 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0 - 0004b 75 31 jne SHORT $LN2@stbi_load_ - -; 1467 : return (stbi_us *)stbi__errpuc("can't fopen", "Unable to open file"); - - 0004d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0M@JPDHFAGK@can?8t?5fopen@ - 00054 e8 00 00 00 00 call stbi__err - 00059 85 c0 test eax, eax - 0005b 74 0d je SHORT $LN4@stbi_load_ - 0005d 48 c7 85 f8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv71[rbp], 0 - 00068 eb 0b jmp SHORT $LN5@stbi_load_ -$LN4@stbi_load_: - 0006a 48 c7 85 f8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv71[rbp], 0 -$LN5@stbi_load_: - 00075 48 8b 85 f8 00 - 00 00 mov rax, QWORD PTR tv71[rbp] - 0007c eb 3b jmp SHORT $LN1@stbi_load_ -$LN2@stbi_load_: - -; 1468 : result = stbi_load_from_file_16(f, x, y, comp, req_comp); - - 0007e 8b 85 40 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 00084 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00088 4c 8b 8d 38 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 0008f 4c 8b 85 30 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 00096 48 8b 95 28 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] - 000a1 e8 00 00 00 00 call stbi_load_from_file_16 - 000a6 48 89 45 28 mov QWORD PTR result$[rbp], rax - -; 1469 : fclose(f); - - 000aa 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] - 000ae ff 15 00 00 00 - 00 call QWORD PTR __imp_fclose - 000b4 90 npad 1 - -; 1470 : return result; - - 000b5 48 8b 45 28 mov rax, QWORD PTR result$[rbp] -$LN1@stbi_load_: - -; 1471 : } - - 000b9 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000c0 5f pop rdi - 000c1 5d pop rbp - 000c2 c3 ret 0 -stbi_load_16 ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_load_16_from_callbacks -_TEXT SEGMENT -s$ = 16 -__$ArrayPad$ = 440 -clbk$ = 480 -user$ = 488 -x$ = 496 -y$ = 504 -channels_in_file$ = 512 -desired_channels$ = 520 -stbi_load_16_from_callbacks PROC ; COMDAT - -; 1485 : { - -$LN3: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec f8 01 - 00 00 sub rsp, 504 ; 000001f8H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00027 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 18 - 02 00 00 mov rcx, QWORD PTR [rsp+536] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 b8 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 1486 : stbi__context s; -; 1487 : stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user); - - 00059 4c 8b 85 e8 01 - 00 00 mov r8, QWORD PTR user$[rbp] - 00060 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR clbk$[rbp] - 00067 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 0006b e8 00 00 00 00 call stbi__start_callbacks - 00070 90 npad 1 - -; 1488 : return stbi__load_and_postprocess_16bit(&s, x, y, channels_in_file, desired_channels); - - 00071 8b 85 08 02 00 - 00 mov eax, DWORD PTR desired_channels$[rbp] - 00077 89 44 24 20 mov DWORD PTR [rsp+32], eax - 0007b 4c 8b 8d 00 02 - 00 00 mov r9, QWORD PTR channels_in_file$[rbp] - 00082 4c 8b 85 f8 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 00089 48 8b 95 f0 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00090 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 00094 e8 00 00 00 00 call stbi__load_and_postprocess_16bit - -; 1489 : } - - 00099 48 8b f8 mov rdi, rax - 0009c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 000a0 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_load_16_from_callbacks$rtcFrameData - 000a7 e8 00 00 00 00 call _RTC_CheckStackVars - 000ac 48 8b c7 mov rax, rdi - 000af 48 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000b6 48 33 cd xor rcx, rbp - 000b9 e8 00 00 00 00 call __security_check_cookie - 000be 48 8d a5 c8 01 - 00 00 lea rsp, QWORD PTR [rbp+456] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 -stbi_load_16_from_callbacks ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_load_16_from_memory -_TEXT SEGMENT -s$ = 16 -__$ArrayPad$ = 440 -buffer$ = 480 -len$ = 488 -x$ = 496 -y$ = 504 -channels_in_file$ = 512 -desired_channels$ = 520 -stbi_load_16_from_memory PROC ; COMDAT - -; 1477 : { - -$LN3: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00013 55 push rbp - 00014 57 push rdi - 00015 48 81 ec f8 01 - 00 00 sub rsp, 504 ; 000001f8H - 0001c 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00021 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00026 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00030 f3 ab rep stosd - 00032 48 8b 8c 24 18 - 02 00 00 mov rcx, QWORD PTR [rsp+536] - 0003a 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00041 48 33 c5 xor rax, rbp - 00044 48 89 85 b8 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00057 90 npad 1 - -; 1478 : stbi__context s; -; 1479 : stbi__start_mem(&s, buffer, len); - - 00058 44 8b 85 e8 01 - 00 00 mov r8d, DWORD PTR len$[rbp] - 0005f 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR buffer$[rbp] - 00066 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 0006a e8 00 00 00 00 call stbi__start_mem - 0006f 90 npad 1 - -; 1480 : return stbi__load_and_postprocess_16bit(&s, x, y, channels_in_file, desired_channels); - - 00070 8b 85 08 02 00 - 00 mov eax, DWORD PTR desired_channels$[rbp] - 00076 89 44 24 20 mov DWORD PTR [rsp+32], eax - 0007a 4c 8b 8d 00 02 - 00 00 mov r9, QWORD PTR channels_in_file$[rbp] - 00081 4c 8b 85 f8 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 00088 48 8b 95 f0 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 0008f 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 00093 e8 00 00 00 00 call stbi__load_and_postprocess_16bit - -; 1481 : } - - 00098 48 8b f8 mov rdi, rax - 0009b 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 0009f 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_load_16_from_memory$rtcFrameData - 000a6 e8 00 00 00 00 call _RTC_CheckStackVars - 000ab 48 8b c7 mov rax, rdi - 000ae 48 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000b5 48 33 cd xor rcx, rbp - 000b8 e8 00 00 00 00 call __security_check_cookie - 000bd 48 8d a5 c8 01 - 00 00 lea rsp, QWORD PTR [rbp+456] - 000c4 5f pop rdi - 000c5 5d pop rbp - 000c6 c3 ret 0 -stbi_load_16_from_memory ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_load_gif_from_memory -_TEXT SEGMENT -result$ = 8 -s$ = 48 -tv88 = 468 -__$ArrayPad$ = 472 -buffer$ = 512 -len$ = 520 -delays$ = 528 -x$ = 536 -y$ = 544 -z$ = 552 -comp$ = 560 -req_comp$ = 568 -stbi_load_gif_from_memory PROC ; COMDAT - -; 1510 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00013 55 push rbp - 00014 57 push rdi - 00015 48 81 ec 28 02 - 00 00 sub rsp, 552 ; 00000228H - 0001c 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00021 48 8d 7c 24 40 lea rdi, QWORD PTR [rsp+64] - 00026 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00030 f3 ab rep stosd - 00032 48 8b 8c 24 48 - 02 00 00 mov rcx, QWORD PTR [rsp+584] - 0003a 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00041 48 33 c5 xor rax, rbp - 00044 48 89 85 d8 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00057 90 npad 1 - -; 1511 : unsigned char *result; -; 1512 : stbi__context s; -; 1513 : stbi__start_mem(&s, buffer, len); - - 00058 44 8b 85 08 02 - 00 00 mov r8d, DWORD PTR len$[rbp] - 0005f 48 8b 95 00 02 - 00 00 mov rdx, QWORD PTR buffer$[rbp] - 00066 48 8d 4d 30 lea rcx, QWORD PTR s$[rbp] - 0006a e8 00 00 00 00 call stbi__start_mem - 0006f 90 npad 1 - -; 1514 : -; 1515 : result = (unsigned char *)stbi__load_gif_main(&s, delays, x, y, z, comp, req_comp); - - 00070 8b 85 38 02 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 00076 89 44 24 30 mov DWORD PTR [rsp+48], eax - 0007a 48 8b 85 30 02 - 00 00 mov rax, QWORD PTR comp$[rbp] - 00081 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 00086 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR z$[rbp] - 0008d 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 00092 4c 8b 8d 20 02 - 00 00 mov r9, QWORD PTR y$[rbp] - 00099 4c 8b 85 18 02 - 00 00 mov r8, QWORD PTR x$[rbp] - 000a0 48 8b 95 10 02 - 00 00 mov rdx, QWORD PTR delays$[rbp] - 000a7 48 8d 4d 30 lea rcx, QWORD PTR s$[rbp] - 000ab e8 00 00 00 00 call stbi__load_gif_main - 000b0 48 89 45 08 mov QWORD PTR result$[rbp], rax - -; 1516 : if (stbi__vertically_flip_on_load) { - - 000b4 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__vertically_flip_on_load_set - 000b9 8b c0 mov eax, eax - 000bb 8b 0d 00 00 00 - 00 mov ecx, DWORD PTR _tls_index - 000c1 65 48 8b 14 25 - 58 00 00 00 mov rdx, QWORD PTR gs:88 - 000ca 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] - 000ce 83 3c 08 00 cmp DWORD PTR [rax+rcx], 0 - 000d2 74 25 je SHORT $LN4@stbi_load_ - 000d4 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__vertically_flip_on_load_local - 000d9 8b c0 mov eax, eax - 000db 8b 0d 00 00 00 - 00 mov ecx, DWORD PTR _tls_index - 000e1 65 48 8b 14 25 - 58 00 00 00 mov rdx, QWORD PTR gs:88 - 000ea 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] - 000ee 8b 04 08 mov eax, DWORD PTR [rax+rcx] - 000f1 89 85 d4 01 00 - 00 mov DWORD PTR tv88[rbp], eax - 000f7 eb 0c jmp SHORT $LN5@stbi_load_ -$LN4@stbi_load_: - 000f9 8b 05 00 00 00 - 00 mov eax, DWORD PTR stbi__vertically_flip_on_load_global - 000ff 89 85 d4 01 00 - 00 mov DWORD PTR tv88[rbp], eax -$LN5@stbi_load_: - 00105 83 bd d4 01 00 - 00 00 cmp DWORD PTR tv88[rbp], 0 - 0010c 74 34 je SHORT $LN2@stbi_load_ - -; 1517 : stbi__vertical_flip_slices(result, *x, *y, *z, *comp); - - 0010e 48 8b 85 30 02 - 00 00 mov rax, QWORD PTR comp$[rbp] - 00115 8b 00 mov eax, DWORD PTR [rax] - 00117 89 44 24 20 mov DWORD PTR [rsp+32], eax - 0011b 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR z$[rbp] - 00122 44 8b 08 mov r9d, DWORD PTR [rax] - 00125 48 8b 85 20 02 - 00 00 mov rax, QWORD PTR y$[rbp] - 0012c 44 8b 00 mov r8d, DWORD PTR [rax] - 0012f 48 8b 85 18 02 - 00 00 mov rax, QWORD PTR x$[rbp] - 00136 8b 10 mov edx, DWORD PTR [rax] - 00138 48 8b 4d 08 mov rcx, QWORD PTR result$[rbp] - 0013c e8 00 00 00 00 call stbi__vertical_flip_slices - 00141 90 npad 1 -$LN2@stbi_load_: - -; 1518 : } -; 1519 : -; 1520 : return result; - - 00142 48 8b 45 08 mov rax, QWORD PTR result$[rbp] - -; 1521 : } - - 00146 48 8b f8 mov rdi, rax - 00149 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] - 0014d 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_load_gif_from_memory$rtcFrameData - 00154 e8 00 00 00 00 call _RTC_CheckStackVars - 00159 48 8b c7 mov rax, rdi - 0015c 48 8b 8d d8 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00163 48 33 cd xor rcx, rbp - 00166 e8 00 00 00 00 call __security_check_cookie - 0016b 48 8d a5 e8 01 - 00 00 lea rsp, QWORD PTR [rbp+488] - 00172 5f pop rdi - 00173 5d pop rbp - 00174 c3 ret 0 -stbi_load_gif_from_memory ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_load_from_file -_TEXT SEGMENT -result$ = 8 -s$ = 48 -__$ArrayPad$ = 472 -f$ = 512 -x$ = 520 -y$ = 528 -comp$ = 536 -req_comp$ = 544 -stbi_load_from_file PROC ; COMDAT - -; 1437 : { - -$LN4: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 18 02 - 00 00 sub rsp, 536 ; 00000218H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00027 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 38 - 02 00 00 mov rcx, QWORD PTR [rsp+568] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 d8 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 1438 : unsigned char *result; -; 1439 : stbi__context s; -; 1440 : stbi__start_file(&s, f); - - 00059 48 8b 95 00 02 - 00 00 mov rdx, QWORD PTR f$[rbp] - 00060 48 8d 4d 30 lea rcx, QWORD PTR s$[rbp] - 00064 e8 00 00 00 00 call stbi__start_file - 00069 90 npad 1 - -; 1441 : result = stbi__load_and_postprocess_8bit(&s, x, y, comp, req_comp); - - 0006a 8b 85 20 02 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 00070 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00074 4c 8b 8d 18 02 - 00 00 mov r9, QWORD PTR comp$[rbp] - 0007b 4c 8b 85 10 02 - 00 00 mov r8, QWORD PTR y$[rbp] - 00082 48 8b 95 08 02 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00089 48 8d 4d 30 lea rcx, QWORD PTR s$[rbp] - 0008d e8 00 00 00 00 call stbi__load_and_postprocess_8bit - 00092 48 89 45 08 mov QWORD PTR result$[rbp], rax - -; 1442 : if (result) { - - 00096 48 83 7d 08 00 cmp QWORD PTR result$[rbp], 0 - 0009b 74 2c je SHORT $LN2@stbi_load_ - -; 1443 : // need to 'unget' all the characters in the IO buffer -; 1444 : fseek(f, -(int)(s.img_buffer_end - s.img_buffer), SEEK_CUR); - - 0009d 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR s$[rbp+192] - 000a4 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR s$[rbp+200] - 000ab 48 2b c8 sub rcx, rax - 000ae 48 8b c1 mov rax, rcx - 000b1 f7 d8 neg eax - 000b3 41 b8 01 00 00 - 00 mov r8d, 1 - 000b9 8b d0 mov edx, eax - 000bb 48 8b 8d 00 02 - 00 00 mov rcx, QWORD PTR f$[rbp] - 000c2 ff 15 00 00 00 - 00 call QWORD PTR __imp_fseek - 000c8 90 npad 1 -$LN2@stbi_load_: - -; 1445 : } -; 1446 : return result; - - 000c9 48 8b 45 08 mov rax, QWORD PTR result$[rbp] - -; 1447 : } - - 000cd 48 8b f8 mov rdi, rax - 000d0 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 000d4 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_load_from_file$rtcFrameData - 000db e8 00 00 00 00 call _RTC_CheckStackVars - 000e0 48 8b c7 mov rax, rdi - 000e3 48 8b 8d d8 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000ea 48 33 cd xor rcx, rbp - 000ed e8 00 00 00 00 call __security_check_cookie - 000f2 48 8d a5 e8 01 - 00 00 lea rsp, QWORD PTR [rbp+488] - 000f9 5f pop rdi - 000fa 5d pop rbp - 000fb c3 ret 0 -stbi_load_from_file ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_load -_TEXT SEGMENT -f$ = 8 -result$ = 40 -tv71 = 248 -filename$ = 288 -x$ = 296 -y$ = 304 -comp$ = 312 -req_comp$ = 320 -stbi_load PROC ; COMDAT - -; 1426 : { - -$LN6: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 38 01 - 00 00 sub rsp, 312 ; 00000138H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002e 90 npad 1 - -; 1427 : FILE *f = stbi__fopen(filename, "rb"); - - 0002f 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_02JDPG@rb@ - 00036 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR filename$[rbp] - 0003d e8 00 00 00 00 call stbi__fopen - 00042 48 89 45 08 mov QWORD PTR f$[rbp], rax - -; 1428 : unsigned char *result; -; 1429 : if (!f) - - 00046 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0 - 0004b 75 31 jne SHORT $LN2@stbi_load - -; 1430 : return stbi__errpuc("can't fopen", "Unable to open file"); - - 0004d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0M@JPDHFAGK@can?8t?5fopen@ - 00054 e8 00 00 00 00 call stbi__err - 00059 85 c0 test eax, eax - 0005b 74 0d je SHORT $LN4@stbi_load - 0005d 48 c7 85 f8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv71[rbp], 0 - 00068 eb 0b jmp SHORT $LN5@stbi_load -$LN4@stbi_load: - 0006a 48 c7 85 f8 00 - 00 00 00 00 00 - 00 mov QWORD PTR tv71[rbp], 0 -$LN5@stbi_load: - 00075 48 8b 85 f8 00 - 00 00 mov rax, QWORD PTR tv71[rbp] - 0007c eb 3b jmp SHORT $LN1@stbi_load -$LN2@stbi_load: - -; 1431 : result = stbi_load_from_file(f, x, y, comp, req_comp); - - 0007e 8b 85 40 01 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 00084 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00088 4c 8b 8d 38 01 - 00 00 mov r9, QWORD PTR comp$[rbp] - 0008f 4c 8b 85 30 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 00096 48 8b 95 28 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] - 000a1 e8 00 00 00 00 call stbi_load_from_file - 000a6 48 89 45 28 mov QWORD PTR result$[rbp], rax - -; 1432 : fclose(f); - - 000aa 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] - 000ae ff 15 00 00 00 - 00 call QWORD PTR __imp_fclose - 000b4 90 npad 1 - -; 1433 : return result; - - 000b5 48 8b 45 28 mov rax, QWORD PTR result$[rbp] -$LN1@stbi_load: - -; 1434 : } - - 000b9 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000c0 5f pop rdi - 000c1 5d pop rbp - 000c2 c3 ret 0 -stbi_load ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_load_from_callbacks -_TEXT SEGMENT -s$ = 16 -__$ArrayPad$ = 440 -clbk$ = 480 -user$ = 488 -x$ = 496 -y$ = 504 -comp$ = 512 -req_comp$ = 520 -stbi_load_from_callbacks PROC ; COMDAT - -; 1501 : { - -$LN3: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec f8 01 - 00 00 sub rsp, 504 ; 000001f8H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00027 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 18 - 02 00 00 mov rcx, QWORD PTR [rsp+536] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 b8 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 90 npad 1 - -; 1502 : stbi__context s; -; 1503 : stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user); - - 00059 4c 8b 85 e8 01 - 00 00 mov r8, QWORD PTR user$[rbp] - 00060 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR clbk$[rbp] - 00067 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 0006b e8 00 00 00 00 call stbi__start_callbacks - 00070 90 npad 1 - -; 1504 : return stbi__load_and_postprocess_8bit(&s, x, y, comp, req_comp); - - 00071 8b 85 08 02 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 00077 89 44 24 20 mov DWORD PTR [rsp+32], eax - 0007b 4c 8b 8d 00 02 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00082 4c 8b 85 f8 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 00089 48 8b 95 f0 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 00090 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 00094 e8 00 00 00 00 call stbi__load_and_postprocess_8bit - -; 1505 : } - - 00099 48 8b f8 mov rdi, rax - 0009c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 000a0 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_load_from_callbacks$rtcFrameData - 000a7 e8 00 00 00 00 call _RTC_CheckStackVars - 000ac 48 8b c7 mov rax, rdi - 000af 48 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000b6 48 33 cd xor rcx, rbp - 000b9 e8 00 00 00 00 call __security_check_cookie - 000be 48 8d a5 c8 01 - 00 00 lea rsp, QWORD PTR [rbp+456] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 -stbi_load_from_callbacks ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h -; COMDAT stbi_load_from_memory -_TEXT SEGMENT -s$ = 16 -__$ArrayPad$ = 440 -buffer$ = 480 -len$ = 488 -x$ = 496 -y$ = 504 -comp$ = 512 -req_comp$ = 520 -stbi_load_from_memory PROC ; COMDAT - -; 1493 : { - -$LN3: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00013 55 push rbp - 00014 57 push rdi - 00015 48 81 ec f8 01 - 00 00 sub rsp, 504 ; 000001f8H - 0001c 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00021 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00026 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00030 f3 ab rep stosd - 00032 48 8b 8c 24 18 - 02 00 00 mov rcx, QWORD PTR [rsp+536] - 0003a 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00041 48 33 c5 xor rax, rbp - 00044 48 89 85 b8 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h - 00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00057 90 npad 1 - -; 1494 : stbi__context s; -; 1495 : stbi__start_mem(&s, buffer, len); - - 00058 44 8b 85 e8 01 - 00 00 mov r8d, DWORD PTR len$[rbp] - 0005f 48 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR buffer$[rbp] - 00066 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 0006a e8 00 00 00 00 call stbi__start_mem - 0006f 90 npad 1 - -; 1496 : return stbi__load_and_postprocess_8bit(&s, x, y, comp, req_comp); - - 00070 8b 85 08 02 00 - 00 mov eax, DWORD PTR req_comp$[rbp] - 00076 89 44 24 20 mov DWORD PTR [rsp+32], eax - 0007a 4c 8b 8d 00 02 - 00 00 mov r9, QWORD PTR comp$[rbp] - 00081 4c 8b 85 f8 01 - 00 00 mov r8, QWORD PTR y$[rbp] - 00088 48 8b 95 f0 01 - 00 00 mov rdx, QWORD PTR x$[rbp] - 0008f 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] - 00093 e8 00 00 00 00 call stbi__load_and_postprocess_8bit - -; 1497 : } - - 00098 48 8b f8 mov rdi, rax - 0009b 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 0009f 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:stbi_load_from_memory$rtcFrameData - 000a6 e8 00 00 00 00 call _RTC_CheckStackVars - 000ab 48 8b c7 mov rax, rdi - 000ae 48 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000b5 48 33 cd xor rcx, rbp - 000b8 e8 00 00 00 00 call __security_check_cookie - 000bd 48 8d a5 c8 01 - 00 00 lea rsp, QWORD PTR [rbp+456] - 000c4 5f pop rdi - 000c5 5d pop rbp - 000c6 c3 ret 0 -stbi_load_from_memory ENDP -_TEXT ENDS -END diff --git a/obj/StgSharp.Native/Debug/x64/sn_native.nativecodeanalysis.sarif b/obj/StgSharp.Native/Debug/x64/sn_native.nativecodeanalysis.sarif deleted file mode 100644 index 00b238b9..00000000 --- a/obj/StgSharp.Native/Debug/x64/sn_native.nativecodeanalysis.sarif +++ /dev/null @@ -1,169 +0,0 @@ -{ - "version": "2.1.0", - "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", - "runs": [ - { - "results": [ - { - "ruleId": "C6262", - "message": { - "text": "函数使用堆叠的 \"35036\" 字节。请考虑将一些数据移动到堆。" - }, - "analysisTarget": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-src/sn_native.c" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "file:///D:/platform-dev/StgSharp.Native/lib/stbi/stb_image.h" - }, - "region": { - "startLine": 7817, - "startColumn": 14 - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "stbi__load_gif_main", - "decoratedName": "stbi__load_gif_main", - "kind": "function" - } - ] - } - ] - }, - { - "ruleId": "C6262", - "message": { - "text": "函数使用堆叠的 \"34980\" 字节。请考虑将一些数据移动到堆。" - }, - "analysisTarget": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-src/sn_native.c" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "file:///D:/platform-dev/StgSharp.Native/lib/stbi/stb_image.h" - }, - "region": { - "startLine": 7910, - "startColumn": 14 - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "stbi__gif_load", - "decoratedName": "stbi__gif_load", - "kind": "function" - } - ] - } - ] - } - ], - "tool": { - "driver": { - "name": "PREfast", - "fullName": "MSVC Code Analysis", - "version": "14.44.35220.0", - "informationUri": "https://aka.ms/cpp/ca" - } - }, - "invocations": [ - { - "executionSuccessful": true - } - ], - "artifacts": [ - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-src/sn_native.c" - }, - "roles": [ - "analysisTarget" - ], - "hashes": { - "sha-256": "8f89dd595bb98c84b3146bb17fbb4fce491f43bb495c85bd86a4f6ea0df54224" - } - }, - { - "location": { - "uri": "file:///D:/platform-dev/StgSharp.Native/lib/stbi/stb_image.h" - }, - "roles": [ - "resultFile" - ], - "hashes": { - "sha-256": "c45e3ef56a7d946654740f02e25fcb99a819861155ad1173349a289f2a000ce2" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/stgsharpnative.h" - }, - "hashes": { - "sha-256": "5eee6b3faf7bf2247fe44898b0fcb71794c346ae2f0b58953e1632a49c1b6c4e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_internal.h" - }, - "hashes": { - "sha-256": "7430f5e8582c672b79e266834c290e4d426ce44b7bd3b7e5534f201a48ff6df9" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_target.h" - }, - "hashes": { - "sha-256": "b8c543a09db7bd21a2b409476024fa6bec6a5218d88ca036d15584ed453ceb91" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/gl.h" - }, - "hashes": { - "sha-256": "c9d0960c919f9ef4cfa6449f2b0c00f2ad8286b420e01ee7ec34b40c618392fc" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/khrplatform.h" - }, - "hashes": { - "sha-256": "f5b69ed6a7bef6651526abb2d1263811d59acdba7a29368bb9be1a0f9e80160f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/wgl.h" - }, - "hashes": { - "sha-256": "86d6c58acb0a92b35ce8d94d6817fcec3f73d9e147e8621f468f143db1bbd81f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/glfw/glfw3.h" - }, - "hashes": { - "sha-256": "85c584857dddd780c131940ed69cd516c2b60d61664df9cb254710c3602c1008" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/glfw_function.h" - }, - "hashes": { - "sha-256": "4baa73f465e3e347fc0ad0ff666a6db2e83e749acd770f4bee02c12a7b9ec36e" - } - } - ] - } - ] -} \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/sn_native.nativecodeanalysis.xml b/obj/StgSharp.Native/Debug/x64/sn_native.nativecodeanalysis.xml deleted file mode 100644 index e69af59c..00000000 --- a/obj/StgSharp.Native/Debug/x64/sn_native.nativecodeanalysis.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - D:\platform-dev\StgSharp.Native\lib\stbi\ - stb_image.h - 7817 - 13 - - 6262 - 函数使用堆叠的 "35036" 字节。请考虑将一些数据移动到堆。 - stbi__load_gif_main - stbi__load_gif_main - 7817 - - - - - D:\platform-dev\StgSharp.Native\lib\stbi\ - stb_image.h - 7910 - 13 - - 6262 - 函数使用堆叠的 "34980" 字节。请考虑将一些数据移动到堆。 - stbi__gif_load - stbi__gif_load - 7910 - - - \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/sn_native.obj b/obj/StgSharp.Native/Debug/x64/sn_native.obj deleted file mode 100644 index 3b71bdb4..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/sn_native.obj and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/sn_native.sbr b/obj/StgSharp.Native/Debug/x64/sn_native.sbr deleted file mode 100644 index f44ef8b8..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/sn_native.sbr and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/str_string.cod b/obj/StgSharp.Native/Debug/x64/str_string.cod deleted file mode 100644 index 2d2b9a76..00000000 --- a/obj/StgSharp.Native/Debug/x64/str_string.cod +++ /dev/null @@ -1,505 +0,0 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.44.35220.0 - -include listing.inc - -INCLUDELIB MSVCRTD -INCLUDELIB OLDNAMES - -_DATA SEGMENT -COMM infolog:BYTE:0200H -_DATA ENDS -msvcjmc SEGMENT -__5C8CA4D3_mmintrin@h DB 01H -__8C83BECC_concurrencysal@h DB 01H -__608E3340_sal@h DB 01H -__FB67E29A_vadefs@h DB 01H -__1D1B619C_vcruntime@h DB 01H -__735960E1_corecrt@h DB 01H -__211DB995_corecrt_malloc@h DB 01H -__7CD62D9E_malloc@h DB 01H -__9DCE0DC8_xmmintrin@h DB 01H -__4C2AD0C7_winpackagefamily@h DB 01H -__9DED9ED1_winapifamily@h DB 01H -__12FEDF4E_sdkddkver@h DB 01H -__9BAEE128_excpt@h DB 01H -__B7B53233_stdarg@h DB 01H -__6B04FCB3_specstrings_undef@h DB 01H -__F4027AF7_specstrings_strict@h DB 01H -__B90340D4_sdv_driverspecs@h DB 01H -__BFFF5AD3_driverspecs@h DB 01H -__32847078_specstrings@h DB 01H -__108B2620_corecrt_wctype@h DB 01H -__6CD6613D_ctype@h DB 01H -__30902A1F_kernelspecs@h DB 01H -__376FD5CA_basetsd@h DB 01H -__13DE2371_errno@h DB 01H -__8C6AE390_vcruntime_string@h DB 01H -__8ACB2152_corecrt_memcpy_s@h DB 01H -__EA6C9D17_corecrt_memory@h DB 01H -__0DF2AF52_corecrt_wstring@h DB 01H -__6E889ECC_string@h DB 01H -__9BEDF4DE_guiddef@h DB 01H -__51BFD2FE_pshpack4@h DB 01H -__31652CEA_poppack@h DB 01H -__5532AE4C_pshpack2@h DB 01H -__58A52B9A_pshpack8@h DB 01H -__57741015_pshpack1@h DB 01H -__CDE68C90_apiset@h DB 01H -__0BF06E8D_ktmtypes@h DB 01H -__40C200C0_winnt@h DB 01H -__9336F789_minwindef@h DB 01H -__55136115_windef@h DB 01H -__32205BF0_apisetcconv@h DB 01H -__B48FDEA0_minwinbase@h DB 01H -__3551B028_apiquery2@h DB 01H -__65BE04AA_processenv@h DB 01H -__4767CA46_fileapi@h DB 01H -__282E6C4B_fileapifromapp@h DB 01H -__393AF12C_debugapi@h DB 01H -__EBC502B8_utilapiset@h DB 01H -__1EAD8C69_handleapi@h DB 01H -__D8EF9B29_errhandlingapi@h DB 01H -__97FC1204_fibersapi@h DB 01H -__27448220_namedpipeapi@h DB 01H -__6EA33B2A_profileapi@h DB 01H -__EAC6F673_heapapi@h DB 01H -__D64EEA5A_ioapiset@h DB 01H -__144BD4B6_synchapi@h DB 01H -__03B1C640_interlockedapi@h DB 01H -__DC64CB38_processthreadsapi@h DB 01H -__D719B518_sysinfoapi@h DB 01H -__410385B1_memoryapi@h DB 01H -__C1AD45EF_enclaveapi@h DB 01H -__F4C3AA32_threadpoollegacyapiset@h DB 01H -__AC5A7A9F_threadpoolapiset@h DB 01H -__F5254B21_jobapi@h DB 01H -__BCEA6EE8_jobapi2@h DB 01H -__D18ACE72_wow64apiset@h DB 01H -__669B0D4A_libloaderapi@h DB 01H -__645F7034_securitybaseapi@h DB 01H -__67E58557_namespaceapi@h DB 01H -__599D9D3A_systemtopologyapi@h DB 01H -__2337E373_processtopologyapi@h DB 01H -__02BFF239_securityappcontainer@h DB 01H -__9C196272_realtimeapiset@h DB 01H -__5AB313A4_winerror@h DB 01H -__B7E7187B_timezoneapi@h DB 01H -__6DE9EB6F_winbase@h DB 01H -__56B2AFF2_wingdi@h DB 01H -__BA1161A9_tvout@h DB 01H -__0501A018_winuser@h DB 01H -__EF12FA99_datetimeapi@h DB 01H -__8FA7C3CA_winnls@h DB 01H -__390F0C47_stringapiset@h DB 01H -__28605B0A_wincontypes@h DB 01H -__BFBDE86D_consoleapi@h DB 01H -__C3CAFBF0_consoleapi2@h DB 01H -__C20891C7_consoleapi3@h DB 01H -__717C98B6_wincon@h DB 01H -__2884C177_verrsrc@h DB 01H -__A3FD3A34_winver@h DB 01H -__6F8AD9F1_reason@h DB 01H -__4C90FD6F_winreg@h DB 01H -__68AFEBAD_wnnc@h DB 01H -__5A7AB086_winnetwk@h DB 01H -__2FE8A10C_stralign@h DB 01H -__34558472_winsvc@h DB 01H -__058845F1_mcx@h DB 01H -__7F16006B_ime_cmodes@h DB 01H -__0A3AF599_imm@h DB 01H -__9349FE86_windows@h DB 01H -__639A050C_sn_internal@h DB 01H -__836A8CFC_stdint@h DB 01H -__714FE6D7_sn_target@h DB 01H -__60B45B40_corecrt_stdio_config@h DB 01H -__CFA3741E_corecrt_wstdio@h DB 01H -__B3FE3303_stdio@h DB 01H -__955456CD_stddef@h DB 01H -__99AED4FB_corecrt_search@h DB 01H -__8B813BF6_corecrt_wstdlib@h DB 01H -__3D1CA2C3_limits@h DB 01H -__E8FB0A68_stdlib@h DB 01H -__F562FA57_stb_image@h DB 01H -__C95DC661_khrplatform@h DB 01H -__6C577136_gl@h DB 01H -__EE638A2C_wgl@h DB 01H -__8EF9E35C_glfw3@h DB 01H -__F8AC8404_emmintrin@h DB 01H -__270DEC8D_pmmintrin@h DB 01H -__97D49F0F_tmmintrin@h DB 01H -__BEEF8A8C_smmintrin@h DB 01H -__DB8D0340_nmmintrin@h DB 01H -__0E36F90E_wmmintrin@h DB 01H -__C5A2B409_zmmintrin@h DB 01H -__F2B616C3_immintrin@h DB 01H -__9FB25DBE_assert@h DB 01H -__4E664295_glfw_function@h DB 01H -__64C0EF11_StgSharpNative@h DB 01H -__F49407C4_sn_intrinsic@matkernel@h DB 01H -__47E843D2_intrin0@inl@h DB 01H -__130964FF_setjmp@h DB 01H -__4875F786_ammintrin@h DB 01H -__353FD888_intrin@h DB 01H -__5FE1E9E3_isa_availability@h DB 01H -__AA840D82_sn_intrinsic@h DB 01H -__0E68EE93_str_string@c DB 01H -msvcjmc ENDS -PUBLIC index_pair_sse -PUBLIC __JustMyCode_Default -EXTRN _RTC_InitBase:PROC -EXTRN _RTC_Shutdown:PROC -EXTRN __CheckForDebuggerJustMyCode:PROC -; COMDAT pdata -pdata SEGMENT -$pdata$index_pair_sse DD imagerel $LN23 - DD imagerel $LN23+552 - DD imagerel $unwind$index_pair_sse -pdata ENDS -; COMDAT rtc$TMZ -rtc$TMZ SEGMENT -_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown -rtc$TMZ ENDS -; COMDAT rtc$IMZ -rtc$IMZ SEGMENT -_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase -rtc$IMZ ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$index_pair_sse DD 025051c01H - DD 0117231cH - DD 070100047H - DD 0500fH -xdata ENDS -; Function compile flags: /Odt -; COMDAT __JustMyCode_Default -_TEXT SEGMENT -__JustMyCode_Default PROC ; COMDAT - 00000 c2 00 00 ret 0 -__JustMyCode_Default ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\str_string.c -; COMDAT index_pair_sse -_TEXT SEGMENT -index$ = 4 -result$ = 36 -size$ = 68 -end$ = 100 -s$ = 144 -vec$ = 192 -com$ = 240 -i$1 = 280 -i$2 = 312 -tv150 = 516 -str$ = 560 -target$ = 568 -length$ = 576 -index_pair_sse PROC ; COMDAT - -; 8 : { - -$LN23: - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000e 55 push rbp - 0000f 57 push rdi - 00010 48 81 ec 38 02 - 00 00 sub rsp, 568 ; 00000238H - 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E68EE93_str_string@c - 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00028 90 npad 1 - -; 9 : int index = 0, result = 0, size = length, end = size - 8; - - 00029 c7 45 04 00 00 - 00 00 mov DWORD PTR index$[rbp], 0 - 00030 c7 45 24 00 00 - 00 00 mov DWORD PTR result$[rbp], 0 - 00037 8b 85 40 02 00 - 00 mov eax, DWORD PTR length$[rbp] - 0003d 89 45 44 mov DWORD PTR size$[rbp], eax - 00040 8b 45 44 mov eax, DWORD PTR size$[rbp] - 00043 83 e8 08 sub eax, 8 - 00046 89 45 64 mov DWORD PTR end$[rbp], eax - -; 10 : __m128i s = _mm_set1_epi32(target); - - 00049 66 0f 6e 85 38 - 02 00 00 movd xmm0, DWORD PTR target$[rbp] - 00051 66 0f 70 c0 00 pshufd xmm0, xmm0, 0 - 00056 66 0f 7f 85 90 - 00 00 00 movdqa XMMWORD PTR s$[rbp], xmm0 -$LN2@index_pair: - -; 11 : __m128i vec, com; -; 12 : -; 13 : while (index < end) { - - 0005e 8b 45 64 mov eax, DWORD PTR end$[rbp] - 00061 39 45 04 cmp DWORD PTR index$[rbp], eax - 00064 0f 8d 52 01 00 - 00 jge $LN3@index_pair - -; 14 : vec = _mm_loadu_epi32(str + index); - - 0006a 48 63 45 04 movsxd rax, DWORD PTR index$[rbp] - 0006e 48 8b 8d 30 02 - 00 00 mov rcx, QWORD PTR str$[rbp] - 00075 48 8d 04 41 lea rax, QWORD PTR [rcx+rax*2] - 00079 c5 fa 6f 00 vmovdqu xmm0, XMMWORD PTR [rax] - 0007d 66 0f 7f 85 c0 - 00 00 00 movdqa XMMWORD PTR vec$[rbp], xmm0 - -; 15 : com = _mm_cmpeq_epi16(vec, s); - - 00085 66 0f 6f 85 c0 - 00 00 00 movdqa xmm0, XMMWORD PTR vec$[rbp] - 0008d 66 0f 75 85 90 - 00 00 00 pcmpeqw xmm0, XMMWORD PTR s$[rbp] - 00095 66 0f 7f 85 f0 - 00 00 00 movdqa XMMWORD PTR com$[rbp], xmm0 - -; 16 : result = _mm_movemask_epi8(com); - - 0009d 66 0f 6f 85 f0 - 00 00 00 movdqa xmm0, XMMWORD PTR com$[rbp] - 000a5 66 0f d7 c0 pmovmskb eax, xmm0 - 000a9 89 45 24 mov DWORD PTR result$[rbp], eax - -; 17 : if (result) { - - 000ac 83 7d 24 00 cmp DWORD PTR result$[rbp], 0 - 000b0 74 56 je SHORT $LN13@index_pair - -; 18 : for (size_t i = 0; i < 7; i++) { - - 000b2 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR i$1[rbp], 0 - 000bd eb 11 jmp SHORT $LN6@index_pair -$LN4@index_pair: - 000bf 48 8b 85 18 01 - 00 00 mov rax, QWORD PTR i$1[rbp] - 000c6 48 ff c0 inc rax - 000c9 48 89 85 18 01 - 00 00 mov QWORD PTR i$1[rbp], rax -$LN6@index_pair: - 000d0 48 83 bd 18 01 - 00 00 07 cmp QWORD PTR i$1[rbp], 7 - 000d8 73 2e jae SHORT $LN5@index_pair - -; 19 : if (((result & 0xF) == 0xF)) { - - 000da 8b 45 24 mov eax, DWORD PTR result$[rbp] - 000dd 83 e0 0f and eax, 15 - 000e0 83 f8 0f cmp eax, 15 - 000e3 75 10 jne SHORT $LN14@index_pair - -; 20 : return index + i; - - 000e5 48 63 45 04 movsxd rax, DWORD PTR index$[rbp] - 000e9 48 03 85 18 01 - 00 00 add rax, QWORD PTR i$1[rbp] - 000f0 e9 29 01 00 00 jmp $LN1@index_pair -$LN14@index_pair: - -; 21 : } -; 22 : if (result == 0) { - - 000f5 83 7d 24 00 cmp DWORD PTR result$[rbp], 0 - 000f9 75 02 jne SHORT $LN15@index_pair - -; 23 : break; - - 000fb eb 0b jmp SHORT $LN5@index_pair -$LN15@index_pair: - -; 24 : } -; 25 : result >>= 2; - - 000fd 8b 45 24 mov eax, DWORD PTR result$[rbp] - 00100 c1 f8 02 sar eax, 2 - 00103 89 45 24 mov DWORD PTR result$[rbp], eax - -; 26 : } - - 00106 eb b7 jmp SHORT $LN4@index_pair -$LN5@index_pair: -$LN13@index_pair: - -; 27 : } -; 28 : index += 1; - - 00108 8b 45 04 mov eax, DWORD PTR index$[rbp] - 0010b ff c0 inc eax - 0010d 89 45 04 mov DWORD PTR index$[rbp], eax - -; 29 : vec = _mm_loadu_epi32(str + index); - - 00110 48 63 45 04 movsxd rax, DWORD PTR index$[rbp] - 00114 48 8b 8d 30 02 - 00 00 mov rcx, QWORD PTR str$[rbp] - 0011b 48 8d 04 41 lea rax, QWORD PTR [rcx+rax*2] - 0011f c5 fa 6f 00 vmovdqu xmm0, XMMWORD PTR [rax] - 00123 66 0f 7f 85 c0 - 00 00 00 movdqa XMMWORD PTR vec$[rbp], xmm0 - -; 30 : com = _mm_cmpeq_epi16(vec, s); - - 0012b 66 0f 6f 85 c0 - 00 00 00 movdqa xmm0, XMMWORD PTR vec$[rbp] - 00133 66 0f 75 85 90 - 00 00 00 pcmpeqw xmm0, XMMWORD PTR s$[rbp] - 0013b 66 0f 7f 85 f0 - 00 00 00 movdqa XMMWORD PTR com$[rbp], xmm0 - -; 31 : result = _mm_movemask_epi8(com); - - 00143 66 0f 6f 85 f0 - 00 00 00 movdqa xmm0, XMMWORD PTR com$[rbp] - 0014b 66 0f d7 c0 pmovmskb eax, xmm0 - 0014f 89 45 24 mov DWORD PTR result$[rbp], eax - -; 32 : if (result) { - - 00152 83 7d 24 00 cmp DWORD PTR result$[rbp], 0 - 00156 74 56 je SHORT $LN16@index_pair - -; 33 : for (size_t i = 0; i < 7; i++) { - - 00158 48 c7 85 38 01 - 00 00 00 00 00 - 00 mov QWORD PTR i$2[rbp], 0 - 00163 eb 11 jmp SHORT $LN9@index_pair -$LN7@index_pair: - 00165 48 8b 85 38 01 - 00 00 mov rax, QWORD PTR i$2[rbp] - 0016c 48 ff c0 inc rax - 0016f 48 89 85 38 01 - 00 00 mov QWORD PTR i$2[rbp], rax -$LN9@index_pair: - 00176 48 83 bd 38 01 - 00 00 07 cmp QWORD PTR i$2[rbp], 7 - 0017e 73 2e jae SHORT $LN8@index_pair - -; 34 : if (((result & 0xF) == 0xF)) { - - 00180 8b 45 24 mov eax, DWORD PTR result$[rbp] - 00183 83 e0 0f and eax, 15 - 00186 83 f8 0f cmp eax, 15 - 00189 75 10 jne SHORT $LN17@index_pair - -; 35 : return index + i; - - 0018b 48 63 45 04 movsxd rax, DWORD PTR index$[rbp] - 0018f 48 03 85 38 01 - 00 00 add rax, QWORD PTR i$2[rbp] - 00196 e9 83 00 00 00 jmp $LN1@index_pair -$LN17@index_pair: - -; 36 : } -; 37 : if (result == 0) { - - 0019b 83 7d 24 00 cmp DWORD PTR result$[rbp], 0 - 0019f 75 02 jne SHORT $LN18@index_pair - -; 38 : break; - - 001a1 eb 0b jmp SHORT $LN8@index_pair -$LN18@index_pair: - -; 39 : } -; 40 : result >>= 2; - - 001a3 8b 45 24 mov eax, DWORD PTR result$[rbp] - 001a6 c1 f8 02 sar eax, 2 - 001a9 89 45 24 mov DWORD PTR result$[rbp], eax - -; 41 : } - - 001ac eb b7 jmp SHORT $LN7@index_pair -$LN8@index_pair: -$LN16@index_pair: - -; 42 : } -; 43 : index += 7; - - 001ae 8b 45 04 mov eax, DWORD PTR index$[rbp] - 001b1 83 c0 07 add eax, 7 - 001b4 89 45 04 mov DWORD PTR index$[rbp], eax - -; 44 : } - - 001b7 e9 a2 fe ff ff jmp $LN2@index_pair -$LN3@index_pair: - -; 45 : for (; (index < size - 1) && (!result); index += 2) { - - 001bc eb 09 jmp SHORT $LN12@index_pair -$LN10@index_pair: - 001be 8b 45 04 mov eax, DWORD PTR index$[rbp] - 001c1 83 c0 02 add eax, 2 - 001c4 89 45 04 mov DWORD PTR index$[rbp], eax -$LN12@index_pair: - 001c7 8b 45 44 mov eax, DWORD PTR size$[rbp] - 001ca ff c8 dec eax - 001cc 39 45 04 cmp DWORD PTR index$[rbp], eax - 001cf 7d 3d jge SHORT $LN11@index_pair - 001d1 83 7d 24 00 cmp DWORD PTR result$[rbp], 0 - 001d5 75 37 jne SHORT $LN11@index_pair - -; 46 : result = *(int *)(str + index) == target; - - 001d7 48 63 45 04 movsxd rax, DWORD PTR index$[rbp] - 001db 48 8b 8d 30 02 - 00 00 mov rcx, QWORD PTR str$[rbp] - 001e2 8b 95 38 02 00 - 00 mov edx, DWORD PTR target$[rbp] - 001e8 39 14 41 cmp DWORD PTR [rcx+rax*2], edx - 001eb 75 0c jne SHORT $LN21@index_pair - 001ed c7 85 04 02 00 - 00 01 00 00 00 mov DWORD PTR tv150[rbp], 1 - 001f7 eb 0a jmp SHORT $LN22@index_pair -$LN21@index_pair: - 001f9 c7 85 04 02 00 - 00 00 00 00 00 mov DWORD PTR tv150[rbp], 0 -$LN22@index_pair: - 00203 8b 85 04 02 00 - 00 mov eax, DWORD PTR tv150[rbp] - 00209 89 45 24 mov DWORD PTR result$[rbp], eax - -; 47 : } - - 0020c eb b0 jmp SHORT $LN10@index_pair -$LN11@index_pair: - -; 48 : if (result) { - - 0020e 83 7d 24 00 cmp DWORD PTR result$[rbp], 0 - 00212 74 05 je SHORT $LN19@index_pair - -; 49 : return index; - - 00214 8b 45 04 mov eax, DWORD PTR index$[rbp] - 00217 eb 05 jmp SHORT $LN1@index_pair -$LN19@index_pair: - -; 50 : } -; 51 : return -1; - - 00219 b8 ff ff ff ff mov eax, -1 -$LN1@index_pair: - -; 52 : } - - 0021e 48 8d a5 18 02 - 00 00 lea rsp, QWORD PTR [rbp+536] - 00225 5f pop rdi - 00226 5d pop rbp - 00227 c3 ret 0 -index_pair_sse ENDP -_TEXT ENDS -END diff --git a/obj/StgSharp.Native/Debug/x64/str_string.nativecodeanalysis.sarif b/obj/StgSharp.Native/Debug/x64/str_string.nativecodeanalysis.sarif deleted file mode 100644 index 646df0ef..00000000 --- a/obj/StgSharp.Native/Debug/x64/str_string.nativecodeanalysis.sarif +++ /dev/null @@ -1,123 +0,0 @@ -{ - "version": "2.1.0", - "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", - "runs": [ - { - "results": [], - "tool": { - "driver": { - "name": "PREfast", - "fullName": "MSVC Code Analysis", - "version": "14.44.35220.0", - "informationUri": "https://aka.ms/cpp/ca" - } - }, - "invocations": [ - { - "executionSuccessful": true - } - ], - "artifacts": [ - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-src/str_string.c" - }, - "roles": [ - "analysisTarget" - ], - "hashes": { - "sha-256": "b995f1bf18433a2c3ed0a2d988b88348ca734be821d64970a6bc045925bb77de" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_target.h" - }, - "hashes": { - "sha-256": "b8c543a09db7bd21a2b409476024fa6bec6a5218d88ca036d15584ed453ceb91" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_internal.h" - }, - "hashes": { - "sha-256": "7430f5e8582c672b79e266834c290e4d426ce44b7bd3b7e5534f201a48ff6df9" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrinsic.h" - }, - "hashes": { - "sha-256": "94ca202415b5a633ad79580db19ae2b7def151b2e3f5d2dcaa341cfe934a5b0c" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/stgsharpnative.h" - }, - "hashes": { - "sha-256": "5eee6b3faf7bf2247fe44898b0fcb71794c346ae2f0b58953e1632a49c1b6c4e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/stbi/stb_image.h" - }, - "hashes": { - "sha-256": "c45e3ef56a7d946654740f02e25fcb99a819861155ad1173349a289f2a000ce2" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/gl.h" - }, - "hashes": { - "sha-256": "c9d0960c919f9ef4cfa6449f2b0c00f2ad8286b420e01ee7ec34b40c618392fc" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/khrplatform.h" - }, - "hashes": { - "sha-256": "f5b69ed6a7bef6651526abb2d1263811d59acdba7a29368bb9be1a0f9e80160f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/wgl.h" - }, - "hashes": { - "sha-256": "86d6c58acb0a92b35ce8d94d6817fcec3f73d9e147e8621f468f143db1bbd81f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/glfw/glfw3.h" - }, - "hashes": { - "sha-256": "85c584857dddd780c131940ed69cd516c2b60d61664df9cb254710c3602c1008" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/glfw_function.h" - }, - "hashes": { - "sha-256": "4baa73f465e3e347fc0ad0ff666a6db2e83e749acd770f4bee02c12a7b9ec36e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrinsic.matkernel.h" - }, - "hashes": { - "sha-256": "19f0030c441ae5c4cec0b446b64daa10448fafd44d4fd6dd2232b84f5ed9aad1" - } - } - ] - } - ] -} \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/str_string.nativecodeanalysis.xml b/obj/StgSharp.Native/Debug/x64/str_string.nativecodeanalysis.xml deleted file mode 100644 index dcdf0885..00000000 --- a/obj/StgSharp.Native/Debug/x64/str_string.nativecodeanalysis.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/str_string.obj b/obj/StgSharp.Native/Debug/x64/str_string.obj deleted file mode 100644 index 25d14ec8..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/str_string.obj and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/str_string.sbr b/obj/StgSharp.Native/Debug/x64/str_string.sbr deleted file mode 100644 index 12ec9cdb..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/str_string.sbr and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/t.affinity.cod b/obj/StgSharp.Native/Debug/x64/t.affinity.cod deleted file mode 100644 index dffc6427..00000000 --- a/obj/StgSharp.Native/Debug/x64/t.affinity.cod +++ /dev/null @@ -1,471 +0,0 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.44.35220.0 - -include listing.inc - -INCLUDELIB MSVCRTD -INCLUDELIB OLDNAMES - -_DATA SEGMENT -COMM infolog:BYTE:0200H -_DATA ENDS -msvcjmc SEGMENT -__5C8CA4D3_mmintrin@h DB 01H -__8C83BECC_concurrencysal@h DB 01H -__608E3340_sal@h DB 01H -__FB67E29A_vadefs@h DB 01H -__1D1B619C_vcruntime@h DB 01H -__735960E1_corecrt@h DB 01H -__211DB995_corecrt_malloc@h DB 01H -__7CD62D9E_malloc@h DB 01H -__9DCE0DC8_xmmintrin@h DB 01H -__4C2AD0C7_winpackagefamily@h DB 01H -__9DED9ED1_winapifamily@h DB 01H -__12FEDF4E_sdkddkver@h DB 01H -__9BAEE128_excpt@h DB 01H -__B7B53233_stdarg@h DB 01H -__6B04FCB3_specstrings_undef@h DB 01H -__F4027AF7_specstrings_strict@h DB 01H -__B90340D4_sdv_driverspecs@h DB 01H -__BFFF5AD3_driverspecs@h DB 01H -__32847078_specstrings@h DB 01H -__108B2620_corecrt_wctype@h DB 01H -__6CD6613D_ctype@h DB 01H -__30902A1F_kernelspecs@h DB 01H -__376FD5CA_basetsd@h DB 01H -__13DE2371_errno@h DB 01H -__8C6AE390_vcruntime_string@h DB 01H -__8ACB2152_corecrt_memcpy_s@h DB 01H -__EA6C9D17_corecrt_memory@h DB 01H -__0DF2AF52_corecrt_wstring@h DB 01H -__6E889ECC_string@h DB 01H -__9BEDF4DE_guiddef@h DB 01H -__51BFD2FE_pshpack4@h DB 01H -__31652CEA_poppack@h DB 01H -__5532AE4C_pshpack2@h DB 01H -__58A52B9A_pshpack8@h DB 01H -__57741015_pshpack1@h DB 01H -__CDE68C90_apiset@h DB 01H -__0BF06E8D_ktmtypes@h DB 01H -__40C200C0_winnt@h DB 01H -__9336F789_minwindef@h DB 01H -__55136115_windef@h DB 01H -__32205BF0_apisetcconv@h DB 01H -__B48FDEA0_minwinbase@h DB 01H -__3551B028_apiquery2@h DB 01H -__65BE04AA_processenv@h DB 01H -__4767CA46_fileapi@h DB 01H -__282E6C4B_fileapifromapp@h DB 01H -__393AF12C_debugapi@h DB 01H -__EBC502B8_utilapiset@h DB 01H -__1EAD8C69_handleapi@h DB 01H -__D8EF9B29_errhandlingapi@h DB 01H -__97FC1204_fibersapi@h DB 01H -__27448220_namedpipeapi@h DB 01H -__6EA33B2A_profileapi@h DB 01H -__EAC6F673_heapapi@h DB 01H -__D64EEA5A_ioapiset@h DB 01H -__144BD4B6_synchapi@h DB 01H -__03B1C640_interlockedapi@h DB 01H -__DC64CB38_processthreadsapi@h DB 01H -__D719B518_sysinfoapi@h DB 01H -__410385B1_memoryapi@h DB 01H -__C1AD45EF_enclaveapi@h DB 01H -__F4C3AA32_threadpoollegacyapiset@h DB 01H -__AC5A7A9F_threadpoolapiset@h DB 01H -__F5254B21_jobapi@h DB 01H -__BCEA6EE8_jobapi2@h DB 01H -__D18ACE72_wow64apiset@h DB 01H -__669B0D4A_libloaderapi@h DB 01H -__645F7034_securitybaseapi@h DB 01H -__67E58557_namespaceapi@h DB 01H -__599D9D3A_systemtopologyapi@h DB 01H -__2337E373_processtopologyapi@h DB 01H -__02BFF239_securityappcontainer@h DB 01H -__9C196272_realtimeapiset@h DB 01H -__5AB313A4_winerror@h DB 01H -__B7E7187B_timezoneapi@h DB 01H -__6DE9EB6F_winbase@h DB 01H -__56B2AFF2_wingdi@h DB 01H -__BA1161A9_tvout@h DB 01H -__0501A018_winuser@h DB 01H -__EF12FA99_datetimeapi@h DB 01H -__8FA7C3CA_winnls@h DB 01H -__390F0C47_stringapiset@h DB 01H -__28605B0A_wincontypes@h DB 01H -__BFBDE86D_consoleapi@h DB 01H -__C3CAFBF0_consoleapi2@h DB 01H -__C20891C7_consoleapi3@h DB 01H -__717C98B6_wincon@h DB 01H -__2884C177_verrsrc@h DB 01H -__A3FD3A34_winver@h DB 01H -__6F8AD9F1_reason@h DB 01H -__4C90FD6F_winreg@h DB 01H -__68AFEBAD_wnnc@h DB 01H -__5A7AB086_winnetwk@h DB 01H -__2FE8A10C_stralign@h DB 01H -__34558472_winsvc@h DB 01H -__058845F1_mcx@h DB 01H -__7F16006B_ime_cmodes@h DB 01H -__0A3AF599_imm@h DB 01H -__9349FE86_windows@h DB 01H -__639A050C_sn_internal@h DB 01H -__836A8CFC_stdint@h DB 01H -__714FE6D7_sn_target@h DB 01H -__60B45B40_corecrt_stdio_config@h DB 01H -__CFA3741E_corecrt_wstdio@h DB 01H -__B3FE3303_stdio@h DB 01H -__955456CD_stddef@h DB 01H -__99AED4FB_corecrt_search@h DB 01H -__8B813BF6_corecrt_wstdlib@h DB 01H -__3D1CA2C3_limits@h DB 01H -__E8FB0A68_stdlib@h DB 01H -__F562FA57_stb_image@h DB 01H -__C95DC661_khrplatform@h DB 01H -__6C577136_gl@h DB 01H -__EE638A2C_wgl@h DB 01H -__8EF9E35C_glfw3@h DB 01H -__F8AC8404_emmintrin@h DB 01H -__270DEC8D_pmmintrin@h DB 01H -__97D49F0F_tmmintrin@h DB 01H -__BEEF8A8C_smmintrin@h DB 01H -__DB8D0340_nmmintrin@h DB 01H -__0E36F90E_wmmintrin@h DB 01H -__C5A2B409_zmmintrin@h DB 01H -__F2B616C3_immintrin@h DB 01H -__9FB25DBE_assert@h DB 01H -__4E664295_glfw_function@h DB 01H -__64C0EF11_StgSharpNative@h DB 01H -__C1B0F7FE_t@affinity@c DB 01H -msvcjmc ENDS -PUBLIC sn_set_thread_affinity -PUBLIC __JustMyCode_Default -EXTRN memset:PROC -EXTRN __imp_GetCurrentThread:PROC -EXTRN __imp_GetThreadGroupAffinity:PROC -EXTRN __imp_SetThreadGroupAffinity:PROC -EXTRN __imp_GetActiveProcessorCount:PROC -EXTRN _RTC_CheckStackVars:PROC -EXTRN _RTC_InitBase:PROC -EXTRN _RTC_Shutdown:PROC -EXTRN __CheckForDebuggerJustMyCode:PROC -EXTRN __GSHandlerCheck:PROC -EXTRN __security_check_cookie:PROC -EXTRN __security_cookie:QWORD -; COMDAT pdata -pdata SEGMENT -$pdata$sn_set_thread_affinity DD imagerel $LN7 - DD imagerel $LN7+460 - DD imagerel $unwind$sn_set_thread_affinity -pdata ENDS -; COMDAT rtc$TMZ -rtc$TMZ SEGMENT -_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown -rtc$TMZ ENDS -; COMDAT rtc$IMZ -rtc$IMZ SEGMENT -_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase -rtc$IMZ ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 034H - DW 01b3H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$sn_set_thread_affinity DD 025053b19H - DD 010d2312H - DD 070060041H - DD 05005H - DD imagerel __GSHandlerCheck - DD 01f8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -sn_set_thread_affinity$rtcName$0 DB 063H - DB 075H - DB 072H - DB 072H - DB 065H - DB 06eH - DB 074H - DB 00H -sn_set_thread_affinity$rtcName$1 DB 067H - DB 061H - DB 00H - ORG $+1 -sn_set_thread_affinity$rtcName$2 DB 067H - DB 061H - DB 00H - ORG $+1 -sn_set_thread_affinity$rtcVarDesc DD 0108H - DD 010H - DQ FLAT:sn_set_thread_affinity$rtcName$2 - DD 078H - DD 010H - DQ FLAT:sn_set_thread_affinity$rtcName$1 - DD 028H - DD 010H - DQ FLAT:sn_set_thread_affinity$rtcName$0 - ORG $+144 -sn_set_thread_affinity$rtcFrameData DD 03H - DD 00H - DQ FLAT:sn_set_thread_affinity$rtcVarDesc -CONST ENDS -; Function compile flags: /Odt -; COMDAT __JustMyCode_Default -_TEXT SEGMENT -__JustMyCode_Default PROC ; COMDAT - 00000 c2 00 00 ret 0 -__JustMyCode_Default ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\t.affinity.c -; COMDAT sn_set_thread_affinity -_TEXT SEGMENT -current$6 = 8 -count$7 = 52 -ga$8 = 88 -group$ = 132 -index$ = 164 -count$ = 196 -ga$ = 232 -tv76 = 456 -tv153 = 456 -tv144 = 464 -__$ArrayPad$ = 472 -core_id$ = 512 -sn_set_thread_affinity PROC ; COMDAT - -; 15 : { - -$LN7: - 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00004 55 push rbp - 00005 57 push rdi - 00006 48 81 ec 08 02 - 00 00 sub rsp, 520 ; 00000208H - 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00012 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00017 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 0001c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00021 f3 ab rep stosd - 00023 8b 8c 24 28 02 - 00 00 mov ecx, DWORD PTR [rsp+552] - 0002a 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 d8 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__C1B0F7FE_t@affinity@c - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00047 90 npad 1 - -; 16 : #if SN_IS_OS(SN_OS_WINDOWS) -; 17 : if (core_id < 0) { - - 00048 83 bd 00 02 00 - 00 00 cmp DWORD PTR core_id$[rbp], 0 - 0004f 0f 8d 9b 00 00 - 00 jge $LN2@sn_set_thr - -; 18 : /* Query which group the thread currently belongs to */ -; 19 : GROUP_AFFINITY current; -; 20 : GetThreadGroupAffinity(GetCurrentThread(), ¤t); - - 00055 ff 15 00 00 00 - 00 call QWORD PTR __imp_GetCurrentThread - 0005b 48 8d 55 08 lea rdx, QWORD PTR current$6[rbp] - 0005f 48 8b c8 mov rcx, rax - 00062 ff 15 00 00 00 - 00 call QWORD PTR __imp_GetThreadGroupAffinity - 00068 90 npad 1 - -; 21 : /* Build a full mask for that group's actual core count */ -; 22 : DWORD count = GetActiveProcessorCount(current.Group); - - 00069 0f b7 4d 10 movzx ecx, WORD PTR current$6[rbp+8] - 0006d ff 15 00 00 00 - 00 call QWORD PTR __imp_GetActiveProcessorCount - 00073 89 45 34 mov DWORD PTR count$7[rbp], eax - -; 23 : GROUP_AFFINITY ga; -; 24 : memset(&ga, 0, sizeof(ga)); - - 00076 41 b8 10 00 00 - 00 mov r8d, 16 - 0007c 33 d2 xor edx, edx - 0007e 48 8d 4d 58 lea rcx, QWORD PTR ga$8[rbp] - 00082 e8 00 00 00 00 call memset - 00087 90 npad 1 - -; 25 : ga.Group = current.Group; - - 00088 0f b7 45 10 movzx eax, WORD PTR current$6[rbp+8] - 0008c 66 89 45 60 mov WORD PTR ga$8[rbp+8], ax - -; 26 : ga.Mask = (count >= 64) ? ~(KAFFINITY)0 - - 00090 83 7d 34 40 cmp DWORD PTR count$7[rbp], 64 ; 00000040H - 00094 72 0d jb SHORT $LN5@sn_set_thr - 00096 48 c7 85 c8 01 - 00 00 ff ff ff - ff mov QWORD PTR tv76[rbp], -1 - 000a1 eb 26 jmp SHORT $LN6@sn_set_thr -$LN5@sn_set_thr: - 000a3 8b 45 34 mov eax, DWORD PTR count$7[rbp] - 000a6 b9 01 00 00 00 mov ecx, 1 - 000ab 48 89 8d d0 01 - 00 00 mov QWORD PTR tv144[rbp], rcx - 000b2 0f b6 c8 movzx ecx, al - 000b5 48 8b 85 d0 01 - 00 00 mov rax, QWORD PTR tv144[rbp] - 000bc 48 d3 e0 shl rax, cl - 000bf 48 ff c8 dec rax - 000c2 48 89 85 c8 01 - 00 00 mov QWORD PTR tv76[rbp], rax -$LN6@sn_set_thr: - 000c9 48 8b 85 c8 01 - 00 00 mov rax, QWORD PTR tv76[rbp] - 000d0 48 89 45 58 mov QWORD PTR ga$8[rbp], rax - -; 27 : : ((KAFFINITY)1 << count) - 1; -; 28 : SetThreadGroupAffinity(GetCurrentThread(), &ga, NULL); - - 000d4 ff 15 00 00 00 - 00 call QWORD PTR __imp_GetCurrentThread - 000da 45 33 c0 xor r8d, r8d - 000dd 48 8d 55 58 lea rdx, QWORD PTR ga$8[rbp] - 000e1 48 8b c8 mov rcx, rax - 000e4 ff 15 00 00 00 - 00 call QWORD PTR __imp_SetThreadGroupAffinity - 000ea 90 npad 1 - -; 29 : return; - - 000eb e9 b3 00 00 00 jmp $LN1@sn_set_thr -$LN2@sn_set_thr: - -; 30 : } -; 31 : WORD group = (WORD)(core_id / 64); - - 000f0 8b 85 00 02 00 - 00 mov eax, DWORD PTR core_id$[rbp] - 000f6 99 cdq - 000f7 83 e2 3f and edx, 63 ; 0000003fH - 000fa 03 c2 add eax, edx - 000fc c1 f8 06 sar eax, 6 - 000ff 66 89 85 84 00 - 00 00 mov WORD PTR group$[rbp], ax - -; 32 : int index = core_id % 64; - - 00106 8b 85 00 02 00 - 00 mov eax, DWORD PTR core_id$[rbp] - 0010c 99 cdq - 0010d 83 e2 3f and edx, 63 ; 0000003fH - 00110 03 c2 add eax, edx - 00112 83 e0 3f and eax, 63 ; 0000003fH - 00115 2b c2 sub eax, edx - 00117 89 85 a4 00 00 - 00 mov DWORD PTR index$[rbp], eax - -; 33 : DWORD count = GetActiveProcessorCount(group); - - 0011d 0f b7 8d 84 00 - 00 00 movzx ecx, WORD PTR group$[rbp] - 00124 ff 15 00 00 00 - 00 call QWORD PTR __imp_GetActiveProcessorCount - 0012a 89 85 c4 00 00 - 00 mov DWORD PTR count$[rbp], eax - -; 34 : if ((DWORD)index >= count) - - 00130 8b 85 c4 00 00 - 00 mov eax, DWORD PTR count$[rbp] - 00136 39 85 a4 00 00 - 00 cmp DWORD PTR index$[rbp], eax - 0013c 72 02 jb SHORT $LN3@sn_set_thr - -; 35 : return; - - 0013e eb 63 jmp SHORT $LN1@sn_set_thr -$LN3@sn_set_thr: - -; 36 : GROUP_AFFINITY ga; -; 37 : memset(&ga, 0, sizeof(ga)); - - 00140 41 b8 10 00 00 - 00 mov r8d, 16 - 00146 33 d2 xor edx, edx - 00148 48 8d 8d e8 00 - 00 00 lea rcx, QWORD PTR ga$[rbp] - 0014f e8 00 00 00 00 call memset - 00154 90 npad 1 - -; 38 : ga.Group = group; - - 00155 0f b7 85 84 00 - 00 00 movzx eax, WORD PTR group$[rbp] - 0015c 66 89 85 f0 00 - 00 00 mov WORD PTR ga$[rbp+8], ax - -; 39 : ga.Mask = (KAFFINITY)1 << index; - - 00163 8b 85 a4 00 00 - 00 mov eax, DWORD PTR index$[rbp] - 00169 b9 01 00 00 00 mov ecx, 1 - 0016e 48 89 8d c8 01 - 00 00 mov QWORD PTR tv153[rbp], rcx - 00175 0f b6 c8 movzx ecx, al - 00178 48 8b 85 c8 01 - 00 00 mov rax, QWORD PTR tv153[rbp] - 0017f 48 d3 e0 shl rax, cl - 00182 48 89 85 e8 00 - 00 00 mov QWORD PTR ga$[rbp], rax - -; 40 : SetThreadGroupAffinity(GetCurrentThread(), &ga, NULL); - - 00189 ff 15 00 00 00 - 00 call QWORD PTR __imp_GetCurrentThread - 0018f 45 33 c0 xor r8d, r8d - 00192 48 8d 95 e8 00 - 00 00 lea rdx, QWORD PTR ga$[rbp] - 00199 48 8b c8 mov rcx, rax - 0019c ff 15 00 00 00 - 00 call QWORD PTR __imp_SetThreadGroupAffinity - 001a2 90 npad 1 -$LN1@sn_set_thr: - -; 41 : -; 42 : #elif SN_IS_OS(SN_OS_LINUX) -; 43 : cpu_set_t set; -; 44 : if (core_id < 0) { -; 45 : CPU_ZERO(&set); -; 46 : long ncpus = sysconf(_SC_NPROCESSORS_ONLN); -; 47 : for (long i = 0; i < ncpus; i++) -; 48 : CPU_SET((int)i, &set); -; 49 : } else { -; 50 : CPU_ZERO(&set); -; 51 : CPU_SET(core_id, &set); -; 52 : } -; 53 : pthread_setaffinity_np(pthread_self(), sizeof(set), &set); -; 54 : #endif -; 55 : } - - 001a3 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 001a7 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:sn_set_thread_affinity$rtcFrameData - 001ae e8 00 00 00 00 call _RTC_CheckStackVars - 001b3 48 8b 8d d8 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 001ba 48 33 cd xor rcx, rbp - 001bd e8 00 00 00 00 call __security_check_cookie - 001c2 48 8d a5 e8 01 - 00 00 lea rsp, QWORD PTR [rbp+488] - 001c9 5f pop rdi - 001ca 5d pop rbp - 001cb c3 ret 0 -sn_set_thread_affinity ENDP -_TEXT ENDS -END diff --git a/obj/StgSharp.Native/Debug/x64/t.affinity.nativecodeanalysis.sarif b/obj/StgSharp.Native/Debug/x64/t.affinity.nativecodeanalysis.sarif deleted file mode 100644 index 14868458..00000000 --- a/obj/StgSharp.Native/Debug/x64/t.affinity.nativecodeanalysis.sarif +++ /dev/null @@ -1,107 +0,0 @@ -{ - "version": "2.1.0", - "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", - "runs": [ - { - "results": [], - "tool": { - "driver": { - "name": "PREfast", - "fullName": "MSVC Code Analysis", - "version": "14.44.35220.0", - "informationUri": "https://aka.ms/cpp/ca" - } - }, - "invocations": [ - { - "executionSuccessful": true - } - ], - "artifacts": [ - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-src/t.affinity.c" - }, - "roles": [ - "analysisTarget" - ], - "hashes": { - "sha-256": "bdd49dec4a40d31498bece7e0c539ba4afb6b4124225017a6b2170fed477265b" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_target.h" - }, - "hashes": { - "sha-256": "b8c543a09db7bd21a2b409476024fa6bec6a5218d88ca036d15584ed453ceb91" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_internal.h" - }, - "hashes": { - "sha-256": "7430f5e8582c672b79e266834c290e4d426ce44b7bd3b7e5534f201a48ff6df9" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/stgsharpnative.h" - }, - "hashes": { - "sha-256": "5eee6b3faf7bf2247fe44898b0fcb71794c346ae2f0b58953e1632a49c1b6c4e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/stbi/stb_image.h" - }, - "hashes": { - "sha-256": "c45e3ef56a7d946654740f02e25fcb99a819861155ad1173349a289f2a000ce2" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/gl.h" - }, - "hashes": { - "sha-256": "c9d0960c919f9ef4cfa6449f2b0c00f2ad8286b420e01ee7ec34b40c618392fc" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/khrplatform.h" - }, - "hashes": { - "sha-256": "f5b69ed6a7bef6651526abb2d1263811d59acdba7a29368bb9be1a0f9e80160f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/wgl.h" - }, - "hashes": { - "sha-256": "86d6c58acb0a92b35ce8d94d6817fcec3f73d9e147e8621f468f143db1bbd81f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/glfw/glfw3.h" - }, - "hashes": { - "sha-256": "85c584857dddd780c131940ed69cd516c2b60d61664df9cb254710c3602c1008" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/glfw_function.h" - }, - "hashes": { - "sha-256": "4baa73f465e3e347fc0ad0ff666a6db2e83e749acd770f4bee02c12a7b9ec36e" - } - } - ] - } - ] -} \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/t.affinity.nativecodeanalysis.xml b/obj/StgSharp.Native/Debug/x64/t.affinity.nativecodeanalysis.xml deleted file mode 100644 index dcdf0885..00000000 --- a/obj/StgSharp.Native/Debug/x64/t.affinity.nativecodeanalysis.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/t.affinity.obj b/obj/StgSharp.Native/Debug/x64/t.affinity.obj deleted file mode 100644 index 8d2a865a..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/t.affinity.obj and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/t.affinity.sbr b/obj/StgSharp.Native/Debug/x64/t.affinity.sbr deleted file mode 100644 index d254859a..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/t.affinity.sbr and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/vc.nativecodeanalysis.all.xml b/obj/StgSharp.Native/Debug/x64/vc.nativecodeanalysis.all.xml deleted file mode 100644 index afd9bdd9..00000000 --- a/obj/StgSharp.Native/Debug/x64/vc.nativecodeanalysis.all.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - D:\platform-dev\StgSharp.Native\lib\stbi\ - stb_image.h - 7817 - 13 - - 6262 - 函数使用堆叠的 "35036" 字节。请考虑将一些数据移动到堆。 - stbi__load_gif_main - stbi__load_gif_main - 7817 - - - - D:\platform-dev\StgSharp.Native\lib\stbi\ - stb_image.h - 7910 - 13 - - 6262 - 函数使用堆叠的 "34980" 字节。请考虑将一些数据移动到堆。 - stbi__gif_load - stbi__gif_load - 7910 - - \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/vc143.idb b/obj/StgSharp.Native/Debug/x64/vc143.idb deleted file mode 100644 index d259beb2..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/vc143.idb and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/vc143.pdb b/obj/StgSharp.Native/Debug/x64/vc143.pdb deleted file mode 100644 index b445fdea..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/vc143.pdb and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/vector.cod b/obj/StgSharp.Native/Debug/x64/vector.cod deleted file mode 100644 index 149d9abb..00000000 --- a/obj/StgSharp.Native/Debug/x64/vector.cod +++ /dev/null @@ -1,375 +0,0 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.44.35220.0 - -include listing.inc - -INCLUDELIB MSVCRTD -INCLUDELIB OLDNAMES - -_DATA SEGMENT -COMM infolog:BYTE:0200H -_DATA ENDS -msvcjmc SEGMENT -__5C8CA4D3_mmintrin@h DB 01H -__8C83BECC_concurrencysal@h DB 01H -__608E3340_sal@h DB 01H -__FB67E29A_vadefs@h DB 01H -__1D1B619C_vcruntime@h DB 01H -__735960E1_corecrt@h DB 01H -__211DB995_corecrt_malloc@h DB 01H -__7CD62D9E_malloc@h DB 01H -__9DCE0DC8_xmmintrin@h DB 01H -__4C2AD0C7_winpackagefamily@h DB 01H -__9DED9ED1_winapifamily@h DB 01H -__12FEDF4E_sdkddkver@h DB 01H -__9BAEE128_excpt@h DB 01H -__B7B53233_stdarg@h DB 01H -__6B04FCB3_specstrings_undef@h DB 01H -__F4027AF7_specstrings_strict@h DB 01H -__B90340D4_sdv_driverspecs@h DB 01H -__BFFF5AD3_driverspecs@h DB 01H -__32847078_specstrings@h DB 01H -__108B2620_corecrt_wctype@h DB 01H -__6CD6613D_ctype@h DB 01H -__30902A1F_kernelspecs@h DB 01H -__376FD5CA_basetsd@h DB 01H -__13DE2371_errno@h DB 01H -__8C6AE390_vcruntime_string@h DB 01H -__8ACB2152_corecrt_memcpy_s@h DB 01H -__EA6C9D17_corecrt_memory@h DB 01H -__0DF2AF52_corecrt_wstring@h DB 01H -__6E889ECC_string@h DB 01H -__9BEDF4DE_guiddef@h DB 01H -__51BFD2FE_pshpack4@h DB 01H -__31652CEA_poppack@h DB 01H -__5532AE4C_pshpack2@h DB 01H -__58A52B9A_pshpack8@h DB 01H -__57741015_pshpack1@h DB 01H -__CDE68C90_apiset@h DB 01H -__0BF06E8D_ktmtypes@h DB 01H -__40C200C0_winnt@h DB 01H -__9336F789_minwindef@h DB 01H -__55136115_windef@h DB 01H -__32205BF0_apisetcconv@h DB 01H -__B48FDEA0_minwinbase@h DB 01H -__3551B028_apiquery2@h DB 01H -__65BE04AA_processenv@h DB 01H -__4767CA46_fileapi@h DB 01H -__282E6C4B_fileapifromapp@h DB 01H -__393AF12C_debugapi@h DB 01H -__EBC502B8_utilapiset@h DB 01H -__1EAD8C69_handleapi@h DB 01H -__D8EF9B29_errhandlingapi@h DB 01H -__97FC1204_fibersapi@h DB 01H -__27448220_namedpipeapi@h DB 01H -__6EA33B2A_profileapi@h DB 01H -__EAC6F673_heapapi@h DB 01H -__D64EEA5A_ioapiset@h DB 01H -__144BD4B6_synchapi@h DB 01H -__03B1C640_interlockedapi@h DB 01H -__DC64CB38_processthreadsapi@h DB 01H -__D719B518_sysinfoapi@h DB 01H -__410385B1_memoryapi@h DB 01H -__C1AD45EF_enclaveapi@h DB 01H -__F4C3AA32_threadpoollegacyapiset@h DB 01H -__AC5A7A9F_threadpoolapiset@h DB 01H -__F5254B21_jobapi@h DB 01H -__BCEA6EE8_jobapi2@h DB 01H -__D18ACE72_wow64apiset@h DB 01H -__669B0D4A_libloaderapi@h DB 01H -__645F7034_securitybaseapi@h DB 01H -__67E58557_namespaceapi@h DB 01H -__599D9D3A_systemtopologyapi@h DB 01H -__2337E373_processtopologyapi@h DB 01H -__02BFF239_securityappcontainer@h DB 01H -__9C196272_realtimeapiset@h DB 01H -__5AB313A4_winerror@h DB 01H -__B7E7187B_timezoneapi@h DB 01H -__6DE9EB6F_winbase@h DB 01H -__56B2AFF2_wingdi@h DB 01H -__BA1161A9_tvout@h DB 01H -__0501A018_winuser@h DB 01H -__EF12FA99_datetimeapi@h DB 01H -__8FA7C3CA_winnls@h DB 01H -__390F0C47_stringapiset@h DB 01H -__28605B0A_wincontypes@h DB 01H -__BFBDE86D_consoleapi@h DB 01H -__C3CAFBF0_consoleapi2@h DB 01H -__C20891C7_consoleapi3@h DB 01H -__717C98B6_wincon@h DB 01H -__2884C177_verrsrc@h DB 01H -__A3FD3A34_winver@h DB 01H -__6F8AD9F1_reason@h DB 01H -__4C90FD6F_winreg@h DB 01H -__68AFEBAD_wnnc@h DB 01H -__5A7AB086_winnetwk@h DB 01H -__2FE8A10C_stralign@h DB 01H -__34558472_winsvc@h DB 01H -__058845F1_mcx@h DB 01H -__7F16006B_ime_cmodes@h DB 01H -__0A3AF599_imm@h DB 01H -__9349FE86_windows@h DB 01H -__639A050C_sn_internal@h DB 01H -__836A8CFC_stdint@h DB 01H -__714FE6D7_sn_target@h DB 01H -__60B45B40_corecrt_stdio_config@h DB 01H -__CFA3741E_corecrt_wstdio@h DB 01H -__B3FE3303_stdio@h DB 01H -__955456CD_stddef@h DB 01H -__99AED4FB_corecrt_search@h DB 01H -__8B813BF6_corecrt_wstdlib@h DB 01H -__3D1CA2C3_limits@h DB 01H -__E8FB0A68_stdlib@h DB 01H -__F562FA57_stb_image@h DB 01H -__C95DC661_khrplatform@h DB 01H -__6C577136_gl@h DB 01H -__EE638A2C_wgl@h DB 01H -__8EF9E35C_glfw3@h DB 01H -__F8AC8404_emmintrin@h DB 01H -__270DEC8D_pmmintrin@h DB 01H -__97D49F0F_tmmintrin@h DB 01H -__BEEF8A8C_smmintrin@h DB 01H -__DB8D0340_nmmintrin@h DB 01H -__0E36F90E_wmmintrin@h DB 01H -__C5A2B409_zmmintrin@h DB 01H -__F2B616C3_immintrin@h DB 01H -__9FB25DBE_assert@h DB 01H -__4E664295_glfw_function@h DB 01H -__64C0EF11_StgSharpNative@h DB 01H -__F49407C4_sn_intrinsic@matkernel@h DB 01H -__47E843D2_intrin0@inl@h DB 01H -__130964FF_setjmp@h DB 01H -__4875F786_ammintrin@h DB 01H -__353FD888_intrin@h DB 01H -__5FE1E9E3_isa_availability@h DB 01H -__AA840D82_sn_intrinsic@h DB 01H -__E15488A2_vector@c DB 01H -msvcjmc ENDS -PUBLIC f32_normalize -PUBLIC __JustMyCode_Default -EXTRN _RTC_InitBase:PROC -EXTRN _RTC_Shutdown:PROC -EXTRN __CheckForDebuggerJustMyCode:PROC -; COMDAT pdata -pdata SEGMENT -$pdata$f32_normalize DD imagerel $LN3 - DD imagerel $LN3+417 - DD imagerel $unwind$f32_normalize -pdata ENDS -; COMDAT rtc$TMZ -rtc$TMZ SEGMENT -_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown -rtc$TMZ ENDS -; COMDAT rtc$IMZ -rtc$IMZ SEGMENT -_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase -rtc$IMZ ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$f32_normalize DD 025051801H - DD 01132318H - DD 0700c0047H - DD 0500bH -xdata ENDS -; Function compile flags: /Odt -; COMDAT __JustMyCode_Default -_TEXT SEGMENT -__JustMyCode_Default PROC ; COMDAT - 00000 c2 00 00 ret 0 -__JustMyCode_Default ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\vector.c -; COMDAT f32_normalize -_TEXT SEGMENT -s$ = 16 -a_length_sq$ = 64 -a_inv_length$ = 112 -dot_product$ = 160 -b_orthogonal$ = 208 -b_length_sq$ = 256 -b_inv_length$ = 304 -source$ = 560 -target$ = 568 -f32_normalize PROC ; COMDAT - -; 5 : { - -$LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 38 02 - 00 00 sub rsp, 568 ; 00000238H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E15488A2_vector@c - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 90 npad 1 - -; 6 : register __m128 s = _mm_load_ps(&source->f32_x); - - 00025 48 8b 85 30 02 - 00 00 mov rax, QWORD PTR source$[rbp] - 0002c 0f 10 00 movups xmm0, XMMWORD PTR [rax] - 0002f 0f 29 45 10 movaps XMMWORD PTR s$[rbp], xmm0 - -; 7 : register __m128 a_length_sq = _mm_mul_ps(s, s); - - 00033 0f 28 45 10 movaps xmm0, XMMWORD PTR s$[rbp] - 00037 0f 59 45 10 mulps xmm0, XMMWORD PTR s$[rbp] - 0003b 0f 29 45 40 movaps XMMWORD PTR a_length_sq$[rbp], xmm0 - -; 8 : a_length_sq = _mm_add_ps(a_length_sq, - - 0003f 0f 28 45 40 movaps xmm0, XMMWORD PTR a_length_sq$[rbp] - 00043 0f c6 45 40 b1 shufps xmm0, XMMWORD PTR a_length_sq$[rbp], 177 ; 000000b1H - 00048 0f 28 4d 40 movaps xmm1, XMMWORD PTR a_length_sq$[rbp] - 0004c 0f 58 c8 addps xmm1, xmm0 - 0004f 0f 28 c1 movaps xmm0, xmm1 - 00052 0f 29 45 40 movaps XMMWORD PTR a_length_sq$[rbp], xmm0 - -; 9 : _mm_shuffle_ps(a_length_sq, a_length_sq, _MM_SHUFFLE(2, 3, 0, 1))); -; 10 : a_length_sq = _mm_add_ss(a_length_sq, - - 00056 0f 28 45 40 movaps xmm0, XMMWORD PTR a_length_sq$[rbp] - 0005a 0f c6 45 40 0e shufps xmm0, XMMWORD PTR a_length_sq$[rbp], 14 - 0005f 0f 28 4d 40 movaps xmm1, XMMWORD PTR a_length_sq$[rbp] - 00063 f3 0f 58 c8 addss xmm1, xmm0 - 00067 0f 29 4d 40 movaps XMMWORD PTR a_length_sq$[rbp], xmm1 - -; 11 : _mm_shuffle_ps(a_length_sq, a_length_sq, _MM_SHUFFLE(0, 0, 3, 2))); -; 12 : -; 13 : __m128 a_inv_length = _mm_rsqrt_ps(a_length_sq); - - 0006b 0f 52 45 40 rsqrtps xmm0, XMMWORD PTR a_length_sq$[rbp] - 0006f 0f 29 45 70 movaps XMMWORD PTR a_inv_length$[rbp], xmm0 - -; 14 : s = _mm_mul_ps(s, a_inv_length); - - 00073 0f 28 45 10 movaps xmm0, XMMWORD PTR s$[rbp] - 00077 0f 59 45 70 mulps xmm0, XMMWORD PTR a_inv_length$[rbp] - 0007b 0f 29 45 10 movaps XMMWORD PTR s$[rbp], xmm0 - -; 15 : -; 16 : __m128 dot_product = _mm_mul_ps(target->f32_x[0], s); - - 0007f b8 10 00 00 00 mov eax, 16 - 00084 48 6b c0 00 imul rax, rax, 0 - 00088 48 8b 8d 38 02 - 00 00 mov rcx, QWORD PTR target$[rbp] - 0008f 0f 10 04 01 movups xmm0, XMMWORD PTR [rcx+rax] - 00093 0f 59 45 10 mulps xmm0, XMMWORD PTR s$[rbp] - 00097 0f 29 85 a0 00 - 00 00 movaps XMMWORD PTR dot_product$[rbp], xmm0 - -; 17 : dot_product = _mm_add_ps(dot_product, - - 0009e 0f 28 85 a0 00 - 00 00 movaps xmm0, XMMWORD PTR dot_product$[rbp] - 000a5 0f c6 85 a0 00 - 00 00 b1 shufps xmm0, XMMWORD PTR dot_product$[rbp], 177 ; 000000b1H - 000ad 0f 28 8d a0 00 - 00 00 movaps xmm1, XMMWORD PTR dot_product$[rbp] - 000b4 0f 58 c8 addps xmm1, xmm0 - 000b7 0f 28 c1 movaps xmm0, xmm1 - 000ba 0f 29 85 a0 00 - 00 00 movaps XMMWORD PTR dot_product$[rbp], xmm0 - -; 18 : _mm_shuffle_ps(dot_product, dot_product, _MM_SHUFFLE(2, 3, 0, 1))); -; 19 : dot_product = _mm_add_ss(dot_product, - - 000c1 0f 28 85 a0 00 - 00 00 movaps xmm0, XMMWORD PTR dot_product$[rbp] - 000c8 0f c6 85 a0 00 - 00 00 0e shufps xmm0, XMMWORD PTR dot_product$[rbp], 14 - 000d0 0f 28 8d a0 00 - 00 00 movaps xmm1, XMMWORD PTR dot_product$[rbp] - 000d7 f3 0f 58 c8 addss xmm1, xmm0 - 000db 0f 29 8d a0 00 - 00 00 movaps XMMWORD PTR dot_product$[rbp], xmm1 - -; 20 : _mm_shuffle_ps(dot_product, dot_product, _MM_SHUFFLE(0, 0, 3, 2))); -; 21 : -; 22 : __m128 b_orthogonal = _mm_sub_ps(target->f32_x[0], _mm_mul_ps(s, dot_product)); - - 000e2 0f 28 45 10 movaps xmm0, XMMWORD PTR s$[rbp] - 000e6 0f 59 85 a0 00 - 00 00 mulps xmm0, XMMWORD PTR dot_product$[rbp] - 000ed b8 10 00 00 00 mov eax, 16 - 000f2 48 6b c0 00 imul rax, rax, 0 - 000f6 48 8b 8d 38 02 - 00 00 mov rcx, QWORD PTR target$[rbp] - 000fd 0f 10 0c 01 movups xmm1, XMMWORD PTR [rcx+rax] - 00101 0f 5c c8 subps xmm1, xmm0 - 00104 0f 28 c1 movaps xmm0, xmm1 - 00107 0f 29 85 d0 00 - 00 00 movaps XMMWORD PTR b_orthogonal$[rbp], xmm0 - -; 23 : -; 24 : __m128 b_length_sq = _mm_mul_ps(b_orthogonal, b_orthogonal); - - 0010e 0f 28 85 d0 00 - 00 00 movaps xmm0, XMMWORD PTR b_orthogonal$[rbp] - 00115 0f 59 85 d0 00 - 00 00 mulps xmm0, XMMWORD PTR b_orthogonal$[rbp] - 0011c 0f 29 85 00 01 - 00 00 movaps XMMWORD PTR b_length_sq$[rbp], xmm0 - -; 25 : b_length_sq = _mm_add_ps(b_length_sq, - - 00123 0f 28 85 00 01 - 00 00 movaps xmm0, XMMWORD PTR b_length_sq$[rbp] - 0012a 0f c6 85 00 01 - 00 00 b1 shufps xmm0, XMMWORD PTR b_length_sq$[rbp], 177 ; 000000b1H - 00132 0f 28 8d 00 01 - 00 00 movaps xmm1, XMMWORD PTR b_length_sq$[rbp] - 00139 0f 58 c8 addps xmm1, xmm0 - 0013c 0f 28 c1 movaps xmm0, xmm1 - 0013f 0f 29 85 00 01 - 00 00 movaps XMMWORD PTR b_length_sq$[rbp], xmm0 - -; 26 : _mm_shuffle_ps(b_length_sq, b_length_sq, _MM_SHUFFLE(2, 3, 0, 1))); -; 27 : b_length_sq = _mm_add_ss(b_length_sq, - - 00146 0f 28 85 00 01 - 00 00 movaps xmm0, XMMWORD PTR b_length_sq$[rbp] - 0014d 0f c6 85 00 01 - 00 00 0e shufps xmm0, XMMWORD PTR b_length_sq$[rbp], 14 - 00155 0f 28 8d 00 01 - 00 00 movaps xmm1, XMMWORD PTR b_length_sq$[rbp] - 0015c f3 0f 58 c8 addss xmm1, xmm0 - 00160 0f 29 8d 00 01 - 00 00 movaps XMMWORD PTR b_length_sq$[rbp], xmm1 - -; 28 : _mm_shuffle_ps(b_length_sq, b_length_sq, _MM_SHUFFLE(0, 0, 3, 2))); -; 29 : -; 30 : __m128 b_inv_length = _mm_rsqrt_ps(b_length_sq); - - 00167 0f 52 85 00 01 - 00 00 rsqrtps xmm0, XMMWORD PTR b_length_sq$[rbp] - 0016e 0f 29 85 30 01 - 00 00 movaps XMMWORD PTR b_inv_length$[rbp], xmm0 - -; 31 : target->f32_x[0] = _mm_mul_ps(b_orthogonal, b_inv_length); - - 00175 0f 28 85 d0 00 - 00 00 movaps xmm0, XMMWORD PTR b_orthogonal$[rbp] - 0017c 0f 59 85 30 01 - 00 00 mulps xmm0, XMMWORD PTR b_inv_length$[rbp] - 00183 b8 10 00 00 00 mov eax, 16 - 00188 48 6b c0 00 imul rax, rax, 0 - 0018c 48 8b 8d 38 02 - 00 00 mov rcx, QWORD PTR target$[rbp] - 00193 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 - -; 32 : } - - 00197 48 8d a5 18 02 - 00 00 lea rsp, QWORD PTR [rbp+536] - 0019e 5f pop rdi - 0019f 5d pop rbp - 001a0 c3 ret 0 -f32_normalize ENDP -_TEXT ENDS -END diff --git a/obj/StgSharp.Native/Debug/x64/vector.nativecodeanalysis.sarif b/obj/StgSharp.Native/Debug/x64/vector.nativecodeanalysis.sarif deleted file mode 100644 index 76d9085f..00000000 --- a/obj/StgSharp.Native/Debug/x64/vector.nativecodeanalysis.sarif +++ /dev/null @@ -1,123 +0,0 @@ -{ - "version": "2.1.0", - "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", - "runs": [ - { - "results": [], - "tool": { - "driver": { - "name": "PREfast", - "fullName": "MSVC Code Analysis", - "version": "14.44.35220.0", - "informationUri": "https://aka.ms/cpp/ca" - } - }, - "invocations": [ - { - "executionSuccessful": true - } - ], - "artifacts": [ - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-src/vector.c" - }, - "roles": [ - "analysisTarget" - ], - "hashes": { - "sha-256": "b2baa9377820c94a8ddf40982e0e58c55c1085f8fec5736edf2255f3a62890c1" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrinsic.h" - }, - "hashes": { - "sha-256": "94ca202415b5a633ad79580db19ae2b7def151b2e3f5d2dcaa341cfe934a5b0c" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/stgsharpnative.h" - }, - "hashes": { - "sha-256": "5eee6b3faf7bf2247fe44898b0fcb71794c346ae2f0b58953e1632a49c1b6c4e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_internal.h" - }, - "hashes": { - "sha-256": "7430f5e8582c672b79e266834c290e4d426ce44b7bd3b7e5534f201a48ff6df9" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_target.h" - }, - "hashes": { - "sha-256": "b8c543a09db7bd21a2b409476024fa6bec6a5218d88ca036d15584ed453ceb91" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/stbi/stb_image.h" - }, - "hashes": { - "sha-256": "c45e3ef56a7d946654740f02e25fcb99a819861155ad1173349a289f2a000ce2" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/gl.h" - }, - "hashes": { - "sha-256": "c9d0960c919f9ef4cfa6449f2b0c00f2ad8286b420e01ee7ec34b40c618392fc" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/khrplatform.h" - }, - "hashes": { - "sha-256": "f5b69ed6a7bef6651526abb2d1263811d59acdba7a29368bb9be1a0f9e80160f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/wgl.h" - }, - "hashes": { - "sha-256": "86d6c58acb0a92b35ce8d94d6817fcec3f73d9e147e8621f468f143db1bbd81f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/glfw/glfw3.h" - }, - "hashes": { - "sha-256": "85c584857dddd780c131940ed69cd516c2b60d61664df9cb254710c3602c1008" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/glfw_function.h" - }, - "hashes": { - "sha-256": "4baa73f465e3e347fc0ad0ff666a6db2e83e749acd770f4bee02c12a7b9ec36e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrinsic.matkernel.h" - }, - "hashes": { - "sha-256": "19f0030c441ae5c4cec0b446b64daa10448fafd44d4fd6dd2232b84f5ed9aad1" - } - } - ] - } - ] -} \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/vector.nativecodeanalysis.xml b/obj/StgSharp.Native/Debug/x64/vector.nativecodeanalysis.xml deleted file mode 100644 index dcdf0885..00000000 --- a/obj/StgSharp.Native/Debug/x64/vector.nativecodeanalysis.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/vector.obj b/obj/StgSharp.Native/Debug/x64/vector.obj deleted file mode 100644 index 8b40b635..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/vector.obj and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/vector.sbr b/obj/StgSharp.Native/Debug/x64/vector.sbr deleted file mode 100644 index 0f0ad770..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/vector.sbr and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/vector_dot.cod b/obj/StgSharp.Native/Debug/x64/vector_dot.cod deleted file mode 100644 index 4f94afe5..00000000 --- a/obj/StgSharp.Native/Debug/x64/vector_dot.cod +++ /dev/null @@ -1,844 +0,0 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.44.35220.0 - -include listing.inc - -INCLUDELIB MSVCRTD -INCLUDELIB OLDNAMES - -_DATA SEGMENT -COMM infolog:BYTE:0200H -_DATA ENDS -msvcjmc SEGMENT -__5C8CA4D3_mmintrin@h DB 01H -__8C83BECC_concurrencysal@h DB 01H -__608E3340_sal@h DB 01H -__FB67E29A_vadefs@h DB 01H -__1D1B619C_vcruntime@h DB 01H -__735960E1_corecrt@h DB 01H -__211DB995_corecrt_malloc@h DB 01H -__7CD62D9E_malloc@h DB 01H -__9DCE0DC8_xmmintrin@h DB 01H -__4C2AD0C7_winpackagefamily@h DB 01H -__9DED9ED1_winapifamily@h DB 01H -__12FEDF4E_sdkddkver@h DB 01H -__9BAEE128_excpt@h DB 01H -__B7B53233_stdarg@h DB 01H -__6B04FCB3_specstrings_undef@h DB 01H -__F4027AF7_specstrings_strict@h DB 01H -__B90340D4_sdv_driverspecs@h DB 01H -__BFFF5AD3_driverspecs@h DB 01H -__32847078_specstrings@h DB 01H -__108B2620_corecrt_wctype@h DB 01H -__6CD6613D_ctype@h DB 01H -__30902A1F_kernelspecs@h DB 01H -__376FD5CA_basetsd@h DB 01H -__13DE2371_errno@h DB 01H -__8C6AE390_vcruntime_string@h DB 01H -__8ACB2152_corecrt_memcpy_s@h DB 01H -__EA6C9D17_corecrt_memory@h DB 01H -__0DF2AF52_corecrt_wstring@h DB 01H -__6E889ECC_string@h DB 01H -__9BEDF4DE_guiddef@h DB 01H -__51BFD2FE_pshpack4@h DB 01H -__31652CEA_poppack@h DB 01H -__5532AE4C_pshpack2@h DB 01H -__58A52B9A_pshpack8@h DB 01H -__57741015_pshpack1@h DB 01H -__CDE68C90_apiset@h DB 01H -__0BF06E8D_ktmtypes@h DB 01H -__40C200C0_winnt@h DB 01H -__9336F789_minwindef@h DB 01H -__55136115_windef@h DB 01H -__32205BF0_apisetcconv@h DB 01H -__B48FDEA0_minwinbase@h DB 01H -__3551B028_apiquery2@h DB 01H -__65BE04AA_processenv@h DB 01H -__4767CA46_fileapi@h DB 01H -__282E6C4B_fileapifromapp@h DB 01H -__393AF12C_debugapi@h DB 01H -__EBC502B8_utilapiset@h DB 01H -__1EAD8C69_handleapi@h DB 01H -__D8EF9B29_errhandlingapi@h DB 01H -__97FC1204_fibersapi@h DB 01H -__27448220_namedpipeapi@h DB 01H -__6EA33B2A_profileapi@h DB 01H -__EAC6F673_heapapi@h DB 01H -__D64EEA5A_ioapiset@h DB 01H -__144BD4B6_synchapi@h DB 01H -__03B1C640_interlockedapi@h DB 01H -__DC64CB38_processthreadsapi@h DB 01H -__D719B518_sysinfoapi@h DB 01H -__410385B1_memoryapi@h DB 01H -__C1AD45EF_enclaveapi@h DB 01H -__F4C3AA32_threadpoollegacyapiset@h DB 01H -__AC5A7A9F_threadpoolapiset@h DB 01H -__F5254B21_jobapi@h DB 01H -__BCEA6EE8_jobapi2@h DB 01H -__D18ACE72_wow64apiset@h DB 01H -__669B0D4A_libloaderapi@h DB 01H -__645F7034_securitybaseapi@h DB 01H -__67E58557_namespaceapi@h DB 01H -__599D9D3A_systemtopologyapi@h DB 01H -__2337E373_processtopologyapi@h DB 01H -__02BFF239_securityappcontainer@h DB 01H -__9C196272_realtimeapiset@h DB 01H -__5AB313A4_winerror@h DB 01H -__B7E7187B_timezoneapi@h DB 01H -__6DE9EB6F_winbase@h DB 01H -__56B2AFF2_wingdi@h DB 01H -__BA1161A9_tvout@h DB 01H -__0501A018_winuser@h DB 01H -__EF12FA99_datetimeapi@h DB 01H -__8FA7C3CA_winnls@h DB 01H -__390F0C47_stringapiset@h DB 01H -__28605B0A_wincontypes@h DB 01H -__BFBDE86D_consoleapi@h DB 01H -__C3CAFBF0_consoleapi2@h DB 01H -__C20891C7_consoleapi3@h DB 01H -__717C98B6_wincon@h DB 01H -__2884C177_verrsrc@h DB 01H -__A3FD3A34_winver@h DB 01H -__6F8AD9F1_reason@h DB 01H -__4C90FD6F_winreg@h DB 01H -__68AFEBAD_wnnc@h DB 01H -__5A7AB086_winnetwk@h DB 01H -__2FE8A10C_stralign@h DB 01H -__34558472_winsvc@h DB 01H -__058845F1_mcx@h DB 01H -__7F16006B_ime_cmodes@h DB 01H -__0A3AF599_imm@h DB 01H -__9349FE86_windows@h DB 01H -__639A050C_sn_internal@h DB 01H -__836A8CFC_stdint@h DB 01H -__714FE6D7_sn_target@h DB 01H -__60B45B40_corecrt_stdio_config@h DB 01H -__CFA3741E_corecrt_wstdio@h DB 01H -__B3FE3303_stdio@h DB 01H -__955456CD_stddef@h DB 01H -__99AED4FB_corecrt_search@h DB 01H -__8B813BF6_corecrt_wstdlib@h DB 01H -__3D1CA2C3_limits@h DB 01H -__E8FB0A68_stdlib@h DB 01H -__F562FA57_stb_image@h DB 01H -__C95DC661_khrplatform@h DB 01H -__6C577136_gl@h DB 01H -__EE638A2C_wgl@h DB 01H -__8EF9E35C_glfw3@h DB 01H -__F8AC8404_emmintrin@h DB 01H -__270DEC8D_pmmintrin@h DB 01H -__97D49F0F_tmmintrin@h DB 01H -__BEEF8A8C_smmintrin@h DB 01H -__DB8D0340_nmmintrin@h DB 01H -__0E36F90E_wmmintrin@h DB 01H -__C5A2B409_zmmintrin@h DB 01H -__F2B616C3_immintrin@h DB 01H -__9FB25DBE_assert@h DB 01H -__4E664295_glfw_function@h DB 01H -__64C0EF11_StgSharpNative@h DB 01H -__F49407C4_sn_intrinsic@matkernel@h DB 01H -__47E843D2_intrin0@inl@h DB 01H -__130964FF_setjmp@h DB 01H -__4875F786_ammintrin@h DB 01H -__353FD888_intrin@h DB 01H -__5FE1E9E3_isa_availability@h DB 01H -__AA840D82_sn_intrinsic@h DB 01H -__9CC1CD6B_vector_dot@c DB 01H -msvcjmc ENDS -CONST SEGMENT -avxdot_indices DD 00H - DD 04H - DD 01H - DD 05H - DD 02H - DD 03H - DD 06H - DD 07H -CONST ENDS -PUBLIC dot_41_sse -PUBLIC dot_41_avx -PUBLIC dot_42_sse -PUBLIC dot_42_avx -PUBLIC __JustMyCode_Default -EXTRN _RTC_InitBase:PROC -EXTRN _RTC_Shutdown:PROC -EXTRN __CheckForDebuggerJustMyCode:PROC -; COMDAT pdata -pdata SEGMENT -$pdata$dot_41_sse DD imagerel $LN3 - DD imagerel $LN3+281 - DD imagerel $unwind$dot_41_sse -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$dot_41_avx DD imagerel $LN3 - DD imagerel $LN3+215 - DD imagerel $unwind$dot_41_avx -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$dot_42_sse DD imagerel $LN3 - DD imagerel $LN3+678 - DD imagerel $unwind$dot_42_sse -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$dot_42_avx DD imagerel $LN3 - DD imagerel $LN3+446 - DD imagerel $unwind$dot_42_avx -pdata ENDS -; COMDAT rtc$TMZ -rtc$TMZ SEGMENT -_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown -rtc$TMZ ENDS -; COMDAT rtc$IMZ -rtc$IMZ SEGMENT -_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase -rtc$IMZ ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$dot_42_avx DD 02d062801H - DD 011a231fH - DD 07013003aH - DD 0d0115012H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$dot_42_sse DD 025051d01H - DD 0118231dH - DD 07011001dH - DD 05010H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$dot_41_avx DD 02d062801H - DD 011a231fH - DD 070130032H - DD 0d0115012H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$dot_41_sse DD 025051d01H - DD 0118231dH - DD 07011001dH - DD 05010H -xdata ENDS -; Function compile flags: /Odt -; COMDAT __JustMyCode_Default -_TEXT SEGMENT -__JustMyCode_Default PROC ; COMDAT - 00000 c2 00 00 ret 0 -__JustMyCode_Default ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\vector_dot.c -; COMDAT dot_42_avx -_TEXT SEGMENT -temp$ = 32 -vector_stream$ = 96 -result$ = 160 -transpose$ = 464 -vector$ = 472 -ans$ = 480 -dot_42_avx PROC ; COMDAT - -; 51 : { - -$LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 41 55 push r13 - 00011 55 push rbp - 00012 57 push rdi - 00013 48 81 ec d0 01 - 00 00 sub rsp, 464 ; 000001d0H - 0001a 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 0001f 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00024 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H - 00028 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__9CC1CD6B_vector_dot@c - 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00034 90 npad 1 - -; 52 : __m256 temp = transpose->f32_y[0]; - - 00035 b8 20 00 00 00 mov eax, 32 ; 00000020H - 0003a 48 6b c0 00 imul rax, rax, 0 - 0003e 49 8b 8d d0 01 - 00 00 mov rcx, QWORD PTR transpose$[r13] - 00045 c5 fc 10 04 01 vmovups ymm0, YMMWORD PTR [rcx+rax] - 0004a c5 fc 11 45 20 vmovups YMMWORD PTR temp$[rbp], ymm0 - -; 53 : __m256 vector_stream = _mm256_set_m128(vector[1], vector[0]); - - 0004f b8 10 00 00 00 mov eax, 16 - 00054 48 6b c0 01 imul rax, rax, 1 - 00058 b9 10 00 00 00 mov ecx, 16 - 0005d 48 6b c9 00 imul rcx, rcx, 0 - 00061 49 8b 95 d8 01 - 00 00 mov rdx, QWORD PTR vector$[r13] - 00068 c5 f8 10 04 0a vmovups xmm0, XMMWORD PTR [rdx+rcx] - 0006d 49 8b 8d d8 01 - 00 00 mov rcx, QWORD PTR vector$[r13] - 00074 c4 e3 7d 18 04 - 01 01 vinsertf128 ymm0, ymm0, XMMWORD PTR [rcx+rax], 1 - 0007b c5 fc 11 45 60 vmovups YMMWORD PTR vector_stream$[rbp], ymm0 - -; 54 : -; 55 : __m256 result = _mm256_dp_ps(temp, vector_stream, 0B11110001); - - 00080 c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR temp$[rbp] - 00085 c4 e3 7d 40 45 - 60 f1 vdpps ymm0, ymm0, YMMWORD PTR vector_stream$[rbp], 241 ; 000000f1H - 0008c c5 fc 11 85 a0 - 00 00 00 vmovups YMMWORD PTR result$[rbp], ymm0 - -; 56 : temp = _mm256_permute2f128_ps(temp, temp, 0B00000001); - - 00094 c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR temp$[rbp] - 00099 c4 e3 7d 06 45 - 20 01 vperm2f128 ymm0, ymm0, YMMWORD PTR temp$[rbp], 1 - 000a0 c5 fc 11 45 20 vmovups YMMWORD PTR temp$[rbp], ymm0 - -; 57 : result = _mm256_blend_ps(result, _mm256_dp_ps(temp, vector_stream, 0B11110010), 0B00100010); - - 000a5 c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR temp$[rbp] - 000aa c4 e3 7d 40 45 - 60 f2 vdpps ymm0, ymm0, YMMWORD PTR vector_stream$[rbp], 242 ; 000000f2H - 000b1 c5 fc 10 8d a0 - 00 00 00 vmovups ymm1, YMMWORD PTR result$[rbp] - 000b9 c4 e3 75 0c c0 - 22 vblendps ymm0, ymm1, ymm0, 34 ; 00000022H - 000bf c5 fc 11 85 a0 - 00 00 00 vmovups YMMWORD PTR result$[rbp], ymm0 - -; 58 : -; 59 : temp = transpose->f32_y[1]; - - 000c7 b8 20 00 00 00 mov eax, 32 ; 00000020H - 000cc 48 6b c0 01 imul rax, rax, 1 - 000d0 49 8b 8d d0 01 - 00 00 mov rcx, QWORD PTR transpose$[r13] - 000d7 c5 fc 10 04 01 vmovups ymm0, YMMWORD PTR [rcx+rax] - 000dc c5 fc 11 45 20 vmovups YMMWORD PTR temp$[rbp], ymm0 - -; 60 : result = _mm256_blend_ps(result, _mm256_dp_ps(temp, vector_stream, 0B11110100), 0B01000100); - - 000e1 c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR temp$[rbp] - 000e6 c4 e3 7d 40 45 - 60 f4 vdpps ymm0, ymm0, YMMWORD PTR vector_stream$[rbp], 244 ; 000000f4H - 000ed c5 fc 10 8d a0 - 00 00 00 vmovups ymm1, YMMWORD PTR result$[rbp] - 000f5 c4 e3 75 0c c0 - 44 vblendps ymm0, ymm1, ymm0, 68 ; 00000044H - 000fb c5 fc 11 85 a0 - 00 00 00 vmovups YMMWORD PTR result$[rbp], ymm0 - -; 61 : temp = _mm256_permute2f128_ps(temp, temp, 0B00000001); - - 00103 c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR temp$[rbp] - 00108 c4 e3 7d 06 45 - 20 01 vperm2f128 ymm0, ymm0, YMMWORD PTR temp$[rbp], 1 - 0010f c5 fc 11 45 20 vmovups YMMWORD PTR temp$[rbp], ymm0 - -; 62 : result = _mm256_blend_ps(result, _mm256_dp_ps(temp, vector_stream, 0B11111000), 0B10001000); - - 00114 c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR temp$[rbp] - 00119 c4 e3 7d 40 45 - 60 f8 vdpps ymm0, ymm0, YMMWORD PTR vector_stream$[rbp], 248 ; 000000f8H - 00120 c5 fc 10 8d a0 - 00 00 00 vmovups ymm1, YMMWORD PTR result$[rbp] - 00128 c4 e3 75 0c c0 - 88 vblendps ymm0, ymm1, ymm0, 136 ; 00000088H - 0012e c5 fc 11 85 a0 - 00 00 00 vmovups YMMWORD PTR result$[rbp], ymm0 - -; 63 : -; 64 : ans[0] = _mm256_castps256_ps128(result); - - 00136 c5 f8 10 85 a0 - 00 00 00 vmovups xmm0, XMMWORD PTR result$[rbp] - 0013e b8 10 00 00 00 mov eax, 16 - 00143 48 6b c0 00 imul rax, rax, 0 - 00147 49 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 0014e 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 - -; 65 : ans[1] = _mm256_extractf128_ps(result, 1); - - 00152 c5 fc 10 85 a0 - 00 00 00 vmovups ymm0, YMMWORD PTR result$[rbp] - 0015a c4 e3 7d 19 c0 - 01 vextractf128 xmm0, ymm0, 1 - 00160 b8 10 00 00 00 mov eax, 16 - 00165 48 6b c0 01 imul rax, rax, 1 - 00169 49 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 00170 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 - -; 66 : ans[1] = _mm_shuffle_ps(ans[1], ans[1], _MM_SHUFFLE(2, 3, 0, 1)); - - 00174 b8 10 00 00 00 mov eax, 16 - 00179 48 6b c0 01 imul rax, rax, 1 - 0017d b9 10 00 00 00 mov ecx, 16 - 00182 48 6b c9 01 imul rcx, rcx, 1 - 00186 49 8b 95 e0 01 - 00 00 mov rdx, QWORD PTR ans$[r13] - 0018d 4d 8b 85 e0 01 - 00 00 mov r8, QWORD PTR ans$[r13] - 00194 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx] - 00198 41 0f c6 04 00 - b1 shufps xmm0, XMMWORD PTR [r8+rax], 177 ; 000000b1H - 0019e b8 10 00 00 00 mov eax, 16 - 001a3 48 6b c0 01 imul rax, rax, 1 - 001a7 49 8b 8d e0 01 - 00 00 mov rcx, QWORD PTR ans$[r13] - 001ae 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 - -; 67 : } - - 001b2 49 8d a5 b0 01 - 00 00 lea rsp, QWORD PTR [r13+432] - 001b9 5f pop rdi - 001ba 5d pop rbp - 001bb 41 5d pop r13 - 001bd c3 ret 0 -dot_42_avx ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\vector_dot.c -; COMDAT dot_42_sse -_TEXT SEGMENT -transpose$ = 224 -vector$ = 232 -ans$ = 240 -dot_42_sse PROC ; COMDAT - -; 31 : { - -$LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__9CC1CD6B_vector_dot@c - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 90 npad 1 - -; 32 : ans[0] = _mm_dp_ps(transpose->f32_x[0], vector[0], 0B11110001); - - 0002a b8 10 00 00 00 mov eax, 16 - 0002f 48 6b c0 00 imul rax, rax, 0 - 00033 b9 10 00 00 00 mov ecx, 16 - 00038 48 6b c9 00 imul rcx, rcx, 0 - 0003c 48 8b 95 e0 00 - 00 00 mov rdx, QWORD PTR transpose$[rbp] - 00043 4c 8b 85 e8 00 - 00 00 mov r8, QWORD PTR vector$[rbp] - 0004a 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx] - 0004e 66 41 0f 3a 40 - 04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H - 00056 b8 10 00 00 00 mov eax, 16 - 0005b 48 6b c0 00 imul rax, rax, 0 - 0005f 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00066 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 - -; 33 : ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->f32_x[1], vector[0], 0B11110001), - - 0006a b8 10 00 00 00 mov eax, 16 - 0006f 48 6b c0 00 imul rax, rax, 0 - 00073 b9 10 00 00 00 mov ecx, 16 - 00078 48 6b c9 01 imul rcx, rcx, 1 - 0007c 48 8b 95 e0 00 - 00 00 mov rdx, QWORD PTR transpose$[rbp] - 00083 4c 8b 85 e8 00 - 00 00 mov r8, QWORD PTR vector$[rbp] - 0008a 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx] - 0008e 66 41 0f 3a 40 - 04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H - 00096 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR ans$[rbp] - 0009d 0f 10 08 movups xmm1, XMMWORD PTR [rax] - 000a0 66 0f 3a 21 c8 - 10 insertps xmm1, xmm0, 16 - 000a6 0f 28 c1 movaps xmm0, xmm1 - 000a9 b8 10 00 00 00 mov eax, 16 - 000ae 48 6b c0 00 imul rax, rax, 0 - 000b2 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 000b9 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 - -; 34 : SSE_INSERT_SIMPLE(1, 2)); -; 35 : ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->f32_x[2], vector[0], 0B11110001), - - 000bd b8 10 00 00 00 mov eax, 16 - 000c2 48 6b c0 00 imul rax, rax, 0 - 000c6 b9 10 00 00 00 mov ecx, 16 - 000cb 48 6b c9 02 imul rcx, rcx, 2 - 000cf 48 8b 95 e0 00 - 00 00 mov rdx, QWORD PTR transpose$[rbp] - 000d6 4c 8b 85 e8 00 - 00 00 mov r8, QWORD PTR vector$[rbp] - 000dd 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx] - 000e1 66 41 0f 3a 40 - 04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H - 000e9 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR ans$[rbp] - 000f0 0f 10 08 movups xmm1, XMMWORD PTR [rax] - 000f3 66 0f 3a 21 c8 - 20 insertps xmm1, xmm0, 32 ; 00000020H - 000f9 0f 28 c1 movaps xmm0, xmm1 - 000fc b8 10 00 00 00 mov eax, 16 - 00101 48 6b c0 00 imul rax, rax, 0 - 00105 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 0010c 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 - -; 36 : SSE_INSERT_SIMPLE(1, 3)); -; 37 : ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->f32_x[3], vector[0], 0B11110001), - - 00110 b8 10 00 00 00 mov eax, 16 - 00115 48 6b c0 00 imul rax, rax, 0 - 00119 b9 10 00 00 00 mov ecx, 16 - 0011e 48 6b c9 03 imul rcx, rcx, 3 - 00122 48 8b 95 e0 00 - 00 00 mov rdx, QWORD PTR transpose$[rbp] - 00129 4c 8b 85 e8 00 - 00 00 mov r8, QWORD PTR vector$[rbp] - 00130 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx] - 00134 66 41 0f 3a 40 - 04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H - 0013c 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR ans$[rbp] - 00143 0f 10 08 movups xmm1, XMMWORD PTR [rax] - 00146 66 0f 3a 21 c8 - 30 insertps xmm1, xmm0, 48 ; 00000030H - 0014c 0f 28 c1 movaps xmm0, xmm1 - 0014f b8 10 00 00 00 mov eax, 16 - 00154 48 6b c0 00 imul rax, rax, 0 - 00158 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 0015f 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 - -; 38 : SSE_INSERT_SIMPLE(1, 4)); -; 39 : -; 40 : ans[1] = _mm_dp_ps(transpose->f32_x[0], vector[1], 0B11110001); - - 00163 b8 10 00 00 00 mov eax, 16 - 00168 48 6b c0 01 imul rax, rax, 1 - 0016c b9 10 00 00 00 mov ecx, 16 - 00171 48 6b c9 00 imul rcx, rcx, 0 - 00175 48 8b 95 e0 00 - 00 00 mov rdx, QWORD PTR transpose$[rbp] - 0017c 4c 8b 85 e8 00 - 00 00 mov r8, QWORD PTR vector$[rbp] - 00183 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx] - 00187 66 41 0f 3a 40 - 04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H - 0018f b8 10 00 00 00 mov eax, 16 - 00194 48 6b c0 01 imul rax, rax, 1 - 00198 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 0019f 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 - -; 41 : ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->f32_x[1], vector[1], 0B11110001), - - 001a3 b8 10 00 00 00 mov eax, 16 - 001a8 48 6b c0 01 imul rax, rax, 1 - 001ac b9 10 00 00 00 mov ecx, 16 - 001b1 48 6b c9 01 imul rcx, rcx, 1 - 001b5 48 8b 95 e0 00 - 00 00 mov rdx, QWORD PTR transpose$[rbp] - 001bc 4c 8b 85 e8 00 - 00 00 mov r8, QWORD PTR vector$[rbp] - 001c3 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx] - 001c7 66 41 0f 3a 40 - 04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H - 001cf 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR ans$[rbp] - 001d6 0f 10 08 movups xmm1, XMMWORD PTR [rax] - 001d9 66 0f 3a 21 c8 - 10 insertps xmm1, xmm0, 16 - 001df 0f 28 c1 movaps xmm0, xmm1 - 001e2 b8 10 00 00 00 mov eax, 16 - 001e7 48 6b c0 01 imul rax, rax, 1 - 001eb 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 001f2 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 - -; 42 : SSE_INSERT_SIMPLE(1, 2)); -; 43 : ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->f32_x[2], vector[1], 0B11110001), - - 001f6 b8 10 00 00 00 mov eax, 16 - 001fb 48 6b c0 01 imul rax, rax, 1 - 001ff b9 10 00 00 00 mov ecx, 16 - 00204 48 6b c9 02 imul rcx, rcx, 2 - 00208 48 8b 95 e0 00 - 00 00 mov rdx, QWORD PTR transpose$[rbp] - 0020f 4c 8b 85 e8 00 - 00 00 mov r8, QWORD PTR vector$[rbp] - 00216 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx] - 0021a 66 41 0f 3a 40 - 04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H - 00222 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR ans$[rbp] - 00229 0f 10 08 movups xmm1, XMMWORD PTR [rax] - 0022c 66 0f 3a 21 c8 - 20 insertps xmm1, xmm0, 32 ; 00000020H - 00232 0f 28 c1 movaps xmm0, xmm1 - 00235 b8 10 00 00 00 mov eax, 16 - 0023a 48 6b c0 01 imul rax, rax, 1 - 0023e 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00245 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 - -; 44 : SSE_INSERT_SIMPLE(1, 3)); -; 45 : ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->f32_x[3], vector[1], 0B11110001), - - 00249 b8 10 00 00 00 mov eax, 16 - 0024e 48 6b c0 01 imul rax, rax, 1 - 00252 b9 10 00 00 00 mov ecx, 16 - 00257 48 6b c9 03 imul rcx, rcx, 3 - 0025b 48 8b 95 e0 00 - 00 00 mov rdx, QWORD PTR transpose$[rbp] - 00262 4c 8b 85 e8 00 - 00 00 mov r8, QWORD PTR vector$[rbp] - 00269 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx] - 0026d 66 41 0f 3a 40 - 04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H - 00275 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR ans$[rbp] - 0027c 0f 10 08 movups xmm1, XMMWORD PTR [rax] - 0027f 66 0f 3a 21 c8 - 30 insertps xmm1, xmm0, 48 ; 00000030H - 00285 0f 28 c1 movaps xmm0, xmm1 - 00288 b8 10 00 00 00 mov eax, 16 - 0028d 48 6b c0 01 imul rax, rax, 1 - 00291 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR ans$[rbp] - 00298 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 - -; 46 : SSE_INSERT_SIMPLE(1, 4)); -; 47 : } - - 0029c 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 002a3 5f pop rdi - 002a4 5d pop rbp - 002a5 c3 ret 0 -dot_42_sse ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\vector_dot.c -; COMDAT dot_41_avx -_TEXT SEGMENT -_double$ = 32 -tmp$ = 96 -transpose$ = 400 -vector$ = 408 -ans$ = 416 -dot_41_avx PROC ; COMDAT - -; 20 : { - -$LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 41 55 push r13 - 00011 55 push rbp - 00012 57 push rdi - 00013 48 81 ec 90 01 - 00 00 sub rsp, 400 ; 00000190H - 0001a 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32] - 0001f 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00024 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H - 00028 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__9CC1CD6B_vector_dot@c - 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00034 90 npad 1 - -; 21 : __m256 _double = _mm256_set_m128(vector[0], vector[0]); - - 00035 b8 10 00 00 00 mov eax, 16 - 0003a 48 6b c0 00 imul rax, rax, 0 - 0003e b9 10 00 00 00 mov ecx, 16 - 00043 48 6b c9 00 imul rcx, rcx, 0 - 00047 49 8b 95 98 01 - 00 00 mov rdx, QWORD PTR vector$[r13] - 0004e c5 f8 10 04 0a vmovups xmm0, XMMWORD PTR [rdx+rcx] - 00053 49 8b 8d 98 01 - 00 00 mov rcx, QWORD PTR vector$[r13] - 0005a c4 e3 7d 18 04 - 01 01 vinsertf128 ymm0, ymm0, XMMWORD PTR [rcx+rax], 1 - 00061 c5 fc 11 45 20 vmovups YMMWORD PTR _double$[rbp], ymm0 - -; 22 : __m256 tmp = _mm256_dp_ps(transpose->f32_y[0], _double, 0B11110001); - - 00066 b8 20 00 00 00 mov eax, 32 ; 00000020H - 0006b 48 6b c0 00 imul rax, rax, 0 - 0006f 49 8b 8d 90 01 - 00 00 mov rcx, QWORD PTR transpose$[r13] - 00076 c5 fc 10 04 01 vmovups ymm0, YMMWORD PTR [rcx+rax] - 0007b c4 e3 7d 40 45 - 20 f1 vdpps ymm0, ymm0, YMMWORD PTR _double$[rbp], 241 ; 000000f1H - 00082 c5 fc 11 45 60 vmovups YMMWORD PTR tmp$[rbp], ymm0 - -; 23 : tmp = _mm256_blend_ps(tmp, _mm256_dp_ps(transpose->f32_y[0], _double, 0B11110010), - - 00087 b8 20 00 00 00 mov eax, 32 ; 00000020H - 0008c 48 6b c0 00 imul rax, rax, 0 - 00090 49 8b 8d 90 01 - 00 00 mov rcx, QWORD PTR transpose$[r13] - 00097 c5 fc 10 04 01 vmovups ymm0, YMMWORD PTR [rcx+rax] - 0009c c4 e3 7d 40 45 - 20 f2 vdpps ymm0, ymm0, YMMWORD PTR _double$[rbp], 242 ; 000000f2H - 000a3 c5 fc 10 4d 60 vmovups ymm1, YMMWORD PTR tmp$[rbp] - 000a8 c4 e3 75 0c c0 - 22 vblendps ymm0, ymm1, ymm0, 34 ; 00000022H - 000ae c5 fc 11 45 60 vmovups YMMWORD PTR tmp$[rbp], ymm0 - -; 24 : 0B00100010); -; 25 : *ans = _mm256_castps256_ps128( - - 000b3 c5 fe 6f 05 00 - 00 00 00 vmovdqu ymm0, YMMWORD PTR avxdot_indices - 000bb c4 e2 7d 16 45 - 60 vpermps ymm0, ymm0, YMMWORD PTR tmp$[rbp] - 000c1 49 8b 85 a0 01 - 00 00 mov rax, QWORD PTR ans$[r13] - 000c8 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 26 : _mm256_permutevar8x32_ps(tmp, _mm256_loadu_epi32(avxdot_indices))); -; 27 : } - - 000cb 49 8d a5 70 01 - 00 00 lea rsp, QWORD PTR [r13+368] - 000d2 5f pop rdi - 000d3 5d pop rbp - 000d4 41 5d pop r13 - 000d6 c3 ret 0 -dot_41_avx ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File D:\platform-dev\StgSharp.Native\sn-src\vector_dot.c -; COMDAT dot_41_sse -_TEXT SEGMENT -transpose$ = 224 -vector$ = 232 -ans$ = 240 -dot_41_sse PROC ; COMDAT - -; 8 : { - -$LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__9CC1CD6B_vector_dot@c - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 90 npad 1 - -; 9 : *ans = _mm_dp_ps(transpose->f32_x[0], *vector, 0B11110001); - - 0002a b8 10 00 00 00 mov eax, 16 - 0002f 48 6b c0 00 imul rax, rax, 0 - 00033 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR transpose$[rbp] - 0003a 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR vector$[rbp] - 00041 0f 10 04 01 movups xmm0, XMMWORD PTR [rcx+rax] - 00045 66 0f 3a 40 02 - f1 dpps xmm0, XMMWORD PTR [rdx], 241 ; 000000f1H - 0004b 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR ans$[rbp] - 00052 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 10 : *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->f32_x[1], *vector, 0B11110001), - - 00055 b8 10 00 00 00 mov eax, 16 - 0005a 48 6b c0 01 imul rax, rax, 1 - 0005e 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR transpose$[rbp] - 00065 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR vector$[rbp] - 0006c 0f 10 04 01 movups xmm0, XMMWORD PTR [rcx+rax] - 00070 66 0f 3a 40 02 - f1 dpps xmm0, XMMWORD PTR [rdx], 241 ; 000000f1H - 00076 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR ans$[rbp] - 0007d 0f 10 08 movups xmm1, XMMWORD PTR [rax] - 00080 66 0f 3a 21 c8 - 00 insertps xmm1, xmm0, 0 - 00086 0f 28 c1 movaps xmm0, xmm1 - 00089 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR ans$[rbp] - 00090 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 11 : SSE_INSERT_SIMPLE(1, 1)); -; 12 : *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->f32_x[2], *vector, 0B11110001), - - 00093 b8 10 00 00 00 mov eax, 16 - 00098 48 6b c0 02 imul rax, rax, 2 - 0009c 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR transpose$[rbp] - 000a3 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR vector$[rbp] - 000aa 0f 10 04 01 movups xmm0, XMMWORD PTR [rcx+rax] - 000ae 66 0f 3a 40 02 - f1 dpps xmm0, XMMWORD PTR [rdx], 241 ; 000000f1H - 000b4 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR ans$[rbp] - 000bb 0f 10 08 movups xmm1, XMMWORD PTR [rax] - 000be 66 0f 3a 21 c8 - 20 insertps xmm1, xmm0, 32 ; 00000020H - 000c4 0f 28 c1 movaps xmm0, xmm1 - 000c7 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR ans$[rbp] - 000ce 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 13 : SSE_INSERT_SIMPLE(1, 3)); -; 14 : *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->f32_x[3], *vector, 0B11110001), - - 000d1 b8 10 00 00 00 mov eax, 16 - 000d6 48 6b c0 03 imul rax, rax, 3 - 000da 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR transpose$[rbp] - 000e1 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR vector$[rbp] - 000e8 0f 10 04 01 movups xmm0, XMMWORD PTR [rcx+rax] - 000ec 66 0f 3a 40 02 - f1 dpps xmm0, XMMWORD PTR [rdx], 241 ; 000000f1H - 000f2 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR ans$[rbp] - 000f9 0f 10 08 movups xmm1, XMMWORD PTR [rax] - 000fc 66 0f 3a 21 c8 - 30 insertps xmm1, xmm0, 48 ; 00000030H - 00102 0f 28 c1 movaps xmm0, xmm1 - 00105 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR ans$[rbp] - 0010c 0f 11 00 movups XMMWORD PTR [rax], xmm0 - -; 15 : SSE_INSERT_SIMPLE(1, 4)); -; 16 : } - - 0010f 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00116 5f pop rdi - 00117 5d pop rbp - 00118 c3 ret 0 -dot_41_sse ENDP -_TEXT ENDS -END diff --git a/obj/StgSharp.Native/Debug/x64/vector_dot.nativecodeanalysis.sarif b/obj/StgSharp.Native/Debug/x64/vector_dot.nativecodeanalysis.sarif deleted file mode 100644 index dcd92988..00000000 --- a/obj/StgSharp.Native/Debug/x64/vector_dot.nativecodeanalysis.sarif +++ /dev/null @@ -1,123 +0,0 @@ -{ - "version": "2.1.0", - "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", - "runs": [ - { - "results": [], - "tool": { - "driver": { - "name": "PREfast", - "fullName": "MSVC Code Analysis", - "version": "14.44.35220.0", - "informationUri": "https://aka.ms/cpp/ca" - } - }, - "invocations": [ - { - "executionSuccessful": true - } - ], - "artifacts": [ - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-src/vector_dot.c" - }, - "roles": [ - "analysisTarget" - ], - "hashes": { - "sha-256": "ae91c34c7332f5433bc8aff1e46caf1032253883e4764b4249d4e19241454488" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrinsic.h" - }, - "hashes": { - "sha-256": "94ca202415b5a633ad79580db19ae2b7def151b2e3f5d2dcaa341cfe934a5b0c" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/stgsharpnative.h" - }, - "hashes": { - "sha-256": "5eee6b3faf7bf2247fe44898b0fcb71794c346ae2f0b58953e1632a49c1b6c4e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_internal.h" - }, - "hashes": { - "sha-256": "7430f5e8582c672b79e266834c290e4d426ce44b7bd3b7e5534f201a48ff6df9" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_target.h" - }, - "hashes": { - "sha-256": "b8c543a09db7bd21a2b409476024fa6bec6a5218d88ca036d15584ed453ceb91" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/stbi/stb_image.h" - }, - "hashes": { - "sha-256": "c45e3ef56a7d946654740f02e25fcb99a819861155ad1173349a289f2a000ce2" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/gl.h" - }, - "hashes": { - "sha-256": "c9d0960c919f9ef4cfa6449f2b0c00f2ad8286b420e01ee7ec34b40c618392fc" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/khrplatform.h" - }, - "hashes": { - "sha-256": "f5b69ed6a7bef6651526abb2d1263811d59acdba7a29368bb9be1a0f9e80160f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/wgl.h" - }, - "hashes": { - "sha-256": "86d6c58acb0a92b35ce8d94d6817fcec3f73d9e147e8621f468f143db1bbd81f" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/lib/glfw/glfw3.h" - }, - "hashes": { - "sha-256": "85c584857dddd780c131940ed69cd516c2b60d61664df9cb254710c3602c1008" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/glfw_function.h" - }, - "hashes": { - "sha-256": "4baa73f465e3e347fc0ad0ff666a6db2e83e749acd770f4bee02c12a7b9ec36e" - } - }, - { - "location": { - "uri": "file:///d:/platform-dev/stgsharp.native/sn-head/sn_intrinsic.matkernel.h" - }, - "hashes": { - "sha-256": "19f0030c441ae5c4cec0b446b64daa10448fafd44d4fd6dd2232b84f5ed9aad1" - } - } - ] - } - ] -} \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/vector_dot.nativecodeanalysis.xml b/obj/StgSharp.Native/Debug/x64/vector_dot.nativecodeanalysis.xml deleted file mode 100644 index dcdf0885..00000000 --- a/obj/StgSharp.Native/Debug/x64/vector_dot.nativecodeanalysis.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/obj/StgSharp.Native/Debug/x64/vector_dot.obj b/obj/StgSharp.Native/Debug/x64/vector_dot.obj deleted file mode 100644 index 0c6162f8..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/vector_dot.obj and /dev/null differ diff --git a/obj/StgSharp.Native/Debug/x64/vector_dot.sbr b/obj/StgSharp.Native/Debug/x64/vector_dot.sbr deleted file mode 100644 index f66376ea..00000000 Binary files a/obj/StgSharp.Native/Debug/x64/vector_dot.sbr and /dev/null differ