diff --git a/.cr/personal/Editor/IntelliRush.xml b/.cr/personal/Editor/IntelliRush.xml
new file mode 100644
index 00000000..e241e096
--- /dev/null
+++ b/.cr/personal/Editor/IntelliRush.xml
@@ -0,0 +1,7 @@
+
+
+
+ True
+
+
+
\ No newline at end of file
diff --git a/.cr/personal/Editor/Right Margin Line/Right Margin Line.xml b/.cr/personal/Editor/Right Margin Line/Right Margin Line.xml
new file mode 100644
index 00000000..8432cfbd
--- /dev/null
+++ b/.cr/personal/Editor/Right Margin Line/Right Margin Line.xml
@@ -0,0 +1,6 @@
+
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.cr/personal/Editor/Spell checker.xml b/.cr/personal/Editor/Spell checker.xml
new file mode 100644
index 00000000..c6b7944b
--- /dev/null
+++ b/.cr/personal/Editor/Spell checker.xml
@@ -0,0 +1,6 @@
+
+
+
+ XmlComments|Comments|Strings|VerbatimStrings|PublicIdentifiers|InternalIdentifiers|ProtectedInternalIdentifiers|ProtectedIdentifiers|PrivateIdentifiers|LocalIdentifiers
+
+
\ No newline at end of file
diff --git a/.cr/personal/FavoritesList/List.xml b/.cr/personal/FavoritesList/List.xml
new file mode 100644
index 00000000..a60e5ed6
--- /dev/null
+++ b/.cr/personal/FavoritesList/List.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.cr/personal/IDE/BuildEngine.xml b/.cr/personal/IDE/BuildEngine.xml
new file mode 100644
index 00000000..a1af350d
--- /dev/null
+++ b/.cr/personal/IDE/BuildEngine.xml
@@ -0,0 +1,6 @@
+
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.cr/personal/IDE/Shortcuts.xml b/.cr/personal/IDE/Shortcuts.xml
new file mode 100644
index 00000000..5e9c7e1f
--- /dev/null
+++ b/.cr/personal/IDE/Shortcuts.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+ -
+ False
+
+
+
+ -
+ False
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
-
+
+
+ -
+ False
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 00000000..a8a7e26e
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,135 @@
+[*.cs]
+
+# CS1591: 缺少对公共可见类型或成员的 XML 注释
+dotnet_diagnostic.CS1591.severity = suggestion
+
+[*.cs]
+#### 命名样式 ####
+
+# 命名规则
+
+dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
+dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
+dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
+
+dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
+dotnet_naming_rule.types_should_be_pascal_case.symbols = types
+dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
+
+dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
+dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
+dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
+
+# 符号规范
+
+dotnet_naming_symbols.interface.applicable_kinds = interface
+dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
+dotnet_naming_symbols.interface.required_modifiers =
+
+dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
+dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
+dotnet_naming_symbols.types.required_modifiers =
+
+dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
+dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
+dotnet_naming_symbols.non_field_members.required_modifiers =
+
+# 命名样式
+
+dotnet_naming_style.begins_with_i.required_prefix = I
+dotnet_naming_style.begins_with_i.required_suffix =
+dotnet_naming_style.begins_with_i.word_separator =
+dotnet_naming_style.begins_with_i.capitalization = pascal_case
+
+dotnet_naming_style.pascal_case.required_prefix =
+dotnet_naming_style.pascal_case.required_suffix =
+dotnet_naming_style.pascal_case.word_separator =
+dotnet_naming_style.pascal_case.capitalization = pascal_case
+
+dotnet_naming_style.pascal_case.required_prefix =
+dotnet_naming_style.pascal_case.required_suffix =
+dotnet_naming_style.pascal_case.word_separator =
+dotnet_naming_style.pascal_case.capitalization = pascal_case
+csharp_using_directive_placement = outside_namespace:silent
+csharp_style_expression_bodied_methods = false:silent
+csharp_style_expression_bodied_constructors = false:silent
+csharp_style_expression_bodied_operators = false:silent
+csharp_style_expression_bodied_properties = true:silent
+csharp_style_expression_bodied_indexers = true:silent
+csharp_style_expression_bodied_accessors = true:silent
+csharp_style_expression_bodied_lambdas = true:silent
+csharp_style_expression_bodied_local_functions = false:silent
+csharp_style_conditional_delegate_call = true:suggestion
+csharp_style_var_for_built_in_types = false:silent
+csharp_style_var_when_type_is_apparent = false:silent
+csharp_style_var_elsewhere = false:silent
+csharp_prefer_simple_using_statement = false:suggestion
+csharp_prefer_braces = true:silent
+csharp_style_namespace_declarations = block_scoped:silent
+csharp_style_prefer_method_group_conversion = true:silent
+csharp_style_prefer_top_level_statements = false:silent
+csharp_style_prefer_primary_constructors = true:suggestion
+csharp_prefer_static_local_function = true:suggestion
+csharp_prefer_static_anonymous_function = true:suggestion
+csharp_style_prefer_readonly_struct = true:suggestion
+csharp_space_around_binary_operators = before_and_after
+csharp_indent_labels = one_less_than_current
+
+[*.vb]
+#### 命名样式 ####
+
+# 命名规则
+
+dotnet_naming_rule.interface_should_be_以_i_开始.severity = suggestion
+dotnet_naming_rule.interface_should_be_以_i_开始.symbols = interface
+dotnet_naming_rule.interface_should_be_以_i_开始.style = 以_i_开始
+
+dotnet_naming_rule.类型_should_be_帕斯卡拼写法.severity = suggestion
+dotnet_naming_rule.类型_should_be_帕斯卡拼写法.symbols = 类型
+dotnet_naming_rule.类型_should_be_帕斯卡拼写法.style = 帕斯卡拼写法
+
+dotnet_naming_rule.非字段成员_should_be_帕斯卡拼写法.severity = suggestion
+dotnet_naming_rule.非字段成员_should_be_帕斯卡拼写法.symbols = 非字段成员
+dotnet_naming_rule.非字段成员_should_be_帕斯卡拼写法.style = 帕斯卡拼写法
+
+# 符号规范
+
+dotnet_naming_symbols.interface.applicable_kinds = interface
+dotnet_naming_symbols.interface.applicable_accessibilities = public, friend, private, protected, protected_friend, private_protected
+dotnet_naming_symbols.interface.required_modifiers =
+
+dotnet_naming_symbols.类型.applicable_kinds = class, struct, interface, enum
+dotnet_naming_symbols.类型.applicable_accessibilities = public, friend, private, protected, protected_friend, private_protected
+dotnet_naming_symbols.类型.required_modifiers =
+
+dotnet_naming_symbols.非字段成员.applicable_kinds = property, event, method
+dotnet_naming_symbols.非字段成员.applicable_accessibilities = public, friend, private, protected, protected_friend, private_protected
+dotnet_naming_symbols.非字段成员.required_modifiers =
+
+# 命名样式
+
+dotnet_naming_style.以_i_开始.required_prefix = I
+dotnet_naming_style.以_i_开始.required_suffix =
+dotnet_naming_style.以_i_开始.word_separator =
+dotnet_naming_style.以_i_开始.capitalization = pascal_case
+
+dotnet_naming_style.帕斯卡拼写法.required_prefix =
+dotnet_naming_style.帕斯卡拼写法.required_suffix =
+dotnet_naming_style.帕斯卡拼写法.word_separator =
+dotnet_naming_style.帕斯卡拼写法.capitalization = pascal_case
+
+dotnet_naming_style.帕斯卡拼写法.required_prefix =
+dotnet_naming_style.帕斯卡拼写法.required_suffix =
+dotnet_naming_style.帕斯卡拼写法.word_separator =
+dotnet_naming_style.帕斯卡拼写法.capitalization = pascal_case
+
+[*.{cs,vb}]
+dotnet_style_qualification_for_field = false:silent
+dotnet_style_qualification_for_property = false:silent
+dotnet_style_qualification_for_method = false:silent
+dotnet_style_qualification_for_event = false:silent
+dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent
+end_of_line = crlf
+tab_width = 4
+indent_size = 4
+dotnet_style_operator_placement_when_wrapping = beginning_of_line
\ No newline at end of file
diff --git a/.filenesting.json b/.filenesting.json
new file mode 100644
index 00000000..0b719662
--- /dev/null
+++ b/.filenesting.json
@@ -0,0 +1,3 @@
+{
+ "help":"https://go.microsoft.com/fwlink/?linkid=866610"
+}
\ No newline at end of file
diff --git a/.idea/.idea.StgSharpDevelop/.idea/.gitignore b/.idea/.idea.StgSharpDevelop/.idea/.gitignore
new file mode 100644
index 00000000..e698f6b7
--- /dev/null
+++ b/.idea/.idea.StgSharpDevelop/.idea/.gitignore
@@ -0,0 +1,13 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/projectSettingsUpdater.xml
+/.idea.StgSharpDevelop.iml
+/contentModel.xml
+/modules.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.idea.StgSharpDevelop/.idea/.name b/.idea/.idea.StgSharpDevelop/.idea/.name
new file mode 100644
index 00000000..f15241e0
--- /dev/null
+++ b/.idea/.idea.StgSharpDevelop/.idea/.name
@@ -0,0 +1 @@
+StgSharpDevelop
\ No newline at end of file
diff --git a/.idea/.idea.StgSharpDevelop/.idea/indexLayout.xml b/.idea/.idea.StgSharpDevelop/.idea/indexLayout.xml
new file mode 100644
index 00000000..7b08163c
--- /dev/null
+++ b/.idea/.idea.StgSharpDevelop/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.StgSharpDevelop/.idea/vcs.xml b/.idea/.idea.StgSharpDevelop/.idea/vcs.xml
new file mode 100644
index 00000000..6c0b8635
--- /dev/null
+++ b/.idea/.idea.StgSharpDevelop/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.vs/ProjectEvaluation/stgsharp.metadata.v9.bin b/.vs/ProjectEvaluation/stgsharp.metadata.v9.bin
new file mode 100644
index 00000000..3528c3da
Binary files /dev/null and b/.vs/ProjectEvaluation/stgsharp.metadata.v9.bin differ
diff --git a/.vs/ProjectEvaluation/stgsharp.projects.v9.bin b/.vs/ProjectEvaluation/stgsharp.projects.v9.bin
new file mode 100644
index 00000000..04b2538e
Binary files /dev/null and b/.vs/ProjectEvaluation/stgsharp.projects.v9.bin differ
diff --git a/.vs/ProjectEvaluation/stgsharp.strings.v9.bin b/.vs/ProjectEvaluation/stgsharp.strings.v9.bin
new file mode 100644
index 00000000..9d94ac8e
Binary files /dev/null and b/.vs/ProjectEvaluation/stgsharp.strings.v9.bin differ
diff --git a/.vs/ProjectEvaluation/stgsharpdevelop.metadata.v9.bin b/.vs/ProjectEvaluation/stgsharpdevelop.metadata.v9.bin
new file mode 100644
index 00000000..f443f3d9
Binary files /dev/null and b/.vs/ProjectEvaluation/stgsharpdevelop.metadata.v9.bin differ
diff --git a/.vs/ProjectEvaluation/stgsharpdevelop.projects.v9.bin b/.vs/ProjectEvaluation/stgsharpdevelop.projects.v9.bin
new file mode 100644
index 00000000..d93b3771
Binary files /dev/null and b/.vs/ProjectEvaluation/stgsharpdevelop.projects.v9.bin differ
diff --git a/.vs/ProjectEvaluation/stgsharpdevelop.strings.v9.bin b/.vs/ProjectEvaluation/stgsharpdevelop.strings.v9.bin
new file mode 100644
index 00000000..8ea2f951
Binary files /dev/null and b/.vs/ProjectEvaluation/stgsharpdevelop.strings.v9.bin differ
diff --git a/.vs/StgSharp/CopilotIndices/0.2.1634.3922/CodeChunks.db b/.vs/StgSharp/CopilotIndices/0.2.1634.3922/CodeChunks.db
new file mode 100644
index 00000000..5642632e
Binary files /dev/null and b/.vs/StgSharp/CopilotIndices/0.2.1634.3922/CodeChunks.db differ
diff --git a/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db b/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db
new file mode 100644
index 00000000..fb7bb0f5
Binary files /dev/null and b/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db differ
diff --git a/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-shm b/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-shm
new file mode 100644
index 00000000..2eb24f9d
Binary files /dev/null and b/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-shm differ
diff --git a/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-wal b/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-wal
new file mode 100644
index 00000000..2fcc9971
Binary files /dev/null and b/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-wal differ
diff --git a/.vs/StgSharp/DesignTimeBuild/.dtbcache.v2 b/.vs/StgSharp/DesignTimeBuild/.dtbcache.v2
new file mode 100644
index 00000000..4db37a43
Binary files /dev/null and b/.vs/StgSharp/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/.vs/StgSharp/FileContentIndex/08c7e83f-f953-4d1f-b1f0-2cc2f63a4f86.vsidx b/.vs/StgSharp/FileContentIndex/08c7e83f-f953-4d1f-b1f0-2cc2f63a4f86.vsidx
new file mode 100644
index 00000000..44b48b3c
Binary files /dev/null and b/.vs/StgSharp/FileContentIndex/08c7e83f-f953-4d1f-b1f0-2cc2f63a4f86.vsidx differ
diff --git a/.vs/StgSharp/FileContentIndex/a2a6e272-c09e-4ab6-b9cd-e5bc799ca3aa.vsidx b/.vs/StgSharp/FileContentIndex/a2a6e272-c09e-4ab6-b9cd-e5bc799ca3aa.vsidx
new file mode 100644
index 00000000..b625ab59
Binary files /dev/null and b/.vs/StgSharp/FileContentIndex/a2a6e272-c09e-4ab6-b9cd-e5bc799ca3aa.vsidx differ
diff --git a/.vs/StgSharp/FileContentIndex/b2af4b15-2005-45b7-bc0b-2544eeb4c802.vsidx b/.vs/StgSharp/FileContentIndex/b2af4b15-2005-45b7-bc0b-2544eeb4c802.vsidx
new file mode 100644
index 00000000..6a8e8faa
Binary files /dev/null and b/.vs/StgSharp/FileContentIndex/b2af4b15-2005-45b7-bc0b-2544eeb4c802.vsidx differ
diff --git a/.vs/StgSharp/FileContentIndex/d86c618f-5e44-46d9-b6ab-fcb2f061a544.vsidx b/.vs/StgSharp/FileContentIndex/d86c618f-5e44-46d9-b6ab-fcb2f061a544.vsidx
new file mode 100644
index 00000000..35c13ae3
Binary files /dev/null and b/.vs/StgSharp/FileContentIndex/d86c618f-5e44-46d9-b6ab-fcb2f061a544.vsidx differ
diff --git a/.vs/StgSharp/FileContentIndex/f29e382a-2eb4-4f7e-9bd4-3da0e3848780.vsidx b/.vs/StgSharp/FileContentIndex/f29e382a-2eb4-4f7e-9bd4-3da0e3848780.vsidx
new file mode 100644
index 00000000..e42cba08
Binary files /dev/null and b/.vs/StgSharp/FileContentIndex/f29e382a-2eb4-4f7e-9bd4-3da0e3848780.vsidx differ
diff --git a/.vs/StgSharp/v17/.futdcache.v2 b/.vs/StgSharp/v17/.futdcache.v2
new file mode 100644
index 00000000..894d8fbf
Binary files /dev/null and b/.vs/StgSharp/v17/.futdcache.v2 differ
diff --git a/.vs/StgSharp/v17/.suo b/.vs/StgSharp/v17/.suo
new file mode 100644
index 00000000..053638b1
Binary files /dev/null and b/.vs/StgSharp/v17/.suo differ
diff --git a/.vs/StgSharp/v17/DocumentLayout.backup.json b/.vs/StgSharp/v17/DocumentLayout.backup.json
new file mode 100644
index 00000000..8245954a
--- /dev/null
+++ b/.vs/StgSharp/v17/DocumentLayout.backup.json
@@ -0,0 +1,35 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\",
+ "Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ }
+ ],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 200,
+ "SelectedChildIndex": 0,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "Rectangle.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs",
+ "RelativeToolTip": "StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2024-10-06T17:55:17.338Z"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.vs/StgSharp/v17/DocumentLayout.json b/.vs/StgSharp/v17/DocumentLayout.json
new file mode 100644
index 00000000..0ca412c0
--- /dev/null
+++ b/.vs/StgSharp/v17/DocumentLayout.json
@@ -0,0 +1,137 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\",
+ "Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\expression\\element\\exptype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\expression\\element\\exptype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\expression\\builtin\\expcollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\expression\\builtin\\expcollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\expression\\expschema.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\expression\\expschema.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\expression\\expelementinstancebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\expression\\expelementinstancebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\expression\\exptoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\expression\\exptoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\expression\\element\\expconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\expression\\element\\expconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ }
+ ],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 200,
+ "SelectedChildIndex": 4,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "ExpCollection.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\ExpCollection.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Builtin\\ExpCollection.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\ExpCollection.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Builtin\\ExpCollection.cs",
+ "ViewState": "AgIAADIAAAAAAAAAAAAUwEAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T05:33:29.273Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
+ "Title": "ExpSchema.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpSchema.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\ExpSchema.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpSchema.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\ExpSchema.cs",
+ "ViewState": "AgIAALcAAAAAAAAAAAAkwMcAAAAeAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T05:28:02.148Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 3,
+ "Title": "ExpElementInstanceBase.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpElementInstanceBase.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\ExpElementInstanceBase.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpElementInstanceBase.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\ExpElementInstanceBase.cs",
+ "ViewState": "AgIAAC4AAAAAAAAAAIA5wDcAAAAfAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T05:27:26.12Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 4,
+ "Title": "ExpToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\ExpToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpToken.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\ExpToken.cs",
+ "ViewState": "AgIAADwAAAAAAAAAAAAAAEAAAAALAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T05:26:18.196Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "ExpType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "ViewState": "AgIAAB4AAAAAAAAAAAAwwCUAAAAUAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T05:25:22.494Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 5,
+ "Title": "ExpConst.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "ViewState": "AgIAADkAAAAAAAAAAAAkwEkAAAAMAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T05:24:24.946Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 6,
+ "Title": "Rectangle.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs",
+ "RelativeToolTip": "StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2024-10-06T17:55:17.338Z"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.vs/StgSharp/v17/Solution.VC.db b/.vs/StgSharp/v17/Solution.VC.db
new file mode 100644
index 00000000..e1f6a685
Binary files /dev/null and b/.vs/StgSharp/v17/Solution.VC.db differ
diff --git a/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/CodeChunks.db b/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/CodeChunks.db
new file mode 100644
index 00000000..307fdf8e
Binary files /dev/null and b/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/CodeChunks.db differ
diff --git a/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/SemanticSymbols.db b/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/SemanticSymbols.db
new file mode 100644
index 00000000..76a3f931
Binary files /dev/null and b/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/SemanticSymbols.db differ
diff --git a/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-shm b/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-shm
new file mode 100644
index 00000000..5a52e374
Binary files /dev/null and b/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-shm differ
diff --git a/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-wal b/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-wal
new file mode 100644
index 00000000..aeb5ae6a
Binary files /dev/null and b/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-wal differ
diff --git a/.vs/StgSharpDevelop/DesignTimeBuild/.dtbcache.v2 b/.vs/StgSharpDevelop/DesignTimeBuild/.dtbcache.v2
new file mode 100644
index 00000000..38582b6a
Binary files /dev/null and b/.vs/StgSharpDevelop/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/.vs/StgSharpDevelop/FileContentIndex/494b389f-b0db-43bf-8b40-fdeac43e0c18.vsidx b/.vs/StgSharpDevelop/FileContentIndex/494b389f-b0db-43bf-8b40-fdeac43e0c18.vsidx
new file mode 100644
index 00000000..1ead8d77
Binary files /dev/null and b/.vs/StgSharpDevelop/FileContentIndex/494b389f-b0db-43bf-8b40-fdeac43e0c18.vsidx differ
diff --git a/.vs/StgSharpDevelop/FileContentIndex/67572a77-45ea-4642-b743-a22a52fe31a1.vsidx b/.vs/StgSharpDevelop/FileContentIndex/67572a77-45ea-4642-b743-a22a52fe31a1.vsidx
new file mode 100644
index 00000000..aa85807b
Binary files /dev/null and b/.vs/StgSharpDevelop/FileContentIndex/67572a77-45ea-4642-b743-a22a52fe31a1.vsidx differ
diff --git a/.vs/StgSharpDevelop/FileContentIndex/74cb9301-09ff-4a54-a13b-f1003be2a7a5.vsidx b/.vs/StgSharpDevelop/FileContentIndex/74cb9301-09ff-4a54-a13b-f1003be2a7a5.vsidx
new file mode 100644
index 00000000..22eb280d
Binary files /dev/null and b/.vs/StgSharpDevelop/FileContentIndex/74cb9301-09ff-4a54-a13b-f1003be2a7a5.vsidx differ
diff --git a/.vs/StgSharpDevelop/FileContentIndex/e06420f7-01ad-4246-83d0-ba6037c2e66f.vsidx b/.vs/StgSharpDevelop/FileContentIndex/e06420f7-01ad-4246-83d0-ba6037c2e66f.vsidx
new file mode 100644
index 00000000..0bad915d
Binary files /dev/null and b/.vs/StgSharpDevelop/FileContentIndex/e06420f7-01ad-4246-83d0-ba6037c2e66f.vsidx differ
diff --git a/.vs/StgSharpDevelop/FileContentIndex/ee3129e5-5772-476b-890a-4039a9811608.vsidx b/.vs/StgSharpDevelop/FileContentIndex/ee3129e5-5772-476b-890a-4039a9811608.vsidx
new file mode 100644
index 00000000..5c272021
Binary files /dev/null and b/.vs/StgSharpDevelop/FileContentIndex/ee3129e5-5772-476b-890a-4039a9811608.vsidx differ
diff --git a/.vs/StgSharpDevelop/config/applicationhost.config b/.vs/StgSharpDevelop/config/applicationhost.config
new file mode 100644
index 00000000..cdd2df8f
--- /dev/null
+++ b/.vs/StgSharpDevelop/config/applicationhost.config
@@ -0,0 +1,1026 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.vs/StgSharpDevelop/v17/.futdcache.v2 b/.vs/StgSharpDevelop/v17/.futdcache.v2
new file mode 100644
index 00000000..468551b0
Binary files /dev/null and b/.vs/StgSharpDevelop/v17/.futdcache.v2 differ
diff --git a/.vs/StgSharpDevelop/v17/.suo b/.vs/StgSharpDevelop/v17/.suo
new file mode 100644
index 00000000..c31aeb97
Binary files /dev/null and b/.vs/StgSharpDevelop/v17/.suo differ
diff --git a/.vs/StgSharpDevelop/v17/DocumentLayout.backup.json b/.vs/StgSharpDevelop/v17/DocumentLayout.backup.json
new file mode 100644
index 00000000..2808ff35
--- /dev/null
+++ b/.vs/StgSharpDevelop/v17/DocumentLayout.backup.json
@@ -0,0 +1,2420 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\",
+ "Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expschemabase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expschemabase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expastnode\\expfunctioncallingnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expastnode\\expfunctioncallingnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\element\\expfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\element\\expfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\expbuiltintype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\expbuiltintype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expastnode\\expbinaryoperatornode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expastnode\\expbinaryoperatornode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\element\\exptype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\element\\exptype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\element\\expentity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\element\\expentity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\element\\expconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\element\\expconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expelmentsource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expelmentsource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\scriptsourcetransmitter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\scriptsourcetransmitter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\generatedexpschema.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\generatedexpschema.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\nodegenerator\\generateunarytoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\nodegenerator\\generateunarytoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\view\\viewmain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\view\\viewmain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\compileenv\\defaultschema.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\compileenv\\defaultschema.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expelementinstancebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expelementinstancebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\nodegenerator\\expnodegenerator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\nodegenerator\\expnodegenerator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expsourcereader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expsourcereader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\view\\newrender.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\view\\newrender.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\mvvm\\viewmodel\\databinding.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\mvvm\\viewmodel\\databinding.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\data\\ssd\\datahead.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\data\\ssd\\datahead.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\mvvm\\view\\viewrender.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\mvvm\\view\\viewrender.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\math\\linear\\vec4.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\math\\linear\\vec4.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\math\\linear\\vec3.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\math\\linear\\vec3.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\data\\randomgenerator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\data\\randomgenerator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\opengl\\buffer\\texturegl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\opengl\\buffer\\texturegl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\opengl\\glapimanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\opengl\\glapimanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\opengl\\glcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\opengl\\glcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\intrinsic\\intrinsiccontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\intrinsic\\intrinsiccontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\highperformance\\unsafecompute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\highperformance\\unsafecompute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\highperformance\\m256.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\highperformance\\m256.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\highperformance\\m128.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\highperformance\\m128.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\highperformance\\lable.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\highperformance\\lable.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\highperformance\\iregistertype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\highperformance\\iregistertype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\data\\ssd\\datasegment.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\data\\ssd\\datasegment.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expastnode\\expliteralgenericnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expastnode\\expliteralgenericnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\data\\valuebox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\data\\valuebox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expastnode\\expbasenode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expastnode\\expbasenode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\iastnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\iastnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\compileenv\\expcompile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\compileenv\\expcompile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\element\\exprule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\element\\exprule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\expcollectioninstance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\expcollectioninstance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\abstractsyntaxtree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\abstractsyntaxtree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expastnode\\expifnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expastnode\\expifnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expexceptions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expexceptions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\compileenv\\keyword.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\compileenv\\keyword.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expschemasource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expschemasource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expastnode\\expunaryoperatornode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expastnode\\expunaryoperatornode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expastnode\\expswitchnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expastnode\\expswitchnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expastnode\\exprepeatnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expastnode\\exprepeatnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expastnode\\expindexofnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expastnode\\expindexofnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\stgsharp.script.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\stgsharp.script.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\compileenv\\expoperatorprecedence.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\compileenv\\expoperatorprecedence.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\nodehelper\\expnodenextenumerator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\nodehelper\\expnodenextenumerator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\nodehelper\\expnodeflag.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\nodehelper\\expnodeflag.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\glfw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\glfw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\clangload\\gl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\clangload\\gl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\intrinsic\\intrinsiccontextprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\intrinsic\\intrinsiccontextprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\structdefine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\structdefine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\internalio.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\internalio.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\nodegenerator\\leftsperatorprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\nodegenerator\\leftsperatorprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\codelinehelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\codelinehelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\itypesource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\itypesource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\iscriptsourceprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\iscriptsourceprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expsource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expsource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\token.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\token.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\nodegenerator\\experrorthrow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\nodegenerator\\experrorthrow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\explogic.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\explogic.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\collections\\cachepool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\collections\\cachepool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\string.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\string.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\collections\\ihashmultiplexer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\collections\\ihashmultiplexer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Youmu\\AppData\\Local\\Temp\\VSGeneratedDocuments\\a225e5d2-39b7-4ca3-6a63-b9959f4b2e51\\RegexGenerator.g.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Youmu\\AppData\\Local\\Temp\\VSGeneratedDocuments\\98806cbf-a6a4-6a33-1ec5-95d1fd43e824\\RegexGenerator.g.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Modeling\\Expression\\ExpConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\MSBuild\\Current\\Bin\\amd64\\Microsoft.Common.CurrentVersion.targets||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpCollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Modeling\\Expression\\ExpCollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpRule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Modeling\\Expression\\ExpRule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpFunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Modeling\\Expression\\ExpFunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpType.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Modeling\\Expression\\ExpType.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpEntity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Modeling\\Expression\\ExpEntity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\glfw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Internal\\glfw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\ClangLoad\\gl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Internal\\ClangLoad\\gl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHalfNV.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glHalfNV.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\StructDefine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Internal\\StructDefine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\InternalIO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Internal\\InternalIO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glContext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glContext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glEnum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glEnum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Entities\\IEntity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Entities\\IEntity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\PlainGeometryCollisionSensor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Logic\\PlainGeometryCollisionSensor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\Counter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Logic\\Counter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Collections\\CachePool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Collections\\CachePool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewModel\\ViewModel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\MVVM\\ViewModel\\ViewModel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\TextureProvider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\TextureProvider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHandle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glHandle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Image.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\Image.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Controlling\\KeyEnum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Controlling\\KeyEnum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glFunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glFunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Platform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Environment\\Platform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Dialogue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Environment\\Dialogue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Pixels.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\Pixels.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\RenderStream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\RenderStream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Define\\BufferObjectBase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\Define\\BufferObjectBase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Global.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Global.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewPort.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\MVVM\\ViewPort.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\framework.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\framework.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Matrix42.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Math\\Linear\\Matrix42.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glApiManager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glApiManager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpExpressionTree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\ExpExpressionTree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpToken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\ExpToken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\Element\\ExpConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpInit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\ExpInit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpType.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\Element\\ExpType.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\smmintrin.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\intrin.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\collections\\partialdictionaryvalues.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\collections\\partialdictionaryvalues.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\collections\\ibidrirectionaldictionary.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\collections\\ibidrirectionaldictionary.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\collections\\partialdictionary.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\collections\\partialdictionary.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\collections\\listsegment.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\collections\\listsegment.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\collections\\capacityfixedlist.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\collections\\capacityfixedlist.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\threading\\cancellabletask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\threading\\cancellabletask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\StgSharpC.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\StgSharpC.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\dllmain.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\dllmain.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\opengl\\glfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\opengl\\glfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\math\\scalar\\random.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\math\\scalar\\random.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\stg\\collisiontexture.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\stg\\collisiontexture.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\opengl\\buffer\\vbo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\opengl\\buffer\\vbo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\opengl\\buffer\\ebo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\opengl\\buffer\\ebo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\collections\\stringhashmultiplexer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\collections\\stringhashmultiplexer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|StgSharp.Model\\StgSharp.Model.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.model\\step\\filestructure\\stepmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|StgSharp.Model\\StgSharp.Model.csproj|solutionrelative:stgsharp.model\\step\\filestructure\\stepmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\expbuiltinconstant.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\expbuiltinconstant.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\stb_image.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\stb_image.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat2.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\mat2.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat4.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\mat4.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat3.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\mat3.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\intrinsic.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\intrinsic.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\StgSharpC.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\StgSharpC.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\ssc_intrinsic.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\ssc_intrinsic.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\hash.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\hash.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\expcollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\expcollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\viewmodelmain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\viewmodelmain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharptest\\unittest1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|solutionrelative:stgsharptest\\unittest1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\renderstream\\partical.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\renderstream\\partical.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ }
+ ],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 147,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 200,
+ "SelectedChildIndex": 8,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "ExpFunctionCallingNode.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpFunctionCallingNode.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpAstNode\\ExpFunctionCallingNode.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpFunctionCallingNode.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpAstNode\\ExpFunctionCallingNode.cs",
+ "ViewState": "AgIAACQAAAAAAAAAAAAwwDAAAAAaAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-26T13:07:36.295Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 20,
+ "Title": "ViewRender.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\MVVM\\View\\ViewRender.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\MVVM\\View\\ViewRender.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\MVVM\\View\\ViewRender.cs",
+ "RelativeToolTip": "StgSharp.Common\\MVVM\\View\\ViewRender.cs",
+ "ViewState": "AgIAABEAAAAAAAAAAAAkwCEAAAAeAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-25T17:18:47.56Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 18,
+ "Title": "DataBinding.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\MVVM\\ViewModel\\DataBinding.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\MVVM\\ViewModel\\DataBinding.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\MVVM\\ViewModel\\DataBinding.cs",
+ "RelativeToolTip": "StgSharp.Common\\MVVM\\ViewModel\\DataBinding.cs",
+ "ViewState": "AgIAABUAAAAAAAAAAAAUwFcAAAAjAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-25T17:18:19.263Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 22,
+ "Title": "Vec3.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Math\\Linear\\Vec3.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Math\\Linear\\Vec3.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Math\\Linear\\Vec3.cs",
+ "RelativeToolTip": "StgSharp.Common\\Math\\Linear\\Vec3.cs",
+ "ViewState": "AgIAAA8AAAAAAAAAAAA3wB8AAAAPAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-25T17:01:31.921Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 25,
+ "Title": "glApiManager.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glApiManager.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\OpenGL\\glApiManager.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glApiManager.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\OpenGL\\glApiManager.cs",
+ "ViewState": "AgIAAA8AAAAAAAAAAAA3wB4AAAAfAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-25T16:53:54.394Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 26,
+ "Title": "glContext.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glContext.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\OpenGL\\glContext.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glContext.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\OpenGL\\glContext.cs",
+ "ViewState": "AgIAAA8AAAAAAAAAAAA3wCcAAAASAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-25T16:51:38.795Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 31,
+ "Title": "Lable.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\HighPerformance\\Lable.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\HighPerformance\\Lable.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\HighPerformance\\Lable.cs",
+ "RelativeToolTip": "StgSharp.Common\\HighPerformance\\Lable.cs",
+ "ViewState": "AgIAAA8AAAAAAAAAAAAgwCQAAAAFAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-25T16:49:02.593Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 35,
+ "Title": "ValueBox.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\ValueBox.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Data\\ValueBox.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\ValueBox.cs",
+ "RelativeToolTip": "StgSharp.Common\\Data\\ValueBox.cs",
+ "ViewState": "AgIAADkAAAAAAAAAAABDwDsAAAAnAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-24T17:50:41.074Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "ExpSchemaBase.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSchemaBase.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpSchemaBase.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSchemaBase.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpSchemaBase.cs",
+ "ViewState": "AgIAADsAAAAAAAAAAAAQwDwAAAArAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-20T07:18:13.781Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 13,
+ "Title": "DefaultSchema.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\CompileEnv\\DefaultSchema.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\CompileEnv\\DefaultSchema.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\CompileEnv\\DefaultSchema.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\CompileEnv\\DefaultSchema.cs",
+ "ViewState": "AgIAAFsAAAAAAAAAAAAIwGcAAAA3AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-20T07:10:39.404Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 46,
+ "Title": "ExpUnaryOperatorNode.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpUnaryOperatorNode.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpAstNode\\ExpUnaryOperatorNode.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpUnaryOperatorNode.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpAstNode\\ExpUnaryOperatorNode.cs",
+ "ViewState": "AgIAABsAAAAAAAAAAAAkwC4AAAAkAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-20T05:03:28.304Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 50,
+ "Title": "StgSharp.Script.csproj",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\StgSharp.Script.csproj",
+ "RelativeDocumentMoniker": "StgSharp.Script\\StgSharp.Script.csproj",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\StgSharp.Script.csproj",
+ "RelativeToolTip": "StgSharp.Script\\StgSharp.Script.csproj",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+ "WhenOpened": "2025-02-19T05:34:14.923Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 11,
+ "Title": "GenerateUnaryToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeGenerator\\GenerateUnaryToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\NodeGenerator\\GenerateUnaryToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeGenerator\\GenerateUnaryToken.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\NodeGenerator\\GenerateUnaryToken.cs",
+ "ViewState": "AgIAABoAAAAAAAAAAAAswCkAAAAbAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-19T05:23:59.671Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 55,
+ "Title": "gl.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\ClangLoad\\gl.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\ClangLoad\\gl.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\ClangLoad\\gl.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\ClangLoad\\gl.cs",
+ "ViewState": "AgIAADYAAAAAAAAAAAAcwDwAAAArAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-19T00:26:10.683Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 56,
+ "Title": "intrinsicContextProvider.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\Intrinsic\\intrinsicContextProvider.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\Intrinsic\\intrinsicContextProvider.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\Intrinsic\\intrinsicContextProvider.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\Intrinsic\\intrinsicContextProvider.cs",
+ "ViewState": "AgIAADAAAAAAAAAAAAAjwEEAAAAaAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-18T14:20:26.892Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 57,
+ "Title": "StructDefine.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\StructDefine.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\StructDefine.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\StructDefine.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\StructDefine.cs",
+ "ViewState": "AgIAAC4AAAAAAAAAAAAQwLMDAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-18T14:20:12.012Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 58,
+ "Title": "InternalIO.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\InternalIO.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\InternalIO.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\InternalIO.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\InternalIO.cs",
+ "ViewState": "AgIAAHcAAAAAAAAAAAAcwIMAAAAeAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-18T14:07:05.799Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 54,
+ "Title": "glfw.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\glfw.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\glfw.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\glfw.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\glfw.cs",
+ "ViewState": "AgIAADkCAAAAAAAAAAA4wD8CAAA1AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-18T14:04:11.433Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 49,
+ "Title": "ExpIndexOfNode.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpIndexOfNode.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpAstNode\\ExpIndexOfNode.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpIndexOfNode.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpAstNode\\ExpIndexOfNode.cs",
+ "ViewState": "AgIAABwAAAAAAAAAAAAkwC4AAAAkAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-17T04:08:53.537Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 65,
+ "Title": "ExpErrorThrow.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeGenerator\\ExpErrorThrow.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\NodeGenerator\\ExpErrorThrow.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeGenerator\\ExpErrorThrow.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\NodeGenerator\\ExpErrorThrow.cs",
+ "ViewState": "AgIAABkAAAAAAAAAAAA5wCYAAAAgAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-15T03:06:04.73Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 53,
+ "Title": "ExpNodeFlag.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeHelper\\ExpNodeFlag.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\NodeHelper\\ExpNodeFlag.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeHelper\\ExpNodeFlag.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\NodeHelper\\ExpNodeFlag.cs",
+ "ViewState": "AgIAABMAAAAAAAAAAAAuwCYAAAALAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-15T02:40:19.584Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 44,
+ "Title": "KeyWord.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\CompileEnv\\KeyWord.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\CompileEnv\\KeyWord.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\CompileEnv\\KeyWord.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\CompileEnv\\KeyWord.cs",
+ "ViewState": "AgIAAB8AAAAAAAAAAAA3wEsAAAAYAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-14T04:47:04.999Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 51,
+ "Title": "ExpOperatorPrecedence.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\CompileEnv\\ExpOperatorPrecedence.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\CompileEnv\\ExpOperatorPrecedence.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\CompileEnv\\ExpOperatorPrecedence.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\CompileEnv\\ExpOperatorPrecedence.cs",
+ "ViewState": "AgIAAEkAAAAAAAAAAAAvwEsAAABGAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-14T04:41:25.457Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 4,
+ "Title": "ExpBinaryOperatorNode.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpBinaryOperatorNode.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpAstNode\\ExpBinaryOperatorNode.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpBinaryOperatorNode.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpAstNode\\ExpBinaryOperatorNode.cs",
+ "ViewState": "AgIAAFEAAAAAAAAAAAAuwGYAAAA0AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-14T01:18:30.456Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 8,
+ "Title": "ExpElmentSource.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpElmentSource.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpElmentSource.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpElmentSource.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpElmentSource.cs",
+ "ViewState": "AgIAAC8AAAAAAAAAAAASwDkAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-13T14:24:35.903Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 61,
+ "Title": "ITypeSource.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\ITypeSource.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\ITypeSource.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\ITypeSource.cs",
+ "RelativeToolTip": "StgSharp.Script\\ITypeSource.cs",
+ "ViewState": "AgIAABcAAAAAAAAAAAAnwCkAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-13T11:07:58.417Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 52,
+ "Title": "ExpNodeNextEnumerator.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeHelper\\ExpNodeNextEnumerator.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\NodeHelper\\ExpNodeNextEnumerator.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeHelper\\ExpNodeNextEnumerator.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\NodeHelper\\ExpNodeNextEnumerator.cs",
+ "ViewState": "AgIAADIAAAAAAAAAAAA0wEEAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-12T01:47:44.385Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 59,
+ "Title": "LeftSperatorProcess.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeGenerator\\LeftSperatorProcess.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\NodeGenerator\\LeftSperatorProcess.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeGenerator\\LeftSperatorProcess.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\NodeGenerator\\LeftSperatorProcess.cs",
+ "ViewState": "AgIAACEAAAAAAAAAAAA4wDMAAAAZAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-10T12:58:53.511Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 125,
+ "Title": "PartialDictionaryValues.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\PartialDictionaryValues.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Collections\\PartialDictionaryValues.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\PartialDictionaryValues.cs",
+ "RelativeToolTip": "StgSharp.Common\\Collections\\PartialDictionaryValues.cs",
+ "ViewState": "AgIAAFEAAAAAAAAAAAAiwCwAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-10T08:04:17.124Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 126,
+ "Title": "IBidrirectionalDictionary.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\IBidrirectionalDictionary.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Collections\\IBidrirectionalDictionary.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\IBidrirectionalDictionary.cs",
+ "RelativeToolTip": "StgSharp.Common\\Collections\\IBidrirectionalDictionary.cs",
+ "ViewState": "AgIAABcAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-10T07:35:01.068Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 127,
+ "Title": "PartialDictionary.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\PartialDictionary.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Collections\\PartialDictionary.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\PartialDictionary.cs",
+ "RelativeToolTip": "StgSharp.Common\\Collections\\PartialDictionary.cs",
+ "ViewState": "AgIAAB0AAAAAAAAAAAA2wCgAAAAZAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-10T07:24:32.513Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 67,
+ "Title": "CachePool.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\CachePool.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Collections\\CachePool.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\CachePool.cs",
+ "RelativeToolTip": "StgSharp.Common\\Collections\\CachePool.cs",
+ "ViewState": "AgIAACMAAAAAAAAAAAAkwD0AAAAIAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-10T07:17:14.466Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 64,
+ "Title": "Token.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Token.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Token.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Token.cs",
+ "RelativeToolTip": "StgSharp.Script\\Token.cs",
+ "ViewState": "AgIAAB0AAAAAAAAAAAAnwDIAAAAlAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-10T05:41:37.766Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 128,
+ "Title": "ListSegment.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\ListSegment.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Collections\\ListSegment.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\ListSegment.cs",
+ "RelativeToolTip": "StgSharp.Common\\Collections\\ListSegment.cs",
+ "ViewState": "AgIAAEAAAAAAAAAAAAA1wEQAAAAeAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-09T09:37:18.153Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 129,
+ "Title": "CapacityFixedList.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\CapacityFixedList.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Collections\\CapacityFixedList.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\CapacityFixedList.cs",
+ "RelativeToolTip": "StgSharp.Common\\Collections\\CapacityFixedList.cs",
+ "ViewState": "AgIAAEsAAAAAAAAAAAA0wFgAAAANAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-09T08:42:20.443Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 130,
+ "Title": "CancellableTask.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Threading\\CancellableTask.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Threading\\CancellableTask.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Threading\\CancellableTask.cs",
+ "RelativeToolTip": "StgSharp.Common\\Threading\\CancellableTask.cs",
+ "ViewState": "AgIAAB0AAAAAAAAAAAAkwCwAAAAsAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-09T05:42:15.809Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 15,
+ "Title": "ExpNodeGenerator.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeGenerator\\ExpNodeGenerator.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\NodeGenerator\\ExpNodeGenerator.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeGenerator\\ExpNodeGenerator.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\NodeGenerator\\ExpNodeGenerator.cs",
+ "ViewState": "AgIAAFwAAAAAAAAAAAAIwGoAAAAbAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-09T05:12:00.635Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 131,
+ "Title": "StgSharpC.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\StgSharpC.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\StgSharpC.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\StgSharpC.c",
+ "RelativeToolTip": "StgSharp.C\\StgSharpC.c",
+ "ViewState": "AgIAAC4AAAAAAAAAAAAQwAIAAAASAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-08T01:45:17.805Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 132,
+ "Title": "dllmain.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\dllmain.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\dllmain.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\dllmain.c",
+ "RelativeToolTip": "StgSharp.C\\dllmain.c",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAABMAAAAfAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-08T01:44:16.485Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 16,
+ "Title": "ExpSourceReader.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSourceReader.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpSourceReader.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSourceReader.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpSourceReader.cs",
+ "ViewState": "AgIAABwAAAAAAAAAAAAuwGMAAAAoAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-06T00:16:51.382Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 70,
+ "Title": "RegexGenerator.g.cs",
+ "DocumentMoniker": "C:\\Users\\Youmu\\AppData\\Local\\Temp\\VSGeneratedDocuments\\a225e5d2-39b7-4ca3-6a63-b9959f4b2e51\\RegexGenerator.g.cs",
+ "ToolTip": "RegexGenerator.g.cs [\u7531 System.Text.RegularExpressions.Generator.RegexGenerator \u751F\u6210]",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "OverriddenToolTip": "RegexGenerator.g.cs [\u7531 System.Text.RegularExpressions.Generator.RegexGenerator \u751F\u6210]",
+ "WhenOpened": "2025-02-06T00:04:32.296Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 71,
+ "Title": "RegexGenerator.g.cs",
+ "DocumentMoniker": "C:\\Users\\Youmu\\AppData\\Local\\Temp\\VSGeneratedDocuments\\98806cbf-a6a4-6a33-1ec5-95d1fd43e824\\RegexGenerator.g.cs",
+ "ToolTip": "RegexGenerator.g.cs [\u7531 System.Text.RegularExpressions.Generator.RegexGenerator \u751F\u6210]",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "OverriddenToolTip": "RegexGenerator.g.cs [\u7531 System.Text.RegularExpressions.Generator.RegexGenerator \u751F\u6210]",
+ "WhenOpened": "2025-02-05T12:57:06.575Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 133,
+ "Title": "glFunction.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glFunction.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\OpenGL\\glFunction.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glFunction.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\OpenGL\\glFunction.cs",
+ "ViewState": "AgIAABwCAAAAAAAAAAA1wIAAAAAfAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T11:20:25.703Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 134,
+ "Title": "Random.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Math\\Scalar\\Random.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Math\\Scalar\\Random.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Math\\Scalar\\Random.cs",
+ "RelativeToolTip": "StgSharp.Common\\Math\\Scalar\\Random.cs",
+ "ViewState": "AgIAAEkAAAAAAAAAAIA2wFkAAABFAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T11:19:53.61Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 32,
+ "Title": "IRegisterType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\HighPerformance\\IRegisterType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\HighPerformance\\IRegisterType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\HighPerformance\\IRegisterType.cs",
+ "RelativeToolTip": "StgSharp.Common\\HighPerformance\\IRegisterType.cs",
+ "ViewState": "AgIAABkAAAAAAAAAAIA2wCUAAAAiAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T11:18:39.355Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 28,
+ "Title": "UnsafeCompute.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\HighPerformance\\UnsafeCompute.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\HighPerformance\\UnsafeCompute.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\HighPerformance\\UnsafeCompute.cs",
+ "RelativeToolTip": "StgSharp.Common\\HighPerformance\\UnsafeCompute.cs",
+ "ViewState": "AgIAACIAAAAAAAAAAAAwwCQAAAAiAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T11:02:42.388Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 29,
+ "Title": "M256.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\HighPerformance\\M256.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\HighPerformance\\M256.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\HighPerformance\\M256.cs",
+ "RelativeToolTip": "StgSharp.Common\\HighPerformance\\M256.cs",
+ "ViewState": "AgIAABUAAAAAAAAAAAA0wCcAAAAiAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T12:18:21.246Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 135,
+ "Title": "CollisionTexture.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Stg\\CollisionTexture.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Stg\\CollisionTexture.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Stg\\CollisionTexture.cs",
+ "RelativeToolTip": "StgSharp.Common\\Stg\\CollisionTexture.cs",
+ "ViewState": "AgIAAIMAAAAAAAAAAAAuwKwAAAAPAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T12:21:14.274Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 136,
+ "Title": "VBO.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\Buffer\\VBO.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\OpenGL\\Buffer\\VBO.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\Buffer\\VBO.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\OpenGL\\Buffer\\VBO.cs",
+ "ViewState": "AgIAAGIAAAAAAAAAAAA5wEMAAAApAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T12:21:27.439Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 137,
+ "Title": "EBO.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\Buffer\\EBO.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\OpenGL\\Buffer\\EBO.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\Buffer\\EBO.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\OpenGL\\Buffer\\EBO.cs",
+ "ViewState": "AgIAADcAAAAAAAAAAAAuwEEAAAAmAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T12:22:15.162Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 24,
+ "Title": "TextureGL.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
+ "ViewState": "AgIAABUAAAAAAAAAAAAQwCAAAAANAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T12:22:17.589Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 30,
+ "Title": "M128.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\HighPerformance\\M128.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\HighPerformance\\M128.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\HighPerformance\\M128.cs",
+ "RelativeToolTip": "StgSharp.Common\\HighPerformance\\M128.cs",
+ "ViewState": "AgIAABoAAAAAAAAAAAAawCsAAAAiAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T10:16:32.274Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 27,
+ "Title": "IntrinsicContext.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\Intrinsic\\IntrinsicContext.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\Intrinsic\\IntrinsicContext.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\Intrinsic\\IntrinsicContext.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\Intrinsic\\IntrinsicContext.cs",
+ "ViewState": "AgIAAA8AAAAAAAAAAAA3wB8AAAAeAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T09:19:07.74Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 69,
+ "Title": "IHashMultiplexer.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\IHashMultiplexer.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Collections\\IHashMultiplexer.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\IHashMultiplexer.cs",
+ "RelativeToolTip": "StgSharp.Common\\Collections\\IHashMultiplexer.cs",
+ "ViewState": "AgIAABkAAAAAAAAAAAAWwCoAAAAJAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T09:12:31.188Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 138,
+ "Title": "StringHashMultiplexer.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\StringHashMultiplexer.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Collections\\StringHashMultiplexer.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\StringHashMultiplexer.cs",
+ "RelativeToolTip": "StgSharp.Common\\Collections\\StringHashMultiplexer.cs",
+ "ViewState": "AgIAAFgAAAAAAAAAAAAuwGIAAAA7AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T09:03:17.283Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 21,
+ "Title": "Vec4.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Math\\Linear\\Vec4.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Math\\Linear\\Vec4.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Math\\Linear\\Vec4.cs",
+ "RelativeToolTip": "StgSharp.Common\\Math\\Linear\\Vec4.cs",
+ "ViewState": "AgIAAA4AAAAAAAAAAAAkwB4AAAAeAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T08:54:45.396Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 23,
+ "Title": "RandomGenerator.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\RandomGenerator.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Data\\RandomGenerator.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\RandomGenerator.cs",
+ "RelativeToolTip": "StgSharp.Common\\Data\\RandomGenerator.cs",
+ "ViewState": "AgIAAA8AAAAAAAAAAAA3wB8AAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T08:54:14.058Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 19,
+ "Title": "DataHead.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\SSD\\DataHead.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Data\\SSD\\DataHead.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\SSD\\DataHead.cs",
+ "RelativeToolTip": "StgSharp.Common\\Data\\SSD\\DataHead.cs",
+ "ViewState": "AgIAAC8AAAAAAAAAAAA1wCAAAAANAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T08:54:08.029Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 33,
+ "Title": "DataSegment.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\SSD\\DataSegment.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Data\\SSD\\DataSegment.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\SSD\\DataSegment.cs",
+ "RelativeToolTip": "StgSharp.Common\\Data\\SSD\\DataSegment.cs",
+ "ViewState": "AgIAAGUAAAAAAAAAAAA3wHUAAAATAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T08:53:58.3Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 139,
+ "Title": "StepModel.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Model\\STEP\\FileStructure\\StepModel.cs",
+ "RelativeDocumentMoniker": "StgSharp.Model\\STEP\\FileStructure\\StepModel.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Model\\STEP\\FileStructure\\StepModel.cs",
+ "RelativeToolTip": "StgSharp.Model\\STEP\\FileStructure\\StepModel.cs",
+ "ViewState": "AgIAABoAAAAAAAAAAAAkwCoAAAAQAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T08:53:52.61Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 68,
+ "Title": "string.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\string.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\string.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\string.c",
+ "RelativeToolTip": "StgSharp.C\\string.c",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAAdAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-04T02:00:58.382Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 60,
+ "Title": "CodeLineHelper.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\CodeLineHelper.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\CodeLineHelper.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\CodeLineHelper.cs",
+ "RelativeToolTip": "StgSharp.Script\\CodeLineHelper.cs",
+ "ViewState": "AgIAABsAAAAAAAAAAIA1wCQAAAAIAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-03T13:24:50.368Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 62,
+ "Title": "IScriptSourceProvider.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\IScriptSourceProvider.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\IScriptSourceProvider.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\IScriptSourceProvider.cs",
+ "RelativeToolTip": "StgSharp.Script\\IScriptSourceProvider.cs",
+ "ViewState": "AgIAAB0AAAAAAAAAAAD4vzIAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-03T07:32:15.431Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 9,
+ "Title": "ScriptSourceTransmitter.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\ScriptSourceTransmitter.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\ScriptSourceTransmitter.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\ScriptSourceTransmitter.cs",
+ "RelativeToolTip": "StgSharp.Script\\ScriptSourceTransmitter.cs",
+ "ViewState": "AgIAAE0AAAAAAAAAAAA4wF4AAAA+AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-03T06:46:02.837Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 140,
+ "Title": "ExpBuiltinConstant.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpBuiltinConstant.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpBuiltinConstant.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpBuiltinConstant.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpBuiltinConstant.cs",
+ "ViewState": "AgIAABwAAAAAAAAAAAA2wCcAAAAJAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-03T01:09:54.873Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 5,
+ "Title": "ExpType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Element\\ExpType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpType.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Element\\ExpType.cs",
+ "ViewState": "AgIAADIAAAAAAAAAAIA5wDgAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T08:11:31.522Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 39,
+ "Title": "ExpRule.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpRule.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Element\\ExpRule.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpRule.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Element\\ExpRule.cs",
+ "ViewState": "AgIAABsAAAAAAAAAAAAkwCsAAAAlAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T08:11:26.812Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
+ "Title": "ExpFunction.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpFunction.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Element\\ExpFunction.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpFunction.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Element\\ExpFunction.cs",
+ "ViewState": "AgIAAD0AAAAAAAAAAAA2wF0AAAAmAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T08:10:44.132Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 40,
+ "Title": "ExpCollectionInstance.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpCollectionInstance.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpCollectionInstance.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpCollectionInstance.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpCollectionInstance.cs",
+ "ViewState": "AgIAAG4AAAAAAAAAAAAywH8AAAAXAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T08:10:18.867Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 10,
+ "Title": "GeneratedExpSchema.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\GeneratedExpSchema.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\GeneratedExpSchema.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\GeneratedExpSchema.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\GeneratedExpSchema.cs",
+ "ViewState": "AgIAADcAAAAAAAAAAAA0wGMAAAAwAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T08:08:05.896Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 123,
+ "Title": "smmintrin.h",
+ "DocumentMoniker": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\smmintrin.h",
+ "ToolTip": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\smmintrin.h",
+ "ViewState": "AgIAAL0AAAAAAAAAAAAmwMgAAAAoAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2025-02-02T03:32:10.906Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 124,
+ "Title": "intrin.h",
+ "DocumentMoniker": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\intrin.h",
+ "ToolTip": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\intrin.h",
+ "ViewState": "AgIAAJMCAAAAAAAAAAAmwJ4CAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2025-02-02T03:32:07.411Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 141,
+ "Title": "stb_image.h",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\stb_image.h",
+ "RelativeDocumentMoniker": "StgSharp.C\\stb_image.h",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\stb_image.h",
+ "RelativeToolTip": "StgSharp.C\\stb_image.h",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2025-02-02T03:31:27.068Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 142,
+ "Title": "mat2.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat2.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\mat2.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat2.c",
+ "RelativeToolTip": "StgSharp.C\\mat2.c",
+ "ViewState": "AgIAABAAAAAAAAAAAAAUwB4AAAA6AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-01T12:00:34.568Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 143,
+ "Title": "mat4.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat4.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\mat4.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat4.c",
+ "RelativeToolTip": "StgSharp.C\\mat4.c",
+ "ViewState": "AgIAAD8AAAAAAAAAAAAowAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-01T10:58:51.767Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 144,
+ "Title": "mat3.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat3.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\mat3.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat3.c",
+ "RelativeToolTip": "StgSharp.C\\mat3.c",
+ "ViewState": "AgIAAEwAAAAAAAAAAAAewGMAAABTAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-01T10:58:49.386Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 12,
+ "Title": "ViewMain.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\View\\ViewMain.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\View\\ViewMain.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\View\\ViewMain.cs",
+ "RelativeToolTip": "StgSharpDebug\\View\\ViewMain.cs",
+ "ViewState": "AgIAAC0AAAAAAAAAAAA9wDwAAAAZAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T09:52:43.909Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 17,
+ "Title": "NewRender.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\View\\NewRender.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\View\\NewRender.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\View\\NewRender.cs",
+ "RelativeToolTip": "StgSharpDebug\\View\\NewRender.cs",
+ "ViewState": "AgIAABkAAAAAAAAAAAA4wCEAAAASAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T05:16:41.098Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 145,
+ "Title": "intrinsic.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\intrinsic.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\intrinsic.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\intrinsic.c",
+ "RelativeToolTip": "StgSharp.C\\intrinsic.c",
+ "ViewState": "AgIAAFAAAAAAAAAAAAA0wIcAAAAtAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-01T04:44:14.087Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 146,
+ "Title": "StgSharpC.h",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\StgSharpC.h",
+ "RelativeDocumentMoniker": "StgSharp.C\\StgSharpC.h",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\StgSharpC.h",
+ "RelativeToolTip": "StgSharp.C\\StgSharpC.h",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2025-02-01T02:22:45.65Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 147,
+ "Title": "ssc_intrinsic.h",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\ssc_intrinsic.h",
+ "RelativeDocumentMoniker": "StgSharp.C\\ssc_intrinsic.h",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\ssc_intrinsic.h",
+ "RelativeToolTip": "StgSharp.C\\ssc_intrinsic.h",
+ "ViewState": "AgIAAGcAAAAAAAAAAAA2wHwAAABHAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2025-02-01T02:13:17.69Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 148,
+ "Title": "hash.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\hash.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\hash.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\hash.c",
+ "RelativeToolTip": "StgSharp.C\\hash.c",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAABwAAAAyAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-01T02:12:53.091Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 6,
+ "Title": "ExpEntity.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpEntity.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Element\\ExpEntity.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpEntity.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Element\\ExpEntity.cs",
+ "ViewState": "AgIAADoAAAAAAAAAAAA+wDMAAAA9AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-31T03:23:40.771Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 34,
+ "Title": "ExpLiteralGenericNode.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpLiteralGenericNode.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpAstNode\\ExpLiteralGenericNode.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpLiteralGenericNode.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpAstNode\\ExpLiteralGenericNode.cs",
+ "ViewState": "AgIAABoAAAAAAAAAAAAxwCsAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T13:29:07.592Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 41,
+ "Title": "AbstractSyntaxTree.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\AbstractSyntaxTree.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\AbstractSyntaxTree.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\AbstractSyntaxTree.cs",
+ "RelativeToolTip": "StgSharp.Script\\AbstractSyntaxTree.cs",
+ "ViewState": "AgIAACsAAAAAAAAAAAAkwDoAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T07:24:37.33Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 37,
+ "Title": "IASTNode.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\IASTNode.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\IASTNode.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\IASTNode.cs",
+ "RelativeToolTip": "StgSharp.Script\\IASTNode.cs",
+ "ViewState": "AgIAACQAAAAAAAAAAIA5wCgAAAAVAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T07:23:34.89Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 48,
+ "Title": "ExpRepeatNode.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpRepeatNode.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpAstNode\\ExpRepeatNode.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpRepeatNode.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpAstNode\\ExpRepeatNode.cs",
+ "ViewState": "AgIAABwAAAAAAAAAAAAkwC8AAAAkAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T07:19:24.455Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 63,
+ "Title": "ExpSource.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSource.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpSource.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSource.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpSource.cs",
+ "ViewState": "AgIAADMAAAAAAAAAAAAiwDQAAAAJAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T06:40:23.62Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 47,
+ "Title": "ExpSwitchNode.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpSwitchNode.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpAstNode\\ExpSwitchNode.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpSwitchNode.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpAstNode\\ExpSwitchNode.cs",
+ "ViewState": "AgIAABsAAAAAAAAAAAAkwC0AAAAkAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T03:55:57.477Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 3,
+ "Title": "ExpBuiltinType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpBuiltinType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpBuiltinType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpBuiltinType.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpBuiltinType.cs",
+ "ViewState": "AgIAABwAAAAAAAAAAAA2wDEAAAATAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T02:58:12.25Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 14,
+ "Title": "ExpElementInstanceBase.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpElementInstanceBase.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpElementInstanceBase.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpElementInstanceBase.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpElementInstanceBase.cs",
+ "ViewState": "AgIAACYAAAAAAAAAAIA2wDYAAAAaAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T02:52:10.549Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 149,
+ "Title": "ExpCollection.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpCollection.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpCollection.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpCollection.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpCollection.cs",
+ "ViewState": "AgIAAFYAAAAAAAAAAAAowFQAAAAUAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T02:50:15.736Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 45,
+ "Title": "ExpSchemaSource.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSchemaSource.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpSchemaSource.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSchemaSource.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpSchemaSource.cs",
+ "ViewState": "AgIAAEEAAAAAAAAAAAAywE8AAAAcAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:51:49.061Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 36,
+ "Title": "ExpBaseNode.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpBaseNode.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpAstNode\\ExpBaseNode.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpBaseNode.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpAstNode\\ExpBaseNode.cs",
+ "ViewState": "AgIAAEYAAAAAAAAAAAAAAFkAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:49:36.742Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 42,
+ "Title": "ExpIfNode.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpIfNode.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpAstNode\\ExpIfNode.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpIfNode.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpAstNode\\ExpIfNode.cs",
+ "ViewState": "AgIAABoAAAAAAAAAAAAqwC8AAAAkAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:38:12.188Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 43,
+ "Title": "ExpExceptions.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpExceptions.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpExceptions.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpExceptions.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpExceptions.cs",
+ "ViewState": "AgIAAHMAAAAAAAAAAAA/wGwAAAAgAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:38:11.545Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 7,
+ "Title": "ExpConst.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpConst.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Element\\ExpConst.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpConst.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Element\\ExpConst.cs",
+ "ViewState": "AgIAACMAAAAAAAAAAAAUwDcAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:34:20.019Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 66,
+ "Title": "ExpLogic.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpLogic.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpLogic.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpLogic.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpLogic.cs",
+ "ViewState": "AgIAACcAAAAAAAAAAAAgwEQAAAAoAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:26:02.08Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 38,
+ "Title": "ExpCompile.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\CompileEnv\\ExpCompile.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\CompileEnv\\ExpCompile.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\CompileEnv\\ExpCompile.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\CompileEnv\\ExpCompile.cs",
+ "ViewState": "AgIAAEoAAAAAAAAAAAD4v1QAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:21:02.074Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 72,
+ "Title": "ExpIfToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:19:15.148Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 116,
+ "Title": "ExpExpressionTree.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpExpressionTree.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\ExpExpressionTree.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpExpressionTree.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\ExpExpressionTree.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T12:41:21.842Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 117,
+ "Title": "ExpToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\ExpToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpToken.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\ExpToken.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T12:32:47.772Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 118,
+ "Title": "ExpConst.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T08:10:50.179Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 119,
+ "Title": "ExpInit.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpInit.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\ExpInit.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpInit.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\ExpInit.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T08:10:00.82Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 120,
+ "Title": "BuiltinType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T08:06:29.505Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 121,
+ "Title": "BuiltinConst.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T08:03:33.572Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 122,
+ "Title": "ExpType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T07:24:26.837Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 75,
+ "Title": "ExpCollection.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpCollection.cs",
+ "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpCollection.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpCollection.cs",
+ "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpCollection.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-25T05:41:19.849Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 76,
+ "Title": "ExpRule.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpRule.cs",
+ "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpRule.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpRule.cs",
+ "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpRule.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-24T12:33:08.481Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 77,
+ "Title": "ExpFunction.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpFunction.cs",
+ "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpFunction.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpFunction.cs",
+ "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpFunction.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-24T11:30:53.865Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 78,
+ "Title": "ExpType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpType.cs",
+ "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpType.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-24T10:20:07.164Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 114,
+ "Title": "StepHeadReader.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs",
+ "RelativeDocumentMoniker": "SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs",
+ "RelativeToolTip": "SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-24T06:17:36.213Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 80,
+ "Title": "glfw.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\glfw.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Internal\\glfw.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\glfw.cs",
+ "RelativeToolTip": "StgSharp\\Internal\\glfw.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-23T14:17:06.842Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 73,
+ "Title": "ExpConst.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpConst.cs",
+ "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpConst.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpConst.cs",
+ "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpConst.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-23T06:15:58.672Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 81,
+ "Title": "gl.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\ClangLoad\\gl.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Internal\\ClangLoad\\gl.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\ClangLoad\\gl.cs",
+ "RelativeToolTip": "StgSharp\\Internal\\ClangLoad\\gl.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T08:59:46.372Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 82,
+ "Title": "glHalfNV.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHalfNV.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glHalfNV.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHalfNV.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glHalfNV.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T08:55:47.744Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 83,
+ "Title": "StructDefine.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\StructDefine.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Internal\\StructDefine.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\StructDefine.cs",
+ "RelativeToolTip": "StgSharp\\Internal\\StructDefine.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T08:47:28.65Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 84,
+ "Title": "InternalIO.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\InternalIO.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Internal\\InternalIO.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\InternalIO.cs",
+ "RelativeToolTip": "StgSharp\\Internal\\InternalIO.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T08:26:14.827Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 85,
+ "Title": "glContext.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glContext.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glContext.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glContext.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glContext.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T08:25:50.055Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 86,
+ "Title": "glConst.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glConst.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glConst.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glConst.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glConst.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T08:25:22.133Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 87,
+ "Title": "glEnum.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glEnum.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glEnum.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glEnum.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glEnum.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T08:24:52.368Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 115,
+ "Title": "StepExpression.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs",
+ "RelativeDocumentMoniker": "SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs",
+ "RelativeToolTip": "SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T05:33:13.815Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 88,
+ "Title": "IEntity.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Entities\\IEntity.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Entities\\IEntity.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Entities\\IEntity.cs",
+ "RelativeToolTip": "StgSharp\\Entities\\IEntity.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T05:32:22.664Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 89,
+ "Title": "PlainGeometryCollisionSensor.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\PlainGeometryCollisionSensor.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Logic\\PlainGeometryCollisionSensor.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\PlainGeometryCollisionSensor.cs",
+ "RelativeToolTip": "StgSharp\\Logic\\PlainGeometryCollisionSensor.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T05:02:23.12Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 90,
+ "Title": "Counter.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\Counter.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Logic\\Counter.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\Counter.cs",
+ "RelativeToolTip": "StgSharp\\Logic\\Counter.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T04:53:50.632Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 91,
+ "Title": "CachePool.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Collections\\CachePool.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Collections\\CachePool.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Collections\\CachePool.cs",
+ "RelativeToolTip": "StgSharp\\Collections\\CachePool.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T04:52:43.349Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 79,
+ "Title": "ExpEntity.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpEntity.cs",
+ "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpEntity.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpEntity.cs",
+ "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpEntity.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T04:23:23.704Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 150,
+ "Title": "ViewModelMain.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\ViewModelMain.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\ViewModelMain.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\ViewModelMain.cs",
+ "RelativeToolTip": "StgSharpDebug\\ViewModelMain.cs",
+ "ViewState": "AgIAADoAAAAAAAAAAAAiwDEAAAAOAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T03:18:57.741Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 74,
+ "Title": "Microsoft.Common.CurrentVersion.targets",
+ "DocumentMoniker": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\MSBuild\\Current\\Bin\\amd64\\Microsoft.Common.CurrentVersion.targets",
+ "ToolTip": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\MSBuild\\Current\\Bin\\amd64\\Microsoft.Common.CurrentVersion.targets",
+ "ViewState": "AgIAAEUHAAAAAAAAAIBzwGEHAAAEAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003801|",
+ "WhenOpened": "2025-01-22T03:07:54.535Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 151,
+ "Title": "UnitTest1.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\STgSharpTest\\UnitTest1.cs",
+ "RelativeDocumentMoniker": "STgSharpTest\\UnitTest1.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\STgSharpTest\\UnitTest1.cs",
+ "RelativeToolTip": "STgSharpTest\\UnitTest1.cs",
+ "ViewState": "AgIAAF8AAAAAAAAAAAAkwG8AAAA6AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T12:43:12.616Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 92,
+ "Title": "ViewModel.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewModel\\ViewModel.cs",
+ "RelativeDocumentMoniker": "StgSharp\\MVVM\\ViewModel\\ViewModel.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewModel\\ViewModel.cs",
+ "RelativeToolTip": "StgSharp\\MVVM\\ViewModel\\ViewModel.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T12:42:22.888Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 93,
+ "Title": "TextureProvider.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\TextureProvider.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\TextureProvider.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\TextureProvider.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\TextureProvider.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T12:40:27.238Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 94,
+ "Title": "ImageHelper.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T12:40:10.936Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 95,
+ "Title": "glHandle.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHandle.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glHandle.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHandle.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glHandle.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T12:39:33.236Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 96,
+ "Title": "VBO.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T12:33:21.083Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 97,
+ "Title": "EBO.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T12:33:00.232Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 98,
+ "Title": "TextureGL.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T12:32:46.745Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 99,
+ "Title": "Image.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Image.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\Image.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Image.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\Image.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T12:28:33.887Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 100,
+ "Title": "KeyEnum.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Controlling\\KeyEnum.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Controlling\\KeyEnum.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Controlling\\KeyEnum.cs",
+ "RelativeToolTip": "StgSharp\\Controlling\\KeyEnum.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T12:28:09.467Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 101,
+ "Title": "Uniform.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T11:43:39.963Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 102,
+ "Title": "Vector.Orthogonalize.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs",
+ "RelativeToolTip": "StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T11:35:59.396Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 103,
+ "Title": "glFunction.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glFunction.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glFunction.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glFunction.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glFunction.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T11:34:56.352Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 104,
+ "Title": "Platform.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Platform.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Environment\\Platform.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Platform.cs",
+ "RelativeToolTip": "StgSharp\\Environment\\Platform.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T11:05:45.886Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 105,
+ "Title": "Dialogue.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Dialogue.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Environment\\Dialogue.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Dialogue.cs",
+ "RelativeToolTip": "StgSharp\\Environment\\Dialogue.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T11:04:56.665Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 106,
+ "Title": "Pixels.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Pixels.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\Pixels.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Pixels.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\Pixels.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T06:23:16.042Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 152,
+ "Title": "Program.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\Program.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\Program.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\Program.cs",
+ "RelativeToolTip": "StgSharpDebug\\Program.cs",
+ "ViewState": "AgIAAEAAAAAAAAAAAAAUwEgAAAAyAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T06:08:27.152Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 153,
+ "Title": "Partical.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\RenderStream\\Partical.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\RenderStream\\Partical.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\RenderStream\\Partical.cs",
+ "RelativeToolTip": "StgSharpDebug\\RenderStream\\Partical.cs",
+ "ViewState": "AgIAAB8BAAAAAAAAAAAkwC8BAAAQAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T04:59:25.115Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 107,
+ "Title": "RenderStream.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\RenderStream.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\RenderStream.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\RenderStream.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\RenderStream.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T03:22:43.965Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 108,
+ "Title": "BufferObjectBase.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Define\\BufferObjectBase.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\Define\\BufferObjectBase.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Define\\BufferObjectBase.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\Define\\BufferObjectBase.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T03:15:15.908Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 109,
+ "Title": "Global.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Global.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Global.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Global.cs",
+ "RelativeToolTip": "StgSharp\\Global.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T03:14:27.337Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 110,
+ "Title": "ViewPort.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewPort.cs",
+ "RelativeDocumentMoniker": "StgSharp\\MVVM\\ViewPort.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewPort.cs",
+ "RelativeToolTip": "StgSharp\\MVVM\\ViewPort.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T03:12:28.029Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 111,
+ "Title": "framework.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\framework.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\framework.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\framework.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\framework.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T02:24:35.096Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 112,
+ "Title": "Matrix42.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Matrix42.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Math\\Linear\\Matrix42.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Matrix42.cs",
+ "RelativeToolTip": "StgSharp\\Math\\Linear\\Matrix42.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T02:24:24.915Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 113,
+ "Title": "glApiManager.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glApiManager.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glApiManager.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glApiManager.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glApiManager.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T02:23:01.822Z"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.vs/StgSharpDevelop/v17/DocumentLayout.json b/.vs/StgSharpDevelop/v17/DocumentLayout.json
new file mode 100644
index 00000000..c60ee568
--- /dev/null
+++ b/.vs/StgSharpDevelop/v17/DocumentLayout.json
@@ -0,0 +1,2440 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\",
+ "Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\compileenv\\defaultschema.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\compileenv\\defaultschema.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\compileenv\\expcompile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\compileenv\\expcompile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expastnode\\expbinaryoperatornode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expastnode\\expbinaryoperatornode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\element\\expconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\element\\expconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\compileenv\\keyword.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\compileenv\\keyword.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\compileenv\\expoperatorprecedence.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\compileenv\\expoperatorprecedence.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expastnode\\expbasenode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expastnode\\expbasenode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expastnode\\expliteralgenericnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expastnode\\expliteralgenericnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\expbuiltintype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\expbuiltintype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\expcollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\expcollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\element\\exptype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\element\\exptype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\generatedexpschema.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\generatedexpschema.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expschemabase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expschemabase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expschemasource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expschemasource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expexceptions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expexceptions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expelmentsource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expelmentsource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\nodegenerator\\generateunarytoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\nodegenerator\\generateunarytoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\nodegenerator\\expnodegenerator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\nodegenerator\\expnodegenerator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\nodegenerator\\experrorthrow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\nodegenerator\\experrorthrow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\nodehelper\\expnodenextenumerator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\nodehelper\\expnodenextenumerator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\nodehelper\\expnodeflag.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\nodehelper\\expnodeflag.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expastnode\\expfunctioncallingnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expastnode\\expfunctioncallingnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\element\\expfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\element\\expfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\element\\expentity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\element\\expentity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\scriptsourcetransmitter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\scriptsourcetransmitter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\view\\viewmain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\view\\viewmain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expelementinstancebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expelementinstancebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expsourcereader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expsourcereader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\view\\newrender.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\view\\newrender.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\mvvm\\viewmodel\\databinding.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\mvvm\\viewmodel\\databinding.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\data\\ssd\\datahead.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\data\\ssd\\datahead.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\mvvm\\view\\viewrender.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\mvvm\\view\\viewrender.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\math\\linear\\vec4.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\math\\linear\\vec4.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\math\\linear\\vec3.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\math\\linear\\vec3.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\data\\randomgenerator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\data\\randomgenerator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\opengl\\buffer\\texturegl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\opengl\\buffer\\texturegl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\opengl\\glapimanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\opengl\\glapimanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\opengl\\glcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\opengl\\glcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\intrinsic\\intrinsiccontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\intrinsic\\intrinsiccontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\highperformance\\unsafecompute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\highperformance\\unsafecompute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\highperformance\\m256.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\highperformance\\m256.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\highperformance\\m128.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\highperformance\\m128.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\highperformance\\lable.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\highperformance\\lable.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\highperformance\\iregistertype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\highperformance\\iregistertype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\data\\ssd\\datasegment.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\data\\ssd\\datasegment.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\data\\valuebox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\data\\valuebox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\iastnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\iastnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\element\\exprule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\element\\exprule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\expcollectioninstance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\expcollectioninstance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\abstractsyntaxtree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\abstractsyntaxtree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expastnode\\expifnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expastnode\\expifnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expastnode\\expunaryoperatornode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expastnode\\expunaryoperatornode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expastnode\\expswitchnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expastnode\\expswitchnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expastnode\\exprepeatnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expastnode\\exprepeatnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expastnode\\expindexofnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expastnode\\expindexofnode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\stgsharp.script.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\stgsharp.script.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\glfw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\glfw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\clangload\\gl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\clangload\\gl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\intrinsic\\intrinsiccontextprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\intrinsic\\intrinsiccontextprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\structdefine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\structdefine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\internalio.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\internalio.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\nodegenerator\\leftsperatorprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\nodegenerator\\leftsperatorprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\codelinehelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\codelinehelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\itypesource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\itypesource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\iscriptsourceprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\iscriptsourceprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expsource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expsource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\token.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\token.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\explogic.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\explogic.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\collections\\cachepool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\collections\\cachepool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\string.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\string.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\collections\\ihashmultiplexer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\collections\\ihashmultiplexer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Youmu\\AppData\\Local\\Temp\\VSGeneratedDocuments\\a225e5d2-39b7-4ca3-6a63-b9959f4b2e51\\RegexGenerator.g.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Youmu\\AppData\\Local\\Temp\\VSGeneratedDocuments\\98806cbf-a6a4-6a33-1ec5-95d1fd43e824\\RegexGenerator.g.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Modeling\\Expression\\ExpConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\MSBuild\\Current\\Bin\\amd64\\Microsoft.Common.CurrentVersion.targets||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpCollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Modeling\\Expression\\ExpCollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpRule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Modeling\\Expression\\ExpRule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpFunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Modeling\\Expression\\ExpFunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpType.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Modeling\\Expression\\ExpType.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpEntity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Modeling\\Expression\\ExpEntity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\glfw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Internal\\glfw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\ClangLoad\\gl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Internal\\ClangLoad\\gl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHalfNV.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glHalfNV.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\StructDefine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Internal\\StructDefine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\InternalIO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Internal\\InternalIO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glContext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glContext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glEnum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glEnum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Entities\\IEntity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Entities\\IEntity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\PlainGeometryCollisionSensor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Logic\\PlainGeometryCollisionSensor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\Counter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Logic\\Counter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Collections\\CachePool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Collections\\CachePool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewModel\\ViewModel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\MVVM\\ViewModel\\ViewModel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\TextureProvider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\TextureProvider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHandle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glHandle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Image.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\Image.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Controlling\\KeyEnum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Controlling\\KeyEnum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glFunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glFunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Platform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Environment\\Platform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Dialogue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Environment\\Dialogue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Pixels.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\Pixels.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\RenderStream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\RenderStream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Define\\BufferObjectBase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\Define\\BufferObjectBase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Global.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Global.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewPort.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\MVVM\\ViewPort.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\framework.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\framework.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Matrix42.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Math\\Linear\\Matrix42.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glApiManager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glApiManager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpExpressionTree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\ExpExpressionTree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpToken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\ExpToken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\Element\\ExpConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpInit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\ExpInit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpType.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\Element\\ExpType.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\smmintrin.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\intrin.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\collections\\partialdictionaryvalues.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\collections\\partialdictionaryvalues.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\collections\\ibidrirectionaldictionary.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\collections\\ibidrirectionaldictionary.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\collections\\partialdictionary.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\collections\\partialdictionary.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\collections\\listsegment.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\collections\\listsegment.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\collections\\capacityfixedlist.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\collections\\capacityfixedlist.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\threading\\cancellabletask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\threading\\cancellabletask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\StgSharpC.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\StgSharpC.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\dllmain.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\dllmain.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\opengl\\glfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\opengl\\glfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\math\\scalar\\random.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\math\\scalar\\random.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\stg\\collisiontexture.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\stg\\collisiontexture.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\opengl\\buffer\\vbo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\opengl\\buffer\\vbo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\opengl\\buffer\\ebo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\opengl\\buffer\\ebo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\collections\\stringhashmultiplexer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\collections\\stringhashmultiplexer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|StgSharp.Model\\StgSharp.Model.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.model\\step\\filestructure\\stepmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|StgSharp.Model\\StgSharp.Model.csproj|solutionrelative:stgsharp.model\\step\\filestructure\\stepmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\expbuiltinconstant.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\expbuiltinconstant.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\stb_image.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\stb_image.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat2.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\mat2.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat4.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\mat4.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat3.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\mat3.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\intrinsic.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\intrinsic.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\StgSharpC.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\StgSharpC.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\ssc_intrinsic.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\ssc_intrinsic.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\hash.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\hash.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\viewmodelmain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\viewmodelmain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharptest\\unittest1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|solutionrelative:stgsharptest\\unittest1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\renderstream\\partical.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\renderstream\\partical.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ }
+ ],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 147,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 200,
+ "SelectedChildIndex": 9,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 21,
+ "Title": "ExpFunctionCallingNode.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpFunctionCallingNode.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpAstNode\\ExpFunctionCallingNode.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpFunctionCallingNode.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpAstNode\\ExpFunctionCallingNode.cs",
+ "ViewState": "AgIAACQAAAAAAAAAAAAwwDAAAAAaAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-26T13:07:36.295Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 31,
+ "Title": "ViewRender.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\MVVM\\View\\ViewRender.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\MVVM\\View\\ViewRender.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\MVVM\\View\\ViewRender.cs",
+ "RelativeToolTip": "StgSharp.Common\\MVVM\\View\\ViewRender.cs",
+ "ViewState": "AgIAABEAAAAAAAAAAAAkwCEAAAAeAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-25T17:18:47.56Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 29,
+ "Title": "DataBinding.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\MVVM\\ViewModel\\DataBinding.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\MVVM\\ViewModel\\DataBinding.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\MVVM\\ViewModel\\DataBinding.cs",
+ "RelativeToolTip": "StgSharp.Common\\MVVM\\ViewModel\\DataBinding.cs",
+ "ViewState": "AgIAABUAAAAAAAAAAAAUwFcAAAAjAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-25T17:18:19.263Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 33,
+ "Title": "Vec3.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Math\\Linear\\Vec3.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Math\\Linear\\Vec3.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Math\\Linear\\Vec3.cs",
+ "RelativeToolTip": "StgSharp.Common\\Math\\Linear\\Vec3.cs",
+ "ViewState": "AgIAAA8AAAAAAAAAAAA3wB8AAAAPAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-25T17:01:31.921Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 36,
+ "Title": "glApiManager.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glApiManager.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\OpenGL\\glApiManager.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glApiManager.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\OpenGL\\glApiManager.cs",
+ "ViewState": "AgIAAA8AAAAAAAAAAAA3wB4AAAAfAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-25T16:53:54.394Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 37,
+ "Title": "glContext.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glContext.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\OpenGL\\glContext.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glContext.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\OpenGL\\glContext.cs",
+ "ViewState": "AgIAAA8AAAAAAAAAAAA3wCcAAAASAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-25T16:51:38.795Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 42,
+ "Title": "Lable.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\HighPerformance\\Lable.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\HighPerformance\\Lable.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\HighPerformance\\Lable.cs",
+ "RelativeToolTip": "StgSharp.Common\\HighPerformance\\Lable.cs",
+ "ViewState": "AgIAAA8AAAAAAAAAAAAgwCQAAAAFAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-25T16:49:02.593Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 45,
+ "Title": "ValueBox.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\ValueBox.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Data\\ValueBox.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\ValueBox.cs",
+ "RelativeToolTip": "StgSharp.Common\\Data\\ValueBox.cs",
+ "ViewState": "AgIAADkAAAAAAAAAAABDwDsAAAAnAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-24T17:50:41.074Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 12,
+ "Title": "ExpSchemaBase.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSchemaBase.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpSchemaBase.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSchemaBase.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpSchemaBase.cs",
+ "ViewState": "AgIAABYAAAAAAAAAAAAYwEgAAAAmAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-20T07:18:13.781Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "DefaultSchema.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\CompileEnv\\DefaultSchema.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\CompileEnv\\DefaultSchema.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\CompileEnv\\DefaultSchema.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\CompileEnv\\DefaultSchema.cs",
+ "ViewState": "AgIAAE4AAAAAAAAAAAAmwF8AAAAcAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-20T07:10:39.404Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 51,
+ "Title": "ExpUnaryOperatorNode.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpUnaryOperatorNode.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpAstNode\\ExpUnaryOperatorNode.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpUnaryOperatorNode.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpAstNode\\ExpUnaryOperatorNode.cs",
+ "ViewState": "AgIAABsAAAAAAAAAAAAkwC4AAAAkAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-20T05:03:28.304Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 55,
+ "Title": "StgSharp.Script.csproj",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\StgSharp.Script.csproj",
+ "RelativeDocumentMoniker": "StgSharp.Script\\StgSharp.Script.csproj",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\StgSharp.Script.csproj",
+ "RelativeToolTip": "StgSharp.Script\\StgSharp.Script.csproj",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+ "WhenOpened": "2025-02-19T05:34:14.923Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 16,
+ "Title": "GenerateUnaryToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeGenerator\\GenerateUnaryToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\NodeGenerator\\GenerateUnaryToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeGenerator\\GenerateUnaryToken.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\NodeGenerator\\GenerateUnaryToken.cs",
+ "ViewState": "AgIAABoAAAAAAAAAAAAswCwAAAAxAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-19T05:23:59.671Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 57,
+ "Title": "gl.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\ClangLoad\\gl.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\ClangLoad\\gl.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\ClangLoad\\gl.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\ClangLoad\\gl.cs",
+ "ViewState": "AgIAADYAAAAAAAAAAAAcwDwAAAArAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-19T00:26:10.683Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 58,
+ "Title": "intrinsicContextProvider.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\Intrinsic\\intrinsicContextProvider.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\Intrinsic\\intrinsicContextProvider.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\Intrinsic\\intrinsicContextProvider.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\Intrinsic\\intrinsicContextProvider.cs",
+ "ViewState": "AgIAADAAAAAAAAAAAAAjwEEAAAAaAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-18T14:20:26.892Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 59,
+ "Title": "StructDefine.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\StructDefine.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\StructDefine.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\StructDefine.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\StructDefine.cs",
+ "ViewState": "AgIAAC4AAAAAAAAAAAAQwLMDAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-18T14:20:12.012Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 60,
+ "Title": "InternalIO.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\InternalIO.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\InternalIO.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\InternalIO.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\InternalIO.cs",
+ "ViewState": "AgIAAHcAAAAAAAAAAAAcwIMAAAAeAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-18T14:07:05.799Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 56,
+ "Title": "glfw.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\glfw.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\glfw.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\glfw.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\glfw.cs",
+ "ViewState": "AgIAADkCAAAAAAAAAAA4wD8CAAA1AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-18T14:04:11.433Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 54,
+ "Title": "ExpIndexOfNode.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpIndexOfNode.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpAstNode\\ExpIndexOfNode.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpIndexOfNode.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpAstNode\\ExpIndexOfNode.cs",
+ "ViewState": "AgIAABwAAAAAAAAAAAAkwC4AAAAkAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-17T04:08:53.537Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 18,
+ "Title": "ExpErrorThrow.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeGenerator\\ExpErrorThrow.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\NodeGenerator\\ExpErrorThrow.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeGenerator\\ExpErrorThrow.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\NodeGenerator\\ExpErrorThrow.cs",
+ "ViewState": "AgIAABkAAAAAAAAAAAA5wCYAAAAgAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-15T03:06:04.73Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 20,
+ "Title": "ExpNodeFlag.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeHelper\\ExpNodeFlag.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\NodeHelper\\ExpNodeFlag.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeHelper\\ExpNodeFlag.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\NodeHelper\\ExpNodeFlag.cs",
+ "ViewState": "AgIAABMAAAAAAAAAAAAuwCYAAAALAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-15T02:40:19.584Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 4,
+ "Title": "KeyWord.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\CompileEnv\\KeyWord.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\CompileEnv\\KeyWord.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\CompileEnv\\KeyWord.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\CompileEnv\\KeyWord.cs",
+ "ViewState": "AgIAAB8AAAAAAAAAAAA3wDAAAAA/AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-14T04:47:04.999Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 5,
+ "Title": "ExpOperatorPrecedence.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\CompileEnv\\ExpOperatorPrecedence.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\CompileEnv\\ExpOperatorPrecedence.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\CompileEnv\\ExpOperatorPrecedence.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\CompileEnv\\ExpOperatorPrecedence.cs",
+ "ViewState": "AgIAAEkAAAAAAAAAAAAvwEsAAABGAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-14T04:41:25.457Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
+ "Title": "ExpBinaryOperatorNode.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpBinaryOperatorNode.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpAstNode\\ExpBinaryOperatorNode.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpBinaryOperatorNode.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpAstNode\\ExpBinaryOperatorNode.cs",
+ "ViewState": "AgIAAHgAAAAAAAAAAAA1wIwAAAApAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-14T01:18:30.456Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 15,
+ "Title": "ExpElmentSource.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpElmentSource.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpElmentSource.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpElmentSource.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpElmentSource.cs",
+ "ViewState": "AgIAAC8AAAAAAAAAAAASwDkAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-13T14:24:35.903Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 63,
+ "Title": "ITypeSource.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\ITypeSource.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\ITypeSource.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\ITypeSource.cs",
+ "RelativeToolTip": "StgSharp.Script\\ITypeSource.cs",
+ "ViewState": "AgIAABcAAAAAAAAAAAAnwCkAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-13T11:07:58.417Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 19,
+ "Title": "ExpNodeNextEnumerator.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeHelper\\ExpNodeNextEnumerator.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\NodeHelper\\ExpNodeNextEnumerator.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeHelper\\ExpNodeNextEnumerator.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\NodeHelper\\ExpNodeNextEnumerator.cs",
+ "ViewState": "AgIAABcAAAAAAAAAAAAAwEEAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-12T01:47:44.385Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 61,
+ "Title": "LeftSperatorProcess.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeGenerator\\LeftSperatorProcess.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\NodeGenerator\\LeftSperatorProcess.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeGenerator\\LeftSperatorProcess.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\NodeGenerator\\LeftSperatorProcess.cs",
+ "ViewState": "AgIAACEAAAAAAAAAAAA4wDMAAAAZAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-10T12:58:53.511Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 126,
+ "Title": "PartialDictionaryValues.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\PartialDictionaryValues.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Collections\\PartialDictionaryValues.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\PartialDictionaryValues.cs",
+ "RelativeToolTip": "StgSharp.Common\\Collections\\PartialDictionaryValues.cs",
+ "ViewState": "AgIAAFEAAAAAAAAAAAAiwCwAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-10T08:04:17.124Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 127,
+ "Title": "IBidrirectionalDictionary.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\IBidrirectionalDictionary.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Collections\\IBidrirectionalDictionary.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\IBidrirectionalDictionary.cs",
+ "RelativeToolTip": "StgSharp.Common\\Collections\\IBidrirectionalDictionary.cs",
+ "ViewState": "AgIAABcAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-10T07:35:01.068Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 128,
+ "Title": "PartialDictionary.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\PartialDictionary.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Collections\\PartialDictionary.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\PartialDictionary.cs",
+ "RelativeToolTip": "StgSharp.Common\\Collections\\PartialDictionary.cs",
+ "ViewState": "AgIAAB0AAAAAAAAAAAA2wCgAAAAZAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-10T07:24:32.513Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 68,
+ "Title": "CachePool.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\CachePool.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Collections\\CachePool.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\CachePool.cs",
+ "RelativeToolTip": "StgSharp.Common\\Collections\\CachePool.cs",
+ "ViewState": "AgIAACMAAAAAAAAAAAAkwD0AAAAIAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-10T07:17:14.466Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 66,
+ "Title": "Token.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Token.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Token.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Token.cs",
+ "RelativeToolTip": "StgSharp.Script\\Token.cs",
+ "ViewState": "AgIAAB0AAAAAAAAAAAAnwDIAAAAlAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-10T05:41:37.766Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 129,
+ "Title": "ListSegment.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\ListSegment.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Collections\\ListSegment.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\ListSegment.cs",
+ "RelativeToolTip": "StgSharp.Common\\Collections\\ListSegment.cs",
+ "ViewState": "AgIAAEAAAAAAAAAAAAA1wEQAAAAeAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-09T09:37:18.153Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 130,
+ "Title": "CapacityFixedList.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\CapacityFixedList.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Collections\\CapacityFixedList.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\CapacityFixedList.cs",
+ "RelativeToolTip": "StgSharp.Common\\Collections\\CapacityFixedList.cs",
+ "ViewState": "AgIAAEsAAAAAAAAAAAA0wFgAAAANAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-09T08:42:20.443Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 131,
+ "Title": "CancellableTask.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Threading\\CancellableTask.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Threading\\CancellableTask.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Threading\\CancellableTask.cs",
+ "RelativeToolTip": "StgSharp.Common\\Threading\\CancellableTask.cs",
+ "ViewState": "AgIAAB0AAAAAAAAAAAAkwCwAAAAsAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-09T05:42:15.809Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 17,
+ "Title": "ExpNodeGenerator.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeGenerator\\ExpNodeGenerator.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\NodeGenerator\\ExpNodeGenerator.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\NodeGenerator\\ExpNodeGenerator.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\NodeGenerator\\ExpNodeGenerator.cs",
+ "ViewState": "AgIAAFwAAAAAAAAAAAAywGoAAAAbAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-09T05:12:00.635Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 132,
+ "Title": "StgSharpC.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\StgSharpC.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\StgSharpC.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\StgSharpC.c",
+ "RelativeToolTip": "StgSharp.C\\StgSharpC.c",
+ "ViewState": "AgIAAC4AAAAAAAAAAAAQwAIAAAASAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-08T01:45:17.805Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 133,
+ "Title": "dllmain.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\dllmain.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\dllmain.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\dllmain.c",
+ "RelativeToolTip": "StgSharp.C\\dllmain.c",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAABMAAAAfAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-08T01:44:16.485Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 27,
+ "Title": "ExpSourceReader.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSourceReader.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpSourceReader.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSourceReader.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpSourceReader.cs",
+ "ViewState": "AgIAABwAAAAAAAAAAAAuwGMAAAAoAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-06T00:16:51.382Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 71,
+ "Title": "RegexGenerator.g.cs",
+ "DocumentMoniker": "C:\\Users\\Youmu\\AppData\\Local\\Temp\\VSGeneratedDocuments\\a225e5d2-39b7-4ca3-6a63-b9959f4b2e51\\RegexGenerator.g.cs",
+ "ToolTip": "RegexGenerator.g.cs [\u7531 System.Text.RegularExpressions.Generator.RegexGenerator \u751F\u6210]",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "OverriddenToolTip": "RegexGenerator.g.cs [\u7531 System.Text.RegularExpressions.Generator.RegexGenerator \u751F\u6210]",
+ "WhenOpened": "2025-02-06T00:04:32.296Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 72,
+ "Title": "RegexGenerator.g.cs",
+ "DocumentMoniker": "C:\\Users\\Youmu\\AppData\\Local\\Temp\\VSGeneratedDocuments\\98806cbf-a6a4-6a33-1ec5-95d1fd43e824\\RegexGenerator.g.cs",
+ "ToolTip": "RegexGenerator.g.cs [\u7531 System.Text.RegularExpressions.Generator.RegexGenerator \u751F\u6210]",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "OverriddenToolTip": "RegexGenerator.g.cs [\u7531 System.Text.RegularExpressions.Generator.RegexGenerator \u751F\u6210]",
+ "WhenOpened": "2025-02-05T12:57:06.575Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 134,
+ "Title": "glFunction.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glFunction.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\OpenGL\\glFunction.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glFunction.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\OpenGL\\glFunction.cs",
+ "ViewState": "AgIAABwCAAAAAAAAAAA1wIAAAAAfAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T11:20:25.703Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 135,
+ "Title": "Random.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Math\\Scalar\\Random.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Math\\Scalar\\Random.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Math\\Scalar\\Random.cs",
+ "RelativeToolTip": "StgSharp.Common\\Math\\Scalar\\Random.cs",
+ "ViewState": "AgIAAEkAAAAAAAAAAIA2wFkAAABFAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T11:19:53.61Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 43,
+ "Title": "IRegisterType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\HighPerformance\\IRegisterType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\HighPerformance\\IRegisterType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\HighPerformance\\IRegisterType.cs",
+ "RelativeToolTip": "StgSharp.Common\\HighPerformance\\IRegisterType.cs",
+ "ViewState": "AgIAABkAAAAAAAAAAIA2wCUAAAAiAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T11:18:39.355Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 39,
+ "Title": "UnsafeCompute.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\HighPerformance\\UnsafeCompute.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\HighPerformance\\UnsafeCompute.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\HighPerformance\\UnsafeCompute.cs",
+ "RelativeToolTip": "StgSharp.Common\\HighPerformance\\UnsafeCompute.cs",
+ "ViewState": "AgIAACIAAAAAAAAAAAAwwCQAAAAiAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T11:02:42.388Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 40,
+ "Title": "M256.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\HighPerformance\\M256.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\HighPerformance\\M256.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\HighPerformance\\M256.cs",
+ "RelativeToolTip": "StgSharp.Common\\HighPerformance\\M256.cs",
+ "ViewState": "AgIAABUAAAAAAAAAAAA0wCcAAAAiAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T12:18:21.246Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 136,
+ "Title": "CollisionTexture.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Stg\\CollisionTexture.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Stg\\CollisionTexture.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Stg\\CollisionTexture.cs",
+ "RelativeToolTip": "StgSharp.Common\\Stg\\CollisionTexture.cs",
+ "ViewState": "AgIAAIMAAAAAAAAAAAAuwKwAAAAPAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T12:21:14.274Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 137,
+ "Title": "VBO.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\Buffer\\VBO.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\OpenGL\\Buffer\\VBO.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\Buffer\\VBO.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\OpenGL\\Buffer\\VBO.cs",
+ "ViewState": "AgIAAGIAAAAAAAAAAAA5wEMAAAApAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T12:21:27.439Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 138,
+ "Title": "EBO.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\Buffer\\EBO.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\OpenGL\\Buffer\\EBO.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\Buffer\\EBO.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\OpenGL\\Buffer\\EBO.cs",
+ "ViewState": "AgIAADcAAAAAAAAAAAAuwEEAAAAmAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T12:22:15.162Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 35,
+ "Title": "TextureGL.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
+ "ViewState": "AgIAABUAAAAAAAAAAAAQwCAAAAANAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T12:22:17.589Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 41,
+ "Title": "M128.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\HighPerformance\\M128.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\HighPerformance\\M128.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\HighPerformance\\M128.cs",
+ "RelativeToolTip": "StgSharp.Common\\HighPerformance\\M128.cs",
+ "ViewState": "AgIAABoAAAAAAAAAAAAawCsAAAAiAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T10:16:32.274Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 38,
+ "Title": "IntrinsicContext.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\Intrinsic\\IntrinsicContext.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\Intrinsic\\IntrinsicContext.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\Intrinsic\\IntrinsicContext.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\Intrinsic\\IntrinsicContext.cs",
+ "ViewState": "AgIAAA8AAAAAAAAAAAA3wB8AAAAeAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T09:19:07.74Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 70,
+ "Title": "IHashMultiplexer.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\IHashMultiplexer.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Collections\\IHashMultiplexer.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\IHashMultiplexer.cs",
+ "RelativeToolTip": "StgSharp.Common\\Collections\\IHashMultiplexer.cs",
+ "ViewState": "AgIAABkAAAAAAAAAAAAWwCoAAAAJAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T09:12:31.188Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 139,
+ "Title": "StringHashMultiplexer.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\StringHashMultiplexer.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Collections\\StringHashMultiplexer.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\StringHashMultiplexer.cs",
+ "RelativeToolTip": "StgSharp.Common\\Collections\\StringHashMultiplexer.cs",
+ "ViewState": "AgIAAFgAAAAAAAAAAAAuwGIAAAA7AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T09:03:17.283Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 32,
+ "Title": "Vec4.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Math\\Linear\\Vec4.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Math\\Linear\\Vec4.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Math\\Linear\\Vec4.cs",
+ "RelativeToolTip": "StgSharp.Common\\Math\\Linear\\Vec4.cs",
+ "ViewState": "AgIAAA4AAAAAAAAAAAAkwB4AAAAeAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T08:54:45.396Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 34,
+ "Title": "RandomGenerator.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\RandomGenerator.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Data\\RandomGenerator.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\RandomGenerator.cs",
+ "RelativeToolTip": "StgSharp.Common\\Data\\RandomGenerator.cs",
+ "ViewState": "AgIAAA8AAAAAAAAAAAA3wB8AAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T08:54:14.058Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 30,
+ "Title": "DataHead.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\SSD\\DataHead.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Data\\SSD\\DataHead.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\SSD\\DataHead.cs",
+ "RelativeToolTip": "StgSharp.Common\\Data\\SSD\\DataHead.cs",
+ "ViewState": "AgIAAC8AAAAAAAAAAAA1wCAAAAANAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T08:54:08.029Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 44,
+ "Title": "DataSegment.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\SSD\\DataSegment.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Data\\SSD\\DataSegment.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\SSD\\DataSegment.cs",
+ "RelativeToolTip": "StgSharp.Common\\Data\\SSD\\DataSegment.cs",
+ "ViewState": "AgIAAGUAAAAAAAAAAAA3wHUAAAATAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T08:53:58.3Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 140,
+ "Title": "StepModel.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Model\\STEP\\FileStructure\\StepModel.cs",
+ "RelativeDocumentMoniker": "StgSharp.Model\\STEP\\FileStructure\\StepModel.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Model\\STEP\\FileStructure\\StepModel.cs",
+ "RelativeToolTip": "StgSharp.Model\\STEP\\FileStructure\\StepModel.cs",
+ "ViewState": "AgIAABoAAAAAAAAAAAAkwCoAAAAQAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-04T08:53:52.61Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 69,
+ "Title": "string.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\string.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\string.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\string.c",
+ "RelativeToolTip": "StgSharp.C\\string.c",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAAdAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-04T02:00:58.382Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 62,
+ "Title": "CodeLineHelper.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\CodeLineHelper.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\CodeLineHelper.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\CodeLineHelper.cs",
+ "RelativeToolTip": "StgSharp.Script\\CodeLineHelper.cs",
+ "ViewState": "AgIAABsAAAAAAAAAAIA1wCQAAAAIAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-03T13:24:50.368Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 64,
+ "Title": "IScriptSourceProvider.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\IScriptSourceProvider.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\IScriptSourceProvider.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\IScriptSourceProvider.cs",
+ "RelativeToolTip": "StgSharp.Script\\IScriptSourceProvider.cs",
+ "ViewState": "AgIAAB0AAAAAAAAAAAD4vzIAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-03T07:32:15.431Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 24,
+ "Title": "ScriptSourceTransmitter.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\ScriptSourceTransmitter.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\ScriptSourceTransmitter.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\ScriptSourceTransmitter.cs",
+ "RelativeToolTip": "StgSharp.Script\\ScriptSourceTransmitter.cs",
+ "ViewState": "AgIAAE0AAAAAAAAAAAA4wF4AAAA+AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-03T06:46:02.837Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 141,
+ "Title": "ExpBuiltinConstant.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpBuiltinConstant.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpBuiltinConstant.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpBuiltinConstant.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpBuiltinConstant.cs",
+ "ViewState": "AgIAABwAAAAAAAAAAAA2wCcAAAAJAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-03T01:09:54.873Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 10,
+ "Title": "ExpType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Element\\ExpType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpType.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Element\\ExpType.cs",
+ "ViewState": "AgIAAC8AAAAAAAAAAIA+wEEAAAAiAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T08:11:31.522Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 47,
+ "Title": "ExpRule.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpRule.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Element\\ExpRule.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpRule.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Element\\ExpRule.cs",
+ "ViewState": "AgIAABsAAAAAAAAAAAAkwCsAAAAlAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T08:11:26.812Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 22,
+ "Title": "ExpFunction.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpFunction.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Element\\ExpFunction.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpFunction.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Element\\ExpFunction.cs",
+ "ViewState": "AgIAAD0AAAAAAAAAAAA2wF0AAAAmAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T08:10:44.132Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 48,
+ "Title": "ExpCollectionInstance.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpCollectionInstance.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpCollectionInstance.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpCollectionInstance.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpCollectionInstance.cs",
+ "ViewState": "AgIAAG4AAAAAAAAAAAAywH8AAAAXAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T08:10:18.867Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 11,
+ "Title": "GeneratedExpSchema.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\GeneratedExpSchema.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\GeneratedExpSchema.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\GeneratedExpSchema.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\GeneratedExpSchema.cs",
+ "ViewState": "AgIAACUAAAAAAAAAAAAlwDcAAAAbAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T08:08:05.896Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 124,
+ "Title": "smmintrin.h",
+ "DocumentMoniker": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\smmintrin.h",
+ "ToolTip": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\smmintrin.h",
+ "ViewState": "AgIAAL0AAAAAAAAAAAAmwMgAAAAoAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2025-02-02T03:32:10.906Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 125,
+ "Title": "intrin.h",
+ "DocumentMoniker": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\intrin.h",
+ "ToolTip": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\intrin.h",
+ "ViewState": "AgIAAJMCAAAAAAAAAAAmwJ4CAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2025-02-02T03:32:07.411Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 142,
+ "Title": "stb_image.h",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\stb_image.h",
+ "RelativeDocumentMoniker": "StgSharp.C\\stb_image.h",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\stb_image.h",
+ "RelativeToolTip": "StgSharp.C\\stb_image.h",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2025-02-02T03:31:27.068Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 143,
+ "Title": "mat2.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat2.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\mat2.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat2.c",
+ "RelativeToolTip": "StgSharp.C\\mat2.c",
+ "ViewState": "AgIAABAAAAAAAAAAAAAUwB4AAAA6AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-01T12:00:34.568Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 144,
+ "Title": "mat4.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat4.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\mat4.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat4.c",
+ "RelativeToolTip": "StgSharp.C\\mat4.c",
+ "ViewState": "AgIAAD8AAAAAAAAAAAAowAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-01T10:58:51.767Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 145,
+ "Title": "mat3.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat3.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\mat3.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat3.c",
+ "RelativeToolTip": "StgSharp.C\\mat3.c",
+ "ViewState": "AgIAAEwAAAAAAAAAAAAewGMAAABTAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-01T10:58:49.386Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 25,
+ "Title": "ViewMain.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\View\\ViewMain.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\View\\ViewMain.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\View\\ViewMain.cs",
+ "RelativeToolTip": "StgSharpDebug\\View\\ViewMain.cs",
+ "ViewState": "AgIAAC0AAAAAAAAAAAA9wDwAAAAZAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T09:52:43.909Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 28,
+ "Title": "NewRender.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\View\\NewRender.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\View\\NewRender.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\View\\NewRender.cs",
+ "RelativeToolTip": "StgSharpDebug\\View\\NewRender.cs",
+ "ViewState": "AgIAABkAAAAAAAAAAAA4wCEAAAASAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T05:16:41.098Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 146,
+ "Title": "intrinsic.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\intrinsic.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\intrinsic.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\intrinsic.c",
+ "RelativeToolTip": "StgSharp.C\\intrinsic.c",
+ "ViewState": "AgIAAFAAAAAAAAAAAAA0wIcAAAAtAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-01T04:44:14.087Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 147,
+ "Title": "StgSharpC.h",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\StgSharpC.h",
+ "RelativeDocumentMoniker": "StgSharp.C\\StgSharpC.h",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\StgSharpC.h",
+ "RelativeToolTip": "StgSharp.C\\StgSharpC.h",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2025-02-01T02:22:45.65Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 148,
+ "Title": "ssc_intrinsic.h",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\ssc_intrinsic.h",
+ "RelativeDocumentMoniker": "StgSharp.C\\ssc_intrinsic.h",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\ssc_intrinsic.h",
+ "RelativeToolTip": "StgSharp.C\\ssc_intrinsic.h",
+ "ViewState": "AgIAAGcAAAAAAAAAAAA2wHwAAABHAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2025-02-01T02:13:17.69Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 149,
+ "Title": "hash.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\hash.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\hash.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\hash.c",
+ "RelativeToolTip": "StgSharp.C\\hash.c",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAABwAAAAyAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-01T02:12:53.091Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 23,
+ "Title": "ExpEntity.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpEntity.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Element\\ExpEntity.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpEntity.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Element\\ExpEntity.cs",
+ "ViewState": "AgIAADoAAAAAAAAAAAA+wDMAAAA9AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-31T03:23:40.771Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 7,
+ "Title": "ExpLiteralGenericNode.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpLiteralGenericNode.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpAstNode\\ExpLiteralGenericNode.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpLiteralGenericNode.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpAstNode\\ExpLiteralGenericNode.cs",
+ "ViewState": "AgIAAE0AAAAAAAAAAAA2wF8AAAA2AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T13:29:07.592Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 49,
+ "Title": "AbstractSyntaxTree.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\AbstractSyntaxTree.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\AbstractSyntaxTree.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\AbstractSyntaxTree.cs",
+ "RelativeToolTip": "StgSharp.Script\\AbstractSyntaxTree.cs",
+ "ViewState": "AgIAACsAAAAAAAAAAAAkwDoAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T07:24:37.33Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 46,
+ "Title": "IASTNode.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\IASTNode.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\IASTNode.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\IASTNode.cs",
+ "RelativeToolTip": "StgSharp.Script\\IASTNode.cs",
+ "ViewState": "AgIAACQAAAAAAAAAAIA5wCgAAAAVAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T07:23:34.89Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 53,
+ "Title": "ExpRepeatNode.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpRepeatNode.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpAstNode\\ExpRepeatNode.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpRepeatNode.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpAstNode\\ExpRepeatNode.cs",
+ "ViewState": "AgIAABwAAAAAAAAAAAAkwC8AAAAkAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T07:19:24.455Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 65,
+ "Title": "ExpSource.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSource.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpSource.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSource.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpSource.cs",
+ "ViewState": "AgIAADMAAAAAAAAAAAAiwDQAAAAJAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T06:40:23.62Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 52,
+ "Title": "ExpSwitchNode.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpSwitchNode.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpAstNode\\ExpSwitchNode.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpSwitchNode.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpAstNode\\ExpSwitchNode.cs",
+ "ViewState": "AgIAABsAAAAAAAAAAAAkwC0AAAAkAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T03:55:57.477Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 8,
+ "Title": "ExpBuiltinType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpBuiltinType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpBuiltinType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpBuiltinType.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpBuiltinType.cs",
+ "ViewState": "AgIAACIAAAAAAAAAAAAwwDcAAABDAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T02:58:12.25Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 26,
+ "Title": "ExpElementInstanceBase.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpElementInstanceBase.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpElementInstanceBase.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpElementInstanceBase.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpElementInstanceBase.cs",
+ "ViewState": "AgIAACYAAAAAAAAAAIA2wDYAAAAaAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T02:52:10.549Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 9,
+ "Title": "ExpCollection.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpCollection.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpCollection.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpCollection.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpCollection.cs",
+ "ViewState": "AgIAAFYAAAAAAAAAAAAowFQAAAAUAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T02:50:15.736Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 13,
+ "Title": "ExpSchemaSource.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSchemaSource.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpSchemaSource.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSchemaSource.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpSchemaSource.cs",
+ "ViewState": "AgIAAEEAAAAAAAAAAAAywE8AAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:51:49.061Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 6,
+ "Title": "ExpBaseNode.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpBaseNode.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpAstNode\\ExpBaseNode.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpBaseNode.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpAstNode\\ExpBaseNode.cs",
+ "ViewState": "AgIAAIUAAAAAAAAAAAAWwJcAAAA9AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:49:36.742Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 50,
+ "Title": "ExpIfNode.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpIfNode.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpAstNode\\ExpIfNode.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpAstNode\\ExpIfNode.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpAstNode\\ExpIfNode.cs",
+ "ViewState": "AgIAABoAAAAAAAAAAAAqwC8AAAAkAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:38:12.188Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 14,
+ "Title": "ExpExceptions.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpExceptions.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpExceptions.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpExceptions.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpExceptions.cs",
+ "ViewState": "AgIAAHQAAAAAAAAAAAAUwGwAAAAgAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:38:11.545Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 3,
+ "Title": "ExpConst.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpConst.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Element\\ExpConst.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpConst.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Element\\ExpConst.cs",
+ "ViewState": "AgIAACMAAAAAAAAAAAAUwDcAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:34:20.019Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 67,
+ "Title": "ExpLogic.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpLogic.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpLogic.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpLogic.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpLogic.cs",
+ "ViewState": "AgIAACcAAAAAAAAAAAAgwEQAAAAoAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:26:02.08Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "ExpCompile.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\CompileEnv\\ExpCompile.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\CompileEnv\\ExpCompile.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\CompileEnv\\ExpCompile.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\CompileEnv\\ExpCompile.cs",
+ "ViewState": "AgIAAEMAAAAAAAAAAAAQwFMAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:21:02.074Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 73,
+ "Title": "ExpIfToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:19:15.148Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 117,
+ "Title": "ExpExpressionTree.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpExpressionTree.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\ExpExpressionTree.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpExpressionTree.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\ExpExpressionTree.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T12:41:21.842Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 118,
+ "Title": "ExpToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\ExpToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpToken.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\ExpToken.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T12:32:47.772Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 119,
+ "Title": "ExpConst.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T08:10:50.179Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 120,
+ "Title": "ExpInit.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpInit.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\ExpInit.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpInit.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\ExpInit.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T08:10:00.82Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 121,
+ "Title": "BuiltinType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T08:06:29.505Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 122,
+ "Title": "BuiltinConst.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T08:03:33.572Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 123,
+ "Title": "ExpType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T07:24:26.837Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 76,
+ "Title": "ExpCollection.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpCollection.cs",
+ "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpCollection.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpCollection.cs",
+ "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpCollection.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-25T05:41:19.849Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 77,
+ "Title": "ExpRule.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpRule.cs",
+ "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpRule.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpRule.cs",
+ "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpRule.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-24T12:33:08.481Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 78,
+ "Title": "ExpFunction.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpFunction.cs",
+ "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpFunction.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpFunction.cs",
+ "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpFunction.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-24T11:30:53.865Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 79,
+ "Title": "ExpType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpType.cs",
+ "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpType.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-24T10:20:07.164Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 115,
+ "Title": "StepHeadReader.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs",
+ "RelativeDocumentMoniker": "SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs",
+ "RelativeToolTip": "SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-24T06:17:36.213Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 81,
+ "Title": "glfw.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\glfw.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Internal\\glfw.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\glfw.cs",
+ "RelativeToolTip": "StgSharp\\Internal\\glfw.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-23T14:17:06.842Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 74,
+ "Title": "ExpConst.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpConst.cs",
+ "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpConst.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpConst.cs",
+ "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpConst.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-23T06:15:58.672Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 82,
+ "Title": "gl.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\ClangLoad\\gl.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Internal\\ClangLoad\\gl.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\ClangLoad\\gl.cs",
+ "RelativeToolTip": "StgSharp\\Internal\\ClangLoad\\gl.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T08:59:46.372Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 83,
+ "Title": "glHalfNV.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHalfNV.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glHalfNV.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHalfNV.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glHalfNV.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T08:55:47.744Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 84,
+ "Title": "StructDefine.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\StructDefine.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Internal\\StructDefine.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\StructDefine.cs",
+ "RelativeToolTip": "StgSharp\\Internal\\StructDefine.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T08:47:28.65Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 85,
+ "Title": "InternalIO.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\InternalIO.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Internal\\InternalIO.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\InternalIO.cs",
+ "RelativeToolTip": "StgSharp\\Internal\\InternalIO.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T08:26:14.827Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 86,
+ "Title": "glContext.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glContext.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glContext.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glContext.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glContext.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T08:25:50.055Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 87,
+ "Title": "glConst.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glConst.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glConst.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glConst.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glConst.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T08:25:22.133Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 88,
+ "Title": "glEnum.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glEnum.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glEnum.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glEnum.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glEnum.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T08:24:52.368Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 116,
+ "Title": "StepExpression.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs",
+ "RelativeDocumentMoniker": "SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs",
+ "RelativeToolTip": "SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T05:33:13.815Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 89,
+ "Title": "IEntity.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Entities\\IEntity.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Entities\\IEntity.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Entities\\IEntity.cs",
+ "RelativeToolTip": "StgSharp\\Entities\\IEntity.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T05:32:22.664Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 90,
+ "Title": "PlainGeometryCollisionSensor.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\PlainGeometryCollisionSensor.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Logic\\PlainGeometryCollisionSensor.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\PlainGeometryCollisionSensor.cs",
+ "RelativeToolTip": "StgSharp\\Logic\\PlainGeometryCollisionSensor.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T05:02:23.12Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 91,
+ "Title": "Counter.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\Counter.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Logic\\Counter.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\Counter.cs",
+ "RelativeToolTip": "StgSharp\\Logic\\Counter.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T04:53:50.632Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 92,
+ "Title": "CachePool.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Collections\\CachePool.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Collections\\CachePool.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Collections\\CachePool.cs",
+ "RelativeToolTip": "StgSharp\\Collections\\CachePool.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T04:52:43.349Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 80,
+ "Title": "ExpEntity.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpEntity.cs",
+ "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpEntity.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpEntity.cs",
+ "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpEntity.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T04:23:23.704Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 150,
+ "Title": "ViewModelMain.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\ViewModelMain.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\ViewModelMain.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\ViewModelMain.cs",
+ "RelativeToolTip": "StgSharpDebug\\ViewModelMain.cs",
+ "ViewState": "AgIAADoAAAAAAAAAAAAiwDEAAAAOAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-22T03:18:57.741Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 75,
+ "Title": "Microsoft.Common.CurrentVersion.targets",
+ "DocumentMoniker": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\MSBuild\\Current\\Bin\\amd64\\Microsoft.Common.CurrentVersion.targets",
+ "ToolTip": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\MSBuild\\Current\\Bin\\amd64\\Microsoft.Common.CurrentVersion.targets",
+ "ViewState": "AgIAAEUHAAAAAAAAAIBzwGEHAAAEAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003801|",
+ "WhenOpened": "2025-01-22T03:07:54.535Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 151,
+ "Title": "UnitTest1.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\STgSharpTest\\UnitTest1.cs",
+ "RelativeDocumentMoniker": "STgSharpTest\\UnitTest1.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\STgSharpTest\\UnitTest1.cs",
+ "RelativeToolTip": "STgSharpTest\\UnitTest1.cs",
+ "ViewState": "AgIAAF8AAAAAAAAAAAAkwG8AAAA6AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T12:43:12.616Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 93,
+ "Title": "ViewModel.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewModel\\ViewModel.cs",
+ "RelativeDocumentMoniker": "StgSharp\\MVVM\\ViewModel\\ViewModel.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewModel\\ViewModel.cs",
+ "RelativeToolTip": "StgSharp\\MVVM\\ViewModel\\ViewModel.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T12:42:22.888Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 94,
+ "Title": "TextureProvider.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\TextureProvider.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\TextureProvider.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\TextureProvider.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\TextureProvider.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T12:40:27.238Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 95,
+ "Title": "ImageHelper.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T12:40:10.936Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 96,
+ "Title": "glHandle.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHandle.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glHandle.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHandle.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glHandle.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T12:39:33.236Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 97,
+ "Title": "VBO.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T12:33:21.083Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 98,
+ "Title": "EBO.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T12:33:00.232Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 99,
+ "Title": "TextureGL.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T12:32:46.745Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 100,
+ "Title": "Image.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Image.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\Image.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Image.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\Image.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T12:28:33.887Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 101,
+ "Title": "KeyEnum.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Controlling\\KeyEnum.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Controlling\\KeyEnum.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Controlling\\KeyEnum.cs",
+ "RelativeToolTip": "StgSharp\\Controlling\\KeyEnum.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T12:28:09.467Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 102,
+ "Title": "Uniform.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T11:43:39.963Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 103,
+ "Title": "Vector.Orthogonalize.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs",
+ "RelativeToolTip": "StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T11:35:59.396Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 104,
+ "Title": "glFunction.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glFunction.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glFunction.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glFunction.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glFunction.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T11:34:56.352Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 105,
+ "Title": "Platform.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Platform.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Environment\\Platform.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Platform.cs",
+ "RelativeToolTip": "StgSharp\\Environment\\Platform.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T11:05:45.886Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 106,
+ "Title": "Dialogue.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Dialogue.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Environment\\Dialogue.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Dialogue.cs",
+ "RelativeToolTip": "StgSharp\\Environment\\Dialogue.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T11:04:56.665Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 107,
+ "Title": "Pixels.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Pixels.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\Pixels.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Pixels.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\Pixels.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T06:23:16.042Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 152,
+ "Title": "Program.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\Program.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\Program.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\Program.cs",
+ "RelativeToolTip": "StgSharpDebug\\Program.cs",
+ "ViewState": "AgIAAEAAAAAAAAAAAAAUwEgAAAAyAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T06:08:27.152Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 153,
+ "Title": "Partical.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\RenderStream\\Partical.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\RenderStream\\Partical.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\RenderStream\\Partical.cs",
+ "RelativeToolTip": "StgSharpDebug\\RenderStream\\Partical.cs",
+ "ViewState": "AgIAAB8BAAAAAAAAAAAkwC8BAAAQAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T04:59:25.115Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 108,
+ "Title": "RenderStream.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\RenderStream.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\RenderStream.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\RenderStream.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\RenderStream.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T03:22:43.965Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 109,
+ "Title": "BufferObjectBase.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Define\\BufferObjectBase.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\Define\\BufferObjectBase.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Define\\BufferObjectBase.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\Define\\BufferObjectBase.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T03:15:15.908Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 110,
+ "Title": "Global.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Global.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Global.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Global.cs",
+ "RelativeToolTip": "StgSharp\\Global.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T03:14:27.337Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 111,
+ "Title": "ViewPort.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewPort.cs",
+ "RelativeDocumentMoniker": "StgSharp\\MVVM\\ViewPort.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewPort.cs",
+ "RelativeToolTip": "StgSharp\\MVVM\\ViewPort.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T03:12:28.029Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 112,
+ "Title": "framework.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\framework.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\framework.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\framework.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\framework.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T02:24:35.096Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 113,
+ "Title": "Matrix42.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Matrix42.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Math\\Linear\\Matrix42.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Matrix42.cs",
+ "RelativeToolTip": "StgSharp\\Math\\Linear\\Matrix42.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T02:24:24.915Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 114,
+ "Title": "glApiManager.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glApiManager.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glApiManager.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glApiManager.cs",
+ "RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glApiManager.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-21T02:23:01.822Z"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.vs/StgSharpDevelop/v17/HierarchyCache.v1.txt b/.vs/StgSharpDevelop/v17/HierarchyCache.v1.txt
new file mode 100644
index 00000000..a6b62038
Binary files /dev/null and b/.vs/StgSharpDevelop/v17/HierarchyCache.v1.txt differ
diff --git a/.vs/StgSharpDevelop/v17/ResourceExplorer/settings.json b/.vs/StgSharpDevelop/v17/ResourceExplorer/settings.json
new file mode 100644
index 00000000..363c6d57
--- /dev/null
+++ b/.vs/StgSharpDevelop/v17/ResourceExplorer/settings.json
@@ -0,0 +1 @@
+{"CustomColumnOrderings":{"name":0,"file-path":1,"file-name":2,"neutral-value":3,"neutral-comment":4,"type":5},"ShowValidationErrors":true,"SelectedResourceGroups":[],"VisibleColumnKeys":["name","neutral-value"]}
\ No newline at end of file
diff --git a/.vs/StgSharpDevelop/v17/Solution.VC.db b/.vs/StgSharpDevelop/v17/Solution.VC.db
new file mode 100644
index 00000000..4a59821f
Binary files /dev/null and b/.vs/StgSharpDevelop/v17/Solution.VC.db differ
diff --git a/.vs/StgSharpDevelop/v17/TestStore/0/017.testlog b/.vs/StgSharpDevelop/v17/TestStore/0/017.testlog
new file mode 100644
index 00000000..95282ade
Binary files /dev/null and b/.vs/StgSharpDevelop/v17/TestStore/0/017.testlog differ
diff --git a/.vs/StgSharpDevelop/v17/TestStore/0/testlog.manifest b/.vs/StgSharpDevelop/v17/TestStore/0/testlog.manifest
new file mode 100644
index 00000000..9b77aab6
Binary files /dev/null and b/.vs/StgSharpDevelop/v17/TestStore/0/testlog.manifest differ
diff --git a/.vs/StgSharpDevelop/v17/fileList.bin b/.vs/StgSharpDevelop/v17/fileList.bin
new file mode 100644
index 00000000..a637191a
Binary files /dev/null and b/.vs/StgSharpDevelop/v17/fileList.bin differ
diff --git a/DvlErrLog.txt b/DvlErrLog.txt
new file mode 100644
index 00000000..ca08bb4f
--- /dev/null
+++ b/DvlErrLog.txt
@@ -0,0 +1,3 @@
+System.Exception: Driver Verification Log needs to be created on a 'Release' configuration. The current selected configuration is ''.
+ 在 Microsoft.SdvMenuCommand.DriverVerificationLicense..ctor()
+ 在 Microsoft.SdvMenuCommand.SdvMenuCommandPackage.StaticToolsLogoMenuItemCallback(Object sender, EventArgs e)
diff --git a/STgSharpTest/StgSharpTest.csproj b/STgSharpTest/StgSharpTest.csproj
new file mode 100644
index 00000000..1ef69cc8
--- /dev/null
+++ b/STgSharpTest/StgSharpTest.csproj
@@ -0,0 +1,36 @@
+
+
+
+ net8.0
+ enable
+ enable
+ preview
+ false
+ true
+ AnyCPU;x64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/STgSharpTest/UnitTest1.cs b/STgSharpTest/UnitTest1.cs
new file mode 100644
index 00000000..3b842f5b
--- /dev/null
+++ b/STgSharpTest/UnitTest1.cs
@@ -0,0 +1,118 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="UnitTest1.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the ¡°Software¡±), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED ¡°AS IS¡±,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp;
+using StgSharp.Collections;
+using StgSharp.Script;
+using StgSharp.Script.Express;
+
+
+//using StgSharp.Model;
+
+using System.Collections.Concurrent;
+using System.Text.RegularExpressions;
+
+namespace STgSharpTest
+{
+ [TestClass]
+ public class UnitTest1
+ {
+ string testExpPath = @"D:\Programmer\stepcode\data\ap203\ap203.exp";
+
+ [TestMethod]
+ public void RegexTest()
+ {
+ string sample = "FILE_DESCRIPTION(('CATIA V5 STEP Exchange'),'2;1');";
+
+ foreach( var match in Regex.Match(
+ sample, @"^(?[A-Z_]+)\s?\((?.+)\)\;" )
+ .Groups ) {
+ Console.WriteLine( $"{match.ToString()}" );
+ Console.WriteLine( "\t\t\t" );
+ }
+ }
+
+ [TestMethod]
+ public void TestSource()
+ {
+ ScriptSourceTransmitter st = new ScriptSourceTransmitter("end", 0);
+ for (int i = 0; i < 10; i++)
+ {
+ st.WriteLine($"Code{i} {new string(' ', i + 1)}-- Comment{i}");
+ }
+ st.WriteLine("Code (* comment");
+ for (int i = 0; i < 10; i++)
+ {
+ st.WriteLine($"comment-code");
+ }
+ st.WriteLine($"comment *) code");
+ for (int i = 0; i < 10; i++)
+ {
+ st.WriteLine($" Code{i} (* (* Comment *) *) Code{i}");
+ }
+ st.WriteLine("end");
+
+ ExpSourceReader reader = new ExpSourceReader(st);
+ while (!st.IsEmpty)
+ {
+ Console.WriteLine(new string(reader.ReadLine()));
+ }
+ }
+
+ [TestMethod]
+ public void TestMethod()
+ {
+ ScriptSourceTransmitter st = new ScriptSourceTransmitter("end", 0);
+ for (int i = 0; i < 10; i++)
+ {
+ st.WriteLine($"Code{i} {new string(' ',i+1)}-- Comment{i}");
+ }
+ st.WriteLine("Code (* comment");
+ for (int i = 0; i < 10; i++)
+ {
+ st.WriteLine($"comment-code");
+ }
+ st.WriteLine($"comment *) code");
+ for (int i = 0; i < 10; i++)
+ {
+ st.WriteLine($" Code{i} (* (* Comment *) *) Code{i}");
+ }
+ st.WriteLine("end");
+
+ ExpSourceReader reader = new ExpSourceReader(st);
+ while (!st.IsEmpty)
+ {
+ Console.WriteLine(reader.ReadToken().Value.ToString());
+ }
+ }
+
+
+}
+}
\ No newline at end of file
diff --git a/STgSharpTest/bin/Debug/net8.0/CoverletSourceRootsMapping_StgSharpTest b/STgSharpTest/bin/Debug/net8.0/CoverletSourceRootsMapping_StgSharpTest
new file mode 100644
index 00000000..3c62a83c
Binary files /dev/null and b/STgSharpTest/bin/Debug/net8.0/CoverletSourceRootsMapping_StgSharpTest differ
diff --git a/STgSharpTest/bin/Release/net8.0/CoverletSourceRootsMapping_StgSharpTest b/STgSharpTest/bin/Release/net8.0/CoverletSourceRootsMapping_StgSharpTest
new file mode 100644
index 00000000..925c3db8
Binary files /dev/null and b/STgSharpTest/bin/Release/net8.0/CoverletSourceRootsMapping_StgSharpTest differ
diff --git a/STgSharpTest/bin/x64/Debug/net8.0/CoverletSourceRootsMapping_StgSharpTest b/STgSharpTest/bin/x64/Debug/net8.0/CoverletSourceRootsMapping_StgSharpTest
new file mode 100644
index 00000000..3c62a83c
Binary files /dev/null and b/STgSharpTest/bin/x64/Debug/net8.0/CoverletSourceRootsMapping_StgSharpTest differ
diff --git a/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.C.bsc b/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.C.bsc
new file mode 100644
index 00000000..2997a079
Binary files /dev/null and b/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.C.bsc differ
diff --git a/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.C.dll b/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.C.dll
new file mode 100644
index 00000000..e475a459
Binary files /dev/null and b/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.C.dll differ
diff --git a/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.C.exp b/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.C.exp
new file mode 100644
index 00000000..676ba294
Binary files /dev/null and b/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.C.exp differ
diff --git a/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.C.lib b/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.C.lib
new file mode 100644
index 00000000..8d346e87
Binary files /dev/null and b/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.C.lib differ
diff --git a/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.C.pdb b/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.C.pdb
new file mode 100644
index 00000000..df7e31df
Binary files /dev/null and b/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.C.pdb differ
diff --git a/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.Common.deps.json b/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.Common.deps.json
new file mode 100644
index 00000000..4c755f05
--- /dev/null
+++ b/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.Common.deps.json
@@ -0,0 +1,43 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v8.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v8.0": {
+ "StgSharp.Common/1.0.0": {
+ "dependencies": {
+ "Microsoft.CSharp": "4.7.0",
+ "System.Runtime.CompilerServices.Unsafe": "6.1.0"
+ },
+ "runtime": {
+ "StgSharp.Common.dll": {}
+ }
+ },
+ "Microsoft.CSharp/4.7.0": {},
+ "System.Runtime.CompilerServices.Unsafe/6.1.0": {}
+ }
+ },
+ "libraries": {
+ "StgSharp.Common/1.0.0": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.CSharp/4.7.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==",
+ "path": "microsoft.csharp/4.7.0",
+ "hashPath": "microsoft.csharp.4.7.0.nupkg.sha512"
+ },
+ "System.Runtime.CompilerServices.Unsafe/6.1.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-5o/HZxx6RVqYlhKSq8/zronDkALJZUT2Vz0hx43f0gwe8mwlM0y2nYlqdBwLMzr262Bwvpikeb/yEwkAa5PADg==",
+ "path": "system.runtime.compilerservices.unsafe/6.1.0",
+ "hashPath": "system.runtime.compilerservices.unsafe.6.1.0.nupkg.sha512"
+ }
+ }
+}
\ No newline at end of file
diff --git a/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/ColorHelper.dll b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/ColorHelper.dll
new file mode 100644
index 00000000..9251e005
Binary files /dev/null and b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/ColorHelper.dll differ
diff --git a/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/StgSharp.TerminalDialogue.deps.json b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/StgSharp.TerminalDialogue.deps.json
new file mode 100644
index 00000000..08e44e6f
--- /dev/null
+++ b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/StgSharp.TerminalDialogue.deps.json
@@ -0,0 +1,149 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v8.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v8.0": {
+ "StgSharp.TerminalDialogue/1.0.0": {
+ "dependencies": {
+ "Terminal.Gui": "2.0.0-v2-develop.2329"
+ },
+ "runtime": {
+ "StgSharp.TerminalDialogue.dll": {}
+ }
+ },
+ "ColorHelper/1.8.1": {
+ "runtime": {
+ "lib/netstandard2.0/ColorHelper.dll": {
+ "assemblyVersion": "1.8.1.0",
+ "fileVersion": "1.8.1.0"
+ }
+ }
+ },
+ "System.IO.Abstractions/21.0.22": {
+ "dependencies": {
+ "TestableIO.System.IO.Abstractions": "21.0.22",
+ "TestableIO.System.IO.Abstractions.Wrappers": "21.0.22"
+ },
+ "runtime": {
+ "lib/net8.0/System.IO.Abstractions.dll": {
+ "assemblyVersion": "21.0.0.0",
+ "fileVersion": "21.0.22.62509"
+ }
+ }
+ },
+ "System.Text.Encodings.Web/8.0.0": {},
+ "System.Text.Json/8.0.4": {
+ "dependencies": {
+ "System.Text.Encodings.Web": "8.0.0"
+ }
+ },
+ "Terminal.Gui/2.0.0-v2-develop.2329": {
+ "dependencies": {
+ "ColorHelper": "1.8.1",
+ "System.IO.Abstractions": "21.0.22",
+ "System.Text.Json": "8.0.4",
+ "Wcwidth": "2.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Terminal.Gui.dll": {
+ "assemblyVersion": "2.0.0.0",
+ "fileVersion": "2.0.0.0"
+ }
+ }
+ },
+ "TestableIO.System.IO.Abstractions/21.0.22": {
+ "runtime": {
+ "lib/net8.0/TestableIO.System.IO.Abstractions.dll": {
+ "assemblyVersion": "21.0.0.0",
+ "fileVersion": "21.0.22.62509"
+ }
+ }
+ },
+ "TestableIO.System.IO.Abstractions.Wrappers/21.0.22": {
+ "dependencies": {
+ "TestableIO.System.IO.Abstractions": "21.0.22"
+ },
+ "runtime": {
+ "lib/net8.0/TestableIO.System.IO.Abstractions.Wrappers.dll": {
+ "assemblyVersion": "21.0.0.0",
+ "fileVersion": "21.0.22.62509"
+ }
+ }
+ },
+ "Wcwidth/2.0.0": {
+ "runtime": {
+ "lib/net8.0/Wcwidth.dll": {
+ "assemblyVersion": "2.0.0.0",
+ "fileVersion": "2.0.0.0"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "StgSharp.TerminalDialogue/1.0.0": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "ColorHelper/1.8.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-rblWXd/02TfwJjX53xEfQnbnDRKxCm09VtavV8JaIcmIFWt9efNf6xTQ3WeXgy/she5R31eRTtnizFoUoDrs5w==",
+ "path": "colorhelper/1.8.1",
+ "hashPath": "colorhelper.1.8.1.nupkg.sha512"
+ },
+ "System.IO.Abstractions/21.0.22": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-DRnFyMIjO1KG9fqUPKV7XDPgECEwrNpsb3OLD0mImViVpRZ5747o7vqrOYbn9AMaQ8eajLeKH0fXQglgH7v42A==",
+ "path": "system.io.abstractions/21.0.22",
+ "hashPath": "system.io.abstractions.21.0.22.nupkg.sha512"
+ },
+ "System.Text.Encodings.Web/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==",
+ "path": "system.text.encodings.web/8.0.0",
+ "hashPath": "system.text.encodings.web.8.0.0.nupkg.sha512"
+ },
+ "System.Text.Json/8.0.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==",
+ "path": "system.text.json/8.0.4",
+ "hashPath": "system.text.json.8.0.4.nupkg.sha512"
+ },
+ "Terminal.Gui/2.0.0-v2-develop.2329": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-1WRHeZKN5tnF8DUu0vHz5pGZIY9ETwufKbUHCoH3UTcIeOlduhRCpBhTyJWri/fePsUkij2euFMGX2yHfk4h/A==",
+ "path": "terminal.gui/2.0.0-v2-develop.2329",
+ "hashPath": "terminal.gui.2.0.0-v2-develop.2329.nupkg.sha512"
+ },
+ "TestableIO.System.IO.Abstractions/21.0.22": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-yq3I8rUjNoo4JTOT3jbGfTM5VfowaSYiooDO2bfvQe6XGVyZiSIzaKyCmSnuUEyuktw6zzuVE1lJnUeDhJWtyQ==",
+ "path": "testableio.system.io.abstractions/21.0.22",
+ "hashPath": "testableio.system.io.abstractions.21.0.22.nupkg.sha512"
+ },
+ "TestableIO.System.IO.Abstractions.Wrappers/21.0.22": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ETpw1B6VOsQ5zbfqxqLKjITnMvB9M0K5/bK8qJc6jih+tnlKQmtnnOPSS+OeKCqsZDYeHxPNp4ytQPJS3R+WXA==",
+ "path": "testableio.system.io.abstractions.wrappers/21.0.22",
+ "hashPath": "testableio.system.io.abstractions.wrappers.21.0.22.nupkg.sha512"
+ },
+ "Wcwidth/2.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-eGZYH/V+X1DwEXrPUlUcAp8pU5a38d8IvaQzq4pclJxF1x8bizssIo4uWc3qxmS64BNGK5WnDxyBYJz84+Msqg==",
+ "path": "wcwidth/2.0.0",
+ "hashPath": "wcwidth.2.0.0.nupkg.sha512"
+ }
+ }
+}
\ No newline at end of file
diff --git a/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/StgSharp.TerminalDialogue.dll b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/StgSharp.TerminalDialogue.dll
new file mode 100644
index 00000000..625ab5a2
Binary files /dev/null and b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/StgSharp.TerminalDialogue.dll differ
diff --git a/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/StgSharp.TerminalDialogue.exe b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/StgSharp.TerminalDialogue.exe
new file mode 100644
index 00000000..1763650b
Binary files /dev/null and b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/StgSharp.TerminalDialogue.exe differ
diff --git a/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/StgSharp.TerminalDialogue.pdb b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/StgSharp.TerminalDialogue.pdb
new file mode 100644
index 00000000..f8ae29e4
Binary files /dev/null and b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/StgSharp.TerminalDialogue.pdb differ
diff --git a/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/StgSharp.TerminalDialogue.runtimeconfig.json b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/StgSharp.TerminalDialogue.runtimeconfig.json
new file mode 100644
index 00000000..becfaeac
--- /dev/null
+++ b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/StgSharp.TerminalDialogue.runtimeconfig.json
@@ -0,0 +1,12 @@
+{
+ "runtimeOptions": {
+ "tfm": "net8.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.0"
+ },
+ "configProperties": {
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/System.IO.Abstractions.dll b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/System.IO.Abstractions.dll
new file mode 100644
index 00000000..f008c6bf
Binary files /dev/null and b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/System.IO.Abstractions.dll differ
diff --git a/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/Terminal.Gui.dll b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/Terminal.Gui.dll
new file mode 100644
index 00000000..3739678f
Binary files /dev/null and b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/Terminal.Gui.dll differ
diff --git a/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/TestableIO.System.IO.Abstractions.Wrappers.dll b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/TestableIO.System.IO.Abstractions.Wrappers.dll
new file mode 100644
index 00000000..bc202d87
Binary files /dev/null and b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/TestableIO.System.IO.Abstractions.Wrappers.dll differ
diff --git a/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/TestableIO.System.IO.Abstractions.dll b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/TestableIO.System.IO.Abstractions.dll
new file mode 100644
index 00000000..ee3ad392
Binary files /dev/null and b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/TestableIO.System.IO.Abstractions.dll differ
diff --git a/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/Wcwidth.dll b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/Wcwidth.dll
new file mode 100644
index 00000000..7c50bbcd
Binary files /dev/null and b/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/Wcwidth.dll differ
diff --git a/STgSharpTest/bin/x64/Release/net8.0/CoverletSourceRootsMapping_StgSharpTest b/STgSharpTest/bin/x64/Release/net8.0/CoverletSourceRootsMapping_StgSharpTest
new file mode 100644
index 00000000..925c3db8
Binary files /dev/null and b/STgSharpTest/bin/x64/Release/net8.0/CoverletSourceRootsMapping_StgSharpTest differ
diff --git a/STgSharpTest/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/STgSharpTest/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs
new file mode 100644
index 00000000..2217181c
--- /dev/null
+++ b/STgSharpTest/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
diff --git a/STgSharpTest/obj/Debug/net8.0/StgSharpTest.AssemblyInfo.cs b/STgSharpTest/obj/Debug/net8.0/StgSharpTest.AssemblyInfo.cs
new file mode 100644
index 00000000..db6355fa
--- /dev/null
+++ b/STgSharpTest/obj/Debug/net8.0/StgSharpTest.AssemblyInfo.cs
@@ -0,0 +1,22 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharpTest")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ccef0de6f686f94da655b0e7d854d0acaf907d04")]
+[assembly: System.Reflection.AssemblyProductAttribute("StgSharpTest")]
+[assembly: System.Reflection.AssemblyTitleAttribute("StgSharpTest")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// 由 MSBuild WriteCodeFragment 类生成。
+
diff --git a/STgSharpTest/obj/Debug/net8.0/StgSharpTest.AssemblyInfoInputs.cache b/STgSharpTest/obj/Debug/net8.0/StgSharpTest.AssemblyInfoInputs.cache
new file mode 100644
index 00000000..dc71fdd4
--- /dev/null
+++ b/STgSharpTest/obj/Debug/net8.0/StgSharpTest.AssemblyInfoInputs.cache
@@ -0,0 +1 @@
+65036ac1aa2b022462b1cc6e16ab36cd70d4499450850d171ae425a6610fe37b
diff --git a/STgSharpTest/obj/Debug/net8.0/StgSharpTest.GeneratedMSBuildEditorConfig.editorconfig b/STgSharpTest/obj/Debug/net8.0/StgSharpTest.GeneratedMSBuildEditorConfig.editorconfig
new file mode 100644
index 00000000..21e2cab2
--- /dev/null
+++ b/STgSharpTest/obj/Debug/net8.0/StgSharpTest.GeneratedMSBuildEditorConfig.editorconfig
@@ -0,0 +1,13 @@
+is_global = true
+build_property.TargetFramework = net8.0
+build_property.TargetPlatformMinVersion =
+build_property.UsingMicrosoftNETSdkWeb =
+build_property.ProjectTypeGuids =
+build_property.InvariantGlobalization =
+build_property.PlatformNeutralAssembly =
+build_property.EnforceExtendedAnalyzerRules =
+build_property._SupportedPlatformList = Linux,macOS,Windows
+build_property.RootNamespace = StgSharpTest
+build_property.ProjectDir = D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\
+build_property.EnableComHosting =
+build_property.EnableGeneratedComInterfaceComImportInterop =
diff --git a/STgSharpTest/obj/Debug/net8.0/StgSharpTest.GlobalUsings.g.cs b/STgSharpTest/obj/Debug/net8.0/StgSharpTest.GlobalUsings.g.cs
new file mode 100644
index 00000000..a1f6d1a8
--- /dev/null
+++ b/STgSharpTest/obj/Debug/net8.0/StgSharpTest.GlobalUsings.g.cs
@@ -0,0 +1,9 @@
+//
+global using global::Microsoft.VisualStudio.TestTools.UnitTesting;
+global using global::System;
+global using global::System.Collections.Generic;
+global using global::System.IO;
+global using global::System.Linq;
+global using global::System.Net.Http;
+global using global::System.Threading;
+global using global::System.Threading.Tasks;
diff --git a/STgSharpTest/obj/Debug/net8.0/StgSharpTest.assets.cache b/STgSharpTest/obj/Debug/net8.0/StgSharpTest.assets.cache
new file mode 100644
index 00000000..d8981c69
Binary files /dev/null and b/STgSharpTest/obj/Debug/net8.0/StgSharpTest.assets.cache differ
diff --git a/STgSharpTest/obj/Debug/net8.0/StgSharpTest.csproj.AssemblyReference.cache b/STgSharpTest/obj/Debug/net8.0/StgSharpTest.csproj.AssemblyReference.cache
new file mode 100644
index 00000000..376c54ea
Binary files /dev/null and b/STgSharpTest/obj/Debug/net8.0/StgSharpTest.csproj.AssemblyReference.cache differ
diff --git a/STgSharpTest/obj/Debug/net8.0/StgSharpTest.csproj.FileListAbsolute.txt b/STgSharpTest/obj/Debug/net8.0/StgSharpTest.csproj.FileListAbsolute.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/STgSharpTest/obj/Release/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/STgSharpTest/obj/Release/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs
new file mode 100644
index 00000000..2217181c
--- /dev/null
+++ b/STgSharpTest/obj/Release/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
diff --git a/STgSharpTest/obj/Release/net8.0/StgSharpTest.AssemblyInfo.cs b/STgSharpTest/obj/Release/net8.0/StgSharpTest.AssemblyInfo.cs
new file mode 100644
index 00000000..6537f127
--- /dev/null
+++ b/STgSharpTest/obj/Release/net8.0/StgSharpTest.AssemblyInfo.cs
@@ -0,0 +1,23 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharpTest")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e687473132786f419a48170313782d6779890c3d")]
+[assembly: System.Reflection.AssemblyProductAttribute("StgSharpTest")]
+[assembly: System.Reflection.AssemblyTitleAttribute("StgSharpTest")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// 由 MSBuild WriteCodeFragment 类生成。
+
diff --git a/STgSharpTest/obj/Release/net8.0/StgSharpTest.AssemblyInfoInputs.cache b/STgSharpTest/obj/Release/net8.0/StgSharpTest.AssemblyInfoInputs.cache
new file mode 100644
index 00000000..cb5cffcb
--- /dev/null
+++ b/STgSharpTest/obj/Release/net8.0/StgSharpTest.AssemblyInfoInputs.cache
@@ -0,0 +1 @@
+1d3d676225642d4c08f4cbcba46a80275bd9d96fbf7d11d138efd8f869f71da6
diff --git a/STgSharpTest/obj/Release/net8.0/StgSharpTest.GeneratedMSBuildEditorConfig.editorconfig b/STgSharpTest/obj/Release/net8.0/StgSharpTest.GeneratedMSBuildEditorConfig.editorconfig
new file mode 100644
index 00000000..21e2cab2
--- /dev/null
+++ b/STgSharpTest/obj/Release/net8.0/StgSharpTest.GeneratedMSBuildEditorConfig.editorconfig
@@ -0,0 +1,13 @@
+is_global = true
+build_property.TargetFramework = net8.0
+build_property.TargetPlatformMinVersion =
+build_property.UsingMicrosoftNETSdkWeb =
+build_property.ProjectTypeGuids =
+build_property.InvariantGlobalization =
+build_property.PlatformNeutralAssembly =
+build_property.EnforceExtendedAnalyzerRules =
+build_property._SupportedPlatformList = Linux,macOS,Windows
+build_property.RootNamespace = StgSharpTest
+build_property.ProjectDir = D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\
+build_property.EnableComHosting =
+build_property.EnableGeneratedComInterfaceComImportInterop =
diff --git a/STgSharpTest/obj/Release/net8.0/StgSharpTest.GlobalUsings.g.cs b/STgSharpTest/obj/Release/net8.0/StgSharpTest.GlobalUsings.g.cs
new file mode 100644
index 00000000..a1f6d1a8
--- /dev/null
+++ b/STgSharpTest/obj/Release/net8.0/StgSharpTest.GlobalUsings.g.cs
@@ -0,0 +1,9 @@
+//
+global using global::Microsoft.VisualStudio.TestTools.UnitTesting;
+global using global::System;
+global using global::System.Collections.Generic;
+global using global::System.IO;
+global using global::System.Linq;
+global using global::System.Net.Http;
+global using global::System.Threading;
+global using global::System.Threading.Tasks;
diff --git a/STgSharpTest/obj/Release/net8.0/StgSharpTest.assets.cache b/STgSharpTest/obj/Release/net8.0/StgSharpTest.assets.cache
new file mode 100644
index 00000000..416cde93
Binary files /dev/null and b/STgSharpTest/obj/Release/net8.0/StgSharpTest.assets.cache differ
diff --git a/STgSharpTest/obj/Release/net8.0/StgSharpTest.csproj.AssemblyReference.cache b/STgSharpTest/obj/Release/net8.0/StgSharpTest.csproj.AssemblyReference.cache
new file mode 100644
index 00000000..6099094b
Binary files /dev/null and b/STgSharpTest/obj/Release/net8.0/StgSharpTest.csproj.AssemblyReference.cache differ
diff --git a/STgSharpTest/obj/StgSharpTest.csproj.nuget.dgspec.json b/STgSharpTest/obj/StgSharpTest.csproj.nuget.dgspec.json
new file mode 100644
index 00000000..1c5939ac
--- /dev/null
+++ b/STgSharpTest/obj/StgSharpTest.csproj.nuget.dgspec.json
@@ -0,0 +1,406 @@
+{
+ "format": 1,
+ "restore": {
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\STgSharpTest\\StgSharpTest.csproj": {}
+ },
+ "projects": {
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj",
+ "projectName": "StgSharp.Common",
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj",
+ "packagesPath": "C:\\Users\\Youmu\\.nuget\\packages\\",
+ "outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\obj\\",
+ "projectStyle": "PackageReference",
+ "fallbackFolders": [
+ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
+ ],
+ "configFilePaths": [
+ "C:\\Users\\Youmu\\AppData\\Roaming\\NuGet\\NuGet.Config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
+ ],
+ "originalTargetFrameworks": [
+ "net8.0"
+ ],
+ "sources": {
+ "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+ "C:\\Program Files\\dotnet\\library-packs": {},
+ "D:\\Programmer\\NugetLocal": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "projectReferences": {}
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "direct"
+ }
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "dependencies": {
+ "Microsoft.CSharp": {
+ "target": "Package",
+ "version": "[4.7.0, )"
+ },
+ "System.Runtime.CompilerServices.Unsafe": {
+ "target": "Package",
+ "version": "[6.1.0, )"
+ }
+ },
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "frameworkReferences": {
+ "Microsoft.NETCore.App": {
+ "privateAssets": "all"
+ }
+ },
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400/PortableRuntimeIdentifierGraph.json"
+ }
+ }
+ },
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Model\\StgSharp.Model.csproj": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Model\\StgSharp.Model.csproj",
+ "projectName": "StgSharp.Model",
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Model\\StgSharp.Model.csproj",
+ "packagesPath": "C:\\Users\\Youmu\\.nuget\\packages\\",
+ "outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Model\\obj\\",
+ "projectStyle": "PackageReference",
+ "fallbackFolders": [
+ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
+ ],
+ "configFilePaths": [
+ "C:\\Users\\Youmu\\AppData\\Roaming\\NuGet\\NuGet.Config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
+ ],
+ "originalTargetFrameworks": [
+ "net8.0"
+ ],
+ "sources": {
+ "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+ "C:\\Program Files\\dotnet\\library-packs": {},
+ "D:\\Programmer\\NugetLocal": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "projectReferences": {
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj"
+ },
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Script\\StgSharp.Script.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Script\\StgSharp.Script.csproj"
+ }
+ }
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "direct"
+ }
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "frameworkReferences": {
+ "Microsoft.NETCore.App": {
+ "privateAssets": "all"
+ }
+ },
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400/PortableRuntimeIdentifierGraph.json"
+ }
+ }
+ },
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Script\\StgSharp.Script.csproj": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Script\\StgSharp.Script.csproj",
+ "projectName": "StgSharp.Script",
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Script\\StgSharp.Script.csproj",
+ "packagesPath": "C:\\Users\\Youmu\\.nuget\\packages\\",
+ "outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Script\\obj\\",
+ "projectStyle": "PackageReference",
+ "fallbackFolders": [
+ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
+ ],
+ "configFilePaths": [
+ "C:\\Users\\Youmu\\AppData\\Roaming\\NuGet\\NuGet.Config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
+ ],
+ "originalTargetFrameworks": [
+ "net8.0"
+ ],
+ "sources": {
+ "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+ "C:\\Program Files\\dotnet\\library-packs": {},
+ "D:\\Programmer\\NugetLocal": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "projectReferences": {
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj"
+ }
+ }
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "direct"
+ }
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": {
+ "target": "Package",
+ "version": "[8.4.0, )"
+ }
+ },
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "frameworkReferences": {
+ "Microsoft.NETCore.App": {
+ "privateAssets": "all"
+ }
+ },
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400/PortableRuntimeIdentifierGraph.json"
+ }
+ }
+ },
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj",
+ "projectName": "StgSharp.TerminalDialogue",
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj",
+ "packagesPath": "C:\\Users\\Youmu\\.nuget\\packages\\",
+ "outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.TerminalDialogue\\obj\\",
+ "projectStyle": "PackageReference",
+ "fallbackFolders": [
+ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
+ ],
+ "configFilePaths": [
+ "C:\\Users\\Youmu\\AppData\\Roaming\\NuGet\\NuGet.Config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
+ ],
+ "originalTargetFrameworks": [
+ "net8.0"
+ ],
+ "sources": {
+ "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+ "C:\\Program Files\\dotnet\\library-packs": {},
+ "D:\\Programmer\\NugetLocal": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "projectReferences": {}
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "direct"
+ }
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "dependencies": {
+ "Terminal.Gui": {
+ "target": "Package",
+ "version": "[2.0.0-v2-develop.2329, )"
+ }
+ },
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "frameworkReferences": {
+ "Microsoft.NETCore.App": {
+ "privateAssets": "all"
+ }
+ },
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400/PortableRuntimeIdentifierGraph.json"
+ }
+ }
+ },
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\STgSharpTest\\StgSharpTest.csproj": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\STgSharpTest\\StgSharpTest.csproj",
+ "projectName": "StgSharpTest",
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\STgSharpTest\\StgSharpTest.csproj",
+ "packagesPath": "C:\\Users\\Youmu\\.nuget\\packages\\",
+ "outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\STgSharpTest\\obj\\",
+ "projectStyle": "PackageReference",
+ "fallbackFolders": [
+ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
+ ],
+ "configFilePaths": [
+ "C:\\Users\\Youmu\\AppData\\Roaming\\NuGet\\NuGet.Config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
+ ],
+ "originalTargetFrameworks": [
+ "net8.0"
+ ],
+ "sources": {
+ "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+ "C:\\Program Files\\dotnet\\library-packs": {},
+ "D:\\Programmer\\NugetLocal": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "projectReferences": {
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj"
+ },
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Model\\StgSharp.Model.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Model\\StgSharp.Model.csproj"
+ },
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Script\\StgSharp.Script.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Script\\StgSharp.Script.csproj"
+ },
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj"
+ }
+ }
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "direct"
+ }
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "dependencies": {
+ "MSTest.TestAdapter": {
+ "target": "Package",
+ "version": "[3.1.1, )"
+ },
+ "MSTest.TestFramework": {
+ "target": "Package",
+ "version": "[3.1.1, )"
+ },
+ "Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.MSTest": {
+ "target": "Package",
+ "version": "[1.1.2, )"
+ },
+ "Microsoft.NET.Test.Sdk": {
+ "target": "Package",
+ "version": "[17.8.0, )"
+ },
+ "coverlet.collector": {
+ "target": "Package",
+ "version": "[6.0.0, )"
+ }
+ },
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "frameworkReferences": {
+ "Microsoft.NETCore.App": {
+ "privateAssets": "all"
+ }
+ },
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400/PortableRuntimeIdentifierGraph.json"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/STgSharpTest/obj/StgSharpTest.csproj.nuget.g.props b/STgSharpTest/obj/StgSharpTest.csproj.nuget.g.props
new file mode 100644
index 00000000..a15255e1
--- /dev/null
+++ b/STgSharpTest/obj/StgSharpTest.csproj.nuget.g.props
@@ -0,0 +1,26 @@
+
+
+
+ True
+ NuGet
+ $(MSBuildThisFileDirectory)project.assets.json
+ $(UserProfile)\.nuget\packages\
+ C:\Users\Youmu\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages
+ PackageReference
+ 6.11.0
+
+
+
+
+
+
+
+
+
+
+
+
+ C:\Users\Youmu\.nuget\packages\microsoft.visualstudio.validation\15.0.82
+ C:\Users\Youmu\.nuget\packages\microsoft.codeanalysis.analyzers\3.0.0
+
+
\ No newline at end of file
diff --git a/STgSharpTest/obj/StgSharpTest.csproj.nuget.g.targets b/STgSharpTest/obj/StgSharpTest.csproj.nuget.g.targets
new file mode 100644
index 00000000..3920568a
--- /dev/null
+++ b/STgSharpTest/obj/StgSharpTest.csproj.nuget.g.targets
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/STgSharpTest/obj/project.assets.json b/STgSharpTest/obj/project.assets.json
new file mode 100644
index 00000000..707dc982
--- /dev/null
+++ b/STgSharpTest/obj/project.assets.json
@@ -0,0 +1,8534 @@
+{
+ "version": 3,
+ "targets": {
+ "net8.0": {
+ "ColorHelper/1.8.1": {
+ "type": "package",
+ "compile": {
+ "lib/netstandard2.0/ColorHelper.dll": {}
+ },
+ "runtime": {
+ "lib/netstandard2.0/ColorHelper.dll": {}
+ }
+ },
+ "CommunityToolkit.HighPerformance/8.4.0": {
+ "type": "package",
+ "compile": {
+ "lib/net8.0/CommunityToolkit.HighPerformance.dll": {
+ "related": ".pdb;.xml"
+ }
+ },
+ "runtime": {
+ "lib/net8.0/CommunityToolkit.HighPerformance.dll": {
+ "related": ".pdb;.xml"
+ }
+ }
+ },
+ "coverlet.collector/6.0.0": {
+ "type": "package",
+ "build": {
+ "build/netstandard1.0/coverlet.collector.targets": {}
+ }
+ },
+ "DiffPlex/1.7.2": {
+ "type": "package",
+ "compile": {
+ "lib/net6.0/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net6.0/DiffPlex.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "Humanizer.Core/2.2.0": {
+ "type": "package",
+ "dependencies": {
+ "NETStandard.Library": "1.6.1"
+ },
+ "compile": {
+ "lib/netstandard1.0/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/Humanizer.dll": {}
+ }
+ },
+ "Microsoft.Bcl.AsyncInterfaces/1.1.1": {
+ "type": "package",
+ "compile": {
+ "ref/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": {}
+ },
+ "runtime": {
+ "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.Analyzer.Testing/1.1.2": {
+ "type": "package",
+ "dependencies": {
+ "DiffPlex": "1.7.2",
+ "Microsoft.CodeAnalysis.Workspaces.Common": "1.0.1",
+ "Microsoft.VisualStudio.Composition": "16.1.8",
+ "NuGet.Common": "6.3.4",
+ "NuGet.Packaging": "6.3.4",
+ "NuGet.Protocol": "6.3.4",
+ "NuGet.Resolver": "6.3.4"
+ },
+ "compile": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Analyzer.Testing.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Analyzer.Testing.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.Analyzers/3.0.0": {
+ "type": "package",
+ "build": {
+ "build/_._": {}
+ }
+ },
+ "Microsoft.CodeAnalysis.Common/3.8.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzers": "3.0.0",
+ "System.Collections.Immutable": "5.0.0",
+ "System.Memory": "4.5.4",
+ "System.Reflection.Metadata": "5.0.0",
+ "System.Runtime.CompilerServices.Unsafe": "4.7.1",
+ "System.Text.Encoding.CodePages": "4.5.1",
+ "System.Threading.Tasks.Extensions": "4.5.4"
+ },
+ "compile": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.dll": {
+ "related": ".pdb;.xml"
+ }
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.dll": {
+ "related": ".pdb;.xml"
+ }
+ },
+ "resource": {
+ "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp/3.8.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Common": "[3.8.0]"
+ },
+ "compile": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.dll": {
+ "related": ".pdb;.xml"
+ }
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.dll": {
+ "related": ".pdb;.xml"
+ }
+ },
+ "resource": {
+ "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing/1.1.2": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.CodeAnalysis.CSharp.Workspaces": "3.8.0",
+ "Microsoft.CodeAnalysis.SourceGenerators.Testing": "[1.1.2]"
+ },
+ "compile": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.MSTest/1.1.2": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzer.Testing": "[1.1.2]",
+ "Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing": "[1.1.2]",
+ "Microsoft.CodeAnalysis.CSharp.Workspaces": "3.8.0",
+ "Microsoft.CodeAnalysis.SourceGenerators.Testing": "[1.1.2]",
+ "Microsoft.CodeAnalysis.Testing.Verifiers.MSTest": "[1.1.2]"
+ },
+ "compile": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.MSTest.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.MSTest.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp.Workspaces/3.8.0": {
+ "type": "package",
+ "dependencies": {
+ "Humanizer.Core": "2.2.0",
+ "Microsoft.CodeAnalysis.CSharp": "[3.8.0]",
+ "Microsoft.CodeAnalysis.Common": "[3.8.0]",
+ "Microsoft.CodeAnalysis.Workspaces.Common": "[3.8.0]"
+ },
+ "compile": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.dll": {
+ "related": ".pdb;.xml"
+ }
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.dll": {
+ "related": ".pdb;.xml"
+ }
+ },
+ "resource": {
+ "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.SourceGenerators.Testing/1.1.2": {
+ "type": "package",
+ "dependencies": {
+ "DiffPlex": "1.7.2",
+ "Microsoft.CodeAnalysis.Analyzer.Testing": "[1.1.2]",
+ "Microsoft.CodeAnalysis.Workspaces.Common": "3.8.0"
+ },
+ "compile": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.SourceGenerators.Testing.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.SourceGenerators.Testing.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.Testing.Verifiers.MSTest/1.1.2": {
+ "type": "package",
+ "dependencies": {
+ "MSTest.TestFramework": "1.1.17",
+ "Microsoft.CodeAnalysis.Analyzer.Testing": "[1.1.2]"
+ },
+ "compile": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Testing.Verifiers.MSTest.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Testing.Verifiers.MSTest.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.Workspaces.Common/3.8.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.1",
+ "Microsoft.CodeAnalysis.Common": "[3.8.0]",
+ "System.Composition": "1.0.31"
+ },
+ "compile": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.dll": {
+ "related": ".pdb;.xml"
+ }
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.dll": {
+ "related": ".pdb;.xml"
+ }
+ },
+ "resource": {
+ "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeCoverage/17.8.0": {
+ "type": "package",
+ "compile": {
+ "lib/netcoreapp3.1/Microsoft.VisualStudio.CodeCoverage.Shim.dll": {}
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.VisualStudio.CodeCoverage.Shim.dll": {}
+ },
+ "build": {
+ "build/netstandard2.0/Microsoft.CodeCoverage.props": {},
+ "build/netstandard2.0/Microsoft.CodeCoverage.targets": {}
+ }
+ },
+ "Microsoft.CSharp/4.7.0": {
+ "type": "package",
+ "compile": {
+ "ref/netcoreapp2.0/_._": {}
+ },
+ "runtime": {
+ "lib/netcoreapp2.0/_._": {}
+ }
+ },
+ "Microsoft.NET.Test.Sdk/17.8.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "17.8.0",
+ "Microsoft.TestPlatform.TestHost": "17.8.0"
+ },
+ "compile": {
+ "lib/netcoreapp3.1/_._": {}
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/_._": {}
+ },
+ "build": {
+ "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.props": {},
+ "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.targets": {}
+ },
+ "buildMultiTargeting": {
+ "buildMultiTargeting/Microsoft.NET.Test.Sdk.props": {}
+ }
+ },
+ "Microsoft.NETCore.Platforms/2.1.2": {
+ "type": "package",
+ "compile": {
+ "lib/netstandard1.0/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/_._": {}
+ }
+ },
+ "Microsoft.NETCore.Targets/1.1.0": {
+ "type": "package",
+ "compile": {
+ "lib/netstandard1.0/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/_._": {}
+ }
+ },
+ "Microsoft.TestPlatform.ObjectModel/17.8.0": {
+ "type": "package",
+ "dependencies": {
+ "NuGet.Frameworks": "6.5.0",
+ "System.Reflection.Metadata": "1.6.0"
+ },
+ "compile": {
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {},
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {},
+ "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {}
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {},
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {},
+ "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {}
+ },
+ "resource": {
+ "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.TestPlatform.TestHost/17.8.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "17.8.0",
+ "Newtonsoft.Json": "13.0.1"
+ },
+ "compile": {
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.CommunicationUtilities.dll": {},
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {},
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.CrossPlatEngine.dll": {},
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {},
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.Utilities.dll": {},
+ "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.Common.dll": {},
+ "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {},
+ "lib/netcoreapp3.1/testhost.dll": {
+ "related": ".deps.json"
+ }
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.CommunicationUtilities.dll": {},
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {},
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.CrossPlatEngine.dll": {},
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {},
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.Utilities.dll": {},
+ "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.Common.dll": {},
+ "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {},
+ "lib/netcoreapp3.1/testhost.dll": {
+ "related": ".deps.json"
+ }
+ },
+ "resource": {
+ "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ },
+ "build": {
+ "build/netcoreapp3.1/Microsoft.TestPlatform.TestHost.props": {}
+ }
+ },
+ "Microsoft.VisualStudio.Composition/16.1.8": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.VisualStudio.Composition.NetFxAttributes": "16.1.8",
+ "Microsoft.VisualStudio.Validation": "15.0.82",
+ "System.Composition": "1.0.31",
+ "System.Reflection.Emit": "4.3.0",
+ "System.Reflection.Metadata": "1.3.0",
+ "System.Reflection.TypeExtensions": "4.3.0",
+ "System.Threading.Tasks.Dataflow": "4.6.0"
+ },
+ "compile": {
+ "lib/netcoreapp2.0/Microsoft.VisualStudio.Composition.dll": {
+ "related": ".pdb;.xml"
+ }
+ },
+ "runtime": {
+ "lib/netcoreapp2.0/Microsoft.VisualStudio.Composition.dll": {
+ "related": ".pdb;.xml"
+ }
+ },
+ "resource": {
+ "lib/netcoreapp2.0/cs/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netcoreapp2.0/de/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netcoreapp2.0/es/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netcoreapp2.0/fr/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netcoreapp2.0/it/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netcoreapp2.0/ja/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netcoreapp2.0/ko/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netcoreapp2.0/pl/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netcoreapp2.0/pt-BR/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netcoreapp2.0/ru/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netcoreapp2.0/tr/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netcoreapp2.0/zh-Hans/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netcoreapp2.0/zh-Hant/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.VisualStudio.Composition.NetFxAttributes/16.1.8": {
+ "type": "package",
+ "dependencies": {
+ "System.ComponentModel.Composition": "4.5.0"
+ },
+ "compile": {
+ "lib/netstandard2.0/Microsoft.VisualStudio.Composition.NetFxAttributes.dll": {
+ "related": ".pdb;.xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.VisualStudio.Composition.NetFxAttributes.dll": {
+ "related": ".pdb;.xml"
+ }
+ }
+ },
+ "Microsoft.VisualStudio.Validation/15.0.82": {
+ "type": "package",
+ "compile": {
+ "lib/netstandard1.0/Microsoft.VisualStudio.Validation.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard1.0/Microsoft.VisualStudio.Validation.dll": {
+ "related": ".xml"
+ }
+ },
+ "resource": {
+ "lib/netstandard1.0/cs/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard1.0/de/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard1.0/es/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard1.0/fr/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard1.0/it/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard1.0/ja/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard1.0/ko/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard1.0/pl/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard1.0/pt-BR/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard1.0/ru/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard1.0/tr/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard1.0/zh-Hans/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard1.0/zh-Hant/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.Win32.Primitives/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/_._": {
+ "related": ".xml"
+ }
+ }
+ },
+ "MSTest.TestAdapter/3.1.1": {
+ "type": "package",
+ "build": {
+ "build/net6.0/MSTest.TestAdapter.props": {},
+ "build/net6.0/MSTest.TestAdapter.targets": {}
+ }
+ },
+ "MSTest.TestFramework/3.1.1": {
+ "type": "package",
+ "compile": {
+ "lib/net6.0/Microsoft.VisualStudio.TestPlatform.TestFramework.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net6.0/Microsoft.VisualStudio.TestPlatform.TestFramework.dll": {
+ "related": ".xml"
+ }
+ },
+ "resource": {
+ "lib/net6.0/cs/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/net6.0/de/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "de"
+ },
+ "lib/net6.0/es/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "es"
+ },
+ "lib/net6.0/fr/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/net6.0/it/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "it"
+ },
+ "lib/net6.0/ja/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/net6.0/ko/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/net6.0/pl/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/net6.0/pt-BR/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/net6.0/ru/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/net6.0/tr/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/net6.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/net6.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ },
+ "build": {
+ "build/net6.0/MSTest.TestFramework.targets": {}
+ }
+ },
+ "NETStandard.Library/1.6.1": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "System.AppContext": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Console": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.Compression": "4.3.0",
+ "System.IO.Compression.ZipFile": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Linq.Expressions": "4.3.0",
+ "System.Net.Http": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Timer": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0",
+ "System.Xml.XDocument": "4.3.0"
+ }
+ },
+ "Newtonsoft.Json/13.0.1": {
+ "type": "package",
+ "compile": {
+ "lib/netstandard2.0/Newtonsoft.Json.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/Newtonsoft.Json.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "NuGet.Common/6.3.4": {
+ "type": "package",
+ "dependencies": {
+ "NuGet.Frameworks": "6.3.4"
+ },
+ "compile": {
+ "lib/netstandard2.0/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/NuGet.Common.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "NuGet.Configuration/6.3.4": {
+ "type": "package",
+ "dependencies": {
+ "NuGet.Common": "6.3.4",
+ "System.Security.Cryptography.ProtectedData": "4.4.0"
+ },
+ "compile": {
+ "lib/netstandard2.0/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/NuGet.Configuration.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "NuGet.Frameworks/6.5.0": {
+ "type": "package",
+ "compile": {
+ "lib/netstandard2.0/NuGet.Frameworks.dll": {}
+ },
+ "runtime": {
+ "lib/netstandard2.0/NuGet.Frameworks.dll": {}
+ }
+ },
+ "NuGet.Packaging/6.3.4": {
+ "type": "package",
+ "dependencies": {
+ "Newtonsoft.Json": "13.0.1",
+ "NuGet.Configuration": "6.3.4",
+ "NuGet.Versioning": "6.3.4",
+ "System.Security.Cryptography.Cng": "5.0.0",
+ "System.Security.Cryptography.Pkcs": "5.0.0"
+ },
+ "compile": {
+ "lib/net5.0/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net5.0/NuGet.Packaging.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "NuGet.Protocol/6.3.4": {
+ "type": "package",
+ "dependencies": {
+ "NuGet.Packaging": "6.3.4"
+ },
+ "compile": {
+ "lib/net5.0/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net5.0/NuGet.Protocol.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "NuGet.Resolver/6.3.4": {
+ "type": "package",
+ "dependencies": {
+ "NuGet.Protocol": "6.3.4"
+ },
+ "compile": {
+ "lib/net5.0/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net5.0/NuGet.Resolver.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "NuGet.Versioning/6.3.4": {
+ "type": "package",
+ "compile": {
+ "lib/netstandard2.0/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/NuGet.Versioning.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "runtimeTargets": {
+ "runtimes/debian.8-x64/native/System.Security.Cryptography.Native.OpenSsl.so": {
+ "assetType": "native",
+ "rid": "debian.8-x64"
+ }
+ }
+ },
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "runtimeTargets": {
+ "runtimes/fedora.23-x64/native/System.Security.Cryptography.Native.OpenSsl.so": {
+ "assetType": "native",
+ "rid": "fedora.23-x64"
+ }
+ }
+ },
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "runtimeTargets": {
+ "runtimes/fedora.24-x64/native/System.Security.Cryptography.Native.OpenSsl.so": {
+ "assetType": "native",
+ "rid": "fedora.24-x64"
+ }
+ }
+ },
+ "runtime.native.System/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ },
+ "compile": {
+ "lib/netstandard1.0/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/_._": {}
+ }
+ },
+ "runtime.native.System.IO.Compression/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ },
+ "compile": {
+ "lib/netstandard1.0/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/_._": {}
+ }
+ },
+ "runtime.native.System.Net.Http/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ },
+ "compile": {
+ "lib/netstandard1.0/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/_._": {}
+ }
+ },
+ "runtime.native.System.Security.Cryptography.Apple/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0"
+ },
+ "compile": {
+ "lib/netstandard1.0/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/_._": {}
+ }
+ },
+ "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ },
+ "compile": {
+ "lib/netstandard1.0/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/_._": {}
+ }
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "runtimeTargets": {
+ "runtimes/opensuse.13.2-x64/native/System.Security.Cryptography.Native.OpenSsl.so": {
+ "assetType": "native",
+ "rid": "opensuse.13.2-x64"
+ }
+ }
+ },
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "runtimeTargets": {
+ "runtimes/opensuse.42.1-x64/native/System.Security.Cryptography.Native.OpenSsl.so": {
+ "assetType": "native",
+ "rid": "opensuse.42.1-x64"
+ }
+ }
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {
+ "type": "package",
+ "runtimeTargets": {
+ "runtimes/osx.10.10-x64/native/System.Security.Cryptography.Native.Apple.dylib": {
+ "assetType": "native",
+ "rid": "osx.10.10-x64"
+ }
+ }
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "runtimeTargets": {
+ "runtimes/osx.10.10-x64/native/System.Security.Cryptography.Native.OpenSsl.dylib": {
+ "assetType": "native",
+ "rid": "osx.10.10-x64"
+ }
+ }
+ },
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "runtimeTargets": {
+ "runtimes/rhel.7-x64/native/System.Security.Cryptography.Native.OpenSsl.so": {
+ "assetType": "native",
+ "rid": "rhel.7-x64"
+ }
+ }
+ },
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "runtimeTargets": {
+ "runtimes/ubuntu.14.04-x64/native/System.Security.Cryptography.Native.OpenSsl.so": {
+ "assetType": "native",
+ "rid": "ubuntu.14.04-x64"
+ }
+ }
+ },
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "runtimeTargets": {
+ "runtimes/ubuntu.16.04-x64/native/System.Security.Cryptography.Native.OpenSsl.so": {
+ "assetType": "native",
+ "rid": "ubuntu.16.04-x64"
+ }
+ }
+ },
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "runtimeTargets": {
+ "runtimes/ubuntu.16.10-x64/native/System.Security.Cryptography.Native.OpenSsl.so": {
+ "assetType": "native",
+ "rid": "ubuntu.16.10-x64"
+ }
+ }
+ },
+ "System.AppContext/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.6/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard1.6/System.AppContext.dll": {}
+ }
+ },
+ "System.Buffers/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ },
+ "compile": {
+ "lib/netstandard1.1/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.1/System.Buffers.dll": {}
+ }
+ },
+ "System.Collections/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/System.Collections.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Collections.Concurrent/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/System.Collections.Concurrent.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard1.3/System.Collections.Concurrent.dll": {}
+ }
+ },
+ "System.Collections.Immutable/5.0.0": {
+ "type": "package",
+ "compile": {
+ "lib/netstandard2.0/System.Collections.Immutable.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Collections.Immutable.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.ComponentModel.Composition/4.5.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Security.Permissions": "4.5.0"
+ },
+ "compile": {
+ "ref/netstandard2.0/System.ComponentModel.Composition.dll": {}
+ },
+ "runtime": {
+ "lib/netcoreapp2.0/System.ComponentModel.Composition.dll": {}
+ }
+ },
+ "System.Composition/1.0.31": {
+ "type": "package",
+ "dependencies": {
+ "System.Composition.AttributedModel": "1.0.31",
+ "System.Composition.Convention": "1.0.31",
+ "System.Composition.Hosting": "1.0.31",
+ "System.Composition.Runtime": "1.0.31",
+ "System.Composition.TypedParts": "1.0.31"
+ }
+ },
+ "System.Composition.AttributedModel/1.0.31": {
+ "type": "package",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "lib/netstandard1.0/System.Composition.AttributedModel.dll": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/System.Composition.AttributedModel.dll": {}
+ }
+ },
+ "System.Composition.Convention/1.0.31": {
+ "type": "package",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Composition.AttributedModel": "1.0.31",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Linq.Expressions": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ },
+ "compile": {
+ "lib/netstandard1.0/System.Composition.Convention.dll": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/System.Composition.Convention.dll": {}
+ }
+ },
+ "System.Composition.Hosting/1.0.31": {
+ "type": "package",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Composition.Runtime": "1.0.31",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Linq.Expressions": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ },
+ "compile": {
+ "lib/netstandard1.0/System.Composition.Hosting.dll": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/System.Composition.Hosting.dll": {}
+ }
+ },
+ "System.Composition.Runtime/1.0.31": {
+ "type": "package",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "lib/netstandard1.0/System.Composition.Runtime.dll": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/System.Composition.Runtime.dll": {}
+ }
+ },
+ "System.Composition.TypedParts/1.0.31": {
+ "type": "package",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Composition.AttributedModel": "1.0.31",
+ "System.Composition.Hosting": "1.0.31",
+ "System.Composition.Runtime": "1.0.31",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Linq.Expressions": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ },
+ "compile": {
+ "lib/netstandard1.0/System.Composition.TypedParts.dll": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/System.Composition.TypedParts.dll": {}
+ }
+ },
+ "System.Console/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/_._": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Diagnostics.Debug/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/System.Diagnostics.Debug.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Diagnostics.DiagnosticSource/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ },
+ "compile": {
+ "lib/netstandard1.3/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Diagnostics.Tools/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.0/System.Diagnostics.Tools.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Diagnostics.Tracing/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.5/System.Diagnostics.Tracing.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Dynamic.Runtime/4.0.11": {
+ "type": "package",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ },
+ "compile": {
+ "ref/netstandard1.3/System.Dynamic.Runtime.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard1.3/System.Dynamic.Runtime.dll": {}
+ }
+ },
+ "System.Formats.Asn1/5.0.0": {
+ "type": "package",
+ "compile": {
+ "lib/netstandard2.0/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Formats.Asn1.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Globalization/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/System.Globalization.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Globalization.Calendars/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/_._": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Globalization.Extensions/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/unix/lib/netstandard1.3/System.Globalization.Extensions.dll": {
+ "assetType": "runtime",
+ "rid": "unix"
+ },
+ "runtimes/win/lib/netstandard1.3/System.Globalization.Extensions.dll": {
+ "assetType": "runtime",
+ "rid": "win"
+ }
+ }
+ },
+ "System.IO/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.5/System.IO.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.IO.Abstractions/21.0.22": {
+ "type": "package",
+ "dependencies": {
+ "TestableIO.System.IO.Abstractions": "21.0.22",
+ "TestableIO.System.IO.Abstractions.Wrappers": "21.0.22"
+ },
+ "compile": {
+ "lib/net8.0/System.IO.Abstractions.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net8.0/System.IO.Abstractions.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.IO.Compression/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.IO.Compression": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/unix/lib/netstandard1.3/System.IO.Compression.dll": {
+ "assetType": "runtime",
+ "rid": "unix"
+ },
+ "runtimes/win/lib/netstandard1.3/System.IO.Compression.dll": {
+ "assetType": "runtime",
+ "rid": "win"
+ }
+ }
+ },
+ "System.IO.Compression.ZipFile/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.Compression": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard1.3/System.IO.Compression.ZipFile.dll": {}
+ }
+ },
+ "System.IO.FileSystem/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/_._": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.IO.FileSystem.Primitives/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard1.3/System.IO.FileSystem.Primitives.dll": {}
+ }
+ },
+ "System.Linq/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.6/System.Linq.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard1.6/System.Linq.dll": {}
+ }
+ },
+ "System.Linq.Expressions/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Emit.Lightweight": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Reflection.TypeExtensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.6/System.Linq.Expressions.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard1.6/System.Linq.Expressions.dll": {}
+ }
+ },
+ "System.Memory/4.5.4": {
+ "type": "package",
+ "compile": {
+ "ref/netcoreapp2.1/_._": {}
+ },
+ "runtime": {
+ "lib/netcoreapp2.1/_._": {}
+ }
+ },
+ "System.Net.Http/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.DiagnosticSource": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Extensions": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/unix/lib/netstandard1.6/System.Net.Http.dll": {
+ "assetType": "runtime",
+ "rid": "unix"
+ },
+ "runtimes/win/lib/netstandard1.3/System.Net.Http.dll": {
+ "assetType": "runtime",
+ "rid": "win"
+ }
+ }
+ },
+ "System.Net.Primitives/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/_._": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Net.Sockets/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/_._": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.ObjectModel/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/System.ObjectModel.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard1.3/System.ObjectModel.dll": {}
+ }
+ },
+ "System.Reflection/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.5/System.Reflection.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Reflection.Emit/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.1/System.Reflection.Emit.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard1.3/System.Reflection.Emit.dll": {}
+ }
+ },
+ "System.Reflection.Emit.ILGeneration/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.0/System.Reflection.Emit.ILGeneration.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll": {}
+ }
+ },
+ "System.Reflection.Emit.Lightweight/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.0/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll": {}
+ }
+ },
+ "System.Reflection.Extensions/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.0/System.Reflection.Extensions.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Reflection.Metadata/5.0.0": {
+ "type": "package",
+ "compile": {
+ "lib/netstandard2.0/System.Reflection.Metadata.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Reflection.Metadata.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Reflection.Primitives/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.0/System.Reflection.Primitives.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Reflection.TypeExtensions/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.5/System.Reflection.TypeExtensions.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard1.5/System.Reflection.TypeExtensions.dll": {}
+ }
+ },
+ "System.Resources.ResourceManager/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.0/System.Resources.ResourceManager.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Runtime/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ },
+ "compile": {
+ "ref/netstandard1.5/System.Runtime.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Runtime.CompilerServices.Unsafe/6.1.0": {
+ "type": "package",
+ "compile": {
+ "lib/net7.0/_._": {}
+ },
+ "runtime": {
+ "lib/net7.0/_._": {}
+ },
+ "build": {
+ "buildTransitive/net6.0/_._": {}
+ }
+ },
+ "System.Runtime.Extensions/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.5/System.Runtime.Extensions.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Runtime.Handles/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/_._": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Runtime.InteropServices/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ },
+ "compile": {
+ "ref/netcoreapp1.1/_._": {}
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.1/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll": {}
+ },
+ "runtimeTargets": {
+ "runtimes/unix/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll": {
+ "assetType": "runtime",
+ "rid": "unix"
+ },
+ "runtimes/win/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll": {
+ "assetType": "runtime",
+ "rid": "win"
+ }
+ }
+ },
+ "System.Runtime.Numerics/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.1/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard1.3/System.Runtime.Numerics.dll": {}
+ }
+ },
+ "System.Security.AccessControl/4.5.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "System.Security.Principal.Windows": "4.5.0"
+ },
+ "compile": {
+ "ref/netstandard2.0/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Security.AccessControl.dll": {}
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.dll": {
+ "assetType": "runtime",
+ "rid": "win"
+ }
+ }
+ },
+ "System.Security.Cryptography.Algorithms/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.6/_._": {}
+ },
+ "runtimeTargets": {
+ "runtimes/osx/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll": {
+ "assetType": "runtime",
+ "rid": "osx"
+ },
+ "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll": {
+ "assetType": "runtime",
+ "rid": "unix"
+ },
+ "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll": {
+ "assetType": "runtime",
+ "rid": "win"
+ }
+ }
+ },
+ "System.Security.Cryptography.Cng/5.0.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Formats.Asn1": "5.0.0"
+ },
+ "compile": {
+ "ref/netcoreapp3.0/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll": {
+ "assetType": "runtime",
+ "rid": "win"
+ }
+ }
+ },
+ "System.Security.Cryptography.Csp/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/_._": {}
+ },
+ "runtimeTargets": {
+ "runtimes/unix/lib/netstandard1.3/System.Security.Cryptography.Csp.dll": {
+ "assetType": "runtime",
+ "rid": "unix"
+ },
+ "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.Csp.dll": {
+ "assetType": "runtime",
+ "rid": "win"
+ }
+ }
+ },
+ "System.Security.Cryptography.Encoding/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/unix/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll": {
+ "assetType": "runtime",
+ "rid": "unix"
+ },
+ "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll": {
+ "assetType": "runtime",
+ "rid": "win"
+ }
+ }
+ },
+ "System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.6/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll": {}
+ },
+ "runtimeTargets": {
+ "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll": {
+ "assetType": "runtime",
+ "rid": "unix"
+ }
+ }
+ },
+ "System.Security.Cryptography.Pkcs/5.0.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Formats.Asn1": "5.0.0",
+ "System.Security.Cryptography.Cng": "5.0.0"
+ },
+ "compile": {
+ "ref/netcoreapp3.0/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netcoreapp3.0/System.Security.Cryptography.Pkcs.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Pkcs.dll": {
+ "assetType": "runtime",
+ "rid": "win"
+ }
+ }
+ },
+ "System.Security.Cryptography.Primitives/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.3/System.Security.Cryptography.Primitives.dll": {}
+ }
+ },
+ "System.Security.Cryptography.ProtectedData/4.4.0": {
+ "type": "package",
+ "compile": {
+ "ref/netstandard2.0/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": {}
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": {
+ "assetType": "runtime",
+ "rid": "win"
+ }
+ }
+ },
+ "System.Security.Cryptography.X509Certificates/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Cng": "4.3.0",
+ "System.Security.Cryptography.Csp": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.4/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.X509Certificates.dll": {
+ "assetType": "runtime",
+ "rid": "unix"
+ },
+ "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.X509Certificates.dll": {
+ "assetType": "runtime",
+ "rid": "win"
+ }
+ }
+ },
+ "System.Security.Permissions/4.5.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Security.AccessControl": "4.5.0"
+ },
+ "compile": {
+ "ref/netstandard2.0/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Security.Permissions.dll": {}
+ }
+ },
+ "System.Security.Principal.Windows/4.5.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0"
+ },
+ "compile": {
+ "ref/netstandard2.0/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Security.Principal.Windows.dll": {}
+ },
+ "runtimeTargets": {
+ "runtimes/unix/lib/netcoreapp2.0/System.Security.Principal.Windows.dll": {
+ "assetType": "runtime",
+ "rid": "unix"
+ },
+ "runtimes/win/lib/netcoreapp2.0/System.Security.Principal.Windows.dll": {
+ "assetType": "runtime",
+ "rid": "win"
+ }
+ }
+ },
+ "System.Text.Encoding/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/System.Text.Encoding.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Text.Encoding.CodePages/4.5.1": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "System.Runtime.CompilerServices.Unsafe": "4.5.2"
+ },
+ "compile": {
+ "lib/netstandard2.0/System.Text.Encoding.CodePages.dll": {}
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Text.Encoding.CodePages.dll": {}
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/netcoreapp2.0/System.Text.Encoding.CodePages.dll": {
+ "assetType": "runtime",
+ "rid": "win"
+ }
+ }
+ },
+ "System.Text.Encoding.Extensions/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/_._": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Text.Encodings.Web/8.0.0": {
+ "type": "package",
+ "compile": {
+ "lib/net8.0/System.Text.Encodings.Web.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net8.0/System.Text.Encodings.Web.dll": {
+ "related": ".xml"
+ }
+ },
+ "build": {
+ "buildTransitive/net6.0/_._": {}
+ },
+ "runtimeTargets": {
+ "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll": {
+ "assetType": "runtime",
+ "rid": "browser"
+ }
+ }
+ },
+ "System.Text.Json/8.0.4": {
+ "type": "package",
+ "dependencies": {
+ "System.Text.Encodings.Web": "8.0.0"
+ },
+ "compile": {
+ "lib/net8.0/System.Text.Json.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net8.0/System.Text.Json.dll": {
+ "related": ".xml"
+ }
+ },
+ "build": {
+ "buildTransitive/net6.0/System.Text.Json.targets": {}
+ }
+ },
+ "System.Text.RegularExpressions/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netcoreapp1.1/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.6/System.Text.RegularExpressions.dll": {}
+ }
+ },
+ "System.Threading/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/System.Threading.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard1.3/System.Threading.dll": {}
+ }
+ },
+ "System.Threading.Tasks/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/System.Threading.Tasks.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Threading.Tasks.Dataflow/4.6.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Collections.Concurrent": "4.0.12",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.Dynamic.Runtime": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ },
+ "compile": {
+ "lib/netstandard1.1/System.Threading.Tasks.Dataflow.dll": {
+ "related": ".XML"
+ }
+ },
+ "runtime": {
+ "lib/netstandard1.1/System.Threading.Tasks.Dataflow.dll": {
+ "related": ".XML"
+ }
+ }
+ },
+ "System.Threading.Tasks.Extensions/4.5.4": {
+ "type": "package",
+ "compile": {
+ "ref/netcoreapp2.1/_._": {}
+ },
+ "runtime": {
+ "lib/netcoreapp2.1/_._": {}
+ }
+ },
+ "System.Threading.Timer/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.2/_._": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Xml.ReaderWriter/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Tasks.Extensions": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard1.3/System.Xml.ReaderWriter.dll": {}
+ }
+ },
+ "System.Xml.XDocument/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard1.3/System.Xml.XDocument.dll": {}
+ }
+ },
+ "Terminal.Gui/2.0.0-v2-develop.2329": {
+ "type": "package",
+ "dependencies": {
+ "ColorHelper": "[1.8.1, 2.0.0)",
+ "System.IO.Abstractions": "[21.0.22, 22.0.0)",
+ "System.Text.Json": "[8.0.4, 9.0.0)",
+ "Wcwidth": "[2.0.0, 3.0.0)"
+ },
+ "compile": {
+ "lib/net8.0/Terminal.Gui.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net8.0/Terminal.Gui.dll": {
+ "related": ".xml"
+ }
+ },
+ "resource": {
+ "lib/net8.0/fr-FR/Terminal.Gui.resources.dll": {
+ "locale": "fr-FR"
+ },
+ "lib/net8.0/ja-JP/Terminal.Gui.resources.dll": {
+ "locale": "ja-JP"
+ },
+ "lib/net8.0/pt-PT/Terminal.Gui.resources.dll": {
+ "locale": "pt-PT"
+ },
+ "lib/net8.0/zh-Hans/Terminal.Gui.resources.dll": {
+ "locale": "zh-Hans"
+ }
+ }
+ },
+ "TestableIO.System.IO.Abstractions/21.0.22": {
+ "type": "package",
+ "compile": {
+ "lib/net8.0/TestableIO.System.IO.Abstractions.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net8.0/TestableIO.System.IO.Abstractions.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "TestableIO.System.IO.Abstractions.Wrappers/21.0.22": {
+ "type": "package",
+ "dependencies": {
+ "TestableIO.System.IO.Abstractions": "21.0.22"
+ },
+ "compile": {
+ "lib/net8.0/TestableIO.System.IO.Abstractions.Wrappers.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net8.0/TestableIO.System.IO.Abstractions.Wrappers.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "Wcwidth/2.0.0": {
+ "type": "package",
+ "compile": {
+ "lib/net8.0/Wcwidth.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net8.0/Wcwidth.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "StgSharp.Common/1.0.0": {
+ "type": "project",
+ "framework": ".NETCoreApp,Version=v8.0",
+ "dependencies": {
+ "Microsoft.CSharp": "4.7.0",
+ "System.Runtime.CompilerServices.Unsafe": "6.1.0"
+ },
+ "compile": {
+ "bin/placeholder/StgSharp.Common.dll": {}
+ },
+ "runtime": {
+ "bin/placeholder/StgSharp.Common.dll": {}
+ }
+ },
+ "StgSharp.Model/1.0.0": {
+ "type": "project",
+ "framework": ".NETCoreApp,Version=v8.0",
+ "dependencies": {
+ "StgSharp.Common": "1.0.0",
+ "StgSharp.Script": "1.0.0"
+ },
+ "compile": {
+ "bin/placeholder/StgSharp.Model.dll": {}
+ },
+ "runtime": {
+ "bin/placeholder/StgSharp.Model.dll": {}
+ }
+ },
+ "StgSharp.Script/1.0.0": {
+ "type": "project",
+ "framework": ".NETCoreApp,Version=v8.0",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "StgSharp.Common": "1.0.0"
+ },
+ "compile": {
+ "bin/placeholder/StgSharp.Script.dll": {}
+ },
+ "runtime": {
+ "bin/placeholder/StgSharp.Script.dll": {}
+ }
+ },
+ "StgSharp.TerminalDialogue/1.0.0": {
+ "type": "project",
+ "framework": ".NETCoreApp,Version=v8.0",
+ "dependencies": {
+ "Terminal.Gui": "2.0.0-v2-develop.2329"
+ },
+ "compile": {
+ "bin/placeholder/StgSharp.TerminalDialogue.dll": {}
+ },
+ "runtime": {
+ "bin/placeholder/StgSharp.TerminalDialogue.dll": {}
+ }
+ }
+ }
+ },
+ "libraries": {
+ "ColorHelper/1.8.1": {
+ "sha512": "rblWXd/02TfwJjX53xEfQnbnDRKxCm09VtavV8JaIcmIFWt9efNf6xTQ3WeXgy/she5R31eRTtnizFoUoDrs5w==",
+ "type": "package",
+ "path": "colorhelper/1.8.1",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "colorhelper.1.8.1.nupkg.sha512",
+ "colorhelper.nuspec",
+ "lib/netstandard2.0/ColorHelper.dll",
+ "logo.jpg"
+ ]
+ },
+ "CommunityToolkit.HighPerformance/8.4.0": {
+ "sha512": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg==",
+ "type": "package",
+ "path": "communitytoolkit.highperformance/8.4.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "License.md",
+ "ThirdPartyNotices.txt",
+ "communitytoolkit.highperformance.8.4.0.nupkg.sha512",
+ "communitytoolkit.highperformance.nuspec",
+ "lib/net7.0/CommunityToolkit.HighPerformance.dll",
+ "lib/net7.0/CommunityToolkit.HighPerformance.pdb",
+ "lib/net7.0/CommunityToolkit.HighPerformance.xml",
+ "lib/net8.0/CommunityToolkit.HighPerformance.dll",
+ "lib/net8.0/CommunityToolkit.HighPerformance.pdb",
+ "lib/net8.0/CommunityToolkit.HighPerformance.xml",
+ "lib/netstandard2.0/CommunityToolkit.HighPerformance.dll",
+ "lib/netstandard2.0/CommunityToolkit.HighPerformance.pdb",
+ "lib/netstandard2.0/CommunityToolkit.HighPerformance.xml",
+ "lib/netstandard2.1/CommunityToolkit.HighPerformance.dll",
+ "lib/netstandard2.1/CommunityToolkit.HighPerformance.pdb",
+ "lib/netstandard2.1/CommunityToolkit.HighPerformance.xml"
+ ]
+ },
+ "coverlet.collector/6.0.0": {
+ "sha512": "tW3lsNS+dAEII6YGUX/VMoJjBS1QvsxqJeqLaJXub08y1FSjasFPtQ4UBUsudE9PNrzLjooClMsPtY2cZLdXpQ==",
+ "type": "package",
+ "path": "coverlet.collector/6.0.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "build/netstandard1.0/Microsoft.Bcl.AsyncInterfaces.dll",
+ "build/netstandard1.0/Microsoft.CSharp.dll",
+ "build/netstandard1.0/Microsoft.DotNet.PlatformAbstractions.dll",
+ "build/netstandard1.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
+ "build/netstandard1.0/Microsoft.Extensions.DependencyInjection.dll",
+ "build/netstandard1.0/Microsoft.Extensions.DependencyModel.dll",
+ "build/netstandard1.0/Microsoft.Extensions.FileSystemGlobbing.dll",
+ "build/netstandard1.0/Microsoft.TestPlatform.CoreUtilities.dll",
+ "build/netstandard1.0/Microsoft.TestPlatform.PlatformAbstractions.dll",
+ "build/netstandard1.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll",
+ "build/netstandard1.0/Mono.Cecil.Mdb.dll",
+ "build/netstandard1.0/Mono.Cecil.Pdb.dll",
+ "build/netstandard1.0/Mono.Cecil.Rocks.dll",
+ "build/netstandard1.0/Mono.Cecil.dll",
+ "build/netstandard1.0/Newtonsoft.Json.dll",
+ "build/netstandard1.0/NuGet.Frameworks.dll",
+ "build/netstandard1.0/System.AppContext.dll",
+ "build/netstandard1.0/System.Collections.Immutable.dll",
+ "build/netstandard1.0/System.Dynamic.Runtime.dll",
+ "build/netstandard1.0/System.IO.FileSystem.Primitives.dll",
+ "build/netstandard1.0/System.Linq.Expressions.dll",
+ "build/netstandard1.0/System.Linq.dll",
+ "build/netstandard1.0/System.ObjectModel.dll",
+ "build/netstandard1.0/System.Reflection.Emit.ILGeneration.dll",
+ "build/netstandard1.0/System.Reflection.Emit.Lightweight.dll",
+ "build/netstandard1.0/System.Reflection.Emit.dll",
+ "build/netstandard1.0/System.Reflection.Metadata.dll",
+ "build/netstandard1.0/System.Reflection.TypeExtensions.dll",
+ "build/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll",
+ "build/netstandard1.0/System.Runtime.Serialization.Primitives.dll",
+ "build/netstandard1.0/System.Text.RegularExpressions.dll",
+ "build/netstandard1.0/System.Threading.Tasks.Extensions.dll",
+ "build/netstandard1.0/System.Threading.dll",
+ "build/netstandard1.0/System.Xml.ReaderWriter.dll",
+ "build/netstandard1.0/System.Xml.XDocument.dll",
+ "build/netstandard1.0/coverlet.collector.deps.json",
+ "build/netstandard1.0/coverlet.collector.dll",
+ "build/netstandard1.0/coverlet.collector.pdb",
+ "build/netstandard1.0/coverlet.collector.targets",
+ "build/netstandard1.0/coverlet.core.dll",
+ "build/netstandard1.0/coverlet.core.pdb",
+ "coverlet-icon.png",
+ "coverlet.collector.6.0.0.nupkg.sha512",
+ "coverlet.collector.nuspec"
+ ]
+ },
+ "DiffPlex/1.7.2": {
+ "sha512": "qJEjdxEDBWSFZGB8paBB9HDeJXHGlHlOXeGX3kbTuXWuOsgv2iSAEOOzo5V1/B39Vcxr9IVVrNKewRcX+rsn4g==",
+ "type": "package",
+ "path": "diffplex/1.7.2",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "README.md",
+ "diffplex.1.7.2.nupkg.sha512",
+ "diffplex.nuspec",
+ "diffplex_icon.png",
+ "lib/net35/DiffPlex.dll",
+ "lib/net35/DiffPlex.xml",
+ "lib/net40/DiffPlex.dll",
+ "lib/net40/DiffPlex.xml",
+ "lib/net6.0/DiffPlex.dll",
+ "lib/net6.0/DiffPlex.xml",
+ "lib/netstandard1.0/DiffPlex.dll",
+ "lib/netstandard1.0/DiffPlex.xml",
+ "lib/netstandard2.0/DiffPlex.dll",
+ "lib/netstandard2.0/DiffPlex.xml"
+ ]
+ },
+ "Humanizer.Core/2.2.0": {
+ "sha512": "rsYXB7+iUPP8AHgQ8JP2UZI2xK2KhjcdGr9E6zX3CsZaTLCaw8M35vaAJRo1rfxeaZEVMuXeaquLVCkZ7JcZ5Q==",
+ "type": "package",
+ "path": "humanizer.core/2.2.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "humanizer.core.2.2.0.nupkg.sha512",
+ "humanizer.core.nuspec",
+ "lib/netstandard1.0/Humanizer.dll"
+ ]
+ },
+ "Microsoft.Bcl.AsyncInterfaces/1.1.1": {
+ "sha512": "yuvf07qFWFqtK3P/MRkEKLhn5r2UbSpVueRziSqj0yJQIKFwG1pq9mOayK3zE5qZCTs0CbrwL9M6R8VwqyGy2w==",
+ "type": "package",
+ "path": "microsoft.bcl.asyncinterfaces/1.1.1",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/net461/Microsoft.Bcl.AsyncInterfaces.dll",
+ "lib/net461/Microsoft.Bcl.AsyncInterfaces.xml",
+ "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll",
+ "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml",
+ "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll",
+ "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml",
+ "microsoft.bcl.asyncinterfaces.1.1.1.nupkg.sha512",
+ "microsoft.bcl.asyncinterfaces.nuspec",
+ "ref/net461/Microsoft.Bcl.AsyncInterfaces.dll",
+ "ref/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll",
+ "ref/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "Microsoft.CodeAnalysis.Analyzer.Testing/1.1.2": {
+ "sha512": "g6cSJMPlmTiEHakCKaTobNISbf4jfjNF38YK8V4azAgcV9CE4BxuGQSWW6eftHs43q7mhKOr1lioKsTVQmUc1g==",
+ "type": "package",
+ "path": "microsoft.codeanalysis.analyzer.testing/1.1.2",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "lib/net452/Microsoft.CodeAnalysis.Analyzer.Testing.dll",
+ "lib/net452/Microsoft.CodeAnalysis.Analyzer.Testing.xml",
+ "lib/net46/Microsoft.CodeAnalysis.Analyzer.Testing.dll",
+ "lib/net46/Microsoft.CodeAnalysis.Analyzer.Testing.xml",
+ "lib/net472/Microsoft.CodeAnalysis.Analyzer.Testing.dll",
+ "lib/net472/Microsoft.CodeAnalysis.Analyzer.Testing.xml",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Analyzer.Testing.dll",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Analyzer.Testing.xml",
+ "lib/netstandard1.6/Microsoft.CodeAnalysis.Analyzer.Testing.dll",
+ "lib/netstandard1.6/Microsoft.CodeAnalysis.Analyzer.Testing.xml",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.Analyzer.Testing.dll",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.Analyzer.Testing.xml",
+ "microsoft.codeanalysis.analyzer.testing.1.1.2.nupkg.sha512",
+ "microsoft.codeanalysis.analyzer.testing.nuspec"
+ ]
+ },
+ "Microsoft.CodeAnalysis.Analyzers/3.0.0": {
+ "sha512": "ojG5pGAhTPmjxRGTNvuszO3H8XPZqksDwr9xLd4Ae/JBjZZdl6GuoLk7uLMf+o7yl5wO0TAqoWcEKkEWqrZE5g==",
+ "type": "package",
+ "path": "microsoft.codeanalysis.analyzers/3.0.0",
+ "hasTools": true,
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "EULA.rtf",
+ "ThirdPartyNotices.rtf",
+ "analyzers/dotnet/cs/Microsoft.CodeAnalysis.Analyzers.dll",
+ "analyzers/dotnet/cs/Microsoft.CodeAnalysis.CSharp.Analyzers.dll",
+ "analyzers/dotnet/cs/cs/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/de/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/es/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/fr/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/it/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/ja/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/ko/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/pl/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/pt-BR/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/ru/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/tr/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/zh-Hans/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/zh-Hant/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/Microsoft.CodeAnalysis.Analyzers.dll",
+ "analyzers/dotnet/vb/Microsoft.CodeAnalysis.VisualBasic.Analyzers.dll",
+ "analyzers/dotnet/vb/cs/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/de/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/es/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/fr/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/it/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/ja/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/ko/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/pl/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/pt-BR/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/ru/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/tr/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/zh-Hans/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/zh-Hant/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "build/Microsoft.CodeAnalysis.Analyzers.props",
+ "build/Microsoft.CodeAnalysis.Analyzers.targets",
+ "documentation/Analyzer Configuration.md",
+ "documentation/Microsoft.CodeAnalysis.Analyzers.md",
+ "documentation/Microsoft.CodeAnalysis.Analyzers.sarif",
+ "editorconfig/AllRulesDefault/.editorconfig",
+ "editorconfig/AllRulesDisabled/.editorconfig",
+ "editorconfig/AllRulesEnabled/.editorconfig",
+ "editorconfig/CorrectnessRulesDefault/.editorconfig",
+ "editorconfig/CorrectnessRulesEnabled/.editorconfig",
+ "editorconfig/DataflowRulesDefault/.editorconfig",
+ "editorconfig/DataflowRulesEnabled/.editorconfig",
+ "editorconfig/LibraryRulesDefault/.editorconfig",
+ "editorconfig/LibraryRulesEnabled/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisCompatibilityRulesDefault/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisCompatibilityRulesEnabled/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisCorrectnessRulesDefault/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisCorrectnessRulesEnabled/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisDesignRulesDefault/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisDesignRulesEnabled/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisDocumentationRulesDefault/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisDocumentationRulesEnabled/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisLocalizationRulesDefault/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisLocalizationRulesEnabled/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisPerformanceRulesDefault/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisPerformanceRulesEnabled/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisReleaseTrackingRulesDefault/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisReleaseTrackingRulesEnabled/.editorconfig",
+ "editorconfig/PortedFromFxCopRulesDefault/.editorconfig",
+ "editorconfig/PortedFromFxCopRulesEnabled/.editorconfig",
+ "microsoft.codeanalysis.analyzers.3.0.0.nupkg.sha512",
+ "microsoft.codeanalysis.analyzers.nuspec",
+ "rulesets/AllRulesDefault.ruleset",
+ "rulesets/AllRulesDisabled.ruleset",
+ "rulesets/AllRulesEnabled.ruleset",
+ "rulesets/CorrectnessRulesDefault.ruleset",
+ "rulesets/CorrectnessRulesEnabled.ruleset",
+ "rulesets/DataflowRulesDefault.ruleset",
+ "rulesets/DataflowRulesEnabled.ruleset",
+ "rulesets/LibraryRulesDefault.ruleset",
+ "rulesets/LibraryRulesEnabled.ruleset",
+ "rulesets/MicrosoftCodeAnalysisCompatibilityRulesDefault.ruleset",
+ "rulesets/MicrosoftCodeAnalysisCompatibilityRulesEnabled.ruleset",
+ "rulesets/MicrosoftCodeAnalysisCorrectnessRulesDefault.ruleset",
+ "rulesets/MicrosoftCodeAnalysisCorrectnessRulesEnabled.ruleset",
+ "rulesets/MicrosoftCodeAnalysisDesignRulesDefault.ruleset",
+ "rulesets/MicrosoftCodeAnalysisDesignRulesEnabled.ruleset",
+ "rulesets/MicrosoftCodeAnalysisDocumentationRulesDefault.ruleset",
+ "rulesets/MicrosoftCodeAnalysisDocumentationRulesEnabled.ruleset",
+ "rulesets/MicrosoftCodeAnalysisLocalizationRulesDefault.ruleset",
+ "rulesets/MicrosoftCodeAnalysisLocalizationRulesEnabled.ruleset",
+ "rulesets/MicrosoftCodeAnalysisPerformanceRulesDefault.ruleset",
+ "rulesets/MicrosoftCodeAnalysisPerformanceRulesEnabled.ruleset",
+ "rulesets/MicrosoftCodeAnalysisReleaseTrackingRulesDefault.ruleset",
+ "rulesets/MicrosoftCodeAnalysisReleaseTrackingRulesEnabled.ruleset",
+ "rulesets/PortedFromFxCopRulesDefault.ruleset",
+ "rulesets/PortedFromFxCopRulesEnabled.ruleset",
+ "tools/install.ps1",
+ "tools/uninstall.ps1"
+ ]
+ },
+ "Microsoft.CodeAnalysis.Common/3.8.0": {
+ "sha512": "8YTZ7GpsbTdC08DITx7/kwV0k4SC6cbBAFqc13cOm5vKJZcEIAh51tNSyGSkWisMgYCr96B2wb5Zri1bsla3+g==",
+ "type": "package",
+ "path": "microsoft.codeanalysis.common/3.8.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "ThirdPartyNotices.rtf",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.dll",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.pdb",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.xml",
+ "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.dll",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.pdb",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.xml",
+ "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/de/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/es/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/it/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll",
+ "microsoft.codeanalysis.common.3.8.0.nupkg.sha512",
+ "microsoft.codeanalysis.common.nuspec"
+ ]
+ },
+ "Microsoft.CodeAnalysis.CSharp/3.8.0": {
+ "sha512": "hKqFCUSk9TIMBDjiYMF8/ZfK9p9mzpU+slM73CaCHu4ctfkoqJGHLQhyT8wvrYsIg+ufrUWBF8hcJYmyr5rc5Q==",
+ "type": "package",
+ "path": "microsoft.codeanalysis.csharp/3.8.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "ThirdPartyNotices.rtf",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.dll",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.pdb",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.xml",
+ "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.dll",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.pdb",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.xml",
+ "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "microsoft.codeanalysis.csharp.3.8.0.nupkg.sha512",
+ "microsoft.codeanalysis.csharp.nuspec"
+ ]
+ },
+ "Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing/1.1.2": {
+ "sha512": "mzi4VHeskAZ7KzORK9xuK/fEAMWS0UfQJ+HbbDVaIiG8khJWIZkMka5a6X5lHW/cOq51sxHv40Ggy95jgEDVgw==",
+ "type": "package",
+ "path": "microsoft.codeanalysis.csharp.sourcegenerators.testing/1.1.2",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "lib/net472/Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.dll",
+ "lib/net472/Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.xml",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.dll",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.xml",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.dll",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.xml",
+ "microsoft.codeanalysis.csharp.sourcegenerators.testing.1.1.2.nupkg.sha512",
+ "microsoft.codeanalysis.csharp.sourcegenerators.testing.nuspec"
+ ]
+ },
+ "Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.MSTest/1.1.2": {
+ "sha512": "PmvKTrqZ4CNzWsqoUgR1225JO6Z3JIXOuQeYk9OSeCaZgPo04ph4jMnMkXnd9Skrrq+gDMDhEI9lGAgXsFmu2A==",
+ "type": "package",
+ "path": "microsoft.codeanalysis.csharp.sourcegenerators.testing.mstest/1.1.2",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "lib/net472/Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.MSTest.dll",
+ "lib/net472/Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.MSTest.xml",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.MSTest.dll",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.MSTest.xml",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.MSTest.dll",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.MSTest.xml",
+ "microsoft.codeanalysis.csharp.sourcegenerators.testing.mstest.1.1.2.nupkg.sha512",
+ "microsoft.codeanalysis.csharp.sourcegenerators.testing.mstest.nuspec"
+ ]
+ },
+ "Microsoft.CodeAnalysis.CSharp.Workspaces/3.8.0": {
+ "sha512": "rdEBvPWqe/IIscsnp7OkZ4tQin8khxBcSLyV9tU+sHdw9uW9U0GKL+Dv2rD4voC1bZBaO18Hp+m4Vkyfmaz0OA==",
+ "type": "package",
+ "path": "microsoft.codeanalysis.csharp.workspaces/3.8.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "ThirdPartyNotices.rtf",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.dll",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.pdb",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.xml",
+ "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.Workspaces.dll",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.Workspaces.pdb",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.Workspaces.xml",
+ "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netstandard2.0/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netstandard2.0/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netstandard2.0/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll",
+ "microsoft.codeanalysis.csharp.workspaces.3.8.0.nupkg.sha512",
+ "microsoft.codeanalysis.csharp.workspaces.nuspec"
+ ]
+ },
+ "Microsoft.CodeAnalysis.SourceGenerators.Testing/1.1.2": {
+ "sha512": "m+E8+ovSIYUVXMijWKdPhvnWpOBB/ms+3hunlPiWY8iJkyrT5GKFtRUPevEUKuL75t5+I3SnEAwvsHL29WJSGQ==",
+ "type": "package",
+ "path": "microsoft.codeanalysis.sourcegenerators.testing/1.1.2",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "lib/net472/Microsoft.CodeAnalysis.SourceGenerators.Testing.dll",
+ "lib/net472/Microsoft.CodeAnalysis.SourceGenerators.Testing.xml",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.SourceGenerators.Testing.dll",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.SourceGenerators.Testing.xml",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.SourceGenerators.Testing.dll",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.SourceGenerators.Testing.xml",
+ "microsoft.codeanalysis.sourcegenerators.testing.1.1.2.nupkg.sha512",
+ "microsoft.codeanalysis.sourcegenerators.testing.nuspec"
+ ]
+ },
+ "Microsoft.CodeAnalysis.Testing.Verifiers.MSTest/1.1.2": {
+ "sha512": "P+bkTk1+0fLPMRFdQjOxzA7WN77CjFVgMTxYC1S+sLlbm2kr1ShVvTmuFIVCDQLSZLjOiEPcuUcxKSMKufUzqg==",
+ "type": "package",
+ "path": "microsoft.codeanalysis.testing.verifiers.mstest/1.1.2",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "lib/net452/Microsoft.CodeAnalysis.Testing.Verifiers.MSTest.dll",
+ "lib/net452/Microsoft.CodeAnalysis.Testing.Verifiers.MSTest.xml",
+ "lib/net46/Microsoft.CodeAnalysis.Testing.Verifiers.MSTest.dll",
+ "lib/net46/Microsoft.CodeAnalysis.Testing.Verifiers.MSTest.xml",
+ "lib/net472/Microsoft.CodeAnalysis.Testing.Verifiers.MSTest.dll",
+ "lib/net472/Microsoft.CodeAnalysis.Testing.Verifiers.MSTest.xml",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Testing.Verifiers.MSTest.dll",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Testing.Verifiers.MSTest.xml",
+ "lib/netstandard1.6/Microsoft.CodeAnalysis.Testing.Verifiers.MSTest.dll",
+ "lib/netstandard1.6/Microsoft.CodeAnalysis.Testing.Verifiers.MSTest.xml",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.Testing.Verifiers.MSTest.dll",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.Testing.Verifiers.MSTest.xml",
+ "microsoft.codeanalysis.testing.verifiers.mstest.1.1.2.nupkg.sha512",
+ "microsoft.codeanalysis.testing.verifiers.mstest.nuspec"
+ ]
+ },
+ "Microsoft.CodeAnalysis.Workspaces.Common/3.8.0": {
+ "sha512": "GPYVydsmOmScOWDJA1LFky7/MkoXpx1JI3lZJShxC+bvVUvL9zVKE8WDZMLsYJ5MAbry2xkZftdfeMpZ+kvLDQ==",
+ "type": "package",
+ "path": "microsoft.codeanalysis.workspaces.common/3.8.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "ThirdPartyNotices.rtf",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.dll",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.pdb",
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.xml",
+ "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.Workspaces.dll",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.Workspaces.pdb",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.Workspaces.xml",
+ "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netstandard2.0/de/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netstandard2.0/es/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netstandard2.0/it/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll",
+ "microsoft.codeanalysis.workspaces.common.3.8.0.nupkg.sha512",
+ "microsoft.codeanalysis.workspaces.common.nuspec"
+ ]
+ },
+ "Microsoft.CodeCoverage/17.8.0": {
+ "sha512": "KC8SXWbGIdoFVdlxKk9WHccm0llm9HypcHMLUUFabRiTS3SO2fQXNZfdiF3qkEdTJhbRrxhdRxjL4jbtwPq4Ew==",
+ "type": "package",
+ "path": "microsoft.codecoverage/17.8.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "LICENSE_MIT.txt",
+ "ThirdPartyNotices.txt",
+ "build/netstandard2.0/CodeCoverage/CodeCoverage.config",
+ "build/netstandard2.0/CodeCoverage/CodeCoverage.exe",
+ "build/netstandard2.0/CodeCoverage/VanguardInstrumentationProfiler_x86.config",
+ "build/netstandard2.0/CodeCoverage/amd64/CodeCoverage.exe",
+ "build/netstandard2.0/CodeCoverage/amd64/VanguardInstrumentationProfiler_x64.config",
+ "build/netstandard2.0/CodeCoverage/amd64/covrun64.dll",
+ "build/netstandard2.0/CodeCoverage/amd64/msdia140.dll",
+ "build/netstandard2.0/CodeCoverage/arm64/VanguardInstrumentationProfiler_arm64.config",
+ "build/netstandard2.0/CodeCoverage/arm64/covrunarm64.dll",
+ "build/netstandard2.0/CodeCoverage/arm64/msdia140.dll",
+ "build/netstandard2.0/CodeCoverage/codecoveragemessages.dll",
+ "build/netstandard2.0/CodeCoverage/coreclr/Microsoft.VisualStudio.CodeCoverage.Shim.dll",
+ "build/netstandard2.0/CodeCoverage/covrun32.dll",
+ "build/netstandard2.0/CodeCoverage/msdia140.dll",
+ "build/netstandard2.0/InstrumentationEngine/alpine/x64/VanguardInstrumentationProfiler_x64.config",
+ "build/netstandard2.0/InstrumentationEngine/alpine/x64/libCoverageInstrumentationMethod.so",
+ "build/netstandard2.0/InstrumentationEngine/alpine/x64/libInstrumentationEngine.so",
+ "build/netstandard2.0/InstrumentationEngine/arm64/MicrosoftInstrumentationEngine_arm64.dll",
+ "build/netstandard2.0/InstrumentationEngine/macos/x64/VanguardInstrumentationProfiler_x64.config",
+ "build/netstandard2.0/InstrumentationEngine/macos/x64/libCoverageInstrumentationMethod.dylib",
+ "build/netstandard2.0/InstrumentationEngine/macos/x64/libInstrumentationEngine.dylib",
+ "build/netstandard2.0/InstrumentationEngine/ubuntu/x64/VanguardInstrumentationProfiler_x64.config",
+ "build/netstandard2.0/InstrumentationEngine/ubuntu/x64/libCoverageInstrumentationMethod.so",
+ "build/netstandard2.0/InstrumentationEngine/ubuntu/x64/libInstrumentationEngine.so",
+ "build/netstandard2.0/InstrumentationEngine/x64/MicrosoftInstrumentationEngine_x64.dll",
+ "build/netstandard2.0/InstrumentationEngine/x86/MicrosoftInstrumentationEngine_x86.dll",
+ "build/netstandard2.0/Microsoft.CodeCoverage.Core.dll",
+ "build/netstandard2.0/Microsoft.CodeCoverage.Instrumentation.dll",
+ "build/netstandard2.0/Microsoft.CodeCoverage.Interprocess.dll",
+ "build/netstandard2.0/Microsoft.CodeCoverage.props",
+ "build/netstandard2.0/Microsoft.CodeCoverage.targets",
+ "build/netstandard2.0/Microsoft.DiaSymReader.dll",
+ "build/netstandard2.0/Microsoft.VisualStudio.TraceDataCollector.dll",
+ "build/netstandard2.0/Mono.Cecil.Pdb.dll",
+ "build/netstandard2.0/Mono.Cecil.Rocks.dll",
+ "build/netstandard2.0/Mono.Cecil.dll",
+ "build/netstandard2.0/ThirdPartyNotices.txt",
+ "build/netstandard2.0/cs/Microsoft.VisualStudio.TraceDataCollector.resources.dll",
+ "build/netstandard2.0/de/Microsoft.VisualStudio.TraceDataCollector.resources.dll",
+ "build/netstandard2.0/es/Microsoft.VisualStudio.TraceDataCollector.resources.dll",
+ "build/netstandard2.0/fr/Microsoft.VisualStudio.TraceDataCollector.resources.dll",
+ "build/netstandard2.0/it/Microsoft.VisualStudio.TraceDataCollector.resources.dll",
+ "build/netstandard2.0/ja/Microsoft.VisualStudio.TraceDataCollector.resources.dll",
+ "build/netstandard2.0/ko/Microsoft.VisualStudio.TraceDataCollector.resources.dll",
+ "build/netstandard2.0/pl/Microsoft.VisualStudio.TraceDataCollector.resources.dll",
+ "build/netstandard2.0/pt-BR/Microsoft.VisualStudio.TraceDataCollector.resources.dll",
+ "build/netstandard2.0/ru/Microsoft.VisualStudio.TraceDataCollector.resources.dll",
+ "build/netstandard2.0/tr/Microsoft.VisualStudio.TraceDataCollector.resources.dll",
+ "build/netstandard2.0/zh-Hans/Microsoft.VisualStudio.TraceDataCollector.resources.dll",
+ "build/netstandard2.0/zh-Hant/Microsoft.VisualStudio.TraceDataCollector.resources.dll",
+ "lib/net462/Microsoft.VisualStudio.CodeCoverage.Shim.dll",
+ "lib/netcoreapp3.1/Microsoft.VisualStudio.CodeCoverage.Shim.dll",
+ "microsoft.codecoverage.17.8.0.nupkg.sha512",
+ "microsoft.codecoverage.nuspec"
+ ]
+ },
+ "Microsoft.CSharp/4.7.0": {
+ "sha512": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==",
+ "type": "package",
+ "path": "microsoft.csharp/4.7.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/netcore50/Microsoft.CSharp.dll",
+ "lib/netcoreapp2.0/_._",
+ "lib/netstandard1.3/Microsoft.CSharp.dll",
+ "lib/netstandard2.0/Microsoft.CSharp.dll",
+ "lib/netstandard2.0/Microsoft.CSharp.xml",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/uap10.0.16299/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "microsoft.csharp.4.7.0.nupkg.sha512",
+ "microsoft.csharp.nuspec",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/Microsoft.CSharp.dll",
+ "ref/netcore50/Microsoft.CSharp.xml",
+ "ref/netcore50/de/Microsoft.CSharp.xml",
+ "ref/netcore50/es/Microsoft.CSharp.xml",
+ "ref/netcore50/fr/Microsoft.CSharp.xml",
+ "ref/netcore50/it/Microsoft.CSharp.xml",
+ "ref/netcore50/ja/Microsoft.CSharp.xml",
+ "ref/netcore50/ko/Microsoft.CSharp.xml",
+ "ref/netcore50/ru/Microsoft.CSharp.xml",
+ "ref/netcore50/zh-hans/Microsoft.CSharp.xml",
+ "ref/netcore50/zh-hant/Microsoft.CSharp.xml",
+ "ref/netcoreapp2.0/_._",
+ "ref/netstandard1.0/Microsoft.CSharp.dll",
+ "ref/netstandard1.0/Microsoft.CSharp.xml",
+ "ref/netstandard1.0/de/Microsoft.CSharp.xml",
+ "ref/netstandard1.0/es/Microsoft.CSharp.xml",
+ "ref/netstandard1.0/fr/Microsoft.CSharp.xml",
+ "ref/netstandard1.0/it/Microsoft.CSharp.xml",
+ "ref/netstandard1.0/ja/Microsoft.CSharp.xml",
+ "ref/netstandard1.0/ko/Microsoft.CSharp.xml",
+ "ref/netstandard1.0/ru/Microsoft.CSharp.xml",
+ "ref/netstandard1.0/zh-hans/Microsoft.CSharp.xml",
+ "ref/netstandard1.0/zh-hant/Microsoft.CSharp.xml",
+ "ref/netstandard2.0/Microsoft.CSharp.dll",
+ "ref/netstandard2.0/Microsoft.CSharp.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/uap10.0.16299/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "Microsoft.NET.Test.Sdk/17.8.0": {
+ "sha512": "BmTYGbD/YuDHmApIENdoyN1jCk0Rj1fJB0+B/fVekyTdVidr91IlzhqzytiUgaEAzL1ZJcYCme0MeBMYvJVzvw==",
+ "type": "package",
+ "path": "microsoft.net.test.sdk/17.8.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "LICENSE_MIT.txt",
+ "build/net462/Microsoft.NET.Test.Sdk.props",
+ "build/net462/Microsoft.NET.Test.Sdk.targets",
+ "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.Program.cs",
+ "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.Program.fs",
+ "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.Program.vb",
+ "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.props",
+ "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.targets",
+ "buildMultiTargeting/Microsoft.NET.Test.Sdk.props",
+ "lib/net462/_._",
+ "lib/netcoreapp3.1/_._",
+ "microsoft.net.test.sdk.17.8.0.nupkg.sha512",
+ "microsoft.net.test.sdk.nuspec"
+ ]
+ },
+ "Microsoft.NETCore.Platforms/2.1.2": {
+ "sha512": "mOJy3M0UN+LUG21dLGMxaWZEP6xYpQEpLuvuEQBaownaX4YuhH6NmNUlN9si+vNkAS6dwJ//N1O4DmLf2CikVg==",
+ "type": "package",
+ "path": "microsoft.netcore.platforms/2.1.2",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/netstandard1.0/_._",
+ "microsoft.netcore.platforms.2.1.2.nupkg.sha512",
+ "microsoft.netcore.platforms.nuspec",
+ "runtime.json",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "Microsoft.NETCore.Targets/1.1.0": {
+ "sha512": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==",
+ "type": "package",
+ "path": "microsoft.netcore.targets/1.1.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/netstandard1.0/_._",
+ "microsoft.netcore.targets.1.1.0.nupkg.sha512",
+ "microsoft.netcore.targets.nuspec",
+ "runtime.json"
+ ]
+ },
+ "Microsoft.TestPlatform.ObjectModel/17.8.0": {
+ "sha512": "AYy6vlpGMfz5kOFq99L93RGbqftW/8eQTqjT9iGXW6s9MRP3UdtY8idJ8rJcjeSja8A18IhIro5YnH3uv1nz4g==",
+ "type": "package",
+ "path": "microsoft.testplatform.objectmodel/17.8.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "LICENSE_MIT.txt",
+ "lib/net462/Microsoft.TestPlatform.CoreUtilities.dll",
+ "lib/net462/Microsoft.TestPlatform.PlatformAbstractions.dll",
+ "lib/net462/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll",
+ "lib/net462/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/net462/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/net462/de/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/net462/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/net462/es/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/net462/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/net462/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/net462/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/net462/it/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/net462/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/net462/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/net462/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/net462/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/net462/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/net462/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/net462/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/net462/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/net462/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/net462/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/net462/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/net462/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/net462/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/net462/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/net462/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/net462/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/net462/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll",
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll",
+ "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll",
+ "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netstandard2.0/Microsoft.TestPlatform.CoreUtilities.dll",
+ "lib/netstandard2.0/Microsoft.TestPlatform.PlatformAbstractions.dll",
+ "lib/netstandard2.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll",
+ "lib/netstandard2.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netstandard2.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netstandard2.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netstandard2.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netstandard2.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netstandard2.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netstandard2.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netstandard2.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netstandard2.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netstandard2.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netstandard2.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netstandard2.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netstandard2.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netstandard2.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netstandard2.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netstandard2.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netstandard2.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netstandard2.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netstandard2.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netstandard2.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netstandard2.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netstandard2.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netstandard2.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netstandard2.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "lib/netstandard2.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "lib/netstandard2.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "microsoft.testplatform.objectmodel.17.8.0.nupkg.sha512",
+ "microsoft.testplatform.objectmodel.nuspec"
+ ]
+ },
+ "Microsoft.TestPlatform.TestHost/17.8.0": {
+ "sha512": "9ivcl/7SGRmOT0YYrHQGohWiT5YCpkmy/UEzldfVisLm6QxbLaK3FAJqZXI34rnRLmqqDCeMQxKINwmKwAPiDw==",
+ "type": "package",
+ "path": "microsoft.testplatform.testhost/17.8.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "LICENSE_MIT.txt",
+ "ThirdPartyNotices.txt",
+ "build/netcoreapp3.1/Microsoft.TestPlatform.TestHost.props",
+ "build/netcoreapp3.1/x64/testhost.dll",
+ "build/netcoreapp3.1/x64/testhost.exe",
+ "build/netcoreapp3.1/x86/testhost.x86.dll",
+ "build/netcoreapp3.1/x86/testhost.x86.exe",
+ "lib/net462/_._",
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.CommunicationUtilities.dll",
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll",
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.CrossPlatEngine.dll",
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll",
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.Utilities.dll",
+ "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.Common.dll",
+ "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll",
+ "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll",
+ "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll",
+ "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll",
+ "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll",
+ "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll",
+ "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll",
+ "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll",
+ "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll",
+ "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll",
+ "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll",
+ "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll",
+ "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll",
+ "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll",
+ "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll",
+ "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll",
+ "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll",
+ "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll",
+ "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll",
+ "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll",
+ "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll",
+ "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll",
+ "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll",
+ "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll",
+ "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll",
+ "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll",
+ "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll",
+ "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll",
+ "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll",
+ "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll",
+ "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll",
+ "lib/netcoreapp3.1/testhost.deps.json",
+ "lib/netcoreapp3.1/testhost.dll",
+ "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll",
+ "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll",
+ "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll",
+ "lib/netcoreapp3.1/x64/msdia140.dll",
+ "lib/netcoreapp3.1/x86/msdia140.dll",
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll",
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll",
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll",
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll",
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll",
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll",
+ "microsoft.testplatform.testhost.17.8.0.nupkg.sha512",
+ "microsoft.testplatform.testhost.nuspec"
+ ]
+ },
+ "Microsoft.VisualStudio.Composition/16.1.8": {
+ "sha512": "N+thv3dcT7kjn0Xz3U0uBm2CH4uoaMvH8wC6Gy2HWx7HLNdEpqGoMraLyoBdizmypD1owLCJQIa2uKmWe4/o8A==",
+ "type": "package",
+ "path": "microsoft.visualstudio.composition/16.1.8",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "lib/net45/Microsoft.VisualStudio.Composition.dll",
+ "lib/net45/Microsoft.VisualStudio.Composition.pdb",
+ "lib/net45/Microsoft.VisualStudio.Composition.xml",
+ "lib/net45/cs/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net45/de/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net45/es/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net45/fr/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net45/it/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net45/ja/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net45/ko/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net45/pl/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net45/pt-BR/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net45/ru/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net45/tr/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net45/zh-Hans/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net45/zh-Hant/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net46/Microsoft.VisualStudio.Composition.dll",
+ "lib/net46/Microsoft.VisualStudio.Composition.pdb",
+ "lib/net46/Microsoft.VisualStudio.Composition.xml",
+ "lib/net46/cs/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net46/de/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net46/es/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net46/fr/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net46/it/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net46/ja/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net46/ko/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net46/pl/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net46/pt-BR/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net46/ru/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net46/tr/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net46/zh-Hans/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/net46/zh-Hant/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp1.0/Microsoft.VisualStudio.Composition.dll",
+ "lib/netcoreapp1.0/Microsoft.VisualStudio.Composition.pdb",
+ "lib/netcoreapp1.0/Microsoft.VisualStudio.Composition.xml",
+ "lib/netcoreapp1.0/cs/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp1.0/de/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp1.0/es/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp1.0/fr/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp1.0/it/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp1.0/ja/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp1.0/ko/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp1.0/pl/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp1.0/pt-BR/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp1.0/ru/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp1.0/tr/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp1.0/zh-Hans/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp1.0/zh-Hant/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp2.0/Microsoft.VisualStudio.Composition.dll",
+ "lib/netcoreapp2.0/Microsoft.VisualStudio.Composition.pdb",
+ "lib/netcoreapp2.0/Microsoft.VisualStudio.Composition.xml",
+ "lib/netcoreapp2.0/cs/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp2.0/de/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp2.0/es/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp2.0/fr/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp2.0/it/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp2.0/ja/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp2.0/ko/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp2.0/pl/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp2.0/pt-BR/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp2.0/ru/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp2.0/tr/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp2.0/zh-Hans/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netcoreapp2.0/zh-Hant/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard1.5/Microsoft.VisualStudio.Composition.dll",
+ "lib/netstandard1.5/Microsoft.VisualStudio.Composition.pdb",
+ "lib/netstandard1.5/Microsoft.VisualStudio.Composition.xml",
+ "lib/netstandard1.5/cs/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard1.5/de/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard1.5/es/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard1.5/fr/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard1.5/it/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard1.5/ja/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard1.5/ko/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard1.5/pl/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard1.5/pt-BR/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard1.5/ru/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard1.5/tr/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard1.5/zh-Hans/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard1.5/zh-Hant/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard2.0/Microsoft.VisualStudio.Composition.dll",
+ "lib/netstandard2.0/Microsoft.VisualStudio.Composition.pdb",
+ "lib/netstandard2.0/Microsoft.VisualStudio.Composition.xml",
+ "lib/netstandard2.0/cs/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard2.0/de/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard2.0/es/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard2.0/fr/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard2.0/it/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard2.0/ja/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard2.0/ko/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard2.0/pl/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard2.0/pt-BR/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard2.0/ru/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard2.0/tr/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard2.0/zh-Hans/Microsoft.VisualStudio.Composition.resources.dll",
+ "lib/netstandard2.0/zh-Hant/Microsoft.VisualStudio.Composition.resources.dll",
+ "microsoft.visualstudio.composition.16.1.8.nupkg.sha512",
+ "microsoft.visualstudio.composition.nuspec"
+ ]
+ },
+ "Microsoft.VisualStudio.Composition.NetFxAttributes/16.1.8": {
+ "sha512": "EbwZWTvdzit68qZSuTI8nd1PZ87pYjhpCwtsis8lrUKJ7XLdbE5rxY6YrY7OFze+YUsguzqZlNjX4Yn5nL9qBw==",
+ "type": "package",
+ "path": "microsoft.visualstudio.composition.netfxattributes/16.1.8",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "lib/net40/Microsoft.VisualStudio.Composition.NetFxAttributes.dll",
+ "lib/net40/Microsoft.VisualStudio.Composition.NetFxAttributes.pdb",
+ "lib/net40/Microsoft.VisualStudio.Composition.NetFxAttributes.xml",
+ "lib/net45/Microsoft.VisualStudio.Composition.NetFxAttributes.dll",
+ "lib/net45/Microsoft.VisualStudio.Composition.NetFxAttributes.pdb",
+ "lib/net45/Microsoft.VisualStudio.Composition.NetFxAttributes.xml",
+ "lib/netstandard1.0/Microsoft.VisualStudio.Composition.NetFxAttributes.dll",
+ "lib/netstandard1.0/Microsoft.VisualStudio.Composition.NetFxAttributes.pdb",
+ "lib/netstandard1.0/Microsoft.VisualStudio.Composition.NetFxAttributes.xml",
+ "lib/netstandard2.0/Microsoft.VisualStudio.Composition.NetFxAttributes.dll",
+ "lib/netstandard2.0/Microsoft.VisualStudio.Composition.NetFxAttributes.pdb",
+ "lib/netstandard2.0/Microsoft.VisualStudio.Composition.NetFxAttributes.xml",
+ "microsoft.visualstudio.composition.netfxattributes.16.1.8.nupkg.sha512",
+ "microsoft.visualstudio.composition.netfxattributes.nuspec"
+ ]
+ },
+ "Microsoft.VisualStudio.Validation/15.0.82": {
+ "sha512": "XwZyVCsHuEtnd6nYScJnA8XkXPzy4Ok0DV5/hqqAe5ccgOhJ6yap7Qh/sU/i6QxEzuYyECPYDQ7IOyEQ3yRQgQ==",
+ "type": "package",
+ "path": "microsoft.visualstudio.validation/15.0.82",
+ "hasTools": true,
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "README.txt",
+ "lib/dotnet/Microsoft.VisualStudio.Validation.dll",
+ "lib/dotnet/Microsoft.VisualStudio.Validation.xml",
+ "lib/dotnet/cs/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/dotnet/de/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/dotnet/es/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/dotnet/fr/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/dotnet/it/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/dotnet/ja/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/dotnet/ko/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/dotnet/pl/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/dotnet/pt-BR/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/dotnet/ru/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/dotnet/tr/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/dotnet/zh-Hans/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/dotnet/zh-Hant/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/net45/Microsoft.VisualStudio.Validation.dll",
+ "lib/net45/Microsoft.VisualStudio.Validation.xml",
+ "lib/net45/cs/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/net45/de/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/net45/es/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/net45/fr/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/net45/it/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/net45/ja/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/net45/ko/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/net45/pl/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/net45/pt-BR/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/net45/ru/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/net45/tr/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/net45/zh-Hans/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/net45/zh-Hant/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/netstandard1.0/Microsoft.VisualStudio.Validation.dll",
+ "lib/netstandard1.0/Microsoft.VisualStudio.Validation.xml",
+ "lib/netstandard1.0/cs/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/netstandard1.0/de/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/netstandard1.0/es/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/netstandard1.0/fr/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/netstandard1.0/it/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/netstandard1.0/ja/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/netstandard1.0/ko/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/netstandard1.0/pl/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/netstandard1.0/pt-BR/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/netstandard1.0/ru/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/netstandard1.0/tr/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/netstandard1.0/zh-Hans/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/netstandard1.0/zh-Hant/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10/Microsoft.VisualStudio.Validation.dll",
+ "lib/portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10/Microsoft.VisualStudio.Validation.xml",
+ "lib/portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10/cs/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10/de/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10/es/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10/fr/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10/it/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10/ja/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10/ko/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10/pl/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10/pt-BR/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10/ru/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10/tr/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10/zh-Hans/Microsoft.VisualStudio.Validation.resources.dll",
+ "lib/portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10/zh-Hant/Microsoft.VisualStudio.Validation.resources.dll",
+ "microsoft.visualstudio.validation.15.0.82.nupkg.sha512",
+ "microsoft.visualstudio.validation.nuspec",
+ "tools/2013/RequiresNotNull.snippet",
+ "tools/2013/RequiresNotNullOrEmpty.snippet",
+ "tools/2015/RequiresNotNull.snippet",
+ "tools/2015/RequiresNotNullOrEmpty.snippet",
+ "tools/install-snippets.cmd",
+ "tools/uninstall-snippets.cmd"
+ ]
+ },
+ "Microsoft.Win32.Primitives/4.3.0": {
+ "sha512": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "type": "package",
+ "path": "microsoft.win32.primitives/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/Microsoft.Win32.Primitives.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "microsoft.win32.primitives.4.3.0.nupkg.sha512",
+ "microsoft.win32.primitives.nuspec",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/Microsoft.Win32.Primitives.dll",
+ "ref/netstandard1.3/Microsoft.Win32.Primitives.dll",
+ "ref/netstandard1.3/Microsoft.Win32.Primitives.xml",
+ "ref/netstandard1.3/de/Microsoft.Win32.Primitives.xml",
+ "ref/netstandard1.3/es/Microsoft.Win32.Primitives.xml",
+ "ref/netstandard1.3/fr/Microsoft.Win32.Primitives.xml",
+ "ref/netstandard1.3/it/Microsoft.Win32.Primitives.xml",
+ "ref/netstandard1.3/ja/Microsoft.Win32.Primitives.xml",
+ "ref/netstandard1.3/ko/Microsoft.Win32.Primitives.xml",
+ "ref/netstandard1.3/ru/Microsoft.Win32.Primitives.xml",
+ "ref/netstandard1.3/zh-hans/Microsoft.Win32.Primitives.xml",
+ "ref/netstandard1.3/zh-hant/Microsoft.Win32.Primitives.xml",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._"
+ ]
+ },
+ "MSTest.TestAdapter/3.1.1": {
+ "sha512": "kMvdO5dhrUR3o1qk0fzS0St0prlKyMQAfz1ChVAUdGGobTU5ehR60szOFto0+Q7rFG5iXMvTlVIthXM9EcNYnw==",
+ "type": "package",
+ "path": "mstest.testadapter/3.1.1",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "build/_localization/cs/Microsoft.TestPlatform.AdapterUtilities.resources.dll",
+ "build/_localization/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "build/_localization/cs/Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.resources.dll",
+ "build/_localization/cs/Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.resources.dll",
+ "build/_localization/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "build/_localization/cs/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "build/_localization/de/Microsoft.TestPlatform.AdapterUtilities.resources.dll",
+ "build/_localization/de/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "build/_localization/de/Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.resources.dll",
+ "build/_localization/de/Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.resources.dll",
+ "build/_localization/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "build/_localization/de/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "build/_localization/es/Microsoft.TestPlatform.AdapterUtilities.resources.dll",
+ "build/_localization/es/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "build/_localization/es/Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.resources.dll",
+ "build/_localization/es/Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.resources.dll",
+ "build/_localization/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "build/_localization/es/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "build/_localization/fr/Microsoft.TestPlatform.AdapterUtilities.resources.dll",
+ "build/_localization/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "build/_localization/fr/Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.resources.dll",
+ "build/_localization/fr/Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.resources.dll",
+ "build/_localization/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "build/_localization/fr/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "build/_localization/it/Microsoft.TestPlatform.AdapterUtilities.resources.dll",
+ "build/_localization/it/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "build/_localization/it/Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.resources.dll",
+ "build/_localization/it/Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.resources.dll",
+ "build/_localization/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "build/_localization/it/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "build/_localization/ja/Microsoft.TestPlatform.AdapterUtilities.resources.dll",
+ "build/_localization/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "build/_localization/ja/Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.resources.dll",
+ "build/_localization/ja/Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.resources.dll",
+ "build/_localization/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "build/_localization/ja/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "build/_localization/ko/Microsoft.TestPlatform.AdapterUtilities.resources.dll",
+ "build/_localization/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "build/_localization/ko/Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.resources.dll",
+ "build/_localization/ko/Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.resources.dll",
+ "build/_localization/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "build/_localization/ko/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "build/_localization/pl/Microsoft.TestPlatform.AdapterUtilities.resources.dll",
+ "build/_localization/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "build/_localization/pl/Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.resources.dll",
+ "build/_localization/pl/Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.resources.dll",
+ "build/_localization/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "build/_localization/pl/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "build/_localization/pt-BR/Microsoft.TestPlatform.AdapterUtilities.resources.dll",
+ "build/_localization/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "build/_localization/pt-BR/Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.resources.dll",
+ "build/_localization/pt-BR/Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.resources.dll",
+ "build/_localization/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "build/_localization/pt-BR/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "build/_localization/ru/Microsoft.TestPlatform.AdapterUtilities.resources.dll",
+ "build/_localization/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "build/_localization/ru/Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.resources.dll",
+ "build/_localization/ru/Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.resources.dll",
+ "build/_localization/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "build/_localization/ru/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "build/_localization/tr/Microsoft.TestPlatform.AdapterUtilities.resources.dll",
+ "build/_localization/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "build/_localization/tr/Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.resources.dll",
+ "build/_localization/tr/Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.resources.dll",
+ "build/_localization/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "build/_localization/tr/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "build/_localization/zh-Hans/Microsoft.TestPlatform.AdapterUtilities.resources.dll",
+ "build/_localization/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "build/_localization/zh-Hans/Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.resources.dll",
+ "build/_localization/zh-Hans/Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.resources.dll",
+ "build/_localization/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "build/_localization/zh-Hans/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "build/_localization/zh-Hant/Microsoft.TestPlatform.AdapterUtilities.resources.dll",
+ "build/_localization/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll",
+ "build/_localization/zh-Hant/Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.resources.dll",
+ "build/_localization/zh-Hant/Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.resources.dll",
+ "build/_localization/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll",
+ "build/_localization/zh-Hant/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "build/net462/MSTest.TestAdapter.props",
+ "build/net462/MSTest.TestAdapter.targets",
+ "build/net462/Microsoft.TestPlatform.AdapterUtilities.dll",
+ "build/net462/Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll",
+ "build/net462/Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.dll",
+ "build/net462/Microsoft.VisualStudio.TestPlatform.TestFramework.dll",
+ "build/net6.0/MSTest.TestAdapter.props",
+ "build/net6.0/MSTest.TestAdapter.targets",
+ "build/net6.0/Microsoft.TestPlatform.AdapterUtilities.dll",
+ "build/net6.0/Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll",
+ "build/net6.0/Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.dll",
+ "build/net6.0/Microsoft.VisualStudio.TestPlatform.TestFramework.dll",
+ "build/net6.0/winui/Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.dll",
+ "build/netcoreapp3.1/MSTest.TestAdapter.props",
+ "build/netcoreapp3.1/Microsoft.TestPlatform.AdapterUtilities.dll",
+ "build/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll",
+ "build/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.dll",
+ "build/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.TestFramework.dll",
+ "build/netstandard2.0/MSTest.TestAdapter.props",
+ "build/netstandard2.0/Microsoft.TestPlatform.AdapterUtilities.dll",
+ "build/netstandard2.0/Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll",
+ "build/netstandard2.0/Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.dll",
+ "build/netstandard2.0/Microsoft.VisualStudio.TestPlatform.TestFramework.dll",
+ "build/uap10.0/MSTest.TestAdapter.props",
+ "build/uap10.0/MSTest.TestAdapter.targets",
+ "build/uap10.0/Microsoft.TestPlatform.AdapterUtilities.dll",
+ "build/uap10.0/Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll",
+ "build/uap10.0/Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.dll",
+ "build/uap10.0/Microsoft.VisualStudio.TestPlatform.TestFramework.dll",
+ "mstest.testadapter.3.1.1.nupkg.sha512",
+ "mstest.testadapter.nuspec"
+ ]
+ },
+ "MSTest.TestFramework/3.1.1": {
+ "sha512": "3rjkGxciNHHmPW8cl1/QVIYjOpfptjmAH5JrLBw+dnMTYDoweg3I579N7OIbar3Zd3q9dfWFrCy2LEV/AmPn3A==",
+ "type": "package",
+ "path": "mstest.testframework/3.1.1",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "build/net6.0/MSTest.TestFramework.targets",
+ "build/net6.0/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll",
+ "build/net6.0/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml",
+ "build/net6.0/winui/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll",
+ "build/net6.0/winui/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml",
+ "lib/net462/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll",
+ "lib/net462/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml",
+ "lib/net462/Microsoft.VisualStudio.TestPlatform.TestFramework.dll",
+ "lib/net462/Microsoft.VisualStudio.TestPlatform.TestFramework.xml",
+ "lib/net462/cs/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net462/de/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net462/es/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net462/fr/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net462/it/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net462/ja/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net462/ko/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net462/pl/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net462/pt-BR/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net462/ru/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net462/tr/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net462/zh-Hans/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net462/zh-Hant/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net6.0/Microsoft.VisualStudio.TestPlatform.TestFramework.dll",
+ "lib/net6.0/Microsoft.VisualStudio.TestPlatform.TestFramework.xml",
+ "lib/net6.0/cs/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net6.0/de/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net6.0/es/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net6.0/fr/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net6.0/it/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net6.0/ja/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net6.0/ko/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net6.0/pl/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net6.0/pt-BR/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net6.0/ru/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net6.0/tr/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net6.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/net6.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll",
+ "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml",
+ "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.TestFramework.dll",
+ "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.TestFramework.xml",
+ "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netstandard2.0/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll",
+ "lib/netstandard2.0/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml",
+ "lib/netstandard2.0/Microsoft.VisualStudio.TestPlatform.TestFramework.dll",
+ "lib/netstandard2.0/Microsoft.VisualStudio.TestPlatform.TestFramework.xml",
+ "lib/netstandard2.0/cs/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netstandard2.0/de/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netstandard2.0/es/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netstandard2.0/fr/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netstandard2.0/it/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netstandard2.0/ja/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netstandard2.0/ko/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netstandard2.0/pl/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netstandard2.0/pt-BR/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netstandard2.0/ru/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netstandard2.0/tr/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netstandard2.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/netstandard2.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/uap10.0/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll",
+ "lib/uap10.0/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml",
+ "lib/uap10.0/Microsoft.VisualStudio.TestPlatform.TestFramework.dll",
+ "lib/uap10.0/Microsoft.VisualStudio.TestPlatform.TestFramework.xml",
+ "lib/uap10.0/cs/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/uap10.0/de/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/uap10.0/es/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/uap10.0/fr/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/uap10.0/it/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/uap10.0/ja/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/uap10.0/ko/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/uap10.0/pl/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/uap10.0/pt-BR/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/uap10.0/ru/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/uap10.0/tr/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/uap10.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "lib/uap10.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",
+ "mstest.testframework.3.1.1.nupkg.sha512",
+ "mstest.testframework.nuspec"
+ ]
+ },
+ "NETStandard.Library/1.6.1": {
+ "sha512": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==",
+ "type": "package",
+ "path": "netstandard.library/1.6.1",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "netstandard.library.1.6.1.nupkg.sha512",
+ "netstandard.library.nuspec"
+ ]
+ },
+ "Newtonsoft.Json/13.0.1": {
+ "sha512": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==",
+ "type": "package",
+ "path": "newtonsoft.json/13.0.1",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "LICENSE.md",
+ "lib/net20/Newtonsoft.Json.dll",
+ "lib/net20/Newtonsoft.Json.xml",
+ "lib/net35/Newtonsoft.Json.dll",
+ "lib/net35/Newtonsoft.Json.xml",
+ "lib/net40/Newtonsoft.Json.dll",
+ "lib/net40/Newtonsoft.Json.xml",
+ "lib/net45/Newtonsoft.Json.dll",
+ "lib/net45/Newtonsoft.Json.xml",
+ "lib/netstandard1.0/Newtonsoft.Json.dll",
+ "lib/netstandard1.0/Newtonsoft.Json.xml",
+ "lib/netstandard1.3/Newtonsoft.Json.dll",
+ "lib/netstandard1.3/Newtonsoft.Json.xml",
+ "lib/netstandard2.0/Newtonsoft.Json.dll",
+ "lib/netstandard2.0/Newtonsoft.Json.xml",
+ "newtonsoft.json.13.0.1.nupkg.sha512",
+ "newtonsoft.json.nuspec",
+ "packageIcon.png"
+ ]
+ },
+ "NuGet.Common/6.3.4": {
+ "sha512": "wKuTiB3RBjbvzB/BhW8+Cu+TTPsABJr91I2Guu/FuM0SXtYRIM26v1NJdwm5rLw59CqB7bamqpWpJKU8bLAdwQ==",
+ "type": "package",
+ "path": "nuget.common/6.3.4",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "README.md",
+ "icon.png",
+ "lib/net472/NuGet.Common.dll",
+ "lib/net472/NuGet.Common.xml",
+ "lib/netstandard2.0/NuGet.Common.dll",
+ "lib/netstandard2.0/NuGet.Common.xml",
+ "nuget.common.6.3.4.nupkg.sha512",
+ "nuget.common.nuspec"
+ ]
+ },
+ "NuGet.Configuration/6.3.4": {
+ "sha512": "b+/g6sdnR2128KLn+6qO1MrB8j0goO4kYCFly2RDi/BsLilK+MzKJRHWGYqfMn/YnLmMrgNNJ2sSr4GX7rMEQw==",
+ "type": "package",
+ "path": "nuget.configuration/6.3.4",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "README.md",
+ "icon.png",
+ "lib/net472/NuGet.Configuration.dll",
+ "lib/net472/NuGet.Configuration.xml",
+ "lib/netstandard2.0/NuGet.Configuration.dll",
+ "lib/netstandard2.0/NuGet.Configuration.xml",
+ "nuget.configuration.6.3.4.nupkg.sha512",
+ "nuget.configuration.nuspec"
+ ]
+ },
+ "NuGet.Frameworks/6.5.0": {
+ "sha512": "QWINE2x3MbTODsWT1Gh71GaGb5icBz4chS8VYvTgsBnsi8esgN6wtHhydd7fvToWECYGq7T4cgBBDiKD/363fg==",
+ "type": "package",
+ "path": "nuget.frameworks/6.5.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "README.md",
+ "icon.png",
+ "lib/net472/NuGet.Frameworks.dll",
+ "lib/netstandard2.0/NuGet.Frameworks.dll",
+ "nuget.frameworks.6.5.0.nupkg.sha512",
+ "nuget.frameworks.nuspec"
+ ]
+ },
+ "NuGet.Packaging/6.3.4": {
+ "sha512": "0HtJXNCes0443jKeFErjhYxJ08BjyoDrIvw/uWyonoTBQ3B//+H2nztviSUyv0+ydfgKyhwshAjsr0efUT8PRA==",
+ "type": "package",
+ "path": "nuget.packaging/6.3.4",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "README.md",
+ "icon.png",
+ "lib/net472/NuGet.Packaging.dll",
+ "lib/net472/NuGet.Packaging.xml",
+ "lib/net5.0/NuGet.Packaging.dll",
+ "lib/net5.0/NuGet.Packaging.xml",
+ "lib/netstandard2.0/NuGet.Packaging.dll",
+ "lib/netstandard2.0/NuGet.Packaging.xml",
+ "nuget.packaging.6.3.4.nupkg.sha512",
+ "nuget.packaging.nuspec"
+ ]
+ },
+ "NuGet.Protocol/6.3.4": {
+ "sha512": "Gmvnz7RoN6UG3POw0F4t9mWM4sIdmHiuutvR9c2pLCJCUiYBN8QvbO/ZvkOuQNNM/aGdYExx/Tm84Zx9iVjOSA==",
+ "type": "package",
+ "path": "nuget.protocol/6.3.4",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "README.md",
+ "icon.png",
+ "lib/net472/NuGet.Protocol.dll",
+ "lib/net472/NuGet.Protocol.xml",
+ "lib/net5.0/NuGet.Protocol.dll",
+ "lib/net5.0/NuGet.Protocol.xml",
+ "lib/netstandard2.0/NuGet.Protocol.dll",
+ "lib/netstandard2.0/NuGet.Protocol.xml",
+ "nuget.protocol.6.3.4.nupkg.sha512",
+ "nuget.protocol.nuspec"
+ ]
+ },
+ "NuGet.Resolver/6.3.4": {
+ "sha512": "cO/QqtGqCIUf/e6EncIQ/ORJDco9UOtxooDL0IZhf18x1l0xFJ/nrcLCyAjZeznE9RAIqaNv1+YFobht4u0Lsw==",
+ "type": "package",
+ "path": "nuget.resolver/6.3.4",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "README.md",
+ "icon.png",
+ "lib/net472/NuGet.Resolver.dll",
+ "lib/net472/NuGet.Resolver.xml",
+ "lib/net5.0/NuGet.Resolver.dll",
+ "lib/net5.0/NuGet.Resolver.xml",
+ "lib/netstandard2.0/NuGet.Resolver.dll",
+ "lib/netstandard2.0/NuGet.Resolver.xml",
+ "nuget.resolver.6.3.4.nupkg.sha512",
+ "nuget.resolver.nuspec"
+ ]
+ },
+ "NuGet.Versioning/6.3.4": {
+ "sha512": "mQW9bwsWJq30lacl33MMVLBlrit5ClNEpGzKryIuLfP1UTL6feQK1yzA/5IQXdtjXvUEoI5bo1Axjen5lOm7Bg==",
+ "type": "package",
+ "path": "nuget.versioning/6.3.4",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "README.md",
+ "icon.png",
+ "lib/net472/NuGet.Versioning.dll",
+ "lib/net472/NuGet.Versioning.xml",
+ "lib/netstandard2.0/NuGet.Versioning.dll",
+ "lib/netstandard2.0/NuGet.Versioning.xml",
+ "nuget.versioning.6.3.4.nupkg.sha512",
+ "nuget.versioning.nuspec"
+ ]
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "sha512": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==",
+ "type": "package",
+ "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.nuspec",
+ "runtimes/debian.8-x64/native/System.Security.Cryptography.Native.OpenSsl.so"
+ ]
+ },
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "sha512": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA==",
+ "type": "package",
+ "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.nuspec",
+ "runtimes/fedora.23-x64/native/System.Security.Cryptography.Native.OpenSsl.so"
+ ]
+ },
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "sha512": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw==",
+ "type": "package",
+ "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.nuspec",
+ "runtimes/fedora.24-x64/native/System.Security.Cryptography.Native.OpenSsl.so"
+ ]
+ },
+ "runtime.native.System/4.3.0": {
+ "sha512": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
+ "type": "package",
+ "path": "runtime.native.system/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/netstandard1.0/_._",
+ "runtime.native.system.4.3.0.nupkg.sha512",
+ "runtime.native.system.nuspec"
+ ]
+ },
+ "runtime.native.System.IO.Compression/4.3.0": {
+ "sha512": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==",
+ "type": "package",
+ "path": "runtime.native.system.io.compression/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/netstandard1.0/_._",
+ "runtime.native.system.io.compression.4.3.0.nupkg.sha512",
+ "runtime.native.system.io.compression.nuspec"
+ ]
+ },
+ "runtime.native.System.Net.Http/4.3.0": {
+ "sha512": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==",
+ "type": "package",
+ "path": "runtime.native.system.net.http/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/netstandard1.0/_._",
+ "runtime.native.system.net.http.4.3.0.nupkg.sha512",
+ "runtime.native.system.net.http.nuspec"
+ ]
+ },
+ "runtime.native.System.Security.Cryptography.Apple/4.3.0": {
+ "sha512": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==",
+ "type": "package",
+ "path": "runtime.native.system.security.cryptography.apple/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/netstandard1.0/_._",
+ "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512",
+ "runtime.native.system.security.cryptography.apple.nuspec"
+ ]
+ },
+ "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "sha512": "NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==",
+ "type": "package",
+ "path": "runtime.native.system.security.cryptography.openssl/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/netstandard1.0/_._",
+ "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "runtime.native.system.security.cryptography.openssl.nuspec"
+ ]
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "sha512": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A==",
+ "type": "package",
+ "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.nuspec",
+ "runtimes/opensuse.13.2-x64/native/System.Security.Cryptography.Native.OpenSsl.so"
+ ]
+ },
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "sha512": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ==",
+ "type": "package",
+ "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.nuspec",
+ "runtimes/opensuse.42.1-x64/native/System.Security.Cryptography.Native.OpenSsl.so"
+ ]
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {
+ "sha512": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==",
+ "type": "package",
+ "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512",
+ "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.nuspec",
+ "runtimes/osx.10.10-x64/native/System.Security.Cryptography.Native.Apple.dylib"
+ ]
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "sha512": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g==",
+ "type": "package",
+ "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.nuspec",
+ "runtimes/osx.10.10-x64/native/System.Security.Cryptography.Native.OpenSsl.dylib"
+ ]
+ },
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "sha512": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg==",
+ "type": "package",
+ "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.nuspec",
+ "runtimes/rhel.7-x64/native/System.Security.Cryptography.Native.OpenSsl.so"
+ ]
+ },
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "sha512": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ==",
+ "type": "package",
+ "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.nuspec",
+ "runtimes/ubuntu.14.04-x64/native/System.Security.Cryptography.Native.OpenSsl.so"
+ ]
+ },
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "sha512": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A==",
+ "type": "package",
+ "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.nuspec",
+ "runtimes/ubuntu.16.04-x64/native/System.Security.Cryptography.Native.OpenSsl.so"
+ ]
+ },
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "sha512": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==",
+ "type": "package",
+ "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.nuspec",
+ "runtimes/ubuntu.16.10-x64/native/System.Security.Cryptography.Native.OpenSsl.so"
+ ]
+ },
+ "System.AppContext/4.3.0": {
+ "sha512": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==",
+ "type": "package",
+ "path": "system.appcontext/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/System.AppContext.dll",
+ "lib/net463/System.AppContext.dll",
+ "lib/netcore50/System.AppContext.dll",
+ "lib/netstandard1.6/System.AppContext.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/System.AppContext.dll",
+ "ref/net463/System.AppContext.dll",
+ "ref/netstandard/_._",
+ "ref/netstandard1.3/System.AppContext.dll",
+ "ref/netstandard1.3/System.AppContext.xml",
+ "ref/netstandard1.3/de/System.AppContext.xml",
+ "ref/netstandard1.3/es/System.AppContext.xml",
+ "ref/netstandard1.3/fr/System.AppContext.xml",
+ "ref/netstandard1.3/it/System.AppContext.xml",
+ "ref/netstandard1.3/ja/System.AppContext.xml",
+ "ref/netstandard1.3/ko/System.AppContext.xml",
+ "ref/netstandard1.3/ru/System.AppContext.xml",
+ "ref/netstandard1.3/zh-hans/System.AppContext.xml",
+ "ref/netstandard1.3/zh-hant/System.AppContext.xml",
+ "ref/netstandard1.6/System.AppContext.dll",
+ "ref/netstandard1.6/System.AppContext.xml",
+ "ref/netstandard1.6/de/System.AppContext.xml",
+ "ref/netstandard1.6/es/System.AppContext.xml",
+ "ref/netstandard1.6/fr/System.AppContext.xml",
+ "ref/netstandard1.6/it/System.AppContext.xml",
+ "ref/netstandard1.6/ja/System.AppContext.xml",
+ "ref/netstandard1.6/ko/System.AppContext.xml",
+ "ref/netstandard1.6/ru/System.AppContext.xml",
+ "ref/netstandard1.6/zh-hans/System.AppContext.xml",
+ "ref/netstandard1.6/zh-hant/System.AppContext.xml",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/aot/lib/netcore50/System.AppContext.dll",
+ "system.appcontext.4.3.0.nupkg.sha512",
+ "system.appcontext.nuspec"
+ ]
+ },
+ "System.Buffers/4.3.0": {
+ "sha512": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+ "type": "package",
+ "path": "system.buffers/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/netstandard1.1/.xml",
+ "lib/netstandard1.1/System.Buffers.dll",
+ "system.buffers.4.3.0.nupkg.sha512",
+ "system.buffers.nuspec"
+ ]
+ },
+ "System.Collections/4.3.0": {
+ "sha512": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "type": "package",
+ "path": "system.collections/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Collections.dll",
+ "ref/netcore50/System.Collections.xml",
+ "ref/netcore50/de/System.Collections.xml",
+ "ref/netcore50/es/System.Collections.xml",
+ "ref/netcore50/fr/System.Collections.xml",
+ "ref/netcore50/it/System.Collections.xml",
+ "ref/netcore50/ja/System.Collections.xml",
+ "ref/netcore50/ko/System.Collections.xml",
+ "ref/netcore50/ru/System.Collections.xml",
+ "ref/netcore50/zh-hans/System.Collections.xml",
+ "ref/netcore50/zh-hant/System.Collections.xml",
+ "ref/netstandard1.0/System.Collections.dll",
+ "ref/netstandard1.0/System.Collections.xml",
+ "ref/netstandard1.0/de/System.Collections.xml",
+ "ref/netstandard1.0/es/System.Collections.xml",
+ "ref/netstandard1.0/fr/System.Collections.xml",
+ "ref/netstandard1.0/it/System.Collections.xml",
+ "ref/netstandard1.0/ja/System.Collections.xml",
+ "ref/netstandard1.0/ko/System.Collections.xml",
+ "ref/netstandard1.0/ru/System.Collections.xml",
+ "ref/netstandard1.0/zh-hans/System.Collections.xml",
+ "ref/netstandard1.0/zh-hant/System.Collections.xml",
+ "ref/netstandard1.3/System.Collections.dll",
+ "ref/netstandard1.3/System.Collections.xml",
+ "ref/netstandard1.3/de/System.Collections.xml",
+ "ref/netstandard1.3/es/System.Collections.xml",
+ "ref/netstandard1.3/fr/System.Collections.xml",
+ "ref/netstandard1.3/it/System.Collections.xml",
+ "ref/netstandard1.3/ja/System.Collections.xml",
+ "ref/netstandard1.3/ko/System.Collections.xml",
+ "ref/netstandard1.3/ru/System.Collections.xml",
+ "ref/netstandard1.3/zh-hans/System.Collections.xml",
+ "ref/netstandard1.3/zh-hant/System.Collections.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.collections.4.3.0.nupkg.sha512",
+ "system.collections.nuspec"
+ ]
+ },
+ "System.Collections.Concurrent/4.3.0": {
+ "sha512": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==",
+ "type": "package",
+ "path": "system.collections.concurrent/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/netcore50/System.Collections.Concurrent.dll",
+ "lib/netstandard1.3/System.Collections.Concurrent.dll",
+ "lib/portable-net45+win8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Collections.Concurrent.dll",
+ "ref/netcore50/System.Collections.Concurrent.xml",
+ "ref/netcore50/de/System.Collections.Concurrent.xml",
+ "ref/netcore50/es/System.Collections.Concurrent.xml",
+ "ref/netcore50/fr/System.Collections.Concurrent.xml",
+ "ref/netcore50/it/System.Collections.Concurrent.xml",
+ "ref/netcore50/ja/System.Collections.Concurrent.xml",
+ "ref/netcore50/ko/System.Collections.Concurrent.xml",
+ "ref/netcore50/ru/System.Collections.Concurrent.xml",
+ "ref/netcore50/zh-hans/System.Collections.Concurrent.xml",
+ "ref/netcore50/zh-hant/System.Collections.Concurrent.xml",
+ "ref/netstandard1.1/System.Collections.Concurrent.dll",
+ "ref/netstandard1.1/System.Collections.Concurrent.xml",
+ "ref/netstandard1.1/de/System.Collections.Concurrent.xml",
+ "ref/netstandard1.1/es/System.Collections.Concurrent.xml",
+ "ref/netstandard1.1/fr/System.Collections.Concurrent.xml",
+ "ref/netstandard1.1/it/System.Collections.Concurrent.xml",
+ "ref/netstandard1.1/ja/System.Collections.Concurrent.xml",
+ "ref/netstandard1.1/ko/System.Collections.Concurrent.xml",
+ "ref/netstandard1.1/ru/System.Collections.Concurrent.xml",
+ "ref/netstandard1.1/zh-hans/System.Collections.Concurrent.xml",
+ "ref/netstandard1.1/zh-hant/System.Collections.Concurrent.xml",
+ "ref/netstandard1.3/System.Collections.Concurrent.dll",
+ "ref/netstandard1.3/System.Collections.Concurrent.xml",
+ "ref/netstandard1.3/de/System.Collections.Concurrent.xml",
+ "ref/netstandard1.3/es/System.Collections.Concurrent.xml",
+ "ref/netstandard1.3/fr/System.Collections.Concurrent.xml",
+ "ref/netstandard1.3/it/System.Collections.Concurrent.xml",
+ "ref/netstandard1.3/ja/System.Collections.Concurrent.xml",
+ "ref/netstandard1.3/ko/System.Collections.Concurrent.xml",
+ "ref/netstandard1.3/ru/System.Collections.Concurrent.xml",
+ "ref/netstandard1.3/zh-hans/System.Collections.Concurrent.xml",
+ "ref/netstandard1.3/zh-hant/System.Collections.Concurrent.xml",
+ "ref/portable-net45+win8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.collections.concurrent.4.3.0.nupkg.sha512",
+ "system.collections.concurrent.nuspec"
+ ]
+ },
+ "System.Collections.Immutable/5.0.0": {
+ "sha512": "FXkLXiK0sVVewcso0imKQoOxjoPAj42R8HtjjbSjVPAzwDfzoyoznWxgA3c38LDbN9SJux1xXoXYAhz98j7r2g==",
+ "type": "package",
+ "path": "system.collections.immutable/5.0.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/net461/System.Collections.Immutable.dll",
+ "lib/net461/System.Collections.Immutable.xml",
+ "lib/netstandard1.0/System.Collections.Immutable.dll",
+ "lib/netstandard1.0/System.Collections.Immutable.xml",
+ "lib/netstandard1.3/System.Collections.Immutable.dll",
+ "lib/netstandard1.3/System.Collections.Immutable.xml",
+ "lib/netstandard2.0/System.Collections.Immutable.dll",
+ "lib/netstandard2.0/System.Collections.Immutable.xml",
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll",
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.xml",
+ "system.collections.immutable.5.0.0.nupkg.sha512",
+ "system.collections.immutable.nuspec",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "System.ComponentModel.Composition/4.5.0": {
+ "sha512": "+iB9FoZnfdqMEGq6np28X6YNSUrse16CakmIhV3h6PxEWt7jYxUN3Txs1D8MZhhf4QmyvK0F/EcIN0f4gGN0dA==",
+ "type": "package",
+ "path": "system.componentmodel.composition/4.5.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/netcoreapp2.0/System.ComponentModel.Composition.dll",
+ "lib/netstandard2.0/System.ComponentModel.Composition.dll",
+ "lib/uap10.0.16299/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netstandard2.0/System.ComponentModel.Composition.dll",
+ "ref/uap10.0.16299/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.componentmodel.composition.4.5.0.nupkg.sha512",
+ "system.componentmodel.composition.nuspec",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "System.Composition/1.0.31": {
+ "sha512": "I+D26qpYdoklyAVUdqwUBrEIckMNjAYnuPJy/h9dsQItpQwVREkDFs4b4tkBza0kT2Yk48Lcfsv2QQ9hWsh9Iw==",
+ "type": "package",
+ "path": "system.composition/1.0.31",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "system.composition.1.0.31.nupkg.sha512",
+ "system.composition.nuspec"
+ ]
+ },
+ "System.Composition.AttributedModel/1.0.31": {
+ "sha512": "NHWhkM3ZkspmA0XJEsKdtTt1ViDYuojgSND3yHhTzwxepiwqZf+BCWuvCbjUt4fe0NxxQhUDGJ5km6sLjo9qnQ==",
+ "type": "package",
+ "path": "system.composition.attributedmodel/1.0.31",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/netstandard1.0/System.Composition.AttributedModel.dll",
+ "lib/portable-net45+win8+wp8+wpa81/System.Composition.AttributedModel.dll",
+ "system.composition.attributedmodel.1.0.31.nupkg.sha512",
+ "system.composition.attributedmodel.nuspec"
+ ]
+ },
+ "System.Composition.Convention/1.0.31": {
+ "sha512": "GLjh2Ju71k6C0qxMMtl4efHa68NmWeIUYh4fkUI8xbjQrEBvFmRwMDFcylT8/PR9SQbeeL48IkFxU/+gd0nYEQ==",
+ "type": "package",
+ "path": "system.composition.convention/1.0.31",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/netstandard1.0/System.Composition.Convention.dll",
+ "lib/portable-net45+win8+wp8+wpa81/System.Composition.Convention.dll",
+ "system.composition.convention.1.0.31.nupkg.sha512",
+ "system.composition.convention.nuspec"
+ ]
+ },
+ "System.Composition.Hosting/1.0.31": {
+ "sha512": "fN1bT4RX4vUqjbgoyuJFVUizAl2mYF5VAb+bVIxIYZSSc0BdnX+yGAxcavxJuDDCQ1K+/mdpgyEFc8e9ikjvrg==",
+ "type": "package",
+ "path": "system.composition.hosting/1.0.31",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/netstandard1.0/System.Composition.Hosting.dll",
+ "lib/portable-net45+win8+wp8+wpa81/System.Composition.Hosting.dll",
+ "system.composition.hosting.1.0.31.nupkg.sha512",
+ "system.composition.hosting.nuspec"
+ ]
+ },
+ "System.Composition.Runtime/1.0.31": {
+ "sha512": "0LEJN+2NVM89CE4SekDrrk5tHV5LeATltkp+9WNYrR+Huiyt0vaCqHbbHtVAjPyeLWIc8dOz/3kthRBj32wGQg==",
+ "type": "package",
+ "path": "system.composition.runtime/1.0.31",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/netstandard1.0/System.Composition.Runtime.dll",
+ "lib/portable-net45+win8+wp8+wpa81/System.Composition.Runtime.dll",
+ "system.composition.runtime.1.0.31.nupkg.sha512",
+ "system.composition.runtime.nuspec"
+ ]
+ },
+ "System.Composition.TypedParts/1.0.31": {
+ "sha512": "0Zae/FtzeFgDBBuILeIbC/T9HMYbW4olAmi8XqqAGosSOWvXfiQLfARZEhiGd0LVXaYgXr0NhxiU1LldRP1fpQ==",
+ "type": "package",
+ "path": "system.composition.typedparts/1.0.31",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/netstandard1.0/System.Composition.TypedParts.dll",
+ "lib/portable-net45+win8+wp8+wpa81/System.Composition.TypedParts.dll",
+ "system.composition.typedparts.1.0.31.nupkg.sha512",
+ "system.composition.typedparts.nuspec"
+ ]
+ },
+ "System.Console/4.3.0": {
+ "sha512": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==",
+ "type": "package",
+ "path": "system.console/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/System.Console.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/System.Console.dll",
+ "ref/netstandard1.3/System.Console.dll",
+ "ref/netstandard1.3/System.Console.xml",
+ "ref/netstandard1.3/de/System.Console.xml",
+ "ref/netstandard1.3/es/System.Console.xml",
+ "ref/netstandard1.3/fr/System.Console.xml",
+ "ref/netstandard1.3/it/System.Console.xml",
+ "ref/netstandard1.3/ja/System.Console.xml",
+ "ref/netstandard1.3/ko/System.Console.xml",
+ "ref/netstandard1.3/ru/System.Console.xml",
+ "ref/netstandard1.3/zh-hans/System.Console.xml",
+ "ref/netstandard1.3/zh-hant/System.Console.xml",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.console.4.3.0.nupkg.sha512",
+ "system.console.nuspec"
+ ]
+ },
+ "System.Diagnostics.Debug/4.3.0": {
+ "sha512": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "type": "package",
+ "path": "system.diagnostics.debug/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Diagnostics.Debug.dll",
+ "ref/netcore50/System.Diagnostics.Debug.xml",
+ "ref/netcore50/de/System.Diagnostics.Debug.xml",
+ "ref/netcore50/es/System.Diagnostics.Debug.xml",
+ "ref/netcore50/fr/System.Diagnostics.Debug.xml",
+ "ref/netcore50/it/System.Diagnostics.Debug.xml",
+ "ref/netcore50/ja/System.Diagnostics.Debug.xml",
+ "ref/netcore50/ko/System.Diagnostics.Debug.xml",
+ "ref/netcore50/ru/System.Diagnostics.Debug.xml",
+ "ref/netcore50/zh-hans/System.Diagnostics.Debug.xml",
+ "ref/netcore50/zh-hant/System.Diagnostics.Debug.xml",
+ "ref/netstandard1.0/System.Diagnostics.Debug.dll",
+ "ref/netstandard1.0/System.Diagnostics.Debug.xml",
+ "ref/netstandard1.0/de/System.Diagnostics.Debug.xml",
+ "ref/netstandard1.0/es/System.Diagnostics.Debug.xml",
+ "ref/netstandard1.0/fr/System.Diagnostics.Debug.xml",
+ "ref/netstandard1.0/it/System.Diagnostics.Debug.xml",
+ "ref/netstandard1.0/ja/System.Diagnostics.Debug.xml",
+ "ref/netstandard1.0/ko/System.Diagnostics.Debug.xml",
+ "ref/netstandard1.0/ru/System.Diagnostics.Debug.xml",
+ "ref/netstandard1.0/zh-hans/System.Diagnostics.Debug.xml",
+ "ref/netstandard1.0/zh-hant/System.Diagnostics.Debug.xml",
+ "ref/netstandard1.3/System.Diagnostics.Debug.dll",
+ "ref/netstandard1.3/System.Diagnostics.Debug.xml",
+ "ref/netstandard1.3/de/System.Diagnostics.Debug.xml",
+ "ref/netstandard1.3/es/System.Diagnostics.Debug.xml",
+ "ref/netstandard1.3/fr/System.Diagnostics.Debug.xml",
+ "ref/netstandard1.3/it/System.Diagnostics.Debug.xml",
+ "ref/netstandard1.3/ja/System.Diagnostics.Debug.xml",
+ "ref/netstandard1.3/ko/System.Diagnostics.Debug.xml",
+ "ref/netstandard1.3/ru/System.Diagnostics.Debug.xml",
+ "ref/netstandard1.3/zh-hans/System.Diagnostics.Debug.xml",
+ "ref/netstandard1.3/zh-hant/System.Diagnostics.Debug.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.diagnostics.debug.4.3.0.nupkg.sha512",
+ "system.diagnostics.debug.nuspec"
+ ]
+ },
+ "System.Diagnostics.DiagnosticSource/4.3.0": {
+ "sha512": "tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==",
+ "type": "package",
+ "path": "system.diagnostics.diagnosticsource/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/net46/System.Diagnostics.DiagnosticSource.dll",
+ "lib/net46/System.Diagnostics.DiagnosticSource.xml",
+ "lib/netstandard1.1/System.Diagnostics.DiagnosticSource.dll",
+ "lib/netstandard1.1/System.Diagnostics.DiagnosticSource.xml",
+ "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.dll",
+ "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.xml",
+ "lib/portable-net45+win8+wpa81/System.Diagnostics.DiagnosticSource.dll",
+ "lib/portable-net45+win8+wpa81/System.Diagnostics.DiagnosticSource.xml",
+ "system.diagnostics.diagnosticsource.4.3.0.nupkg.sha512",
+ "system.diagnostics.diagnosticsource.nuspec"
+ ]
+ },
+ "System.Diagnostics.Tools/4.3.0": {
+ "sha512": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==",
+ "type": "package",
+ "path": "system.diagnostics.tools/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Diagnostics.Tools.dll",
+ "ref/netcore50/System.Diagnostics.Tools.xml",
+ "ref/netcore50/de/System.Diagnostics.Tools.xml",
+ "ref/netcore50/es/System.Diagnostics.Tools.xml",
+ "ref/netcore50/fr/System.Diagnostics.Tools.xml",
+ "ref/netcore50/it/System.Diagnostics.Tools.xml",
+ "ref/netcore50/ja/System.Diagnostics.Tools.xml",
+ "ref/netcore50/ko/System.Diagnostics.Tools.xml",
+ "ref/netcore50/ru/System.Diagnostics.Tools.xml",
+ "ref/netcore50/zh-hans/System.Diagnostics.Tools.xml",
+ "ref/netcore50/zh-hant/System.Diagnostics.Tools.xml",
+ "ref/netstandard1.0/System.Diagnostics.Tools.dll",
+ "ref/netstandard1.0/System.Diagnostics.Tools.xml",
+ "ref/netstandard1.0/de/System.Diagnostics.Tools.xml",
+ "ref/netstandard1.0/es/System.Diagnostics.Tools.xml",
+ "ref/netstandard1.0/fr/System.Diagnostics.Tools.xml",
+ "ref/netstandard1.0/it/System.Diagnostics.Tools.xml",
+ "ref/netstandard1.0/ja/System.Diagnostics.Tools.xml",
+ "ref/netstandard1.0/ko/System.Diagnostics.Tools.xml",
+ "ref/netstandard1.0/ru/System.Diagnostics.Tools.xml",
+ "ref/netstandard1.0/zh-hans/System.Diagnostics.Tools.xml",
+ "ref/netstandard1.0/zh-hant/System.Diagnostics.Tools.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.diagnostics.tools.4.3.0.nupkg.sha512",
+ "system.diagnostics.tools.nuspec"
+ ]
+ },
+ "System.Diagnostics.Tracing/4.3.0": {
+ "sha512": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "type": "package",
+ "path": "system.diagnostics.tracing/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/net462/System.Diagnostics.Tracing.dll",
+ "lib/portable-net45+win8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/net462/System.Diagnostics.Tracing.dll",
+ "ref/netcore50/System.Diagnostics.Tracing.dll",
+ "ref/netcore50/System.Diagnostics.Tracing.xml",
+ "ref/netcore50/de/System.Diagnostics.Tracing.xml",
+ "ref/netcore50/es/System.Diagnostics.Tracing.xml",
+ "ref/netcore50/fr/System.Diagnostics.Tracing.xml",
+ "ref/netcore50/it/System.Diagnostics.Tracing.xml",
+ "ref/netcore50/ja/System.Diagnostics.Tracing.xml",
+ "ref/netcore50/ko/System.Diagnostics.Tracing.xml",
+ "ref/netcore50/ru/System.Diagnostics.Tracing.xml",
+ "ref/netcore50/zh-hans/System.Diagnostics.Tracing.xml",
+ "ref/netcore50/zh-hant/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.1/System.Diagnostics.Tracing.dll",
+ "ref/netstandard1.1/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.1/de/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.1/es/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.1/fr/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.1/it/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.1/ja/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.1/ko/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.1/ru/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.1/zh-hans/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.1/zh-hant/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.2/System.Diagnostics.Tracing.dll",
+ "ref/netstandard1.2/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.2/de/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.2/es/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.2/fr/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.2/it/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.2/ja/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.2/ko/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.2/ru/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.2/zh-hans/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.2/zh-hant/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.3/System.Diagnostics.Tracing.dll",
+ "ref/netstandard1.3/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.3/de/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.3/es/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.3/fr/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.3/it/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.3/ja/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.3/ko/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.3/ru/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.3/zh-hans/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.3/zh-hant/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.5/System.Diagnostics.Tracing.dll",
+ "ref/netstandard1.5/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.5/de/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.5/es/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.5/fr/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.5/it/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.5/ja/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.5/ko/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.5/ru/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.5/zh-hans/System.Diagnostics.Tracing.xml",
+ "ref/netstandard1.5/zh-hant/System.Diagnostics.Tracing.xml",
+ "ref/portable-net45+win8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.diagnostics.tracing.4.3.0.nupkg.sha512",
+ "system.diagnostics.tracing.nuspec"
+ ]
+ },
+ "System.Dynamic.Runtime/4.0.11": {
+ "sha512": "db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==",
+ "type": "package",
+ "path": "system.dynamic.runtime/4.0.11",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/netcore50/System.Dynamic.Runtime.dll",
+ "lib/netstandard1.3/System.Dynamic.Runtime.dll",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Dynamic.Runtime.dll",
+ "ref/netcore50/System.Dynamic.Runtime.xml",
+ "ref/netcore50/de/System.Dynamic.Runtime.xml",
+ "ref/netcore50/es/System.Dynamic.Runtime.xml",
+ "ref/netcore50/fr/System.Dynamic.Runtime.xml",
+ "ref/netcore50/it/System.Dynamic.Runtime.xml",
+ "ref/netcore50/ja/System.Dynamic.Runtime.xml",
+ "ref/netcore50/ko/System.Dynamic.Runtime.xml",
+ "ref/netcore50/ru/System.Dynamic.Runtime.xml",
+ "ref/netcore50/zh-hans/System.Dynamic.Runtime.xml",
+ "ref/netcore50/zh-hant/System.Dynamic.Runtime.xml",
+ "ref/netstandard1.0/System.Dynamic.Runtime.dll",
+ "ref/netstandard1.0/System.Dynamic.Runtime.xml",
+ "ref/netstandard1.0/de/System.Dynamic.Runtime.xml",
+ "ref/netstandard1.0/es/System.Dynamic.Runtime.xml",
+ "ref/netstandard1.0/fr/System.Dynamic.Runtime.xml",
+ "ref/netstandard1.0/it/System.Dynamic.Runtime.xml",
+ "ref/netstandard1.0/ja/System.Dynamic.Runtime.xml",
+ "ref/netstandard1.0/ko/System.Dynamic.Runtime.xml",
+ "ref/netstandard1.0/ru/System.Dynamic.Runtime.xml",
+ "ref/netstandard1.0/zh-hans/System.Dynamic.Runtime.xml",
+ "ref/netstandard1.0/zh-hant/System.Dynamic.Runtime.xml",
+ "ref/netstandard1.3/System.Dynamic.Runtime.dll",
+ "ref/netstandard1.3/System.Dynamic.Runtime.xml",
+ "ref/netstandard1.3/de/System.Dynamic.Runtime.xml",
+ "ref/netstandard1.3/es/System.Dynamic.Runtime.xml",
+ "ref/netstandard1.3/fr/System.Dynamic.Runtime.xml",
+ "ref/netstandard1.3/it/System.Dynamic.Runtime.xml",
+ "ref/netstandard1.3/ja/System.Dynamic.Runtime.xml",
+ "ref/netstandard1.3/ko/System.Dynamic.Runtime.xml",
+ "ref/netstandard1.3/ru/System.Dynamic.Runtime.xml",
+ "ref/netstandard1.3/zh-hans/System.Dynamic.Runtime.xml",
+ "ref/netstandard1.3/zh-hant/System.Dynamic.Runtime.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/aot/lib/netcore50/System.Dynamic.Runtime.dll",
+ "system.dynamic.runtime.4.0.11.nupkg.sha512",
+ "system.dynamic.runtime.nuspec"
+ ]
+ },
+ "System.Formats.Asn1/5.0.0": {
+ "sha512": "MTvUIktmemNB+El0Fgw9egyqT9AYSIk6DTJeoDSpc3GIHxHCMo8COqkWT1mptX5tZ1SlQ6HJZ0OsSvMth1c12w==",
+ "type": "package",
+ "path": "system.formats.asn1/5.0.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/net461/System.Formats.Asn1.dll",
+ "lib/net461/System.Formats.Asn1.xml",
+ "lib/netstandard2.0/System.Formats.Asn1.dll",
+ "lib/netstandard2.0/System.Formats.Asn1.xml",
+ "system.formats.asn1.5.0.0.nupkg.sha512",
+ "system.formats.asn1.nuspec",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "System.Globalization/4.3.0": {
+ "sha512": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "type": "package",
+ "path": "system.globalization/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Globalization.dll",
+ "ref/netcore50/System.Globalization.xml",
+ "ref/netcore50/de/System.Globalization.xml",
+ "ref/netcore50/es/System.Globalization.xml",
+ "ref/netcore50/fr/System.Globalization.xml",
+ "ref/netcore50/it/System.Globalization.xml",
+ "ref/netcore50/ja/System.Globalization.xml",
+ "ref/netcore50/ko/System.Globalization.xml",
+ "ref/netcore50/ru/System.Globalization.xml",
+ "ref/netcore50/zh-hans/System.Globalization.xml",
+ "ref/netcore50/zh-hant/System.Globalization.xml",
+ "ref/netstandard1.0/System.Globalization.dll",
+ "ref/netstandard1.0/System.Globalization.xml",
+ "ref/netstandard1.0/de/System.Globalization.xml",
+ "ref/netstandard1.0/es/System.Globalization.xml",
+ "ref/netstandard1.0/fr/System.Globalization.xml",
+ "ref/netstandard1.0/it/System.Globalization.xml",
+ "ref/netstandard1.0/ja/System.Globalization.xml",
+ "ref/netstandard1.0/ko/System.Globalization.xml",
+ "ref/netstandard1.0/ru/System.Globalization.xml",
+ "ref/netstandard1.0/zh-hans/System.Globalization.xml",
+ "ref/netstandard1.0/zh-hant/System.Globalization.xml",
+ "ref/netstandard1.3/System.Globalization.dll",
+ "ref/netstandard1.3/System.Globalization.xml",
+ "ref/netstandard1.3/de/System.Globalization.xml",
+ "ref/netstandard1.3/es/System.Globalization.xml",
+ "ref/netstandard1.3/fr/System.Globalization.xml",
+ "ref/netstandard1.3/it/System.Globalization.xml",
+ "ref/netstandard1.3/ja/System.Globalization.xml",
+ "ref/netstandard1.3/ko/System.Globalization.xml",
+ "ref/netstandard1.3/ru/System.Globalization.xml",
+ "ref/netstandard1.3/zh-hans/System.Globalization.xml",
+ "ref/netstandard1.3/zh-hant/System.Globalization.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.globalization.4.3.0.nupkg.sha512",
+ "system.globalization.nuspec"
+ ]
+ },
+ "System.Globalization.Calendars/4.3.0": {
+ "sha512": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
+ "type": "package",
+ "path": "system.globalization.calendars/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/System.Globalization.Calendars.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/System.Globalization.Calendars.dll",
+ "ref/netstandard1.3/System.Globalization.Calendars.dll",
+ "ref/netstandard1.3/System.Globalization.Calendars.xml",
+ "ref/netstandard1.3/de/System.Globalization.Calendars.xml",
+ "ref/netstandard1.3/es/System.Globalization.Calendars.xml",
+ "ref/netstandard1.3/fr/System.Globalization.Calendars.xml",
+ "ref/netstandard1.3/it/System.Globalization.Calendars.xml",
+ "ref/netstandard1.3/ja/System.Globalization.Calendars.xml",
+ "ref/netstandard1.3/ko/System.Globalization.Calendars.xml",
+ "ref/netstandard1.3/ru/System.Globalization.Calendars.xml",
+ "ref/netstandard1.3/zh-hans/System.Globalization.Calendars.xml",
+ "ref/netstandard1.3/zh-hant/System.Globalization.Calendars.xml",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.globalization.calendars.4.3.0.nupkg.sha512",
+ "system.globalization.calendars.nuspec"
+ ]
+ },
+ "System.Globalization.Extensions/4.3.0": {
+ "sha512": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+ "type": "package",
+ "path": "system.globalization.extensions/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/System.Globalization.Extensions.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/System.Globalization.Extensions.dll",
+ "ref/netstandard1.3/System.Globalization.Extensions.dll",
+ "ref/netstandard1.3/System.Globalization.Extensions.xml",
+ "ref/netstandard1.3/de/System.Globalization.Extensions.xml",
+ "ref/netstandard1.3/es/System.Globalization.Extensions.xml",
+ "ref/netstandard1.3/fr/System.Globalization.Extensions.xml",
+ "ref/netstandard1.3/it/System.Globalization.Extensions.xml",
+ "ref/netstandard1.3/ja/System.Globalization.Extensions.xml",
+ "ref/netstandard1.3/ko/System.Globalization.Extensions.xml",
+ "ref/netstandard1.3/ru/System.Globalization.Extensions.xml",
+ "ref/netstandard1.3/zh-hans/System.Globalization.Extensions.xml",
+ "ref/netstandard1.3/zh-hant/System.Globalization.Extensions.xml",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/unix/lib/netstandard1.3/System.Globalization.Extensions.dll",
+ "runtimes/win/lib/net46/System.Globalization.Extensions.dll",
+ "runtimes/win/lib/netstandard1.3/System.Globalization.Extensions.dll",
+ "system.globalization.extensions.4.3.0.nupkg.sha512",
+ "system.globalization.extensions.nuspec"
+ ]
+ },
+ "System.IO/4.3.0": {
+ "sha512": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "type": "package",
+ "path": "system.io/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/net462/System.IO.dll",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/net462/System.IO.dll",
+ "ref/netcore50/System.IO.dll",
+ "ref/netcore50/System.IO.xml",
+ "ref/netcore50/de/System.IO.xml",
+ "ref/netcore50/es/System.IO.xml",
+ "ref/netcore50/fr/System.IO.xml",
+ "ref/netcore50/it/System.IO.xml",
+ "ref/netcore50/ja/System.IO.xml",
+ "ref/netcore50/ko/System.IO.xml",
+ "ref/netcore50/ru/System.IO.xml",
+ "ref/netcore50/zh-hans/System.IO.xml",
+ "ref/netcore50/zh-hant/System.IO.xml",
+ "ref/netstandard1.0/System.IO.dll",
+ "ref/netstandard1.0/System.IO.xml",
+ "ref/netstandard1.0/de/System.IO.xml",
+ "ref/netstandard1.0/es/System.IO.xml",
+ "ref/netstandard1.0/fr/System.IO.xml",
+ "ref/netstandard1.0/it/System.IO.xml",
+ "ref/netstandard1.0/ja/System.IO.xml",
+ "ref/netstandard1.0/ko/System.IO.xml",
+ "ref/netstandard1.0/ru/System.IO.xml",
+ "ref/netstandard1.0/zh-hans/System.IO.xml",
+ "ref/netstandard1.0/zh-hant/System.IO.xml",
+ "ref/netstandard1.3/System.IO.dll",
+ "ref/netstandard1.3/System.IO.xml",
+ "ref/netstandard1.3/de/System.IO.xml",
+ "ref/netstandard1.3/es/System.IO.xml",
+ "ref/netstandard1.3/fr/System.IO.xml",
+ "ref/netstandard1.3/it/System.IO.xml",
+ "ref/netstandard1.3/ja/System.IO.xml",
+ "ref/netstandard1.3/ko/System.IO.xml",
+ "ref/netstandard1.3/ru/System.IO.xml",
+ "ref/netstandard1.3/zh-hans/System.IO.xml",
+ "ref/netstandard1.3/zh-hant/System.IO.xml",
+ "ref/netstandard1.5/System.IO.dll",
+ "ref/netstandard1.5/System.IO.xml",
+ "ref/netstandard1.5/de/System.IO.xml",
+ "ref/netstandard1.5/es/System.IO.xml",
+ "ref/netstandard1.5/fr/System.IO.xml",
+ "ref/netstandard1.5/it/System.IO.xml",
+ "ref/netstandard1.5/ja/System.IO.xml",
+ "ref/netstandard1.5/ko/System.IO.xml",
+ "ref/netstandard1.5/ru/System.IO.xml",
+ "ref/netstandard1.5/zh-hans/System.IO.xml",
+ "ref/netstandard1.5/zh-hant/System.IO.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.io.4.3.0.nupkg.sha512",
+ "system.io.nuspec"
+ ]
+ },
+ "System.IO.Abstractions/21.0.22": {
+ "sha512": "DRnFyMIjO1KG9fqUPKV7XDPgECEwrNpsb3OLD0mImViVpRZ5747o7vqrOYbn9AMaQ8eajLeKH0fXQglgH7v42A==",
+ "type": "package",
+ "path": "system.io.abstractions/21.0.22",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "README.md",
+ "icon_256x256.png",
+ "lib/net462/System.IO.Abstractions.dll",
+ "lib/net462/System.IO.Abstractions.xml",
+ "lib/net6.0/System.IO.Abstractions.dll",
+ "lib/net6.0/System.IO.Abstractions.xml",
+ "lib/net7.0/System.IO.Abstractions.dll",
+ "lib/net7.0/System.IO.Abstractions.xml",
+ "lib/net8.0/System.IO.Abstractions.dll",
+ "lib/net8.0/System.IO.Abstractions.xml",
+ "lib/netstandard2.0/System.IO.Abstractions.dll",
+ "lib/netstandard2.0/System.IO.Abstractions.xml",
+ "lib/netstandard2.1/System.IO.Abstractions.dll",
+ "lib/netstandard2.1/System.IO.Abstractions.xml",
+ "system.io.abstractions.21.0.22.nupkg.sha512",
+ "system.io.abstractions.nuspec"
+ ]
+ },
+ "System.IO.Compression/4.3.0": {
+ "sha512": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
+ "type": "package",
+ "path": "system.io.compression/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/net46/System.IO.Compression.dll",
+ "lib/portable-net45+win8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/net46/System.IO.Compression.dll",
+ "ref/netcore50/System.IO.Compression.dll",
+ "ref/netcore50/System.IO.Compression.xml",
+ "ref/netcore50/de/System.IO.Compression.xml",
+ "ref/netcore50/es/System.IO.Compression.xml",
+ "ref/netcore50/fr/System.IO.Compression.xml",
+ "ref/netcore50/it/System.IO.Compression.xml",
+ "ref/netcore50/ja/System.IO.Compression.xml",
+ "ref/netcore50/ko/System.IO.Compression.xml",
+ "ref/netcore50/ru/System.IO.Compression.xml",
+ "ref/netcore50/zh-hans/System.IO.Compression.xml",
+ "ref/netcore50/zh-hant/System.IO.Compression.xml",
+ "ref/netstandard1.1/System.IO.Compression.dll",
+ "ref/netstandard1.1/System.IO.Compression.xml",
+ "ref/netstandard1.1/de/System.IO.Compression.xml",
+ "ref/netstandard1.1/es/System.IO.Compression.xml",
+ "ref/netstandard1.1/fr/System.IO.Compression.xml",
+ "ref/netstandard1.1/it/System.IO.Compression.xml",
+ "ref/netstandard1.1/ja/System.IO.Compression.xml",
+ "ref/netstandard1.1/ko/System.IO.Compression.xml",
+ "ref/netstandard1.1/ru/System.IO.Compression.xml",
+ "ref/netstandard1.1/zh-hans/System.IO.Compression.xml",
+ "ref/netstandard1.1/zh-hant/System.IO.Compression.xml",
+ "ref/netstandard1.3/System.IO.Compression.dll",
+ "ref/netstandard1.3/System.IO.Compression.xml",
+ "ref/netstandard1.3/de/System.IO.Compression.xml",
+ "ref/netstandard1.3/es/System.IO.Compression.xml",
+ "ref/netstandard1.3/fr/System.IO.Compression.xml",
+ "ref/netstandard1.3/it/System.IO.Compression.xml",
+ "ref/netstandard1.3/ja/System.IO.Compression.xml",
+ "ref/netstandard1.3/ko/System.IO.Compression.xml",
+ "ref/netstandard1.3/ru/System.IO.Compression.xml",
+ "ref/netstandard1.3/zh-hans/System.IO.Compression.xml",
+ "ref/netstandard1.3/zh-hant/System.IO.Compression.xml",
+ "ref/portable-net45+win8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/unix/lib/netstandard1.3/System.IO.Compression.dll",
+ "runtimes/win/lib/net46/System.IO.Compression.dll",
+ "runtimes/win/lib/netstandard1.3/System.IO.Compression.dll",
+ "system.io.compression.4.3.0.nupkg.sha512",
+ "system.io.compression.nuspec"
+ ]
+ },
+ "System.IO.Compression.ZipFile/4.3.0": {
+ "sha512": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==",
+ "type": "package",
+ "path": "system.io.compression.zipfile/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/System.IO.Compression.ZipFile.dll",
+ "lib/netstandard1.3/System.IO.Compression.ZipFile.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/System.IO.Compression.ZipFile.dll",
+ "ref/netstandard1.3/System.IO.Compression.ZipFile.dll",
+ "ref/netstandard1.3/System.IO.Compression.ZipFile.xml",
+ "ref/netstandard1.3/de/System.IO.Compression.ZipFile.xml",
+ "ref/netstandard1.3/es/System.IO.Compression.ZipFile.xml",
+ "ref/netstandard1.3/fr/System.IO.Compression.ZipFile.xml",
+ "ref/netstandard1.3/it/System.IO.Compression.ZipFile.xml",
+ "ref/netstandard1.3/ja/System.IO.Compression.ZipFile.xml",
+ "ref/netstandard1.3/ko/System.IO.Compression.ZipFile.xml",
+ "ref/netstandard1.3/ru/System.IO.Compression.ZipFile.xml",
+ "ref/netstandard1.3/zh-hans/System.IO.Compression.ZipFile.xml",
+ "ref/netstandard1.3/zh-hant/System.IO.Compression.ZipFile.xml",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.io.compression.zipfile.4.3.0.nupkg.sha512",
+ "system.io.compression.zipfile.nuspec"
+ ]
+ },
+ "System.IO.FileSystem/4.3.0": {
+ "sha512": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "type": "package",
+ "path": "system.io.filesystem/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/System.IO.FileSystem.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/System.IO.FileSystem.dll",
+ "ref/netstandard1.3/System.IO.FileSystem.dll",
+ "ref/netstandard1.3/System.IO.FileSystem.xml",
+ "ref/netstandard1.3/de/System.IO.FileSystem.xml",
+ "ref/netstandard1.3/es/System.IO.FileSystem.xml",
+ "ref/netstandard1.3/fr/System.IO.FileSystem.xml",
+ "ref/netstandard1.3/it/System.IO.FileSystem.xml",
+ "ref/netstandard1.3/ja/System.IO.FileSystem.xml",
+ "ref/netstandard1.3/ko/System.IO.FileSystem.xml",
+ "ref/netstandard1.3/ru/System.IO.FileSystem.xml",
+ "ref/netstandard1.3/zh-hans/System.IO.FileSystem.xml",
+ "ref/netstandard1.3/zh-hant/System.IO.FileSystem.xml",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.io.filesystem.4.3.0.nupkg.sha512",
+ "system.io.filesystem.nuspec"
+ ]
+ },
+ "System.IO.FileSystem.Primitives/4.3.0": {
+ "sha512": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
+ "type": "package",
+ "path": "system.io.filesystem.primitives/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/System.IO.FileSystem.Primitives.dll",
+ "lib/netstandard1.3/System.IO.FileSystem.Primitives.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/System.IO.FileSystem.Primitives.dll",
+ "ref/netstandard1.3/System.IO.FileSystem.Primitives.dll",
+ "ref/netstandard1.3/System.IO.FileSystem.Primitives.xml",
+ "ref/netstandard1.3/de/System.IO.FileSystem.Primitives.xml",
+ "ref/netstandard1.3/es/System.IO.FileSystem.Primitives.xml",
+ "ref/netstandard1.3/fr/System.IO.FileSystem.Primitives.xml",
+ "ref/netstandard1.3/it/System.IO.FileSystem.Primitives.xml",
+ "ref/netstandard1.3/ja/System.IO.FileSystem.Primitives.xml",
+ "ref/netstandard1.3/ko/System.IO.FileSystem.Primitives.xml",
+ "ref/netstandard1.3/ru/System.IO.FileSystem.Primitives.xml",
+ "ref/netstandard1.3/zh-hans/System.IO.FileSystem.Primitives.xml",
+ "ref/netstandard1.3/zh-hant/System.IO.FileSystem.Primitives.xml",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.io.filesystem.primitives.4.3.0.nupkg.sha512",
+ "system.io.filesystem.primitives.nuspec"
+ ]
+ },
+ "System.Linq/4.3.0": {
+ "sha512": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
+ "type": "package",
+ "path": "system.linq/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/net463/System.Linq.dll",
+ "lib/netcore50/System.Linq.dll",
+ "lib/netstandard1.6/System.Linq.dll",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/net463/System.Linq.dll",
+ "ref/netcore50/System.Linq.dll",
+ "ref/netcore50/System.Linq.xml",
+ "ref/netcore50/de/System.Linq.xml",
+ "ref/netcore50/es/System.Linq.xml",
+ "ref/netcore50/fr/System.Linq.xml",
+ "ref/netcore50/it/System.Linq.xml",
+ "ref/netcore50/ja/System.Linq.xml",
+ "ref/netcore50/ko/System.Linq.xml",
+ "ref/netcore50/ru/System.Linq.xml",
+ "ref/netcore50/zh-hans/System.Linq.xml",
+ "ref/netcore50/zh-hant/System.Linq.xml",
+ "ref/netstandard1.0/System.Linq.dll",
+ "ref/netstandard1.0/System.Linq.xml",
+ "ref/netstandard1.0/de/System.Linq.xml",
+ "ref/netstandard1.0/es/System.Linq.xml",
+ "ref/netstandard1.0/fr/System.Linq.xml",
+ "ref/netstandard1.0/it/System.Linq.xml",
+ "ref/netstandard1.0/ja/System.Linq.xml",
+ "ref/netstandard1.0/ko/System.Linq.xml",
+ "ref/netstandard1.0/ru/System.Linq.xml",
+ "ref/netstandard1.0/zh-hans/System.Linq.xml",
+ "ref/netstandard1.0/zh-hant/System.Linq.xml",
+ "ref/netstandard1.6/System.Linq.dll",
+ "ref/netstandard1.6/System.Linq.xml",
+ "ref/netstandard1.6/de/System.Linq.xml",
+ "ref/netstandard1.6/es/System.Linq.xml",
+ "ref/netstandard1.6/fr/System.Linq.xml",
+ "ref/netstandard1.6/it/System.Linq.xml",
+ "ref/netstandard1.6/ja/System.Linq.xml",
+ "ref/netstandard1.6/ko/System.Linq.xml",
+ "ref/netstandard1.6/ru/System.Linq.xml",
+ "ref/netstandard1.6/zh-hans/System.Linq.xml",
+ "ref/netstandard1.6/zh-hant/System.Linq.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.linq.4.3.0.nupkg.sha512",
+ "system.linq.nuspec"
+ ]
+ },
+ "System.Linq.Expressions/4.3.0": {
+ "sha512": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==",
+ "type": "package",
+ "path": "system.linq.expressions/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/net463/System.Linq.Expressions.dll",
+ "lib/netcore50/System.Linq.Expressions.dll",
+ "lib/netstandard1.6/System.Linq.Expressions.dll",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/net463/System.Linq.Expressions.dll",
+ "ref/netcore50/System.Linq.Expressions.dll",
+ "ref/netcore50/System.Linq.Expressions.xml",
+ "ref/netcore50/de/System.Linq.Expressions.xml",
+ "ref/netcore50/es/System.Linq.Expressions.xml",
+ "ref/netcore50/fr/System.Linq.Expressions.xml",
+ "ref/netcore50/it/System.Linq.Expressions.xml",
+ "ref/netcore50/ja/System.Linq.Expressions.xml",
+ "ref/netcore50/ko/System.Linq.Expressions.xml",
+ "ref/netcore50/ru/System.Linq.Expressions.xml",
+ "ref/netcore50/zh-hans/System.Linq.Expressions.xml",
+ "ref/netcore50/zh-hant/System.Linq.Expressions.xml",
+ "ref/netstandard1.0/System.Linq.Expressions.dll",
+ "ref/netstandard1.0/System.Linq.Expressions.xml",
+ "ref/netstandard1.0/de/System.Linq.Expressions.xml",
+ "ref/netstandard1.0/es/System.Linq.Expressions.xml",
+ "ref/netstandard1.0/fr/System.Linq.Expressions.xml",
+ "ref/netstandard1.0/it/System.Linq.Expressions.xml",
+ "ref/netstandard1.0/ja/System.Linq.Expressions.xml",
+ "ref/netstandard1.0/ko/System.Linq.Expressions.xml",
+ "ref/netstandard1.0/ru/System.Linq.Expressions.xml",
+ "ref/netstandard1.0/zh-hans/System.Linq.Expressions.xml",
+ "ref/netstandard1.0/zh-hant/System.Linq.Expressions.xml",
+ "ref/netstandard1.3/System.Linq.Expressions.dll",
+ "ref/netstandard1.3/System.Linq.Expressions.xml",
+ "ref/netstandard1.3/de/System.Linq.Expressions.xml",
+ "ref/netstandard1.3/es/System.Linq.Expressions.xml",
+ "ref/netstandard1.3/fr/System.Linq.Expressions.xml",
+ "ref/netstandard1.3/it/System.Linq.Expressions.xml",
+ "ref/netstandard1.3/ja/System.Linq.Expressions.xml",
+ "ref/netstandard1.3/ko/System.Linq.Expressions.xml",
+ "ref/netstandard1.3/ru/System.Linq.Expressions.xml",
+ "ref/netstandard1.3/zh-hans/System.Linq.Expressions.xml",
+ "ref/netstandard1.3/zh-hant/System.Linq.Expressions.xml",
+ "ref/netstandard1.6/System.Linq.Expressions.dll",
+ "ref/netstandard1.6/System.Linq.Expressions.xml",
+ "ref/netstandard1.6/de/System.Linq.Expressions.xml",
+ "ref/netstandard1.6/es/System.Linq.Expressions.xml",
+ "ref/netstandard1.6/fr/System.Linq.Expressions.xml",
+ "ref/netstandard1.6/it/System.Linq.Expressions.xml",
+ "ref/netstandard1.6/ja/System.Linq.Expressions.xml",
+ "ref/netstandard1.6/ko/System.Linq.Expressions.xml",
+ "ref/netstandard1.6/ru/System.Linq.Expressions.xml",
+ "ref/netstandard1.6/zh-hans/System.Linq.Expressions.xml",
+ "ref/netstandard1.6/zh-hant/System.Linq.Expressions.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/aot/lib/netcore50/System.Linq.Expressions.dll",
+ "system.linq.expressions.4.3.0.nupkg.sha512",
+ "system.linq.expressions.nuspec"
+ ]
+ },
+ "System.Memory/4.5.4": {
+ "sha512": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==",
+ "type": "package",
+ "path": "system.memory/4.5.4",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/net461/System.Memory.dll",
+ "lib/net461/System.Memory.xml",
+ "lib/netcoreapp2.1/_._",
+ "lib/netstandard1.1/System.Memory.dll",
+ "lib/netstandard1.1/System.Memory.xml",
+ "lib/netstandard2.0/System.Memory.dll",
+ "lib/netstandard2.0/System.Memory.xml",
+ "ref/netcoreapp2.1/_._",
+ "system.memory.4.5.4.nupkg.sha512",
+ "system.memory.nuspec",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "System.Net.Http/4.3.0": {
+ "sha512": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==",
+ "type": "package",
+ "path": "system.net.http/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/Xamarinmac20/_._",
+ "lib/monoandroid10/_._",
+ "lib/monotouch10/_._",
+ "lib/net45/_._",
+ "lib/net46/System.Net.Http.dll",
+ "lib/portable-net45+win8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/Xamarinmac20/_._",
+ "ref/monoandroid10/_._",
+ "ref/monotouch10/_._",
+ "ref/net45/_._",
+ "ref/net46/System.Net.Http.dll",
+ "ref/net46/System.Net.Http.xml",
+ "ref/net46/de/System.Net.Http.xml",
+ "ref/net46/es/System.Net.Http.xml",
+ "ref/net46/fr/System.Net.Http.xml",
+ "ref/net46/it/System.Net.Http.xml",
+ "ref/net46/ja/System.Net.Http.xml",
+ "ref/net46/ko/System.Net.Http.xml",
+ "ref/net46/ru/System.Net.Http.xml",
+ "ref/net46/zh-hans/System.Net.Http.xml",
+ "ref/net46/zh-hant/System.Net.Http.xml",
+ "ref/netcore50/System.Net.Http.dll",
+ "ref/netcore50/System.Net.Http.xml",
+ "ref/netcore50/de/System.Net.Http.xml",
+ "ref/netcore50/es/System.Net.Http.xml",
+ "ref/netcore50/fr/System.Net.Http.xml",
+ "ref/netcore50/it/System.Net.Http.xml",
+ "ref/netcore50/ja/System.Net.Http.xml",
+ "ref/netcore50/ko/System.Net.Http.xml",
+ "ref/netcore50/ru/System.Net.Http.xml",
+ "ref/netcore50/zh-hans/System.Net.Http.xml",
+ "ref/netcore50/zh-hant/System.Net.Http.xml",
+ "ref/netstandard1.1/System.Net.Http.dll",
+ "ref/netstandard1.1/System.Net.Http.xml",
+ "ref/netstandard1.1/de/System.Net.Http.xml",
+ "ref/netstandard1.1/es/System.Net.Http.xml",
+ "ref/netstandard1.1/fr/System.Net.Http.xml",
+ "ref/netstandard1.1/it/System.Net.Http.xml",
+ "ref/netstandard1.1/ja/System.Net.Http.xml",
+ "ref/netstandard1.1/ko/System.Net.Http.xml",
+ "ref/netstandard1.1/ru/System.Net.Http.xml",
+ "ref/netstandard1.1/zh-hans/System.Net.Http.xml",
+ "ref/netstandard1.1/zh-hant/System.Net.Http.xml",
+ "ref/netstandard1.3/System.Net.Http.dll",
+ "ref/netstandard1.3/System.Net.Http.xml",
+ "ref/netstandard1.3/de/System.Net.Http.xml",
+ "ref/netstandard1.3/es/System.Net.Http.xml",
+ "ref/netstandard1.3/fr/System.Net.Http.xml",
+ "ref/netstandard1.3/it/System.Net.Http.xml",
+ "ref/netstandard1.3/ja/System.Net.Http.xml",
+ "ref/netstandard1.3/ko/System.Net.Http.xml",
+ "ref/netstandard1.3/ru/System.Net.Http.xml",
+ "ref/netstandard1.3/zh-hans/System.Net.Http.xml",
+ "ref/netstandard1.3/zh-hant/System.Net.Http.xml",
+ "ref/portable-net45+win8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/unix/lib/netstandard1.6/System.Net.Http.dll",
+ "runtimes/win/lib/net46/System.Net.Http.dll",
+ "runtimes/win/lib/netcore50/System.Net.Http.dll",
+ "runtimes/win/lib/netstandard1.3/System.Net.Http.dll",
+ "system.net.http.4.3.0.nupkg.sha512",
+ "system.net.http.nuspec"
+ ]
+ },
+ "System.Net.Primitives/4.3.0": {
+ "sha512": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "type": "package",
+ "path": "system.net.primitives/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Net.Primitives.dll",
+ "ref/netcore50/System.Net.Primitives.xml",
+ "ref/netcore50/de/System.Net.Primitives.xml",
+ "ref/netcore50/es/System.Net.Primitives.xml",
+ "ref/netcore50/fr/System.Net.Primitives.xml",
+ "ref/netcore50/it/System.Net.Primitives.xml",
+ "ref/netcore50/ja/System.Net.Primitives.xml",
+ "ref/netcore50/ko/System.Net.Primitives.xml",
+ "ref/netcore50/ru/System.Net.Primitives.xml",
+ "ref/netcore50/zh-hans/System.Net.Primitives.xml",
+ "ref/netcore50/zh-hant/System.Net.Primitives.xml",
+ "ref/netstandard1.0/System.Net.Primitives.dll",
+ "ref/netstandard1.0/System.Net.Primitives.xml",
+ "ref/netstandard1.0/de/System.Net.Primitives.xml",
+ "ref/netstandard1.0/es/System.Net.Primitives.xml",
+ "ref/netstandard1.0/fr/System.Net.Primitives.xml",
+ "ref/netstandard1.0/it/System.Net.Primitives.xml",
+ "ref/netstandard1.0/ja/System.Net.Primitives.xml",
+ "ref/netstandard1.0/ko/System.Net.Primitives.xml",
+ "ref/netstandard1.0/ru/System.Net.Primitives.xml",
+ "ref/netstandard1.0/zh-hans/System.Net.Primitives.xml",
+ "ref/netstandard1.0/zh-hant/System.Net.Primitives.xml",
+ "ref/netstandard1.1/System.Net.Primitives.dll",
+ "ref/netstandard1.1/System.Net.Primitives.xml",
+ "ref/netstandard1.1/de/System.Net.Primitives.xml",
+ "ref/netstandard1.1/es/System.Net.Primitives.xml",
+ "ref/netstandard1.1/fr/System.Net.Primitives.xml",
+ "ref/netstandard1.1/it/System.Net.Primitives.xml",
+ "ref/netstandard1.1/ja/System.Net.Primitives.xml",
+ "ref/netstandard1.1/ko/System.Net.Primitives.xml",
+ "ref/netstandard1.1/ru/System.Net.Primitives.xml",
+ "ref/netstandard1.1/zh-hans/System.Net.Primitives.xml",
+ "ref/netstandard1.1/zh-hant/System.Net.Primitives.xml",
+ "ref/netstandard1.3/System.Net.Primitives.dll",
+ "ref/netstandard1.3/System.Net.Primitives.xml",
+ "ref/netstandard1.3/de/System.Net.Primitives.xml",
+ "ref/netstandard1.3/es/System.Net.Primitives.xml",
+ "ref/netstandard1.3/fr/System.Net.Primitives.xml",
+ "ref/netstandard1.3/it/System.Net.Primitives.xml",
+ "ref/netstandard1.3/ja/System.Net.Primitives.xml",
+ "ref/netstandard1.3/ko/System.Net.Primitives.xml",
+ "ref/netstandard1.3/ru/System.Net.Primitives.xml",
+ "ref/netstandard1.3/zh-hans/System.Net.Primitives.xml",
+ "ref/netstandard1.3/zh-hant/System.Net.Primitives.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.net.primitives.4.3.0.nupkg.sha512",
+ "system.net.primitives.nuspec"
+ ]
+ },
+ "System.Net.Sockets/4.3.0": {
+ "sha512": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+ "type": "package",
+ "path": "system.net.sockets/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/System.Net.Sockets.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/System.Net.Sockets.dll",
+ "ref/netstandard1.3/System.Net.Sockets.dll",
+ "ref/netstandard1.3/System.Net.Sockets.xml",
+ "ref/netstandard1.3/de/System.Net.Sockets.xml",
+ "ref/netstandard1.3/es/System.Net.Sockets.xml",
+ "ref/netstandard1.3/fr/System.Net.Sockets.xml",
+ "ref/netstandard1.3/it/System.Net.Sockets.xml",
+ "ref/netstandard1.3/ja/System.Net.Sockets.xml",
+ "ref/netstandard1.3/ko/System.Net.Sockets.xml",
+ "ref/netstandard1.3/ru/System.Net.Sockets.xml",
+ "ref/netstandard1.3/zh-hans/System.Net.Sockets.xml",
+ "ref/netstandard1.3/zh-hant/System.Net.Sockets.xml",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.net.sockets.4.3.0.nupkg.sha512",
+ "system.net.sockets.nuspec"
+ ]
+ },
+ "System.ObjectModel/4.3.0": {
+ "sha512": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==",
+ "type": "package",
+ "path": "system.objectmodel/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/netcore50/System.ObjectModel.dll",
+ "lib/netstandard1.3/System.ObjectModel.dll",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.ObjectModel.dll",
+ "ref/netcore50/System.ObjectModel.xml",
+ "ref/netcore50/de/System.ObjectModel.xml",
+ "ref/netcore50/es/System.ObjectModel.xml",
+ "ref/netcore50/fr/System.ObjectModel.xml",
+ "ref/netcore50/it/System.ObjectModel.xml",
+ "ref/netcore50/ja/System.ObjectModel.xml",
+ "ref/netcore50/ko/System.ObjectModel.xml",
+ "ref/netcore50/ru/System.ObjectModel.xml",
+ "ref/netcore50/zh-hans/System.ObjectModel.xml",
+ "ref/netcore50/zh-hant/System.ObjectModel.xml",
+ "ref/netstandard1.0/System.ObjectModel.dll",
+ "ref/netstandard1.0/System.ObjectModel.xml",
+ "ref/netstandard1.0/de/System.ObjectModel.xml",
+ "ref/netstandard1.0/es/System.ObjectModel.xml",
+ "ref/netstandard1.0/fr/System.ObjectModel.xml",
+ "ref/netstandard1.0/it/System.ObjectModel.xml",
+ "ref/netstandard1.0/ja/System.ObjectModel.xml",
+ "ref/netstandard1.0/ko/System.ObjectModel.xml",
+ "ref/netstandard1.0/ru/System.ObjectModel.xml",
+ "ref/netstandard1.0/zh-hans/System.ObjectModel.xml",
+ "ref/netstandard1.0/zh-hant/System.ObjectModel.xml",
+ "ref/netstandard1.3/System.ObjectModel.dll",
+ "ref/netstandard1.3/System.ObjectModel.xml",
+ "ref/netstandard1.3/de/System.ObjectModel.xml",
+ "ref/netstandard1.3/es/System.ObjectModel.xml",
+ "ref/netstandard1.3/fr/System.ObjectModel.xml",
+ "ref/netstandard1.3/it/System.ObjectModel.xml",
+ "ref/netstandard1.3/ja/System.ObjectModel.xml",
+ "ref/netstandard1.3/ko/System.ObjectModel.xml",
+ "ref/netstandard1.3/ru/System.ObjectModel.xml",
+ "ref/netstandard1.3/zh-hans/System.ObjectModel.xml",
+ "ref/netstandard1.3/zh-hant/System.ObjectModel.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.objectmodel.4.3.0.nupkg.sha512",
+ "system.objectmodel.nuspec"
+ ]
+ },
+ "System.Reflection/4.3.0": {
+ "sha512": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "type": "package",
+ "path": "system.reflection/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/net462/System.Reflection.dll",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/net462/System.Reflection.dll",
+ "ref/netcore50/System.Reflection.dll",
+ "ref/netcore50/System.Reflection.xml",
+ "ref/netcore50/de/System.Reflection.xml",
+ "ref/netcore50/es/System.Reflection.xml",
+ "ref/netcore50/fr/System.Reflection.xml",
+ "ref/netcore50/it/System.Reflection.xml",
+ "ref/netcore50/ja/System.Reflection.xml",
+ "ref/netcore50/ko/System.Reflection.xml",
+ "ref/netcore50/ru/System.Reflection.xml",
+ "ref/netcore50/zh-hans/System.Reflection.xml",
+ "ref/netcore50/zh-hant/System.Reflection.xml",
+ "ref/netstandard1.0/System.Reflection.dll",
+ "ref/netstandard1.0/System.Reflection.xml",
+ "ref/netstandard1.0/de/System.Reflection.xml",
+ "ref/netstandard1.0/es/System.Reflection.xml",
+ "ref/netstandard1.0/fr/System.Reflection.xml",
+ "ref/netstandard1.0/it/System.Reflection.xml",
+ "ref/netstandard1.0/ja/System.Reflection.xml",
+ "ref/netstandard1.0/ko/System.Reflection.xml",
+ "ref/netstandard1.0/ru/System.Reflection.xml",
+ "ref/netstandard1.0/zh-hans/System.Reflection.xml",
+ "ref/netstandard1.0/zh-hant/System.Reflection.xml",
+ "ref/netstandard1.3/System.Reflection.dll",
+ "ref/netstandard1.3/System.Reflection.xml",
+ "ref/netstandard1.3/de/System.Reflection.xml",
+ "ref/netstandard1.3/es/System.Reflection.xml",
+ "ref/netstandard1.3/fr/System.Reflection.xml",
+ "ref/netstandard1.3/it/System.Reflection.xml",
+ "ref/netstandard1.3/ja/System.Reflection.xml",
+ "ref/netstandard1.3/ko/System.Reflection.xml",
+ "ref/netstandard1.3/ru/System.Reflection.xml",
+ "ref/netstandard1.3/zh-hans/System.Reflection.xml",
+ "ref/netstandard1.3/zh-hant/System.Reflection.xml",
+ "ref/netstandard1.5/System.Reflection.dll",
+ "ref/netstandard1.5/System.Reflection.xml",
+ "ref/netstandard1.5/de/System.Reflection.xml",
+ "ref/netstandard1.5/es/System.Reflection.xml",
+ "ref/netstandard1.5/fr/System.Reflection.xml",
+ "ref/netstandard1.5/it/System.Reflection.xml",
+ "ref/netstandard1.5/ja/System.Reflection.xml",
+ "ref/netstandard1.5/ko/System.Reflection.xml",
+ "ref/netstandard1.5/ru/System.Reflection.xml",
+ "ref/netstandard1.5/zh-hans/System.Reflection.xml",
+ "ref/netstandard1.5/zh-hant/System.Reflection.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.reflection.4.3.0.nupkg.sha512",
+ "system.reflection.nuspec"
+ ]
+ },
+ "System.Reflection.Emit/4.3.0": {
+ "sha512": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==",
+ "type": "package",
+ "path": "system.reflection.emit/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/monotouch10/_._",
+ "lib/net45/_._",
+ "lib/netcore50/System.Reflection.Emit.dll",
+ "lib/netstandard1.3/System.Reflection.Emit.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/net45/_._",
+ "ref/netstandard1.1/System.Reflection.Emit.dll",
+ "ref/netstandard1.1/System.Reflection.Emit.xml",
+ "ref/netstandard1.1/de/System.Reflection.Emit.xml",
+ "ref/netstandard1.1/es/System.Reflection.Emit.xml",
+ "ref/netstandard1.1/fr/System.Reflection.Emit.xml",
+ "ref/netstandard1.1/it/System.Reflection.Emit.xml",
+ "ref/netstandard1.1/ja/System.Reflection.Emit.xml",
+ "ref/netstandard1.1/ko/System.Reflection.Emit.xml",
+ "ref/netstandard1.1/ru/System.Reflection.Emit.xml",
+ "ref/netstandard1.1/zh-hans/System.Reflection.Emit.xml",
+ "ref/netstandard1.1/zh-hant/System.Reflection.Emit.xml",
+ "ref/xamarinmac20/_._",
+ "system.reflection.emit.4.3.0.nupkg.sha512",
+ "system.reflection.emit.nuspec"
+ ]
+ },
+ "System.Reflection.Emit.ILGeneration/4.3.0": {
+ "sha512": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==",
+ "type": "package",
+ "path": "system.reflection.emit.ilgeneration/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/netcore50/System.Reflection.Emit.ILGeneration.dll",
+ "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll",
+ "lib/portable-net45+wp8/_._",
+ "lib/wp80/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netstandard1.0/System.Reflection.Emit.ILGeneration.dll",
+ "ref/netstandard1.0/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/de/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/es/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/fr/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/it/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/ja/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/ko/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/ru/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/zh-hans/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/zh-hant/System.Reflection.Emit.ILGeneration.xml",
+ "ref/portable-net45+wp8/_._",
+ "ref/wp80/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/aot/lib/netcore50/_._",
+ "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512",
+ "system.reflection.emit.ilgeneration.nuspec"
+ ]
+ },
+ "System.Reflection.Emit.Lightweight/4.3.0": {
+ "sha512": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==",
+ "type": "package",
+ "path": "system.reflection.emit.lightweight/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/netcore50/System.Reflection.Emit.Lightweight.dll",
+ "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll",
+ "lib/portable-net45+wp8/_._",
+ "lib/wp80/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netstandard1.0/System.Reflection.Emit.Lightweight.dll",
+ "ref/netstandard1.0/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/de/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/es/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/fr/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/it/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/ja/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/ko/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/ru/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/zh-hans/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/zh-hant/System.Reflection.Emit.Lightweight.xml",
+ "ref/portable-net45+wp8/_._",
+ "ref/wp80/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/aot/lib/netcore50/_._",
+ "system.reflection.emit.lightweight.4.3.0.nupkg.sha512",
+ "system.reflection.emit.lightweight.nuspec"
+ ]
+ },
+ "System.Reflection.Extensions/4.3.0": {
+ "sha512": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
+ "type": "package",
+ "path": "system.reflection.extensions/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Reflection.Extensions.dll",
+ "ref/netcore50/System.Reflection.Extensions.xml",
+ "ref/netcore50/de/System.Reflection.Extensions.xml",
+ "ref/netcore50/es/System.Reflection.Extensions.xml",
+ "ref/netcore50/fr/System.Reflection.Extensions.xml",
+ "ref/netcore50/it/System.Reflection.Extensions.xml",
+ "ref/netcore50/ja/System.Reflection.Extensions.xml",
+ "ref/netcore50/ko/System.Reflection.Extensions.xml",
+ "ref/netcore50/ru/System.Reflection.Extensions.xml",
+ "ref/netcore50/zh-hans/System.Reflection.Extensions.xml",
+ "ref/netcore50/zh-hant/System.Reflection.Extensions.xml",
+ "ref/netstandard1.0/System.Reflection.Extensions.dll",
+ "ref/netstandard1.0/System.Reflection.Extensions.xml",
+ "ref/netstandard1.0/de/System.Reflection.Extensions.xml",
+ "ref/netstandard1.0/es/System.Reflection.Extensions.xml",
+ "ref/netstandard1.0/fr/System.Reflection.Extensions.xml",
+ "ref/netstandard1.0/it/System.Reflection.Extensions.xml",
+ "ref/netstandard1.0/ja/System.Reflection.Extensions.xml",
+ "ref/netstandard1.0/ko/System.Reflection.Extensions.xml",
+ "ref/netstandard1.0/ru/System.Reflection.Extensions.xml",
+ "ref/netstandard1.0/zh-hans/System.Reflection.Extensions.xml",
+ "ref/netstandard1.0/zh-hant/System.Reflection.Extensions.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.reflection.extensions.4.3.0.nupkg.sha512",
+ "system.reflection.extensions.nuspec"
+ ]
+ },
+ "System.Reflection.Metadata/5.0.0": {
+ "sha512": "5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ==",
+ "type": "package",
+ "path": "system.reflection.metadata/5.0.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/net461/System.Reflection.Metadata.dll",
+ "lib/net461/System.Reflection.Metadata.xml",
+ "lib/netstandard1.1/System.Reflection.Metadata.dll",
+ "lib/netstandard1.1/System.Reflection.Metadata.xml",
+ "lib/netstandard2.0/System.Reflection.Metadata.dll",
+ "lib/netstandard2.0/System.Reflection.Metadata.xml",
+ "lib/portable-net45+win8/System.Reflection.Metadata.dll",
+ "lib/portable-net45+win8/System.Reflection.Metadata.xml",
+ "system.reflection.metadata.5.0.0.nupkg.sha512",
+ "system.reflection.metadata.nuspec",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "System.Reflection.Primitives/4.3.0": {
+ "sha512": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "type": "package",
+ "path": "system.reflection.primitives/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Reflection.Primitives.dll",
+ "ref/netcore50/System.Reflection.Primitives.xml",
+ "ref/netcore50/de/System.Reflection.Primitives.xml",
+ "ref/netcore50/es/System.Reflection.Primitives.xml",
+ "ref/netcore50/fr/System.Reflection.Primitives.xml",
+ "ref/netcore50/it/System.Reflection.Primitives.xml",
+ "ref/netcore50/ja/System.Reflection.Primitives.xml",
+ "ref/netcore50/ko/System.Reflection.Primitives.xml",
+ "ref/netcore50/ru/System.Reflection.Primitives.xml",
+ "ref/netcore50/zh-hans/System.Reflection.Primitives.xml",
+ "ref/netcore50/zh-hant/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/System.Reflection.Primitives.dll",
+ "ref/netstandard1.0/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/de/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/es/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/fr/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/it/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/ja/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/ko/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/ru/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/zh-hans/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/zh-hant/System.Reflection.Primitives.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.reflection.primitives.4.3.0.nupkg.sha512",
+ "system.reflection.primitives.nuspec"
+ ]
+ },
+ "System.Reflection.TypeExtensions/4.3.0": {
+ "sha512": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==",
+ "type": "package",
+ "path": "system.reflection.typeextensions/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/System.Reflection.TypeExtensions.dll",
+ "lib/net462/System.Reflection.TypeExtensions.dll",
+ "lib/netcore50/System.Reflection.TypeExtensions.dll",
+ "lib/netstandard1.5/System.Reflection.TypeExtensions.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/System.Reflection.TypeExtensions.dll",
+ "ref/net462/System.Reflection.TypeExtensions.dll",
+ "ref/netstandard1.3/System.Reflection.TypeExtensions.dll",
+ "ref/netstandard1.3/System.Reflection.TypeExtensions.xml",
+ "ref/netstandard1.3/de/System.Reflection.TypeExtensions.xml",
+ "ref/netstandard1.3/es/System.Reflection.TypeExtensions.xml",
+ "ref/netstandard1.3/fr/System.Reflection.TypeExtensions.xml",
+ "ref/netstandard1.3/it/System.Reflection.TypeExtensions.xml",
+ "ref/netstandard1.3/ja/System.Reflection.TypeExtensions.xml",
+ "ref/netstandard1.3/ko/System.Reflection.TypeExtensions.xml",
+ "ref/netstandard1.3/ru/System.Reflection.TypeExtensions.xml",
+ "ref/netstandard1.3/zh-hans/System.Reflection.TypeExtensions.xml",
+ "ref/netstandard1.3/zh-hant/System.Reflection.TypeExtensions.xml",
+ "ref/netstandard1.5/System.Reflection.TypeExtensions.dll",
+ "ref/netstandard1.5/System.Reflection.TypeExtensions.xml",
+ "ref/netstandard1.5/de/System.Reflection.TypeExtensions.xml",
+ "ref/netstandard1.5/es/System.Reflection.TypeExtensions.xml",
+ "ref/netstandard1.5/fr/System.Reflection.TypeExtensions.xml",
+ "ref/netstandard1.5/it/System.Reflection.TypeExtensions.xml",
+ "ref/netstandard1.5/ja/System.Reflection.TypeExtensions.xml",
+ "ref/netstandard1.5/ko/System.Reflection.TypeExtensions.xml",
+ "ref/netstandard1.5/ru/System.Reflection.TypeExtensions.xml",
+ "ref/netstandard1.5/zh-hans/System.Reflection.TypeExtensions.xml",
+ "ref/netstandard1.5/zh-hant/System.Reflection.TypeExtensions.xml",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/aot/lib/netcore50/System.Reflection.TypeExtensions.dll",
+ "system.reflection.typeextensions.4.3.0.nupkg.sha512",
+ "system.reflection.typeextensions.nuspec"
+ ]
+ },
+ "System.Resources.ResourceManager/4.3.0": {
+ "sha512": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "type": "package",
+ "path": "system.resources.resourcemanager/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Resources.ResourceManager.dll",
+ "ref/netcore50/System.Resources.ResourceManager.xml",
+ "ref/netcore50/de/System.Resources.ResourceManager.xml",
+ "ref/netcore50/es/System.Resources.ResourceManager.xml",
+ "ref/netcore50/fr/System.Resources.ResourceManager.xml",
+ "ref/netcore50/it/System.Resources.ResourceManager.xml",
+ "ref/netcore50/ja/System.Resources.ResourceManager.xml",
+ "ref/netcore50/ko/System.Resources.ResourceManager.xml",
+ "ref/netcore50/ru/System.Resources.ResourceManager.xml",
+ "ref/netcore50/zh-hans/System.Resources.ResourceManager.xml",
+ "ref/netcore50/zh-hant/System.Resources.ResourceManager.xml",
+ "ref/netstandard1.0/System.Resources.ResourceManager.dll",
+ "ref/netstandard1.0/System.Resources.ResourceManager.xml",
+ "ref/netstandard1.0/de/System.Resources.ResourceManager.xml",
+ "ref/netstandard1.0/es/System.Resources.ResourceManager.xml",
+ "ref/netstandard1.0/fr/System.Resources.ResourceManager.xml",
+ "ref/netstandard1.0/it/System.Resources.ResourceManager.xml",
+ "ref/netstandard1.0/ja/System.Resources.ResourceManager.xml",
+ "ref/netstandard1.0/ko/System.Resources.ResourceManager.xml",
+ "ref/netstandard1.0/ru/System.Resources.ResourceManager.xml",
+ "ref/netstandard1.0/zh-hans/System.Resources.ResourceManager.xml",
+ "ref/netstandard1.0/zh-hant/System.Resources.ResourceManager.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.resources.resourcemanager.4.3.0.nupkg.sha512",
+ "system.resources.resourcemanager.nuspec"
+ ]
+ },
+ "System.Runtime/4.3.0": {
+ "sha512": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "type": "package",
+ "path": "system.runtime/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/net462/System.Runtime.dll",
+ "lib/portable-net45+win8+wp80+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/net462/System.Runtime.dll",
+ "ref/netcore50/System.Runtime.dll",
+ "ref/netcore50/System.Runtime.xml",
+ "ref/netcore50/de/System.Runtime.xml",
+ "ref/netcore50/es/System.Runtime.xml",
+ "ref/netcore50/fr/System.Runtime.xml",
+ "ref/netcore50/it/System.Runtime.xml",
+ "ref/netcore50/ja/System.Runtime.xml",
+ "ref/netcore50/ko/System.Runtime.xml",
+ "ref/netcore50/ru/System.Runtime.xml",
+ "ref/netcore50/zh-hans/System.Runtime.xml",
+ "ref/netcore50/zh-hant/System.Runtime.xml",
+ "ref/netstandard1.0/System.Runtime.dll",
+ "ref/netstandard1.0/System.Runtime.xml",
+ "ref/netstandard1.0/de/System.Runtime.xml",
+ "ref/netstandard1.0/es/System.Runtime.xml",
+ "ref/netstandard1.0/fr/System.Runtime.xml",
+ "ref/netstandard1.0/it/System.Runtime.xml",
+ "ref/netstandard1.0/ja/System.Runtime.xml",
+ "ref/netstandard1.0/ko/System.Runtime.xml",
+ "ref/netstandard1.0/ru/System.Runtime.xml",
+ "ref/netstandard1.0/zh-hans/System.Runtime.xml",
+ "ref/netstandard1.0/zh-hant/System.Runtime.xml",
+ "ref/netstandard1.2/System.Runtime.dll",
+ "ref/netstandard1.2/System.Runtime.xml",
+ "ref/netstandard1.2/de/System.Runtime.xml",
+ "ref/netstandard1.2/es/System.Runtime.xml",
+ "ref/netstandard1.2/fr/System.Runtime.xml",
+ "ref/netstandard1.2/it/System.Runtime.xml",
+ "ref/netstandard1.2/ja/System.Runtime.xml",
+ "ref/netstandard1.2/ko/System.Runtime.xml",
+ "ref/netstandard1.2/ru/System.Runtime.xml",
+ "ref/netstandard1.2/zh-hans/System.Runtime.xml",
+ "ref/netstandard1.2/zh-hant/System.Runtime.xml",
+ "ref/netstandard1.3/System.Runtime.dll",
+ "ref/netstandard1.3/System.Runtime.xml",
+ "ref/netstandard1.3/de/System.Runtime.xml",
+ "ref/netstandard1.3/es/System.Runtime.xml",
+ "ref/netstandard1.3/fr/System.Runtime.xml",
+ "ref/netstandard1.3/it/System.Runtime.xml",
+ "ref/netstandard1.3/ja/System.Runtime.xml",
+ "ref/netstandard1.3/ko/System.Runtime.xml",
+ "ref/netstandard1.3/ru/System.Runtime.xml",
+ "ref/netstandard1.3/zh-hans/System.Runtime.xml",
+ "ref/netstandard1.3/zh-hant/System.Runtime.xml",
+ "ref/netstandard1.5/System.Runtime.dll",
+ "ref/netstandard1.5/System.Runtime.xml",
+ "ref/netstandard1.5/de/System.Runtime.xml",
+ "ref/netstandard1.5/es/System.Runtime.xml",
+ "ref/netstandard1.5/fr/System.Runtime.xml",
+ "ref/netstandard1.5/it/System.Runtime.xml",
+ "ref/netstandard1.5/ja/System.Runtime.xml",
+ "ref/netstandard1.5/ko/System.Runtime.xml",
+ "ref/netstandard1.5/ru/System.Runtime.xml",
+ "ref/netstandard1.5/zh-hans/System.Runtime.xml",
+ "ref/netstandard1.5/zh-hant/System.Runtime.xml",
+ "ref/portable-net45+win8+wp80+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.runtime.4.3.0.nupkg.sha512",
+ "system.runtime.nuspec"
+ ]
+ },
+ "System.Runtime.CompilerServices.Unsafe/6.1.0": {
+ "sha512": "5o/HZxx6RVqYlhKSq8/zronDkALJZUT2Vz0hx43f0gwe8mwlM0y2nYlqdBwLMzr262Bwvpikeb/yEwkAa5PADg==",
+ "type": "package",
+ "path": "system.runtime.compilerservices.unsafe/6.1.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "PACKAGE.md",
+ "buildTransitive/net461/System.Runtime.CompilerServices.Unsafe.targets",
+ "buildTransitive/net462/_._",
+ "buildTransitive/net6.0/_._",
+ "buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets",
+ "lib/net462/System.Runtime.CompilerServices.Unsafe.dll",
+ "lib/net462/System.Runtime.CompilerServices.Unsafe.xml",
+ "lib/net7.0/_._",
+ "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll",
+ "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml",
+ "system.runtime.compilerservices.unsafe.6.1.0.nupkg.sha512",
+ "system.runtime.compilerservices.unsafe.nuspec"
+ ]
+ },
+ "System.Runtime.Extensions/4.3.0": {
+ "sha512": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "type": "package",
+ "path": "system.runtime.extensions/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/net462/System.Runtime.Extensions.dll",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/net462/System.Runtime.Extensions.dll",
+ "ref/netcore50/System.Runtime.Extensions.dll",
+ "ref/netcore50/System.Runtime.Extensions.xml",
+ "ref/netcore50/de/System.Runtime.Extensions.xml",
+ "ref/netcore50/es/System.Runtime.Extensions.xml",
+ "ref/netcore50/fr/System.Runtime.Extensions.xml",
+ "ref/netcore50/it/System.Runtime.Extensions.xml",
+ "ref/netcore50/ja/System.Runtime.Extensions.xml",
+ "ref/netcore50/ko/System.Runtime.Extensions.xml",
+ "ref/netcore50/ru/System.Runtime.Extensions.xml",
+ "ref/netcore50/zh-hans/System.Runtime.Extensions.xml",
+ "ref/netcore50/zh-hant/System.Runtime.Extensions.xml",
+ "ref/netstandard1.0/System.Runtime.Extensions.dll",
+ "ref/netstandard1.0/System.Runtime.Extensions.xml",
+ "ref/netstandard1.0/de/System.Runtime.Extensions.xml",
+ "ref/netstandard1.0/es/System.Runtime.Extensions.xml",
+ "ref/netstandard1.0/fr/System.Runtime.Extensions.xml",
+ "ref/netstandard1.0/it/System.Runtime.Extensions.xml",
+ "ref/netstandard1.0/ja/System.Runtime.Extensions.xml",
+ "ref/netstandard1.0/ko/System.Runtime.Extensions.xml",
+ "ref/netstandard1.0/ru/System.Runtime.Extensions.xml",
+ "ref/netstandard1.0/zh-hans/System.Runtime.Extensions.xml",
+ "ref/netstandard1.0/zh-hant/System.Runtime.Extensions.xml",
+ "ref/netstandard1.3/System.Runtime.Extensions.dll",
+ "ref/netstandard1.3/System.Runtime.Extensions.xml",
+ "ref/netstandard1.3/de/System.Runtime.Extensions.xml",
+ "ref/netstandard1.3/es/System.Runtime.Extensions.xml",
+ "ref/netstandard1.3/fr/System.Runtime.Extensions.xml",
+ "ref/netstandard1.3/it/System.Runtime.Extensions.xml",
+ "ref/netstandard1.3/ja/System.Runtime.Extensions.xml",
+ "ref/netstandard1.3/ko/System.Runtime.Extensions.xml",
+ "ref/netstandard1.3/ru/System.Runtime.Extensions.xml",
+ "ref/netstandard1.3/zh-hans/System.Runtime.Extensions.xml",
+ "ref/netstandard1.3/zh-hant/System.Runtime.Extensions.xml",
+ "ref/netstandard1.5/System.Runtime.Extensions.dll",
+ "ref/netstandard1.5/System.Runtime.Extensions.xml",
+ "ref/netstandard1.5/de/System.Runtime.Extensions.xml",
+ "ref/netstandard1.5/es/System.Runtime.Extensions.xml",
+ "ref/netstandard1.5/fr/System.Runtime.Extensions.xml",
+ "ref/netstandard1.5/it/System.Runtime.Extensions.xml",
+ "ref/netstandard1.5/ja/System.Runtime.Extensions.xml",
+ "ref/netstandard1.5/ko/System.Runtime.Extensions.xml",
+ "ref/netstandard1.5/ru/System.Runtime.Extensions.xml",
+ "ref/netstandard1.5/zh-hans/System.Runtime.Extensions.xml",
+ "ref/netstandard1.5/zh-hant/System.Runtime.Extensions.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.runtime.extensions.4.3.0.nupkg.sha512",
+ "system.runtime.extensions.nuspec"
+ ]
+ },
+ "System.Runtime.Handles/4.3.0": {
+ "sha512": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "type": "package",
+ "path": "system.runtime.handles/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/_._",
+ "ref/netstandard1.3/System.Runtime.Handles.dll",
+ "ref/netstandard1.3/System.Runtime.Handles.xml",
+ "ref/netstandard1.3/de/System.Runtime.Handles.xml",
+ "ref/netstandard1.3/es/System.Runtime.Handles.xml",
+ "ref/netstandard1.3/fr/System.Runtime.Handles.xml",
+ "ref/netstandard1.3/it/System.Runtime.Handles.xml",
+ "ref/netstandard1.3/ja/System.Runtime.Handles.xml",
+ "ref/netstandard1.3/ko/System.Runtime.Handles.xml",
+ "ref/netstandard1.3/ru/System.Runtime.Handles.xml",
+ "ref/netstandard1.3/zh-hans/System.Runtime.Handles.xml",
+ "ref/netstandard1.3/zh-hant/System.Runtime.Handles.xml",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.runtime.handles.4.3.0.nupkg.sha512",
+ "system.runtime.handles.nuspec"
+ ]
+ },
+ "System.Runtime.InteropServices/4.3.0": {
+ "sha512": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "type": "package",
+ "path": "system.runtime.interopservices/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/net462/System.Runtime.InteropServices.dll",
+ "lib/net463/System.Runtime.InteropServices.dll",
+ "lib/portable-net45+win8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/net462/System.Runtime.InteropServices.dll",
+ "ref/net463/System.Runtime.InteropServices.dll",
+ "ref/netcore50/System.Runtime.InteropServices.dll",
+ "ref/netcore50/System.Runtime.InteropServices.xml",
+ "ref/netcore50/de/System.Runtime.InteropServices.xml",
+ "ref/netcore50/es/System.Runtime.InteropServices.xml",
+ "ref/netcore50/fr/System.Runtime.InteropServices.xml",
+ "ref/netcore50/it/System.Runtime.InteropServices.xml",
+ "ref/netcore50/ja/System.Runtime.InteropServices.xml",
+ "ref/netcore50/ko/System.Runtime.InteropServices.xml",
+ "ref/netcore50/ru/System.Runtime.InteropServices.xml",
+ "ref/netcore50/zh-hans/System.Runtime.InteropServices.xml",
+ "ref/netcore50/zh-hant/System.Runtime.InteropServices.xml",
+ "ref/netcoreapp1.1/System.Runtime.InteropServices.dll",
+ "ref/netstandard1.1/System.Runtime.InteropServices.dll",
+ "ref/netstandard1.1/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.1/de/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.1/es/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.1/fr/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.1/it/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.1/ja/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.1/ko/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.1/ru/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.1/zh-hans/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.1/zh-hant/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.2/System.Runtime.InteropServices.dll",
+ "ref/netstandard1.2/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.2/de/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.2/es/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.2/fr/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.2/it/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.2/ja/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.2/ko/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.2/ru/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.2/zh-hans/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.2/zh-hant/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.3/System.Runtime.InteropServices.dll",
+ "ref/netstandard1.3/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.3/de/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.3/es/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.3/fr/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.3/it/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.3/ja/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.3/ko/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.3/ru/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.3/zh-hans/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.3/zh-hant/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.5/System.Runtime.InteropServices.dll",
+ "ref/netstandard1.5/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.5/de/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.5/es/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.5/fr/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.5/it/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.5/ja/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.5/ko/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.5/ru/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.5/zh-hans/System.Runtime.InteropServices.xml",
+ "ref/netstandard1.5/zh-hant/System.Runtime.InteropServices.xml",
+ "ref/portable-net45+win8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.runtime.interopservices.4.3.0.nupkg.sha512",
+ "system.runtime.interopservices.nuspec"
+ ]
+ },
+ "System.Runtime.InteropServices.RuntimeInformation/4.3.0": {
+ "sha512": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
+ "type": "package",
+ "path": "system.runtime.interopservices.runtimeinformation/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/System.Runtime.InteropServices.RuntimeInformation.dll",
+ "lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll",
+ "lib/win8/System.Runtime.InteropServices.RuntimeInformation.dll",
+ "lib/wpa81/System.Runtime.InteropServices.RuntimeInformation.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/aot/lib/netcore50/System.Runtime.InteropServices.RuntimeInformation.dll",
+ "runtimes/unix/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll",
+ "runtimes/win/lib/net45/System.Runtime.InteropServices.RuntimeInformation.dll",
+ "runtimes/win/lib/netcore50/System.Runtime.InteropServices.RuntimeInformation.dll",
+ "runtimes/win/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll",
+ "system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512",
+ "system.runtime.interopservices.runtimeinformation.nuspec"
+ ]
+ },
+ "System.Runtime.Numerics/4.3.0": {
+ "sha512": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==",
+ "type": "package",
+ "path": "system.runtime.numerics/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/netcore50/System.Runtime.Numerics.dll",
+ "lib/netstandard1.3/System.Runtime.Numerics.dll",
+ "lib/portable-net45+win8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Runtime.Numerics.dll",
+ "ref/netcore50/System.Runtime.Numerics.xml",
+ "ref/netcore50/de/System.Runtime.Numerics.xml",
+ "ref/netcore50/es/System.Runtime.Numerics.xml",
+ "ref/netcore50/fr/System.Runtime.Numerics.xml",
+ "ref/netcore50/it/System.Runtime.Numerics.xml",
+ "ref/netcore50/ja/System.Runtime.Numerics.xml",
+ "ref/netcore50/ko/System.Runtime.Numerics.xml",
+ "ref/netcore50/ru/System.Runtime.Numerics.xml",
+ "ref/netcore50/zh-hans/System.Runtime.Numerics.xml",
+ "ref/netcore50/zh-hant/System.Runtime.Numerics.xml",
+ "ref/netstandard1.1/System.Runtime.Numerics.dll",
+ "ref/netstandard1.1/System.Runtime.Numerics.xml",
+ "ref/netstandard1.1/de/System.Runtime.Numerics.xml",
+ "ref/netstandard1.1/es/System.Runtime.Numerics.xml",
+ "ref/netstandard1.1/fr/System.Runtime.Numerics.xml",
+ "ref/netstandard1.1/it/System.Runtime.Numerics.xml",
+ "ref/netstandard1.1/ja/System.Runtime.Numerics.xml",
+ "ref/netstandard1.1/ko/System.Runtime.Numerics.xml",
+ "ref/netstandard1.1/ru/System.Runtime.Numerics.xml",
+ "ref/netstandard1.1/zh-hans/System.Runtime.Numerics.xml",
+ "ref/netstandard1.1/zh-hant/System.Runtime.Numerics.xml",
+ "ref/portable-net45+win8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.runtime.numerics.4.3.0.nupkg.sha512",
+ "system.runtime.numerics.nuspec"
+ ]
+ },
+ "System.Security.AccessControl/4.5.0": {
+ "sha512": "vW8Eoq0TMyz5vAG/6ce483x/CP83fgm4SJe5P8Tb1tZaobcvPrbMEL7rhH1DRdrYbbb6F0vq3OlzmK0Pkwks5A==",
+ "type": "package",
+ "path": "system.security.accesscontrol/4.5.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/net46/System.Security.AccessControl.dll",
+ "lib/net461/System.Security.AccessControl.dll",
+ "lib/netstandard1.3/System.Security.AccessControl.dll",
+ "lib/netstandard2.0/System.Security.AccessControl.dll",
+ "lib/uap10.0.16299/_._",
+ "ref/net46/System.Security.AccessControl.dll",
+ "ref/net461/System.Security.AccessControl.dll",
+ "ref/net461/System.Security.AccessControl.xml",
+ "ref/netstandard1.3/System.Security.AccessControl.dll",
+ "ref/netstandard1.3/System.Security.AccessControl.xml",
+ "ref/netstandard1.3/de/System.Security.AccessControl.xml",
+ "ref/netstandard1.3/es/System.Security.AccessControl.xml",
+ "ref/netstandard1.3/fr/System.Security.AccessControl.xml",
+ "ref/netstandard1.3/it/System.Security.AccessControl.xml",
+ "ref/netstandard1.3/ja/System.Security.AccessControl.xml",
+ "ref/netstandard1.3/ko/System.Security.AccessControl.xml",
+ "ref/netstandard1.3/ru/System.Security.AccessControl.xml",
+ "ref/netstandard1.3/zh-hans/System.Security.AccessControl.xml",
+ "ref/netstandard1.3/zh-hant/System.Security.AccessControl.xml",
+ "ref/netstandard2.0/System.Security.AccessControl.dll",
+ "ref/netstandard2.0/System.Security.AccessControl.xml",
+ "ref/uap10.0.16299/_._",
+ "runtimes/win/lib/net46/System.Security.AccessControl.dll",
+ "runtimes/win/lib/net461/System.Security.AccessControl.dll",
+ "runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.dll",
+ "runtimes/win/lib/netstandard1.3/System.Security.AccessControl.dll",
+ "runtimes/win/lib/uap10.0.16299/_._",
+ "system.security.accesscontrol.4.5.0.nupkg.sha512",
+ "system.security.accesscontrol.nuspec",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "System.Security.Cryptography.Algorithms/4.3.0": {
+ "sha512": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
+ "type": "package",
+ "path": "system.security.cryptography.algorithms/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/System.Security.Cryptography.Algorithms.dll",
+ "lib/net461/System.Security.Cryptography.Algorithms.dll",
+ "lib/net463/System.Security.Cryptography.Algorithms.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/System.Security.Cryptography.Algorithms.dll",
+ "ref/net461/System.Security.Cryptography.Algorithms.dll",
+ "ref/net463/System.Security.Cryptography.Algorithms.dll",
+ "ref/netstandard1.3/System.Security.Cryptography.Algorithms.dll",
+ "ref/netstandard1.4/System.Security.Cryptography.Algorithms.dll",
+ "ref/netstandard1.6/System.Security.Cryptography.Algorithms.dll",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/osx/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll",
+ "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll",
+ "runtimes/win/lib/net46/System.Security.Cryptography.Algorithms.dll",
+ "runtimes/win/lib/net461/System.Security.Cryptography.Algorithms.dll",
+ "runtimes/win/lib/net463/System.Security.Cryptography.Algorithms.dll",
+ "runtimes/win/lib/netcore50/System.Security.Cryptography.Algorithms.dll",
+ "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll",
+ "system.security.cryptography.algorithms.4.3.0.nupkg.sha512",
+ "system.security.cryptography.algorithms.nuspec"
+ ]
+ },
+ "System.Security.Cryptography.Cng/5.0.0": {
+ "sha512": "jIMXsKn94T9JY7PvPq/tMfqa6GAaHpElRDpmG+SuL+D3+sTw2M8VhnibKnN8Tq+4JqbPJ/f+BwtLeDMEnzAvRg==",
+ "type": "package",
+ "path": "system.security.cryptography.cng/5.0.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/System.Security.Cryptography.Cng.dll",
+ "lib/net461/System.Security.Cryptography.Cng.dll",
+ "lib/net461/System.Security.Cryptography.Cng.xml",
+ "lib/net462/System.Security.Cryptography.Cng.dll",
+ "lib/net462/System.Security.Cryptography.Cng.xml",
+ "lib/net47/System.Security.Cryptography.Cng.dll",
+ "lib/net47/System.Security.Cryptography.Cng.xml",
+ "lib/netcoreapp2.1/System.Security.Cryptography.Cng.dll",
+ "lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll",
+ "lib/netcoreapp3.0/System.Security.Cryptography.Cng.xml",
+ "lib/netstandard1.3/System.Security.Cryptography.Cng.dll",
+ "lib/netstandard1.4/System.Security.Cryptography.Cng.dll",
+ "lib/netstandard1.6/System.Security.Cryptography.Cng.dll",
+ "lib/netstandard2.0/System.Security.Cryptography.Cng.dll",
+ "lib/netstandard2.0/System.Security.Cryptography.Cng.xml",
+ "lib/netstandard2.1/System.Security.Cryptography.Cng.dll",
+ "lib/netstandard2.1/System.Security.Cryptography.Cng.xml",
+ "lib/uap10.0.16299/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/System.Security.Cryptography.Cng.dll",
+ "ref/net461/System.Security.Cryptography.Cng.dll",
+ "ref/net461/System.Security.Cryptography.Cng.xml",
+ "ref/net462/System.Security.Cryptography.Cng.dll",
+ "ref/net462/System.Security.Cryptography.Cng.xml",
+ "ref/net47/System.Security.Cryptography.Cng.dll",
+ "ref/net47/System.Security.Cryptography.Cng.xml",
+ "ref/netcoreapp2.0/System.Security.Cryptography.Cng.dll",
+ "ref/netcoreapp2.0/System.Security.Cryptography.Cng.xml",
+ "ref/netcoreapp2.1/System.Security.Cryptography.Cng.dll",
+ "ref/netcoreapp2.1/System.Security.Cryptography.Cng.xml",
+ "ref/netcoreapp3.0/System.Security.Cryptography.Cng.dll",
+ "ref/netcoreapp3.0/System.Security.Cryptography.Cng.xml",
+ "ref/netstandard1.3/System.Security.Cryptography.Cng.dll",
+ "ref/netstandard1.4/System.Security.Cryptography.Cng.dll",
+ "ref/netstandard1.6/System.Security.Cryptography.Cng.dll",
+ "ref/netstandard2.0/System.Security.Cryptography.Cng.dll",
+ "ref/netstandard2.0/System.Security.Cryptography.Cng.xml",
+ "ref/netstandard2.1/System.Security.Cryptography.Cng.dll",
+ "ref/netstandard2.1/System.Security.Cryptography.Cng.xml",
+ "ref/uap10.0.16299/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/win/lib/net46/System.Security.Cryptography.Cng.dll",
+ "runtimes/win/lib/net461/System.Security.Cryptography.Cng.dll",
+ "runtimes/win/lib/net461/System.Security.Cryptography.Cng.xml",
+ "runtimes/win/lib/net462/System.Security.Cryptography.Cng.dll",
+ "runtimes/win/lib/net462/System.Security.Cryptography.Cng.xml",
+ "runtimes/win/lib/net47/System.Security.Cryptography.Cng.dll",
+ "runtimes/win/lib/net47/System.Security.Cryptography.Cng.xml",
+ "runtimes/win/lib/netcoreapp2.0/System.Security.Cryptography.Cng.dll",
+ "runtimes/win/lib/netcoreapp2.1/System.Security.Cryptography.Cng.dll",
+ "runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll",
+ "runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Cng.xml",
+ "runtimes/win/lib/netstandard1.4/System.Security.Cryptography.Cng.dll",
+ "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Cng.dll",
+ "runtimes/win/lib/uap10.0.16299/_._",
+ "system.security.cryptography.cng.5.0.0.nupkg.sha512",
+ "system.security.cryptography.cng.nuspec",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "System.Security.Cryptography.Csp/4.3.0": {
+ "sha512": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
+ "type": "package",
+ "path": "system.security.cryptography.csp/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/System.Security.Cryptography.Csp.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/System.Security.Cryptography.Csp.dll",
+ "ref/netstandard1.3/System.Security.Cryptography.Csp.dll",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/unix/lib/netstandard1.3/System.Security.Cryptography.Csp.dll",
+ "runtimes/win/lib/net46/System.Security.Cryptography.Csp.dll",
+ "runtimes/win/lib/netcore50/_._",
+ "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.Csp.dll",
+ "system.security.cryptography.csp.4.3.0.nupkg.sha512",
+ "system.security.cryptography.csp.nuspec"
+ ]
+ },
+ "System.Security.Cryptography.Encoding/4.3.0": {
+ "sha512": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
+ "type": "package",
+ "path": "system.security.cryptography.encoding/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/System.Security.Cryptography.Encoding.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/System.Security.Cryptography.Encoding.dll",
+ "ref/netstandard1.3/System.Security.Cryptography.Encoding.dll",
+ "ref/netstandard1.3/System.Security.Cryptography.Encoding.xml",
+ "ref/netstandard1.3/de/System.Security.Cryptography.Encoding.xml",
+ "ref/netstandard1.3/es/System.Security.Cryptography.Encoding.xml",
+ "ref/netstandard1.3/fr/System.Security.Cryptography.Encoding.xml",
+ "ref/netstandard1.3/it/System.Security.Cryptography.Encoding.xml",
+ "ref/netstandard1.3/ja/System.Security.Cryptography.Encoding.xml",
+ "ref/netstandard1.3/ko/System.Security.Cryptography.Encoding.xml",
+ "ref/netstandard1.3/ru/System.Security.Cryptography.Encoding.xml",
+ "ref/netstandard1.3/zh-hans/System.Security.Cryptography.Encoding.xml",
+ "ref/netstandard1.3/zh-hant/System.Security.Cryptography.Encoding.xml",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/unix/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll",
+ "runtimes/win/lib/net46/System.Security.Cryptography.Encoding.dll",
+ "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll",
+ "system.security.cryptography.encoding.4.3.0.nupkg.sha512",
+ "system.security.cryptography.encoding.nuspec"
+ ]
+ },
+ "System.Security.Cryptography.OpenSsl/4.3.0": {
+ "sha512": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
+ "type": "package",
+ "path": "system.security.cryptography.openssl/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll",
+ "ref/netstandard1.6/System.Security.Cryptography.OpenSsl.dll",
+ "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll",
+ "system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "system.security.cryptography.openssl.nuspec"
+ ]
+ },
+ "System.Security.Cryptography.Pkcs/5.0.0": {
+ "sha512": "9TPLGjBCGKmNvG8pjwPeuYy0SMVmGZRwlTZvyPHDbYv/DRkoeumJdfumaaDNQzVGMEmbWtg07zUpSW9q70IlDQ==",
+ "type": "package",
+ "path": "system.security.cryptography.pkcs/5.0.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/net46/System.Security.Cryptography.Pkcs.dll",
+ "lib/net461/System.Security.Cryptography.Pkcs.dll",
+ "lib/net461/System.Security.Cryptography.Pkcs.xml",
+ "lib/netcoreapp2.1/System.Security.Cryptography.Pkcs.dll",
+ "lib/netcoreapp3.0/System.Security.Cryptography.Pkcs.dll",
+ "lib/netcoreapp3.0/System.Security.Cryptography.Pkcs.xml",
+ "lib/netstandard1.3/System.Security.Cryptography.Pkcs.dll",
+ "lib/netstandard2.0/System.Security.Cryptography.Pkcs.dll",
+ "lib/netstandard2.0/System.Security.Cryptography.Pkcs.xml",
+ "lib/netstandard2.1/System.Security.Cryptography.Pkcs.dll",
+ "lib/netstandard2.1/System.Security.Cryptography.Pkcs.xml",
+ "ref/net46/System.Security.Cryptography.Pkcs.dll",
+ "ref/net461/System.Security.Cryptography.Pkcs.dll",
+ "ref/net461/System.Security.Cryptography.Pkcs.xml",
+ "ref/netcoreapp2.1/System.Security.Cryptography.Pkcs.dll",
+ "ref/netcoreapp2.1/System.Security.Cryptography.Pkcs.xml",
+ "ref/netcoreapp3.0/System.Security.Cryptography.Pkcs.dll",
+ "ref/netcoreapp3.0/System.Security.Cryptography.Pkcs.xml",
+ "ref/netstandard1.3/System.Security.Cryptography.Pkcs.dll",
+ "ref/netstandard2.0/System.Security.Cryptography.Pkcs.dll",
+ "ref/netstandard2.0/System.Security.Cryptography.Pkcs.xml",
+ "ref/netstandard2.1/System.Security.Cryptography.Pkcs.dll",
+ "ref/netstandard2.1/System.Security.Cryptography.Pkcs.xml",
+ "runtimes/win/lib/net46/System.Security.Cryptography.Pkcs.dll",
+ "runtimes/win/lib/net461/System.Security.Cryptography.Pkcs.dll",
+ "runtimes/win/lib/net461/System.Security.Cryptography.Pkcs.xml",
+ "runtimes/win/lib/netcoreapp2.1/System.Security.Cryptography.Pkcs.dll",
+ "runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Pkcs.dll",
+ "runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Pkcs.xml",
+ "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.Pkcs.dll",
+ "runtimes/win/lib/netstandard2.0/System.Security.Cryptography.Pkcs.dll",
+ "runtimes/win/lib/netstandard2.0/System.Security.Cryptography.Pkcs.xml",
+ "runtimes/win/lib/netstandard2.1/System.Security.Cryptography.Pkcs.dll",
+ "runtimes/win/lib/netstandard2.1/System.Security.Cryptography.Pkcs.xml",
+ "system.security.cryptography.pkcs.5.0.0.nupkg.sha512",
+ "system.security.cryptography.pkcs.nuspec",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "System.Security.Cryptography.Primitives/4.3.0": {
+ "sha512": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==",
+ "type": "package",
+ "path": "system.security.cryptography.primitives/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/System.Security.Cryptography.Primitives.dll",
+ "lib/netstandard1.3/System.Security.Cryptography.Primitives.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/System.Security.Cryptography.Primitives.dll",
+ "ref/netstandard1.3/System.Security.Cryptography.Primitives.dll",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.security.cryptography.primitives.4.3.0.nupkg.sha512",
+ "system.security.cryptography.primitives.nuspec"
+ ]
+ },
+ "System.Security.Cryptography.ProtectedData/4.4.0": {
+ "sha512": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog==",
+ "type": "package",
+ "path": "system.security.cryptography.protecteddata/4.4.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/System.Security.Cryptography.ProtectedData.dll",
+ "lib/net461/System.Security.Cryptography.ProtectedData.dll",
+ "lib/netstandard1.3/System.Security.Cryptography.ProtectedData.dll",
+ "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/System.Security.Cryptography.ProtectedData.dll",
+ "ref/net461/System.Security.Cryptography.ProtectedData.dll",
+ "ref/net461/System.Security.Cryptography.ProtectedData.xml",
+ "ref/netstandard1.3/System.Security.Cryptography.ProtectedData.dll",
+ "ref/netstandard2.0/System.Security.Cryptography.ProtectedData.dll",
+ "ref/netstandard2.0/System.Security.Cryptography.ProtectedData.xml",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/win/lib/net46/System.Security.Cryptography.ProtectedData.dll",
+ "runtimes/win/lib/net461/System.Security.Cryptography.ProtectedData.dll",
+ "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.ProtectedData.dll",
+ "runtimes/win/lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll",
+ "system.security.cryptography.protecteddata.4.4.0.nupkg.sha512",
+ "system.security.cryptography.protecteddata.nuspec",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "System.Security.Cryptography.X509Certificates/4.3.0": {
+ "sha512": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
+ "type": "package",
+ "path": "system.security.cryptography.x509certificates/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/System.Security.Cryptography.X509Certificates.dll",
+ "lib/net461/System.Security.Cryptography.X509Certificates.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/System.Security.Cryptography.X509Certificates.dll",
+ "ref/net461/System.Security.Cryptography.X509Certificates.dll",
+ "ref/netstandard1.3/System.Security.Cryptography.X509Certificates.dll",
+ "ref/netstandard1.3/System.Security.Cryptography.X509Certificates.xml",
+ "ref/netstandard1.3/de/System.Security.Cryptography.X509Certificates.xml",
+ "ref/netstandard1.3/es/System.Security.Cryptography.X509Certificates.xml",
+ "ref/netstandard1.3/fr/System.Security.Cryptography.X509Certificates.xml",
+ "ref/netstandard1.3/it/System.Security.Cryptography.X509Certificates.xml",
+ "ref/netstandard1.3/ja/System.Security.Cryptography.X509Certificates.xml",
+ "ref/netstandard1.3/ko/System.Security.Cryptography.X509Certificates.xml",
+ "ref/netstandard1.3/ru/System.Security.Cryptography.X509Certificates.xml",
+ "ref/netstandard1.3/zh-hans/System.Security.Cryptography.X509Certificates.xml",
+ "ref/netstandard1.3/zh-hant/System.Security.Cryptography.X509Certificates.xml",
+ "ref/netstandard1.4/System.Security.Cryptography.X509Certificates.dll",
+ "ref/netstandard1.4/System.Security.Cryptography.X509Certificates.xml",
+ "ref/netstandard1.4/de/System.Security.Cryptography.X509Certificates.xml",
+ "ref/netstandard1.4/es/System.Security.Cryptography.X509Certificates.xml",
+ "ref/netstandard1.4/fr/System.Security.Cryptography.X509Certificates.xml",
+ "ref/netstandard1.4/it/System.Security.Cryptography.X509Certificates.xml",
+ "ref/netstandard1.4/ja/System.Security.Cryptography.X509Certificates.xml",
+ "ref/netstandard1.4/ko/System.Security.Cryptography.X509Certificates.xml",
+ "ref/netstandard1.4/ru/System.Security.Cryptography.X509Certificates.xml",
+ "ref/netstandard1.4/zh-hans/System.Security.Cryptography.X509Certificates.xml",
+ "ref/netstandard1.4/zh-hant/System.Security.Cryptography.X509Certificates.xml",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.X509Certificates.dll",
+ "runtimes/win/lib/net46/System.Security.Cryptography.X509Certificates.dll",
+ "runtimes/win/lib/net461/System.Security.Cryptography.X509Certificates.dll",
+ "runtimes/win/lib/netcore50/System.Security.Cryptography.X509Certificates.dll",
+ "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.X509Certificates.dll",
+ "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512",
+ "system.security.cryptography.x509certificates.nuspec"
+ ]
+ },
+ "System.Security.Permissions/4.5.0": {
+ "sha512": "9gdyuARhUR7H+p5CjyUB/zPk7/Xut3wUSP8NJQB6iZr8L3XUXTMdoLeVAg9N4rqF8oIpE7MpdqHdDHQ7XgJe0g==",
+ "type": "package",
+ "path": "system.security.permissions/4.5.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/net461/System.Security.Permissions.dll",
+ "lib/netstandard2.0/System.Security.Permissions.dll",
+ "ref/net461/System.Security.Permissions.dll",
+ "ref/net461/System.Security.Permissions.xml",
+ "ref/netstandard2.0/System.Security.Permissions.dll",
+ "ref/netstandard2.0/System.Security.Permissions.xml",
+ "system.security.permissions.4.5.0.nupkg.sha512",
+ "system.security.permissions.nuspec",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "System.Security.Principal.Windows/4.5.0": {
+ "sha512": "U77HfRXlZlOeIXd//Yoj6Jnk8AXlbeisf1oq1os+hxOGVnuG+lGSfGqTwTZBoORFF6j/0q7HXIl8cqwQ9aUGqQ==",
+ "type": "package",
+ "path": "system.security.principal.windows/4.5.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/net46/System.Security.Principal.Windows.dll",
+ "lib/net461/System.Security.Principal.Windows.dll",
+ "lib/netstandard1.3/System.Security.Principal.Windows.dll",
+ "lib/netstandard2.0/System.Security.Principal.Windows.dll",
+ "lib/uap10.0.16299/_._",
+ "ref/net46/System.Security.Principal.Windows.dll",
+ "ref/net461/System.Security.Principal.Windows.dll",
+ "ref/net461/System.Security.Principal.Windows.xml",
+ "ref/netstandard1.3/System.Security.Principal.Windows.dll",
+ "ref/netstandard1.3/System.Security.Principal.Windows.xml",
+ "ref/netstandard1.3/de/System.Security.Principal.Windows.xml",
+ "ref/netstandard1.3/es/System.Security.Principal.Windows.xml",
+ "ref/netstandard1.3/fr/System.Security.Principal.Windows.xml",
+ "ref/netstandard1.3/it/System.Security.Principal.Windows.xml",
+ "ref/netstandard1.3/ja/System.Security.Principal.Windows.xml",
+ "ref/netstandard1.3/ko/System.Security.Principal.Windows.xml",
+ "ref/netstandard1.3/ru/System.Security.Principal.Windows.xml",
+ "ref/netstandard1.3/zh-hans/System.Security.Principal.Windows.xml",
+ "ref/netstandard1.3/zh-hant/System.Security.Principal.Windows.xml",
+ "ref/netstandard2.0/System.Security.Principal.Windows.dll",
+ "ref/netstandard2.0/System.Security.Principal.Windows.xml",
+ "ref/uap10.0.16299/_._",
+ "runtimes/unix/lib/netcoreapp2.0/System.Security.Principal.Windows.dll",
+ "runtimes/win/lib/net46/System.Security.Principal.Windows.dll",
+ "runtimes/win/lib/net461/System.Security.Principal.Windows.dll",
+ "runtimes/win/lib/netcoreapp2.0/System.Security.Principal.Windows.dll",
+ "runtimes/win/lib/netstandard1.3/System.Security.Principal.Windows.dll",
+ "runtimes/win/lib/uap10.0.16299/_._",
+ "system.security.principal.windows.4.5.0.nupkg.sha512",
+ "system.security.principal.windows.nuspec",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "System.Text.Encoding/4.3.0": {
+ "sha512": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "type": "package",
+ "path": "system.text.encoding/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Text.Encoding.dll",
+ "ref/netcore50/System.Text.Encoding.xml",
+ "ref/netcore50/de/System.Text.Encoding.xml",
+ "ref/netcore50/es/System.Text.Encoding.xml",
+ "ref/netcore50/fr/System.Text.Encoding.xml",
+ "ref/netcore50/it/System.Text.Encoding.xml",
+ "ref/netcore50/ja/System.Text.Encoding.xml",
+ "ref/netcore50/ko/System.Text.Encoding.xml",
+ "ref/netcore50/ru/System.Text.Encoding.xml",
+ "ref/netcore50/zh-hans/System.Text.Encoding.xml",
+ "ref/netcore50/zh-hant/System.Text.Encoding.xml",
+ "ref/netstandard1.0/System.Text.Encoding.dll",
+ "ref/netstandard1.0/System.Text.Encoding.xml",
+ "ref/netstandard1.0/de/System.Text.Encoding.xml",
+ "ref/netstandard1.0/es/System.Text.Encoding.xml",
+ "ref/netstandard1.0/fr/System.Text.Encoding.xml",
+ "ref/netstandard1.0/it/System.Text.Encoding.xml",
+ "ref/netstandard1.0/ja/System.Text.Encoding.xml",
+ "ref/netstandard1.0/ko/System.Text.Encoding.xml",
+ "ref/netstandard1.0/ru/System.Text.Encoding.xml",
+ "ref/netstandard1.0/zh-hans/System.Text.Encoding.xml",
+ "ref/netstandard1.0/zh-hant/System.Text.Encoding.xml",
+ "ref/netstandard1.3/System.Text.Encoding.dll",
+ "ref/netstandard1.3/System.Text.Encoding.xml",
+ "ref/netstandard1.3/de/System.Text.Encoding.xml",
+ "ref/netstandard1.3/es/System.Text.Encoding.xml",
+ "ref/netstandard1.3/fr/System.Text.Encoding.xml",
+ "ref/netstandard1.3/it/System.Text.Encoding.xml",
+ "ref/netstandard1.3/ja/System.Text.Encoding.xml",
+ "ref/netstandard1.3/ko/System.Text.Encoding.xml",
+ "ref/netstandard1.3/ru/System.Text.Encoding.xml",
+ "ref/netstandard1.3/zh-hans/System.Text.Encoding.xml",
+ "ref/netstandard1.3/zh-hant/System.Text.Encoding.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.text.encoding.4.3.0.nupkg.sha512",
+ "system.text.encoding.nuspec"
+ ]
+ },
+ "System.Text.Encoding.CodePages/4.5.1": {
+ "sha512": "4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==",
+ "type": "package",
+ "path": "system.text.encoding.codepages/4.5.1",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/System.Text.Encoding.CodePages.dll",
+ "lib/net461/System.Text.Encoding.CodePages.dll",
+ "lib/netstandard1.3/System.Text.Encoding.CodePages.dll",
+ "lib/netstandard2.0/System.Text.Encoding.CodePages.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/win/lib/net461/System.Text.Encoding.CodePages.dll",
+ "runtimes/win/lib/netcoreapp2.0/System.Text.Encoding.CodePages.dll",
+ "runtimes/win/lib/netstandard1.3/System.Text.Encoding.CodePages.dll",
+ "runtimes/win/lib/netstandard2.0/System.Text.Encoding.CodePages.dll",
+ "system.text.encoding.codepages.4.5.1.nupkg.sha512",
+ "system.text.encoding.codepages.nuspec",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "System.Text.Encoding.Extensions/4.3.0": {
+ "sha512": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "type": "package",
+ "path": "system.text.encoding.extensions/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Text.Encoding.Extensions.dll",
+ "ref/netcore50/System.Text.Encoding.Extensions.xml",
+ "ref/netcore50/de/System.Text.Encoding.Extensions.xml",
+ "ref/netcore50/es/System.Text.Encoding.Extensions.xml",
+ "ref/netcore50/fr/System.Text.Encoding.Extensions.xml",
+ "ref/netcore50/it/System.Text.Encoding.Extensions.xml",
+ "ref/netcore50/ja/System.Text.Encoding.Extensions.xml",
+ "ref/netcore50/ko/System.Text.Encoding.Extensions.xml",
+ "ref/netcore50/ru/System.Text.Encoding.Extensions.xml",
+ "ref/netcore50/zh-hans/System.Text.Encoding.Extensions.xml",
+ "ref/netcore50/zh-hant/System.Text.Encoding.Extensions.xml",
+ "ref/netstandard1.0/System.Text.Encoding.Extensions.dll",
+ "ref/netstandard1.0/System.Text.Encoding.Extensions.xml",
+ "ref/netstandard1.0/de/System.Text.Encoding.Extensions.xml",
+ "ref/netstandard1.0/es/System.Text.Encoding.Extensions.xml",
+ "ref/netstandard1.0/fr/System.Text.Encoding.Extensions.xml",
+ "ref/netstandard1.0/it/System.Text.Encoding.Extensions.xml",
+ "ref/netstandard1.0/ja/System.Text.Encoding.Extensions.xml",
+ "ref/netstandard1.0/ko/System.Text.Encoding.Extensions.xml",
+ "ref/netstandard1.0/ru/System.Text.Encoding.Extensions.xml",
+ "ref/netstandard1.0/zh-hans/System.Text.Encoding.Extensions.xml",
+ "ref/netstandard1.0/zh-hant/System.Text.Encoding.Extensions.xml",
+ "ref/netstandard1.3/System.Text.Encoding.Extensions.dll",
+ "ref/netstandard1.3/System.Text.Encoding.Extensions.xml",
+ "ref/netstandard1.3/de/System.Text.Encoding.Extensions.xml",
+ "ref/netstandard1.3/es/System.Text.Encoding.Extensions.xml",
+ "ref/netstandard1.3/fr/System.Text.Encoding.Extensions.xml",
+ "ref/netstandard1.3/it/System.Text.Encoding.Extensions.xml",
+ "ref/netstandard1.3/ja/System.Text.Encoding.Extensions.xml",
+ "ref/netstandard1.3/ko/System.Text.Encoding.Extensions.xml",
+ "ref/netstandard1.3/ru/System.Text.Encoding.Extensions.xml",
+ "ref/netstandard1.3/zh-hans/System.Text.Encoding.Extensions.xml",
+ "ref/netstandard1.3/zh-hant/System.Text.Encoding.Extensions.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.text.encoding.extensions.4.3.0.nupkg.sha512",
+ "system.text.encoding.extensions.nuspec"
+ ]
+ },
+ "System.Text.Encodings.Web/8.0.0": {
+ "sha512": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==",
+ "type": "package",
+ "path": "system.text.encodings.web/8.0.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "buildTransitive/net461/System.Text.Encodings.Web.targets",
+ "buildTransitive/net462/_._",
+ "buildTransitive/net6.0/_._",
+ "buildTransitive/netcoreapp2.0/System.Text.Encodings.Web.targets",
+ "lib/net462/System.Text.Encodings.Web.dll",
+ "lib/net462/System.Text.Encodings.Web.xml",
+ "lib/net6.0/System.Text.Encodings.Web.dll",
+ "lib/net6.0/System.Text.Encodings.Web.xml",
+ "lib/net7.0/System.Text.Encodings.Web.dll",
+ "lib/net7.0/System.Text.Encodings.Web.xml",
+ "lib/net8.0/System.Text.Encodings.Web.dll",
+ "lib/net8.0/System.Text.Encodings.Web.xml",
+ "lib/netstandard2.0/System.Text.Encodings.Web.dll",
+ "lib/netstandard2.0/System.Text.Encodings.Web.xml",
+ "runtimes/browser/lib/net6.0/System.Text.Encodings.Web.dll",
+ "runtimes/browser/lib/net6.0/System.Text.Encodings.Web.xml",
+ "runtimes/browser/lib/net7.0/System.Text.Encodings.Web.dll",
+ "runtimes/browser/lib/net7.0/System.Text.Encodings.Web.xml",
+ "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll",
+ "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.xml",
+ "system.text.encodings.web.8.0.0.nupkg.sha512",
+ "system.text.encodings.web.nuspec",
+ "useSharedDesignerContext.txt"
+ ]
+ },
+ "System.Text.Json/8.0.4": {
+ "sha512": "bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==",
+ "type": "package",
+ "path": "system.text.json/8.0.4",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "LICENSE.TXT",
+ "PACKAGE.md",
+ "THIRD-PARTY-NOTICES.TXT",
+ "analyzers/dotnet/roslyn3.11/cs/System.Text.Json.SourceGeneration.dll",
+ "analyzers/dotnet/roslyn3.11/cs/cs/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/de/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/es/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/fr/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/it/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/ja/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/ko/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/pl/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/ru/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/tr/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/System.Text.Json.SourceGeneration.dll",
+ "analyzers/dotnet/roslyn4.0/cs/cs/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/de/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/es/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/fr/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/it/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/ja/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/ko/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/pl/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/ru/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/tr/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/System.Text.Json.SourceGeneration.dll",
+ "analyzers/dotnet/roslyn4.4/cs/cs/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/de/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/es/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/fr/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/it/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/ja/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/ko/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/pl/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/ru/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/tr/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll",
+ "buildTransitive/net461/System.Text.Json.targets",
+ "buildTransitive/net462/System.Text.Json.targets",
+ "buildTransitive/net6.0/System.Text.Json.targets",
+ "buildTransitive/netcoreapp2.0/System.Text.Json.targets",
+ "buildTransitive/netstandard2.0/System.Text.Json.targets",
+ "lib/net462/System.Text.Json.dll",
+ "lib/net462/System.Text.Json.xml",
+ "lib/net6.0/System.Text.Json.dll",
+ "lib/net6.0/System.Text.Json.xml",
+ "lib/net7.0/System.Text.Json.dll",
+ "lib/net7.0/System.Text.Json.xml",
+ "lib/net8.0/System.Text.Json.dll",
+ "lib/net8.0/System.Text.Json.xml",
+ "lib/netstandard2.0/System.Text.Json.dll",
+ "lib/netstandard2.0/System.Text.Json.xml",
+ "system.text.json.8.0.4.nupkg.sha512",
+ "system.text.json.nuspec",
+ "useSharedDesignerContext.txt"
+ ]
+ },
+ "System.Text.RegularExpressions/4.3.0": {
+ "sha512": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==",
+ "type": "package",
+ "path": "system.text.regularexpressions/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/net463/System.Text.RegularExpressions.dll",
+ "lib/netcore50/System.Text.RegularExpressions.dll",
+ "lib/netstandard1.6/System.Text.RegularExpressions.dll",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/net463/System.Text.RegularExpressions.dll",
+ "ref/netcore50/System.Text.RegularExpressions.dll",
+ "ref/netcore50/System.Text.RegularExpressions.xml",
+ "ref/netcore50/de/System.Text.RegularExpressions.xml",
+ "ref/netcore50/es/System.Text.RegularExpressions.xml",
+ "ref/netcore50/fr/System.Text.RegularExpressions.xml",
+ "ref/netcore50/it/System.Text.RegularExpressions.xml",
+ "ref/netcore50/ja/System.Text.RegularExpressions.xml",
+ "ref/netcore50/ko/System.Text.RegularExpressions.xml",
+ "ref/netcore50/ru/System.Text.RegularExpressions.xml",
+ "ref/netcore50/zh-hans/System.Text.RegularExpressions.xml",
+ "ref/netcore50/zh-hant/System.Text.RegularExpressions.xml",
+ "ref/netcoreapp1.1/System.Text.RegularExpressions.dll",
+ "ref/netstandard1.0/System.Text.RegularExpressions.dll",
+ "ref/netstandard1.0/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.0/de/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.0/es/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.0/fr/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.0/it/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.0/ja/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.0/ko/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.0/ru/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.0/zh-hans/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.0/zh-hant/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.3/System.Text.RegularExpressions.dll",
+ "ref/netstandard1.3/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.3/de/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.3/es/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.3/fr/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.3/it/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.3/ja/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.3/ko/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.3/ru/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.3/zh-hans/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.3/zh-hant/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.6/System.Text.RegularExpressions.dll",
+ "ref/netstandard1.6/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.6/de/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.6/es/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.6/fr/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.6/it/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.6/ja/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.6/ko/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.6/ru/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.6/zh-hans/System.Text.RegularExpressions.xml",
+ "ref/netstandard1.6/zh-hant/System.Text.RegularExpressions.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.text.regularexpressions.4.3.0.nupkg.sha512",
+ "system.text.regularexpressions.nuspec"
+ ]
+ },
+ "System.Threading/4.3.0": {
+ "sha512": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
+ "type": "package",
+ "path": "system.threading/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/netcore50/System.Threading.dll",
+ "lib/netstandard1.3/System.Threading.dll",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Threading.dll",
+ "ref/netcore50/System.Threading.xml",
+ "ref/netcore50/de/System.Threading.xml",
+ "ref/netcore50/es/System.Threading.xml",
+ "ref/netcore50/fr/System.Threading.xml",
+ "ref/netcore50/it/System.Threading.xml",
+ "ref/netcore50/ja/System.Threading.xml",
+ "ref/netcore50/ko/System.Threading.xml",
+ "ref/netcore50/ru/System.Threading.xml",
+ "ref/netcore50/zh-hans/System.Threading.xml",
+ "ref/netcore50/zh-hant/System.Threading.xml",
+ "ref/netstandard1.0/System.Threading.dll",
+ "ref/netstandard1.0/System.Threading.xml",
+ "ref/netstandard1.0/de/System.Threading.xml",
+ "ref/netstandard1.0/es/System.Threading.xml",
+ "ref/netstandard1.0/fr/System.Threading.xml",
+ "ref/netstandard1.0/it/System.Threading.xml",
+ "ref/netstandard1.0/ja/System.Threading.xml",
+ "ref/netstandard1.0/ko/System.Threading.xml",
+ "ref/netstandard1.0/ru/System.Threading.xml",
+ "ref/netstandard1.0/zh-hans/System.Threading.xml",
+ "ref/netstandard1.0/zh-hant/System.Threading.xml",
+ "ref/netstandard1.3/System.Threading.dll",
+ "ref/netstandard1.3/System.Threading.xml",
+ "ref/netstandard1.3/de/System.Threading.xml",
+ "ref/netstandard1.3/es/System.Threading.xml",
+ "ref/netstandard1.3/fr/System.Threading.xml",
+ "ref/netstandard1.3/it/System.Threading.xml",
+ "ref/netstandard1.3/ja/System.Threading.xml",
+ "ref/netstandard1.3/ko/System.Threading.xml",
+ "ref/netstandard1.3/ru/System.Threading.xml",
+ "ref/netstandard1.3/zh-hans/System.Threading.xml",
+ "ref/netstandard1.3/zh-hant/System.Threading.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/aot/lib/netcore50/System.Threading.dll",
+ "system.threading.4.3.0.nupkg.sha512",
+ "system.threading.nuspec"
+ ]
+ },
+ "System.Threading.Tasks/4.3.0": {
+ "sha512": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "type": "package",
+ "path": "system.threading.tasks/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Threading.Tasks.dll",
+ "ref/netcore50/System.Threading.Tasks.xml",
+ "ref/netcore50/de/System.Threading.Tasks.xml",
+ "ref/netcore50/es/System.Threading.Tasks.xml",
+ "ref/netcore50/fr/System.Threading.Tasks.xml",
+ "ref/netcore50/it/System.Threading.Tasks.xml",
+ "ref/netcore50/ja/System.Threading.Tasks.xml",
+ "ref/netcore50/ko/System.Threading.Tasks.xml",
+ "ref/netcore50/ru/System.Threading.Tasks.xml",
+ "ref/netcore50/zh-hans/System.Threading.Tasks.xml",
+ "ref/netcore50/zh-hant/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/System.Threading.Tasks.dll",
+ "ref/netstandard1.0/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/de/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/es/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/fr/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/it/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/ja/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/ko/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/ru/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/zh-hans/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/zh-hant/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/System.Threading.Tasks.dll",
+ "ref/netstandard1.3/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/de/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/es/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/fr/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/it/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/ja/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/ko/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/ru/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/zh-hans/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/zh-hant/System.Threading.Tasks.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.threading.tasks.4.3.0.nupkg.sha512",
+ "system.threading.tasks.nuspec"
+ ]
+ },
+ "System.Threading.Tasks.Dataflow/4.6.0": {
+ "sha512": "2hRjGu2r2jxRZ55wmcHO/WbdX+YAOz9x6FE8xqkHZgPaoFMKQZRe9dk8xTZIas8fRjxRmzawnTEWIrhlM+Un7w==",
+ "type": "package",
+ "path": "system.threading.tasks.dataflow/4.6.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/netstandard1.0/System.Threading.Tasks.Dataflow.XML",
+ "lib/netstandard1.0/System.Threading.Tasks.Dataflow.dll",
+ "lib/netstandard1.1/System.Threading.Tasks.Dataflow.XML",
+ "lib/netstandard1.1/System.Threading.Tasks.Dataflow.dll",
+ "system.threading.tasks.dataflow.4.6.0.nupkg.sha512",
+ "system.threading.tasks.dataflow.nuspec"
+ ]
+ },
+ "System.Threading.Tasks.Extensions/4.5.4": {
+ "sha512": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==",
+ "type": "package",
+ "path": "system.threading.tasks.extensions/4.5.4",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net461/System.Threading.Tasks.Extensions.dll",
+ "lib/net461/System.Threading.Tasks.Extensions.xml",
+ "lib/netcoreapp2.1/_._",
+ "lib/netstandard1.0/System.Threading.Tasks.Extensions.dll",
+ "lib/netstandard1.0/System.Threading.Tasks.Extensions.xml",
+ "lib/netstandard2.0/System.Threading.Tasks.Extensions.dll",
+ "lib/netstandard2.0/System.Threading.Tasks.Extensions.xml",
+ "lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll",
+ "lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/netcoreapp2.1/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.threading.tasks.extensions.4.5.4.nupkg.sha512",
+ "system.threading.tasks.extensions.nuspec",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "System.Threading.Timer/4.3.0": {
+ "sha512": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==",
+ "type": "package",
+ "path": "system.threading.timer/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net451/_._",
+ "lib/portable-net451+win81+wpa81/_._",
+ "lib/win81/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net451/_._",
+ "ref/netcore50/System.Threading.Timer.dll",
+ "ref/netcore50/System.Threading.Timer.xml",
+ "ref/netcore50/de/System.Threading.Timer.xml",
+ "ref/netcore50/es/System.Threading.Timer.xml",
+ "ref/netcore50/fr/System.Threading.Timer.xml",
+ "ref/netcore50/it/System.Threading.Timer.xml",
+ "ref/netcore50/ja/System.Threading.Timer.xml",
+ "ref/netcore50/ko/System.Threading.Timer.xml",
+ "ref/netcore50/ru/System.Threading.Timer.xml",
+ "ref/netcore50/zh-hans/System.Threading.Timer.xml",
+ "ref/netcore50/zh-hant/System.Threading.Timer.xml",
+ "ref/netstandard1.2/System.Threading.Timer.dll",
+ "ref/netstandard1.2/System.Threading.Timer.xml",
+ "ref/netstandard1.2/de/System.Threading.Timer.xml",
+ "ref/netstandard1.2/es/System.Threading.Timer.xml",
+ "ref/netstandard1.2/fr/System.Threading.Timer.xml",
+ "ref/netstandard1.2/it/System.Threading.Timer.xml",
+ "ref/netstandard1.2/ja/System.Threading.Timer.xml",
+ "ref/netstandard1.2/ko/System.Threading.Timer.xml",
+ "ref/netstandard1.2/ru/System.Threading.Timer.xml",
+ "ref/netstandard1.2/zh-hans/System.Threading.Timer.xml",
+ "ref/netstandard1.2/zh-hant/System.Threading.Timer.xml",
+ "ref/portable-net451+win81+wpa81/_._",
+ "ref/win81/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.threading.timer.4.3.0.nupkg.sha512",
+ "system.threading.timer.nuspec"
+ ]
+ },
+ "System.Xml.ReaderWriter/4.3.0": {
+ "sha512": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==",
+ "type": "package",
+ "path": "system.xml.readerwriter/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/net46/System.Xml.ReaderWriter.dll",
+ "lib/netcore50/System.Xml.ReaderWriter.dll",
+ "lib/netstandard1.3/System.Xml.ReaderWriter.dll",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/net46/System.Xml.ReaderWriter.dll",
+ "ref/netcore50/System.Xml.ReaderWriter.dll",
+ "ref/netcore50/System.Xml.ReaderWriter.xml",
+ "ref/netcore50/de/System.Xml.ReaderWriter.xml",
+ "ref/netcore50/es/System.Xml.ReaderWriter.xml",
+ "ref/netcore50/fr/System.Xml.ReaderWriter.xml",
+ "ref/netcore50/it/System.Xml.ReaderWriter.xml",
+ "ref/netcore50/ja/System.Xml.ReaderWriter.xml",
+ "ref/netcore50/ko/System.Xml.ReaderWriter.xml",
+ "ref/netcore50/ru/System.Xml.ReaderWriter.xml",
+ "ref/netcore50/zh-hans/System.Xml.ReaderWriter.xml",
+ "ref/netcore50/zh-hant/System.Xml.ReaderWriter.xml",
+ "ref/netstandard1.0/System.Xml.ReaderWriter.dll",
+ "ref/netstandard1.0/System.Xml.ReaderWriter.xml",
+ "ref/netstandard1.0/de/System.Xml.ReaderWriter.xml",
+ "ref/netstandard1.0/es/System.Xml.ReaderWriter.xml",
+ "ref/netstandard1.0/fr/System.Xml.ReaderWriter.xml",
+ "ref/netstandard1.0/it/System.Xml.ReaderWriter.xml",
+ "ref/netstandard1.0/ja/System.Xml.ReaderWriter.xml",
+ "ref/netstandard1.0/ko/System.Xml.ReaderWriter.xml",
+ "ref/netstandard1.0/ru/System.Xml.ReaderWriter.xml",
+ "ref/netstandard1.0/zh-hans/System.Xml.ReaderWriter.xml",
+ "ref/netstandard1.0/zh-hant/System.Xml.ReaderWriter.xml",
+ "ref/netstandard1.3/System.Xml.ReaderWriter.dll",
+ "ref/netstandard1.3/System.Xml.ReaderWriter.xml",
+ "ref/netstandard1.3/de/System.Xml.ReaderWriter.xml",
+ "ref/netstandard1.3/es/System.Xml.ReaderWriter.xml",
+ "ref/netstandard1.3/fr/System.Xml.ReaderWriter.xml",
+ "ref/netstandard1.3/it/System.Xml.ReaderWriter.xml",
+ "ref/netstandard1.3/ja/System.Xml.ReaderWriter.xml",
+ "ref/netstandard1.3/ko/System.Xml.ReaderWriter.xml",
+ "ref/netstandard1.3/ru/System.Xml.ReaderWriter.xml",
+ "ref/netstandard1.3/zh-hans/System.Xml.ReaderWriter.xml",
+ "ref/netstandard1.3/zh-hant/System.Xml.ReaderWriter.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.xml.readerwriter.4.3.0.nupkg.sha512",
+ "system.xml.readerwriter.nuspec"
+ ]
+ },
+ "System.Xml.XDocument/4.3.0": {
+ "sha512": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==",
+ "type": "package",
+ "path": "system.xml.xdocument/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/netcore50/System.Xml.XDocument.dll",
+ "lib/netstandard1.3/System.Xml.XDocument.dll",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Xml.XDocument.dll",
+ "ref/netcore50/System.Xml.XDocument.xml",
+ "ref/netcore50/de/System.Xml.XDocument.xml",
+ "ref/netcore50/es/System.Xml.XDocument.xml",
+ "ref/netcore50/fr/System.Xml.XDocument.xml",
+ "ref/netcore50/it/System.Xml.XDocument.xml",
+ "ref/netcore50/ja/System.Xml.XDocument.xml",
+ "ref/netcore50/ko/System.Xml.XDocument.xml",
+ "ref/netcore50/ru/System.Xml.XDocument.xml",
+ "ref/netcore50/zh-hans/System.Xml.XDocument.xml",
+ "ref/netcore50/zh-hant/System.Xml.XDocument.xml",
+ "ref/netstandard1.0/System.Xml.XDocument.dll",
+ "ref/netstandard1.0/System.Xml.XDocument.xml",
+ "ref/netstandard1.0/de/System.Xml.XDocument.xml",
+ "ref/netstandard1.0/es/System.Xml.XDocument.xml",
+ "ref/netstandard1.0/fr/System.Xml.XDocument.xml",
+ "ref/netstandard1.0/it/System.Xml.XDocument.xml",
+ "ref/netstandard1.0/ja/System.Xml.XDocument.xml",
+ "ref/netstandard1.0/ko/System.Xml.XDocument.xml",
+ "ref/netstandard1.0/ru/System.Xml.XDocument.xml",
+ "ref/netstandard1.0/zh-hans/System.Xml.XDocument.xml",
+ "ref/netstandard1.0/zh-hant/System.Xml.XDocument.xml",
+ "ref/netstandard1.3/System.Xml.XDocument.dll",
+ "ref/netstandard1.3/System.Xml.XDocument.xml",
+ "ref/netstandard1.3/de/System.Xml.XDocument.xml",
+ "ref/netstandard1.3/es/System.Xml.XDocument.xml",
+ "ref/netstandard1.3/fr/System.Xml.XDocument.xml",
+ "ref/netstandard1.3/it/System.Xml.XDocument.xml",
+ "ref/netstandard1.3/ja/System.Xml.XDocument.xml",
+ "ref/netstandard1.3/ko/System.Xml.XDocument.xml",
+ "ref/netstandard1.3/ru/System.Xml.XDocument.xml",
+ "ref/netstandard1.3/zh-hans/System.Xml.XDocument.xml",
+ "ref/netstandard1.3/zh-hant/System.Xml.XDocument.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.xml.xdocument.4.3.0.nupkg.sha512",
+ "system.xml.xdocument.nuspec"
+ ]
+ },
+ "Terminal.Gui/2.0.0-v2-develop.2329": {
+ "sha512": "1WRHeZKN5tnF8DUu0vHz5pGZIY9ETwufKbUHCoH3UTcIeOlduhRCpBhTyJWri/fePsUkij2euFMGX2yHfk4h/A==",
+ "type": "package",
+ "path": "terminal.gui/2.0.0-v2-develop.2329",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "README.md",
+ "lib/net8.0/Terminal.Gui.dll",
+ "lib/net8.0/Terminal.Gui.xml",
+ "lib/net8.0/fr-FR/Terminal.Gui.resources.dll",
+ "lib/net8.0/ja-JP/Terminal.Gui.resources.dll",
+ "lib/net8.0/pt-PT/Terminal.Gui.resources.dll",
+ "lib/net8.0/zh-Hans/Terminal.Gui.resources.dll",
+ "logo.png",
+ "terminal.gui.2.0.0-v2-develop.2329.nupkg.sha512",
+ "terminal.gui.nuspec"
+ ]
+ },
+ "TestableIO.System.IO.Abstractions/21.0.22": {
+ "sha512": "yq3I8rUjNoo4JTOT3jbGfTM5VfowaSYiooDO2bfvQe6XGVyZiSIzaKyCmSnuUEyuktw6zzuVE1lJnUeDhJWtyQ==",
+ "type": "package",
+ "path": "testableio.system.io.abstractions/21.0.22",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "README.md",
+ "icon_256x256.png",
+ "lib/net462/TestableIO.System.IO.Abstractions.dll",
+ "lib/net462/TestableIO.System.IO.Abstractions.xml",
+ "lib/net6.0/TestableIO.System.IO.Abstractions.dll",
+ "lib/net6.0/TestableIO.System.IO.Abstractions.xml",
+ "lib/net7.0/TestableIO.System.IO.Abstractions.dll",
+ "lib/net7.0/TestableIO.System.IO.Abstractions.xml",
+ "lib/net8.0/TestableIO.System.IO.Abstractions.dll",
+ "lib/net8.0/TestableIO.System.IO.Abstractions.xml",
+ "lib/netstandard2.0/TestableIO.System.IO.Abstractions.dll",
+ "lib/netstandard2.0/TestableIO.System.IO.Abstractions.xml",
+ "lib/netstandard2.1/TestableIO.System.IO.Abstractions.dll",
+ "lib/netstandard2.1/TestableIO.System.IO.Abstractions.xml",
+ "testableio.system.io.abstractions.21.0.22.nupkg.sha512",
+ "testableio.system.io.abstractions.nuspec"
+ ]
+ },
+ "TestableIO.System.IO.Abstractions.Wrappers/21.0.22": {
+ "sha512": "ETpw1B6VOsQ5zbfqxqLKjITnMvB9M0K5/bK8qJc6jih+tnlKQmtnnOPSS+OeKCqsZDYeHxPNp4ytQPJS3R+WXA==",
+ "type": "package",
+ "path": "testableio.system.io.abstractions.wrappers/21.0.22",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "README.md",
+ "icon_256x256.png",
+ "lib/net462/TestableIO.System.IO.Abstractions.Wrappers.dll",
+ "lib/net462/TestableIO.System.IO.Abstractions.Wrappers.xml",
+ "lib/net6.0/TestableIO.System.IO.Abstractions.Wrappers.dll",
+ "lib/net6.0/TestableIO.System.IO.Abstractions.Wrappers.xml",
+ "lib/net7.0/TestableIO.System.IO.Abstractions.Wrappers.dll",
+ "lib/net7.0/TestableIO.System.IO.Abstractions.Wrappers.xml",
+ "lib/net8.0/TestableIO.System.IO.Abstractions.Wrappers.dll",
+ "lib/net8.0/TestableIO.System.IO.Abstractions.Wrappers.xml",
+ "lib/netstandard2.0/TestableIO.System.IO.Abstractions.Wrappers.dll",
+ "lib/netstandard2.0/TestableIO.System.IO.Abstractions.Wrappers.xml",
+ "lib/netstandard2.1/TestableIO.System.IO.Abstractions.Wrappers.dll",
+ "lib/netstandard2.1/TestableIO.System.IO.Abstractions.Wrappers.xml",
+ "testableio.system.io.abstractions.wrappers.21.0.22.nupkg.sha512",
+ "testableio.system.io.abstractions.wrappers.nuspec"
+ ]
+ },
+ "Wcwidth/2.0.0": {
+ "sha512": "eGZYH/V+X1DwEXrPUlUcAp8pU5a38d8IvaQzq4pclJxF1x8bizssIo4uWc3qxmS64BNGK5WnDxyBYJz84+Msqg==",
+ "type": "package",
+ "path": "wcwidth/2.0.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "lib/net6.0/Wcwidth.dll",
+ "lib/net6.0/Wcwidth.xml",
+ "lib/net7.0/Wcwidth.dll",
+ "lib/net7.0/Wcwidth.xml",
+ "lib/net8.0/Wcwidth.dll",
+ "lib/net8.0/Wcwidth.xml",
+ "lib/netstandard2.0/Wcwidth.dll",
+ "lib/netstandard2.0/Wcwidth.xml",
+ "wcwidth.2.0.0.nupkg.sha512",
+ "wcwidth.nuspec"
+ ]
+ },
+ "StgSharp.Common/1.0.0": {
+ "type": "project",
+ "path": "../StgSharp.Common/StgSharp.Common.csproj",
+ "msbuildProject": "../StgSharp.Common/StgSharp.Common.csproj"
+ },
+ "StgSharp.Model/1.0.0": {
+ "type": "project",
+ "path": "../StgSharp.Model/StgSharp.Model.csproj",
+ "msbuildProject": "../StgSharp.Model/StgSharp.Model.csproj"
+ },
+ "StgSharp.Script/1.0.0": {
+ "type": "project",
+ "path": "../StgSharp.Script/StgSharp.Script.csproj",
+ "msbuildProject": "../StgSharp.Script/StgSharp.Script.csproj"
+ },
+ "StgSharp.TerminalDialogue/1.0.0": {
+ "type": "project",
+ "path": "../StgSharp.TerminalDialogue/StgSharp.TerminalDialogue.csproj",
+ "msbuildProject": "../StgSharp.TerminalDialogue/StgSharp.TerminalDialogue.csproj"
+ }
+ },
+ "projectFileDependencyGroups": {
+ "net8.0": [
+ "MSTest.TestAdapter >= 3.1.1",
+ "MSTest.TestFramework >= 3.1.1",
+ "Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.MSTest >= 1.1.2",
+ "Microsoft.NET.Test.Sdk >= 17.8.0",
+ "StgSharp.Common >= 1.0.0",
+ "StgSharp.Model >= 1.0.0",
+ "StgSharp.Script >= 1.0.0",
+ "StgSharp.TerminalDialogue >= 1.0.0",
+ "coverlet.collector >= 6.0.0"
+ ]
+ },
+ "packageFolders": {
+ "C:\\Users\\Youmu\\.nuget\\packages\\": {},
+ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {}
+ },
+ "project": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\STgSharpTest\\StgSharpTest.csproj",
+ "projectName": "StgSharpTest",
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\STgSharpTest\\StgSharpTest.csproj",
+ "packagesPath": "C:\\Users\\Youmu\\.nuget\\packages\\",
+ "outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\STgSharpTest\\obj\\",
+ "projectStyle": "PackageReference",
+ "fallbackFolders": [
+ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
+ ],
+ "configFilePaths": [
+ "C:\\Users\\Youmu\\AppData\\Roaming\\NuGet\\NuGet.Config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
+ ],
+ "originalTargetFrameworks": [
+ "net8.0"
+ ],
+ "sources": {
+ "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+ "C:\\Program Files\\dotnet\\library-packs": {},
+ "D:\\Programmer\\NugetLocal": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "projectReferences": {
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj"
+ },
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Model\\StgSharp.Model.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Model\\StgSharp.Model.csproj"
+ },
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Script\\StgSharp.Script.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Script\\StgSharp.Script.csproj"
+ },
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj"
+ }
+ }
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "direct"
+ }
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "dependencies": {
+ "MSTest.TestAdapter": {
+ "target": "Package",
+ "version": "[3.1.1, )"
+ },
+ "MSTest.TestFramework": {
+ "target": "Package",
+ "version": "[3.1.1, )"
+ },
+ "Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.MSTest": {
+ "target": "Package",
+ "version": "[1.1.2, )"
+ },
+ "Microsoft.NET.Test.Sdk": {
+ "target": "Package",
+ "version": "[17.8.0, )"
+ },
+ "coverlet.collector": {
+ "target": "Package",
+ "version": "[6.0.0, )"
+ }
+ },
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "frameworkReferences": {
+ "Microsoft.NETCore.App": {
+ "privateAssets": "all"
+ }
+ },
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400/PortableRuntimeIdentifierGraph.json"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/STgSharpTest/obj/project.nuget.cache b/STgSharpTest/obj/project.nuget.cache
new file mode 100644
index 00000000..8f0d06b9
--- /dev/null
+++ b/STgSharpTest/obj/project.nuget.cache
@@ -0,0 +1,143 @@
+{
+ "version": 2,
+ "dgSpecHash": "eL0j2ZwbPvM=",
+ "success": true,
+ "projectFilePath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\STgSharpTest\\StgSharpTest.csproj",
+ "expectedPackageFiles": [
+ "C:\\Users\\Youmu\\.nuget\\packages\\colorhelper\\1.8.1\\colorhelper.1.8.1.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\communitytoolkit.highperformance\\8.4.0\\communitytoolkit.highperformance.8.4.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\coverlet.collector\\6.0.0\\coverlet.collector.6.0.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\diffplex\\1.7.2\\diffplex.1.7.2.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\humanizer.core\\2.2.0\\humanizer.core.2.2.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\1.1.1\\microsoft.bcl.asyncinterfaces.1.1.1.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.codeanalysis.analyzer.testing\\1.1.2\\microsoft.codeanalysis.analyzer.testing.1.1.2.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.codeanalysis.analyzers\\3.0.0\\microsoft.codeanalysis.analyzers.3.0.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.codeanalysis.common\\3.8.0\\microsoft.codeanalysis.common.3.8.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.codeanalysis.csharp\\3.8.0\\microsoft.codeanalysis.csharp.3.8.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.codeanalysis.csharp.sourcegenerators.testing\\1.1.2\\microsoft.codeanalysis.csharp.sourcegenerators.testing.1.1.2.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.codeanalysis.csharp.sourcegenerators.testing.mstest\\1.1.2\\microsoft.codeanalysis.csharp.sourcegenerators.testing.mstest.1.1.2.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.codeanalysis.csharp.workspaces\\3.8.0\\microsoft.codeanalysis.csharp.workspaces.3.8.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.codeanalysis.sourcegenerators.testing\\1.1.2\\microsoft.codeanalysis.sourcegenerators.testing.1.1.2.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.codeanalysis.testing.verifiers.mstest\\1.1.2\\microsoft.codeanalysis.testing.verifiers.mstest.1.1.2.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.codeanalysis.workspaces.common\\3.8.0\\microsoft.codeanalysis.workspaces.common.3.8.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.codecoverage\\17.8.0\\microsoft.codecoverage.17.8.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.csharp\\4.7.0\\microsoft.csharp.4.7.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.net.test.sdk\\17.8.0\\microsoft.net.test.sdk.17.8.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.netcore.platforms\\2.1.2\\microsoft.netcore.platforms.2.1.2.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.testplatform.objectmodel\\17.8.0\\microsoft.testplatform.objectmodel.17.8.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.testplatform.testhost\\17.8.0\\microsoft.testplatform.testhost.17.8.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.visualstudio.composition\\16.1.8\\microsoft.visualstudio.composition.16.1.8.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.visualstudio.composition.netfxattributes\\16.1.8\\microsoft.visualstudio.composition.netfxattributes.16.1.8.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.visualstudio.validation\\15.0.82\\microsoft.visualstudio.validation.15.0.82.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.win32.primitives\\4.3.0\\microsoft.win32.primitives.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\mstest.testadapter\\3.1.1\\mstest.testadapter.3.1.1.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\mstest.testframework\\3.1.1\\mstest.testframework.3.1.1.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\netstandard.library\\1.6.1\\netstandard.library.1.6.1.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\newtonsoft.json\\13.0.1\\newtonsoft.json.13.0.1.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\nuget.common\\6.3.4\\nuget.common.6.3.4.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\nuget.configuration\\6.3.4\\nuget.configuration.6.3.4.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\nuget.frameworks\\6.5.0\\nuget.frameworks.6.5.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\nuget.packaging\\6.3.4\\nuget.packaging.6.3.4.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\nuget.protocol\\6.3.4\\nuget.protocol.6.3.4.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\nuget.resolver\\6.3.4\\nuget.resolver.6.3.4.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\nuget.versioning\\6.3.4\\nuget.versioning.6.3.4.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\runtime.native.system\\4.3.0\\runtime.native.system.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\runtime.native.system.io.compression\\4.3.0\\runtime.native.system.io.compression.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\runtime.native.system.net.http\\4.3.0\\runtime.native.system.net.http.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\runtime.native.system.security.cryptography.apple\\4.3.0\\runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple\\4.3.0\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.appcontext\\4.3.0\\system.appcontext.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.buffers\\4.3.0\\system.buffers.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.collections\\4.3.0\\system.collections.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.collections.concurrent\\4.3.0\\system.collections.concurrent.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.collections.immutable\\5.0.0\\system.collections.immutable.5.0.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.componentmodel.composition\\4.5.0\\system.componentmodel.composition.4.5.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.composition\\1.0.31\\system.composition.1.0.31.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.composition.attributedmodel\\1.0.31\\system.composition.attributedmodel.1.0.31.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.composition.convention\\1.0.31\\system.composition.convention.1.0.31.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.composition.hosting\\1.0.31\\system.composition.hosting.1.0.31.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.composition.runtime\\1.0.31\\system.composition.runtime.1.0.31.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.composition.typedparts\\1.0.31\\system.composition.typedparts.1.0.31.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.console\\4.3.0\\system.console.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.diagnostics.debug\\4.3.0\\system.diagnostics.debug.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.diagnostics.diagnosticsource\\4.3.0\\system.diagnostics.diagnosticsource.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.diagnostics.tools\\4.3.0\\system.diagnostics.tools.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.diagnostics.tracing\\4.3.0\\system.diagnostics.tracing.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.dynamic.runtime\\4.0.11\\system.dynamic.runtime.4.0.11.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.formats.asn1\\5.0.0\\system.formats.asn1.5.0.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.globalization\\4.3.0\\system.globalization.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.globalization.calendars\\4.3.0\\system.globalization.calendars.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.globalization.extensions\\4.3.0\\system.globalization.extensions.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.io\\4.3.0\\system.io.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.io.abstractions\\21.0.22\\system.io.abstractions.21.0.22.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.io.compression\\4.3.0\\system.io.compression.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.io.compression.zipfile\\4.3.0\\system.io.compression.zipfile.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.io.filesystem\\4.3.0\\system.io.filesystem.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.io.filesystem.primitives\\4.3.0\\system.io.filesystem.primitives.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.linq\\4.3.0\\system.linq.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.linq.expressions\\4.3.0\\system.linq.expressions.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.memory\\4.5.4\\system.memory.4.5.4.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.net.http\\4.3.0\\system.net.http.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.net.primitives\\4.3.0\\system.net.primitives.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.net.sockets\\4.3.0\\system.net.sockets.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.objectmodel\\4.3.0\\system.objectmodel.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.reflection\\4.3.0\\system.reflection.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.reflection.emit\\4.3.0\\system.reflection.emit.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.reflection.emit.ilgeneration\\4.3.0\\system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.reflection.emit.lightweight\\4.3.0\\system.reflection.emit.lightweight.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.reflection.extensions\\4.3.0\\system.reflection.extensions.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.reflection.metadata\\5.0.0\\system.reflection.metadata.5.0.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.reflection.primitives\\4.3.0\\system.reflection.primitives.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.reflection.typeextensions\\4.3.0\\system.reflection.typeextensions.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.resources.resourcemanager\\4.3.0\\system.resources.resourcemanager.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\6.1.0\\system.runtime.compilerservices.unsafe.6.1.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.runtime.extensions\\4.3.0\\system.runtime.extensions.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.runtime.handles\\4.3.0\\system.runtime.handles.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.runtime.interopservices\\4.3.0\\system.runtime.interopservices.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.runtime.interopservices.runtimeinformation\\4.3.0\\system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.runtime.numerics\\4.3.0\\system.runtime.numerics.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.security.accesscontrol\\4.5.0\\system.security.accesscontrol.4.5.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.security.cryptography.algorithms\\4.3.0\\system.security.cryptography.algorithms.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.security.cryptography.cng\\5.0.0\\system.security.cryptography.cng.5.0.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.security.cryptography.csp\\4.3.0\\system.security.cryptography.csp.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.security.cryptography.encoding\\4.3.0\\system.security.cryptography.encoding.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.security.cryptography.openssl\\4.3.0\\system.security.cryptography.openssl.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.security.cryptography.pkcs\\5.0.0\\system.security.cryptography.pkcs.5.0.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.security.cryptography.primitives\\4.3.0\\system.security.cryptography.primitives.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.security.cryptography.protecteddata\\4.4.0\\system.security.cryptography.protecteddata.4.4.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.security.cryptography.x509certificates\\4.3.0\\system.security.cryptography.x509certificates.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.security.permissions\\4.5.0\\system.security.permissions.4.5.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.security.principal.windows\\4.5.0\\system.security.principal.windows.4.5.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.text.encoding.codepages\\4.5.1\\system.text.encoding.codepages.4.5.1.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.text.encoding.extensions\\4.3.0\\system.text.encoding.extensions.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.text.encodings.web\\8.0.0\\system.text.encodings.web.8.0.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.text.json\\8.0.4\\system.text.json.8.0.4.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.text.regularexpressions\\4.3.0\\system.text.regularexpressions.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.threading\\4.3.0\\system.threading.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.threading.tasks\\4.3.0\\system.threading.tasks.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.threading.tasks.dataflow\\4.6.0\\system.threading.tasks.dataflow.4.6.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.threading.tasks.extensions\\4.5.4\\system.threading.tasks.extensions.4.5.4.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.threading.timer\\4.3.0\\system.threading.timer.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.xml.readerwriter\\4.3.0\\system.xml.readerwriter.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.xml.xdocument\\4.3.0\\system.xml.xdocument.4.3.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\terminal.gui\\2.0.0-v2-develop.2329\\terminal.gui.2.0.0-v2-develop.2329.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\testableio.system.io.abstractions\\21.0.22\\testableio.system.io.abstractions.21.0.22.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\testableio.system.io.abstractions.wrappers\\21.0.22\\testableio.system.io.abstractions.wrappers.21.0.22.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\wcwidth\\2.0.0\\wcwidth.2.0.0.nupkg.sha512"
+ ],
+ "logs": []
+}
\ No newline at end of file
diff --git a/STgSharpTest/obj/x64/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/STgSharpTest/obj/x64/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs
new file mode 100644
index 00000000..2217181c
--- /dev/null
+++ b/STgSharpTest/obj/x64/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
diff --git a/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.AssemblyInfo.cs b/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.AssemblyInfo.cs
new file mode 100644
index 00000000..0aa54819
--- /dev/null
+++ b/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.AssemblyInfo.cs
@@ -0,0 +1,23 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharpTest")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ccef0de6f686f94da655b0e7d854d0acaf907d04")]
+[assembly: System.Reflection.AssemblyProductAttribute("StgSharpTest")]
+[assembly: System.Reflection.AssemblyTitleAttribute("StgSharpTest")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// 由 MSBuild WriteCodeFragment 类生成。
+
diff --git a/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.AssemblyInfoInputs.cache b/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.AssemblyInfoInputs.cache
new file mode 100644
index 00000000..dc71fdd4
--- /dev/null
+++ b/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.AssemblyInfoInputs.cache
@@ -0,0 +1 @@
+65036ac1aa2b022462b1cc6e16ab36cd70d4499450850d171ae425a6610fe37b
diff --git a/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.GeneratedMSBuildEditorConfig.editorconfig b/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.GeneratedMSBuildEditorConfig.editorconfig
new file mode 100644
index 00000000..21e2cab2
--- /dev/null
+++ b/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.GeneratedMSBuildEditorConfig.editorconfig
@@ -0,0 +1,13 @@
+is_global = true
+build_property.TargetFramework = net8.0
+build_property.TargetPlatformMinVersion =
+build_property.UsingMicrosoftNETSdkWeb =
+build_property.ProjectTypeGuids =
+build_property.InvariantGlobalization =
+build_property.PlatformNeutralAssembly =
+build_property.EnforceExtendedAnalyzerRules =
+build_property._SupportedPlatformList = Linux,macOS,Windows
+build_property.RootNamespace = StgSharpTest
+build_property.ProjectDir = D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\
+build_property.EnableComHosting =
+build_property.EnableGeneratedComInterfaceComImportInterop =
diff --git a/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.GlobalUsings.g.cs b/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.GlobalUsings.g.cs
new file mode 100644
index 00000000..a1f6d1a8
--- /dev/null
+++ b/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.GlobalUsings.g.cs
@@ -0,0 +1,9 @@
+//
+global using global::Microsoft.VisualStudio.TestTools.UnitTesting;
+global using global::System;
+global using global::System.Collections.Generic;
+global using global::System.IO;
+global using global::System.Linq;
+global using global::System.Net.Http;
+global using global::System.Threading;
+global using global::System.Threading.Tasks;
diff --git a/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.assets.cache b/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.assets.cache
new file mode 100644
index 00000000..1b977b12
Binary files /dev/null and b/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.assets.cache differ
diff --git a/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.csproj.AssemblyReference.cache b/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.csproj.AssemblyReference.cache
new file mode 100644
index 00000000..959f47e4
Binary files /dev/null and b/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.csproj.AssemblyReference.cache differ
diff --git a/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.csproj.BuildWithSkipAnalyzers b/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.csproj.BuildWithSkipAnalyzers
new file mode 100644
index 00000000..e69de29b
diff --git a/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.csproj.FileListAbsolute.txt b/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.csproj.FileListAbsolute.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/STgSharpTest/obj/x64/Release/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/STgSharpTest/obj/x64/Release/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs
new file mode 100644
index 00000000..2217181c
--- /dev/null
+++ b/STgSharpTest/obj/x64/Release/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
diff --git a/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.AssemblyInfo.cs b/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.AssemblyInfo.cs
new file mode 100644
index 00000000..6537f127
--- /dev/null
+++ b/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.AssemblyInfo.cs
@@ -0,0 +1,23 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharpTest")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e687473132786f419a48170313782d6779890c3d")]
+[assembly: System.Reflection.AssemblyProductAttribute("StgSharpTest")]
+[assembly: System.Reflection.AssemblyTitleAttribute("StgSharpTest")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// 由 MSBuild WriteCodeFragment 类生成。
+
diff --git a/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.AssemblyInfoInputs.cache b/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.AssemblyInfoInputs.cache
new file mode 100644
index 00000000..cb5cffcb
--- /dev/null
+++ b/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.AssemblyInfoInputs.cache
@@ -0,0 +1 @@
+1d3d676225642d4c08f4cbcba46a80275bd9d96fbf7d11d138efd8f869f71da6
diff --git a/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.GeneratedMSBuildEditorConfig.editorconfig b/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.GeneratedMSBuildEditorConfig.editorconfig
new file mode 100644
index 00000000..21e2cab2
--- /dev/null
+++ b/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.GeneratedMSBuildEditorConfig.editorconfig
@@ -0,0 +1,13 @@
+is_global = true
+build_property.TargetFramework = net8.0
+build_property.TargetPlatformMinVersion =
+build_property.UsingMicrosoftNETSdkWeb =
+build_property.ProjectTypeGuids =
+build_property.InvariantGlobalization =
+build_property.PlatformNeutralAssembly =
+build_property.EnforceExtendedAnalyzerRules =
+build_property._SupportedPlatformList = Linux,macOS,Windows
+build_property.RootNamespace = StgSharpTest
+build_property.ProjectDir = D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\
+build_property.EnableComHosting =
+build_property.EnableGeneratedComInterfaceComImportInterop =
diff --git a/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.GlobalUsings.g.cs b/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.GlobalUsings.g.cs
new file mode 100644
index 00000000..a1f6d1a8
--- /dev/null
+++ b/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.GlobalUsings.g.cs
@@ -0,0 +1,9 @@
+//
+global using global::Microsoft.VisualStudio.TestTools.UnitTesting;
+global using global::System;
+global using global::System.Collections.Generic;
+global using global::System.IO;
+global using global::System.Linq;
+global using global::System.Net.Http;
+global using global::System.Threading;
+global using global::System.Threading.Tasks;
diff --git a/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.assets.cache b/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.assets.cache
new file mode 100644
index 00000000..d9a5c003
Binary files /dev/null and b/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.assets.cache differ
diff --git a/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.csproj.AssemblyReference.cache b/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.csproj.AssemblyReference.cache
new file mode 100644
index 00000000..545b625c
Binary files /dev/null and b/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.csproj.AssemblyReference.cache differ
diff --git a/StgSgharp.Generator/Blueprint/BlueprintNodeAttribute.cs b/StgSgharp.Generator/Blueprint/BlueprintNodeAttribute.cs
new file mode 100644
index 00000000..eb5ddc8b
--- /dev/null
+++ b/StgSgharp.Generator/Blueprint/BlueprintNodeAttribute.cs
@@ -0,0 +1,39 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="BlueprintNodeAttribute.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace StgSharp.Blueprint
+{
+ [AttributeUsage( AttributeTargets.Method, AllowMultiple = false )]
+ public class BlueprintNodeExecutionAttribute : Attribute { }
+}
diff --git a/StgSgharp.Generator/Collections/PartialDictionary.cs b/StgSgharp.Generator/Collections/PartialDictionary.cs
new file mode 100644
index 00000000..bf3f5c8b
--- /dev/null
+++ b/StgSgharp.Generator/Collections/PartialDictionary.cs
@@ -0,0 +1,165 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="PartialDictionary.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace StgSharp.Collections
+{
+ public partial class PartialDictionary : IDictionary
+ {
+
+ private readonly Dictionary _source;
+ private readonly HashSet _keys;
+ private readonly PartialDictionaryValues _values;
+
+ public PartialDictionary(
+ Dictionary source,
+ TKey[] index )
+ {
+ _source = source;
+ _keys = new HashSet( index );
+ foreach( TKey item in _keys ) {
+ if( !_source.ContainsKey( item ) ) {
+ _source.Add( item, default! );
+ }
+ }
+ _values = new PartialDictionaryValues( this );
+ }
+
+ public PartialDictionary(
+ Dictionary source,
+ HashSet keys )
+ {
+ _source = source;
+ _keys = keys;
+ foreach( TKey item in _keys ) {
+ if( !_source.ContainsKey( item ) ) {
+ _source.Add( item, default! );
+ }
+ }
+ _values = new PartialDictionaryValues( this );
+ }
+
+ public TValue this[ TKey key ]
+ {
+ get
+ {
+ if( _keys.Contains( key ) ) {
+ return _source[ key ];
+ }
+ throw new KeyNotFoundException();
+ }
+ set
+ {
+ if( _keys.Contains( key ) ) {
+ _source[ key ] = value;
+ }
+ throw new KeyNotFoundException();
+ }
+ }
+
+ public ICollection Keys => _keys;
+
+ public ICollection Values => _values;
+
+ public int Count => _keys.Count;
+
+ public bool Contains( KeyValuePair item )
+ {
+ return _keys.Contains( item.Key ) && _source.Contains( item );
+ }
+
+ public bool ContainsKey( TKey key )
+ {
+ return _keys.Contains( key );
+ }
+
+ public void CopyTo( KeyValuePair[] array, int arrayIndex )
+ {
+ throw new NotImplementedException();
+ }
+
+ public IEnumerator> GetEnumerator()
+ {
+ foreach( TKey item in _keys ) {
+ yield return new KeyValuePair(item, _source[item]);
+ }
+ }
+
+ public bool TryGetValue( TKey key, out TValue value )
+ {
+ if( _keys.Contains( key ) ) {
+ value = _source[ key ];
+ return true;
+ }
+ value = default!;
+ return false;
+ }
+
+ void ICollection>.Add(
+ KeyValuePair item )
+ {
+ return;
+ }
+
+ void ICollection>.Clear()
+ {
+ throw new NotSupportedException();
+ }
+
+ bool ICollection>.IsReadOnly => true;
+
+ bool ICollection>.Remove(
+ KeyValuePair item )
+ {
+ throw new NotSupportedException();
+ }
+
+ void IDictionary.Add( TKey key, TValue value )
+ {
+ return;
+ }
+
+ bool IDictionary.Remove( TKey key )
+ {
+ throw new NotSupportedException();
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ }
+}
diff --git a/StgSgharp.Generator/Collections/PartialDictionaryValues.cs b/StgSgharp.Generator/Collections/PartialDictionaryValues.cs
new file mode 100644
index 00000000..e429cd73
--- /dev/null
+++ b/StgSgharp.Generator/Collections/PartialDictionaryValues.cs
@@ -0,0 +1,108 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="PartialDictionaryValues.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+
+namespace StgSharp.Collections
+{
+ public partial class PartialDictionary
+ {
+
+ internal sealed class PartialDictionaryValues : ICollection
+ {
+
+ private readonly PartialDictionary _values;
+
+ public PartialDictionaryValues(
+ PartialDictionary value )
+ {
+ _values = value;
+ }
+
+ public bool IsReadOnly => true;
+
+ public int Count => _values.Count;
+
+ void ICollection.Add( TValue item )
+ {
+ return;
+ }
+
+ void ICollection.Clear()
+ {
+ return;
+ }
+
+ public bool Contains( TValue item )
+ {
+ foreach (var kvp in _values)
+ {
+ if (kvp.Value != null && kvp.Value.Equals(item))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public void CopyTo( TValue[] array, int arrayIndex )
+ {
+ foreach (var kvp in _values)
+ {
+ array[arrayIndex] = kvp.Value;
+ arrayIndex++;
+ }
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ foreach (var key in _values._keys)
+ {
+ yield return _values._source[key];
+ }
+ }
+
+ bool ICollection.Remove( TValue item )
+ {
+ throw new NotSupportedException();
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ }
+
+ }
+}
diff --git a/StgSgharp.Generator/ExpCodeGenerator.cs b/StgSgharp.Generator/ExpCodeGenerator.cs
new file mode 100644
index 00000000..9297d1a5
--- /dev/null
+++ b/StgSgharp.Generator/ExpCodeGenerator.cs
@@ -0,0 +1,20 @@
+using Microsoft.CodeAnalysis;
+
+using System;
+
+namespace StgSgharp.Generator.Expression
+{
+ [Generator]
+ public class ExpCodeGenerator : ISourceGenerator
+ {
+ public void Execute(GeneratorExecutionContext context)
+ {
+ throw new NotImplementedException();
+ }
+
+ public void Initialize(GeneratorInitializationContext context)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/StgSgharp.Generator/ExpReader.cs b/StgSgharp.Generator/ExpReader.cs
new file mode 100644
index 00000000..1e796a46
--- /dev/null
+++ b/StgSgharp.Generator/ExpReader.cs
@@ -0,0 +1,89 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="ExpReader.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using Microsoft.CodeAnalysis.CSharp.Syntax;
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.IO.MemoryMappedFiles;
+using System.Text;
+
+namespace StgSgharp.Generator.Expression
+{
+ internal class ExpFileReader:IDisposable
+ {
+ private FileStream _expFileStream;
+ private MemoryMappedFile _expMemoryMappedFile;
+ private bool disposedValue;
+
+ public ExpFileReader( string path )
+ {
+ if( !File.Exists( path ) ) {
+ throw new FileNotFoundException();
+ }
+ _expFileStream = new FileStream(
+ path, FileMode.Open, FileAccess.Read );
+ _expMemoryMappedFile = MemoryMappedFile.CreateFromFile(
+ _expFileStream, null, 0, MemoryMappedFileAccess.Read,
+ HandleInheritability.None, true );
+ }
+
+ protected virtual void Dispose(bool disposing)
+ {
+ if (!disposedValue)
+ {
+ if (disposing)
+ {
+ _expFileStream.Dispose();
+ _expMemoryMappedFile.Dispose();
+ }
+
+ disposedValue = true;
+ }
+ }
+
+ // ~ExpFileReader()
+ // {
+ // Dispose(disposing: false);
+ // }
+
+ public void Dispose()
+ {
+ Dispose(disposing: true);
+ GC.SuppressFinalize(this);
+ }
+
+ public MemoryMappedViewStream CreateMemoryStram()
+ {
+ return _expMemoryMappedFile.CreateViewStream();
+ }
+ }
+}
diff --git a/StgSgharp.Generator/ExpressionReader/ExpReader.cs b/StgSgharp.Generator/ExpressionReader/ExpReader.cs
new file mode 100644
index 00000000..ed52605c
--- /dev/null
+++ b/StgSgharp.Generator/ExpressionReader/ExpReader.cs
@@ -0,0 +1,88 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="ExpReader.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using Microsoft.CodeAnalysis.CSharp.Syntax;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.IO.MemoryMappedFiles;
+using System.Text;
+
+namespace StgSharp.Expression
+{
+ internal class ExpFileReader : IDisposable
+ {
+
+ private bool disposedValue;
+ private FileStream _expFileStream;
+ private MemoryMappedFile _expMemoryMappedFile;
+
+ public ExpFileReader( string path )
+ {
+ if( !File.Exists( path ) ) {
+ throw new FileNotFoundException();
+ }
+ _expFileStream = new FileStream(
+ path, FileMode.Open, FileAccess.Read );
+ _expMemoryMappedFile = MemoryMappedFile.CreateFromFile(
+ _expFileStream, null, 0, MemoryMappedFileAccess.Read,
+ HandleInheritability.None, true );
+ }
+
+ public MemoryMappedViewStream CreateMemoryStram()
+ {
+ return _expMemoryMappedFile.CreateViewStream();
+ }
+
+ // ~ExpFileReader()
+ // {
+ // Dispose(disposing: false);
+ // }
+
+ public void Dispose()
+ {
+ Dispose( disposing: true );
+ GC.SuppressFinalize( this );
+ }
+
+ protected virtual void Dispose( bool disposing )
+ {
+ if( !disposedValue ) {
+ if( disposing ) {
+ _expFileStream.Dispose();
+ _expMemoryMappedFile.Dispose();
+ }
+
+ disposedValue = true;
+ }
+ }
+
+ }
+}
diff --git a/StgSgharp.Generator/FakeType/PartialDictionary.cs b/StgSgharp.Generator/FakeType/PartialDictionary.cs
new file mode 100644
index 00000000..96a48513
--- /dev/null
+++ b/StgSgharp.Generator/FakeType/PartialDictionary.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Runtime.CompilerServices;
+using System.Text;
+
+//[assembly: InternalsVisibleTo("StgSharp.Generator")]
+namespace StgSharp.Generator.FakeType
+{
+ internal class PartialDictionary
+ {
+ }
+}
diff --git a/StgSgharp.Generator/SourceGenerator/BpNodeGenerator.cs b/StgSgharp.Generator/SourceGenerator/BpNodeGenerator.cs
new file mode 100644
index 00000000..e70739e9
--- /dev/null
+++ b/StgSgharp.Generator/SourceGenerator/BpNodeGenerator.cs
@@ -0,0 +1,119 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="BpNodeGenerator.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using Microsoft.CodeAnalysis;
+using Microsoft.CodeAnalysis.CSharp;
+using Microsoft.CodeAnalysis.CSharp.Syntax;
+using Microsoft.CodeAnalysis.Text;
+
+using StgSharp.Blueprint;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace StgSharp.Generator
+{
+ internal class BpNodeSyntaxReceiver : ISyntaxReceiver
+ {
+ private static readonly string _indexTypeName = typeof( PartialDictionary ).Name;
+ private static BpNodeSyntaxReceiver receiver = new BpNodeSyntaxReceiver();
+
+ public List ValidMethod { get; private set; } = new List();
+ public List InvalidMethod { get; private set; } = new List();
+
+ public BpNodeSyntaxReceiver()
+ {
+
+ }
+
+ public BpNodeSyntaxReceiver(SyntaxNode node)
+ {
+ OnVisitSyntaxNode(node);
+ }
+
+ public void OnVisitSyntaxNode( SyntaxNode syntaxNode )
+ {
+ if( syntaxNode is MethodDeclarationSyntax mds && mds.AttributeLists
+ .SelectMany( list => list.Attributes )
+ .Any( syntax => syntax.Name.ToString() ==
+ typeof( BlueprintNodeExecutionAttribute ).Name ) ) {
+ SeparatedSyntaxList paramList = mds.ParameterList.Parameters;
+ if( mds.Modifiers.Any( SyntaxKind.StaticKeyword ) && paramList.Count ==
+ 2 && paramList[ 0 ].Type!.ToString() == _indexTypeName && paramList[
+ 1 ].Type!.ToString() ==
+ _indexTypeName ) {
+ ValidMethod.Add(mds);
+ }
+ else
+ {
+ InvalidMethod.Add(mds);
+ }
+ }
+ }
+
+ public static void BuildNode(SourceProductionContext context, MethodDeclarationSyntax mds)
+ {
+ if (mds.AttributeLists
+ .SelectMany(list => list.Attributes)
+ .Any(syntax => syntax.Name.ToString() ==
+ typeof(BlueprintNodeExecutionAttribute).Name))
+ {
+ SeparatedSyntaxList paramList = mds.ParameterList.Parameters;
+ if (mds.Modifiers.Any(SyntaxKind.StaticKeyword) && paramList.Count ==
+ 2 && paramList[0].Type!.ToString() == _indexTypeName && paramList[
+ 1].Type!.ToString() ==
+ _indexTypeName)
+ {
+ var methodName = mds.Identifier.Text;
+ var sourceText = SourceText.From( """
+
+ """,encoding:Encoding.UTF8);
+ context.AddSource("GeneratedBlueprintNode.cs", sourceText);
+ }
+ else
+ {
+ var diagnostic = Diagnostic.Create(
+ new DiagnosticDescriptor(
+ id:"SSE0001",
+ title: "Invalid Blueprint Node Method",
+ messageFormat: "Blueprint Node Method must be static and have two parameters of type PartialDictionary",
+ category: "Blueprint Node",
+ DiagnosticSeverity.Error,
+ isEnabledByDefault: true),
+ mds.GetLocation(),mds.Identifier.Text);
+
+ context.ReportDiagnostic(diagnostic);
+ }
+ }
+ }
+ }
+}
diff --git a/StgSgharp.Generator/SourceGenerator/MainGenerator.cs b/StgSgharp.Generator/SourceGenerator/MainGenerator.cs
new file mode 100644
index 00000000..31b1c6cd
--- /dev/null
+++ b/StgSgharp.Generator/SourceGenerator/MainGenerator.cs
@@ -0,0 +1,52 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="ExpCodeGenerator.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using Microsoft.CodeAnalysis;
+using Microsoft.CodeAnalysis.CSharp.Syntax;
+
+using System;
+
+namespace StgSharp.Generator
+{
+ [Generator]
+ public partial class MainGenerator : IIncrementalGenerator
+ {
+ public void Initialize(IncrementalGeneratorInitializationContext context)
+ {
+ var declaration =
+ context.SyntaxProvider.CreateSyntaxProvider(
+ predicate: static (s,_) => s is MethodDeclarationSyntax,
+ transform: static (cds,_) => (MethodDeclarationSyntax)cds.Node
+ ).Where(static m=>m!=null);
+
+ context.RegisterSourceOutput(declaration, BpNodeSyntaxReceiver.BuildNode);
+ }
+ }
+}
diff --git a/StgSgharp.Generator/StgSgharp.Generator.Expression.csproj b/StgSgharp.Generator/StgSgharp.Generator.Expression.csproj
new file mode 100644
index 00000000..61fdbab8
--- /dev/null
+++ b/StgSgharp.Generator/StgSgharp.Generator.Expression.csproj
@@ -0,0 +1,14 @@
+
+
+
+ netstandard2.0
+ enable
+ preview
+ True
+
+
+
+
+
+
+
diff --git a/StgSgharp.Generator/StgSharp.Generator.csproj b/StgSgharp.Generator/StgSharp.Generator.csproj
new file mode 100644
index 00000000..e2db2bc2
--- /dev/null
+++ b/StgSgharp.Generator/StgSharp.Generator.csproj
@@ -0,0 +1,15 @@
+
+
+
+ net8.0
+ enable
+ preview
+ True
+ AnyCPU;x64
+
+
+
+
+
+
+
diff --git a/StgSgharp.Generator/bin/x64/Debug/net8.0/StgSharp.Generator.deps.json b/StgSgharp.Generator/bin/x64/Debug/net8.0/StgSharp.Generator.deps.json
new file mode 100644
index 00000000..1b014238
--- /dev/null
+++ b/StgSgharp.Generator/bin/x64/Debug/net8.0/StgSharp.Generator.deps.json
@@ -0,0 +1,177 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v8.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v8.0": {
+ "StgSharp.Generator/1.0.0": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.CSharp": "4.12.0"
+ },
+ "runtime": {
+ "StgSharp.Generator.dll": {}
+ }
+ },
+ "Microsoft.CodeAnalysis.Analyzers/3.3.4": {},
+ "Microsoft.CodeAnalysis.Common/4.12.0": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzers": "3.3.4",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Reflection.Metadata": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.CodeAnalysis.dll": {
+ "assemblyVersion": "4.12.0.0",
+ "fileVersion": "4.1200.24.57207"
+ }
+ },
+ "resources": {
+ "lib/net8.0/cs/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/net8.0/de/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "de"
+ },
+ "lib/net8.0/es/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "es"
+ },
+ "lib/net8.0/fr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/net8.0/it/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "it"
+ },
+ "lib/net8.0/ja/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/net8.0/ko/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/net8.0/pl/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/net8.0/pt-BR/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/net8.0/ru/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/net8.0/tr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/net8.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/net8.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp/4.12.0": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzers": "3.3.4",
+ "Microsoft.CodeAnalysis.Common": "4.12.0",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Reflection.Metadata": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.CodeAnalysis.CSharp.dll": {
+ "assemblyVersion": "4.12.0.0",
+ "fileVersion": "4.1200.24.57207"
+ }
+ },
+ "resources": {
+ "lib/net8.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/net8.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "de"
+ },
+ "lib/net8.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "es"
+ },
+ "lib/net8.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/net8.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "it"
+ },
+ "lib/net8.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/net8.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/net8.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/net8.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/net8.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/net8.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/net8.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/net8.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "System.Collections.Immutable/8.0.0": {},
+ "System.Reflection.Metadata/8.0.0": {
+ "dependencies": {
+ "System.Collections.Immutable": "8.0.0"
+ }
+ }
+ }
+ },
+ "libraries": {
+ "StgSharp.Generator/1.0.0": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.CodeAnalysis.Analyzers/3.3.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==",
+ "path": "microsoft.codeanalysis.analyzers/3.3.4",
+ "hashPath": "microsoft.codeanalysis.analyzers.3.3.4.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.Common/4.12.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-c1kNYihL2gdcuU1dqm8R8YeA4YkB43TpU3pa2r66Uooh6AAhRtENzj9A4Kj0a+H8JDDyuTjNZql9XlVUzV+UjA==",
+ "path": "microsoft.codeanalysis.common/4.12.0",
+ "hashPath": "microsoft.codeanalysis.common.4.12.0.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.CSharp/4.12.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-30vVQ1MizeC22iEdEvI2w0eTIYG43/L20yBzuQH01xKzJgHAoWehzI2F8u07o4mXh4DGMOjQF7aEm0zzvsG3Mg==",
+ "path": "microsoft.codeanalysis.csharp/4.12.0",
+ "hashPath": "microsoft.codeanalysis.csharp.4.12.0.nupkg.sha512"
+ },
+ "System.Collections.Immutable/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==",
+ "path": "system.collections.immutable/8.0.0",
+ "hashPath": "system.collections.immutable.8.0.0.nupkg.sha512"
+ },
+ "System.Reflection.Metadata/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==",
+ "path": "system.reflection.metadata/8.0.0",
+ "hashPath": "system.reflection.metadata.8.0.0.nupkg.sha512"
+ }
+ }
+}
\ No newline at end of file
diff --git a/StgSgharp.Generator/bin/x64/Debug/net8.0/StgSharp.Generator.dll b/StgSgharp.Generator/bin/x64/Debug/net8.0/StgSharp.Generator.dll
new file mode 100644
index 00000000..57aa3041
Binary files /dev/null and b/StgSgharp.Generator/bin/x64/Debug/net8.0/StgSharp.Generator.dll differ
diff --git a/StgSgharp.Generator/bin/x64/Debug/net8.0/StgSharp.Generator.pdb b/StgSgharp.Generator/bin/x64/Debug/net8.0/StgSharp.Generator.pdb
new file mode 100644
index 00000000..c52f1a3e
Binary files /dev/null and b/StgSgharp.Generator/bin/x64/Debug/net8.0/StgSharp.Generator.pdb differ
diff --git a/StgSgharp.Generator/global.cs b/StgSgharp.Generator/global.cs
new file mode 100644
index 00000000..c2ac9844
--- /dev/null
+++ b/StgSgharp.Generator/global.cs
@@ -0,0 +1,5 @@
+global using StgSharp.Generator.FakeType;
+
+using System;
+using System.Collections.Generic;
+using System.Text;
diff --git a/StgSgharp.Generator/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/StgSgharp.Generator/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs
new file mode 100644
index 00000000..2217181c
--- /dev/null
+++ b/StgSgharp.Generator/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
diff --git a/StgSgharp.Generator/obj/Debug/net8.0/StgSharp.Generator.AssemblyInfo.cs b/StgSgharp.Generator/obj/Debug/net8.0/StgSharp.Generator.AssemblyInfo.cs
new file mode 100644
index 00000000..961587ff
--- /dev/null
+++ b/StgSgharp.Generator/obj/Debug/net8.0/StgSharp.Generator.AssemblyInfo.cs
@@ -0,0 +1,22 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ccef0de6f686f94da655b0e7d854d0acaf907d04")]
+[assembly: System.Reflection.AssemblyProductAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyTitleAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// 由 MSBuild WriteCodeFragment 类生成。
+
diff --git a/StgSgharp.Generator/obj/Debug/net8.0/StgSharp.Generator.AssemblyInfoInputs.cache b/StgSgharp.Generator/obj/Debug/net8.0/StgSharp.Generator.AssemblyInfoInputs.cache
new file mode 100644
index 00000000..eb8777f2
--- /dev/null
+++ b/StgSgharp.Generator/obj/Debug/net8.0/StgSharp.Generator.AssemblyInfoInputs.cache
@@ -0,0 +1 @@
+ca176cd5c61d2dc85f29a7103c4d4591277128a58e3ae9a0f9404b3db20450b2
diff --git a/StgSgharp.Generator/obj/Debug/net8.0/StgSharp.Generator.GeneratedMSBuildEditorConfig.editorconfig b/StgSgharp.Generator/obj/Debug/net8.0/StgSharp.Generator.GeneratedMSBuildEditorConfig.editorconfig
new file mode 100644
index 00000000..db57ddec
--- /dev/null
+++ b/StgSgharp.Generator/obj/Debug/net8.0/StgSharp.Generator.GeneratedMSBuildEditorConfig.editorconfig
@@ -0,0 +1,21 @@
+is_global = true
+build_property.TargetFramework = net8.0
+build_property.TargetFramework = net8.0
+build_property.TargetPlatformMinVersion =
+build_property.TargetPlatformMinVersion =
+build_property.UsingMicrosoftNETSdkWeb =
+build_property.UsingMicrosoftNETSdkWeb =
+build_property.ProjectTypeGuids =
+build_property.ProjectTypeGuids =
+build_property.InvariantGlobalization =
+build_property.InvariantGlobalization =
+build_property.PlatformNeutralAssembly =
+build_property.PlatformNeutralAssembly =
+build_property.EnforceExtendedAnalyzerRules = True
+build_property.EnforceExtendedAnalyzerRules = True
+build_property._SupportedPlatformList = Linux,macOS,Windows
+build_property._SupportedPlatformList = Linux,macOS,Windows
+build_property.RootNamespace = StgSharp.Generator
+build_property.ProjectDir = D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\
+build_property.EnableComHosting =
+build_property.EnableGeneratedComInterfaceComImportInterop =
diff --git a/StgSgharp.Generator/obj/Debug/net8.0/StgSharp.Generator.assets.cache b/StgSgharp.Generator/obj/Debug/net8.0/StgSharp.Generator.assets.cache
new file mode 100644
index 00000000..8ab23313
Binary files /dev/null and b/StgSgharp.Generator/obj/Debug/net8.0/StgSharp.Generator.assets.cache differ
diff --git a/StgSgharp.Generator/obj/Debug/net8.0/StgSharp.Generator.csproj.AssemblyReference.cache b/StgSgharp.Generator/obj/Debug/net8.0/StgSharp.Generator.csproj.AssemblyReference.cache
new file mode 100644
index 00000000..691ce23a
Binary files /dev/null and b/StgSgharp.Generator/obj/Debug/net8.0/StgSharp.Generator.csproj.AssemblyReference.cache differ
diff --git a/StgSgharp.Generator/obj/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs b/StgSgharp.Generator/obj/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs
new file mode 100644
index 00000000..8bf3a422
--- /dev/null
+++ b/StgSgharp.Generator/obj/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")]
diff --git a/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.AssemblyInfo.cs b/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.AssemblyInfo.cs
new file mode 100644
index 00000000..81847214
--- /dev/null
+++ b/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.AssemblyInfo.cs
@@ -0,0 +1,23 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e687473132786f419a48170313782d6779890c3d")]
+[assembly: System.Reflection.AssemblyProductAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyTitleAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// 由 MSBuild WriteCodeFragment 类生成。
+
diff --git a/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.AssemblyInfoInputs.cache b/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.AssemblyInfoInputs.cache
new file mode 100644
index 00000000..64a1031d
--- /dev/null
+++ b/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.AssemblyInfoInputs.cache
@@ -0,0 +1 @@
+507d0d80fe4bf532ef6f4152e1c0274456709eeaf88b7cd0eff97aa75d6b6d89
diff --git a/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.GeneratedMSBuildEditorConfig.editorconfig b/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.GeneratedMSBuildEditorConfig.editorconfig
new file mode 100644
index 00000000..38b0b875
--- /dev/null
+++ b/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.GeneratedMSBuildEditorConfig.editorconfig
@@ -0,0 +1,13 @@
+is_global = true
+build_property.TargetFramework = netstandard2.0
+build_property.TargetPlatformMinVersion = 7.0
+build_property.UsingMicrosoftNETSdkWeb =
+build_property.ProjectTypeGuids =
+build_property.InvariantGlobalization =
+build_property.PlatformNeutralAssembly =
+build_property.EnforceExtendedAnalyzerRules = True
+build_property._SupportedPlatformList = Linux,macOS,Windows
+build_property.RootNamespace = StgSharp.Generator
+build_property.ProjectDir = D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\
+build_property.EnableComHosting =
+build_property.EnableGeneratedComInterfaceComImportInterop =
diff --git a/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.assets.cache b/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.assets.cache
new file mode 100644
index 00000000..0340e57a
Binary files /dev/null and b/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.assets.cache differ
diff --git a/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.csproj.AssemblyReference.cache b/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.csproj.AssemblyReference.cache
new file mode 100644
index 00000000..793d27a1
Binary files /dev/null and b/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.csproj.AssemblyReference.cache differ
diff --git a/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.csproj.FileListAbsolute.txt b/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.csproj.FileListAbsolute.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/StgSgharp.Generator/obj/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs b/StgSgharp.Generator/obj/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs
new file mode 100644
index 00000000..8bf3a422
--- /dev/null
+++ b/StgSgharp.Generator/obj/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")]
diff --git a/StgSgharp.Generator/obj/Release/netstandard2.0/StgSharp.Generator.AssemblyInfo.cs b/StgSgharp.Generator/obj/Release/netstandard2.0/StgSharp.Generator.AssemblyInfo.cs
new file mode 100644
index 00000000..89bf8994
--- /dev/null
+++ b/StgSgharp.Generator/obj/Release/netstandard2.0/StgSharp.Generator.AssemblyInfo.cs
@@ -0,0 +1,23 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e687473132786f419a48170313782d6779890c3d")]
+[assembly: System.Reflection.AssemblyProductAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyTitleAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// 由 MSBuild WriteCodeFragment 类生成。
+
diff --git a/StgSgharp.Generator/obj/Release/netstandard2.0/StgSharp.Generator.AssemblyInfoInputs.cache b/StgSgharp.Generator/obj/Release/netstandard2.0/StgSharp.Generator.AssemblyInfoInputs.cache
new file mode 100644
index 00000000..918447f8
--- /dev/null
+++ b/StgSgharp.Generator/obj/Release/netstandard2.0/StgSharp.Generator.AssemblyInfoInputs.cache
@@ -0,0 +1 @@
+59be71384a64c08c0d97414b957b3c19dad4e0c90fb7132416c556cc8ca21e76
diff --git a/StgSgharp.Generator/obj/Release/netstandard2.0/StgSharp.Generator.GeneratedMSBuildEditorConfig.editorconfig b/StgSgharp.Generator/obj/Release/netstandard2.0/StgSharp.Generator.GeneratedMSBuildEditorConfig.editorconfig
new file mode 100644
index 00000000..38b0b875
--- /dev/null
+++ b/StgSgharp.Generator/obj/Release/netstandard2.0/StgSharp.Generator.GeneratedMSBuildEditorConfig.editorconfig
@@ -0,0 +1,13 @@
+is_global = true
+build_property.TargetFramework = netstandard2.0
+build_property.TargetPlatformMinVersion = 7.0
+build_property.UsingMicrosoftNETSdkWeb =
+build_property.ProjectTypeGuids =
+build_property.InvariantGlobalization =
+build_property.PlatformNeutralAssembly =
+build_property.EnforceExtendedAnalyzerRules = True
+build_property._SupportedPlatformList = Linux,macOS,Windows
+build_property.RootNamespace = StgSharp.Generator
+build_property.ProjectDir = D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\
+build_property.EnableComHosting =
+build_property.EnableGeneratedComInterfaceComImportInterop =
diff --git a/StgSgharp.Generator/obj/Release/netstandard2.0/StgSharp.Generator.assets.cache b/StgSgharp.Generator/obj/Release/netstandard2.0/StgSharp.Generator.assets.cache
new file mode 100644
index 00000000..c220754b
Binary files /dev/null and b/StgSgharp.Generator/obj/Release/netstandard2.0/StgSharp.Generator.assets.cache differ
diff --git a/StgSgharp.Generator/obj/Release/netstandard2.0/StgSharp.Generator.csproj.AssemblyReference.cache b/StgSgharp.Generator/obj/Release/netstandard2.0/StgSharp.Generator.csproj.AssemblyReference.cache
new file mode 100644
index 00000000..793d27a1
Binary files /dev/null and b/StgSgharp.Generator/obj/Release/netstandard2.0/StgSharp.Generator.csproj.AssemblyReference.cache differ
diff --git a/StgSgharp.Generator/obj/StgSharp.Generator.csproj.nuget.dgspec.json b/StgSgharp.Generator/obj/StgSharp.Generator.csproj.nuget.dgspec.json
new file mode 100644
index 00000000..8f54ca89
--- /dev/null
+++ b/StgSgharp.Generator/obj/StgSharp.Generator.csproj.nuget.dgspec.json
@@ -0,0 +1,81 @@
+{
+ "format": 1,
+ "restore": {
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSgharp.Generator\\StgSharp.Generator.csproj": {}
+ },
+ "projects": {
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSgharp.Generator\\StgSharp.Generator.csproj": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSgharp.Generator\\StgSharp.Generator.csproj",
+ "projectName": "StgSharp.Generator",
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSgharp.Generator\\StgSharp.Generator.csproj",
+ "packagesPath": "C:\\Users\\Youmu\\.nuget\\packages\\",
+ "outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSgharp.Generator\\obj\\",
+ "projectStyle": "PackageReference",
+ "fallbackFolders": [
+ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
+ ],
+ "configFilePaths": [
+ "C:\\Users\\Youmu\\AppData\\Roaming\\NuGet\\NuGet.Config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
+ ],
+ "originalTargetFrameworks": [
+ "net8.0"
+ ],
+ "sources": {
+ "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+ "C:\\Program Files\\dotnet\\library-packs": {},
+ "D:\\Programmer\\NugetLocal": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "projectReferences": {}
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "direct"
+ }
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "dependencies": {
+ "Microsoft.CodeAnalysis.CSharp": {
+ "suppressParent": "All",
+ "target": "Package",
+ "version": "[4.12.0, )"
+ }
+ },
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "frameworkReferences": {
+ "Microsoft.NETCore.App": {
+ "privateAssets": "all"
+ }
+ },
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400/PortableRuntimeIdentifierGraph.json"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/StgSgharp.Generator/obj/StgSharp.Generator.csproj.nuget.g.props b/StgSgharp.Generator/obj/StgSharp.Generator.csproj.nuget.g.props
new file mode 100644
index 00000000..73f3e751
--- /dev/null
+++ b/StgSgharp.Generator/obj/StgSharp.Generator.csproj.nuget.g.props
@@ -0,0 +1,22 @@
+
+
+
+ True
+ NuGet
+ $(MSBuildThisFileDirectory)project.assets.json
+ $(UserProfile)\.nuget\packages\
+ C:\Users\Youmu\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages
+ PackageReference
+ 6.11.0
+
+
+
+
+
+
+
+
+
+ C:\Users\Youmu\.nuget\packages\microsoft.codeanalysis.analyzers\3.3.4
+
+
\ No newline at end of file
diff --git a/StgSgharp.Generator/obj/StgSharp.Generator.csproj.nuget.g.targets b/StgSgharp.Generator/obj/StgSharp.Generator.csproj.nuget.g.targets
new file mode 100644
index 00000000..63299fb0
--- /dev/null
+++ b/StgSgharp.Generator/obj/StgSharp.Generator.csproj.nuget.g.targets
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/StgSgharp.Generator/obj/project.assets.json b/StgSgharp.Generator/obj/project.assets.json
new file mode 100644
index 00000000..7e08ec69
--- /dev/null
+++ b/StgSgharp.Generator/obj/project.assets.json
@@ -0,0 +1,1035 @@
+{
+ "version": 3,
+ "targets": {
+ "net8.0": {
+ "Microsoft.CodeAnalysis.Analyzers/3.3.4": {
+ "type": "package",
+ "build": {
+ "buildTransitive/Microsoft.CodeAnalysis.Analyzers.props": {},
+ "buildTransitive/Microsoft.CodeAnalysis.Analyzers.targets": {}
+ }
+ },
+ "Microsoft.CodeAnalysis.Common/4.12.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzers": "3.3.4",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Reflection.Metadata": "8.0.0"
+ },
+ "compile": {
+ "lib/net8.0/Microsoft.CodeAnalysis.dll": {
+ "related": ".pdb;.xml"
+ }
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.CodeAnalysis.dll": {
+ "related": ".pdb;.xml"
+ }
+ },
+ "resource": {
+ "lib/net8.0/cs/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/net8.0/de/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "de"
+ },
+ "lib/net8.0/es/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "es"
+ },
+ "lib/net8.0/fr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/net8.0/it/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "it"
+ },
+ "lib/net8.0/ja/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/net8.0/ko/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/net8.0/pl/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/net8.0/pt-BR/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/net8.0/ru/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/net8.0/tr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/net8.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/net8.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp/4.12.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzers": "3.3.4",
+ "Microsoft.CodeAnalysis.Common": "[4.12.0]",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Reflection.Metadata": "8.0.0"
+ },
+ "compile": {
+ "lib/net8.0/Microsoft.CodeAnalysis.CSharp.dll": {
+ "related": ".pdb;.xml"
+ }
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.CodeAnalysis.CSharp.dll": {
+ "related": ".pdb;.xml"
+ }
+ },
+ "resource": {
+ "lib/net8.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/net8.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "de"
+ },
+ "lib/net8.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "es"
+ },
+ "lib/net8.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/net8.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "it"
+ },
+ "lib/net8.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/net8.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/net8.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/net8.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/net8.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/net8.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/net8.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/net8.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "System.Collections.Immutable/8.0.0": {
+ "type": "package",
+ "compile": {
+ "lib/net8.0/System.Collections.Immutable.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net8.0/System.Collections.Immutable.dll": {
+ "related": ".xml"
+ }
+ },
+ "build": {
+ "buildTransitive/net6.0/_._": {}
+ }
+ },
+ "System.Reflection.Metadata/8.0.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Collections.Immutable": "8.0.0"
+ },
+ "compile": {
+ "lib/net8.0/System.Reflection.Metadata.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net8.0/System.Reflection.Metadata.dll": {
+ "related": ".xml"
+ }
+ },
+ "build": {
+ "buildTransitive/net6.0/_._": {}
+ }
+ }
+ }
+ },
+ "libraries": {
+ "Microsoft.CodeAnalysis.Analyzers/3.3.4": {
+ "sha512": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==",
+ "type": "package",
+ "path": "microsoft.codeanalysis.analyzers/3.3.4",
+ "hasTools": true,
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "ThirdPartyNotices.txt",
+ "analyzers/dotnet/cs/Microsoft.CodeAnalysis.Analyzers.dll",
+ "analyzers/dotnet/cs/Microsoft.CodeAnalysis.CSharp.Analyzers.dll",
+ "analyzers/dotnet/cs/cs/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/de/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/es/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/fr/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/it/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/ja/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/ko/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/pl/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/pt-BR/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/ru/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/tr/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/zh-Hans/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/zh-Hant/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/Microsoft.CodeAnalysis.Analyzers.dll",
+ "analyzers/dotnet/vb/Microsoft.CodeAnalysis.VisualBasic.Analyzers.dll",
+ "analyzers/dotnet/vb/cs/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/de/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/es/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/fr/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/it/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/ja/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/ko/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/pl/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/pt-BR/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/ru/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/tr/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/zh-Hans/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/zh-Hant/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "buildTransitive/Microsoft.CodeAnalysis.Analyzers.props",
+ "buildTransitive/Microsoft.CodeAnalysis.Analyzers.targets",
+ "buildTransitive/config/analysislevel_2_9_8_all.globalconfig",
+ "buildTransitive/config/analysislevel_2_9_8_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_2_9_8_default.globalconfig",
+ "buildTransitive/config/analysislevel_2_9_8_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_2_9_8_minimum.globalconfig",
+ "buildTransitive/config/analysislevel_2_9_8_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_2_9_8_none.globalconfig",
+ "buildTransitive/config/analysislevel_2_9_8_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_2_9_8_recommended.globalconfig",
+ "buildTransitive/config/analysislevel_2_9_8_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_all.globalconfig",
+ "buildTransitive/config/analysislevel_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_default.globalconfig",
+ "buildTransitive/config/analysislevel_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevel_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_none.globalconfig",
+ "buildTransitive/config/analysislevel_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevel_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_4_3_all.globalconfig",
+ "buildTransitive/config/analysislevel_4_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_4_3_default.globalconfig",
+ "buildTransitive/config/analysislevel_4_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_4_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevel_4_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_4_3_none.globalconfig",
+ "buildTransitive/config/analysislevel_4_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_4_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevel_4_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_2_9_8_all.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_2_9_8_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_2_9_8_default.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_2_9_8_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_2_9_8_minimum.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_2_9_8_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_2_9_8_none.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_2_9_8_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_2_9_8_recommended.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_2_9_8_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_all.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_default.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_none.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_4_3_all.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_4_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_4_3_default.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_4_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_4_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_4_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_4_3_none.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_4_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_4_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_4_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_2_9_8_all.globalconfig",
+ "buildTransitive/config/analysislevellibrary_2_9_8_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_2_9_8_default.globalconfig",
+ "buildTransitive/config/analysislevellibrary_2_9_8_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_2_9_8_minimum.globalconfig",
+ "buildTransitive/config/analysislevellibrary_2_9_8_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_2_9_8_none.globalconfig",
+ "buildTransitive/config/analysislevellibrary_2_9_8_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_2_9_8_recommended.globalconfig",
+ "buildTransitive/config/analysislevellibrary_2_9_8_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_all.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_default.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_none.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_4_3_all.globalconfig",
+ "buildTransitive/config/analysislevellibrary_4_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_4_3_default.globalconfig",
+ "buildTransitive/config/analysislevellibrary_4_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_4_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevellibrary_4_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_4_3_none.globalconfig",
+ "buildTransitive/config/analysislevellibrary_4_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_4_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevellibrary_4_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_4_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_4_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_4_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_4_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_4_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_4_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_4_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_4_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_4_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_4_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_4_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_4_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_4_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_4_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_4_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_4_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_4_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_4_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_4_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_4_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_4_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_4_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_4_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_4_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_4_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_4_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_4_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_4_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_4_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_4_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_4_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_4_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_4_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_4_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_4_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_4_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_4_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_4_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_4_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_4_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_4_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_4_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_4_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_4_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_4_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_4_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_4_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_4_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_4_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_4_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_4_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_4_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_4_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_4_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_4_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_4_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_4_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_4_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_4_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_4_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_4_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_4_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_4_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_4_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_4_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_4_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_4_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_4_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_4_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_4_3_recommended_warnaserror.globalconfig",
+ "documentation/Analyzer Configuration.md",
+ "documentation/Microsoft.CodeAnalysis.Analyzers.md",
+ "documentation/Microsoft.CodeAnalysis.Analyzers.sarif",
+ "editorconfig/AllRulesDefault/.editorconfig",
+ "editorconfig/AllRulesDisabled/.editorconfig",
+ "editorconfig/AllRulesEnabled/.editorconfig",
+ "editorconfig/CorrectnessRulesDefault/.editorconfig",
+ "editorconfig/CorrectnessRulesEnabled/.editorconfig",
+ "editorconfig/DataflowRulesDefault/.editorconfig",
+ "editorconfig/DataflowRulesEnabled/.editorconfig",
+ "editorconfig/LibraryRulesDefault/.editorconfig",
+ "editorconfig/LibraryRulesEnabled/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisCompatibilityRulesDefault/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisCompatibilityRulesEnabled/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisCorrectnessRulesDefault/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisCorrectnessRulesEnabled/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisDesignRulesDefault/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisDesignRulesEnabled/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisDocumentationRulesDefault/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisDocumentationRulesEnabled/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisLocalizationRulesDefault/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisLocalizationRulesEnabled/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisPerformanceRulesDefault/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisPerformanceRulesEnabled/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisReleaseTrackingRulesDefault/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisReleaseTrackingRulesEnabled/.editorconfig",
+ "editorconfig/PortedFromFxCopRulesDefault/.editorconfig",
+ "editorconfig/PortedFromFxCopRulesEnabled/.editorconfig",
+ "microsoft.codeanalysis.analyzers.3.3.4.nupkg.sha512",
+ "microsoft.codeanalysis.analyzers.nuspec",
+ "rulesets/AllRulesDefault.ruleset",
+ "rulesets/AllRulesDisabled.ruleset",
+ "rulesets/AllRulesEnabled.ruleset",
+ "rulesets/CorrectnessRulesDefault.ruleset",
+ "rulesets/CorrectnessRulesEnabled.ruleset",
+ "rulesets/DataflowRulesDefault.ruleset",
+ "rulesets/DataflowRulesEnabled.ruleset",
+ "rulesets/LibraryRulesDefault.ruleset",
+ "rulesets/LibraryRulesEnabled.ruleset",
+ "rulesets/MicrosoftCodeAnalysisCompatibilityRulesDefault.ruleset",
+ "rulesets/MicrosoftCodeAnalysisCompatibilityRulesEnabled.ruleset",
+ "rulesets/MicrosoftCodeAnalysisCorrectnessRulesDefault.ruleset",
+ "rulesets/MicrosoftCodeAnalysisCorrectnessRulesEnabled.ruleset",
+ "rulesets/MicrosoftCodeAnalysisDesignRulesDefault.ruleset",
+ "rulesets/MicrosoftCodeAnalysisDesignRulesEnabled.ruleset",
+ "rulesets/MicrosoftCodeAnalysisDocumentationRulesDefault.ruleset",
+ "rulesets/MicrosoftCodeAnalysisDocumentationRulesEnabled.ruleset",
+ "rulesets/MicrosoftCodeAnalysisLocalizationRulesDefault.ruleset",
+ "rulesets/MicrosoftCodeAnalysisLocalizationRulesEnabled.ruleset",
+ "rulesets/MicrosoftCodeAnalysisPerformanceRulesDefault.ruleset",
+ "rulesets/MicrosoftCodeAnalysisPerformanceRulesEnabled.ruleset",
+ "rulesets/MicrosoftCodeAnalysisReleaseTrackingRulesDefault.ruleset",
+ "rulesets/MicrosoftCodeAnalysisReleaseTrackingRulesEnabled.ruleset",
+ "rulesets/PortedFromFxCopRulesDefault.ruleset",
+ "rulesets/PortedFromFxCopRulesEnabled.ruleset",
+ "tools/install.ps1",
+ "tools/uninstall.ps1"
+ ]
+ },
+ "Microsoft.CodeAnalysis.Common/4.12.0": {
+ "sha512": "c1kNYihL2gdcuU1dqm8R8YeA4YkB43TpU3pa2r66Uooh6AAhRtENzj9A4Kj0a+H8JDDyuTjNZql9XlVUzV+UjA==",
+ "type": "package",
+ "path": "microsoft.codeanalysis.common/4.12.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "ThirdPartyNotices.rtf",
+ "lib/net7.0/Microsoft.CodeAnalysis.dll",
+ "lib/net7.0/Microsoft.CodeAnalysis.pdb",
+ "lib/net7.0/Microsoft.CodeAnalysis.xml",
+ "lib/net7.0/cs/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/de/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/es/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/fr/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/it/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/ja/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/ko/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/pl/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/pt-BR/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/ru/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/tr/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/Microsoft.CodeAnalysis.dll",
+ "lib/net8.0/Microsoft.CodeAnalysis.pdb",
+ "lib/net8.0/Microsoft.CodeAnalysis.xml",
+ "lib/net8.0/cs/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/de/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/es/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/fr/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/it/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/ja/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/ko/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/pl/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/pt-BR/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/ru/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/tr/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.dll",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.pdb",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.xml",
+ "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/de/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/es/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/it/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll",
+ "microsoft.codeanalysis.common.4.12.0.nupkg.sha512",
+ "microsoft.codeanalysis.common.nuspec"
+ ]
+ },
+ "Microsoft.CodeAnalysis.CSharp/4.12.0": {
+ "sha512": "30vVQ1MizeC22iEdEvI2w0eTIYG43/L20yBzuQH01xKzJgHAoWehzI2F8u07o4mXh4DGMOjQF7aEm0zzvsG3Mg==",
+ "type": "package",
+ "path": "microsoft.codeanalysis.csharp/4.12.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "ThirdPartyNotices.rtf",
+ "lib/net7.0/Microsoft.CodeAnalysis.CSharp.dll",
+ "lib/net7.0/Microsoft.CodeAnalysis.CSharp.pdb",
+ "lib/net7.0/Microsoft.CodeAnalysis.CSharp.xml",
+ "lib/net7.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/Microsoft.CodeAnalysis.CSharp.dll",
+ "lib/net8.0/Microsoft.CodeAnalysis.CSharp.pdb",
+ "lib/net8.0/Microsoft.CodeAnalysis.CSharp.xml",
+ "lib/net8.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.dll",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.pdb",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.xml",
+ "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "microsoft.codeanalysis.csharp.4.12.0.nupkg.sha512",
+ "microsoft.codeanalysis.csharp.nuspec"
+ ]
+ },
+ "System.Collections.Immutable/8.0.0": {
+ "sha512": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==",
+ "type": "package",
+ "path": "system.collections.immutable/8.0.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "LICENSE.TXT",
+ "PACKAGE.md",
+ "THIRD-PARTY-NOTICES.TXT",
+ "buildTransitive/net461/System.Collections.Immutable.targets",
+ "buildTransitive/net462/_._",
+ "buildTransitive/net6.0/_._",
+ "buildTransitive/netcoreapp2.0/System.Collections.Immutable.targets",
+ "lib/net462/System.Collections.Immutable.dll",
+ "lib/net462/System.Collections.Immutable.xml",
+ "lib/net6.0/System.Collections.Immutable.dll",
+ "lib/net6.0/System.Collections.Immutable.xml",
+ "lib/net7.0/System.Collections.Immutable.dll",
+ "lib/net7.0/System.Collections.Immutable.xml",
+ "lib/net8.0/System.Collections.Immutable.dll",
+ "lib/net8.0/System.Collections.Immutable.xml",
+ "lib/netstandard2.0/System.Collections.Immutable.dll",
+ "lib/netstandard2.0/System.Collections.Immutable.xml",
+ "system.collections.immutable.8.0.0.nupkg.sha512",
+ "system.collections.immutable.nuspec",
+ "useSharedDesignerContext.txt"
+ ]
+ },
+ "System.Reflection.Metadata/8.0.0": {
+ "sha512": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==",
+ "type": "package",
+ "path": "system.reflection.metadata/8.0.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "LICENSE.TXT",
+ "PACKAGE.md",
+ "THIRD-PARTY-NOTICES.TXT",
+ "buildTransitive/net461/System.Reflection.Metadata.targets",
+ "buildTransitive/net462/_._",
+ "buildTransitive/net6.0/_._",
+ "buildTransitive/netcoreapp2.0/System.Reflection.Metadata.targets",
+ "lib/net462/System.Reflection.Metadata.dll",
+ "lib/net462/System.Reflection.Metadata.xml",
+ "lib/net6.0/System.Reflection.Metadata.dll",
+ "lib/net6.0/System.Reflection.Metadata.xml",
+ "lib/net7.0/System.Reflection.Metadata.dll",
+ "lib/net7.0/System.Reflection.Metadata.xml",
+ "lib/net8.0/System.Reflection.Metadata.dll",
+ "lib/net8.0/System.Reflection.Metadata.xml",
+ "lib/netstandard2.0/System.Reflection.Metadata.dll",
+ "lib/netstandard2.0/System.Reflection.Metadata.xml",
+ "system.reflection.metadata.8.0.0.nupkg.sha512",
+ "system.reflection.metadata.nuspec",
+ "useSharedDesignerContext.txt"
+ ]
+ }
+ },
+ "projectFileDependencyGroups": {
+ "net8.0": [
+ "Microsoft.CodeAnalysis.CSharp >= 4.12.0"
+ ]
+ },
+ "packageFolders": {
+ "C:\\Users\\Youmu\\.nuget\\packages\\": {},
+ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {}
+ },
+ "project": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSgharp.Generator\\StgSharp.Generator.csproj",
+ "projectName": "StgSharp.Generator",
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSgharp.Generator\\StgSharp.Generator.csproj",
+ "packagesPath": "C:\\Users\\Youmu\\.nuget\\packages\\",
+ "outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSgharp.Generator\\obj\\",
+ "projectStyle": "PackageReference",
+ "fallbackFolders": [
+ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
+ ],
+ "configFilePaths": [
+ "C:\\Users\\Youmu\\AppData\\Roaming\\NuGet\\NuGet.Config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
+ ],
+ "originalTargetFrameworks": [
+ "net8.0"
+ ],
+ "sources": {
+ "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+ "C:\\Program Files\\dotnet\\library-packs": {},
+ "D:\\Programmer\\NugetLocal": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "projectReferences": {}
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "direct"
+ }
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "dependencies": {
+ "Microsoft.CodeAnalysis.CSharp": {
+ "suppressParent": "All",
+ "target": "Package",
+ "version": "[4.12.0, )"
+ }
+ },
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "frameworkReferences": {
+ "Microsoft.NETCore.App": {
+ "privateAssets": "all"
+ }
+ },
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400/PortableRuntimeIdentifierGraph.json"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/StgSgharp.Generator/obj/project.nuget.cache b/StgSgharp.Generator/obj/project.nuget.cache
new file mode 100644
index 00000000..c8c440d3
--- /dev/null
+++ b/StgSgharp.Generator/obj/project.nuget.cache
@@ -0,0 +1,14 @@
+{
+ "version": 2,
+ "dgSpecHash": "M4+jwtEt0Jc=",
+ "success": true,
+ "projectFilePath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSgharp.Generator\\StgSharp.Generator.csproj",
+ "expectedPackageFiles": [
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.codeanalysis.analyzers\\3.3.4\\microsoft.codeanalysis.analyzers.3.3.4.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.codeanalysis.common\\4.12.0\\microsoft.codeanalysis.common.4.12.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\microsoft.codeanalysis.csharp\\4.12.0\\microsoft.codeanalysis.csharp.4.12.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.collections.immutable\\8.0.0\\system.collections.immutable.8.0.0.nupkg.sha512",
+ "C:\\Users\\Youmu\\.nuget\\packages\\system.reflection.metadata\\8.0.0\\system.reflection.metadata.8.0.0.nupkg.sha512"
+ ],
+ "logs": []
+}
\ No newline at end of file
diff --git a/StgSgharp.Generator/obj/x64/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/StgSgharp.Generator/obj/x64/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs
new file mode 100644
index 00000000..2217181c
--- /dev/null
+++ b/StgSgharp.Generator/obj/x64/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
diff --git a/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.AssemblyInfo.cs b/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.AssemblyInfo.cs
new file mode 100644
index 00000000..6d534a76
--- /dev/null
+++ b/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.AssemblyInfo.cs
@@ -0,0 +1,23 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ccef0de6f686f94da655b0e7d854d0acaf907d04")]
+[assembly: System.Reflection.AssemblyProductAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyTitleAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// 由 MSBuild WriteCodeFragment 类生成。
+
diff --git a/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.AssemblyInfoInputs.cache b/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.AssemblyInfoInputs.cache
new file mode 100644
index 00000000..eb8777f2
--- /dev/null
+++ b/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.AssemblyInfoInputs.cache
@@ -0,0 +1 @@
+ca176cd5c61d2dc85f29a7103c4d4591277128a58e3ae9a0f9404b3db20450b2
diff --git a/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.GeneratedMSBuildEditorConfig.editorconfig b/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.GeneratedMSBuildEditorConfig.editorconfig
new file mode 100644
index 00000000..db57ddec
--- /dev/null
+++ b/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.GeneratedMSBuildEditorConfig.editorconfig
@@ -0,0 +1,21 @@
+is_global = true
+build_property.TargetFramework = net8.0
+build_property.TargetFramework = net8.0
+build_property.TargetPlatformMinVersion =
+build_property.TargetPlatformMinVersion =
+build_property.UsingMicrosoftNETSdkWeb =
+build_property.UsingMicrosoftNETSdkWeb =
+build_property.ProjectTypeGuids =
+build_property.ProjectTypeGuids =
+build_property.InvariantGlobalization =
+build_property.InvariantGlobalization =
+build_property.PlatformNeutralAssembly =
+build_property.PlatformNeutralAssembly =
+build_property.EnforceExtendedAnalyzerRules = True
+build_property.EnforceExtendedAnalyzerRules = True
+build_property._SupportedPlatformList = Linux,macOS,Windows
+build_property._SupportedPlatformList = Linux,macOS,Windows
+build_property.RootNamespace = StgSharp.Generator
+build_property.ProjectDir = D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\
+build_property.EnableComHosting =
+build_property.EnableGeneratedComInterfaceComImportInterop =
diff --git a/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.assets.cache b/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.assets.cache
new file mode 100644
index 00000000..40447f55
Binary files /dev/null and b/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.assets.cache differ
diff --git a/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.csproj.AssemblyReference.cache b/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.csproj.AssemblyReference.cache
new file mode 100644
index 00000000..a2045539
Binary files /dev/null and b/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.csproj.AssemblyReference.cache differ
diff --git a/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.csproj.BuildWithSkipAnalyzers b/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.csproj.BuildWithSkipAnalyzers
new file mode 100644
index 00000000..e69de29b
diff --git a/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.csproj.CoreCompileInputs.cache b/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.csproj.CoreCompileInputs.cache
new file mode 100644
index 00000000..1ea5873a
--- /dev/null
+++ b/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+afa1b1a9352ed44b12e962cfd8520ff4e6ef5d54d99232294685245ea111c904
diff --git a/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.csproj.FileListAbsolute.txt b/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.csproj.FileListAbsolute.txt
new file mode 100644
index 00000000..cb260aba
--- /dev/null
+++ b/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.csproj.FileListAbsolute.txt
@@ -0,0 +1,13 @@
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\bin\x64\Debug\net8.0\StgSharp.Generator.deps.json
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\bin\x64\Debug\net8.0\StgSharp.Generator.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\bin\x64\Debug\net8.0\StgSharp.Generator.pdb
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\obj\x64\Debug\net8.0\StgSharp.Generator.csproj.AssemblyReference.cache
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\obj\x64\Debug\net8.0\StgSharp.Generator.GeneratedMSBuildEditorConfig.editorconfig
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\obj\x64\Debug\net8.0\StgSharp.Generator.AssemblyInfoInputs.cache
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\obj\x64\Debug\net8.0\StgSharp.Generator.AssemblyInfo.cs
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\obj\x64\Debug\net8.0\StgSharp.Generator.csproj.CoreCompileInputs.cache
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\obj\x64\Debug\net8.0\StgSharp.Generator.sourcelink.json
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\obj\x64\Debug\net8.0\StgSharp.Generator.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\obj\x64\Debug\net8.0\refint\StgSharp.Generator.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\obj\x64\Debug\net8.0\StgSharp.Generator.pdb
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\obj\x64\Debug\net8.0\ref\StgSharp.Generator.dll
diff --git a/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.dll b/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.dll
new file mode 100644
index 00000000..57aa3041
Binary files /dev/null and b/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.dll differ
diff --git a/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.pdb b/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.pdb
new file mode 100644
index 00000000..c52f1a3e
Binary files /dev/null and b/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.pdb differ
diff --git a/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.sourcelink.json b/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.sourcelink.json
new file mode 100644
index 00000000..0d22314c
--- /dev/null
+++ b/StgSgharp.Generator/obj/x64/Debug/net8.0/StgSharp.Generator.sourcelink.json
@@ -0,0 +1 @@
+{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/ae94c265ae77870ea6498b624b6f71b78fb94e51/*"}}
\ No newline at end of file
diff --git a/StgSgharp.Generator/obj/x64/Debug/net8.0/ref/StgSharp.Generator.dll b/StgSgharp.Generator/obj/x64/Debug/net8.0/ref/StgSharp.Generator.dll
new file mode 100644
index 00000000..6b0df8de
Binary files /dev/null and b/StgSgharp.Generator/obj/x64/Debug/net8.0/ref/StgSharp.Generator.dll differ
diff --git a/StgSgharp.Generator/obj/x64/Debug/net8.0/refint/StgSharp.Generator.dll b/StgSgharp.Generator/obj/x64/Debug/net8.0/refint/StgSharp.Generator.dll
new file mode 100644
index 00000000..6b0df8de
Binary files /dev/null and b/StgSgharp.Generator/obj/x64/Debug/net8.0/refint/StgSharp.Generator.dll differ
diff --git a/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs b/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs
new file mode 100644
index 00000000..8bf3a422
--- /dev/null
+++ b/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")]
diff --git a/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/StgSharp.Generator.assets.cache b/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/StgSharp.Generator.assets.cache
new file mode 100644
index 00000000..91f74afa
Binary files /dev/null and b/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/StgSharp.Generator.assets.cache differ
diff --git a/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/StgSharp.Generator.csproj.BuildWithSkipAnalyzers b/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/StgSharp.Generator.csproj.BuildWithSkipAnalyzers
new file mode 100644
index 00000000..e69de29b
diff --git a/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/StgSharp.Generator.csproj.FileListAbsolute.txt b/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/StgSharp.Generator.csproj.FileListAbsolute.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/StgSgharp.Generator/obj/x64/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs b/StgSgharp.Generator/obj/x64/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs
new file mode 100644
index 00000000..8bf3a422
--- /dev/null
+++ b/StgSgharp.Generator/obj/x64/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")]
diff --git a/StgSgharp.Generator/obj/x64/Release/netstandard2.0/StgSharp.Generator.AssemblyInfo.cs b/StgSgharp.Generator/obj/x64/Release/netstandard2.0/StgSharp.Generator.AssemblyInfo.cs
new file mode 100644
index 00000000..89bf8994
--- /dev/null
+++ b/StgSgharp.Generator/obj/x64/Release/netstandard2.0/StgSharp.Generator.AssemblyInfo.cs
@@ -0,0 +1,23 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e687473132786f419a48170313782d6779890c3d")]
+[assembly: System.Reflection.AssemblyProductAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyTitleAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// 由 MSBuild WriteCodeFragment 类生成。
+
diff --git a/StgSgharp.Generator/obj/x64/Release/netstandard2.0/StgSharp.Generator.AssemblyInfoInputs.cache b/StgSgharp.Generator/obj/x64/Release/netstandard2.0/StgSharp.Generator.AssemblyInfoInputs.cache
new file mode 100644
index 00000000..918447f8
--- /dev/null
+++ b/StgSgharp.Generator/obj/x64/Release/netstandard2.0/StgSharp.Generator.AssemblyInfoInputs.cache
@@ -0,0 +1 @@
+59be71384a64c08c0d97414b957b3c19dad4e0c90fb7132416c556cc8ca21e76
diff --git a/StgSgharp.Generator/obj/x64/Release/netstandard2.0/StgSharp.Generator.GeneratedMSBuildEditorConfig.editorconfig b/StgSgharp.Generator/obj/x64/Release/netstandard2.0/StgSharp.Generator.GeneratedMSBuildEditorConfig.editorconfig
new file mode 100644
index 00000000..38b0b875
--- /dev/null
+++ b/StgSgharp.Generator/obj/x64/Release/netstandard2.0/StgSharp.Generator.GeneratedMSBuildEditorConfig.editorconfig
@@ -0,0 +1,13 @@
+is_global = true
+build_property.TargetFramework = netstandard2.0
+build_property.TargetPlatformMinVersion = 7.0
+build_property.UsingMicrosoftNETSdkWeb =
+build_property.ProjectTypeGuids =
+build_property.InvariantGlobalization =
+build_property.PlatformNeutralAssembly =
+build_property.EnforceExtendedAnalyzerRules = True
+build_property._SupportedPlatformList = Linux,macOS,Windows
+build_property.RootNamespace = StgSharp.Generator
+build_property.ProjectDir = D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\
+build_property.EnableComHosting =
+build_property.EnableGeneratedComInterfaceComImportInterop =
diff --git a/StgSgharp.Generator/obj/x64/Release/netstandard2.0/StgSharp.Generator.assets.cache b/StgSgharp.Generator/obj/x64/Release/netstandard2.0/StgSharp.Generator.assets.cache
new file mode 100644
index 00000000..eb9d667e
Binary files /dev/null and b/StgSgharp.Generator/obj/x64/Release/netstandard2.0/StgSharp.Generator.assets.cache differ
diff --git a/StgSgharp.Generator/obj/x64/Release/netstandard2.0/StgSharp.Generator.csproj.AssemblyReference.cache b/StgSgharp.Generator/obj/x64/Release/netstandard2.0/StgSharp.Generator.csproj.AssemblyReference.cache
new file mode 100644
index 00000000..793d27a1
Binary files /dev/null and b/StgSgharp.Generator/obj/x64/Release/netstandard2.0/StgSharp.Generator.csproj.AssemblyReference.cache differ
diff --git a/StgSharp.C/.clang-format b/StgSharp.C/.clang-format
new file mode 100644
index 00000000..89332e75
--- /dev/null
+++ b/StgSharp.C/.clang-format
@@ -0,0 +1,747 @@
+# Format Style Options - Created with Clang Power Tools
+---
+AccessModifierOffset: -4
+AlignAfterOpenBracket: Align
+AlignConsecutiveAssignments: false
+AlignConsecutiveDeclarations: false
+AlignEscapedNewlines: Left
+AlignOperands: true
+AlignTrailingComments: false
+AllowAllParametersOfDeclarationOnNextLine: false
+AllowShortBlocksOnASingleLine: false
+AllowShortCaseLabelsOnASingleLine: false
+AllowShortFunctionsOnASingleLine: None
+AllowShortIfStatementsOnASingleLine: false
+AllowShortLoopsOnASingleLine: false
+AlwaysBreakAfterDefinitionReturnType: None
+AlwaysBreakAfterReturnType: None
+AlwaysBreakBeforeMultilineStrings: false
+AlwaysBreakTemplateDeclarations: false
+BinPackArguments: true
+BinPackParameters: true
+BraceWrapping:
+ AfterCaseLabel: false
+ AfterClass: false
+ AfterControlStatement: false
+ AfterEnum: false
+ AfterFunction: true
+ AfterNamespace: true
+ AfterObjCDeclaration: false
+ AfterStruct: false
+ AfterUnion: false
+ AfterExternBlock: false
+ BeforeCatch: false
+ BeforeElse: false
+ IndentBraces: false
+ SplitEmptyFunction: true
+ SplitEmptyRecord: true
+ SplitEmptyNamespace: true
+ BeforeLambdaBody: false
+ BeforeWhile: false
+BreakBeforeBinaryOperators: None
+BreakBeforeBraces: Custom
+BreakBeforeInheritanceComma: false
+BreakBeforeTernaryOperators: false
+BreakConstructorInitializers: BeforeComma
+BreakAfterJavaFieldAnnotations: false
+BreakStringLiterals: false
+ColumnLimit: 100
+CommentPragmas: '^ IWYU pragma:'
+CompactNamespaces: false
+ConstructorInitializerAllOnOneLineOrOnePerLine: false
+ConstructorInitializerIndentWidth : 8
+ContinuationIndentWidth: 8
+Cpp11BracedListStyle: false
+DerivePointerAlignment: false
+ExperimentalAutoDetectBinPacking: false
+FixNamespaceComments: false
+ForEachMacros:
+ - '__ata_qc_for_each'
+ - '__bio_for_each_bvec'
+ - '__bio_for_each_segment'
+ - '__evlist__for_each_entry'
+ - '__evlist__for_each_entry_continue'
+ - '__evlist__for_each_entry_from'
+ - '__evlist__for_each_entry_reverse'
+ - '__evlist__for_each_entry_safe'
+ - '__for_each_mem_range'
+ - '__for_each_mem_range_rev'
+ - '__for_each_thread'
+ - '__hlist_for_each_rcu'
+ - '__map__for_each_symbol_by_name'
+ - '__pci_bus_for_each_res0'
+ - '__pci_bus_for_each_res1'
+ - '__pci_dev_for_each_res0'
+ - '__pci_dev_for_each_res1'
+ - '__perf_evlist__for_each_entry'
+ - '__perf_evlist__for_each_entry_reverse'
+ - '__perf_evlist__for_each_entry_safe'
+ - '__rq_for_each_bio'
+ - '__shost_for_each_device'
+ - '__sym_for_each'
+ - 'apei_estatus_for_each_section'
+ - 'ata_for_each_dev'
+ - 'ata_for_each_link'
+ - 'ata_qc_for_each'
+ - 'ata_qc_for_each_raw'
+ - 'ata_qc_for_each_with_internal'
+ - 'ax25_for_each'
+ - 'ax25_uid_for_each'
+ - 'bio_for_each_bvec'
+ - 'bio_for_each_bvec_all'
+ - 'bio_for_each_folio_all'
+ - 'bio_for_each_integrity_vec'
+ - 'bio_for_each_segment'
+ - 'bio_for_each_segment_all'
+ - 'bio_list_for_each'
+ - 'bip_for_each_vec'
+ - 'bond_for_each_slave'
+ - 'bond_for_each_slave_rcu'
+ - 'bpf_for_each'
+ - 'bpf_for_each_reg_in_vstate'
+ - 'bpf_for_each_reg_in_vstate_mask'
+ - 'bpf_for_each_spilled_reg'
+ - 'bpf_object__for_each_map'
+ - 'bpf_object__for_each_program'
+ - 'btree_for_each_safe128'
+ - 'btree_for_each_safe32'
+ - 'btree_for_each_safe64'
+ - 'btree_for_each_safel'
+ - 'card_for_each_dev'
+ - 'cgroup_taskset_for_each'
+ - 'cgroup_taskset_for_each_leader'
+ - 'cpu_aggr_map__for_each_idx'
+ - 'cpufreq_for_each_efficient_entry_idx'
+ - 'cpufreq_for_each_entry'
+ - 'cpufreq_for_each_entry_idx'
+ - 'cpufreq_for_each_valid_entry'
+ - 'cpufreq_for_each_valid_entry_idx'
+ - 'css_for_each_child'
+ - 'css_for_each_descendant_post'
+ - 'css_for_each_descendant_pre'
+ - 'damon_for_each_region'
+ - 'damon_for_each_region_from'
+ - 'damon_for_each_region_safe'
+ - 'damon_for_each_scheme'
+ - 'damon_for_each_scheme_safe'
+ - 'damon_for_each_target'
+ - 'damon_for_each_target_safe'
+ - 'damos_for_each_filter'
+ - 'damos_for_each_filter_safe'
+ - 'damos_for_each_quota_goal'
+ - 'damos_for_each_quota_goal_safe'
+ - 'data__for_each_file'
+ - 'data__for_each_file_new'
+ - 'data__for_each_file_start'
+ - 'device_for_each_child_node'
+ - 'device_for_each_child_node_scoped'
+ - 'dma_fence_array_for_each'
+ - 'dma_fence_chain_for_each'
+ - 'dma_fence_unwrap_for_each'
+ - 'dma_resv_for_each_fence'
+ - 'dma_resv_for_each_fence_unlocked'
+ - 'do_for_each_ftrace_op'
+ - 'drm_atomic_crtc_for_each_plane'
+ - 'drm_atomic_crtc_state_for_each_plane'
+ - 'drm_atomic_crtc_state_for_each_plane_state'
+ - 'drm_atomic_for_each_plane_damage'
+ - 'drm_client_for_each_connector_iter'
+ - 'drm_client_for_each_modeset'
+ - 'drm_connector_for_each_possible_encoder'
+ - 'drm_exec_for_each_locked_object'
+ - 'drm_exec_for_each_locked_object_reverse'
+ - 'drm_for_each_bridge_in_chain'
+ - 'drm_for_each_connector_iter'
+ - 'drm_for_each_crtc'
+ - 'drm_for_each_crtc_reverse'
+ - 'drm_for_each_encoder'
+ - 'drm_for_each_encoder_mask'
+ - 'drm_for_each_fb'
+ - 'drm_for_each_legacy_plane'
+ - 'drm_for_each_plane'
+ - 'drm_for_each_plane_mask'
+ - 'drm_for_each_privobj'
+ - 'drm_gem_for_each_gpuvm_bo'
+ - 'drm_gem_for_each_gpuvm_bo_safe'
+ - 'drm_gpuva_for_each_op'
+ - 'drm_gpuva_for_each_op_from_reverse'
+ - 'drm_gpuva_for_each_op_reverse'
+ - 'drm_gpuva_for_each_op_safe'
+ - 'drm_gpuvm_bo_for_each_va'
+ - 'drm_gpuvm_bo_for_each_va_safe'
+ - 'drm_gpuvm_for_each_va'
+ - 'drm_gpuvm_for_each_va_range'
+ - 'drm_gpuvm_for_each_va_range_safe'
+ - 'drm_gpuvm_for_each_va_safe'
+ - 'drm_mm_for_each_hole'
+ - 'drm_mm_for_each_node'
+ - 'drm_mm_for_each_node_in_range'
+ - 'drm_mm_for_each_node_safe'
+ - 'dsa_switch_for_each_available_port'
+ - 'dsa_switch_for_each_cpu_port'
+ - 'dsa_switch_for_each_cpu_port_continue_reverse'
+ - 'dsa_switch_for_each_port'
+ - 'dsa_switch_for_each_port_continue_reverse'
+ - 'dsa_switch_for_each_port_safe'
+ - 'dsa_switch_for_each_user_port'
+ - 'dsa_switch_for_each_user_port_continue_reverse'
+ - 'dsa_tree_for_each_cpu_port'
+ - 'dsa_tree_for_each_user_port'
+ - 'dsa_tree_for_each_user_port_continue_reverse'
+ - 'dso__for_each_symbol'
+ - 'elf_hash_for_each_possible'
+ - 'elf_symtab__for_each_symbol'
+ - 'evlist__for_each_cpu'
+ - 'evlist__for_each_entry'
+ - 'evlist__for_each_entry_continue'
+ - 'evlist__for_each_entry_from'
+ - 'evlist__for_each_entry_reverse'
+ - 'evlist__for_each_entry_safe'
+ - 'flow_action_for_each'
+ - 'for_each_acpi_consumer_dev'
+ - 'for_each_acpi_dev_match'
+ - 'for_each_active_dev_scope'
+ - 'for_each_active_drhd_unit'
+ - 'for_each_active_iommu'
+ - 'for_each_active_route'
+ - 'for_each_aggr_pgid'
+ - 'for_each_and_bit'
+ - 'for_each_andnot_bit'
+ - 'for_each_available_child_of_node'
+ - 'for_each_available_child_of_node_scoped'
+ - 'for_each_bench'
+ - 'for_each_bio'
+ - 'for_each_board_func_rsrc'
+ - 'for_each_btf_ext_rec'
+ - 'for_each_btf_ext_sec'
+ - 'for_each_bvec'
+ - 'for_each_card_auxs'
+ - 'for_each_card_auxs_safe'
+ - 'for_each_card_components'
+ - 'for_each_card_dapms'
+ - 'for_each_card_pre_auxs'
+ - 'for_each_card_prelinks'
+ - 'for_each_card_rtds'
+ - 'for_each_card_rtds_safe'
+ - 'for_each_card_widgets'
+ - 'for_each_card_widgets_safe'
+ - 'for_each_cgroup_storage_type'
+ - 'for_each_child_of_node'
+ - 'for_each_child_of_node_scoped'
+ - 'for_each_clear_bit'
+ - 'for_each_clear_bit_from'
+ - 'for_each_clear_bitrange'
+ - 'for_each_clear_bitrange_from'
+ - 'for_each_cmd'
+ - 'for_each_cmsghdr'
+ - 'for_each_collection'
+ - 'for_each_comp_order'
+ - 'for_each_compatible_node'
+ - 'for_each_component_dais'
+ - 'for_each_component_dais_safe'
+ - 'for_each_conduit'
+ - 'for_each_console'
+ - 'for_each_console_srcu'
+ - 'for_each_cpu'
+ - 'for_each_cpu_and'
+ - 'for_each_cpu_andnot'
+ - 'for_each_cpu_from'
+ - 'for_each_cpu_or'
+ - 'for_each_cpu_wrap'
+ - 'for_each_dapm_widgets'
+ - 'for_each_dedup_cand'
+ - 'for_each_dev_addr'
+ - 'for_each_dev_scope'
+ - 'for_each_dma_cap_mask'
+ - 'for_each_dpcm_be'
+ - 'for_each_dpcm_be_rollback'
+ - 'for_each_dpcm_be_safe'
+ - 'for_each_dpcm_fe'
+ - 'for_each_drhd_unit'
+ - 'for_each_dss_dev'
+ - 'for_each_efi_memory_desc'
+ - 'for_each_efi_memory_desc_in_map'
+ - 'for_each_element'
+ - 'for_each_element_extid'
+ - 'for_each_element_id'
+ - 'for_each_enabled_cpu'
+ - 'for_each_endpoint_of_node'
+ - 'for_each_event'
+ - 'for_each_event_tps'
+ - 'for_each_evictable_lru'
+ - 'for_each_fib6_node_rt_rcu'
+ - 'for_each_fib6_walker_rt'
+ - 'for_each_file_lock'
+ - 'for_each_free_mem_pfn_range_in_zone_from'
+ - 'for_each_free_mem_range'
+ - 'for_each_free_mem_range_reverse'
+ - 'for_each_func_rsrc'
+ - 'for_each_gpiochip_node'
+ - 'for_each_group_evsel'
+ - 'for_each_group_evsel_head'
+ - 'for_each_group_member'
+ - 'for_each_group_member_head'
+ - 'for_each_hstate'
+ - 'for_each_hwgpio'
+ - 'for_each_if'
+ - 'for_each_inject_fn'
+ - 'for_each_insn'
+ - 'for_each_insn_op_loc'
+ - 'for_each_insn_prefix'
+ - 'for_each_intid'
+ - 'for_each_iommu'
+ - 'for_each_ip_tunnel_rcu'
+ - 'for_each_irq_nr'
+ - 'for_each_lang'
+ - 'for_each_link_ch_maps'
+ - 'for_each_link_codecs'
+ - 'for_each_link_cpus'
+ - 'for_each_link_platforms'
+ - 'for_each_lru'
+ - 'for_each_matching_node'
+ - 'for_each_matching_node_and_match'
+ - 'for_each_media_entity_data_link'
+ - 'for_each_mem_pfn_range'
+ - 'for_each_mem_range'
+ - 'for_each_mem_range_rev'
+ - 'for_each_mem_region'
+ - 'for_each_member'
+ - 'for_each_memory'
+ - 'for_each_migratetype_order'
+ - 'for_each_missing_reg'
+ - 'for_each_mle_subelement'
+ - 'for_each_mod_mem_type'
+ - 'for_each_net'
+ - 'for_each_net_continue_reverse'
+ - 'for_each_net_rcu'
+ - 'for_each_netdev'
+ - 'for_each_netdev_continue'
+ - 'for_each_netdev_continue_rcu'
+ - 'for_each_netdev_continue_reverse'
+ - 'for_each_netdev_dump'
+ - 'for_each_netdev_feature'
+ - 'for_each_netdev_in_bond_rcu'
+ - 'for_each_netdev_rcu'
+ - 'for_each_netdev_reverse'
+ - 'for_each_netdev_safe'
+ - 'for_each_new_connector_in_state'
+ - 'for_each_new_crtc_in_state'
+ - 'for_each_new_mst_mgr_in_state'
+ - 'for_each_new_plane_in_state'
+ - 'for_each_new_plane_in_state_reverse'
+ - 'for_each_new_private_obj_in_state'
+ - 'for_each_new_reg'
+ - 'for_each_nhlt_endpoint'
+ - 'for_each_nhlt_endpoint_fmtcfg'
+ - 'for_each_nhlt_fmtcfg'
+ - 'for_each_node'
+ - 'for_each_node_by_name'
+ - 'for_each_node_by_type'
+ - 'for_each_node_mask'
+ - 'for_each_node_state'
+ - 'for_each_node_with_cpus'
+ - 'for_each_node_with_property'
+ - 'for_each_nonreserved_multicast_dest_pgid'
+ - 'for_each_numa_hop_mask'
+ - 'for_each_of_allnodes'
+ - 'for_each_of_allnodes_from'
+ - 'for_each_of_cpu_node'
+ - 'for_each_of_pci_range'
+ - 'for_each_old_connector_in_state'
+ - 'for_each_old_crtc_in_state'
+ - 'for_each_old_mst_mgr_in_state'
+ - 'for_each_old_plane_in_state'
+ - 'for_each_old_private_obj_in_state'
+ - 'for_each_oldnew_connector_in_state'
+ - 'for_each_oldnew_crtc_in_state'
+ - 'for_each_oldnew_mst_mgr_in_state'
+ - 'for_each_oldnew_plane_in_state'
+ - 'for_each_oldnew_plane_in_state_reverse'
+ - 'for_each_oldnew_private_obj_in_state'
+ - 'for_each_online_cpu'
+ - 'for_each_online_node'
+ - 'for_each_online_pgdat'
+ - 'for_each_or_bit'
+ - 'for_each_path'
+ - 'for_each_pci_bridge'
+ - 'for_each_pci_dev'
+ - 'for_each_pcm_streams'
+ - 'for_each_physmem_range'
+ - 'for_each_populated_zone'
+ - 'for_each_possible_cpu'
+ - 'for_each_present_blessed_reg'
+ - 'for_each_present_cpu'
+ - 'for_each_prime_number'
+ - 'for_each_prime_number_from'
+ - 'for_each_probe_cache_entry'
+ - 'for_each_process'
+ - 'for_each_process_thread'
+ - 'for_each_prop_codec_conf'
+ - 'for_each_prop_dai_codec'
+ - 'for_each_prop_dai_cpu'
+ - 'for_each_prop_dlc_codecs'
+ - 'for_each_prop_dlc_cpus'
+ - 'for_each_prop_dlc_platforms'
+ - 'for_each_property_of_node'
+ - 'for_each_reg'
+ - 'for_each_reg_filtered'
+ - 'for_each_reloc'
+ - 'for_each_reloc_from'
+ - 'for_each_requested_gpio'
+ - 'for_each_requested_gpio_in_range'
+ - 'for_each_reserved_child_of_node'
+ - 'for_each_reserved_mem_range'
+ - 'for_each_reserved_mem_region'
+ - 'for_each_rtd_ch_maps'
+ - 'for_each_rtd_codec_dais'
+ - 'for_each_rtd_components'
+ - 'for_each_rtd_cpu_dais'
+ - 'for_each_rtd_dais'
+ - 'for_each_rtd_dais_reverse'
+ - 'for_each_sband_iftype_data'
+ - 'for_each_script'
+ - 'for_each_sec'
+ - 'for_each_set_bit'
+ - 'for_each_set_bit_from'
+ - 'for_each_set_bit_wrap'
+ - 'for_each_set_bitrange'
+ - 'for_each_set_bitrange_from'
+ - 'for_each_set_clump8'
+ - 'for_each_sg'
+ - 'for_each_sg_dma_page'
+ - 'for_each_sg_page'
+ - 'for_each_sgtable_dma_page'
+ - 'for_each_sgtable_dma_sg'
+ - 'for_each_sgtable_page'
+ - 'for_each_sgtable_sg'
+ - 'for_each_sibling_event'
+ - 'for_each_sta_active_link'
+ - 'for_each_subelement'
+ - 'for_each_subelement_extid'
+ - 'for_each_subelement_id'
+ - 'for_each_sublist'
+ - 'for_each_subsystem'
+ - 'for_each_supported_activate_fn'
+ - 'for_each_supported_inject_fn'
+ - 'for_each_sym'
+ - 'for_each_test'
+ - 'for_each_thread'
+ - 'for_each_token'
+ - 'for_each_unicast_dest_pgid'
+ - 'for_each_valid_link'
+ - 'for_each_vif_active_link'
+ - 'for_each_vma'
+ - 'for_each_vma_range'
+ - 'for_each_vsi'
+ - 'for_each_wakeup_source'
+ - 'for_each_zone'
+ - 'for_each_zone_zonelist'
+ - 'for_each_zone_zonelist_nodemask'
+ - 'func_for_each_insn'
+ - 'fwnode_for_each_available_child_node'
+ - 'fwnode_for_each_child_node'
+ - 'fwnode_for_each_parent_node'
+ - 'fwnode_graph_for_each_endpoint'
+ - 'gadget_for_each_ep'
+ - 'genradix_for_each'
+ - 'genradix_for_each_from'
+ - 'genradix_for_each_reverse'
+ - 'hash_for_each'
+ - 'hash_for_each_possible'
+ - 'hash_for_each_possible_rcu'
+ - 'hash_for_each_possible_rcu_notrace'
+ - 'hash_for_each_possible_safe'
+ - 'hash_for_each_rcu'
+ - 'hash_for_each_safe'
+ - 'hashmap__for_each_entry'
+ - 'hashmap__for_each_entry_safe'
+ - 'hashmap__for_each_key_entry'
+ - 'hashmap__for_each_key_entry_safe'
+ - 'hctx_for_each_ctx'
+ - 'hists__for_each_format'
+ - 'hists__for_each_sort_list'
+ - 'hlist_bl_for_each_entry'
+ - 'hlist_bl_for_each_entry_rcu'
+ - 'hlist_bl_for_each_entry_safe'
+ - 'hlist_for_each'
+ - 'hlist_for_each_entry'
+ - 'hlist_for_each_entry_continue'
+ - 'hlist_for_each_entry_continue_rcu'
+ - 'hlist_for_each_entry_continue_rcu_bh'
+ - 'hlist_for_each_entry_from'
+ - 'hlist_for_each_entry_from_rcu'
+ - 'hlist_for_each_entry_rcu'
+ - 'hlist_for_each_entry_rcu_bh'
+ - 'hlist_for_each_entry_rcu_notrace'
+ - 'hlist_for_each_entry_safe'
+ - 'hlist_for_each_entry_srcu'
+ - 'hlist_for_each_safe'
+ - 'hlist_nulls_for_each_entry'
+ - 'hlist_nulls_for_each_entry_from'
+ - 'hlist_nulls_for_each_entry_rcu'
+ - 'hlist_nulls_for_each_entry_safe'
+ - 'i3c_bus_for_each_i2cdev'
+ - 'i3c_bus_for_each_i3cdev'
+ - 'idr_for_each_entry'
+ - 'idr_for_each_entry_continue'
+ - 'idr_for_each_entry_continue_ul'
+ - 'idr_for_each_entry_ul'
+ - 'in_dev_for_each_ifa_rcu'
+ - 'in_dev_for_each_ifa_rtnl'
+ - 'inet_bind_bucket_for_each'
+ - 'interval_tree_for_each_span'
+ - 'intlist__for_each_entry'
+ - 'intlist__for_each_entry_safe'
+ - 'kcore_copy__for_each_phdr'
+ - 'key_for_each'
+ - 'key_for_each_safe'
+ - 'klp_for_each_func'
+ - 'klp_for_each_func_safe'
+ - 'klp_for_each_func_static'
+ - 'klp_for_each_object'
+ - 'klp_for_each_object_safe'
+ - 'klp_for_each_object_static'
+ - 'kunit_suite_for_each_test_case'
+ - 'kvm_for_each_memslot'
+ - 'kvm_for_each_memslot_in_gfn_range'
+ - 'kvm_for_each_vcpu'
+ - 'libbpf_nla_for_each_attr'
+ - 'list_for_each'
+ - 'list_for_each_codec'
+ - 'list_for_each_codec_safe'
+ - 'list_for_each_continue'
+ - 'list_for_each_entry'
+ - 'list_for_each_entry_continue'
+ - 'list_for_each_entry_continue_rcu'
+ - 'list_for_each_entry_continue_reverse'
+ - 'list_for_each_entry_from'
+ - 'list_for_each_entry_from_rcu'
+ - 'list_for_each_entry_from_reverse'
+ - 'list_for_each_entry_lockless'
+ - 'list_for_each_entry_rcu'
+ - 'list_for_each_entry_reverse'
+ - 'list_for_each_entry_safe'
+ - 'list_for_each_entry_safe_continue'
+ - 'list_for_each_entry_safe_from'
+ - 'list_for_each_entry_safe_reverse'
+ - 'list_for_each_entry_srcu'
+ - 'list_for_each_from'
+ - 'list_for_each_prev'
+ - 'list_for_each_prev_safe'
+ - 'list_for_each_rcu'
+ - 'list_for_each_reverse'
+ - 'list_for_each_safe'
+ - 'llist_for_each'
+ - 'llist_for_each_entry'
+ - 'llist_for_each_entry_safe'
+ - 'llist_for_each_safe'
+ - 'lwq_for_each_safe'
+ - 'map__for_each_symbol'
+ - 'map__for_each_symbol_by_name'
+ - 'mas_for_each'
+ - 'mci_for_each_dimm'
+ - 'media_device_for_each_entity'
+ - 'media_device_for_each_intf'
+ - 'media_device_for_each_link'
+ - 'media_device_for_each_pad'
+ - 'media_entity_for_each_pad'
+ - 'media_pipeline_for_each_entity'
+ - 'media_pipeline_for_each_pad'
+ - 'mlx5_lag_for_each_peer_mdev'
+ - 'msi_domain_for_each_desc'
+ - 'msi_for_each_desc'
+ - 'mt_for_each'
+ - 'nanddev_io_for_each_page'
+ - 'netdev_for_each_lower_dev'
+ - 'netdev_for_each_lower_private'
+ - 'netdev_for_each_lower_private_rcu'
+ - 'netdev_for_each_mc_addr'
+ - 'netdev_for_each_synced_mc_addr'
+ - 'netdev_for_each_synced_uc_addr'
+ - 'netdev_for_each_uc_addr'
+ - 'netdev_for_each_upper_dev_rcu'
+ - 'netdev_hw_addr_list_for_each'
+ - 'nft_rule_for_each_expr'
+ - 'nla_for_each_attr'
+ - 'nla_for_each_attr_type'
+ - 'nla_for_each_nested'
+ - 'nla_for_each_nested_type'
+ - 'nlmsg_for_each_attr'
+ - 'nlmsg_for_each_msg'
+ - 'nr_neigh_for_each'
+ - 'nr_neigh_for_each_safe'
+ - 'nr_node_for_each'
+ - 'nr_node_for_each_safe'
+ - 'of_for_each_phandle'
+ - 'of_property_for_each_string'
+ - 'of_property_for_each_u32'
+ - 'pci_bus_for_each_resource'
+ - 'pci_dev_for_each_resource'
+ - 'pcl_for_each_chunk'
+ - 'pcl_for_each_segment'
+ - 'pcm_for_each_format'
+ - 'perf_config_items__for_each_entry'
+ - 'perf_config_sections__for_each_entry'
+ - 'perf_config_set__for_each_entry'
+ - 'perf_cpu_map__for_each_cpu'
+ - 'perf_cpu_map__for_each_cpu_skip_any'
+ - 'perf_cpu_map__for_each_idx'
+ - 'perf_evlist__for_each_entry'
+ - 'perf_evlist__for_each_entry_reverse'
+ - 'perf_evlist__for_each_entry_safe'
+ - 'perf_evlist__for_each_evsel'
+ - 'perf_evlist__for_each_mmap'
+ - 'perf_hpp_list__for_each_format'
+ - 'perf_hpp_list__for_each_format_safe'
+ - 'perf_hpp_list__for_each_sort_list'
+ - 'perf_hpp_list__for_each_sort_list_safe'
+ - 'perf_tool_event__for_each_event'
+ - 'plist_for_each'
+ - 'plist_for_each_continue'
+ - 'plist_for_each_entry'
+ - 'plist_for_each_entry_continue'
+ - 'plist_for_each_entry_safe'
+ - 'plist_for_each_safe'
+ - 'pnp_for_each_card'
+ - 'pnp_for_each_dev'
+ - 'protocol_for_each_card'
+ - 'protocol_for_each_dev'
+ - 'queue_for_each_hw_ctx'
+ - 'radix_tree_for_each_slot'
+ - 'radix_tree_for_each_tagged'
+ - 'rb_for_each'
+ - 'rbtree_postorder_for_each_entry_safe'
+ - 'rdma_for_each_block'
+ - 'rdma_for_each_port'
+ - 'rdma_umem_for_each_dma_block'
+ - 'resort_rb__for_each_entry'
+ - 'resource_list_for_each_entry'
+ - 'resource_list_for_each_entry_safe'
+ - 'rhl_for_each_entry_rcu'
+ - 'rhl_for_each_rcu'
+ - 'rht_for_each'
+ - 'rht_for_each_entry'
+ - 'rht_for_each_entry_from'
+ - 'rht_for_each_entry_rcu'
+ - 'rht_for_each_entry_rcu_from'
+ - 'rht_for_each_entry_safe'
+ - 'rht_for_each_from'
+ - 'rht_for_each_rcu'
+ - 'rht_for_each_rcu_from'
+ - 'rq_for_each_bvec'
+ - 'rq_for_each_segment'
+ - 'rq_list_for_each'
+ - 'rq_list_for_each_safe'
+ - 'sample_read_group__for_each'
+ - 'scsi_for_each_prot_sg'
+ - 'scsi_for_each_sg'
+ - 'sctp_for_each_hentry'
+ - 'sctp_skb_for_each'
+ - 'sec_for_each_insn'
+ - 'sec_for_each_insn_continue'
+ - 'sec_for_each_insn_from'
+ - 'sec_for_each_sym'
+ - 'shdma_for_each_chan'
+ - 'shost_for_each_device'
+ - 'sk_for_each'
+ - 'sk_for_each_bound'
+ - 'sk_for_each_entry_offset_rcu'
+ - 'sk_for_each_from'
+ - 'sk_for_each_rcu'
+ - 'sk_for_each_safe'
+ - 'sk_nulls_for_each'
+ - 'sk_nulls_for_each_from'
+ - 'sk_nulls_for_each_rcu'
+ - 'snd_array_for_each'
+ - 'snd_pcm_group_for_each_entry'
+ - 'snd_soc_dapm_widget_for_each_path'
+ - 'snd_soc_dapm_widget_for_each_path_safe'
+ - 'snd_soc_dapm_widget_for_each_sink_path'
+ - 'snd_soc_dapm_widget_for_each_source_path'
+ - 'sparsebit_for_each_set_range'
+ - 'strlist__for_each_entry'
+ - 'strlist__for_each_entry_safe'
+ - 'sym_for_each_insn'
+ - 'sym_for_each_insn_continue_reverse'
+ - 'symbols__for_each_entry'
+ - 'tb_property_for_each'
+ - 'tcf_act_for_each_action'
+ - 'tcf_exts_for_each_action'
+ - 'ttm_resource_manager_for_each_res'
+ - 'udp_portaddr_for_each_entry'
+ - 'udp_portaddr_for_each_entry_rcu'
+ - 'usb_hub_for_each_child'
+ - 'v4l2_device_for_each_subdev'
+ - 'v4l2_m2m_for_each_dst_buf'
+ - 'v4l2_m2m_for_each_dst_buf_safe'
+ - 'v4l2_m2m_for_each_src_buf'
+ - 'v4l2_m2m_for_each_src_buf_safe'
+ - 'virtio_device_for_each_vq'
+ - 'while_for_each_ftrace_op'
+ - 'xa_for_each'
+ - 'xa_for_each_marked'
+ - 'xa_for_each_range'
+ - 'xa_for_each_start'
+ - 'xas_for_each'
+ - 'xas_for_each_conflict'
+ - 'xas_for_each_marked'
+ - 'xbc_array_for_each_value'
+ - 'xbc_for_each_key_value'
+ - 'xbc_node_for_each_array_value'
+ - 'xbc_node_for_each_child'
+ - 'xbc_node_for_each_key_value'
+ - 'xbc_node_for_each_subkey'
+ - 'ynl_attr_for_each'
+ - 'ynl_attr_for_each_nested'
+ - 'ynl_attr_for_each_payload'
+ - 'zorro_for_each_dev'
+IncludeBlocks: Preserve
+IncludeCategories:
+ - Regex: '.*'
+ Priority: 1
+IncludeIsMainRegex: (Test)?$
+IndentCaseLabels: false
+IndentGotoLabels: false
+IndentPPDirectives: None
+IndentWidth: 8
+IndentWrappedFunctionNames: false
+JavaScriptQuotes: Leave
+JavaScriptWrapImports: true
+KeepEmptyLinesAtTheStartOfBlocks: false
+MacroBlockBegin: ''
+MacroBlockEnd: ''
+MaxEmptyLinesToKeep: 1
+NamespaceIndentation: None
+ObjCBinPackProtocolList: Auto
+ObjCBlockIndentWidth: 8
+ObjCSpaceAfterProperty: true
+ObjCSpaceBeforeProtocolList: true
+PenaltyBreakAssignment: 10
+PenaltyBreakBeforeFirstCallParameter: 30
+PenaltyBreakComment: 10
+PenaltyBreakFirstLessLess: 0
+PenaltyBreakString: 10
+PenaltyExcessCharacter: 100
+PenaltyReturnTypeOnItsOwnLine: 60
+PointerAlignment: Right
+ReflowComments: false
+SortIncludes: false
+SortUsingDeclarations: false
+SpaceAfterCStyleCast: false
+SpaceAfterTemplateKeyword: true
+SpaceBeforeAssignmentOperators: true
+SpaceBeforeCtorInitializerColon: true
+SpaceBeforeInheritanceColon: true
+SpaceBeforeParens: ControlStatementsExceptForEachMacros
+SpaceBeforeRangeBasedForLoopColon: true
+SpaceInEmptyParentheses: false
+SpacesBeforeTrailingComments: 1
+SpacesInAngles: false
+SpacesInContainerLiterals: false
+SpacesInCStyleCastParentheses: false
+SpacesInParentheses: false
+SpacesInSquareBrackets: false
+Standard: Cpp03
+TabWidth: 8
+UseTab: Never
+...
diff --git a/StgSharp.C/StgSharpC.c b/StgSharp.C/StgSharpC.c
new file mode 100644
index 00000000..fc1972ed
--- /dev/null
+++ b/StgSharp.C/StgSharpC.c
@@ -0,0 +1,75 @@
+#include "StgSharpC.h"
+#include "gl.h"
+#include "glfw3.h"
+#include
+#include
+
+GladGLContext *currentContext;
+extern char infolog[512];
+
+SSCAPI int SSCDECL glCheckShaderStat(GladGLContext *context, uint64_t shaderHandle, int key,
+ char **logRef)
+{
+ int stat = 0;
+ context->GetShaderiv(shaderHandle, key, &stat);
+ if (!stat) {
+ context->GetShaderInfoLog(shaderHandle, 512, NULL, infolog);
+ }
+ *logRef = infolog;
+ return stat;
+}
+
+SSCAPI void SSCDECL initGL(int majorVersion, int minorVersion)
+{
+ glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, majorVersion);
+ glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, minorVersion);
+ glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
+ glfwWindowHint(GLFW_RESIZABLE, GLFW_TRUE);
+}
+
+SSCAPI GLFWglproc SSCDECL loadGlfuncDefault(char *procName)
+{
+ void *ret = glfwGetProcAddress(procName);
+ // printf("%llu\n", (uint64_t)ret);
+ if (ret == NULL) {
+ strcpy_s(infolog,30, "Failed to load OpenGL api:");
+ for (size_t i = 0; i < sizeof(procName); i++) {
+ infolog[30 + i] = procName[i];
+ }
+ //printf("%s\n", infolog);
+ }
+ return (GLFWglproc)ret;
+}
+
+SSCAPI unsigned int linkShaderProgram(GladGLContext *context, GLuint shaderProgram)
+{
+ context->LinkProgram(shaderProgram);
+
+ int success;
+ context->GetProgramiv(shaderProgram, GL_LINK_STATUS, &success);
+ if (!success) {
+ context->GetProgramInfoLog(shaderProgram, 512, NULL, infolog);
+ return 0;
+ } else {
+ return shaderProgram;
+ }
+}
+
+SSCAPI void SSCDECL loadImageData(char *location, Image *out, imageLoader loader)
+{
+ if (loader == NULL) {
+ loader = stbi_load;
+ }
+ out->pixelPtr = loader(location, &(out->width), &(out->height), &(out->channel), 0);
+}
+
+SSCAPI void SSCDECL unloadImageData(Image *out)
+{
+ free(out->pixelPtr);
+}
+
+char *SSCDECL readLog()
+{
+ infolog[511] = '\0';
+ return infolog;
+}
diff --git a/StgSharp.C/StgSharpC.h b/StgSharp.C/StgSharpC.h
new file mode 100644
index 00000000..7730729e
--- /dev/null
+++ b/StgSharp.C/StgSharpC.h
@@ -0,0 +1,73 @@
+#ifdef _MSC_VER
+#pragma once
+#endif
+
+#ifndef SSC
+#define SSC
+
+#include "ssc_internal.h"
+
+#define STBIDEF SSCAPI
+#include "stb_image.h"
+
+#include "gl.h"
+#include "wgl.h"
+#include "glfw3.h"
+#include
+#include
+
+#ifndef SSCAPI_DEFINE
+
+#ifdef _WIN32
+#define SSCAPI __declspec(dllexport)
+#elif defined _LINUX_
+#define SSCAPI __attribute__((dllexport))
+#elif defined _APPLE_
+#define SSCAPI __attribute__((visibility("default")))
+#else
+#define SSCAPI
+#endif
+
+#endif // ! SSCAPI_DEFINE
+
+#if __cplusplus
+extern "C" {
+#endif
+
+#define byte char
+#define cs_char uint16_t
+#define ssc_null_assert(ptr) assert(ptr != NULL)
+
+#define ALIGN(simdVec) _mm_loadu_ps(&simdVec)
+#define ALIGN256(simdVec) _mm256_loadu_ps(&simdVec)
+#define ALIGN512(simdVec) _mm512_loadu_ps(&simdVec)
+
+typedef struct Image {
+ int width;
+ int height;
+ int channel;
+ char *pixelPtr;
+} Image;
+
+typedef char *(*imageLoader)(char const *filename, int *x, int *y, int *channels_in_file,
+ int desired_channels);
+
+SSCAPI char infolog[512];
+SSCAPI int SSCDECL glCheckShaderStat(GladGLContext *context, uint64_t shaderHandle, int key,
+ char **logRef);
+SSCAPI void SSCDECL initGL(int majorVersion, int minorVersion);
+SSCAPI unsigned int SSCDECL linkShaderProgram(GladGLContext *context, GLuint shadertype);
+SSCAPI void SSCDECL loadImageData(char *location, Image *out, imageLoader loader);
+SSCAPI GLFWglproc SSCDECL loadGlfuncDefault(char *procName);
+SSCAPI void SSCDECL unloadImageData(Image *out);
+SSCAPI char *SSCDECL readLog(void);
+
+#pragma endregion
+
+SSCAPI int SSCDECL load_intrinsic_function(void *intrinsic_context);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/StgSharp.C/StgSharpC.vcxproj b/StgSharp.C/StgSharpC.vcxproj
new file mode 100644
index 00000000..1d64aa1e
--- /dev/null
+++ b/StgSharp.C/StgSharpC.vcxproj
@@ -0,0 +1,192 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 17.0
+ Win32Proj
+ {20cbff26-6746-402e-992c-7b643e9423eb}
+ StgSharpC
+ 10.0
+ StgSharp.C
+
+
+
+ Application
+ true
+ v143
+ Unicode
+
+
+ Application
+ false
+ v143
+ true
+ Unicode
+
+
+ DynamicLibrary
+ true
+ v143
+ Unicode
+ false
+
+
+ DynamicLibrary
+ false
+ v143
+ true
+ Unicode
+ 14.41.34120
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(SolutionDir)build
+
+
+ $(SolutionDir)build
+ false
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ stdcpp20
+ stdc17
+ Disabled
+ true
+ All
+ true
+ true
+ Speed
+
+
+ Console
+ true
+ opengl32.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)
+
+
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ Speed
+ NoListing
+ stdcpp20
+ stdc17
+ CompileAsC
+ true
+
+
+ Console
+ true
+ true
+ false
+ opengl32.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)
+ LinkVerbose
+ UseLinkTimeCodeGeneration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/StgSharp.C/StgSharpC.vcxproj.filters b/StgSharp.C/StgSharpC.vcxproj.filters
new file mode 100644
index 00000000..cd3a7852
--- /dev/null
+++ b/StgSharp.C/StgSharpC.vcxproj.filters
@@ -0,0 +1,92 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ 资源文件
+
+
+ 资源文件
+
+
+ 资源文件
+
+
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+
\ No newline at end of file
diff --git a/StgSharp.C/StgSharpC.vcxproj.user b/StgSharp.C/StgSharpC.vcxproj.user
new file mode 100644
index 00000000..6e73c83d
--- /dev/null
+++ b/StgSharp.C/StgSharpC.vcxproj.user
@@ -0,0 +1,7 @@
+
+
+
+ $(SolutionDir)Output\x64\Debug\net6.0\StgSharpDebug.exe
+ WindowsLocalDebugger
+
+
\ No newline at end of file
diff --git a/StgSharp.C/dllmain.c b/StgSharp.C/dllmain.c
new file mode 100644
index 00000000..23915197
--- /dev/null
+++ b/StgSharp.C/dllmain.c
@@ -0,0 +1,35 @@
+
+#include "StgSharpC.h"
+
+#ifdef _WIN32
+
+// clang-format off
+
+BOOL APIENTRY DllMain(
+ HMODULE hModule,
+ DWORD ul_reason_for_call,
+ LPVOID lpReserved
+)
+{
+ switch (ul_reason_for_call)
+ {
+ case DLL_PROCESS_ATTACH:
+ return 1;
+ case DLL_THREAD_ATTACH:
+ return 1;
+ case DLL_THREAD_DETACH:
+ return 1;
+ case DLL_PROCESS_DETACH:
+ return 1;
+ break;
+ }
+ return TRUE;
+}
+#else
+attribute((constructor)) void DllMain()
+{
+}
+
+#endif // _WIN32
+
+// clang-format on
diff --git a/StgSharp.C/gl.h b/StgSharp.C/gl.h
new file mode 100644
index 00000000..192f3429
--- /dev/null
+++ b/StgSharp.C/gl.h
@@ -0,0 +1,12656 @@
+/**
+ * Loader generated by glad 2.0.5 on Fri Feb 16 00:51:02 2024
+ *
+ * SPDX-License-Identifier: (WTFPL OR CC0-1.0) AND Apache-2.0
+ *
+ * Generator: C/C++
+ * Specification: gl
+ * Extensions: 619
+ *
+ * APIs:
+ * - gl:core=4.6
+ *
+ * Options:
+ * - ALIAS = False
+ * - DEBUG = False
+ * - HEADER_ONLY = False
+ * - LOADER = False
+ * - MX = True
+ * - ON_DEMAND = False
+ *
+ * Commandline:
+ * --api='gl:core=4.6' --extensions='GL_3DFX_multisample,GL_3DFX_tbuffer,GL_3DFX_texture_compression_FXT1,GL_AMD_blend_minmax_factor,GL_AMD_conservative_depth,GL_AMD_debug_output,GL_AMD_depth_clamp_separate,GL_AMD_draw_buffers_blend,GL_AMD_framebuffer_multisample_advanced,GL_AMD_framebuffer_sample_positions,GL_AMD_gcn_shader,GL_AMD_gpu_shader_half_float,GL_AMD_gpu_shader_int16,GL_AMD_gpu_shader_int64,GL_AMD_interleaved_elements,GL_AMD_multi_draw_indirect,GL_AMD_name_gen_delete,GL_AMD_occlusion_query_event,GL_AMD_performance_monitor,GL_AMD_pinned_memory,GL_AMD_query_buffer_object,GL_AMD_sample_positions,GL_AMD_seamless_cubemap_per_texture,GL_AMD_shader_atomic_counter_ops,GL_AMD_shader_ballot,GL_AMD_shader_explicit_vertex_parameter,GL_AMD_shader_gpu_shader_half_float_fetch,GL_AMD_shader_image_load_store_lod,GL_AMD_shader_stencil_export,GL_AMD_shader_trinary_minmax,GL_AMD_sparse_texture,GL_AMD_stencil_operation_extended,GL_AMD_texture_gather_bias_lod,GL_AMD_texture_texture4,GL_AMD_transform_feedback3_lines_triangles,GL_AMD_transform_feedback4,GL_AMD_vertex_shader_layer,GL_AMD_vertex_shader_tessellator,GL_AMD_vertex_shader_viewport_index,GL_APPLE_aux_depth_stencil,GL_APPLE_client_storage,GL_APPLE_element_array,GL_APPLE_fence,GL_APPLE_float_pixels,GL_APPLE_flush_buffer_range,GL_APPLE_object_purgeable,GL_APPLE_rgb_422,GL_APPLE_row_bytes,GL_APPLE_specular_vector,GL_APPLE_texture_range,GL_APPLE_transform_hint,GL_APPLE_vertex_array_object,GL_APPLE_vertex_array_range,GL_APPLE_vertex_program_evaluators,GL_APPLE_ycbcr_422,GL_ARB_ES2_compatibility,GL_ARB_ES3_1_compatibility,GL_ARB_ES3_2_compatibility,GL_ARB_ES3_compatibility,GL_ARB_arrays_of_arrays,GL_ARB_base_instance,GL_ARB_bindless_texture,GL_ARB_blend_func_extended,GL_ARB_buffer_storage,GL_ARB_cl_event,GL_ARB_clear_buffer_object,GL_ARB_clear_texture,GL_ARB_clip_control,GL_ARB_color_buffer_float,GL_ARB_compatibility,GL_ARB_compressed_texture_pixel_storage,GL_ARB_compute_shader,GL_ARB_compute_variable_group_size,GL_ARB_conditional_render_inverted,GL_ARB_conservative_depth,GL_ARB_copy_buffer,GL_ARB_copy_image,GL_ARB_cull_distance,GL_ARB_debug_output,GL_ARB_depth_buffer_float,GL_ARB_depth_clamp,GL_ARB_depth_texture,GL_ARB_derivative_control,GL_ARB_direct_state_access,GL_ARB_draw_buffers,GL_ARB_draw_buffers_blend,GL_ARB_draw_elements_base_vertex,GL_ARB_draw_indirect,GL_ARB_draw_instanced,GL_ARB_enhanced_layouts,GL_ARB_explicit_attrib_location,GL_ARB_explicit_uniform_location,GL_ARB_fragment_coord_conventions,GL_ARB_fragment_layer_viewport,GL_ARB_fragment_program,GL_ARB_fragment_program_shadow,GL_ARB_fragment_shader,GL_ARB_fragment_shader_interlock,GL_ARB_framebuffer_no_attachments,GL_ARB_framebuffer_object,GL_ARB_framebuffer_sRGB,GL_ARB_geometry_shader4,GL_ARB_get_program_binary,GL_ARB_get_texture_sub_image,GL_ARB_gl_spirv,GL_ARB_gpu_shader5,GL_ARB_gpu_shader_fp64,GL_ARB_gpu_shader_int64,GL_ARB_half_float_pixel,GL_ARB_half_float_vertex,GL_ARB_imaging,GL_ARB_indirect_parameters,GL_ARB_instanced_arrays,GL_ARB_internalformat_query,GL_ARB_internalformat_query2,GL_ARB_invalidate_subdata,GL_ARB_map_buffer_alignment,GL_ARB_map_buffer_range,GL_ARB_matrix_palette,GL_ARB_multi_bind,GL_ARB_multi_draw_indirect,GL_ARB_multisample,GL_ARB_multitexture,GL_ARB_occlusion_query,GL_ARB_occlusion_query2,GL_ARB_parallel_shader_compile,GL_ARB_pipeline_statistics_query,GL_ARB_pixel_buffer_object,GL_ARB_point_parameters,GL_ARB_point_sprite,GL_ARB_polygon_offset_clamp,GL_ARB_post_depth_coverage,GL_ARB_program_interface_query,GL_ARB_provoking_vertex,GL_ARB_query_buffer_object,GL_ARB_robust_buffer_access_behavior,GL_ARB_robustness,GL_ARB_robustness_isolation,GL_ARB_sample_locations,GL_ARB_sample_shading,GL_ARB_sampler_objects,GL_ARB_seamless_cube_map,GL_ARB_seamless_cubemap_per_texture,GL_ARB_separate_shader_objects,GL_ARB_shader_atomic_counter_ops,GL_ARB_shader_atomic_counters,GL_ARB_shader_ballot,GL_ARB_shader_bit_encoding,GL_ARB_shader_clock,GL_ARB_shader_draw_parameters,GL_ARB_shader_group_vote,GL_ARB_shader_image_load_store,GL_ARB_shader_image_size,GL_ARB_shader_objects,GL_ARB_shader_precision,GL_ARB_shader_stencil_export,GL_ARB_shader_storage_buffer_object,GL_ARB_shader_subroutine,GL_ARB_shader_texture_image_samples,GL_ARB_shader_texture_lod,GL_ARB_shader_viewport_layer_array,GL_ARB_shading_language_100,GL_ARB_shading_language_420pack,GL_ARB_shading_language_include,GL_ARB_shading_language_packing,GL_ARB_shadow,GL_ARB_shadow_ambient,GL_ARB_sparse_buffer,GL_ARB_sparse_texture,GL_ARB_sparse_texture2,GL_ARB_sparse_texture_clamp,GL_ARB_spirv_extensions,GL_ARB_stencil_texturing,GL_ARB_sync,GL_ARB_tessellation_shader,GL_ARB_texture_barrier,GL_ARB_texture_border_clamp,GL_ARB_texture_buffer_object,GL_ARB_texture_buffer_object_rgb32,GL_ARB_texture_buffer_range,GL_ARB_texture_compression,GL_ARB_texture_compression_bptc,GL_ARB_texture_compression_rgtc,GL_ARB_texture_cube_map,GL_ARB_texture_cube_map_array,GL_ARB_texture_env_add,GL_ARB_texture_env_combine,GL_ARB_texture_env_crossbar,GL_ARB_texture_env_dot3,GL_ARB_texture_filter_anisotropic,GL_ARB_texture_filter_minmax,GL_ARB_texture_float,GL_ARB_texture_gather,GL_ARB_texture_mirror_clamp_to_edge,GL_ARB_texture_mirrored_repeat,GL_ARB_texture_multisample,GL_ARB_texture_non_power_of_two,GL_ARB_texture_query_levels,GL_ARB_texture_query_lod,GL_ARB_texture_rectangle,GL_ARB_texture_rg,GL_ARB_texture_rgb10_a2ui,GL_ARB_texture_stencil8,GL_ARB_texture_storage,GL_ARB_texture_storage_multisample,GL_ARB_texture_swizzle,GL_ARB_texture_view,GL_ARB_timer_query,GL_ARB_transform_feedback2,GL_ARB_transform_feedback3,GL_ARB_transform_feedback_instanced,GL_ARB_transform_feedback_overflow_query,GL_ARB_transpose_matrix,GL_ARB_uniform_buffer_object,GL_ARB_vertex_array_bgra,GL_ARB_vertex_array_object,GL_ARB_vertex_attrib_64bit,GL_ARB_vertex_attrib_binding,GL_ARB_vertex_blend,GL_ARB_vertex_buffer_object,GL_ARB_vertex_program,GL_ARB_vertex_shader,GL_ARB_vertex_type_10f_11f_11f_rev,GL_ARB_vertex_type_2_10_10_10_rev,GL_ARB_viewport_array,GL_ARB_window_pos,GL_ATI_draw_buffers,GL_ATI_element_array,GL_ATI_envmap_bumpmap,GL_ATI_fragment_shader,GL_ATI_map_object_buffer,GL_ATI_meminfo,GL_ATI_pixel_format_float,GL_ATI_pn_triangles,GL_ATI_separate_stencil,GL_ATI_text_fragment_shader,GL_ATI_texture_env_combine3,GL_ATI_texture_float,GL_ATI_texture_mirror_once,GL_ATI_vertex_array_object,GL_ATI_vertex_attrib_array_object,GL_ATI_vertex_streams,GL_EXT_422_pixels,GL_EXT_EGL_image_storage,GL_EXT_EGL_sync,GL_EXT_abgr,GL_EXT_bgra,GL_EXT_bindable_uniform,GL_EXT_blend_color,GL_EXT_blend_equation_separate,GL_EXT_blend_func_separate,GL_EXT_blend_logic_op,GL_EXT_blend_minmax,GL_EXT_blend_subtract,GL_EXT_clip_volume_hint,GL_EXT_cmyka,GL_EXT_color_subtable,GL_EXT_compiled_vertex_array,GL_EXT_convolution,GL_EXT_coordinate_frame,GL_EXT_copy_texture,GL_EXT_cull_vertex,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_depth_bounds_test,GL_EXT_direct_state_access,GL_EXT_draw_buffers2,GL_EXT_draw_instanced,GL_EXT_draw_range_elements,GL_EXT_external_buffer,GL_EXT_fog_coord,GL_EXT_framebuffer_blit,GL_EXT_framebuffer_blit_layers,GL_EXT_framebuffer_multisample,GL_EXT_framebuffer_multisample_blit_scaled,GL_EXT_framebuffer_object,GL_EXT_framebuffer_sRGB,GL_EXT_geometry_shader4,GL_EXT_gpu_program_parameters,GL_EXT_gpu_shader4,GL_EXT_histogram,GL_EXT_index_array_formats,GL_EXT_index_func,GL_EXT_index_material,GL_EXT_index_texture,GL_EXT_light_texture,GL_EXT_memory_object,GL_EXT_memory_object_fd,GL_EXT_memory_object_win32,GL_EXT_misc_attribute,GL_EXT_multi_draw_arrays,GL_EXT_multisample,GL_EXT_multiview_tessellation_geometry_shader,GL_EXT_multiview_texture_multisample,GL_EXT_multiview_timer_query,GL_EXT_packed_depth_stencil,GL_EXT_packed_float,GL_EXT_packed_pixels,GL_EXT_paletted_texture,GL_EXT_pixel_buffer_object,GL_EXT_pixel_transform,GL_EXT_pixel_transform_color_table,GL_EXT_point_parameters,GL_EXT_polygon_offset,GL_EXT_polygon_offset_clamp,GL_EXT_post_depth_coverage,GL_EXT_provoking_vertex,GL_EXT_raster_multisample,GL_EXT_rescale_normal,GL_EXT_secondary_color,GL_EXT_semaphore,GL_EXT_semaphore_fd,GL_EXT_semaphore_win32,GL_EXT_separate_shader_objects,GL_EXT_separate_specular_color,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_framebuffer_fetch_non_coherent,GL_EXT_shader_image_load_formatted,GL_EXT_shader_image_load_store,GL_EXT_shader_integer_mix,GL_EXT_shader_samples_identical,GL_EXT_shadow_funcs,GL_EXT_shared_texture_palette,GL_EXT_sparse_texture2,GL_EXT_stencil_clear_tag,GL_EXT_stencil_two_side,GL_EXT_stencil_wrap,GL_EXT_subtexture,GL_EXT_texture,GL_EXT_texture3D,GL_EXT_texture_array,GL_EXT_texture_buffer_object,GL_EXT_texture_compression_latc,GL_EXT_texture_compression_rgtc,GL_EXT_texture_compression_s3tc,GL_EXT_texture_cube_map,GL_EXT_texture_env_add,GL_EXT_texture_env_combine,GL_EXT_texture_env_dot3,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_filter_minmax,GL_EXT_texture_integer,GL_EXT_texture_lod_bias,GL_EXT_texture_mirror_clamp,GL_EXT_texture_object,GL_EXT_texture_perturb_normal,GL_EXT_texture_sRGB,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_RG8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_shadow_lod,GL_EXT_texture_shared_exponent,GL_EXT_texture_snorm,GL_EXT_texture_storage,GL_EXT_texture_swizzle,GL_EXT_timer_query,GL_EXT_transform_feedback,GL_EXT_vertex_array,GL_EXT_vertex_array_bgra,GL_EXT_vertex_attrib_64bit,GL_EXT_vertex_shader,GL_EXT_vertex_weighting,GL_EXT_win32_keyed_mutex,GL_EXT_window_rectangles,GL_EXT_x11_sync_object,GL_GREMEDY_frame_terminator,GL_GREMEDY_string_marker,GL_HP_convolution_border_modes,GL_HP_image_transform,GL_HP_occlusion_test,GL_HP_texture_lighting,GL_IBM_cull_vertex,GL_IBM_multimode_draw_arrays,GL_IBM_rasterpos_clip,GL_IBM_static_data,GL_IBM_texture_mirrored_repeat,GL_IBM_vertex_array_lists,GL_INGR_blend_func_separate,GL_INGR_color_clamp,GL_INGR_interlace_read,GL_INTEL_blackhole_render,GL_INTEL_conservative_rasterization,GL_INTEL_fragment_shader_ordering,GL_INTEL_framebuffer_CMAA,GL_INTEL_map_texture,GL_INTEL_parallel_arrays,GL_INTEL_performance_query,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_context_flush_control,GL_KHR_debug,GL_KHR_no_error,GL_KHR_parallel_shader_compile,GL_KHR_robust_buffer_access_behavior,GL_KHR_robustness,GL_KHR_shader_subgroup,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_KHR_texture_compression_astc_sliced_3d,GL_MESAX_texture_stack,GL_MESA_framebuffer_flip_x,GL_MESA_framebuffer_flip_y,GL_MESA_framebuffer_swap_xy,GL_MESA_pack_invert,GL_MESA_program_binary_formats,GL_MESA_resize_buffers,GL_MESA_shader_integer_functions,GL_MESA_tile_raster_order,GL_MESA_window_pos,GL_MESA_ycbcr_texture,GL_NVX_blend_equation_advanced_multi_draw_buffers,GL_NVX_conditional_render,GL_NVX_gpu_memory_info,GL_NVX_gpu_multicast2,GL_NVX_linked_gpu_multicast,GL_NVX_progress_fence,GL_NV_alpha_to_coverage_dither_control,GL_NV_bindless_multi_draw_indirect,GL_NV_bindless_multi_draw_indirect_count,GL_NV_bindless_texture,GL_NV_blend_equation_advanced,GL_NV_blend_equation_advanced_coherent,GL_NV_blend_minmax_factor,GL_NV_blend_square,GL_NV_clip_space_w_scaling,GL_NV_command_list,GL_NV_compute_program5,GL_NV_compute_shader_derivatives,GL_NV_conditional_render,GL_NV_conservative_raster,GL_NV_conservative_raster_dilate,GL_NV_conservative_raster_pre_snap,GL_NV_conservative_raster_pre_snap_triangles,GL_NV_conservative_raster_underestimation,GL_NV_copy_depth_to_color,GL_NV_copy_image,GL_NV_deep_texture3D,GL_NV_depth_buffer_float,GL_NV_depth_clamp,GL_NV_draw_texture,GL_NV_draw_vulkan_image,GL_NV_evaluators,GL_NV_explicit_multisample,GL_NV_fence,GL_NV_fill_rectangle,GL_NV_float_buffer,GL_NV_fog_distance,GL_NV_fragment_coverage_to_color,GL_NV_fragment_program,GL_NV_fragment_program2,GL_NV_fragment_program4,GL_NV_fragment_program_option,GL_NV_fragment_shader_barycentric,GL_NV_fragment_shader_interlock,GL_NV_framebuffer_mixed_samples,GL_NV_framebuffer_multisample_coverage,GL_NV_geometry_program4,GL_NV_geometry_shader4,GL_NV_geometry_shader_passthrough,GL_NV_gpu_multicast,GL_NV_gpu_program4,GL_NV_gpu_program5,GL_NV_gpu_program5_mem_extended,GL_NV_gpu_shader5,GL_NV_half_float,GL_NV_internalformat_sample_query,GL_NV_light_max_exponent,GL_NV_memory_attachment,GL_NV_memory_object_sparse,GL_NV_mesh_shader,GL_NV_multisample_coverage,GL_NV_multisample_filter_hint,GL_NV_occlusion_query,GL_NV_packed_depth_stencil,GL_NV_parameter_buffer_object,GL_NV_parameter_buffer_object2,GL_NV_path_rendering,GL_NV_path_rendering_shared_edge,GL_NV_pixel_data_range,GL_NV_point_sprite,GL_NV_present_video,GL_NV_primitive_restart,GL_NV_primitive_shading_rate,GL_NV_query_resource,GL_NV_query_resource_tag,GL_NV_register_combiners,GL_NV_register_combiners2,GL_NV_representative_fragment_test,GL_NV_robustness_video_memory_purge,GL_NV_sample_locations,GL_NV_sample_mask_override_coverage,GL_NV_scissor_exclusive,GL_NV_shader_atomic_counters,GL_NV_shader_atomic_float,GL_NV_shader_atomic_float64,GL_NV_shader_atomic_fp16_vector,GL_NV_shader_atomic_int64,GL_NV_shader_buffer_load,GL_NV_shader_buffer_store,GL_NV_shader_storage_buffer_object,GL_NV_shader_subgroup_partitioned,GL_NV_shader_texture_footprint,GL_NV_shader_thread_group,GL_NV_shader_thread_shuffle,GL_NV_shading_rate_image,GL_NV_stereo_view_rendering,GL_NV_tessellation_program5,GL_NV_texgen_emboss,GL_NV_texgen_reflection,GL_NV_texture_barrier,GL_NV_texture_compression_vtc,GL_NV_texture_env_combine4,GL_NV_texture_expand_normal,GL_NV_texture_multisample,GL_NV_texture_rectangle,GL_NV_texture_rectangle_compressed,GL_NV_texture_shader,GL_NV_texture_shader2,GL_NV_texture_shader3,GL_NV_timeline_semaphore,GL_NV_transform_feedback,GL_NV_transform_feedback2,GL_NV_uniform_buffer_std430_layout,GL_NV_uniform_buffer_unified_memory,GL_NV_vdpau_interop,GL_NV_vdpau_interop2,GL_NV_vertex_array_range,GL_NV_vertex_array_range2,GL_NV_vertex_attrib_integer_64bit,GL_NV_vertex_buffer_unified_memory,GL_NV_vertex_program,GL_NV_vertex_program1_1,GL_NV_vertex_program2,GL_NV_vertex_program2_option,GL_NV_vertex_program3,GL_NV_vertex_program4,GL_NV_video_capture,GL_NV_viewport_array2,GL_NV_viewport_swizzle,GL_OES_byte_coordinates,GL_OES_compressed_paletted_texture,GL_OES_fixed_point,GL_OES_query_matrix,GL_OES_read_format,GL_OES_single_precision,GL_OML_interlace,GL_OML_resample,GL_OML_subsample,GL_OVR_multiview,GL_OVR_multiview2,GL_PGI_misc_hints,GL_PGI_vertex_hints,GL_REND_screen_coordinates,GL_S3_s3tc,GL_SGIS_detail_texture,GL_SGIS_fog_function,GL_SGIS_generate_mipmap,GL_SGIS_multisample,GL_SGIS_pixel_texture,GL_SGIS_point_line_texgen,GL_SGIS_point_parameters,GL_SGIS_sharpen_texture,GL_SGIS_texture4D,GL_SGIS_texture_border_clamp,GL_SGIS_texture_color_mask,GL_SGIS_texture_edge_clamp,GL_SGIS_texture_filter4,GL_SGIS_texture_lod,GL_SGIS_texture_select,GL_SGIX_async,GL_SGIX_async_histogram,GL_SGIX_async_pixel,GL_SGIX_blend_alpha_minmax,GL_SGIX_calligraphic_fragment,GL_SGIX_clipmap,GL_SGIX_convolution_accuracy,GL_SGIX_depth_pass_instrument,GL_SGIX_depth_texture,GL_SGIX_flush_raster,GL_SGIX_fog_offset,GL_SGIX_fragment_lighting,GL_SGIX_framezoom,GL_SGIX_igloo_interface,GL_SGIX_instruments,GL_SGIX_interlace,GL_SGIX_ir_instrument1,GL_SGIX_list_priority,GL_SGIX_pixel_texture,GL_SGIX_pixel_tiles,GL_SGIX_polynomial_ffd,GL_SGIX_reference_plane,GL_SGIX_resample,GL_SGIX_scalebias_hint,GL_SGIX_shadow,GL_SGIX_shadow_ambient,GL_SGIX_sprite,GL_SGIX_subsample,GL_SGIX_tag_sample_buffer,GL_SGIX_texture_add_env,GL_SGIX_texture_coordinate_clamp,GL_SGIX_texture_lod_bias,GL_SGIX_texture_multi_buffer,GL_SGIX_texture_scale_bias,GL_SGIX_vertex_preclip,GL_SGIX_ycrcb,GL_SGIX_ycrcb_subsample,GL_SGIX_ycrcba,GL_SGI_color_matrix,GL_SGI_color_table,GL_SGI_texture_color_table,GL_SUNX_constant_data,GL_SUN_convolution_border_modes,GL_SUN_global_alpha,GL_SUN_mesh_array,GL_SUN_slice_accum,GL_SUN_triangle_list,GL_SUN_vertex,GL_WIN_phong_shading,GL_WIN_specular_fog' c --mx
+ *
+ * Online:
+ * http://glad.sh/#api=gl%3Acore%3D4.6&generator=c&options=MX
+ *
+ */
+
+#ifndef GLAD_GL_H_
+#define GLAD_GL_H_
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wreserved-id-macro"
+#endif
+#ifdef __gl_h_
+#error OpenGL (gl.h) header already included (API: gl), remove previous include!
+#endif
+#define __gl_h_ 1
+#ifdef __gl3_h_
+#error OpenGL (gl3.h) header already included (API: gl), remove previous include!
+#endif
+#define __gl3_h_ 1
+#ifdef __glext_h_
+#error OpenGL (glext.h) header already included (API: gl), remove previous include!
+#endif
+#define __glext_h_ 1
+#ifdef __gl3ext_h_
+#error OpenGL (gl3ext.h) header already included (API: gl), remove previous include!
+#endif
+#define __gl3ext_h_ 1
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+#define GLAD_GL
+#define GLAD_OPTION_GL_MX
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef GLAD_PLATFORM_H_
+#define GLAD_PLATFORM_H_
+
+#ifndef GLAD_PLATFORM_WIN32
+#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__)
+#define GLAD_PLATFORM_WIN32 1
+#else
+#define GLAD_PLATFORM_WIN32 0
+#endif
+#endif
+
+#ifndef GLAD_PLATFORM_APPLE
+#ifdef __APPLE__
+#define GLAD_PLATFORM_APPLE 1
+#else
+#define GLAD_PLATFORM_APPLE 0
+#endif
+#endif
+
+#ifndef GLAD_PLATFORM_EMSCRIPTEN
+#ifdef __EMSCRIPTEN__
+#define GLAD_PLATFORM_EMSCRIPTEN 1
+#else
+#define GLAD_PLATFORM_EMSCRIPTEN 0
+#endif
+#endif
+
+#ifndef GLAD_PLATFORM_UWP
+#if defined(_MSC_VER) && !defined(GLAD_INTERNAL_HAVE_WINAPIFAMILY)
+#ifdef __has_include
+#if __has_include()
+#define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
+#endif
+#elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
+#define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
+#endif
+#endif
+
+#ifdef GLAD_INTERNAL_HAVE_WINAPIFAMILY
+#include
+#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && \
+ WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+#define GLAD_PLATFORM_UWP 1
+#endif
+#endif
+
+#ifndef GLAD_PLATFORM_UWP
+#define GLAD_PLATFORM_UWP 0
+#endif
+#endif
+
+#ifdef __GNUC__
+#define GLAD_GNUC_EXTENSION __extension__
+#else
+#define GLAD_GNUC_EXTENSION
+#endif
+
+#define GLAD_UNUSED(x) (void)(x)
+
+#ifndef GLAD_API_CALL
+#if defined(GLAD_API_CALL_EXPORT)
+#if GLAD_PLATFORM_WIN32 || defined(__CYGWIN__)
+#if defined(GLAD_API_CALL_EXPORT_BUILD)
+#if defined(__GNUC__)
+#define GLAD_API_CALL __attribute__((dllexport)) extern
+#else
+#define GLAD_API_CALL __declspec(dllexport) extern
+#endif
+#else
+#if defined(__GNUC__)
+#define GLAD_API_CALL __attribute__((dllimport)) extern
+#else
+#define GLAD_API_CALL __declspec(dllimport) extern
+#endif
+#endif
+#elif defined(__GNUC__) && defined(GLAD_API_CALL_EXPORT_BUILD)
+#define GLAD_API_CALL __attribute__((visibility("default"))) extern
+#else
+#define GLAD_API_CALL extern
+#endif
+#else
+#define GLAD_API_CALL extern
+#endif
+#endif
+
+#ifdef APIENTRY
+#define GLAD_API_PTR APIENTRY
+#elif GLAD_PLATFORM_WIN32
+#define GLAD_API_PTR __stdcall
+#else
+#define GLAD_API_PTR
+#endif
+
+#ifndef GLAPI
+#define GLAPI GLAD_API_CALL
+#endif
+
+#ifndef GLAPIENTRY
+#define GLAPIENTRY GLAD_API_PTR
+#endif
+
+#define GLAD_MAKE_VERSION(major, minor) (major * 10000 + minor)
+#define GLAD_VERSION_MAJOR(version) (version / 10000)
+#define GLAD_VERSION_MINOR(version) (version % 10000)
+
+#define GLAD_GENERATOR_VERSION "2.0.5"
+
+typedef void (*GLADapiproc)(void);
+
+typedef GLADapiproc (*GLADloadfunc)(const char *name);
+typedef GLADapiproc (*GLADuserptrloadfunc)(void *userptr, const char *name);
+
+typedef void (*GLADprecallback)(const char *name, GLADapiproc apiproc, int len_args, ...);
+typedef void (*GLADpostcallback)(void *ret, const char *name, GLADapiproc apiproc, int len_args,
+ ...);
+
+#endif /* GLAD_PLATFORM_H_ */
+
+#define GL_1PASS_EXT 0x80A1
+#define GL_1PASS_SGIS 0x80A1
+#define GL_2PASS_0_EXT 0x80A2
+#define GL_2PASS_0_SGIS 0x80A2
+#define GL_2PASS_1_EXT 0x80A3
+#define GL_2PASS_1_SGIS 0x80A3
+#define GL_2X_BIT_ATI 0x00000001
+#define GL_422_AVERAGE_EXT 0x80CE
+#define GL_422_EXT 0x80CC
+#define GL_422_REV_AVERAGE_EXT 0x80CF
+#define GL_422_REV_EXT 0x80CD
+#define GL_4PASS_0_EXT 0x80A4
+#define GL_4PASS_0_SGIS 0x80A4
+#define GL_4PASS_1_EXT 0x80A5
+#define GL_4PASS_1_SGIS 0x80A5
+#define GL_4PASS_2_EXT 0x80A6
+#define GL_4PASS_2_SGIS 0x80A6
+#define GL_4PASS_3_EXT 0x80A7
+#define GL_4PASS_3_SGIS 0x80A7
+#define GL_4X_BIT_ATI 0x00000002
+#define GL_8X_BIT_ATI 0x00000004
+#define GL_ABGR_EXT 0x8000
+#define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD
+#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9
+#define GL_ACTIVE_ATTRIBUTES 0x8B89
+#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
+#define GL_ACTIVE_PROGRAM 0x8259
+#define GL_ACTIVE_PROGRAM_EXT 0x8B8D
+#define GL_ACTIVE_RESOURCES 0x92F5
+#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911
+#define GL_ACTIVE_SUBROUTINES 0x8DE5
+#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48
+#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6
+#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47
+#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49
+#define GL_ACTIVE_TEXTURE 0x84E0
+#define GL_ACTIVE_TEXTURE_ARB 0x84E0
+#define GL_ACTIVE_UNIFORMS 0x8B86
+#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36
+#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35
+#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
+#define GL_ACTIVE_VARIABLES 0x9305
+#define GL_ACTIVE_VARYINGS_NV 0x8C81
+#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82
+#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5
+#define GL_ADD_ATI 0x8963
+#define GL_ADD_SIGNED_ARB 0x8574
+#define GL_ADD_SIGNED_EXT 0x8574
+#define GL_ADJACENT_PAIRS_NV 0x90AE
+#define GL_AFFINE_2D_NV 0x9092
+#define GL_AFFINE_3D_NV 0x9094
+#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
+#define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210
+#define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211
+#define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E
+#define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F
+#define GL_ALL_BARRIER_BITS 0xFFFFFFFF
+#define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF
+#define GL_ALL_COMPLETED_NV 0x84F2
+#define GL_ALL_PIXELS_AMD 0xFFFFFFFF
+#define GL_ALL_SHADER_BITS 0xFFFFFFFF
+#define GL_ALL_STATIC_DATA_IBM 103060
+#define GL_ALPHA 0x1906
+#define GL_ALPHA12_EXT 0x803D
+#define GL_ALPHA16F_ARB 0x881C
+#define GL_ALPHA16F_EXT 0x881C
+#define GL_ALPHA16I_EXT 0x8D8A
+#define GL_ALPHA16UI_EXT 0x8D78
+#define GL_ALPHA16_EXT 0x803E
+#define GL_ALPHA16_SNORM 0x9018
+#define GL_ALPHA32F_ARB 0x8816
+#define GL_ALPHA32F_EXT 0x8816
+#define GL_ALPHA32I_EXT 0x8D84
+#define GL_ALPHA32UI_EXT 0x8D72
+#define GL_ALPHA4_EXT 0x803B
+#define GL_ALPHA8I_EXT 0x8D90
+#define GL_ALPHA8UI_EXT 0x8D7E
+#define GL_ALPHA8_EXT 0x803C
+#define GL_ALPHA8_SNORM 0x9014
+#define GL_ALPHA_FLOAT16_APPLE 0x881C
+#define GL_ALPHA_FLOAT16_ATI 0x881C
+#define GL_ALPHA_FLOAT32_APPLE 0x8816
+#define GL_ALPHA_FLOAT32_ATI 0x8816
+#define GL_ALPHA_INTEGER_EXT 0x8D97
+#define GL_ALPHA_MAX_CLAMP_INGR 0x8567
+#define GL_ALPHA_MAX_SGIX 0x8321
+#define GL_ALPHA_MIN_CLAMP_INGR 0x8563
+#define GL_ALPHA_MIN_SGIX 0x8320
+#define GL_ALPHA_REF_COMMAND_NV 0x000F
+#define GL_ALPHA_SNORM 0x9010
+#define GL_ALPHA_TO_COVERAGE_DITHER_DEFAULT_NV 0x934D
+#define GL_ALPHA_TO_COVERAGE_DITHER_DISABLE_NV 0x934F
+#define GL_ALPHA_TO_COVERAGE_DITHER_ENABLE_NV 0x934E
+#define GL_ALPHA_TO_COVERAGE_DITHER_MODE_NV 0x92BF
+#define GL_ALREADY_SIGNALED 0x911A
+#define GL_ALWAYS 0x0207
+#define GL_ALWAYS_FAST_HINT_PGI 0x1A20C
+#define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D
+#define GL_AND 0x1501
+#define GL_AND_INVERTED 0x1504
+#define GL_AND_REVERSE 0x1502
+#define GL_ANY_SAMPLES_PASSED 0x8C2F
+#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A
+#define GL_ARC_TO_NV 0xFE
+#define GL_ARRAY_BUFFER 0x8892
+#define GL_ARRAY_BUFFER_ARB 0x8892
+#define GL_ARRAY_BUFFER_BINDING 0x8894
+#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894
+#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9
+#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8
+#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766
+#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767
+#define GL_ARRAY_SIZE 0x92FB
+#define GL_ARRAY_STRIDE 0x92FE
+#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D
+#define GL_ASYNC_HISTOGRAM_SGIX 0x832C
+#define GL_ASYNC_MARKER_SGIX 0x8329
+#define GL_ASYNC_READ_PIXELS_SGIX 0x835E
+#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C
+#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000
+#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000
+#define GL_ATOMIC_COUNTER_BUFFER 0x92C0
+#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5
+#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6
+#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1
+#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4
+#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ED
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV 0x959E
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV 0x959F
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7
+#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3
+#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2
+#define GL_ATTACHED_MEMORY_OBJECT_NV 0x95A4
+#define GL_ATTACHED_MEMORY_OFFSET_NV 0x95A5
+#define GL_ATTACHED_SHADERS 0x8B85
+#define GL_ATTENUATION_EXT 0x834D
+#define GL_ATTRIBUTE_ADDRESS_COMMAND_NV 0x0009
+#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645
+#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623
+#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624
+#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625
+#define GL_AUTO_GENERATE_MIPMAP 0x8295
+#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14
+#define GL_AVERAGE_EXT 0x8335
+#define GL_AVERAGE_HP 0x8160
+#define GL_BACK 0x0405
+#define GL_BACK_LEFT 0x0402
+#define GL_BACK_NORMALS_HINT_PGI 0x1A223
+#define GL_BACK_PRIMARY_COLOR_NV 0x8C77
+#define GL_BACK_RIGHT 0x0403
+#define GL_BACK_SECONDARY_COLOR_NV 0x8C78
+#define GL_BEVEL_NV 0x90A6
+#define GL_BGR 0x80E0
+#define GL_BGRA 0x80E1
+#define GL_BGRA8_EXT 0x93A1
+#define GL_BGRA_EXT 0x80E1
+#define GL_BGRA_INTEGER 0x8D9B
+#define GL_BGRA_INTEGER_EXT 0x8D9B
+#define GL_BGR_EXT 0x80E0
+#define GL_BGR_INTEGER 0x8D9A
+#define GL_BGR_INTEGER_EXT 0x8D9A
+#define GL_BIAS_BIT_ATI 0x00000008
+#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541
+#define GL_BINORMAL_ARRAY_EXT 0x843A
+#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443
+#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441
+#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440
+#define GL_BLACKHOLE_RENDER_INTEL 0x83FC
+#define GL_BLEND 0x0BE2
+#define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285
+#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285
+#define GL_BLEND_COLOR 0x8005
+#define GL_BLEND_COLOR_COMMAND_NV 0x000B
+#define GL_BLEND_COLOR_EXT 0x8005
+#define GL_BLEND_DST 0x0BE0
+#define GL_BLEND_DST_ALPHA 0x80CA
+#define GL_BLEND_DST_ALPHA_EXT 0x80CA
+#define GL_BLEND_DST_RGB 0x80C8
+#define GL_BLEND_DST_RGB_EXT 0x80C8
+#define GL_BLEND_EQUATION 0x8009
+#define GL_BLEND_EQUATION_ALPHA 0x883D
+#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D
+#define GL_BLEND_EQUATION_EXT 0x8009
+#define GL_BLEND_EQUATION_RGB 0x8009
+#define GL_BLEND_EQUATION_RGB_EXT 0x8009
+#define GL_BLEND_OVERLAP_NV 0x9281
+#define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280
+#define GL_BLEND_SRC 0x0BE1
+#define GL_BLEND_SRC_ALPHA 0x80CB
+#define GL_BLEND_SRC_ALPHA_EXT 0x80CB
+#define GL_BLEND_SRC_RGB 0x80C9
+#define GL_BLEND_SRC_RGB_EXT 0x80C9
+#define GL_BLOCK_INDEX 0x92FD
+#define GL_BLUE 0x1905
+#define GL_BLUE_BIT_ATI 0x00000004
+#define GL_BLUE_INTEGER 0x8D96
+#define GL_BLUE_INTEGER_EXT 0x8D96
+#define GL_BLUE_MAX_CLAMP_INGR 0x8566
+#define GL_BLUE_MIN_CLAMP_INGR 0x8562
+#define GL_BLUE_NV 0x1905
+#define GL_BOLD_BIT_NV 0x01
+#define GL_BOOL 0x8B56
+#define GL_BOOL_ARB 0x8B56
+#define GL_BOOL_VEC2 0x8B57
+#define GL_BOOL_VEC2_ARB 0x8B57
+#define GL_BOOL_VEC3 0x8B58
+#define GL_BOOL_VEC3_ARB 0x8B58
+#define GL_BOOL_VEC4 0x8B59
+#define GL_BOOL_VEC4_ARB 0x8B59
+#define GL_BOUNDING_BOX_NV 0x908D
+#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C
+#define GL_BUFFER 0x82E0
+#define GL_BUFFER_ACCESS 0x88BB
+#define GL_BUFFER_ACCESS_ARB 0x88BB
+#define GL_BUFFER_ACCESS_FLAGS 0x911F
+#define GL_BUFFER_BINDING 0x9302
+#define GL_BUFFER_DATA_SIZE 0x9303
+#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13
+#define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D
+#define GL_BUFFER_IMMUTABLE_STORAGE 0x821F
+#define GL_BUFFER_MAPPED 0x88BC
+#define GL_BUFFER_MAPPED_ARB 0x88BC
+#define GL_BUFFER_MAP_LENGTH 0x9120
+#define GL_BUFFER_MAP_OFFSET 0x9121
+#define GL_BUFFER_MAP_POINTER 0x88BD
+#define GL_BUFFER_MAP_POINTER_ARB 0x88BD
+#define GL_BUFFER_OBJECT_APPLE 0x85B3
+#define GL_BUFFER_OBJECT_EXT 0x9151
+#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12
+#define GL_BUFFER_SIZE 0x8764
+#define GL_BUFFER_SIZE_ARB 0x8764
+#define GL_BUFFER_STORAGE_FLAGS 0x8220
+#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200
+#define GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200
+#define GL_BUFFER_USAGE 0x8765
+#define GL_BUFFER_USAGE_ARB 0x8765
+#define GL_BUFFER_VARIABLE 0x92E5
+#define GL_BUMP_ENVMAP_ATI 0x877B
+#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777
+#define GL_BUMP_ROT_MATRIX_ATI 0x8775
+#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776
+#define GL_BUMP_TARGET_ATI 0x877C
+#define GL_BUMP_TEX_UNITS_ATI 0x8778
+#define GL_BYTE 0x1400
+#define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183
+#define GL_CAVEAT_SUPPORT 0x82B8
+#define GL_CCW 0x0901
+#define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8
+#define GL_CIRCULAR_CW_ARC_TO_NV 0xFA
+#define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC
+#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B
+#define GL_CLAMP_READ_COLOR 0x891C
+#define GL_CLAMP_READ_COLOR_ARB 0x891C
+#define GL_CLAMP_TO_BORDER 0x812D
+#define GL_CLAMP_TO_BORDER_ARB 0x812D
+#define GL_CLAMP_TO_BORDER_SGIS 0x812D
+#define GL_CLAMP_TO_EDGE 0x812F
+#define GL_CLAMP_TO_EDGE_SGIS 0x812F
+#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A
+#define GL_CLEAR 0x1500
+#define GL_CLEAR_BUFFER 0x82B4
+#define GL_CLEAR_TEXTURE 0x9365
+#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1
+#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000
+#define GL_CLIENT_STORAGE_BIT 0x0200
+#define GL_CLIPPING_INPUT_PRIMITIVES 0x82F6
+#define GL_CLIPPING_INPUT_PRIMITIVES_ARB 0x82F6
+#define GL_CLIPPING_OUTPUT_PRIMITIVES 0x82F7
+#define GL_CLIPPING_OUTPUT_PRIMITIVES_ARB 0x82F7
+#define GL_CLIP_DEPTH_MODE 0x935D
+#define GL_CLIP_DISTANCE0 0x3000
+#define GL_CLIP_DISTANCE1 0x3001
+#define GL_CLIP_DISTANCE2 0x3002
+#define GL_CLIP_DISTANCE3 0x3003
+#define GL_CLIP_DISTANCE4 0x3004
+#define GL_CLIP_DISTANCE5 0x3005
+#define GL_CLIP_DISTANCE6 0x3006
+#define GL_CLIP_DISTANCE7 0x3007
+#define GL_CLIP_DISTANCE_NV 0x8C7A
+#define GL_CLIP_FAR_HINT_PGI 0x1A221
+#define GL_CLIP_NEAR_HINT_PGI 0x1A220
+#define GL_CLIP_ORIGIN 0x935C
+#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0
+#define GL_CLOSE_PATH_NV 0x00
+#define GL_CMYKA_EXT 0x800D
+#define GL_CMYK_EXT 0x800C
+#define GL_CND0_ATI 0x896B
+#define GL_CND_ATI 0x896A
+#define GL_COLOR 0x1800
+#define GL_COLOR3_BIT_PGI 0x00010000
+#define GL_COLOR4_BIT_PGI 0x00020000
+#define GL_COLORBURN_KHR 0x929A
+#define GL_COLORBURN_NV 0x929A
+#define GL_COLORDODGE_KHR 0x9299
+#define GL_COLORDODGE_NV 0x9299
+#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975
+#define GL_COLOR_ARRAY_ADDRESS_NV 0x8F23
+#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898
+#define GL_COLOR_ARRAY_COUNT_EXT 0x8084
+#define GL_COLOR_ARRAY_EXT 0x8076
+#define GL_COLOR_ARRAY_LENGTH_NV 0x8F2D
+#define GL_COLOR_ARRAY_LIST_IBM 103072
+#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082
+#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7
+#define GL_COLOR_ARRAY_POINTER_EXT 0x8090
+#define GL_COLOR_ARRAY_SIZE_EXT 0x8081
+#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083
+#define GL_COLOR_ARRAY_TYPE_EXT 0x8082
+#define GL_COLOR_ATTACHMENT0 0x8CE0
+#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
+#define GL_COLOR_ATTACHMENT1 0x8CE1
+#define GL_COLOR_ATTACHMENT10 0x8CEA
+#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA
+#define GL_COLOR_ATTACHMENT11 0x8CEB
+#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB
+#define GL_COLOR_ATTACHMENT12 0x8CEC
+#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC
+#define GL_COLOR_ATTACHMENT13 0x8CED
+#define GL_COLOR_ATTACHMENT13_EXT 0x8CED
+#define GL_COLOR_ATTACHMENT14 0x8CEE
+#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE
+#define GL_COLOR_ATTACHMENT15 0x8CEF
+#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF
+#define GL_COLOR_ATTACHMENT16 0x8CF0
+#define GL_COLOR_ATTACHMENT17 0x8CF1
+#define GL_COLOR_ATTACHMENT18 0x8CF2
+#define GL_COLOR_ATTACHMENT19 0x8CF3
+#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1
+#define GL_COLOR_ATTACHMENT2 0x8CE2
+#define GL_COLOR_ATTACHMENT20 0x8CF4
+#define GL_COLOR_ATTACHMENT21 0x8CF5
+#define GL_COLOR_ATTACHMENT22 0x8CF6
+#define GL_COLOR_ATTACHMENT23 0x8CF7
+#define GL_COLOR_ATTACHMENT24 0x8CF8
+#define GL_COLOR_ATTACHMENT25 0x8CF9
+#define GL_COLOR_ATTACHMENT26 0x8CFA
+#define GL_COLOR_ATTACHMENT27 0x8CFB
+#define GL_COLOR_ATTACHMENT28 0x8CFC
+#define GL_COLOR_ATTACHMENT29 0x8CFD
+#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2
+#define GL_COLOR_ATTACHMENT3 0x8CE3
+#define GL_COLOR_ATTACHMENT30 0x8CFE
+#define GL_COLOR_ATTACHMENT31 0x8CFF
+#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3
+#define GL_COLOR_ATTACHMENT4 0x8CE4
+#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4
+#define GL_COLOR_ATTACHMENT5 0x8CE5
+#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5
+#define GL_COLOR_ATTACHMENT6 0x8CE6
+#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6
+#define GL_COLOR_ATTACHMENT7 0x8CE7
+#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7
+#define GL_COLOR_ATTACHMENT8 0x8CE8
+#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8
+#define GL_COLOR_ATTACHMENT9 0x8CE9
+#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9
+#define GL_COLOR_BUFFER_BIT 0x00004000
+#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835
+#define GL_COLOR_CLEAR_VALUE 0x0C22
+#define GL_COLOR_COMPONENTS 0x8283
+#define GL_COLOR_ENCODING 0x8296
+#define GL_COLOR_FLOAT_APPLE 0x8A0F
+#define GL_COLOR_INDEX12_EXT 0x80E6
+#define GL_COLOR_INDEX16_EXT 0x80E7
+#define GL_COLOR_INDEX1_EXT 0x80E2
+#define GL_COLOR_INDEX2_EXT 0x80E3
+#define GL_COLOR_INDEX4_EXT 0x80E4
+#define GL_COLOR_INDEX8_EXT 0x80E5
+#define GL_COLOR_LOGIC_OP 0x0BF2
+#define GL_COLOR_MATRIX_SGI 0x80B1
+#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2
+#define GL_COLOR_RENDERABLE 0x8286
+#define GL_COLOR_SAMPLES_NV 0x8E20
+#define GL_COLOR_SUM_ARB 0x8458
+#define GL_COLOR_SUM_CLAMP_NV 0x854F
+#define GL_COLOR_SUM_EXT 0x8458
+#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD
+#define GL_COLOR_TABLE_BIAS_SGI 0x80D7
+#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC
+#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8
+#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB
+#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF
+#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE
+#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA
+#define GL_COLOR_TABLE_SCALE_SGI 0x80D6
+#define GL_COLOR_TABLE_SGI 0x80D0
+#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9
+#define GL_COLOR_WRITEMASK 0x0C23
+#define GL_COMBINE4_NV 0x8503
+#define GL_COMBINER0_NV 0x8550
+#define GL_COMBINER1_NV 0x8551
+#define GL_COMBINER2_NV 0x8552
+#define GL_COMBINER3_NV 0x8553
+#define GL_COMBINER4_NV 0x8554
+#define GL_COMBINER5_NV 0x8555
+#define GL_COMBINER6_NV 0x8556
+#define GL_COMBINER7_NV 0x8557
+#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545
+#define GL_COMBINER_AB_OUTPUT_NV 0x854A
+#define GL_COMBINER_BIAS_NV 0x8549
+#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546
+#define GL_COMBINER_CD_OUTPUT_NV 0x854B
+#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544
+#define GL_COMBINER_INPUT_NV 0x8542
+#define GL_COMBINER_MAPPING_NV 0x8543
+#define GL_COMBINER_MUX_SUM_NV 0x8547
+#define GL_COMBINER_SCALE_NV 0x8548
+#define GL_COMBINER_SUM_OUTPUT_NV 0x854C
+#define GL_COMBINE_ALPHA_ARB 0x8572
+#define GL_COMBINE_ALPHA_EXT 0x8572
+#define GL_COMBINE_ARB 0x8570
+#define GL_COMBINE_EXT 0x8570
+#define GL_COMBINE_RGB_ARB 0x8571
+#define GL_COMBINE_RGB_EXT 0x8571
+#define GL_COMMAND_BARRIER_BIT 0x00000040
+#define GL_COMMAND_BARRIER_BIT_EXT 0x00000040
+#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E
+#define GL_COMPARE_REF_TO_TEXTURE 0x884E
+#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E
+#define GL_COMPATIBLE_SUBROUTINES 0x8E4B
+#define GL_COMPILE_STATUS 0x8B81
+#define GL_COMPLETION_STATUS_ARB 0x91B1
+#define GL_COMPLETION_STATUS_KHR 0x91B1
+#define GL_COMPRESSED_ALPHA_ARB 0x84E9
+#define GL_COMPRESSED_INTENSITY_ARB 0x84EC
+#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB
+#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72
+#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA
+#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70
+#define GL_COMPRESSED_R11_EAC 0x9270
+#define GL_COMPRESSED_RED 0x8225
+#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD
+#define GL_COMPRESSED_RED_RGTC1 0x8DBB
+#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB
+#define GL_COMPRESSED_RG 0x8226
+#define GL_COMPRESSED_RG11_EAC 0x9272
+#define GL_COMPRESSED_RGB 0x84ED
+#define GL_COMPRESSED_RGB8_ETC2 0x9274
+#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276
+#define GL_COMPRESSED_RGBA 0x84EE
+#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278
+#define GL_COMPRESSED_RGBA_ARB 0x84EE
+#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB
+#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8
+#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9
+#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA
+#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC
+#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD
+#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0
+#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1
+#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2
+#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3
+#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4
+#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5
+#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6
+#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7
+#define GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C
+#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C
+#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1
+#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
+#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2
+#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3
+#define GL_COMPRESSED_RGB_ARB 0x84ED
+#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E
+#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E
+#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F
+#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F
+#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0
+#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
+#define GL_COMPRESSED_RG_RGTC2 0x8DBD
+#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73
+#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71
+#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271
+#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE
+#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC
+#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC
+#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273
+#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE
+#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B
+#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A
+#define GL_COMPRESSED_SRGB 0x8C48
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7
+#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279
+#define GL_COMPRESSED_SRGB8_ETC2 0x9275
+#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277
+#define GL_COMPRESSED_SRGB_ALPHA 0x8C49
+#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D
+#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D
+#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49
+#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D
+#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
+#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
+#define GL_COMPRESSED_SRGB_EXT 0x8C48
+#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C
+#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
+#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3
+#define GL_COMPUTE_PROGRAM_NV 0x90FB
+#define GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV 0x90FC
+#define GL_COMPUTE_SHADER 0x91B9
+#define GL_COMPUTE_SHADER_BIT 0x00000020
+#define GL_COMPUTE_SHADER_INVOCATIONS 0x82F5
+#define GL_COMPUTE_SHADER_INVOCATIONS_ARB 0x82F5
+#define GL_COMPUTE_SUBROUTINE 0x92ED
+#define GL_COMPUTE_SUBROUTINE_UNIFORM 0x92F3
+#define GL_COMPUTE_TEXTURE 0x82A0
+#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267
+#define GL_COMP_BIT_ATI 0x00000002
+#define GL_CONDITION_SATISFIED 0x911C
+#define GL_CONFORMANT_NV 0x9374
+#define GL_CONIC_CURVE_TO_NV 0x1A
+#define GL_CONJOINT_NV 0x9284
+#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE
+#define GL_CONSERVATIVE_RASTERIZATION_NV 0x9346
+#define GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV 0x937B
+#define GL_CONSERVATIVE_RASTER_DILATE_NV 0x9379
+#define GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV 0x937A
+#define GL_CONSERVATIVE_RASTER_MODE_NV 0x954D
+#define GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV 0x954E
+#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV 0x9550
+#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV 0x954F
+#define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD
+#define GL_CONSTANT_ALPHA 0x8003
+#define GL_CONSTANT_ALPHA_EXT 0x8003
+#define GL_CONSTANT_ARB 0x8576
+#define GL_CONSTANT_BORDER_HP 0x8151
+#define GL_CONSTANT_COLOR 0x8001
+#define GL_CONSTANT_COLOR0_NV 0x852A
+#define GL_CONSTANT_COLOR1_NV 0x852B
+#define GL_CONSTANT_COLOR_EXT 0x8001
+#define GL_CONSTANT_EXT 0x8576
+#define GL_CONST_EYE_NV 0x86E5
+#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002
+#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001
+#define GL_CONTEXT_FLAGS 0x821E
+#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002
+#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x00000001
+#define GL_CONTEXT_FLAG_NO_ERROR_BIT 0x00000008
+#define GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR 0x00000008
+#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004
+#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004
+#define GL_CONTEXT_LOST 0x0507
+#define GL_CONTEXT_PROFILE_MASK 0x9126
+#define GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB
+#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC
+#define GL_CONTEXT_ROBUST_ACCESS 0x90F3
+#define GL_CONTINUOUS_AMD 0x9007
+#define GL_CONTRAST_NV 0x92A1
+#define GL_CONVEX_HULL_NV 0x908B
+#define GL_CONVOLUTION_1D_EXT 0x8010
+#define GL_CONVOLUTION_2D_EXT 0x8011
+#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154
+#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013
+#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015
+#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014
+#define GL_CONVOLUTION_FORMAT_EXT 0x8017
+#define GL_CONVOLUTION_HEIGHT_EXT 0x8019
+#define GL_CONVOLUTION_HINT_SGIX 0x8316
+#define GL_CONVOLUTION_WIDTH_EXT 0x8018
+#define GL_CON_0_ATI 0x8941
+#define GL_CON_10_ATI 0x894B
+#define GL_CON_11_ATI 0x894C
+#define GL_CON_12_ATI 0x894D
+#define GL_CON_13_ATI 0x894E
+#define GL_CON_14_ATI 0x894F
+#define GL_CON_15_ATI 0x8950
+#define GL_CON_16_ATI 0x8951
+#define GL_CON_17_ATI 0x8952
+#define GL_CON_18_ATI 0x8953
+#define GL_CON_19_ATI 0x8954
+#define GL_CON_1_ATI 0x8942
+#define GL_CON_20_ATI 0x8955
+#define GL_CON_21_ATI 0x8956
+#define GL_CON_22_ATI 0x8957
+#define GL_CON_23_ATI 0x8958
+#define GL_CON_24_ATI 0x8959
+#define GL_CON_25_ATI 0x895A
+#define GL_CON_26_ATI 0x895B
+#define GL_CON_27_ATI 0x895C
+#define GL_CON_28_ATI 0x895D
+#define GL_CON_29_ATI 0x895E
+#define GL_CON_2_ATI 0x8943
+#define GL_CON_30_ATI 0x895F
+#define GL_CON_31_ATI 0x8960
+#define GL_CON_3_ATI 0x8944
+#define GL_CON_4_ATI 0x8945
+#define GL_CON_5_ATI 0x8946
+#define GL_CON_6_ATI 0x8947
+#define GL_CON_7_ATI 0x8948
+#define GL_CON_8_ATI 0x8949
+#define GL_CON_9_ATI 0x894A
+#define GL_COORD_REPLACE_ARB 0x8862
+#define GL_COORD_REPLACE_NV 0x8862
+#define GL_COPY 0x1503
+#define GL_COPY_INVERTED 0x150C
+#define GL_COPY_READ_BUFFER 0x8F36
+#define GL_COPY_READ_BUFFER_BINDING 0x8F36
+#define GL_COPY_WRITE_BUFFER 0x8F37
+#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37
+#define GL_COUNTER_RANGE_AMD 0x8BC1
+#define GL_COUNTER_TYPE_AMD 0x8BC0
+#define GL_COUNT_DOWN_NV 0x9089
+#define GL_COUNT_UP_NV 0x9088
+#define GL_COVERAGE_MODULATION_NV 0x9332
+#define GL_COVERAGE_MODULATION_TABLE_NV 0x9331
+#define GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333
+#define GL_CUBIC_CURVE_TO_NV 0x0C
+#define GL_CUBIC_EXT 0x8334
+#define GL_CUBIC_HP 0x815F
+#define GL_CULL_FACE 0x0B44
+#define GL_CULL_FACE_MODE 0x0B45
+#define GL_CULL_FRAGMENT_NV 0x86E7
+#define GL_CULL_MODES_NV 0x86E0
+#define GL_CULL_VERTEX_EXT 0x81AA
+#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB
+#define GL_CULL_VERTEX_IBM 103050
+#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC
+#define GL_CURRENT_ATTRIB_NV 0x8626
+#define GL_CURRENT_BINORMAL_EXT 0x843C
+#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453
+#define GL_CURRENT_MATRIX_ARB 0x8641
+#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845
+#define GL_CURRENT_MATRIX_NV 0x8641
+#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640
+#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640
+#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865
+#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843
+#define GL_CURRENT_PROGRAM 0x8B8D
+#define GL_CURRENT_QUERY 0x8865
+#define GL_CURRENT_QUERY_ARB 0x8865
+#define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406
+#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459
+#define GL_CURRENT_TANGENT_EXT 0x843B
+#define GL_CURRENT_TIME_NV 0x8E28
+#define GL_CURRENT_VERTEX_ATTRIB 0x8626
+#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626
+#define GL_CURRENT_VERTEX_EXT 0x87E2
+#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B
+#define GL_CURRENT_WEIGHT_ARB 0x86A8
+#define GL_CW 0x0900
+#define GL_D3D12_FENCE_VALUE_EXT 0x9595
+#define GL_DARKEN_KHR 0x9297
+#define GL_DARKEN_NV 0x9297
+#define GL_DATA_BUFFER_AMD 0x9151
+#define GL_DEBUG_CALLBACK_FUNCTION 0x8244
+#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244
+#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245
+#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245
+#define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149
+#define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F
+#define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B
+#define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150
+#define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D
+#define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E
+#define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C
+#define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A
+#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D
+#define GL_DEBUG_LOGGED_MESSAGES 0x9145
+#define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145
+#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145
+#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243
+#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243
+#define GL_DEBUG_OUTPUT 0x92E0
+#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242
+#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242
+#define GL_DEBUG_SEVERITY_HIGH 0x9146
+#define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146
+#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146
+#define GL_DEBUG_SEVERITY_LOW 0x9148
+#define GL_DEBUG_SEVERITY_LOW_AMD 0x9148
+#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148
+#define GL_DEBUG_SEVERITY_MEDIUM 0x9147
+#define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147
+#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147
+#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B
+#define GL_DEBUG_SOURCE_API 0x8246
+#define GL_DEBUG_SOURCE_API_ARB 0x8246
+#define GL_DEBUG_SOURCE_APPLICATION 0x824A
+#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A
+#define GL_DEBUG_SOURCE_OTHER 0x824B
+#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B
+#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248
+#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248
+#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249
+#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249
+#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247
+#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247
+#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D
+#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D
+#define GL_DEBUG_TYPE_ERROR 0x824C
+#define GL_DEBUG_TYPE_ERROR_ARB 0x824C
+#define GL_DEBUG_TYPE_MARKER 0x8268
+#define GL_DEBUG_TYPE_OTHER 0x8251
+#define GL_DEBUG_TYPE_OTHER_ARB 0x8251
+#define GL_DEBUG_TYPE_PERFORMANCE 0x8250
+#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250
+#define GL_DEBUG_TYPE_POP_GROUP 0x826A
+#define GL_DEBUG_TYPE_PORTABILITY 0x824F
+#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F
+#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269
+#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E
+#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E
+#define GL_DECODE_EXT 0x8A49
+#define GL_DECR 0x1E03
+#define GL_DECR_WRAP 0x8508
+#define GL_DECR_WRAP_EXT 0x8508
+#define GL_DEDICATED_MEMORY_OBJECT_EXT 0x9581
+#define GL_DEFORMATIONS_MASK_SGIX 0x8196
+#define GL_DELETE_STATUS 0x8B80
+#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9
+#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA
+#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858
+#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859
+#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A
+#define GL_DEPTH 0x1801
+#define GL_DEPTH24_STENCIL8 0x88F0
+#define GL_DEPTH24_STENCIL8_EXT 0x88F0
+#define GL_DEPTH32F_STENCIL8 0x8CAD
+#define GL_DEPTH32F_STENCIL8_NV 0x8DAC
+#define GL_DEPTH_ATTACHMENT 0x8D00
+#define GL_DEPTH_ATTACHMENT_EXT 0x8D00
+#define GL_DEPTH_BOUNDS_EXT 0x8891
+#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890
+#define GL_DEPTH_BUFFER_BIT 0x00000100
+#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF
+#define GL_DEPTH_CLAMP 0x864F
+#define GL_DEPTH_CLAMP_FAR_AMD 0x901F
+#define GL_DEPTH_CLAMP_NEAR_AMD 0x901E
+#define GL_DEPTH_CLAMP_NV 0x864F
+#define GL_DEPTH_CLEAR_VALUE 0x0B73
+#define GL_DEPTH_COMPONENT 0x1902
+#define GL_DEPTH_COMPONENT16 0x81A5
+#define GL_DEPTH_COMPONENT16_ARB 0x81A5
+#define GL_DEPTH_COMPONENT16_SGIX 0x81A5
+#define GL_DEPTH_COMPONENT24 0x81A6
+#define GL_DEPTH_COMPONENT24_ARB 0x81A6
+#define GL_DEPTH_COMPONENT24_SGIX 0x81A6
+#define GL_DEPTH_COMPONENT32 0x81A7
+#define GL_DEPTH_COMPONENT32F 0x8CAC
+#define GL_DEPTH_COMPONENT32F_NV 0x8DAB
+#define GL_DEPTH_COMPONENT32_ARB 0x81A7
+#define GL_DEPTH_COMPONENT32_SGIX 0x81A7
+#define GL_DEPTH_COMPONENTS 0x8284
+#define GL_DEPTH_FUNC 0x0B74
+#define GL_DEPTH_RANGE 0x0B70
+#define GL_DEPTH_RENDERABLE 0x8287
+#define GL_DEPTH_SAMPLES_NV 0x932D
+#define GL_DEPTH_STENCIL 0x84F9
+#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A
+#define GL_DEPTH_STENCIL_EXT 0x84F9
+#define GL_DEPTH_STENCIL_NV 0x84F9
+#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA
+#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F
+#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E
+#define GL_DEPTH_TEST 0x0B71
+#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B
+#define GL_DEPTH_WRITEMASK 0x0B72
+#define GL_DETACHED_BUFFERS_NV 0x95AB
+#define GL_DETACHED_MEMORY_INCARNATION_NV 0x95A9
+#define GL_DETACHED_TEXTURES_NV 0x95AA
+#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096
+#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095
+#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C
+#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A
+#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B
+#define GL_DEVICE_LUID_EXT 0x9599
+#define GL_DEVICE_NODE_MASK_EXT 0x959A
+#define GL_DEVICE_UUID_EXT 0x9597
+#define GL_DIFFERENCE_KHR 0x929E
+#define GL_DIFFERENCE_NV 0x929E
+#define GL_DISCARD_ATI 0x8763
+#define GL_DISCARD_NV 0x8530
+#define GL_DISCRETE_AMD 0x9006
+#define GL_DISJOINT_NV 0x9283
+#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE
+#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF
+#define GL_DISTANCE_ATTENUATION_EXT 0x8129
+#define GL_DISTANCE_ATTENUATION_SGIS 0x8129
+#define GL_DITHER 0x0BD0
+#define GL_DONT_CARE 0x1100
+#define GL_DOT2_ADD_ATI 0x896C
+#define GL_DOT3_ATI 0x8966
+#define GL_DOT3_RGBA_ARB 0x86AF
+#define GL_DOT3_RGBA_EXT 0x8741
+#define GL_DOT3_RGB_ARB 0x86AE
+#define GL_DOT3_RGB_EXT 0x8740
+#define GL_DOT4_ATI 0x8967
+#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D
+#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3
+#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED
+#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1
+#define GL_DOT_PRODUCT_NV 0x86EC
+#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B
+#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2
+#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C
+#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE
+#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF
+#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0
+#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E
+#define GL_DOUBLE 0x140A
+#define GL_DOUBLEBUFFER 0x0C32
+#define GL_DOUBLE_MAT2 0x8F46
+#define GL_DOUBLE_MAT2_EXT 0x8F46
+#define GL_DOUBLE_MAT2x3 0x8F49
+#define GL_DOUBLE_MAT2x3_EXT 0x8F49
+#define GL_DOUBLE_MAT2x4 0x8F4A
+#define GL_DOUBLE_MAT2x4_EXT 0x8F4A
+#define GL_DOUBLE_MAT3 0x8F47
+#define GL_DOUBLE_MAT3_EXT 0x8F47
+#define GL_DOUBLE_MAT3x2 0x8F4B
+#define GL_DOUBLE_MAT3x2_EXT 0x8F4B
+#define GL_DOUBLE_MAT3x4 0x8F4C
+#define GL_DOUBLE_MAT3x4_EXT 0x8F4C
+#define GL_DOUBLE_MAT4 0x8F48
+#define GL_DOUBLE_MAT4_EXT 0x8F48
+#define GL_DOUBLE_MAT4x2 0x8F4D
+#define GL_DOUBLE_MAT4x2_EXT 0x8F4D
+#define GL_DOUBLE_MAT4x3 0x8F4E
+#define GL_DOUBLE_MAT4x3_EXT 0x8F4E
+#define GL_DOUBLE_VEC2 0x8FFC
+#define GL_DOUBLE_VEC2_EXT 0x8FFC
+#define GL_DOUBLE_VEC3 0x8FFD
+#define GL_DOUBLE_VEC3_EXT 0x8FFD
+#define GL_DOUBLE_VEC4 0x8FFE
+#define GL_DOUBLE_VEC4_EXT 0x8FFE
+#define GL_DRAW_ARRAYS_COMMAND_NV 0x0003
+#define GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV 0x0007
+#define GL_DRAW_ARRAYS_STRIP_COMMAND_NV 0x0005
+#define GL_DRAW_BUFFER 0x0C01
+#define GL_DRAW_BUFFER0 0x8825
+#define GL_DRAW_BUFFER0_ARB 0x8825
+#define GL_DRAW_BUFFER0_ATI 0x8825
+#define GL_DRAW_BUFFER1 0x8826
+#define GL_DRAW_BUFFER10 0x882F
+#define GL_DRAW_BUFFER10_ARB 0x882F
+#define GL_DRAW_BUFFER10_ATI 0x882F
+#define GL_DRAW_BUFFER11 0x8830
+#define GL_DRAW_BUFFER11_ARB 0x8830
+#define GL_DRAW_BUFFER11_ATI 0x8830
+#define GL_DRAW_BUFFER12 0x8831
+#define GL_DRAW_BUFFER12_ARB 0x8831
+#define GL_DRAW_BUFFER12_ATI 0x8831
+#define GL_DRAW_BUFFER13 0x8832
+#define GL_DRAW_BUFFER13_ARB 0x8832
+#define GL_DRAW_BUFFER13_ATI 0x8832
+#define GL_DRAW_BUFFER14 0x8833
+#define GL_DRAW_BUFFER14_ARB 0x8833
+#define GL_DRAW_BUFFER14_ATI 0x8833
+#define GL_DRAW_BUFFER15 0x8834
+#define GL_DRAW_BUFFER15_ARB 0x8834
+#define GL_DRAW_BUFFER15_ATI 0x8834
+#define GL_DRAW_BUFFER1_ARB 0x8826
+#define GL_DRAW_BUFFER1_ATI 0x8826
+#define GL_DRAW_BUFFER2 0x8827
+#define GL_DRAW_BUFFER2_ARB 0x8827
+#define GL_DRAW_BUFFER2_ATI 0x8827
+#define GL_DRAW_BUFFER3 0x8828
+#define GL_DRAW_BUFFER3_ARB 0x8828
+#define GL_DRAW_BUFFER3_ATI 0x8828
+#define GL_DRAW_BUFFER4 0x8829
+#define GL_DRAW_BUFFER4_ARB 0x8829
+#define GL_DRAW_BUFFER4_ATI 0x8829
+#define GL_DRAW_BUFFER5 0x882A
+#define GL_DRAW_BUFFER5_ARB 0x882A
+#define GL_DRAW_BUFFER5_ATI 0x882A
+#define GL_DRAW_BUFFER6 0x882B
+#define GL_DRAW_BUFFER6_ARB 0x882B
+#define GL_DRAW_BUFFER6_ATI 0x882B
+#define GL_DRAW_BUFFER7 0x882C
+#define GL_DRAW_BUFFER7_ARB 0x882C
+#define GL_DRAW_BUFFER7_ATI 0x882C
+#define GL_DRAW_BUFFER8 0x882D
+#define GL_DRAW_BUFFER8_ARB 0x882D
+#define GL_DRAW_BUFFER8_ATI 0x882D
+#define GL_DRAW_BUFFER9 0x882E
+#define GL_DRAW_BUFFER9_ARB 0x882E
+#define GL_DRAW_BUFFER9_ATI 0x882E
+#define GL_DRAW_ELEMENTS_COMMAND_NV 0x0002
+#define GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV 0x0006
+#define GL_DRAW_ELEMENTS_STRIP_COMMAND_NV 0x0004
+#define GL_DRAW_FRAMEBUFFER 0x8CA9
+#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6
+#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6
+#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9
+#define GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41
+#define GL_DRAW_INDIRECT_BUFFER 0x8F3F
+#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43
+#define GL_DRAW_INDIRECT_LENGTH_NV 0x8F42
+#define GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40
+#define GL_DRAW_PIXELS_APPLE 0x8A0A
+#define GL_DRIVER_UUID_EXT 0x9598
+#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B
+#define GL_DSDT8_MAG8_NV 0x870A
+#define GL_DSDT8_NV 0x8709
+#define GL_DSDT_MAG_INTENSITY_NV 0x86DC
+#define GL_DSDT_MAG_NV 0x86F6
+#define GL_DSDT_MAG_VIB_NV 0x86F7
+#define GL_DSDT_NV 0x86F5
+#define GL_DST_ALPHA 0x0304
+#define GL_DST_ATOP_NV 0x928F
+#define GL_DST_COLOR 0x0306
+#define GL_DST_IN_NV 0x928B
+#define GL_DST_NV 0x9287
+#define GL_DST_OUT_NV 0x928D
+#define GL_DST_OVER_NV 0x9289
+#define GL_DS_BIAS_NV 0x8716
+#define GL_DS_SCALE_NV 0x8710
+#define GL_DT_BIAS_NV 0x8717
+#define GL_DT_SCALE_NV 0x8711
+#define GL_DU8DV8_ATI 0x877A
+#define GL_DUAL_ALPHA12_SGIS 0x8112
+#define GL_DUAL_ALPHA16_SGIS 0x8113
+#define GL_DUAL_ALPHA4_SGIS 0x8110
+#define GL_DUAL_ALPHA8_SGIS 0x8111
+#define GL_DUAL_INTENSITY12_SGIS 0x811A
+#define GL_DUAL_INTENSITY16_SGIS 0x811B
+#define GL_DUAL_INTENSITY4_SGIS 0x8118
+#define GL_DUAL_INTENSITY8_SGIS 0x8119
+#define GL_DUAL_LUMINANCE12_SGIS 0x8116
+#define GL_DUAL_LUMINANCE16_SGIS 0x8117
+#define GL_DUAL_LUMINANCE4_SGIS 0x8114
+#define GL_DUAL_LUMINANCE8_SGIS 0x8115
+#define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C
+#define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D
+#define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124
+#define GL_DUDV_ATI 0x8779
+#define GL_DUP_FIRST_CUBIC_CURVE_TO_NV 0xF2
+#define GL_DUP_LAST_CUBIC_CURVE_TO_NV 0xF4
+#define GL_DYNAMIC_ATI 0x8761
+#define GL_DYNAMIC_COPY 0x88EA
+#define GL_DYNAMIC_COPY_ARB 0x88EA
+#define GL_DYNAMIC_DRAW 0x88E8
+#define GL_DYNAMIC_DRAW_ARB 0x88E8
+#define GL_DYNAMIC_READ 0x88E9
+#define GL_DYNAMIC_READ_ARB 0x88E9
+#define GL_DYNAMIC_STORAGE_BIT 0x0100
+#define GL_EDGEFLAG_BIT_PGI 0x00040000
+#define GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26
+#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B
+#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D
+#define GL_EDGE_FLAG_ARRAY_EXT 0x8079
+#define GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30
+#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075
+#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085
+#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093
+#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C
+#define GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C
+#define GL_EIGHTH_BIT_ATI 0x00000020
+#define GL_ELEMENT_ADDRESS_COMMAND_NV 0x0008
+#define GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29
+#define GL_ELEMENT_ARRAY_APPLE 0x8A0C
+#define GL_ELEMENT_ARRAY_ATI 0x8768
+#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002
+#define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002
+#define GL_ELEMENT_ARRAY_BUFFER 0x8893
+#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893
+#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
+#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895
+#define GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33
+#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E
+#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A
+#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D
+#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769
+#define GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F
+#define GL_EMBOSS_CONSTANT_NV 0x855E
+#define GL_EMBOSS_LIGHT_NV 0x855D
+#define GL_EMBOSS_MAP_NV 0x855F
+#define GL_EQUAL 0x0202
+#define GL_EQUIV 0x1509
+#define GL_EVAL_2D_NV 0x86C0
+#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5
+#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1
+#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6
+#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0
+#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1
+#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2
+#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3
+#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4
+#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5
+#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7
+#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8
+#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9
+#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA
+#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB
+#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC
+#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD
+#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE
+#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF
+#define GL_EXCLUSION_KHR 0x92A0
+#define GL_EXCLUSION_NV 0x92A0
+#define GL_EXCLUSIVE_EXT 0x8F11
+#define GL_EXPAND_NEGATE_NV 0x8539
+#define GL_EXPAND_NORMAL_NV 0x8538
+#define GL_EXTENSIONS 0x1F03
+#define GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD 0x9160
+#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2
+#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0
+#define GL_EYE_LINE_SGIS 0x81F6
+#define GL_EYE_PLANE 0x2502
+#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C
+#define GL_EYE_POINT_SGIS 0x81F4
+#define GL_EYE_RADIAL_NV 0x855B
+#define GL_E_TIMES_F_NV 0x8531
+#define GL_FACTOR_MAX_AMD 0x901D
+#define GL_FACTOR_MIN_AMD 0x901C
+#define GL_FAILURE_NV 0x9030
+#define GL_FALSE 0
+#define GL_FASTEST 0x1101
+#define GL_FENCE_APPLE 0x8A0B
+#define GL_FENCE_CONDITION_NV 0x84F4
+#define GL_FENCE_STATUS_NV 0x84F3
+#define GL_FIELDS_NV 0x8E27
+#define GL_FIELD_LOWER_NV 0x9023
+#define GL_FIELD_UPPER_NV 0x9022
+#define GL_FILE_NAME_NV 0x9074
+#define GL_FILL 0x1B02
+#define GL_FILL_RECTANGLE_NV 0x933C
+#define GL_FILTER 0x829A
+#define GL_FILTER4_SGIS 0x8146
+#define GL_FIRST_TO_REST_NV 0x90AF
+#define GL_FIRST_VERTEX_CONVENTION 0x8E4D
+#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D
+#define GL_FIXED 0x140C
+#define GL_FIXED_OES 0x140C
+#define GL_FIXED_ONLY 0x891D
+#define GL_FIXED_ONLY_ARB 0x891D
+#define GL_FLOAT 0x1406
+#define GL_FLOAT16_MAT2_AMD 0x91C5
+#define GL_FLOAT16_MAT2x3_AMD 0x91C8
+#define GL_FLOAT16_MAT2x4_AMD 0x91C9
+#define GL_FLOAT16_MAT3_AMD 0x91C6
+#define GL_FLOAT16_MAT3x2_AMD 0x91CA
+#define GL_FLOAT16_MAT3x4_AMD 0x91CB
+#define GL_FLOAT16_MAT4_AMD 0x91C7
+#define GL_FLOAT16_MAT4x2_AMD 0x91CC
+#define GL_FLOAT16_MAT4x3_AMD 0x91CD
+#define GL_FLOAT16_NV 0x8FF8
+#define GL_FLOAT16_VEC2_NV 0x8FF9
+#define GL_FLOAT16_VEC3_NV 0x8FFA
+#define GL_FLOAT16_VEC4_NV 0x8FFB
+#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD
+#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD
+#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D
+#define GL_FLOAT_MAT2 0x8B5A
+#define GL_FLOAT_MAT2_ARB 0x8B5A
+#define GL_FLOAT_MAT2x3 0x8B65
+#define GL_FLOAT_MAT2x4 0x8B66
+#define GL_FLOAT_MAT3 0x8B5B
+#define GL_FLOAT_MAT3_ARB 0x8B5B
+#define GL_FLOAT_MAT3x2 0x8B67
+#define GL_FLOAT_MAT3x4 0x8B68
+#define GL_FLOAT_MAT4 0x8B5C
+#define GL_FLOAT_MAT4_ARB 0x8B5C
+#define GL_FLOAT_MAT4x2 0x8B69
+#define GL_FLOAT_MAT4x3 0x8B6A
+#define GL_FLOAT_R16_NV 0x8884
+#define GL_FLOAT_R32_NV 0x8885
+#define GL_FLOAT_RG16_NV 0x8886
+#define GL_FLOAT_RG32_NV 0x8887
+#define GL_FLOAT_RGB16_NV 0x8888
+#define GL_FLOAT_RGB32_NV 0x8889
+#define GL_FLOAT_RGBA16_NV 0x888A
+#define GL_FLOAT_RGBA32_NV 0x888B
+#define GL_FLOAT_RGBA_MODE_NV 0x888E
+#define GL_FLOAT_RGBA_NV 0x8883
+#define GL_FLOAT_RGB_NV 0x8882
+#define GL_FLOAT_RG_NV 0x8881
+#define GL_FLOAT_R_NV 0x8880
+#define GL_FLOAT_VEC2 0x8B50
+#define GL_FLOAT_VEC2_ARB 0x8B50
+#define GL_FLOAT_VEC3 0x8B51
+#define GL_FLOAT_VEC3_ARB 0x8B51
+#define GL_FLOAT_VEC4 0x8B52
+#define GL_FLOAT_VEC4_ARB 0x8B52
+#define GL_FOG 0x0B60
+#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D
+#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457
+#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076
+#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086
+#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456
+#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455
+#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454
+#define GL_FOG_COORDINATE_EXT 0x8451
+#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450
+#define GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28
+#define GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32
+#define GL_FOG_DISTANCE_MODE_NV 0x855A
+#define GL_FOG_FUNC_POINTS_SGIS 0x812B
+#define GL_FOG_FUNC_SGIS 0x812A
+#define GL_FOG_OFFSET_SGIX 0x8198
+#define GL_FOG_OFFSET_VALUE_SGIX 0x8199
+#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC
+#define GL_FONT_ASCENDER_BIT_NV 0x00200000
+#define GL_FONT_DESCENDER_BIT_NV 0x00400000
+#define GL_FONT_GLYPHS_AVAILABLE_NV 0x9368
+#define GL_FONT_HAS_KERNING_BIT_NV 0x10000000
+#define GL_FONT_HEIGHT_BIT_NV 0x00800000
+#define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000
+#define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV 0x01000000
+#define GL_FONT_NUM_GLYPH_INDICES_BIT_NV 0x20000000
+#define GL_FONT_TARGET_UNAVAILABLE_NV 0x9369
+#define GL_FONT_UNAVAILABLE_NV 0x936A
+#define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000
+#define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000
+#define GL_FONT_UNINTELLIGIBLE_NV 0x936B
+#define GL_FONT_UNITS_PER_EM_BIT_NV 0x00100000
+#define GL_FONT_X_MAX_BOUNDS_BIT_NV 0x00040000
+#define GL_FONT_X_MIN_BOUNDS_BIT_NV 0x00010000
+#define GL_FONT_Y_MAX_BOUNDS_BIT_NV 0x00080000
+#define GL_FONT_Y_MIN_BOUNDS_BIT_NV 0x00020000
+#define GL_FORCE_BLUE_TO_ONE_NV 0x8860
+#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983
+#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982
+#define GL_FRACTIONAL_EVEN 0x8E7C
+#define GL_FRACTIONAL_ODD 0x8E7B
+#define GL_FRAGMENT_COLOR_EXT 0x834C
+#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402
+#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403
+#define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401
+#define GL_FRAGMENT_COVERAGE_COLOR_NV 0x92DE
+#define GL_FRAGMENT_COVERAGE_TO_COLOR_NV 0x92DD
+#define GL_FRAGMENT_DEPTH_EXT 0x8452
+#define GL_FRAGMENT_INPUT_NV 0x936D
+#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D
+#define GL_FRAGMENT_LIGHT0_SGIX 0x840C
+#define GL_FRAGMENT_LIGHT1_SGIX 0x840D
+#define GL_FRAGMENT_LIGHT2_SGIX 0x840E
+#define GL_FRAGMENT_LIGHT3_SGIX 0x840F
+#define GL_FRAGMENT_LIGHT4_SGIX 0x8410
+#define GL_FRAGMENT_LIGHT5_SGIX 0x8411
+#define GL_FRAGMENT_LIGHT6_SGIX 0x8412
+#define GL_FRAGMENT_LIGHT7_SGIX 0x8413
+#define GL_FRAGMENT_LIGHTING_SGIX 0x8400
+#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A
+#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408
+#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B
+#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409
+#define GL_FRAGMENT_MATERIAL_EXT 0x8349
+#define GL_FRAGMENT_NORMAL_EXT 0x834A
+#define GL_FRAGMENT_PROGRAM_ARB 0x8804
+#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873
+#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D
+#define GL_FRAGMENT_PROGRAM_NV 0x8870
+#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4
+#define GL_FRAGMENT_SHADER 0x8B30
+#define GL_FRAGMENT_SHADER_ARB 0x8B30
+#define GL_FRAGMENT_SHADER_ATI 0x8920
+#define GL_FRAGMENT_SHADER_BIT 0x00000002
+#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
+#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B
+#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52
+#define GL_FRAGMENT_SHADER_INVOCATIONS 0x82F4
+#define GL_FRAGMENT_SHADER_INVOCATIONS_ARB 0x82F4
+#define GL_FRAGMENT_SUBROUTINE 0x92EC
+#define GL_FRAGMENT_SUBROUTINE_UNIFORM 0x92F2
+#define GL_FRAGMENT_TEXTURE 0x829F
+#define GL_FRAMEBUFFER 0x8D40
+#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215
+#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214
+#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210
+#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211
+#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216
+#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213
+#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7
+#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7
+#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0
+#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212
+#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR 0x9632
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR 0x9630
+#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400
+#define GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400
+#define GL_FRAMEBUFFER_BINDING 0x8CA6
+#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6
+#define GL_FRAMEBUFFER_BLEND 0x828B
+#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
+#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5
+#define GL_FRAMEBUFFER_DEFAULT 0x8218
+#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314
+#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311
+#define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312
+#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313
+#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310
+#define GL_FRAMEBUFFER_EXT 0x8D40
+#define GL_FRAMEBUFFER_FLIP_X_MESA 0x8BBC
+#define GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB
+#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
+#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6
+#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9
+#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB
+#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB
+#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8
+#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
+#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7
+#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
+#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
+#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC
+#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC
+#define GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR 0x9633
+#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB 0x9342
+#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV 0x9342
+#define GL_FRAMEBUFFER_RENDERABLE 0x8289
+#define GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A
+#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB 0x9343
+#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV 0x9343
+#define GL_FRAMEBUFFER_SRGB 0x8DB9
+#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA
+#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9
+#define GL_FRAMEBUFFER_SWAP_XY_MESA 0x8BBD
+#define GL_FRAMEBUFFER_UNDEFINED 0x8219
+#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
+#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD
+#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C
+#define GL_FRAMEZOOM_SGIX 0x818B
+#define GL_FRAME_NV 0x8E26
+#define GL_FRONT 0x0404
+#define GL_FRONT_AND_BACK 0x0408
+#define GL_FRONT_FACE 0x0B46
+#define GL_FRONT_FACE_COMMAND_NV 0x0012
+#define GL_FRONT_LEFT 0x0400
+#define GL_FRONT_RIGHT 0x0401
+#define GL_FULL_RANGE_EXT 0x87E1
+#define GL_FULL_STIPPLE_HINT_PGI 0x1A219
+#define GL_FULL_SUPPORT 0x82B7
+#define GL_FUNC_ADD 0x8006
+#define GL_FUNC_ADD_EXT 0x8006
+#define GL_FUNC_REVERSE_SUBTRACT 0x800B
+#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B
+#define GL_FUNC_SUBTRACT 0x800A
+#define GL_FUNC_SUBTRACT_EXT 0x800A
+#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192
+#define GL_GENERATE_MIPMAP_SGIS 0x8191
+#define GL_GENERIC_ATTRIB_NV 0x8C7D
+#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002
+#define GL_GEOMETRY_DEFORMATION_SGIX 0x8194
+#define GL_GEOMETRY_INPUT_TYPE 0x8917
+#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB
+#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB
+#define GL_GEOMETRY_OUTPUT_TYPE 0x8918
+#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC
+#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC
+#define GL_GEOMETRY_PROGRAM_NV 0x8C26
+#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3
+#define GL_GEOMETRY_SHADER 0x8DD9
+#define GL_GEOMETRY_SHADER_ARB 0x8DD9
+#define GL_GEOMETRY_SHADER_BIT 0x00000004
+#define GL_GEOMETRY_SHADER_EXT 0x8DD9
+#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F
+#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED 0x82F3
+#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB 0x82F3
+#define GL_GEOMETRY_SUBROUTINE 0x92EB
+#define GL_GEOMETRY_SUBROUTINE_UNIFORM 0x92F1
+#define GL_GEOMETRY_TEXTURE 0x829E
+#define GL_GEOMETRY_VERTICES_OUT 0x8916
+#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA
+#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA
+#define GL_GEQUAL 0x0206
+#define GL_GET_TEXTURE_IMAGE_FORMAT 0x8291
+#define GL_GET_TEXTURE_IMAGE_TYPE 0x8292
+#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA
+#define GL_GLOBAL_ALPHA_SUN 0x81D9
+#define GL_GLYPH_HAS_KERNING_BIT_NV 0x100
+#define GL_GLYPH_HEIGHT_BIT_NV 0x02
+#define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10
+#define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04
+#define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08
+#define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80
+#define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20
+#define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40
+#define GL_GLYPH_WIDTH_BIT_NV 0x01
+#define GL_GPU_ADDRESS_NV 0x8F34
+#define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049
+#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047
+#define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B
+#define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A
+#define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048
+#define GL_GREATER 0x0204
+#define GL_GREEN 0x1904
+#define GL_GREEN_BIT_ATI 0x00000002
+#define GL_GREEN_INTEGER 0x8D95
+#define GL_GREEN_INTEGER_EXT 0x8D95
+#define GL_GREEN_MAX_CLAMP_INGR 0x8565
+#define GL_GREEN_MIN_CLAMP_INGR 0x8561
+#define GL_GREEN_NV 0x1904
+#define GL_GUILTY_CONTEXT_RESET 0x8253
+#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253
+#define GL_HALF_APPLE 0x140B
+#define GL_HALF_BIAS_NEGATE_NV 0x853B
+#define GL_HALF_BIAS_NORMAL_NV 0x853A
+#define GL_HALF_BIT_ATI 0x00000008
+#define GL_HALF_FLOAT 0x140B
+#define GL_HALF_FLOAT_ARB 0x140B
+#define GL_HALF_FLOAT_NV 0x140B
+#define GL_HANDLE_TYPE_D3D11_IMAGE_EXT 0x958B
+#define GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT 0x958C
+#define GL_HANDLE_TYPE_D3D12_FENCE_EXT 0x9594
+#define GL_HANDLE_TYPE_D3D12_RESOURCE_EXT 0x958A
+#define GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT 0x9589
+#define GL_HANDLE_TYPE_OPAQUE_FD_EXT 0x9586
+#define GL_HANDLE_TYPE_OPAQUE_WIN32_EXT 0x9587
+#define GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT 0x9588
+#define GL_HARDLIGHT_KHR 0x929B
+#define GL_HARDLIGHT_NV 0x929B
+#define GL_HARDMIX_NV 0x92A9
+#define GL_HIGH_FLOAT 0x8DF2
+#define GL_HIGH_INT 0x8DF5
+#define GL_HILO16_NV 0x86F8
+#define GL_HILO8_NV 0x885E
+#define GL_HILO_NV 0x86F4
+#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B
+#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A
+#define GL_HISTOGRAM_EXT 0x8024
+#define GL_HISTOGRAM_FORMAT_EXT 0x8027
+#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029
+#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C
+#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028
+#define GL_HISTOGRAM_SINK_EXT 0x802D
+#define GL_HISTOGRAM_WIDTH_EXT 0x8026
+#define GL_HI_BIAS_NV 0x8714
+#define GL_HI_SCALE_NV 0x870E
+#define GL_HORIZONTAL_LINE_TO_NV 0x06
+#define GL_HSL_COLOR_KHR 0x92AF
+#define GL_HSL_COLOR_NV 0x92AF
+#define GL_HSL_HUE_KHR 0x92AD
+#define GL_HSL_HUE_NV 0x92AD
+#define GL_HSL_LUMINOSITY_KHR 0x92B0
+#define GL_HSL_LUMINOSITY_NV 0x92B0
+#define GL_HSL_SATURATION_KHR 0x92AE
+#define GL_HSL_SATURATION_NV 0x92AE
+#define GL_IDENTITY_NV 0x862A
+#define GL_IGNORE_BORDER_HP 0x8150
+#define GL_IMAGE_1D 0x904C
+#define GL_IMAGE_1D_ARRAY 0x9052
+#define GL_IMAGE_1D_ARRAY_EXT 0x9052
+#define GL_IMAGE_1D_EXT 0x904C
+#define GL_IMAGE_2D 0x904D
+#define GL_IMAGE_2D_ARRAY 0x9053
+#define GL_IMAGE_2D_ARRAY_EXT 0x9053
+#define GL_IMAGE_2D_EXT 0x904D
+#define GL_IMAGE_2D_MULTISAMPLE 0x9055
+#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056
+#define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056
+#define GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055
+#define GL_IMAGE_2D_RECT 0x904F
+#define GL_IMAGE_2D_RECT_EXT 0x904F
+#define GL_IMAGE_3D 0x904E
+#define GL_IMAGE_3D_EXT 0x904E
+#define GL_IMAGE_BINDING_ACCESS 0x8F3E
+#define GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E
+#define GL_IMAGE_BINDING_FORMAT 0x906E
+#define GL_IMAGE_BINDING_FORMAT_EXT 0x906E
+#define GL_IMAGE_BINDING_LAYER 0x8F3D
+#define GL_IMAGE_BINDING_LAYERED 0x8F3C
+#define GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C
+#define GL_IMAGE_BINDING_LAYER_EXT 0x8F3D
+#define GL_IMAGE_BINDING_LEVEL 0x8F3B
+#define GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B
+#define GL_IMAGE_BINDING_NAME 0x8F3A
+#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A
+#define GL_IMAGE_BUFFER 0x9051
+#define GL_IMAGE_BUFFER_EXT 0x9051
+#define GL_IMAGE_CLASS_10_10_10_2 0x82C3
+#define GL_IMAGE_CLASS_11_11_10 0x82C2
+#define GL_IMAGE_CLASS_1_X_16 0x82BE
+#define GL_IMAGE_CLASS_1_X_32 0x82BB
+#define GL_IMAGE_CLASS_1_X_8 0x82C1
+#define GL_IMAGE_CLASS_2_X_16 0x82BD
+#define GL_IMAGE_CLASS_2_X_32 0x82BA
+#define GL_IMAGE_CLASS_2_X_8 0x82C0
+#define GL_IMAGE_CLASS_4_X_16 0x82BC
+#define GL_IMAGE_CLASS_4_X_32 0x82B9
+#define GL_IMAGE_CLASS_4_X_8 0x82BF
+#define GL_IMAGE_COMPATIBILITY_CLASS 0x82A8
+#define GL_IMAGE_CUBE 0x9050
+#define GL_IMAGE_CUBE_EXT 0x9050
+#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054
+#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054
+#define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E
+#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9
+#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8
+#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7
+#define GL_IMAGE_MAG_FILTER_HP 0x815C
+#define GL_IMAGE_MIN_FILTER_HP 0x815D
+#define GL_IMAGE_PIXEL_FORMAT 0x82A9
+#define GL_IMAGE_PIXEL_TYPE 0x82AA
+#define GL_IMAGE_ROTATE_ANGLE_HP 0x8159
+#define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A
+#define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B
+#define GL_IMAGE_SCALE_X_HP 0x8155
+#define GL_IMAGE_SCALE_Y_HP 0x8156
+#define GL_IMAGE_TEXEL_SIZE 0x82A7
+#define GL_IMAGE_TRANSFORM_2D_HP 0x8161
+#define GL_IMAGE_TRANSLATE_X_HP 0x8157
+#define GL_IMAGE_TRANSLATE_Y_HP 0x8158
+#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
+#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B
+#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
+#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A
+#define GL_INCLUSIVE_EXT 0x8F10
+#define GL_INCR 0x1E02
+#define GL_INCR_WRAP 0x8507
+#define GL_INCR_WRAP_EXT 0x8507
+#define GL_INDEX_ARRAY_ADDRESS_NV 0x8F24
+#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899
+#define GL_INDEX_ARRAY_COUNT_EXT 0x8087
+#define GL_INDEX_ARRAY_EXT 0x8077
+#define GL_INDEX_ARRAY_LENGTH_NV 0x8F2E
+#define GL_INDEX_ARRAY_LIST_IBM 103073
+#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083
+#define GL_INDEX_ARRAY_POINTER_EXT 0x8091
+#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086
+#define GL_INDEX_ARRAY_TYPE_EXT 0x8085
+#define GL_INDEX_BIT_PGI 0x00080000
+#define GL_INDEX_MATERIAL_EXT 0x81B8
+#define GL_INDEX_MATERIAL_FACE_EXT 0x81BA
+#define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9
+#define GL_INDEX_TEST_EXT 0x81B5
+#define GL_INDEX_TEST_FUNC_EXT 0x81B6
+#define GL_INDEX_TEST_REF_EXT 0x81B7
+#define GL_INFO_LOG_LENGTH 0x8B84
+#define GL_INNOCENT_CONTEXT_RESET 0x8254
+#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254
+#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180
+#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181
+#define GL_INT 0x1404
+#define GL_INT16_NV 0x8FE4
+#define GL_INT16_VEC2_NV 0x8FE5
+#define GL_INT16_VEC3_NV 0x8FE6
+#define GL_INT16_VEC4_NV 0x8FE7
+#define GL_INT64_ARB 0x140E
+#define GL_INT64_NV 0x140E
+#define GL_INT64_VEC2_ARB 0x8FE9
+#define GL_INT64_VEC2_NV 0x8FE9
+#define GL_INT64_VEC3_ARB 0x8FEA
+#define GL_INT64_VEC3_NV 0x8FEA
+#define GL_INT64_VEC4_ARB 0x8FEB
+#define GL_INT64_VEC4_NV 0x8FEB
+#define GL_INT8_NV 0x8FE0
+#define GL_INT8_VEC2_NV 0x8FE1
+#define GL_INT8_VEC3_NV 0x8FE2
+#define GL_INT8_VEC4_NV 0x8FE3
+#define GL_INTENSITY12_EXT 0x804C
+#define GL_INTENSITY16F_ARB 0x881D
+#define GL_INTENSITY16I_EXT 0x8D8B
+#define GL_INTENSITY16UI_EXT 0x8D79
+#define GL_INTENSITY16_EXT 0x804D
+#define GL_INTENSITY16_SNORM 0x901B
+#define GL_INTENSITY32F_ARB 0x8817
+#define GL_INTENSITY32I_EXT 0x8D85
+#define GL_INTENSITY32UI_EXT 0x8D73
+#define GL_INTENSITY4_EXT 0x804A
+#define GL_INTENSITY8I_EXT 0x8D91
+#define GL_INTENSITY8UI_EXT 0x8D7F
+#define GL_INTENSITY8_EXT 0x804B
+#define GL_INTENSITY8_SNORM 0x9017
+#define GL_INTENSITY_EXT 0x8049
+#define GL_INTENSITY_FLOAT16_APPLE 0x881D
+#define GL_INTENSITY_FLOAT16_ATI 0x881D
+#define GL_INTENSITY_FLOAT32_APPLE 0x8817
+#define GL_INTENSITY_FLOAT32_ATI 0x8817
+#define GL_INTENSITY_SNORM 0x9013
+#define GL_INTERLACE_OML 0x8980
+#define GL_INTERLACE_READ_INGR 0x8568
+#define GL_INTERLACE_READ_OML 0x8981
+#define GL_INTERLACE_SGIX 0x8094
+#define GL_INTERLEAVED_ATTRIBS 0x8C8C
+#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C
+#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C
+#define GL_INTERNALFORMAT_ALPHA_SIZE 0x8274
+#define GL_INTERNALFORMAT_ALPHA_TYPE 0x827B
+#define GL_INTERNALFORMAT_BLUE_SIZE 0x8273
+#define GL_INTERNALFORMAT_BLUE_TYPE 0x827A
+#define GL_INTERNALFORMAT_DEPTH_SIZE 0x8275
+#define GL_INTERNALFORMAT_DEPTH_TYPE 0x827C
+#define GL_INTERNALFORMAT_GREEN_SIZE 0x8272
+#define GL_INTERNALFORMAT_GREEN_TYPE 0x8279
+#define GL_INTERNALFORMAT_PREFERRED 0x8270
+#define GL_INTERNALFORMAT_RED_SIZE 0x8271
+#define GL_INTERNALFORMAT_RED_TYPE 0x8278
+#define GL_INTERNALFORMAT_SHARED_SIZE 0x8277
+#define GL_INTERNALFORMAT_STENCIL_SIZE 0x8276
+#define GL_INTERNALFORMAT_STENCIL_TYPE 0x827D
+#define GL_INTERNALFORMAT_SUPPORTED 0x826F
+#define GL_INTERPOLATE_ARB 0x8575
+#define GL_INTERPOLATE_EXT 0x8575
+#define GL_INT_2_10_10_10_REV 0x8D9F
+#define GL_INT_IMAGE_1D 0x9057
+#define GL_INT_IMAGE_1D_ARRAY 0x905D
+#define GL_INT_IMAGE_1D_ARRAY_EXT 0x905D
+#define GL_INT_IMAGE_1D_EXT 0x9057
+#define GL_INT_IMAGE_2D 0x9058
+#define GL_INT_IMAGE_2D_ARRAY 0x905E
+#define GL_INT_IMAGE_2D_ARRAY_EXT 0x905E
+#define GL_INT_IMAGE_2D_EXT 0x9058
+#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060
+#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061
+#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061
+#define GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060
+#define GL_INT_IMAGE_2D_RECT 0x905A
+#define GL_INT_IMAGE_2D_RECT_EXT 0x905A
+#define GL_INT_IMAGE_3D 0x9059
+#define GL_INT_IMAGE_3D_EXT 0x9059
+#define GL_INT_IMAGE_BUFFER 0x905C
+#define GL_INT_IMAGE_BUFFER_EXT 0x905C
+#define GL_INT_IMAGE_CUBE 0x905B
+#define GL_INT_IMAGE_CUBE_EXT 0x905B
+#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F
+#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F
+#define GL_INT_SAMPLER_1D 0x8DC9
+#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE
+#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE
+#define GL_INT_SAMPLER_1D_EXT 0x8DC9
+#define GL_INT_SAMPLER_2D 0x8DCA
+#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF
+#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF
+#define GL_INT_SAMPLER_2D_EXT 0x8DCA
+#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109
+#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C
+#define GL_INT_SAMPLER_2D_RECT 0x8DCD
+#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD
+#define GL_INT_SAMPLER_3D 0x8DCB
+#define GL_INT_SAMPLER_3D_EXT 0x8DCB
+#define GL_INT_SAMPLER_BUFFER 0x8DD0
+#define GL_INT_SAMPLER_BUFFER_AMD 0x9002
+#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0
+#define GL_INT_SAMPLER_CUBE 0x8DCC
+#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC
+#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E
+#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E
+#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57
+#define GL_INT_VEC2 0x8B53
+#define GL_INT_VEC2_ARB 0x8B53
+#define GL_INT_VEC3 0x8B54
+#define GL_INT_VEC3_ARB 0x8B54
+#define GL_INT_VEC4 0x8B55
+#define GL_INT_VEC4_ARB 0x8B55
+#define GL_INVALID_ENUM 0x0500
+#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
+#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506
+#define GL_INVALID_INDEX 0xFFFFFFFF
+#define GL_INVALID_OPERATION 0x0502
+#define GL_INVALID_VALUE 0x0501
+#define GL_INVARIANT_DATATYPE_EXT 0x87EB
+#define GL_INVARIANT_EXT 0x87C2
+#define GL_INVARIANT_VALUE_EXT 0x87EA
+#define GL_INVERSE_NV 0x862B
+#define GL_INVERSE_TRANSPOSE_NV 0x862D
+#define GL_INVERT 0x150A
+#define GL_INVERTED_SCREEN_W_REND 0x8491
+#define GL_INVERT_OVG_NV 0x92B4
+#define GL_INVERT_RGB_NV 0x92A3
+#define GL_IR_INSTRUMENT1_SGIX 0x817F
+#define GL_ISOLINES 0x8E7A
+#define GL_IS_PER_PATCH 0x92E7
+#define GL_IS_ROW_MAJOR 0x9300
+#define GL_ITALIC_BIT_NV 0x02
+#define GL_IUI_N3F_V2F_EXT 0x81AF
+#define GL_IUI_N3F_V3F_EXT 0x81B0
+#define GL_IUI_V2F_EXT 0x81AD
+#define GL_IUI_V3F_EXT 0x81AE
+#define GL_KEEP 0x1E00
+#define GL_LARGE_CCW_ARC_TO_NV 0x16
+#define GL_LARGE_CW_ARC_TO_NV 0x18
+#define GL_LAST_VERTEX_CONVENTION 0x8E4E
+#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E
+#define GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027
+#define GL_LAYER_NV 0x8DAA
+#define GL_LAYER_PROVOKING_VERTEX 0x825E
+#define GL_LAYOUT_COLOR_ATTACHMENT_EXT 0x958E
+#define GL_LAYOUT_DEFAULT_INTEL 0
+#define GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT 0x9531
+#define GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT 0x9530
+#define GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT 0x958F
+#define GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT 0x9590
+#define GL_LAYOUT_GENERAL_EXT 0x958D
+#define GL_LAYOUT_LINEAR_CPU_CACHED_INTEL 2
+#define GL_LAYOUT_LINEAR_INTEL 1
+#define GL_LAYOUT_SHADER_READ_ONLY_EXT 0x9591
+#define GL_LAYOUT_TRANSFER_DST_EXT 0x9593
+#define GL_LAYOUT_TRANSFER_SRC_EXT 0x9592
+#define GL_LEFT 0x0406
+#define GL_LEQUAL 0x0203
+#define GL_LERP_ATI 0x8969
+#define GL_LESS 0x0201
+#define GL_LGPU_SEPARATE_STORAGE_BIT_NVX 0x0800
+#define GL_LIGHTEN_KHR 0x9298
+#define GL_LIGHTEN_NV 0x9298
+#define GL_LIGHT_ENV_MODE_SGIX 0x8407
+#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8
+#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0
+#define GL_LINE 0x1B01
+#define GL_LINEAR 0x2601
+#define GL_LINEARBURN_NV 0x92A5
+#define GL_LINEARDODGE_NV 0x92A4
+#define GL_LINEARLIGHT_NV 0x92A7
+#define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170
+#define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F
+#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098
+#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099
+#define GL_LINEAR_DETAIL_SGIS 0x8097
+#define GL_LINEAR_MIPMAP_LINEAR 0x2703
+#define GL_LINEAR_MIPMAP_NEAREST 0x2701
+#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE
+#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF
+#define GL_LINEAR_SHARPEN_SGIS 0x80AD
+#define GL_LINEAR_TILING_EXT 0x9585
+#define GL_LINES 0x0001
+#define GL_LINES_ADJACENCY 0x000A
+#define GL_LINES_ADJACENCY_ARB 0x000A
+#define GL_LINES_ADJACENCY_EXT 0x000A
+#define GL_LINE_LOOP 0x0002
+#define GL_LINE_SMOOTH 0x0B20
+#define GL_LINE_SMOOTH_HINT 0x0C52
+#define GL_LINE_STRIP 0x0003
+#define GL_LINE_STRIP_ADJACENCY 0x000B
+#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B
+#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B
+#define GL_LINE_TO_NV 0x04
+#define GL_LINE_WIDTH 0x0B21
+#define GL_LINE_WIDTH_COMMAND_NV 0x000D
+#define GL_LINE_WIDTH_GRANULARITY 0x0B23
+#define GL_LINE_WIDTH_RANGE 0x0B22
+#define GL_LINK_STATUS 0x8B82
+#define GL_LIST_PRIORITY_SGIX 0x8182
+#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED
+#define GL_LOCAL_CONSTANT_EXT 0x87C3
+#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC
+#define GL_LOCAL_EXT 0x87C4
+#define GL_LOCATION 0x930E
+#define GL_LOCATION_COMPONENT 0x934A
+#define GL_LOCATION_INDEX 0x930F
+#define GL_LOGIC_OP_MODE 0x0BF0
+#define GL_LOSE_CONTEXT_ON_RESET 0x8252
+#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
+#define GL_LOWER_LEFT 0x8CA1
+#define GL_LOW_FLOAT 0x8DF0
+#define GL_LOW_INT 0x8DF3
+#define GL_LO_BIAS_NV 0x8715
+#define GL_LO_SCALE_NV 0x870F
+#define GL_LUID_SIZE_EXT 8
+#define GL_LUMINANCE12_ALPHA12_EXT 0x8047
+#define GL_LUMINANCE12_ALPHA4_EXT 0x8046
+#define GL_LUMINANCE12_EXT 0x8041
+#define GL_LUMINANCE16F_ARB 0x881E
+#define GL_LUMINANCE16F_EXT 0x881E
+#define GL_LUMINANCE16I_EXT 0x8D8C
+#define GL_LUMINANCE16UI_EXT 0x8D7A
+#define GL_LUMINANCE16_ALPHA16_EXT 0x8048
+#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A
+#define GL_LUMINANCE16_EXT 0x8042
+#define GL_LUMINANCE16_SNORM 0x9019
+#define GL_LUMINANCE32F_ARB 0x8818
+#define GL_LUMINANCE32F_EXT 0x8818
+#define GL_LUMINANCE32I_EXT 0x8D86
+#define GL_LUMINANCE32UI_EXT 0x8D74
+#define GL_LUMINANCE4_ALPHA4_EXT 0x8043
+#define GL_LUMINANCE4_EXT 0x803F
+#define GL_LUMINANCE6_ALPHA2_EXT 0x8044
+#define GL_LUMINANCE8I_EXT 0x8D92
+#define GL_LUMINANCE8UI_EXT 0x8D80
+#define GL_LUMINANCE8_ALPHA8_EXT 0x8045
+#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016
+#define GL_LUMINANCE8_EXT 0x8040
+#define GL_LUMINANCE8_SNORM 0x9015
+#define GL_LUMINANCE_ALPHA16F_ARB 0x881F
+#define GL_LUMINANCE_ALPHA16F_EXT 0x881F
+#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D
+#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B
+#define GL_LUMINANCE_ALPHA32F_ARB 0x8819
+#define GL_LUMINANCE_ALPHA32F_EXT 0x8819
+#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87
+#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75
+#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93
+#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81
+#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F
+#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F
+#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819
+#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819
+#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D
+#define GL_LUMINANCE_ALPHA_SNORM 0x9012
+#define GL_LUMINANCE_FLOAT16_APPLE 0x881E
+#define GL_LUMINANCE_FLOAT16_ATI 0x881E
+#define GL_LUMINANCE_FLOAT32_APPLE 0x8818
+#define GL_LUMINANCE_FLOAT32_ATI 0x8818
+#define GL_LUMINANCE_INTEGER_EXT 0x8D9C
+#define GL_LUMINANCE_SNORM 0x9011
+#define GL_MAD_ATI 0x8968
+#define GL_MAGNITUDE_BIAS_NV 0x8718
+#define GL_MAGNITUDE_SCALE_NV 0x8712
+#define GL_MAJOR_VERSION 0x821B
+#define GL_MANUAL_GENERATE_MIPMAP 0x8294
+#define GL_MAP1_BINORMAL_EXT 0x8446
+#define GL_MAP1_TANGENT_EXT 0x8444
+#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660
+#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A
+#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B
+#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C
+#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D
+#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E
+#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F
+#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661
+#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662
+#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663
+#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664
+#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665
+#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666
+#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667
+#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668
+#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669
+#define GL_MAP2_BINORMAL_EXT 0x8447
+#define GL_MAP2_TANGENT_EXT 0x8445
+#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670
+#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A
+#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B
+#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C
+#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D
+#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E
+#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F
+#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671
+#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672
+#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673
+#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674
+#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675
+#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676
+#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677
+#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678
+#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679
+#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3
+#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4
+#define GL_MAP_COHERENT_BIT 0x0080
+#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010
+#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008
+#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004
+#define GL_MAP_PERSISTENT_BIT 0x0040
+#define GL_MAP_READ_BIT 0x0001
+#define GL_MAP_TESSELLATION_NV 0x86C2
+#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020
+#define GL_MAP_WRITE_BIT 0x0002
+#define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C
+#define GL_MATRIX0_ARB 0x88C0
+#define GL_MATRIX0_NV 0x8630
+#define GL_MATRIX10_ARB 0x88CA
+#define GL_MATRIX11_ARB 0x88CB
+#define GL_MATRIX12_ARB 0x88CC
+#define GL_MATRIX13_ARB 0x88CD
+#define GL_MATRIX14_ARB 0x88CE
+#define GL_MATRIX15_ARB 0x88CF
+#define GL_MATRIX16_ARB 0x88D0
+#define GL_MATRIX17_ARB 0x88D1
+#define GL_MATRIX18_ARB 0x88D2
+#define GL_MATRIX19_ARB 0x88D3
+#define GL_MATRIX1_ARB 0x88C1
+#define GL_MATRIX1_NV 0x8631
+#define GL_MATRIX20_ARB 0x88D4
+#define GL_MATRIX21_ARB 0x88D5
+#define GL_MATRIX22_ARB 0x88D6
+#define GL_MATRIX23_ARB 0x88D7
+#define GL_MATRIX24_ARB 0x88D8
+#define GL_MATRIX25_ARB 0x88D9
+#define GL_MATRIX26_ARB 0x88DA
+#define GL_MATRIX27_ARB 0x88DB
+#define GL_MATRIX28_ARB 0x88DC
+#define GL_MATRIX29_ARB 0x88DD
+#define GL_MATRIX2_ARB 0x88C2
+#define GL_MATRIX2_NV 0x8632
+#define GL_MATRIX30_ARB 0x88DE
+#define GL_MATRIX31_ARB 0x88DF
+#define GL_MATRIX3_ARB 0x88C3
+#define GL_MATRIX3_NV 0x8633
+#define GL_MATRIX4_ARB 0x88C4
+#define GL_MATRIX4_NV 0x8634
+#define GL_MATRIX5_ARB 0x88C5
+#define GL_MATRIX5_NV 0x8635
+#define GL_MATRIX6_ARB 0x88C6
+#define GL_MATRIX6_NV 0x8636
+#define GL_MATRIX7_ARB 0x88C7
+#define GL_MATRIX7_NV 0x8637
+#define GL_MATRIX8_ARB 0x88C8
+#define GL_MATRIX9_ARB 0x88C9
+#define GL_MATRIX_EXT 0x87C0
+#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844
+#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849
+#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846
+#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848
+#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847
+#define GL_MATRIX_PALETTE_ARB 0x8840
+#define GL_MATRIX_STRIDE 0x92FF
+#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000
+#define GL_MAT_AMBIENT_BIT_PGI 0x00100000
+#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000
+#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000
+#define GL_MAT_EMISSION_BIT_PGI 0x00800000
+#define GL_MAT_SHININESS_BIT_PGI 0x02000000
+#define GL_MAT_SPECULAR_BIT_PGI 0x04000000
+#define GL_MAX 0x8008
+#define GL_MAX_3D_TEXTURE_SIZE 0x8073
+#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073
+#define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138
+#define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405
+#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF
+#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF
+#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360
+#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D
+#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361
+#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F
+#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC
+#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8
+#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED
+#define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177
+#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178
+#define GL_MAX_CLIP_DISTANCES 0x0D32
+#define GL_MAX_COARSE_FRAGMENT_SAMPLES_NV 0x955F
+#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF
+#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF
+#define GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD 0x91B3
+#define GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD 0x91B4
+#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3
+#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E
+#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7
+#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1
+#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES 0x82FA
+#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266
+#define GL_MAX_COMBINED_DIMENSIONS 0x8282
+#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33
+#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32
+#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF
+#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39
+#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39
+#define GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV 0x8E67
+#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39
+#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC
+#define GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV 0x8E6F
+#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E
+#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F
+#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
+#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D
+#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E
+#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31
+#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265
+#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264
+#define GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB 0x90EB
+#define GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB 0x91BF
+#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD
+#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB
+#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262
+#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC
+#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB
+#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263
+#define GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB 0x9344
+#define GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB 0x9345
+#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE
+#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB
+#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF
+#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B
+#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C
+#define GL_MAX_CULL_DISTANCES 0x82F9
+#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C
+#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144
+#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144
+#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144
+#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143
+#define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143
+#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143
+#define GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV 0x90D1
+#define GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV 0x90D0
+#define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197
+#define GL_MAX_DEPTH 0x8280
+#define GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD 0x91B5
+#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F
+#define GL_MAX_DETACHED_BUFFERS_NV 0x95AD
+#define GL_MAX_DETACHED_TEXTURES_NV 0x95AC
+#define GL_MAX_DRAW_BUFFERS 0x8824
+#define GL_MAX_DRAW_BUFFERS_ARB 0x8824
+#define GL_MAX_DRAW_BUFFERS_ATI 0x8824
+#define GL_MAX_DRAW_MESH_TASKS_COUNT_NV 0x953D
+#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC
+#define GL_MAX_ELEMENTS_INDICES 0x80E9
+#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9
+#define GL_MAX_ELEMENTS_VERTICES 0x80E8
+#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8
+#define GL_MAX_ELEMENT_INDEX 0x8D6B
+#define GL_MAX_EXT 0x8008
+#define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C
+#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6
+#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0
+#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3
+#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE
+#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125
+#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C
+#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C
+#define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404
+#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868
+#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA
+#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D
+#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
+#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49
+#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
+#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316
+#define GL_MAX_FRAMEBUFFER_LAYERS 0x9317
+#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318
+#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315
+#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D
+#define GL_MAX_GENERAL_COMBINERS_NV 0x854D
+#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5
+#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF
+#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4
+#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD
+#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123
+#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124
+#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0
+#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0
+#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0
+#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A
+#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A
+#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7
+#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29
+#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29
+#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29
+#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1
+#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1
+#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1
+#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C
+#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF
+#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF
+#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF
+#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD
+#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD
+#define GL_MAX_HEIGHT 0x827F
+#define GL_MAX_IMAGE_SAMPLES 0x906D
+#define GL_MAX_IMAGE_SAMPLES_EXT 0x906D
+#define GL_MAX_IMAGE_UNITS 0x8F38
+#define GL_MAX_IMAGE_UNITS_EXT 0x8F38
+#define GL_MAX_INTEGER_SAMPLES 0x9110
+#define GL_MAX_LABEL_LENGTH 0x82E8
+#define GL_MAX_LAYERS 0x8281
+#define GL_MAX_LGPU_GPUS_NVX 0x92BA
+#define GL_MAX_MAP_TESSELLATION_NV 0x86D6
+#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841
+#define GL_MAX_MESH_ATOMIC_COUNTERS_NV 0x8E65
+#define GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV 0x8E64
+#define GL_MAX_MESH_IMAGE_UNIFORMS_NV 0x8E62
+#define GL_MAX_MESH_OUTPUT_PRIMITIVES_NV 0x9539
+#define GL_MAX_MESH_OUTPUT_VERTICES_NV 0x9538
+#define GL_MAX_MESH_SHADER_STORAGE_BLOCKS_NV 0x8E66
+#define GL_MAX_MESH_TEXTURE_IMAGE_UNITS_NV 0x8E61
+#define GL_MAX_MESH_TOTAL_MEMORY_SIZE_NV 0x9536
+#define GL_MAX_MESH_UNIFORM_BLOCKS_NV 0x8E60
+#define GL_MAX_MESH_UNIFORM_COMPONENTS_NV 0x8E63
+#define GL_MAX_MESH_VIEWS_NV 0x9557
+#define GL_MAX_MESH_WORK_GROUP_INVOCATIONS_NV 0x95A2
+#define GL_MAX_MESH_WORK_GROUP_SIZE_NV 0x953B
+#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11
+#define GL_MAX_NAME_LENGTH 0x92F6
+#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7
+#define GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB
+#define GL_MAX_PALETTE_MATRICES_ARB 0x8842
+#define GL_MAX_PATCH_VERTICES 0x8E7D
+#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337
+#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1
+#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1
+#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B
+#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD
+#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908
+#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5
+#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5
+#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4
+#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5
+#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6
+#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6
+#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1
+#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4
+#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8
+#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7
+#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F
+#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E
+#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3
+#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E
+#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF
+#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3
+#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB
+#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7
+#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810
+#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F
+#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27
+#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9
+#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0
+#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1
+#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8
+#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909
+#define GL_MAX_PROGRAM_SUBROUTINE_NUM_NV 0x8F45
+#define GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV 0x8F44
+#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5
+#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905
+#define GL_MAX_PROGRAM_TEXEL_OFFSET_EXT 0x8905
+#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905
+#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F
+#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F
+#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F
+#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F
+#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D
+#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C
+#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28
+#define GL_MAX_RASTER_SAMPLES_EXT 0x9329
+#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8
+#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
+#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8
+#define GL_MAX_SAMPLES 0x8D57
+#define GL_MAX_SAMPLES_EXT 0x8D57
+#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59
+#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59
+#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
+#define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35
+#define GL_MAX_SHADER_COMPILER_THREADS_ARB 0x91B0
+#define GL_MAX_SHADER_COMPILER_THREADS_KHR 0x91B0
+#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE
+#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD
+#define GL_MAX_SHININESS_NV 0x8504
+#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD 0x9199
+#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB 0x9199
+#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS 0x919A
+#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB 0x919A
+#define GL_MAX_SPARSE_TEXTURE_SIZE_AMD 0x9198
+#define GL_MAX_SPARSE_TEXTURE_SIZE_ARB 0x9198
+#define GL_MAX_SPOT_EXPONENT_NV 0x8505
+#define GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV 0x9349
+#define GL_MAX_SUBROUTINES 0x8DE7
+#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8
+#define GL_MAX_TASK_ATOMIC_COUNTERS_NV 0x8E6D
+#define GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV 0x8E6C
+#define GL_MAX_TASK_IMAGE_UNIFORMS_NV 0x8E6A
+#define GL_MAX_TASK_OUTPUT_COUNT_NV 0x953A
+#define GL_MAX_TASK_SHADER_STORAGE_BLOCKS_NV 0x8E6E
+#define GL_MAX_TASK_TEXTURE_IMAGE_UNITS_NV 0x8E69
+#define GL_MAX_TASK_TOTAL_MEMORY_SIZE_NV 0x9537
+#define GL_MAX_TASK_UNIFORM_BLOCKS_NV 0x8E68
+#define GL_MAX_TASK_UNIFORM_COMPONENTS_NV 0x8E6B
+#define GL_MAX_TASK_WORK_GROUP_INVOCATIONS_NV 0x95A3
+#define GL_MAX_TASK_WORK_GROUP_SIZE_NV 0x953C
+#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3
+#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD
+#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB
+#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C
+#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83
+#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8
+#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81
+#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85
+#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89
+#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F
+#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4
+#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE
+#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC
+#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D
+#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86
+#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9
+#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82
+#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A
+#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80
+#define GL_MAX_TESS_GEN_LEVEL 0x8E7E
+#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84
+#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B
+#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B
+#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B
+#define GL_MAX_TEXTURE_COORDS_ARB 0x8871
+#define GL_MAX_TEXTURE_COORDS_NV 0x8871
+#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
+#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872
+#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872
+#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
+#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD
+#define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF
+#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
+#define GL_MAX_TEXTURE_SIZE 0x0D33
+#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2
+#define GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV 0x95B6
+#define GL_MAX_TRACK_MATRICES_NV 0x862F
+#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E
+#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70
+#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A
+#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A
+#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80
+#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30
+#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F
+#define GL_MAX_UNIFORM_LOCATIONS 0x826E
+#define GL_MAX_VARYING_COMPONENTS 0x8B4B
+#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B
+#define GL_MAX_VARYING_FLOATS 0x8B4B
+#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B
+#define GL_MAX_VARYING_VECTORS 0x8DFC
+#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520
+#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2
+#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC
+#define GL_MAX_VERTEX_ATTRIBS 0x8869
+#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869
+#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA
+#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9
+#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5
+#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2
+#define GL_MAX_VERTEX_HINT_PGI 0x1A22D
+#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA
+#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122
+#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5
+#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7
+#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9
+#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8
+#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6
+#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6
+#define GL_MAX_VERTEX_STREAMS 0x8E71
+#define GL_MAX_VERTEX_STREAMS_ATI 0x876B
+#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
+#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C
+#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B
+#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A
+#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A
+#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
+#define GL_MAX_VERTEX_UNITS_ARB 0x86A4
+#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE
+#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE
+#define GL_MAX_VIEWPORTS 0x825B
+#define GL_MAX_VIEWPORT_DIMS 0x0D3A
+#define GL_MAX_VIEWS_OVR 0x9631
+#define GL_MAX_WIDTH 0x827E
+#define GL_MAX_WINDOW_RECTANGLES_EXT 0x8F14
+#define GL_MEDIUM_FLOAT 0x8DF1
+#define GL_MEDIUM_INT 0x8DF4
+#define GL_MEMORY_ATTACHABLE_ALIGNMENT_NV 0x95A6
+#define GL_MEMORY_ATTACHABLE_NV 0x95A8
+#define GL_MEMORY_ATTACHABLE_SIZE_NV 0x95A7
+#define GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV 0x9543
+#define GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV 0x92DF
+#define GL_MESH_OUTPUT_TYPE_NV 0x957B
+#define GL_MESH_PRIMITIVES_OUT_NV 0x957A
+#define GL_MESH_SHADER_BIT_NV 0x00000040
+#define GL_MESH_SHADER_NV 0x9559
+#define GL_MESH_SUBROUTINE_NV 0x957C
+#define GL_MESH_SUBROUTINE_UNIFORM_NV 0x957E
+#define GL_MESH_VERTICES_OUT_NV 0x9579
+#define GL_MESH_WORK_GROUP_SIZE_NV 0x953E
+#define GL_MIN 0x8007
+#define GL_MINMAX_EXT 0x802E
+#define GL_MINMAX_FORMAT_EXT 0x802F
+#define GL_MINMAX_SINK_EXT 0x8030
+#define GL_MINOR_VERSION 0x821C
+#define GL_MINUS_CLAMPED_NV 0x92B3
+#define GL_MINUS_NV 0x929F
+#define GL_MIN_EXT 0x8007
+#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B
+#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B
+#define GL_MIN_LOD_WARNING_AMD 0x919C
+#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC
+#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904
+#define GL_MIN_PROGRAM_TEXEL_OFFSET_EXT 0x8904
+#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904
+#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E
+#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E
+#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E
+#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37
+#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37
+#define GL_MIN_SPARSE_LEVEL_AMD 0x919B
+#define GL_MIPMAP 0x8293
+#define GL_MIRRORED_REPEAT 0x8370
+#define GL_MIRRORED_REPEAT_ARB 0x8370
+#define GL_MIRRORED_REPEAT_IBM 0x8370
+#define GL_MIRROR_CLAMP_ATI 0x8742
+#define GL_MIRROR_CLAMP_EXT 0x8742
+#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912
+#define GL_MIRROR_CLAMP_TO_EDGE 0x8743
+#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743
+#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743
+#define GL_MITER_REVERT_NV 0x90A7
+#define GL_MITER_TRUNCATE_NV 0x90A8
+#define GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F
+#define GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330
+#define GL_MODELVIEW0_ARB 0x1700
+#define GL_MODELVIEW0_EXT 0x1700
+#define GL_MODELVIEW0_MATRIX_EXT 0x0BA6
+#define GL_MODELVIEW0_STACK_DEPTH_EXT 0x0BA3
+#define GL_MODELVIEW10_ARB 0x872A
+#define GL_MODELVIEW11_ARB 0x872B
+#define GL_MODELVIEW12_ARB 0x872C
+#define GL_MODELVIEW13_ARB 0x872D
+#define GL_MODELVIEW14_ARB 0x872E
+#define GL_MODELVIEW15_ARB 0x872F
+#define GL_MODELVIEW16_ARB 0x8730
+#define GL_MODELVIEW17_ARB 0x8731
+#define GL_MODELVIEW18_ARB 0x8732
+#define GL_MODELVIEW19_ARB 0x8733
+#define GL_MODELVIEW1_ARB 0x850A
+#define GL_MODELVIEW1_EXT 0x850A
+#define GL_MODELVIEW1_MATRIX_EXT 0x8506
+#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502
+#define GL_MODELVIEW20_ARB 0x8734
+#define GL_MODELVIEW21_ARB 0x8735
+#define GL_MODELVIEW22_ARB 0x8736
+#define GL_MODELVIEW23_ARB 0x8737
+#define GL_MODELVIEW24_ARB 0x8738
+#define GL_MODELVIEW25_ARB 0x8739
+#define GL_MODELVIEW26_ARB 0x873A
+#define GL_MODELVIEW27_ARB 0x873B
+#define GL_MODELVIEW28_ARB 0x873C
+#define GL_MODELVIEW29_ARB 0x873D
+#define GL_MODELVIEW2_ARB 0x8722
+#define GL_MODELVIEW30_ARB 0x873E
+#define GL_MODELVIEW31_ARB 0x873F
+#define GL_MODELVIEW3_ARB 0x8723
+#define GL_MODELVIEW4_ARB 0x8724
+#define GL_MODELVIEW5_ARB 0x8725
+#define GL_MODELVIEW6_ARB 0x8726
+#define GL_MODELVIEW7_ARB 0x8727
+#define GL_MODELVIEW8_ARB 0x8728
+#define GL_MODELVIEW9_ARB 0x8729
+#define GL_MODELVIEW_PROJECTION_NV 0x8629
+#define GL_MODULATE_ADD_ATI 0x8744
+#define GL_MODULATE_SIGNED_ADD_ATI 0x8745
+#define GL_MODULATE_SUBTRACT_ATI 0x8746
+#define GL_MOVE_TO_CONTINUES_NV 0x90B6
+#define GL_MOVE_TO_NV 0x02
+#define GL_MOVE_TO_RESETS_NV 0x90B5
+#define GL_MOV_ATI 0x8961
+#define GL_MULTICAST_GPUS_NV 0x92BA
+#define GL_MULTICAST_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9549
+#define GL_MULTIPLY_KHR 0x9294
+#define GL_MULTIPLY_NV 0x9294
+#define GL_MULTISAMPLE 0x809D
+#define GL_MULTISAMPLES_NV 0x9371
+#define GL_MULTISAMPLE_3DFX 0x86B2
+#define GL_MULTISAMPLE_ARB 0x809D
+#define GL_MULTISAMPLE_BIT_3DFX 0x20000000
+#define GL_MULTISAMPLE_BIT_ARB 0x20000000
+#define GL_MULTISAMPLE_BIT_EXT 0x20000000
+#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12
+#define GL_MULTISAMPLE_EXT 0x809D
+#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534
+#define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB 0x9382
+#define GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB 0x9381
+#define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B
+#define GL_MULTISAMPLE_SGIS 0x809D
+#define GL_MUL_ATI 0x8964
+#define GL_MVP_MATRIX_EXT 0x87E3
+#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9
+#define GL_NAMED_STRING_TYPE_ARB 0x8DEA
+#define GL_NAME_LENGTH 0x92F9
+#define GL_NAND 0x150E
+#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203
+#define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204
+#define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202
+#define GL_NEAREST 0x2600
+#define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E
+#define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D
+#define GL_NEAREST_MIPMAP_LINEAR 0x2702
+#define GL_NEAREST_MIPMAP_NEAREST 0x2700
+#define GL_NEGATE_BIT_ATI 0x00000004
+#define GL_NEGATIVE_ONE_EXT 0x87DF
+#define GL_NEGATIVE_ONE_TO_ONE 0x935E
+#define GL_NEGATIVE_W_EXT 0x87DC
+#define GL_NEGATIVE_X_EXT 0x87D9
+#define GL_NEGATIVE_Y_EXT 0x87DA
+#define GL_NEGATIVE_Z_EXT 0x87DB
+#define GL_NEVER 0x0200
+#define GL_NEXT_BUFFER_NV -2
+#define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025
+#define GL_NICEST 0x1102
+#define GL_NONE 0
+#define GL_NOOP 0x1505
+#define GL_NOP_COMMAND_NV 0x0001
+#define GL_NOR 0x1508
+#define GL_NORMALIZED_RANGE_EXT 0x87E0
+#define GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22
+#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897
+#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080
+#define GL_NORMAL_ARRAY_EXT 0x8075
+#define GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C
+#define GL_NORMAL_ARRAY_LIST_IBM 103071
+#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081
+#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6
+#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F
+#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F
+#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E
+#define GL_NORMAL_BIT_PGI 0x08000000
+#define GL_NORMAL_MAP_ARB 0x8511
+#define GL_NORMAL_MAP_EXT 0x8511
+#define GL_NORMAL_MAP_NV 0x8511
+#define GL_NOTEQUAL 0x0205
+#define GL_NO_ERROR 0
+#define GL_NO_RESET_NOTIFICATION 0x8261
+#define GL_NO_RESET_NOTIFICATION_ARB 0x8261
+#define GL_NUM_ACTIVE_VARIABLES 0x9304
+#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2
+#define GL_NUM_DEVICE_UUIDS_EXT 0x9596
+#define GL_NUM_EXTENSIONS 0x821D
+#define GL_NUM_FILL_STREAMS_NV 0x8E29
+#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F
+#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E
+#define GL_NUM_GENERAL_COMBINERS_NV 0x854E
+#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973
+#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971
+#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972
+#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974
+#define GL_NUM_PASSES_ATI 0x8970
+#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE
+#define GL_NUM_SAMPLE_COUNTS 0x9380
+#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
+#define GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9
+#define GL_NUM_SPARSE_LEVELS_ARB 0x91AA
+#define GL_NUM_SPIR_V_EXTENSIONS 0x9554
+#define GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B6
+#define GL_NUM_TILING_TYPES_EXT 0x9582
+#define GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024
+#define GL_NUM_VIRTUAL_PAGE_SIZES_ARB 0x91A8
+#define GL_NUM_WINDOW_RECTANGLES_EXT 0x8F15
+#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89
+#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A
+#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86
+#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87
+#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85
+#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764
+#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765
+#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81
+#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80
+#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3
+#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1
+#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84
+#define GL_OBJECT_LINE_SGIS 0x81F7
+#define GL_OBJECT_LINK_STATUS_ARB 0x8B82
+#define GL_OBJECT_POINT_SGIS 0x81F5
+#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88
+#define GL_OBJECT_SUBTYPE_ARB 0x8B4F
+#define GL_OBJECT_TYPE 0x9112
+#define GL_OBJECT_TYPE_ARB 0x8B4E
+#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83
+#define GL_OCCLUSION_QUERY_EVENT_MASK_AMD 0x874F
+#define GL_OCCLUSION_TEST_HP 0x8165
+#define GL_OCCLUSION_TEST_RESULT_HP 0x8166
+#define GL_OFFSET 0x92FC
+#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856
+#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857
+#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854
+#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855
+#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850
+#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851
+#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852
+#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853
+#define GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3
+#define GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1
+#define GL_OFFSET_TEXTURE_2D_NV 0x86E8
+#define GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2
+#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3
+#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1
+#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C
+#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D
+#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2
+#define GL_ONE 1
+#define GL_ONE_EXT 0x87DE
+#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
+#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004
+#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
+#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002
+#define GL_ONE_MINUS_DST_ALPHA 0x0305
+#define GL_ONE_MINUS_DST_COLOR 0x0307
+#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB
+#define GL_ONE_MINUS_SRC1_COLOR 0x88FA
+#define GL_ONE_MINUS_SRC_ALPHA 0x0303
+#define GL_ONE_MINUS_SRC_COLOR 0x0301
+#define GL_OPERAND0_ALPHA_ARB 0x8598
+#define GL_OPERAND0_ALPHA_EXT 0x8598
+#define GL_OPERAND0_RGB_ARB 0x8590
+#define GL_OPERAND0_RGB_EXT 0x8590
+#define GL_OPERAND1_ALPHA_ARB 0x8599
+#define GL_OPERAND1_ALPHA_EXT 0x8599
+#define GL_OPERAND1_RGB_ARB 0x8591
+#define GL_OPERAND1_RGB_EXT 0x8591
+#define GL_OPERAND2_ALPHA_ARB 0x859A
+#define GL_OPERAND2_ALPHA_EXT 0x859A
+#define GL_OPERAND2_RGB_ARB 0x8592
+#define GL_OPERAND2_RGB_EXT 0x8592
+#define GL_OPERAND3_ALPHA_NV 0x859B
+#define GL_OPERAND3_RGB_NV 0x8593
+#define GL_OPTIMAL_TILING_EXT 0x9584
+#define GL_OP_ADD_EXT 0x8787
+#define GL_OP_CLAMP_EXT 0x878E
+#define GL_OP_CROSS_PRODUCT_EXT 0x8797
+#define GL_OP_DOT3_EXT 0x8784
+#define GL_OP_DOT4_EXT 0x8785
+#define GL_OP_EXP_BASE_2_EXT 0x8791
+#define GL_OP_FLOOR_EXT 0x878F
+#define GL_OP_FRAC_EXT 0x8789
+#define GL_OP_INDEX_EXT 0x8782
+#define GL_OP_LOG_BASE_2_EXT 0x8792
+#define GL_OP_MADD_EXT 0x8788
+#define GL_OP_MAX_EXT 0x878A
+#define GL_OP_MIN_EXT 0x878B
+#define GL_OP_MOV_EXT 0x8799
+#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798
+#define GL_OP_MUL_EXT 0x8786
+#define GL_OP_NEGATE_EXT 0x8783
+#define GL_OP_POWER_EXT 0x8793
+#define GL_OP_RECIP_EXT 0x8794
+#define GL_OP_RECIP_SQRT_EXT 0x8795
+#define GL_OP_ROUND_EXT 0x8790
+#define GL_OP_SET_GE_EXT 0x878C
+#define GL_OP_SET_LT_EXT 0x878D
+#define GL_OP_SUB_EXT 0x8796
+#define GL_OR 0x1507
+#define GL_OR_INVERTED 0x150D
+#define GL_OR_REVERSE 0x150B
+#define GL_OUTPUT_COLOR0_EXT 0x879B
+#define GL_OUTPUT_COLOR1_EXT 0x879C
+#define GL_OUTPUT_FOG_EXT 0x87BD
+#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D
+#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7
+#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8
+#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9
+#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA
+#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB
+#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC
+#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD
+#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE
+#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF
+#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0
+#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E
+#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1
+#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2
+#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3
+#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4
+#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5
+#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6
+#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7
+#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8
+#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9
+#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA
+#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F
+#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB
+#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC
+#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0
+#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1
+#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2
+#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3
+#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4
+#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5
+#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6
+#define GL_OUTPUT_VERTEX_EXT 0x879A
+#define GL_OUT_OF_MEMORY 0x0505
+#define GL_OVERLAY_KHR 0x9296
+#define GL_OVERLAY_NV 0x9296
+#define GL_PACK_ALIGNMENT 0x0D05
+#define GL_PACK_CMYK_HINT_EXT 0x800E
+#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D
+#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C
+#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E
+#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B
+#define GL_PACK_IMAGE_DEPTH_SGIS 0x8131
+#define GL_PACK_IMAGE_HEIGHT 0x806C
+#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C
+#define GL_PACK_INVERT_MESA 0x8758
+#define GL_PACK_LSB_FIRST 0x0D01
+#define GL_PACK_RESAMPLE_OML 0x8984
+#define GL_PACK_RESAMPLE_SGIX 0x842E
+#define GL_PACK_ROW_BYTES_APPLE 0x8A15
+#define GL_PACK_ROW_LENGTH 0x0D02
+#define GL_PACK_SKIP_IMAGES 0x806B
+#define GL_PACK_SKIP_IMAGES_EXT 0x806B
+#define GL_PACK_SKIP_PIXELS 0x0D04
+#define GL_PACK_SKIP_ROWS 0x0D03
+#define GL_PACK_SKIP_VOLUMES_SGIS 0x8130
+#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0
+#define GL_PACK_SWAP_BYTES 0x0D00
+#define GL_PALETTE4_R5_G6_B5_OES 0x8B92
+#define GL_PALETTE4_RGB5_A1_OES 0x8B94
+#define GL_PALETTE4_RGB8_OES 0x8B90
+#define GL_PALETTE4_RGBA4_OES 0x8B93
+#define GL_PALETTE4_RGBA8_OES 0x8B91
+#define GL_PALETTE8_R5_G6_B5_OES 0x8B97
+#define GL_PALETTE8_RGB5_A1_OES 0x8B99
+#define GL_PALETTE8_RGB8_OES 0x8B95
+#define GL_PALETTE8_RGBA4_OES 0x8B98
+#define GL_PALETTE8_RGBA8_OES 0x8B96
+#define GL_PARALLEL_ARRAYS_INTEL 0x83F4
+#define GL_PARAMETER_BUFFER 0x80EE
+#define GL_PARAMETER_BUFFER_ARB 0x80EE
+#define GL_PARAMETER_BUFFER_BINDING 0x80EF
+#define GL_PARAMETER_BUFFER_BINDING_ARB 0x80EF
+#define GL_PARTIAL_SUCCESS_NV 0x902E
+#define GL_PASS_THROUGH_NV 0x86E6
+#define GL_PATCHES 0x000E
+#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73
+#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74
+#define GL_PATCH_VERTICES 0x8E72
+#define GL_PATH_CLIENT_LENGTH_NV 0x907F
+#define GL_PATH_COMMAND_COUNT_NV 0x909D
+#define GL_PATH_COMPUTED_LENGTH_NV 0x90A0
+#define GL_PATH_COORD_COUNT_NV 0x909E
+#define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF
+#define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F
+#define GL_PATH_DASH_CAPS_NV 0x907B
+#define GL_PATH_DASH_OFFSET_NV 0x907E
+#define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4
+#define GL_PATH_END_CAPS_NV 0x9076
+#define GL_PATH_ERROR_POSITION_NV 0x90AB
+#define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1
+#define GL_PATH_FILL_COVER_MODE_NV 0x9082
+#define GL_PATH_FILL_MASK_NV 0x9081
+#define GL_PATH_FILL_MODE_NV 0x9080
+#define GL_PATH_FORMAT_PS_NV 0x9071
+#define GL_PATH_FORMAT_SVG_NV 0x9070
+#define GL_PATH_GEN_COEFF_NV 0x90B1
+#define GL_PATH_GEN_COMPONENTS_NV 0x90B3
+#define GL_PATH_GEN_MODE_NV 0x90B0
+#define GL_PATH_INITIAL_DASH_CAP_NV 0x907C
+#define GL_PATH_INITIAL_END_CAP_NV 0x9077
+#define GL_PATH_JOIN_STYLE_NV 0x9079
+#define GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV 0x0D36
+#define GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV 0x0D38
+#define GL_PATH_MITER_LIMIT_NV 0x907A
+#define GL_PATH_MODELVIEW_MATRIX_NV 0x0BA6
+#define GL_PATH_MODELVIEW_NV 0x1700
+#define GL_PATH_MODELVIEW_STACK_DEPTH_NV 0x0BA3
+#define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A
+#define GL_PATH_PROJECTION_MATRIX_NV 0x0BA7
+#define GL_PATH_PROJECTION_NV 0x1701
+#define GL_PATH_PROJECTION_STACK_DEPTH_NV 0x0BA4
+#define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD
+#define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE
+#define GL_PATH_STENCIL_FUNC_NV 0x90B7
+#define GL_PATH_STENCIL_REF_NV 0x90B8
+#define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9
+#define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2
+#define GL_PATH_STROKE_COVER_MODE_NV 0x9083
+#define GL_PATH_STROKE_MASK_NV 0x9084
+#define GL_PATH_STROKE_WIDTH_NV 0x9075
+#define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D
+#define GL_PATH_TERMINAL_END_CAP_NV 0x9078
+#define GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV 0x84E3
+#define GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV 0x84E4
+#define GL_PERCENTAGE_AMD 0x8BC3
+#define GL_PERFMON_RESULT_AMD 0x8BC6
+#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4
+#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5
+#define GL_PERFORMANCE_MONITOR_AMD 0x9152
+#define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC
+#define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB
+#define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA
+#define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8
+#define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9
+#define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF
+#define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1
+#define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2
+#define GL_PERFQUERY_COUNTER_EVENT_INTEL 0x94F0
+#define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE
+#define GL_PERFQUERY_COUNTER_RAW_INTEL 0x94F4
+#define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3
+#define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5
+#define GL_PERFQUERY_DONOT_FLUSH_INTEL 0x83F9
+#define GL_PERFQUERY_FLUSH_INTEL 0x83FA
+#define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x00000001
+#define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500
+#define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD
+#define GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x00000000
+#define GL_PERFQUERY_WAIT_INTEL 0x83FB
+#define GL_PERTURB_EXT 0x85AE
+#define GL_PER_GPU_STORAGE_BIT_NV 0x0800
+#define GL_PER_GPU_STORAGE_NV 0x9548
+#define GL_PER_STAGE_CONSTANTS_NV 0x8535
+#define GL_PHONG_HINT_WIN 0x80EB
+#define GL_PHONG_WIN 0x80EA
+#define GL_PINLIGHT_NV 0x92A8
+#define GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD 0x91AE
+#define GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD 0x91AF
+#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080
+#define GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080
+#define GL_PIXEL_COUNTER_BITS_NV 0x8864
+#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867
+#define GL_PIXEL_COUNT_NV 0x8866
+#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333
+#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355
+#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354
+#define GL_PIXEL_GROUP_COLOR_SGIS 0x8356
+#define GL_PIXEL_MAG_FILTER_EXT 0x8331
+#define GL_PIXEL_MIN_FILTER_EXT 0x8332
+#define GL_PIXEL_PACK_BUFFER 0x88EB
+#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB
+#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
+#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED
+#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED
+#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB
+#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3
+#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4
+#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2
+#define GL_PIXEL_TEXTURE_SGIS 0x8353
+#define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B
+#define GL_PIXEL_TEX_GEN_SGIX 0x8139
+#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E
+#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F
+#define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145
+#define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144
+#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143
+#define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142
+#define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141
+#define GL_PIXEL_TILE_WIDTH_SGIX 0x8140
+#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330
+#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338
+#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336
+#define GL_PIXEL_UNPACK_BUFFER 0x88EC
+#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC
+#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF
+#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF
+#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF
+#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC
+#define GL_PLUS_CLAMPED_ALPHA_NV 0x92B2
+#define GL_PLUS_CLAMPED_NV 0x92B1
+#define GL_PLUS_DARKER_NV 0x9292
+#define GL_PLUS_NV 0x9291
+#define GL_PN_TRIANGLES_ATI 0x87F0
+#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3
+#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7
+#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8
+#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2
+#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6
+#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5
+#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4
+#define GL_POINT 0x1B00
+#define GL_POINTS 0x0000
+#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129
+#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128
+#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128
+#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128
+#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128
+#define GL_POINT_SIZE 0x0B11
+#define GL_POINT_SIZE_GRANULARITY 0x0B13
+#define GL_POINT_SIZE_MAX_ARB 0x8127
+#define GL_POINT_SIZE_MAX_EXT 0x8127
+#define GL_POINT_SIZE_MAX_SGIS 0x8127
+#define GL_POINT_SIZE_MIN_ARB 0x8126
+#define GL_POINT_SIZE_MIN_EXT 0x8126
+#define GL_POINT_SIZE_MIN_SGIS 0x8126
+#define GL_POINT_SIZE_RANGE 0x0B12
+#define GL_POINT_SPRITE_ARB 0x8861
+#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0
+#define GL_POINT_SPRITE_NV 0x8861
+#define GL_POINT_SPRITE_R_MODE_NV 0x8863
+#define GL_POLYGON_MODE 0x0B40
+#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039
+#define GL_POLYGON_OFFSET_CLAMP 0x8E1B
+#define GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B
+#define GL_POLYGON_OFFSET_COMMAND_NV 0x000E
+#define GL_POLYGON_OFFSET_EXT 0x8037
+#define GL_POLYGON_OFFSET_FACTOR 0x8038
+#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038
+#define GL_POLYGON_OFFSET_FILL 0x8037
+#define GL_POLYGON_OFFSET_LINE 0x2A02
+#define GL_POLYGON_OFFSET_POINT 0x2A01
+#define GL_POLYGON_OFFSET_UNITS 0x2A00
+#define GL_POLYGON_SMOOTH 0x0B41
+#define GL_POLYGON_SMOOTH_HINT 0x0C53
+#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB
+#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7
+#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA
+#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6
+#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2
+#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9
+#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5
+#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8
+#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4
+#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023
+#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F
+#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022
+#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E
+#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1
+#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021
+#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D
+#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020
+#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C
+#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162
+#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B
+#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179
+#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C
+#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A
+#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8
+#define GL_PRESENT_DURATION_NV 0x8E2B
+#define GL_PRESENT_TIME_NV 0x8E2A
+#define GL_PRESERVE_ATI 0x8762
+#define GL_PREVIOUS_ARB 0x8578
+#define GL_PREVIOUS_EXT 0x8578
+#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4
+#define GL_PRIMARY_COLOR_ARB 0x8577
+#define GL_PRIMARY_COLOR_EXT 0x8577
+#define GL_PRIMARY_COLOR_NV 0x852C
+#define GL_PRIMITIVES_GENERATED 0x8C87
+#define GL_PRIMITIVES_GENERATED_EXT 0x8C87
+#define GL_PRIMITIVES_GENERATED_NV 0x8C87
+#define GL_PRIMITIVES_SUBMITTED 0x82EF
+#define GL_PRIMITIVES_SUBMITTED_ARB 0x82EF
+#define GL_PRIMITIVE_BOUNDING_BOX_ARB 0x92BE
+#define GL_PRIMITIVE_ID_NV 0x8C7C
+#define GL_PRIMITIVE_RESTART 0x8F9D
+#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69
+#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221
+#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E
+#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559
+#define GL_PRIMITIVE_RESTART_NV 0x8558
+#define GL_PROGRAM 0x82E2
+#define GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB 0x9341
+#define GL_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9341
+#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB 0x9340
+#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV 0x9340
+#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0
+#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805
+#define GL_PROGRAM_ATTRIBS_ARB 0x88AC
+#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906
+#define GL_PROGRAM_BINARY_FORMATS 0x87FF
+#define GL_PROGRAM_BINARY_FORMAT_MESA 0x875F
+#define GL_PROGRAM_BINARY_LENGTH 0x8741
+#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257
+#define GL_PROGRAM_BINDING_ARB 0x8677
+#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B
+#define GL_PROGRAM_ERROR_POSITION_NV 0x864B
+#define GL_PROGRAM_ERROR_STRING_ARB 0x8874
+#define GL_PROGRAM_ERROR_STRING_NV 0x8874
+#define GL_PROGRAM_FORMAT_ARB 0x8876
+#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875
+#define GL_PROGRAM_INPUT 0x92E3
+#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0
+#define GL_PROGRAM_LENGTH_ARB 0x8627
+#define GL_PROGRAM_LENGTH_NV 0x8627
+#define GL_PROGRAM_MATRIX_EXT 0x8E2D
+#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F
+#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2
+#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808
+#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE
+#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2
+#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA
+#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6
+#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A
+#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809
+#define GL_PROGRAM_OBJECT_ARB 0x8B40
+#define GL_PROGRAM_OBJECT_EXT 0x8B40
+#define GL_PROGRAM_OUTPUT 0x92E4
+#define GL_PROGRAM_PARAMETERS_ARB 0x88A8
+#define GL_PROGRAM_PARAMETER_NV 0x8644
+#define GL_PROGRAM_PIPELINE 0x82E4
+#define GL_PROGRAM_PIPELINE_BINDING 0x825A
+#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F
+#define GL_PROGRAM_POINT_SIZE 0x8642
+#define GL_PROGRAM_POINT_SIZE_ARB 0x8642
+#define GL_PROGRAM_POINT_SIZE_EXT 0x8642
+#define GL_PROGRAM_RESIDENT_NV 0x8647
+#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907
+#define GL_PROGRAM_SEPARABLE 0x8258
+#define GL_PROGRAM_STRING_ARB 0x8628
+#define GL_PROGRAM_STRING_NV 0x8628
+#define GL_PROGRAM_TARGET_NV 0x8646
+#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4
+#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807
+#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806
+#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6
+#define GL_PROTECTED_MEMORY_OBJECT_EXT 0x959B
+#define GL_PROVOKING_VERTEX 0x8E4F
+#define GL_PROVOKING_VERTEX_EXT 0x8E4F
+#define GL_PROXY_COLOR_TABLE_SGI 0x80D3
+#define GL_PROXY_HISTOGRAM_EXT 0x8025
+#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5
+#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4
+#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163
+#define GL_PROXY_TEXTURE_1D 0x8063
+#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19
+#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19
+#define GL_PROXY_TEXTURE_1D_EXT 0x8063
+#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B
+#define GL_PROXY_TEXTURE_2D 0x8064
+#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B
+#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B
+#define GL_PROXY_TEXTURE_2D_EXT 0x8064
+#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101
+#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103
+#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C
+#define GL_PROXY_TEXTURE_3D 0x8070
+#define GL_PROXY_TEXTURE_3D_EXT 0x8070
+#define GL_PROXY_TEXTURE_4D_SGIS 0x8135
+#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD
+#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B
+#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B
+#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7
+#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7
+#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7
+#define GL_PURGEABLE_APPLE 0x8A1D
+#define GL_PURGED_CONTEXT_RESET_NV 0x92BB
+#define GL_QUADRATIC_CURVE_TO_NV 0x0A
+#define GL_QUADS 0x0007
+#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C
+#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C
+#define GL_QUAD_ALPHA4_SGIS 0x811E
+#define GL_QUAD_ALPHA8_SGIS 0x811F
+#define GL_QUAD_INTENSITY4_SGIS 0x8122
+#define GL_QUAD_INTENSITY8_SGIS 0x8123
+#define GL_QUAD_LUMINANCE4_SGIS 0x8120
+#define GL_QUAD_LUMINANCE8_SGIS 0x8121
+#define GL_QUAD_MESH_SUN 0x8614
+#define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125
+#define GL_QUARTER_BIT_ATI 0x00000010
+#define GL_QUERY 0x82E3
+#define GL_QUERY_ALL_EVENT_BITS_AMD 0xFFFFFFFF
+#define GL_QUERY_BUFFER 0x9192
+#define GL_QUERY_BUFFER_AMD 0x9192
+#define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000
+#define GL_QUERY_BUFFER_BINDING 0x9193
+#define GL_QUERY_BUFFER_BINDING_AMD 0x9193
+#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16
+#define GL_QUERY_BY_REGION_NO_WAIT_INVERTED 0x8E1A
+#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16
+#define GL_QUERY_BY_REGION_WAIT 0x8E15
+#define GL_QUERY_BY_REGION_WAIT_INVERTED 0x8E19
+#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15
+#define GL_QUERY_COUNTER_BITS 0x8864
+#define GL_QUERY_COUNTER_BITS_ARB 0x8864
+#define GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD 0x00000008
+#define GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD 0x00000002
+#define GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD 0x00000001
+#define GL_QUERY_NO_WAIT 0x8E14
+#define GL_QUERY_NO_WAIT_INVERTED 0x8E18
+#define GL_QUERY_NO_WAIT_NV 0x8E14
+#define GL_QUERY_OBJECT_AMD 0x9153
+#define GL_QUERY_OBJECT_EXT 0x9153
+#define GL_QUERY_RESOURCE_BUFFEROBJECT_NV 0x9547
+#define GL_QUERY_RESOURCE_MEMTYPE_VIDMEM_NV 0x9542
+#define GL_QUERY_RESOURCE_RENDERBUFFER_NV 0x9546
+#define GL_QUERY_RESOURCE_SYS_RESERVED_NV 0x9544
+#define GL_QUERY_RESOURCE_TEXTURE_NV 0x9545
+#define GL_QUERY_RESOURCE_TYPE_VIDMEM_ALLOC_NV 0x9540
+#define GL_QUERY_RESULT 0x8866
+#define GL_QUERY_RESULT_ARB 0x8866
+#define GL_QUERY_RESULT_AVAILABLE 0x8867
+#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867
+#define GL_QUERY_RESULT_NO_WAIT 0x9194
+#define GL_QUERY_RESULT_NO_WAIT_AMD 0x9194
+#define GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD 0x00000004
+#define GL_QUERY_TARGET 0x82EA
+#define GL_QUERY_WAIT 0x8E13
+#define GL_QUERY_WAIT_INVERTED 0x8E17
+#define GL_QUERY_WAIT_NV 0x8E13
+#define GL_R11F_G11F_B10F 0x8C3A
+#define GL_R11F_G11F_B10F_EXT 0x8C3A
+#define GL_R16 0x822A
+#define GL_R16F 0x822D
+#define GL_R16F_EXT 0x822D
+#define GL_R16I 0x8233
+#define GL_R16UI 0x8234
+#define GL_R16_SNORM 0x8F98
+#define GL_R1UI_C3F_V3F_SUN 0x85C6
+#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8
+#define GL_R1UI_C4UB_V3F_SUN 0x85C5
+#define GL_R1UI_N3F_V3F_SUN 0x85C7
+#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB
+#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA
+#define GL_R1UI_T2F_V3F_SUN 0x85C9
+#define GL_R1UI_V3F_SUN 0x85C4
+#define GL_R32F 0x822E
+#define GL_R32F_EXT 0x822E
+#define GL_R32I 0x8235
+#define GL_R32UI 0x8236
+#define GL_R3_G3_B2 0x2A10
+#define GL_R8 0x8229
+#define GL_R8I 0x8231
+#define GL_R8UI 0x8232
+#define GL_R8_EXT 0x8229
+#define GL_R8_SNORM 0x8F94
+#define GL_RASTERIZER_DISCARD 0x8C89
+#define GL_RASTERIZER_DISCARD_EXT 0x8C89
+#define GL_RASTERIZER_DISCARD_NV 0x8C89
+#define GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A
+#define GL_RASTER_MULTISAMPLE_EXT 0x9327
+#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262
+#define GL_RASTER_SAMPLES_EXT 0x9328
+#define GL_READ_BUFFER 0x0C02
+#define GL_READ_FRAMEBUFFER 0x8CA8
+#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
+#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA
+#define GL_READ_FRAMEBUFFER_EXT 0x8CA8
+#define GL_READ_ONLY 0x88B8
+#define GL_READ_ONLY_ARB 0x88B8
+#define GL_READ_PIXELS 0x828C
+#define GL_READ_PIXELS_FORMAT 0x828D
+#define GL_READ_PIXELS_TYPE 0x828E
+#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B
+#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879
+#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D
+#define GL_READ_WRITE 0x88BA
+#define GL_READ_WRITE_ARB 0x88BA
+#define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE
+#define GL_RECT_NV 0xF6
+#define GL_RED 0x1903
+#define GL_REDUCE_EXT 0x8016
+#define GL_RED_BIT_ATI 0x00000001
+#define GL_RED_INTEGER 0x8D94
+#define GL_RED_INTEGER_EXT 0x8D94
+#define GL_RED_MAX_CLAMP_INGR 0x8564
+#define GL_RED_MIN_CLAMP_INGR 0x8560
+#define GL_RED_NV 0x1903
+#define GL_RED_SNORM 0x8F90
+#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B
+#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A
+#define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309
+#define GL_REFERENCED_BY_MESH_SHADER_NV 0x95A0
+#define GL_REFERENCED_BY_TASK_SHADER_NV 0x95A1
+#define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307
+#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308
+#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306
+#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E
+#define GL_REFERENCE_PLANE_SGIX 0x817D
+#define GL_REFLECTION_MAP_ARB 0x8512
+#define GL_REFLECTION_MAP_EXT 0x8512
+#define GL_REFLECTION_MAP_NV 0x8512
+#define GL_REGISTER_COMBINERS_NV 0x8522
+#define GL_REG_0_ATI 0x8921
+#define GL_REG_10_ATI 0x892B
+#define GL_REG_11_ATI 0x892C
+#define GL_REG_12_ATI 0x892D
+#define GL_REG_13_ATI 0x892E
+#define GL_REG_14_ATI 0x892F
+#define GL_REG_15_ATI 0x8930
+#define GL_REG_16_ATI 0x8931
+#define GL_REG_17_ATI 0x8932
+#define GL_REG_18_ATI 0x8933
+#define GL_REG_19_ATI 0x8934
+#define GL_REG_1_ATI 0x8922
+#define GL_REG_20_ATI 0x8935
+#define GL_REG_21_ATI 0x8936
+#define GL_REG_22_ATI 0x8937
+#define GL_REG_23_ATI 0x8938
+#define GL_REG_24_ATI 0x8939
+#define GL_REG_25_ATI 0x893A
+#define GL_REG_26_ATI 0x893B
+#define GL_REG_27_ATI 0x893C
+#define GL_REG_28_ATI 0x893D
+#define GL_REG_29_ATI 0x893E
+#define GL_REG_2_ATI 0x8923
+#define GL_REG_30_ATI 0x893F
+#define GL_REG_31_ATI 0x8940
+#define GL_REG_3_ATI 0x8924
+#define GL_REG_4_ATI 0x8925
+#define GL_REG_5_ATI 0x8926
+#define GL_REG_6_ATI 0x8927
+#define GL_REG_7_ATI 0x8928
+#define GL_REG_8_ATI 0x8929
+#define GL_REG_9_ATI 0x892A
+#define GL_RELATIVE_ARC_TO_NV 0xFF
+#define GL_RELATIVE_CONIC_CURVE_TO_NV 0x1B
+#define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D
+#define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07
+#define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17
+#define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19
+#define GL_RELATIVE_LINE_TO_NV 0x05
+#define GL_RELATIVE_MOVE_TO_NV 0x03
+#define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B
+#define GL_RELATIVE_RECT_NV 0xF7
+#define GL_RELATIVE_ROUNDED_RECT2_NV 0xEB
+#define GL_RELATIVE_ROUNDED_RECT4_NV 0xED
+#define GL_RELATIVE_ROUNDED_RECT8_NV 0xEF
+#define GL_RELATIVE_ROUNDED_RECT_NV 0xE9
+#define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13
+#define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15
+#define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11
+#define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F
+#define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09
+#define GL_RELEASED_APPLE 0x8A19
+#define GL_RENDERBUFFER 0x8D41
+#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
+#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53
+#define GL_RENDERBUFFER_BINDING 0x8CA7
+#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7
+#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
+#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52
+#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10
+#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB
+#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
+#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54
+#define GL_RENDERBUFFER_EXT 0x8D41
+#define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD
+#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
+#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51
+#define GL_RENDERBUFFER_HEIGHT 0x8D43
+#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43
+#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
+#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44
+#define GL_RENDERBUFFER_RED_SIZE 0x8D50
+#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50
+#define GL_RENDERBUFFER_SAMPLES 0x8CAB
+#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB
+#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
+#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55
+#define GL_RENDERBUFFER_STORAGE_SAMPLES_AMD 0x91B2
+#define GL_RENDERBUFFER_WIDTH 0x8D42
+#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42
+#define GL_RENDERER 0x1F01
+#define GL_RENDER_GPU_MASK_NV 0x9558
+#define GL_REPEAT 0x2901
+#define GL_REPLACE 0x1E01
+#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3
+#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2
+#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0
+#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1
+#define GL_REPLACEMENT_CODE_SUN 0x81D8
+#define GL_REPLACE_EXT 0x8062
+#define GL_REPLACE_MIDDLE_SUN 0x0002
+#define GL_REPLACE_OLDEST_SUN 0x0003
+#define GL_REPLACE_VALUE_AMD 0x874B
+#define GL_REPLICATE_BORDER_HP 0x8153
+#define GL_REPRESENTATIVE_FRAGMENT_TEST_NV 0x937F
+#define GL_RESAMPLE_AVERAGE_OML 0x8988
+#define GL_RESAMPLE_DECIMATE_OML 0x8989
+#define GL_RESAMPLE_DECIMATE_SGIX 0x8430
+#define GL_RESAMPLE_REPLICATE_OML 0x8986
+#define GL_RESAMPLE_REPLICATE_SGIX 0x8433
+#define GL_RESAMPLE_ZERO_FILL_OML 0x8987
+#define GL_RESAMPLE_ZERO_FILL_SGIX 0x8434
+#define GL_RESCALE_NORMAL_EXT 0x803A
+#define GL_RESET_NOTIFICATION_STRATEGY 0x8256
+#define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
+#define GL_RESTART_PATH_NV 0xF0
+#define GL_RESTART_SUN 0x0001
+#define GL_RETAINED_APPLE 0x8A1B
+#define GL_RG 0x8227
+#define GL_RG16 0x822C
+#define GL_RG16F 0x822F
+#define GL_RG16F_EXT 0x822F
+#define GL_RG16I 0x8239
+#define GL_RG16UI 0x823A
+#define GL_RG16_SNORM 0x8F99
+#define GL_RG32F 0x8230
+#define GL_RG32F_EXT 0x8230
+#define GL_RG32I 0x823B
+#define GL_RG32UI 0x823C
+#define GL_RG8 0x822B
+#define GL_RG8I 0x8237
+#define GL_RG8UI 0x8238
+#define GL_RG8_EXT 0x822B
+#define GL_RG8_SNORM 0x8F95
+#define GL_RGB 0x1907
+#define GL_RGB10 0x8052
+#define GL_RGB10_A2 0x8059
+#define GL_RGB10_A2UI 0x906F
+#define GL_RGB10_A2_EXT 0x8059
+#define GL_RGB10_EXT 0x8052
+#define GL_RGB12 0x8053
+#define GL_RGB12_EXT 0x8053
+#define GL_RGB16 0x8054
+#define GL_RGB16F 0x881B
+#define GL_RGB16F_ARB 0x881B
+#define GL_RGB16F_EXT 0x881B
+#define GL_RGB16I 0x8D89
+#define GL_RGB16I_EXT 0x8D89
+#define GL_RGB16UI 0x8D77
+#define GL_RGB16UI_EXT 0x8D77
+#define GL_RGB16_EXT 0x8054
+#define GL_RGB16_SNORM 0x8F9A
+#define GL_RGB2_EXT 0x804E
+#define GL_RGB32F 0x8815
+#define GL_RGB32F_ARB 0x8815
+#define GL_RGB32F_EXT 0x8815
+#define GL_RGB32I 0x8D83
+#define GL_RGB32I_EXT 0x8D83
+#define GL_RGB32UI 0x8D71
+#define GL_RGB32UI_EXT 0x8D71
+#define GL_RGB4 0x804F
+#define GL_RGB4_EXT 0x804F
+#define GL_RGB4_S3TC 0x83A1
+#define GL_RGB5 0x8050
+#define GL_RGB565 0x8D62
+#define GL_RGB5_A1 0x8057
+#define GL_RGB5_A1_EXT 0x8057
+#define GL_RGB5_EXT 0x8050
+#define GL_RGB8 0x8051
+#define GL_RGB8I 0x8D8F
+#define GL_RGB8I_EXT 0x8D8F
+#define GL_RGB8UI 0x8D7D
+#define GL_RGB8UI_EXT 0x8D7D
+#define GL_RGB8_EXT 0x8051
+#define GL_RGB8_SNORM 0x8F96
+#define GL_RGB9_E5 0x8C3D
+#define GL_RGB9_E5_EXT 0x8C3D
+#define GL_RGBA 0x1908
+#define GL_RGBA12 0x805A
+#define GL_RGBA12_EXT 0x805A
+#define GL_RGBA16 0x805B
+#define GL_RGBA16F 0x881A
+#define GL_RGBA16F_ARB 0x881A
+#define GL_RGBA16F_EXT 0x881A
+#define GL_RGBA16I 0x8D88
+#define GL_RGBA16I_EXT 0x8D88
+#define GL_RGBA16UI 0x8D76
+#define GL_RGBA16UI_EXT 0x8D76
+#define GL_RGBA16_EXT 0x805B
+#define GL_RGBA16_SNORM 0x8F9B
+#define GL_RGBA2 0x8055
+#define GL_RGBA2_EXT 0x8055
+#define GL_RGBA32F 0x8814
+#define GL_RGBA32F_ARB 0x8814
+#define GL_RGBA32F_EXT 0x8814
+#define GL_RGBA32I 0x8D82
+#define GL_RGBA32I_EXT 0x8D82
+#define GL_RGBA32UI 0x8D70
+#define GL_RGBA32UI_EXT 0x8D70
+#define GL_RGBA4 0x8056
+#define GL_RGBA4_DXT5_S3TC 0x83A5
+#define GL_RGBA4_EXT 0x8056
+#define GL_RGBA4_S3TC 0x83A3
+#define GL_RGBA8 0x8058
+#define GL_RGBA8I 0x8D8E
+#define GL_RGBA8I_EXT 0x8D8E
+#define GL_RGBA8UI 0x8D7C
+#define GL_RGBA8UI_EXT 0x8D7C
+#define GL_RGBA8_EXT 0x8058
+#define GL_RGBA8_SNORM 0x8F97
+#define GL_RGBA_DXT5_S3TC 0x83A4
+#define GL_RGBA_FLOAT16_APPLE 0x881A
+#define GL_RGBA_FLOAT16_ATI 0x881A
+#define GL_RGBA_FLOAT32_APPLE 0x8814
+#define GL_RGBA_FLOAT32_ATI 0x8814
+#define GL_RGBA_FLOAT_MODE_ARB 0x8820
+#define GL_RGBA_FLOAT_MODE_ATI 0x8820
+#define GL_RGBA_INTEGER 0x8D99
+#define GL_RGBA_INTEGER_EXT 0x8D99
+#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E
+#define GL_RGBA_S3TC 0x83A2
+#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C
+#define GL_RGBA_SNORM 0x8F93
+#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9
+#define GL_RGB_422_APPLE 0x8A1F
+#define GL_RGB_FLOAT16_APPLE 0x881B
+#define GL_RGB_FLOAT16_ATI 0x881B
+#define GL_RGB_FLOAT32_APPLE 0x8815
+#define GL_RGB_FLOAT32_ATI 0x8815
+#define GL_RGB_INTEGER 0x8D98
+#define GL_RGB_INTEGER_EXT 0x8D98
+#define GL_RGB_RAW_422_APPLE 0x8A51
+#define GL_RGB_S3TC 0x83A0
+#define GL_RGB_SCALE_ARB 0x8573
+#define GL_RGB_SCALE_EXT 0x8573
+#define GL_RGB_SNORM 0x8F92
+#define GL_RG_INTEGER 0x8228
+#define GL_RG_SNORM 0x8F91
+#define GL_RIGHT 0x0407
+#define GL_ROUNDED_RECT2_NV 0xEA
+#define GL_ROUNDED_RECT4_NV 0xEC
+#define GL_ROUNDED_RECT8_NV 0xEE
+#define GL_ROUNDED_RECT_NV 0xE8
+#define GL_ROUND_NV 0x90A4
+#define GL_SAMPLER 0x82E6
+#define GL_SAMPLER_1D 0x8B5D
+#define GL_SAMPLER_1D_ARB 0x8B5D
+#define GL_SAMPLER_1D_ARRAY 0x8DC0
+#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0
+#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3
+#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3
+#define GL_SAMPLER_1D_SHADOW 0x8B61
+#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61
+#define GL_SAMPLER_2D 0x8B5E
+#define GL_SAMPLER_2D_ARB 0x8B5E
+#define GL_SAMPLER_2D_ARRAY 0x8DC1
+#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1
+#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4
+#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4
+#define GL_SAMPLER_2D_MULTISAMPLE 0x9108
+#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B
+#define GL_SAMPLER_2D_RECT 0x8B63
+#define GL_SAMPLER_2D_RECT_ARB 0x8B63
+#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64
+#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64
+#define GL_SAMPLER_2D_SHADOW 0x8B62
+#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62
+#define GL_SAMPLER_3D 0x8B5F
+#define GL_SAMPLER_3D_ARB 0x8B5F
+#define GL_SAMPLER_BINDING 0x8919
+#define GL_SAMPLER_BUFFER 0x8DC2
+#define GL_SAMPLER_BUFFER_AMD 0x9001
+#define GL_SAMPLER_BUFFER_EXT 0x8DC2
+#define GL_SAMPLER_CUBE 0x8B60
+#define GL_SAMPLER_CUBE_ARB 0x8B60
+#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C
+#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C
+#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D
+#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D
+#define GL_SAMPLER_CUBE_SHADOW 0x8DC5
+#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5
+#define GL_SAMPLER_OBJECT_AMD 0x9155
+#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56
+#define GL_SAMPLES 0x80A9
+#define GL_SAMPLES_3DFX 0x86B4
+#define GL_SAMPLES_ARB 0x80A9
+#define GL_SAMPLES_EXT 0x80A9
+#define GL_SAMPLES_PASSED 0x8914
+#define GL_SAMPLES_PASSED_ARB 0x8914
+#define GL_SAMPLES_SGIS 0x80A9
+#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
+#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E
+#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E
+#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE 0x809F
+#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F
+#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F
+#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F
+#define GL_SAMPLE_BUFFERS 0x80A8
+#define GL_SAMPLE_BUFFERS_3DFX 0x86B3
+#define GL_SAMPLE_BUFFERS_ARB 0x80A8
+#define GL_SAMPLE_BUFFERS_EXT 0x80A8
+#define GL_SAMPLE_BUFFERS_SGIS 0x80A8
+#define GL_SAMPLE_COVERAGE 0x80A0
+#define GL_SAMPLE_COVERAGE_ARB 0x80A0
+#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
+#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB
+#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
+#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA
+#define GL_SAMPLE_LOCATION_ARB 0x8E50
+#define GL_SAMPLE_LOCATION_NV 0x8E50
+#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB 0x933F
+#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV 0x933F
+#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB 0x933E
+#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV 0x933E
+#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB 0x933D
+#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV 0x933D
+#define GL_SAMPLE_MASK 0x8E51
+#define GL_SAMPLE_MASK_EXT 0x80A0
+#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB
+#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB
+#define GL_SAMPLE_MASK_NV 0x8E51
+#define GL_SAMPLE_MASK_SGIS 0x80A0
+#define GL_SAMPLE_MASK_VALUE 0x8E52
+#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA
+#define GL_SAMPLE_MASK_VALUE_NV 0x8E52
+#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA
+#define GL_SAMPLE_PATTERN_EXT 0x80AC
+#define GL_SAMPLE_PATTERN_SGIS 0x80AC
+#define GL_SAMPLE_POSITION 0x8E50
+#define GL_SAMPLE_POSITION_NV 0x8E50
+#define GL_SAMPLE_SHADING 0x8C36
+#define GL_SAMPLE_SHADING_ARB 0x8C36
+#define GL_SATURATE_BIT_ATI 0x00000040
+#define GL_SCALAR_EXT 0x87BE
+#define GL_SCALEBIAS_HINT_SGIX 0x8322
+#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA
+#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB
+#define GL_SCALE_BY_FOUR_NV 0x853F
+#define GL_SCALE_BY_ONE_HALF_NV 0x8540
+#define GL_SCALE_BY_TWO_NV 0x853E
+#define GL_SCISSOR_BOX 0x0C10
+#define GL_SCISSOR_BOX_EXCLUSIVE_NV 0x9556
+#define GL_SCISSOR_COMMAND_NV 0x0011
+#define GL_SCISSOR_TEST 0x0C11
+#define GL_SCISSOR_TEST_EXCLUSIVE_NV 0x9555
+#define GL_SCREEN_COORDINATES_REND 0x8490
+#define GL_SCREEN_KHR 0x9295
+#define GL_SCREEN_NV 0x9295
+#define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27
+#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C
+#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E
+#define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31
+#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077
+#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087
+#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D
+#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A
+#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C
+#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B
+#define GL_SECONDARY_COLOR_NV 0x852D
+#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D
+#define GL_SEMAPHORE_TYPE_BINARY_NV 0x95B4
+#define GL_SEMAPHORE_TYPE_NV 0x95B3
+#define GL_SEMAPHORE_TYPE_TIMELINE_NV 0x95B5
+#define GL_SEPARABLE_2D_EXT 0x8012
+#define GL_SEPARATE_ATTRIBS 0x8C8D
+#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D
+#define GL_SEPARATE_ATTRIBS_NV 0x8C8D
+#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA
+#define GL_SET 0x150F
+#define GL_SET_AMD 0x874A
+#define GL_SHADER 0x82E1
+#define GL_SHADER_BINARY_FORMATS 0x8DF8
+#define GL_SHADER_BINARY_FORMAT_SPIR_V 0x9551
+#define GL_SHADER_BINARY_FORMAT_SPIR_V_ARB 0x9551
+#define GL_SHADER_COMPILER 0x8DFA
+#define GL_SHADER_CONSISTENT_NV 0x86DD
+#define GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV 0x00000010
+#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020
+#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020
+#define GL_SHADER_IMAGE_ATOMIC 0x82A6
+#define GL_SHADER_IMAGE_LOAD 0x82A4
+#define GL_SHADER_IMAGE_STORE 0x82A5
+#define GL_SHADER_INCLUDE_ARB 0x8DAE
+#define GL_SHADER_OBJECT_ARB 0x8B48
+#define GL_SHADER_OBJECT_EXT 0x8B48
+#define GL_SHADER_OPERATION_NV 0x86DF
+#define GL_SHADER_SOURCE_LENGTH 0x8B88
+#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000
+#define GL_SHADER_STORAGE_BLOCK 0x92E6
+#define GL_SHADER_STORAGE_BUFFER 0x90D2
+#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3
+#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF
+#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5
+#define GL_SHADER_STORAGE_BUFFER_START 0x90D4
+#define GL_SHADER_TYPE 0x8B4F
+#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
+#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C
+#define GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV 0x956F
+#define GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV 0x9566
+#define GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV 0x9567
+#define GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV 0x9568
+#define GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV 0x9569
+#define GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV 0x956A
+#define GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV 0x956B
+#define GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV 0x9565
+#define GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV 0x956C
+#define GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV 0x956D
+#define GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV 0x956E
+#define GL_SHADING_RATE_IMAGE_BINDING_NV 0x955B
+#define GL_SHADING_RATE_IMAGE_NV 0x9563
+#define GL_SHADING_RATE_IMAGE_PALETTE_COUNT_NV 0x95B2
+#define GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NV 0x955E
+#define GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV 0x95B1
+#define GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV 0x955D
+#define GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NV 0x955C
+#define GL_SHADING_RATE_NO_INVOCATIONS_NV 0x9564
+#define GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV 0x95AE
+#define GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV 0x95AF
+#define GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV 0x95B0
+#define GL_SHADOW_AMBIENT_SGIX 0x80BF
+#define GL_SHADOW_ATTENUATION_EXT 0x834E
+#define GL_SHARED_EDGE_NV 0xC0
+#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB
+#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0
+#define GL_SHORT 0x1402
+#define GL_SIGNALED 0x9119
+#define GL_SIGNED_ALPHA8_NV 0x8706
+#define GL_SIGNED_ALPHA_NV 0x8705
+#define GL_SIGNED_HILO16_NV 0x86FA
+#define GL_SIGNED_HILO8_NV 0x885F
+#define GL_SIGNED_HILO_NV 0x86F9
+#define GL_SIGNED_IDENTITY_NV 0x853C
+#define GL_SIGNED_INTENSITY8_NV 0x8708
+#define GL_SIGNED_INTENSITY_NV 0x8707
+#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704
+#define GL_SIGNED_LUMINANCE8_NV 0x8702
+#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703
+#define GL_SIGNED_LUMINANCE_NV 0x8701
+#define GL_SIGNED_NEGATE_NV 0x853D
+#define GL_SIGNED_NORMALIZED 0x8F9C
+#define GL_SIGNED_RGB8_NV 0x86FF
+#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D
+#define GL_SIGNED_RGBA8_NV 0x86FC
+#define GL_SIGNED_RGBA_NV 0x86FB
+#define GL_SIGNED_RGB_NV 0x86FE
+#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C
+#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC
+#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE
+#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD
+#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF
+#define GL_SINGLE_COLOR_EXT 0x81F9
+#define GL_SKIP_COMPONENTS1_NV -6
+#define GL_SKIP_COMPONENTS2_NV -5
+#define GL_SKIP_COMPONENTS3_NV -4
+#define GL_SKIP_COMPONENTS4_NV -3
+#define GL_SKIP_DECODE_EXT 0x8A4A
+#define GL_SKIP_MISSING_GLYPH_NV 0x90A9
+#define GL_SLICE_ACCUM_SUN 0x85CC
+#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45
+#define GL_SLUMINANCE8_EXT 0x8C47
+#define GL_SLUMINANCE_ALPHA_EXT 0x8C44
+#define GL_SLUMINANCE_EXT 0x8C46
+#define GL_SMALL_CCW_ARC_TO_NV 0x12
+#define GL_SMALL_CW_ARC_TO_NV 0x14
+#define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10
+#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
+#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
+#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
+#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
+#define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E
+#define GL_SM_COUNT_NV 0x933B
+#define GL_SOFTLIGHT_KHR 0x929C
+#define GL_SOFTLIGHT_NV 0x929C
+#define GL_SOURCE0_ALPHA_ARB 0x8588
+#define GL_SOURCE0_ALPHA_EXT 0x8588
+#define GL_SOURCE0_RGB_ARB 0x8580
+#define GL_SOURCE0_RGB_EXT 0x8580
+#define GL_SOURCE1_ALPHA 0x8589
+#define GL_SOURCE1_ALPHA_ARB 0x8589
+#define GL_SOURCE1_ALPHA_EXT 0x8589
+#define GL_SOURCE1_RGB_ARB 0x8581
+#define GL_SOURCE1_RGB_EXT 0x8581
+#define GL_SOURCE2_ALPHA_ARB 0x858A
+#define GL_SOURCE2_ALPHA_EXT 0x858A
+#define GL_SOURCE2_RGB_ARB 0x8582
+#define GL_SOURCE2_RGB_EXT 0x8582
+#define GL_SOURCE3_ALPHA_NV 0x858B
+#define GL_SOURCE3_RGB_NV 0x8583
+#define GL_SPARE0_NV 0x852E
+#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532
+#define GL_SPARE1_NV 0x852F
+#define GL_SPARSE_BUFFER_PAGE_SIZE_ARB 0x82F8
+#define GL_SPARSE_STORAGE_BIT_ARB 0x0400
+#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB 0x91A9
+#define GL_SPIR_V_BINARY 0x9552
+#define GL_SPIR_V_BINARY_ARB 0x9552
+#define GL_SPIR_V_EXTENSIONS 0x9553
+#define GL_SPRITE_AXIAL_SGIX 0x814C
+#define GL_SPRITE_AXIS_SGIX 0x814A
+#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E
+#define GL_SPRITE_MODE_SGIX 0x8149
+#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D
+#define GL_SPRITE_SGIX 0x8148
+#define GL_SPRITE_TRANSLATION_SGIX 0x814B
+#define GL_SQUARE_NV 0x90A3
+#define GL_SR8_EXT 0x8FBD
+#define GL_SRC1_ALPHA 0x8589
+#define GL_SRC1_COLOR 0x88F9
+#define GL_SRC_ALPHA 0x0302
+#define GL_SRC_ALPHA_SATURATE 0x0308
+#define GL_SRC_ATOP_NV 0x928E
+#define GL_SRC_COLOR 0x0300
+#define GL_SRC_IN_NV 0x928A
+#define GL_SRC_NV 0x9286
+#define GL_SRC_OUT_NV 0x928C
+#define GL_SRC_OVER_NV 0x9288
+#define GL_SRG8_EXT 0x8FBE
+#define GL_SRGB 0x8C40
+#define GL_SRGB8 0x8C41
+#define GL_SRGB8_ALPHA8 0x8C43
+#define GL_SRGB8_ALPHA8_EXT 0x8C43
+#define GL_SRGB8_EXT 0x8C41
+#define GL_SRGB_ALPHA 0x8C42
+#define GL_SRGB_ALPHA_EXT 0x8C42
+#define GL_SRGB_DECODE_ARB 0x8299
+#define GL_SRGB_EXT 0x8C40
+#define GL_SRGB_READ 0x8297
+#define GL_SRGB_WRITE 0x8298
+#define GL_STACK_OVERFLOW 0x0503
+#define GL_STACK_UNDERFLOW 0x0504
+#define GL_STANDARD_FONT_FORMAT_NV 0x936C
+#define GL_STANDARD_FONT_NAME_NV 0x9072
+#define GL_STATIC_ATI 0x8760
+#define GL_STATIC_COPY 0x88E6
+#define GL_STATIC_COPY_ARB 0x88E6
+#define GL_STATIC_DRAW 0x88E4
+#define GL_STATIC_DRAW_ARB 0x88E4
+#define GL_STATIC_READ 0x88E5
+#define GL_STATIC_READ_ARB 0x88E5
+#define GL_STATIC_VERTEX_ARRAY_IBM 103061
+#define GL_STENCIL 0x1802
+#define GL_STENCIL_ATTACHMENT 0x8D20
+#define GL_STENCIL_ATTACHMENT_EXT 0x8D20
+#define GL_STENCIL_BACK_FAIL 0x8801
+#define GL_STENCIL_BACK_FAIL_ATI 0x8801
+#define GL_STENCIL_BACK_FUNC 0x8800
+#define GL_STENCIL_BACK_FUNC_ATI 0x8800
+#define GL_STENCIL_BACK_OP_VALUE_AMD 0x874D
+#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
+#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802
+#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
+#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803
+#define GL_STENCIL_BACK_REF 0x8CA3
+#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
+#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
+#define GL_STENCIL_BUFFER_BIT 0x00000400
+#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3
+#define GL_STENCIL_CLEAR_VALUE 0x0B91
+#define GL_STENCIL_COMPONENTS 0x8285
+#define GL_STENCIL_FAIL 0x0B94
+#define GL_STENCIL_FUNC 0x0B92
+#define GL_STENCIL_INDEX 0x1901
+#define GL_STENCIL_INDEX1 0x8D46
+#define GL_STENCIL_INDEX16 0x8D49
+#define GL_STENCIL_INDEX16_EXT 0x8D49
+#define GL_STENCIL_INDEX1_EXT 0x8D46
+#define GL_STENCIL_INDEX4 0x8D47
+#define GL_STENCIL_INDEX4_EXT 0x8D47
+#define GL_STENCIL_INDEX8 0x8D48
+#define GL_STENCIL_INDEX8_EXT 0x8D48
+#define GL_STENCIL_OP_VALUE_AMD 0x874C
+#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
+#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
+#define GL_STENCIL_REF 0x0B97
+#define GL_STENCIL_REF_COMMAND_NV 0x000C
+#define GL_STENCIL_RENDERABLE 0x8288
+#define GL_STENCIL_SAMPLES_NV 0x932E
+#define GL_STENCIL_TAG_BITS_EXT 0x88F2
+#define GL_STENCIL_TEST 0x0B90
+#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910
+#define GL_STENCIL_VALUE_MASK 0x0B93
+#define GL_STENCIL_WRITEMASK 0x0B98
+#define GL_STEREO 0x0C33
+#define GL_STORAGE_CACHED_APPLE 0x85BE
+#define GL_STORAGE_CLIENT_APPLE 0x85B4
+#define GL_STORAGE_PRIVATE_APPLE 0x85BD
+#define GL_STORAGE_SHARED_APPLE 0x85BF
+#define GL_STREAM_COPY 0x88E2
+#define GL_STREAM_COPY_ARB 0x88E2
+#define GL_STREAM_DRAW 0x88E0
+#define GL_STREAM_DRAW_ARB 0x88E0
+#define GL_STREAM_RASTERIZATION_AMD 0x91A0
+#define GL_STREAM_READ 0x88E1
+#define GL_STREAM_READ_ARB 0x88E1
+#define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216
+#define GL_STRICT_LIGHTING_HINT_PGI 0x1A217
+#define GL_STRICT_SCISSOR_HINT_PGI 0x1A218
+#define GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR 0x00000004
+#define GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR 0x00000008
+#define GL_SUBGROUP_FEATURE_BASIC_BIT_KHR 0x00000001
+#define GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR 0x00000040
+#define GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV 0x00000100
+#define GL_SUBGROUP_FEATURE_QUAD_BIT_KHR 0x00000080
+#define GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR 0x00000010
+#define GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR 0x00000020
+#define GL_SUBGROUP_FEATURE_VOTE_BIT_KHR 0x00000002
+#define GL_SUBGROUP_QUAD_ALL_STAGES_KHR 0x9535
+#define GL_SUBGROUP_SIZE_KHR 0x9532
+#define GL_SUBGROUP_SUPPORTED_FEATURES_KHR 0x9534
+#define GL_SUBGROUP_SUPPORTED_STAGES_KHR 0x9533
+#define GL_SUBPIXEL_BITS 0x0D50
+#define GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV 0x9347
+#define GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV 0x9348
+#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F
+#define GL_SUBTRACT_ARB 0x84E7
+#define GL_SUB_ATI 0x8965
+#define GL_SUCCESS_NV 0x902F
+#define GL_SUPERSAMPLE_SCALE_X_NV 0x9372
+#define GL_SUPERSAMPLE_SCALE_Y_NV 0x9373
+#define GL_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B7
+#define GL_SURFACE_MAPPED_NV 0x8700
+#define GL_SURFACE_REGISTERED_NV 0x86FD
+#define GL_SURFACE_STATE_NV 0x86EB
+#define GL_SWIZZLE_STQ_ATI 0x8977
+#define GL_SWIZZLE_STQ_DQ_ATI 0x8979
+#define GL_SWIZZLE_STRQ_ATI 0x897A
+#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B
+#define GL_SWIZZLE_STR_ATI 0x8976
+#define GL_SWIZZLE_STR_DR_ATI 0x8978
+#define GL_SYNC_CL_EVENT_ARB 0x8240
+#define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241
+#define GL_SYNC_CONDITION 0x9113
+#define GL_SYNC_FENCE 0x9116
+#define GL_SYNC_FLAGS 0x9115
+#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
+#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
+#define GL_SYNC_STATUS 0x9114
+#define GL_SYNC_X11_FENCE_EXT 0x90E1
+#define GL_SYSTEM_FONT_NAME_NV 0x9073
+#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3
+#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4
+#define GL_T2F_IUI_V2F_EXT 0x81B1
+#define GL_T2F_IUI_V3F_EXT 0x81B2
+#define GL_TABLE_TOO_LARGE_EXT 0x8031
+#define GL_TANGENT_ARRAY_EXT 0x8439
+#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442
+#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F
+#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E
+#define GL_TASK_SHADER_BIT_NV 0x00000080
+#define GL_TASK_SHADER_NV 0x955A
+#define GL_TASK_SUBROUTINE_NV 0x957D
+#define GL_TASK_SUBROUTINE_UNIFORM_NV 0x957F
+#define GL_TASK_WORK_GROUP_SIZE_NV 0x953F
+#define GL_TERMINATE_SEQUENCE_COMMAND_NV 0x0000
+#define GL_TESSELLATION_FACTOR_AMD 0x9005
+#define GL_TESSELLATION_MODE_AMD 0x9004
+#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75
+#define GL_TESS_CONTROL_PROGRAM_NV 0x891E
+#define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74
+#define GL_TESS_CONTROL_SHADER 0x8E88
+#define GL_TESS_CONTROL_SHADER_BIT 0x00000008
+#define GL_TESS_CONTROL_SHADER_PATCHES 0x82F1
+#define GL_TESS_CONTROL_SHADER_PATCHES_ARB 0x82F1
+#define GL_TESS_CONTROL_SUBROUTINE 0x92E9
+#define GL_TESS_CONTROL_SUBROUTINE_UNIFORM 0x92EF
+#define GL_TESS_CONTROL_TEXTURE 0x829C
+#define GL_TESS_EVALUATION_PROGRAM_NV 0x891F
+#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75
+#define GL_TESS_EVALUATION_SHADER 0x8E87
+#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010
+#define GL_TESS_EVALUATION_SHADER_INVOCATIONS 0x82F2
+#define GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB 0x82F2
+#define GL_TESS_EVALUATION_SUBROUTINE 0x92EA
+#define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM 0x92F0
+#define GL_TESS_EVALUATION_TEXTURE 0x829D
+#define GL_TESS_GEN_MODE 0x8E76
+#define GL_TESS_GEN_POINT_MODE 0x8E79
+#define GL_TESS_GEN_SPACING 0x8E77
+#define GL_TESS_GEN_VERTEX_ORDER 0x8E78
+#define GL_TEXCOORD1_BIT_PGI 0x10000000
+#define GL_TEXCOORD2_BIT_PGI 0x20000000
+#define GL_TEXCOORD3_BIT_PGI 0x40000000
+#define GL_TEXCOORD4_BIT_PGI 0x80000000
+#define GL_TEXTURE 0x1702
+#define GL_TEXTURE0 0x84C0
+#define GL_TEXTURE0_ARB 0x84C0
+#define GL_TEXTURE1 0x84C1
+#define GL_TEXTURE10 0x84CA
+#define GL_TEXTURE10_ARB 0x84CA
+#define GL_TEXTURE11 0x84CB
+#define GL_TEXTURE11_ARB 0x84CB
+#define GL_TEXTURE12 0x84CC
+#define GL_TEXTURE12_ARB 0x84CC
+#define GL_TEXTURE13 0x84CD
+#define GL_TEXTURE13_ARB 0x84CD
+#define GL_TEXTURE14 0x84CE
+#define GL_TEXTURE14_ARB 0x84CE
+#define GL_TEXTURE15 0x84CF
+#define GL_TEXTURE15_ARB 0x84CF
+#define GL_TEXTURE16 0x84D0
+#define GL_TEXTURE16_ARB 0x84D0
+#define GL_TEXTURE17 0x84D1
+#define GL_TEXTURE17_ARB 0x84D1
+#define GL_TEXTURE18 0x84D2
+#define GL_TEXTURE18_ARB 0x84D2
+#define GL_TEXTURE19 0x84D3
+#define GL_TEXTURE19_ARB 0x84D3
+#define GL_TEXTURE1_ARB 0x84C1
+#define GL_TEXTURE2 0x84C2
+#define GL_TEXTURE20 0x84D4
+#define GL_TEXTURE20_ARB 0x84D4
+#define GL_TEXTURE21 0x84D5
+#define GL_TEXTURE21_ARB 0x84D5
+#define GL_TEXTURE22 0x84D6
+#define GL_TEXTURE22_ARB 0x84D6
+#define GL_TEXTURE23 0x84D7
+#define GL_TEXTURE23_ARB 0x84D7
+#define GL_TEXTURE24 0x84D8
+#define GL_TEXTURE24_ARB 0x84D8
+#define GL_TEXTURE25 0x84D9
+#define GL_TEXTURE25_ARB 0x84D9
+#define GL_TEXTURE26 0x84DA
+#define GL_TEXTURE26_ARB 0x84DA
+#define GL_TEXTURE27 0x84DB
+#define GL_TEXTURE27_ARB 0x84DB
+#define GL_TEXTURE28 0x84DC
+#define GL_TEXTURE28_ARB 0x84DC
+#define GL_TEXTURE29 0x84DD
+#define GL_TEXTURE29_ARB 0x84DD
+#define GL_TEXTURE2_ARB 0x84C2
+#define GL_TEXTURE3 0x84C3
+#define GL_TEXTURE30 0x84DE
+#define GL_TEXTURE30_ARB 0x84DE
+#define GL_TEXTURE31 0x84DF
+#define GL_TEXTURE31_ARB 0x84DF
+#define GL_TEXTURE3_ARB 0x84C3
+#define GL_TEXTURE4 0x84C4
+#define GL_TEXTURE4_ARB 0x84C4
+#define GL_TEXTURE5 0x84C5
+#define GL_TEXTURE5_ARB 0x84C5
+#define GL_TEXTURE6 0x84C6
+#define GL_TEXTURE6_ARB 0x84C6
+#define GL_TEXTURE7 0x84C7
+#define GL_TEXTURE7_ARB 0x84C7
+#define GL_TEXTURE8 0x84C8
+#define GL_TEXTURE8_ARB 0x84C8
+#define GL_TEXTURE9 0x84C9
+#define GL_TEXTURE9_ARB 0x84C9
+#define GL_TEXTURE_1D 0x0DE0
+#define GL_TEXTURE_1D_ARRAY 0x8C18
+#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18
+#define GL_TEXTURE_1D_BINDING_EXT 0x8068
+#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D
+#define GL_TEXTURE_1D_STACK_MESAX 0x8759
+#define GL_TEXTURE_2D 0x0DE1
+#define GL_TEXTURE_2D_ARRAY 0x8C1A
+#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A
+#define GL_TEXTURE_2D_BINDING_EXT 0x8069
+#define GL_TEXTURE_2D_MULTISAMPLE 0x9100
+#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
+#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E
+#define GL_TEXTURE_2D_STACK_MESAX 0x875A
+#define GL_TEXTURE_3D 0x806F
+#define GL_TEXTURE_3D_BINDING_EXT 0x806A
+#define GL_TEXTURE_3D_EXT 0x806F
+#define GL_TEXTURE_4DSIZE_SGIS 0x8136
+#define GL_TEXTURE_4D_BINDING_SGIS 0x814F
+#define GL_TEXTURE_4D_SGIS 0x8134
+#define GL_TEXTURE_ALPHA_SIZE 0x805F
+#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F
+#define GL_TEXTURE_ALPHA_TYPE 0x8C13
+#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13
+#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F
+#define GL_TEXTURE_BASE_LEVEL 0x813C
+#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C
+#define GL_TEXTURE_BINDING_1D 0x8068
+#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C
+#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C
+#define GL_TEXTURE_BINDING_2D 0x8069
+#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D
+#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D
+#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104
+#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105
+#define GL_TEXTURE_BINDING_3D 0x806A
+#define GL_TEXTURE_BINDING_BUFFER 0x8C2C
+#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C
+#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C
+#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A
+#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514
+#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6
+#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6
+#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6
+#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53
+#define GL_TEXTURE_BLUE_SIZE 0x805E
+#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E
+#define GL_TEXTURE_BLUE_TYPE 0x8C12
+#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12
+#define GL_TEXTURE_BORDER_COLOR 0x1004
+#define GL_TEXTURE_BORDER_VALUES_NV 0x871A
+#define GL_TEXTURE_BUFFER 0x8C2A
+#define GL_TEXTURE_BUFFER_ARB 0x8C2A
+#define GL_TEXTURE_BUFFER_BINDING 0x8C2A
+#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D
+#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D
+#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D
+#define GL_TEXTURE_BUFFER_EXT 0x8C2A
+#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E
+#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E
+#define GL_TEXTURE_BUFFER_OFFSET 0x919D
+#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F
+#define GL_TEXTURE_BUFFER_SIZE 0x919E
+#define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171
+#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176
+#define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172
+#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175
+#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173
+#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174
+#define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046
+#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC
+#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF
+#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF
+#define GL_TEXTURE_COMPARE_FUNC 0x884D
+#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D
+#define GL_TEXTURE_COMPARE_MODE 0x884C
+#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C
+#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B
+#define GL_TEXTURE_COMPARE_SGIX 0x819A
+#define GL_TEXTURE_COMPRESSED 0x86A1
+#define GL_TEXTURE_COMPRESSED_ARB 0x86A1
+#define GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2
+#define GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3
+#define GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1
+#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
+#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0
+#define GL_TEXTURE_COMPRESSION_HINT 0x84EF
+#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF
+#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6
+#define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25
+#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A
+#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B
+#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078
+#define GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F
+#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074
+#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084
+#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8
+#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092
+#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088
+#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A
+#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089
+#define GL_TEXTURE_COORD_NV 0x8C79
+#define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045
+#define GL_TEXTURE_CUBE_MAP 0x8513
+#define GL_TEXTURE_CUBE_MAP_ARB 0x8513
+#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009
+#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009
+#define GL_TEXTURE_CUBE_MAP_EXT 0x8513
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519
+#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
+#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001
+#define GL_TEXTURE_DEFORMATION_SGIX 0x8195
+#define GL_TEXTURE_DEPTH 0x8071
+#define GL_TEXTURE_DEPTH_EXT 0x8071
+#define GL_TEXTURE_DEPTH_SIZE 0x884A
+#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A
+#define GL_TEXTURE_DEPTH_TYPE 0x8C16
+#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16
+#define GL_TEXTURE_DS_SIZE_NV 0x871D
+#define GL_TEXTURE_DT_SIZE_NV 0x871E
+#define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE
+#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008
+#define GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008
+#define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147
+#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500
+#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107
+#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C
+#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC
+#define GL_TEXTURE_GATHER 0x82A2
+#define GL_TEXTURE_GATHER_SHADOW 0x82A3
+#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D
+#define GL_TEXTURE_GREEN_SIZE 0x805D
+#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D
+#define GL_TEXTURE_GREEN_TYPE 0x8C11
+#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11
+#define GL_TEXTURE_HEIGHT 0x1001
+#define GL_TEXTURE_HI_SIZE_NV 0x871B
+#define GL_TEXTURE_IMAGE_FORMAT 0x828F
+#define GL_TEXTURE_IMAGE_TYPE 0x8290
+#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F
+#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F
+#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
+#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED
+#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061
+#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15
+#define GL_TEXTURE_INTERNAL_FORMAT 0x1003
+#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C
+#define GL_TEXTURE_LIGHTING_MODE_HP 0x8167
+#define GL_TEXTURE_LIGHT_EXT 0x8350
+#define GL_TEXTURE_LOD_BIAS 0x8501
+#define GL_TEXTURE_LOD_BIAS_EXT 0x8501
+#define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190
+#define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E
+#define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F
+#define GL_TEXTURE_LO_SIZE_NV 0x871C
+#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060
+#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14
+#define GL_TEXTURE_MAG_FILTER 0x2800
+#define GL_TEXTURE_MAG_SIZE_NV 0x871F
+#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351
+#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352
+#define GL_TEXTURE_MAX_ANISOTROPY 0x84FE
+#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
+#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B
+#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369
+#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A
+#define GL_TEXTURE_MAX_LEVEL 0x813D
+#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D
+#define GL_TEXTURE_MAX_LOD 0x813B
+#define GL_TEXTURE_MAX_LOD_SGIS 0x813B
+#define GL_TEXTURE_MEMORY_LAYOUT_INTEL 0x83FF
+#define GL_TEXTURE_MIN_FILTER 0x2801
+#define GL_TEXTURE_MIN_LOD 0x813A
+#define GL_TEXTURE_MIN_LOD_SGIS 0x813A
+#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E
+#define GL_TEXTURE_NORMAL_EXT 0x85AF
+#define GL_TEXTURE_POST_SPECULAR_HP 0x8168
+#define GL_TEXTURE_PRE_SPECULAR_HP 0x8169
+#define GL_TEXTURE_PRIORITY_EXT 0x8066
+#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7
+#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8
+#define GL_TEXTURE_RECTANGLE 0x84F5
+#define GL_TEXTURE_RECTANGLE_ARB 0x84F5
+#define GL_TEXTURE_RECTANGLE_NV 0x84F5
+#define GL_TEXTURE_REDUCTION_MODE_ARB 0x9366
+#define GL_TEXTURE_REDUCTION_MODE_EXT 0x9366
+#define GL_TEXTURE_RED_SIZE 0x805C
+#define GL_TEXTURE_RED_SIZE_EXT 0x805C
+#define GL_TEXTURE_RED_TYPE 0x8C10
+#define GL_TEXTURE_RED_TYPE_ARB 0x8C10
+#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54
+#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55
+#define GL_TEXTURE_RESIDENT_EXT 0x8067
+#define GL_TEXTURE_SAMPLES 0x9106
+#define GL_TEXTURE_SHADER_NV 0x86DE
+#define GL_TEXTURE_SHADOW 0x82A1
+#define GL_TEXTURE_SHARED_SIZE 0x8C3F
+#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F
+#define GL_TEXTURE_SPARSE_ARB 0x91A6
+#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48
+#define GL_TEXTURE_STENCIL_SIZE 0x88F1
+#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1
+#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC
+#define GL_TEXTURE_STORAGE_SPARSE_BIT_AMD 0x00000001
+#define GL_TEXTURE_SWIZZLE_A 0x8E45
+#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45
+#define GL_TEXTURE_SWIZZLE_B 0x8E44
+#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44
+#define GL_TEXTURE_SWIZZLE_G 0x8E43
+#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43
+#define GL_TEXTURE_SWIZZLE_R 0x8E42
+#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46
+#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46
+#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42
+#define GL_TEXTURE_TARGET 0x1006
+#define GL_TEXTURE_TILING_EXT 0x9580
+#define GL_TEXTURE_TOO_LARGE_EXT 0x8065
+#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F
+#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100
+#define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100
+#define GL_TEXTURE_VIEW 0x82B5
+#define GL_TEXTURE_VIEW_MIN_LAYER 0x82DD
+#define GL_TEXTURE_VIEW_MIN_LEVEL 0x82DB
+#define GL_TEXTURE_VIEW_NUM_LAYERS 0x82DE
+#define GL_TEXTURE_VIEW_NUM_LEVELS 0x82DC
+#define GL_TEXTURE_WIDTH 0x1000
+#define GL_TEXTURE_WRAP_Q_SGIS 0x8137
+#define GL_TEXTURE_WRAP_R 0x8072
+#define GL_TEXTURE_WRAP_R_EXT 0x8072
+#define GL_TEXTURE_WRAP_S 0x2802
+#define GL_TEXTURE_WRAP_T 0x2803
+#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200
+#define GL_TILE_RASTER_ORDER_FIXED_MESA 0x8BB8
+#define GL_TILE_RASTER_ORDER_INCREASING_X_MESA 0x8BB9
+#define GL_TILE_RASTER_ORDER_INCREASING_Y_MESA 0x8BBA
+#define GL_TILING_TYPES_EXT 0x9583
+#define GL_TIMELINE_SEMAPHORE_VALUE_NV 0x9595
+#define GL_TIMEOUT_EXPIRED 0x911B
+#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF
+#define GL_TIMESTAMP 0x8E28
+#define GL_TIME_ELAPSED 0x88BF
+#define GL_TIME_ELAPSED_EXT 0x88BF
+#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C
+#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D
+#define GL_TRACK_MATRIX_NV 0x8648
+#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649
+#define GL_TRANSFORM_FEEDBACK 0x8E22
+#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24
+#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E
+#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800
+#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800
+#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25
+#define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25
+#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E
+#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24
+#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24
+#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F
+#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F
+#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F
+#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E
+#define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B
+#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F
+#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F
+#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F
+#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E
+#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23
+#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23
+#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85
+#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85
+#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85
+#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84
+#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84
+#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84
+#define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C
+#define GL_TRANSFORM_FEEDBACK_NV 0x8E22
+#define GL_TRANSFORM_FEEDBACK_OVERFLOW 0x82EC
+#define GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB 0x82EC
+#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23
+#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88
+#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88
+#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88
+#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86
+#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW 0x82ED
+#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB 0x82ED
+#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4
+#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83
+#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83
+#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83
+#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76
+#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76
+#define GL_TRANSFORM_HINT_APPLE 0x85B1
+#define GL_TRANSLATE_2D_NV 0x9090
+#define GL_TRANSLATE_3D_NV 0x9091
+#define GL_TRANSLATE_X_NV 0x908E
+#define GL_TRANSLATE_Y_NV 0x908F
+#define GL_TRANSPOSE_AFFINE_2D_NV 0x9096
+#define GL_TRANSPOSE_AFFINE_3D_NV 0x9098
+#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6
+#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7
+#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3
+#define GL_TRANSPOSE_NV 0x862C
+#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E
+#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4
+#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5
+#define GL_TRIANGLES 0x0004
+#define GL_TRIANGLES_ADJACENCY 0x000C
+#define GL_TRIANGLES_ADJACENCY_ARB 0x000C
+#define GL_TRIANGLES_ADJACENCY_EXT 0x000C
+#define GL_TRIANGLE_FAN 0x0006
+#define GL_TRIANGLE_LIST_SUN 0x81D7
+#define GL_TRIANGLE_MESH_SUN 0x8615
+#define GL_TRIANGLE_STRIP 0x0005
+#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D
+#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0x000D
+#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D
+#define GL_TRIANGULAR_NV 0x90A5
+#define GL_TRUE 1
+#define GL_TYPE 0x92FA
+#define GL_UNCORRELATED_NV 0x9282
+#define GL_UNDEFINED_APPLE 0x8A1C
+#define GL_UNDEFINED_VERTEX 0x8260
+#define GL_UNIFORM 0x92E1
+#define GL_UNIFORM_ADDRESS_COMMAND_NV 0x000A
+#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C
+#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA
+#define GL_UNIFORM_BARRIER_BIT 0x00000004
+#define GL_UNIFORM_BARRIER_BIT_EXT 0x00000004
+#define GL_UNIFORM_BLOCK 0x92E2
+#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42
+#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43
+#define GL_UNIFORM_BLOCK_BINDING 0x8A3F
+#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40
+#define GL_UNIFORM_BLOCK_INDEX 0x8A3A
+#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER 0x90EC
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV 0x959C
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV 0x959D
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
+#define GL_UNIFORM_BUFFER 0x8A11
+#define GL_UNIFORM_BUFFER_ADDRESS_NV 0x936F
+#define GL_UNIFORM_BUFFER_BINDING 0x8A28
+#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF
+#define GL_UNIFORM_BUFFER_EXT 0x8DEE
+#define GL_UNIFORM_BUFFER_LENGTH_NV 0x9370
+#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34
+#define GL_UNIFORM_BUFFER_SIZE 0x8A2A
+#define GL_UNIFORM_BUFFER_START 0x8A29
+#define GL_UNIFORM_BUFFER_UNIFIED_NV 0x936E
+#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E
+#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D
+#define GL_UNIFORM_NAME_LENGTH 0x8A39
+#define GL_UNIFORM_OFFSET 0x8A3B
+#define GL_UNIFORM_SIZE 0x8A38
+#define GL_UNIFORM_TYPE 0x8A37
+#define GL_UNKNOWN_CONTEXT_RESET 0x8255
+#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255
+#define GL_UNPACK_ALIGNMENT 0x0CF5
+#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2
+#define GL_UNPACK_CMYK_HINT_EXT 0x800F
+#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129
+#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128
+#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A
+#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127
+#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5
+#define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133
+#define GL_UNPACK_IMAGE_HEIGHT 0x806E
+#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E
+#define GL_UNPACK_LSB_FIRST 0x0CF1
+#define GL_UNPACK_RESAMPLE_OML 0x8985
+#define GL_UNPACK_RESAMPLE_SGIX 0x842F
+#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16
+#define GL_UNPACK_ROW_LENGTH 0x0CF2
+#define GL_UNPACK_SKIP_IMAGES 0x806D
+#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D
+#define GL_UNPACK_SKIP_PIXELS 0x0CF4
+#define GL_UNPACK_SKIP_ROWS 0x0CF3
+#define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132
+#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1
+#define GL_UNPACK_SWAP_BYTES 0x0CF0
+#define GL_UNSIGNALED 0x9118
+#define GL_UNSIGNED_BYTE 0x1401
+#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
+#define GL_UNSIGNED_BYTE_3_3_2 0x8032
+#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032
+#define GL_UNSIGNED_IDENTITY_NV 0x8536
+#define GL_UNSIGNED_INT 0x1405
+#define GL_UNSIGNED_INT16_NV 0x8FF0
+#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1
+#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2
+#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3
+#define GL_UNSIGNED_INT64_AMD 0x8BC2
+#define GL_UNSIGNED_INT64_ARB 0x140F
+#define GL_UNSIGNED_INT64_NV 0x140F
+#define GL_UNSIGNED_INT64_VEC2_ARB 0x8FF5
+#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5
+#define GL_UNSIGNED_INT64_VEC3_ARB 0x8FF6
+#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6
+#define GL_UNSIGNED_INT64_VEC4_ARB 0x8FF7
+#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7
+#define GL_UNSIGNED_INT8_NV 0x8FEC
+#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED
+#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE
+#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF
+#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
+#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B
+#define GL_UNSIGNED_INT_10_10_10_2 0x8036
+#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036
+#define GL_UNSIGNED_INT_24_8 0x84FA
+#define GL_UNSIGNED_INT_24_8_EXT 0x84FA
+#define GL_UNSIGNED_INT_24_8_NV 0x84FA
+#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
+#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E
+#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E
+#define GL_UNSIGNED_INT_8_8_8_8 0x8035
+#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035
+#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
+#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB
+#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB
+#define GL_UNSIGNED_INT_IMAGE_1D 0x9062
+#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068
+#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068
+#define GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062
+#define GL_UNSIGNED_INT_IMAGE_2D 0x9063
+#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069
+#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069
+#define GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063
+#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B
+#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C
+#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C
+#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B
+#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065
+#define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065
+#define GL_UNSIGNED_INT_IMAGE_3D 0x9064
+#define GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064
+#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067
+#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067
+#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066
+#define GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066
+#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A
+#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A
+#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA
+#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1
+#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6
+#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6
+#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1
+#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2
+#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7
+#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7
+#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2
+#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A
+#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
+#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5
+#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5
+#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3
+#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3
+#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8
+#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003
+#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8
+#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4
+#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4
+#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F
+#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F
+#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58
+#define GL_UNSIGNED_INT_VEC2 0x8DC6
+#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6
+#define GL_UNSIGNED_INT_VEC3 0x8DC7
+#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7
+#define GL_UNSIGNED_INT_VEC4 0x8DC8
+#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8
+#define GL_UNSIGNED_INVERT_NV 0x8537
+#define GL_UNSIGNED_NORMALIZED 0x8C17
+#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17
+#define GL_UNSIGNED_SHORT 0x1403
+#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
+#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
+#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033
+#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
+#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
+#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034
+#define GL_UNSIGNED_SHORT_5_6_5 0x8363
+#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
+#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA
+#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA
+#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB
+#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB
+#define GL_UPLOAD_GPU_MASK_NVX 0x954A
+#define GL_UPPER_LEFT 0x8CA2
+#define GL_USE_MISSING_GLYPH_NV 0x90AA
+#define GL_UTF16_NV 0x909B
+#define GL_UTF8_NV 0x909A
+#define GL_UUID_SIZE_EXT 16
+#define GL_VALIDATE_STATUS 0x8B83
+#define GL_VARIABLE_A_NV 0x8523
+#define GL_VARIABLE_B_NV 0x8524
+#define GL_VARIABLE_C_NV 0x8525
+#define GL_VARIABLE_D_NV 0x8526
+#define GL_VARIABLE_E_NV 0x8527
+#define GL_VARIABLE_F_NV 0x8528
+#define GL_VARIABLE_G_NV 0x8529
+#define GL_VARIANT_ARRAY_EXT 0x87E8
+#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9
+#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6
+#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7
+#define GL_VARIANT_DATATYPE_EXT 0x87E5
+#define GL_VARIANT_EXT 0x87C1
+#define GL_VARIANT_VALUE_EXT 0x87E4
+#define GL_VBO_FREE_MEMORY_ATI 0x87FB
+#define GL_VECTOR_EXT 0x87BF
+#define GL_VENDOR 0x1F00
+#define GL_VERSION 0x1F02
+#define GL_VERTEX23_BIT_PGI 0x00000004
+#define GL_VERTEX4_BIT_PGI 0x00000008
+#define GL_VERTEX_ARRAY 0x8074
+#define GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21
+#define GL_VERTEX_ARRAY_BINDING 0x85B5
+#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5
+#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896
+#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D
+#define GL_VERTEX_ARRAY_EXT 0x8074
+#define GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B
+#define GL_VERTEX_ARRAY_LIST_IBM 103070
+#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080
+#define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154
+#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154
+#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5
+#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E
+#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D
+#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E
+#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E
+#define GL_VERTEX_ARRAY_RANGE_NV 0x851D
+#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521
+#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521
+#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F
+#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533
+#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A
+#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F
+#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C
+#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B
+#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650
+#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A
+#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B
+#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C
+#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D
+#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E
+#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F
+#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651
+#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652
+#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653
+#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654
+#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655
+#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656
+#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657
+#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658
+#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659
+#define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20
+#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001
+#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001
+#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
+#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F
+#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE
+#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE
+#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
+#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622
+#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD
+#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD
+#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD
+#define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A
+#define GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E
+#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
+#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A
+#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
+#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645
+#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
+#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623
+#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
+#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624
+#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
+#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625
+#define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E
+#define GL_VERTEX_ATTRIB_BINDING 0x82D4
+#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00
+#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03
+#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05
+#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04
+#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02
+#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01
+#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07
+#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09
+#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08
+#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06
+#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5
+#define GL_VERTEX_BINDING_BUFFER 0x8F4F
+#define GL_VERTEX_BINDING_DIVISOR 0x82D6
+#define GL_VERTEX_BINDING_OFFSET 0x82D7
+#define GL_VERTEX_BINDING_STRIDE 0x82D8
+#define GL_VERTEX_BLEND_ARB 0x86A7
+#define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B
+#define GL_VERTEX_DATA_HINT_PGI 0x1A22A
+#define GL_VERTEX_ELEMENT_SWIZZLE_AMD 0x91A4
+#define GL_VERTEX_ID_NV 0x8C7B
+#define GL_VERTEX_ID_SWIZZLE_AMD 0x91A5
+#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF
+#define GL_VERTEX_PRECLIP_SGIX 0x83EE
+#define GL_VERTEX_PROGRAM_ARB 0x8620
+#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A
+#define GL_VERTEX_PROGRAM_NV 0x8620
+#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2
+#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642
+#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642
+#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642
+#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643
+#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643
+#define GL_VERTEX_SHADER 0x8B31
+#define GL_VERTEX_SHADER_ARB 0x8B31
+#define GL_VERTEX_SHADER_BINDING_EXT 0x8781
+#define GL_VERTEX_SHADER_BIT 0x00000001
+#define GL_VERTEX_SHADER_EXT 0x8780
+#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF
+#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1
+#define GL_VERTEX_SHADER_INVOCATIONS 0x82F0
+#define GL_VERTEX_SHADER_INVOCATIONS_ARB 0x82F0
+#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3
+#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2
+#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4
+#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0
+#define GL_VERTEX_SOURCE_ATI 0x8774
+#define GL_VERTEX_STATE_PROGRAM_NV 0x8621
+#define GL_VERTEX_STREAM0_ATI 0x876C
+#define GL_VERTEX_STREAM1_ATI 0x876D
+#define GL_VERTEX_STREAM2_ATI 0x876E
+#define GL_VERTEX_STREAM3_ATI 0x876F
+#define GL_VERTEX_STREAM4_ATI 0x8770
+#define GL_VERTEX_STREAM5_ATI 0x8771
+#define GL_VERTEX_STREAM6_ATI 0x8772
+#define GL_VERTEX_STREAM7_ATI 0x8773
+#define GL_VERTEX_SUBROUTINE 0x92E8
+#define GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE
+#define GL_VERTEX_TEXTURE 0x829B
+#define GL_VERTEX_WEIGHTING_EXT 0x8509
+#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C
+#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510
+#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D
+#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F
+#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E
+#define GL_VERTICAL_LINE_TO_NV 0x08
+#define GL_VERTICES_SUBMITTED 0x82EE
+#define GL_VERTICES_SUBMITTED_ARB 0x82EE
+#define GL_VIBRANCE_BIAS_NV 0x8719
+#define GL_VIBRANCE_SCALE_NV 0x8713
+#define GL_VIDEO_BUFFER_BINDING_NV 0x9021
+#define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D
+#define GL_VIDEO_BUFFER_NV 0x9020
+#define GL_VIDEO_BUFFER_PITCH_NV 0x9028
+#define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B
+#define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A
+#define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039
+#define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038
+#define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C
+#define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026
+#define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029
+#define GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A
+#define GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B
+#define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C
+#define GL_VIEWPORT 0x0BA2
+#define GL_VIEWPORT_BOUNDS_RANGE 0x825D
+#define GL_VIEWPORT_COMMAND_NV 0x0010
+#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F
+#define GL_VIEWPORT_POSITION_W_SCALE_NV 0x937C
+#define GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV 0x937D
+#define GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV 0x937E
+#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C
+#define GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV 0x9357
+#define GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV 0x9351
+#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV 0x9353
+#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV 0x9355
+#define GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV 0x9356
+#define GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV 0x9350
+#define GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV 0x9352
+#define GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV 0x9354
+#define GL_VIEWPORT_SWIZZLE_W_NV 0x935B
+#define GL_VIEWPORT_SWIZZLE_X_NV 0x9358
+#define GL_VIEWPORT_SWIZZLE_Y_NV 0x9359
+#define GL_VIEWPORT_SWIZZLE_Z_NV 0x935A
+#define GL_VIEW_CLASS_128_BITS 0x82C4
+#define GL_VIEW_CLASS_16_BITS 0x82CA
+#define GL_VIEW_CLASS_24_BITS 0x82C9
+#define GL_VIEW_CLASS_32_BITS 0x82C8
+#define GL_VIEW_CLASS_48_BITS 0x82C7
+#define GL_VIEW_CLASS_64_BITS 0x82C6
+#define GL_VIEW_CLASS_8_BITS 0x82CB
+#define GL_VIEW_CLASS_96_BITS 0x82C5
+#define GL_VIEW_CLASS_ASTC_10x10_RGBA 0x9393
+#define GL_VIEW_CLASS_ASTC_10x5_RGBA 0x9390
+#define GL_VIEW_CLASS_ASTC_10x6_RGBA 0x9391
+#define GL_VIEW_CLASS_ASTC_10x8_RGBA 0x9392
+#define GL_VIEW_CLASS_ASTC_12x10_RGBA 0x9394
+#define GL_VIEW_CLASS_ASTC_12x12_RGBA 0x9395
+#define GL_VIEW_CLASS_ASTC_4x4_RGBA 0x9388
+#define GL_VIEW_CLASS_ASTC_5x4_RGBA 0x9389
+#define GL_VIEW_CLASS_ASTC_5x5_RGBA 0x938A
+#define GL_VIEW_CLASS_ASTC_6x5_RGBA 0x938B
+#define GL_VIEW_CLASS_ASTC_6x6_RGBA 0x938C
+#define GL_VIEW_CLASS_ASTC_8x5_RGBA 0x938D
+#define GL_VIEW_CLASS_ASTC_8x6_RGBA 0x938E
+#define GL_VIEW_CLASS_ASTC_8x8_RGBA 0x938F
+#define GL_VIEW_CLASS_BPTC_FLOAT 0x82D3
+#define GL_VIEW_CLASS_BPTC_UNORM 0x82D2
+#define GL_VIEW_CLASS_EAC_R11 0x9383
+#define GL_VIEW_CLASS_EAC_RG11 0x9384
+#define GL_VIEW_CLASS_ETC2_EAC_RGBA 0x9387
+#define GL_VIEW_CLASS_ETC2_RGB 0x9385
+#define GL_VIEW_CLASS_ETC2_RGBA 0x9386
+#define GL_VIEW_CLASS_RGTC1_RED 0x82D0
+#define GL_VIEW_CLASS_RGTC2_RG 0x82D1
+#define GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC
+#define GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD
+#define GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE
+#define GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF
+#define GL_VIEW_COMPATIBILITY_CLASS 0x82B6
+#define GL_VIRTUAL_PAGE_SIZE_INDEX_ARB 0x91A7
+#define GL_VIRTUAL_PAGE_SIZE_X_AMD 0x9195
+#define GL_VIRTUAL_PAGE_SIZE_X_ARB 0x9195
+#define GL_VIRTUAL_PAGE_SIZE_Y_AMD 0x9196
+#define GL_VIRTUAL_PAGE_SIZE_Y_ARB 0x9196
+#define GL_VIRTUAL_PAGE_SIZE_Z_AMD 0x9197
+#define GL_VIRTUAL_PAGE_SIZE_Z_ARB 0x9197
+#define GL_VIVIDLIGHT_NV 0x92A6
+#define GL_VOLATILE_APPLE 0x8A1A
+#define GL_WAIT_FAILED 0x911D
+#define GL_WARPS_PER_SM_NV 0x933A
+#define GL_WARP_SIZE_NV 0x9339
+#define GL_WEIGHTED_AVERAGE_ARB 0x9367
+#define GL_WEIGHTED_AVERAGE_EXT 0x9367
+#define GL_WEIGHT_ARRAY_ARB 0x86AD
+#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E
+#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC
+#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB
+#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA
+#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9
+#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6
+#define GL_WIDE_LINE_HINT_PGI 0x1A222
+#define GL_WINDOW_RECTANGLE_EXT 0x8F12
+#define GL_WINDOW_RECTANGLE_MODE_EXT 0x8F13
+#define GL_WRAP_BORDER_SUN 0x81D4
+#define GL_WRITE_DISCARD_NV 0x88BE
+#define GL_WRITE_ONLY 0x88B9
+#define GL_WRITE_ONLY_ARB 0x88B9
+#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A
+#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878
+#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C
+#define GL_W_EXT 0x87D8
+#define GL_XOR 0x1506
+#define GL_XOR_NV 0x1506
+#define GL_X_EXT 0x87D5
+#define GL_YCBAYCR8A_4224_NV 0x9032
+#define GL_YCBCR_422_APPLE 0x85B9
+#define GL_YCBCR_MESA 0x8757
+#define GL_YCBYCR8_422_NV 0x9031
+#define GL_YCRCBA_SGIX 0x8319
+#define GL_YCRCB_422_SGIX 0x81BB
+#define GL_YCRCB_444_SGIX 0x81BC
+#define GL_YCRCB_SGIX 0x8318
+#define GL_Y_EXT 0x87D6
+#define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036
+#define GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037
+#define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035
+#define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034
+#define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033
+#define GL_ZERO 0
+#define GL_ZERO_EXT 0x87DD
+#define GL_ZERO_TO_ONE 0x935F
+#define GL_Z_EXT 0x87D7
+
+#include "khrplatform.h"
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef khronos_int8_t GLbyte;
+typedef khronos_uint8_t GLubyte;
+typedef khronos_int16_t GLshort;
+typedef khronos_uint16_t GLushort;
+typedef int GLint;
+typedef unsigned int GLuint;
+typedef khronos_int32_t GLclampx;
+typedef int GLsizei;
+typedef khronos_float_t GLfloat;
+typedef khronos_float_t GLclampf;
+typedef double GLdouble;
+typedef double GLclampd;
+typedef void *GLeglClientBufferEXT;
+typedef void *GLeglImageOES;
+typedef char GLchar;
+typedef char GLcharARB;
+#ifdef __APPLE__
+typedef void *GLhandleARB;
+#else
+typedef unsigned int GLhandleARB;
+#endif
+typedef khronos_uint16_t GLhalf;
+typedef khronos_uint16_t GLhalfARB;
+typedef khronos_int32_t GLfixed;
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && \
+ (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
+typedef khronos_intptr_t GLintptr;
+#else
+typedef khronos_intptr_t GLintptr;
+#endif
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && \
+ (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
+typedef khronos_intptr_t GLintptrARB;
+#else
+typedef khronos_intptr_t GLintptrARB;
+#endif
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && \
+ (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
+typedef khronos_ssize_t GLsizeiptr;
+#else
+typedef khronos_ssize_t GLsizeiptr;
+#endif
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && \
+ (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
+typedef khronos_ssize_t GLsizeiptrARB;
+#else
+typedef khronos_ssize_t GLsizeiptrARB;
+#endif
+typedef khronos_int64_t GLint64;
+typedef khronos_int64_t GLint64EXT;
+typedef khronos_uint64_t GLuint64;
+typedef khronos_uint64_t GLuint64EXT;
+typedef struct __GLsync *GLsync;
+struct _cl_context;
+struct _cl_event;
+typedef void(GLAD_API_PTR *GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity,
+ GLsizei length, const GLchar *message,
+ const void *userParam);
+typedef void(GLAD_API_PTR *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity,
+ GLsizei length, const GLchar *message,
+ const void *userParam);
+typedef void(GLAD_API_PTR *GLDEBUGPROCKHR)(GLenum source, GLenum type, GLuint id, GLenum severity,
+ GLsizei length, const GLchar *message,
+ const void *userParam);
+typedef void(GLAD_API_PTR *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity,
+ GLsizei length, const GLchar *message, void *userParam);
+typedef unsigned short GLhalfNV;
+typedef GLintptr GLvdpauSurfaceNV;
+typedef void(GLAD_API_PTR *GLVULKANPROCNV)(void);
+
+#define GL_VERSION_1_0 1
+#define GL_VERSION_1_1 1
+#define GL_VERSION_1_2 1
+#define GL_VERSION_1_3 1
+#define GL_VERSION_1_4 1
+#define GL_VERSION_1_5 1
+#define GL_VERSION_2_0 1
+#define GL_VERSION_2_1 1
+#define GL_VERSION_3_0 1
+#define GL_VERSION_3_1 1
+#define GL_VERSION_3_2 1
+#define GL_VERSION_3_3 1
+#define GL_VERSION_4_0 1
+#define GL_VERSION_4_1 1
+#define GL_VERSION_4_2 1
+#define GL_VERSION_4_3 1
+#define GL_VERSION_4_4 1
+#define GL_VERSION_4_5 1
+#define GL_VERSION_4_6 1
+#define GL_3DFX_multisample 1
+#define GL_3DFX_tbuffer 1
+#define GL_3DFX_texture_compression_FXT1 1
+#define GL_AMD_blend_minmax_factor 1
+#define GL_AMD_conservative_depth 1
+#define GL_AMD_debug_output 1
+#define GL_AMD_depth_clamp_separate 1
+#define GL_AMD_draw_buffers_blend 1
+#define GL_AMD_framebuffer_multisample_advanced 1
+#define GL_AMD_framebuffer_sample_positions 1
+#define GL_AMD_gcn_shader 1
+#define GL_AMD_gpu_shader_half_float 1
+#define GL_AMD_gpu_shader_int16 1
+#define GL_AMD_gpu_shader_int64 1
+#define GL_AMD_interleaved_elements 1
+#define GL_AMD_multi_draw_indirect 1
+#define GL_AMD_name_gen_delete 1
+#define GL_AMD_occlusion_query_event 1
+#define GL_AMD_performance_monitor 1
+#define GL_AMD_pinned_memory 1
+#define GL_AMD_query_buffer_object 1
+#define GL_AMD_sample_positions 1
+#define GL_AMD_seamless_cubemap_per_texture 1
+#define GL_AMD_shader_atomic_counter_ops 1
+#define GL_AMD_shader_ballot 1
+#define GL_AMD_shader_explicit_vertex_parameter 1
+#define GL_AMD_shader_gpu_shader_half_float_fetch 1
+#define GL_AMD_shader_image_load_store_lod 1
+#define GL_AMD_shader_stencil_export 1
+#define GL_AMD_shader_trinary_minmax 1
+#define GL_AMD_sparse_texture 1
+#define GL_AMD_stencil_operation_extended 1
+#define GL_AMD_texture_gather_bias_lod 1
+#define GL_AMD_texture_texture4 1
+#define GL_AMD_transform_feedback3_lines_triangles 1
+#define GL_AMD_transform_feedback4 1
+#define GL_AMD_vertex_shader_layer 1
+#define GL_AMD_vertex_shader_tessellator 1
+#define GL_AMD_vertex_shader_viewport_index 1
+#define GL_APPLE_aux_depth_stencil 1
+#define GL_APPLE_client_storage 1
+#define GL_APPLE_element_array 1
+#define GL_APPLE_fence 1
+#define GL_APPLE_float_pixels 1
+#define GL_APPLE_flush_buffer_range 1
+#define GL_APPLE_object_purgeable 1
+#define GL_APPLE_rgb_422 1
+#define GL_APPLE_row_bytes 1
+#define GL_APPLE_specular_vector 1
+#define GL_APPLE_texture_range 1
+#define GL_APPLE_transform_hint 1
+#define GL_APPLE_vertex_array_object 1
+#define GL_APPLE_vertex_array_range 1
+#define GL_APPLE_vertex_program_evaluators 1
+#define GL_APPLE_ycbcr_422 1
+#define GL_ARB_ES2_compatibility 1
+#define GL_ARB_ES3_1_compatibility 1
+#define GL_ARB_ES3_2_compatibility 1
+#define GL_ARB_ES3_compatibility 1
+#define GL_ARB_arrays_of_arrays 1
+#define GL_ARB_base_instance 1
+#define GL_ARB_bindless_texture 1
+#define GL_ARB_blend_func_extended 1
+#define GL_ARB_buffer_storage 1
+#define GL_ARB_cl_event 1
+#define GL_ARB_clear_buffer_object 1
+#define GL_ARB_clear_texture 1
+#define GL_ARB_clip_control 1
+#define GL_ARB_color_buffer_float 1
+#define GL_ARB_compatibility 1
+#define GL_ARB_compressed_texture_pixel_storage 1
+#define GL_ARB_compute_shader 1
+#define GL_ARB_compute_variable_group_size 1
+#define GL_ARB_conditional_render_inverted 1
+#define GL_ARB_conservative_depth 1
+#define GL_ARB_copy_buffer 1
+#define GL_ARB_copy_image 1
+#define GL_ARB_cull_distance 1
+#define GL_ARB_debug_output 1
+#define GL_ARB_depth_buffer_float 1
+#define GL_ARB_depth_clamp 1
+#define GL_ARB_depth_texture 1
+#define GL_ARB_derivative_control 1
+#define GL_ARB_direct_state_access 1
+#define GL_ARB_draw_buffers 1
+#define GL_ARB_draw_buffers_blend 1
+#define GL_ARB_draw_elements_base_vertex 1
+#define GL_ARB_draw_indirect 1
+#define GL_ARB_draw_instanced 1
+#define GL_ARB_enhanced_layouts 1
+#define GL_ARB_explicit_attrib_location 1
+#define GL_ARB_explicit_uniform_location 1
+#define GL_ARB_fragment_coord_conventions 1
+#define GL_ARB_fragment_layer_viewport 1
+#define GL_ARB_fragment_program 1
+#define GL_ARB_fragment_program_shadow 1
+#define GL_ARB_fragment_shader 1
+#define GL_ARB_fragment_shader_interlock 1
+#define GL_ARB_framebuffer_no_attachments 1
+#define GL_ARB_framebuffer_object 1
+#define GL_ARB_framebuffer_sRGB 1
+#define GL_ARB_geometry_shader4 1
+#define GL_ARB_get_program_binary 1
+#define GL_ARB_get_texture_sub_image 1
+#define GL_ARB_gl_spirv 1
+#define GL_ARB_gpu_shader5 1
+#define GL_ARB_gpu_shader_fp64 1
+#define GL_ARB_gpu_shader_int64 1
+#define GL_ARB_half_float_pixel 1
+#define GL_ARB_half_float_vertex 1
+#define GL_ARB_imaging 1
+#define GL_ARB_indirect_parameters 1
+#define GL_ARB_instanced_arrays 1
+#define GL_ARB_internalformat_query 1
+#define GL_ARB_internalformat_query2 1
+#define GL_ARB_invalidate_subdata 1
+#define GL_ARB_map_buffer_alignment 1
+#define GL_ARB_map_buffer_range 1
+#define GL_ARB_matrix_palette 1
+#define GL_ARB_multi_bind 1
+#define GL_ARB_multi_draw_indirect 1
+#define GL_ARB_multisample 1
+#define GL_ARB_multitexture 1
+#define GL_ARB_occlusion_query 1
+#define GL_ARB_occlusion_query2 1
+#define GL_ARB_parallel_shader_compile 1
+#define GL_ARB_pipeline_statistics_query 1
+#define GL_ARB_pixel_buffer_object 1
+#define GL_ARB_point_parameters 1
+#define GL_ARB_point_sprite 1
+#define GL_ARB_polygon_offset_clamp 1
+#define GL_ARB_post_depth_coverage 1
+#define GL_ARB_program_interface_query 1
+#define GL_ARB_provoking_vertex 1
+#define GL_ARB_query_buffer_object 1
+#define GL_ARB_robust_buffer_access_behavior 1
+#define GL_ARB_robustness 1
+#define GL_ARB_robustness_isolation 1
+#define GL_ARB_sample_locations 1
+#define GL_ARB_sample_shading 1
+#define GL_ARB_sampler_objects 1
+#define GL_ARB_seamless_cube_map 1
+#define GL_ARB_seamless_cubemap_per_texture 1
+#define GL_ARB_separate_shader_objects 1
+#define GL_ARB_shader_atomic_counter_ops 1
+#define GL_ARB_shader_atomic_counters 1
+#define GL_ARB_shader_ballot 1
+#define GL_ARB_shader_bit_encoding 1
+#define GL_ARB_shader_clock 1
+#define GL_ARB_shader_draw_parameters 1
+#define GL_ARB_shader_group_vote 1
+#define GL_ARB_shader_image_load_store 1
+#define GL_ARB_shader_image_size 1
+#define GL_ARB_shader_objects 1
+#define GL_ARB_shader_precision 1
+#define GL_ARB_shader_stencil_export 1
+#define GL_ARB_shader_storage_buffer_object 1
+#define GL_ARB_shader_subroutine 1
+#define GL_ARB_shader_texture_image_samples 1
+#define GL_ARB_shader_texture_lod 1
+#define GL_ARB_shader_viewport_layer_array 1
+#define GL_ARB_shading_language_100 1
+#define GL_ARB_shading_language_420pack 1
+#define GL_ARB_shading_language_include 1
+#define GL_ARB_shading_language_packing 1
+#define GL_ARB_shadow 1
+#define GL_ARB_shadow_ambient 1
+#define GL_ARB_sparse_buffer 1
+#define GL_ARB_sparse_texture 1
+#define GL_ARB_sparse_texture2 1
+#define GL_ARB_sparse_texture_clamp 1
+#define GL_ARB_spirv_extensions 1
+#define GL_ARB_stencil_texturing 1
+#define GL_ARB_sync 1
+#define GL_ARB_tessellation_shader 1
+#define GL_ARB_texture_barrier 1
+#define GL_ARB_texture_border_clamp 1
+#define GL_ARB_texture_buffer_object 1
+#define GL_ARB_texture_buffer_object_rgb32 1
+#define GL_ARB_texture_buffer_range 1
+#define GL_ARB_texture_compression 1
+#define GL_ARB_texture_compression_bptc 1
+#define GL_ARB_texture_compression_rgtc 1
+#define GL_ARB_texture_cube_map 1
+#define GL_ARB_texture_cube_map_array 1
+#define GL_ARB_texture_env_add 1
+#define GL_ARB_texture_env_combine 1
+#define GL_ARB_texture_env_crossbar 1
+#define GL_ARB_texture_env_dot3 1
+#define GL_ARB_texture_filter_anisotropic 1
+#define GL_ARB_texture_filter_minmax 1
+#define GL_ARB_texture_float 1
+#define GL_ARB_texture_gather 1
+#define GL_ARB_texture_mirror_clamp_to_edge 1
+#define GL_ARB_texture_mirrored_repeat 1
+#define GL_ARB_texture_multisample 1
+#define GL_ARB_texture_non_power_of_two 1
+#define GL_ARB_texture_query_levels 1
+#define GL_ARB_texture_query_lod 1
+#define GL_ARB_texture_rectangle 1
+#define GL_ARB_texture_rg 1
+#define GL_ARB_texture_rgb10_a2ui 1
+#define GL_ARB_texture_stencil8 1
+#define GL_ARB_texture_storage 1
+#define GL_ARB_texture_storage_multisample 1
+#define GL_ARB_texture_swizzle 1
+#define GL_ARB_texture_view 1
+#define GL_ARB_timer_query 1
+#define GL_ARB_transform_feedback2 1
+#define GL_ARB_transform_feedback3 1
+#define GL_ARB_transform_feedback_instanced 1
+#define GL_ARB_transform_feedback_overflow_query 1
+#define GL_ARB_transpose_matrix 1
+#define GL_ARB_uniform_buffer_object 1
+#define GL_ARB_vertex_array_bgra 1
+#define GL_ARB_vertex_array_object 1
+#define GL_ARB_vertex_attrib_64bit 1
+#define GL_ARB_vertex_attrib_binding 1
+#define GL_ARB_vertex_blend 1
+#define GL_ARB_vertex_buffer_object 1
+#define GL_ARB_vertex_program 1
+#define GL_ARB_vertex_shader 1
+#define GL_ARB_vertex_type_10f_11f_11f_rev 1
+#define GL_ARB_vertex_type_2_10_10_10_rev 1
+#define GL_ARB_viewport_array 1
+#define GL_ARB_window_pos 1
+#define GL_ATI_draw_buffers 1
+#define GL_ATI_element_array 1
+#define GL_ATI_envmap_bumpmap 1
+#define GL_ATI_fragment_shader 1
+#define GL_ATI_map_object_buffer 1
+#define GL_ATI_meminfo 1
+#define GL_ATI_pixel_format_float 1
+#define GL_ATI_pn_triangles 1
+#define GL_ATI_separate_stencil 1
+#define GL_ATI_text_fragment_shader 1
+#define GL_ATI_texture_env_combine3 1
+#define GL_ATI_texture_float 1
+#define GL_ATI_texture_mirror_once 1
+#define GL_ATI_vertex_array_object 1
+#define GL_ATI_vertex_attrib_array_object 1
+#define GL_ATI_vertex_streams 1
+#define GL_EXT_422_pixels 1
+#define GL_EXT_EGL_image_storage 1
+#define GL_EXT_EGL_sync 1
+#define GL_EXT_abgr 1
+#define GL_EXT_bgra 1
+#define GL_EXT_bindable_uniform 1
+#define GL_EXT_blend_color 1
+#define GL_EXT_blend_equation_separate 1
+#define GL_EXT_blend_func_separate 1
+#define GL_EXT_blend_logic_op 1
+#define GL_EXT_blend_minmax 1
+#define GL_EXT_blend_subtract 1
+#define GL_EXT_clip_volume_hint 1
+#define GL_EXT_cmyka 1
+#define GL_EXT_color_subtable 1
+#define GL_EXT_compiled_vertex_array 1
+#define GL_EXT_convolution 1
+#define GL_EXT_coordinate_frame 1
+#define GL_EXT_copy_texture 1
+#define GL_EXT_cull_vertex 1
+#define GL_EXT_debug_label 1
+#define GL_EXT_debug_marker 1
+#define GL_EXT_depth_bounds_test 1
+#define GL_EXT_direct_state_access 1
+#define GL_EXT_draw_buffers2 1
+#define GL_EXT_draw_instanced 1
+#define GL_EXT_draw_range_elements 1
+#define GL_EXT_external_buffer 1
+#define GL_EXT_fog_coord 1
+#define GL_EXT_framebuffer_blit 1
+#define GL_EXT_framebuffer_blit_layers 1
+#define GL_EXT_framebuffer_multisample 1
+#define GL_EXT_framebuffer_multisample_blit_scaled 1
+#define GL_EXT_framebuffer_object 1
+#define GL_EXT_framebuffer_sRGB 1
+#define GL_EXT_geometry_shader4 1
+#define GL_EXT_gpu_program_parameters 1
+#define GL_EXT_gpu_shader4 1
+#define GL_EXT_histogram 1
+#define GL_EXT_index_array_formats 1
+#define GL_EXT_index_func 1
+#define GL_EXT_index_material 1
+#define GL_EXT_index_texture 1
+#define GL_EXT_light_texture 1
+#define GL_EXT_memory_object 1
+#define GL_EXT_memory_object_fd 1
+#define GL_EXT_memory_object_win32 1
+#define GL_EXT_misc_attribute 1
+#define GL_EXT_multi_draw_arrays 1
+#define GL_EXT_multisample 1
+#define GL_EXT_multiview_tessellation_geometry_shader 1
+#define GL_EXT_multiview_texture_multisample 1
+#define GL_EXT_multiview_timer_query 1
+#define GL_EXT_packed_depth_stencil 1
+#define GL_EXT_packed_float 1
+#define GL_EXT_packed_pixels 1
+#define GL_EXT_paletted_texture 1
+#define GL_EXT_pixel_buffer_object 1
+#define GL_EXT_pixel_transform 1
+#define GL_EXT_pixel_transform_color_table 1
+#define GL_EXT_point_parameters 1
+#define GL_EXT_polygon_offset 1
+#define GL_EXT_polygon_offset_clamp 1
+#define GL_EXT_post_depth_coverage 1
+#define GL_EXT_provoking_vertex 1
+#define GL_EXT_raster_multisample 1
+#define GL_EXT_rescale_normal 1
+#define GL_EXT_secondary_color 1
+#define GL_EXT_semaphore 1
+#define GL_EXT_semaphore_fd 1
+#define GL_EXT_semaphore_win32 1
+#define GL_EXT_separate_shader_objects 1
+#define GL_EXT_separate_specular_color 1
+#define GL_EXT_shader_framebuffer_fetch 1
+#define GL_EXT_shader_framebuffer_fetch_non_coherent 1
+#define GL_EXT_shader_image_load_formatted 1
+#define GL_EXT_shader_image_load_store 1
+#define GL_EXT_shader_integer_mix 1
+#define GL_EXT_shader_samples_identical 1
+#define GL_EXT_shadow_funcs 1
+#define GL_EXT_shared_texture_palette 1
+#define GL_EXT_sparse_texture2 1
+#define GL_EXT_stencil_clear_tag 1
+#define GL_EXT_stencil_two_side 1
+#define GL_EXT_stencil_wrap 1
+#define GL_EXT_subtexture 1
+#define GL_EXT_texture 1
+#define GL_EXT_texture3D 1
+#define GL_EXT_texture_array 1
+#define GL_EXT_texture_buffer_object 1
+#define GL_EXT_texture_compression_latc 1
+#define GL_EXT_texture_compression_rgtc 1
+#define GL_EXT_texture_compression_s3tc 1
+#define GL_EXT_texture_cube_map 1
+#define GL_EXT_texture_env_add 1
+#define GL_EXT_texture_env_combine 1
+#define GL_EXT_texture_env_dot3 1
+#define GL_EXT_texture_filter_anisotropic 1
+#define GL_EXT_texture_filter_minmax 1
+#define GL_EXT_texture_integer 1
+#define GL_EXT_texture_lod_bias 1
+#define GL_EXT_texture_mirror_clamp 1
+#define GL_EXT_texture_object 1
+#define GL_EXT_texture_perturb_normal 1
+#define GL_EXT_texture_sRGB 1
+#define GL_EXT_texture_sRGB_R8 1
+#define GL_EXT_texture_sRGB_RG8 1
+#define GL_EXT_texture_sRGB_decode 1
+#define GL_EXT_texture_shadow_lod 1
+#define GL_EXT_texture_shared_exponent 1
+#define GL_EXT_texture_snorm 1
+#define GL_EXT_texture_storage 1
+#define GL_EXT_texture_swizzle 1
+#define GL_EXT_timer_query 1
+#define GL_EXT_transform_feedback 1
+#define GL_EXT_vertex_array 1
+#define GL_EXT_vertex_array_bgra 1
+#define GL_EXT_vertex_attrib_64bit 1
+#define GL_EXT_vertex_shader 1
+#define GL_EXT_vertex_weighting 1
+#define GL_EXT_win32_keyed_mutex 1
+#define GL_EXT_window_rectangles 1
+#define GL_EXT_x11_sync_object 1
+#define GL_GREMEDY_frame_terminator 1
+#define GL_GREMEDY_string_marker 1
+#define GL_HP_convolution_border_modes 1
+#define GL_HP_image_transform 1
+#define GL_HP_occlusion_test 1
+#define GL_HP_texture_lighting 1
+#define GL_IBM_cull_vertex 1
+#define GL_IBM_multimode_draw_arrays 1
+#define GL_IBM_rasterpos_clip 1
+#define GL_IBM_static_data 1
+#define GL_IBM_texture_mirrored_repeat 1
+#define GL_IBM_vertex_array_lists 1
+#define GL_INGR_blend_func_separate 1
+#define GL_INGR_color_clamp 1
+#define GL_INGR_interlace_read 1
+#define GL_INTEL_blackhole_render 1
+#define GL_INTEL_conservative_rasterization 1
+#define GL_INTEL_fragment_shader_ordering 1
+#define GL_INTEL_framebuffer_CMAA 1
+#define GL_INTEL_map_texture 1
+#define GL_INTEL_parallel_arrays 1
+#define GL_INTEL_performance_query 1
+#define GL_KHR_blend_equation_advanced 1
+#define GL_KHR_blend_equation_advanced_coherent 1
+#define GL_KHR_context_flush_control 1
+#define GL_KHR_debug 1
+#define GL_KHR_no_error 1
+#define GL_KHR_parallel_shader_compile 1
+#define GL_KHR_robust_buffer_access_behavior 1
+#define GL_KHR_robustness 1
+#define GL_KHR_shader_subgroup 1
+#define GL_KHR_texture_compression_astc_hdr 1
+#define GL_KHR_texture_compression_astc_ldr 1
+#define GL_KHR_texture_compression_astc_sliced_3d 1
+#define GL_MESAX_texture_stack 1
+#define GL_MESA_framebuffer_flip_x 1
+#define GL_MESA_framebuffer_flip_y 1
+#define GL_MESA_framebuffer_swap_xy 1
+#define GL_MESA_pack_invert 1
+#define GL_MESA_program_binary_formats 1
+#define GL_MESA_resize_buffers 1
+#define GL_MESA_shader_integer_functions 1
+#define GL_MESA_tile_raster_order 1
+#define GL_MESA_window_pos 1
+#define GL_MESA_ycbcr_texture 1
+#define GL_NVX_blend_equation_advanced_multi_draw_buffers 1
+#define GL_NVX_conditional_render 1
+#define GL_NVX_gpu_memory_info 1
+#define GL_NVX_gpu_multicast2 1
+#define GL_NVX_linked_gpu_multicast 1
+#define GL_NVX_progress_fence 1
+#define GL_NV_alpha_to_coverage_dither_control 1
+#define GL_NV_bindless_multi_draw_indirect 1
+#define GL_NV_bindless_multi_draw_indirect_count 1
+#define GL_NV_bindless_texture 1
+#define GL_NV_blend_equation_advanced 1
+#define GL_NV_blend_equation_advanced_coherent 1
+#define GL_NV_blend_minmax_factor 1
+#define GL_NV_blend_square 1
+#define GL_NV_clip_space_w_scaling 1
+#define GL_NV_command_list 1
+#define GL_NV_compute_program5 1
+#define GL_NV_compute_shader_derivatives 1
+#define GL_NV_conditional_render 1
+#define GL_NV_conservative_raster 1
+#define GL_NV_conservative_raster_dilate 1
+#define GL_NV_conservative_raster_pre_snap 1
+#define GL_NV_conservative_raster_pre_snap_triangles 1
+#define GL_NV_conservative_raster_underestimation 1
+#define GL_NV_copy_depth_to_color 1
+#define GL_NV_copy_image 1
+#define GL_NV_deep_texture3D 1
+#define GL_NV_depth_buffer_float 1
+#define GL_NV_depth_clamp 1
+#define GL_NV_draw_texture 1
+#define GL_NV_draw_vulkan_image 1
+#define GL_NV_evaluators 1
+#define GL_NV_explicit_multisample 1
+#define GL_NV_fence 1
+#define GL_NV_fill_rectangle 1
+#define GL_NV_float_buffer 1
+#define GL_NV_fog_distance 1
+#define GL_NV_fragment_coverage_to_color 1
+#define GL_NV_fragment_program 1
+#define GL_NV_fragment_program2 1
+#define GL_NV_fragment_program4 1
+#define GL_NV_fragment_program_option 1
+#define GL_NV_fragment_shader_barycentric 1
+#define GL_NV_fragment_shader_interlock 1
+#define GL_NV_framebuffer_mixed_samples 1
+#define GL_NV_framebuffer_multisample_coverage 1
+#define GL_NV_geometry_program4 1
+#define GL_NV_geometry_shader4 1
+#define GL_NV_geometry_shader_passthrough 1
+#define GL_NV_gpu_multicast 1
+#define GL_NV_gpu_program4 1
+#define GL_NV_gpu_program5 1
+#define GL_NV_gpu_program5_mem_extended 1
+#define GL_NV_gpu_shader5 1
+#define GL_NV_half_float 1
+#define GL_NV_internalformat_sample_query 1
+#define GL_NV_light_max_exponent 1
+#define GL_NV_memory_attachment 1
+#define GL_NV_memory_object_sparse 1
+#define GL_NV_mesh_shader 1
+#define GL_NV_multisample_coverage 1
+#define GL_NV_multisample_filter_hint 1
+#define GL_NV_occlusion_query 1
+#define GL_NV_packed_depth_stencil 1
+#define GL_NV_parameter_buffer_object 1
+#define GL_NV_parameter_buffer_object2 1
+#define GL_NV_path_rendering 1
+#define GL_NV_path_rendering_shared_edge 1
+#define GL_NV_pixel_data_range 1
+#define GL_NV_point_sprite 1
+#define GL_NV_present_video 1
+#define GL_NV_primitive_restart 1
+#define GL_NV_primitive_shading_rate 1
+#define GL_NV_query_resource 1
+#define GL_NV_query_resource_tag 1
+#define GL_NV_register_combiners 1
+#define GL_NV_register_combiners2 1
+#define GL_NV_representative_fragment_test 1
+#define GL_NV_robustness_video_memory_purge 1
+#define GL_NV_sample_locations 1
+#define GL_NV_sample_mask_override_coverage 1
+#define GL_NV_scissor_exclusive 1
+#define GL_NV_shader_atomic_counters 1
+#define GL_NV_shader_atomic_float 1
+#define GL_NV_shader_atomic_float64 1
+#define GL_NV_shader_atomic_fp16_vector 1
+#define GL_NV_shader_atomic_int64 1
+#define GL_NV_shader_buffer_load 1
+#define GL_NV_shader_buffer_store 1
+#define GL_NV_shader_storage_buffer_object 1
+#define GL_NV_shader_subgroup_partitioned 1
+#define GL_NV_shader_texture_footprint 1
+#define GL_NV_shader_thread_group 1
+#define GL_NV_shader_thread_shuffle 1
+#define GL_NV_shading_rate_image 1
+#define GL_NV_stereo_view_rendering 1
+#define GL_NV_tessellation_program5 1
+#define GL_NV_texgen_emboss 1
+#define GL_NV_texgen_reflection 1
+#define GL_NV_texture_barrier 1
+#define GL_NV_texture_compression_vtc 1
+#define GL_NV_texture_env_combine4 1
+#define GL_NV_texture_expand_normal 1
+#define GL_NV_texture_multisample 1
+#define GL_NV_texture_rectangle 1
+#define GL_NV_texture_rectangle_compressed 1
+#define GL_NV_texture_shader 1
+#define GL_NV_texture_shader2 1
+#define GL_NV_texture_shader3 1
+#define GL_NV_timeline_semaphore 1
+#define GL_NV_transform_feedback 1
+#define GL_NV_transform_feedback2 1
+#define GL_NV_uniform_buffer_std430_layout 1
+#define GL_NV_uniform_buffer_unified_memory 1
+#define GL_NV_vdpau_interop 1
+#define GL_NV_vdpau_interop2 1
+#define GL_NV_vertex_array_range 1
+#define GL_NV_vertex_array_range2 1
+#define GL_NV_vertex_attrib_integer_64bit 1
+#define GL_NV_vertex_buffer_unified_memory 1
+#define GL_NV_vertex_program 1
+#define GL_NV_vertex_program1_1 1
+#define GL_NV_vertex_program2 1
+#define GL_NV_vertex_program2_option 1
+#define GL_NV_vertex_program3 1
+#define GL_NV_vertex_program4 1
+#define GL_NV_video_capture 1
+#define GL_NV_viewport_array2 1
+#define GL_NV_viewport_swizzle 1
+#define GL_OES_byte_coordinates 1
+#define GL_OES_compressed_paletted_texture 1
+#define GL_OES_fixed_point 1
+#define GL_OES_query_matrix 1
+#define GL_OES_read_format 1
+#define GL_OES_single_precision 1
+#define GL_OML_interlace 1
+#define GL_OML_resample 1
+#define GL_OML_subsample 1
+#define GL_OVR_multiview 1
+#define GL_OVR_multiview2 1
+#define GL_PGI_misc_hints 1
+#define GL_PGI_vertex_hints 1
+#define GL_REND_screen_coordinates 1
+#define GL_S3_s3tc 1
+#define GL_SGIS_detail_texture 1
+#define GL_SGIS_fog_function 1
+#define GL_SGIS_generate_mipmap 1
+#define GL_SGIS_multisample 1
+#define GL_SGIS_pixel_texture 1
+#define GL_SGIS_point_line_texgen 1
+#define GL_SGIS_point_parameters 1
+#define GL_SGIS_sharpen_texture 1
+#define GL_SGIS_texture4D 1
+#define GL_SGIS_texture_border_clamp 1
+#define GL_SGIS_texture_color_mask 1
+#define GL_SGIS_texture_edge_clamp 1
+#define GL_SGIS_texture_filter4 1
+#define GL_SGIS_texture_lod 1
+#define GL_SGIS_texture_select 1
+#define GL_SGIX_async 1
+#define GL_SGIX_async_histogram 1
+#define GL_SGIX_async_pixel 1
+#define GL_SGIX_blend_alpha_minmax 1
+#define GL_SGIX_calligraphic_fragment 1
+#define GL_SGIX_clipmap 1
+#define GL_SGIX_convolution_accuracy 1
+#define GL_SGIX_depth_pass_instrument 1
+#define GL_SGIX_depth_texture 1
+#define GL_SGIX_flush_raster 1
+#define GL_SGIX_fog_offset 1
+#define GL_SGIX_fragment_lighting 1
+#define GL_SGIX_framezoom 1
+#define GL_SGIX_igloo_interface 1
+#define GL_SGIX_instruments 1
+#define GL_SGIX_interlace 1
+#define GL_SGIX_ir_instrument1 1
+#define GL_SGIX_list_priority 1
+#define GL_SGIX_pixel_texture 1
+#define GL_SGIX_pixel_tiles 1
+#define GL_SGIX_polynomial_ffd 1
+#define GL_SGIX_reference_plane 1
+#define GL_SGIX_resample 1
+#define GL_SGIX_scalebias_hint 1
+#define GL_SGIX_shadow 1
+#define GL_SGIX_shadow_ambient 1
+#define GL_SGIX_sprite 1
+#define GL_SGIX_subsample 1
+#define GL_SGIX_tag_sample_buffer 1
+#define GL_SGIX_texture_add_env 1
+#define GL_SGIX_texture_coordinate_clamp 1
+#define GL_SGIX_texture_lod_bias 1
+#define GL_SGIX_texture_multi_buffer 1
+#define GL_SGIX_texture_scale_bias 1
+#define GL_SGIX_vertex_preclip 1
+#define GL_SGIX_ycrcb 1
+#define GL_SGIX_ycrcb_subsample 1
+#define GL_SGIX_ycrcba 1
+#define GL_SGI_color_matrix 1
+#define GL_SGI_color_table 1
+#define GL_SGI_texture_color_table 1
+#define GL_SUNX_constant_data 1
+#define GL_SUN_convolution_border_modes 1
+#define GL_SUN_global_alpha 1
+#define GL_SUN_mesh_array 1
+#define GL_SUN_slice_accum 1
+#define GL_SUN_triangle_list 1
+#define GL_SUN_vertex 1
+#define GL_WIN_phong_shading 1
+#define GL_WIN_specular_fog 1
+
+typedef void(GLAD_API_PTR *PFNGLACCUMXOESPROC)(GLenum op, GLfixed value);
+typedef GLboolean(GLAD_API_PTR *PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC)(GLuint memory, GLuint64 key,
+ GLuint timeout);
+typedef void(GLAD_API_PTR *PFNGLACTIVEPROGRAMEXTPROC)(GLuint program);
+typedef void(GLAD_API_PTR *PFNGLACTIVESHADERPROGRAMPROC)(GLuint pipeline, GLuint program);
+typedef void(GLAD_API_PTR *PFNGLACTIVESTENCILFACEEXTPROC)(GLenum face);
+typedef void(GLAD_API_PTR *PFNGLACTIVETEXTUREPROC)(GLenum texture);
+typedef void(GLAD_API_PTR *PFNGLACTIVETEXTUREARBPROC)(GLenum texture);
+typedef void(GLAD_API_PTR *PFNGLACTIVEVARYINGNVPROC)(GLuint program, const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLALPHAFRAGMENTOP1ATIPROC)(GLenum op, GLuint dst, GLuint dstMod,
+ GLuint arg1, GLuint arg1Rep,
+ GLuint arg1Mod);
+typedef void(GLAD_API_PTR *PFNGLALPHAFRAGMENTOP2ATIPROC)(GLenum op, GLuint dst, GLuint dstMod,
+ GLuint arg1, GLuint arg1Rep,
+ GLuint arg1Mod, GLuint arg2,
+ GLuint arg2Rep, GLuint arg2Mod);
+typedef void(GLAD_API_PTR *PFNGLALPHAFRAGMENTOP3ATIPROC)(
+ GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod,
+ GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
+typedef void(GLAD_API_PTR *PFNGLALPHAFUNCXOESPROC)(GLenum func, GLfixed ref);
+typedef void(GLAD_API_PTR *PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLAPPLYTEXTUREEXTPROC)(GLenum mode);
+typedef GLboolean(GLAD_API_PTR *PFNGLAREPROGRAMSRESIDENTNVPROC)(GLsizei n, const GLuint *programs,
+ GLboolean *residences);
+typedef GLboolean(GLAD_API_PTR *PFNGLARETEXTURESRESIDENTEXTPROC)(GLsizei n, const GLuint *textures,
+ GLboolean *residences);
+typedef void(GLAD_API_PTR *PFNGLARRAYELEMENTEXTPROC)(GLint i);
+typedef void(GLAD_API_PTR *PFNGLARRAYOBJECTATIPROC)(GLenum array, GLint size, GLenum type,
+ GLsizei stride, GLuint buffer, GLuint offset);
+typedef GLuint(GLAD_API_PTR *PFNGLASYNCCOPYBUFFERSUBDATANVXPROC)(
+ GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray,
+ const GLuint64 *fenceValueArray, GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer,
+ GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size,
+ GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray,
+ const GLuint64 *signalValueArray);
+typedef GLuint(GLAD_API_PTR *PFNGLASYNCCOPYIMAGESUBDATANVXPROC)(
+ GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray,
+ const GLuint64 *waitValueArray, GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName,
+ GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName,
+ GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth,
+ GLsizei srcHeight, GLsizei srcDepth, GLsizei signalSemaphoreCount,
+ const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray);
+typedef void(GLAD_API_PTR *PFNGLASYNCMARKERSGIXPROC)(GLuint marker);
+typedef void(GLAD_API_PTR *PFNGLATTACHOBJECTARBPROC)(GLhandleARB containerObj, GLhandleARB obj);
+typedef void(GLAD_API_PTR *PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader);
+typedef void(GLAD_API_PTR *PFNGLBEGINCONDITIONALRENDERPROC)(GLuint id, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLBEGINCONDITIONALRENDERNVPROC)(GLuint id, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLBEGINCONDITIONALRENDERNVXPROC)(GLuint id);
+typedef void(GLAD_API_PTR *PFNGLBEGINFRAGMENTSHADERATIPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLBEGINOCCLUSIONQUERYNVPROC)(GLuint id);
+typedef void(GLAD_API_PTR *PFNGLBEGINPERFMONITORAMDPROC)(GLuint monitor);
+typedef void(GLAD_API_PTR *PFNGLBEGINPERFQUERYINTELPROC)(GLuint queryHandle);
+typedef void(GLAD_API_PTR *PFNGLBEGINQUERYPROC)(GLenum target, GLuint id);
+typedef void(GLAD_API_PTR *PFNGLBEGINQUERYARBPROC)(GLenum target, GLuint id);
+typedef void(GLAD_API_PTR *PFNGLBEGINQUERYINDEXEDPROC)(GLenum target, GLuint index, GLuint id);
+typedef void(GLAD_API_PTR *PFNGLBEGINTRANSFORMFEEDBACKPROC)(GLenum primitiveMode);
+typedef void(GLAD_API_PTR *PFNGLBEGINTRANSFORMFEEDBACKEXTPROC)(GLenum primitiveMode);
+typedef void(GLAD_API_PTR *PFNGLBEGINTRANSFORMFEEDBACKNVPROC)(GLenum primitiveMode);
+typedef void(GLAD_API_PTR *PFNGLBEGINVERTEXSHADEREXTPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLBEGINVIDEOCAPTURENVPROC)(GLuint video_capture_slot);
+typedef void(GLAD_API_PTR *PFNGLBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index,
+ const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLBINDATTRIBLOCATIONARBPROC)(GLhandleARB programObj, GLuint index,
+ const GLcharARB *name);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFERARBPROC)(GLenum target, GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFERBASEPROC)(GLenum target, GLuint index, GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFERBASEEXTPROC)(GLenum target, GLuint index, GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFERBASENVPROC)(GLenum target, GLuint index, GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFEROFFSETEXTPROC)(GLenum target, GLuint index, GLuint buffer,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFEROFFSETNVPROC)(GLenum target, GLuint index, GLuint buffer,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFERRANGEPROC)(GLenum target, GLuint index, GLuint buffer,
+ GLintptr offset, GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFERRANGEEXTPROC)(GLenum target, GLuint index, GLuint buffer,
+ GLintptr offset, GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFERRANGENVPROC)(GLenum target, GLuint index, GLuint buffer,
+ GLintptr offset, GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFERSBASEPROC)(GLenum target, GLuint first, GLsizei count,
+ const GLuint *buffers);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFERSRANGEPROC)(GLenum target, GLuint first, GLsizei count,
+ const GLuint *buffers,
+ const GLintptr *offsets,
+ const GLsizeiptr *sizes);
+typedef void(GLAD_API_PTR *PFNGLBINDFRAGDATALOCATIONPROC)(GLuint program, GLuint color,
+ const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLBINDFRAGDATALOCATIONEXTPROC)(GLuint program, GLuint color,
+ const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)(GLuint program, GLuint colorNumber,
+ GLuint index, const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLBINDFRAGMENTSHADERATIPROC)(GLuint id);
+typedef void(GLAD_API_PTR *PFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer);
+typedef void(GLAD_API_PTR *PFNGLBINDFRAMEBUFFEREXTPROC)(GLenum target, GLuint framebuffer);
+typedef void(GLAD_API_PTR *PFNGLBINDIMAGETEXTUREPROC)(GLuint unit, GLuint texture, GLint level,
+ GLboolean layered, GLint layer, GLenum access,
+ GLenum format);
+typedef void(GLAD_API_PTR *PFNGLBINDIMAGETEXTUREEXTPROC)(GLuint index, GLuint texture, GLint level,
+ GLboolean layered, GLint layer,
+ GLenum access, GLint format);
+typedef void(GLAD_API_PTR *PFNGLBINDIMAGETEXTURESPROC)(GLuint first, GLsizei count,
+ const GLuint *textures);
+typedef GLuint(GLAD_API_PTR *PFNGLBINDLIGHTPARAMETEREXTPROC)(GLenum light, GLenum value);
+typedef GLuint(GLAD_API_PTR *PFNGLBINDMATERIALPARAMETEREXTPROC)(GLenum face, GLenum value);
+typedef void(GLAD_API_PTR *PFNGLBINDMULTITEXTUREEXTPROC)(GLenum texunit, GLenum target,
+ GLuint texture);
+typedef GLuint(GLAD_API_PTR *PFNGLBINDPARAMETEREXTPROC)(GLenum value);
+typedef void(GLAD_API_PTR *PFNGLBINDPROGRAMARBPROC)(GLenum target, GLuint program);
+typedef void(GLAD_API_PTR *PFNGLBINDPROGRAMNVPROC)(GLenum target, GLuint id);
+typedef void(GLAD_API_PTR *PFNGLBINDPROGRAMPIPELINEPROC)(GLuint pipeline);
+typedef void(GLAD_API_PTR *PFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer);
+typedef void(GLAD_API_PTR *PFNGLBINDRENDERBUFFEREXTPROC)(GLenum target, GLuint renderbuffer);
+typedef void(GLAD_API_PTR *PFNGLBINDSAMPLERPROC)(GLuint unit, GLuint sampler);
+typedef void(GLAD_API_PTR *PFNGLBINDSAMPLERSPROC)(GLuint first, GLsizei count,
+ const GLuint *samplers);
+typedef void(GLAD_API_PTR *PFNGLBINDSHADINGRATEIMAGENVPROC)(GLuint texture);
+typedef GLuint(GLAD_API_PTR *PFNGLBINDTEXGENPARAMETEREXTPROC)(GLenum unit, GLenum coord,
+ GLenum value);
+typedef void(GLAD_API_PTR *PFNGLBINDTEXTUREPROC)(GLenum target, GLuint texture);
+typedef void(GLAD_API_PTR *PFNGLBINDTEXTUREEXTPROC)(GLenum target, GLuint texture);
+typedef void(GLAD_API_PTR *PFNGLBINDTEXTUREUNITPROC)(GLuint unit, GLuint texture);
+typedef GLuint(GLAD_API_PTR *PFNGLBINDTEXTUREUNITPARAMETEREXTPROC)(GLenum unit, GLenum value);
+typedef void(GLAD_API_PTR *PFNGLBINDTEXTURESPROC)(GLuint first, GLsizei count,
+ const GLuint *textures);
+typedef void(GLAD_API_PTR *PFNGLBINDTRANSFORMFEEDBACKPROC)(GLenum target, GLuint id);
+typedef void(GLAD_API_PTR *PFNGLBINDTRANSFORMFEEDBACKNVPROC)(GLenum target, GLuint id);
+typedef void(GLAD_API_PTR *PFNGLBINDVERTEXARRAYPROC)(GLuint array);
+typedef void(GLAD_API_PTR *PFNGLBINDVERTEXARRAYAPPLEPROC)(GLuint array);
+typedef void(GLAD_API_PTR *PFNGLBINDVERTEXBUFFERPROC)(GLuint bindingindex, GLuint buffer,
+ GLintptr offset, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLBINDVERTEXBUFFERSPROC)(GLuint first, GLsizei count,
+ const GLuint *buffers,
+ const GLintptr *offsets,
+ const GLsizei *strides);
+typedef void(GLAD_API_PTR *PFNGLBINDVERTEXSHADEREXTPROC)(GLuint id);
+typedef void(GLAD_API_PTR *PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC)(GLuint video_capture_slot,
+ GLuint stream,
+ GLenum frame_region,
+ GLintptrARB offset);
+typedef void(GLAD_API_PTR *PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC)(GLuint video_capture_slot,
+ GLuint stream,
+ GLenum frame_region,
+ GLenum target, GLuint texture);
+typedef void(GLAD_API_PTR *PFNGLBINORMAL3BEXTPROC)(GLbyte bx, GLbyte by, GLbyte bz);
+typedef void(GLAD_API_PTR *PFNGLBINORMAL3BVEXTPROC)(const GLbyte *v);
+typedef void(GLAD_API_PTR *PFNGLBINORMAL3DEXTPROC)(GLdouble bx, GLdouble by, GLdouble bz);
+typedef void(GLAD_API_PTR *PFNGLBINORMAL3DVEXTPROC)(const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLBINORMAL3FEXTPROC)(GLfloat bx, GLfloat by, GLfloat bz);
+typedef void(GLAD_API_PTR *PFNGLBINORMAL3FVEXTPROC)(const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLBINORMAL3IEXTPROC)(GLint bx, GLint by, GLint bz);
+typedef void(GLAD_API_PTR *PFNGLBINORMAL3IVEXTPROC)(const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLBINORMAL3SEXTPROC)(GLshort bx, GLshort by, GLshort bz);
+typedef void(GLAD_API_PTR *PFNGLBINORMAL3SVEXTPROC)(const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLBINORMALPOINTEREXTPROC)(GLenum type, GLsizei stride,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLBITMAPXOESPROC)(GLsizei width, GLsizei height, GLfixed xorig,
+ GLfixed yorig, GLfixed xmove, GLfixed ymove,
+ const GLubyte *bitmap);
+typedef void(GLAD_API_PTR *PFNGLBLENDBARRIERKHRPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLBLENDBARRIERNVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLBLENDCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue,
+ GLfloat alpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDCOLOREXTPROC)(GLfloat red, GLfloat green, GLfloat blue,
+ GLfloat alpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDCOLORXOESPROC)(GLfixed red, GLfixed green, GLfixed blue,
+ GLfixed alpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONEXTPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONINDEXEDAMDPROC)(GLuint buf, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONSEPARATEPROC)(GLenum modeRGB, GLenum modeAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONSEPARATEEXTPROC)(GLenum modeRGB, GLenum modeAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC)(GLuint buf, GLenum modeRGB,
+ GLenum modeAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONSEPARATEIPROC)(GLuint buf, GLenum modeRGB,
+ GLenum modeAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONSEPARATEIARBPROC)(GLuint buf, GLenum modeRGB,
+ GLenum modeAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONIPROC)(GLuint buf, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONIARBPROC)(GLuint buf, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLBLENDFUNCPROC)(GLenum sfactor, GLenum dfactor);
+typedef void(GLAD_API_PTR *PFNGLBLENDFUNCINDEXEDAMDPROC)(GLuint buf, GLenum src, GLenum dst);
+typedef void(GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEPROC)(GLenum sfactorRGB, GLenum dfactorRGB,
+ GLenum sfactorAlpha, GLenum dfactorAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEEXTPROC)(GLenum sfactorRGB, GLenum dfactorRGB,
+ GLenum sfactorAlpha, GLenum dfactorAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEINGRPROC)(GLenum sfactorRGB, GLenum dfactorRGB,
+ GLenum sfactorAlpha,
+ GLenum dfactorAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC)(GLuint buf, GLenum srcRGB,
+ GLenum dstRGB, GLenum srcAlpha,
+ GLenum dstAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEIPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB,
+ GLenum srcAlpha, GLenum dstAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEIARBPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB,
+ GLenum srcAlpha, GLenum dstAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDFUNCIPROC)(GLuint buf, GLenum src, GLenum dst);
+typedef void(GLAD_API_PTR *PFNGLBLENDFUNCIARBPROC)(GLuint buf, GLenum src, GLenum dst);
+typedef void(GLAD_API_PTR *PFNGLBLENDPARAMETERINVPROC)(GLenum pname, GLint value);
+typedef void(GLAD_API_PTR *PFNGLBLITFRAMEBUFFERPROC)(GLint srcX0, GLint srcY0, GLint srcX1,
+ GLint srcY1, GLint dstX0, GLint dstY0,
+ GLint dstX1, GLint dstY1, GLbitfield mask,
+ GLenum filter);
+typedef void(GLAD_API_PTR *PFNGLBLITFRAMEBUFFEREXTPROC)(GLint srcX0, GLint srcY0, GLint srcX1,
+ GLint srcY1, GLint dstX0, GLint dstY0,
+ GLint dstX1, GLint dstY1, GLbitfield mask,
+ GLenum filter);
+typedef void(GLAD_API_PTR *PFNGLBLITFRAMEBUFFERLAYEREXTPROC)(GLint srcX0, GLint srcY0, GLint srcX1,
+ GLint srcY1, GLint srcLayer,
+ GLint dstX0, GLint dstY0, GLint dstX1,
+ GLint dstY1, GLint dstLayer,
+ GLbitfield mask, GLenum filter);
+typedef void(GLAD_API_PTR *PFNGLBLITFRAMEBUFFERLAYERSEXTPROC)(GLint srcX0, GLint srcY0, GLint srcX1,
+ GLint srcY1, GLint dstX0, GLint dstY0,
+ GLint dstX1, GLint dstY1,
+ GLbitfield mask, GLenum filter);
+typedef void(GLAD_API_PTR *PFNGLBLITNAMEDFRAMEBUFFERPROC)(GLuint readFramebuffer,
+ GLuint drawFramebuffer, GLint srcX0,
+ GLint srcY0, GLint srcX1, GLint srcY1,
+ GLint dstX0, GLint dstY0, GLint dstX1,
+ GLint dstY1, GLbitfield mask,
+ GLenum filter);
+typedef void(GLAD_API_PTR *PFNGLBUFFERADDRESSRANGENVPROC)(GLenum pname, GLuint index,
+ GLuint64EXT address, GLsizeiptr length);
+typedef void(GLAD_API_PTR *PFNGLBUFFERATTACHMEMORYNVPROC)(GLenum target, GLuint memory,
+ GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const void *data,
+ GLenum usage);
+typedef void(GLAD_API_PTR *PFNGLBUFFERDATAARBPROC)(GLenum target, GLsizeiptrARB size,
+ const void *data, GLenum usage);
+typedef void(GLAD_API_PTR *PFNGLBUFFERPAGECOMMITMENTARBPROC)(GLenum target, GLintptr offset,
+ GLsizeiptr size, GLboolean commit);
+typedef void(GLAD_API_PTR *PFNGLBUFFERPAGECOMMITMENTMEMNVPROC)(GLenum target, GLintptr offset,
+ GLsizeiptr size, GLuint memory,
+ GLuint64 memOffset,
+ GLboolean commit);
+typedef void(GLAD_API_PTR *PFNGLBUFFERPARAMETERIAPPLEPROC)(GLenum target, GLenum pname,
+ GLint param);
+typedef void(GLAD_API_PTR *PFNGLBUFFERSTORAGEPROC)(GLenum target, GLsizeiptr size, const void *data,
+ GLbitfield flags);
+typedef void(GLAD_API_PTR *PFNGLBUFFERSTORAGEEXTERNALEXTPROC)(GLenum target, GLintptr offset,
+ GLsizeiptr size,
+ GLeglClientBufferEXT clientBuffer,
+ GLbitfield flags);
+typedef void(GLAD_API_PTR *PFNGLBUFFERSTORAGEMEMEXTPROC)(GLenum target, GLsizeiptr size,
+ GLuint memory, GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLBUFFERSUBDATAARBPROC)(GLenum target, GLintptrARB offset,
+ GLsizeiptrARB size, const void *data);
+typedef void(GLAD_API_PTR *PFNGLCALLCOMMANDLISTNVPROC)(GLuint list);
+typedef GLenum(GLAD_API_PTR *PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target);
+typedef GLenum(GLAD_API_PTR *PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)(GLenum target);
+typedef GLenum(GLAD_API_PTR *PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC)(GLuint framebuffer,
+ GLenum target);
+typedef GLenum(GLAD_API_PTR *PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC)(GLuint framebuffer,
+ GLenum target);
+typedef void(GLAD_API_PTR *PFNGLCLAMPCOLORPROC)(GLenum target, GLenum clamp);
+typedef void(GLAD_API_PTR *PFNGLCLAMPCOLORARBPROC)(GLenum target, GLenum clamp);
+typedef void(GLAD_API_PTR *PFNGLCLEARPROC)(GLbitfield mask);
+typedef void(GLAD_API_PTR *PFNGLCLEARACCUMXOESPROC)(GLfixed red, GLfixed green, GLfixed blue,
+ GLfixed alpha);
+typedef void(GLAD_API_PTR *PFNGLCLEARBUFFERDATAPROC)(GLenum target, GLenum internalformat,
+ GLenum format, GLenum type, const void *data);
+typedef void(GLAD_API_PTR *PFNGLCLEARBUFFERSUBDATAPROC)(GLenum target, GLenum internalformat,
+ GLintptr offset, GLsizeiptr size,
+ GLenum format, GLenum type,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCLEARBUFFERFIPROC)(GLenum buffer, GLint drawbuffer, GLfloat depth,
+ GLint stencil);
+typedef void(GLAD_API_PTR *PFNGLCLEARBUFFERFVPROC)(GLenum buffer, GLint drawbuffer,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLCLEARBUFFERIVPROC)(GLenum buffer, GLint drawbuffer,
+ const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLCLEARBUFFERUIVPROC)(GLenum buffer, GLint drawbuffer,
+ const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLCLEARCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue,
+ GLfloat alpha);
+typedef void(GLAD_API_PTR *PFNGLCLEARCOLORIIEXTPROC)(GLint red, GLint green, GLint blue,
+ GLint alpha);
+typedef void(GLAD_API_PTR *PFNGLCLEARCOLORIUIEXTPROC)(GLuint red, GLuint green, GLuint blue,
+ GLuint alpha);
+typedef void(GLAD_API_PTR *PFNGLCLEARCOLORXOESPROC)(GLfixed red, GLfixed green, GLfixed blue,
+ GLfixed alpha);
+typedef void(GLAD_API_PTR *PFNGLCLEARDEPTHPROC)(GLdouble depth);
+typedef void(GLAD_API_PTR *PFNGLCLEARDEPTHDNVPROC)(GLdouble depth);
+typedef void(GLAD_API_PTR *PFNGLCLEARDEPTHFPROC)(GLfloat d);
+typedef void(GLAD_API_PTR *PFNGLCLEARDEPTHFOESPROC)(GLclampf depth);
+typedef void(GLAD_API_PTR *PFNGLCLEARDEPTHXOESPROC)(GLfixed depth);
+typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDBUFFERDATAPROC)(GLuint buffer, GLenum internalformat,
+ GLenum format, GLenum type,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDBUFFERDATAEXTPROC)(GLuint buffer, GLenum internalformat,
+ GLenum format, GLenum type,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLenum internalformat,
+ GLintptr offset, GLsizeiptr size,
+ GLenum format, GLenum type,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC)(GLuint buffer,
+ GLenum internalformat,
+ GLsizeiptr offset, GLsizeiptr size,
+ GLenum format, GLenum type,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDFRAMEBUFFERFIPROC)(GLuint framebuffer, GLenum buffer,
+ GLint drawbuffer, GLfloat depth,
+ GLint stencil);
+typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDFRAMEBUFFERFVPROC)(GLuint framebuffer, GLenum buffer,
+ GLint drawbuffer,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDFRAMEBUFFERIVPROC)(GLuint framebuffer, GLenum buffer,
+ GLint drawbuffer, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC)(GLuint framebuffer, GLenum buffer,
+ GLint drawbuffer,
+ const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLCLEARSTENCILPROC)(GLint s);
+typedef void(GLAD_API_PTR *PFNGLCLEARTEXIMAGEPROC)(GLuint texture, GLint level, GLenum format,
+ GLenum type, const void *data);
+typedef void(GLAD_API_PTR *PFNGLCLEARTEXSUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth, GLenum format,
+ GLenum type, const void *data);
+typedef void(GLAD_API_PTR *PFNGLCLIENTACTIVETEXTUREARBPROC)(GLenum texture);
+typedef void(GLAD_API_PTR *PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC)(GLenum stream);
+typedef void(GLAD_API_PTR *PFNGLCLIENTATTRIBDEFAULTEXTPROC)(GLbitfield mask);
+typedef void(GLAD_API_PTR *PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC)(GLsizei fenceObjectCount,
+ const GLuint *semaphoreArray,
+ const GLuint64 *fenceValueArray);
+typedef GLenum(GLAD_API_PTR *PFNGLCLIENTWAITSYNCPROC)(GLsync sync, GLbitfield flags,
+ GLuint64 timeout);
+typedef void(GLAD_API_PTR *PFNGLCLIPCONTROLPROC)(GLenum origin, GLenum depth);
+typedef void(GLAD_API_PTR *PFNGLCLIPPLANEFOESPROC)(GLenum plane, const GLfloat *equation);
+typedef void(GLAD_API_PTR *PFNGLCLIPPLANEXOESPROC)(GLenum plane, const GLfixed *equation);
+typedef void(GLAD_API_PTR *PFNGLCOLOR3FVERTEX3FSUNPROC)(GLfloat r, GLfloat g, GLfloat b, GLfloat x,
+ GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLCOLOR3FVERTEX3FVSUNPROC)(const GLfloat *c, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLCOLOR3HNVPROC)(GLhalfNV red, GLhalfNV green, GLhalfNV blue);
+typedef void(GLAD_API_PTR *PFNGLCOLOR3HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLCOLOR3XOESPROC)(GLfixed red, GLfixed green, GLfixed blue);
+typedef void(GLAD_API_PTR *PFNGLCOLOR3XVOESPROC)(const GLfixed *components);
+typedef void(GLAD_API_PTR *PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC)(GLfloat r, GLfloat g, GLfloat b,
+ GLfloat a, GLfloat nx, GLfloat ny,
+ GLfloat nz, GLfloat x, GLfloat y,
+ GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLfloat *c, const GLfloat *n,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLCOLOR4HNVPROC)(GLhalfNV red, GLhalfNV green, GLhalfNV blue,
+ GLhalfNV alpha);
+typedef void(GLAD_API_PTR *PFNGLCOLOR4HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLCOLOR4UBVERTEX2FSUNPROC)(GLubyte r, GLubyte g, GLubyte b, GLubyte a,
+ GLfloat x, GLfloat y);
+typedef void(GLAD_API_PTR *PFNGLCOLOR4UBVERTEX2FVSUNPROC)(const GLubyte *c, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLCOLOR4UBVERTEX3FSUNPROC)(GLubyte r, GLubyte g, GLubyte b, GLubyte a,
+ GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLCOLOR4UBVERTEX3FVSUNPROC)(const GLubyte *c, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLCOLOR4XOESPROC)(GLfixed red, GLfixed green, GLfixed blue,
+ GLfixed alpha);
+typedef void(GLAD_API_PTR *PFNGLCOLOR4XVOESPROC)(const GLfixed *components);
+typedef void(GLAD_API_PTR *PFNGLCOLORFORMATNVPROC)(GLint size, GLenum type, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLCOLORFRAGMENTOP1ATIPROC)(GLenum op, GLuint dst, GLuint dstMask,
+ GLuint dstMod, GLuint arg1, GLuint arg1Rep,
+ GLuint arg1Mod);
+typedef void(GLAD_API_PTR *PFNGLCOLORFRAGMENTOP2ATIPROC)(GLenum op, GLuint dst, GLuint dstMask,
+ GLuint dstMod, GLuint arg1, GLuint arg1Rep,
+ GLuint arg1Mod, GLuint arg2,
+ GLuint arg2Rep, GLuint arg2Mod);
+typedef void(GLAD_API_PTR *PFNGLCOLORFRAGMENTOP3ATIPROC)(GLenum op, GLuint dst, GLuint dstMask,
+ GLuint dstMod, GLuint arg1, GLuint arg1Rep,
+ GLuint arg1Mod, GLuint arg2,
+ GLuint arg2Rep, GLuint arg2Mod,
+ GLuint arg3, GLuint arg3Rep,
+ GLuint arg3Mod);
+typedef void(GLAD_API_PTR *PFNGLCOLORMASKPROC)(GLboolean red, GLboolean green, GLboolean blue,
+ GLboolean alpha);
+typedef void(GLAD_API_PTR *PFNGLCOLORMASKINDEXEDEXTPROC)(GLuint index, GLboolean r, GLboolean g,
+ GLboolean b, GLboolean a);
+typedef void(GLAD_API_PTR *PFNGLCOLORMASKIPROC)(GLuint index, GLboolean r, GLboolean g, GLboolean b,
+ GLboolean a);
+typedef void(GLAD_API_PTR *PFNGLCOLORPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride,
+ GLsizei count, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLCOLORPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride,
+ const void **pointer, GLint ptrstride);
+typedef void(GLAD_API_PTR *PFNGLCOLORPOINTERVINTELPROC)(GLint size, GLenum type,
+ const void **pointer);
+typedef void(GLAD_API_PTR *PFNGLCOLORSUBTABLEEXTPROC)(GLenum target, GLsizei start, GLsizei count,
+ GLenum format, GLenum type, const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOLORTABLEEXTPROC)(GLenum target, GLenum internalFormat,
+ GLsizei width, GLenum format, GLenum type,
+ const void *table);
+typedef void(GLAD_API_PTR *PFNGLCOLORTABLEPARAMETERFVSGIPROC)(GLenum target, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLCOLORTABLEPARAMETERIVSGIPROC)(GLenum target, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLCOLORTABLESGIPROC)(GLenum target, GLenum internalformat,
+ GLsizei width, GLenum format, GLenum type,
+ const void *table);
+typedef void(GLAD_API_PTR *PFNGLCOMBINERINPUTNVPROC)(GLenum stage, GLenum portion, GLenum variable,
+ GLenum input, GLenum mapping,
+ GLenum componentUsage);
+typedef void(GLAD_API_PTR *PFNGLCOMBINEROUTPUTNVPROC)(GLenum stage, GLenum portion, GLenum abOutput,
+ GLenum cdOutput, GLenum sumOutput,
+ GLenum scale, GLenum bias,
+ GLboolean abDotProduct,
+ GLboolean cdDotProduct, GLboolean muxSum);
+typedef void(GLAD_API_PTR *PFNGLCOMBINERPARAMETERFNVPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLCOMBINERPARAMETERFVNVPROC)(GLenum pname, const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLCOMBINERPARAMETERINVPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLCOMBINERPARAMETERIVNVPROC)(GLenum pname, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLCOMBINERSTAGEPARAMETERFVNVPROC)(GLenum stage, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLCOMMANDLISTSEGMENTSNVPROC)(GLuint list, GLuint segments);
+typedef void(GLAD_API_PTR *PFNGLCOMPILECOMMANDLISTNVPROC)(GLuint list);
+typedef void(GLAD_API_PTR *PFNGLCOMPILESHADERPROC)(GLuint shader);
+typedef void(GLAD_API_PTR *PFNGLCOMPILESHADERARBPROC)(GLhandleARB shaderObj);
+typedef void(GLAD_API_PTR *PFNGLCOMPILESHADERINCLUDEARBPROC)(GLuint shader, GLsizei count,
+ const GLchar *const *path,
+ const GLint *length);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC)(
+ GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width,
+ GLint border, GLsizei imageSize, const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC)(
+ GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width,
+ GLsizei height, GLint border, GLsizei imageSize, const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC)(
+ GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLint xoffset,
+ GLsizei width, GLenum format,
+ GLsizei imageSize,
+ const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC)(
+ GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
+ GLsizei height, GLenum format, GLsizei imageSize, const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC)(
+ GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
+ GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize,
+ const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE1DPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLint border, GLsizei imageSize,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLint border, GLsizei imageSize,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLint border,
+ GLsizei imageSize, const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLint border,
+ GLsizei imageSize, const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE3DPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLint border, GLsizei imageSize,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLint border, GLsizei imageSize,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)(GLenum target, GLint level,
+ GLint xoffset, GLsizei width,
+ GLenum format, GLsizei imageSize,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)(GLenum target, GLint level,
+ GLint xoffset, GLsizei width,
+ GLenum format, GLsizei imageSize,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level,
+ GLint xoffset, GLint yoffset,
+ GLsizei width, GLsizei height,
+ GLenum format, GLsizei imageSize,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)(GLenum target, GLint level,
+ GLint xoffset, GLint yoffset,
+ GLsizei width, GLsizei height,
+ GLenum format, GLsizei imageSize,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)(
+ GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC)(
+ GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLenum internalformat,
+ GLsizei width, GLint border,
+ GLsizei imageSize,
+ const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLenum internalformat,
+ GLsizei width, GLsizei height,
+ GLint border, GLsizei imageSize,
+ const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC)(
+ GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level,
+ GLint xoffset, GLsizei width,
+ GLenum format, GLsizei imageSize,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLint xoffset,
+ GLsizei width, GLenum format,
+ GLsizei imageSize,
+ const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level,
+ GLint xoffset, GLint yoffset,
+ GLsizei width, GLsizei height,
+ GLenum format, GLsizei imageSize,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC)(
+ GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
+ GLsizei height, GLenum format, GLsizei imageSize, const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC)(
+ GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC)(
+ GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
+ GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize,
+ const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCONSERVATIVERASTERPARAMETERFNVPROC)(GLenum pname, GLfloat value);
+typedef void(GLAD_API_PTR *PFNGLCONSERVATIVERASTERPARAMETERINVPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLCONVOLUTIONFILTER1DEXTPROC)(GLenum target, GLenum internalformat,
+ GLsizei width, GLenum format,
+ GLenum type, const void *image);
+typedef void(GLAD_API_PTR *PFNGLCONVOLUTIONFILTER2DEXTPROC)(GLenum target, GLenum internalformat,
+ GLsizei width, GLsizei height,
+ GLenum format, GLenum type,
+ const void *image);
+typedef void(GLAD_API_PTR *PFNGLCONVOLUTIONPARAMETERFEXTPROC)(GLenum target, GLenum pname,
+ GLfloat params);
+typedef void(GLAD_API_PTR *PFNGLCONVOLUTIONPARAMETERFVEXTPROC)(GLenum target, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLCONVOLUTIONPARAMETERIEXTPROC)(GLenum target, GLenum pname,
+ GLint params);
+typedef void(GLAD_API_PTR *PFNGLCONVOLUTIONPARAMETERIVEXTPROC)(GLenum target, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLCONVOLUTIONPARAMETERXOESPROC)(GLenum target, GLenum pname,
+ GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLCONVOLUTIONPARAMETERXVOESPROC)(GLenum target, GLenum pname,
+ const GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLCOPYBUFFERSUBDATAPROC)(GLenum readTarget, GLenum writeTarget,
+ GLintptr readOffset, GLintptr writeOffset,
+ GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLCOPYCOLORSUBTABLEEXTPROC)(GLenum target, GLsizei start, GLint x,
+ GLint y, GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLCOPYCOLORTABLESGIPROC)(GLenum target, GLenum internalformat,
+ GLint x, GLint y, GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC)(GLenum target,
+ GLenum internalformat, GLint x,
+ GLint y, GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC)(GLenum target,
+ GLenum internalformat, GLint x,
+ GLint y, GLsizei width,
+ GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOPYIMAGESUBDATAPROC)(GLuint srcName, GLenum srcTarget,
+ GLint srcLevel, GLint srcX, GLint srcY,
+ GLint srcZ, GLuint dstName, GLenum dstTarget,
+ GLint dstLevel, GLint dstX, GLint dstY,
+ GLint dstZ, GLsizei srcWidth,
+ GLsizei srcHeight, GLsizei srcDepth);
+typedef void(GLAD_API_PTR *PFNGLCOPYIMAGESUBDATANVPROC)(
+ GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ,
+ GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ,
+ GLsizei width, GLsizei height, GLsizei depth);
+typedef void(GLAD_API_PTR *PFNGLCOPYMULTITEXIMAGE1DEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLenum internalformat,
+ GLint x, GLint y, GLsizei width,
+ GLint border);
+typedef void(GLAD_API_PTR *PFNGLCOPYMULTITEXIMAGE2DEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLenum internalformat,
+ GLint x, GLint y, GLsizei width,
+ GLsizei height, GLint border);
+typedef void(GLAD_API_PTR *PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLint xoffset, GLint x,
+ GLint y, GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLint xoffset,
+ GLint yoffset, GLint x, GLint y,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset,
+ GLint x, GLint y, GLsizei width,
+ GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOPYNAMEDBUFFERSUBDATAPROC)(GLuint readBuffer, GLuint writeBuffer,
+ GLintptr readOffset,
+ GLintptr writeOffset, GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLCOPYPATHNVPROC)(GLuint resultPath, GLuint srcPath);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXIMAGE1DPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLint x, GLint y,
+ GLsizei width, GLint border);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXIMAGE1DEXTPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLint x, GLint y,
+ GLsizei width, GLint border);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXIMAGE2DPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLint x, GLint y,
+ GLsizei width, GLsizei height, GLint border);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXIMAGE2DEXTPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLint x, GLint y,
+ GLsizei width, GLsizei height, GLint border);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint x, GLint y, GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE1DEXTPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint x, GLint y, GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLint x, GLint y,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE2DEXTPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLint x, GLint y,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset, GLint x,
+ GLint y, GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE3DEXTPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset, GLint x,
+ GLint y, GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXTUREIMAGE1DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLenum internalformat,
+ GLint x, GLint y, GLsizei width,
+ GLint border);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXTUREIMAGE2DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLenum internalformat,
+ GLint x, GLint y, GLsizei width,
+ GLsizei height, GLint border);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level,
+ GLint xoffset, GLint x, GLint y,
+ GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLint xoffset, GLint x,
+ GLint y, GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level,
+ GLint xoffset, GLint yoffset, GLint x,
+ GLint y, GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLint xoffset,
+ GLint yoffset, GLint x, GLint y,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level,
+ GLint xoffset, GLint yoffset,
+ GLint zoffset, GLint x, GLint y,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset, GLint x,
+ GLint y, GLsizei width,
+ GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOVERFILLPATHINSTANCEDNVPROC)(GLsizei numPaths, GLenum pathNameType,
+ const void *paths, GLuint pathBase,
+ GLenum coverMode,
+ GLenum transformType,
+ const GLfloat *transformValues);
+typedef void(GLAD_API_PTR *PFNGLCOVERFILLPATHNVPROC)(GLuint path, GLenum coverMode);
+typedef void(GLAD_API_PTR *PFNGLCOVERSTROKEPATHINSTANCEDNVPROC)(
+ GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode,
+ GLenum transformType, const GLfloat *transformValues);
+typedef void(GLAD_API_PTR *PFNGLCOVERSTROKEPATHNVPROC)(GLuint path, GLenum coverMode);
+typedef void(GLAD_API_PTR *PFNGLCOVERAGEMODULATIONNVPROC)(GLenum components);
+typedef void(GLAD_API_PTR *PFNGLCOVERAGEMODULATIONTABLENVPROC)(GLsizei n, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLCREATEBUFFERSPROC)(GLsizei n, GLuint *buffers);
+typedef void(GLAD_API_PTR *PFNGLCREATECOMMANDLISTSNVPROC)(GLsizei n, GLuint *lists);
+typedef void(GLAD_API_PTR *PFNGLCREATEFRAMEBUFFERSPROC)(GLsizei n, GLuint *framebuffers);
+typedef void(GLAD_API_PTR *PFNGLCREATEMEMORYOBJECTSEXTPROC)(GLsizei n, GLuint *memoryObjects);
+typedef void(GLAD_API_PTR *PFNGLCREATEPERFQUERYINTELPROC)(GLuint queryId, GLuint *queryHandle);
+typedef GLuint(GLAD_API_PTR *PFNGLCREATEPROGRAMPROC)(void);
+typedef GLhandleARB(GLAD_API_PTR *PFNGLCREATEPROGRAMOBJECTARBPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLCREATEPROGRAMPIPELINESPROC)(GLsizei n, GLuint *pipelines);
+typedef GLuint(GLAD_API_PTR *PFNGLCREATEPROGRESSFENCENVXPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLCREATEQUERIESPROC)(GLenum target, GLsizei n, GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLCREATERENDERBUFFERSPROC)(GLsizei n, GLuint *renderbuffers);
+typedef void(GLAD_API_PTR *PFNGLCREATESAMPLERSPROC)(GLsizei n, GLuint *samplers);
+typedef void(GLAD_API_PTR *PFNGLCREATESEMAPHORESNVPROC)(GLsizei n, GLuint *semaphores);
+typedef GLuint(GLAD_API_PTR *PFNGLCREATESHADERPROC)(GLenum type);
+typedef GLhandleARB(GLAD_API_PTR *PFNGLCREATESHADEROBJECTARBPROC)(GLenum shaderType);
+typedef GLuint(GLAD_API_PTR *PFNGLCREATESHADERPROGRAMEXTPROC)(GLenum type, const GLchar *string);
+typedef GLuint(GLAD_API_PTR *PFNGLCREATESHADERPROGRAMVPROC)(GLenum type, GLsizei count,
+ const GLchar *const *strings);
+typedef void(GLAD_API_PTR *PFNGLCREATESTATESNVPROC)(GLsizei n, GLuint *states);
+typedef GLsync(GLAD_API_PTR *PFNGLCREATESYNCFROMCLEVENTARBPROC)(struct _cl_context *context,
+ struct _cl_event *event,
+ GLbitfield flags);
+typedef void(GLAD_API_PTR *PFNGLCREATETEXTURESPROC)(GLenum target, GLsizei n, GLuint *textures);
+typedef void(GLAD_API_PTR *PFNGLCREATETRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLCREATEVERTEXARRAYSPROC)(GLsizei n, GLuint *arrays);
+typedef void(GLAD_API_PTR *PFNGLCULLFACEPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLCULLPARAMETERDVEXTPROC)(GLenum pname, GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLCULLPARAMETERFVEXTPROC)(GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLCURRENTPALETTEMATRIXARBPROC)(GLint index);
+typedef void(GLAD_API_PTR *PFNGLDEBUGMESSAGECALLBACKPROC)(GLDEBUGPROC callback,
+ const void *userParam);
+typedef void(GLAD_API_PTR *PFNGLDEBUGMESSAGECALLBACKAMDPROC)(GLDEBUGPROCAMD callback,
+ void *userParam);
+typedef void(GLAD_API_PTR *PFNGLDEBUGMESSAGECALLBACKARBPROC)(GLDEBUGPROCARB callback,
+ const void *userParam);
+typedef void(GLAD_API_PTR *PFNGLDEBUGMESSAGECONTROLPROC)(GLenum source, GLenum type,
+ GLenum severity, GLsizei count,
+ const GLuint *ids, GLboolean enabled);
+typedef void(GLAD_API_PTR *PFNGLDEBUGMESSAGECONTROLARBPROC)(GLenum source, GLenum type,
+ GLenum severity, GLsizei count,
+ const GLuint *ids, GLboolean enabled);
+typedef void(GLAD_API_PTR *PFNGLDEBUGMESSAGEENABLEAMDPROC)(GLenum category, GLenum severity,
+ GLsizei count, const GLuint *ids,
+ GLboolean enabled);
+typedef void(GLAD_API_PTR *PFNGLDEBUGMESSAGEINSERTPROC)(GLenum source, GLenum type, GLuint id,
+ GLenum severity, GLsizei length,
+ const GLchar *buf);
+typedef void(GLAD_API_PTR *PFNGLDEBUGMESSAGEINSERTAMDPROC)(GLenum category, GLenum severity,
+ GLuint id, GLsizei length,
+ const GLchar *buf);
+typedef void(GLAD_API_PTR *PFNGLDEBUGMESSAGEINSERTARBPROC)(GLenum source, GLenum type, GLuint id,
+ GLenum severity, GLsizei length,
+ const GLchar *buf);
+typedef void(GLAD_API_PTR *PFNGLDEFORMSGIXPROC)(GLbitfield mask);
+typedef void(GLAD_API_PTR *PFNGLDEFORMATIONMAP3DSGIXPROC)(GLenum target, GLdouble u1, GLdouble u2,
+ GLint ustride, GLint uorder, GLdouble v1,
+ GLdouble v2, GLint vstride, GLint vorder,
+ GLdouble w1, GLdouble w2, GLint wstride,
+ GLint worder, const GLdouble *points);
+typedef void(GLAD_API_PTR *PFNGLDEFORMATIONMAP3FSGIXPROC)(GLenum target, GLfloat u1, GLfloat u2,
+ GLint ustride, GLint uorder, GLfloat v1,
+ GLfloat v2, GLint vstride, GLint vorder,
+ GLfloat w1, GLfloat w2, GLint wstride,
+ GLint worder, const GLfloat *points);
+typedef void(GLAD_API_PTR *PFNGLDELETEASYNCMARKERSSGIXPROC)(GLuint marker, GLsizei range);
+typedef void(GLAD_API_PTR *PFNGLDELETEBUFFERSPROC)(GLsizei n, const GLuint *buffers);
+typedef void(GLAD_API_PTR *PFNGLDELETEBUFFERSARBPROC)(GLsizei n, const GLuint *buffers);
+typedef void(GLAD_API_PTR *PFNGLDELETECOMMANDLISTSNVPROC)(GLsizei n, const GLuint *lists);
+typedef void(GLAD_API_PTR *PFNGLDELETEFENCESAPPLEPROC)(GLsizei n, const GLuint *fences);
+typedef void(GLAD_API_PTR *PFNGLDELETEFENCESNVPROC)(GLsizei n, const GLuint *fences);
+typedef void(GLAD_API_PTR *PFNGLDELETEFRAGMENTSHADERATIPROC)(GLuint id);
+typedef void(GLAD_API_PTR *PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint *framebuffers);
+typedef void(GLAD_API_PTR *PFNGLDELETEFRAMEBUFFERSEXTPROC)(GLsizei n, const GLuint *framebuffers);
+typedef void(GLAD_API_PTR *PFNGLDELETEMEMORYOBJECTSEXTPROC)(GLsizei n, const GLuint *memoryObjects);
+typedef void(GLAD_API_PTR *PFNGLDELETENAMEDSTRINGARBPROC)(GLint namelen, const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLDELETENAMESAMDPROC)(GLenum identifier, GLuint num,
+ const GLuint *names);
+typedef void(GLAD_API_PTR *PFNGLDELETEOBJECTARBPROC)(GLhandleARB obj);
+typedef void(GLAD_API_PTR *PFNGLDELETEOCCLUSIONQUERIESNVPROC)(GLsizei n, const GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLDELETEPATHSNVPROC)(GLuint path, GLsizei range);
+typedef void(GLAD_API_PTR *PFNGLDELETEPERFMONITORSAMDPROC)(GLsizei n, GLuint *monitors);
+typedef void(GLAD_API_PTR *PFNGLDELETEPERFQUERYINTELPROC)(GLuint queryHandle);
+typedef void(GLAD_API_PTR *PFNGLDELETEPROGRAMPROC)(GLuint program);
+typedef void(GLAD_API_PTR *PFNGLDELETEPROGRAMPIPELINESPROC)(GLsizei n, const GLuint *pipelines);
+typedef void(GLAD_API_PTR *PFNGLDELETEPROGRAMSARBPROC)(GLsizei n, const GLuint *programs);
+typedef void(GLAD_API_PTR *PFNGLDELETEPROGRAMSNVPROC)(GLsizei n, const GLuint *programs);
+typedef void(GLAD_API_PTR *PFNGLDELETEQUERIESPROC)(GLsizei n, const GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLDELETEQUERIESARBPROC)(GLsizei n, const GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLDELETEQUERYRESOURCETAGNVPROC)(GLsizei n, const GLint *tagIds);
+typedef void(GLAD_API_PTR *PFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint *renderbuffers);
+typedef void(GLAD_API_PTR *PFNGLDELETERENDERBUFFERSEXTPROC)(GLsizei n, const GLuint *renderbuffers);
+typedef void(GLAD_API_PTR *PFNGLDELETESAMPLERSPROC)(GLsizei count, const GLuint *samplers);
+typedef void(GLAD_API_PTR *PFNGLDELETESEMAPHORESEXTPROC)(GLsizei n, const GLuint *semaphores);
+typedef void(GLAD_API_PTR *PFNGLDELETESHADERPROC)(GLuint shader);
+typedef void(GLAD_API_PTR *PFNGLDELETESTATESNVPROC)(GLsizei n, const GLuint *states);
+typedef void(GLAD_API_PTR *PFNGLDELETESYNCPROC)(GLsync sync);
+typedef void(GLAD_API_PTR *PFNGLDELETETEXTURESPROC)(GLsizei n, const GLuint *textures);
+typedef void(GLAD_API_PTR *PFNGLDELETETEXTURESEXTPROC)(GLsizei n, const GLuint *textures);
+typedef void(GLAD_API_PTR *PFNGLDELETETRANSFORMFEEDBACKSPROC)(GLsizei n, const GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLDELETETRANSFORMFEEDBACKSNVPROC)(GLsizei n, const GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLDELETEVERTEXARRAYSPROC)(GLsizei n, const GLuint *arrays);
+typedef void(GLAD_API_PTR *PFNGLDELETEVERTEXARRAYSAPPLEPROC)(GLsizei n, const GLuint *arrays);
+typedef void(GLAD_API_PTR *PFNGLDELETEVERTEXSHADEREXTPROC)(GLuint id);
+typedef void(GLAD_API_PTR *PFNGLDEPTHBOUNDSEXTPROC)(GLclampd zmin, GLclampd zmax);
+typedef void(GLAD_API_PTR *PFNGLDEPTHBOUNDSDNVPROC)(GLdouble zmin, GLdouble zmax);
+typedef void(GLAD_API_PTR *PFNGLDEPTHFUNCPROC)(GLenum func);
+typedef void(GLAD_API_PTR *PFNGLDEPTHMASKPROC)(GLboolean flag);
+typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEPROC)(GLdouble n, GLdouble f);
+typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEARRAYDVNVPROC)(GLuint first, GLsizei count,
+ const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEARRAYVPROC)(GLuint first, GLsizei count,
+ const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEINDEXEDPROC)(GLuint index, GLdouble n, GLdouble f);
+typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEINDEXEDDNVPROC)(GLuint index, GLdouble n, GLdouble f);
+typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEDNVPROC)(GLdouble zNear, GLdouble zFar);
+typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEFPROC)(GLfloat n, GLfloat f);
+typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEFOESPROC)(GLclampf n, GLclampf f);
+typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEXOESPROC)(GLfixed n, GLfixed f);
+typedef void(GLAD_API_PTR *PFNGLDETACHOBJECTARBPROC)(GLhandleARB containerObj,
+ GLhandleARB attachedObj);
+typedef void(GLAD_API_PTR *PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader);
+typedef void(GLAD_API_PTR *PFNGLDETAILTEXFUNCSGISPROC)(GLenum target, GLsizei n,
+ const GLfloat *points);
+typedef void(GLAD_API_PTR *PFNGLDISABLEPROC)(GLenum cap);
+typedef void(GLAD_API_PTR *PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC)(GLenum array, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLDISABLECLIENTSTATEIEXTPROC)(GLenum array, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLDISABLEINDEXEDEXTPROC)(GLenum target, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC)(GLuint id);
+typedef void(GLAD_API_PTR *PFNGLDISABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC)(GLuint vaobj, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLDISABLEVERTEXARRAYEXTPROC)(GLuint vaobj, GLenum array);
+typedef void(GLAD_API_PTR *PFNGLDISABLEVERTEXATTRIBAPPLEPROC)(GLuint index, GLenum pname);
+typedef void(GLAD_API_PTR *PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint index);
+typedef void(GLAD_API_PTR *PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)(GLuint index);
+typedef void(GLAD_API_PTR *PFNGLDISABLEIPROC)(GLenum target, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLDISPATCHCOMPUTEPROC)(GLuint num_groups_x, GLuint num_groups_y,
+ GLuint num_groups_z);
+typedef void(GLAD_API_PTR *PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC)(
+ GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x,
+ GLuint group_size_y, GLuint group_size_z);
+typedef void(GLAD_API_PTR *PFNGLDISPATCHCOMPUTEINDIRECTPROC)(GLintptr indirect);
+typedef void(GLAD_API_PTR *PFNGLDRAWARRAYSPROC)(GLenum mode, GLint first, GLsizei count);
+typedef void(GLAD_API_PTR *PFNGLDRAWARRAYSEXTPROC)(GLenum mode, GLint first, GLsizei count);
+typedef void(GLAD_API_PTR *PFNGLDRAWARRAYSINDIRECTPROC)(GLenum mode, const void *indirect);
+typedef void(GLAD_API_PTR *PFNGLDRAWARRAYSINSTANCEDPROC)(GLenum mode, GLint first, GLsizei count,
+ GLsizei instancecount);
+typedef void(GLAD_API_PTR *PFNGLDRAWARRAYSINSTANCEDARBPROC)(GLenum mode, GLint first, GLsizei count,
+ GLsizei primcount);
+typedef void(GLAD_API_PTR *PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC)(GLenum mode, GLint first,
+ GLsizei count,
+ GLsizei instancecount,
+ GLuint baseinstance);
+typedef void(GLAD_API_PTR *PFNGLDRAWARRAYSINSTANCEDEXTPROC)(GLenum mode, GLint start, GLsizei count,
+ GLsizei primcount);
+typedef void(GLAD_API_PTR *PFNGLDRAWBUFFERPROC)(GLenum buf);
+typedef void(GLAD_API_PTR *PFNGLDRAWBUFFERSPROC)(GLsizei n, const GLenum *bufs);
+typedef void(GLAD_API_PTR *PFNGLDRAWBUFFERSARBPROC)(GLsizei n, const GLenum *bufs);
+typedef void(GLAD_API_PTR *PFNGLDRAWBUFFERSATIPROC)(GLsizei n, const GLenum *bufs);
+typedef void(GLAD_API_PTR *PFNGLDRAWCOMMANDSADDRESSNVPROC)(GLenum primitiveMode,
+ const GLuint64 *indirects,
+ const GLsizei *sizes, GLuint count);
+typedef void(GLAD_API_PTR *PFNGLDRAWCOMMANDSNVPROC)(GLenum primitiveMode, GLuint buffer,
+ const GLintptr *indirects, const GLsizei *sizes,
+ GLuint count);
+typedef void(GLAD_API_PTR *PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC)(const GLuint64 *indirects,
+ const GLsizei *sizes,
+ const GLuint *states,
+ const GLuint *fbos, GLuint count);
+typedef void(GLAD_API_PTR *PFNGLDRAWCOMMANDSSTATESNVPROC)(GLuint buffer, const GLintptr *indirects,
+ const GLsizei *sizes,
+ const GLuint *states, const GLuint *fbos,
+ GLuint count);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTARRAYAPPLEPROC)(GLenum mode, GLint first, GLsizei count);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTARRAYATIPROC)(GLenum mode, GLsizei count);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSPROC)(GLenum mode, GLsizei count, GLenum type,
+ const void *indices);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type,
+ const void *indices, GLint basevertex);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSINDIRECTPROC)(GLenum mode, GLenum type,
+ const void *indirect);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDPROC)(GLenum mode, GLsizei count, GLenum type,
+ const void *indices,
+ GLsizei instancecount);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDARBPROC)(GLenum mode, GLsizei count,
+ GLenum type, const void *indices,
+ GLsizei primcount);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC)(GLenum mode, GLsizei count,
+ GLenum type,
+ const void *indices,
+ GLsizei instancecount,
+ GLuint baseinstance);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)(GLenum mode, GLsizei count,
+ GLenum type,
+ const void *indices,
+ GLsizei instancecount,
+ GLint basevertex);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC)(
+ GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount,
+ GLint basevertex, GLuint baseinstance);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDEXTPROC)(GLenum mode, GLsizei count,
+ GLenum type, const void *indices,
+ GLsizei primcount);
+typedef void(GLAD_API_PTR *PFNGLDRAWMESHARRAYSSUNPROC)(GLenum mode, GLint first, GLsizei count,
+ GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLDRAWMESHTASKSINDIRECTNVPROC)(GLintptr indirect);
+typedef void(GLAD_API_PTR *PFNGLDRAWMESHTASKSNVPROC)(GLuint first, GLuint count);
+typedef void(GLAD_API_PTR *PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC)(GLenum mode, GLuint start,
+ GLuint end, GLint first,
+ GLsizei count);
+typedef void(GLAD_API_PTR *PFNGLDRAWRANGEELEMENTARRAYATIPROC)(GLenum mode, GLuint start, GLuint end,
+ GLsizei count);
+typedef void(GLAD_API_PTR *PFNGLDRAWRANGEELEMENTSPROC)(GLenum mode, GLuint start, GLuint end,
+ GLsizei count, GLenum type,
+ const void *indices);
+typedef void(GLAD_API_PTR *PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)(GLenum mode, GLuint start,
+ GLuint end, GLsizei count,
+ GLenum type, const void *indices,
+ GLint basevertex);
+typedef void(GLAD_API_PTR *PFNGLDRAWRANGEELEMENTSEXTPROC)(GLenum mode, GLuint start, GLuint end,
+ GLsizei count, GLenum type,
+ const void *indices);
+typedef void(GLAD_API_PTR *PFNGLDRAWTEXTURENVPROC)(GLuint texture, GLuint sampler, GLfloat x0,
+ GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z,
+ GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1);
+typedef void(GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKPROC)(GLenum mode, GLuint id);
+typedef void(GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC)(GLenum mode, GLuint id,
+ GLsizei instancecount);
+typedef void(GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKNVPROC)(GLenum mode, GLuint id);
+typedef void(GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC)(GLenum mode, GLuint id,
+ GLuint stream);
+typedef void(GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC)(GLenum mode, GLuint id,
+ GLuint stream,
+ GLsizei instancecount);
+typedef void(GLAD_API_PTR *PFNGLDRAWVKIMAGENVPROC)(GLuint64 vkImage, GLuint sampler, GLfloat x0,
+ GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z,
+ GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1);
+typedef void(GLAD_API_PTR *PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC)(GLenum target, GLeglImageOES image,
+ const GLint *attrib_list);
+typedef void(GLAD_API_PTR *PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC)(GLuint texture,
+ GLeglImageOES image,
+ const GLint *attrib_list);
+typedef void(GLAD_API_PTR *PFNGLEDGEFLAGFORMATNVPROC)(GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLEDGEFLAGPOINTEREXTPROC)(GLsizei stride, GLsizei count,
+ const GLboolean *pointer);
+typedef void(GLAD_API_PTR *PFNGLEDGEFLAGPOINTERLISTIBMPROC)(GLint stride, const GLboolean **pointer,
+ GLint ptrstride);
+typedef void(GLAD_API_PTR *PFNGLELEMENTPOINTERAPPLEPROC)(GLenum type, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLELEMENTPOINTERATIPROC)(GLenum type, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLENABLEPROC)(GLenum cap);
+typedef void(GLAD_API_PTR *PFNGLENABLECLIENTSTATEINDEXEDEXTPROC)(GLenum array, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLENABLECLIENTSTATEIEXTPROC)(GLenum array, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLENABLEINDEXEDEXTPROC)(GLenum target, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLENABLEVARIANTCLIENTSTATEEXTPROC)(GLuint id);
+typedef void(GLAD_API_PTR *PFNGLENABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLENABLEVERTEXARRAYATTRIBEXTPROC)(GLuint vaobj, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLENABLEVERTEXARRAYEXTPROC)(GLuint vaobj, GLenum array);
+typedef void(GLAD_API_PTR *PFNGLENABLEVERTEXATTRIBAPPLEPROC)(GLuint index, GLenum pname);
+typedef void(GLAD_API_PTR *PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint index);
+typedef void(GLAD_API_PTR *PFNGLENABLEVERTEXATTRIBARRAYARBPROC)(GLuint index);
+typedef void(GLAD_API_PTR *PFNGLENABLEIPROC)(GLenum target, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLENDCONDITIONALRENDERPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLENDCONDITIONALRENDERNVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLENDCONDITIONALRENDERNVXPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLENDFRAGMENTSHADERATIPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLENDOCCLUSIONQUERYNVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLENDPERFMONITORAMDPROC)(GLuint monitor);
+typedef void(GLAD_API_PTR *PFNGLENDPERFQUERYINTELPROC)(GLuint queryHandle);
+typedef void(GLAD_API_PTR *PFNGLENDQUERYPROC)(GLenum target);
+typedef void(GLAD_API_PTR *PFNGLENDQUERYARBPROC)(GLenum target);
+typedef void(GLAD_API_PTR *PFNGLENDQUERYINDEXEDPROC)(GLenum target, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLENDTRANSFORMFEEDBACKPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLENDTRANSFORMFEEDBACKEXTPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLENDTRANSFORMFEEDBACKNVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLENDVERTEXSHADEREXTPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLENDVIDEOCAPTURENVPROC)(GLuint video_capture_slot);
+typedef void(GLAD_API_PTR *PFNGLEVALCOORD1XOESPROC)(GLfixed u);
+typedef void(GLAD_API_PTR *PFNGLEVALCOORD1XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLEVALCOORD2XOESPROC)(GLfixed u, GLfixed v);
+typedef void(GLAD_API_PTR *PFNGLEVALCOORD2XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLEVALMAPSNVPROC)(GLenum target, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLEVALUATEDEPTHVALUESARBPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLEXECUTEPROGRAMNVPROC)(GLenum target, GLuint id,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLEXTRACTCOMPONENTEXTPROC)(GLuint res, GLuint src, GLuint num);
+typedef void(GLAD_API_PTR *PFNGLFEEDBACKBUFFERXOESPROC)(GLsizei n, GLenum type,
+ const GLfixed *buffer);
+typedef GLsync(GLAD_API_PTR *PFNGLFENCESYNCPROC)(GLenum condition, GLbitfield flags);
+typedef void(GLAD_API_PTR *PFNGLFINALCOMBINERINPUTNVPROC)(GLenum variable, GLenum input,
+ GLenum mapping, GLenum componentUsage);
+typedef void(GLAD_API_PTR *PFNGLFINISHPROC)(void);
+typedef GLint(GLAD_API_PTR *PFNGLFINISHASYNCSGIXPROC)(GLuint *markerp);
+typedef void(GLAD_API_PTR *PFNGLFINISHFENCEAPPLEPROC)(GLuint fence);
+typedef void(GLAD_API_PTR *PFNGLFINISHFENCENVPROC)(GLuint fence);
+typedef void(GLAD_API_PTR *PFNGLFINISHOBJECTAPPLEPROC)(GLenum object, GLint name);
+typedef void(GLAD_API_PTR *PFNGLFINISHTEXTURESUNXPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLFLUSHPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLFLUSHMAPPEDBUFFERRANGEPROC)(GLenum target, GLintptr offset,
+ GLsizeiptr length);
+typedef void(GLAD_API_PTR *PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC)(GLenum target, GLintptr offset,
+ GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr length);
+typedef void(GLAD_API_PTR *PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr length);
+typedef void(GLAD_API_PTR *PFNGLFLUSHPIXELDATARANGENVPROC)(GLenum target);
+typedef void(GLAD_API_PTR *PFNGLFLUSHRASTERSGIXPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLFLUSHSTATICDATAIBMPROC)(GLenum target);
+typedef void(GLAD_API_PTR *PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC)(GLsizei length, void *pointer);
+typedef void(GLAD_API_PTR *PFNGLFLUSHVERTEXARRAYRANGENVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLFOGCOORDFORMATNVPROC)(GLenum type, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLFOGCOORDPOINTEREXTPROC)(GLenum type, GLsizei stride,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLFOGCOORDPOINTERLISTIBMPROC)(GLenum type, GLint stride,
+ const void **pointer, GLint ptrstride);
+typedef void(GLAD_API_PTR *PFNGLFOGCOORDDEXTPROC)(GLdouble coord);
+typedef void(GLAD_API_PTR *PFNGLFOGCOORDDVEXTPROC)(const GLdouble *coord);
+typedef void(GLAD_API_PTR *PFNGLFOGCOORDFEXTPROC)(GLfloat coord);
+typedef void(GLAD_API_PTR *PFNGLFOGCOORDFVEXTPROC)(const GLfloat *coord);
+typedef void(GLAD_API_PTR *PFNGLFOGCOORDHNVPROC)(GLhalfNV fog);
+typedef void(GLAD_API_PTR *PFNGLFOGCOORDHVNVPROC)(const GLhalfNV *fog);
+typedef void(GLAD_API_PTR *PFNGLFOGFUNCSGISPROC)(GLsizei n, const GLfloat *points);
+typedef void(GLAD_API_PTR *PFNGLFOGXOESPROC)(GLenum pname, GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLFOGXVOESPROC)(GLenum pname, const GLfixed *param);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTCOLORMATERIALSGIXPROC)(GLenum face, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTCOVERAGECOLORNVPROC)(GLuint color);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTLIGHTMODELFSGIXPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTLIGHTMODELFVSGIXPROC)(GLenum pname, const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTLIGHTMODELISGIXPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTLIGHTMODELIVSGIXPROC)(GLenum pname, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTLIGHTFSGIXPROC)(GLenum light, GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTLIGHTFVSGIXPROC)(GLenum light, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTLIGHTISGIXPROC)(GLenum light, GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTLIGHTIVSGIXPROC)(GLenum light, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTMATERIALFSGIXPROC)(GLenum face, GLenum pname,
+ GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTMATERIALFVSGIXPROC)(GLenum face, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTMATERIALISGIXPROC)(GLenum face, GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTMATERIALIVSGIXPROC)(GLenum face, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLFRAMETERMINATORGREMEDYPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLFRAMEZOOMSGIXPROC)(GLint factor);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC)(GLuint framebuffer, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC)(GLuint framebuffer, GLsizei n,
+ const GLenum *bufs);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERPARAMETERIPROC)(GLenum target, GLenum pname,
+ GLint param);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERPARAMETERIMESAPROC)(GLenum target, GLenum pname,
+ GLint param);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERREADBUFFEREXTPROC)(GLuint framebuffer, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment,
+ GLenum renderbuffertarget,
+ GLuint renderbuffer);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)(GLenum target, GLenum attachment,
+ GLenum renderbuffertarget,
+ GLuint renderbuffer);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)(GLenum target, GLuint start,
+ GLsizei count,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)(GLenum target, GLuint start,
+ GLsizei count,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC)(GLenum target,
+ GLuint numsamples,
+ GLuint pixelindex,
+ const GLfloat *values);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTUREPROC)(GLenum target, GLenum attachment,
+ GLuint texture, GLint level);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE1DPROC)(GLenum target, GLenum attachment,
+ GLenum textarget, GLuint texture,
+ GLint level);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE1DEXTPROC)(GLenum target, GLenum attachment,
+ GLenum textarget, GLuint texture,
+ GLint level);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment,
+ GLenum textarget, GLuint texture,
+ GLint level);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)(GLenum target, GLenum attachment,
+ GLenum textarget, GLuint texture,
+ GLint level);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE3DPROC)(GLenum target, GLenum attachment,
+ GLenum textarget, GLuint texture,
+ GLint level, GLint zoffset);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE3DEXTPROC)(GLenum target, GLenum attachment,
+ GLenum textarget, GLuint texture,
+ GLint level, GLint zoffset);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTUREARBPROC)(GLenum target, GLenum attachment,
+ GLuint texture, GLint level);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTUREEXTPROC)(GLenum target, GLenum attachment,
+ GLuint texture, GLint level);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTUREFACEARBPROC)(GLenum target, GLenum attachment,
+ GLuint texture, GLint level,
+ GLenum face);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC)(GLenum target, GLenum attachment,
+ GLuint texture, GLint level,
+ GLenum face);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURELAYERPROC)(GLenum target, GLenum attachment,
+ GLuint texture, GLint level,
+ GLint layer);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURELAYERARBPROC)(GLenum target, GLenum attachment,
+ GLuint texture, GLint level,
+ GLint layer);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC)(GLenum target, GLenum attachment,
+ GLuint texture, GLint level,
+ GLint layer);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC)(GLenum target,
+ GLenum attachment,
+ GLuint texture, GLint level,
+ GLint baseViewIndex,
+ GLsizei numViews);
+typedef void(GLAD_API_PTR *PFNGLFREEOBJECTBUFFERATIPROC)(GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLFRONTFACEPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLFRUSTUMFOESPROC)(GLfloat l, GLfloat r, GLfloat b, GLfloat t,
+ GLfloat n, GLfloat f);
+typedef void(GLAD_API_PTR *PFNGLFRUSTUMXOESPROC)(GLfixed l, GLfixed r, GLfixed b, GLfixed t,
+ GLfixed n, GLfixed f);
+typedef GLuint(GLAD_API_PTR *PFNGLGENASYNCMARKERSSGIXPROC)(GLsizei range);
+typedef void(GLAD_API_PTR *PFNGLGENBUFFERSPROC)(GLsizei n, GLuint *buffers);
+typedef void(GLAD_API_PTR *PFNGLGENBUFFERSARBPROC)(GLsizei n, GLuint *buffers);
+typedef void(GLAD_API_PTR *PFNGLGENFENCESAPPLEPROC)(GLsizei n, GLuint *fences);
+typedef void(GLAD_API_PTR *PFNGLGENFENCESNVPROC)(GLsizei n, GLuint *fences);
+typedef GLuint(GLAD_API_PTR *PFNGLGENFRAGMENTSHADERSATIPROC)(GLuint range);
+typedef void(GLAD_API_PTR *PFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint *framebuffers);
+typedef void(GLAD_API_PTR *PFNGLGENFRAMEBUFFERSEXTPROC)(GLsizei n, GLuint *framebuffers);
+typedef void(GLAD_API_PTR *PFNGLGENNAMESAMDPROC)(GLenum identifier, GLuint num, GLuint *names);
+typedef void(GLAD_API_PTR *PFNGLGENOCCLUSIONQUERIESNVPROC)(GLsizei n, GLuint *ids);
+typedef GLuint(GLAD_API_PTR *PFNGLGENPATHSNVPROC)(GLsizei range);
+typedef void(GLAD_API_PTR *PFNGLGENPERFMONITORSAMDPROC)(GLsizei n, GLuint *monitors);
+typedef void(GLAD_API_PTR *PFNGLGENPROGRAMPIPELINESPROC)(GLsizei n, GLuint *pipelines);
+typedef void(GLAD_API_PTR *PFNGLGENPROGRAMSARBPROC)(GLsizei n, GLuint *programs);
+typedef void(GLAD_API_PTR *PFNGLGENPROGRAMSNVPROC)(GLsizei n, GLuint *programs);
+typedef void(GLAD_API_PTR *PFNGLGENQUERIESPROC)(GLsizei n, GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLGENQUERIESARBPROC)(GLsizei n, GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLGENQUERYRESOURCETAGNVPROC)(GLsizei n, GLint *tagIds);
+typedef void(GLAD_API_PTR *PFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint *renderbuffers);
+typedef void(GLAD_API_PTR *PFNGLGENRENDERBUFFERSEXTPROC)(GLsizei n, GLuint *renderbuffers);
+typedef void(GLAD_API_PTR *PFNGLGENSAMPLERSPROC)(GLsizei count, GLuint *samplers);
+typedef void(GLAD_API_PTR *PFNGLGENSEMAPHORESEXTPROC)(GLsizei n, GLuint *semaphores);
+typedef GLuint(GLAD_API_PTR *PFNGLGENSYMBOLSEXTPROC)(GLenum datatype, GLenum storagetype,
+ GLenum range, GLuint components);
+typedef void(GLAD_API_PTR *PFNGLGENTEXTURESPROC)(GLsizei n, GLuint *textures);
+typedef void(GLAD_API_PTR *PFNGLGENTEXTURESEXTPROC)(GLsizei n, GLuint *textures);
+typedef void(GLAD_API_PTR *PFNGLGENTRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLGENTRANSFORMFEEDBACKSNVPROC)(GLsizei n, GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLGENVERTEXARRAYSPROC)(GLsizei n, GLuint *arrays);
+typedef void(GLAD_API_PTR *PFNGLGENVERTEXARRAYSAPPLEPROC)(GLsizei n, GLuint *arrays);
+typedef GLuint(GLAD_API_PTR *PFNGLGENVERTEXSHADERSEXTPROC)(GLuint range);
+typedef void(GLAD_API_PTR *PFNGLGENERATEMIPMAPPROC)(GLenum target);
+typedef void(GLAD_API_PTR *PFNGLGENERATEMIPMAPEXTPROC)(GLenum target);
+typedef void(GLAD_API_PTR *PFNGLGENERATEMULTITEXMIPMAPEXTPROC)(GLenum texunit, GLenum target);
+typedef void(GLAD_API_PTR *PFNGLGENERATETEXTUREMIPMAPPROC)(GLuint texture);
+typedef void(GLAD_API_PTR *PFNGLGENERATETEXTUREMIPMAPEXTPROC)(GLuint texture, GLenum target);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC)(GLuint program,
+ GLuint bufferIndex,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVEATTRIBPROC)(GLuint program, GLuint index, GLsizei bufSize,
+ GLsizei *length, GLint *size, GLenum *type,
+ GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVEATTRIBARBPROC)(GLhandleARB programObj, GLuint index,
+ GLsizei maxLength, GLsizei *length,
+ GLint *size, GLenum *type, GLcharARB *name);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVESUBROUTINENAMEPROC)(GLuint program, GLenum shadertype,
+ GLuint index, GLsizei bufSize,
+ GLsizei *length, GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC)(GLuint program,
+ GLenum shadertype, GLuint index,
+ GLsizei bufSize,
+ GLsizei *length, GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC)(GLuint program, GLenum shadertype,
+ GLuint index, GLenum pname,
+ GLint *values);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVEUNIFORMPROC)(GLuint program, GLuint index, GLsizei bufSize,
+ GLsizei *length, GLint *size, GLenum *type,
+ GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVEUNIFORMARBPROC)(GLhandleARB programObj, GLuint index,
+ GLsizei maxLength, GLsizei *length,
+ GLint *size, GLenum *type,
+ GLcharARB *name);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)(GLuint program,
+ GLuint uniformBlockIndex,
+ GLsizei bufSize, GLsizei *length,
+ GLchar *uniformBlockName);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVEUNIFORMBLOCKIVPROC)(GLuint program,
+ GLuint uniformBlockIndex, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVEUNIFORMNAMEPROC)(GLuint program, GLuint uniformIndex,
+ GLsizei bufSize, GLsizei *length,
+ GLchar *uniformName);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVEUNIFORMSIVPROC)(GLuint program, GLsizei uniformCount,
+ const GLuint *uniformIndices, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVEVARYINGNVPROC)(GLuint program, GLuint index,
+ GLsizei bufSize, GLsizei *length,
+ GLsizei *size, GLenum *type, GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETARRAYOBJECTFVATIPROC)(GLenum array, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETARRAYOBJECTIVATIPROC)(GLenum array, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETATTACHEDOBJECTSARBPROC)(GLhandleARB containerObj,
+ GLsizei maxCount, GLsizei *count,
+ GLhandleARB *obj);
+typedef void(GLAD_API_PTR *PFNGLGETATTACHEDSHADERSPROC)(GLuint program, GLsizei maxCount,
+ GLsizei *count, GLuint *shaders);
+typedef GLint(GLAD_API_PTR *PFNGLGETATTRIBLOCATIONPROC)(GLuint program, const GLchar *name);
+typedef GLint(GLAD_API_PTR *PFNGLGETATTRIBLOCATIONARBPROC)(GLhandleARB programObj,
+ const GLcharARB *name);
+typedef void(GLAD_API_PTR *PFNGLGETBOOLEANINDEXEDVEXTPROC)(GLenum target, GLuint index,
+ GLboolean *data);
+typedef void(GLAD_API_PTR *PFNGLGETBOOLEANI_VPROC)(GLenum target, GLuint index, GLboolean *data);
+typedef void(GLAD_API_PTR *PFNGLGETBOOLEANVPROC)(GLenum pname, GLboolean *data);
+typedef void(GLAD_API_PTR *PFNGLGETBUFFERPARAMETERI64VPROC)(GLenum target, GLenum pname,
+ GLint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETBUFFERPARAMETERIVARBPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETBUFFERPARAMETERUI64VNVPROC)(GLenum target, GLenum pname,
+ GLuint64EXT *params);
+typedef void(GLAD_API_PTR *PFNGLGETBUFFERPOINTERVPROC)(GLenum target, GLenum pname, void **params);
+typedef void(GLAD_API_PTR *PFNGLGETBUFFERPOINTERVARBPROC)(GLenum target, GLenum pname,
+ void **params);
+typedef void(GLAD_API_PTR *PFNGLGETBUFFERSUBDATAPROC)(GLenum target, GLintptr offset,
+ GLsizeiptr size, void *data);
+typedef void(GLAD_API_PTR *PFNGLGETBUFFERSUBDATAARBPROC)(GLenum target, GLintptrARB offset,
+ GLsizeiptrARB size, void *data);
+typedef void(GLAD_API_PTR *PFNGLGETCLIPPLANEFOESPROC)(GLenum plane, GLfloat *equation);
+typedef void(GLAD_API_PTR *PFNGLGETCLIPPLANEXOESPROC)(GLenum plane, GLfixed *equation);
+typedef void(GLAD_API_PTR *PFNGLGETCOLORTABLEEXTPROC)(GLenum target, GLenum format, GLenum type,
+ void *data);
+typedef void(GLAD_API_PTR *PFNGLGETCOLORTABLEPARAMETERFVEXTPROC)(GLenum target, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETCOLORTABLEPARAMETERFVSGIPROC)(GLenum target, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETCOLORTABLEPARAMETERIVEXTPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETCOLORTABLEPARAMETERIVSGIPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETCOLORTABLESGIPROC)(GLenum target, GLenum format, GLenum type,
+ void *table);
+typedef void(GLAD_API_PTR *PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC)(GLenum stage, GLenum portion,
+ GLenum variable, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC)(GLenum stage, GLenum portion,
+ GLenum variable, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC)(GLenum stage, GLenum portion,
+ GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC)(GLenum stage, GLenum portion,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC)(GLenum stage, GLenum pname,
+ GLfloat *params);
+typedef GLuint(GLAD_API_PTR *PFNGLGETCOMMANDHEADERNVPROC)(GLenum tokenID, GLuint size);
+typedef void(GLAD_API_PTR *PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC)(GLenum texunit, GLenum target,
+ GLint lod, void *img);
+typedef void(GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint level, void *img);
+typedef void(GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXIMAGEARBPROC)(GLenum target, GLint level,
+ void *img);
+typedef void(GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC)(GLuint texture, GLint level,
+ GLsizei bufSize, void *pixels);
+typedef void(GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC)(GLuint texture, GLenum target,
+ GLint lod, void *img);
+typedef void(GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC)(GLuint texture, GLint level,
+ GLint xoffset, GLint yoffset,
+ GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLsizei bufSize, void *pixels);
+typedef void(GLAD_API_PTR *PFNGLGETCONVOLUTIONFILTEREXTPROC)(GLenum target, GLenum format,
+ GLenum type, void *image);
+typedef void(GLAD_API_PTR *PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC)(GLenum target, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETCONVOLUTIONPARAMETERXVOESPROC)(GLenum target, GLenum pname,
+ GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLGETCOVERAGEMODULATIONTABLENVPROC)(GLsizei bufSize, GLfloat *v);
+typedef GLuint(GLAD_API_PTR *PFNGLGETDEBUGMESSAGELOGPROC)(GLuint count, GLsizei bufSize,
+ GLenum *sources, GLenum *types,
+ GLuint *ids, GLenum *severities,
+ GLsizei *lengths, GLchar *messageLog);
+typedef GLuint(GLAD_API_PTR *PFNGLGETDEBUGMESSAGELOGAMDPROC)(GLuint count, GLsizei bufSize,
+ GLenum *categories, GLenum *severities,
+ GLuint *ids, GLsizei *lengths,
+ GLchar *message);
+typedef GLuint(GLAD_API_PTR *PFNGLGETDEBUGMESSAGELOGARBPROC)(GLuint count, GLsizei bufSize,
+ GLenum *sources, GLenum *types,
+ GLuint *ids, GLenum *severities,
+ GLsizei *lengths, GLchar *messageLog);
+typedef void(GLAD_API_PTR *PFNGLGETDETAILTEXFUNCSGISPROC)(GLenum target, GLfloat *points);
+typedef void(GLAD_API_PTR *PFNGLGETDOUBLEINDEXEDVEXTPROC)(GLenum target, GLuint index,
+ GLdouble *data);
+typedef void(GLAD_API_PTR *PFNGLGETDOUBLEI_VPROC)(GLenum target, GLuint index, GLdouble *data);
+typedef void(GLAD_API_PTR *PFNGLGETDOUBLEI_VEXTPROC)(GLenum pname, GLuint index, GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETDOUBLEVPROC)(GLenum pname, GLdouble *data);
+typedef GLenum(GLAD_API_PTR *PFNGLGETERRORPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLGETFENCEIVNVPROC)(GLuint fence, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC)(GLenum variable,
+ GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC)(GLenum variable,
+ GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETFIRSTPERFQUERYIDINTELPROC)(GLuint *queryId);
+typedef void(GLAD_API_PTR *PFNGLGETFIXEDVOESPROC)(GLenum pname, GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLGETFLOATINDEXEDVEXTPROC)(GLenum target, GLuint index,
+ GLfloat *data);
+typedef void(GLAD_API_PTR *PFNGLGETFLOATI_VPROC)(GLenum target, GLuint index, GLfloat *data);
+typedef void(GLAD_API_PTR *PFNGLGETFLOATI_VEXTPROC)(GLenum pname, GLuint index, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETFLOATVPROC)(GLenum pname, GLfloat *data);
+typedef void(GLAD_API_PTR *PFNGLGETFOGFUNCSGISPROC)(GLfloat *points);
+typedef GLint(GLAD_API_PTR *PFNGLGETFRAGDATAINDEXPROC)(GLuint program, const GLchar *name);
+typedef GLint(GLAD_API_PTR *PFNGLGETFRAGDATALOCATIONPROC)(GLuint program, const GLchar *name);
+typedef GLint(GLAD_API_PTR *PFNGLGETFRAGDATALOCATIONEXTPROC)(GLuint program, const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETFRAGMENTLIGHTFVSGIXPROC)(GLenum light, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETFRAGMENTLIGHTIVSGIXPROC)(GLenum light, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETFRAGMENTMATERIALFVSGIXPROC)(GLenum face, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETFRAGMENTMATERIALIVSGIXPROC)(GLenum face, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum target,
+ GLenum attachment,
+ GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)(GLenum target,
+ GLenum attachment,
+ GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC)(GLenum target, GLenum pname,
+ GLuint numsamples,
+ GLuint pixelindex, GLsizei size,
+ GLfloat *values);
+typedef void(GLAD_API_PTR *PFNGLGETFRAMEBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC)(GLuint framebuffer, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef GLenum(GLAD_API_PTR *PFNGLGETGRAPHICSRESETSTATUSPROC)(void);
+typedef GLenum(GLAD_API_PTR *PFNGLGETGRAPHICSRESETSTATUSARBPROC)(void);
+typedef GLhandleARB(GLAD_API_PTR *PFNGLGETHANDLEARBPROC)(GLenum pname);
+typedef void(GLAD_API_PTR *PFNGLGETHISTOGRAMEXTPROC)(GLenum target, GLboolean reset, GLenum format,
+ GLenum type, void *values);
+typedef void(GLAD_API_PTR *PFNGLGETHISTOGRAMPARAMETERFVEXTPROC)(GLenum target, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETHISTOGRAMPARAMETERIVEXTPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETHISTOGRAMPARAMETERXVOESPROC)(GLenum target, GLenum pname,
+ GLfixed *params);
+typedef GLuint64(GLAD_API_PTR *PFNGLGETIMAGEHANDLEARBPROC)(GLuint texture, GLint level,
+ GLboolean layered, GLint layer,
+ GLenum format);
+typedef GLuint64(GLAD_API_PTR *PFNGLGETIMAGEHANDLENVPROC)(GLuint texture, GLint level,
+ GLboolean layered, GLint layer,
+ GLenum format);
+typedef void(GLAD_API_PTR *PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC)(GLenum target, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETINFOLOGARBPROC)(GLhandleARB obj, GLsizei maxLength,
+ GLsizei *length, GLcharARB *infoLog);
+typedef GLint(GLAD_API_PTR *PFNGLGETINSTRUMENTSSGIXPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLGETINTEGER64I_VPROC)(GLenum target, GLuint index, GLint64 *data);
+typedef void(GLAD_API_PTR *PFNGLGETINTEGER64VPROC)(GLenum pname, GLint64 *data);
+typedef void(GLAD_API_PTR *PFNGLGETINTEGERINDEXEDVEXTPROC)(GLenum target, GLuint index,
+ GLint *data);
+typedef void(GLAD_API_PTR *PFNGLGETINTEGERI_VPROC)(GLenum target, GLuint index, GLint *data);
+typedef void(GLAD_API_PTR *PFNGLGETINTEGERUI64I_VNVPROC)(GLenum value, GLuint index,
+ GLuint64EXT *result);
+typedef void(GLAD_API_PTR *PFNGLGETINTEGERUI64VNVPROC)(GLenum value, GLuint64EXT *result);
+typedef void(GLAD_API_PTR *PFNGLGETINTEGERVPROC)(GLenum pname, GLint *data);
+typedef void(GLAD_API_PTR *PFNGLGETINTERNALFORMATSAMPLEIVNVPROC)(GLenum target,
+ GLenum internalformat,
+ GLsizei samples, GLenum pname,
+ GLsizei count, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETINTERNALFORMATI64VPROC)(GLenum target, GLenum internalformat,
+ GLenum pname, GLsizei count,
+ GLint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETINTERNALFORMATIVPROC)(GLenum target, GLenum internalformat,
+ GLenum pname, GLsizei count,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETINVARIANTBOOLEANVEXTPROC)(GLuint id, GLenum value,
+ GLboolean *data);
+typedef void(GLAD_API_PTR *PFNGLGETINVARIANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat *data);
+typedef void(GLAD_API_PTR *PFNGLGETINVARIANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint *data);
+typedef void(GLAD_API_PTR *PFNGLGETLIGHTXOESPROC)(GLenum light, GLenum pname, GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLGETLISTPARAMETERFVSGIXPROC)(GLuint list, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETLISTPARAMETERIVSGIXPROC)(GLuint list, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC)(GLuint id, GLenum value,
+ GLboolean *data);
+typedef void(GLAD_API_PTR *PFNGLGETLOCALCONSTANTFLOATVEXTPROC)(GLuint id, GLenum value,
+ GLfloat *data);
+typedef void(GLAD_API_PTR *PFNGLGETLOCALCONSTANTINTEGERVEXTPROC)(GLuint id, GLenum value,
+ GLint *data);
+typedef void(GLAD_API_PTR *PFNGLGETMAPATTRIBPARAMETERFVNVPROC)(GLenum target, GLuint index,
+ GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETMAPATTRIBPARAMETERIVNVPROC)(GLenum target, GLuint index,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMAPCONTROLPOINTSNVPROC)(GLenum target, GLuint index, GLenum type,
+ GLsizei ustride, GLsizei vstride,
+ GLboolean packed, void *points);
+typedef void(GLAD_API_PTR *PFNGLGETMAPPARAMETERFVNVPROC)(GLenum target, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETMAPPARAMETERIVNVPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMAPXVOESPROC)(GLenum target, GLenum query, GLfixed *v);
+typedef void(GLAD_API_PTR *PFNGLGETMATERIALXOESPROC)(GLenum face, GLenum pname, GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC)(
+ GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC)(GLuint memoryObject,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMINMAXEXTPROC)(GLenum target, GLboolean reset, GLenum format,
+ GLenum type, void *values);
+typedef void(GLAD_API_PTR *PFNGLGETMINMAXPARAMETERFVEXTPROC)(GLenum target, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETMINMAXPARAMETERIVEXTPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXENVFVEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXENVIVEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXGENDVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXGENFVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXGENIVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXIMAGEEXTPROC)(GLenum texunit, GLenum target, GLint level,
+ GLenum format, GLenum type, void *pixels);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXPARAMETERIIVEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXPARAMETERIUIVEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXPARAMETERFVEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXPARAMETERIVEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTISAMPLEFVPROC)(GLenum pname, GLuint index, GLfloat *val);
+typedef void(GLAD_API_PTR *PFNGLGETMULTISAMPLEFVNVPROC)(GLenum pname, GLuint index, GLfloat *val);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDBUFFERPARAMETERI64VPROC)(GLuint buffer, GLenum pname,
+ GLint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDBUFFERPARAMETERIVPROC)(GLuint buffer, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC)(GLuint buffer, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC)(GLuint buffer, GLenum pname,
+ GLuint64EXT *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDBUFFERPOINTERVPROC)(GLuint buffer, GLenum pname,
+ void **params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDBUFFERPOINTERVEXTPROC)(GLuint buffer, GLenum pname,
+ void **params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr size, void *data);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDBUFFERSUBDATAEXTPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr size, void *data);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLuint framebuffer,
+ GLenum attachment,
+ GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)(GLuint framebuffer,
+ GLenum attachment,
+ GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC)(
+ GLuint framebuffer, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size,
+ GLfloat *values);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC)(GLuint framebuffer,
+ GLenum pname, GLint *param);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC)(GLuint framebuffer,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC)(GLuint program,
+ GLenum target,
+ GLuint index,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC)(GLuint program,
+ GLenum target,
+ GLuint index,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC)(GLuint program,
+ GLenum target, GLuint index,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC)(GLuint program,
+ GLenum target, GLuint index,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDPROGRAMSTRINGEXTPROC)(GLuint program, GLenum target,
+ GLenum pname, void *string);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDPROGRAMIVEXTPROC)(GLuint program, GLenum target,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC)(GLuint renderbuffer,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC)(GLuint renderbuffer,
+ GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDSTRINGARBPROC)(GLint namelen, const GLchar *name,
+ GLsizei bufSize, GLint *stringlen,
+ GLchar *string);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDSTRINGIVARBPROC)(GLint namelen, const GLchar *name,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNEXTPERFQUERYIDINTELPROC)(GLuint queryId, GLuint *nextQueryId);
+typedef void(GLAD_API_PTR *PFNGLGETOBJECTBUFFERFVATIPROC)(GLuint buffer, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETOBJECTBUFFERIVATIPROC)(GLuint buffer, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei bufSize,
+ GLsizei *length, GLchar *label);
+typedef void(GLAD_API_PTR *PFNGLGETOBJECTLABELEXTPROC)(GLenum type, GLuint object, GLsizei bufSize,
+ GLsizei *length, GLchar *label);
+typedef void(GLAD_API_PTR *PFNGLGETOBJECTPARAMETERFVARBPROC)(GLhandleARB obj, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETOBJECTPARAMETERIVAPPLEPROC)(GLenum objectType, GLuint name,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETOBJECTPARAMETERIVARBPROC)(GLhandleARB obj, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETOBJECTPTRLABELPROC)(const void *ptr, GLsizei bufSize,
+ GLsizei *length, GLchar *label);
+typedef void(GLAD_API_PTR *PFNGLGETOCCLUSIONQUERYIVNVPROC)(GLuint id, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETOCCLUSIONQUERYUIVNVPROC)(GLuint id, GLenum pname,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPATHCOMMANDSNVPROC)(GLuint path, GLubyte *commands);
+typedef void(GLAD_API_PTR *PFNGLGETPATHCOORDSNVPROC)(GLuint path, GLfloat *coords);
+typedef void(GLAD_API_PTR *PFNGLGETPATHDASHARRAYNVPROC)(GLuint path, GLfloat *dashArray);
+typedef GLfloat(GLAD_API_PTR *PFNGLGETPATHLENGTHNVPROC)(GLuint path, GLsizei startSegment,
+ GLsizei numSegments);
+typedef void(GLAD_API_PTR *PFNGLGETPATHMETRICRANGENVPROC)(GLbitfield metricQueryMask,
+ GLuint firstPathName, GLsizei numPaths,
+ GLsizei stride, GLfloat *metrics);
+typedef void(GLAD_API_PTR *PFNGLGETPATHMETRICSNVPROC)(GLbitfield metricQueryMask, GLsizei numPaths,
+ GLenum pathNameType, const void *paths,
+ GLuint pathBase, GLsizei stride,
+ GLfloat *metrics);
+typedef void(GLAD_API_PTR *PFNGLGETPATHPARAMETERFVNVPROC)(GLuint path, GLenum pname,
+ GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLGETPATHPARAMETERIVNVPROC)(GLuint path, GLenum pname, GLint *value);
+typedef void(GLAD_API_PTR *PFNGLGETPATHSPACINGNVPROC)(GLenum pathListMode, GLsizei numPaths,
+ GLenum pathNameType, const void *paths,
+ GLuint pathBase, GLfloat advanceScale,
+ GLfloat kerningScale, GLenum transformType,
+ GLfloat *returnedSpacing);
+typedef void(GLAD_API_PTR *PFNGLGETPERFCOUNTERINFOINTELPROC)(
+ GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName,
+ GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset,
+ GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum,
+ GLuint64 *rawCounterMaxValue);
+typedef void(GLAD_API_PTR *PFNGLGETPERFMONITORCOUNTERDATAAMDPROC)(GLuint monitor, GLenum pname,
+ GLsizei dataSize, GLuint *data,
+ GLint *bytesWritten);
+typedef void(GLAD_API_PTR *PFNGLGETPERFMONITORCOUNTERINFOAMDPROC)(GLuint group, GLuint counter,
+ GLenum pname, void *data);
+typedef void(GLAD_API_PTR *PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC)(GLuint group, GLuint counter,
+ GLsizei bufSize,
+ GLsizei *length,
+ GLchar *counterString);
+typedef void(GLAD_API_PTR *PFNGLGETPERFMONITORCOUNTERSAMDPROC)(GLuint group, GLint *numCounters,
+ GLint *maxActiveCounters,
+ GLsizei counterSize,
+ GLuint *counters);
+typedef void(GLAD_API_PTR *PFNGLGETPERFMONITORGROUPSTRINGAMDPROC)(GLuint group, GLsizei bufSize,
+ GLsizei *length,
+ GLchar *groupString);
+typedef void(GLAD_API_PTR *PFNGLGETPERFMONITORGROUPSAMDPROC)(GLint *numGroups, GLsizei groupsSize,
+ GLuint *groups);
+typedef void(GLAD_API_PTR *PFNGLGETPERFQUERYDATAINTELPROC)(GLuint queryHandle, GLuint flags,
+ GLsizei dataSize, void *data,
+ GLuint *bytesWritten);
+typedef void(GLAD_API_PTR *PFNGLGETPERFQUERYIDBYNAMEINTELPROC)(GLchar *queryName, GLuint *queryId);
+typedef void(GLAD_API_PTR *PFNGLGETPERFQUERYINFOINTELPROC)(GLuint queryId, GLuint queryNameLength,
+ GLchar *queryName, GLuint *dataSize,
+ GLuint *noCounters, GLuint *noInstances,
+ GLuint *capsMask);
+typedef void(GLAD_API_PTR *PFNGLGETPIXELMAPXVPROC)(GLenum map, GLint size, GLfixed *values);
+typedef void(GLAD_API_PTR *PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC)(GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC)(GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC)(GLenum target, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPOINTERINDEXEDVEXTPROC)(GLenum target, GLuint index,
+ void **data);
+typedef void(GLAD_API_PTR *PFNGLGETPOINTERI_VEXTPROC)(GLenum pname, GLuint index, void **params);
+typedef void(GLAD_API_PTR *PFNGLGETPOINTERVPROC)(GLenum pname, void **params);
+typedef void(GLAD_API_PTR *PFNGLGETPOINTERVEXTPROC)(GLenum pname, void **params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMBINARYPROC)(GLuint program, GLsizei bufSize,
+ GLsizei *length, GLenum *binaryFormat,
+ void *binary);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMENVPARAMETERIIVNVPROC)(GLenum target, GLuint index,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC)(GLenum target, GLuint index,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMENVPARAMETERDVARBPROC)(GLenum target, GLuint index,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMENVPARAMETERFVARBPROC)(GLenum target, GLuint index,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMINFOLOGPROC)(GLuint program, GLsizei bufSize,
+ GLsizei *length, GLchar *infoLog);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMINTERFACEIVPROC)(GLuint program, GLenum programInterface,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC)(GLenum target, GLuint index,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC)(GLenum target, GLuint index,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)(GLenum target, GLuint index,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)(GLenum target, GLuint index,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC)(GLuint id, GLsizei len,
+ const GLubyte *name,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC)(GLuint id, GLsizei len,
+ const GLubyte *name,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMPARAMETERDVNVPROC)(GLenum target, GLuint index,
+ GLenum pname, GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMPARAMETERFVNVPROC)(GLenum target, GLuint index,
+ GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMPIPELINEINFOLOGPROC)(GLuint pipeline, GLsizei bufSize,
+ GLsizei *length, GLchar *infoLog);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMPIPELINEIVPROC)(GLuint pipeline, GLenum pname,
+ GLint *params);
+typedef GLuint(GLAD_API_PTR *PFNGLGETPROGRAMRESOURCEINDEXPROC)(GLuint program,
+ GLenum programInterface,
+ const GLchar *name);
+typedef GLint(GLAD_API_PTR *PFNGLGETPROGRAMRESOURCELOCATIONPROC)(GLuint program,
+ GLenum programInterface,
+ const GLchar *name);
+typedef GLint(GLAD_API_PTR *PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC)(GLuint program,
+ GLenum programInterface,
+ const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMRESOURCENAMEPROC)(GLuint program, GLenum programInterface,
+ GLuint index, GLsizei bufSize,
+ GLsizei *length, GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMRESOURCEFVNVPROC)(GLuint program, GLenum programInterface,
+ GLuint index, GLsizei propCount,
+ const GLenum *props, GLsizei count,
+ GLsizei *length, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMRESOURCEIVPROC)(GLuint program, GLenum programInterface,
+ GLuint index, GLsizei propCount,
+ const GLenum *props, GLsizei count,
+ GLsizei *length, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMSTAGEIVPROC)(GLuint program, GLenum shadertype,
+ GLenum pname, GLint *values);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMSTRINGARBPROC)(GLenum target, GLenum pname, void *string);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMSTRINGNVPROC)(GLuint id, GLenum pname, GLubyte *program);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC)(GLenum target, GLuint index,
+ GLuint *param);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMIVARBPROC)(GLenum target, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMIVNVPROC)(GLuint id, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYBUFFEROBJECTI64VPROC)(GLuint id, GLuint buffer,
+ GLenum pname, GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYBUFFEROBJECTIVPROC)(GLuint id, GLuint buffer, GLenum pname,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYBUFFEROBJECTUI64VPROC)(GLuint id, GLuint buffer,
+ GLenum pname, GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYBUFFEROBJECTUIVPROC)(GLuint id, GLuint buffer, GLenum pname,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYINDEXEDIVPROC)(GLenum target, GLuint index, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYOBJECTI64VPROC)(GLuint id, GLenum pname, GLint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYOBJECTI64VEXTPROC)(GLuint id, GLenum pname,
+ GLint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYOBJECTIVPROC)(GLuint id, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYOBJECTIVARBPROC)(GLuint id, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYOBJECTUI64VPROC)(GLuint id, GLenum pname, GLuint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYOBJECTUI64VEXTPROC)(GLuint id, GLenum pname,
+ GLuint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYOBJECTUIVPROC)(GLuint id, GLenum pname, GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYOBJECTUIVARBPROC)(GLuint id, GLenum pname, GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYIVPROC)(GLenum target, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYIVARBPROC)(GLenum target, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETSEMAPHOREPARAMETERIVNVPROC)(GLuint semaphore, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC)(GLuint semaphore, GLenum pname,
+ GLuint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETSEPARABLEFILTEREXTPROC)(GLenum target, GLenum format,
+ GLenum type, void *row, void *column,
+ void *span);
+typedef void(GLAD_API_PTR *PFNGLGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize,
+ GLsizei *length, GLchar *infoLog);
+typedef void(GLAD_API_PTR *PFNGLGETSHADERPRECISIONFORMATPROC)(GLenum shadertype,
+ GLenum precisiontype, GLint *range,
+ GLint *precision);
+typedef void(GLAD_API_PTR *PFNGLGETSHADERSOURCEPROC)(GLuint shader, GLsizei bufSize,
+ GLsizei *length, GLchar *source);
+typedef void(GLAD_API_PTR *PFNGLGETSHADERSOURCEARBPROC)(GLhandleARB obj, GLsizei maxLength,
+ GLsizei *length, GLcharARB *source);
+typedef void(GLAD_API_PTR *PFNGLGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETSHADINGRATEIMAGEPALETTENVPROC)(GLuint viewport, GLuint entry,
+ GLenum *rate);
+typedef void(GLAD_API_PTR *PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC)(GLenum rate, GLuint samples,
+ GLuint index,
+ GLint *location);
+typedef void(GLAD_API_PTR *PFNGLGETSHARPENTEXFUNCSGISPROC)(GLenum target, GLfloat *points);
+typedef GLushort(GLAD_API_PTR *PFNGLGETSTAGEINDEXNVPROC)(GLenum shadertype);
+typedef const GLubyte *(GLAD_API_PTR *PFNGLGETSTRINGPROC)(GLenum name);
+typedef const GLubyte *(GLAD_API_PTR *PFNGLGETSTRINGIPROC)(GLenum name, GLuint index);
+typedef GLuint(GLAD_API_PTR *PFNGLGETSUBROUTINEINDEXPROC)(GLuint program, GLenum shadertype,
+ const GLchar *name);
+typedef GLint(GLAD_API_PTR *PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)(GLuint program,
+ GLenum shadertype,
+ const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETSYNCIVPROC)(GLsync sync, GLenum pname, GLsizei count,
+ GLsizei *length, GLint *values);
+typedef void(GLAD_API_PTR *PFNGLGETTEXBUMPPARAMETERFVATIPROC)(GLenum pname, GLfloat *param);
+typedef void(GLAD_API_PTR *PFNGLGETTEXBUMPPARAMETERIVATIPROC)(GLenum pname, GLint *param);
+typedef void(GLAD_API_PTR *PFNGLGETTEXENVXVOESPROC)(GLenum target, GLenum pname, GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXFILTERFUNCSGISPROC)(GLenum target, GLenum filter,
+ GLfloat *weights);
+typedef void(GLAD_API_PTR *PFNGLGETTEXGENXVOESPROC)(GLenum coord, GLenum pname, GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXIMAGEPROC)(GLenum target, GLint level, GLenum format,
+ GLenum type, void *pixels);
+typedef void(GLAD_API_PTR *PFNGLGETTEXLEVELPARAMETERFVPROC)(GLenum target, GLint level,
+ GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXLEVELPARAMETERIVPROC)(GLenum target, GLint level,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXLEVELPARAMETERXVOESPROC)(GLenum target, GLint level,
+ GLenum pname, GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXPARAMETERIIVEXTPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXPARAMETERIUIVEXTPROC)(GLenum target, GLenum pname,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC)(GLenum target, GLenum pname,
+ void **params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXPARAMETERFVPROC)(GLenum target, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXPARAMETERXVOESPROC)(GLenum target, GLenum pname,
+ GLfixed *params);
+typedef GLuint64(GLAD_API_PTR *PFNGLGETTEXTUREHANDLEARBPROC)(GLuint texture);
+typedef GLuint64(GLAD_API_PTR *PFNGLGETTEXTUREHANDLENVPROC)(GLuint texture);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTUREIMAGEPROC)(GLuint texture, GLint level, GLenum format,
+ GLenum type, GLsizei bufSize, void *pixels);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTUREIMAGEEXTPROC)(GLuint texture, GLenum target, GLint level,
+ GLenum format, GLenum type, void *pixels);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTURELEVELPARAMETERFVPROC)(GLuint texture, GLint level,
+ GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTURELEVELPARAMETERIVPROC)(GLuint texture, GLint level,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERIIVPROC)(GLuint texture, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERIIVEXTPROC)(GLuint texture, GLenum target,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERIUIVPROC)(GLuint texture, GLenum pname,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERIUIVEXTPROC)(GLuint texture, GLenum target,
+ GLenum pname, GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERFVPROC)(GLuint texture, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERFVEXTPROC)(GLuint texture, GLenum target,
+ GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERIVPROC)(GLuint texture, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERIVEXTPROC)(GLuint texture, GLenum target,
+ GLenum pname, GLint *params);
+typedef GLuint64(GLAD_API_PTR *PFNGLGETTEXTURESAMPLERHANDLEARBPROC)(GLuint texture, GLuint sampler);
+typedef GLuint64(GLAD_API_PTR *PFNGLGETTEXTURESAMPLERHANDLENVPROC)(GLuint texture, GLuint sampler);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTURESUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLenum format, GLenum type, GLsizei bufSize,
+ void *pixels);
+typedef void(GLAD_API_PTR *PFNGLGETTRACKMATRIXIVNVPROC)(GLenum target, GLuint address, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)(GLuint program, GLuint index,
+ GLsizei bufSize, GLsizei *length,
+ GLsizei *size, GLenum *type,
+ GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC)(GLuint program, GLuint index,
+ GLsizei bufSize,
+ GLsizei *length, GLsizei *size,
+ GLenum *type, GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC)(GLuint program, GLuint index,
+ GLint *location);
+typedef void(GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKI64_VPROC)(GLuint xfb, GLenum pname,
+ GLuint index, GLint64 *param);
+typedef void(GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKI_VPROC)(GLuint xfb, GLenum pname, GLuint index,
+ GLint *param);
+typedef void(GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKIVPROC)(GLuint xfb, GLenum pname, GLint *param);
+typedef GLuint(GLAD_API_PTR *PFNGLGETUNIFORMBLOCKINDEXPROC)(GLuint program,
+ const GLchar *uniformBlockName);
+typedef GLint(GLAD_API_PTR *PFNGLGETUNIFORMBUFFERSIZEEXTPROC)(GLuint program, GLint location);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMINDICESPROC)(GLuint program, GLsizei uniformCount,
+ const GLchar *const *uniformNames,
+ GLuint *uniformIndices);
+typedef GLint(GLAD_API_PTR *PFNGLGETUNIFORMLOCATIONPROC)(GLuint program, const GLchar *name);
+typedef GLint(GLAD_API_PTR *PFNGLGETUNIFORMLOCATIONARBPROC)(GLhandleARB programObj,
+ const GLcharARB *name);
+typedef GLintptr(GLAD_API_PTR *PFNGLGETUNIFORMOFFSETEXTPROC)(GLuint program, GLint location);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMSUBROUTINEUIVPROC)(GLenum shadertype, GLint location,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMDVPROC)(GLuint program, GLint location, GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMFVPROC)(GLuint program, GLint location, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMFVARBPROC)(GLhandleARB programObj, GLint location,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMI64VARBPROC)(GLuint program, GLint location,
+ GLint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMI64VNVPROC)(GLuint program, GLint location,
+ GLint64EXT *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMIVPROC)(GLuint program, GLint location, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMIVARBPROC)(GLhandleARB programObj, GLint location,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMUI64VARBPROC)(GLuint program, GLint location,
+ GLuint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMUI64VNVPROC)(GLuint program, GLint location,
+ GLuint64EXT *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMUIVPROC)(GLuint program, GLint location, GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMUIVEXTPROC)(GLuint program, GLint location,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNSIGNEDBYTEI_VEXTPROC)(GLenum target, GLuint index,
+ GLubyte *data);
+typedef void(GLAD_API_PTR *PFNGLGETUNSIGNEDBYTEVEXTPROC)(GLenum pname, GLubyte *data);
+typedef void(GLAD_API_PTR *PFNGLGETVARIANTARRAYOBJECTFVATIPROC)(GLuint id, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETVARIANTARRAYOBJECTIVATIPROC)(GLuint id, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVARIANTBOOLEANVEXTPROC)(GLuint id, GLenum value,
+ GLboolean *data);
+typedef void(GLAD_API_PTR *PFNGLGETVARIANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat *data);
+typedef void(GLAD_API_PTR *PFNGLGETVARIANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint *data);
+typedef void(GLAD_API_PTR *PFNGLGETVARIANTPOINTERVEXTPROC)(GLuint id, GLenum value, void **data);
+typedef GLint(GLAD_API_PTR *PFNGLGETVARYINGLOCATIONNVPROC)(GLuint program, const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXARRAYINDEXED64IVPROC)(GLuint vaobj, GLuint index,
+ GLenum pname, GLint64 *param);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXARRAYINDEXEDIVPROC)(GLuint vaobj, GLuint index,
+ GLenum pname, GLint *param);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC)(GLuint vaobj, GLuint index,
+ GLenum pname, GLint *param);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXARRAYINTEGERVEXTPROC)(GLuint vaobj, GLenum pname,
+ GLint *param);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC)(GLuint vaobj, GLuint index,
+ GLenum pname, void **param);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXARRAYPOINTERVEXTPROC)(GLuint vaobj, GLenum pname,
+ void **param);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXARRAYIVPROC)(GLuint vaobj, GLenum pname, GLint *param);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC)(GLuint index, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC)(GLuint index, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBIIVPROC)(GLuint index, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBIIVEXTPROC)(GLuint index, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBIUIVPROC)(GLuint index, GLenum pname,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBIUIVEXTPROC)(GLuint index, GLenum pname,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBLDVPROC)(GLuint index, GLenum pname,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBLDVEXTPROC)(GLuint index, GLenum pname,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBLI64VNVPROC)(GLuint index, GLenum pname,
+ GLint64EXT *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBLUI64VARBPROC)(GLuint index, GLenum pname,
+ GLuint64EXT *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBLUI64VNVPROC)(GLuint index, GLenum pname,
+ GLuint64EXT *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBPOINTERVPROC)(GLuint index, GLenum pname,
+ void **pointer);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBPOINTERVARBPROC)(GLuint index, GLenum pname,
+ void **pointer);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBPOINTERVNVPROC)(GLuint index, GLenum pname,
+ void **pointer);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBDVPROC)(GLuint index, GLenum pname,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBDVARBPROC)(GLuint index, GLenum pname,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBDVNVPROC)(GLuint index, GLenum pname,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBFVPROC)(GLuint index, GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBFVARBPROC)(GLuint index, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBFVNVPROC)(GLuint index, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBIVPROC)(GLuint index, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBIVARBPROC)(GLuint index, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBIVNVPROC)(GLuint index, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVIDEOCAPTURESTREAMDVNVPROC)(GLuint video_capture_slot,
+ GLuint stream, GLenum pname,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETVIDEOCAPTURESTREAMFVNVPROC)(GLuint video_capture_slot,
+ GLuint stream, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETVIDEOCAPTURESTREAMIVNVPROC)(GLuint video_capture_slot,
+ GLuint stream, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVIDEOCAPTUREIVNVPROC)(GLuint video_capture_slot, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVIDEOI64VNVPROC)(GLuint video_slot, GLenum pname,
+ GLint64EXT *params);
+typedef void(GLAD_API_PTR *PFNGLGETVIDEOIVNVPROC)(GLuint video_slot, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVIDEOUI64VNVPROC)(GLuint video_slot, GLenum pname,
+ GLuint64EXT *params);
+typedef void(GLAD_API_PTR *PFNGLGETVIDEOUIVNVPROC)(GLuint video_slot, GLenum pname, GLuint *params);
+typedef GLVULKANPROCNV(GLAD_API_PTR *PFNGLGETVKPROCADDRNVPROC)(const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETNCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint lod,
+ GLsizei bufSize, void *pixels);
+typedef void(GLAD_API_PTR *PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC)(GLenum target, GLint lod,
+ GLsizei bufSize, void *img);
+typedef void(GLAD_API_PTR *PFNGLGETNTEXIMAGEPROC)(GLenum target, GLint level, GLenum format,
+ GLenum type, GLsizei bufSize, void *pixels);
+typedef void(GLAD_API_PTR *PFNGLGETNTEXIMAGEARBPROC)(GLenum target, GLint level, GLenum format,
+ GLenum type, GLsizei bufSize, void *img);
+typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMDVPROC)(GLuint program, GLint location, GLsizei bufSize,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMDVARBPROC)(GLuint program, GLint location,
+ GLsizei bufSize, GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMFVPROC)(GLuint program, GLint location, GLsizei bufSize,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMFVARBPROC)(GLuint program, GLint location,
+ GLsizei bufSize, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMI64VARBPROC)(GLuint program, GLint location,
+ GLsizei bufSize, GLint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMIVPROC)(GLuint program, GLint location, GLsizei bufSize,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMIVARBPROC)(GLuint program, GLint location,
+ GLsizei bufSize, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMUI64VARBPROC)(GLuint program, GLint location,
+ GLsizei bufSize, GLuint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMUIVPROC)(GLuint program, GLint location, GLsizei bufSize,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMUIVARBPROC)(GLuint program, GLint location,
+ GLsizei bufSize, GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGLOBALALPHAFACTORBSUNPROC)(GLbyte factor);
+typedef void(GLAD_API_PTR *PFNGLGLOBALALPHAFACTORDSUNPROC)(GLdouble factor);
+typedef void(GLAD_API_PTR *PFNGLGLOBALALPHAFACTORFSUNPROC)(GLfloat factor);
+typedef void(GLAD_API_PTR *PFNGLGLOBALALPHAFACTORISUNPROC)(GLint factor);
+typedef void(GLAD_API_PTR *PFNGLGLOBALALPHAFACTORSSUNPROC)(GLshort factor);
+typedef void(GLAD_API_PTR *PFNGLGLOBALALPHAFACTORUBSUNPROC)(GLubyte factor);
+typedef void(GLAD_API_PTR *PFNGLGLOBALALPHAFACTORUISUNPROC)(GLuint factor);
+typedef void(GLAD_API_PTR *PFNGLGLOBALALPHAFACTORUSSUNPROC)(GLushort factor);
+typedef void(GLAD_API_PTR *PFNGLHINTPROC)(GLenum target, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLHINTPGIPROC)(GLenum target, GLint mode);
+typedef void(GLAD_API_PTR *PFNGLHISTOGRAMEXTPROC)(GLenum target, GLsizei width,
+ GLenum internalformat, GLboolean sink);
+typedef void(GLAD_API_PTR *PFNGLIGLOOINTERFACESGIXPROC)(GLenum pname, const void *params);
+typedef void(GLAD_API_PTR *PFNGLIMAGETRANSFORMPARAMETERFHPPROC)(GLenum target, GLenum pname,
+ GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLIMAGETRANSFORMPARAMETERFVHPPROC)(GLenum target, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLIMAGETRANSFORMPARAMETERIHPPROC)(GLenum target, GLenum pname,
+ GLint param);
+typedef void(GLAD_API_PTR *PFNGLIMAGETRANSFORMPARAMETERIVHPPROC)(GLenum target, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLIMPORTMEMORYFDEXTPROC)(GLuint memory, GLuint64 size,
+ GLenum handleType, GLint fd);
+typedef void(GLAD_API_PTR *PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC)(GLuint memory, GLuint64 size,
+ GLenum handleType, void *handle);
+typedef void(GLAD_API_PTR *PFNGLIMPORTMEMORYWIN32NAMEEXTPROC)(GLuint memory, GLuint64 size,
+ GLenum handleType, const void *name);
+typedef void(GLAD_API_PTR *PFNGLIMPORTSEMAPHOREFDEXTPROC)(GLuint semaphore, GLenum handleType,
+ GLint fd);
+typedef void(GLAD_API_PTR *PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC)(GLuint semaphore,
+ GLenum handleType, void *handle);
+typedef void(GLAD_API_PTR *PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC)(GLuint semaphore,
+ GLenum handleType,
+ const void *name);
+typedef GLsync(GLAD_API_PTR *PFNGLIMPORTSYNCEXTPROC)(GLenum external_sync_type,
+ GLintptr external_sync, GLbitfield flags);
+typedef void(GLAD_API_PTR *PFNGLINDEXFORMATNVPROC)(GLenum type, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLINDEXFUNCEXTPROC)(GLenum func, GLclampf ref);
+typedef void(GLAD_API_PTR *PFNGLINDEXMATERIALEXTPROC)(GLenum face, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLINDEXPOINTEREXTPROC)(GLenum type, GLsizei stride, GLsizei count,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLINDEXPOINTERLISTIBMPROC)(GLenum type, GLint stride,
+ const void **pointer, GLint ptrstride);
+typedef void(GLAD_API_PTR *PFNGLINDEXXOESPROC)(GLfixed component);
+typedef void(GLAD_API_PTR *PFNGLINDEXXVOESPROC)(const GLfixed *component);
+typedef void(GLAD_API_PTR *PFNGLINSERTCOMPONENTEXTPROC)(GLuint res, GLuint src, GLuint num);
+typedef void(GLAD_API_PTR *PFNGLINSERTEVENTMARKEREXTPROC)(GLsizei length, const GLchar *marker);
+typedef void(GLAD_API_PTR *PFNGLINSTRUMENTSBUFFERSGIXPROC)(GLsizei size, GLint *buffer);
+typedef void(GLAD_API_PTR *PFNGLINTERPOLATEPATHSNVPROC)(GLuint resultPath, GLuint pathA,
+ GLuint pathB, GLfloat weight);
+typedef void(GLAD_API_PTR *PFNGLINVALIDATEBUFFERDATAPROC)(GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLINVALIDATEBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr length);
+typedef void(GLAD_API_PTR *PFNGLINVALIDATEFRAMEBUFFERPROC)(GLenum target, GLsizei numAttachments,
+ const GLenum *attachments);
+typedef void(GLAD_API_PTR *PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC)(GLuint framebuffer,
+ GLsizei numAttachments,
+ const GLenum *attachments);
+typedef void(GLAD_API_PTR *PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC)(
+ GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLINVALIDATESUBFRAMEBUFFERPROC)(GLenum target, GLsizei numAttachments,
+ const GLenum *attachments, GLint x,
+ GLint y, GLsizei width,
+ GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLINVALIDATETEXIMAGEPROC)(GLuint texture, GLint level);
+typedef void(GLAD_API_PTR *PFNGLINVALIDATETEXSUBIMAGEPROC)(GLuint texture, GLint level,
+ GLint xoffset, GLint yoffset,
+ GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth);
+typedef GLboolean(GLAD_API_PTR *PFNGLISASYNCMARKERSGIXPROC)(GLuint marker);
+typedef GLboolean(GLAD_API_PTR *PFNGLISBUFFERPROC)(GLuint buffer);
+typedef GLboolean(GLAD_API_PTR *PFNGLISBUFFERARBPROC)(GLuint buffer);
+typedef GLboolean(GLAD_API_PTR *PFNGLISBUFFERRESIDENTNVPROC)(GLenum target);
+typedef GLboolean(GLAD_API_PTR *PFNGLISCOMMANDLISTNVPROC)(GLuint list);
+typedef GLboolean(GLAD_API_PTR *PFNGLISENABLEDPROC)(GLenum cap);
+typedef GLboolean(GLAD_API_PTR *PFNGLISENABLEDINDEXEDEXTPROC)(GLenum target, GLuint index);
+typedef GLboolean(GLAD_API_PTR *PFNGLISENABLEDIPROC)(GLenum target, GLuint index);
+typedef GLboolean(GLAD_API_PTR *PFNGLISFENCEAPPLEPROC)(GLuint fence);
+typedef GLboolean(GLAD_API_PTR *PFNGLISFENCENVPROC)(GLuint fence);
+typedef GLboolean(GLAD_API_PTR *PFNGLISFRAMEBUFFERPROC)(GLuint framebuffer);
+typedef GLboolean(GLAD_API_PTR *PFNGLISFRAMEBUFFEREXTPROC)(GLuint framebuffer);
+typedef GLboolean(GLAD_API_PTR *PFNGLISIMAGEHANDLERESIDENTARBPROC)(GLuint64 handle);
+typedef GLboolean(GLAD_API_PTR *PFNGLISIMAGEHANDLERESIDENTNVPROC)(GLuint64 handle);
+typedef GLboolean(GLAD_API_PTR *PFNGLISMEMORYOBJECTEXTPROC)(GLuint memoryObject);
+typedef GLboolean(GLAD_API_PTR *PFNGLISNAMEAMDPROC)(GLenum identifier, GLuint name);
+typedef GLboolean(GLAD_API_PTR *PFNGLISNAMEDBUFFERRESIDENTNVPROC)(GLuint buffer);
+typedef GLboolean(GLAD_API_PTR *PFNGLISNAMEDSTRINGARBPROC)(GLint namelen, const GLchar *name);
+typedef GLboolean(GLAD_API_PTR *PFNGLISOBJECTBUFFERATIPROC)(GLuint buffer);
+typedef GLboolean(GLAD_API_PTR *PFNGLISOCCLUSIONQUERYNVPROC)(GLuint id);
+typedef GLboolean(GLAD_API_PTR *PFNGLISPATHNVPROC)(GLuint path);
+typedef GLboolean(GLAD_API_PTR *PFNGLISPOINTINFILLPATHNVPROC)(GLuint path, GLuint mask, GLfloat x,
+ GLfloat y);
+typedef GLboolean(GLAD_API_PTR *PFNGLISPOINTINSTROKEPATHNVPROC)(GLuint path, GLfloat x, GLfloat y);
+typedef GLboolean(GLAD_API_PTR *PFNGLISPROGRAMPROC)(GLuint program);
+typedef GLboolean(GLAD_API_PTR *PFNGLISPROGRAMARBPROC)(GLuint program);
+typedef GLboolean(GLAD_API_PTR *PFNGLISPROGRAMNVPROC)(GLuint id);
+typedef GLboolean(GLAD_API_PTR *PFNGLISPROGRAMPIPELINEPROC)(GLuint pipeline);
+typedef GLboolean(GLAD_API_PTR *PFNGLISQUERYPROC)(GLuint id);
+typedef GLboolean(GLAD_API_PTR *PFNGLISQUERYARBPROC)(GLuint id);
+typedef GLboolean(GLAD_API_PTR *PFNGLISRENDERBUFFERPROC)(GLuint renderbuffer);
+typedef GLboolean(GLAD_API_PTR *PFNGLISRENDERBUFFEREXTPROC)(GLuint renderbuffer);
+typedef GLboolean(GLAD_API_PTR *PFNGLISSAMPLERPROC)(GLuint sampler);
+typedef GLboolean(GLAD_API_PTR *PFNGLISSEMAPHOREEXTPROC)(GLuint semaphore);
+typedef GLboolean(GLAD_API_PTR *PFNGLISSHADERPROC)(GLuint shader);
+typedef GLboolean(GLAD_API_PTR *PFNGLISSTATENVPROC)(GLuint state);
+typedef GLboolean(GLAD_API_PTR *PFNGLISSYNCPROC)(GLsync sync);
+typedef GLboolean(GLAD_API_PTR *PFNGLISTEXTUREPROC)(GLuint texture);
+typedef GLboolean(GLAD_API_PTR *PFNGLISTEXTUREEXTPROC)(GLuint texture);
+typedef GLboolean(GLAD_API_PTR *PFNGLISTEXTUREHANDLERESIDENTARBPROC)(GLuint64 handle);
+typedef GLboolean(GLAD_API_PTR *PFNGLISTEXTUREHANDLERESIDENTNVPROC)(GLuint64 handle);
+typedef GLboolean(GLAD_API_PTR *PFNGLISTRANSFORMFEEDBACKPROC)(GLuint id);
+typedef GLboolean(GLAD_API_PTR *PFNGLISTRANSFORMFEEDBACKNVPROC)(GLuint id);
+typedef GLboolean(GLAD_API_PTR *PFNGLISVARIANTENABLEDEXTPROC)(GLuint id, GLenum cap);
+typedef GLboolean(GLAD_API_PTR *PFNGLISVERTEXARRAYPROC)(GLuint array);
+typedef GLboolean(GLAD_API_PTR *PFNGLISVERTEXARRAYAPPLEPROC)(GLuint array);
+typedef GLboolean(GLAD_API_PTR *PFNGLISVERTEXATTRIBENABLEDAPPLEPROC)(GLuint index, GLenum pname);
+typedef void(GLAD_API_PTR *PFNGLLGPUCOPYIMAGESUBDATANVXPROC)(
+ GLuint sourceGpu, GLbitfield destinationGpuMask, GLuint srcName, GLenum srcTarget,
+ GLint srcLevel, GLint srcX, GLint srxY, GLint srcZ, GLuint dstName, GLenum dstTarget,
+ GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height,
+ GLsizei depth);
+typedef void(GLAD_API_PTR *PFNGLLGPUINTERLOCKNVXPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC)(GLbitfield gpuMask, GLuint buffer,
+ GLintptr offset, GLsizeiptr size,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLLABELOBJECTEXTPROC)(GLenum type, GLuint object, GLsizei length,
+ const GLchar *label);
+typedef void(GLAD_API_PTR *PFNGLLIGHTENVISGIXPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLLIGHTMODELXOESPROC)(GLenum pname, GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLLIGHTMODELXVOESPROC)(GLenum pname, const GLfixed *param);
+typedef void(GLAD_API_PTR *PFNGLLIGHTXOESPROC)(GLenum light, GLenum pname, GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLLIGHTXVOESPROC)(GLenum light, GLenum pname, const GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLLINEWIDTHPROC)(GLfloat width);
+typedef void(GLAD_API_PTR *PFNGLLINEWIDTHXOESPROC)(GLfixed width);
+typedef void(GLAD_API_PTR *PFNGLLINKPROGRAMPROC)(GLuint program);
+typedef void(GLAD_API_PTR *PFNGLLINKPROGRAMARBPROC)(GLhandleARB programObj);
+typedef void(GLAD_API_PTR *PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC)(
+ GLuint list, GLuint segment, const void **indirects, const GLsizei *sizes,
+ const GLuint *states, const GLuint *fbos, GLuint count);
+typedef void(GLAD_API_PTR *PFNGLLISTPARAMETERFSGIXPROC)(GLuint list, GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLLISTPARAMETERFVSGIXPROC)(GLuint list, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLLISTPARAMETERISGIXPROC)(GLuint list, GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLLISTPARAMETERIVSGIXPROC)(GLuint list, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC)(GLbitfield mask);
+typedef void(GLAD_API_PTR *PFNGLLOADMATRIXXOESPROC)(const GLfixed *m);
+typedef void(GLAD_API_PTR *PFNGLLOADPROGRAMNVPROC)(GLenum target, GLuint id, GLsizei len,
+ const GLubyte *program);
+typedef void(GLAD_API_PTR *PFNGLLOADTRANSPOSEMATRIXDARBPROC)(const GLdouble *m);
+typedef void(GLAD_API_PTR *PFNGLLOADTRANSPOSEMATRIXFARBPROC)(const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLLOADTRANSPOSEMATRIXXOESPROC)(const GLfixed *m);
+typedef void(GLAD_API_PTR *PFNGLLOCKARRAYSEXTPROC)(GLint first, GLsizei count);
+typedef void(GLAD_API_PTR *PFNGLLOGICOPPROC)(GLenum opcode);
+typedef void(GLAD_API_PTR *PFNGLMAKEBUFFERNONRESIDENTNVPROC)(GLenum target);
+typedef void(GLAD_API_PTR *PFNGLMAKEBUFFERRESIDENTNVPROC)(GLenum target, GLenum access);
+typedef void(GLAD_API_PTR *PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC)(GLuint64 handle);
+typedef void(GLAD_API_PTR *PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC)(GLuint64 handle);
+typedef void(GLAD_API_PTR *PFNGLMAKEIMAGEHANDLERESIDENTARBPROC)(GLuint64 handle, GLenum access);
+typedef void(GLAD_API_PTR *PFNGLMAKEIMAGEHANDLERESIDENTNVPROC)(GLuint64 handle, GLenum access);
+typedef void(GLAD_API_PTR *PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC)(GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLMAKENAMEDBUFFERRESIDENTNVPROC)(GLuint buffer, GLenum access);
+typedef void(GLAD_API_PTR *PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC)(GLuint64 handle);
+typedef void(GLAD_API_PTR *PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC)(GLuint64 handle);
+typedef void(GLAD_API_PTR *PFNGLMAKETEXTUREHANDLERESIDENTARBPROC)(GLuint64 handle);
+typedef void(GLAD_API_PTR *PFNGLMAKETEXTUREHANDLERESIDENTNVPROC)(GLuint64 handle);
+typedef void(GLAD_API_PTR *PFNGLMAP1XOESPROC)(GLenum target, GLfixed u1, GLfixed u2, GLint stride,
+ GLint order, GLfixed points);
+typedef void(GLAD_API_PTR *PFNGLMAP2XOESPROC)(GLenum target, GLfixed u1, GLfixed u2, GLint ustride,
+ GLint uorder, GLfixed v1, GLfixed v2, GLint vstride,
+ GLint vorder, GLfixed points);
+typedef void *(GLAD_API_PTR *PFNGLMAPBUFFERPROC)(GLenum target, GLenum access);
+typedef void *(GLAD_API_PTR *PFNGLMAPBUFFERARBPROC)(GLenum target, GLenum access);
+typedef void *(GLAD_API_PTR *PFNGLMAPBUFFERRANGEPROC)(GLenum target, GLintptr offset,
+ GLsizeiptr length, GLbitfield access);
+typedef void(GLAD_API_PTR *PFNGLMAPCONTROLPOINTSNVPROC)(GLenum target, GLuint index, GLenum type,
+ GLsizei ustride, GLsizei vstride,
+ GLint uorder, GLint vorder,
+ GLboolean packed, const void *points);
+typedef void(GLAD_API_PTR *PFNGLMAPGRID1XOESPROC)(GLint n, GLfixed u1, GLfixed u2);
+typedef void(GLAD_API_PTR *PFNGLMAPGRID2XOESPROC)(GLint n, GLfixed u1, GLfixed u2, GLfixed v1,
+ GLfixed v2);
+typedef void *(GLAD_API_PTR *PFNGLMAPNAMEDBUFFERPROC)(GLuint buffer, GLenum access);
+typedef void *(GLAD_API_PTR *PFNGLMAPNAMEDBUFFEREXTPROC)(GLuint buffer, GLenum access);
+typedef void *(GLAD_API_PTR *PFNGLMAPNAMEDBUFFERRANGEPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr length, GLbitfield access);
+typedef void *(GLAD_API_PTR *PFNGLMAPNAMEDBUFFERRANGEEXTPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr length, GLbitfield access);
+typedef void *(GLAD_API_PTR *PFNGLMAPOBJECTBUFFERATIPROC)(GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLMAPPARAMETERFVNVPROC)(GLenum target, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLMAPPARAMETERIVNVPROC)(GLenum target, GLenum pname,
+ const GLint *params);
+typedef void *(GLAD_API_PTR *PFNGLMAPTEXTURE2DINTELPROC)(GLuint texture, GLint level,
+ GLbitfield access, GLint *stride,
+ GLenum *layout);
+typedef void(GLAD_API_PTR *PFNGLMAPVERTEXATTRIB1DAPPLEPROC)(GLuint index, GLuint size, GLdouble u1,
+ GLdouble u2, GLint stride, GLint order,
+ const GLdouble *points);
+typedef void(GLAD_API_PTR *PFNGLMAPVERTEXATTRIB1FAPPLEPROC)(GLuint index, GLuint size, GLfloat u1,
+ GLfloat u2, GLint stride, GLint order,
+ const GLfloat *points);
+typedef void(GLAD_API_PTR *PFNGLMAPVERTEXATTRIB2DAPPLEPROC)(GLuint index, GLuint size, GLdouble u1,
+ GLdouble u2, GLint ustride,
+ GLint uorder, GLdouble v1, GLdouble v2,
+ GLint vstride, GLint vorder,
+ const GLdouble *points);
+typedef void(GLAD_API_PTR *PFNGLMAPVERTEXATTRIB2FAPPLEPROC)(GLuint index, GLuint size, GLfloat u1,
+ GLfloat u2, GLint ustride, GLint uorder,
+ GLfloat v1, GLfloat v2, GLint vstride,
+ GLint vorder, const GLfloat *points);
+typedef void(GLAD_API_PTR *PFNGLMATERIALXOESPROC)(GLenum face, GLenum pname, GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLMATERIALXVOESPROC)(GLenum face, GLenum pname, const GLfixed *param);
+typedef void(GLAD_API_PTR *PFNGLMATRIXFRUSTUMEXTPROC)(GLenum mode, GLdouble left, GLdouble right,
+ GLdouble bottom, GLdouble top, GLdouble zNear,
+ GLdouble zFar);
+typedef void(GLAD_API_PTR *PFNGLMATRIXINDEXPOINTERARBPROC)(GLint size, GLenum type, GLsizei stride,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLMATRIXINDEXUBVARBPROC)(GLint size, const GLubyte *indices);
+typedef void(GLAD_API_PTR *PFNGLMATRIXINDEXUIVARBPROC)(GLint size, const GLuint *indices);
+typedef void(GLAD_API_PTR *PFNGLMATRIXINDEXUSVARBPROC)(GLint size, const GLushort *indices);
+typedef void(GLAD_API_PTR *PFNGLMATRIXLOAD3X2FNVPROC)(GLenum matrixMode, const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXLOAD3X3FNVPROC)(GLenum matrixMode, const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXLOADIDENTITYEXTPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC)(GLenum matrixMode, const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXLOADTRANSPOSEDEXTPROC)(GLenum mode, const GLdouble *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXLOADTRANSPOSEFEXTPROC)(GLenum mode, const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXLOADDEXTPROC)(GLenum mode, const GLdouble *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXLOADFEXTPROC)(GLenum mode, const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXMULT3X2FNVPROC)(GLenum matrixMode, const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXMULT3X3FNVPROC)(GLenum matrixMode, const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC)(GLenum matrixMode, const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXMULTTRANSPOSEDEXTPROC)(GLenum mode, const GLdouble *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXMULTTRANSPOSEFEXTPROC)(GLenum mode, const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXMULTDEXTPROC)(GLenum mode, const GLdouble *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXMULTFEXTPROC)(GLenum mode, const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXORTHOEXTPROC)(GLenum mode, GLdouble left, GLdouble right,
+ GLdouble bottom, GLdouble top, GLdouble zNear,
+ GLdouble zFar);
+typedef void(GLAD_API_PTR *PFNGLMATRIXPOPEXTPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLMATRIXPUSHEXTPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLMATRIXROTATEDEXTPROC)(GLenum mode, GLdouble angle, GLdouble x,
+ GLdouble y, GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLMATRIXROTATEFEXTPROC)(GLenum mode, GLfloat angle, GLfloat x,
+ GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLMATRIXSCALEDEXTPROC)(GLenum mode, GLdouble x, GLdouble y,
+ GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLMATRIXSCALEFEXTPROC)(GLenum mode, GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLMATRIXTRANSLATEDEXTPROC)(GLenum mode, GLdouble x, GLdouble y,
+ GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLMATRIXTRANSLATEFEXTPROC)(GLenum mode, GLfloat x, GLfloat y,
+ GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLMAXSHADERCOMPILERTHREADSARBPROC)(GLuint count);
+typedef void(GLAD_API_PTR *PFNGLMAXSHADERCOMPILERTHREADSKHRPROC)(GLuint count);
+typedef void(GLAD_API_PTR *PFNGLMEMORYBARRIERPROC)(GLbitfield barriers);
+typedef void(GLAD_API_PTR *PFNGLMEMORYBARRIERBYREGIONPROC)(GLbitfield barriers);
+typedef void(GLAD_API_PTR *PFNGLMEMORYBARRIEREXTPROC)(GLbitfield barriers);
+typedef void(GLAD_API_PTR *PFNGLMEMORYOBJECTPARAMETERIVEXTPROC)(GLuint memoryObject, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLMINSAMPLESHADINGPROC)(GLfloat value);
+typedef void(GLAD_API_PTR *PFNGLMINSAMPLESHADINGARBPROC)(GLfloat value);
+typedef void(GLAD_API_PTR *PFNGLMINMAXEXTPROC)(GLenum target, GLenum internalformat,
+ GLboolean sink);
+typedef void(GLAD_API_PTR *PFNGLMULTMATRIXXOESPROC)(const GLfixed *m);
+typedef void(GLAD_API_PTR *PFNGLMULTTRANSPOSEMATRIXDARBPROC)(const GLdouble *m);
+typedef void(GLAD_API_PTR *PFNGLMULTTRANSPOSEMATRIXFARBPROC)(const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMULTTRANSPOSEMATRIXXOESPROC)(const GLfixed *m);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWARRAYSPROC)(GLenum mode, const GLint *first,
+ const GLsizei *count, GLsizei drawcount);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWARRAYSEXTPROC)(GLenum mode, const GLint *first,
+ const GLsizei *count, GLsizei primcount);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWARRAYSINDIRECTPROC)(GLenum mode, const void *indirect,
+ GLsizei drawcount, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC)(GLenum mode, const void *indirect,
+ GLsizei primcount, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC)(
+ GLenum mode, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride,
+ GLint vertexBufferCount);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC)(GLenum mode,
+ const void *indirect,
+ GLsizei drawCount,
+ GLsizei stride,
+ GLint vertexBufferCount);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC)(GLenum mode, const void *indirect,
+ GLintptr drawcount,
+ GLsizei maxdrawcount,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC)(GLenum mode,
+ const void *indirect,
+ GLintptr drawcount,
+ GLsizei maxdrawcount,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC)(GLenum mode, const GLint *first,
+ const GLsizei *count,
+ GLsizei primcount);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSPROC)(GLenum mode, const GLsizei *count,
+ GLenum type, const void *const *indices,
+ GLsizei drawcount);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, const GLsizei *count,
+ GLenum type,
+ const void *const *indices,
+ GLsizei drawcount,
+ const GLint *basevertex);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSEXTPROC)(GLenum mode, const GLsizei *count,
+ GLenum type, const void *const *indices,
+ GLsizei primcount);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSINDIRECTPROC)(GLenum mode, GLenum type,
+ const void *indirect,
+ GLsizei drawcount, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC)(GLenum mode, GLenum type,
+ const void *indirect,
+ GLsizei primcount,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC)(
+ GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount,
+ GLsizei stride, GLint vertexBufferCount);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC)(GLenum mode, GLenum type,
+ const void *indirect,
+ GLsizei drawCount,
+ GLsizei stride,
+ GLint vertexBufferCount);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC)(GLenum mode, GLenum type,
+ const void *indirect,
+ GLintptr drawcount,
+ GLsizei maxdrawcount,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC)(GLenum mode, GLenum type,
+ const void *indirect,
+ GLintptr drawcount,
+ GLsizei maxdrawcount,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC)(GLintptr indirect,
+ GLintptr drawcount,
+ GLsizei maxdrawcount,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC)(GLintptr indirect,
+ GLsizei drawcount,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC)(GLenum mode, GLuint start,
+ GLuint end, const GLint *first,
+ const GLsizei *count,
+ GLsizei primcount);
+typedef void(GLAD_API_PTR *PFNGLMULTIMODEDRAWARRAYSIBMPROC)(const GLenum *mode, const GLint *first,
+ const GLsizei *count, GLsizei primcount,
+ GLint modestride);
+typedef void(GLAD_API_PTR *PFNGLMULTIMODEDRAWELEMENTSIBMPROC)(const GLenum *mode,
+ const GLsizei *count, GLenum type,
+ const void *const *indices,
+ GLsizei primcount, GLint modestride);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXBUFFEREXTPROC)(GLenum texunit, GLenum target,
+ GLenum internalformat, GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1BOESPROC)(GLenum texture, GLbyte s);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1BVOESPROC)(GLenum texture, const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1DARBPROC)(GLenum target, GLdouble s);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1DVARBPROC)(GLenum target, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1FARBPROC)(GLenum target, GLfloat s);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1FVARBPROC)(GLenum target, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1HNVPROC)(GLenum target, GLhalfNV s);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1HVNVPROC)(GLenum target, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1IARBPROC)(GLenum target, GLint s);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1IVARBPROC)(GLenum target, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1SARBPROC)(GLenum target, GLshort s);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1SVARBPROC)(GLenum target, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1XOESPROC)(GLenum texture, GLfixed s);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1XVOESPROC)(GLenum texture, const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2BOESPROC)(GLenum texture, GLbyte s, GLbyte t);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2BVOESPROC)(GLenum texture, const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2DARBPROC)(GLenum target, GLdouble s, GLdouble t);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2DVARBPROC)(GLenum target, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2FARBPROC)(GLenum target, GLfloat s, GLfloat t);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2FVARBPROC)(GLenum target, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2HNVPROC)(GLenum target, GLhalfNV s, GLhalfNV t);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2HVNVPROC)(GLenum target, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2IARBPROC)(GLenum target, GLint s, GLint t);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2IVARBPROC)(GLenum target, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2SARBPROC)(GLenum target, GLshort s, GLshort t);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2SVARBPROC)(GLenum target, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2XOESPROC)(GLenum texture, GLfixed s, GLfixed t);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2XVOESPROC)(GLenum texture, const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3BOESPROC)(GLenum texture, GLbyte s, GLbyte t,
+ GLbyte r);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3BVOESPROC)(GLenum texture, const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3DARBPROC)(GLenum target, GLdouble s, GLdouble t,
+ GLdouble r);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3DVARBPROC)(GLenum target, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3FARBPROC)(GLenum target, GLfloat s, GLfloat t,
+ GLfloat r);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3FVARBPROC)(GLenum target, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3HNVPROC)(GLenum target, GLhalfNV s, GLhalfNV t,
+ GLhalfNV r);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3HVNVPROC)(GLenum target, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3IARBPROC)(GLenum target, GLint s, GLint t, GLint r);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3IVARBPROC)(GLenum target, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3SARBPROC)(GLenum target, GLshort s, GLshort t,
+ GLshort r);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3SVARBPROC)(GLenum target, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3XOESPROC)(GLenum texture, GLfixed s, GLfixed t,
+ GLfixed r);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3XVOESPROC)(GLenum texture, const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4BOESPROC)(GLenum texture, GLbyte s, GLbyte t,
+ GLbyte r, GLbyte q);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4BVOESPROC)(GLenum texture, const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4DARBPROC)(GLenum target, GLdouble s, GLdouble t,
+ GLdouble r, GLdouble q);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4DVARBPROC)(GLenum target, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4FARBPROC)(GLenum target, GLfloat s, GLfloat t,
+ GLfloat r, GLfloat q);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4FVARBPROC)(GLenum target, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4HNVPROC)(GLenum target, GLhalfNV s, GLhalfNV t,
+ GLhalfNV r, GLhalfNV q);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4HVNVPROC)(GLenum target, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4IARBPROC)(GLenum target, GLint s, GLint t, GLint r,
+ GLint q);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4IVARBPROC)(GLenum target, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4SARBPROC)(GLenum target, GLshort s, GLshort t,
+ GLshort r, GLshort q);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4SVARBPROC)(GLenum target, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4XOESPROC)(GLenum texture, GLfixed s, GLfixed t,
+ GLfixed r, GLfixed q);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4XVOESPROC)(GLenum texture, const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORDPOINTEREXTPROC)(GLenum texunit, GLint size,
+ GLenum type, GLsizei stride,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXENVFEXTPROC)(GLenum texunit, GLenum target, GLenum pname,
+ GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXENVFVEXTPROC)(GLenum texunit, GLenum target, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXENVIEXTPROC)(GLenum texunit, GLenum target, GLenum pname,
+ GLint param);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXENVIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXGENDEXTPROC)(GLenum texunit, GLenum coord, GLenum pname,
+ GLdouble param);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXGENDVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname,
+ const GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXGENFEXTPROC)(GLenum texunit, GLenum coord, GLenum pname,
+ GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXGENFVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXGENIEXTPROC)(GLenum texunit, GLenum coord, GLenum pname,
+ GLint param);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXGENIVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level,
+ GLint internalformat, GLsizei width,
+ GLint border, GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level,
+ GLint internalformat, GLsizei width,
+ GLsizei height, GLint border, GLenum format,
+ GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level,
+ GLint internalformat, GLsizei width,
+ GLsizei height, GLsizei depth, GLint border,
+ GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXPARAMETERIIVEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXPARAMETERIUIVEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXPARAMETERFEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXPARAMETERFVEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXPARAMETERIEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXPARAMETERIVEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXRENDERBUFFEREXTPROC)(GLenum texunit, GLenum target,
+ GLuint renderbuffer);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXSUBIMAGE1DEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLint xoffset,
+ GLsizei width, GLenum format,
+ GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXSUBIMAGE2DEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLint xoffset,
+ GLint yoffset, GLsizei width,
+ GLsizei height, GLenum format,
+ GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXSUBIMAGE3DEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset,
+ GLsizei width, GLsizei height,
+ GLsizei depth, GLenum format,
+ GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTBARRIERNVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTBLITFRAMEBUFFERNVPROC)(
+ GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
+ GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTBUFFERSUBDATANVPROC)(GLbitfield gpuMask, GLuint buffer,
+ GLintptr offset, GLsizeiptr size,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC)(
+ GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer,
+ GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTCOPYIMAGESUBDATANVPROC)(
+ GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel,
+ GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel,
+ GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)(
+ GLuint gpu, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC)(GLuint gpu, GLuint id,
+ GLenum pname, GLint64 *params);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTGETQUERYOBJECTIVNVPROC)(GLuint gpu, GLuint id,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC)(GLuint gpu, GLuint id,
+ GLenum pname, GLuint64 *params);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC)(GLuint gpu, GLuint id,
+ GLenum pname, GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTSCISSORARRAYVNVXPROC)(GLuint gpu, GLuint first,
+ GLsizei count, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTVIEWPORTARRAYVNVXPROC)(GLuint gpu, GLuint first,
+ GLsizei count, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC)(GLuint gpu, GLuint index,
+ GLfloat xcoeff,
+ GLfloat ycoeff);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTWAITSYNCNVPROC)(GLuint signalGpu, GLbitfield waitGpuMask);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERATTACHMEMORYNVPROC)(GLuint buffer, GLuint memory,
+ GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERDATAPROC)(GLuint buffer, GLsizeiptr size,
+ const void *data, GLenum usage);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERDATAEXTPROC)(GLuint buffer, GLsizeiptr size,
+ const void *data, GLenum usage);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr size,
+ GLboolean commit);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr size,
+ GLboolean commit);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERPAGECOMMITMENTMEMNVPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr size, GLuint memory,
+ GLuint64 memOffset,
+ GLboolean commit);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERSTORAGEPROC)(GLuint buffer, GLsizeiptr size,
+ const void *data, GLbitfield flags);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERSTORAGEEXTPROC)(GLuint buffer, GLsizeiptr size,
+ const void *data, GLbitfield flags);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC)(
+ GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer,
+ GLbitfield flags);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC)(GLuint buffer, GLsizeiptr size,
+ GLuint memory, GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr size, const void *data);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERSUBDATAEXTPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr size, const void *data);
+typedef void(GLAD_API_PTR *PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC)(GLuint readBuffer,
+ GLuint writeBuffer,
+ GLintptr readOffset,
+ GLintptr writeOffset,
+ GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC)(GLuint framebuffer, GLenum buf);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC)(GLuint framebuffer, GLsizei n,
+ const GLenum *bufs);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC)(GLuint framebuffer, GLenum pname,
+ GLint param);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC)(GLuint framebuffer, GLenum pname,
+ GLint param);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC)(GLuint framebuffer, GLenum src);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC)(GLuint framebuffer,
+ GLenum attachment,
+ GLenum renderbuffertarget,
+ GLuint renderbuffer);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC)(GLuint framebuffer,
+ GLenum attachment,
+ GLenum renderbuffertarget,
+ GLuint renderbuffer);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)(GLuint framebuffer,
+ GLuint start,
+ GLsizei count,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)(GLuint framebuffer,
+ GLuint start,
+ GLsizei count,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC)(GLuint framebuffer,
+ GLuint numsamples,
+ GLuint pixelindex,
+ const GLfloat *values);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTUREPROC)(GLuint framebuffer, GLenum attachment,
+ GLuint texture, GLint level);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC)(GLuint framebuffer,
+ GLenum attachment,
+ GLenum textarget, GLuint texture,
+ GLint level);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC)(GLuint framebuffer,
+ GLenum attachment,
+ GLenum textarget, GLuint texture,
+ GLint level);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC)(GLuint framebuffer,
+ GLenum attachment,
+ GLenum textarget, GLuint texture,
+ GLint level, GLint zoffset);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC)(GLuint framebuffer,
+ GLenum attachment, GLuint texture,
+ GLint level);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC)(GLuint framebuffer,
+ GLenum attachment,
+ GLuint texture, GLint level,
+ GLenum face);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC)(GLuint framebuffer,
+ GLenum attachment, GLuint texture,
+ GLint level, GLint layer);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC)(GLuint framebuffer,
+ GLenum attachment,
+ GLuint texture, GLint level,
+ GLint layer);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC)(GLuint program, GLenum target,
+ GLuint index, GLdouble x,
+ GLdouble y, GLdouble z,
+ GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC)(GLuint program, GLenum target,
+ GLuint index,
+ const GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC)(GLuint program, GLenum target,
+ GLuint index, GLfloat x,
+ GLfloat y, GLfloat z,
+ GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC)(GLuint program, GLenum target,
+ GLuint index,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC)(GLuint program, GLenum target,
+ GLuint index, GLint x,
+ GLint y, GLint z, GLint w);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC)(GLuint program,
+ GLenum target, GLuint index,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC)(GLuint program,
+ GLenum target, GLuint index,
+ GLuint x, GLuint y, GLuint z,
+ GLuint w);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC)(GLuint program,
+ GLenum target, GLuint index,
+ const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC)(GLuint program,
+ GLenum target, GLuint index,
+ GLsizei count,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC)(GLuint program,
+ GLenum target, GLuint index,
+ GLsizei count,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC)(
+ GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMSTRINGEXTPROC)(GLuint program, GLenum target,
+ GLenum format, GLsizei len,
+ const void *string);
+typedef void(GLAD_API_PTR *PFNGLNAMEDRENDERBUFFERSTORAGEPROC)(GLuint renderbuffer,
+ GLenum internalformat, GLsizei width,
+ GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC)(GLuint renderbuffer,
+ GLenum internalformat,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC)(
+ GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC)(
+ GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC)(
+ GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)(
+ GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLNAMEDSTRINGARBPROC)(GLenum type, GLint namelen, const GLchar *name,
+ GLint stringlen, const GLchar *string);
+typedef GLuint(GLAD_API_PTR *PFNGLNEWOBJECTBUFFERATIPROC)(GLsizei size, const void *pointer,
+ GLenum usage);
+typedef void(GLAD_API_PTR *PFNGLNORMAL3FVERTEX3FSUNPROC)(GLfloat nx, GLfloat ny, GLfloat nz,
+ GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLNORMAL3FVERTEX3FVSUNPROC)(const GLfloat *n, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLNORMAL3HNVPROC)(GLhalfNV nx, GLhalfNV ny, GLhalfNV nz);
+typedef void(GLAD_API_PTR *PFNGLNORMAL3HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLNORMAL3XOESPROC)(GLfixed nx, GLfixed ny, GLfixed nz);
+typedef void(GLAD_API_PTR *PFNGLNORMAL3XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLNORMALFORMATNVPROC)(GLenum type, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLNORMALPOINTEREXTPROC)(GLenum type, GLsizei stride, GLsizei count,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLNORMALPOINTERLISTIBMPROC)(GLenum type, GLint stride,
+ const void **pointer, GLint ptrstride);
+typedef void(GLAD_API_PTR *PFNGLNORMALPOINTERVINTELPROC)(GLenum type, const void **pointer);
+typedef void(GLAD_API_PTR *PFNGLNORMALSTREAM3BATIPROC)(GLenum stream, GLbyte nx, GLbyte ny,
+ GLbyte nz);
+typedef void(GLAD_API_PTR *PFNGLNORMALSTREAM3BVATIPROC)(GLenum stream, const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLNORMALSTREAM3DATIPROC)(GLenum stream, GLdouble nx, GLdouble ny,
+ GLdouble nz);
+typedef void(GLAD_API_PTR *PFNGLNORMALSTREAM3DVATIPROC)(GLenum stream, const GLdouble *coords);
+typedef void(GLAD_API_PTR *PFNGLNORMALSTREAM3FATIPROC)(GLenum stream, GLfloat nx, GLfloat ny,
+ GLfloat nz);
+typedef void(GLAD_API_PTR *PFNGLNORMALSTREAM3FVATIPROC)(GLenum stream, const GLfloat *coords);
+typedef void(GLAD_API_PTR *PFNGLNORMALSTREAM3IATIPROC)(GLenum stream, GLint nx, GLint ny, GLint nz);
+typedef void(GLAD_API_PTR *PFNGLNORMALSTREAM3IVATIPROC)(GLenum stream, const GLint *coords);
+typedef void(GLAD_API_PTR *PFNGLNORMALSTREAM3SATIPROC)(GLenum stream, GLshort nx, GLshort ny,
+ GLshort nz);
+typedef void(GLAD_API_PTR *PFNGLNORMALSTREAM3SVATIPROC)(GLenum stream, const GLshort *coords);
+typedef void(GLAD_API_PTR *PFNGLOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei length,
+ const GLchar *label);
+typedef void(GLAD_API_PTR *PFNGLOBJECTPTRLABELPROC)(const void *ptr, GLsizei length,
+ const GLchar *label);
+typedef GLenum(GLAD_API_PTR *PFNGLOBJECTPURGEABLEAPPLEPROC)(GLenum objectType, GLuint name,
+ GLenum option);
+typedef GLenum(GLAD_API_PTR *PFNGLOBJECTUNPURGEABLEAPPLEPROC)(GLenum objectType, GLuint name,
+ GLenum option);
+typedef void(GLAD_API_PTR *PFNGLORTHOFOESPROC)(GLfloat l, GLfloat r, GLfloat b, GLfloat t,
+ GLfloat n, GLfloat f);
+typedef void(GLAD_API_PTR *PFNGLORTHOXOESPROC)(GLfixed l, GLfixed r, GLfixed b, GLfixed t,
+ GLfixed n, GLfixed f);
+typedef void(GLAD_API_PTR *PFNGLPNTRIANGLESFATIPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLPNTRIANGLESIATIPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLPASSTEXCOORDATIPROC)(GLuint dst, GLuint coord, GLenum swizzle);
+typedef void(GLAD_API_PTR *PFNGLPASSTHROUGHXOESPROC)(GLfixed token);
+typedef void(GLAD_API_PTR *PFNGLPATCHPARAMETERFVPROC)(GLenum pname, const GLfloat *values);
+typedef void(GLAD_API_PTR *PFNGLPATCHPARAMETERIPROC)(GLenum pname, GLint value);
+typedef void(GLAD_API_PTR *PFNGLPATHCOMMANDSNVPROC)(GLuint path, GLsizei numCommands,
+ const GLubyte *commands, GLsizei numCoords,
+ GLenum coordType, const void *coords);
+typedef void(GLAD_API_PTR *PFNGLPATHCOORDSNVPROC)(GLuint path, GLsizei numCoords, GLenum coordType,
+ const void *coords);
+typedef void(GLAD_API_PTR *PFNGLPATHCOVERDEPTHFUNCNVPROC)(GLenum func);
+typedef void(GLAD_API_PTR *PFNGLPATHDASHARRAYNVPROC)(GLuint path, GLsizei dashCount,
+ const GLfloat *dashArray);
+typedef GLenum(GLAD_API_PTR *PFNGLPATHGLYPHINDEXARRAYNVPROC)(
+ GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle,
+ GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
+typedef GLenum(GLAD_API_PTR *PFNGLPATHGLYPHINDEXRANGENVPROC)(GLenum fontTarget,
+ const void *fontName,
+ GLbitfield fontStyle,
+ GLuint pathParameterTemplate,
+ GLfloat emScale, GLuint *baseAndCount);
+typedef void(GLAD_API_PTR *PFNGLPATHGLYPHRANGENVPROC)(GLuint firstPathName, GLenum fontTarget,
+ const void *fontName, GLbitfield fontStyle,
+ GLuint firstGlyph, GLsizei numGlyphs,
+ GLenum handleMissingGlyphs,
+ GLuint pathParameterTemplate,
+ GLfloat emScale);
+typedef void(GLAD_API_PTR *PFNGLPATHGLYPHSNVPROC)(GLuint firstPathName, GLenum fontTarget,
+ const void *fontName, GLbitfield fontStyle,
+ GLsizei numGlyphs, GLenum type,
+ const void *charcodes, GLenum handleMissingGlyphs,
+ GLuint pathParameterTemplate, GLfloat emScale);
+typedef GLenum(GLAD_API_PTR *PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC)(
+ GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData,
+ GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate,
+ GLfloat emScale);
+typedef void(GLAD_API_PTR *PFNGLPATHPARAMETERFNVPROC)(GLuint path, GLenum pname, GLfloat value);
+typedef void(GLAD_API_PTR *PFNGLPATHPARAMETERFVNVPROC)(GLuint path, GLenum pname,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPATHPARAMETERINVPROC)(GLuint path, GLenum pname, GLint value);
+typedef void(GLAD_API_PTR *PFNGLPATHPARAMETERIVNVPROC)(GLuint path, GLenum pname,
+ const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLPATHSTENCILDEPTHOFFSETNVPROC)(GLfloat factor, GLfloat units);
+typedef void(GLAD_API_PTR *PFNGLPATHSTENCILFUNCNVPROC)(GLenum func, GLint ref, GLuint mask);
+typedef void(GLAD_API_PTR *PFNGLPATHSTRINGNVPROC)(GLuint path, GLenum format, GLsizei length,
+ const void *pathString);
+typedef void(GLAD_API_PTR *PFNGLPATHSUBCOMMANDSNVPROC)(GLuint path, GLsizei commandStart,
+ GLsizei commandsToDelete,
+ GLsizei numCommands, const GLubyte *commands,
+ GLsizei numCoords, GLenum coordType,
+ const void *coords);
+typedef void(GLAD_API_PTR *PFNGLPATHSUBCOORDSNVPROC)(GLuint path, GLsizei coordStart,
+ GLsizei numCoords, GLenum coordType,
+ const void *coords);
+typedef void(GLAD_API_PTR *PFNGLPAUSETRANSFORMFEEDBACKPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLPAUSETRANSFORMFEEDBACKNVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLPIXELDATARANGENVPROC)(GLenum target, GLsizei length,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLPIXELMAPXPROC)(GLenum map, GLint size, const GLfixed *values);
+typedef void(GLAD_API_PTR *PFNGLPIXELSTOREFPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLPIXELSTOREIPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLPIXELSTOREXPROC)(GLenum pname, GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLPIXELTEXGENPARAMETERFSGISPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLPIXELTEXGENPARAMETERFVSGISPROC)(GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPIXELTEXGENPARAMETERISGISPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLPIXELTEXGENPARAMETERIVSGISPROC)(GLenum pname, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLPIXELTEXGENSGIXPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLPIXELTRANSFERXOESPROC)(GLenum pname, GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLPIXELTRANSFORMPARAMETERFEXTPROC)(GLenum target, GLenum pname,
+ GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC)(GLenum target, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPIXELTRANSFORMPARAMETERIEXTPROC)(GLenum target, GLenum pname,
+ GLint param);
+typedef void(GLAD_API_PTR *PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC)(GLenum target, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLPIXELZOOMXOESPROC)(GLfixed xfactor, GLfixed yfactor);
+typedef GLboolean(GLAD_API_PTR *PFNGLPOINTALONGPATHNVPROC)(GLuint path, GLsizei startSegment,
+ GLsizei numSegments, GLfloat distance,
+ GLfloat *x, GLfloat *y,
+ GLfloat *tangentX, GLfloat *tangentY);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERFPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERFARBPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERFEXTPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERFSGISPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERFVPROC)(GLenum pname, const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERFVARBPROC)(GLenum pname, const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERFVEXTPROC)(GLenum pname, const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERFVSGISPROC)(GLenum pname, const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERIPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERINVPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERIVPROC)(GLenum pname, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERIVNVPROC)(GLenum pname, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERXVOESPROC)(GLenum pname, const GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLPOINTSIZEPROC)(GLfloat size);
+typedef void(GLAD_API_PTR *PFNGLPOINTSIZEXOESPROC)(GLfixed size);
+typedef GLint(GLAD_API_PTR *PFNGLPOLLASYNCSGIXPROC)(GLuint *markerp);
+typedef GLint(GLAD_API_PTR *PFNGLPOLLINSTRUMENTSSGIXPROC)(GLint *marker_p);
+typedef void(GLAD_API_PTR *PFNGLPOLYGONMODEPROC)(GLenum face, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLPOLYGONOFFSETPROC)(GLfloat factor, GLfloat units);
+typedef void(GLAD_API_PTR *PFNGLPOLYGONOFFSETCLAMPPROC)(GLfloat factor, GLfloat units,
+ GLfloat clamp);
+typedef void(GLAD_API_PTR *PFNGLPOLYGONOFFSETCLAMPEXTPROC)(GLfloat factor, GLfloat units,
+ GLfloat clamp);
+typedef void(GLAD_API_PTR *PFNGLPOLYGONOFFSETEXTPROC)(GLfloat factor, GLfloat bias);
+typedef void(GLAD_API_PTR *PFNGLPOLYGONOFFSETXOESPROC)(GLfixed factor, GLfixed units);
+typedef void(GLAD_API_PTR *PFNGLPOPDEBUGGROUPPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLPOPGROUPMARKEREXTPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLPRESENTFRAMEDUALFILLNVPROC)(
+ GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId,
+ GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1,
+ GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3);
+typedef void(GLAD_API_PTR *PFNGLPRESENTFRAMEKEYEDNVPROC)(GLuint video_slot,
+ GLuint64EXT minPresentTime,
+ GLuint beginPresentTimeId,
+ GLuint presentDurationId, GLenum type,
+ GLenum target0, GLuint fill0, GLuint key0,
+ GLenum target1, GLuint fill1, GLuint key1);
+typedef void(GLAD_API_PTR *PFNGLPRIMITIVEBOUNDINGBOXARBPROC)(GLfloat minX, GLfloat minY,
+ GLfloat minZ, GLfloat minW,
+ GLfloat maxX, GLfloat maxY,
+ GLfloat maxZ, GLfloat maxW);
+typedef void(GLAD_API_PTR *PFNGLPRIMITIVERESTARTINDEXPROC)(GLuint index);
+typedef void(GLAD_API_PTR *PFNGLPRIMITIVERESTARTINDEXNVPROC)(GLuint index);
+typedef void(GLAD_API_PTR *PFNGLPRIMITIVERESTARTNVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLPRIORITIZETEXTURESEXTPROC)(GLsizei n, const GLuint *textures,
+ const GLclampf *priorities);
+typedef void(GLAD_API_PTR *PFNGLPRIORITIZETEXTURESXOESPROC)(GLsizei n, const GLuint *textures,
+ const GLfixed *priorities);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMBINARYPROC)(GLuint program, GLenum binaryFormat,
+ const void *binary, GLsizei length);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC)(GLenum target,
+ GLuint bindingIndex,
+ GLuint wordIndex, GLsizei count,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC)(GLenum target,
+ GLuint bindingIndex,
+ GLuint wordIndex, GLsizei count,
+ const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC)(GLenum target, GLuint bindingIndex,
+ GLuint wordIndex, GLsizei count,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETER4DARBPROC)(GLenum target, GLuint index,
+ GLdouble x, GLdouble y, GLdouble z,
+ GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETER4DVARBPROC)(GLenum target, GLuint index,
+ const GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETER4FARBPROC)(GLenum target, GLuint index,
+ GLfloat x, GLfloat y, GLfloat z,
+ GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETER4FVARBPROC)(GLenum target, GLuint index,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETERI4INVPROC)(GLenum target, GLuint index, GLint x,
+ GLint y, GLint z, GLint w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETERI4IVNVPROC)(GLenum target, GLuint index,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETERI4UINVPROC)(GLenum target, GLuint index,
+ GLuint x, GLuint y, GLuint z,
+ GLuint w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETERI4UIVNVPROC)(GLenum target, GLuint index,
+ const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETERS4FVEXTPROC)(GLenum target, GLuint index,
+ GLsizei count,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETERSI4IVNVPROC)(GLenum target, GLuint index,
+ GLsizei count, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC)(GLenum target, GLuint index,
+ GLsizei count,
+ const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETER4DARBPROC)(GLenum target, GLuint index,
+ GLdouble x, GLdouble y, GLdouble z,
+ GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)(GLenum target, GLuint index,
+ const GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETER4FARBPROC)(GLenum target, GLuint index,
+ GLfloat x, GLfloat y, GLfloat z,
+ GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)(GLenum target, GLuint index,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETERI4INVPROC)(GLenum target, GLuint index,
+ GLint x, GLint y, GLint z, GLint w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC)(GLenum target, GLuint index,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETERI4UINVPROC)(GLenum target, GLuint index,
+ GLuint x, GLuint y, GLuint z,
+ GLuint w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC)(GLenum target, GLuint index,
+ const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC)(GLenum target, GLuint index,
+ GLsizei count,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC)(GLenum target, GLuint index,
+ GLsizei count,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC)(GLenum target, GLuint index,
+ GLsizei count,
+ const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMNAMEDPARAMETER4DNVPROC)(GLuint id, GLsizei len,
+ const GLubyte *name, GLdouble x,
+ GLdouble y, GLdouble z, GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC)(GLuint id, GLsizei len,
+ const GLubyte *name,
+ const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMNAMEDPARAMETER4FNVPROC)(GLuint id, GLsizei len,
+ const GLubyte *name, GLfloat x,
+ GLfloat y, GLfloat z, GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC)(GLuint id, GLsizei len,
+ const GLubyte *name,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMPARAMETER4DNVPROC)(GLenum target, GLuint index, GLdouble x,
+ GLdouble y, GLdouble z, GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMPARAMETER4DVNVPROC)(GLenum target, GLuint index,
+ const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMPARAMETER4FNVPROC)(GLenum target, GLuint index, GLfloat x,
+ GLfloat y, GLfloat z, GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMPARAMETER4FVNVPROC)(GLenum target, GLuint index,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMPARAMETERIPROC)(GLuint program, GLenum pname, GLint value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMPARAMETERIARBPROC)(GLuint program, GLenum pname,
+ GLint value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMPARAMETERIEXTPROC)(GLuint program, GLenum pname,
+ GLint value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMPARAMETERS4DVNVPROC)(GLenum target, GLuint index,
+ GLsizei count, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMPARAMETERS4FVNVPROC)(GLenum target, GLuint index,
+ GLsizei count, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC)(GLuint program, GLint location,
+ GLenum genMode, GLint components,
+ const GLfloat *coeffs);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMSTRINGARBPROC)(GLenum target, GLenum format, GLsizei len,
+ const void *string);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC)(GLenum target, GLsizei count,
+ const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1DPROC)(GLuint program, GLint location, GLdouble v0);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1DEXTPROC)(GLuint program, GLint location,
+ GLdouble x);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1DVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1FPROC)(GLuint program, GLint location, GLfloat v0);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1FEXTPROC)(GLuint program, GLint location,
+ GLfloat v0);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1FVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1IPROC)(GLuint program, GLint location, GLint v0);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1I64ARBPROC)(GLuint program, GLint location,
+ GLint64 x);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1I64NVPROC)(GLuint program, GLint location,
+ GLint64EXT x);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1I64VARBPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint64 *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1I64VNVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1IEXTPROC)(GLuint program, GLint location, GLint v0);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1IVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1IVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UIPROC)(GLuint program, GLint location, GLuint v0);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UI64ARBPROC)(GLuint program, GLint location,
+ GLuint64 x);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UI64NVPROC)(GLuint program, GLint location,
+ GLuint64EXT x);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UI64VARBPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint64 *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UI64VNVPROC)(GLuint program, GLint location,
+ GLsizei count,
+ const GLuint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UIEXTPROC)(GLuint program, GLint location,
+ GLuint v0);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UIVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UIVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2DPROC)(GLuint program, GLint location, GLdouble v0,
+ GLdouble v1);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2DEXTPROC)(GLuint program, GLint location, GLdouble x,
+ GLdouble y);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2DVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2FPROC)(GLuint program, GLint location, GLfloat v0,
+ GLfloat v1);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2FEXTPROC)(GLuint program, GLint location, GLfloat v0,
+ GLfloat v1);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2FVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2IPROC)(GLuint program, GLint location, GLint v0,
+ GLint v1);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2I64ARBPROC)(GLuint program, GLint location,
+ GLint64 x, GLint64 y);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2I64NVPROC)(GLuint program, GLint location,
+ GLint64EXT x, GLint64EXT y);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2I64VARBPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint64 *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2I64VNVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2IEXTPROC)(GLuint program, GLint location, GLint v0,
+ GLint v1);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2IVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2IVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UIPROC)(GLuint program, GLint location, GLuint v0,
+ GLuint v1);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UI64ARBPROC)(GLuint program, GLint location,
+ GLuint64 x, GLuint64 y);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UI64NVPROC)(GLuint program, GLint location,
+ GLuint64EXT x, GLuint64EXT y);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UI64VARBPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint64 *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UI64VNVPROC)(GLuint program, GLint location,
+ GLsizei count,
+ const GLuint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UIEXTPROC)(GLuint program, GLint location, GLuint v0,
+ GLuint v1);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UIVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UIVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3DPROC)(GLuint program, GLint location, GLdouble v0,
+ GLdouble v1, GLdouble v2);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3DEXTPROC)(GLuint program, GLint location, GLdouble x,
+ GLdouble y, GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3DVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3FPROC)(GLuint program, GLint location, GLfloat v0,
+ GLfloat v1, GLfloat v2);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3FEXTPROC)(GLuint program, GLint location, GLfloat v0,
+ GLfloat v1, GLfloat v2);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3FVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3IPROC)(GLuint program, GLint location, GLint v0,
+ GLint v1, GLint v2);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3I64ARBPROC)(GLuint program, GLint location,
+ GLint64 x, GLint64 y, GLint64 z);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3I64NVPROC)(GLuint program, GLint location,
+ GLint64EXT x, GLint64EXT y, GLint64EXT z);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3I64VARBPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint64 *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3I64VNVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3IEXTPROC)(GLuint program, GLint location, GLint v0,
+ GLint v1, GLint v2);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3IVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3IVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UIPROC)(GLuint program, GLint location, GLuint v0,
+ GLuint v1, GLuint v2);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UI64ARBPROC)(GLuint program, GLint location,
+ GLuint64 x, GLuint64 y, GLuint64 z);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UI64NVPROC)(GLuint program, GLint location,
+ GLuint64EXT x, GLuint64EXT y,
+ GLuint64EXT z);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UI64VARBPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint64 *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UI64VNVPROC)(GLuint program, GLint location,
+ GLsizei count,
+ const GLuint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UIEXTPROC)(GLuint program, GLint location, GLuint v0,
+ GLuint v1, GLuint v2);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UIVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UIVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4DPROC)(GLuint program, GLint location, GLdouble v0,
+ GLdouble v1, GLdouble v2, GLdouble v3);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4DEXTPROC)(GLuint program, GLint location, GLdouble x,
+ GLdouble y, GLdouble z, GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4DVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4FPROC)(GLuint program, GLint location, GLfloat v0,
+ GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4FEXTPROC)(GLuint program, GLint location, GLfloat v0,
+ GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4FVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4IPROC)(GLuint program, GLint location, GLint v0,
+ GLint v1, GLint v2, GLint v3);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4I64ARBPROC)(GLuint program, GLint location,
+ GLint64 x, GLint64 y, GLint64 z,
+ GLint64 w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4I64NVPROC)(GLuint program, GLint location,
+ GLint64EXT x, GLint64EXT y, GLint64EXT z,
+ GLint64EXT w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4I64VARBPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint64 *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4I64VNVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4IEXTPROC)(GLuint program, GLint location, GLint v0,
+ GLint v1, GLint v2, GLint v3);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4IVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4IVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UIPROC)(GLuint program, GLint location, GLuint v0,
+ GLuint v1, GLuint v2, GLuint v3);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UI64ARBPROC)(GLuint program, GLint location,
+ GLuint64 x, GLuint64 y, GLuint64 z,
+ GLuint64 w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UI64NVPROC)(GLuint program, GLint location,
+ GLuint64EXT x, GLuint64EXT y,
+ GLuint64EXT z, GLuint64EXT w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UI64VARBPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint64 *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UI64VNVPROC)(GLuint program, GLint location,
+ GLsizei count,
+ const GLuint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UIEXTPROC)(GLuint program, GLint location, GLuint v0,
+ GLuint v1, GLuint v2, GLuint v3);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UIVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UIVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC)(GLuint program, GLint location,
+ GLuint64 value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC)(GLuint program, GLint location,
+ GLuint64 value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC)(GLuint program, GLint location,
+ GLsizei count,
+ const GLuint64 *values);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC)(GLuint program, GLint location,
+ GLsizei count,
+ const GLuint64 *values);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2DVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2FVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3DVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3FVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4DVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4FVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMUI64NVPROC)(GLuint program, GLint location,
+ GLuint64EXT value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMUI64VNVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMVERTEXLIMITNVPROC)(GLenum target, GLint limit);
+typedef void(GLAD_API_PTR *PFNGLPROVOKINGVERTEXPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLPROVOKINGVERTEXEXTPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC)(GLbitfield mask);
+typedef void(GLAD_API_PTR *PFNGLPUSHDEBUGGROUPPROC)(GLenum source, GLuint id, GLsizei length,
+ const GLchar *message);
+typedef void(GLAD_API_PTR *PFNGLPUSHGROUPMARKEREXTPROC)(GLsizei length, const GLchar *marker);
+typedef void(GLAD_API_PTR *PFNGLQUERYCOUNTERPROC)(GLuint id, GLenum target);
+typedef GLbitfield(GLAD_API_PTR *PFNGLQUERYMATRIXXOESPROC)(GLfixed *mantissa, GLint *exponent);
+typedef void(GLAD_API_PTR *PFNGLQUERYOBJECTPARAMETERUIAMDPROC)(GLenum target, GLuint id,
+ GLenum pname, GLuint param);
+typedef GLint(GLAD_API_PTR *PFNGLQUERYRESOURCENVPROC)(GLenum queryType, GLint tagId, GLuint count,
+ GLint *buffer);
+typedef void(GLAD_API_PTR *PFNGLQUERYRESOURCETAGNVPROC)(GLint tagId, const GLchar *tagString);
+typedef void(GLAD_API_PTR *PFNGLRASTERPOS2XOESPROC)(GLfixed x, GLfixed y);
+typedef void(GLAD_API_PTR *PFNGLRASTERPOS2XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLRASTERPOS3XOESPROC)(GLfixed x, GLfixed y, GLfixed z);
+typedef void(GLAD_API_PTR *PFNGLRASTERPOS3XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLRASTERPOS4XOESPROC)(GLfixed x, GLfixed y, GLfixed z, GLfixed w);
+typedef void(GLAD_API_PTR *PFNGLRASTERPOS4XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLRASTERSAMPLESEXTPROC)(GLuint samples,
+ GLboolean fixedsamplelocations);
+typedef void(GLAD_API_PTR *PFNGLREADBUFFERPROC)(GLenum src);
+typedef void(GLAD_API_PTR *PFNGLREADINSTRUMENTSSGIXPROC)(GLint marker);
+typedef void(GLAD_API_PTR *PFNGLREADPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height,
+ GLenum format, GLenum type, void *pixels);
+typedef void(GLAD_API_PTR *PFNGLREADNPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height,
+ GLenum format, GLenum type, GLsizei bufSize,
+ void *data);
+typedef void(GLAD_API_PTR *PFNGLREADNPIXELSARBPROC)(GLint x, GLint y, GLsizei width, GLsizei height,
+ GLenum format, GLenum type, GLsizei bufSize,
+ void *data);
+typedef void(GLAD_API_PTR *PFNGLRECTXOESPROC)(GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2);
+typedef void(GLAD_API_PTR *PFNGLRECTXVOESPROC)(const GLfixed *v1, const GLfixed *v2);
+typedef void(GLAD_API_PTR *PFNGLREFERENCEPLANESGIXPROC)(const GLdouble *equation);
+typedef GLboolean(GLAD_API_PTR *PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC)(GLuint memory, GLuint64 key);
+typedef void(GLAD_API_PTR *PFNGLRELEASESHADERCOMPILERPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLRENDERGPUMASKNVPROC)(GLbitfield mask);
+typedef void(GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEEXTPROC)(GLenum target, GLenum internalformat,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLenum target, GLsizei samples,
+ GLenum internalformat,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC)(
+ GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC)(
+ GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)(
+ GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEPOINTERSUNPROC)(GLenum type, GLsizei stride,
+ const void **pointer);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUBSUNPROC)(GLubyte code);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUBVSUNPROC)(const GLubyte *code);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC)(GLuint rc, GLfloat r,
+ GLfloat g, GLfloat b,
+ GLfloat x, GLfloat y,
+ GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC)(const GLuint *rc,
+ const GLfloat *c,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC)(
+ GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz,
+ GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLuint *rc,
+ const GLfloat *c,
+ const GLfloat *n,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC)(GLuint rc, GLubyte r,
+ GLubyte g, GLubyte b,
+ GLubyte a, GLfloat x,
+ GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC)(const GLuint *rc,
+ const GLubyte *c,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC)(GLuint rc, GLfloat nx,
+ GLfloat ny, GLfloat nz,
+ GLfloat x, GLfloat y,
+ GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC)(const GLuint *rc,
+ const GLfloat *n,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUISUNPROC)(GLuint code);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC)(
+ GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx,
+ GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC)(
+ const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC)(
+ GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y,
+ GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC)(
+ const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC)(GLuint rc, GLfloat s,
+ GLfloat t, GLfloat x,
+ GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC)(const GLuint *rc,
+ const GLfloat *tc,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC)(GLuint rc, GLfloat x, GLfloat y,
+ GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC)(const GLuint *rc,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUIVSUNPROC)(const GLuint *code);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUSSUNPROC)(GLushort code);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUSVSUNPROC)(const GLushort *code);
+typedef void(GLAD_API_PTR *PFNGLREQUESTRESIDENTPROGRAMSNVPROC)(GLsizei n, const GLuint *programs);
+typedef void(GLAD_API_PTR *PFNGLRESETHISTOGRAMEXTPROC)(GLenum target);
+typedef void(GLAD_API_PTR *PFNGLRESETMEMORYOBJECTPARAMETERNVPROC)(GLuint memory, GLenum pname);
+typedef void(GLAD_API_PTR *PFNGLRESETMINMAXEXTPROC)(GLenum target);
+typedef void(GLAD_API_PTR *PFNGLRESIZEBUFFERSMESAPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLRESOLVEDEPTHVALUESNVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLRESUMETRANSFORMFEEDBACKPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLRESUMETRANSFORMFEEDBACKNVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLROTATEXOESPROC)(GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
+typedef void(GLAD_API_PTR *PFNGLSAMPLECOVERAGEPROC)(GLfloat value, GLboolean invert);
+typedef void(GLAD_API_PTR *PFNGLSAMPLECOVERAGEARBPROC)(GLfloat value, GLboolean invert);
+typedef void(GLAD_API_PTR *PFNGLSAMPLEMAPATIPROC)(GLuint dst, GLuint interp, GLenum swizzle);
+typedef void(GLAD_API_PTR *PFNGLSAMPLEMASKEXTPROC)(GLclampf value, GLboolean invert);
+typedef void(GLAD_API_PTR *PFNGLSAMPLEMASKINDEXEDNVPROC)(GLuint index, GLbitfield mask);
+typedef void(GLAD_API_PTR *PFNGLSAMPLEMASKSGISPROC)(GLclampf value, GLboolean invert);
+typedef void(GLAD_API_PTR *PFNGLSAMPLEMASKIPROC)(GLuint maskNumber, GLbitfield mask);
+typedef void(GLAD_API_PTR *PFNGLSAMPLEPATTERNEXTPROC)(GLenum pattern);
+typedef void(GLAD_API_PTR *PFNGLSAMPLEPATTERNSGISPROC)(GLenum pattern);
+typedef void(GLAD_API_PTR *PFNGLSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname,
+ const GLint *param);
+typedef void(GLAD_API_PTR *PFNGLSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname,
+ const GLuint *param);
+typedef void(GLAD_API_PTR *PFNGLSAMPLERPARAMETERFPROC)(GLuint sampler, GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname,
+ const GLfloat *param);
+typedef void(GLAD_API_PTR *PFNGLSAMPLERPARAMETERIPROC)(GLuint sampler, GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname,
+ const GLint *param);
+typedef void(GLAD_API_PTR *PFNGLSCALEXOESPROC)(GLfixed x, GLfixed y, GLfixed z);
+typedef void(GLAD_API_PTR *PFNGLSCISSORPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLSCISSORARRAYVPROC)(GLuint first, GLsizei count, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLSCISSOREXCLUSIVEARRAYVNVPROC)(GLuint first, GLsizei count,
+ const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLSCISSOREXCLUSIVENVPROC)(GLint x, GLint y, GLsizei width,
+ GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLSCISSORINDEXEDPROC)(GLuint index, GLint left, GLint bottom,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLSCISSORINDEXEDVPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3BEXTPROC)(GLbyte red, GLbyte green, GLbyte blue);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3BVEXTPROC)(const GLbyte *v);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3DEXTPROC)(GLdouble red, GLdouble green,
+ GLdouble blue);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3DVEXTPROC)(const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3FEXTPROC)(GLfloat red, GLfloat green, GLfloat blue);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3FVEXTPROC)(const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3HNVPROC)(GLhalfNV red, GLhalfNV green,
+ GLhalfNV blue);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3IEXTPROC)(GLint red, GLint green, GLint blue);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3IVEXTPROC)(const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3SEXTPROC)(GLshort red, GLshort green, GLshort blue);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3SVEXTPROC)(const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3UBEXTPROC)(GLubyte red, GLubyte green, GLubyte blue);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3UBVEXTPROC)(const GLubyte *v);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3UIEXTPROC)(GLuint red, GLuint green, GLuint blue);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3UIVEXTPROC)(const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3USEXTPROC)(GLushort red, GLushort green,
+ GLushort blue);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3USVEXTPROC)(const GLushort *v);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLORFORMATNVPROC)(GLint size, GLenum type,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLORPOINTEREXTPROC)(GLint size, GLenum type,
+ GLsizei stride, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLORPOINTERLISTIBMPROC)(GLint size, GLenum type,
+ GLint stride,
+ const void **pointer,
+ GLint ptrstride);
+typedef void(GLAD_API_PTR *PFNGLSELECTPERFMONITORCOUNTERSAMDPROC)(GLuint monitor, GLboolean enable,
+ GLuint group, GLint numCounters,
+ GLuint *counterList);
+typedef void(GLAD_API_PTR *PFNGLSEMAPHOREPARAMETERIVNVPROC)(GLuint semaphore, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLSEMAPHOREPARAMETERUI64VEXTPROC)(GLuint semaphore, GLenum pname,
+ const GLuint64 *params);
+typedef void(GLAD_API_PTR *PFNGLSEPARABLEFILTER2DEXTPROC)(GLenum target, GLenum internalformat,
+ GLsizei width, GLsizei height,
+ GLenum format, GLenum type,
+ const void *row, const void *column);
+typedef void(GLAD_API_PTR *PFNGLSETFENCEAPPLEPROC)(GLuint fence);
+typedef void(GLAD_API_PTR *PFNGLSETFENCENVPROC)(GLuint fence, GLenum condition);
+typedef void(GLAD_API_PTR *PFNGLSETFRAGMENTSHADERCONSTANTATIPROC)(GLuint dst, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLSETINVARIANTEXTPROC)(GLuint id, GLenum type, const void *addr);
+typedef void(GLAD_API_PTR *PFNGLSETLOCALCONSTANTEXTPROC)(GLuint id, GLenum type, const void *addr);
+typedef void(GLAD_API_PTR *PFNGLSETMULTISAMPLEFVAMDPROC)(GLenum pname, GLuint index,
+ const GLfloat *val);
+typedef void(GLAD_API_PTR *PFNGLSHADERBINARYPROC)(GLsizei count, const GLuint *shaders,
+ GLenum binaryFormat, const void *binary,
+ GLsizei length);
+typedef void(GLAD_API_PTR *PFNGLSHADEROP1EXTPROC)(GLenum op, GLuint res, GLuint arg1);
+typedef void(GLAD_API_PTR *PFNGLSHADEROP2EXTPROC)(GLenum op, GLuint res, GLuint arg1, GLuint arg2);
+typedef void(GLAD_API_PTR *PFNGLSHADEROP3EXTPROC)(GLenum op, GLuint res, GLuint arg1, GLuint arg2,
+ GLuint arg3);
+typedef void(GLAD_API_PTR *PFNGLSHADERSOURCEPROC)(GLuint shader, GLsizei count,
+ const GLchar *const *string, const GLint *length);
+typedef void(GLAD_API_PTR *PFNGLSHADERSOURCEARBPROC)(GLhandleARB shaderObj, GLsizei count,
+ const GLcharARB **string, const GLint *length);
+typedef void(GLAD_API_PTR *PFNGLSHADERSTORAGEBLOCKBINDINGPROC)(GLuint program,
+ GLuint storageBlockIndex,
+ GLuint storageBlockBinding);
+typedef void(GLAD_API_PTR *PFNGLSHADINGRATEIMAGEBARRIERNVPROC)(GLboolean synchronize);
+typedef void(GLAD_API_PTR *PFNGLSHADINGRATEIMAGEPALETTENVPROC)(GLuint viewport, GLuint first,
+ GLsizei count, const GLenum *rates);
+typedef void(GLAD_API_PTR *PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC)(GLenum rate, GLuint samples,
+ const GLint *locations);
+typedef void(GLAD_API_PTR *PFNGLSHADINGRATESAMPLEORDERNVPROC)(GLenum order);
+typedef void(GLAD_API_PTR *PFNGLSHARPENTEXFUNCSGISPROC)(GLenum target, GLsizei n,
+ const GLfloat *points);
+typedef void(GLAD_API_PTR *PFNGLSIGNALSEMAPHOREEXTPROC)(GLuint semaphore, GLuint numBufferBarriers,
+ const GLuint *buffers,
+ GLuint numTextureBarriers,
+ const GLuint *textures,
+ const GLenum *dstLayouts);
+typedef void(GLAD_API_PTR *PFNGLSIGNALSEMAPHOREUI64NVXPROC)(GLuint signalGpu,
+ GLsizei fenceObjectCount,
+ const GLuint *semaphoreArray,
+ const GLuint64 *fenceValueArray);
+typedef void(GLAD_API_PTR *PFNGLSIGNALVKFENCENVPROC)(GLuint64 vkFence);
+typedef void(GLAD_API_PTR *PFNGLSIGNALVKSEMAPHORENVPROC)(GLuint64 vkSemaphore);
+typedef void(GLAD_API_PTR *PFNGLSPECIALIZESHADERPROC)(GLuint shader, const GLchar *pEntryPoint,
+ GLuint numSpecializationConstants,
+ const GLuint *pConstantIndex,
+ const GLuint *pConstantValue);
+typedef void(GLAD_API_PTR *PFNGLSPECIALIZESHADERARBPROC)(GLuint shader, const GLchar *pEntryPoint,
+ GLuint numSpecializationConstants,
+ const GLuint *pConstantIndex,
+ const GLuint *pConstantValue);
+typedef void(GLAD_API_PTR *PFNGLSPRITEPARAMETERFSGIXPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLSPRITEPARAMETERFVSGIXPROC)(GLenum pname, const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLSPRITEPARAMETERISGIXPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLSPRITEPARAMETERIVSGIXPROC)(GLenum pname, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLSTARTINSTRUMENTSSGIXPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLSTATECAPTURENVPROC)(GLuint state, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLSTENCILCLEARTAGEXTPROC)(GLsizei stencilTagBits,
+ GLuint stencilClearTag);
+typedef void(GLAD_API_PTR *PFNGLSTENCILFILLPATHINSTANCEDNVPROC)(
+ GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode,
+ GLuint mask, GLenum transformType, const GLfloat *transformValues);
+typedef void(GLAD_API_PTR *PFNGLSTENCILFILLPATHNVPROC)(GLuint path, GLenum fillMode, GLuint mask);
+typedef void(GLAD_API_PTR *PFNGLSTENCILFUNCPROC)(GLenum func, GLint ref, GLuint mask);
+typedef void(GLAD_API_PTR *PFNGLSTENCILFUNCSEPARATEPROC)(GLenum face, GLenum func, GLint ref,
+ GLuint mask);
+typedef void(GLAD_API_PTR *PFNGLSTENCILFUNCSEPARATEATIPROC)(GLenum frontfunc, GLenum backfunc,
+ GLint ref, GLuint mask);
+typedef void(GLAD_API_PTR *PFNGLSTENCILMASKPROC)(GLuint mask);
+typedef void(GLAD_API_PTR *PFNGLSTENCILMASKSEPARATEPROC)(GLenum face, GLuint mask);
+typedef void(GLAD_API_PTR *PFNGLSTENCILOPPROC)(GLenum fail, GLenum zfail, GLenum zpass);
+typedef void(GLAD_API_PTR *PFNGLSTENCILOPSEPARATEPROC)(GLenum face, GLenum sfail, GLenum dpfail,
+ GLenum dppass);
+typedef void(GLAD_API_PTR *PFNGLSTENCILOPSEPARATEATIPROC)(GLenum face, GLenum sfail, GLenum dpfail,
+ GLenum dppass);
+typedef void(GLAD_API_PTR *PFNGLSTENCILOPVALUEAMDPROC)(GLenum face, GLuint value);
+typedef void(GLAD_API_PTR *PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC)(
+ GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference,
+ GLuint mask, GLenum transformType, const GLfloat *transformValues);
+typedef void(GLAD_API_PTR *PFNGLSTENCILSTROKEPATHNVPROC)(GLuint path, GLint reference, GLuint mask);
+typedef void(GLAD_API_PTR *PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC)(
+ GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode,
+ GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
+typedef void(GLAD_API_PTR *PFNGLSTENCILTHENCOVERFILLPATHNVPROC)(GLuint path, GLenum fillMode,
+ GLuint mask, GLenum coverMode);
+typedef void(GLAD_API_PTR *PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC)(
+ GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference,
+ GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
+typedef void(GLAD_API_PTR *PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC)(GLuint path, GLint reference,
+ GLuint mask, GLenum coverMode);
+typedef void(GLAD_API_PTR *PFNGLSTOPINSTRUMENTSSGIXPROC)(GLint marker);
+typedef void(GLAD_API_PTR *PFNGLSTRINGMARKERGREMEDYPROC)(GLsizei len, const void *string);
+typedef void(GLAD_API_PTR *PFNGLSUBPIXELPRECISIONBIASNVPROC)(GLuint xbits, GLuint ybits);
+typedef void(GLAD_API_PTR *PFNGLSWIZZLEEXTPROC)(GLuint res, GLuint in, GLenum outX, GLenum outY,
+ GLenum outZ, GLenum outW);
+typedef void(GLAD_API_PTR *PFNGLSYNCTEXTUREINTELPROC)(GLuint texture);
+typedef void(GLAD_API_PTR *PFNGLTAGSAMPLEBUFFERSGIXPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLTANGENT3BEXTPROC)(GLbyte tx, GLbyte ty, GLbyte tz);
+typedef void(GLAD_API_PTR *PFNGLTANGENT3BVEXTPROC)(const GLbyte *v);
+typedef void(GLAD_API_PTR *PFNGLTANGENT3DEXTPROC)(GLdouble tx, GLdouble ty, GLdouble tz);
+typedef void(GLAD_API_PTR *PFNGLTANGENT3DVEXTPROC)(const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLTANGENT3FEXTPROC)(GLfloat tx, GLfloat ty, GLfloat tz);
+typedef void(GLAD_API_PTR *PFNGLTANGENT3FVEXTPROC)(const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLTANGENT3IEXTPROC)(GLint tx, GLint ty, GLint tz);
+typedef void(GLAD_API_PTR *PFNGLTANGENT3IVEXTPROC)(const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLTANGENT3SEXTPROC)(GLshort tx, GLshort ty, GLshort tz);
+typedef void(GLAD_API_PTR *PFNGLTANGENT3SVEXTPROC)(const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLTANGENTPOINTEREXTPROC)(GLenum type, GLsizei stride,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLTBUFFERMASK3DFXPROC)(GLuint mask);
+typedef void(GLAD_API_PTR *PFNGLTESSELLATIONFACTORAMDPROC)(GLfloat factor);
+typedef void(GLAD_API_PTR *PFNGLTESSELLATIONMODEAMDPROC)(GLenum mode);
+typedef GLboolean(GLAD_API_PTR *PFNGLTESTFENCEAPPLEPROC)(GLuint fence);
+typedef GLboolean(GLAD_API_PTR *PFNGLTESTFENCENVPROC)(GLuint fence);
+typedef GLboolean(GLAD_API_PTR *PFNGLTESTOBJECTAPPLEPROC)(GLenum object, GLuint name);
+typedef void(GLAD_API_PTR *PFNGLTEXATTACHMEMORYNVPROC)(GLenum target, GLuint memory,
+ GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXBUFFERPROC)(GLenum target, GLenum internalformat, GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLTEXBUFFERARBPROC)(GLenum target, GLenum internalformat,
+ GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLTEXBUFFEREXTPROC)(GLenum target, GLenum internalformat,
+ GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLTEXBUFFERRANGEPROC)(GLenum target, GLenum internalformat,
+ GLuint buffer, GLintptr offset,
+ GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLTEXBUMPPARAMETERFVATIPROC)(GLenum pname, const GLfloat *param);
+typedef void(GLAD_API_PTR *PFNGLTEXBUMPPARAMETERIVATIPROC)(GLenum pname, const GLint *param);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD1BOESPROC)(GLbyte s);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD1BVOESPROC)(const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD1HNVPROC)(GLhalfNV s);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD1HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD1XOESPROC)(GLfixed s);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD1XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2BOESPROC)(GLbyte s, GLbyte t);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2BVOESPROC)(const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat r,
+ GLfloat g, GLfloat b, GLfloat x,
+ GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC)(const GLfloat *tc,
+ const GLfloat *c,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC)(
+ GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny,
+ GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLfloat *tc,
+ const GLfloat *c,
+ const GLfloat *n,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLubyte r,
+ GLubyte g, GLubyte b, GLubyte a,
+ GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC)(const GLfloat *tc,
+ const GLubyte *c,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat nx,
+ GLfloat ny, GLfloat nz,
+ GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC)(const GLfloat *tc,
+ const GLfloat *n,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat x,
+ GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FVERTEX3FVSUNPROC)(const GLfloat *tc, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2HNVPROC)(GLhalfNV s, GLhalfNV t);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2XOESPROC)(GLfixed s, GLfixed t);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD3BOESPROC)(GLbyte s, GLbyte t, GLbyte r);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD3BVOESPROC)(const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD3HNVPROC)(GLhalfNV s, GLhalfNV t, GLhalfNV r);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD3HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD3XOESPROC)(GLfixed s, GLfixed t, GLfixed r);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD3XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD4BOESPROC)(GLbyte s, GLbyte t, GLbyte r, GLbyte q);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD4BVOESPROC)(const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC)(
+ GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a,
+ GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC)(const GLfloat *tc,
+ const GLfloat *c,
+ const GLfloat *n,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD4FVERTEX4FSUNPROC)(GLfloat s, GLfloat t, GLfloat p,
+ GLfloat q, GLfloat x, GLfloat y,
+ GLfloat z, GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD4FVERTEX4FVSUNPROC)(const GLfloat *tc, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD4HNVPROC)(GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD4HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD4XOESPROC)(GLfixed s, GLfixed t, GLfixed r, GLfixed q);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD4XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORDFORMATNVPROC)(GLint size, GLenum type, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORDPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride,
+ GLsizei count, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORDPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride,
+ const void **pointer, GLint ptrstride);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORDPOINTERVINTELPROC)(GLint size, GLenum type,
+ const void **pointer);
+typedef void(GLAD_API_PTR *PFNGLTEXENVXOESPROC)(GLenum target, GLenum pname, GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLTEXENVXVOESPROC)(GLenum target, GLenum pname,
+ const GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLTEXFILTERFUNCSGISPROC)(GLenum target, GLenum filter, GLsizei n,
+ const GLfloat *weights);
+typedef void(GLAD_API_PTR *PFNGLTEXGENXOESPROC)(GLenum coord, GLenum pname, GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLTEXGENXVOESPROC)(GLenum coord, GLenum pname, const GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLTEXIMAGE1DPROC)(GLenum target, GLint level, GLint internalformat,
+ GLsizei width, GLint border, GLenum format,
+ GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXIMAGE2DPROC)(GLenum target, GLint level, GLint internalformat,
+ GLsizei width, GLsizei height, GLint border,
+ GLenum format, GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXIMAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples,
+ GLenum internalformat, GLsizei width,
+ GLsizei height,
+ GLboolean fixedsamplelocations);
+typedef void(GLAD_API_PTR *PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC)(
+ GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat,
+ GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
+typedef void(GLAD_API_PTR *PFNGLTEXIMAGE3DPROC)(GLenum target, GLint level, GLint internalformat,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLint border, GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXIMAGE3DEXTPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth, GLint border,
+ GLenum format, GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXIMAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLboolean fixedsamplelocations);
+typedef void(GLAD_API_PTR *PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC)(
+ GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat,
+ GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
+typedef void(GLAD_API_PTR *PFNGLTEXIMAGE4DSGISPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth, GLsizei size4d,
+ GLint border, GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXPAGECOMMITMENTARBPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset,
+ GLsizei width, GLsizei height,
+ GLsizei depth, GLboolean commit);
+typedef void(GLAD_API_PTR *PFNGLTEXPAGECOMMITMENTMEMNVPROC)(GLenum target, GLint layer, GLint level,
+ GLint xoffset, GLint yoffset,
+ GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLuint memory, GLuint64 offset,
+ GLboolean commit);
+typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERIIVPROC)(GLenum target, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERIIVEXTPROC)(GLenum target, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname,
+ const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERIUIVEXTPROC)(GLenum target, GLenum pname,
+ const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERFVPROC)(GLenum target, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERIPROC)(GLenum target, GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERIVPROC)(GLenum target, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERXOESPROC)(GLenum target, GLenum pname, GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERXVOESPROC)(GLenum target, GLenum pname,
+ const GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLTEXRENDERBUFFERNVPROC)(GLenum target, GLuint renderbuffer);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGE1DPROC)(GLenum target, GLsizei levels,
+ GLenum internalformat, GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGE1DEXTPROC)(GLenum target, GLsizei levels,
+ GLenum internalformat, GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGE2DPROC)(GLenum target, GLsizei levels,
+ GLenum internalformat, GLsizei width,
+ GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGE2DEXTPROC)(GLenum target, GLsizei levels,
+ GLenum internalformat, GLsizei width,
+ GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples,
+ GLenum internalformat, GLsizei width,
+ GLsizei height,
+ GLboolean fixedsamplelocations);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGE3DPROC)(GLenum target, GLsizei levels,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGE3DEXTPROC)(GLenum target, GLsizei levels,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLboolean fixedsamplelocations);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGEMEM1DEXTPROC)(GLenum target, GLsizei levels,
+ GLenum internalFormat, GLsizei width,
+ GLuint memory, GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGEMEM2DEXTPROC)(GLenum target, GLsizei levels,
+ GLenum internalFormat, GLsizei width,
+ GLsizei height, GLuint memory,
+ GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC)(GLenum target, GLsizei samples,
+ GLenum internalFormat,
+ GLsizei width, GLsizei height,
+ GLboolean fixedSampleLocations,
+ GLuint memory, GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGEMEM3DEXTPROC)(GLenum target, GLsizei levels,
+ GLenum internalFormat, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLuint memory, GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC)(
+ GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height,
+ GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGESPARSEAMDPROC)(GLenum target, GLenum internalFormat,
+ GLsizei width, GLsizei height,
+ GLsizei depth, GLsizei layers,
+ GLbitfield flags);
+typedef void(GLAD_API_PTR *PFNGLTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset,
+ GLsizei width, GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXSUBIMAGE1DEXTPROC)(GLenum target, GLint level, GLint xoffset,
+ GLsizei width, GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLsizei width, GLsizei height,
+ GLenum format, GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXSUBIMAGE2DEXTPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLsizei width, GLsizei height,
+ GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth, GLenum format,
+ GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXSUBIMAGE3DEXTPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth, GLenum format,
+ GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXSUBIMAGE4DSGISPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset, GLint woffset,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLsizei size4d, GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREATTACHMEMORYNVPROC)(GLuint texture, GLuint memory,
+ GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREBARRIERPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREBARRIERNVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREBUFFERPROC)(GLuint texture, GLenum internalformat,
+ GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREBUFFEREXTPROC)(GLuint texture, GLenum target,
+ GLenum internalformat, GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREBUFFERRANGEPROC)(GLuint texture, GLenum internalformat,
+ GLuint buffer, GLintptr offset,
+ GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREBUFFERRANGEEXTPROC)(GLuint texture, GLenum target,
+ GLenum internalformat, GLuint buffer,
+ GLintptr offset, GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLTEXTURECOLORMASKSGISPROC)(GLboolean red, GLboolean green,
+ GLboolean blue, GLboolean alpha);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level,
+ GLint internalformat, GLsizei width,
+ GLint border, GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level,
+ GLint internalformat, GLsizei width,
+ GLsizei height, GLint border, GLenum format,
+ GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC)(
+ GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples,
+ GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC)(GLuint texture, GLenum target,
+ GLsizei samples,
+ GLint internalFormat,
+ GLsizei width, GLsizei height,
+ GLboolean fixedSampleLocations);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level,
+ GLint internalformat, GLsizei width,
+ GLsizei height, GLsizei depth, GLint border,
+ GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC)(
+ GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples,
+ GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth,
+ GLboolean fixedSampleLocations);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC)(
+ GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width,
+ GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
+typedef void(GLAD_API_PTR *PFNGLTEXTURELIGHTEXTPROC)(GLenum pname);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREMATERIALEXTPROC)(GLenum face, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLTEXTURENORMALEXTPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPAGECOMMITMENTEXTPROC)(GLuint texture, GLint level,
+ GLint xoffset, GLint yoffset,
+ GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLboolean commit);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPAGECOMMITMENTMEMNVPROC)(GLuint texture, GLint layer,
+ GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset,
+ GLsizei width, GLsizei height,
+ GLsizei depth, GLuint memory,
+ GLuint64 offset, GLboolean commit);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERIIVPROC)(GLuint texture, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERIIVEXTPROC)(GLuint texture, GLenum target,
+ GLenum pname, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERIUIVPROC)(GLuint texture, GLenum pname,
+ const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERIUIVEXTPROC)(GLuint texture, GLenum target,
+ GLenum pname, const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERFPROC)(GLuint texture, GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERFEXTPROC)(GLuint texture, GLenum target,
+ GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERFVPROC)(GLuint texture, GLenum pname,
+ const GLfloat *param);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERFVEXTPROC)(GLuint texture, GLenum target,
+ GLenum pname, const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERIPROC)(GLuint texture, GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERIEXTPROC)(GLuint texture, GLenum target,
+ GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERIVPROC)(GLuint texture, GLenum pname,
+ const GLint *param);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERIVEXTPROC)(GLuint texture, GLenum target,
+ GLenum pname, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLTEXTURERANGEAPPLEPROC)(GLenum target, GLsizei length,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLTEXTURERENDERBUFFEREXTPROC)(GLuint texture, GLenum target,
+ GLuint renderbuffer);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE1DPROC)(GLuint texture, GLsizei levels,
+ GLenum internalformat, GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE1DEXTPROC)(GLuint texture, GLenum target,
+ GLsizei levels, GLenum internalformat,
+ GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE2DPROC)(GLuint texture, GLsizei levels,
+ GLenum internalformat, GLsizei width,
+ GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE2DEXTPROC)(GLuint texture, GLenum target,
+ GLsizei levels, GLenum internalformat,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC)(GLuint texture, GLsizei samples,
+ GLenum internalformat,
+ GLsizei width, GLsizei height,
+ GLboolean fixedsamplelocations);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC)(GLuint texture, GLenum target,
+ GLsizei samples,
+ GLenum internalformat,
+ GLsizei width, GLsizei height,
+ GLboolean fixedsamplelocations);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE3DPROC)(GLuint texture, GLsizei levels,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE3DEXTPROC)(GLuint texture, GLenum target,
+ GLsizei levels, GLenum internalformat,
+ GLsizei width, GLsizei height,
+ GLsizei depth);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC)(GLuint texture, GLsizei samples,
+ GLenum internalformat,
+ GLsizei width, GLsizei height,
+ GLsizei depth,
+ GLboolean fixedsamplelocations);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC)(
+ GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGEMEM1DEXTPROC)(GLuint texture, GLsizei levels,
+ GLenum internalFormat, GLsizei width,
+ GLuint memory, GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGEMEM2DEXTPROC)(GLuint texture, GLsizei levels,
+ GLenum internalFormat, GLsizei width,
+ GLsizei height, GLuint memory,
+ GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC)(
+ GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height,
+ GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGEMEM3DEXTPROC)(GLuint texture, GLsizei levels,
+ GLenum internalFormat, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLuint memory, GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC)(
+ GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height,
+ GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGESPARSEAMDPROC)(GLuint texture, GLenum target,
+ GLenum internalFormat, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLsizei layers, GLbitfield flags);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset,
+ GLsizei width, GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESUBIMAGE1DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLint xoffset, GLsizei width,
+ GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset,
+ GLint yoffset, GLsizei width, GLsizei height,
+ GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESUBIMAGE2DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLint xoffset, GLint yoffset,
+ GLsizei width, GLsizei height,
+ GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth, GLenum format,
+ GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESUBIMAGE3DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLint xoffset, GLint yoffset,
+ GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREVIEWPROC)(GLuint texture, GLenum target, GLuint origtexture,
+ GLenum internalformat, GLuint minlevel,
+ GLuint numlevels, GLuint minlayer,
+ GLuint numlayers);
+typedef void(GLAD_API_PTR *PFNGLTRACKMATRIXNVPROC)(GLenum target, GLuint address, GLenum matrix,
+ GLenum transform);
+typedef void(GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC)(GLsizei count, const GLint *attribs,
+ GLenum bufferMode);
+typedef void(GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC)(GLuint xfb, GLuint index,
+ GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC)(GLuint xfb, GLuint index,
+ GLuint buffer, GLintptr offset,
+ GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC)(GLsizei count,
+ const GLint *attribs,
+ GLsizei nbuffers,
+ const GLint *bufstreams,
+ GLenum bufferMode);
+typedef void(GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKVARYINGSPROC)(GLuint program, GLsizei count,
+ const GLchar *const *varyings,
+ GLenum bufferMode);
+typedef void(GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC)(GLuint program, GLsizei count,
+ const GLchar *const *varyings,
+ GLenum bufferMode);
+typedef void(GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC)(GLuint program, GLsizei count,
+ const GLint *locations,
+ GLenum bufferMode);
+typedef void(GLAD_API_PTR *PFNGLTRANSFORMPATHNVPROC)(GLuint resultPath, GLuint srcPath,
+ GLenum transformType,
+ const GLfloat *transformValues);
+typedef void(GLAD_API_PTR *PFNGLTRANSLATEXOESPROC)(GLfixed x, GLfixed y, GLfixed z);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1DPROC)(GLint location, GLdouble x);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1DVPROC)(GLint location, GLsizei count,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1FPROC)(GLint location, GLfloat v0);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1FARBPROC)(GLint location, GLfloat v0);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1FVPROC)(GLint location, GLsizei count,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1FVARBPROC)(GLint location, GLsizei count,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1IPROC)(GLint location, GLint v0);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1I64ARBPROC)(GLint location, GLint64 x);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1I64NVPROC)(GLint location, GLint64EXT x);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1I64VARBPROC)(GLint location, GLsizei count,
+ const GLint64 *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1I64VNVPROC)(GLint location, GLsizei count,
+ const GLint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1IARBPROC)(GLint location, GLint v0);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1IVPROC)(GLint location, GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1IVARBPROC)(GLint location, GLsizei count,
+ const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1UIPROC)(GLint location, GLuint v0);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1UI64ARBPROC)(GLint location, GLuint64 x);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1UI64NVPROC)(GLint location, GLuint64EXT x);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1UI64VARBPROC)(GLint location, GLsizei count,
+ const GLuint64 *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1UI64VNVPROC)(GLint location, GLsizei count,
+ const GLuint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1UIEXTPROC)(GLint location, GLuint v0);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1UIVPROC)(GLint location, GLsizei count,
+ const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1UIVEXTPROC)(GLint location, GLsizei count,
+ const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2DPROC)(GLint location, GLdouble x, GLdouble y);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2DVPROC)(GLint location, GLsizei count,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2FARBPROC)(GLint location, GLfloat v0, GLfloat v1);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2FVPROC)(GLint location, GLsizei count,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2FVARBPROC)(GLint location, GLsizei count,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2IPROC)(GLint location, GLint v0, GLint v1);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2I64ARBPROC)(GLint location, GLint64 x, GLint64 y);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2I64NVPROC)(GLint location, GLint64EXT x, GLint64EXT y);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2I64VARBPROC)(GLint location, GLsizei count,
+ const GLint64 *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2I64VNVPROC)(GLint location, GLsizei count,
+ const GLint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2IARBPROC)(GLint location, GLint v0, GLint v1);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2IVPROC)(GLint location, GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2IVARBPROC)(GLint location, GLsizei count,
+ const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2UIPROC)(GLint location, GLuint v0, GLuint v1);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2UI64ARBPROC)(GLint location, GLuint64 x, GLuint64 y);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2UI64NVPROC)(GLint location, GLuint64EXT x, GLuint64EXT y);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2UI64VARBPROC)(GLint location, GLsizei count,
+ const GLuint64 *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2UI64VNVPROC)(GLint location, GLsizei count,
+ const GLuint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2UIEXTPROC)(GLint location, GLuint v0, GLuint v1);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2UIVPROC)(GLint location, GLsizei count,
+ const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2UIVEXTPROC)(GLint location, GLsizei count,
+ const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3DVPROC)(GLint location, GLsizei count,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3FARBPROC)(GLint location, GLfloat v0, GLfloat v1,
+ GLfloat v2);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3FVPROC)(GLint location, GLsizei count,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3FVARBPROC)(GLint location, GLsizei count,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3IPROC)(GLint location, GLint v0, GLint v1, GLint v2);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3I64ARBPROC)(GLint location, GLint64 x, GLint64 y,
+ GLint64 z);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3I64NVPROC)(GLint location, GLint64EXT x, GLint64EXT y,
+ GLint64EXT z);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3I64VARBPROC)(GLint location, GLsizei count,
+ const GLint64 *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3I64VNVPROC)(GLint location, GLsizei count,
+ const GLint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3IARBPROC)(GLint location, GLint v0, GLint v1, GLint v2);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3IVPROC)(GLint location, GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3IVARBPROC)(GLint location, GLsizei count,
+ const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3UI64ARBPROC)(GLint location, GLuint64 x, GLuint64 y,
+ GLuint64 z);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3UI64NVPROC)(GLint location, GLuint64EXT x, GLuint64EXT y,
+ GLuint64EXT z);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3UI64VARBPROC)(GLint location, GLsizei count,
+ const GLuint64 *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3UI64VNVPROC)(GLint location, GLsizei count,
+ const GLuint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3UIEXTPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3UIVPROC)(GLint location, GLsizei count,
+ const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3UIVEXTPROC)(GLint location, GLsizei count,
+ const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z,
+ GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4DVPROC)(GLint location, GLsizei count,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2,
+ GLfloat v3);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4FARBPROC)(GLint location, GLfloat v0, GLfloat v1,
+ GLfloat v2, GLfloat v3);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4FVPROC)(GLint location, GLsizei count,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4FVARBPROC)(GLint location, GLsizei count,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4IPROC)(GLint location, GLint v0, GLint v1, GLint v2,
+ GLint v3);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4I64ARBPROC)(GLint location, GLint64 x, GLint64 y, GLint64 z,
+ GLint64 w);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4I64NVPROC)(GLint location, GLint64EXT x, GLint64EXT y,
+ GLint64EXT z, GLint64EXT w);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4I64VARBPROC)(GLint location, GLsizei count,
+ const GLint64 *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4I64VNVPROC)(GLint location, GLsizei count,
+ const GLint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4IARBPROC)(GLint location, GLint v0, GLint v1, GLint v2,
+ GLint v3);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4IVPROC)(GLint location, GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4IVARBPROC)(GLint location, GLsizei count,
+ const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2,
+ GLuint v3);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4UI64ARBPROC)(GLint location, GLuint64 x, GLuint64 y,
+ GLuint64 z, GLuint64 w);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4UI64NVPROC)(GLint location, GLuint64EXT x, GLuint64EXT y,
+ GLuint64EXT z, GLuint64EXT w);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4UI64VARBPROC)(GLint location, GLsizei count,
+ const GLuint64 *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4UI64VNVPROC)(GLint location, GLsizei count,
+ const GLuint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4UIEXTPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2,
+ GLuint v3);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4UIVPROC)(GLint location, GLsizei count,
+ const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4UIVEXTPROC)(GLint location, GLsizei count,
+ const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMBLOCKBINDINGPROC)(GLuint program, GLuint uniformBlockIndex,
+ GLuint uniformBlockBinding);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMBUFFEREXTPROC)(GLuint program, GLint location,
+ GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMHANDLEUI64ARBPROC)(GLint location, GLuint64 value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMHANDLEUI64NVPROC)(GLint location, GLuint64 value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMHANDLEUI64VARBPROC)(GLint location, GLsizei count,
+ const GLuint64 *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMHANDLEUI64VNVPROC)(GLint location, GLsizei count,
+ const GLuint64 *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX2DVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX2FVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX2FVARBPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX2X3DVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX2X3FVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX2X4DVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX2X4FVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX3DVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX3FVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX3FVARBPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX3X2DVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX3X2FVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX3X4DVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX3X4FVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX4DVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX4FVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX4FVARBPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX4X2DVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX4X2FVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX4X3DVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX4X3FVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMSUBROUTINESUIVPROC)(GLenum shadertype, GLsizei count,
+ const GLuint *indices);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMUI64NVPROC)(GLint location, GLuint64EXT value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMUI64VNVPROC)(GLint location, GLsizei count,
+ const GLuint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLUNLOCKARRAYSEXTPROC)(void);
+typedef GLboolean(GLAD_API_PTR *PFNGLUNMAPBUFFERPROC)(GLenum target);
+typedef GLboolean(GLAD_API_PTR *PFNGLUNMAPBUFFERARBPROC)(GLenum target);
+typedef GLboolean(GLAD_API_PTR *PFNGLUNMAPNAMEDBUFFERPROC)(GLuint buffer);
+typedef GLboolean(GLAD_API_PTR *PFNGLUNMAPNAMEDBUFFEREXTPROC)(GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLUNMAPOBJECTBUFFERATIPROC)(GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLUNMAPTEXTURE2DINTELPROC)(GLuint texture, GLint level);
+typedef void(GLAD_API_PTR *PFNGLUPDATEOBJECTBUFFERATIPROC)(GLuint buffer, GLuint offset,
+ GLsizei size, const void *pointer,
+ GLenum preserve);
+typedef void(GLAD_API_PTR *PFNGLUPLOADGPUMASKNVXPROC)(GLbitfield mask);
+typedef void(GLAD_API_PTR *PFNGLUSEPROGRAMPROC)(GLuint program);
+typedef void(GLAD_API_PTR *PFNGLUSEPROGRAMOBJECTARBPROC)(GLhandleARB programObj);
+typedef void(GLAD_API_PTR *PFNGLUSEPROGRAMSTAGESPROC)(GLuint pipeline, GLbitfield stages,
+ GLuint program);
+typedef void(GLAD_API_PTR *PFNGLUSESHADERPROGRAMEXTPROC)(GLenum type, GLuint program);
+typedef void(GLAD_API_PTR *PFNGLVDPAUFININVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLVDPAUGETSURFACEIVNVPROC)(GLvdpauSurfaceNV surface, GLenum pname,
+ GLsizei count, GLsizei *length,
+ GLint *values);
+typedef void(GLAD_API_PTR *PFNGLVDPAUINITNVPROC)(const void *vdpDevice, const void *getProcAddress);
+typedef GLboolean(GLAD_API_PTR *PFNGLVDPAUISSURFACENVPROC)(GLvdpauSurfaceNV surface);
+typedef void(GLAD_API_PTR *PFNGLVDPAUMAPSURFACESNVPROC)(GLsizei numSurfaces,
+ const GLvdpauSurfaceNV *surfaces);
+typedef GLvdpauSurfaceNV(GLAD_API_PTR *PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC)(
+ const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
+typedef GLvdpauSurfaceNV(GLAD_API_PTR *PFNGLVDPAUREGISTERVIDEOSURFACENVPROC)(
+ const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
+typedef GLvdpauSurfaceNV(GLAD_API_PTR *PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC)(
+ const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames,
+ GLboolean isFrameStructure);
+typedef void(GLAD_API_PTR *PFNGLVDPAUSURFACEACCESSNVPROC)(GLvdpauSurfaceNV surface, GLenum access);
+typedef void(GLAD_API_PTR *PFNGLVDPAUUNMAPSURFACESNVPROC)(GLsizei numSurface,
+ const GLvdpauSurfaceNV *surfaces);
+typedef void(GLAD_API_PTR *PFNGLVDPAUUNREGISTERSURFACENVPROC)(GLvdpauSurfaceNV surface);
+typedef void(GLAD_API_PTR *PFNGLVALIDATEPROGRAMPROC)(GLuint program);
+typedef void(GLAD_API_PTR *PFNGLVALIDATEPROGRAMARBPROC)(GLhandleARB programObj);
+typedef void(GLAD_API_PTR *PFNGLVALIDATEPROGRAMPIPELINEPROC)(GLuint pipeline);
+typedef void(GLAD_API_PTR *PFNGLVARIANTARRAYOBJECTATIPROC)(GLuint id, GLenum type, GLsizei stride,
+ GLuint buffer, GLuint offset);
+typedef void(GLAD_API_PTR *PFNGLVARIANTPOINTEREXTPROC)(GLuint id, GLenum type, GLuint stride,
+ const void *addr);
+typedef void(GLAD_API_PTR *PFNGLVARIANTBVEXTPROC)(GLuint id, const GLbyte *addr);
+typedef void(GLAD_API_PTR *PFNGLVARIANTDVEXTPROC)(GLuint id, const GLdouble *addr);
+typedef void(GLAD_API_PTR *PFNGLVARIANTFVEXTPROC)(GLuint id, const GLfloat *addr);
+typedef void(GLAD_API_PTR *PFNGLVARIANTIVEXTPROC)(GLuint id, const GLint *addr);
+typedef void(GLAD_API_PTR *PFNGLVARIANTSVEXTPROC)(GLuint id, const GLshort *addr);
+typedef void(GLAD_API_PTR *PFNGLVARIANTUBVEXTPROC)(GLuint id, const GLubyte *addr);
+typedef void(GLAD_API_PTR *PFNGLVARIANTUIVEXTPROC)(GLuint id, const GLuint *addr);
+typedef void(GLAD_API_PTR *PFNGLVARIANTUSVEXTPROC)(GLuint id, const GLushort *addr);
+typedef void(GLAD_API_PTR *PFNGLVERTEX2BOESPROC)(GLbyte x, GLbyte y);
+typedef void(GLAD_API_PTR *PFNGLVERTEX2BVOESPROC)(const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEX2HNVPROC)(GLhalfNV x, GLhalfNV y);
+typedef void(GLAD_API_PTR *PFNGLVERTEX2HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEX2XOESPROC)(GLfixed x);
+typedef void(GLAD_API_PTR *PFNGLVERTEX2XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEX3BOESPROC)(GLbyte x, GLbyte y, GLbyte z);
+typedef void(GLAD_API_PTR *PFNGLVERTEX3BVOESPROC)(const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEX3HNVPROC)(GLhalfNV x, GLhalfNV y, GLhalfNV z);
+typedef void(GLAD_API_PTR *PFNGLVERTEX3HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEX3XOESPROC)(GLfixed x, GLfixed y);
+typedef void(GLAD_API_PTR *PFNGLVERTEX3XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEX4BOESPROC)(GLbyte x, GLbyte y, GLbyte z, GLbyte w);
+typedef void(GLAD_API_PTR *PFNGLVERTEX4BVOESPROC)(const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEX4HNVPROC)(GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
+typedef void(GLAD_API_PTR *PFNGLVERTEX4HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEX4XOESPROC)(GLfixed x, GLfixed y, GLfixed z);
+typedef void(GLAD_API_PTR *PFNGLVERTEX4XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYATTRIBBINDINGPROC)(GLuint vaobj, GLuint attribindex,
+ GLuint bindingindex);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYATTRIBFORMATPROC)(GLuint vaobj, GLuint attribindex,
+ GLint size, GLenum type,
+ GLboolean normalized,
+ GLuint relativeoffset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYATTRIBIFORMATPROC)(GLuint vaobj, GLuint attribindex,
+ GLint size, GLenum type,
+ GLuint relativeoffset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYATTRIBLFORMATPROC)(GLuint vaobj, GLuint attribindex,
+ GLint size, GLenum type,
+ GLuint relativeoffset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC)(GLuint vaobj,
+ GLuint bindingindex,
+ GLuint buffer, GLintptr offset,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYBINDINGDIVISORPROC)(GLuint vaobj, GLuint bindingindex,
+ GLuint divisor);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYCOLOROFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLint size, GLenum type,
+ GLsizei stride, GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLsizei stride, GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYELEMENTBUFFERPROC)(GLuint vaobj, GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLenum type, GLsizei stride,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYINDEXOFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLenum type, GLsizei stride,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLenum texunit, GLint size,
+ GLenum type, GLsizei stride,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYNORMALOFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLenum type, GLsizei stride,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYPARAMETERIAPPLEPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYRANGEAPPLEPROC)(GLsizei length, void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYRANGENVPROC)(GLsizei length, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLint size, GLenum type,
+ GLsizei stride,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLint size, GLenum type,
+ GLsizei stride, GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC)(GLuint vaobj,
+ GLuint attribindex,
+ GLuint bindingindex);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC)(GLuint vaobj, GLuint index,
+ GLuint divisor);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC)(GLuint vaobj,
+ GLuint attribindex,
+ GLint size, GLenum type,
+ GLboolean normalized,
+ GLuint relativeoffset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC)(GLuint vaobj,
+ GLuint attribindex,
+ GLint size, GLenum type,
+ GLuint relativeoffset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLuint index, GLint size,
+ GLenum type, GLsizei stride,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC)(GLuint vaobj,
+ GLuint attribindex,
+ GLint size, GLenum type,
+ GLuint relativeoffset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLuint index, GLint size,
+ GLenum type, GLsizei stride,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC)(
+ GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized,
+ GLsizei stride, GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC)(GLuint vaobj,
+ GLuint bindingindex,
+ GLuint divisor);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXBUFFERPROC)(GLuint vaobj, GLuint bindingindex,
+ GLuint buffer, GLintptr offset,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXBUFFERSPROC)(GLuint vaobj, GLuint first,
+ GLsizei count, const GLuint *buffers,
+ const GLintptr *offsets,
+ const GLsizei *strides);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLint size, GLenum type,
+ GLsizei stride, GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1DPROC)(GLuint index, GLdouble x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1DARBPROC)(GLuint index, GLdouble x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1DNVPROC)(GLuint index, GLdouble x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1DVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1DVARBPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1DVNVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1FPROC)(GLuint index, GLfloat x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1FARBPROC)(GLuint index, GLfloat x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1FNVPROC)(GLuint index, GLfloat x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1FVPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1FVARBPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1FVNVPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1HNVPROC)(GLuint index, GLhalfNV x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1HVNVPROC)(GLuint index, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1SPROC)(GLuint index, GLshort x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1SARBPROC)(GLuint index, GLshort x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1SNVPROC)(GLuint index, GLshort x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1SVPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1SVARBPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1SVNVPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2DPROC)(GLuint index, GLdouble x, GLdouble y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2DARBPROC)(GLuint index, GLdouble x, GLdouble y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2DNVPROC)(GLuint index, GLdouble x, GLdouble y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2DVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2DVARBPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2DVNVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2FARBPROC)(GLuint index, GLfloat x, GLfloat y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2FNVPROC)(GLuint index, GLfloat x, GLfloat y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2FVPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2FVARBPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2FVNVPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2HNVPROC)(GLuint index, GLhalfNV x, GLhalfNV y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2HVNVPROC)(GLuint index, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2SPROC)(GLuint index, GLshort x, GLshort y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2SARBPROC)(GLuint index, GLshort x, GLshort y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2SNVPROC)(GLuint index, GLshort x, GLshort y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2SVPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2SVARBPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2SVNVPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3DPROC)(GLuint index, GLdouble x, GLdouble y,
+ GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3DARBPROC)(GLuint index, GLdouble x, GLdouble y,
+ GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3DNVPROC)(GLuint index, GLdouble x, GLdouble y,
+ GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3DVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3DVARBPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3DVNVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3FARBPROC)(GLuint index, GLfloat x, GLfloat y,
+ GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3FNVPROC)(GLuint index, GLfloat x, GLfloat y,
+ GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3FVPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3FVARBPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3FVNVPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3HNVPROC)(GLuint index, GLhalfNV x, GLhalfNV y,
+ GLhalfNV z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3HVNVPROC)(GLuint index, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3SPROC)(GLuint index, GLshort x, GLshort y, GLshort z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3SARBPROC)(GLuint index, GLshort x, GLshort y,
+ GLshort z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3SNVPROC)(GLuint index, GLshort x, GLshort y,
+ GLshort z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3SVPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3SVARBPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3SVNVPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NBVPROC)(GLuint index, const GLbyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NBVARBPROC)(GLuint index, const GLbyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NIVPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NIVARBPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NSVPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NSVARBPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NUBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z,
+ GLubyte w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NUBARBPROC)(GLuint index, GLubyte x, GLubyte y,
+ GLubyte z, GLubyte w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NUBVPROC)(GLuint index, const GLubyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NUBVARBPROC)(GLuint index, const GLubyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NUIVPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NUIVARBPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NUSVPROC)(GLuint index, const GLushort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NUSVARBPROC)(GLuint index, const GLushort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4BVPROC)(GLuint index, const GLbyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4BVARBPROC)(GLuint index, const GLbyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4DPROC)(GLuint index, GLdouble x, GLdouble y,
+ GLdouble z, GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4DARBPROC)(GLuint index, GLdouble x, GLdouble y,
+ GLdouble z, GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4DNVPROC)(GLuint index, GLdouble x, GLdouble y,
+ GLdouble z, GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4DVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4DVARBPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4DVNVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z,
+ GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4FARBPROC)(GLuint index, GLfloat x, GLfloat y,
+ GLfloat z, GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4FNVPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z,
+ GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4FVPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4FVARBPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4FVNVPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4HNVPROC)(GLuint index, GLhalfNV x, GLhalfNV y,
+ GLhalfNV z, GLhalfNV w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4HVNVPROC)(GLuint index, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4IVPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4IVARBPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4SPROC)(GLuint index, GLshort x, GLshort y, GLshort z,
+ GLshort w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4SARBPROC)(GLuint index, GLshort x, GLshort y,
+ GLshort z, GLshort w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4SNVPROC)(GLuint index, GLshort x, GLshort y, GLshort z,
+ GLshort w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4SVPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4SVARBPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4SVNVPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4UBNVPROC)(GLuint index, GLubyte x, GLubyte y,
+ GLubyte z, GLubyte w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4UBVPROC)(GLuint index, const GLubyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4UBVARBPROC)(GLuint index, const GLubyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4UBVNVPROC)(GLuint index, const GLubyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4UIVPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4UIVARBPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4USVPROC)(GLuint index, const GLushort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4USVARBPROC)(GLuint index, const GLushort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBARRAYOBJECTATIPROC)(GLuint index, GLint size,
+ GLenum type, GLboolean normalized,
+ GLsizei stride, GLuint buffer,
+ GLuint offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBBINDINGPROC)(GLuint attribindex, GLuint bindingindex);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBDIVISORPROC)(GLuint index, GLuint divisor);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBDIVISORARBPROC)(GLuint index, GLuint divisor);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBFORMATPROC)(GLuint attribindex, GLint size, GLenum type,
+ GLboolean normalized,
+ GLuint relativeoffset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBFORMATNVPROC)(GLuint index, GLint size, GLenum type,
+ GLboolean normalized, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI1IPROC)(GLuint index, GLint x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI1IEXTPROC)(GLuint index, GLint x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI1IVPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI1IVEXTPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI1UIPROC)(GLuint index, GLuint x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI1UIEXTPROC)(GLuint index, GLuint x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI1UIVPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI1UIVEXTPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI2IPROC)(GLuint index, GLint x, GLint y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI2IEXTPROC)(GLuint index, GLint x, GLint y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI2IVPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI2IVEXTPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI2UIPROC)(GLuint index, GLuint x, GLuint y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI2UIEXTPROC)(GLuint index, GLuint x, GLuint y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI2UIVPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI2UIVEXTPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI3IPROC)(GLuint index, GLint x, GLint y, GLint z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI3IEXTPROC)(GLuint index, GLint x, GLint y, GLint z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI3IVPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI3IVEXTPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI3UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI3UIEXTPROC)(GLuint index, GLuint x, GLuint y,
+ GLuint z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI3UIVPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI3UIVEXTPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4BVPROC)(GLuint index, const GLbyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4BVEXTPROC)(GLuint index, const GLbyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4IPROC)(GLuint index, GLint x, GLint y, GLint z,
+ GLint w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4IEXTPROC)(GLuint index, GLint x, GLint y, GLint z,
+ GLint w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4IVPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4IVEXTPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4SVPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4SVEXTPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4UBVPROC)(GLuint index, const GLubyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4UBVEXTPROC)(GLuint index, const GLubyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z,
+ GLuint w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4UIEXTPROC)(GLuint index, GLuint x, GLuint y, GLuint z,
+ GLuint w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4UIVPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4UIVEXTPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4USVPROC)(GLuint index, const GLushort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4USVEXTPROC)(GLuint index, const GLushort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBIFORMATPROC)(GLuint attribindex, GLint size,
+ GLenum type, GLuint relativeoffset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBIFORMATNVPROC)(GLuint index, GLint size, GLenum type,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBIPOINTERPROC)(GLuint index, GLint size, GLenum type,
+ GLsizei stride, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBIPOINTEREXTPROC)(GLuint index, GLint size, GLenum type,
+ GLsizei stride, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1DPROC)(GLuint index, GLdouble x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1DEXTPROC)(GLuint index, GLdouble x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1DVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1DVEXTPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1I64NVPROC)(GLuint index, GLint64EXT x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1I64VNVPROC)(GLuint index, const GLint64EXT *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1UI64ARBPROC)(GLuint index, GLuint64EXT x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1UI64NVPROC)(GLuint index, GLuint64EXT x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1UI64VARBPROC)(GLuint index, const GLuint64EXT *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1UI64VNVPROC)(GLuint index, const GLuint64EXT *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL2DPROC)(GLuint index, GLdouble x, GLdouble y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL2DEXTPROC)(GLuint index, GLdouble x, GLdouble y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL2DVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL2DVEXTPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL2I64NVPROC)(GLuint index, GLint64EXT x, GLint64EXT y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL2I64VNVPROC)(GLuint index, const GLint64EXT *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL2UI64NVPROC)(GLuint index, GLuint64EXT x,
+ GLuint64EXT y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL2UI64VNVPROC)(GLuint index, const GLuint64EXT *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL3DPROC)(GLuint index, GLdouble x, GLdouble y,
+ GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL3DEXTPROC)(GLuint index, GLdouble x, GLdouble y,
+ GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL3DVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL3DVEXTPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL3I64NVPROC)(GLuint index, GLint64EXT x, GLint64EXT y,
+ GLint64EXT z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL3I64VNVPROC)(GLuint index, const GLint64EXT *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL3UI64NVPROC)(GLuint index, GLuint64EXT x,
+ GLuint64EXT y, GLuint64EXT z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL3UI64VNVPROC)(GLuint index, const GLuint64EXT *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL4DPROC)(GLuint index, GLdouble x, GLdouble y,
+ GLdouble z, GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL4DEXTPROC)(GLuint index, GLdouble x, GLdouble y,
+ GLdouble z, GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL4DVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL4DVEXTPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL4I64NVPROC)(GLuint index, GLint64EXT x, GLint64EXT y,
+ GLint64EXT z, GLint64EXT w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL4I64VNVPROC)(GLuint index, const GLint64EXT *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL4UI64NVPROC)(GLuint index, GLuint64EXT x,
+ GLuint64EXT y, GLuint64EXT z,
+ GLuint64EXT w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL4UI64VNVPROC)(GLuint index, const GLuint64EXT *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBLFORMATPROC)(GLuint attribindex, GLint size,
+ GLenum type, GLuint relativeoffset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBLFORMATNVPROC)(GLuint index, GLint size, GLenum type,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBLPOINTERPROC)(GLuint index, GLint size, GLenum type,
+ GLsizei stride, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBLPOINTEREXTPROC)(GLuint index, GLint size, GLenum type,
+ GLsizei stride, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP1UIPROC)(GLuint index, GLenum type,
+ GLboolean normalized, GLuint value);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP1UIVPROC)(GLuint index, GLenum type,
+ GLboolean normalized, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP2UIPROC)(GLuint index, GLenum type,
+ GLboolean normalized, GLuint value);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP2UIVPROC)(GLuint index, GLenum type,
+ GLboolean normalized, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP3UIPROC)(GLuint index, GLenum type,
+ GLboolean normalized, GLuint value);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP3UIVPROC)(GLuint index, GLenum type,
+ GLboolean normalized, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP4UIPROC)(GLuint index, GLenum type,
+ GLboolean normalized, GLuint value);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP4UIVPROC)(GLuint index, GLenum type,
+ GLboolean normalized, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBPARAMETERIAMDPROC)(GLuint index, GLenum pname,
+ GLint param);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type,
+ GLboolean normalized, GLsizei stride,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBPOINTERARBPROC)(GLuint index, GLint size, GLenum type,
+ GLboolean normalized, GLsizei stride,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBPOINTERNVPROC)(GLuint index, GLint fsize, GLenum type,
+ GLsizei stride, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS1DVNVPROC)(GLuint index, GLsizei count,
+ const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS1FVNVPROC)(GLuint index, GLsizei count,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS1HVNVPROC)(GLuint index, GLsizei n, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS1SVNVPROC)(GLuint index, GLsizei count,
+ const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS2DVNVPROC)(GLuint index, GLsizei count,
+ const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS2FVNVPROC)(GLuint index, GLsizei count,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS2HVNVPROC)(GLuint index, GLsizei n, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS2SVNVPROC)(GLuint index, GLsizei count,
+ const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS3DVNVPROC)(GLuint index, GLsizei count,
+ const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS3FVNVPROC)(GLuint index, GLsizei count,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS3HVNVPROC)(GLuint index, GLsizei n, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS3SVNVPROC)(GLuint index, GLsizei count,
+ const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS4DVNVPROC)(GLuint index, GLsizei count,
+ const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS4FVNVPROC)(GLuint index, GLsizei count,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS4HVNVPROC)(GLuint index, GLsizei n, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS4SVNVPROC)(GLuint index, GLsizei count,
+ const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS4UBVNVPROC)(GLuint index, GLsizei count,
+ const GLubyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXBINDINGDIVISORPROC)(GLuint bindingindex, GLuint divisor);
+typedef void(GLAD_API_PTR *PFNGLVERTEXBLENDARBPROC)(GLint count);
+typedef void(GLAD_API_PTR *PFNGLVERTEXBLENDENVFATIPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLVERTEXBLENDENVIATIPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLVERTEXFORMATNVPROC)(GLint size, GLenum type, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLVERTEXPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride,
+ GLsizei count, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride,
+ const void **pointer, GLint ptrstride);
+typedef void(GLAD_API_PTR *PFNGLVERTEXPOINTERVINTELPROC)(GLint size, GLenum type,
+ const void **pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM1DATIPROC)(GLenum stream, GLdouble x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM1DVATIPROC)(GLenum stream, const GLdouble *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM1FATIPROC)(GLenum stream, GLfloat x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM1FVATIPROC)(GLenum stream, const GLfloat *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM1IATIPROC)(GLenum stream, GLint x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM1IVATIPROC)(GLenum stream, const GLint *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM1SATIPROC)(GLenum stream, GLshort x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM1SVATIPROC)(GLenum stream, const GLshort *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM2DATIPROC)(GLenum stream, GLdouble x, GLdouble y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM2DVATIPROC)(GLenum stream, const GLdouble *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM2FATIPROC)(GLenum stream, GLfloat x, GLfloat y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM2FVATIPROC)(GLenum stream, const GLfloat *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM2IATIPROC)(GLenum stream, GLint x, GLint y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM2IVATIPROC)(GLenum stream, const GLint *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM2SATIPROC)(GLenum stream, GLshort x, GLshort y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM2SVATIPROC)(GLenum stream, const GLshort *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM3DATIPROC)(GLenum stream, GLdouble x, GLdouble y,
+ GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM3DVATIPROC)(GLenum stream, const GLdouble *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM3FATIPROC)(GLenum stream, GLfloat x, GLfloat y,
+ GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM3FVATIPROC)(GLenum stream, const GLfloat *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM3IATIPROC)(GLenum stream, GLint x, GLint y, GLint z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM3IVATIPROC)(GLenum stream, const GLint *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM3SATIPROC)(GLenum stream, GLshort x, GLshort y,
+ GLshort z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM3SVATIPROC)(GLenum stream, const GLshort *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM4DATIPROC)(GLenum stream, GLdouble x, GLdouble y,
+ GLdouble z, GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM4DVATIPROC)(GLenum stream, const GLdouble *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM4FATIPROC)(GLenum stream, GLfloat x, GLfloat y,
+ GLfloat z, GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM4FVATIPROC)(GLenum stream, const GLfloat *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM4IATIPROC)(GLenum stream, GLint x, GLint y, GLint z,
+ GLint w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM4IVATIPROC)(GLenum stream, const GLint *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM4SATIPROC)(GLenum stream, GLshort x, GLshort y,
+ GLshort z, GLshort w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM4SVATIPROC)(GLenum stream, const GLshort *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXWEIGHTPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXWEIGHTFEXTPROC)(GLfloat weight);
+typedef void(GLAD_API_PTR *PFNGLVERTEXWEIGHTFVEXTPROC)(const GLfloat *weight);
+typedef void(GLAD_API_PTR *PFNGLVERTEXWEIGHTHNVPROC)(GLhalfNV weight);
+typedef void(GLAD_API_PTR *PFNGLVERTEXWEIGHTHVNVPROC)(const GLhalfNV *weight);
+typedef GLenum(GLAD_API_PTR *PFNGLVIDEOCAPTURENVPROC)(GLuint video_capture_slot,
+ GLuint *sequence_num,
+ GLuint64EXT *capture_time);
+typedef void(GLAD_API_PTR *PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC)(GLuint video_capture_slot,
+ GLuint stream, GLenum pname,
+ const GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC)(GLuint video_capture_slot,
+ GLuint stream, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC)(GLuint video_capture_slot,
+ GLuint stream, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLVIEWPORTARRAYVPROC)(GLuint first, GLsizei count, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVIEWPORTINDEXEDFPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat w,
+ GLfloat h);
+typedef void(GLAD_API_PTR *PFNGLVIEWPORTINDEXEDFVPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVIEWPORTPOSITIONWSCALENVPROC)(GLuint index, GLfloat xcoeff,
+ GLfloat ycoeff);
+typedef void(GLAD_API_PTR *PFNGLVIEWPORTSWIZZLENVPROC)(GLuint index, GLenum swizzlex,
+ GLenum swizzley, GLenum swizzlez,
+ GLenum swizzlew);
+typedef void(GLAD_API_PTR *PFNGLWAITSEMAPHOREEXTPROC)(GLuint semaphore, GLuint numBufferBarriers,
+ const GLuint *buffers,
+ GLuint numTextureBarriers,
+ const GLuint *textures,
+ const GLenum *srcLayouts);
+typedef void(GLAD_API_PTR *PFNGLWAITSEMAPHOREUI64NVXPROC)(GLuint waitGpu, GLsizei fenceObjectCount,
+ const GLuint *semaphoreArray,
+ const GLuint64 *fenceValueArray);
+typedef void(GLAD_API_PTR *PFNGLWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
+typedef void(GLAD_API_PTR *PFNGLWAITVKSEMAPHORENVPROC)(GLuint64 vkSemaphore);
+typedef void(GLAD_API_PTR *PFNGLWEIGHTPATHSNVPROC)(GLuint resultPath, GLsizei numPaths,
+ const GLuint *paths, const GLfloat *weights);
+typedef void(GLAD_API_PTR *PFNGLWEIGHTPOINTERARBPROC)(GLint size, GLenum type, GLsizei stride,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLWEIGHTBVARBPROC)(GLint size, const GLbyte *weights);
+typedef void(GLAD_API_PTR *PFNGLWEIGHTDVARBPROC)(GLint size, const GLdouble *weights);
+typedef void(GLAD_API_PTR *PFNGLWEIGHTFVARBPROC)(GLint size, const GLfloat *weights);
+typedef void(GLAD_API_PTR *PFNGLWEIGHTIVARBPROC)(GLint size, const GLint *weights);
+typedef void(GLAD_API_PTR *PFNGLWEIGHTSVARBPROC)(GLint size, const GLshort *weights);
+typedef void(GLAD_API_PTR *PFNGLWEIGHTUBVARBPROC)(GLint size, const GLubyte *weights);
+typedef void(GLAD_API_PTR *PFNGLWEIGHTUIVARBPROC)(GLint size, const GLuint *weights);
+typedef void(GLAD_API_PTR *PFNGLWEIGHTUSVARBPROC)(GLint size, const GLushort *weights);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2DARBPROC)(GLdouble x, GLdouble y);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2DMESAPROC)(GLdouble x, GLdouble y);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2DVARBPROC)(const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2DVMESAPROC)(const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2FARBPROC)(GLfloat x, GLfloat y);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2FMESAPROC)(GLfloat x, GLfloat y);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2FVARBPROC)(const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2FVMESAPROC)(const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2IARBPROC)(GLint x, GLint y);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2IMESAPROC)(GLint x, GLint y);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2IVARBPROC)(const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2IVMESAPROC)(const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2SARBPROC)(GLshort x, GLshort y);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2SMESAPROC)(GLshort x, GLshort y);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2SVARBPROC)(const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2SVMESAPROC)(const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3DARBPROC)(GLdouble x, GLdouble y, GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3DMESAPROC)(GLdouble x, GLdouble y, GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3DVARBPROC)(const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3DVMESAPROC)(const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3FARBPROC)(GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3FMESAPROC)(GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3FVARBPROC)(const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3FVMESAPROC)(const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3IARBPROC)(GLint x, GLint y, GLint z);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3IMESAPROC)(GLint x, GLint y, GLint z);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3IVARBPROC)(const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3IVMESAPROC)(const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3SARBPROC)(GLshort x, GLshort y, GLshort z);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3SMESAPROC)(GLshort x, GLshort y, GLshort z);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3SVARBPROC)(const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3SVMESAPROC)(const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS4DMESAPROC)(GLdouble x, GLdouble y, GLdouble z,
+ GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS4DVMESAPROC)(const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS4FMESAPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS4FVMESAPROC)(const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS4IMESAPROC)(GLint x, GLint y, GLint z, GLint w);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS4IVMESAPROC)(const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS4SMESAPROC)(GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS4SVMESAPROC)(const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWRECTANGLESEXTPROC)(GLenum mode, GLsizei count,
+ const GLint *box);
+typedef void(GLAD_API_PTR *PFNGLWRITEMASKEXTPROC)(GLuint res, GLuint in, GLenum outX, GLenum outY,
+ GLenum outZ, GLenum outW);
+
+typedef struct GladGLContext {
+ PFNGLACCUMXOESPROC AccumxOES;
+ PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC AcquireKeyedMutexWin32EXT;
+ PFNGLACTIVEPROGRAMEXTPROC ActiveProgramEXT;
+ PFNGLACTIVESHADERPROGRAMPROC ActiveShaderProgram;
+ PFNGLACTIVESTENCILFACEEXTPROC ActiveStencilFaceEXT;
+ PFNGLACTIVETEXTUREPROC ActiveTexture;
+ PFNGLACTIVETEXTUREARBPROC ActiveTextureARB;
+ PFNGLACTIVEVARYINGNVPROC ActiveVaryingNV;
+ PFNGLALPHAFRAGMENTOP1ATIPROC AlphaFragmentOp1ATI;
+ PFNGLALPHAFRAGMENTOP2ATIPROC AlphaFragmentOp2ATI;
+ PFNGLALPHAFRAGMENTOP3ATIPROC AlphaFragmentOp3ATI;
+ PFNGLALPHAFUNCXOESPROC AlphaFuncxOES;
+ PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC AlphaToCoverageDitherControlNV;
+ PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC ApplyFramebufferAttachmentCMAAINTEL;
+ PFNGLAPPLYTEXTUREEXTPROC ApplyTextureEXT;
+ PFNGLAREPROGRAMSRESIDENTNVPROC AreProgramsResidentNV;
+ PFNGLARETEXTURESRESIDENTEXTPROC AreTexturesResidentEXT;
+ PFNGLARRAYELEMENTEXTPROC ArrayElementEXT;
+ PFNGLARRAYOBJECTATIPROC ArrayObjectATI;
+ PFNGLASYNCCOPYBUFFERSUBDATANVXPROC AsyncCopyBufferSubDataNVX;
+ PFNGLASYNCCOPYIMAGESUBDATANVXPROC AsyncCopyImageSubDataNVX;
+ PFNGLASYNCMARKERSGIXPROC AsyncMarkerSGIX;
+ PFNGLATTACHOBJECTARBPROC AttachObjectARB;
+ PFNGLATTACHSHADERPROC AttachShader;
+ PFNGLBEGINCONDITIONALRENDERPROC BeginConditionalRender;
+ PFNGLBEGINCONDITIONALRENDERNVPROC BeginConditionalRenderNV;
+ PFNGLBEGINCONDITIONALRENDERNVXPROC BeginConditionalRenderNVX;
+ PFNGLBEGINFRAGMENTSHADERATIPROC BeginFragmentShaderATI;
+ PFNGLBEGINOCCLUSIONQUERYNVPROC BeginOcclusionQueryNV;
+ PFNGLBEGINPERFMONITORAMDPROC BeginPerfMonitorAMD;
+ PFNGLBEGINPERFQUERYINTELPROC BeginPerfQueryINTEL;
+ PFNGLBEGINQUERYPROC BeginQuery;
+ PFNGLBEGINQUERYARBPROC BeginQueryARB;
+ PFNGLBEGINQUERYINDEXEDPROC BeginQueryIndexed;
+ PFNGLBEGINTRANSFORMFEEDBACKPROC BeginTransformFeedback;
+ PFNGLBEGINTRANSFORMFEEDBACKEXTPROC BeginTransformFeedbackEXT;
+ PFNGLBEGINTRANSFORMFEEDBACKNVPROC BeginTransformFeedbackNV;
+ PFNGLBEGINVERTEXSHADEREXTPROC BeginVertexShaderEXT;
+ PFNGLBEGINVIDEOCAPTURENVPROC BeginVideoCaptureNV;
+ PFNGLBINDATTRIBLOCATIONPROC BindAttribLocation;
+ PFNGLBINDATTRIBLOCATIONARBPROC BindAttribLocationARB;
+ PFNGLBINDBUFFERPROC BindBuffer;
+ PFNGLBINDBUFFERARBPROC BindBufferARB;
+ PFNGLBINDBUFFERBASEPROC BindBufferBase;
+ PFNGLBINDBUFFERBASEEXTPROC BindBufferBaseEXT;
+ PFNGLBINDBUFFERBASENVPROC BindBufferBaseNV;
+ PFNGLBINDBUFFEROFFSETEXTPROC BindBufferOffsetEXT;
+ PFNGLBINDBUFFEROFFSETNVPROC BindBufferOffsetNV;
+ PFNGLBINDBUFFERRANGEPROC BindBufferRange;
+ PFNGLBINDBUFFERRANGEEXTPROC BindBufferRangeEXT;
+ PFNGLBINDBUFFERRANGENVPROC BindBufferRangeNV;
+ PFNGLBINDBUFFERSBASEPROC BindBuffersBase;
+ PFNGLBINDBUFFERSRANGEPROC BindBuffersRange;
+ PFNGLBINDFRAGDATALOCATIONPROC BindFragDataLocation;
+ PFNGLBINDFRAGDATALOCATIONEXTPROC BindFragDataLocationEXT;
+ PFNGLBINDFRAGDATALOCATIONINDEXEDPROC BindFragDataLocationIndexed;
+ PFNGLBINDFRAGMENTSHADERATIPROC BindFragmentShaderATI;
+ PFNGLBINDFRAMEBUFFERPROC BindFramebuffer;
+ PFNGLBINDFRAMEBUFFEREXTPROC BindFramebufferEXT;
+ PFNGLBINDIMAGETEXTUREPROC BindImageTexture;
+ PFNGLBINDIMAGETEXTUREEXTPROC BindImageTextureEXT;
+ PFNGLBINDIMAGETEXTURESPROC BindImageTextures;
+ PFNGLBINDLIGHTPARAMETEREXTPROC BindLightParameterEXT;
+ PFNGLBINDMATERIALPARAMETEREXTPROC BindMaterialParameterEXT;
+ PFNGLBINDMULTITEXTUREEXTPROC BindMultiTextureEXT;
+ PFNGLBINDPARAMETEREXTPROC BindParameterEXT;
+ PFNGLBINDPROGRAMARBPROC BindProgramARB;
+ PFNGLBINDPROGRAMNVPROC BindProgramNV;
+ PFNGLBINDPROGRAMPIPELINEPROC BindProgramPipeline;
+ PFNGLBINDRENDERBUFFERPROC BindRenderbuffer;
+ PFNGLBINDRENDERBUFFEREXTPROC BindRenderbufferEXT;
+ PFNGLBINDSAMPLERPROC BindSampler;
+ PFNGLBINDSAMPLERSPROC BindSamplers;
+ PFNGLBINDSHADINGRATEIMAGENVPROC BindShadingRateImageNV;
+ PFNGLBINDTEXGENPARAMETEREXTPROC BindTexGenParameterEXT;
+ PFNGLBINDTEXTUREPROC BindTexture;
+ PFNGLBINDTEXTUREEXTPROC BindTextureEXT;
+ PFNGLBINDTEXTUREUNITPROC BindTextureUnit;
+ PFNGLBINDTEXTUREUNITPARAMETEREXTPROC BindTextureUnitParameterEXT;
+ PFNGLBINDTEXTURESPROC BindTextures;
+ PFNGLBINDTRANSFORMFEEDBACKPROC BindTransformFeedback;
+ PFNGLBINDTRANSFORMFEEDBACKNVPROC BindTransformFeedbackNV;
+ PFNGLBINDVERTEXARRAYPROC BindVertexArray;
+ PFNGLBINDVERTEXARRAYAPPLEPROC BindVertexArrayAPPLE;
+ PFNGLBINDVERTEXBUFFERPROC BindVertexBuffer;
+ PFNGLBINDVERTEXBUFFERSPROC BindVertexBuffers;
+ PFNGLBINDVERTEXSHADEREXTPROC BindVertexShaderEXT;
+ PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC BindVideoCaptureStreamBufferNV;
+ PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC BindVideoCaptureStreamTextureNV;
+ PFNGLBINORMAL3BEXTPROC Binormal3bEXT;
+ PFNGLBINORMAL3BVEXTPROC Binormal3bvEXT;
+ PFNGLBINORMAL3DEXTPROC Binormal3dEXT;
+ PFNGLBINORMAL3DVEXTPROC Binormal3dvEXT;
+ PFNGLBINORMAL3FEXTPROC Binormal3fEXT;
+ PFNGLBINORMAL3FVEXTPROC Binormal3fvEXT;
+ PFNGLBINORMAL3IEXTPROC Binormal3iEXT;
+ PFNGLBINORMAL3IVEXTPROC Binormal3ivEXT;
+ PFNGLBINORMAL3SEXTPROC Binormal3sEXT;
+ PFNGLBINORMAL3SVEXTPROC Binormal3svEXT;
+ PFNGLBINORMALPOINTEREXTPROC BinormalPointerEXT;
+ PFNGLBITMAPXOESPROC BitmapxOES;
+ PFNGLBLENDBARRIERKHRPROC BlendBarrierKHR;
+ PFNGLBLENDBARRIERNVPROC BlendBarrierNV;
+ PFNGLBLENDCOLORPROC BlendColor;
+ PFNGLBLENDCOLOREXTPROC BlendColorEXT;
+ PFNGLBLENDCOLORXOESPROC BlendColorxOES;
+ PFNGLBLENDEQUATIONPROC BlendEquation;
+ PFNGLBLENDEQUATIONEXTPROC BlendEquationEXT;
+ PFNGLBLENDEQUATIONINDEXEDAMDPROC BlendEquationIndexedAMD;
+ PFNGLBLENDEQUATIONSEPARATEPROC BlendEquationSeparate;
+ PFNGLBLENDEQUATIONSEPARATEEXTPROC BlendEquationSeparateEXT;
+ PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC BlendEquationSeparateIndexedAMD;
+ PFNGLBLENDEQUATIONSEPARATEIPROC BlendEquationSeparatei;
+ PFNGLBLENDEQUATIONSEPARATEIARBPROC BlendEquationSeparateiARB;
+ PFNGLBLENDEQUATIONIPROC BlendEquationi;
+ PFNGLBLENDEQUATIONIARBPROC BlendEquationiARB;
+ PFNGLBLENDFUNCPROC BlendFunc;
+ PFNGLBLENDFUNCINDEXEDAMDPROC BlendFuncIndexedAMD;
+ PFNGLBLENDFUNCSEPARATEPROC BlendFuncSeparate;
+ PFNGLBLENDFUNCSEPARATEEXTPROC BlendFuncSeparateEXT;
+ PFNGLBLENDFUNCSEPARATEINGRPROC BlendFuncSeparateINGR;
+ PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC BlendFuncSeparateIndexedAMD;
+ PFNGLBLENDFUNCSEPARATEIPROC BlendFuncSeparatei;
+ PFNGLBLENDFUNCSEPARATEIARBPROC BlendFuncSeparateiARB;
+ PFNGLBLENDFUNCIPROC BlendFunci;
+ PFNGLBLENDFUNCIARBPROC BlendFunciARB;
+ PFNGLBLENDPARAMETERINVPROC BlendParameteriNV;
+ PFNGLBLITFRAMEBUFFERPROC BlitFramebuffer;
+ PFNGLBLITFRAMEBUFFEREXTPROC BlitFramebufferEXT;
+ PFNGLBLITFRAMEBUFFERLAYEREXTPROC BlitFramebufferLayerEXT;
+ PFNGLBLITFRAMEBUFFERLAYERSEXTPROC BlitFramebufferLayersEXT;
+ PFNGLBLITNAMEDFRAMEBUFFERPROC BlitNamedFramebuffer;
+ PFNGLBUFFERADDRESSRANGENVPROC BufferAddressRangeNV;
+ PFNGLBUFFERATTACHMEMORYNVPROC BufferAttachMemoryNV;
+ PFNGLBUFFERDATAPROC BufferData;
+ PFNGLBUFFERDATAARBPROC BufferDataARB;
+ PFNGLBUFFERPAGECOMMITMENTARBPROC BufferPageCommitmentARB;
+ PFNGLBUFFERPAGECOMMITMENTMEMNVPROC BufferPageCommitmentMemNV;
+ PFNGLBUFFERPARAMETERIAPPLEPROC BufferParameteriAPPLE;
+ PFNGLBUFFERSTORAGEPROC BufferStorage;
+ PFNGLBUFFERSTORAGEEXTERNALEXTPROC BufferStorageExternalEXT;
+ PFNGLBUFFERSTORAGEMEMEXTPROC BufferStorageMemEXT;
+ PFNGLBUFFERSUBDATAPROC BufferSubData;
+ PFNGLBUFFERSUBDATAARBPROC BufferSubDataARB;
+ PFNGLCALLCOMMANDLISTNVPROC CallCommandListNV;
+ PFNGLCHECKFRAMEBUFFERSTATUSPROC CheckFramebufferStatus;
+ PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC CheckFramebufferStatusEXT;
+ PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC CheckNamedFramebufferStatus;
+ PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC CheckNamedFramebufferStatusEXT;
+ PFNGLCLAMPCOLORPROC ClampColor;
+ PFNGLCLAMPCOLORARBPROC ClampColorARB;
+ PFNGLCLEARPROC Clear;
+ PFNGLCLEARACCUMXOESPROC ClearAccumxOES;
+ PFNGLCLEARBUFFERDATAPROC ClearBufferData;
+ PFNGLCLEARBUFFERSUBDATAPROC ClearBufferSubData;
+ PFNGLCLEARBUFFERFIPROC ClearBufferfi;
+ PFNGLCLEARBUFFERFVPROC ClearBufferfv;
+ PFNGLCLEARBUFFERIVPROC ClearBufferiv;
+ PFNGLCLEARBUFFERUIVPROC ClearBufferuiv;
+ PFNGLCLEARCOLORPROC ClearColor;
+ PFNGLCLEARCOLORIIEXTPROC ClearColorIiEXT;
+ PFNGLCLEARCOLORIUIEXTPROC ClearColorIuiEXT;
+ PFNGLCLEARCOLORXOESPROC ClearColorxOES;
+ PFNGLCLEARDEPTHPROC ClearDepth;
+ PFNGLCLEARDEPTHDNVPROC ClearDepthdNV;
+ PFNGLCLEARDEPTHFPROC ClearDepthf;
+ PFNGLCLEARDEPTHFOESPROC ClearDepthfOES;
+ PFNGLCLEARDEPTHXOESPROC ClearDepthxOES;
+ PFNGLCLEARNAMEDBUFFERDATAPROC ClearNamedBufferData;
+ PFNGLCLEARNAMEDBUFFERDATAEXTPROC ClearNamedBufferDataEXT;
+ PFNGLCLEARNAMEDBUFFERSUBDATAPROC ClearNamedBufferSubData;
+ PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC ClearNamedBufferSubDataEXT;
+ PFNGLCLEARNAMEDFRAMEBUFFERFIPROC ClearNamedFramebufferfi;
+ PFNGLCLEARNAMEDFRAMEBUFFERFVPROC ClearNamedFramebufferfv;
+ PFNGLCLEARNAMEDFRAMEBUFFERIVPROC ClearNamedFramebufferiv;
+ PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC ClearNamedFramebufferuiv;
+ PFNGLCLEARSTENCILPROC ClearStencil;
+ PFNGLCLEARTEXIMAGEPROC ClearTexImage;
+ PFNGLCLEARTEXSUBIMAGEPROC ClearTexSubImage;
+ PFNGLCLIENTACTIVETEXTUREARBPROC ClientActiveTextureARB;
+ PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC ClientActiveVertexStreamATI;
+ PFNGLCLIENTATTRIBDEFAULTEXTPROC ClientAttribDefaultEXT;
+ PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC ClientWaitSemaphoreui64NVX;
+ PFNGLCLIENTWAITSYNCPROC ClientWaitSync;
+ PFNGLCLIPCONTROLPROC ClipControl;
+ PFNGLCLIPPLANEFOESPROC ClipPlanefOES;
+ PFNGLCLIPPLANEXOESPROC ClipPlanexOES;
+ PFNGLCOLOR3FVERTEX3FSUNPROC Color3fVertex3fSUN;
+ PFNGLCOLOR3FVERTEX3FVSUNPROC Color3fVertex3fvSUN;
+ PFNGLCOLOR3HNVPROC Color3hNV;
+ PFNGLCOLOR3HVNVPROC Color3hvNV;
+ PFNGLCOLOR3XOESPROC Color3xOES;
+ PFNGLCOLOR3XVOESPROC Color3xvOES;
+ PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC Color4fNormal3fVertex3fSUN;
+ PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC Color4fNormal3fVertex3fvSUN;
+ PFNGLCOLOR4HNVPROC Color4hNV;
+ PFNGLCOLOR4HVNVPROC Color4hvNV;
+ PFNGLCOLOR4UBVERTEX2FSUNPROC Color4ubVertex2fSUN;
+ PFNGLCOLOR4UBVERTEX2FVSUNPROC Color4ubVertex2fvSUN;
+ PFNGLCOLOR4UBVERTEX3FSUNPROC Color4ubVertex3fSUN;
+ PFNGLCOLOR4UBVERTEX3FVSUNPROC Color4ubVertex3fvSUN;
+ PFNGLCOLOR4XOESPROC Color4xOES;
+ PFNGLCOLOR4XVOESPROC Color4xvOES;
+ PFNGLCOLORFORMATNVPROC ColorFormatNV;
+ PFNGLCOLORFRAGMENTOP1ATIPROC ColorFragmentOp1ATI;
+ PFNGLCOLORFRAGMENTOP2ATIPROC ColorFragmentOp2ATI;
+ PFNGLCOLORFRAGMENTOP3ATIPROC ColorFragmentOp3ATI;
+ PFNGLCOLORMASKPROC ColorMask;
+ PFNGLCOLORMASKINDEXEDEXTPROC ColorMaskIndexedEXT;
+ PFNGLCOLORMASKIPROC ColorMaski;
+ PFNGLCOLORPOINTEREXTPROC ColorPointerEXT;
+ PFNGLCOLORPOINTERLISTIBMPROC ColorPointerListIBM;
+ PFNGLCOLORPOINTERVINTELPROC ColorPointervINTEL;
+ PFNGLCOLORSUBTABLEEXTPROC ColorSubTableEXT;
+ PFNGLCOLORTABLEEXTPROC ColorTableEXT;
+ PFNGLCOLORTABLEPARAMETERFVSGIPROC ColorTableParameterfvSGI;
+ PFNGLCOLORTABLEPARAMETERIVSGIPROC ColorTableParameterivSGI;
+ PFNGLCOLORTABLESGIPROC ColorTableSGI;
+ PFNGLCOMBINERINPUTNVPROC CombinerInputNV;
+ PFNGLCOMBINEROUTPUTNVPROC CombinerOutputNV;
+ PFNGLCOMBINERPARAMETERFNVPROC CombinerParameterfNV;
+ PFNGLCOMBINERPARAMETERFVNVPROC CombinerParameterfvNV;
+ PFNGLCOMBINERPARAMETERINVPROC CombinerParameteriNV;
+ PFNGLCOMBINERPARAMETERIVNVPROC CombinerParameterivNV;
+ PFNGLCOMBINERSTAGEPARAMETERFVNVPROC CombinerStageParameterfvNV;
+ PFNGLCOMMANDLISTSEGMENTSNVPROC CommandListSegmentsNV;
+ PFNGLCOMPILECOMMANDLISTNVPROC CompileCommandListNV;
+ PFNGLCOMPILESHADERPROC CompileShader;
+ PFNGLCOMPILESHADERARBPROC CompileShaderARB;
+ PFNGLCOMPILESHADERINCLUDEARBPROC CompileShaderIncludeARB;
+ PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC CompressedMultiTexImage1DEXT;
+ PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC CompressedMultiTexImage2DEXT;
+ PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC CompressedMultiTexImage3DEXT;
+ PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC CompressedMultiTexSubImage1DEXT;
+ PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC CompressedMultiTexSubImage2DEXT;
+ PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC CompressedMultiTexSubImage3DEXT;
+ PFNGLCOMPRESSEDTEXIMAGE1DPROC CompressedTexImage1D;
+ PFNGLCOMPRESSEDTEXIMAGE1DARBPROC CompressedTexImage1DARB;
+ PFNGLCOMPRESSEDTEXIMAGE2DPROC CompressedTexImage2D;
+ PFNGLCOMPRESSEDTEXIMAGE2DARBPROC CompressedTexImage2DARB;
+ PFNGLCOMPRESSEDTEXIMAGE3DPROC CompressedTexImage3D;
+ PFNGLCOMPRESSEDTEXIMAGE3DARBPROC CompressedTexImage3DARB;
+ PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC CompressedTexSubImage1D;
+ PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC CompressedTexSubImage1DARB;
+ PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC CompressedTexSubImage2D;
+ PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC CompressedTexSubImage2DARB;
+ PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC CompressedTexSubImage3D;
+ PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC CompressedTexSubImage3DARB;
+ PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC CompressedTextureImage1DEXT;
+ PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC CompressedTextureImage2DEXT;
+ PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC CompressedTextureImage3DEXT;
+ PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC CompressedTextureSubImage1D;
+ PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC CompressedTextureSubImage1DEXT;
+ PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC CompressedTextureSubImage2D;
+ PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC CompressedTextureSubImage2DEXT;
+ PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC CompressedTextureSubImage3D;
+ PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC CompressedTextureSubImage3DEXT;
+ PFNGLCONSERVATIVERASTERPARAMETERFNVPROC ConservativeRasterParameterfNV;
+ PFNGLCONSERVATIVERASTERPARAMETERINVPROC ConservativeRasterParameteriNV;
+ PFNGLCONVOLUTIONFILTER1DEXTPROC ConvolutionFilter1DEXT;
+ PFNGLCONVOLUTIONFILTER2DEXTPROC ConvolutionFilter2DEXT;
+ PFNGLCONVOLUTIONPARAMETERFEXTPROC ConvolutionParameterfEXT;
+ PFNGLCONVOLUTIONPARAMETERFVEXTPROC ConvolutionParameterfvEXT;
+ PFNGLCONVOLUTIONPARAMETERIEXTPROC ConvolutionParameteriEXT;
+ PFNGLCONVOLUTIONPARAMETERIVEXTPROC ConvolutionParameterivEXT;
+ PFNGLCONVOLUTIONPARAMETERXOESPROC ConvolutionParameterxOES;
+ PFNGLCONVOLUTIONPARAMETERXVOESPROC ConvolutionParameterxvOES;
+ PFNGLCOPYBUFFERSUBDATAPROC CopyBufferSubData;
+ PFNGLCOPYCOLORSUBTABLEEXTPROC CopyColorSubTableEXT;
+ PFNGLCOPYCOLORTABLESGIPROC CopyColorTableSGI;
+ PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC CopyConvolutionFilter1DEXT;
+ PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC CopyConvolutionFilter2DEXT;
+ PFNGLCOPYIMAGESUBDATAPROC CopyImageSubData;
+ PFNGLCOPYIMAGESUBDATANVPROC CopyImageSubDataNV;
+ PFNGLCOPYMULTITEXIMAGE1DEXTPROC CopyMultiTexImage1DEXT;
+ PFNGLCOPYMULTITEXIMAGE2DEXTPROC CopyMultiTexImage2DEXT;
+ PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC CopyMultiTexSubImage1DEXT;
+ PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC CopyMultiTexSubImage2DEXT;
+ PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC CopyMultiTexSubImage3DEXT;
+ PFNGLCOPYNAMEDBUFFERSUBDATAPROC CopyNamedBufferSubData;
+ PFNGLCOPYPATHNVPROC CopyPathNV;
+ PFNGLCOPYTEXIMAGE1DPROC CopyTexImage1D;
+ PFNGLCOPYTEXIMAGE1DEXTPROC CopyTexImage1DEXT;
+ PFNGLCOPYTEXIMAGE2DPROC CopyTexImage2D;
+ PFNGLCOPYTEXIMAGE2DEXTPROC CopyTexImage2DEXT;
+ PFNGLCOPYTEXSUBIMAGE1DPROC CopyTexSubImage1D;
+ PFNGLCOPYTEXSUBIMAGE1DEXTPROC CopyTexSubImage1DEXT;
+ PFNGLCOPYTEXSUBIMAGE2DPROC CopyTexSubImage2D;
+ PFNGLCOPYTEXSUBIMAGE2DEXTPROC CopyTexSubImage2DEXT;
+ PFNGLCOPYTEXSUBIMAGE3DPROC CopyTexSubImage3D;
+ PFNGLCOPYTEXSUBIMAGE3DEXTPROC CopyTexSubImage3DEXT;
+ PFNGLCOPYTEXTUREIMAGE1DEXTPROC CopyTextureImage1DEXT;
+ PFNGLCOPYTEXTUREIMAGE2DEXTPROC CopyTextureImage2DEXT;
+ PFNGLCOPYTEXTURESUBIMAGE1DPROC CopyTextureSubImage1D;
+ PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC CopyTextureSubImage1DEXT;
+ PFNGLCOPYTEXTURESUBIMAGE2DPROC CopyTextureSubImage2D;
+ PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC CopyTextureSubImage2DEXT;
+ PFNGLCOPYTEXTURESUBIMAGE3DPROC CopyTextureSubImage3D;
+ PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC CopyTextureSubImage3DEXT;
+ PFNGLCOVERFILLPATHINSTANCEDNVPROC CoverFillPathInstancedNV;
+ PFNGLCOVERFILLPATHNVPROC CoverFillPathNV;
+ PFNGLCOVERSTROKEPATHINSTANCEDNVPROC CoverStrokePathInstancedNV;
+ PFNGLCOVERSTROKEPATHNVPROC CoverStrokePathNV;
+ PFNGLCOVERAGEMODULATIONNVPROC CoverageModulationNV;
+ PFNGLCOVERAGEMODULATIONTABLENVPROC CoverageModulationTableNV;
+ PFNGLCREATEBUFFERSPROC CreateBuffers;
+ PFNGLCREATECOMMANDLISTSNVPROC CreateCommandListsNV;
+ PFNGLCREATEFRAMEBUFFERSPROC CreateFramebuffers;
+ PFNGLCREATEMEMORYOBJECTSEXTPROC CreateMemoryObjectsEXT;
+ PFNGLCREATEPERFQUERYINTELPROC CreatePerfQueryINTEL;
+ PFNGLCREATEPROGRAMPROC CreateProgram;
+ PFNGLCREATEPROGRAMOBJECTARBPROC CreateProgramObjectARB;
+ PFNGLCREATEPROGRAMPIPELINESPROC CreateProgramPipelines;
+ PFNGLCREATEPROGRESSFENCENVXPROC CreateProgressFenceNVX;
+ PFNGLCREATEQUERIESPROC CreateQueries;
+ PFNGLCREATERENDERBUFFERSPROC CreateRenderbuffers;
+ PFNGLCREATESAMPLERSPROC CreateSamplers;
+ PFNGLCREATESEMAPHORESNVPROC CreateSemaphoresNV;
+ PFNGLCREATESHADERPROC CreateShader;
+ PFNGLCREATESHADEROBJECTARBPROC CreateShaderObjectARB;
+ PFNGLCREATESHADERPROGRAMEXTPROC CreateShaderProgramEXT;
+ PFNGLCREATESHADERPROGRAMVPROC CreateShaderProgramv;
+ PFNGLCREATESTATESNVPROC CreateStatesNV;
+ PFNGLCREATESYNCFROMCLEVENTARBPROC CreateSyncFromCLeventARB;
+ PFNGLCREATETEXTURESPROC CreateTextures;
+ PFNGLCREATETRANSFORMFEEDBACKSPROC CreateTransformFeedbacks;
+ PFNGLCREATEVERTEXARRAYSPROC CreateVertexArrays;
+ PFNGLCULLFACEPROC CullFace;
+ PFNGLCULLPARAMETERDVEXTPROC CullParameterdvEXT;
+ PFNGLCULLPARAMETERFVEXTPROC CullParameterfvEXT;
+ PFNGLCURRENTPALETTEMATRIXARBPROC CurrentPaletteMatrixARB;
+ PFNGLDEBUGMESSAGECALLBACKPROC DebugMessageCallback;
+ PFNGLDEBUGMESSAGECALLBACKAMDPROC DebugMessageCallbackAMD;
+ PFNGLDEBUGMESSAGECALLBACKARBPROC DebugMessageCallbackARB;
+ PFNGLDEBUGMESSAGECONTROLPROC DebugMessageControl;
+ PFNGLDEBUGMESSAGECONTROLARBPROC DebugMessageControlARB;
+ PFNGLDEBUGMESSAGEENABLEAMDPROC DebugMessageEnableAMD;
+ PFNGLDEBUGMESSAGEINSERTPROC DebugMessageInsert;
+ PFNGLDEBUGMESSAGEINSERTAMDPROC DebugMessageInsertAMD;
+ PFNGLDEBUGMESSAGEINSERTARBPROC DebugMessageInsertARB;
+ PFNGLDEFORMSGIXPROC DeformSGIX;
+ PFNGLDEFORMATIONMAP3DSGIXPROC DeformationMap3dSGIX;
+ PFNGLDEFORMATIONMAP3FSGIXPROC DeformationMap3fSGIX;
+ PFNGLDELETEASYNCMARKERSSGIXPROC DeleteAsyncMarkersSGIX;
+ PFNGLDELETEBUFFERSPROC DeleteBuffers;
+ PFNGLDELETEBUFFERSARBPROC DeleteBuffersARB;
+ PFNGLDELETECOMMANDLISTSNVPROC DeleteCommandListsNV;
+ PFNGLDELETEFENCESAPPLEPROC DeleteFencesAPPLE;
+ PFNGLDELETEFENCESNVPROC DeleteFencesNV;
+ PFNGLDELETEFRAGMENTSHADERATIPROC DeleteFragmentShaderATI;
+ PFNGLDELETEFRAMEBUFFERSPROC DeleteFramebuffers;
+ PFNGLDELETEFRAMEBUFFERSEXTPROC DeleteFramebuffersEXT;
+ PFNGLDELETEMEMORYOBJECTSEXTPROC DeleteMemoryObjectsEXT;
+ PFNGLDELETENAMEDSTRINGARBPROC DeleteNamedStringARB;
+ PFNGLDELETENAMESAMDPROC DeleteNamesAMD;
+ PFNGLDELETEOBJECTARBPROC DeleteObjectARB;
+ PFNGLDELETEOCCLUSIONQUERIESNVPROC DeleteOcclusionQueriesNV;
+ PFNGLDELETEPATHSNVPROC DeletePathsNV;
+ PFNGLDELETEPERFMONITORSAMDPROC DeletePerfMonitorsAMD;
+ PFNGLDELETEPERFQUERYINTELPROC DeletePerfQueryINTEL;
+ PFNGLDELETEPROGRAMPROC DeleteProgram;
+ PFNGLDELETEPROGRAMPIPELINESPROC DeleteProgramPipelines;
+ PFNGLDELETEPROGRAMSARBPROC DeleteProgramsARB;
+ PFNGLDELETEPROGRAMSNVPROC DeleteProgramsNV;
+ PFNGLDELETEQUERIESPROC DeleteQueries;
+ PFNGLDELETEQUERIESARBPROC DeleteQueriesARB;
+ PFNGLDELETEQUERYRESOURCETAGNVPROC DeleteQueryResourceTagNV;
+ PFNGLDELETERENDERBUFFERSPROC DeleteRenderbuffers;
+ PFNGLDELETERENDERBUFFERSEXTPROC DeleteRenderbuffersEXT;
+ PFNGLDELETESAMPLERSPROC DeleteSamplers;
+ PFNGLDELETESEMAPHORESEXTPROC DeleteSemaphoresEXT;
+ PFNGLDELETESHADERPROC DeleteShader;
+ PFNGLDELETESTATESNVPROC DeleteStatesNV;
+ PFNGLDELETESYNCPROC DeleteSync;
+ PFNGLDELETETEXTURESPROC DeleteTextures;
+ PFNGLDELETETEXTURESEXTPROC DeleteTexturesEXT;
+ PFNGLDELETETRANSFORMFEEDBACKSPROC DeleteTransformFeedbacks;
+ PFNGLDELETETRANSFORMFEEDBACKSNVPROC DeleteTransformFeedbacksNV;
+ PFNGLDELETEVERTEXARRAYSPROC DeleteVertexArrays;
+ PFNGLDELETEVERTEXARRAYSAPPLEPROC DeleteVertexArraysAPPLE;
+ PFNGLDELETEVERTEXSHADEREXTPROC DeleteVertexShaderEXT;
+ PFNGLDEPTHBOUNDSEXTPROC DepthBoundsEXT;
+ PFNGLDEPTHBOUNDSDNVPROC DepthBoundsdNV;
+ PFNGLDEPTHFUNCPROC DepthFunc;
+ PFNGLDEPTHMASKPROC DepthMask;
+ PFNGLDEPTHRANGEPROC DepthRange;
+ PFNGLDEPTHRANGEARRAYDVNVPROC DepthRangeArraydvNV;
+ PFNGLDEPTHRANGEARRAYVPROC DepthRangeArrayv;
+ PFNGLDEPTHRANGEINDEXEDPROC DepthRangeIndexed;
+ PFNGLDEPTHRANGEINDEXEDDNVPROC DepthRangeIndexeddNV;
+ PFNGLDEPTHRANGEDNVPROC DepthRangedNV;
+ PFNGLDEPTHRANGEFPROC DepthRangef;
+ PFNGLDEPTHRANGEFOESPROC DepthRangefOES;
+ PFNGLDEPTHRANGEXOESPROC DepthRangexOES;
+ PFNGLDETACHOBJECTARBPROC DetachObjectARB;
+ PFNGLDETACHSHADERPROC DetachShader;
+ PFNGLDETAILTEXFUNCSGISPROC DetailTexFuncSGIS;
+ PFNGLDISABLEPROC Disable;
+ PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC DisableClientStateIndexedEXT;
+ PFNGLDISABLECLIENTSTATEIEXTPROC DisableClientStateiEXT;
+ PFNGLDISABLEINDEXEDEXTPROC DisableIndexedEXT;
+ PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC DisableVariantClientStateEXT;
+ PFNGLDISABLEVERTEXARRAYATTRIBPROC DisableVertexArrayAttrib;
+ PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC DisableVertexArrayAttribEXT;
+ PFNGLDISABLEVERTEXARRAYEXTPROC DisableVertexArrayEXT;
+ PFNGLDISABLEVERTEXATTRIBAPPLEPROC DisableVertexAttribAPPLE;
+ PFNGLDISABLEVERTEXATTRIBARRAYPROC DisableVertexAttribArray;
+ PFNGLDISABLEVERTEXATTRIBARRAYARBPROC DisableVertexAttribArrayARB;
+ PFNGLDISABLEIPROC Disablei;
+ PFNGLDISPATCHCOMPUTEPROC DispatchCompute;
+ PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC DispatchComputeGroupSizeARB;
+ PFNGLDISPATCHCOMPUTEINDIRECTPROC DispatchComputeIndirect;
+ PFNGLDRAWARRAYSPROC DrawArrays;
+ PFNGLDRAWARRAYSEXTPROC DrawArraysEXT;
+ PFNGLDRAWARRAYSINDIRECTPROC DrawArraysIndirect;
+ PFNGLDRAWARRAYSINSTANCEDPROC DrawArraysInstanced;
+ PFNGLDRAWARRAYSINSTANCEDARBPROC DrawArraysInstancedARB;
+ PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC DrawArraysInstancedBaseInstance;
+ PFNGLDRAWARRAYSINSTANCEDEXTPROC DrawArraysInstancedEXT;
+ PFNGLDRAWBUFFERPROC DrawBuffer;
+ PFNGLDRAWBUFFERSPROC DrawBuffers;
+ PFNGLDRAWBUFFERSARBPROC DrawBuffersARB;
+ PFNGLDRAWBUFFERSATIPROC DrawBuffersATI;
+ PFNGLDRAWCOMMANDSADDRESSNVPROC DrawCommandsAddressNV;
+ PFNGLDRAWCOMMANDSNVPROC DrawCommandsNV;
+ PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC DrawCommandsStatesAddressNV;
+ PFNGLDRAWCOMMANDSSTATESNVPROC DrawCommandsStatesNV;
+ PFNGLDRAWELEMENTARRAYAPPLEPROC DrawElementArrayAPPLE;
+ PFNGLDRAWELEMENTARRAYATIPROC DrawElementArrayATI;
+ PFNGLDRAWELEMENTSPROC DrawElements;
+ PFNGLDRAWELEMENTSBASEVERTEXPROC DrawElementsBaseVertex;
+ PFNGLDRAWELEMENTSINDIRECTPROC DrawElementsIndirect;
+ PFNGLDRAWELEMENTSINSTANCEDPROC DrawElementsInstanced;
+ PFNGLDRAWELEMENTSINSTANCEDARBPROC DrawElementsInstancedARB;
+ PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC DrawElementsInstancedBaseInstance;
+ PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC DrawElementsInstancedBaseVertex;
+ PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC
+ DrawElementsInstancedBaseVertexBaseInstance;
+ PFNGLDRAWELEMENTSINSTANCEDEXTPROC DrawElementsInstancedEXT;
+ PFNGLDRAWMESHARRAYSSUNPROC DrawMeshArraysSUN;
+ PFNGLDRAWMESHTASKSINDIRECTNVPROC DrawMeshTasksIndirectNV;
+ PFNGLDRAWMESHTASKSNVPROC DrawMeshTasksNV;
+ PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC DrawRangeElementArrayAPPLE;
+ PFNGLDRAWRANGEELEMENTARRAYATIPROC DrawRangeElementArrayATI;
+ PFNGLDRAWRANGEELEMENTSPROC DrawRangeElements;
+ PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC DrawRangeElementsBaseVertex;
+ PFNGLDRAWRANGEELEMENTSEXTPROC DrawRangeElementsEXT;
+ PFNGLDRAWTEXTURENVPROC DrawTextureNV;
+ PFNGLDRAWTRANSFORMFEEDBACKPROC DrawTransformFeedback;
+ PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC DrawTransformFeedbackInstanced;
+ PFNGLDRAWTRANSFORMFEEDBACKNVPROC DrawTransformFeedbackNV;
+ PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC DrawTransformFeedbackStream;
+ PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC DrawTransformFeedbackStreamInstanced;
+ PFNGLDRAWVKIMAGENVPROC DrawVkImageNV;
+ PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC EGLImageTargetTexStorageEXT;
+ PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC EGLImageTargetTextureStorageEXT;
+ PFNGLEDGEFLAGFORMATNVPROC EdgeFlagFormatNV;
+ PFNGLEDGEFLAGPOINTEREXTPROC EdgeFlagPointerEXT;
+ PFNGLEDGEFLAGPOINTERLISTIBMPROC EdgeFlagPointerListIBM;
+ PFNGLELEMENTPOINTERAPPLEPROC ElementPointerAPPLE;
+ PFNGLELEMENTPOINTERATIPROC ElementPointerATI;
+ PFNGLENABLEPROC Enable;
+ PFNGLENABLECLIENTSTATEINDEXEDEXTPROC EnableClientStateIndexedEXT;
+ PFNGLENABLECLIENTSTATEIEXTPROC EnableClientStateiEXT;
+ PFNGLENABLEINDEXEDEXTPROC EnableIndexedEXT;
+ PFNGLENABLEVARIANTCLIENTSTATEEXTPROC EnableVariantClientStateEXT;
+ PFNGLENABLEVERTEXARRAYATTRIBPROC EnableVertexArrayAttrib;
+ PFNGLENABLEVERTEXARRAYATTRIBEXTPROC EnableVertexArrayAttribEXT;
+ PFNGLENABLEVERTEXARRAYEXTPROC EnableVertexArrayEXT;
+ PFNGLENABLEVERTEXATTRIBAPPLEPROC EnableVertexAttribAPPLE;
+ PFNGLENABLEVERTEXATTRIBARRAYPROC EnableVertexAttribArray;
+ PFNGLENABLEVERTEXATTRIBARRAYARBPROC EnableVertexAttribArrayARB;
+ PFNGLENABLEIPROC Enablei;
+ PFNGLENDCONDITIONALRENDERPROC EndConditionalRender;
+ PFNGLENDCONDITIONALRENDERNVPROC EndConditionalRenderNV;
+ PFNGLENDCONDITIONALRENDERNVXPROC EndConditionalRenderNVX;
+ PFNGLENDFRAGMENTSHADERATIPROC EndFragmentShaderATI;
+ PFNGLENDOCCLUSIONQUERYNVPROC EndOcclusionQueryNV;
+ PFNGLENDPERFMONITORAMDPROC EndPerfMonitorAMD;
+ PFNGLENDPERFQUERYINTELPROC EndPerfQueryINTEL;
+ PFNGLENDQUERYPROC EndQuery;
+ PFNGLENDQUERYARBPROC EndQueryARB;
+ PFNGLENDQUERYINDEXEDPROC EndQueryIndexed;
+ PFNGLENDTRANSFORMFEEDBACKPROC EndTransformFeedback;
+ PFNGLENDTRANSFORMFEEDBACKEXTPROC EndTransformFeedbackEXT;
+ PFNGLENDTRANSFORMFEEDBACKNVPROC EndTransformFeedbackNV;
+ PFNGLENDVERTEXSHADEREXTPROC EndVertexShaderEXT;
+ PFNGLENDVIDEOCAPTURENVPROC EndVideoCaptureNV;
+ PFNGLEVALCOORD1XOESPROC EvalCoord1xOES;
+ PFNGLEVALCOORD1XVOESPROC EvalCoord1xvOES;
+ PFNGLEVALCOORD2XOESPROC EvalCoord2xOES;
+ PFNGLEVALCOORD2XVOESPROC EvalCoord2xvOES;
+ PFNGLEVALMAPSNVPROC EvalMapsNV;
+ PFNGLEVALUATEDEPTHVALUESARBPROC EvaluateDepthValuesARB;
+ PFNGLEXECUTEPROGRAMNVPROC ExecuteProgramNV;
+ PFNGLEXTRACTCOMPONENTEXTPROC ExtractComponentEXT;
+ PFNGLFEEDBACKBUFFERXOESPROC FeedbackBufferxOES;
+ PFNGLFENCESYNCPROC FenceSync;
+ PFNGLFINALCOMBINERINPUTNVPROC FinalCombinerInputNV;
+ PFNGLFINISHPROC Finish;
+ PFNGLFINISHASYNCSGIXPROC FinishAsyncSGIX;
+ PFNGLFINISHFENCEAPPLEPROC FinishFenceAPPLE;
+ PFNGLFINISHFENCENVPROC FinishFenceNV;
+ PFNGLFINISHOBJECTAPPLEPROC FinishObjectAPPLE;
+ PFNGLFINISHTEXTURESUNXPROC FinishTextureSUNX;
+ PFNGLFLUSHPROC Flush;
+ PFNGLFLUSHMAPPEDBUFFERRANGEPROC FlushMappedBufferRange;
+ PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC FlushMappedBufferRangeAPPLE;
+ PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC FlushMappedNamedBufferRange;
+ PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC FlushMappedNamedBufferRangeEXT;
+ PFNGLFLUSHPIXELDATARANGENVPROC FlushPixelDataRangeNV;
+ PFNGLFLUSHRASTERSGIXPROC FlushRasterSGIX;
+ PFNGLFLUSHSTATICDATAIBMPROC FlushStaticDataIBM;
+ PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC FlushVertexArrayRangeAPPLE;
+ PFNGLFLUSHVERTEXARRAYRANGENVPROC FlushVertexArrayRangeNV;
+ PFNGLFOGCOORDFORMATNVPROC FogCoordFormatNV;
+ PFNGLFOGCOORDPOINTEREXTPROC FogCoordPointerEXT;
+ PFNGLFOGCOORDPOINTERLISTIBMPROC FogCoordPointerListIBM;
+ PFNGLFOGCOORDDEXTPROC FogCoorddEXT;
+ PFNGLFOGCOORDDVEXTPROC FogCoorddvEXT;
+ PFNGLFOGCOORDFEXTPROC FogCoordfEXT;
+ PFNGLFOGCOORDFVEXTPROC FogCoordfvEXT;
+ PFNGLFOGCOORDHNVPROC FogCoordhNV;
+ PFNGLFOGCOORDHVNVPROC FogCoordhvNV;
+ PFNGLFOGFUNCSGISPROC FogFuncSGIS;
+ PFNGLFOGXOESPROC FogxOES;
+ PFNGLFOGXVOESPROC FogxvOES;
+ PFNGLFRAGMENTCOLORMATERIALSGIXPROC FragmentColorMaterialSGIX;
+ PFNGLFRAGMENTCOVERAGECOLORNVPROC FragmentCoverageColorNV;
+ PFNGLFRAGMENTLIGHTMODELFSGIXPROC FragmentLightModelfSGIX;
+ PFNGLFRAGMENTLIGHTMODELFVSGIXPROC FragmentLightModelfvSGIX;
+ PFNGLFRAGMENTLIGHTMODELISGIXPROC FragmentLightModeliSGIX;
+ PFNGLFRAGMENTLIGHTMODELIVSGIXPROC FragmentLightModelivSGIX;
+ PFNGLFRAGMENTLIGHTFSGIXPROC FragmentLightfSGIX;
+ PFNGLFRAGMENTLIGHTFVSGIXPROC FragmentLightfvSGIX;
+ PFNGLFRAGMENTLIGHTISGIXPROC FragmentLightiSGIX;
+ PFNGLFRAGMENTLIGHTIVSGIXPROC FragmentLightivSGIX;
+ PFNGLFRAGMENTMATERIALFSGIXPROC FragmentMaterialfSGIX;
+ PFNGLFRAGMENTMATERIALFVSGIXPROC FragmentMaterialfvSGIX;
+ PFNGLFRAGMENTMATERIALISGIXPROC FragmentMaterialiSGIX;
+ PFNGLFRAGMENTMATERIALIVSGIXPROC FragmentMaterialivSGIX;
+ PFNGLFRAMETERMINATORGREMEDYPROC FrameTerminatorGREMEDY;
+ PFNGLFRAMEZOOMSGIXPROC FrameZoomSGIX;
+ PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC FramebufferDrawBufferEXT;
+ PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC FramebufferDrawBuffersEXT;
+ PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC FramebufferFetchBarrierEXT;
+ PFNGLFRAMEBUFFERPARAMETERIPROC FramebufferParameteri;
+ PFNGLFRAMEBUFFERPARAMETERIMESAPROC FramebufferParameteriMESA;
+ PFNGLFRAMEBUFFERREADBUFFEREXTPROC FramebufferReadBufferEXT;
+ PFNGLFRAMEBUFFERRENDERBUFFERPROC FramebufferRenderbuffer;
+ PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC FramebufferRenderbufferEXT;
+ PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC FramebufferSampleLocationsfvARB;
+ PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC FramebufferSampleLocationsfvNV;
+ PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC FramebufferSamplePositionsfvAMD;
+ PFNGLFRAMEBUFFERTEXTUREPROC FramebufferTexture;
+ PFNGLFRAMEBUFFERTEXTURE1DPROC FramebufferTexture1D;
+ PFNGLFRAMEBUFFERTEXTURE1DEXTPROC FramebufferTexture1DEXT;
+ PFNGLFRAMEBUFFERTEXTURE2DPROC FramebufferTexture2D;
+ PFNGLFRAMEBUFFERTEXTURE2DEXTPROC FramebufferTexture2DEXT;
+ PFNGLFRAMEBUFFERTEXTURE3DPROC FramebufferTexture3D;
+ PFNGLFRAMEBUFFERTEXTURE3DEXTPROC FramebufferTexture3DEXT;
+ PFNGLFRAMEBUFFERTEXTUREARBPROC FramebufferTextureARB;
+ PFNGLFRAMEBUFFERTEXTUREEXTPROC FramebufferTextureEXT;
+ PFNGLFRAMEBUFFERTEXTUREFACEARBPROC FramebufferTextureFaceARB;
+ PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC FramebufferTextureFaceEXT;
+ PFNGLFRAMEBUFFERTEXTURELAYERPROC FramebufferTextureLayer;
+ PFNGLFRAMEBUFFERTEXTURELAYERARBPROC FramebufferTextureLayerARB;
+ PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC FramebufferTextureLayerEXT;
+ PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC FramebufferTextureMultiviewOVR;
+ PFNGLFREEOBJECTBUFFERATIPROC FreeObjectBufferATI;
+ PFNGLFRONTFACEPROC FrontFace;
+ PFNGLFRUSTUMFOESPROC FrustumfOES;
+ PFNGLFRUSTUMXOESPROC FrustumxOES;
+ PFNGLGENASYNCMARKERSSGIXPROC GenAsyncMarkersSGIX;
+ PFNGLGENBUFFERSPROC GenBuffers;
+ PFNGLGENBUFFERSARBPROC GenBuffersARB;
+ PFNGLGENFENCESAPPLEPROC GenFencesAPPLE;
+ PFNGLGENFENCESNVPROC GenFencesNV;
+ PFNGLGENFRAGMENTSHADERSATIPROC GenFragmentShadersATI;
+ PFNGLGENFRAMEBUFFERSPROC GenFramebuffers;
+ PFNGLGENFRAMEBUFFERSEXTPROC GenFramebuffersEXT;
+ PFNGLGENNAMESAMDPROC GenNamesAMD;
+ PFNGLGENOCCLUSIONQUERIESNVPROC GenOcclusionQueriesNV;
+ PFNGLGENPATHSNVPROC GenPathsNV;
+ PFNGLGENPERFMONITORSAMDPROC GenPerfMonitorsAMD;
+ PFNGLGENPROGRAMPIPELINESPROC GenProgramPipelines;
+ PFNGLGENPROGRAMSARBPROC GenProgramsARB;
+ PFNGLGENPROGRAMSNVPROC GenProgramsNV;
+ PFNGLGENQUERIESPROC GenQueries;
+ PFNGLGENQUERIESARBPROC GenQueriesARB;
+ PFNGLGENQUERYRESOURCETAGNVPROC GenQueryResourceTagNV;
+ PFNGLGENRENDERBUFFERSPROC GenRenderbuffers;
+ PFNGLGENRENDERBUFFERSEXTPROC GenRenderbuffersEXT;
+ PFNGLGENSAMPLERSPROC GenSamplers;
+ PFNGLGENSEMAPHORESEXTPROC GenSemaphoresEXT;
+ PFNGLGENSYMBOLSEXTPROC GenSymbolsEXT;
+ PFNGLGENTEXTURESPROC GenTextures;
+ PFNGLGENTEXTURESEXTPROC GenTexturesEXT;
+ PFNGLGENTRANSFORMFEEDBACKSPROC GenTransformFeedbacks;
+ PFNGLGENTRANSFORMFEEDBACKSNVPROC GenTransformFeedbacksNV;
+ PFNGLGENVERTEXARRAYSPROC GenVertexArrays;
+ PFNGLGENVERTEXARRAYSAPPLEPROC GenVertexArraysAPPLE;
+ PFNGLGENVERTEXSHADERSEXTPROC GenVertexShadersEXT;
+ PFNGLGENERATEMIPMAPPROC GenerateMipmap;
+ PFNGLGENERATEMIPMAPEXTPROC GenerateMipmapEXT;
+ PFNGLGENERATEMULTITEXMIPMAPEXTPROC GenerateMultiTexMipmapEXT;
+ PFNGLGENERATETEXTUREMIPMAPPROC GenerateTextureMipmap;
+ PFNGLGENERATETEXTUREMIPMAPEXTPROC GenerateTextureMipmapEXT;
+ PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC GetActiveAtomicCounterBufferiv;
+ PFNGLGETACTIVEATTRIBPROC GetActiveAttrib;
+ PFNGLGETACTIVEATTRIBARBPROC GetActiveAttribARB;
+ PFNGLGETACTIVESUBROUTINENAMEPROC GetActiveSubroutineName;
+ PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC GetActiveSubroutineUniformName;
+ PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC GetActiveSubroutineUniformiv;
+ PFNGLGETACTIVEUNIFORMPROC GetActiveUniform;
+ PFNGLGETACTIVEUNIFORMARBPROC GetActiveUniformARB;
+ PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC GetActiveUniformBlockName;
+ PFNGLGETACTIVEUNIFORMBLOCKIVPROC GetActiveUniformBlockiv;
+ PFNGLGETACTIVEUNIFORMNAMEPROC GetActiveUniformName;
+ PFNGLGETACTIVEUNIFORMSIVPROC GetActiveUniformsiv;
+ PFNGLGETACTIVEVARYINGNVPROC GetActiveVaryingNV;
+ PFNGLGETARRAYOBJECTFVATIPROC GetArrayObjectfvATI;
+ PFNGLGETARRAYOBJECTIVATIPROC GetArrayObjectivATI;
+ PFNGLGETATTACHEDOBJECTSARBPROC GetAttachedObjectsARB;
+ PFNGLGETATTACHEDSHADERSPROC GetAttachedShaders;
+ PFNGLGETATTRIBLOCATIONPROC GetAttribLocation;
+ PFNGLGETATTRIBLOCATIONARBPROC GetAttribLocationARB;
+ PFNGLGETBOOLEANINDEXEDVEXTPROC GetBooleanIndexedvEXT;
+ PFNGLGETBOOLEANI_VPROC GetBooleani_v;
+ PFNGLGETBOOLEANVPROC GetBooleanv;
+ PFNGLGETBUFFERPARAMETERI64VPROC GetBufferParameteri64v;
+ PFNGLGETBUFFERPARAMETERIVPROC GetBufferParameteriv;
+ PFNGLGETBUFFERPARAMETERIVARBPROC GetBufferParameterivARB;
+ PFNGLGETBUFFERPARAMETERUI64VNVPROC GetBufferParameterui64vNV;
+ PFNGLGETBUFFERPOINTERVPROC GetBufferPointerv;
+ PFNGLGETBUFFERPOINTERVARBPROC GetBufferPointervARB;
+ PFNGLGETBUFFERSUBDATAPROC GetBufferSubData;
+ PFNGLGETBUFFERSUBDATAARBPROC GetBufferSubDataARB;
+ PFNGLGETCLIPPLANEFOESPROC GetClipPlanefOES;
+ PFNGLGETCLIPPLANEXOESPROC GetClipPlanexOES;
+ PFNGLGETCOLORTABLEEXTPROC GetColorTableEXT;
+ PFNGLGETCOLORTABLEPARAMETERFVEXTPROC GetColorTableParameterfvEXT;
+ PFNGLGETCOLORTABLEPARAMETERFVSGIPROC GetColorTableParameterfvSGI;
+ PFNGLGETCOLORTABLEPARAMETERIVEXTPROC GetColorTableParameterivEXT;
+ PFNGLGETCOLORTABLEPARAMETERIVSGIPROC GetColorTableParameterivSGI;
+ PFNGLGETCOLORTABLESGIPROC GetColorTableSGI;
+ PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC GetCombinerInputParameterfvNV;
+ PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC GetCombinerInputParameterivNV;
+ PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC GetCombinerOutputParameterfvNV;
+ PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC GetCombinerOutputParameterivNV;
+ PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC GetCombinerStageParameterfvNV;
+ PFNGLGETCOMMANDHEADERNVPROC GetCommandHeaderNV;
+ PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC GetCompressedMultiTexImageEXT;
+ PFNGLGETCOMPRESSEDTEXIMAGEPROC GetCompressedTexImage;
+ PFNGLGETCOMPRESSEDTEXIMAGEARBPROC GetCompressedTexImageARB;
+ PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC GetCompressedTextureImage;
+ PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC GetCompressedTextureImageEXT;
+ PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC GetCompressedTextureSubImage;
+ PFNGLGETCONVOLUTIONFILTEREXTPROC GetConvolutionFilterEXT;
+ PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC GetConvolutionParameterfvEXT;
+ PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC GetConvolutionParameterivEXT;
+ PFNGLGETCONVOLUTIONPARAMETERXVOESPROC GetConvolutionParameterxvOES;
+ PFNGLGETCOVERAGEMODULATIONTABLENVPROC GetCoverageModulationTableNV;
+ PFNGLGETDEBUGMESSAGELOGPROC GetDebugMessageLog;
+ PFNGLGETDEBUGMESSAGELOGAMDPROC GetDebugMessageLogAMD;
+ PFNGLGETDEBUGMESSAGELOGARBPROC GetDebugMessageLogARB;
+ PFNGLGETDETAILTEXFUNCSGISPROC GetDetailTexFuncSGIS;
+ PFNGLGETDOUBLEINDEXEDVEXTPROC GetDoubleIndexedvEXT;
+ PFNGLGETDOUBLEI_VPROC GetDoublei_v;
+ PFNGLGETDOUBLEI_VEXTPROC GetDoublei_vEXT;
+ PFNGLGETDOUBLEVPROC GetDoublev;
+ PFNGLGETERRORPROC GetError;
+ PFNGLGETFENCEIVNVPROC GetFenceivNV;
+ PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC GetFinalCombinerInputParameterfvNV;
+ PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC GetFinalCombinerInputParameterivNV;
+ PFNGLGETFIRSTPERFQUERYIDINTELPROC GetFirstPerfQueryIdINTEL;
+ PFNGLGETFIXEDVOESPROC GetFixedvOES;
+ PFNGLGETFLOATINDEXEDVEXTPROC GetFloatIndexedvEXT;
+ PFNGLGETFLOATI_VPROC GetFloati_v;
+ PFNGLGETFLOATI_VEXTPROC GetFloati_vEXT;
+ PFNGLGETFLOATVPROC GetFloatv;
+ PFNGLGETFOGFUNCSGISPROC GetFogFuncSGIS;
+ PFNGLGETFRAGDATAINDEXPROC GetFragDataIndex;
+ PFNGLGETFRAGDATALOCATIONPROC GetFragDataLocation;
+ PFNGLGETFRAGDATALOCATIONEXTPROC GetFragDataLocationEXT;
+ PFNGLGETFRAGMENTLIGHTFVSGIXPROC GetFragmentLightfvSGIX;
+ PFNGLGETFRAGMENTLIGHTIVSGIXPROC GetFragmentLightivSGIX;
+ PFNGLGETFRAGMENTMATERIALFVSGIXPROC GetFragmentMaterialfvSGIX;
+ PFNGLGETFRAGMENTMATERIALIVSGIXPROC GetFragmentMaterialivSGIX;
+ PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC GetFramebufferAttachmentParameteriv;
+ PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC GetFramebufferAttachmentParameterivEXT;
+ PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC GetFramebufferParameterfvAMD;
+ PFNGLGETFRAMEBUFFERPARAMETERIVPROC GetFramebufferParameteriv;
+ PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC GetFramebufferParameterivEXT;
+ PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC GetFramebufferParameterivMESA;
+ PFNGLGETGRAPHICSRESETSTATUSPROC GetGraphicsResetStatus;
+ PFNGLGETGRAPHICSRESETSTATUSARBPROC GetGraphicsResetStatusARB;
+ PFNGLGETHANDLEARBPROC GetHandleARB;
+ PFNGLGETHISTOGRAMEXTPROC GetHistogramEXT;
+ PFNGLGETHISTOGRAMPARAMETERFVEXTPROC GetHistogramParameterfvEXT;
+ PFNGLGETHISTOGRAMPARAMETERIVEXTPROC GetHistogramParameterivEXT;
+ PFNGLGETHISTOGRAMPARAMETERXVOESPROC GetHistogramParameterxvOES;
+ PFNGLGETIMAGEHANDLEARBPROC GetImageHandleARB;
+ PFNGLGETIMAGEHANDLENVPROC GetImageHandleNV;
+ PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC GetImageTransformParameterfvHP;
+ PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC GetImageTransformParameterivHP;
+ PFNGLGETINFOLOGARBPROC GetInfoLogARB;
+ PFNGLGETINSTRUMENTSSGIXPROC GetInstrumentsSGIX;
+ PFNGLGETINTEGER64I_VPROC GetInteger64i_v;
+ PFNGLGETINTEGER64VPROC GetInteger64v;
+ PFNGLGETINTEGERINDEXEDVEXTPROC GetIntegerIndexedvEXT;
+ PFNGLGETINTEGERI_VPROC GetIntegeri_v;
+ PFNGLGETINTEGERUI64I_VNVPROC GetIntegerui64i_vNV;
+ PFNGLGETINTEGERUI64VNVPROC GetIntegerui64vNV;
+ PFNGLGETINTEGERVPROC GetIntegerv;
+ PFNGLGETINTERNALFORMATSAMPLEIVNVPROC GetInternalformatSampleivNV;
+ PFNGLGETINTERNALFORMATI64VPROC GetInternalformati64v;
+ PFNGLGETINTERNALFORMATIVPROC GetInternalformativ;
+ PFNGLGETINVARIANTBOOLEANVEXTPROC GetInvariantBooleanvEXT;
+ PFNGLGETINVARIANTFLOATVEXTPROC GetInvariantFloatvEXT;
+ PFNGLGETINVARIANTINTEGERVEXTPROC GetInvariantIntegervEXT;
+ PFNGLGETLIGHTXOESPROC GetLightxOES;
+ PFNGLGETLISTPARAMETERFVSGIXPROC GetListParameterfvSGIX;
+ PFNGLGETLISTPARAMETERIVSGIXPROC GetListParameterivSGIX;
+ PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC GetLocalConstantBooleanvEXT;
+ PFNGLGETLOCALCONSTANTFLOATVEXTPROC GetLocalConstantFloatvEXT;
+ PFNGLGETLOCALCONSTANTINTEGERVEXTPROC GetLocalConstantIntegervEXT;
+ PFNGLGETMAPATTRIBPARAMETERFVNVPROC GetMapAttribParameterfvNV;
+ PFNGLGETMAPATTRIBPARAMETERIVNVPROC GetMapAttribParameterivNV;
+ PFNGLGETMAPCONTROLPOINTSNVPROC GetMapControlPointsNV;
+ PFNGLGETMAPPARAMETERFVNVPROC GetMapParameterfvNV;
+ PFNGLGETMAPPARAMETERIVNVPROC GetMapParameterivNV;
+ PFNGLGETMAPXVOESPROC GetMapxvOES;
+ PFNGLGETMATERIALXOESPROC GetMaterialxOES;
+ PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC GetMemoryObjectDetachedResourcesuivNV;
+ PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC GetMemoryObjectParameterivEXT;
+ PFNGLGETMINMAXEXTPROC GetMinmaxEXT;
+ PFNGLGETMINMAXPARAMETERFVEXTPROC GetMinmaxParameterfvEXT;
+ PFNGLGETMINMAXPARAMETERIVEXTPROC GetMinmaxParameterivEXT;
+ PFNGLGETMULTITEXENVFVEXTPROC GetMultiTexEnvfvEXT;
+ PFNGLGETMULTITEXENVIVEXTPROC GetMultiTexEnvivEXT;
+ PFNGLGETMULTITEXGENDVEXTPROC GetMultiTexGendvEXT;
+ PFNGLGETMULTITEXGENFVEXTPROC GetMultiTexGenfvEXT;
+ PFNGLGETMULTITEXGENIVEXTPROC GetMultiTexGenivEXT;
+ PFNGLGETMULTITEXIMAGEEXTPROC GetMultiTexImageEXT;
+ PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC GetMultiTexLevelParameterfvEXT;
+ PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC GetMultiTexLevelParameterivEXT;
+ PFNGLGETMULTITEXPARAMETERIIVEXTPROC GetMultiTexParameterIivEXT;
+ PFNGLGETMULTITEXPARAMETERIUIVEXTPROC GetMultiTexParameterIuivEXT;
+ PFNGLGETMULTITEXPARAMETERFVEXTPROC GetMultiTexParameterfvEXT;
+ PFNGLGETMULTITEXPARAMETERIVEXTPROC GetMultiTexParameterivEXT;
+ PFNGLGETMULTISAMPLEFVPROC GetMultisamplefv;
+ PFNGLGETMULTISAMPLEFVNVPROC GetMultisamplefvNV;
+ PFNGLGETNAMEDBUFFERPARAMETERI64VPROC GetNamedBufferParameteri64v;
+ PFNGLGETNAMEDBUFFERPARAMETERIVPROC GetNamedBufferParameteriv;
+ PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC GetNamedBufferParameterivEXT;
+ PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC GetNamedBufferParameterui64vNV;
+ PFNGLGETNAMEDBUFFERPOINTERVPROC GetNamedBufferPointerv;
+ PFNGLGETNAMEDBUFFERPOINTERVEXTPROC GetNamedBufferPointervEXT;
+ PFNGLGETNAMEDBUFFERSUBDATAPROC GetNamedBufferSubData;
+ PFNGLGETNAMEDBUFFERSUBDATAEXTPROC GetNamedBufferSubDataEXT;
+ PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC GetNamedFramebufferAttachmentParameteriv;
+ PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC
+ GetNamedFramebufferAttachmentParameterivEXT;
+ PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC GetNamedFramebufferParameterfvAMD;
+ PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC GetNamedFramebufferParameteriv;
+ PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC GetNamedFramebufferParameterivEXT;
+ PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC GetNamedProgramLocalParameterIivEXT;
+ PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC GetNamedProgramLocalParameterIuivEXT;
+ PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC GetNamedProgramLocalParameterdvEXT;
+ PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC GetNamedProgramLocalParameterfvEXT;
+ PFNGLGETNAMEDPROGRAMSTRINGEXTPROC GetNamedProgramStringEXT;
+ PFNGLGETNAMEDPROGRAMIVEXTPROC GetNamedProgramivEXT;
+ PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC GetNamedRenderbufferParameteriv;
+ PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC GetNamedRenderbufferParameterivEXT;
+ PFNGLGETNAMEDSTRINGARBPROC GetNamedStringARB;
+ PFNGLGETNAMEDSTRINGIVARBPROC GetNamedStringivARB;
+ PFNGLGETNEXTPERFQUERYIDINTELPROC GetNextPerfQueryIdINTEL;
+ PFNGLGETOBJECTBUFFERFVATIPROC GetObjectBufferfvATI;
+ PFNGLGETOBJECTBUFFERIVATIPROC GetObjectBufferivATI;
+ PFNGLGETOBJECTLABELPROC GetObjectLabel;
+ PFNGLGETOBJECTLABELEXTPROC GetObjectLabelEXT;
+ PFNGLGETOBJECTPARAMETERFVARBPROC GetObjectParameterfvARB;
+ PFNGLGETOBJECTPARAMETERIVAPPLEPROC GetObjectParameterivAPPLE;
+ PFNGLGETOBJECTPARAMETERIVARBPROC GetObjectParameterivARB;
+ PFNGLGETOBJECTPTRLABELPROC GetObjectPtrLabel;
+ PFNGLGETOCCLUSIONQUERYIVNVPROC GetOcclusionQueryivNV;
+ PFNGLGETOCCLUSIONQUERYUIVNVPROC GetOcclusionQueryuivNV;
+ PFNGLGETPATHCOMMANDSNVPROC GetPathCommandsNV;
+ PFNGLGETPATHCOORDSNVPROC GetPathCoordsNV;
+ PFNGLGETPATHDASHARRAYNVPROC GetPathDashArrayNV;
+ PFNGLGETPATHLENGTHNVPROC GetPathLengthNV;
+ PFNGLGETPATHMETRICRANGENVPROC GetPathMetricRangeNV;
+ PFNGLGETPATHMETRICSNVPROC GetPathMetricsNV;
+ PFNGLGETPATHPARAMETERFVNVPROC GetPathParameterfvNV;
+ PFNGLGETPATHPARAMETERIVNVPROC GetPathParameterivNV;
+ PFNGLGETPATHSPACINGNVPROC GetPathSpacingNV;
+ PFNGLGETPERFCOUNTERINFOINTELPROC GetPerfCounterInfoINTEL;
+ PFNGLGETPERFMONITORCOUNTERDATAAMDPROC GetPerfMonitorCounterDataAMD;
+ PFNGLGETPERFMONITORCOUNTERINFOAMDPROC GetPerfMonitorCounterInfoAMD;
+ PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC GetPerfMonitorCounterStringAMD;
+ PFNGLGETPERFMONITORCOUNTERSAMDPROC GetPerfMonitorCountersAMD;
+ PFNGLGETPERFMONITORGROUPSTRINGAMDPROC GetPerfMonitorGroupStringAMD;
+ PFNGLGETPERFMONITORGROUPSAMDPROC GetPerfMonitorGroupsAMD;
+ PFNGLGETPERFQUERYDATAINTELPROC GetPerfQueryDataINTEL;
+ PFNGLGETPERFQUERYIDBYNAMEINTELPROC GetPerfQueryIdByNameINTEL;
+ PFNGLGETPERFQUERYINFOINTELPROC GetPerfQueryInfoINTEL;
+ PFNGLGETPIXELMAPXVPROC GetPixelMapxv;
+ PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC GetPixelTexGenParameterfvSGIS;
+ PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC GetPixelTexGenParameterivSGIS;
+ PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC GetPixelTransformParameterfvEXT;
+ PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC GetPixelTransformParameterivEXT;
+ PFNGLGETPOINTERINDEXEDVEXTPROC GetPointerIndexedvEXT;
+ PFNGLGETPOINTERI_VEXTPROC GetPointeri_vEXT;
+ PFNGLGETPOINTERVPROC GetPointerv;
+ PFNGLGETPOINTERVEXTPROC GetPointervEXT;
+ PFNGLGETPROGRAMBINARYPROC GetProgramBinary;
+ PFNGLGETPROGRAMENVPARAMETERIIVNVPROC GetProgramEnvParameterIivNV;
+ PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC GetProgramEnvParameterIuivNV;
+ PFNGLGETPROGRAMENVPARAMETERDVARBPROC GetProgramEnvParameterdvARB;
+ PFNGLGETPROGRAMENVPARAMETERFVARBPROC GetProgramEnvParameterfvARB;
+ PFNGLGETPROGRAMINFOLOGPROC GetProgramInfoLog;
+ PFNGLGETPROGRAMINTERFACEIVPROC GetProgramInterfaceiv;
+ PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC GetProgramLocalParameterIivNV;
+ PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC GetProgramLocalParameterIuivNV;
+ PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC GetProgramLocalParameterdvARB;
+ PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC GetProgramLocalParameterfvARB;
+ PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC GetProgramNamedParameterdvNV;
+ PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC GetProgramNamedParameterfvNV;
+ PFNGLGETPROGRAMPARAMETERDVNVPROC GetProgramParameterdvNV;
+ PFNGLGETPROGRAMPARAMETERFVNVPROC GetProgramParameterfvNV;
+ PFNGLGETPROGRAMPIPELINEINFOLOGPROC GetProgramPipelineInfoLog;
+ PFNGLGETPROGRAMPIPELINEIVPROC GetProgramPipelineiv;
+ PFNGLGETPROGRAMRESOURCEINDEXPROC GetProgramResourceIndex;
+ PFNGLGETPROGRAMRESOURCELOCATIONPROC GetProgramResourceLocation;
+ PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC GetProgramResourceLocationIndex;
+ PFNGLGETPROGRAMRESOURCENAMEPROC GetProgramResourceName;
+ PFNGLGETPROGRAMRESOURCEFVNVPROC GetProgramResourcefvNV;
+ PFNGLGETPROGRAMRESOURCEIVPROC GetProgramResourceiv;
+ PFNGLGETPROGRAMSTAGEIVPROC GetProgramStageiv;
+ PFNGLGETPROGRAMSTRINGARBPROC GetProgramStringARB;
+ PFNGLGETPROGRAMSTRINGNVPROC GetProgramStringNV;
+ PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC GetProgramSubroutineParameteruivNV;
+ PFNGLGETPROGRAMIVPROC GetProgramiv;
+ PFNGLGETPROGRAMIVARBPROC GetProgramivARB;
+ PFNGLGETPROGRAMIVNVPROC GetProgramivNV;
+ PFNGLGETQUERYBUFFEROBJECTI64VPROC GetQueryBufferObjecti64v;
+ PFNGLGETQUERYBUFFEROBJECTIVPROC GetQueryBufferObjectiv;
+ PFNGLGETQUERYBUFFEROBJECTUI64VPROC GetQueryBufferObjectui64v;
+ PFNGLGETQUERYBUFFEROBJECTUIVPROC GetQueryBufferObjectuiv;
+ PFNGLGETQUERYINDEXEDIVPROC GetQueryIndexediv;
+ PFNGLGETQUERYOBJECTI64VPROC GetQueryObjecti64v;
+ PFNGLGETQUERYOBJECTI64VEXTPROC GetQueryObjecti64vEXT;
+ PFNGLGETQUERYOBJECTIVPROC GetQueryObjectiv;
+ PFNGLGETQUERYOBJECTIVARBPROC GetQueryObjectivARB;
+ PFNGLGETQUERYOBJECTUI64VPROC GetQueryObjectui64v;
+ PFNGLGETQUERYOBJECTUI64VEXTPROC GetQueryObjectui64vEXT;
+ PFNGLGETQUERYOBJECTUIVPROC GetQueryObjectuiv;
+ PFNGLGETQUERYOBJECTUIVARBPROC GetQueryObjectuivARB;
+ PFNGLGETQUERYIVPROC GetQueryiv;
+ PFNGLGETQUERYIVARBPROC GetQueryivARB;
+ PFNGLGETRENDERBUFFERPARAMETERIVPROC GetRenderbufferParameteriv;
+ PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC GetRenderbufferParameterivEXT;
+ PFNGLGETSAMPLERPARAMETERIIVPROC GetSamplerParameterIiv;
+ PFNGLGETSAMPLERPARAMETERIUIVPROC GetSamplerParameterIuiv;
+ PFNGLGETSAMPLERPARAMETERFVPROC GetSamplerParameterfv;
+ PFNGLGETSAMPLERPARAMETERIVPROC GetSamplerParameteriv;
+ PFNGLGETSEMAPHOREPARAMETERIVNVPROC GetSemaphoreParameterivNV;
+ PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC GetSemaphoreParameterui64vEXT;
+ PFNGLGETSEPARABLEFILTEREXTPROC GetSeparableFilterEXT;
+ PFNGLGETSHADERINFOLOGPROC GetShaderInfoLog;
+ PFNGLGETSHADERPRECISIONFORMATPROC GetShaderPrecisionFormat;
+ PFNGLGETSHADERSOURCEPROC GetShaderSource;
+ PFNGLGETSHADERSOURCEARBPROC GetShaderSourceARB;
+ PFNGLGETSHADERIVPROC GetShaderiv;
+ PFNGLGETSHADINGRATEIMAGEPALETTENVPROC GetShadingRateImagePaletteNV;
+ PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC GetShadingRateSampleLocationivNV;
+ PFNGLGETSHARPENTEXFUNCSGISPROC GetSharpenTexFuncSGIS;
+ PFNGLGETSTAGEINDEXNVPROC GetStageIndexNV;
+ PFNGLGETSTRINGPROC GetString;
+ PFNGLGETSTRINGIPROC GetStringi;
+ PFNGLGETSUBROUTINEINDEXPROC GetSubroutineIndex;
+ PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC GetSubroutineUniformLocation;
+ PFNGLGETSYNCIVPROC GetSynciv;
+ PFNGLGETTEXBUMPPARAMETERFVATIPROC GetTexBumpParameterfvATI;
+ PFNGLGETTEXBUMPPARAMETERIVATIPROC GetTexBumpParameterivATI;
+ PFNGLGETTEXENVXVOESPROC GetTexEnvxvOES;
+ PFNGLGETTEXFILTERFUNCSGISPROC GetTexFilterFuncSGIS;
+ PFNGLGETTEXGENXVOESPROC GetTexGenxvOES;
+ PFNGLGETTEXIMAGEPROC GetTexImage;
+ PFNGLGETTEXLEVELPARAMETERFVPROC GetTexLevelParameterfv;
+ PFNGLGETTEXLEVELPARAMETERIVPROC GetTexLevelParameteriv;
+ PFNGLGETTEXLEVELPARAMETERXVOESPROC GetTexLevelParameterxvOES;
+ PFNGLGETTEXPARAMETERIIVPROC GetTexParameterIiv;
+ PFNGLGETTEXPARAMETERIIVEXTPROC GetTexParameterIivEXT;
+ PFNGLGETTEXPARAMETERIUIVPROC GetTexParameterIuiv;
+ PFNGLGETTEXPARAMETERIUIVEXTPROC GetTexParameterIuivEXT;
+ PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC GetTexParameterPointervAPPLE;
+ PFNGLGETTEXPARAMETERFVPROC GetTexParameterfv;
+ PFNGLGETTEXPARAMETERIVPROC GetTexParameteriv;
+ PFNGLGETTEXPARAMETERXVOESPROC GetTexParameterxvOES;
+ PFNGLGETTEXTUREHANDLEARBPROC GetTextureHandleARB;
+ PFNGLGETTEXTUREHANDLENVPROC GetTextureHandleNV;
+ PFNGLGETTEXTUREIMAGEPROC GetTextureImage;
+ PFNGLGETTEXTUREIMAGEEXTPROC GetTextureImageEXT;
+ PFNGLGETTEXTURELEVELPARAMETERFVPROC GetTextureLevelParameterfv;
+ PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC GetTextureLevelParameterfvEXT;
+ PFNGLGETTEXTURELEVELPARAMETERIVPROC GetTextureLevelParameteriv;
+ PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC GetTextureLevelParameterivEXT;
+ PFNGLGETTEXTUREPARAMETERIIVPROC GetTextureParameterIiv;
+ PFNGLGETTEXTUREPARAMETERIIVEXTPROC GetTextureParameterIivEXT;
+ PFNGLGETTEXTUREPARAMETERIUIVPROC GetTextureParameterIuiv;
+ PFNGLGETTEXTUREPARAMETERIUIVEXTPROC GetTextureParameterIuivEXT;
+ PFNGLGETTEXTUREPARAMETERFVPROC GetTextureParameterfv;
+ PFNGLGETTEXTUREPARAMETERFVEXTPROC GetTextureParameterfvEXT;
+ PFNGLGETTEXTUREPARAMETERIVPROC GetTextureParameteriv;
+ PFNGLGETTEXTUREPARAMETERIVEXTPROC GetTextureParameterivEXT;
+ PFNGLGETTEXTURESAMPLERHANDLEARBPROC GetTextureSamplerHandleARB;
+ PFNGLGETTEXTURESAMPLERHANDLENVPROC GetTextureSamplerHandleNV;
+ PFNGLGETTEXTURESUBIMAGEPROC GetTextureSubImage;
+ PFNGLGETTRACKMATRIXIVNVPROC GetTrackMatrixivNV;
+ PFNGLGETTRANSFORMFEEDBACKVARYINGPROC GetTransformFeedbackVarying;
+ PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC GetTransformFeedbackVaryingEXT;
+ PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC GetTransformFeedbackVaryingNV;
+ PFNGLGETTRANSFORMFEEDBACKI64_VPROC GetTransformFeedbacki64_v;
+ PFNGLGETTRANSFORMFEEDBACKI_VPROC GetTransformFeedbacki_v;
+ PFNGLGETTRANSFORMFEEDBACKIVPROC GetTransformFeedbackiv;
+ PFNGLGETUNIFORMBLOCKINDEXPROC GetUniformBlockIndex;
+ PFNGLGETUNIFORMBUFFERSIZEEXTPROC GetUniformBufferSizeEXT;
+ PFNGLGETUNIFORMINDICESPROC GetUniformIndices;
+ PFNGLGETUNIFORMLOCATIONPROC GetUniformLocation;
+ PFNGLGETUNIFORMLOCATIONARBPROC GetUniformLocationARB;
+ PFNGLGETUNIFORMOFFSETEXTPROC GetUniformOffsetEXT;
+ PFNGLGETUNIFORMSUBROUTINEUIVPROC GetUniformSubroutineuiv;
+ PFNGLGETUNIFORMDVPROC GetUniformdv;
+ PFNGLGETUNIFORMFVPROC GetUniformfv;
+ PFNGLGETUNIFORMFVARBPROC GetUniformfvARB;
+ PFNGLGETUNIFORMI64VARBPROC GetUniformi64vARB;
+ PFNGLGETUNIFORMI64VNVPROC GetUniformi64vNV;
+ PFNGLGETUNIFORMIVPROC GetUniformiv;
+ PFNGLGETUNIFORMIVARBPROC GetUniformivARB;
+ PFNGLGETUNIFORMUI64VARBPROC GetUniformui64vARB;
+ PFNGLGETUNIFORMUI64VNVPROC GetUniformui64vNV;
+ PFNGLGETUNIFORMUIVPROC GetUniformuiv;
+ PFNGLGETUNIFORMUIVEXTPROC GetUniformuivEXT;
+ PFNGLGETUNSIGNEDBYTEI_VEXTPROC GetUnsignedBytei_vEXT;
+ PFNGLGETUNSIGNEDBYTEVEXTPROC GetUnsignedBytevEXT;
+ PFNGLGETVARIANTARRAYOBJECTFVATIPROC GetVariantArrayObjectfvATI;
+ PFNGLGETVARIANTARRAYOBJECTIVATIPROC GetVariantArrayObjectivATI;
+ PFNGLGETVARIANTBOOLEANVEXTPROC GetVariantBooleanvEXT;
+ PFNGLGETVARIANTFLOATVEXTPROC GetVariantFloatvEXT;
+ PFNGLGETVARIANTINTEGERVEXTPROC GetVariantIntegervEXT;
+ PFNGLGETVARIANTPOINTERVEXTPROC GetVariantPointervEXT;
+ PFNGLGETVARYINGLOCATIONNVPROC GetVaryingLocationNV;
+ PFNGLGETVERTEXARRAYINDEXED64IVPROC GetVertexArrayIndexed64iv;
+ PFNGLGETVERTEXARRAYINDEXEDIVPROC GetVertexArrayIndexediv;
+ PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC GetVertexArrayIntegeri_vEXT;
+ PFNGLGETVERTEXARRAYINTEGERVEXTPROC GetVertexArrayIntegervEXT;
+ PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC GetVertexArrayPointeri_vEXT;
+ PFNGLGETVERTEXARRAYPOINTERVEXTPROC GetVertexArrayPointervEXT;
+ PFNGLGETVERTEXARRAYIVPROC GetVertexArrayiv;
+ PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC GetVertexAttribArrayObjectfvATI;
+ PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC GetVertexAttribArrayObjectivATI;
+ PFNGLGETVERTEXATTRIBIIVPROC GetVertexAttribIiv;
+ PFNGLGETVERTEXATTRIBIIVEXTPROC GetVertexAttribIivEXT;
+ PFNGLGETVERTEXATTRIBIUIVPROC GetVertexAttribIuiv;
+ PFNGLGETVERTEXATTRIBIUIVEXTPROC GetVertexAttribIuivEXT;
+ PFNGLGETVERTEXATTRIBLDVPROC GetVertexAttribLdv;
+ PFNGLGETVERTEXATTRIBLDVEXTPROC GetVertexAttribLdvEXT;
+ PFNGLGETVERTEXATTRIBLI64VNVPROC GetVertexAttribLi64vNV;
+ PFNGLGETVERTEXATTRIBLUI64VARBPROC GetVertexAttribLui64vARB;
+ PFNGLGETVERTEXATTRIBLUI64VNVPROC GetVertexAttribLui64vNV;
+ PFNGLGETVERTEXATTRIBPOINTERVPROC GetVertexAttribPointerv;
+ PFNGLGETVERTEXATTRIBPOINTERVARBPROC GetVertexAttribPointervARB;
+ PFNGLGETVERTEXATTRIBPOINTERVNVPROC GetVertexAttribPointervNV;
+ PFNGLGETVERTEXATTRIBDVPROC GetVertexAttribdv;
+ PFNGLGETVERTEXATTRIBDVARBPROC GetVertexAttribdvARB;
+ PFNGLGETVERTEXATTRIBDVNVPROC GetVertexAttribdvNV;
+ PFNGLGETVERTEXATTRIBFVPROC GetVertexAttribfv;
+ PFNGLGETVERTEXATTRIBFVARBPROC GetVertexAttribfvARB;
+ PFNGLGETVERTEXATTRIBFVNVPROC GetVertexAttribfvNV;
+ PFNGLGETVERTEXATTRIBIVPROC GetVertexAttribiv;
+ PFNGLGETVERTEXATTRIBIVARBPROC GetVertexAttribivARB;
+ PFNGLGETVERTEXATTRIBIVNVPROC GetVertexAttribivNV;
+ PFNGLGETVIDEOCAPTURESTREAMDVNVPROC GetVideoCaptureStreamdvNV;
+ PFNGLGETVIDEOCAPTURESTREAMFVNVPROC GetVideoCaptureStreamfvNV;
+ PFNGLGETVIDEOCAPTURESTREAMIVNVPROC GetVideoCaptureStreamivNV;
+ PFNGLGETVIDEOCAPTUREIVNVPROC GetVideoCaptureivNV;
+ PFNGLGETVIDEOI64VNVPROC GetVideoi64vNV;
+ PFNGLGETVIDEOIVNVPROC GetVideoivNV;
+ PFNGLGETVIDEOUI64VNVPROC GetVideoui64vNV;
+ PFNGLGETVIDEOUIVNVPROC GetVideouivNV;
+ PFNGLGETVKPROCADDRNVPROC GetVkProcAddrNV;
+ PFNGLGETNCOMPRESSEDTEXIMAGEPROC GetnCompressedTexImage;
+ PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC GetnCompressedTexImageARB;
+ PFNGLGETNTEXIMAGEPROC GetnTexImage;
+ PFNGLGETNTEXIMAGEARBPROC GetnTexImageARB;
+ PFNGLGETNUNIFORMDVPROC GetnUniformdv;
+ PFNGLGETNUNIFORMDVARBPROC GetnUniformdvARB;
+ PFNGLGETNUNIFORMFVPROC GetnUniformfv;
+ PFNGLGETNUNIFORMFVARBPROC GetnUniformfvARB;
+ PFNGLGETNUNIFORMI64VARBPROC GetnUniformi64vARB;
+ PFNGLGETNUNIFORMIVPROC GetnUniformiv;
+ PFNGLGETNUNIFORMIVARBPROC GetnUniformivARB;
+ PFNGLGETNUNIFORMUI64VARBPROC GetnUniformui64vARB;
+ PFNGLGETNUNIFORMUIVPROC GetnUniformuiv;
+ PFNGLGETNUNIFORMUIVARBPROC GetnUniformuivARB;
+ PFNGLGLOBALALPHAFACTORBSUNPROC GlobalAlphaFactorbSUN;
+ PFNGLGLOBALALPHAFACTORDSUNPROC GlobalAlphaFactordSUN;
+ PFNGLGLOBALALPHAFACTORFSUNPROC GlobalAlphaFactorfSUN;
+ PFNGLGLOBALALPHAFACTORISUNPROC GlobalAlphaFactoriSUN;
+ PFNGLGLOBALALPHAFACTORSSUNPROC GlobalAlphaFactorsSUN;
+ PFNGLGLOBALALPHAFACTORUBSUNPROC GlobalAlphaFactorubSUN;
+ PFNGLGLOBALALPHAFACTORUISUNPROC GlobalAlphaFactoruiSUN;
+ PFNGLGLOBALALPHAFACTORUSSUNPROC GlobalAlphaFactorusSUN;
+ PFNGLHINTPROC Hint;
+ PFNGLHINTPGIPROC HintPGI;
+ PFNGLHISTOGRAMEXTPROC HistogramEXT;
+ PFNGLIGLOOINTERFACESGIXPROC IglooInterfaceSGIX;
+ PFNGLIMAGETRANSFORMPARAMETERFHPPROC ImageTransformParameterfHP;
+ PFNGLIMAGETRANSFORMPARAMETERFVHPPROC ImageTransformParameterfvHP;
+ PFNGLIMAGETRANSFORMPARAMETERIHPPROC ImageTransformParameteriHP;
+ PFNGLIMAGETRANSFORMPARAMETERIVHPPROC ImageTransformParameterivHP;
+ PFNGLIMPORTMEMORYFDEXTPROC ImportMemoryFdEXT;
+ PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC ImportMemoryWin32HandleEXT;
+ PFNGLIMPORTMEMORYWIN32NAMEEXTPROC ImportMemoryWin32NameEXT;
+ PFNGLIMPORTSEMAPHOREFDEXTPROC ImportSemaphoreFdEXT;
+ PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC ImportSemaphoreWin32HandleEXT;
+ PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC ImportSemaphoreWin32NameEXT;
+ PFNGLIMPORTSYNCEXTPROC ImportSyncEXT;
+ PFNGLINDEXFORMATNVPROC IndexFormatNV;
+ PFNGLINDEXFUNCEXTPROC IndexFuncEXT;
+ PFNGLINDEXMATERIALEXTPROC IndexMaterialEXT;
+ PFNGLINDEXPOINTEREXTPROC IndexPointerEXT;
+ PFNGLINDEXPOINTERLISTIBMPROC IndexPointerListIBM;
+ PFNGLINDEXXOESPROC IndexxOES;
+ PFNGLINDEXXVOESPROC IndexxvOES;
+ PFNGLINSERTCOMPONENTEXTPROC InsertComponentEXT;
+ PFNGLINSERTEVENTMARKEREXTPROC InsertEventMarkerEXT;
+ PFNGLINSTRUMENTSBUFFERSGIXPROC InstrumentsBufferSGIX;
+ PFNGLINTERPOLATEPATHSNVPROC InterpolatePathsNV;
+ PFNGLINVALIDATEBUFFERDATAPROC InvalidateBufferData;
+ PFNGLINVALIDATEBUFFERSUBDATAPROC InvalidateBufferSubData;
+ PFNGLINVALIDATEFRAMEBUFFERPROC InvalidateFramebuffer;
+ PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC InvalidateNamedFramebufferData;
+ PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC InvalidateNamedFramebufferSubData;
+ PFNGLINVALIDATESUBFRAMEBUFFERPROC InvalidateSubFramebuffer;
+ PFNGLINVALIDATETEXIMAGEPROC InvalidateTexImage;
+ PFNGLINVALIDATETEXSUBIMAGEPROC InvalidateTexSubImage;
+ PFNGLISASYNCMARKERSGIXPROC IsAsyncMarkerSGIX;
+ PFNGLISBUFFERPROC IsBuffer;
+ PFNGLISBUFFERARBPROC IsBufferARB;
+ PFNGLISBUFFERRESIDENTNVPROC IsBufferResidentNV;
+ PFNGLISCOMMANDLISTNVPROC IsCommandListNV;
+ PFNGLISENABLEDPROC IsEnabled;
+ PFNGLISENABLEDINDEXEDEXTPROC IsEnabledIndexedEXT;
+ PFNGLISENABLEDIPROC IsEnabledi;
+ PFNGLISFENCEAPPLEPROC IsFenceAPPLE;
+ PFNGLISFENCENVPROC IsFenceNV;
+ PFNGLISFRAMEBUFFERPROC IsFramebuffer;
+ PFNGLISFRAMEBUFFEREXTPROC IsFramebufferEXT;
+ PFNGLISIMAGEHANDLERESIDENTARBPROC IsImageHandleResidentARB;
+ PFNGLISIMAGEHANDLERESIDENTNVPROC IsImageHandleResidentNV;
+ PFNGLISMEMORYOBJECTEXTPROC IsMemoryObjectEXT;
+ PFNGLISNAMEAMDPROC IsNameAMD;
+ PFNGLISNAMEDBUFFERRESIDENTNVPROC IsNamedBufferResidentNV;
+ PFNGLISNAMEDSTRINGARBPROC IsNamedStringARB;
+ PFNGLISOBJECTBUFFERATIPROC IsObjectBufferATI;
+ PFNGLISOCCLUSIONQUERYNVPROC IsOcclusionQueryNV;
+ PFNGLISPATHNVPROC IsPathNV;
+ PFNGLISPOINTINFILLPATHNVPROC IsPointInFillPathNV;
+ PFNGLISPOINTINSTROKEPATHNVPROC IsPointInStrokePathNV;
+ PFNGLISPROGRAMPROC IsProgram;
+ PFNGLISPROGRAMARBPROC IsProgramARB;
+ PFNGLISPROGRAMNVPROC IsProgramNV;
+ PFNGLISPROGRAMPIPELINEPROC IsProgramPipeline;
+ PFNGLISQUERYPROC IsQuery;
+ PFNGLISQUERYARBPROC IsQueryARB;
+ PFNGLISRENDERBUFFERPROC IsRenderbuffer;
+ PFNGLISRENDERBUFFEREXTPROC IsRenderbufferEXT;
+ PFNGLISSAMPLERPROC IsSampler;
+ PFNGLISSEMAPHOREEXTPROC IsSemaphoreEXT;
+ PFNGLISSHADERPROC IsShader;
+ PFNGLISSTATENVPROC IsStateNV;
+ PFNGLISSYNCPROC IsSync;
+ PFNGLISTEXTUREPROC IsTexture;
+ PFNGLISTEXTUREEXTPROC IsTextureEXT;
+ PFNGLISTEXTUREHANDLERESIDENTARBPROC IsTextureHandleResidentARB;
+ PFNGLISTEXTUREHANDLERESIDENTNVPROC IsTextureHandleResidentNV;
+ PFNGLISTRANSFORMFEEDBACKPROC IsTransformFeedback;
+ PFNGLISTRANSFORMFEEDBACKNVPROC IsTransformFeedbackNV;
+ PFNGLISVARIANTENABLEDEXTPROC IsVariantEnabledEXT;
+ PFNGLISVERTEXARRAYPROC IsVertexArray;
+ PFNGLISVERTEXARRAYAPPLEPROC IsVertexArrayAPPLE;
+ PFNGLISVERTEXATTRIBENABLEDAPPLEPROC IsVertexAttribEnabledAPPLE;
+ PFNGLLGPUCOPYIMAGESUBDATANVXPROC LGPUCopyImageSubDataNVX;
+ PFNGLLGPUINTERLOCKNVXPROC LGPUInterlockNVX;
+ PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC LGPUNamedBufferSubDataNVX;
+ PFNGLLABELOBJECTEXTPROC LabelObjectEXT;
+ PFNGLLIGHTENVISGIXPROC LightEnviSGIX;
+ PFNGLLIGHTMODELXOESPROC LightModelxOES;
+ PFNGLLIGHTMODELXVOESPROC LightModelxvOES;
+ PFNGLLIGHTXOESPROC LightxOES;
+ PFNGLLIGHTXVOESPROC LightxvOES;
+ PFNGLLINEWIDTHPROC LineWidth;
+ PFNGLLINEWIDTHXOESPROC LineWidthxOES;
+ PFNGLLINKPROGRAMPROC LinkProgram;
+ PFNGLLINKPROGRAMARBPROC LinkProgramARB;
+ PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC ListDrawCommandsStatesClientNV;
+ PFNGLLISTPARAMETERFSGIXPROC ListParameterfSGIX;
+ PFNGLLISTPARAMETERFVSGIXPROC ListParameterfvSGIX;
+ PFNGLLISTPARAMETERISGIXPROC ListParameteriSGIX;
+ PFNGLLISTPARAMETERIVSGIXPROC ListParameterivSGIX;
+ PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC LoadIdentityDeformationMapSGIX;
+ PFNGLLOADMATRIXXOESPROC LoadMatrixxOES;
+ PFNGLLOADPROGRAMNVPROC LoadProgramNV;
+ PFNGLLOADTRANSPOSEMATRIXDARBPROC LoadTransposeMatrixdARB;
+ PFNGLLOADTRANSPOSEMATRIXFARBPROC LoadTransposeMatrixfARB;
+ PFNGLLOADTRANSPOSEMATRIXXOESPROC LoadTransposeMatrixxOES;
+ PFNGLLOCKARRAYSEXTPROC LockArraysEXT;
+ PFNGLLOGICOPPROC LogicOp;
+ PFNGLMAKEBUFFERNONRESIDENTNVPROC MakeBufferNonResidentNV;
+ PFNGLMAKEBUFFERRESIDENTNVPROC MakeBufferResidentNV;
+ PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC MakeImageHandleNonResidentARB;
+ PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC MakeImageHandleNonResidentNV;
+ PFNGLMAKEIMAGEHANDLERESIDENTARBPROC MakeImageHandleResidentARB;
+ PFNGLMAKEIMAGEHANDLERESIDENTNVPROC MakeImageHandleResidentNV;
+ PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC MakeNamedBufferNonResidentNV;
+ PFNGLMAKENAMEDBUFFERRESIDENTNVPROC MakeNamedBufferResidentNV;
+ PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC MakeTextureHandleNonResidentARB;
+ PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC MakeTextureHandleNonResidentNV;
+ PFNGLMAKETEXTUREHANDLERESIDENTARBPROC MakeTextureHandleResidentARB;
+ PFNGLMAKETEXTUREHANDLERESIDENTNVPROC MakeTextureHandleResidentNV;
+ PFNGLMAP1XOESPROC Map1xOES;
+ PFNGLMAP2XOESPROC Map2xOES;
+ PFNGLMAPBUFFERPROC MapBuffer;
+ PFNGLMAPBUFFERARBPROC MapBufferARB;
+ PFNGLMAPBUFFERRANGEPROC MapBufferRange;
+ PFNGLMAPCONTROLPOINTSNVPROC MapControlPointsNV;
+ PFNGLMAPGRID1XOESPROC MapGrid1xOES;
+ PFNGLMAPGRID2XOESPROC MapGrid2xOES;
+ PFNGLMAPNAMEDBUFFERPROC MapNamedBuffer;
+ PFNGLMAPNAMEDBUFFEREXTPROC MapNamedBufferEXT;
+ PFNGLMAPNAMEDBUFFERRANGEPROC MapNamedBufferRange;
+ PFNGLMAPNAMEDBUFFERRANGEEXTPROC MapNamedBufferRangeEXT;
+ PFNGLMAPOBJECTBUFFERATIPROC MapObjectBufferATI;
+ PFNGLMAPPARAMETERFVNVPROC MapParameterfvNV;
+ PFNGLMAPPARAMETERIVNVPROC MapParameterivNV;
+ PFNGLMAPTEXTURE2DINTELPROC MapTexture2DINTEL;
+ PFNGLMAPVERTEXATTRIB1DAPPLEPROC MapVertexAttrib1dAPPLE;
+ PFNGLMAPVERTEXATTRIB1FAPPLEPROC MapVertexAttrib1fAPPLE;
+ PFNGLMAPVERTEXATTRIB2DAPPLEPROC MapVertexAttrib2dAPPLE;
+ PFNGLMAPVERTEXATTRIB2FAPPLEPROC MapVertexAttrib2fAPPLE;
+ PFNGLMATERIALXOESPROC MaterialxOES;
+ PFNGLMATERIALXVOESPROC MaterialxvOES;
+ PFNGLMATRIXFRUSTUMEXTPROC MatrixFrustumEXT;
+ PFNGLMATRIXINDEXPOINTERARBPROC MatrixIndexPointerARB;
+ PFNGLMATRIXINDEXUBVARBPROC MatrixIndexubvARB;
+ PFNGLMATRIXINDEXUIVARBPROC MatrixIndexuivARB;
+ PFNGLMATRIXINDEXUSVARBPROC MatrixIndexusvARB;
+ PFNGLMATRIXLOAD3X2FNVPROC MatrixLoad3x2fNV;
+ PFNGLMATRIXLOAD3X3FNVPROC MatrixLoad3x3fNV;
+ PFNGLMATRIXLOADIDENTITYEXTPROC MatrixLoadIdentityEXT;
+ PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC MatrixLoadTranspose3x3fNV;
+ PFNGLMATRIXLOADTRANSPOSEDEXTPROC MatrixLoadTransposedEXT;
+ PFNGLMATRIXLOADTRANSPOSEFEXTPROC MatrixLoadTransposefEXT;
+ PFNGLMATRIXLOADDEXTPROC MatrixLoaddEXT;
+ PFNGLMATRIXLOADFEXTPROC MatrixLoadfEXT;
+ PFNGLMATRIXMULT3X2FNVPROC MatrixMult3x2fNV;
+ PFNGLMATRIXMULT3X3FNVPROC MatrixMult3x3fNV;
+ PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC MatrixMultTranspose3x3fNV;
+ PFNGLMATRIXMULTTRANSPOSEDEXTPROC MatrixMultTransposedEXT;
+ PFNGLMATRIXMULTTRANSPOSEFEXTPROC MatrixMultTransposefEXT;
+ PFNGLMATRIXMULTDEXTPROC MatrixMultdEXT;
+ PFNGLMATRIXMULTFEXTPROC MatrixMultfEXT;
+ PFNGLMATRIXORTHOEXTPROC MatrixOrthoEXT;
+ PFNGLMATRIXPOPEXTPROC MatrixPopEXT;
+ PFNGLMATRIXPUSHEXTPROC MatrixPushEXT;
+ PFNGLMATRIXROTATEDEXTPROC MatrixRotatedEXT;
+ PFNGLMATRIXROTATEFEXTPROC MatrixRotatefEXT;
+ PFNGLMATRIXSCALEDEXTPROC MatrixScaledEXT;
+ PFNGLMATRIXSCALEFEXTPROC MatrixScalefEXT;
+ PFNGLMATRIXTRANSLATEDEXTPROC MatrixTranslatedEXT;
+ PFNGLMATRIXTRANSLATEFEXTPROC MatrixTranslatefEXT;
+ PFNGLMAXSHADERCOMPILERTHREADSARBPROC MaxShaderCompilerThreadsARB;
+ PFNGLMAXSHADERCOMPILERTHREADSKHRPROC MaxShaderCompilerThreadsKHR;
+ PFNGLMEMORYBARRIERPROC MemoryBarrier;
+ PFNGLMEMORYBARRIERBYREGIONPROC MemoryBarrierByRegion;
+ PFNGLMEMORYBARRIEREXTPROC MemoryBarrierEXT;
+ PFNGLMEMORYOBJECTPARAMETERIVEXTPROC MemoryObjectParameterivEXT;
+ PFNGLMINSAMPLESHADINGPROC MinSampleShading;
+ PFNGLMINSAMPLESHADINGARBPROC MinSampleShadingARB;
+ PFNGLMINMAXEXTPROC MinmaxEXT;
+ PFNGLMULTMATRIXXOESPROC MultMatrixxOES;
+ PFNGLMULTTRANSPOSEMATRIXDARBPROC MultTransposeMatrixdARB;
+ PFNGLMULTTRANSPOSEMATRIXFARBPROC MultTransposeMatrixfARB;
+ PFNGLMULTTRANSPOSEMATRIXXOESPROC MultTransposeMatrixxOES;
+ PFNGLMULTIDRAWARRAYSPROC MultiDrawArrays;
+ PFNGLMULTIDRAWARRAYSEXTPROC MultiDrawArraysEXT;
+ PFNGLMULTIDRAWARRAYSINDIRECTPROC MultiDrawArraysIndirect;
+ PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC MultiDrawArraysIndirectAMD;
+ PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC MultiDrawArraysIndirectBindlessCountNV;
+ PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC MultiDrawArraysIndirectBindlessNV;
+ PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC MultiDrawArraysIndirectCount;
+ PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC MultiDrawArraysIndirectCountARB;
+ PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC MultiDrawElementArrayAPPLE;
+ PFNGLMULTIDRAWELEMENTSPROC MultiDrawElements;
+ PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC MultiDrawElementsBaseVertex;
+ PFNGLMULTIDRAWELEMENTSEXTPROC MultiDrawElementsEXT;
+ PFNGLMULTIDRAWELEMENTSINDIRECTPROC MultiDrawElementsIndirect;
+ PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC MultiDrawElementsIndirectAMD;
+ PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC MultiDrawElementsIndirectBindlessCountNV;
+ PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC MultiDrawElementsIndirectBindlessNV;
+ PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC MultiDrawElementsIndirectCount;
+ PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC MultiDrawElementsIndirectCountARB;
+ PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC MultiDrawMeshTasksIndirectCountNV;
+ PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC MultiDrawMeshTasksIndirectNV;
+ PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC MultiDrawRangeElementArrayAPPLE;
+ PFNGLMULTIMODEDRAWARRAYSIBMPROC MultiModeDrawArraysIBM;
+ PFNGLMULTIMODEDRAWELEMENTSIBMPROC MultiModeDrawElementsIBM;
+ PFNGLMULTITEXBUFFEREXTPROC MultiTexBufferEXT;
+ PFNGLMULTITEXCOORD1BOESPROC MultiTexCoord1bOES;
+ PFNGLMULTITEXCOORD1BVOESPROC MultiTexCoord1bvOES;
+ PFNGLMULTITEXCOORD1DARBPROC MultiTexCoord1dARB;
+ PFNGLMULTITEXCOORD1DVARBPROC MultiTexCoord1dvARB;
+ PFNGLMULTITEXCOORD1FARBPROC MultiTexCoord1fARB;
+ PFNGLMULTITEXCOORD1FVARBPROC MultiTexCoord1fvARB;
+ PFNGLMULTITEXCOORD1HNVPROC MultiTexCoord1hNV;
+ PFNGLMULTITEXCOORD1HVNVPROC MultiTexCoord1hvNV;
+ PFNGLMULTITEXCOORD1IARBPROC MultiTexCoord1iARB;
+ PFNGLMULTITEXCOORD1IVARBPROC MultiTexCoord1ivARB;
+ PFNGLMULTITEXCOORD1SARBPROC MultiTexCoord1sARB;
+ PFNGLMULTITEXCOORD1SVARBPROC MultiTexCoord1svARB;
+ PFNGLMULTITEXCOORD1XOESPROC MultiTexCoord1xOES;
+ PFNGLMULTITEXCOORD1XVOESPROC MultiTexCoord1xvOES;
+ PFNGLMULTITEXCOORD2BOESPROC MultiTexCoord2bOES;
+ PFNGLMULTITEXCOORD2BVOESPROC MultiTexCoord2bvOES;
+ PFNGLMULTITEXCOORD2DARBPROC MultiTexCoord2dARB;
+ PFNGLMULTITEXCOORD2DVARBPROC MultiTexCoord2dvARB;
+ PFNGLMULTITEXCOORD2FARBPROC MultiTexCoord2fARB;
+ PFNGLMULTITEXCOORD2FVARBPROC MultiTexCoord2fvARB;
+ PFNGLMULTITEXCOORD2HNVPROC MultiTexCoord2hNV;
+ PFNGLMULTITEXCOORD2HVNVPROC MultiTexCoord2hvNV;
+ PFNGLMULTITEXCOORD2IARBPROC MultiTexCoord2iARB;
+ PFNGLMULTITEXCOORD2IVARBPROC MultiTexCoord2ivARB;
+ PFNGLMULTITEXCOORD2SARBPROC MultiTexCoord2sARB;
+ PFNGLMULTITEXCOORD2SVARBPROC MultiTexCoord2svARB;
+ PFNGLMULTITEXCOORD2XOESPROC MultiTexCoord2xOES;
+ PFNGLMULTITEXCOORD2XVOESPROC MultiTexCoord2xvOES;
+ PFNGLMULTITEXCOORD3BOESPROC MultiTexCoord3bOES;
+ PFNGLMULTITEXCOORD3BVOESPROC MultiTexCoord3bvOES;
+ PFNGLMULTITEXCOORD3DARBPROC MultiTexCoord3dARB;
+ PFNGLMULTITEXCOORD3DVARBPROC MultiTexCoord3dvARB;
+ PFNGLMULTITEXCOORD3FARBPROC MultiTexCoord3fARB;
+ PFNGLMULTITEXCOORD3FVARBPROC MultiTexCoord3fvARB;
+ PFNGLMULTITEXCOORD3HNVPROC MultiTexCoord3hNV;
+ PFNGLMULTITEXCOORD3HVNVPROC MultiTexCoord3hvNV;
+ PFNGLMULTITEXCOORD3IARBPROC MultiTexCoord3iARB;
+ PFNGLMULTITEXCOORD3IVARBPROC MultiTexCoord3ivARB;
+ PFNGLMULTITEXCOORD3SARBPROC MultiTexCoord3sARB;
+ PFNGLMULTITEXCOORD3SVARBPROC MultiTexCoord3svARB;
+ PFNGLMULTITEXCOORD3XOESPROC MultiTexCoord3xOES;
+ PFNGLMULTITEXCOORD3XVOESPROC MultiTexCoord3xvOES;
+ PFNGLMULTITEXCOORD4BOESPROC MultiTexCoord4bOES;
+ PFNGLMULTITEXCOORD4BVOESPROC MultiTexCoord4bvOES;
+ PFNGLMULTITEXCOORD4DARBPROC MultiTexCoord4dARB;
+ PFNGLMULTITEXCOORD4DVARBPROC MultiTexCoord4dvARB;
+ PFNGLMULTITEXCOORD4FARBPROC MultiTexCoord4fARB;
+ PFNGLMULTITEXCOORD4FVARBPROC MultiTexCoord4fvARB;
+ PFNGLMULTITEXCOORD4HNVPROC MultiTexCoord4hNV;
+ PFNGLMULTITEXCOORD4HVNVPROC MultiTexCoord4hvNV;
+ PFNGLMULTITEXCOORD4IARBPROC MultiTexCoord4iARB;
+ PFNGLMULTITEXCOORD4IVARBPROC MultiTexCoord4ivARB;
+ PFNGLMULTITEXCOORD4SARBPROC MultiTexCoord4sARB;
+ PFNGLMULTITEXCOORD4SVARBPROC MultiTexCoord4svARB;
+ PFNGLMULTITEXCOORD4XOESPROC MultiTexCoord4xOES;
+ PFNGLMULTITEXCOORD4XVOESPROC MultiTexCoord4xvOES;
+ PFNGLMULTITEXCOORDPOINTEREXTPROC MultiTexCoordPointerEXT;
+ PFNGLMULTITEXENVFEXTPROC MultiTexEnvfEXT;
+ PFNGLMULTITEXENVFVEXTPROC MultiTexEnvfvEXT;
+ PFNGLMULTITEXENVIEXTPROC MultiTexEnviEXT;
+ PFNGLMULTITEXENVIVEXTPROC MultiTexEnvivEXT;
+ PFNGLMULTITEXGENDEXTPROC MultiTexGendEXT;
+ PFNGLMULTITEXGENDVEXTPROC MultiTexGendvEXT;
+ PFNGLMULTITEXGENFEXTPROC MultiTexGenfEXT;
+ PFNGLMULTITEXGENFVEXTPROC MultiTexGenfvEXT;
+ PFNGLMULTITEXGENIEXTPROC MultiTexGeniEXT;
+ PFNGLMULTITEXGENIVEXTPROC MultiTexGenivEXT;
+ PFNGLMULTITEXIMAGE1DEXTPROC MultiTexImage1DEXT;
+ PFNGLMULTITEXIMAGE2DEXTPROC MultiTexImage2DEXT;
+ PFNGLMULTITEXIMAGE3DEXTPROC MultiTexImage3DEXT;
+ PFNGLMULTITEXPARAMETERIIVEXTPROC MultiTexParameterIivEXT;
+ PFNGLMULTITEXPARAMETERIUIVEXTPROC MultiTexParameterIuivEXT;
+ PFNGLMULTITEXPARAMETERFEXTPROC MultiTexParameterfEXT;
+ PFNGLMULTITEXPARAMETERFVEXTPROC MultiTexParameterfvEXT;
+ PFNGLMULTITEXPARAMETERIEXTPROC MultiTexParameteriEXT;
+ PFNGLMULTITEXPARAMETERIVEXTPROC MultiTexParameterivEXT;
+ PFNGLMULTITEXRENDERBUFFEREXTPROC MultiTexRenderbufferEXT;
+ PFNGLMULTITEXSUBIMAGE1DEXTPROC MultiTexSubImage1DEXT;
+ PFNGLMULTITEXSUBIMAGE2DEXTPROC MultiTexSubImage2DEXT;
+ PFNGLMULTITEXSUBIMAGE3DEXTPROC MultiTexSubImage3DEXT;
+ PFNGLMULTICASTBARRIERNVPROC MulticastBarrierNV;
+ PFNGLMULTICASTBLITFRAMEBUFFERNVPROC MulticastBlitFramebufferNV;
+ PFNGLMULTICASTBUFFERSUBDATANVPROC MulticastBufferSubDataNV;
+ PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC MulticastCopyBufferSubDataNV;
+ PFNGLMULTICASTCOPYIMAGESUBDATANVPROC MulticastCopyImageSubDataNV;
+ PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC MulticastFramebufferSampleLocationsfvNV;
+ PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC MulticastGetQueryObjecti64vNV;
+ PFNGLMULTICASTGETQUERYOBJECTIVNVPROC MulticastGetQueryObjectivNV;
+ PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC MulticastGetQueryObjectui64vNV;
+ PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC MulticastGetQueryObjectuivNV;
+ PFNGLMULTICASTSCISSORARRAYVNVXPROC MulticastScissorArrayvNVX;
+ PFNGLMULTICASTVIEWPORTARRAYVNVXPROC MulticastViewportArrayvNVX;
+ PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC MulticastViewportPositionWScaleNVX;
+ PFNGLMULTICASTWAITSYNCNVPROC MulticastWaitSyncNV;
+ PFNGLNAMEDBUFFERATTACHMEMORYNVPROC NamedBufferAttachMemoryNV;
+ PFNGLNAMEDBUFFERDATAPROC NamedBufferData;
+ PFNGLNAMEDBUFFERDATAEXTPROC NamedBufferDataEXT;
+ PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC NamedBufferPageCommitmentARB;
+ PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC NamedBufferPageCommitmentEXT;
+ PFNGLNAMEDBUFFERPAGECOMMITMENTMEMNVPROC NamedBufferPageCommitmentMemNV;
+ PFNGLNAMEDBUFFERSTORAGEPROC NamedBufferStorage;
+ PFNGLNAMEDBUFFERSTORAGEEXTPROC NamedBufferStorageEXT;
+ PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC NamedBufferStorageExternalEXT;
+ PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC NamedBufferStorageMemEXT;
+ PFNGLNAMEDBUFFERSUBDATAPROC NamedBufferSubData;
+ PFNGLNAMEDBUFFERSUBDATAEXTPROC NamedBufferSubDataEXT;
+ PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC NamedCopyBufferSubDataEXT;
+ PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC NamedFramebufferDrawBuffer;
+ PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC NamedFramebufferDrawBuffers;
+ PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC NamedFramebufferParameteri;
+ PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC NamedFramebufferParameteriEXT;
+ PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC NamedFramebufferReadBuffer;
+ PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC NamedFramebufferRenderbuffer;
+ PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC NamedFramebufferRenderbufferEXT;
+ PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC NamedFramebufferSampleLocationsfvARB;
+ PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC NamedFramebufferSampleLocationsfvNV;
+ PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC NamedFramebufferSamplePositionsfvAMD;
+ PFNGLNAMEDFRAMEBUFFERTEXTUREPROC NamedFramebufferTexture;
+ PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC NamedFramebufferTexture1DEXT;
+ PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC NamedFramebufferTexture2DEXT;
+ PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC NamedFramebufferTexture3DEXT;
+ PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC NamedFramebufferTextureEXT;
+ PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC NamedFramebufferTextureFaceEXT;
+ PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC NamedFramebufferTextureLayer;
+ PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC NamedFramebufferTextureLayerEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC NamedProgramLocalParameter4dEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC NamedProgramLocalParameter4dvEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC NamedProgramLocalParameter4fEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC NamedProgramLocalParameter4fvEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC NamedProgramLocalParameterI4iEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC NamedProgramLocalParameterI4ivEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC NamedProgramLocalParameterI4uiEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC NamedProgramLocalParameterI4uivEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC NamedProgramLocalParameters4fvEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC NamedProgramLocalParametersI4ivEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC NamedProgramLocalParametersI4uivEXT;
+ PFNGLNAMEDPROGRAMSTRINGEXTPROC NamedProgramStringEXT;
+ PFNGLNAMEDRENDERBUFFERSTORAGEPROC NamedRenderbufferStorage;
+ PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC NamedRenderbufferStorageEXT;
+ PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC NamedRenderbufferStorageMultisample;
+ PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC
+ NamedRenderbufferStorageMultisampleAdvancedAMD;
+ PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC
+ NamedRenderbufferStorageMultisampleCoverageEXT;
+ PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC NamedRenderbufferStorageMultisampleEXT;
+ PFNGLNAMEDSTRINGARBPROC NamedStringARB;
+ PFNGLNEWOBJECTBUFFERATIPROC NewObjectBufferATI;
+ PFNGLNORMAL3FVERTEX3FSUNPROC Normal3fVertex3fSUN;
+ PFNGLNORMAL3FVERTEX3FVSUNPROC Normal3fVertex3fvSUN;
+ PFNGLNORMAL3HNVPROC Normal3hNV;
+ PFNGLNORMAL3HVNVPROC Normal3hvNV;
+ PFNGLNORMAL3XOESPROC Normal3xOES;
+ PFNGLNORMAL3XVOESPROC Normal3xvOES;
+ PFNGLNORMALFORMATNVPROC NormalFormatNV;
+ PFNGLNORMALPOINTEREXTPROC NormalPointerEXT;
+ PFNGLNORMALPOINTERLISTIBMPROC NormalPointerListIBM;
+ PFNGLNORMALPOINTERVINTELPROC NormalPointervINTEL;
+ PFNGLNORMALSTREAM3BATIPROC NormalStream3bATI;
+ PFNGLNORMALSTREAM3BVATIPROC NormalStream3bvATI;
+ PFNGLNORMALSTREAM3DATIPROC NormalStream3dATI;
+ PFNGLNORMALSTREAM3DVATIPROC NormalStream3dvATI;
+ PFNGLNORMALSTREAM3FATIPROC NormalStream3fATI;
+ PFNGLNORMALSTREAM3FVATIPROC NormalStream3fvATI;
+ PFNGLNORMALSTREAM3IATIPROC NormalStream3iATI;
+ PFNGLNORMALSTREAM3IVATIPROC NormalStream3ivATI;
+ PFNGLNORMALSTREAM3SATIPROC NormalStream3sATI;
+ PFNGLNORMALSTREAM3SVATIPROC NormalStream3svATI;
+ PFNGLOBJECTLABELPROC ObjectLabel;
+ PFNGLOBJECTPTRLABELPROC ObjectPtrLabel;
+ PFNGLOBJECTPURGEABLEAPPLEPROC ObjectPurgeableAPPLE;
+ PFNGLOBJECTUNPURGEABLEAPPLEPROC ObjectUnpurgeableAPPLE;
+ PFNGLORTHOFOESPROC OrthofOES;
+ PFNGLORTHOXOESPROC OrthoxOES;
+ PFNGLPNTRIANGLESFATIPROC PNTrianglesfATI;
+ PFNGLPNTRIANGLESIATIPROC PNTrianglesiATI;
+ PFNGLPASSTEXCOORDATIPROC PassTexCoordATI;
+ PFNGLPASSTHROUGHXOESPROC PassThroughxOES;
+ PFNGLPATCHPARAMETERFVPROC PatchParameterfv;
+ PFNGLPATCHPARAMETERIPROC PatchParameteri;
+ PFNGLPATHCOMMANDSNVPROC PathCommandsNV;
+ PFNGLPATHCOORDSNVPROC PathCoordsNV;
+ PFNGLPATHCOVERDEPTHFUNCNVPROC PathCoverDepthFuncNV;
+ PFNGLPATHDASHARRAYNVPROC PathDashArrayNV;
+ PFNGLPATHGLYPHINDEXARRAYNVPROC PathGlyphIndexArrayNV;
+ PFNGLPATHGLYPHINDEXRANGENVPROC PathGlyphIndexRangeNV;
+ PFNGLPATHGLYPHRANGENVPROC PathGlyphRangeNV;
+ PFNGLPATHGLYPHSNVPROC PathGlyphsNV;
+ PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC PathMemoryGlyphIndexArrayNV;
+ PFNGLPATHPARAMETERFNVPROC PathParameterfNV;
+ PFNGLPATHPARAMETERFVNVPROC PathParameterfvNV;
+ PFNGLPATHPARAMETERINVPROC PathParameteriNV;
+ PFNGLPATHPARAMETERIVNVPROC PathParameterivNV;
+ PFNGLPATHSTENCILDEPTHOFFSETNVPROC PathStencilDepthOffsetNV;
+ PFNGLPATHSTENCILFUNCNVPROC PathStencilFuncNV;
+ PFNGLPATHSTRINGNVPROC PathStringNV;
+ PFNGLPATHSUBCOMMANDSNVPROC PathSubCommandsNV;
+ PFNGLPATHSUBCOORDSNVPROC PathSubCoordsNV;
+ PFNGLPAUSETRANSFORMFEEDBACKPROC PauseTransformFeedback;
+ PFNGLPAUSETRANSFORMFEEDBACKNVPROC PauseTransformFeedbackNV;
+ PFNGLPIXELDATARANGENVPROC PixelDataRangeNV;
+ PFNGLPIXELMAPXPROC PixelMapx;
+ PFNGLPIXELSTOREFPROC PixelStoref;
+ PFNGLPIXELSTOREIPROC PixelStorei;
+ PFNGLPIXELSTOREXPROC PixelStorex;
+ PFNGLPIXELTEXGENPARAMETERFSGISPROC PixelTexGenParameterfSGIS;
+ PFNGLPIXELTEXGENPARAMETERFVSGISPROC PixelTexGenParameterfvSGIS;
+ PFNGLPIXELTEXGENPARAMETERISGISPROC PixelTexGenParameteriSGIS;
+ PFNGLPIXELTEXGENPARAMETERIVSGISPROC PixelTexGenParameterivSGIS;
+ PFNGLPIXELTEXGENSGIXPROC PixelTexGenSGIX;
+ PFNGLPIXELTRANSFERXOESPROC PixelTransferxOES;
+ PFNGLPIXELTRANSFORMPARAMETERFEXTPROC PixelTransformParameterfEXT;
+ PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC PixelTransformParameterfvEXT;
+ PFNGLPIXELTRANSFORMPARAMETERIEXTPROC PixelTransformParameteriEXT;
+ PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC PixelTransformParameterivEXT;
+ PFNGLPIXELZOOMXOESPROC PixelZoomxOES;
+ PFNGLPOINTALONGPATHNVPROC PointAlongPathNV;
+ PFNGLPOINTPARAMETERFPROC PointParameterf;
+ PFNGLPOINTPARAMETERFARBPROC PointParameterfARB;
+ PFNGLPOINTPARAMETERFEXTPROC PointParameterfEXT;
+ PFNGLPOINTPARAMETERFSGISPROC PointParameterfSGIS;
+ PFNGLPOINTPARAMETERFVPROC PointParameterfv;
+ PFNGLPOINTPARAMETERFVARBPROC PointParameterfvARB;
+ PFNGLPOINTPARAMETERFVEXTPROC PointParameterfvEXT;
+ PFNGLPOINTPARAMETERFVSGISPROC PointParameterfvSGIS;
+ PFNGLPOINTPARAMETERIPROC PointParameteri;
+ PFNGLPOINTPARAMETERINVPROC PointParameteriNV;
+ PFNGLPOINTPARAMETERIVPROC PointParameteriv;
+ PFNGLPOINTPARAMETERIVNVPROC PointParameterivNV;
+ PFNGLPOINTPARAMETERXVOESPROC PointParameterxvOES;
+ PFNGLPOINTSIZEPROC PointSize;
+ PFNGLPOINTSIZEXOESPROC PointSizexOES;
+ PFNGLPOLLASYNCSGIXPROC PollAsyncSGIX;
+ PFNGLPOLLINSTRUMENTSSGIXPROC PollInstrumentsSGIX;
+ PFNGLPOLYGONMODEPROC PolygonMode;
+ PFNGLPOLYGONOFFSETPROC PolygonOffset;
+ PFNGLPOLYGONOFFSETCLAMPPROC PolygonOffsetClamp;
+ PFNGLPOLYGONOFFSETCLAMPEXTPROC PolygonOffsetClampEXT;
+ PFNGLPOLYGONOFFSETEXTPROC PolygonOffsetEXT;
+ PFNGLPOLYGONOFFSETXOESPROC PolygonOffsetxOES;
+ PFNGLPOPDEBUGGROUPPROC PopDebugGroup;
+ PFNGLPOPGROUPMARKEREXTPROC PopGroupMarkerEXT;
+ PFNGLPRESENTFRAMEDUALFILLNVPROC PresentFrameDualFillNV;
+ PFNGLPRESENTFRAMEKEYEDNVPROC PresentFrameKeyedNV;
+ PFNGLPRIMITIVEBOUNDINGBOXARBPROC PrimitiveBoundingBoxARB;
+ PFNGLPRIMITIVERESTARTINDEXPROC PrimitiveRestartIndex;
+ PFNGLPRIMITIVERESTARTINDEXNVPROC PrimitiveRestartIndexNV;
+ PFNGLPRIMITIVERESTARTNVPROC PrimitiveRestartNV;
+ PFNGLPRIORITIZETEXTURESEXTPROC PrioritizeTexturesEXT;
+ PFNGLPRIORITIZETEXTURESXOESPROC PrioritizeTexturesxOES;
+ PFNGLPROGRAMBINARYPROC ProgramBinary;
+ PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC ProgramBufferParametersIivNV;
+ PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC ProgramBufferParametersIuivNV;
+ PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC ProgramBufferParametersfvNV;
+ PFNGLPROGRAMENVPARAMETER4DARBPROC ProgramEnvParameter4dARB;
+ PFNGLPROGRAMENVPARAMETER4DVARBPROC ProgramEnvParameter4dvARB;
+ PFNGLPROGRAMENVPARAMETER4FARBPROC ProgramEnvParameter4fARB;
+ PFNGLPROGRAMENVPARAMETER4FVARBPROC ProgramEnvParameter4fvARB;
+ PFNGLPROGRAMENVPARAMETERI4INVPROC ProgramEnvParameterI4iNV;
+ PFNGLPROGRAMENVPARAMETERI4IVNVPROC ProgramEnvParameterI4ivNV;
+ PFNGLPROGRAMENVPARAMETERI4UINVPROC ProgramEnvParameterI4uiNV;
+ PFNGLPROGRAMENVPARAMETERI4UIVNVPROC ProgramEnvParameterI4uivNV;
+ PFNGLPROGRAMENVPARAMETERS4FVEXTPROC ProgramEnvParameters4fvEXT;
+ PFNGLPROGRAMENVPARAMETERSI4IVNVPROC ProgramEnvParametersI4ivNV;
+ PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC ProgramEnvParametersI4uivNV;
+ PFNGLPROGRAMLOCALPARAMETER4DARBPROC ProgramLocalParameter4dARB;
+ PFNGLPROGRAMLOCALPARAMETER4DVARBPROC ProgramLocalParameter4dvARB;
+ PFNGLPROGRAMLOCALPARAMETER4FARBPROC ProgramLocalParameter4fARB;
+ PFNGLPROGRAMLOCALPARAMETER4FVARBPROC ProgramLocalParameter4fvARB;
+ PFNGLPROGRAMLOCALPARAMETERI4INVPROC ProgramLocalParameterI4iNV;
+ PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC ProgramLocalParameterI4ivNV;
+ PFNGLPROGRAMLOCALPARAMETERI4UINVPROC ProgramLocalParameterI4uiNV;
+ PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC ProgramLocalParameterI4uivNV;
+ PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC ProgramLocalParameters4fvEXT;
+ PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC ProgramLocalParametersI4ivNV;
+ PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC ProgramLocalParametersI4uivNV;
+ PFNGLPROGRAMNAMEDPARAMETER4DNVPROC ProgramNamedParameter4dNV;
+ PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC ProgramNamedParameter4dvNV;
+ PFNGLPROGRAMNAMEDPARAMETER4FNVPROC ProgramNamedParameter4fNV;
+ PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC ProgramNamedParameter4fvNV;
+ PFNGLPROGRAMPARAMETER4DNVPROC ProgramParameter4dNV;
+ PFNGLPROGRAMPARAMETER4DVNVPROC ProgramParameter4dvNV;
+ PFNGLPROGRAMPARAMETER4FNVPROC ProgramParameter4fNV;
+ PFNGLPROGRAMPARAMETER4FVNVPROC ProgramParameter4fvNV;
+ PFNGLPROGRAMPARAMETERIPROC ProgramParameteri;
+ PFNGLPROGRAMPARAMETERIARBPROC ProgramParameteriARB;
+ PFNGLPROGRAMPARAMETERIEXTPROC ProgramParameteriEXT;
+ PFNGLPROGRAMPARAMETERS4DVNVPROC ProgramParameters4dvNV;
+ PFNGLPROGRAMPARAMETERS4FVNVPROC ProgramParameters4fvNV;
+ PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC ProgramPathFragmentInputGenNV;
+ PFNGLPROGRAMSTRINGARBPROC ProgramStringARB;
+ PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC ProgramSubroutineParametersuivNV;
+ PFNGLPROGRAMUNIFORM1DPROC ProgramUniform1d;
+ PFNGLPROGRAMUNIFORM1DEXTPROC ProgramUniform1dEXT;
+ PFNGLPROGRAMUNIFORM1DVPROC ProgramUniform1dv;
+ PFNGLPROGRAMUNIFORM1DVEXTPROC ProgramUniform1dvEXT;
+ PFNGLPROGRAMUNIFORM1FPROC ProgramUniform1f;
+ PFNGLPROGRAMUNIFORM1FEXTPROC ProgramUniform1fEXT;
+ PFNGLPROGRAMUNIFORM1FVPROC ProgramUniform1fv;
+ PFNGLPROGRAMUNIFORM1FVEXTPROC ProgramUniform1fvEXT;
+ PFNGLPROGRAMUNIFORM1IPROC ProgramUniform1i;
+ PFNGLPROGRAMUNIFORM1I64ARBPROC ProgramUniform1i64ARB;
+ PFNGLPROGRAMUNIFORM1I64NVPROC ProgramUniform1i64NV;
+ PFNGLPROGRAMUNIFORM1I64VARBPROC ProgramUniform1i64vARB;
+ PFNGLPROGRAMUNIFORM1I64VNVPROC ProgramUniform1i64vNV;
+ PFNGLPROGRAMUNIFORM1IEXTPROC ProgramUniform1iEXT;
+ PFNGLPROGRAMUNIFORM1IVPROC ProgramUniform1iv;
+ PFNGLPROGRAMUNIFORM1IVEXTPROC ProgramUniform1ivEXT;
+ PFNGLPROGRAMUNIFORM1UIPROC ProgramUniform1ui;
+ PFNGLPROGRAMUNIFORM1UI64ARBPROC ProgramUniform1ui64ARB;
+ PFNGLPROGRAMUNIFORM1UI64NVPROC ProgramUniform1ui64NV;
+ PFNGLPROGRAMUNIFORM1UI64VARBPROC ProgramUniform1ui64vARB;
+ PFNGLPROGRAMUNIFORM1UI64VNVPROC ProgramUniform1ui64vNV;
+ PFNGLPROGRAMUNIFORM1UIEXTPROC ProgramUniform1uiEXT;
+ PFNGLPROGRAMUNIFORM1UIVPROC ProgramUniform1uiv;
+ PFNGLPROGRAMUNIFORM1UIVEXTPROC ProgramUniform1uivEXT;
+ PFNGLPROGRAMUNIFORM2DPROC ProgramUniform2d;
+ PFNGLPROGRAMUNIFORM2DEXTPROC ProgramUniform2dEXT;
+ PFNGLPROGRAMUNIFORM2DVPROC ProgramUniform2dv;
+ PFNGLPROGRAMUNIFORM2DVEXTPROC ProgramUniform2dvEXT;
+ PFNGLPROGRAMUNIFORM2FPROC ProgramUniform2f;
+ PFNGLPROGRAMUNIFORM2FEXTPROC ProgramUniform2fEXT;
+ PFNGLPROGRAMUNIFORM2FVPROC ProgramUniform2fv;
+ PFNGLPROGRAMUNIFORM2FVEXTPROC ProgramUniform2fvEXT;
+ PFNGLPROGRAMUNIFORM2IPROC ProgramUniform2i;
+ PFNGLPROGRAMUNIFORM2I64ARBPROC ProgramUniform2i64ARB;
+ PFNGLPROGRAMUNIFORM2I64NVPROC ProgramUniform2i64NV;
+ PFNGLPROGRAMUNIFORM2I64VARBPROC ProgramUniform2i64vARB;
+ PFNGLPROGRAMUNIFORM2I64VNVPROC ProgramUniform2i64vNV;
+ PFNGLPROGRAMUNIFORM2IEXTPROC ProgramUniform2iEXT;
+ PFNGLPROGRAMUNIFORM2IVPROC ProgramUniform2iv;
+ PFNGLPROGRAMUNIFORM2IVEXTPROC ProgramUniform2ivEXT;
+ PFNGLPROGRAMUNIFORM2UIPROC ProgramUniform2ui;
+ PFNGLPROGRAMUNIFORM2UI64ARBPROC ProgramUniform2ui64ARB;
+ PFNGLPROGRAMUNIFORM2UI64NVPROC ProgramUniform2ui64NV;
+ PFNGLPROGRAMUNIFORM2UI64VARBPROC ProgramUniform2ui64vARB;
+ PFNGLPROGRAMUNIFORM2UI64VNVPROC ProgramUniform2ui64vNV;
+ PFNGLPROGRAMUNIFORM2UIEXTPROC ProgramUniform2uiEXT;
+ PFNGLPROGRAMUNIFORM2UIVPROC ProgramUniform2uiv;
+ PFNGLPROGRAMUNIFORM2UIVEXTPROC ProgramUniform2uivEXT;
+ PFNGLPROGRAMUNIFORM3DPROC ProgramUniform3d;
+ PFNGLPROGRAMUNIFORM3DEXTPROC ProgramUniform3dEXT;
+ PFNGLPROGRAMUNIFORM3DVPROC ProgramUniform3dv;
+ PFNGLPROGRAMUNIFORM3DVEXTPROC ProgramUniform3dvEXT;
+ PFNGLPROGRAMUNIFORM3FPROC ProgramUniform3f;
+ PFNGLPROGRAMUNIFORM3FEXTPROC ProgramUniform3fEXT;
+ PFNGLPROGRAMUNIFORM3FVPROC ProgramUniform3fv;
+ PFNGLPROGRAMUNIFORM3FVEXTPROC ProgramUniform3fvEXT;
+ PFNGLPROGRAMUNIFORM3IPROC ProgramUniform3i;
+ PFNGLPROGRAMUNIFORM3I64ARBPROC ProgramUniform3i64ARB;
+ PFNGLPROGRAMUNIFORM3I64NVPROC ProgramUniform3i64NV;
+ PFNGLPROGRAMUNIFORM3I64VARBPROC ProgramUniform3i64vARB;
+ PFNGLPROGRAMUNIFORM3I64VNVPROC ProgramUniform3i64vNV;
+ PFNGLPROGRAMUNIFORM3IEXTPROC ProgramUniform3iEXT;
+ PFNGLPROGRAMUNIFORM3IVPROC ProgramUniform3iv;
+ PFNGLPROGRAMUNIFORM3IVEXTPROC ProgramUniform3ivEXT;
+ PFNGLPROGRAMUNIFORM3UIPROC ProgramUniform3ui;
+ PFNGLPROGRAMUNIFORM3UI64ARBPROC ProgramUniform3ui64ARB;
+ PFNGLPROGRAMUNIFORM3UI64NVPROC ProgramUniform3ui64NV;
+ PFNGLPROGRAMUNIFORM3UI64VARBPROC ProgramUniform3ui64vARB;
+ PFNGLPROGRAMUNIFORM3UI64VNVPROC ProgramUniform3ui64vNV;
+ PFNGLPROGRAMUNIFORM3UIEXTPROC ProgramUniform3uiEXT;
+ PFNGLPROGRAMUNIFORM3UIVPROC ProgramUniform3uiv;
+ PFNGLPROGRAMUNIFORM3UIVEXTPROC ProgramUniform3uivEXT;
+ PFNGLPROGRAMUNIFORM4DPROC ProgramUniform4d;
+ PFNGLPROGRAMUNIFORM4DEXTPROC ProgramUniform4dEXT;
+ PFNGLPROGRAMUNIFORM4DVPROC ProgramUniform4dv;
+ PFNGLPROGRAMUNIFORM4DVEXTPROC ProgramUniform4dvEXT;
+ PFNGLPROGRAMUNIFORM4FPROC ProgramUniform4f;
+ PFNGLPROGRAMUNIFORM4FEXTPROC ProgramUniform4fEXT;
+ PFNGLPROGRAMUNIFORM4FVPROC ProgramUniform4fv;
+ PFNGLPROGRAMUNIFORM4FVEXTPROC ProgramUniform4fvEXT;
+ PFNGLPROGRAMUNIFORM4IPROC ProgramUniform4i;
+ PFNGLPROGRAMUNIFORM4I64ARBPROC ProgramUniform4i64ARB;
+ PFNGLPROGRAMUNIFORM4I64NVPROC ProgramUniform4i64NV;
+ PFNGLPROGRAMUNIFORM4I64VARBPROC ProgramUniform4i64vARB;
+ PFNGLPROGRAMUNIFORM4I64VNVPROC ProgramUniform4i64vNV;
+ PFNGLPROGRAMUNIFORM4IEXTPROC ProgramUniform4iEXT;
+ PFNGLPROGRAMUNIFORM4IVPROC ProgramUniform4iv;
+ PFNGLPROGRAMUNIFORM4IVEXTPROC ProgramUniform4ivEXT;
+ PFNGLPROGRAMUNIFORM4UIPROC ProgramUniform4ui;
+ PFNGLPROGRAMUNIFORM4UI64ARBPROC ProgramUniform4ui64ARB;
+ PFNGLPROGRAMUNIFORM4UI64NVPROC ProgramUniform4ui64NV;
+ PFNGLPROGRAMUNIFORM4UI64VARBPROC ProgramUniform4ui64vARB;
+ PFNGLPROGRAMUNIFORM4UI64VNVPROC ProgramUniform4ui64vNV;
+ PFNGLPROGRAMUNIFORM4UIEXTPROC ProgramUniform4uiEXT;
+ PFNGLPROGRAMUNIFORM4UIVPROC ProgramUniform4uiv;
+ PFNGLPROGRAMUNIFORM4UIVEXTPROC ProgramUniform4uivEXT;
+ PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC ProgramUniformHandleui64ARB;
+ PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC ProgramUniformHandleui64NV;
+ PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC ProgramUniformHandleui64vARB;
+ PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC ProgramUniformHandleui64vNV;
+ PFNGLPROGRAMUNIFORMMATRIX2DVPROC ProgramUniformMatrix2dv;
+ PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC ProgramUniformMatrix2dvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX2FVPROC ProgramUniformMatrix2fv;
+ PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC ProgramUniformMatrix2fvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC ProgramUniformMatrix2x3dv;
+ PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC ProgramUniformMatrix2x3dvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC ProgramUniformMatrix2x3fv;
+ PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC ProgramUniformMatrix2x3fvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC ProgramUniformMatrix2x4dv;
+ PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC ProgramUniformMatrix2x4dvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC ProgramUniformMatrix2x4fv;
+ PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC ProgramUniformMatrix2x4fvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX3DVPROC ProgramUniformMatrix3dv;
+ PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC ProgramUniformMatrix3dvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX3FVPROC ProgramUniformMatrix3fv;
+ PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC ProgramUniformMatrix3fvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC ProgramUniformMatrix3x2dv;
+ PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC ProgramUniformMatrix3x2dvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC ProgramUniformMatrix3x2fv;
+ PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC ProgramUniformMatrix3x2fvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC ProgramUniformMatrix3x4dv;
+ PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC ProgramUniformMatrix3x4dvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC ProgramUniformMatrix3x4fv;
+ PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC ProgramUniformMatrix3x4fvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX4DVPROC ProgramUniformMatrix4dv;
+ PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC ProgramUniformMatrix4dvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX4FVPROC ProgramUniformMatrix4fv;
+ PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC ProgramUniformMatrix4fvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC ProgramUniformMatrix4x2dv;
+ PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC ProgramUniformMatrix4x2dvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC ProgramUniformMatrix4x2fv;
+ PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC ProgramUniformMatrix4x2fvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC ProgramUniformMatrix4x3dv;
+ PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC ProgramUniformMatrix4x3dvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC ProgramUniformMatrix4x3fv;
+ PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC ProgramUniformMatrix4x3fvEXT;
+ PFNGLPROGRAMUNIFORMUI64NVPROC ProgramUniformui64NV;
+ PFNGLPROGRAMUNIFORMUI64VNVPROC ProgramUniformui64vNV;
+ PFNGLPROGRAMVERTEXLIMITNVPROC ProgramVertexLimitNV;
+ PFNGLPROVOKINGVERTEXPROC ProvokingVertex;
+ PFNGLPROVOKINGVERTEXEXTPROC ProvokingVertexEXT;
+ PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC PushClientAttribDefaultEXT;
+ PFNGLPUSHDEBUGGROUPPROC PushDebugGroup;
+ PFNGLPUSHGROUPMARKEREXTPROC PushGroupMarkerEXT;
+ PFNGLQUERYCOUNTERPROC QueryCounter;
+ PFNGLQUERYMATRIXXOESPROC QueryMatrixxOES;
+ PFNGLQUERYOBJECTPARAMETERUIAMDPROC QueryObjectParameteruiAMD;
+ PFNGLQUERYRESOURCENVPROC QueryResourceNV;
+ PFNGLQUERYRESOURCETAGNVPROC QueryResourceTagNV;
+ PFNGLRASTERPOS2XOESPROC RasterPos2xOES;
+ PFNGLRASTERPOS2XVOESPROC RasterPos2xvOES;
+ PFNGLRASTERPOS3XOESPROC RasterPos3xOES;
+ PFNGLRASTERPOS3XVOESPROC RasterPos3xvOES;
+ PFNGLRASTERPOS4XOESPROC RasterPos4xOES;
+ PFNGLRASTERPOS4XVOESPROC RasterPos4xvOES;
+ PFNGLRASTERSAMPLESEXTPROC RasterSamplesEXT;
+ PFNGLREADBUFFERPROC ReadBuffer;
+ PFNGLREADINSTRUMENTSSGIXPROC ReadInstrumentsSGIX;
+ PFNGLREADPIXELSPROC ReadPixels;
+ PFNGLREADNPIXELSPROC ReadnPixels;
+ PFNGLREADNPIXELSARBPROC ReadnPixelsARB;
+ PFNGLRECTXOESPROC RectxOES;
+ PFNGLRECTXVOESPROC RectxvOES;
+ PFNGLREFERENCEPLANESGIXPROC ReferencePlaneSGIX;
+ PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC ReleaseKeyedMutexWin32EXT;
+ PFNGLRELEASESHADERCOMPILERPROC ReleaseShaderCompiler;
+ PFNGLRENDERGPUMASKNVPROC RenderGpuMaskNV;
+ PFNGLRENDERBUFFERSTORAGEPROC RenderbufferStorage;
+ PFNGLRENDERBUFFERSTORAGEEXTPROC RenderbufferStorageEXT;
+ PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC RenderbufferStorageMultisample;
+ PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC RenderbufferStorageMultisampleAdvancedAMD;
+ PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC RenderbufferStorageMultisampleCoverageNV;
+ PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC RenderbufferStorageMultisampleEXT;
+ PFNGLREPLACEMENTCODEPOINTERSUNPROC ReplacementCodePointerSUN;
+ PFNGLREPLACEMENTCODEUBSUNPROC ReplacementCodeubSUN;
+ PFNGLREPLACEMENTCODEUBVSUNPROC ReplacementCodeubvSUN;
+ PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC ReplacementCodeuiColor3fVertex3fSUN;
+ PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC ReplacementCodeuiColor3fVertex3fvSUN;
+ PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC
+ ReplacementCodeuiColor4fNormal3fVertex3fSUN;
+ PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC
+ ReplacementCodeuiColor4fNormal3fVertex3fvSUN;
+ PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC ReplacementCodeuiColor4ubVertex3fSUN;
+ PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC ReplacementCodeuiColor4ubVertex3fvSUN;
+ PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC ReplacementCodeuiNormal3fVertex3fSUN;
+ PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC ReplacementCodeuiNormal3fVertex3fvSUN;
+ PFNGLREPLACEMENTCODEUISUNPROC ReplacementCodeuiSUN;
+ PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC
+ ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN;
+ PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC
+ ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN;
+ PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC
+ ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN;
+ PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC
+ ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN;
+ PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC ReplacementCodeuiTexCoord2fVertex3fSUN;
+ PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC ReplacementCodeuiTexCoord2fVertex3fvSUN;
+ PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC ReplacementCodeuiVertex3fSUN;
+ PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC ReplacementCodeuiVertex3fvSUN;
+ PFNGLREPLACEMENTCODEUIVSUNPROC ReplacementCodeuivSUN;
+ PFNGLREPLACEMENTCODEUSSUNPROC ReplacementCodeusSUN;
+ PFNGLREPLACEMENTCODEUSVSUNPROC ReplacementCodeusvSUN;
+ PFNGLREQUESTRESIDENTPROGRAMSNVPROC RequestResidentProgramsNV;
+ PFNGLRESETHISTOGRAMEXTPROC ResetHistogramEXT;
+ PFNGLRESETMEMORYOBJECTPARAMETERNVPROC ResetMemoryObjectParameterNV;
+ PFNGLRESETMINMAXEXTPROC ResetMinmaxEXT;
+ PFNGLRESIZEBUFFERSMESAPROC ResizeBuffersMESA;
+ PFNGLRESOLVEDEPTHVALUESNVPROC ResolveDepthValuesNV;
+ PFNGLRESUMETRANSFORMFEEDBACKPROC ResumeTransformFeedback;
+ PFNGLRESUMETRANSFORMFEEDBACKNVPROC ResumeTransformFeedbackNV;
+ PFNGLROTATEXOESPROC RotatexOES;
+ PFNGLSAMPLECOVERAGEPROC SampleCoverage;
+ PFNGLSAMPLECOVERAGEARBPROC SampleCoverageARB;
+ PFNGLSAMPLEMAPATIPROC SampleMapATI;
+ PFNGLSAMPLEMASKEXTPROC SampleMaskEXT;
+ PFNGLSAMPLEMASKINDEXEDNVPROC SampleMaskIndexedNV;
+ PFNGLSAMPLEMASKSGISPROC SampleMaskSGIS;
+ PFNGLSAMPLEMASKIPROC SampleMaski;
+ PFNGLSAMPLEPATTERNEXTPROC SamplePatternEXT;
+ PFNGLSAMPLEPATTERNSGISPROC SamplePatternSGIS;
+ PFNGLSAMPLERPARAMETERIIVPROC SamplerParameterIiv;
+ PFNGLSAMPLERPARAMETERIUIVPROC SamplerParameterIuiv;
+ PFNGLSAMPLERPARAMETERFPROC SamplerParameterf;
+ PFNGLSAMPLERPARAMETERFVPROC SamplerParameterfv;
+ PFNGLSAMPLERPARAMETERIPROC SamplerParameteri;
+ PFNGLSAMPLERPARAMETERIVPROC SamplerParameteriv;
+ PFNGLSCALEXOESPROC ScalexOES;
+ PFNGLSCISSORPROC Scissor;
+ PFNGLSCISSORARRAYVPROC ScissorArrayv;
+ PFNGLSCISSOREXCLUSIVEARRAYVNVPROC ScissorExclusiveArrayvNV;
+ PFNGLSCISSOREXCLUSIVENVPROC ScissorExclusiveNV;
+ PFNGLSCISSORINDEXEDPROC ScissorIndexed;
+ PFNGLSCISSORINDEXEDVPROC ScissorIndexedv;
+ PFNGLSECONDARYCOLOR3BEXTPROC SecondaryColor3bEXT;
+ PFNGLSECONDARYCOLOR3BVEXTPROC SecondaryColor3bvEXT;
+ PFNGLSECONDARYCOLOR3DEXTPROC SecondaryColor3dEXT;
+ PFNGLSECONDARYCOLOR3DVEXTPROC SecondaryColor3dvEXT;
+ PFNGLSECONDARYCOLOR3FEXTPROC SecondaryColor3fEXT;
+ PFNGLSECONDARYCOLOR3FVEXTPROC SecondaryColor3fvEXT;
+ PFNGLSECONDARYCOLOR3HNVPROC SecondaryColor3hNV;
+ PFNGLSECONDARYCOLOR3HVNVPROC SecondaryColor3hvNV;
+ PFNGLSECONDARYCOLOR3IEXTPROC SecondaryColor3iEXT;
+ PFNGLSECONDARYCOLOR3IVEXTPROC SecondaryColor3ivEXT;
+ PFNGLSECONDARYCOLOR3SEXTPROC SecondaryColor3sEXT;
+ PFNGLSECONDARYCOLOR3SVEXTPROC SecondaryColor3svEXT;
+ PFNGLSECONDARYCOLOR3UBEXTPROC SecondaryColor3ubEXT;
+ PFNGLSECONDARYCOLOR3UBVEXTPROC SecondaryColor3ubvEXT;
+ PFNGLSECONDARYCOLOR3UIEXTPROC SecondaryColor3uiEXT;
+ PFNGLSECONDARYCOLOR3UIVEXTPROC SecondaryColor3uivEXT;
+ PFNGLSECONDARYCOLOR3USEXTPROC SecondaryColor3usEXT;
+ PFNGLSECONDARYCOLOR3USVEXTPROC SecondaryColor3usvEXT;
+ PFNGLSECONDARYCOLORFORMATNVPROC SecondaryColorFormatNV;
+ PFNGLSECONDARYCOLORPOINTEREXTPROC SecondaryColorPointerEXT;
+ PFNGLSECONDARYCOLORPOINTERLISTIBMPROC SecondaryColorPointerListIBM;
+ PFNGLSELECTPERFMONITORCOUNTERSAMDPROC SelectPerfMonitorCountersAMD;
+ PFNGLSEMAPHOREPARAMETERIVNVPROC SemaphoreParameterivNV;
+ PFNGLSEMAPHOREPARAMETERUI64VEXTPROC SemaphoreParameterui64vEXT;
+ PFNGLSEPARABLEFILTER2DEXTPROC SeparableFilter2DEXT;
+ PFNGLSETFENCEAPPLEPROC SetFenceAPPLE;
+ PFNGLSETFENCENVPROC SetFenceNV;
+ PFNGLSETFRAGMENTSHADERCONSTANTATIPROC SetFragmentShaderConstantATI;
+ PFNGLSETINVARIANTEXTPROC SetInvariantEXT;
+ PFNGLSETLOCALCONSTANTEXTPROC SetLocalConstantEXT;
+ PFNGLSETMULTISAMPLEFVAMDPROC SetMultisamplefvAMD;
+ PFNGLSHADERBINARYPROC ShaderBinary;
+ PFNGLSHADEROP1EXTPROC ShaderOp1EXT;
+ PFNGLSHADEROP2EXTPROC ShaderOp2EXT;
+ PFNGLSHADEROP3EXTPROC ShaderOp3EXT;
+ PFNGLSHADERSOURCEPROC ShaderSource;
+ PFNGLSHADERSOURCEARBPROC ShaderSourceARB;
+ PFNGLSHADERSTORAGEBLOCKBINDINGPROC ShaderStorageBlockBinding;
+ PFNGLSHADINGRATEIMAGEBARRIERNVPROC ShadingRateImageBarrierNV;
+ PFNGLSHADINGRATEIMAGEPALETTENVPROC ShadingRateImagePaletteNV;
+ PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC ShadingRateSampleOrderCustomNV;
+ PFNGLSHADINGRATESAMPLEORDERNVPROC ShadingRateSampleOrderNV;
+ PFNGLSHARPENTEXFUNCSGISPROC SharpenTexFuncSGIS;
+ PFNGLSIGNALSEMAPHOREEXTPROC SignalSemaphoreEXT;
+ PFNGLSIGNALSEMAPHOREUI64NVXPROC SignalSemaphoreui64NVX;
+ PFNGLSIGNALVKFENCENVPROC SignalVkFenceNV;
+ PFNGLSIGNALVKSEMAPHORENVPROC SignalVkSemaphoreNV;
+ PFNGLSPECIALIZESHADERPROC SpecializeShader;
+ PFNGLSPECIALIZESHADERARBPROC SpecializeShaderARB;
+ PFNGLSPRITEPARAMETERFSGIXPROC SpriteParameterfSGIX;
+ PFNGLSPRITEPARAMETERFVSGIXPROC SpriteParameterfvSGIX;
+ PFNGLSPRITEPARAMETERISGIXPROC SpriteParameteriSGIX;
+ PFNGLSPRITEPARAMETERIVSGIXPROC SpriteParameterivSGIX;
+ PFNGLSTARTINSTRUMENTSSGIXPROC StartInstrumentsSGIX;
+ PFNGLSTATECAPTURENVPROC StateCaptureNV;
+ PFNGLSTENCILCLEARTAGEXTPROC StencilClearTagEXT;
+ PFNGLSTENCILFILLPATHINSTANCEDNVPROC StencilFillPathInstancedNV;
+ PFNGLSTENCILFILLPATHNVPROC StencilFillPathNV;
+ PFNGLSTENCILFUNCPROC StencilFunc;
+ PFNGLSTENCILFUNCSEPARATEPROC StencilFuncSeparate;
+ PFNGLSTENCILFUNCSEPARATEATIPROC StencilFuncSeparateATI;
+ PFNGLSTENCILMASKPROC StencilMask;
+ PFNGLSTENCILMASKSEPARATEPROC StencilMaskSeparate;
+ PFNGLSTENCILOPPROC StencilOp;
+ PFNGLSTENCILOPSEPARATEPROC StencilOpSeparate;
+ PFNGLSTENCILOPSEPARATEATIPROC StencilOpSeparateATI;
+ PFNGLSTENCILOPVALUEAMDPROC StencilOpValueAMD;
+ PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC StencilStrokePathInstancedNV;
+ PFNGLSTENCILSTROKEPATHNVPROC StencilStrokePathNV;
+ PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC StencilThenCoverFillPathInstancedNV;
+ PFNGLSTENCILTHENCOVERFILLPATHNVPROC StencilThenCoverFillPathNV;
+ PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC StencilThenCoverStrokePathInstancedNV;
+ PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC StencilThenCoverStrokePathNV;
+ PFNGLSTOPINSTRUMENTSSGIXPROC StopInstrumentsSGIX;
+ PFNGLSTRINGMARKERGREMEDYPROC StringMarkerGREMEDY;
+ PFNGLSUBPIXELPRECISIONBIASNVPROC SubpixelPrecisionBiasNV;
+ PFNGLSWIZZLEEXTPROC SwizzleEXT;
+ PFNGLSYNCTEXTUREINTELPROC SyncTextureINTEL;
+ PFNGLTAGSAMPLEBUFFERSGIXPROC TagSampleBufferSGIX;
+ PFNGLTANGENT3BEXTPROC Tangent3bEXT;
+ PFNGLTANGENT3BVEXTPROC Tangent3bvEXT;
+ PFNGLTANGENT3DEXTPROC Tangent3dEXT;
+ PFNGLTANGENT3DVEXTPROC Tangent3dvEXT;
+ PFNGLTANGENT3FEXTPROC Tangent3fEXT;
+ PFNGLTANGENT3FVEXTPROC Tangent3fvEXT;
+ PFNGLTANGENT3IEXTPROC Tangent3iEXT;
+ PFNGLTANGENT3IVEXTPROC Tangent3ivEXT;
+ PFNGLTANGENT3SEXTPROC Tangent3sEXT;
+ PFNGLTANGENT3SVEXTPROC Tangent3svEXT;
+ PFNGLTANGENTPOINTEREXTPROC TangentPointerEXT;
+ PFNGLTBUFFERMASK3DFXPROC TbufferMask3DFX;
+ PFNGLTESSELLATIONFACTORAMDPROC TessellationFactorAMD;
+ PFNGLTESSELLATIONMODEAMDPROC TessellationModeAMD;
+ PFNGLTESTFENCEAPPLEPROC TestFenceAPPLE;
+ PFNGLTESTFENCENVPROC TestFenceNV;
+ PFNGLTESTOBJECTAPPLEPROC TestObjectAPPLE;
+ PFNGLTEXATTACHMEMORYNVPROC TexAttachMemoryNV;
+ PFNGLTEXBUFFERPROC TexBuffer;
+ PFNGLTEXBUFFERARBPROC TexBufferARB;
+ PFNGLTEXBUFFEREXTPROC TexBufferEXT;
+ PFNGLTEXBUFFERRANGEPROC TexBufferRange;
+ PFNGLTEXBUMPPARAMETERFVATIPROC TexBumpParameterfvATI;
+ PFNGLTEXBUMPPARAMETERIVATIPROC TexBumpParameterivATI;
+ PFNGLTEXCOORD1BOESPROC TexCoord1bOES;
+ PFNGLTEXCOORD1BVOESPROC TexCoord1bvOES;
+ PFNGLTEXCOORD1HNVPROC TexCoord1hNV;
+ PFNGLTEXCOORD1HVNVPROC TexCoord1hvNV;
+ PFNGLTEXCOORD1XOESPROC TexCoord1xOES;
+ PFNGLTEXCOORD1XVOESPROC TexCoord1xvOES;
+ PFNGLTEXCOORD2BOESPROC TexCoord2bOES;
+ PFNGLTEXCOORD2BVOESPROC TexCoord2bvOES;
+ PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC TexCoord2fColor3fVertex3fSUN;
+ PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC TexCoord2fColor3fVertex3fvSUN;
+ PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC TexCoord2fColor4fNormal3fVertex3fSUN;
+ PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC TexCoord2fColor4fNormal3fVertex3fvSUN;
+ PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC TexCoord2fColor4ubVertex3fSUN;
+ PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC TexCoord2fColor4ubVertex3fvSUN;
+ PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC TexCoord2fNormal3fVertex3fSUN;
+ PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC TexCoord2fNormal3fVertex3fvSUN;
+ PFNGLTEXCOORD2FVERTEX3FSUNPROC TexCoord2fVertex3fSUN;
+ PFNGLTEXCOORD2FVERTEX3FVSUNPROC TexCoord2fVertex3fvSUN;
+ PFNGLTEXCOORD2HNVPROC TexCoord2hNV;
+ PFNGLTEXCOORD2HVNVPROC TexCoord2hvNV;
+ PFNGLTEXCOORD2XOESPROC TexCoord2xOES;
+ PFNGLTEXCOORD2XVOESPROC TexCoord2xvOES;
+ PFNGLTEXCOORD3BOESPROC TexCoord3bOES;
+ PFNGLTEXCOORD3BVOESPROC TexCoord3bvOES;
+ PFNGLTEXCOORD3HNVPROC TexCoord3hNV;
+ PFNGLTEXCOORD3HVNVPROC TexCoord3hvNV;
+ PFNGLTEXCOORD3XOESPROC TexCoord3xOES;
+ PFNGLTEXCOORD3XVOESPROC TexCoord3xvOES;
+ PFNGLTEXCOORD4BOESPROC TexCoord4bOES;
+ PFNGLTEXCOORD4BVOESPROC TexCoord4bvOES;
+ PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC TexCoord4fColor4fNormal3fVertex4fSUN;
+ PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC TexCoord4fColor4fNormal3fVertex4fvSUN;
+ PFNGLTEXCOORD4FVERTEX4FSUNPROC TexCoord4fVertex4fSUN;
+ PFNGLTEXCOORD4FVERTEX4FVSUNPROC TexCoord4fVertex4fvSUN;
+ PFNGLTEXCOORD4HNVPROC TexCoord4hNV;
+ PFNGLTEXCOORD4HVNVPROC TexCoord4hvNV;
+ PFNGLTEXCOORD4XOESPROC TexCoord4xOES;
+ PFNGLTEXCOORD4XVOESPROC TexCoord4xvOES;
+ PFNGLTEXCOORDFORMATNVPROC TexCoordFormatNV;
+ PFNGLTEXCOORDPOINTEREXTPROC TexCoordPointerEXT;
+ PFNGLTEXCOORDPOINTERLISTIBMPROC TexCoordPointerListIBM;
+ PFNGLTEXCOORDPOINTERVINTELPROC TexCoordPointervINTEL;
+ PFNGLTEXENVXOESPROC TexEnvxOES;
+ PFNGLTEXENVXVOESPROC TexEnvxvOES;
+ PFNGLTEXFILTERFUNCSGISPROC TexFilterFuncSGIS;
+ PFNGLTEXGENXOESPROC TexGenxOES;
+ PFNGLTEXGENXVOESPROC TexGenxvOES;
+ PFNGLTEXIMAGE1DPROC TexImage1D;
+ PFNGLTEXIMAGE2DPROC TexImage2D;
+ PFNGLTEXIMAGE2DMULTISAMPLEPROC TexImage2DMultisample;
+ PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC TexImage2DMultisampleCoverageNV;
+ PFNGLTEXIMAGE3DPROC TexImage3D;
+ PFNGLTEXIMAGE3DEXTPROC TexImage3DEXT;
+ PFNGLTEXIMAGE3DMULTISAMPLEPROC TexImage3DMultisample;
+ PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC TexImage3DMultisampleCoverageNV;
+ PFNGLTEXIMAGE4DSGISPROC TexImage4DSGIS;
+ PFNGLTEXPAGECOMMITMENTARBPROC TexPageCommitmentARB;
+ PFNGLTEXPAGECOMMITMENTMEMNVPROC TexPageCommitmentMemNV;
+ PFNGLTEXPARAMETERIIVPROC TexParameterIiv;
+ PFNGLTEXPARAMETERIIVEXTPROC TexParameterIivEXT;
+ PFNGLTEXPARAMETERIUIVPROC TexParameterIuiv;
+ PFNGLTEXPARAMETERIUIVEXTPROC TexParameterIuivEXT;
+ PFNGLTEXPARAMETERFPROC TexParameterf;
+ PFNGLTEXPARAMETERFVPROC TexParameterfv;
+ PFNGLTEXPARAMETERIPROC TexParameteri;
+ PFNGLTEXPARAMETERIVPROC TexParameteriv;
+ PFNGLTEXPARAMETERXOESPROC TexParameterxOES;
+ PFNGLTEXPARAMETERXVOESPROC TexParameterxvOES;
+ PFNGLTEXRENDERBUFFERNVPROC TexRenderbufferNV;
+ PFNGLTEXSTORAGE1DPROC TexStorage1D;
+ PFNGLTEXSTORAGE1DEXTPROC TexStorage1DEXT;
+ PFNGLTEXSTORAGE2DPROC TexStorage2D;
+ PFNGLTEXSTORAGE2DEXTPROC TexStorage2DEXT;
+ PFNGLTEXSTORAGE2DMULTISAMPLEPROC TexStorage2DMultisample;
+ PFNGLTEXSTORAGE3DPROC TexStorage3D;
+ PFNGLTEXSTORAGE3DEXTPROC TexStorage3DEXT;
+ PFNGLTEXSTORAGE3DMULTISAMPLEPROC TexStorage3DMultisample;
+ PFNGLTEXSTORAGEMEM1DEXTPROC TexStorageMem1DEXT;
+ PFNGLTEXSTORAGEMEM2DEXTPROC TexStorageMem2DEXT;
+ PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC TexStorageMem2DMultisampleEXT;
+ PFNGLTEXSTORAGEMEM3DEXTPROC TexStorageMem3DEXT;
+ PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC TexStorageMem3DMultisampleEXT;
+ PFNGLTEXSTORAGESPARSEAMDPROC TexStorageSparseAMD;
+ PFNGLTEXSUBIMAGE1DPROC TexSubImage1D;
+ PFNGLTEXSUBIMAGE1DEXTPROC TexSubImage1DEXT;
+ PFNGLTEXSUBIMAGE2DPROC TexSubImage2D;
+ PFNGLTEXSUBIMAGE2DEXTPROC TexSubImage2DEXT;
+ PFNGLTEXSUBIMAGE3DPROC TexSubImage3D;
+ PFNGLTEXSUBIMAGE3DEXTPROC TexSubImage3DEXT;
+ PFNGLTEXSUBIMAGE4DSGISPROC TexSubImage4DSGIS;
+ PFNGLTEXTUREATTACHMEMORYNVPROC TextureAttachMemoryNV;
+ PFNGLTEXTUREBARRIERPROC TextureBarrier;
+ PFNGLTEXTUREBARRIERNVPROC TextureBarrierNV;
+ PFNGLTEXTUREBUFFERPROC TextureBuffer;
+ PFNGLTEXTUREBUFFEREXTPROC TextureBufferEXT;
+ PFNGLTEXTUREBUFFERRANGEPROC TextureBufferRange;
+ PFNGLTEXTUREBUFFERRANGEEXTPROC TextureBufferRangeEXT;
+ PFNGLTEXTURECOLORMASKSGISPROC TextureColorMaskSGIS;
+ PFNGLTEXTUREIMAGE1DEXTPROC TextureImage1DEXT;
+ PFNGLTEXTUREIMAGE2DEXTPROC TextureImage2DEXT;
+ PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC TextureImage2DMultisampleCoverageNV;
+ PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC TextureImage2DMultisampleNV;
+ PFNGLTEXTUREIMAGE3DEXTPROC TextureImage3DEXT;
+ PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC TextureImage3DMultisampleCoverageNV;
+ PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC TextureImage3DMultisampleNV;
+ PFNGLTEXTURELIGHTEXTPROC TextureLightEXT;
+ PFNGLTEXTUREMATERIALEXTPROC TextureMaterialEXT;
+ PFNGLTEXTURENORMALEXTPROC TextureNormalEXT;
+ PFNGLTEXTUREPAGECOMMITMENTEXTPROC TexturePageCommitmentEXT;
+ PFNGLTEXTUREPAGECOMMITMENTMEMNVPROC TexturePageCommitmentMemNV;
+ PFNGLTEXTUREPARAMETERIIVPROC TextureParameterIiv;
+ PFNGLTEXTUREPARAMETERIIVEXTPROC TextureParameterIivEXT;
+ PFNGLTEXTUREPARAMETERIUIVPROC TextureParameterIuiv;
+ PFNGLTEXTUREPARAMETERIUIVEXTPROC TextureParameterIuivEXT;
+ PFNGLTEXTUREPARAMETERFPROC TextureParameterf;
+ PFNGLTEXTUREPARAMETERFEXTPROC TextureParameterfEXT;
+ PFNGLTEXTUREPARAMETERFVPROC TextureParameterfv;
+ PFNGLTEXTUREPARAMETERFVEXTPROC TextureParameterfvEXT;
+ PFNGLTEXTUREPARAMETERIPROC TextureParameteri;
+ PFNGLTEXTUREPARAMETERIEXTPROC TextureParameteriEXT;
+ PFNGLTEXTUREPARAMETERIVPROC TextureParameteriv;
+ PFNGLTEXTUREPARAMETERIVEXTPROC TextureParameterivEXT;
+ PFNGLTEXTURERANGEAPPLEPROC TextureRangeAPPLE;
+ PFNGLTEXTURERENDERBUFFEREXTPROC TextureRenderbufferEXT;
+ PFNGLTEXTURESTORAGE1DPROC TextureStorage1D;
+ PFNGLTEXTURESTORAGE1DEXTPROC TextureStorage1DEXT;
+ PFNGLTEXTURESTORAGE2DPROC TextureStorage2D;
+ PFNGLTEXTURESTORAGE2DEXTPROC TextureStorage2DEXT;
+ PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC TextureStorage2DMultisample;
+ PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC TextureStorage2DMultisampleEXT;
+ PFNGLTEXTURESTORAGE3DPROC TextureStorage3D;
+ PFNGLTEXTURESTORAGE3DEXTPROC TextureStorage3DEXT;
+ PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC TextureStorage3DMultisample;
+ PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC TextureStorage3DMultisampleEXT;
+ PFNGLTEXTURESTORAGEMEM1DEXTPROC TextureStorageMem1DEXT;
+ PFNGLTEXTURESTORAGEMEM2DEXTPROC TextureStorageMem2DEXT;
+ PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC TextureStorageMem2DMultisampleEXT;
+ PFNGLTEXTURESTORAGEMEM3DEXTPROC TextureStorageMem3DEXT;
+ PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC TextureStorageMem3DMultisampleEXT;
+ PFNGLTEXTURESTORAGESPARSEAMDPROC TextureStorageSparseAMD;
+ PFNGLTEXTURESUBIMAGE1DPROC TextureSubImage1D;
+ PFNGLTEXTURESUBIMAGE1DEXTPROC TextureSubImage1DEXT;
+ PFNGLTEXTURESUBIMAGE2DPROC TextureSubImage2D;
+ PFNGLTEXTURESUBIMAGE2DEXTPROC TextureSubImage2DEXT;
+ PFNGLTEXTURESUBIMAGE3DPROC TextureSubImage3D;
+ PFNGLTEXTURESUBIMAGE3DEXTPROC TextureSubImage3DEXT;
+ PFNGLTEXTUREVIEWPROC TextureView;
+ PFNGLTRACKMATRIXNVPROC TrackMatrixNV;
+ PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC TransformFeedbackAttribsNV;
+ PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC TransformFeedbackBufferBase;
+ PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC TransformFeedbackBufferRange;
+ PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC TransformFeedbackStreamAttribsNV;
+ PFNGLTRANSFORMFEEDBACKVARYINGSPROC TransformFeedbackVaryings;
+ PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC TransformFeedbackVaryingsEXT;
+ PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC TransformFeedbackVaryingsNV;
+ PFNGLTRANSFORMPATHNVPROC TransformPathNV;
+ PFNGLTRANSLATEXOESPROC TranslatexOES;
+ PFNGLUNIFORM1DPROC Uniform1d;
+ PFNGLUNIFORM1DVPROC Uniform1dv;
+ PFNGLUNIFORM1FPROC Uniform1f;
+ PFNGLUNIFORM1FARBPROC Uniform1fARB;
+ PFNGLUNIFORM1FVPROC Uniform1fv;
+ PFNGLUNIFORM1FVARBPROC Uniform1fvARB;
+ PFNGLUNIFORM1IPROC Uniform1i;
+ PFNGLUNIFORM1I64ARBPROC Uniform1i64ARB;
+ PFNGLUNIFORM1I64NVPROC Uniform1i64NV;
+ PFNGLUNIFORM1I64VARBPROC Uniform1i64vARB;
+ PFNGLUNIFORM1I64VNVPROC Uniform1i64vNV;
+ PFNGLUNIFORM1IARBPROC Uniform1iARB;
+ PFNGLUNIFORM1IVPROC Uniform1iv;
+ PFNGLUNIFORM1IVARBPROC Uniform1ivARB;
+ PFNGLUNIFORM1UIPROC Uniform1ui;
+ PFNGLUNIFORM1UI64ARBPROC Uniform1ui64ARB;
+ PFNGLUNIFORM1UI64NVPROC Uniform1ui64NV;
+ PFNGLUNIFORM1UI64VARBPROC Uniform1ui64vARB;
+ PFNGLUNIFORM1UI64VNVPROC Uniform1ui64vNV;
+ PFNGLUNIFORM1UIEXTPROC Uniform1uiEXT;
+ PFNGLUNIFORM1UIVPROC Uniform1uiv;
+ PFNGLUNIFORM1UIVEXTPROC Uniform1uivEXT;
+ PFNGLUNIFORM2DPROC Uniform2d;
+ PFNGLUNIFORM2DVPROC Uniform2dv;
+ PFNGLUNIFORM2FPROC Uniform2f;
+ PFNGLUNIFORM2FARBPROC Uniform2fARB;
+ PFNGLUNIFORM2FVPROC Uniform2fv;
+ PFNGLUNIFORM2FVARBPROC Uniform2fvARB;
+ PFNGLUNIFORM2IPROC Uniform2i;
+ PFNGLUNIFORM2I64ARBPROC Uniform2i64ARB;
+ PFNGLUNIFORM2I64NVPROC Uniform2i64NV;
+ PFNGLUNIFORM2I64VARBPROC Uniform2i64vARB;
+ PFNGLUNIFORM2I64VNVPROC Uniform2i64vNV;
+ PFNGLUNIFORM2IARBPROC Uniform2iARB;
+ PFNGLUNIFORM2IVPROC Uniform2iv;
+ PFNGLUNIFORM2IVARBPROC Uniform2ivARB;
+ PFNGLUNIFORM2UIPROC Uniform2ui;
+ PFNGLUNIFORM2UI64ARBPROC Uniform2ui64ARB;
+ PFNGLUNIFORM2UI64NVPROC Uniform2ui64NV;
+ PFNGLUNIFORM2UI64VARBPROC Uniform2ui64vARB;
+ PFNGLUNIFORM2UI64VNVPROC Uniform2ui64vNV;
+ PFNGLUNIFORM2UIEXTPROC Uniform2uiEXT;
+ PFNGLUNIFORM2UIVPROC Uniform2uiv;
+ PFNGLUNIFORM2UIVEXTPROC Uniform2uivEXT;
+ PFNGLUNIFORM3DPROC Uniform3d;
+ PFNGLUNIFORM3DVPROC Uniform3dv;
+ PFNGLUNIFORM3FPROC Uniform3f;
+ PFNGLUNIFORM3FARBPROC Uniform3fARB;
+ PFNGLUNIFORM3FVPROC Uniform3fv;
+ PFNGLUNIFORM3FVARBPROC Uniform3fvARB;
+ PFNGLUNIFORM3IPROC Uniform3i;
+ PFNGLUNIFORM3I64ARBPROC Uniform3i64ARB;
+ PFNGLUNIFORM3I64NVPROC Uniform3i64NV;
+ PFNGLUNIFORM3I64VARBPROC Uniform3i64vARB;
+ PFNGLUNIFORM3I64VNVPROC Uniform3i64vNV;
+ PFNGLUNIFORM3IARBPROC Uniform3iARB;
+ PFNGLUNIFORM3IVPROC Uniform3iv;
+ PFNGLUNIFORM3IVARBPROC Uniform3ivARB;
+ PFNGLUNIFORM3UIPROC Uniform3ui;
+ PFNGLUNIFORM3UI64ARBPROC Uniform3ui64ARB;
+ PFNGLUNIFORM3UI64NVPROC Uniform3ui64NV;
+ PFNGLUNIFORM3UI64VARBPROC Uniform3ui64vARB;
+ PFNGLUNIFORM3UI64VNVPROC Uniform3ui64vNV;
+ PFNGLUNIFORM3UIEXTPROC Uniform3uiEXT;
+ PFNGLUNIFORM3UIVPROC Uniform3uiv;
+ PFNGLUNIFORM3UIVEXTPROC Uniform3uivEXT;
+ PFNGLUNIFORM4DPROC Uniform4d;
+ PFNGLUNIFORM4DVPROC Uniform4dv;
+ PFNGLUNIFORM4FPROC Uniform4f;
+ PFNGLUNIFORM4FARBPROC Uniform4fARB;
+ PFNGLUNIFORM4FVPROC Uniform4fv;
+ PFNGLUNIFORM4FVARBPROC Uniform4fvARB;
+ PFNGLUNIFORM4IPROC Uniform4i;
+ PFNGLUNIFORM4I64ARBPROC Uniform4i64ARB;
+ PFNGLUNIFORM4I64NVPROC Uniform4i64NV;
+ PFNGLUNIFORM4I64VARBPROC Uniform4i64vARB;
+ PFNGLUNIFORM4I64VNVPROC Uniform4i64vNV;
+ PFNGLUNIFORM4IARBPROC Uniform4iARB;
+ PFNGLUNIFORM4IVPROC Uniform4iv;
+ PFNGLUNIFORM4IVARBPROC Uniform4ivARB;
+ PFNGLUNIFORM4UIPROC Uniform4ui;
+ PFNGLUNIFORM4UI64ARBPROC Uniform4ui64ARB;
+ PFNGLUNIFORM4UI64NVPROC Uniform4ui64NV;
+ PFNGLUNIFORM4UI64VARBPROC Uniform4ui64vARB;
+ PFNGLUNIFORM4UI64VNVPROC Uniform4ui64vNV;
+ PFNGLUNIFORM4UIEXTPROC Uniform4uiEXT;
+ PFNGLUNIFORM4UIVPROC Uniform4uiv;
+ PFNGLUNIFORM4UIVEXTPROC Uniform4uivEXT;
+ PFNGLUNIFORMBLOCKBINDINGPROC UniformBlockBinding;
+ PFNGLUNIFORMBUFFEREXTPROC UniformBufferEXT;
+ PFNGLUNIFORMHANDLEUI64ARBPROC UniformHandleui64ARB;
+ PFNGLUNIFORMHANDLEUI64NVPROC UniformHandleui64NV;
+ PFNGLUNIFORMHANDLEUI64VARBPROC UniformHandleui64vARB;
+ PFNGLUNIFORMHANDLEUI64VNVPROC UniformHandleui64vNV;
+ PFNGLUNIFORMMATRIX2DVPROC UniformMatrix2dv;
+ PFNGLUNIFORMMATRIX2FVPROC UniformMatrix2fv;
+ PFNGLUNIFORMMATRIX2FVARBPROC UniformMatrix2fvARB;
+ PFNGLUNIFORMMATRIX2X3DVPROC UniformMatrix2x3dv;
+ PFNGLUNIFORMMATRIX2X3FVPROC UniformMatrix2x3fv;
+ PFNGLUNIFORMMATRIX2X4DVPROC UniformMatrix2x4dv;
+ PFNGLUNIFORMMATRIX2X4FVPROC UniformMatrix2x4fv;
+ PFNGLUNIFORMMATRIX3DVPROC UniformMatrix3dv;
+ PFNGLUNIFORMMATRIX3FVPROC UniformMatrix3fv;
+ PFNGLUNIFORMMATRIX3FVARBPROC UniformMatrix3fvARB;
+ PFNGLUNIFORMMATRIX3X2DVPROC UniformMatrix3x2dv;
+ PFNGLUNIFORMMATRIX3X2FVPROC UniformMatrix3x2fv;
+ PFNGLUNIFORMMATRIX3X4DVPROC UniformMatrix3x4dv;
+ PFNGLUNIFORMMATRIX3X4FVPROC UniformMatrix3x4fv;
+ PFNGLUNIFORMMATRIX4DVPROC UniformMatrix4dv;
+ PFNGLUNIFORMMATRIX4FVPROC UniformMatrix4fv;
+ PFNGLUNIFORMMATRIX4FVARBPROC UniformMatrix4fvARB;
+ PFNGLUNIFORMMATRIX4X2DVPROC UniformMatrix4x2dv;
+ PFNGLUNIFORMMATRIX4X2FVPROC UniformMatrix4x2fv;
+ PFNGLUNIFORMMATRIX4X3DVPROC UniformMatrix4x3dv;
+ PFNGLUNIFORMMATRIX4X3FVPROC UniformMatrix4x3fv;
+ PFNGLUNIFORMSUBROUTINESUIVPROC UniformSubroutinesuiv;
+ PFNGLUNIFORMUI64NVPROC Uniformui64NV;
+ PFNGLUNIFORMUI64VNVPROC Uniformui64vNV;
+ PFNGLUNLOCKARRAYSEXTPROC UnlockArraysEXT;
+ PFNGLUNMAPBUFFERPROC UnmapBuffer;
+ PFNGLUNMAPBUFFERARBPROC UnmapBufferARB;
+ PFNGLUNMAPNAMEDBUFFERPROC UnmapNamedBuffer;
+ PFNGLUNMAPNAMEDBUFFEREXTPROC UnmapNamedBufferEXT;
+ PFNGLUNMAPOBJECTBUFFERATIPROC UnmapObjectBufferATI;
+ PFNGLUNMAPTEXTURE2DINTELPROC UnmapTexture2DINTEL;
+ PFNGLUPDATEOBJECTBUFFERATIPROC UpdateObjectBufferATI;
+ PFNGLUPLOADGPUMASKNVXPROC UploadGpuMaskNVX;
+ PFNGLUSEPROGRAMPROC UseProgram;
+ PFNGLUSEPROGRAMOBJECTARBPROC UseProgramObjectARB;
+ PFNGLUSEPROGRAMSTAGESPROC UseProgramStages;
+ PFNGLUSESHADERPROGRAMEXTPROC UseShaderProgramEXT;
+ PFNGLVDPAUFININVPROC VDPAUFiniNV;
+ PFNGLVDPAUGETSURFACEIVNVPROC VDPAUGetSurfaceivNV;
+ PFNGLVDPAUINITNVPROC VDPAUInitNV;
+ PFNGLVDPAUISSURFACENVPROC VDPAUIsSurfaceNV;
+ PFNGLVDPAUMAPSURFACESNVPROC VDPAUMapSurfacesNV;
+ PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC VDPAURegisterOutputSurfaceNV;
+ PFNGLVDPAUREGISTERVIDEOSURFACENVPROC VDPAURegisterVideoSurfaceNV;
+ PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC
+ VDPAURegisterVideoSurfaceWithPictureStructureNV;
+ PFNGLVDPAUSURFACEACCESSNVPROC VDPAUSurfaceAccessNV;
+ PFNGLVDPAUUNMAPSURFACESNVPROC VDPAUUnmapSurfacesNV;
+ PFNGLVDPAUUNREGISTERSURFACENVPROC VDPAUUnregisterSurfaceNV;
+ PFNGLVALIDATEPROGRAMPROC ValidateProgram;
+ PFNGLVALIDATEPROGRAMARBPROC ValidateProgramARB;
+ PFNGLVALIDATEPROGRAMPIPELINEPROC ValidateProgramPipeline;
+ PFNGLVARIANTARRAYOBJECTATIPROC VariantArrayObjectATI;
+ PFNGLVARIANTPOINTEREXTPROC VariantPointerEXT;
+ PFNGLVARIANTBVEXTPROC VariantbvEXT;
+ PFNGLVARIANTDVEXTPROC VariantdvEXT;
+ PFNGLVARIANTFVEXTPROC VariantfvEXT;
+ PFNGLVARIANTIVEXTPROC VariantivEXT;
+ PFNGLVARIANTSVEXTPROC VariantsvEXT;
+ PFNGLVARIANTUBVEXTPROC VariantubvEXT;
+ PFNGLVARIANTUIVEXTPROC VariantuivEXT;
+ PFNGLVARIANTUSVEXTPROC VariantusvEXT;
+ PFNGLVERTEX2BOESPROC Vertex2bOES;
+ PFNGLVERTEX2BVOESPROC Vertex2bvOES;
+ PFNGLVERTEX2HNVPROC Vertex2hNV;
+ PFNGLVERTEX2HVNVPROC Vertex2hvNV;
+ PFNGLVERTEX2XOESPROC Vertex2xOES;
+ PFNGLVERTEX2XVOESPROC Vertex2xvOES;
+ PFNGLVERTEX3BOESPROC Vertex3bOES;
+ PFNGLVERTEX3BVOESPROC Vertex3bvOES;
+ PFNGLVERTEX3HNVPROC Vertex3hNV;
+ PFNGLVERTEX3HVNVPROC Vertex3hvNV;
+ PFNGLVERTEX3XOESPROC Vertex3xOES;
+ PFNGLVERTEX3XVOESPROC Vertex3xvOES;
+ PFNGLVERTEX4BOESPROC Vertex4bOES;
+ PFNGLVERTEX4BVOESPROC Vertex4bvOES;
+ PFNGLVERTEX4HNVPROC Vertex4hNV;
+ PFNGLVERTEX4HVNVPROC Vertex4hvNV;
+ PFNGLVERTEX4XOESPROC Vertex4xOES;
+ PFNGLVERTEX4XVOESPROC Vertex4xvOES;
+ PFNGLVERTEXARRAYATTRIBBINDINGPROC VertexArrayAttribBinding;
+ PFNGLVERTEXARRAYATTRIBFORMATPROC VertexArrayAttribFormat;
+ PFNGLVERTEXARRAYATTRIBIFORMATPROC VertexArrayAttribIFormat;
+ PFNGLVERTEXARRAYATTRIBLFORMATPROC VertexArrayAttribLFormat;
+ PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC VertexArrayBindVertexBufferEXT;
+ PFNGLVERTEXARRAYBINDINGDIVISORPROC VertexArrayBindingDivisor;
+ PFNGLVERTEXARRAYCOLOROFFSETEXTPROC VertexArrayColorOffsetEXT;
+ PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC VertexArrayEdgeFlagOffsetEXT;
+ PFNGLVERTEXARRAYELEMENTBUFFERPROC VertexArrayElementBuffer;
+ PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC VertexArrayFogCoordOffsetEXT;
+ PFNGLVERTEXARRAYINDEXOFFSETEXTPROC VertexArrayIndexOffsetEXT;
+ PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC VertexArrayMultiTexCoordOffsetEXT;
+ PFNGLVERTEXARRAYNORMALOFFSETEXTPROC VertexArrayNormalOffsetEXT;
+ PFNGLVERTEXARRAYPARAMETERIAPPLEPROC VertexArrayParameteriAPPLE;
+ PFNGLVERTEXARRAYRANGEAPPLEPROC VertexArrayRangeAPPLE;
+ PFNGLVERTEXARRAYRANGENVPROC VertexArrayRangeNV;
+ PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC VertexArraySecondaryColorOffsetEXT;
+ PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC VertexArrayTexCoordOffsetEXT;
+ PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC VertexArrayVertexAttribBindingEXT;
+ PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC VertexArrayVertexAttribDivisorEXT;
+ PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC VertexArrayVertexAttribFormatEXT;
+ PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC VertexArrayVertexAttribIFormatEXT;
+ PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC VertexArrayVertexAttribIOffsetEXT;
+ PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC VertexArrayVertexAttribLFormatEXT;
+ PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC VertexArrayVertexAttribLOffsetEXT;
+ PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC VertexArrayVertexAttribOffsetEXT;
+ PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC VertexArrayVertexBindingDivisorEXT;
+ PFNGLVERTEXARRAYVERTEXBUFFERPROC VertexArrayVertexBuffer;
+ PFNGLVERTEXARRAYVERTEXBUFFERSPROC VertexArrayVertexBuffers;
+ PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC VertexArrayVertexOffsetEXT;
+ PFNGLVERTEXATTRIB1DPROC VertexAttrib1d;
+ PFNGLVERTEXATTRIB1DARBPROC VertexAttrib1dARB;
+ PFNGLVERTEXATTRIB1DNVPROC VertexAttrib1dNV;
+ PFNGLVERTEXATTRIB1DVPROC VertexAttrib1dv;
+ PFNGLVERTEXATTRIB1DVARBPROC VertexAttrib1dvARB;
+ PFNGLVERTEXATTRIB1DVNVPROC VertexAttrib1dvNV;
+ PFNGLVERTEXATTRIB1FPROC VertexAttrib1f;
+ PFNGLVERTEXATTRIB1FARBPROC VertexAttrib1fARB;
+ PFNGLVERTEXATTRIB1FNVPROC VertexAttrib1fNV;
+ PFNGLVERTEXATTRIB1FVPROC VertexAttrib1fv;
+ PFNGLVERTEXATTRIB1FVARBPROC VertexAttrib1fvARB;
+ PFNGLVERTEXATTRIB1FVNVPROC VertexAttrib1fvNV;
+ PFNGLVERTEXATTRIB1HNVPROC VertexAttrib1hNV;
+ PFNGLVERTEXATTRIB1HVNVPROC VertexAttrib1hvNV;
+ PFNGLVERTEXATTRIB1SPROC VertexAttrib1s;
+ PFNGLVERTEXATTRIB1SARBPROC VertexAttrib1sARB;
+ PFNGLVERTEXATTRIB1SNVPROC VertexAttrib1sNV;
+ PFNGLVERTEXATTRIB1SVPROC VertexAttrib1sv;
+ PFNGLVERTEXATTRIB1SVARBPROC VertexAttrib1svARB;
+ PFNGLVERTEXATTRIB1SVNVPROC VertexAttrib1svNV;
+ PFNGLVERTEXATTRIB2DPROC VertexAttrib2d;
+ PFNGLVERTEXATTRIB2DARBPROC VertexAttrib2dARB;
+ PFNGLVERTEXATTRIB2DNVPROC VertexAttrib2dNV;
+ PFNGLVERTEXATTRIB2DVPROC VertexAttrib2dv;
+ PFNGLVERTEXATTRIB2DVARBPROC VertexAttrib2dvARB;
+ PFNGLVERTEXATTRIB2DVNVPROC VertexAttrib2dvNV;
+ PFNGLVERTEXATTRIB2FPROC VertexAttrib2f;
+ PFNGLVERTEXATTRIB2FARBPROC VertexAttrib2fARB;
+ PFNGLVERTEXATTRIB2FNVPROC VertexAttrib2fNV;
+ PFNGLVERTEXATTRIB2FVPROC VertexAttrib2fv;
+ PFNGLVERTEXATTRIB2FVARBPROC VertexAttrib2fvARB;
+ PFNGLVERTEXATTRIB2FVNVPROC VertexAttrib2fvNV;
+ PFNGLVERTEXATTRIB2HNVPROC VertexAttrib2hNV;
+ PFNGLVERTEXATTRIB2HVNVPROC VertexAttrib2hvNV;
+ PFNGLVERTEXATTRIB2SPROC VertexAttrib2s;
+ PFNGLVERTEXATTRIB2SARBPROC VertexAttrib2sARB;
+ PFNGLVERTEXATTRIB2SNVPROC VertexAttrib2sNV;
+ PFNGLVERTEXATTRIB2SVPROC VertexAttrib2sv;
+ PFNGLVERTEXATTRIB2SVARBPROC VertexAttrib2svARB;
+ PFNGLVERTEXATTRIB2SVNVPROC VertexAttrib2svNV;
+ PFNGLVERTEXATTRIB3DPROC VertexAttrib3d;
+ PFNGLVERTEXATTRIB3DARBPROC VertexAttrib3dARB;
+ PFNGLVERTEXATTRIB3DNVPROC VertexAttrib3dNV;
+ PFNGLVERTEXATTRIB3DVPROC VertexAttrib3dv;
+ PFNGLVERTEXATTRIB3DVARBPROC VertexAttrib3dvARB;
+ PFNGLVERTEXATTRIB3DVNVPROC VertexAttrib3dvNV;
+ PFNGLVERTEXATTRIB3FPROC VertexAttrib3f;
+ PFNGLVERTEXATTRIB3FARBPROC VertexAttrib3fARB;
+ PFNGLVERTEXATTRIB3FNVPROC VertexAttrib3fNV;
+ PFNGLVERTEXATTRIB3FVPROC VertexAttrib3fv;
+ PFNGLVERTEXATTRIB3FVARBPROC VertexAttrib3fvARB;
+ PFNGLVERTEXATTRIB3FVNVPROC VertexAttrib3fvNV;
+ PFNGLVERTEXATTRIB3HNVPROC VertexAttrib3hNV;
+ PFNGLVERTEXATTRIB3HVNVPROC VertexAttrib3hvNV;
+ PFNGLVERTEXATTRIB3SPROC VertexAttrib3s;
+ PFNGLVERTEXATTRIB3SARBPROC VertexAttrib3sARB;
+ PFNGLVERTEXATTRIB3SNVPROC VertexAttrib3sNV;
+ PFNGLVERTEXATTRIB3SVPROC VertexAttrib3sv;
+ PFNGLVERTEXATTRIB3SVARBPROC VertexAttrib3svARB;
+ PFNGLVERTEXATTRIB3SVNVPROC VertexAttrib3svNV;
+ PFNGLVERTEXATTRIB4NBVPROC VertexAttrib4Nbv;
+ PFNGLVERTEXATTRIB4NBVARBPROC VertexAttrib4NbvARB;
+ PFNGLVERTEXATTRIB4NIVPROC VertexAttrib4Niv;
+ PFNGLVERTEXATTRIB4NIVARBPROC VertexAttrib4NivARB;
+ PFNGLVERTEXATTRIB4NSVPROC VertexAttrib4Nsv;
+ PFNGLVERTEXATTRIB4NSVARBPROC VertexAttrib4NsvARB;
+ PFNGLVERTEXATTRIB4NUBPROC VertexAttrib4Nub;
+ PFNGLVERTEXATTRIB4NUBARBPROC VertexAttrib4NubARB;
+ PFNGLVERTEXATTRIB4NUBVPROC VertexAttrib4Nubv;
+ PFNGLVERTEXATTRIB4NUBVARBPROC VertexAttrib4NubvARB;
+ PFNGLVERTEXATTRIB4NUIVPROC VertexAttrib4Nuiv;
+ PFNGLVERTEXATTRIB4NUIVARBPROC VertexAttrib4NuivARB;
+ PFNGLVERTEXATTRIB4NUSVPROC VertexAttrib4Nusv;
+ PFNGLVERTEXATTRIB4NUSVARBPROC VertexAttrib4NusvARB;
+ PFNGLVERTEXATTRIB4BVPROC VertexAttrib4bv;
+ PFNGLVERTEXATTRIB4BVARBPROC VertexAttrib4bvARB;
+ PFNGLVERTEXATTRIB4DPROC VertexAttrib4d;
+ PFNGLVERTEXATTRIB4DARBPROC VertexAttrib4dARB;
+ PFNGLVERTEXATTRIB4DNVPROC VertexAttrib4dNV;
+ PFNGLVERTEXATTRIB4DVPROC VertexAttrib4dv;
+ PFNGLVERTEXATTRIB4DVARBPROC VertexAttrib4dvARB;
+ PFNGLVERTEXATTRIB4DVNVPROC VertexAttrib4dvNV;
+ PFNGLVERTEXATTRIB4FPROC VertexAttrib4f;
+ PFNGLVERTEXATTRIB4FARBPROC VertexAttrib4fARB;
+ PFNGLVERTEXATTRIB4FNVPROC VertexAttrib4fNV;
+ PFNGLVERTEXATTRIB4FVPROC VertexAttrib4fv;
+ PFNGLVERTEXATTRIB4FVARBPROC VertexAttrib4fvARB;
+ PFNGLVERTEXATTRIB4FVNVPROC VertexAttrib4fvNV;
+ PFNGLVERTEXATTRIB4HNVPROC VertexAttrib4hNV;
+ PFNGLVERTEXATTRIB4HVNVPROC VertexAttrib4hvNV;
+ PFNGLVERTEXATTRIB4IVPROC VertexAttrib4iv;
+ PFNGLVERTEXATTRIB4IVARBPROC VertexAttrib4ivARB;
+ PFNGLVERTEXATTRIB4SPROC VertexAttrib4s;
+ PFNGLVERTEXATTRIB4SARBPROC VertexAttrib4sARB;
+ PFNGLVERTEXATTRIB4SNVPROC VertexAttrib4sNV;
+ PFNGLVERTEXATTRIB4SVPROC VertexAttrib4sv;
+ PFNGLVERTEXATTRIB4SVARBPROC VertexAttrib4svARB;
+ PFNGLVERTEXATTRIB4SVNVPROC VertexAttrib4svNV;
+ PFNGLVERTEXATTRIB4UBNVPROC VertexAttrib4ubNV;
+ PFNGLVERTEXATTRIB4UBVPROC VertexAttrib4ubv;
+ PFNGLVERTEXATTRIB4UBVARBPROC VertexAttrib4ubvARB;
+ PFNGLVERTEXATTRIB4UBVNVPROC VertexAttrib4ubvNV;
+ PFNGLVERTEXATTRIB4UIVPROC VertexAttrib4uiv;
+ PFNGLVERTEXATTRIB4UIVARBPROC VertexAttrib4uivARB;
+ PFNGLVERTEXATTRIB4USVPROC VertexAttrib4usv;
+ PFNGLVERTEXATTRIB4USVARBPROC VertexAttrib4usvARB;
+ PFNGLVERTEXATTRIBARRAYOBJECTATIPROC VertexAttribArrayObjectATI;
+ PFNGLVERTEXATTRIBBINDINGPROC VertexAttribBinding;
+ PFNGLVERTEXATTRIBDIVISORPROC VertexAttribDivisor;
+ PFNGLVERTEXATTRIBDIVISORARBPROC VertexAttribDivisorARB;
+ PFNGLVERTEXATTRIBFORMATPROC VertexAttribFormat;
+ PFNGLVERTEXATTRIBFORMATNVPROC VertexAttribFormatNV;
+ PFNGLVERTEXATTRIBI1IPROC VertexAttribI1i;
+ PFNGLVERTEXATTRIBI1IEXTPROC VertexAttribI1iEXT;
+ PFNGLVERTEXATTRIBI1IVPROC VertexAttribI1iv;
+ PFNGLVERTEXATTRIBI1IVEXTPROC VertexAttribI1ivEXT;
+ PFNGLVERTEXATTRIBI1UIPROC VertexAttribI1ui;
+ PFNGLVERTEXATTRIBI1UIEXTPROC VertexAttribI1uiEXT;
+ PFNGLVERTEXATTRIBI1UIVPROC VertexAttribI1uiv;
+ PFNGLVERTEXATTRIBI1UIVEXTPROC VertexAttribI1uivEXT;
+ PFNGLVERTEXATTRIBI2IPROC VertexAttribI2i;
+ PFNGLVERTEXATTRIBI2IEXTPROC VertexAttribI2iEXT;
+ PFNGLVERTEXATTRIBI2IVPROC VertexAttribI2iv;
+ PFNGLVERTEXATTRIBI2IVEXTPROC VertexAttribI2ivEXT;
+ PFNGLVERTEXATTRIBI2UIPROC VertexAttribI2ui;
+ PFNGLVERTEXATTRIBI2UIEXTPROC VertexAttribI2uiEXT;
+ PFNGLVERTEXATTRIBI2UIVPROC VertexAttribI2uiv;
+ PFNGLVERTEXATTRIBI2UIVEXTPROC VertexAttribI2uivEXT;
+ PFNGLVERTEXATTRIBI3IPROC VertexAttribI3i;
+ PFNGLVERTEXATTRIBI3IEXTPROC VertexAttribI3iEXT;
+ PFNGLVERTEXATTRIBI3IVPROC VertexAttribI3iv;
+ PFNGLVERTEXATTRIBI3IVEXTPROC VertexAttribI3ivEXT;
+ PFNGLVERTEXATTRIBI3UIPROC VertexAttribI3ui;
+ PFNGLVERTEXATTRIBI3UIEXTPROC VertexAttribI3uiEXT;
+ PFNGLVERTEXATTRIBI3UIVPROC VertexAttribI3uiv;
+ PFNGLVERTEXATTRIBI3UIVEXTPROC VertexAttribI3uivEXT;
+ PFNGLVERTEXATTRIBI4BVPROC VertexAttribI4bv;
+ PFNGLVERTEXATTRIBI4BVEXTPROC VertexAttribI4bvEXT;
+ PFNGLVERTEXATTRIBI4IPROC VertexAttribI4i;
+ PFNGLVERTEXATTRIBI4IEXTPROC VertexAttribI4iEXT;
+ PFNGLVERTEXATTRIBI4IVPROC VertexAttribI4iv;
+ PFNGLVERTEXATTRIBI4IVEXTPROC VertexAttribI4ivEXT;
+ PFNGLVERTEXATTRIBI4SVPROC VertexAttribI4sv;
+ PFNGLVERTEXATTRIBI4SVEXTPROC VertexAttribI4svEXT;
+ PFNGLVERTEXATTRIBI4UBVPROC VertexAttribI4ubv;
+ PFNGLVERTEXATTRIBI4UBVEXTPROC VertexAttribI4ubvEXT;
+ PFNGLVERTEXATTRIBI4UIPROC VertexAttribI4ui;
+ PFNGLVERTEXATTRIBI4UIEXTPROC VertexAttribI4uiEXT;
+ PFNGLVERTEXATTRIBI4UIVPROC VertexAttribI4uiv;
+ PFNGLVERTEXATTRIBI4UIVEXTPROC VertexAttribI4uivEXT;
+ PFNGLVERTEXATTRIBI4USVPROC VertexAttribI4usv;
+ PFNGLVERTEXATTRIBI4USVEXTPROC VertexAttribI4usvEXT;
+ PFNGLVERTEXATTRIBIFORMATPROC VertexAttribIFormat;
+ PFNGLVERTEXATTRIBIFORMATNVPROC VertexAttribIFormatNV;
+ PFNGLVERTEXATTRIBIPOINTERPROC VertexAttribIPointer;
+ PFNGLVERTEXATTRIBIPOINTEREXTPROC VertexAttribIPointerEXT;
+ PFNGLVERTEXATTRIBL1DPROC VertexAttribL1d;
+ PFNGLVERTEXATTRIBL1DEXTPROC VertexAttribL1dEXT;
+ PFNGLVERTEXATTRIBL1DVPROC VertexAttribL1dv;
+ PFNGLVERTEXATTRIBL1DVEXTPROC VertexAttribL1dvEXT;
+ PFNGLVERTEXATTRIBL1I64NVPROC VertexAttribL1i64NV;
+ PFNGLVERTEXATTRIBL1I64VNVPROC VertexAttribL1i64vNV;
+ PFNGLVERTEXATTRIBL1UI64ARBPROC VertexAttribL1ui64ARB;
+ PFNGLVERTEXATTRIBL1UI64NVPROC VertexAttribL1ui64NV;
+ PFNGLVERTEXATTRIBL1UI64VARBPROC VertexAttribL1ui64vARB;
+ PFNGLVERTEXATTRIBL1UI64VNVPROC VertexAttribL1ui64vNV;
+ PFNGLVERTEXATTRIBL2DPROC VertexAttribL2d;
+ PFNGLVERTEXATTRIBL2DEXTPROC VertexAttribL2dEXT;
+ PFNGLVERTEXATTRIBL2DVPROC VertexAttribL2dv;
+ PFNGLVERTEXATTRIBL2DVEXTPROC VertexAttribL2dvEXT;
+ PFNGLVERTEXATTRIBL2I64NVPROC VertexAttribL2i64NV;
+ PFNGLVERTEXATTRIBL2I64VNVPROC VertexAttribL2i64vNV;
+ PFNGLVERTEXATTRIBL2UI64NVPROC VertexAttribL2ui64NV;
+ PFNGLVERTEXATTRIBL2UI64VNVPROC VertexAttribL2ui64vNV;
+ PFNGLVERTEXATTRIBL3DPROC VertexAttribL3d;
+ PFNGLVERTEXATTRIBL3DEXTPROC VertexAttribL3dEXT;
+ PFNGLVERTEXATTRIBL3DVPROC VertexAttribL3dv;
+ PFNGLVERTEXATTRIBL3DVEXTPROC VertexAttribL3dvEXT;
+ PFNGLVERTEXATTRIBL3I64NVPROC VertexAttribL3i64NV;
+ PFNGLVERTEXATTRIBL3I64VNVPROC VertexAttribL3i64vNV;
+ PFNGLVERTEXATTRIBL3UI64NVPROC VertexAttribL3ui64NV;
+ PFNGLVERTEXATTRIBL3UI64VNVPROC VertexAttribL3ui64vNV;
+ PFNGLVERTEXATTRIBL4DPROC VertexAttribL4d;
+ PFNGLVERTEXATTRIBL4DEXTPROC VertexAttribL4dEXT;
+ PFNGLVERTEXATTRIBL4DVPROC VertexAttribL4dv;
+ PFNGLVERTEXATTRIBL4DVEXTPROC VertexAttribL4dvEXT;
+ PFNGLVERTEXATTRIBL4I64NVPROC VertexAttribL4i64NV;
+ PFNGLVERTEXATTRIBL4I64VNVPROC VertexAttribL4i64vNV;
+ PFNGLVERTEXATTRIBL4UI64NVPROC VertexAttribL4ui64NV;
+ PFNGLVERTEXATTRIBL4UI64VNVPROC VertexAttribL4ui64vNV;
+ PFNGLVERTEXATTRIBLFORMATPROC VertexAttribLFormat;
+ PFNGLVERTEXATTRIBLFORMATNVPROC VertexAttribLFormatNV;
+ PFNGLVERTEXATTRIBLPOINTERPROC VertexAttribLPointer;
+ PFNGLVERTEXATTRIBLPOINTEREXTPROC VertexAttribLPointerEXT;
+ PFNGLVERTEXATTRIBP1UIPROC VertexAttribP1ui;
+ PFNGLVERTEXATTRIBP1UIVPROC VertexAttribP1uiv;
+ PFNGLVERTEXATTRIBP2UIPROC VertexAttribP2ui;
+ PFNGLVERTEXATTRIBP2UIVPROC VertexAttribP2uiv;
+ PFNGLVERTEXATTRIBP3UIPROC VertexAttribP3ui;
+ PFNGLVERTEXATTRIBP3UIVPROC VertexAttribP3uiv;
+ PFNGLVERTEXATTRIBP4UIPROC VertexAttribP4ui;
+ PFNGLVERTEXATTRIBP4UIVPROC VertexAttribP4uiv;
+ PFNGLVERTEXATTRIBPARAMETERIAMDPROC VertexAttribParameteriAMD;
+ PFNGLVERTEXATTRIBPOINTERPROC VertexAttribPointer;
+ PFNGLVERTEXATTRIBPOINTERARBPROC VertexAttribPointerARB;
+ PFNGLVERTEXATTRIBPOINTERNVPROC VertexAttribPointerNV;
+ PFNGLVERTEXATTRIBS1DVNVPROC VertexAttribs1dvNV;
+ PFNGLVERTEXATTRIBS1FVNVPROC VertexAttribs1fvNV;
+ PFNGLVERTEXATTRIBS1HVNVPROC VertexAttribs1hvNV;
+ PFNGLVERTEXATTRIBS1SVNVPROC VertexAttribs1svNV;
+ PFNGLVERTEXATTRIBS2DVNVPROC VertexAttribs2dvNV;
+ PFNGLVERTEXATTRIBS2FVNVPROC VertexAttribs2fvNV;
+ PFNGLVERTEXATTRIBS2HVNVPROC VertexAttribs2hvNV;
+ PFNGLVERTEXATTRIBS2SVNVPROC VertexAttribs2svNV;
+ PFNGLVERTEXATTRIBS3DVNVPROC VertexAttribs3dvNV;
+ PFNGLVERTEXATTRIBS3FVNVPROC VertexAttribs3fvNV;
+ PFNGLVERTEXATTRIBS3HVNVPROC VertexAttribs3hvNV;
+ PFNGLVERTEXATTRIBS3SVNVPROC VertexAttribs3svNV;
+ PFNGLVERTEXATTRIBS4DVNVPROC VertexAttribs4dvNV;
+ PFNGLVERTEXATTRIBS4FVNVPROC VertexAttribs4fvNV;
+ PFNGLVERTEXATTRIBS4HVNVPROC VertexAttribs4hvNV;
+ PFNGLVERTEXATTRIBS4SVNVPROC VertexAttribs4svNV;
+ PFNGLVERTEXATTRIBS4UBVNVPROC VertexAttribs4ubvNV;
+ PFNGLVERTEXBINDINGDIVISORPROC VertexBindingDivisor;
+ PFNGLVERTEXBLENDARBPROC VertexBlendARB;
+ PFNGLVERTEXBLENDENVFATIPROC VertexBlendEnvfATI;
+ PFNGLVERTEXBLENDENVIATIPROC VertexBlendEnviATI;
+ PFNGLVERTEXFORMATNVPROC VertexFormatNV;
+ PFNGLVERTEXPOINTEREXTPROC VertexPointerEXT;
+ PFNGLVERTEXPOINTERLISTIBMPROC VertexPointerListIBM;
+ PFNGLVERTEXPOINTERVINTELPROC VertexPointervINTEL;
+ PFNGLVERTEXSTREAM1DATIPROC VertexStream1dATI;
+ PFNGLVERTEXSTREAM1DVATIPROC VertexStream1dvATI;
+ PFNGLVERTEXSTREAM1FATIPROC VertexStream1fATI;
+ PFNGLVERTEXSTREAM1FVATIPROC VertexStream1fvATI;
+ PFNGLVERTEXSTREAM1IATIPROC VertexStream1iATI;
+ PFNGLVERTEXSTREAM1IVATIPROC VertexStream1ivATI;
+ PFNGLVERTEXSTREAM1SATIPROC VertexStream1sATI;
+ PFNGLVERTEXSTREAM1SVATIPROC VertexStream1svATI;
+ PFNGLVERTEXSTREAM2DATIPROC VertexStream2dATI;
+ PFNGLVERTEXSTREAM2DVATIPROC VertexStream2dvATI;
+ PFNGLVERTEXSTREAM2FATIPROC VertexStream2fATI;
+ PFNGLVERTEXSTREAM2FVATIPROC VertexStream2fvATI;
+ PFNGLVERTEXSTREAM2IATIPROC VertexStream2iATI;
+ PFNGLVERTEXSTREAM2IVATIPROC VertexStream2ivATI;
+ PFNGLVERTEXSTREAM2SATIPROC VertexStream2sATI;
+ PFNGLVERTEXSTREAM2SVATIPROC VertexStream2svATI;
+ PFNGLVERTEXSTREAM3DATIPROC VertexStream3dATI;
+ PFNGLVERTEXSTREAM3DVATIPROC VertexStream3dvATI;
+ PFNGLVERTEXSTREAM3FATIPROC VertexStream3fATI;
+ PFNGLVERTEXSTREAM3FVATIPROC VertexStream3fvATI;
+ PFNGLVERTEXSTREAM3IATIPROC VertexStream3iATI;
+ PFNGLVERTEXSTREAM3IVATIPROC VertexStream3ivATI;
+ PFNGLVERTEXSTREAM3SATIPROC VertexStream3sATI;
+ PFNGLVERTEXSTREAM3SVATIPROC VertexStream3svATI;
+ PFNGLVERTEXSTREAM4DATIPROC VertexStream4dATI;
+ PFNGLVERTEXSTREAM4DVATIPROC VertexStream4dvATI;
+ PFNGLVERTEXSTREAM4FATIPROC VertexStream4fATI;
+ PFNGLVERTEXSTREAM4FVATIPROC VertexStream4fvATI;
+ PFNGLVERTEXSTREAM4IATIPROC VertexStream4iATI;
+ PFNGLVERTEXSTREAM4IVATIPROC VertexStream4ivATI;
+ PFNGLVERTEXSTREAM4SATIPROC VertexStream4sATI;
+ PFNGLVERTEXSTREAM4SVATIPROC VertexStream4svATI;
+ PFNGLVERTEXWEIGHTPOINTEREXTPROC VertexWeightPointerEXT;
+ PFNGLVERTEXWEIGHTFEXTPROC VertexWeightfEXT;
+ PFNGLVERTEXWEIGHTFVEXTPROC VertexWeightfvEXT;
+ PFNGLVERTEXWEIGHTHNVPROC VertexWeighthNV;
+ PFNGLVERTEXWEIGHTHVNVPROC VertexWeighthvNV;
+ PFNGLVIDEOCAPTURENVPROC VideoCaptureNV;
+ PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC VideoCaptureStreamParameterdvNV;
+ PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC VideoCaptureStreamParameterfvNV;
+ PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC VideoCaptureStreamParameterivNV;
+ PFNGLVIEWPORTPROC Viewport;
+ PFNGLVIEWPORTARRAYVPROC ViewportArrayv;
+ PFNGLVIEWPORTINDEXEDFPROC ViewportIndexedf;
+ PFNGLVIEWPORTINDEXEDFVPROC ViewportIndexedfv;
+ PFNGLVIEWPORTPOSITIONWSCALENVPROC ViewportPositionWScaleNV;
+ PFNGLVIEWPORTSWIZZLENVPROC ViewportSwizzleNV;
+ PFNGLWAITSEMAPHOREEXTPROC WaitSemaphoreEXT;
+ PFNGLWAITSEMAPHOREUI64NVXPROC WaitSemaphoreui64NVX;
+ PFNGLWAITSYNCPROC WaitSync;
+ PFNGLWAITVKSEMAPHORENVPROC WaitVkSemaphoreNV;
+ PFNGLWEIGHTPATHSNVPROC WeightPathsNV;
+ PFNGLWEIGHTPOINTERARBPROC WeightPointerARB;
+ PFNGLWEIGHTBVARBPROC WeightbvARB;
+ PFNGLWEIGHTDVARBPROC WeightdvARB;
+ PFNGLWEIGHTFVARBPROC WeightfvARB;
+ PFNGLWEIGHTIVARBPROC WeightivARB;
+ PFNGLWEIGHTSVARBPROC WeightsvARB;
+ PFNGLWEIGHTUBVARBPROC WeightubvARB;
+ PFNGLWEIGHTUIVARBPROC WeightuivARB;
+ PFNGLWEIGHTUSVARBPROC WeightusvARB;
+ PFNGLWINDOWPOS2DARBPROC WindowPos2dARB;
+ PFNGLWINDOWPOS2DMESAPROC WindowPos2dMESA;
+ PFNGLWINDOWPOS2DVARBPROC WindowPos2dvARB;
+ PFNGLWINDOWPOS2DVMESAPROC WindowPos2dvMESA;
+ PFNGLWINDOWPOS2FARBPROC WindowPos2fARB;
+ PFNGLWINDOWPOS2FMESAPROC WindowPos2fMESA;
+ PFNGLWINDOWPOS2FVARBPROC WindowPos2fvARB;
+ PFNGLWINDOWPOS2FVMESAPROC WindowPos2fvMESA;
+ PFNGLWINDOWPOS2IARBPROC WindowPos2iARB;
+ PFNGLWINDOWPOS2IMESAPROC WindowPos2iMESA;
+ PFNGLWINDOWPOS2IVARBPROC WindowPos2ivARB;
+ PFNGLWINDOWPOS2IVMESAPROC WindowPos2ivMESA;
+ PFNGLWINDOWPOS2SARBPROC WindowPos2sARB;
+ PFNGLWINDOWPOS2SMESAPROC WindowPos2sMESA;
+ PFNGLWINDOWPOS2SVARBPROC WindowPos2svARB;
+ PFNGLWINDOWPOS2SVMESAPROC WindowPos2svMESA;
+ PFNGLWINDOWPOS3DARBPROC WindowPos3dARB;
+ PFNGLWINDOWPOS3DMESAPROC WindowPos3dMESA;
+ PFNGLWINDOWPOS3DVARBPROC WindowPos3dvARB;
+ PFNGLWINDOWPOS3DVMESAPROC WindowPos3dvMESA;
+ PFNGLWINDOWPOS3FARBPROC WindowPos3fARB;
+ PFNGLWINDOWPOS3FMESAPROC WindowPos3fMESA;
+ PFNGLWINDOWPOS3FVARBPROC WindowPos3fvARB;
+ PFNGLWINDOWPOS3FVMESAPROC WindowPos3fvMESA;
+ PFNGLWINDOWPOS3IARBPROC WindowPos3iARB;
+ PFNGLWINDOWPOS3IMESAPROC WindowPos3iMESA;
+ PFNGLWINDOWPOS3IVARBPROC WindowPos3ivARB;
+ PFNGLWINDOWPOS3IVMESAPROC WindowPos3ivMESA;
+ PFNGLWINDOWPOS3SARBPROC WindowPos3sARB;
+ PFNGLWINDOWPOS3SMESAPROC WindowPos3sMESA;
+ PFNGLWINDOWPOS3SVARBPROC WindowPos3svARB;
+ PFNGLWINDOWPOS3SVMESAPROC WindowPos3svMESA;
+ PFNGLWINDOWPOS4DMESAPROC WindowPos4dMESA;
+ PFNGLWINDOWPOS4DVMESAPROC WindowPos4dvMESA;
+ PFNGLWINDOWPOS4FMESAPROC WindowPos4fMESA;
+ PFNGLWINDOWPOS4FVMESAPROC WindowPos4fvMESA;
+ PFNGLWINDOWPOS4IMESAPROC WindowPos4iMESA;
+ PFNGLWINDOWPOS4IVMESAPROC WindowPos4ivMESA;
+ PFNGLWINDOWPOS4SMESAPROC WindowPos4sMESA;
+ PFNGLWINDOWPOS4SVMESAPROC WindowPos4svMESA;
+ PFNGLWINDOWRECTANGLESEXTPROC WindowRectanglesEXT;
+ PFNGLWRITEMASKEXTPROC WriteMaskEXT;
+} GladGLContext;
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/StgSharp.C/glfw3.h b/StgSharp.C/glfw3.h
new file mode 100644
index 00000000..d4215c17
--- /dev/null
+++ b/StgSharp.C/glfw3.h
@@ -0,0 +1,6440 @@
+/*************************************************************************
+ * GLFW 3.4 - www.glfw->org
+ * A library for OpenGL, window and input
+ *------------------------------------------------------------------------
+ * Copyright (c) 2002-2006 Marcus Geelnard
+ * Copyright (c) 2006-2019 Camilla Löwy org>
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would
+ * be appreciated but is not required.
+ *
+ * 2. Altered source versions must be plainly marked as such, and must not
+ * be misrepresented as being the original software.
+ *
+ * 3. This notice may not be removed or altered from any source
+ * distribution.
+ *
+ *************************************************************************/
+
+#ifndef _glfw3_h_
+#define _glfw3_h_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+ /*************************************************************************
+ * Doxygen documentation
+ *************************************************************************/
+
+ /*! @file glfw3.h
+ * @brief The header of the GLFW 3 API.
+ *
+ * This is the header file of the GLFW 3 API. It defines all its types and
+ * declares all its functions.
+ *
+ * For more information about how to use this file, see @ref build_include.
+ */
+ /*! @defgroup context Context reference
+ * @brief Functions and types related to OpenGL and OpenGL ES contexts.
+ *
+ * This is the reference documentation for OpenGL and OpenGL ES context related
+ * functions. For more task-oriented information, see the @ref context_guide.
+ */
+ /*! @defgroup vulkan Vulkan support reference
+ * @brief Functions and types related to Vulkan.
+ *
+ * This is the reference documentation for Vulkan related functions and types.
+ * For more task-oriented information, see the @ref vulkan_guide.
+ */
+ /*! @defgroup init Initialization, version and error reference
+ * @brief Functions and types related to initialization and error handling.
+ *
+ * This is the reference documentation for initialization and termination of
+ * the library, version management and error handling. For more task-oriented
+ * information, see the @ref intro_guide.
+ */
+ /*! @defgroup input Input reference
+ * @brief Functions and types related to input handling.
+ *
+ * This is the reference documentation for input related functions and types.
+ * For more task-oriented information, see the @ref input_guide.
+ */
+ /*! @defgroup monitor Monitor reference
+ * @brief Functions and types related to monitors.
+ *
+ * This is the reference documentation for monitor related functions and types.
+ * For more task-oriented information, see the @ref monitor_guide.
+ */
+ /*! @defgroup window Window reference
+ * @brief Functions and types related to windows.
+ *
+ * This is the reference documentation for window related functions and types,
+ * including creation, deletion and event polling. For more task-oriented
+ * information, see the @ref window_guide.
+ */
+
+
+ /*************************************************************************
+ * Compiler- and platform-specific preprocessor work
+ *************************************************************************/
+
+ /* If we are we on Windows, we want a single define for it.
+ */
+#if !defined(_WIN32) && (defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__))
+#define _WIN32
+#endif /* _WIN32 */
+
+ /* Include because most Windows GLU headers need wchar_t and
+ * the macOS OpenGL header blocks the definition of ptrdiff_t by glext.h.
+ * Include it unconditionally to avoid surprising side-effects.
+ */
+#include
+
+ /* Include because it is needed by Vulkan and related functions.
+ * Include it unconditionally to avoid surprising side-effects.
+ */
+#include
+
+#if defined(GLFW_INCLUDE_VULKAN)
+#include
+#endif /* Vulkan header */
+
+ /* The Vulkan header may have indirectly included windows.h (because of
+ * VK_USE_PLATFORM_WIN32_KHR) so we offer our replacement symbols after it.
+ */
+
+ /* It is customary to use APIENTRY for OpenGL function pointer declarations on
+ * all platforms. Additionally, the Windows OpenGL header needs APIENTRY.
+ */
+#if !defined(APIENTRY)
+#if defined(_WIN32)
+#define APIENTRY _stdcall
+#else
+#define APIENTRY
+#endif
+#define GLFW_APIENTRY_DEFINED
+#endif /* APIENTRY */
+
+ /* Some Windows OpenGL headers need this.
+ */
+#if !defined(WINGDIAPI) && defined(_WIN32)
+#define WINGDIAPI __declspec(dllimport)
+#define GLFW_WINGDIAPI_DEFINED
+#endif /* WINGDIAPI */
+
+ /* Some Windows GLU headers need this.
+ */
+#if !defined(CALLBACK) && defined(_WIN32)
+#define CALLBACK __stdcall
+#define GLFW_CALLBACK_DEFINED
+#endif /* CALLBACK */
+
+ /* Include the chosen OpenGL or OpenGL ES headers.
+ */
+#if defined(GLFW_INCLUDE_ES1)
+
+#include
+#if defined(GLFW_INCLUDE_GLEXT)
+#include
+#endif
+
+#elif defined(GLFW_INCLUDE_ES2)
+
+#include
+#if defined(GLFW_INCLUDE_GLEXT)
+#include
+#endif
+
+#elif defined(GLFW_INCLUDE_ES3)
+
+#include
+#if defined(GLFW_INCLUDE_GLEXT)
+#include
+#endif
+
+#elif defined(GLFW_INCLUDE_ES31)
+
+#include
+#if defined(GLFW_INCLUDE_GLEXT)
+#include
+#endif
+
+#elif defined(GLFW_INCLUDE_ES32)
+
+#include
+#if defined(GLFW_INCLUDE_GLEXT)
+#include
+#endif
+
+#elif defined(GLFW_INCLUDE_GLCOREARB)
+
+#if defined(__APPLE__)
+
+#include
+#if defined(GLFW_INCLUDE_GLEXT)
+#include
+#endif /*GLFW_INCLUDE_GLEXT*/
+
+#else /*__APPLE__*/
+
+#include
+#if defined(GLFW_INCLUDE_GLEXT)
+#include
+#endif
+
+#endif /*__APPLE__*/
+
+#elif defined(GLFW_INCLUDE_GLU)
+
+#if defined(__APPLE__)
+
+#if defined(GLFW_INCLUDE_GLU)
+#include
+#endif
+
+#else /*__APPLE__*/
+
+#if defined(GLFW_INCLUDE_GLU)
+#include
+#endif
+
+#endif /*__APPLE__*/
+
+#elif !defined(GLFW_INCLUDE_NONE) && \
+ !defined(__gl_h_) && \
+ !defined(__gles1_gl_h_) && \
+ !defined(__gles2_gl2_h_) && \
+ !defined(__gles2_gl3_h_) && \
+ !defined(__gles2_gl31_h_) && \
+ !defined(__gles2_gl32_h_) && \
+ !defined(__gl_glcorearb_h_) && \
+ !defined(__gl2_h_) /*legacy*/ && \
+ !defined(__gl3_h_) /*legacy*/ && \
+ !defined(__gl31_h_) /*legacy*/ && \
+ !defined(__gl32_h_) /*legacy*/ && \
+ !defined(__glcorearb_h_) /*legacy*/ && \
+ !defined(__GL_H__) /*non-standard*/ && \
+ !defined(__gltypes_h_) /*non-standard*/ && \
+ !defined(__glee_h_) /*non-standard*/
+
+#if defined(__APPLE__)
+
+#if !defined(GLFW_INCLUDE_GLEXT)
+#define GL_GLEXT_LEGACY
+#endif
+#include
+
+#else /*__APPLE__*/
+
+#include
+#if defined(GLFW_INCLUDE_GLEXT)
+#include
+#endif
+
+#endif /*__APPLE__*/
+
+#endif /* OpenGL and OpenGL ES headers */
+
+#ifndef SSCAPI
+
+#include "ssgc_internal.h"
+
+#endif // ! SSCAPI
+
+
+
+ //#if defined(GLFW_DLL) && defined(_GLFW_BUILD_DLL)
+ // /* GLFW_DLL must be defined by applications that are linking against the DLL
+ // * version of the GLFW library. _GLFW_BUILD_DLL is defined by the GLFW
+ // * configuration header when compiling the DLL version of the library.
+ // */
+ //#error "You must not have both GLFW_DLL and _GLFW_BUILD_DLL defined"
+ //#endif
+ //
+ // /* SSCAPI is used to declare public API functions for export
+ // * from the DLL / shared library / dynamic library.
+ // */
+ //#if defined(_WIN32) && defined(_GLFW_BUILD_DLL)
+ /* We are building GLFW as a Win32 DLL */
+ //#define SSCAPI __declspec(dllexport)
+ //#elif defined(_WIN32) && defined(GLFW_DLL)
+ /* We are calling a GLFW Win32 DLL */
+ //#define SSCAPI __declspec(dllimport)
+ //#elif defined(__GNUC__) && defined(_GLFW_BUILD_DLL)
+ /* We are building GLFW as a Unix shared library */
+ //#define SSCAPI __attribute__((visibility("default")))
+ //#else
+ //#define SSCAPI
+ //#endif
+
+
+/*************************************************************************
+ * GLFW API tokens
+ *************************************************************************/
+
+ /*! @name GLFW version macros
+ * @{ */
+ /*! @brief The major version number of the GLFW header.
+ *
+ * The major version number of the GLFW header. This is incremented when the
+ * API is changed in non-compatible ways.
+ * @ingroup init
+ */
+#define GLFW_VERSION_MAJOR 3
+ /*! @brief The minor version number of the GLFW header.
+ *
+ * The minor version number of the GLFW header. This is incremented when
+ * features are added to the API but it remains backward-compatible.
+ * @ingroup init
+ */
+#define GLFW_VERSION_MINOR 4
+ /*! @brief The revision number of the GLFW header.
+ *
+ * The revision number of the GLFW header. This is incremented when a bug fix
+ * release is made that does not contain any API changes.
+ * @ingroup init
+ */
+#define GLFW_VERSION_REVISION 0
+ /*! @} */
+
+ /*! @brief One.
+ *
+ * This is only semantic sugar for the number 1. You can instead use `1` or
+ * `true` or `_True` or `GL_TRUE` or `VK_TRUE` or anything else that is equal
+ * to one.
+ *
+ * @ingroup init
+ */
+#define GLFW_TRUE 1
+ /*! @brief Zero.
+ *
+ * This is only semantic sugar for the number 0. You can instead use `0` or
+ * `false` or `_False` or `GL_FALSE` or `VK_FALSE` or anything else that is
+ * equal to zero.
+ *
+ * @ingroup init
+ */
+#define GLFW_FALSE 0
+
+ /*! @name Key and button actions
+ * @{ */
+ /*! @brief The key or mouse button was released.
+ *
+ * The key or mouse button was released.
+ *
+ * @ingroup input
+ */
+#define GLFW_RELEASE 0
+ /*! @brief The key or mouse button was pressed.
+ *
+ * The key or mouse button was pressed.
+ *
+ * @ingroup input
+ */
+#define GLFW_PRESS 1
+ /*! @brief The key was held down until it repeated.
+ *
+ * The key was held down until it repeated.
+ *
+ * @ingroup input
+ */
+#define GLFW_REPEAT 2
+ /*! @} */
+
+ /*! @defgroup hat_state Joystick hat states
+ * @brief Joystick hat states.
+ *
+ * See [joystick hat input](@ref joystick_hat) for how these are used.
+ *
+ * @ingroup input
+ * @{ */
+#define GLFW_HAT_CENTERED 0
+#define GLFW_HAT_UP 1
+#define GLFW_HAT_RIGHT 2
+#define GLFW_HAT_DOWN 4
+#define GLFW_HAT_LEFT 8
+#define GLFW_HAT_RIGHT_UP (GLFW_HAT_RIGHT | GLFW_HAT_UP)
+#define GLFW_HAT_RIGHT_DOWN (GLFW_HAT_RIGHT | GLFW_HAT_DOWN)
+#define GLFW_HAT_LEFT_UP (GLFW_HAT_LEFT | GLFW_HAT_UP)
+#define GLFW_HAT_LEFT_DOWN (GLFW_HAT_LEFT | GLFW_HAT_DOWN)
+ /*! @} */
+
+ /*! @defgroup keys Keyboard keys
+ * @brief Keyboard key IDs.
+ *
+ * See [key input](@ref input_key) for how these are used.
+ *
+ * These key codes are inspired by the _USB HID Usage Tables v1.12_ (p. 53-60),
+ * but re-arranged to map to 7-bit ASCII for printable keys (function keys are
+ * put in the 256+ range).
+ *
+ * The naming of the key codes follow these rules:
+ * - The US keyboard layout is used
+ * - Names of printable alphanumeric characters are used (e.g. "A", "R",
+ * "3", etc.)
+ * - For non-alphanumeric characters, Unicode:ish names are used (e.g.
+ * "COMMA", "LEFT_SQUARE_BRACKET", etc.). Note that some names do not
+ * correspond to the Unicode standard (usually for brevity)
+ * - Keys that lack a clear US mapping are named "WORLD_x"
+ * - For non-printable keys, custom names are used (e.g. "F4",
+ * "BACKSPACE", etc.)
+ *
+ * @ingroup input
+ * @{
+ */
+
+ /* The unknown key */
+#define GLFW_KEY_UNKNOWN -1
+
+/* Printable keys */
+#define GLFW_KEY_SPACE 32
+#define GLFW_KEY_APOSTROPHE 39 /* ' */
+#define GLFW_KEY_COMMA 44 /* , */
+#define GLFW_KEY_MINUS 45 /* - */
+#define GLFW_KEY_PERIOD 46 /* . */
+#define GLFW_KEY_SLASH 47 /* / */
+#define GLFW_KEY_0 48
+#define GLFW_KEY_1 49
+#define GLFW_KEY_2 50
+#define GLFW_KEY_3 51
+#define GLFW_KEY_4 52
+#define GLFW_KEY_5 53
+#define GLFW_KEY_6 54
+#define GLFW_KEY_7 55
+#define GLFW_KEY_8 56
+#define GLFW_KEY_9 57
+#define GLFW_KEY_SEMICOLON 59 /* ; */
+#define GLFW_KEY_EQUAL 61 /* = */
+#define GLFW_KEY_A 65
+#define GLFW_KEY_B 66
+#define GLFW_KEY_C 67
+#define GLFW_KEY_D 68
+#define GLFW_KEY_E 69
+#define GLFW_KEY_F 70
+#define GLFW_KEY_G 71
+#define GLFW_KEY_H 72
+#define GLFW_KEY_I 73
+#define GLFW_KEY_J 74
+#define GLFW_KEY_K 75
+#define GLFW_KEY_L 76
+#define GLFW_KEY_M 77
+#define GLFW_KEY_N 78
+#define GLFW_KEY_O 79
+#define GLFW_KEY_P 80
+#define GLFW_KEY_Q 81
+#define GLFW_KEY_R 82
+#define GLFW_KEY_S 83
+#define GLFW_KEY_T 84
+#define GLFW_KEY_U 85
+#define GLFW_KEY_V 86
+#define GLFW_KEY_W 87
+#define GLFW_KEY_X 88
+#define GLFW_KEY_Y 89
+#define GLFW_KEY_Z 90
+#define GLFW_KEY_LEFT_BRACKET 91 /* [ */
+#define GLFW_KEY_BACKSLASH 92 /* \ */
+#define GLFW_KEY_RIGHT_BRACKET 93 /* ] */
+#define GLFW_KEY_GRAVE_ACCENT 96 /* ` */
+#define GLFW_KEY_WORLD_1 161 /* non-US #1 */
+#define GLFW_KEY_WORLD_2 162 /* non-US #2 */
+
+/* Function keys */
+#define GLFW_KEY_ESCAPE 256
+#define GLFW_KEY_ENTER 257
+#define GLFW_KEY_TAB 258
+#define GLFW_KEY_BACKSPACE 259
+#define GLFW_KEY_INSERT 260
+#define GLFW_KEY_DELETE 261
+#define GLFW_KEY_RIGHT 262
+#define GLFW_KEY_LEFT 263
+#define GLFW_KEY_DOWN 264
+#define GLFW_KEY_UP 265
+#define GLFW_KEY_PAGE_UP 266
+#define GLFW_KEY_PAGE_DOWN 267
+#define GLFW_KEY_HOME 268
+#define GLFW_KEY_END 269
+#define GLFW_KEY_CAPS_LOCK 280
+#define GLFW_KEY_SCROLL_LOCK 281
+#define GLFW_KEY_NUM_LOCK 282
+#define GLFW_KEY_PRINT_SCREEN 283
+#define GLFW_KEY_PAUSE 284
+#define GLFW_KEY_F1 290
+#define GLFW_KEY_F2 291
+#define GLFW_KEY_F3 292
+#define GLFW_KEY_F4 293
+#define GLFW_KEY_F5 294
+#define GLFW_KEY_F6 295
+#define GLFW_KEY_F7 296
+#define GLFW_KEY_F8 297
+#define GLFW_KEY_F9 298
+#define GLFW_KEY_F10 299
+#define GLFW_KEY_F11 300
+#define GLFW_KEY_F12 301
+#define GLFW_KEY_F13 302
+#define GLFW_KEY_F14 303
+#define GLFW_KEY_F15 304
+#define GLFW_KEY_F16 305
+#define GLFW_KEY_F17 306
+#define GLFW_KEY_F18 307
+#define GLFW_KEY_F19 308
+#define GLFW_KEY_F20 309
+#define GLFW_KEY_F21 310
+#define GLFW_KEY_F22 311
+#define GLFW_KEY_F23 312
+#define GLFW_KEY_F24 313
+#define GLFW_KEY_F25 314
+#define GLFW_KEY_KP_0 320
+#define GLFW_KEY_KP_1 321
+#define GLFW_KEY_KP_2 322
+#define GLFW_KEY_KP_3 323
+#define GLFW_KEY_KP_4 324
+#define GLFW_KEY_KP_5 325
+#define GLFW_KEY_KP_6 326
+#define GLFW_KEY_KP_7 327
+#define GLFW_KEY_KP_8 328
+#define GLFW_KEY_KP_9 329
+#define GLFW_KEY_KP_DECIMAL 330
+#define GLFW_KEY_KP_DIVIDE 331
+#define GLFW_KEY_KP_MULTIPLY 332
+#define GLFW_KEY_KP_SUBTRACT 333
+#define GLFW_KEY_KP_ADD 334
+#define GLFW_KEY_KP_ENTER 335
+#define GLFW_KEY_KP_EQUAL 336
+#define GLFW_KEY_LEFT_SHIFT 340
+#define GLFW_KEY_LEFT_CONTROL 341
+#define GLFW_KEY_LEFT_ALT 342
+#define GLFW_KEY_LEFT_SUPER 343
+#define GLFW_KEY_RIGHT_SHIFT 344
+#define GLFW_KEY_RIGHT_CONTROL 345
+#define GLFW_KEY_RIGHT_ALT 346
+#define GLFW_KEY_RIGHT_SUPER 347
+#define GLFW_KEY_MENU 348
+
+#define GLFW_KEY_LAST GLFW_KEY_MENU
+
+/*! @} */
+
+/*! @defgroup mods Modifier key flags
+ * @brief Modifier key flags.
+ *
+ * See [key input](@ref input_key) for how these are used.
+ *
+ * @ingroup input
+ * @{ */
+
+ /*! @brief If this bit is set one or more Shift keys were held down.
+ *
+ * If this bit is set one or more Shift keys were held down.
+ */
+#define GLFW_MOD_SHIFT 0x0001
+ /*! @brief If this bit is set one or more Control keys were held down.
+ *
+ * If this bit is set one or more Control keys were held down.
+ */
+#define GLFW_MOD_CONTROL 0x0002
+ /*! @brief If this bit is set one or more Alt keys were held down.
+ *
+ * If this bit is set one or more Alt keys were held down.
+ */
+#define GLFW_MOD_ALT 0x0004
+ /*! @brief If this bit is set one or more Super keys were held down.
+ *
+ * If this bit is set one or more Super keys were held down.
+ */
+#define GLFW_MOD_SUPER 0x0008
+ /*! @brief If this bit is set the Caps Lock key is enabled.
+ *
+ * If this bit is set the Caps Lock key is enabled and the @ref
+ * GLFW_LOCK_KEY_MODS input mode is set.
+ */
+#define GLFW_MOD_CAPS_LOCK 0x0010
+ /*! @brief If this bit is set the Num Lock key is enabled.
+ *
+ * If this bit is set the Num Lock key is enabled and the @ref
+ * GLFW_LOCK_KEY_MODS input mode is set.
+ */
+#define GLFW_MOD_NUM_LOCK 0x0020
+
+ /*! @} */
+
+ /*! @defgroup buttons Mouse buttons
+ * @brief Mouse button IDs.
+ *
+ * See [mouse button input](@ref input_mouse_button) for how these are used.
+ *
+ * @ingroup input
+ * @{ */
+#define GLFW_MOUSE_BUTTON_1 0
+#define GLFW_MOUSE_BUTTON_2 1
+#define GLFW_MOUSE_BUTTON_3 2
+#define GLFW_MOUSE_BUTTON_4 3
+#define GLFW_MOUSE_BUTTON_5 4
+#define GLFW_MOUSE_BUTTON_6 5
+#define GLFW_MOUSE_BUTTON_7 6
+#define GLFW_MOUSE_BUTTON_8 7
+#define GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8
+#define GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1
+#define GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2
+#define GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3
+ /*! @} */
+
+ /*! @defgroup joysticks Joysticks
+ * @brief Joystick IDs.
+ *
+ * See [joystick input](@ref joystick) for how these are used.
+ *
+ * @ingroup input
+ * @{ */
+#define GLFW_JOYSTICK_1 0
+#define GLFW_JOYSTICK_2 1
+#define GLFW_JOYSTICK_3 2
+#define GLFW_JOYSTICK_4 3
+#define GLFW_JOYSTICK_5 4
+#define GLFW_JOYSTICK_6 5
+#define GLFW_JOYSTICK_7 6
+#define GLFW_JOYSTICK_8 7
+#define GLFW_JOYSTICK_9 8
+#define GLFW_JOYSTICK_10 9
+#define GLFW_JOYSTICK_11 10
+#define GLFW_JOYSTICK_12 11
+#define GLFW_JOYSTICK_13 12
+#define GLFW_JOYSTICK_14 13
+#define GLFW_JOYSTICK_15 14
+#define GLFW_JOYSTICK_16 15
+#define GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16
+ /*! @} */
+
+ /*! @defgroup gamepad_buttons Gamepad buttons
+ * @brief Gamepad buttons.
+ *
+ * See @ref gamepad for how these are used.
+ *
+ * @ingroup input
+ * @{ */
+#define GLFW_GAMEPAD_BUTTON_A 0
+#define GLFW_GAMEPAD_BUTTON_B 1
+#define GLFW_GAMEPAD_BUTTON_X 2
+#define GLFW_GAMEPAD_BUTTON_Y 3
+#define GLFW_GAMEPAD_BUTTON_LEFT_BUMPER 4
+#define GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER 5
+#define GLFW_GAMEPAD_BUTTON_BACK 6
+#define GLFW_GAMEPAD_BUTTON_START 7
+#define GLFW_GAMEPAD_BUTTON_GUIDE 8
+#define GLFW_GAMEPAD_BUTTON_LEFT_THUMB 9
+#define GLFW_GAMEPAD_BUTTON_RIGHT_THUMB 10
+#define GLFW_GAMEPAD_BUTTON_DPAD_UP 11
+#define GLFW_GAMEPAD_BUTTON_DPAD_RIGHT 12
+#define GLFW_GAMEPAD_BUTTON_DPAD_DOWN 13
+#define GLFW_GAMEPAD_BUTTON_DPAD_LEFT 14
+#define GLFW_GAMEPAD_BUTTON_LAST GLFW_GAMEPAD_BUTTON_DPAD_LEFT
+
+#define GLFW_GAMEPAD_BUTTON_CROSS GLFW_GAMEPAD_BUTTON_A
+#define GLFW_GAMEPAD_BUTTON_CIRCLE GLFW_GAMEPAD_BUTTON_B
+#define GLFW_GAMEPAD_BUTTON_SQUARE GLFW_GAMEPAD_BUTTON_X
+#define GLFW_GAMEPAD_BUTTON_TRIANGLE GLFW_GAMEPAD_BUTTON_Y
+ /*! @} */
+
+ /*! @defgroup gamepad_axes Gamepad axes
+ * @brief Gamepad axes.
+ *
+ * See @ref gamepad for how these are used.
+ *
+ * @ingroup input
+ * @{ */
+#define GLFW_GAMEPAD_AXIS_LEFT_X 0
+#define GLFW_GAMEPAD_AXIS_LEFT_Y 1
+#define GLFW_GAMEPAD_AXIS_RIGHT_X 2
+#define GLFW_GAMEPAD_AXIS_RIGHT_Y 3
+#define GLFW_GAMEPAD_AXIS_LEFT_TRIGGER 4
+#define GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER 5
+#define GLFW_GAMEPAD_AXIS_LAST GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER
+ /*! @} */
+
+ /*! @defgroup errors Error codes
+ * @brief Error codes.
+ *
+ * See [error handling](@ref error_handling) for how these are used.
+ *
+ * @ingroup init
+ * @{ */
+ /*! @brief No error has occurred.
+ *
+ * No error has occurred.
+ *
+ * @analysis Yay.
+ */
+#define GLFW_NO_ERROR 0
+ /*! @brief GLFW has not been initialized.
+ *
+ * This occurs if a GLFW function was called that must not be called unless the
+ * library is [initialized](@ref intro_init).
+ *
+ * @analysis Application programmer error. Initialize GLFW before calling any
+ * function that requires initialization.
+ */
+#define GLFW_NOT_INITIALIZED 0x00010001
+ /*! @brief No context is current for this thread.
+ *
+ * This occurs if a GLFW function was called that needs and operates on the
+ * current OpenGL or OpenGL ES context but no context is current on the calling
+ * thread. One such function is @ref glfwSwapInterval.
+ *
+ * @analysis Application programmer error. Ensure a context is current before
+ * calling functions that require a current context.
+ */
+#define GLFW_NO_CURRENT_CONTEXT 0x00010002
+ /*! @brief One of the arguments to the function was an invalid enum value.
+ *
+ * One of the arguments to the function was an invalid enum value, for example
+ * requesting @ref GLFW_RED_BITS with @ref glfwGetWindowAttrib.
+ *
+ * @analysis Application programmer error. Fix the offending call.
+ */
+#define GLFW_INVALID_ENUM 0x00010003
+ /*! @brief One of the arguments to the function was an invalid value.
+ *
+ * One of the arguments to the function was an invalid value, for example
+ * requesting a non-existent OpenGL or OpenGL ES version like 2.7.
+ *
+ * Requesting a valid but unavailable OpenGL or OpenGL ES version will instead
+ * result in a @ref GLFW_VERSION_UNAVAILABLE error.
+ *
+ * @analysis Application programmer error. Fix the offending call.
+ */
+#define GLFW_INVALID_VALUE 0x00010004
+ /*! @brief A memory allocation failed.
+ *
+ * A memory allocation failed.
+ *
+ * @analysis A bug in GLFW or the underlying operating system. Report the bug
+ * to our [issue tracker](https://github.com/glfw/glfw/issues).
+ */
+#define GLFW_OUT_OF_MEMORY 0x00010005
+ /*! @brief GLFW could not find support for the requested API on the system.
+ *
+ * GLFW could not find support for the requested API on the system.
+ *
+ * @analysis The installed graphics driver does not support the requested
+ * API, or does not support it via the chosen context creation API.
+ * Below are a few examples.
+ *
+ * @par
+ * Some pre-installed Windows graphics drivers do not support OpenGL. AMD only
+ * supports OpenGL ES via EGL, while Nvidia and Intel only support it via
+ * a WGL or GLX extension. macOS does not provide OpenGL ES at all. The Mesa
+ * EGL, OpenGL and OpenGL ES libraries do not interface with the Nvidia binary
+ * driver. Older graphics drivers do not support Vulkan.
+ */
+#define GLFW_API_UNAVAILABLE 0x00010006
+ /*! @brief The requested OpenGL or OpenGL ES version is not available.
+ *
+ * The requested OpenGL or OpenGL ES version (including any requested context
+ * or framebuffer hints) is not available on this machine.
+ *
+ * @analysis The machine does not support your requirements. If your
+ * application is sufficiently flexible, downgrade your requirements and try
+ * again. Otherwise, inform the user that their machine does not match your
+ * requirements.
+ *
+ * @par
+ * Future invalid OpenGL and OpenGL ES versions, for example OpenGL 4.8 if 5.0
+ * comes out before the 4.x series gets that far, also fail with this error and
+ * not @ref GLFW_INVALID_VALUE, because GLFW cannot know what future versions
+ * will exist.
+ */
+#define GLFW_VERSION_UNAVAILABLE 0x00010007
+ /*! @brief A platform-specific error occurred that does not match any of the
+ * more specific categories.
+ *
+ * A platform-specific error occurred that does not match any of the more
+ * specific categories.
+ *
+ * @analysis A bug or configuration error in GLFW, the underlying operating
+ * system or its drivers, or a lack of required resources. Report the issue to
+ * our [issue tracker](https://github.com/glfw/glfw/issues).
+ */
+#define GLFW_PLATFORM_ERROR 0x00010008
+ /*! @brief The requested format is not supported or available.
+ *
+ * If emitted during window creation, the requested pixel format is not
+ * supported.
+ *
+ * If emitted when querying the clipboard, the contents of the clipboard could
+ * not be converted to the requested format.
+ *
+ * @analysis If emitted during window creation, one or more
+ * [hard constraints](@ref window_hints_hard) did not match any of the
+ * available pixel formats. If your application is sufficiently flexible,
+ * downgrade your requirements and try again. Otherwise, inform the user that
+ * their machine does not match your requirements.
+ *
+ * @par
+ * If emitted when querying the clipboard, ignore the error or report it to
+ * the user, as appropriate.
+ */
+#define GLFW_FORMAT_UNAVAILABLE 0x00010009
+ /*! @brief The specified window does not have an OpenGL or OpenGL ES context.
+ *
+ * A window that does not have an OpenGL or OpenGL ES context was passed to
+ * a function that requires it to have one.
+ *
+ * @analysis Application programmer error. Fix the offending call.
+ */
+#define GLFW_NO_WINDOW_CONTEXT 0x0001000A
+ /*! @brief The specified cursor shape is not available.
+ *
+ * The specified standard cursor shape is not available, either because the
+ * current platform cursor theme does not provide it or because it is not
+ * available on the platform.
+ *
+ * @analysis Platform or system settings limitation. Pick another
+ * [standard cursor shape](@ref shapes) or create a
+ * [custom cursor](@ref cursor_custom).
+ */
+#define GLFW_CURSOR_UNAVAILABLE 0x0001000B
+ /*! @brief The requested feature is not provided by the platform.
+ *
+ * The requested feature is not provided by the platform, so GLFW is unable to
+ * implement it. The documentation for each function notes if it could emit
+ * this error.
+ *
+ * @analysis Platform or platform version limitation. The error can be ignored
+ * unless the feature is critical to the application.
+ *
+ * @par
+ * A function call that emits this error has no effect other than the error and
+ * updating any existing out parameters.
+ */
+#define GLFW_FEATURE_UNAVAILABLE 0x0001000C
+ /*! @brief The requested feature is not implemented for the platform.
+ *
+ * The requested feature has not yet been implemented in GLFW for this platform.
+ *
+ * @analysis An incomplete implementation of GLFW for this platform, hopefully
+ * fixed in a future release. The error can be ignored unless the feature is
+ * critical to the application.
+ *
+ * @par
+ * A function call that emits this error has no effect other than the error and
+ * updating any existing out parameters.
+ */
+#define GLFW_FEATURE_UNIMPLEMENTED 0x0001000D
+ /*! @brief Platform unavailable or no matching platform was found.
+ *
+ * If emitted during initialization, no matching platform was found. If @ref
+ * GLFW_PLATFORM is set to `GLFW_ANY_PLATFORM`, GLFW could not detect any of the
+ * platforms supported by this library binary, except for the Null platform. If set to
+ * a specific platform, it is either not supported by this library binary or GLFW was not
+ * able to detect it.
+ *
+ * If emitted by a native access function, GLFW was initialized for a different platform
+ * than the function is for.
+ *
+ * @analysis Failure to detect any platform usually only happens on non-macOS Unix
+ * systems, either when no window system is running or the program was run from
+ * a terminal that does not have the necessary environment variables. Fall back to
+ * a different platform if possible or notify the user that no usable platform was
+ * detected.
+ *
+ * Failure to detect a specific platform may have the same cause as above or be because
+ * support for that platform was not compiled in. Call @ref glfwPlatformSupported to
+ * check whether a specific platform is supported by a library binary.
+ */
+#define GLFW_PLATFORM_UNAVAILABLE 0x0001000E
+ /*! @} */
+
+ /*! @addtogroup window
+ * @{ */
+ /*! @brief Input focus window hint and attribute
+ *
+ * Input focus [window hint](@ref GLFW_FOCUSED_hint) or
+ * [window attribute](@ref GLFW_FOCUSED_attrib).
+ */
+#define GLFW_FOCUSED 0x00020001
+ /*! @brief Window iconification window attribute
+ *
+ * Window iconification [window attribute](@ref GLFW_ICONIFIED_attrib).
+ */
+#define GLFW_ICONIFIED 0x00020002
+ /*! @brief Window resize-ability window hint and attribute
+ *
+ * Window resize-ability [window hint](@ref GLFW_RESIZABLE_hint) and
+ * [window attribute](@ref GLFW_RESIZABLE_attrib).
+ */
+#define GLFW_RESIZABLE 0x00020003
+ /*! @brief Window visibility window hint and attribute
+ *
+ * Window visibility [window hint](@ref GLFW_VISIBLE_hint) and
+ * [window attribute](@ref GLFW_VISIBLE_attrib).
+ */
+#define GLFW_VISIBLE 0x00020004
+ /*! @brief Window decoration window hint and attribute
+ *
+ * Window decoration [window hint](@ref GLFW_DECORATED_hint) and
+ * [window attribute](@ref GLFW_DECORATED_attrib).
+ */
+#define GLFW_DECORATED 0x00020005
+ /*! @brief Window auto-iconification window hint and attribute
+ *
+ * Window auto-iconification [window hint](@ref GLFW_AUTO_ICONIFY_hint) and
+ * [window attribute](@ref GLFW_AUTO_ICONIFY_attrib).
+ */
+#define GLFW_AUTO_ICONIFY 0x00020006
+ /*! @brief Window decoration window hint and attribute
+ *
+ * Window decoration [window hint](@ref GLFW_FLOATING_hint) and
+ * [window attribute](@ref GLFW_FLOATING_attrib).
+ */
+#define GLFW_FLOATING 0x00020007
+ /*! @brief Window maximization window hint and attribute
+ *
+ * Window maximization [window hint](@ref GLFW_MAXIMIZED_hint) and
+ * [window attribute](@ref GLFW_MAXIMIZED_attrib).
+ */
+#define GLFW_MAXIMIZED 0x00020008
+ /*! @brief Cursor centering window hint
+ *
+ * Cursor centering [window hint](@ref GLFW_CENTER_CURSOR_hint).
+ */
+#define GLFW_CENTER_CURSOR 0x00020009
+ /*! @brief Window framebuffer transparency hint and attribute
+ *
+ * Window framebuffer transparency
+ * [window hint](@ref GLFW_TRANSPARENT_FRAMEBUFFER_hint) and
+ * [window attribute](@ref GLFW_TRANSPARENT_FRAMEBUFFER_attrib).
+ */
+#define GLFW_TRANSPARENT_FRAMEBUFFER 0x0002000A
+ /*! @brief Mouse cursor hover window attribute.
+ *
+ * Mouse cursor hover [window attribute](@ref GLFW_HOVERED_attrib).
+ */
+#define GLFW_HOVERED 0x0002000B
+ /*! @brief Input focus on calling show window hint and attribute
+ *
+ * Input focus [window hint](@ref GLFW_FOCUS_ON_SHOW_hint) or
+ * [window attribute](@ref GLFW_FOCUS_ON_SHOW_attrib).
+ */
+#define GLFW_FOCUS_ON_SHOW 0x0002000C
+
+ /*! @brief Mouse input transparency window hint and attribute
+ *
+ * Mouse input transparency [window hint](@ref GLFW_MOUSE_PASSTHROUGH_hint) or
+ * [window attribute](@ref GLFW_MOUSE_PASSTHROUGH_attrib).
+ */
+#define GLFW_MOUSE_PASSTHROUGH 0x0002000D
+
+ /*! @brief Initial position x-coordinate window hint.
+ *
+ * Initial position x-coordinate [window hint](@ref GLFW_POSITION_X).
+ */
+#define GLFW_POSITION_X 0x0002000E
+
+ /*! @brief Initial position y-coordinate window hint.
+ *
+ * Initial position y-coordinate [window hint](@ref GLFW_POSITION_Y).
+ */
+#define GLFW_POSITION_Y 0x0002000F
+
+ /*! @brief Framebuffer bit depth hint.
+ *
+ * Framebuffer bit depth [hint](@ref GLFW_RED_BITS).
+ */
+#define GLFW_RED_BITS 0x00021001
+ /*! @brief Framebuffer bit depth hint.
+ *
+ * Framebuffer bit depth [hint](@ref GLFW_GREEN_BITS).
+ */
+#define GLFW_GREEN_BITS 0x00021002
+ /*! @brief Framebuffer bit depth hint.
+ *
+ * Framebuffer bit depth [hint](@ref GLFW_BLUE_BITS).
+ */
+#define GLFW_BLUE_BITS 0x00021003
+ /*! @brief Framebuffer bit depth hint.
+ *
+ * Framebuffer bit depth [hint](@ref GLFW_ALPHA_BITS).
+ */
+#define GLFW_ALPHA_BITS 0x00021004
+ /*! @brief Framebuffer bit depth hint.
+ *
+ * Framebuffer bit depth [hint](@ref GLFW_DEPTH_BITS).
+ */
+#define GLFW_DEPTH_BITS 0x00021005
+ /*! @brief Framebuffer bit depth hint.
+ *
+ * Framebuffer bit depth [hint](@ref GLFW_STENCIL_BITS).
+ */
+#define GLFW_STENCIL_BITS 0x00021006
+ /*! @brief Framebuffer bit depth hint.
+ *
+ * Framebuffer bit depth [hint](@ref GLFW_ACCUM_RED_BITS).
+ */
+#define GLFW_ACCUM_RED_BITS 0x00021007
+ /*! @brief Framebuffer bit depth hint.
+ *
+ * Framebuffer bit depth [hint](@ref GLFW_ACCUM_GREEN_BITS).
+ */
+#define GLFW_ACCUM_GREEN_BITS 0x00021008
+ /*! @brief Framebuffer bit depth hint.
+ *
+ * Framebuffer bit depth [hint](@ref GLFW_ACCUM_BLUE_BITS).
+ */
+#define GLFW_ACCUM_BLUE_BITS 0x00021009
+ /*! @brief Framebuffer bit depth hint.
+ *
+ * Framebuffer bit depth [hint](@ref GLFW_ACCUM_ALPHA_BITS).
+ */
+#define GLFW_ACCUM_ALPHA_BITS 0x0002100A
+ /*! @brief Framebuffer auxiliary buffer hint.
+ *
+ * Framebuffer auxiliary buffer [hint](@ref GLFW_AUX_BUFFERS).
+ */
+#define GLFW_AUX_BUFFERS 0x0002100B
+ /*! @brief OpenGL stereoscopic rendering hint.
+ *
+ * OpenGL stereoscopic rendering [hint](@ref GLFW_STEREO).
+ */
+#define GLFW_STEREO 0x0002100C
+ /*! @brief Framebuffer MSAA samples hint.
+ *
+ * Framebuffer MSAA samples [hint](@ref GLFW_SAMPLES).
+ */
+#define GLFW_SAMPLES 0x0002100D
+ /*! @brief Framebuffer sRGB hint.
+ *
+ * Framebuffer sRGB [hint](@ref GLFW_SRGB_CAPABLE).
+ */
+#define GLFW_SRGB_CAPABLE 0x0002100E
+ /*! @brief Monitor refresh rate hint.
+ *
+ * Monitor refresh rate [hint](@ref GLFW_REFRESH_RATE).
+ */
+#define GLFW_REFRESH_RATE 0x0002100F
+ /*! @brief Framebuffer double buffering hint and attribute.
+ *
+ * Framebuffer double buffering [hint](@ref GLFW_DOUBLEBUFFER_hint) and
+ * [attribute](@ref GLFW_DOUBLEBUFFER_attrib).
+ */
+#define GLFW_DOUBLEBUFFER 0x00021010
+
+ /*! @brief Context client API hint and attribute.
+ *
+ * Context client API [hint](@ref GLFW_CLIENT_API_hint) and
+ * [attribute](@ref GLFW_CLIENT_API_attrib).
+ */
+#define GLFW_CLIENT_API 0x00022001
+ /*! @brief Context client API major version hint and attribute.
+ *
+ * Context client API major version [hint](@ref GLFW_CONTEXT_VERSION_MAJOR_hint)
+ * and [attribute](@ref GLFW_CONTEXT_VERSION_MAJOR_attrib).
+ */
+#define GLFW_CONTEXT_VERSION_MAJOR 0x00022002
+ /*! @brief Context client API minor version hint and attribute.
+ *
+ * Context client API minor version [hint](@ref GLFW_CONTEXT_VERSION_MINOR_hint)
+ * and [attribute](@ref GLFW_CONTEXT_VERSION_MINOR_attrib).
+ */
+#define GLFW_CONTEXT_VERSION_MINOR 0x00022003
+ /*! @brief Context client API revision number attribute.
+ *
+ * Context client API revision number
+ * [attribute](@ref GLFW_CONTEXT_REVISION_attrib).
+ */
+#define GLFW_CONTEXT_REVISION 0x00022004
+ /*! @brief Context robustness hint and attribute.
+ *
+ * Context client API revision number [hint](@ref GLFW_CONTEXT_ROBUSTNESS_hint)
+ * and [attribute](@ref GLFW_CONTEXT_ROBUSTNESS_attrib).
+ */
+#define GLFW_CONTEXT_ROBUSTNESS 0x00022005
+ /*! @brief OpenGL forward-compatibility hint and attribute.
+ *
+ * OpenGL forward-compatibility [hint](@ref GLFW_OPENGL_FORWARD_COMPAT_hint)
+ * and [attribute](@ref GLFW_OPENGL_FORWARD_COMPAT_attrib).
+ */
+#define GLFW_OPENGL_FORWARD_COMPAT 0x00022006
+ /*! @brief Debug mode context hint and attribute.
+ *
+ * Debug mode context [hint](@ref GLFW_CONTEXT_DEBUG_hint) and
+ * [attribute](@ref GLFW_CONTEXT_DEBUG_attrib).
+ */
+#define GLFW_CONTEXT_DEBUG 0x00022007
+ /*! @brief Legacy name for compatibility.
+ *
+ * This is an alias for compatibility with earlier versions.
+ */
+#define GLFW_OPENGL_DEBUG_CONTEXT GLFW_CONTEXT_DEBUG
+ /*! @brief OpenGL profile hint and attribute.
+ *
+ * OpenGL profile [hint](@ref GLFW_OPENGL_PROFILE_hint) and
+ * [attribute](@ref GLFW_OPENGL_PROFILE_attrib).
+ */
+#define GLFW_OPENGL_PROFILE 0x00022008
+ /*! @brief Context flush-on-release hint and attribute.
+ *
+ * Context flush-on-release [hint](@ref GLFW_CONTEXT_RELEASE_BEHAVIOR_hint) and
+ * [attribute](@ref GLFW_CONTEXT_RELEASE_BEHAVIOR_attrib).
+ */
+#define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009
+ /*! @brief Context error suppression hint and attribute.
+ *
+ * Context error suppression [hint](@ref GLFW_CONTEXT_NO_ERROR_hint) and
+ * [attribute](@ref GLFW_CONTEXT_NO_ERROR_attrib).
+ */
+#define GLFW_CONTEXT_NO_ERROR 0x0002200A
+ /*! @brief Context creation API hint and attribute.
+ *
+ * Context creation API [hint](@ref GLFW_CONTEXT_CREATION_API_hint) and
+ * [attribute](@ref GLFW_CONTEXT_CREATION_API_attrib).
+ */
+#define GLFW_CONTEXT_CREATION_API 0x0002200B
+ /*! @brief Window content area scaling window
+ * [window hint](@ref GLFW_SCALE_TO_MONITOR).
+ */
+#define GLFW_SCALE_TO_MONITOR 0x0002200C
+ /*! @brief macOS specific
+ * [window hint](@ref GLFW_COCOA_RETINA_FRAMEBUFFER_hint).
+ */
+#define GLFW_COCOA_RETINA_FRAMEBUFFER 0x00023001
+ /*! @brief macOS specific
+ * [window hint](@ref GLFW_COCOA_FRAME_NAME_hint).
+ */
+#define GLFW_COCOA_FRAME_NAME 0x00023002
+ /*! @brief macOS specific
+ * [window hint](@ref GLFW_COCOA_GRAPHICS_SWITCHING_hint).
+ */
+#define GLFW_COCOA_GRAPHICS_SWITCHING 0x00023003
+ /*! @brief X11 specific
+ * [window hint](@ref GLFW_X11_CLASS_NAME_hint).
+ */
+#define GLFW_X11_CLASS_NAME 0x00024001
+ /*! @brief X11 specific
+ * [window hint](@ref GLFW_X11_CLASS_NAME_hint).
+ */
+#define GLFW_X11_INSTANCE_NAME 0x00024002
+#define GLFW_WIN32_KEYBOARD_MENU 0x00025001
+ /*! @brief Wayland specific
+ * [window hint](@ref GLFW_WAYLAND_APP_ID_hint).
+ *
+ * Allows specification of the Wayland app_id.
+ */
+#define GLFW_WAYLAND_APP_ID 0x00026001
+ /*! @} */
+
+#define GLFW_NO_API 0
+#define GLFW_OPENGL_API 0x00030001
+#define GLFW_OPENGL_ES_API 0x00030002
+
+#define GLFW_NO_ROBUSTNESS 0
+#define GLFW_NO_RESET_NOTIFICATION 0x00031001
+#define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002
+
+#define GLFW_OPENGL_ANY_PROFILE 0
+#define GLFW_OPENGL_CORE_PROFILE 0x00032001
+#define GLFW_OPENGL_COMPAT_PROFILE 0x00032002
+
+#define GLFW_CURSOR 0x00033001
+#define GLFW_STICKY_KEYS 0x00033002
+#define GLFW_STICKY_MOUSE_BUTTONS 0x00033003
+#define GLFW_LOCK_KEY_MODS 0x00033004
+#define GLFW_RAW_MOUSE_MOTION 0x00033005
+
+#define GLFW_CURSOR_NORMAL 0x00034001
+#define GLFW_CURSOR_HIDDEN 0x00034002
+#define GLFW_CURSOR_DISABLED 0x00034003
+#define GLFW_CURSOR_CAPTURED 0x00034004
+
+#define GLFW_ANY_RELEASE_BEHAVIOR 0
+#define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001
+#define GLFW_RELEASE_BEHAVIOR_NONE 0x00035002
+
+#define GLFW_NATIVE_CONTEXT_API 0x00036001
+#define GLFW_EGL_CONTEXT_API 0x00036002
+#define GLFW_OSMESA_CONTEXT_API 0x00036003
+
+#define GLFW_ANGLE_PLATFORM_TYPE_NONE 0x00037001
+#define GLFW_ANGLE_PLATFORM_TYPE_OPENGL 0x00037002
+#define GLFW_ANGLE_PLATFORM_TYPE_OPENGLES 0x00037003
+#define GLFW_ANGLE_PLATFORM_TYPE_D3D9 0x00037004
+#define GLFW_ANGLE_PLATFORM_TYPE_D3D11 0x00037005
+#define GLFW_ANGLE_PLATFORM_TYPE_VULKAN 0x00037007
+#define GLFW_ANGLE_PLATFORM_TYPE_METAL 0x00037008
+
+#define GLFW_WAYLAND_PREFER_LIBDECOR 0x00038001
+#define GLFW_WAYLAND_DISABLE_LIBDECOR 0x00038002
+
+#define GLFW_ANY_POSITION 0x80000000
+
+/*! @defgroup shapes Standard cursor shapes
+ * @brief Standard system cursor shapes.
+ *
+ * These are the [standard cursor shapes](@ref cursor_standard) that can be
+ * requested from the platform (window system).
+ *
+ * @ingroup input
+ * @{ */
+
+ /*! @brief The regular arrow cursor shape.
+ *
+ * The regular arrow cursor shape.
+ */
+#define GLFW_ARROW_CURSOR 0x00036001
+ /*! @brief The text input I-beam cursor shape.
+ *
+ * The text input I-beam cursor shape.
+ */
+#define GLFW_IBEAM_CURSOR 0x00036002
+ /*! @brief The crosshair cursor shape.
+ *
+ * The crosshair cursor shape.
+ */
+#define GLFW_CROSSHAIR_CURSOR 0x00036003
+ /*! @brief The pointing hand cursor shape.
+ *
+ * The pointing hand cursor shape.
+ */
+#define GLFW_POINTING_HAND_CURSOR 0x00036004
+ /*! @brief The horizontal resize/move arrow shape.
+ *
+ * The horizontal resize/move arrow shape. This is usually a horizontal
+ * double-headed arrow.
+ */
+#define GLFW_RESIZE_EW_CURSOR 0x00036005
+ /*! @brief The vertical resize/move arrow shape.
+ *
+ * The vertical resize/move shape. This is usually a vertical double-headed
+ * arrow.
+ */
+#define GLFW_RESIZE_NS_CURSOR 0x00036006
+ /*! @brief The top-left to bottom-right diagonal resize/move arrow shape.
+ *
+ * The top-left to bottom-right diagonal resize/move shape. This is usually
+ * a diagonal double-headed arrow.
+ *
+ * @note @macos This shape is provided by a private system API and may fail
+ * with @ref GLFW_CURSOR_UNAVAILABLE in the future.
+ *
+ * @note @x11 This shape is provided by a newer standard not supported by all
+ * cursor themes.
+ *
+ * @note @wayland This shape is provided by a newer standard not supported by
+ * all cursor themes.
+ */
+#define GLFW_RESIZE_NWSE_CURSOR 0x00036007
+ /*! @brief The top-right to bottom-left diagonal resize/move arrow shape.
+ *
+ * The top-right to bottom-left diagonal resize/move shape. This is usually
+ * a diagonal double-headed arrow.
+ *
+ * @note @macos This shape is provided by a private system API and may fail
+ * with @ref GLFW_CURSOR_UNAVAILABLE in the future.
+ *
+ * @note @x11 This shape is provided by a newer standard not supported by all
+ * cursor themes.
+ *
+ * @note @wayland This shape is provided by a newer standard not supported by
+ * all cursor themes.
+ */
+#define GLFW_RESIZE_NESW_CURSOR 0x00036008
+ /*! @brief The omni-directional resize/move cursor shape.
+ *
+ * The omni-directional resize cursor/move shape. This is usually either
+ * a combined horizontal and vertical double-headed arrow or a grabbing hand.
+ */
+#define GLFW_RESIZE_ALL_CURSOR 0x00036009
+ /*! @brief The operation-not-allowed shape.
+ *
+ * The operation-not-allowed shape. This is usually a circle with a diagonal
+ * line through it.
+ *
+ * @note @x11 This shape is provided by a newer standard not supported by all
+ * cursor themes.
+ *
+ * @note @wayland This shape is provided by a newer standard not supported by
+ * all cursor themes.
+ */
+#define GLFW_NOT_ALLOWED_CURSOR 0x0003600A
+ /*! @brief Legacy name for compatibility.
+ *
+ * This is an alias for compatibility with earlier versions.
+ */
+#define GLFW_HRESIZE_CURSOR GLFW_RESIZE_EW_CURSOR
+ /*! @brief Legacy name for compatibility.
+ *
+ * This is an alias for compatibility with earlier versions.
+ */
+#define GLFW_VRESIZE_CURSOR GLFW_RESIZE_NS_CURSOR
+ /*! @brief Legacy name for compatibility.
+ *
+ * This is an alias for compatibility with earlier versions.
+ */
+#define GLFW_HAND_CURSOR GLFW_POINTING_HAND_CURSOR
+ /*! @} */
+
+#define GLFW_CONNECTED 0x00040001
+#define GLFW_DISCONNECTED 0x00040002
+
+/*! @addtogroup init
+ * @{ */
+ /*! @brief Joystick hat buttons init hint.
+ *
+ * Joystick hat buttons [init hint](@ref GLFW_JOYSTICK_HAT_BUTTONS).
+ */
+#define GLFW_JOYSTICK_HAT_BUTTONS 0x00050001
+ /*! @brief ANGLE rendering backend init hint.
+ *
+ * ANGLE rendering backend [init hint](@ref GLFW_ANGLE_PLATFORM_TYPE_hint).
+ */
+#define GLFW_ANGLE_PLATFORM_TYPE 0x00050002
+ /*! @brief Platform selection init hint.
+ *
+ * Platform selection [init hint](@ref GLFW_PLATFORM).
+ */
+#define GLFW_PLATFORM 0x00050003
+ /*! @brief macOS specific init hint.
+ *
+ * macOS specific [init hint](@ref GLFW_COCOA_CHDIR_RESOURCES_hint).
+ */
+#define GLFW_COCOA_CHDIR_RESOURCES 0x00051001
+ /*! @brief macOS specific init hint.
+ *
+ * macOS specific [init hint](@ref GLFW_COCOA_MENUBAR_hint).
+ */
+#define GLFW_COCOA_MENUBAR 0x00051002
+ /*! @brief X11 specific init hint.
+ *
+ * X11 specific [init hint](@ref GLFW_X11_XCB_VULKAN_SURFACE_hint).
+ */
+#define GLFW_X11_XCB_VULKAN_SURFACE 0x00052001
+ /*! @brief Wayland specific init hint.
+ *
+ * Wayland specific [init hint](@ref GLFW_WAYLAND_LIBDECOR_hint).
+ */
+#define GLFW_WAYLAND_LIBDECOR 0x00053001
+ /*! @} */
+
+ /*! @addtogroup init
+ * @{ */
+ /*! @brief Hint value that enables automatic platform selection.
+ *
+ * Hint value for @ref GLFW_PLATFORM that enables automatic platform selection.
+ */
+#define GLFW_ANY_PLATFORM 0x00060000
+#define GLFW_PLATFORM_WIN32 0x00060001
+#define GLFW_PLATFORM_COCOA 0x00060002
+#define GLFW_PLATFORM_WAYLAND 0x00060003
+#define GLFW_PLATFORM_X11 0x00060004
+#define GLFW_PLATFORM_NULL 0x00060005
+ /*! @} */
+
+#define GLFW_DONT_CARE -1
+
+
+/*************************************************************************
+ * GLFW API types
+ *************************************************************************/
+
+ /*! @brief Client API function pointer type.
+ *
+ * Generic function pointer used for returning client API function pointers
+ * without forcing a cast from a regular pointer.
+ *
+ * @sa @ref context_glext
+ * @sa @ref glfwGetProcAddress
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup context
+ */
+ typedef void (*GLFWglproc)(void);
+
+ /*! @brief Vulkan API function pointer type.
+ *
+ * Generic function pointer used for returning Vulkan API function pointers
+ * without forcing a cast from a regular pointer.
+ *
+ * @sa @ref vulkan_proc
+ * @sa @ref glfwGetInstanceProcAddress
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup vulkan
+ */
+ typedef void (*GLFWvkproc)(void);
+
+ /*! @brief Opaque monitor object.
+ *
+ * Opaque monitor object.
+ *
+ * @see @ref monitor_object
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ typedef struct GLFWmonitor GLFWmonitor;
+
+ /*! @brief Opaque window object.
+ *
+ * Opaque window object.
+ *
+ * @see @ref window_object
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ typedef struct GLFWwindow GLFWwindow;
+
+ /*! @brief Opaque cursor object.
+ *
+ * Opaque cursor object.
+ *
+ * @see @ref cursor_object
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup input
+ */
+ typedef struct GLFWcursor GLFWcursor;
+
+ /*! @brief The function pointer type for memory allocation callbacks.
+ *
+ * This is the function pointer type for memory allocation callbacks. A memory
+ * allocation callback function has the following signature:
+ * @code
+ * void* function_name(size_t size, void* user)
+ * @endcode
+ *
+ * This function must return either a memory block at least `size` bytes long,
+ * or `NULL` if allocation failed. Note that not all parts of GLFW handle allocation
+ * failures gracefully yet.
+ *
+ * This function may be called during @ref glfwInit but before the library is
+ * flagged as initialized, as well as during @ref glfwTerminate after the
+ * library is no longer flagged as initialized.
+ *
+ * Any memory allocated by this function will be deallocated during library
+ * termination or earlier.
+ *
+ * The size will always be greater than zero. Allocations of size zero are filtered out
+ * before reaching the custom allocator.
+ *
+ * @param[in] size The minimum size, in bytes, of the memory block.
+ * @param[in] user The user-defined pointer from the allocator.
+ * @return The address of the newly allocated memory block, or `NULL` if an
+ * error occurred.
+ *
+ * @pointer_lifetime The returned memory block must be valid at least until it
+ * is deallocated.
+ *
+ * @reentrancy This function should not call any GLFW function.
+ *
+ * @thread_safety This function may be called from any thread that calls GLFW functions.
+ *
+ * @sa @ref init_allocator
+ * @sa @ref GLFWallocator
+ *
+ * @since Added in version 3.4.
+ *
+ * @ingroup init
+ */
+ typedef void* (*GLFWallocatefun)(size_t size, void* user);
+
+ /*! @brief The function pointer type for memory reallocation callbacks.
+ *
+ * This is the function pointer type for memory reallocation callbacks.
+ * A memory reallocation callback function has the following signature:
+ * @code
+ * void* function_name(void* block, size_t size, void* user)
+ * @endcode
+ *
+ * This function must return a memory block at least `size` bytes long, or
+ * `NULL` if allocation failed. Note that not all parts of GLFW handle allocation
+ * failures gracefully yet.
+ *
+ * This function may be called during @ref glfwInit but before the library is
+ * flagged as initialized, as well as during @ref glfwTerminate after the
+ * library is no longer flagged as initialized.
+ *
+ * Any memory allocated by this function will be deallocated during library
+ * termination or earlier.
+ *
+ * The block address will never be `NULL` and the size will always be greater than zero.
+ * Reallocations of a block to size zero are converted into deallocations. Reallocations
+ * of `NULL` to a non-zero size are converted into regular allocations.
+ *
+ * @param[in] block The address of the memory block to reallocate.
+ * @param[in] size The new minimum size, in bytes, of the memory block.
+ * @param[in] user The user-defined pointer from the allocator.
+ * @return The address of the newly allocated or resized memory block, or
+ * `NULL` if an error occurred.
+ *
+ * @pointer_lifetime The returned memory block must be valid at least until it
+ * is deallocated.
+ *
+ * @reentrancy This function should not call any GLFW function.
+ *
+ * @thread_safety This function may be called from any thread that calls GLFW functions.
+ *
+ * @sa @ref init_allocator
+ * @sa @ref GLFWallocator
+ *
+ * @since Added in version 3.4.
+ *
+ * @ingroup init
+ */
+ typedef void* (*GLFWreallocatefun)(void* block, size_t size, void* user);
+
+ /*! @brief The function pointer type for memory deallocation callbacks.
+ *
+ * This is the function pointer type for memory deallocation callbacks.
+ * A memory deallocation callback function has the following signature:
+ * @code
+ * void function_name(void* block, void* user)
+ * @endcode
+ *
+ * This function may deallocate the specified memory block. This memory block
+ * will have been allocated with the same allocator.
+ *
+ * This function may be called during @ref glfwInit but before the library is
+ * flagged as initialized, as well as during @ref glfwTerminate after the
+ * library is no longer flagged as initialized.
+ *
+ * The block address will never be `NULL`. Deallocations of `NULL` are filtered out
+ * before reaching the custom allocator.
+ *
+ * @param[in] block The address of the memory block to deallocate.
+ * @param[in] user The user-defined pointer from the allocator.
+ *
+ * @pointer_lifetime The specified memory block will not be accessed by GLFW
+ * after this function is called.
+ *
+ * @reentrancy This function should not call any GLFW function.
+ *
+ * @thread_safety This function may be called from any thread that calls GLFW functions.
+ *
+ * @sa @ref init_allocator
+ * @sa @ref GLFWallocator
+ *
+ * @since Added in version 3.4.
+ *
+ * @ingroup init
+ */
+ typedef void (*GLFWdeallocatefun)(void* block, void* user);
+
+ /*! @brief The function pointer type for error callbacks.
+ *
+ * This is the function pointer type for error callbacks. An error callback
+ * function has the following signature:
+ * @code
+ * void callback_name(int error_code, const char* description)
+ * @endcode
+ *
+ * @param[in] error_code An [error code](@ref errors). Future releases may add
+ * more error codes.
+ * @param[in] description A UTF-8 encoded string describing the error.
+ *
+ * @pointer_lifetime The error description string is valid until the callback
+ * function returns.
+ *
+ * @sa @ref error_handling
+ * @sa @ref glfwSetErrorCallback
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup init
+ */
+ typedef void (*GLFWerrorfun)(int error_code, const char* description);
+
+ /*! @brief The function pointer type for window position callbacks.
+ *
+ * This is the function pointer type for window position callbacks. A window
+ * position callback function has the following signature:
+ * @code
+ * void callback_name(GLFWwindow* window, int xpos, int ypos)
+ * @endcode
+ *
+ * @param[in] window The window that was moved.
+ * @param[in] xpos The new x-coordinate, in screen coordinates, of the
+ * upper-left corner of the content area of the window.
+ * @param[in] ypos The new y-coordinate, in screen coordinates, of the
+ * upper-left corner of the content area of the window.
+ *
+ * @sa @ref window_pos
+ * @sa @ref glfwSetWindowPosCallback
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ typedef void (*GLFWwindowposfun)(GLFWwindow* window, int xpos, int ypos);
+
+ /*! @brief The function pointer type for window size callbacks.
+ *
+ * This is the function pointer type for window size callbacks. A window size
+ * callback function has the following signature:
+ * @code
+ * void callback_name(GLFWwindow* window, int width, int height)
+ * @endcode
+ *
+ * @param[in] window The window that was resized.
+ * @param[in] width The new width, in screen coordinates, of the window.
+ * @param[in] height The new height, in screen coordinates, of the window.
+ *
+ * @sa @ref window_size
+ * @sa @ref glfwSetWindowSizeCallback
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup window
+ */
+ typedef void (*GLFWwindowsizefun)(GLFWwindow* window, int width, int height);
+
+ /*! @brief The function pointer type for window close callbacks.
+ *
+ * This is the function pointer type for window close callbacks. A window
+ * close callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window)
+ * @endcode
+ *
+ * @param[in] window The window that the user attempted to close.
+ *
+ * @sa @ref window_close
+ * @sa @ref glfwSetWindowCloseCallback
+ *
+ * @since Added in version 2.5.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup window
+ */
+ typedef void (*GLFWwindowclosefun)(GLFWwindow* window);
+
+ /*! @brief The function pointer type for window content refresh callbacks.
+ *
+ * This is the function pointer type for window content refresh callbacks.
+ * A window content refresh callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window);
+ * @endcode
+ *
+ * @param[in] window The window whose content needs to be refreshed.
+ *
+ * @sa @ref window_refresh
+ * @sa @ref glfwSetWindowRefreshCallback
+ *
+ * @since Added in version 2.5.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup window
+ */
+ typedef void (*GLFWwindowrefreshfun)(GLFWwindow* window);
+
+ /*! @brief The function pointer type for window focus callbacks.
+ *
+ * This is the function pointer type for window focus callbacks. A window
+ * focus callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, int focused)
+ * @endcode
+ *
+ * @param[in] window The window that gained or lost input focus.
+ * @param[in] focused `GLFW_TRUE` if the window was given input focus, or
+ * `GLFW_FALSE` if it lost it.
+ *
+ * @sa @ref window_focus
+ * @sa @ref glfwSetWindowFocusCallback
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ typedef void (*GLFWwindowfocusfun)(GLFWwindow* window, int focused);
+
+ /*! @brief The function pointer type for window iconify callbacks.
+ *
+ * This is the function pointer type for window iconify callbacks. A window
+ * iconify callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, int iconified)
+ * @endcode
+ *
+ * @param[in] window The window that was iconified or restored.
+ * @param[in] iconified `GLFW_TRUE` if the window was iconified, or
+ * `GLFW_FALSE` if it was restored.
+ *
+ * @sa @ref window_iconify
+ * @sa @ref glfwSetWindowIconifyCallback
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ typedef void (*GLFWwindowiconifyfun)(GLFWwindow* window, int iconified);
+
+ /*! @brief The function pointer type for window maximize callbacks.
+ *
+ * This is the function pointer type for window maximize callbacks. A window
+ * maximize callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, int maximized)
+ * @endcode
+ *
+ * @param[in] window The window that was maximized or restored.
+ * @param[in] maximized `GLFW_TRUE` if the window was maximized, or
+ * `GLFW_FALSE` if it was restored.
+ *
+ * @sa @ref window_maximize
+ * @sa glfwSetWindowMaximizeCallback
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup window
+ */
+ typedef void (*GLFWwindowmaximizefun)(GLFWwindow* window, int maximized);
+
+ /*! @brief The function pointer type for framebuffer size callbacks.
+ *
+ * This is the function pointer type for framebuffer size callbacks.
+ * A framebuffer size callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, int width, int height)
+ * @endcode
+ *
+ * @param[in] window The window whose framebuffer was resized.
+ * @param[in] width The new width, in pixels, of the framebuffer.
+ * @param[in] height The new height, in pixels, of the framebuffer.
+ *
+ * @sa @ref window_fbsize
+ * @sa @ref glfwSetFramebufferSizeCallback
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ typedef void (*GLFWframebuffersizefun)(GLFWwindow* window, int width, int height);
+
+ /*! @brief The function pointer type for window content scale callbacks.
+ *
+ * This is the function pointer type for window content scale callbacks.
+ * A window content scale callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, float xscale, float yscale)
+ * @endcode
+ *
+ * @param[in] window The window whose content scale changed.
+ * @param[in] xscale The new x-axis content scale of the window.
+ * @param[in] yscale The new y-axis content scale of the window.
+ *
+ * @sa @ref window_scale
+ * @sa @ref glfwSetWindowContentScaleCallback
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup window
+ */
+ typedef void (*GLFWwindowcontentscalefun)(GLFWwindow* window, float xscale, float yscale);
+
+ /*! @brief The function pointer type for mouse button callbacks.
+ *
+ * This is the function pointer type for mouse button callback functions.
+ * A mouse button callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, int button, int action, int mods)
+ * @endcode
+ *
+ * @param[in] window The window that received the event.
+ * @param[in] button The [mouse button](@ref buttons) that was pressed or
+ * released.
+ * @param[in] action One of `GLFW_PRESS` or `GLFW_RELEASE`. Future releases
+ * may add more actions.
+ * @param[in] mods Bit field describing which [modifier keys](@ref mods) were
+ * held down.
+ *
+ * @sa @ref input_mouse_button
+ * @sa @ref glfwSetMouseButtonCallback
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle and modifier mask parameters.
+ *
+ * @ingroup input
+ */
+ typedef void (*GLFWmousebuttonfun)(GLFWwindow* window, int button, int action, int mods);
+
+ /*! @brief The function pointer type for cursor position callbacks.
+ *
+ * This is the function pointer type for cursor position callbacks. A cursor
+ * position callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, double xpos, double ypos);
+ * @endcode
+ *
+ * @param[in] window The window that received the event.
+ * @param[in] xpos The new cursor x-coordinate, relative to the left edge of
+ * the content area.
+ * @param[in] ypos The new cursor y-coordinate, relative to the top edge of the
+ * content area.
+ *
+ * @sa @ref cursor_pos
+ * @sa @ref glfwSetCursorPosCallback
+ *
+ * @since Added in version 3.0. Replaces `GLFWmouseposfun`.
+ *
+ * @ingroup input
+ */
+ typedef void (*GLFWcursorposfun)(GLFWwindow* window, double xpos, double ypos);
+
+ /*! @brief The function pointer type for cursor enter/leave callbacks.
+ *
+ * This is the function pointer type for cursor enter/leave callbacks.
+ * A cursor enter/leave callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, int entered)
+ * @endcode
+ *
+ * @param[in] window The window that received the event.
+ * @param[in] entered `GLFW_TRUE` if the cursor entered the window's content
+ * area, or `GLFW_FALSE` if it left it.
+ *
+ * @sa @ref cursor_enter
+ * @sa @ref glfwSetCursorEnterCallback
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup input
+ */
+ typedef void (*GLFWcursorenterfun)(GLFWwindow* window, int entered);
+
+ /*! @brief The function pointer type for scroll callbacks.
+ *
+ * This is the function pointer type for scroll callbacks. A scroll callback
+ * function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, double xoffset, double yoffset)
+ * @endcode
+ *
+ * @param[in] window The window that received the event.
+ * @param[in] xoffset The scroll offset along the x-axis.
+ * @param[in] yoffset The scroll offset along the y-axis.
+ *
+ * @sa @ref scrolling
+ * @sa @ref glfwSetScrollCallback
+ *
+ * @since Added in version 3.0. Replaces `GLFWmousewheelfun`.
+ *
+ * @ingroup input
+ */
+ typedef void (*GLFWscrollfun)(GLFWwindow* window, double xoffset, double yoffset);
+
+ /*! @brief The function pointer type for keyboard key callbacks.
+ *
+ * This is the function pointer type for keyboard key callbacks. A keyboard
+ * key callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, int key, int scancode, int action, int mods)
+ * @endcode
+ *
+ * @param[in] window The window that received the event.
+ * @param[in] key The [keyboard key](@ref keys) that was pressed or released.
+ * @param[in] scancode The platform-specific scancode of the key.
+ * @param[in] action `GLFW_PRESS`, `GLFW_RELEASE` or `GLFW_REPEAT`. Future
+ * releases may add more actions.
+ * @param[in] mods Bit field describing which [modifier keys](@ref mods) were
+ * held down.
+ *
+ * @sa @ref input_key
+ * @sa @ref glfwSetKeyCallback
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle, scancode and modifier mask parameters.
+ *
+ * @ingroup input
+ */
+ typedef void (*GLFWkeyfun)(GLFWwindow* window, int key, int scancode, int action, int mods);
+
+ /*! @brief The function pointer type for Unicode character callbacks.
+ *
+ * This is the function pointer type for Unicode character callbacks.
+ * A Unicode character callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, unsigned int codepoint)
+ * @endcode
+ *
+ * @param[in] window The window that received the event.
+ * @param[in] codepoint The Unicode code point of the character.
+ *
+ * @sa @ref input_char
+ * @sa @ref glfwSetCharCallback
+ *
+ * @since Added in version 2.4.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup input
+ */
+ typedef void (*GLFWcharfun)(GLFWwindow* window, unsigned int codepoint);
+
+ /*! @brief The function pointer type for Unicode character with modifiers
+ * callbacks.
+ *
+ * This is the function pointer type for Unicode character with modifiers
+ * callbacks. It is called for each input character, regardless of what
+ * modifier keys are held down. A Unicode character with modifiers callback
+ * function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, unsigned int codepoint, int mods)
+ * @endcode
+ *
+ * @param[in] window The window that received the event.
+ * @param[in] codepoint The Unicode code point of the character.
+ * @param[in] mods Bit field describing which [modifier keys](@ref mods) were
+ * held down.
+ *
+ * @sa @ref input_char
+ * @sa @ref glfwSetCharModsCallback
+ *
+ * @deprecated Scheduled for removal in version 4.0.
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup input
+ */
+ typedef void (*GLFWcharmodsfun)(GLFWwindow* window, unsigned int codepoint, int mods);
+
+ /*! @brief The function pointer type for path drop callbacks.
+ *
+ * This is the function pointer type for path drop callbacks. A path drop
+ * callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, int path_count, const char* paths[])
+ * @endcode
+ *
+ * @param[in] window The window that received the event.
+ * @param[in] path_count The number of dropped paths.
+ * @param[in] paths The UTF-8 encoded file and/or directory path names.
+ *
+ * @pointer_lifetime The path array and its strings are valid until the
+ * callback function returns.
+ *
+ * @sa @ref path_drop
+ * @sa @ref glfwSetDropCallback
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup input
+ */
+ typedef void (*GLFWdropfun)(GLFWwindow* window, int path_count, const char* paths[]);
+
+ /*! @brief The function pointer type for monitor configuration callbacks.
+ *
+ * This is the function pointer type for monitor configuration callbacks.
+ * A monitor callback function has the following signature:
+ * @code
+ * void function_name(GLFWmonitor* monitor, int event)
+ * @endcode
+ *
+ * @param[in] monitor The monitor that was connected or disconnected.
+ * @param[in] event One of `GLFW_CONNECTED` or `GLFW_DISCONNECTED`. Future
+ * releases may add more events.
+ *
+ * @sa @ref monitor_event
+ * @sa @ref glfwSetMonitorCallback
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ typedef void (*GLFWmonitorfun)(GLFWmonitor* monitor, int event);
+
+ /*! @brief The function pointer type for joystick configuration callbacks.
+ *
+ * This is the function pointer type for joystick configuration callbacks.
+ * A joystick configuration callback function has the following signature:
+ * @code
+ * void function_name(int jid, int event)
+ * @endcode
+ *
+ * @param[in] jid The joystick that was connected or disconnected.
+ * @param[in] event One of `GLFW_CONNECTED` or `GLFW_DISCONNECTED`. Future
+ * releases may add more events.
+ *
+ * @sa @ref joystick_event
+ * @sa @ref glfwSetJoystickCallback
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup input
+ */
+ typedef void (*GLFWjoystickfun)(int jid, int event);
+
+ /*! @brief Video mode type.
+ *
+ * This describes a single video mode.
+ *
+ * @sa @ref monitor_modes
+ * @sa @ref glfwGetVideoMode
+ * @sa @ref glfwGetVideoModes
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added refresh rate member.
+ *
+ * @ingroup monitor
+ */
+ typedef struct GLFWvidmode
+ {
+ /*! The width, in screen coordinates, of the video mode.
+ */
+ int width;
+ /*! The height, in screen coordinates, of the video mode.
+ */
+ int height;
+ /*! The bit depth of the red channel of the video mode.
+ */
+ int redBits;
+ /*! The bit depth of the green channel of the video mode.
+ */
+ int greenBits;
+ /*! The bit depth of the blue channel of the video mode.
+ */
+ int blueBits;
+ /*! The refresh rate, in Hz, of the video mode.
+ */
+ int refreshRate;
+ } GLFWvidmode;
+
+ /*! @brief Gamma ramp.
+ *
+ * This describes the gamma ramp for a monitor.
+ *
+ * @sa @ref monitor_gamma
+ * @sa @ref glfwGetGammaRamp
+ * @sa @ref glfwSetGammaRamp
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ typedef struct GLFWgammaramp
+ {
+ /*! An array of value describing the response of the red channel.
+ */
+ unsigned short* red;
+ /*! An array of value describing the response of the green channel.
+ */
+ unsigned short* green;
+ /*! An array of value describing the response of the blue channel.
+ */
+ unsigned short* blue;
+ /*! The number of elements in each array.
+ */
+ unsigned int size;
+ } GLFWgammaramp;
+
+ /*! @brief Image data.
+ *
+ * This describes a single 2D image. See the documentation for each related
+ * function what the expected pixel format is.
+ *
+ * @sa @ref cursor_custom
+ * @sa @ref window_icon
+ *
+ * @since Added in version 2.1.
+ * @glfw3 Removed format and bytes-per-pixel members.
+ *
+ * @ingroup window
+ */
+ typedef struct GLFWimage
+ {
+ /*! The width, in pixels, of this image.
+ */
+ int width;
+ /*! The height, in pixels, of this image.
+ */
+ int height;
+ /*! The pixel data of this image, arranged left-to-right, top-to-bottom.
+ */
+ unsigned char* pixels;
+ } GLFWimage;
+
+ /*! @brief Gamepad input state
+ *
+ * This describes the input state of a gamepad.
+ *
+ * @sa @ref gamepad
+ * @sa @ref glfwGetGamepadState
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ typedef struct GLFWgamepadstate
+ {
+ /*! The states of each [gamepad button](@ref gamepad_buttons), `GLFW_PRESS`
+ * or `GLFW_RELEASE`.
+ */
+ unsigned char buttons[15];
+ /*! The states of each [gamepad axis](@ref gamepad_axes), in the range -1.0
+ * to 1.0 inclusive.
+ */
+ float axes[6];
+ } GLFWgamepadstate;
+
+ /*! @brief
+ *
+ * @sa @ref init_allocator
+ * @sa @ref glfwInitAllocator
+ *
+ * @since Added in version 3.4.
+ *
+ * @ingroup init
+ */
+ typedef struct GLFWallocator
+ {
+ GLFWallocatefun allocate;
+ GLFWreallocatefun reallocate;
+ GLFWdeallocatefun deallocate;
+ void* user;
+ } GLFWallocator;
+
+
+ /*************************************************************************
+ * GLFW API functions
+ *************************************************************************/
+
+ /*! @brief Initializes the GLFW library.
+ *
+ * This function initializes the GLFW library. Before most GLFW functions can
+ * be used, GLFW must be initialized, and before an application terminates GLFW
+ * should be terminated in order to free any resources allocated during or
+ * after initialization.
+ *
+ * If this function fails, it calls @ref glfwTerminate before returning. If it
+ * succeeds, you should call @ref glfwTerminate before the application exits.
+ *
+ * Additional calls to this function after successful initialization but before
+ * termination will return `GLFW_TRUE` immediately.
+ *
+ * The @ref GLFW_PLATFORM init hint controls which platforms are considered during
+ * initialization. This also depends on which platforms the library was compiled to
+ * support.
+ *
+ * @return `GLFW_TRUE` if successful, or `GLFW_FALSE` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_PLATFORM_UNAVAILABLE and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @remark @macos This function will change the current directory of the
+ * application to the `Contents/Resources` subdirectory of the application's
+ * bundle, if present. This can be disabled with the @ref
+ * GLFW_COCOA_CHDIR_RESOURCES init hint.
+ *
+ * @remark @macos This function will create the main menu and dock icon for the
+ * application. If GLFW finds a `MainMenu.nib` it is loaded and assumed to
+ * contain a menu bar. Otherwise a minimal menu bar is created manually with
+ * common commands like Hide, Quit and About. The About entry opens a minimal
+ * about dialog with information from the application's bundle. The menu bar
+ * and dock icon can be disabled entirely with the @ref GLFW_COCOA_MENUBAR init
+ * hint.
+ *
+ * @remark @x11 This function will set the `LC_CTYPE` category of the
+ * application locale according to the current environment if that category is
+ * still "C". This is because the "C" locale breaks Unicode text input.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref intro_init
+ * @sa @ref glfwInitHint
+ * @sa @ref glfwInitAllocator
+ * @sa @ref glfwTerminate
+ *
+ * @since Added in version 1.0.
+ *
+ * @ingroup init
+ */
+ SSCAPI int glfwInit(void);
+
+ /*! @brief Terminates the GLFW library.
+ *
+ * This function destroys all remaining windows and cursors, restores any
+ * modified gamma ramps and frees any other allocated resources. Once this
+ * function is called, you must again call @ref glfwInit successfully before
+ * you will be able to use most GLFW functions.
+ *
+ * If GLFW has been successfully initialized, this function should be called
+ * before the application exits. If initialization fails, there is no need to
+ * call this function, as it is called by @ref glfwInit before it returns
+ * failure.
+ *
+ * This function has no effect if GLFW is not initialized.
+ *
+ * @errors Possible errors include @ref GLFW_PLATFORM_ERROR.
+ *
+ * @remark This function may be called before @ref glfwInit.
+ *
+ * @warning The contexts of any remaining windows must not be current on any
+ * other thread when this function is called.
+ *
+ * @reentrancy This function must not be called from a callback.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref intro_init
+ * @sa @ref glfwInit
+ *
+ * @since Added in version 1.0.
+ *
+ * @ingroup init
+ */
+ SSCAPI void glfwTerminate(void);
+
+ /*! @brief Sets the specified init hint to the desired value.
+ *
+ * This function sets hints for the next initialization of GLFW.
+ *
+ * The values you set hints to are never reset by GLFW, but they only take
+ * effect during initialization. Once GLFW has been initialized, any values
+ * you set will be ignored until the library is terminated and initialized
+ * again.
+ *
+ * Some hints are platform specific. These may be set on any platform but they
+ * will only affect their specific platform. Other platforms will ignore them.
+ * Setting these hints requires no platform specific headers or functions.
+ *
+ * @param[in] hint The [init hint](@ref init_hints) to set.
+ * @param[in] value The new value of the init hint.
+ *
+ * @errors Possible errors include @ref GLFW_INVALID_ENUM and @ref
+ * GLFW_INVALID_VALUE.
+ *
+ * @remarks This function may be called before @ref glfwInit.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa init_hints
+ * @sa glfwInit
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup init
+ */
+ SSCAPI void glfwInitHint(int hint, int value);
+
+ /*! @brief Sets the init allocator to the desired value.
+ *
+ * To use the default allocator, call this function with a `NULL` argument.
+ *
+ * If you specify an allocator struct, every member must be a valid function
+ * pointer. If any member is `NULL`, this function emits @ref
+ * GLFW_INVALID_VALUE and the init allocator is unchanged.
+ *
+ * @param[in] allocator The allocator to use at the next initialization, or
+ * `NULL` to use the default one.
+ *
+ * @errors Possible errors include @ref GLFW_INVALID_VALUE.
+ *
+ * @pointer_lifetime The specified allocator is copied before this function
+ * returns.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref init_allocator
+ * @sa @ref glfwInit
+ *
+ * @since Added in version 3.4.
+ *
+ * @ingroup init
+ */
+ SSCAPI void glfwInitAllocator(const GLFWallocator* allocator);
+
+#if defined(VK_VERSION_1_0)
+
+ /*! @brief Sets the desired Vulkan `vkGetInstanceProcAddr` function.
+ *
+ * This function sets the `vkGetInstanceProcAddr` function that GLFW will use for all
+ * Vulkan related entry point queries.
+ *
+ * This feature is mostly useful on macOS, if your copy of the Vulkan loader is in
+ * a location where GLFW cannot find it through dynamic loading, or if you are still
+ * using the static library version of the loader.
+ *
+ * If set to `NULL`, GLFW will try to load the Vulkan loader dynamically by its standard
+ * name and get this function from there. This is the default behavior.
+ *
+ * The standard name of the loader is `vulkan-1.dll` on Windows, `libvulkan.so.1` on
+ * Linux and other Unix-like systems and `libvulkan.1.dylib` on macOS. If your code is
+ * also loading it via these names then you probably don't need to use this function.
+ *
+ * The function address you set is never reset by GLFW, but it only takes effect during
+ * initialization. Once GLFW has been initialized, any updates will be ignored until the
+ * library is terminated and initialized again.
+ *
+ * @param[in] loader The address of the function to use, or `NULL`.
+ *
+ * @par Loader function signature
+ * @code
+ * PFN_vkVoidFunction vkGetInstanceProcAddr(VkInstance instance, const char* name)
+ * @endcode
+ * For more information about this function, see the
+ * [Vulkan Registry](https://www.khronos.org/registry/vulkan/).
+ *
+ * @errors None.
+ *
+ * @remark This function may be called before @ref glfwInit.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref vulkan_loader
+ * @sa @ref glfwInit
+ *
+ * @since Added in version 3.4.
+ *
+ * @ingroup init
+ */
+ SSCAPI void glfwInitVulkanLoader(PFN_vkGetInstanceProcAddr loader);
+
+#endif /*VK_VERSION_1_0*/
+
+ /*! @brief Retrieves the version of the GLFW library.
+ *
+ * This function retrieves the major, minor and revision numbers of the GLFW
+ * library. It is intended for when you are using GLFW as a shared library and
+ * want to ensure that you are using the minimum required version.
+ *
+ * Any or all of the version arguments may be `NULL`.
+ *
+ * @param[out] major Where to store the major version number, or `NULL`.
+ * @param[out] minor Where to store the minor version number, or `NULL`.
+ * @param[out] rev Where to store the revision number, or `NULL`.
+ *
+ * @errors None.
+ *
+ * @remark This function may be called before @ref glfwInit.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref intro_version
+ * @sa @ref glfwGetVersionString
+ *
+ * @since Added in version 1.0.
+ *
+ * @ingroup init
+ */
+ SSCAPI void glfwGetVersion(int* major, int* minor, int* rev);
+
+ /*! @brief Returns a string describing the compile-time configuration.
+ *
+ * This function returns the compile-time generated
+ * [version string](@ref intro_version_string) of the GLFW library binary. It describes
+ * the version, platforms, compiler and any platform or operating system specific
+ * compile-time options. It should not be confused with the OpenGL or OpenGL ES version
+ * string, queried with `glGetString`.
+ *
+ * __Do not use the version string__ to parse the GLFW library version. The
+ * @ref glfwGetVersion function provides the version of the running library
+ * binary in numerical format.
+ *
+ * __Do not use the version string__ to parse what platforms are supported. The @ref
+ * glfwPlatformSupported function lets you query platform support.
+ *
+ * @return The ASCII encoded GLFW version string.
+ *
+ * @errors None.
+ *
+ * @remark This function may be called before @ref glfwInit.
+ *
+ * @pointer_lifetime The returned string is static and compile-time generated.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref intro_version
+ * @sa @ref glfwGetVersion
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup init
+ */
+ SSCAPI const char* glfwGetVersionString(void);
+
+ /*! @brief Returns and clears the last error for the calling thread.
+ *
+ * This function returns and clears the [error code](@ref errors) of the last
+ * error that occurred on the calling thread, and optionally a UTF-8 encoded
+ * human-readable description of it. If no error has occurred since the last
+ * call, it returns @ref GLFW_NO_ERROR (zero) and the description pointer is
+ * set to `NULL`.
+ *
+ * @param[in] description Where to store the error description pointer, or `NULL`.
+ * @return The last error code for the calling thread, or @ref GLFW_NO_ERROR
+ * (zero).
+ *
+ * @errors None.
+ *
+ * @pointer_lifetime The returned string is allocated and freed by GLFW. You
+ * should not free it yourself. It is guaranteed to be valid only until the
+ * next error occurs or the library is terminated.
+ *
+ * @remark This function may be called before @ref glfwInit.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref error_handling
+ * @sa @ref glfwSetErrorCallback
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup init
+ */
+ SSCAPI int glfwGetError(const char** description);
+
+ /*! @brief Sets the error callback.
+ *
+ * This function sets the error callback, which is called with an error code
+ * and a human-readable description each time a GLFW error occurs.
+ *
+ * The error code is set before the callback is called. Calling @ref
+ * glfwGetError from the error callback will return the same value as the error
+ * code argument.
+ *
+ * The error callback is called on the thread where the error occurred. If you
+ * are using GLFW from multiple threads, your error callback needs to be
+ * written accordingly.
+ *
+ * Because the description string may have been generated specifically for that
+ * error, it is not guaranteed to be valid after the callback has returned. If
+ * you wish to use it after the callback returns, you need to make a copy.
+ *
+ * Once set, the error callback remains set even after the library has been
+ * terminated.
+ *
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set.
+ *
+ * @callback_signature
+ * @code
+ * void callback_name(int error_code, const char* description)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [callback pointer type](@ref GLFWerrorfun).
+ *
+ * @errors None.
+ *
+ * @remark This function may be called before @ref glfwInit.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref error_handling
+ * @sa @ref glfwGetError
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup init
+ */
+ SSCAPI GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun callback);
+
+ /*! @brief Returns the currently selected platform.
+ *
+ * This function returns the platform that was selected during initialization. The
+ * returned value will be one of `GLFW_PLATFORM_WIN32`, `GLFW_PLATFORM_COCOA`,
+ * `GLFW_PLATFORM_WAYLAND`, `GLFW_PLATFORM_X11` or `GLFW_PLATFORM_NULL`.
+ *
+ * @return The currently selected platform, or zero if an error occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref platform
+ * @sa @ref glfwPlatformSupported
+ *
+ * @since Added in version 3.4.
+ *
+ * @ingroup init
+ */
+ SSCAPI int glfwGetPlatform(void);
+
+ /*! @brief Returns whether the library includes support for the specified platform.
+ *
+ * This function returns whether the library was compiled with support for the specified
+ * platform. The platform must be one of `GLFW_PLATFORM_WIN32`, `GLFW_PLATFORM_COCOA`,
+ * `GLFW_PLATFORM_WAYLAND`, `GLFW_PLATFORM_X11` or `GLFW_PLATFORM_NULL`.
+ *
+ * @param[in] platform The platform to query.
+ * @return `GLFW_TRUE` if the platform is supported, or `GLFW_FALSE` otherwise.
+ *
+ * @errors Possible errors include @ref GLFW_INVALID_ENUM.
+ *
+ * @remark This function may be called before @ref glfwInit.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref platform
+ * @sa @ref glfwGetPlatform
+ *
+ * @since Added in version 3.4.
+ *
+ * @ingroup init
+ */
+ SSCAPI int glfwPlatformSupported(int platform);
+
+ /*! @brief Returns the currently connected monitors.
+ *
+ * This function returns an array of handles for all currently connected
+ * monitors. The primary monitor is always first in the returned array. If no
+ * monitors were found, this function returns `NULL`.
+ *
+ * @param[out] count Where to store the number of monitors in the returned
+ * array. This is set to zero if an error occurred.
+ * @return An array of monitor handles, or `NULL` if no monitors were found or
+ * if an [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @pointer_lifetime The returned array is allocated and freed by GLFW. You
+ * should not free it yourself. It is guaranteed to be valid only until the
+ * monitor configuration changes or the library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_monitors
+ * @sa @ref monitor_event
+ * @sa @ref glfwGetPrimaryMonitor
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI GLFWmonitor** glfwGetMonitors(int* count);
+
+ /*! @brief Returns the primary monitor.
+ *
+ * This function returns the primary monitor. This is usually the monitor
+ * where elements like the task bar or global menu bar are located.
+ *
+ * @return The primary monitor, or `NULL` if no monitors were found or if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @remark The primary monitor is always first in the array returned by @ref
+ * glfwGetMonitors.
+ *
+ * @sa @ref monitor_monitors
+ * @sa @ref glfwGetMonitors
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI GLFWmonitor* glfwGetPrimaryMonitor(void);
+
+ /*! @brief Returns the position of the monitor's viewport on the virtual screen.
+ *
+ * This function returns the position, in screen coordinates, of the upper-left
+ * corner of the specified monitor.
+ *
+ * Any or all of the position arguments may be `NULL`. If an error occurs, all
+ * non-`NULL` position arguments will be set to zero.
+ *
+ * @param[in] monitor The monitor to query.
+ * @param[out] xpos Where to store the monitor x-coordinate, or `NULL`.
+ * @param[out] ypos Where to store the monitor y-coordinate, or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_properties
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI void glfwGetMonitorPos(GLFWmonitor* monitor, int* xpos, int* ypos);
+
+ /*! @brief Retrieves the work area of the monitor.
+ *
+ * This function returns the position, in screen coordinates, of the upper-left
+ * corner of the work area of the specified monitor along with the work area
+ * size in screen coordinates. The work area is defined as the area of the
+ * monitor not occluded by the window system task bar where present. If no
+ * task bar exists then the work area is the monitor resolution in screen
+ * coordinates.
+ *
+ * Any or all of the position and size arguments may be `NULL`. If an error
+ * occurs, all non-`NULL` position and size arguments will be set to zero.
+ *
+ * @param[in] monitor The monitor to query.
+ * @param[out] xpos Where to store the monitor x-coordinate, or `NULL`.
+ * @param[out] ypos Where to store the monitor y-coordinate, or `NULL`.
+ * @param[out] width Where to store the monitor width, or `NULL`.
+ * @param[out] height Where to store the monitor height, or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_workarea
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI void glfwGetMonitorWorkarea(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
+
+ /*! @brief Returns the physical size of the monitor.
+ *
+ * This function returns the size, in millimetres, of the display area of the
+ * specified monitor.
+ *
+ * Some platforms do not provide accurate monitor size information, either
+ * because the monitor
+ * [EDID](https://en.wikipedia.org/wiki/Extended_display_identification_data)
+ * data is incorrect or because the driver does not report it accurately.
+ *
+ * Any or all of the size arguments may be `NULL`. If an error occurs, all
+ * non-`NULL` size arguments will be set to zero.
+ *
+ * @param[in] monitor The monitor to query.
+ * @param[out] widthMM Where to store the width, in millimetres, of the
+ * monitor's display area, or `NULL`.
+ * @param[out] heightMM Where to store the height, in millimetres, of the
+ * monitor's display area, or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @remark @win32 On Windows 8 and earlier the physical size is calculated from
+ * the current resolution and system DPI instead of querying the monitor EDID data.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_properties
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI void glfwGetMonitorPhysicalSize(GLFWmonitor* monitor, int* widthMM, int* heightMM);
+
+ /*! @brief Retrieves the content scale for the specified monitor.
+ *
+ * This function retrieves the content scale for the specified monitor. The
+ * content scale is the ratio between the current DPI and the platform's
+ * default DPI. This is especially important for text and any UI elements. If
+ * the pixel dimensions of your UI scaled by this look appropriate on your
+ * machine then it should appear at a reasonable size on other machines
+ * regardless of their DPI and scaling settings. This relies on the system DPI
+ * and scaling settings being somewhat correct.
+ *
+ * The content scale may depend on both the monitor resolution and pixel
+ * density and on user settings. It may be very different from the raw DPI
+ * calculated from the physical size and current resolution.
+ *
+ * @param[in] monitor The monitor to query.
+ * @param[out] xscale Where to store the x-axis content scale, or `NULL`.
+ * @param[out] yscale Where to store the y-axis content scale, or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_scale
+ * @sa @ref glfwGetWindowContentScale
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI void glfwGetMonitorContentScale(GLFWmonitor* monitor, float* xscale, float* yscale);
+
+ /*! @brief Returns the name of the specified monitor.
+ *
+ * This function returns a human-readable name, encoded as UTF-8, of the
+ * specified monitor. The name typically reflects the make and model of the
+ * monitor and is not guaranteed to be unique among the connected monitors.
+ *
+ * @param[in] monitor The monitor to query.
+ * @return The UTF-8 encoded name of the monitor, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @pointer_lifetime The returned string is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the specified monitor is
+ * disconnected or the library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_properties
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI const char* glfwGetMonitorName(GLFWmonitor* monitor);
+
+ /*! @brief Sets the user pointer of the specified monitor.
+ *
+ * This function sets the user-defined pointer of the specified monitor. The
+ * current value is retained until the monitor is disconnected. The initial
+ * value is `NULL`.
+ *
+ * This function may be called from the monitor callback, even for a monitor
+ * that is being disconnected.
+ *
+ * @param[in] monitor The monitor whose pointer to set.
+ * @param[in] pointer The new value.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @sa @ref monitor_userptr
+ * @sa @ref glfwGetMonitorUserPointer
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI void glfwSetMonitorUserPointer(GLFWmonitor* monitor, void* pointer);
+
+ /*! @brief Returns the user pointer of the specified monitor.
+ *
+ * This function returns the current value of the user-defined pointer of the
+ * specified monitor. The initial value is `NULL`.
+ *
+ * This function may be called from the monitor callback, even for a monitor
+ * that is being disconnected.
+ *
+ * @param[in] monitor The monitor whose pointer to return.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @sa @ref monitor_userptr
+ * @sa @ref glfwSetMonitorUserPointer
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI void* glfwGetMonitorUserPointer(GLFWmonitor* monitor);
+
+ /*! @brief Sets the monitor configuration callback.
+ *
+ * This function sets the monitor configuration callback, or removes the
+ * currently set callback. This is called when a monitor is connected to or
+ * disconnected from the system.
+ *
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWmonitor* monitor, int event)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWmonitorfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_event
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback);
+
+ /*! @brief Returns the available video modes for the specified monitor.
+ *
+ * This function returns an array of all video modes supported by the specified
+ * monitor. The returned array is sorted in ascending order, first by color
+ * bit depth (the sum of all channel depths), then by resolution area (the
+ * product of width and height), then resolution width and finally by refresh
+ * rate.
+ *
+ * @param[in] monitor The monitor to query.
+ * @param[out] count Where to store the number of video modes in the returned
+ * array. This is set to zero if an error occurred.
+ * @return An array of video modes, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The returned array is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the specified monitor is
+ * disconnected, this function is called again for that monitor or the library
+ * is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_modes
+ * @sa @ref glfwGetVideoMode
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Changed to return an array of modes for a specific monitor.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI const GLFWvidmode* glfwGetVideoModes(GLFWmonitor* monitor, int* count);
+
+ /*! @brief Returns the current mode of the specified monitor.
+ *
+ * This function returns the current video mode of the specified monitor. If
+ * you have created a full screen window for that monitor, the return value
+ * will depend on whether that window is iconified.
+ *
+ * @param[in] monitor The monitor to query.
+ * @return The current mode of the monitor, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The returned array is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the specified monitor is
+ * disconnected or the library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_modes
+ * @sa @ref glfwGetVideoModes
+ *
+ * @since Added in version 3.0. Replaces `glfwGetDesktopMode`.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI const GLFWvidmode* glfwGetVideoMode(GLFWmonitor* monitor);
+
+ /*! @brief Generates a gamma ramp and sets it for the specified monitor.
+ *
+ * This function generates an appropriately sized gamma ramp from the specified
+ * exponent and then calls @ref glfwSetGammaRamp with it. The value must be
+ * a finite number greater than zero.
+ *
+ * The software controlled gamma ramp is applied _in addition_ to the hardware
+ * gamma correction, which today is usually an approximation of sRGB gamma.
+ * This means that setting a perfectly linear ramp, or gamma 1.0, will produce
+ * the default (usually sRGB-like) behavior.
+ *
+ * For gamma correct rendering with OpenGL or OpenGL ES, see the @ref
+ * GLFW_SRGB_CAPABLE hint.
+ *
+ * @param[in] monitor The monitor whose gamma ramp to set.
+ * @param[in] gamma The desired exponent.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref GLFW_INVALID_VALUE,
+ * @ref GLFW_PLATFORM_ERROR and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
+ *
+ * @remark @wayland Gamma handling is a privileged protocol, this function
+ * will thus never be implemented and emits @ref GLFW_FEATURE_UNAVAILABLE.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_gamma
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI void glfwSetGamma(GLFWmonitor* monitor, float gamma);
+
+ /*! @brief Returns the current gamma ramp for the specified monitor.
+ *
+ * This function returns the current gamma ramp of the specified monitor.
+ *
+ * @param[in] monitor The monitor to query.
+ * @return The current gamma ramp, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref GLFW_PLATFORM_ERROR
+ * and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
+ *
+ * @remark @wayland Gamma handling is a privileged protocol, this function
+ * will thus never be implemented and emits @ref GLFW_FEATURE_UNAVAILABLE while
+ * returning `NULL`.
+ *
+ * @pointer_lifetime The returned structure and its arrays are allocated and
+ * freed by GLFW. You should not free them yourself. They are valid until the
+ * specified monitor is disconnected, this function is called again for that
+ * monitor or the library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_gamma
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI const GLFWgammaramp* glfwGetGammaRamp(GLFWmonitor* monitor);
+
+ /*! @brief Sets the current gamma ramp for the specified monitor.
+ *
+ * This function sets the current gamma ramp for the specified monitor. The
+ * original gamma ramp for that monitor is saved by GLFW the first time this
+ * function is called and is restored by @ref glfwTerminate.
+ *
+ * The software controlled gamma ramp is applied _in addition_ to the hardware
+ * gamma correction, which today is usually an approximation of sRGB gamma.
+ * This means that setting a perfectly linear ramp, or gamma 1.0, will produce
+ * the default (usually sRGB-like) behavior.
+ *
+ * For gamma correct rendering with OpenGL or OpenGL ES, see the @ref
+ * GLFW_SRGB_CAPABLE hint.
+ *
+ * @param[in] monitor The monitor whose gamma ramp to set.
+ * @param[in] ramp The gamma ramp to use.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref GLFW_PLATFORM_ERROR
+ * and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
+ *
+ * @remark The size of the specified gamma ramp should match the size of the
+ * current ramp for that monitor.
+ *
+ * @remark @win32 The gamma ramp size must be 256.
+ *
+ * @remark @wayland Gamma handling is a privileged protocol, this function
+ * will thus never be implemented and emits @ref GLFW_FEATURE_UNAVAILABLE.
+ *
+ * @pointer_lifetime The specified gamma ramp is copied before this function
+ * returns.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_gamma
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI void glfwSetGammaRamp(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
+
+ /*! @brief Resets all window hints to their default values.
+ *
+ * This function resets all window hints to their
+ * [default values](@ref window_hints_values).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_hints
+ * @sa @ref glfwWindowHint
+ * @sa @ref glfwWindowHintString
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwDefaultWindowHints(void);
+
+ /*! @brief Sets the specified window hint to the desired value.
+ *
+ * This function sets hints for the next call to @ref glfwCreateWindow. The
+ * hints, once set, retain their values until changed by a call to this
+ * function or @ref glfwDefaultWindowHints, or until the library is terminated.
+ *
+ * Only integer value hints can be set with this function. String value hints
+ * are set with @ref glfwWindowHintString.
+ *
+ * This function does not check whether the specified hint values are valid.
+ * If you set hints to invalid values this will instead be reported by the next
+ * call to @ref glfwCreateWindow.
+ *
+ * Some hints are platform specific. These may be set on any platform but they
+ * will only affect their specific platform. Other platforms will ignore them.
+ * Setting these hints requires no platform specific headers or functions.
+ *
+ * @param[in] hint The [window hint](@ref window_hints) to set.
+ * @param[in] value The new value of the window hint.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_INVALID_ENUM.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_hints
+ * @sa @ref glfwWindowHintString
+ * @sa @ref glfwDefaultWindowHints
+ *
+ * @since Added in version 3.0. Replaces `glfwOpenWindowHint`.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwWindowHint(int hint, int value);
+
+ /*! @brief Sets the specified window hint to the desired value.
+ *
+ * This function sets hints for the next call to @ref glfwCreateWindow. The
+ * hints, once set, retain their values until changed by a call to this
+ * function or @ref glfwDefaultWindowHints, or until the library is terminated.
+ *
+ * Only string type hints can be set with this function. Integer value hints
+ * are set with @ref glfwWindowHint.
+ *
+ * This function does not check whether the specified hint values are valid.
+ * If you set hints to invalid values this will instead be reported by the next
+ * call to @ref glfwCreateWindow.
+ *
+ * Some hints are platform specific. These may be set on any platform but they
+ * will only affect their specific platform. Other platforms will ignore them.
+ * Setting these hints requires no platform specific headers or functions.
+ *
+ * @param[in] hint The [window hint](@ref window_hints) to set.
+ * @param[in] value The new value of the window hint.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_INVALID_ENUM.
+ *
+ * @pointer_lifetime The specified string is copied before this function
+ * returns.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_hints
+ * @sa @ref glfwWindowHint
+ * @sa @ref glfwDefaultWindowHints
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwWindowHintString(int hint, const char* value);
+
+ /*! @brief Creates a window and its associated context.
+ *
+ * This function creates a window and its associated OpenGL or OpenGL ES
+ * context. Most of the options controlling how the window and its context
+ * should be created are specified with [window hints](@ref window_hints).
+ *
+ * Successful creation does not change which context is current. Before you
+ * can use the newly created context, you need to
+ * [make it current](@ref context_current). For information about the `share`
+ * parameter, see @ref context_sharing.
+ *
+ * The created window, framebuffer and context may differ from what you
+ * requested, as not all parameters and hints are
+ * [hard constraints](@ref window_hints_hard). This includes the size of the
+ * window, especially for full screen windows. To query the actual attributes
+ * of the created window, framebuffer and context, see @ref
+ * glfwGetWindowAttrib, @ref glfwGetWindowSize and @ref glfwGetFramebufferSize.
+ *
+ * To create a full screen window, you need to specify the monitor the window
+ * will cover. If no monitor is specified, the window will be windowed mode.
+ * Unless you have a way for the user to choose a specific monitor, it is
+ * recommended that you pick the primary monitor. For more information on how
+ * to query connected monitors, see @ref monitor_monitors.
+ *
+ * For full screen windows, the specified size becomes the resolution of the
+ * window's _desired video mode_. As long as a full screen window is not
+ * iconified, the supported video mode most closely matching the desired video
+ * mode is set for the specified monitor. For more information about full
+ * screen windows, including the creation of so called _windowed full screen_
+ * or _borderless full screen_ windows, see @ref window_windowed_full_screen.
+ *
+ * Once you have created the window, you can switch it between windowed and
+ * full screen mode with @ref glfwSetWindowMonitor. This will not affect its
+ * OpenGL or OpenGL ES context.
+ *
+ * By default, newly created windows use the placement recommended by the
+ * window system. To create the window at a specific position, set the @ref
+ * GLFW_POSITION_X and @ref GLFW_POSITION_Y window hints before creation. To
+ * restore the default behavior, set either or both hints back to
+ * `GLFW_ANY_POSITION`.
+ *
+ * As long as at least one full screen window is not iconified, the screensaver
+ * is prohibited from starting.
+ *
+ * Window systems put limits on window sizes. Very large or very small window
+ * dimensions may be overridden by the window system on creation. Check the
+ * actual [size](@ref window_size) after creation.
+ *
+ * The [swap interval](@ref buffer_swap) is not set during window creation and
+ * the initial value may vary depending on driver settings and defaults.
+ *
+ * @param[in] width The desired width, in screen coordinates, of the window.
+ * This must be greater than zero.
+ * @param[in] height The desired height, in screen coordinates, of the window.
+ * This must be greater than zero.
+ * @param[in] title The initial, UTF-8 encoded window title.
+ * @param[in] monitor The monitor to use for full screen mode, or `NULL` for
+ * windowed mode.
+ * @param[in] share The window whose context to share resources with, or `NULL`
+ * to not share resources.
+ * @return The handle of the created window, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM, @ref GLFW_INVALID_VALUE, @ref GLFW_API_UNAVAILABLE, @ref
+ * GLFW_VERSION_UNAVAILABLE, @ref GLFW_FORMAT_UNAVAILABLE and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @remark @win32 Window creation will fail if the Microsoft GDI software
+ * OpenGL implementation is the only one available.
+ *
+ * @remark @win32 If the executable has an icon resource named `GLFW_ICON,` it
+ * will be set as the initial icon for the window. If no such icon is present,
+ * the `IDI_APPLICATION` icon will be used instead. To set a different icon,
+ * see @ref glfwSetWindowIcon.
+ *
+ * @remark @win32 The context to share resources with must not be current on
+ * any other thread.
+ *
+ * @remark @macos The OS only supports core profile contexts for OpenGL
+ * versions 3.2 and later. Before creating an OpenGL context of version 3.2 or
+ * later you must set the [GLFW_OPENGL_PROFILE](@ref GLFW_OPENGL_PROFILE_hint)
+ * hint accordingly. OpenGL 3.0 and 3.1 contexts are not supported at all
+ * on macOS.
+ *
+ * @remark @macos The GLFW window has no icon, as it is not a document
+ * window, but the dock icon will be the same as the application bundle's icon.
+ * For more information on bundles, see the
+ * [Bundle Programming Guide](https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/)
+ * in the Mac Developer Library.
+ *
+ * @remark @macos On OS X 10.10 and later the window frame will not be rendered
+ * at full resolution on Retina displays unless the
+ * [GLFW_COCOA_RETINA_FRAMEBUFFER](@ref GLFW_COCOA_RETINA_FRAMEBUFFER_hint)
+ * hint is `GLFW_TRUE` and the `NSHighResolutionCapable` key is enabled in the
+ * application bundle's `Info.plist`. For more information, see
+ * [High Resolution Guidelines for OS X](https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Explained/Explained.html)
+ * in the Mac Developer Library. The GLFW test and example programs use
+ * a custom `Info.plist` template for this, which can be found as
+ * `CMake/Info.plist.in` in the source tree.
+ *
+ * @remark @macos When activating frame autosaving with
+ * [GLFW_COCOA_FRAME_NAME](@ref GLFW_COCOA_FRAME_NAME_hint), the specified
+ * window size and position may be overridden by previously saved values.
+ *
+ * @remark @x11 Some window managers will not respect the placement of
+ * initially hidden windows.
+ *
+ * @remark @x11 Due to the asynchronous nature of X11, it may take a moment for
+ * a window to reach its requested state. This means you may not be able to
+ * query the final size, position or other attributes directly after window
+ * creation.
+ *
+ * @remark @x11 The class part of the `WM_CLASS` window property will by
+ * default be set to the window title passed to this function. The instance
+ * part will use the contents of the `RESOURCE_NAME` environment variable, if
+ * present and not empty, or fall back to the window title. Set the
+ * [GLFW_X11_CLASS_NAME](@ref GLFW_X11_CLASS_NAME_hint) and
+ * [GLFW_X11_INSTANCE_NAME](@ref GLFW_X11_INSTANCE_NAME_hint) window hints to
+ * override this.
+ *
+ * @remark @wayland Compositors should implement the xdg-decoration protocol
+ * for GLFW to decorate the window properly. If this protocol isn't
+ * supported, or if the compositor prefers client-side decorations, a very
+ * simple fallback frame will be drawn using the wp_viewporter protocol. A
+ * compositor can still emit close, maximize or fullscreen events, using for
+ * instance a keybind mechanism. If neither of these protocols is supported,
+ * the window won't be decorated.
+ *
+ * @remark @wayland A full screen window will not attempt to change the mode,
+ * no matter what the requested size or refresh rate.
+ *
+ * @remark @wayland Screensaver inhibition requires the idle-inhibit protocol
+ * to be implemented in the user's compositor.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_creation
+ * @sa @ref glfwDestroyWindow
+ *
+ * @since Added in version 3.0. Replaces `glfwOpenWindow`.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWwindow* glfwCreateWindow(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
+
+ /*! @brief Destroys the specified window and its context.
+ *
+ * This function destroys the specified window and its context. On calling
+ * this function, no further callbacks will be called for that window.
+ *
+ * If the context of the specified window is current on the main thread, it is
+ * detached before being destroyed.
+ *
+ * @param[in] window The window to destroy.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @note The context of the specified window must not be current on any other
+ * thread when this function is called.
+ *
+ * @reentrancy This function must not be called from a callback.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_creation
+ * @sa @ref glfwCreateWindow
+ *
+ * @since Added in version 3.0. Replaces `glfwCloseWindow`.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwDestroyWindow(GLFWwindow* window);
+
+ /*! @brief Checks the close flag of the specified window.
+ *
+ * This function returns the value of the close flag of the specified window.
+ *
+ * @param[in] window The window to query.
+ * @return The value of the close flag.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @sa @ref window_close
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI int glfwWindowShouldClose(GLFWwindow* window);
+
+ /*! @brief Sets the close flag of the specified window.
+ *
+ * This function sets the value of the close flag of the specified window.
+ * This can be used to override the user's attempt to close the window, or
+ * to signal that it should be closed.
+ *
+ * @param[in] window The window whose flag to change.
+ * @param[in] value The new value.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @sa @ref window_close
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowShouldClose(GLFWwindow* window, int value);
+
+ /*! @brief Sets the title of the specified window.
+ *
+ * This function sets the window title, encoded as UTF-8, of the specified
+ * window.
+ *
+ * @param[in] window The window whose title to change.
+ * @param[in] title The UTF-8 encoded window title.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @remark @macos The window title will not be updated until the next time you
+ * process events.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_title
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowTitle(GLFWwindow* window, const char* title);
+
+ /*! @brief Sets the icon for the specified window.
+ *
+ * This function sets the icon of the specified window. If passed an array of
+ * candidate images, those of or closest to the sizes desired by the system are
+ * selected. If no images are specified, the window reverts to its default
+ * icon.
+ *
+ * The pixels are 32-bit, little-endian, non-premultiplied RGBA, i.e. eight
+ * bits per channel with the red channel first. They are arranged canonically
+ * as packed sequential rows, starting from the top-left corner.
+ *
+ * The desired image sizes varies depending on platform and system settings.
+ * The selected images will be rescaled as needed. Good sizes include 16x16,
+ * 32x32 and 48x48.
+ *
+ * @param[in] window The window whose icon to set.
+ * @param[in] count The number of images in the specified array, or zero to
+ * revert to the default window icon.
+ * @param[in] images The images to create the icon from. This is ignored if
+ * count is zero.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_VALUE, @ref GLFW_PLATFORM_ERROR and @ref
+ * GLFW_FEATURE_UNAVAILABLE (see remarks).
+ *
+ * @pointer_lifetime The specified image data is copied before this function
+ * returns.
+ *
+ * @remark @macos Regular windows do not have icons on macOS. This function
+ * will emit @ref GLFW_FEATURE_UNAVAILABLE. The dock icon will be the same as
+ * the application bundle's icon. For more information on bundles, see the
+ * [Bundle Programming Guide](https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/)
+ * in the Mac Developer Library.
+ *
+ * @remark @wayland There is no existing protocol to change an icon, the
+ * window will thus inherit the one defined in the application's desktop file.
+ * This function will emit @ref GLFW_FEATURE_UNAVAILABLE.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_icon
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowIcon(GLFWwindow* window, int count, const GLFWimage* images);
+
+ /*! @brief Retrieves the position of the content area of the specified window.
+ *
+ * This function retrieves the position, in screen coordinates, of the
+ * upper-left corner of the content area of the specified window.
+ *
+ * Any or all of the position arguments may be `NULL`. If an error occurs, all
+ * non-`NULL` position arguments will be set to zero.
+ *
+ * @param[in] window The window to query.
+ * @param[out] xpos Where to store the x-coordinate of the upper-left corner of
+ * the content area, or `NULL`.
+ * @param[out] ypos Where to store the y-coordinate of the upper-left corner of
+ * the content area, or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_PLATFORM_ERROR and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
+ *
+ * @remark @wayland There is no way for an application to retrieve the global
+ * position of its windows. This function will emit @ref
+ * GLFW_FEATURE_UNAVAILABLE.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_pos
+ * @sa @ref glfwSetWindowPos
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwGetWindowPos(GLFWwindow* window, int* xpos, int* ypos);
+
+ /*! @brief Sets the position of the content area of the specified window.
+ *
+ * This function sets the position, in screen coordinates, of the upper-left
+ * corner of the content area of the specified windowed mode window. If the
+ * window is a full screen window, this function does nothing.
+ *
+ * __Do not use this function__ to move an already visible window unless you
+ * have very good reasons for doing so, as it will confuse and annoy the user.
+ *
+ * The window manager may put limits on what positions are allowed. GLFW
+ * cannot and should not override these limits.
+ *
+ * @param[in] window The window to query.
+ * @param[in] xpos The x-coordinate of the upper-left corner of the content area.
+ * @param[in] ypos The y-coordinate of the upper-left corner of the content area.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_PLATFORM_ERROR and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
+ *
+ * @remark @wayland There is no way for an application to set the global
+ * position of its windows. This function will emit @ref
+ * GLFW_FEATURE_UNAVAILABLE.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_pos
+ * @sa @ref glfwGetWindowPos
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowPos(GLFWwindow* window, int xpos, int ypos);
+
+ /*! @brief Retrieves the size of the content area of the specified window.
+ *
+ * This function retrieves the size, in screen coordinates, of the content area
+ * of the specified window. If you wish to retrieve the size of the
+ * framebuffer of the window in pixels, see @ref glfwGetFramebufferSize.
+ *
+ * Any or all of the size arguments may be `NULL`. If an error occurs, all
+ * non-`NULL` size arguments will be set to zero.
+ *
+ * @param[in] window The window whose size to retrieve.
+ * @param[out] width Where to store the width, in screen coordinates, of the
+ * content area, or `NULL`.
+ * @param[out] height Where to store the height, in screen coordinates, of the
+ * content area, or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_size
+ * @sa @ref glfwSetWindowSize
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwGetWindowSize(GLFWwindow* window, int* width, int* height);
+
+ /*! @brief Sets the size limits of the specified window.
+ *
+ * This function sets the size limits of the content area of the specified
+ * window. If the window is full screen, the size limits only take effect
+ * once it is made windowed. If the window is not resizable, this function
+ * does nothing.
+ *
+ * The size limits are applied immediately to a windowed mode window and may
+ * cause it to be resized.
+ *
+ * The maximum dimensions must be greater than or equal to the minimum
+ * dimensions and all must be greater than or equal to zero.
+ *
+ * @param[in] window The window to set limits for.
+ * @param[in] minwidth The minimum width, in screen coordinates, of the content
+ * area, or `GLFW_DONT_CARE`.
+ * @param[in] minheight The minimum height, in screen coordinates, of the
+ * content area, or `GLFW_DONT_CARE`.
+ * @param[in] maxwidth The maximum width, in screen coordinates, of the content
+ * area, or `GLFW_DONT_CARE`.
+ * @param[in] maxheight The maximum height, in screen coordinates, of the
+ * content area, or `GLFW_DONT_CARE`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @remark If you set size limits and an aspect ratio that conflict, the
+ * results are undefined.
+ *
+ * @remark @wayland The size limits will not be applied until the window is
+ * actually resized, either by the user or by the compositor.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_sizelimits
+ * @sa @ref glfwSetWindowAspectRatio
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowSizeLimits(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
+
+ /*! @brief Sets the aspect ratio of the specified window.
+ *
+ * This function sets the required aspect ratio of the content area of the
+ * specified window. If the window is full screen, the aspect ratio only takes
+ * effect once it is made windowed. If the window is not resizable, this
+ * function does nothing.
+ *
+ * The aspect ratio is specified as a numerator and a denominator and both
+ * values must be greater than zero. For example, the common 16:9 aspect ratio
+ * is specified as 16 and 9, respectively.
+ *
+ * If the numerator and denominator is set to `GLFW_DONT_CARE` then the aspect
+ * ratio limit is disabled.
+ *
+ * The aspect ratio is applied immediately to a windowed mode window and may
+ * cause it to be resized.
+ *
+ * @param[in] window The window to set limits for.
+ * @param[in] numer The numerator of the desired aspect ratio, or
+ * `GLFW_DONT_CARE`.
+ * @param[in] denom The denominator of the desired aspect ratio, or
+ * `GLFW_DONT_CARE`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @remark If you set size limits and an aspect ratio that conflict, the
+ * results are undefined.
+ *
+ * @remark @wayland The aspect ratio will not be applied until the window is
+ * actually resized, either by the user or by the compositor.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_sizelimits
+ * @sa @ref glfwSetWindowSizeLimits
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowAspectRatio(GLFWwindow* window, int numer, int denom);
+
+ /*! @brief Sets the size of the content area of the specified window.
+ *
+ * This function sets the size, in screen coordinates, of the content area of
+ * the specified window.
+ *
+ * For full screen windows, this function updates the resolution of its desired
+ * video mode and switches to the video mode closest to it, without affecting
+ * the window's context. As the context is unaffected, the bit depths of the
+ * framebuffer remain unchanged.
+ *
+ * If you wish to update the refresh rate of the desired video mode in addition
+ * to its resolution, see @ref glfwSetWindowMonitor.
+ *
+ * The window manager may put limits on what sizes are allowed. GLFW cannot
+ * and should not override these limits.
+ *
+ * @param[in] window The window to resize.
+ * @param[in] width The desired width, in screen coordinates, of the window
+ * content area.
+ * @param[in] height The desired height, in screen coordinates, of the window
+ * content area.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @remark @wayland A full screen window will not attempt to change the mode,
+ * no matter what the requested size.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_size
+ * @sa @ref glfwGetWindowSize
+ * @sa @ref glfwSetWindowMonitor
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowSize(GLFWwindow* window, int width, int height);
+
+ /*! @brief Retrieves the size of the framebuffer of the specified window.
+ *
+ * This function retrieves the size, in pixels, of the framebuffer of the
+ * specified window. If you wish to retrieve the size of the window in screen
+ * coordinates, see @ref glfwGetWindowSize.
+ *
+ * Any or all of the size arguments may be `NULL`. If an error occurs, all
+ * non-`NULL` size arguments will be set to zero.
+ *
+ * @param[in] window The window whose framebuffer to query.
+ * @param[out] width Where to store the width, in pixels, of the framebuffer,
+ * or `NULL`.
+ * @param[out] height Where to store the height, in pixels, of the framebuffer,
+ * or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_fbsize
+ * @sa @ref glfwSetFramebufferSizeCallback
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwGetFramebufferSize(GLFWwindow* window, int* width, int* height);
+
+ /*! @brief Retrieves the size of the frame of the window.
+ *
+ * This function retrieves the size, in screen coordinates, of each edge of the
+ * frame of the specified window. This size includes the title bar, if the
+ * window has one. The size of the frame may vary depending on the
+ * [window-related hints](@ref window_hints_wnd) used to create it.
+ *
+ * Because this function retrieves the size of each window frame edge and not
+ * the offset along a particular coordinate axis, the retrieved values will
+ * always be zero or positive.
+ *
+ * Any or all of the size arguments may be `NULL`. If an error occurs, all
+ * non-`NULL` size arguments will be set to zero.
+ *
+ * @param[in] window The window whose frame size to query.
+ * @param[out] left Where to store the size, in screen coordinates, of the left
+ * edge of the window frame, or `NULL`.
+ * @param[out] top Where to store the size, in screen coordinates, of the top
+ * edge of the window frame, or `NULL`.
+ * @param[out] right Where to store the size, in screen coordinates, of the
+ * right edge of the window frame, or `NULL`.
+ * @param[out] bottom Where to store the size, in screen coordinates, of the
+ * bottom edge of the window frame, or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_size
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwGetWindowFrameSize(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
+
+ /*! @brief Retrieves the content scale for the specified window.
+ *
+ * This function retrieves the content scale for the specified window. The
+ * content scale is the ratio between the current DPI and the platform's
+ * default DPI. This is especially important for text and any UI elements. If
+ * the pixel dimensions of your UI scaled by this look appropriate on your
+ * machine then it should appear at a reasonable size on other machines
+ * regardless of their DPI and scaling settings. This relies on the system DPI
+ * and scaling settings being somewhat correct.
+ *
+ * On platforms where each monitors can have its own content scale, the window
+ * content scale will depend on which monitor the system considers the window
+ * to be on.
+ *
+ * @param[in] window The window to query.
+ * @param[out] xscale Where to store the x-axis content scale, or `NULL`.
+ * @param[out] yscale Where to store the y-axis content scale, or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_scale
+ * @sa @ref glfwSetWindowContentScaleCallback
+ * @sa @ref glfwGetMonitorContentScale
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwGetWindowContentScale(GLFWwindow* window, float* xscale, float* yscale);
+
+ /*! @brief Returns the opacity of the whole window.
+ *
+ * This function returns the opacity of the window, including any decorations.
+ *
+ * The opacity (or alpha) value is a positive finite number between zero and
+ * one, where zero is fully transparent and one is fully opaque. If the system
+ * does not support whole window transparency, this function always returns one.
+ *
+ * The initial opacity value for newly created windows is one.
+ *
+ * @param[in] window The window to query.
+ * @return The opacity value of the specified window.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_transparency
+ * @sa @ref glfwSetWindowOpacity
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup window
+ */
+ SSCAPI float glfwGetWindowOpacity(GLFWwindow* window);
+
+ /*! @brief Sets the opacity of the whole window.
+ *
+ * This function sets the opacity of the window, including any decorations.
+ *
+ * The opacity (or alpha) value is a positive finite number between zero and
+ * one, where zero is fully transparent and one is fully opaque.
+ *
+ * The initial opacity value for newly created windows is one.
+ *
+ * A window created with framebuffer transparency may not use whole window
+ * transparency. The results of doing this are undefined.
+ *
+ * @param[in] window The window to set the opacity for.
+ * @param[in] opacity The desired opacity of the specified window.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_PLATFORM_ERROR and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
+ *
+ * @remark @wayland There is no way to set an opacity factor for a window.
+ * This function will emit @ref GLFW_FEATURE_UNAVAILABLE.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_transparency
+ * @sa @ref glfwGetWindowOpacity
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowOpacity(GLFWwindow* window, float opacity);
+
+ /*! @brief Iconifies the specified window.
+ *
+ * This function iconifies (minimizes) the specified window if it was
+ * previously restored. If the window is already iconified, this function does
+ * nothing.
+ *
+ * If the specified window is a full screen window, GLFW restores the original
+ * video mode of the monitor. The window's desired video mode is set again
+ * when the window is restored.
+ *
+ * @param[in] window The window to iconify.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @remark @wayland Once a window is iconified, @ref glfwRestoreWindow won’t
+ * be able to restore it. This is a design decision of the xdg-shell
+ * protocol.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_iconify
+ * @sa @ref glfwRestoreWindow
+ * @sa @ref glfwMaximizeWindow
+ *
+ * @since Added in version 2.1.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwIconifyWindow(GLFWwindow* window);
+
+ /*! @brief Restores the specified window.
+ *
+ * This function restores the specified window if it was previously iconified
+ * (minimized) or maximized. If the window is already restored, this function
+ * does nothing.
+ *
+ * If the specified window is an iconified full screen window, its desired
+ * video mode is set again for its monitor when the window is restored.
+ *
+ * @param[in] window The window to restore.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_iconify
+ * @sa @ref glfwIconifyWindow
+ * @sa @ref glfwMaximizeWindow
+ *
+ * @since Added in version 2.1.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwRestoreWindow(GLFWwindow* window);
+
+ /*! @brief Maximizes the specified window.
+ *
+ * This function maximizes the specified window if it was previously not
+ * maximized. If the window is already maximized, this function does nothing.
+ *
+ * If the specified window is a full screen window, this function does nothing.
+ *
+ * @param[in] window The window to maximize.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @par Thread Safety
+ * This function may only be called from the main thread.
+ *
+ * @sa @ref window_iconify
+ * @sa @ref glfwIconifyWindow
+ * @sa @ref glfwRestoreWindow
+ *
+ * @since Added in GLFW 3.2.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwMaximizeWindow(GLFWwindow* window);
+
+ /*! @brief Makes the specified window visible.
+ *
+ * This function makes the specified window visible if it was previously
+ * hidden. If the window is already visible or is in full screen mode, this
+ * function does nothing.
+ *
+ * By default, windowed mode windows are focused when shown
+ * Set the [GLFW_FOCUS_ON_SHOW](@ref GLFW_FOCUS_ON_SHOW_hint) window hint
+ * to change this behavior for all newly created windows, or change the
+ * behavior for an existing window with @ref glfwSetWindowAttrib.
+ *
+ * @param[in] window The window to make visible.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @remark @wayland Because Wayland wants every frame of the desktop to be
+ * complete, this function does not immediately make the window visible.
+ * Instead it will become visible the next time the window framebuffer is
+ * updated after this call.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_hide
+ * @sa @ref glfwHideWindow
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwShowWindow(GLFWwindow* window);
+
+ /*! @brief Hides the specified window.
+ *
+ * This function hides the specified window if it was previously visible. If
+ * the window is already hidden or is in full screen mode, this function does
+ * nothing.
+ *
+ * @param[in] window The window to hide.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_hide
+ * @sa @ref glfwShowWindow
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwHideWindow(GLFWwindow* window);
+
+ /*! @brief Brings the specified window to front and sets input focus.
+ *
+ * This function brings the specified window to front and sets input focus.
+ * The window should already be visible and not iconified.
+ *
+ * By default, both windowed and full screen mode windows are focused when
+ * initially created. Set the [GLFW_FOCUSED](@ref GLFW_FOCUSED_hint) to
+ * disable this behavior.
+ *
+ * Also by default, windowed mode windows are focused when shown
+ * with @ref glfwShowWindow. Set the
+ * [GLFW_FOCUS_ON_SHOW](@ref GLFW_FOCUS_ON_SHOW_hint) to disable this behavior.
+ *
+ * __Do not use this function__ to steal focus from other applications unless
+ * you are certain that is what the user wants. Focus stealing can be
+ * extremely disruptive.
+ *
+ * For a less disruptive way of getting the user's attention, see
+ * [attention requests](@ref window_attention).
+ *
+ * @param[in] window The window to give input focus.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_PLATFORM_ERROR and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
+ *
+ * @remark @wayland It is not possible for an application to set the input
+ * focus. This function will emit @ref GLFW_FEATURE_UNAVAILABLE.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_focus
+ * @sa @ref window_attention
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwFocusWindow(GLFWwindow* window);
+
+ /*! @brief Requests user attention to the specified window.
+ *
+ * This function requests user attention to the specified window. On
+ * platforms where this is not supported, attention is requested to the
+ * application as a whole.
+ *
+ * Once the user has given attention, usually by focusing the window or
+ * application, the system will end the request automatically.
+ *
+ * @param[in] window The window to request attention to.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @remark @macos Attention is requested to the application as a whole, not the
+ * specific window.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_attention
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwRequestWindowAttention(GLFWwindow* window);
+
+ /*! @brief Returns the monitor that the window uses for full screen mode.
+ *
+ * This function returns the handle of the monitor that the specified window is
+ * in full screen on.
+ *
+ * @param[in] window The window to query.
+ * @return The monitor, or `NULL` if the window is in windowed mode or an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_monitor
+ * @sa @ref glfwSetWindowMonitor
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWmonitor* glfwGetWindowMonitor(GLFWwindow* window);
+
+ /*! @brief Sets the mode, monitor, video mode and placement of a window.
+ *
+ * This function sets the monitor that the window uses for full screen mode or,
+ * if the monitor is `NULL`, makes it windowed mode.
+ *
+ * When setting a monitor, this function updates the width, height and refresh
+ * rate of the desired video mode and switches to the video mode closest to it.
+ * The window position is ignored when setting a monitor.
+ *
+ * When the monitor is `NULL`, the position, width and height are used to
+ * place the window content area. The refresh rate is ignored when no monitor
+ * is specified.
+ *
+ * If you only wish to update the resolution of a full screen window or the
+ * size of a windowed mode window, see @ref glfwSetWindowSize.
+ *
+ * When a window transitions from full screen to windowed mode, this function
+ * restores any previous window settings such as whether it is decorated,
+ * floating, resizable, has size or aspect ratio limits, etc.
+ *
+ * @param[in] window The window whose monitor, size or video mode to set.
+ * @param[in] monitor The desired monitor, or `NULL` to set windowed mode.
+ * @param[in] xpos The desired x-coordinate of the upper-left corner of the
+ * content area.
+ * @param[in] ypos The desired y-coordinate of the upper-left corner of the
+ * content area.
+ * @param[in] width The desired with, in screen coordinates, of the content
+ * area or video mode.
+ * @param[in] height The desired height, in screen coordinates, of the content
+ * area or video mode.
+ * @param[in] refreshRate The desired refresh rate, in Hz, of the video mode,
+ * or `GLFW_DONT_CARE`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @remark The OpenGL or OpenGL ES context will not be destroyed or otherwise
+ * affected by any resizing or mode switching, although you may need to update
+ * your viewport if the framebuffer size has changed.
+ *
+ * @remark @wayland The desired window position is ignored, as there is no way
+ * for an application to set this property.
+ *
+ * @remark @wayland Setting the window to full screen will not attempt to
+ * change the mode, no matter what the requested size or refresh rate.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_monitor
+ * @sa @ref window_full_screen
+ * @sa @ref glfwGetWindowMonitor
+ * @sa @ref glfwSetWindowSize
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowMonitor(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
+
+ /*! @brief Returns an attribute of the specified window.
+ *
+ * This function returns the value of an attribute of the specified window or
+ * its OpenGL or OpenGL ES context.
+ *
+ * @param[in] window The window to query.
+ * @param[in] attrib The [window attribute](@ref window_attribs) whose value to
+ * return.
+ * @return The value of the attribute, or zero if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @remark Framebuffer related hints are not window attributes. See @ref
+ * window_attribs_fb for more information.
+ *
+ * @remark Zero is a valid value for many window and context related
+ * attributes so you cannot use a return value of zero as an indication of
+ * errors. However, this function should not fail as long as it is passed
+ * valid arguments and the library has been [initialized](@ref intro_init).
+ *
+ * @remark @wayland The Wayland protocol provides no way to check whether a
+ * window is iconfied, so @ref GLFW_ICONIFIED always returns `GLFW_FALSE`.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_attribs
+ * @sa @ref glfwSetWindowAttrib
+ *
+ * @since Added in version 3.0. Replaces `glfwGetWindowParam` and
+ * `glfwGetGLVersion`.
+ *
+ * @ingroup window
+ */
+ SSCAPI int glfwGetWindowAttrib(GLFWwindow* window, int attrib);
+
+ /*! @brief Sets an attribute of the specified window.
+ *
+ * This function sets the value of an attribute of the specified window.
+ *
+ * The supported attributes are [GLFW_DECORATED](@ref GLFW_DECORATED_attrib),
+ * [GLFW_RESIZABLE](@ref GLFW_RESIZABLE_attrib),
+ * [GLFW_FLOATING](@ref GLFW_FLOATING_attrib),
+ * [GLFW_AUTO_ICONIFY](@ref GLFW_AUTO_ICONIFY_attrib) and
+ * [GLFW_FOCUS_ON_SHOW](@ref GLFW_FOCUS_ON_SHOW_attrib).
+ * [GLFW_MOUSE_PASSTHROUGH](@ref GLFW_MOUSE_PASSTHROUGH_attrib)
+ *
+ * Some of these attributes are ignored for full screen windows. The new
+ * value will take effect if the window is later made windowed.
+ *
+ * Some of these attributes are ignored for windowed mode windows. The new
+ * value will take effect if the window is later made full screen.
+ *
+ * @param[in] window The window to set the attribute for.
+ * @param[in] attrib A supported window attribute.
+ * @param[in] value `GLFW_TRUE` or `GLFW_FALSE`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM, @ref GLFW_INVALID_VALUE, @ref GLFW_PLATFORM_ERROR and @ref
+ * GLFW_FEATURE_UNAVAILABLE.
+ *
+ * @remark Calling @ref glfwGetWindowAttrib will always return the latest
+ * value, even if that value is ignored by the current mode of the window.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_attribs
+ * @sa @ref glfwGetWindowAttrib
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowAttrib(GLFWwindow* window, int attrib, int value);
+
+ /*! @brief Sets the user pointer of the specified window.
+ *
+ * This function sets the user-defined pointer of the specified window. The
+ * current value is retained until the window is destroyed. The initial value
+ * is `NULL`.
+ *
+ * @param[in] window The window whose pointer to set.
+ * @param[in] pointer The new value.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @sa @ref window_userptr
+ * @sa @ref glfwGetWindowUserPointer
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowUserPointer(GLFWwindow* window, void* pointer);
+
+ /*! @brief Returns the user pointer of the specified window.
+ *
+ * This function returns the current value of the user-defined pointer of the
+ * specified window. The initial value is `NULL`.
+ *
+ * @param[in] window The window whose pointer to return.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @sa @ref window_userptr
+ * @sa @ref glfwSetWindowUserPointer
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI void* glfwGetWindowUserPointer(GLFWwindow* window);
+
+ /*! @brief Sets the position callback for the specified window.
+ *
+ * This function sets the position callback of the specified window, which is
+ * called when the window is moved. The callback is provided with the
+ * position, in screen coordinates, of the upper-left corner of the content
+ * area of the window.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, int xpos, int ypos)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWwindowposfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @remark @wayland This callback will never be called, as there is no way for
+ * an application to know its global position.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_pos
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow* window, GLFWwindowposfun callback);
+
+ /*! @brief Sets the size callback for the specified window.
+ *
+ * This function sets the size callback of the specified window, which is
+ * called when the window is resized. The callback is provided with the size,
+ * in screen coordinates, of the content area of the window.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, int width, int height)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWwindowsizefun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_size
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter and return value.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow* window, GLFWwindowsizefun callback);
+
+ /*! @brief Sets the close callback for the specified window.
+ *
+ * This function sets the close callback of the specified window, which is
+ * called when the user attempts to close the window, for example by clicking
+ * the close widget in the title bar.
+ *
+ * The close flag is set before this callback is called, but you can modify it
+ * at any time with @ref glfwSetWindowShouldClose.
+ *
+ * The close callback is not triggered by @ref glfwDestroyWindow.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWwindowclosefun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @remark @macos Selecting Quit from the application menu will trigger the
+ * close callback for all windows.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_close
+ *
+ * @since Added in version 2.5.
+ * @glfw3 Added window handle parameter and return value.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow* window, GLFWwindowclosefun callback);
+
+ /*! @brief Sets the refresh callback for the specified window.
+ *
+ * This function sets the refresh callback of the specified window, which is
+ * called when the content area of the window needs to be redrawn, for example
+ * if the window has been exposed after having been covered by another window.
+ *
+ * On compositing window systems such as Aero, Compiz, Aqua or Wayland, where
+ * the window contents are saved off-screen, this callback may be called only
+ * very infrequently or never at all.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window);
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWwindowrefreshfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_refresh
+ *
+ * @since Added in version 2.5.
+ * @glfw3 Added window handle parameter and return value.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow* window, GLFWwindowrefreshfun callback);
+
+ /*! @brief Sets the focus callback for the specified window.
+ *
+ * This function sets the focus callback of the specified window, which is
+ * called when the window gains or loses input focus.
+ *
+ * After the focus callback is called for a window that lost input focus,
+ * synthetic key and mouse button release events will be generated for all such
+ * that had been pressed. For more information, see @ref glfwSetKeyCallback
+ * and @ref glfwSetMouseButtonCallback.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, int focused)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWwindowfocusfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_focus
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow* window, GLFWwindowfocusfun callback);
+
+ /*! @brief Sets the iconify callback for the specified window.
+ *
+ * This function sets the iconification callback of the specified window, which
+ * is called when the window is iconified or restored.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, int iconified)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWwindowiconifyfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_iconify
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow* window, GLFWwindowiconifyfun callback);
+
+ /*! @brief Sets the maximize callback for the specified window.
+ *
+ * This function sets the maximization callback of the specified window, which
+ * is called when the window is maximized or restored.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, int maximized)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWwindowmaximizefun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_maximize
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWwindowmaximizefun glfwSetWindowMaximizeCallback(GLFWwindow* window, GLFWwindowmaximizefun callback);
+
+ /*! @brief Sets the framebuffer resize callback for the specified window.
+ *
+ * This function sets the framebuffer resize callback of the specified window,
+ * which is called when the framebuffer of the specified window is resized.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, int width, int height)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWframebuffersizefun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_fbsize
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow* window, GLFWframebuffersizefun callback);
+
+ /*! @brief Sets the window content scale callback for the specified window.
+ *
+ * This function sets the window content scale callback of the specified window,
+ * which is called when the content scale of the specified window changes.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, float xscale, float yscale)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWwindowcontentscalefun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_scale
+ * @sa @ref glfwGetWindowContentScale
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWwindowcontentscalefun glfwSetWindowContentScaleCallback(GLFWwindow* window, GLFWwindowcontentscalefun callback);
+
+ /*! @brief Processes all pending events.
+ *
+ * This function processes only those events that are already in the event
+ * queue and then returns immediately. Processing events will cause the window
+ * and input callbacks associated with those events to be called.
+ *
+ * On some platforms, a window move, resize or menu operation will cause event
+ * processing to block. This is due to how event processing is designed on
+ * those platforms. You can use the
+ * [window refresh callback](@ref window_refresh) to redraw the contents of
+ * your window when necessary during such operations.
+ *
+ * Do not assume that callbacks you set will _only_ be called in response to
+ * event processing functions like this one. While it is necessary to poll for
+ * events, window systems that require GLFW to register callbacks of its own
+ * can pass events to GLFW in response to many window system function calls.
+ * GLFW will pass those events on to the application callbacks before
+ * returning.
+ *
+ * Event processing is not required for joystick input to work.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @reentrancy This function must not be called from a callback.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref events
+ * @sa @ref glfwWaitEvents
+ * @sa @ref glfwWaitEventsTimeout
+ *
+ * @since Added in version 1.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwPollEvents(void);
+
+ /*! @brief Waits until events are queued and processes them.
+ *
+ * This function puts the calling thread to sleep until at least one event is
+ * available in the event queue. Once one or more events are available,
+ * it behaves exactly like @ref glfwPollEvents, i.e. the events in the queue
+ * are processed and the function then returns immediately. Processing events
+ * will cause the window and input callbacks associated with those events to be
+ * called.
+ *
+ * Since not all events are associated with callbacks, this function may return
+ * without a callback having been called even if you are monitoring all
+ * callbacks.
+ *
+ * On some platforms, a window move, resize or menu operation will cause event
+ * processing to block. This is due to how event processing is designed on
+ * those platforms. You can use the
+ * [window refresh callback](@ref window_refresh) to redraw the contents of
+ * your window when necessary during such operations.
+ *
+ * Do not assume that callbacks you set will _only_ be called in response to
+ * event processing functions like this one. While it is necessary to poll for
+ * events, window systems that require GLFW to register callbacks of its own
+ * can pass events to GLFW in response to many window system function calls.
+ * GLFW will pass those events on to the application callbacks before
+ * returning.
+ *
+ * Event processing is not required for joystick input to work.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @reentrancy This function must not be called from a callback.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref events
+ * @sa @ref glfwPollEvents
+ * @sa @ref glfwWaitEventsTimeout
+ *
+ * @since Added in version 2.5.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwWaitEvents(void);
+
+ /*! @brief Waits with timeout until events are queued and processes them.
+ *
+ * This function puts the calling thread to sleep until at least one event is
+ * available in the event queue, or until the specified timeout is reached. If
+ * one or more events are available, it behaves exactly like @ref
+ * glfwPollEvents, i.e. the events in the queue are processed and the function
+ * then returns immediately. Processing events will cause the window and input
+ * callbacks associated with those events to be called.
+ *
+ * The timeout value must be a positive finite number.
+ *
+ * Since not all events are associated with callbacks, this function may return
+ * without a callback having been called even if you are monitoring all
+ * callbacks.
+ *
+ * On some platforms, a window move, resize or menu operation will cause event
+ * processing to block. This is due to how event processing is designed on
+ * those platforms. You can use the
+ * [window refresh callback](@ref window_refresh) to redraw the contents of
+ * your window when necessary during such operations.
+ *
+ * Do not assume that callbacks you set will _only_ be called in response to
+ * event processing functions like this one. While it is necessary to poll for
+ * events, window systems that require GLFW to register callbacks of its own
+ * can pass events to GLFW in response to many window system function calls.
+ * GLFW will pass those events on to the application callbacks before
+ * returning.
+ *
+ * Event processing is not required for joystick input to work.
+ *
+ * @param[in] timeout The maximum amount of time, in seconds, to wait.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @reentrancy This function must not be called from a callback.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref events
+ * @sa @ref glfwPollEvents
+ * @sa @ref glfwWaitEvents
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwWaitEventsTimeout(double timeout);
+
+ /*! @brief Posts an empty event to the event queue.
+ *
+ * This function posts an empty event from the current thread to the event
+ * queue, causing @ref glfwWaitEvents or @ref glfwWaitEventsTimeout to return.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref events
+ * @sa @ref glfwWaitEvents
+ * @sa @ref glfwWaitEventsTimeout
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwPostEmptyEvent(void);
+
+ /*! @brief Returns the value of an input option for the specified window.
+ *
+ * This function returns the value of an input option for the specified window.
+ * The mode must be one of @ref GLFW_CURSOR, @ref GLFW_STICKY_KEYS,
+ * @ref GLFW_STICKY_MOUSE_BUTTONS, @ref GLFW_LOCK_KEY_MODS or
+ * @ref GLFW_RAW_MOUSE_MOTION.
+ *
+ * @param[in] window The window to query.
+ * @param[in] mode One of `GLFW_CURSOR`, `GLFW_STICKY_KEYS`,
+ * `GLFW_STICKY_MOUSE_BUTTONS`, `GLFW_LOCK_KEY_MODS` or
+ * `GLFW_RAW_MOUSE_MOTION`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_INVALID_ENUM.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref glfwSetInputMode
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup input
+ */
+ SSCAPI int glfwGetInputMode(GLFWwindow* window, int mode);
+
+ /*! @brief Sets an input option for the specified window.
+ *
+ * This function sets an input mode option for the specified window. The mode
+ * must be one of @ref GLFW_CURSOR, @ref GLFW_STICKY_KEYS,
+ * @ref GLFW_STICKY_MOUSE_BUTTONS, @ref GLFW_LOCK_KEY_MODS or
+ * @ref GLFW_RAW_MOUSE_MOTION.
+ *
+ * If the mode is `GLFW_CURSOR`, the value must be one of the following cursor
+ * modes:
+ * - `GLFW_CURSOR_NORMAL` makes the cursor visible and behaving normally.
+ * - `GLFW_CURSOR_HIDDEN` makes the cursor invisible when it is over the
+ * content area of the window but does not restrict the cursor from leaving.
+ * - `GLFW_CURSOR_DISABLED` hides and grabs the cursor, providing virtual
+ * and unlimited cursor movement. This is useful for implementing for
+ * example 3D camera controls.
+ * - `GLFW_CURSOR_CAPTURED` makes the cursor visible and confines it to the
+ * content area of the window.
+ *
+ * If the mode is `GLFW_STICKY_KEYS`, the value must be either `GLFW_TRUE` to
+ * enable sticky keys, or `GLFW_FALSE` to disable it. If sticky keys are
+ * enabled, a key press will ensure that @ref glfwGetKey returns `GLFW_PRESS`
+ * the next time it is called even if the key had been released before the
+ * call. This is useful when you are only interested in whether keys have been
+ * pressed but not when or in which order.
+ *
+ * If the mode is `GLFW_STICKY_MOUSE_BUTTONS`, the value must be either
+ * `GLFW_TRUE` to enable sticky mouse buttons, or `GLFW_FALSE` to disable it.
+ * If sticky mouse buttons are enabled, a mouse button press will ensure that
+ * @ref glfwGetMouseButton returns `GLFW_PRESS` the next time it is called even
+ * if the mouse button had been released before the call. This is useful when
+ * you are only interested in whether mouse buttons have been pressed but not
+ * when or in which order.
+ *
+ * If the mode is `GLFW_LOCK_KEY_MODS`, the value must be either `GLFW_TRUE` to
+ * enable lock key modifier bits, or `GLFW_FALSE` to disable them. If enabled,
+ * callbacks that receive modifier bits will also have the @ref
+ * GLFW_MOD_CAPS_LOCK bit set when the event was generated with Caps Lock on,
+ * and the @ref GLFW_MOD_NUM_LOCK bit when Num Lock was on.
+ *
+ * If the mode is `GLFW_RAW_MOUSE_MOTION`, the value must be either `GLFW_TRUE`
+ * to enable raw (unscaled and unaccelerated) mouse motion when the cursor is
+ * disabled, or `GLFW_FALSE` to disable it. If raw motion is not supported,
+ * attempting to set this will emit @ref GLFW_FEATURE_UNAVAILABLE. Call @ref
+ * glfwRawMouseMotionSupported to check for support.
+ *
+ * @param[in] window The window whose input mode to set.
+ * @param[in] mode One of `GLFW_CURSOR`, `GLFW_STICKY_KEYS`,
+ * `GLFW_STICKY_MOUSE_BUTTONS`, `GLFW_LOCK_KEY_MODS` or
+ * `GLFW_RAW_MOUSE_MOTION`.
+ * @param[in] value The new value of the specified input mode.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM, @ref GLFW_PLATFORM_ERROR and @ref
+ * GLFW_FEATURE_UNAVAILABLE (see above).
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref glfwGetInputMode
+ *
+ * @since Added in version 3.0. Replaces `glfwEnable` and `glfwDisable`.
+ *
+ * @ingroup input
+ */
+ SSCAPI void glfwSetInputMode(GLFWwindow* window, int mode, int value);
+
+ /*! @brief Returns whether raw mouse motion is supported.
+ *
+ * This function returns whether raw mouse motion is supported on the current
+ * system. This status does not change after GLFW has been initialized so you
+ * only need to check this once. If you attempt to enable raw motion on
+ * a system that does not support it, @ref GLFW_PLATFORM_ERROR will be emitted.
+ *
+ * Raw mouse motion is closer to the actual motion of the mouse across
+ * a surface. It is not affected by the scaling and acceleration applied to
+ * the motion of the desktop cursor. That processing is suitable for a cursor
+ * while raw motion is better for controlling for example a 3D camera. Because
+ * of this, raw mouse motion is only provided when the cursor is disabled.
+ *
+ * @return `GLFW_TRUE` if raw mouse motion is supported on the current machine,
+ * or `GLFW_FALSE` otherwise.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref raw_mouse_motion
+ * @sa @ref glfwSetInputMode
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ SSCAPI int glfwRawMouseMotionSupported(void);
+
+ /*! @brief Returns the layout-specific name of the specified printable key.
+ *
+ * This function returns the name of the specified printable key, encoded as
+ * UTF-8. This is typically the character that key would produce without any
+ * modifier keys, intended for displaying key bindings to the user. For dead
+ * keys, it is typically the diacritic it would add to a character.
+ *
+ * __Do not use this function__ for [text input](@ref input_char). You will
+ * break text input for many languages even if it happens to work for yours.
+ *
+ * If the key is `GLFW_KEY_UNKNOWN`, the scancode is used to identify the key,
+ * otherwise the scancode is ignored. If you specify a non-printable key, or
+ * `GLFW_KEY_UNKNOWN` and a scancode that maps to a non-printable key, this
+ * function returns `NULL` but does not emit an error.
+ *
+ * This behavior allows you to always pass in the arguments in the
+ * [key callback](@ref input_key) without modification.
+ *
+ * The printable keys are:
+ * - `GLFW_KEY_APOSTROPHE`
+ * - `GLFW_KEY_COMMA`
+ * - `GLFW_KEY_MINUS`
+ * - `GLFW_KEY_PERIOD`
+ * - `GLFW_KEY_SLASH`
+ * - `GLFW_KEY_SEMICOLON`
+ * - `GLFW_KEY_EQUAL`
+ * - `GLFW_KEY_LEFT_BRACKET`
+ * - `GLFW_KEY_RIGHT_BRACKET`
+ * - `GLFW_KEY_BACKSLASH`
+ * - `GLFW_KEY_WORLD_1`
+ * - `GLFW_KEY_WORLD_2`
+ * - `GLFW_KEY_0` to `GLFW_KEY_9`
+ * - `GLFW_KEY_A` to `GLFW_KEY_Z`
+ * - `GLFW_KEY_KP_0` to `GLFW_KEY_KP_9`
+ * - `GLFW_KEY_KP_DECIMAL`
+ * - `GLFW_KEY_KP_DIVIDE`
+ * - `GLFW_KEY_KP_MULTIPLY`
+ * - `GLFW_KEY_KP_SUBTRACT`
+ * - `GLFW_KEY_KP_ADD`
+ * - `GLFW_KEY_KP_EQUAL`
+ *
+ * Names for printable keys depend on keyboard layout, while names for
+ * non-printable keys are the same across layouts but depend on the application
+ * language and should be localized along with other user interface text.
+ *
+ * @param[in] key The key to query, or `GLFW_KEY_UNKNOWN`.
+ * @param[in] scancode The scancode of the key to query.
+ * @return The UTF-8 encoded, layout-specific name of the key, or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @remark The contents of the returned string may change when a keyboard
+ * layout change event is received.
+ *
+ * @pointer_lifetime The returned string is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref input_key_name
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup input
+ */
+ SSCAPI const char* glfwGetKeyName(int key, int scancode);
+
+ /*! @brief Returns the platform-specific scancode of the specified key.
+ *
+ * This function returns the platform-specific scancode of the specified key.
+ *
+ * If the key is `GLFW_KEY_UNKNOWN` or does not exist on the keyboard this
+ * method will return `-1`.
+ *
+ * @param[in] key Any [named key](@ref keys).
+ * @return The platform-specific scancode for the key, or `-1` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref input_key
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ SSCAPI int glfwGetKeyScancode(int key);
+
+ /*! @brief Returns the last reported state of a keyboard key for the specified
+ * window.
+ *
+ * This function returns the last state reported for the specified key to the
+ * specified window. The returned state is one of `GLFW_PRESS` or
+ * `GLFW_RELEASE`. The action `GLFW_REPEAT` is only reported to the key callback.
+ *
+ * If the @ref GLFW_STICKY_KEYS input mode is enabled, this function returns
+ * `GLFW_PRESS` the first time you call it for a key that was pressed, even if
+ * that key has already been released.
+ *
+ * The key functions deal with physical keys, with [key tokens](@ref keys)
+ * named after their use on the standard US keyboard layout. If you want to
+ * input text, use the Unicode character callback instead.
+ *
+ * The [modifier key bit masks](@ref mods) are not key tokens and cannot be
+ * used with this function.
+ *
+ * __Do not use this function__ to implement [text input](@ref input_char).
+ *
+ * @param[in] window The desired window.
+ * @param[in] key The desired [keyboard key](@ref keys). `GLFW_KEY_UNKNOWN` is
+ * not a valid key for this function.
+ * @return One of `GLFW_PRESS` or `GLFW_RELEASE`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_INVALID_ENUM.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref input_key
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup input
+ */
+ SSCAPI int glfwGetKey(GLFWwindow* window, int key);
+
+ /*! @brief Returns the last reported state of a mouse button for the specified
+ * window.
+ *
+ * This function returns the last state reported for the specified mouse button
+ * to the specified window. The returned state is one of `GLFW_PRESS` or
+ * `GLFW_RELEASE`.
+ *
+ * If the @ref GLFW_STICKY_MOUSE_BUTTONS input mode is enabled, this function
+ * returns `GLFW_PRESS` the first time you call it for a mouse button that was
+ * pressed, even if that mouse button has already been released.
+ *
+ * @param[in] window The desired window.
+ * @param[in] button The desired [mouse button](@ref buttons).
+ * @return One of `GLFW_PRESS` or `GLFW_RELEASE`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_INVALID_ENUM.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref input_mouse_button
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup input
+ */
+ SSCAPI int glfwGetMouseButton(GLFWwindow* window, int button);
+
+ /*! @brief Retrieves the position of the cursor relative to the content area of
+ * the window.
+ *
+ * This function returns the position of the cursor, in screen coordinates,
+ * relative to the upper-left corner of the content area of the specified
+ * window.
+ *
+ * If the cursor is disabled (with `GLFW_CURSOR_DISABLED`) then the cursor
+ * position is unbounded and limited only by the minimum and maximum values of
+ * a `double`.
+ *
+ * The coordinate can be converted to their integer equivalents with the
+ * `floor` function. Casting directly to an integer type works for positive
+ * coordinates, but fails for negative ones.
+ *
+ * Any or all of the position arguments may be `NULL`. If an error occurs, all
+ * non-`NULL` position arguments will be set to zero.
+ *
+ * @param[in] window The desired window.
+ * @param[out] xpos Where to store the cursor x-coordinate, relative to the
+ * left edge of the content area, or `NULL`.
+ * @param[out] ypos Where to store the cursor y-coordinate, relative to the to
+ * top edge of the content area, or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref cursor_pos
+ * @sa @ref glfwSetCursorPos
+ *
+ * @since Added in version 3.0. Replaces `glfwGetMousePos`.
+ *
+ * @ingroup input
+ */
+ SSCAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos);
+
+ /*! @brief Sets the position of the cursor, relative to the content area of the
+ * window.
+ *
+ * This function sets the position, in screen coordinates, of the cursor
+ * relative to the upper-left corner of the content area of the specified
+ * window. The window must have input focus. If the window does not have
+ * input focus when this function is called, it fails silently.
+ *
+ * __Do not use this function__ to implement things like camera controls. GLFW
+ * already provides the `GLFW_CURSOR_DISABLED` cursor mode that hides the
+ * cursor, transparently re-centers it and provides unconstrained cursor
+ * motion. See @ref glfwSetInputMode for more information.
+ *
+ * If the cursor mode is `GLFW_CURSOR_DISABLED` then the cursor position is
+ * unconstrained and limited only by the minimum and maximum values of
+ * a `double`.
+ *
+ * @param[in] window The desired window.
+ * @param[in] xpos The desired x-coordinate, relative to the left edge of the
+ * content area.
+ * @param[in] ypos The desired y-coordinate, relative to the top edge of the
+ * content area.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_PLATFORM_ERROR and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
+ *
+ * @remark @wayland This function will only work when the cursor mode is
+ * `GLFW_CURSOR_DISABLED`, otherwise it will emit @ref GLFW_FEATURE_UNAVAILABLE.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref cursor_pos
+ * @sa @ref glfwGetCursorPos
+ *
+ * @since Added in version 3.0. Replaces `glfwSetMousePos`.
+ *
+ * @ingroup input
+ */
+ SSCAPI void glfwSetCursorPos(GLFWwindow* window, double xpos, double ypos);
+
+ /*! @brief Creates a custom cursor.
+ *
+ * Creates a new custom cursor image that can be set for a window with @ref
+ * glfwSetCursor. The cursor can be destroyed with @ref glfwDestroyCursor.
+ * Any remaining cursors are destroyed by @ref glfwTerminate.
+ *
+ * The pixels are 32-bit, little-endian, non-premultiplied RGBA, i.e. eight
+ * bits per channel with the red channel first. They are arranged canonically
+ * as packed sequential rows, starting from the top-left corner.
+ *
+ * The cursor hotspot is specified in pixels, relative to the upper-left corner
+ * of the cursor image. Like all other coordinate systems in GLFW, the X-axis
+ * points to the right and the Y-axis points down.
+ *
+ * @param[in] image The desired cursor image.
+ * @param[in] xhot The desired x-coordinate, in pixels, of the cursor hotspot.
+ * @param[in] yhot The desired y-coordinate, in pixels, of the cursor hotspot.
+ * @return The handle of the created cursor, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The specified image data is copied before this function
+ * returns.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref cursor_object
+ * @sa @ref glfwDestroyCursor
+ * @sa @ref glfwCreateStandardCursor
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWcursor* glfwCreateCursor(const GLFWimage* image, int xhot, int yhot);
+
+ /*! @brief Creates a cursor with a standard shape.
+ *
+ * Returns a cursor with a standard shape, that can be set for a window with
+ * @ref glfwSetCursor. The images for these cursors come from the system
+ * cursor theme and their exact appearance will vary between platforms.
+ *
+ * Most of these shapes are guaranteed to exist on every supported platform but
+ * a few may not be present. See the table below for details.
+ *
+ * Cursor shape | Windows | macOS | X11 | Wayland
+ * ------------------------------ | ------- | ----- | ------ | -------
+ * @ref GLFW_ARROW_CURSOR | Yes | Yes | Yes | Yes
+ * @ref GLFW_IBEAM_CURSOR | Yes | Yes | Yes | Yes
+ * @ref GLFW_CROSSHAIR_CURSOR | Yes | Yes | Yes | Yes
+ * @ref GLFW_POINTING_HAND_CURSOR | Yes | Yes | Yes | Yes
+ * @ref GLFW_RESIZE_EW_CURSOR | Yes | Yes | Yes | Yes
+ * @ref GLFW_RESIZE_NS_CURSOR | Yes | Yes | Yes | Yes
+ * @ref GLFW_RESIZE_NWSE_CURSOR | Yes | Yes1 | Maybe2 | Maybe2
+ * @ref GLFW_RESIZE_NESW_CURSOR | Yes | Yes1 | Maybe2 | Maybe2
+ * @ref GLFW_RESIZE_ALL_CURSOR | Yes | Yes | Yes | Yes
+ * @ref GLFW_NOT_ALLOWED_CURSOR | Yes | Yes | Maybe2 | Maybe2
+ *
+ * 1) This uses a private system API and may fail in the future.
+ *
+ * 2) This uses a newer standard that not all cursor themes support.
+ *
+ * If the requested shape is not available, this function emits a @ref
+ * GLFW_CURSOR_UNAVAILABLE error and returns `NULL`.
+ *
+ * @param[in] shape One of the [standard shapes](@ref shapes).
+ * @return A new cursor ready to use or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM, @ref GLFW_CURSOR_UNAVAILABLE and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref cursor_standard
+ * @sa @ref glfwCreateCursor
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWcursor* glfwCreateStandardCursor(int shape);
+
+ /*! @brief Destroys a cursor.
+ *
+ * This function destroys a cursor previously created with @ref
+ * glfwCreateCursor. Any remaining cursors will be destroyed by @ref
+ * glfwTerminate.
+ *
+ * If the specified cursor is current for any window, that window will be
+ * reverted to the default cursor. This does not affect the cursor mode.
+ *
+ * @param[in] cursor The cursor object to destroy.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @reentrancy This function must not be called from a callback.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref cursor_object
+ * @sa @ref glfwCreateCursor
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup input
+ */
+ SSCAPI void glfwDestroyCursor(GLFWcursor* cursor);
+
+ /*! @brief Sets the cursor for the window.
+ *
+ * This function sets the cursor image to be used when the cursor is over the
+ * content area of the specified window. The set cursor will only be visible
+ * when the [cursor mode](@ref cursor_mode) of the window is
+ * `GLFW_CURSOR_NORMAL`.
+ *
+ * On some platforms, the set cursor may not be visible unless the window also
+ * has input focus.
+ *
+ * @param[in] window The window to set the cursor for.
+ * @param[in] cursor The cursor to set, or `NULL` to switch back to the default
+ * arrow cursor.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref cursor_object
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup input
+ */
+ SSCAPI void glfwSetCursor(GLFWwindow* window, GLFWcursor* cursor);
+
+ /*! @brief Sets the key callback.
+ *
+ * This function sets the key callback of the specified window, which is called
+ * when a key is pressed, repeated or released.
+ *
+ * The key functions deal with physical keys, with layout independent
+ * [key tokens](@ref keys) named after their values in the standard US keyboard
+ * layout. If you want to input text, use the
+ * [character callback](@ref glfwSetCharCallback) instead.
+ *
+ * When a window loses input focus, it will generate synthetic key release
+ * events for all pressed keys. You can tell these events from user-generated
+ * events by the fact that the synthetic ones are generated after the focus
+ * loss event has been processed, i.e. after the
+ * [window focus callback](@ref glfwSetWindowFocusCallback) has been called.
+ *
+ * The scancode of a key is specific to that platform or sometimes even to that
+ * machine. Scancodes are intended to allow users to bind keys that don't have
+ * a GLFW key token. Such keys have `key` set to `GLFW_KEY_UNKNOWN`, their
+ * state is not saved and so it cannot be queried with @ref glfwGetKey.
+ *
+ * Sometimes GLFW needs to generate synthetic key events, in which case the
+ * scancode may be zero.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new key callback, or `NULL` to remove the currently
+ * set callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, int key, int scancode, int action, int mods)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWkeyfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref input_key
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter and return value.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWkeyfun glfwSetKeyCallback(GLFWwindow* window, GLFWkeyfun callback);
+
+ /*! @brief Sets the Unicode character callback.
+ *
+ * This function sets the character callback of the specified window, which is
+ * called when a Unicode character is input.
+ *
+ * The character callback is intended for Unicode text input. As it deals with
+ * characters, it is keyboard layout dependent, whereas the
+ * [key callback](@ref glfwSetKeyCallback) is not. Characters do not map 1:1
+ * to physical keys, as a key may produce zero, one or more characters. If you
+ * want to know whether a specific physical key was pressed or released, see
+ * the key callback instead.
+ *
+ * The character callback behaves as system text input normally does and will
+ * not be called if modifier keys are held down that would prevent normal text
+ * input on that platform, for example a Super (Command) key on macOS or Alt key
+ * on Windows.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, unsigned int codepoint)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWcharfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref input_char
+ *
+ * @since Added in version 2.4.
+ * @glfw3 Added window handle parameter and return value.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWcharfun glfwSetCharCallback(GLFWwindow* window, GLFWcharfun callback);
+
+ /*! @brief Sets the Unicode character with modifiers callback.
+ *
+ * This function sets the character with modifiers callback of the specified
+ * window, which is called when a Unicode character is input regardless of what
+ * modifier keys are used.
+ *
+ * The character with modifiers callback is intended for implementing custom
+ * Unicode character input. For regular Unicode text input, see the
+ * [character callback](@ref glfwSetCharCallback). Like the character
+ * callback, the character with modifiers callback deals with characters and is
+ * keyboard layout dependent. Characters do not map 1:1 to physical keys, as
+ * a key may produce zero, one or more characters. If you want to know whether
+ * a specific physical key was pressed or released, see the
+ * [key callback](@ref glfwSetKeyCallback) instead.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or an
+ * [error](@ref error_handling) occurred.
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, unsigned int codepoint, int mods)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWcharmodsfun).
+ *
+ * @deprecated Scheduled for removal in version 4.0.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref input_char
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow* window, GLFWcharmodsfun callback);
+
+ /*! @brief Sets the mouse button callback.
+ *
+ * This function sets the mouse button callback of the specified window, which
+ * is called when a mouse button is pressed or released.
+ *
+ * When a window loses input focus, it will generate synthetic mouse button
+ * release events for all pressed mouse buttons. You can tell these events
+ * from user-generated events by the fact that the synthetic ones are generated
+ * after the focus loss event has been processed, i.e. after the
+ * [window focus callback](@ref glfwSetWindowFocusCallback) has been called.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, int button, int action, int mods)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWmousebuttonfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref input_mouse_button
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter and return value.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow* window, GLFWmousebuttonfun callback);
+
+ /*! @brief Sets the cursor position callback.
+ *
+ * This function sets the cursor position callback of the specified window,
+ * which is called when the cursor is moved. The callback is provided with the
+ * position, in screen coordinates, relative to the upper-left corner of the
+ * content area of the window.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, double xpos, double ypos);
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWcursorposfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref cursor_pos
+ *
+ * @since Added in version 3.0. Replaces `glfwSetMousePosCallback`.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow* window, GLFWcursorposfun callback);
+
+ /*! @brief Sets the cursor enter/leave callback.
+ *
+ * This function sets the cursor boundary crossing callback of the specified
+ * window, which is called when the cursor enters or leaves the content area of
+ * the window.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, int entered)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWcursorenterfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref cursor_enter
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow* window, GLFWcursorenterfun callback);
+
+ /*! @brief Sets the scroll callback.
+ *
+ * This function sets the scroll callback of the specified window, which is
+ * called when a scrolling device is used, such as a mouse wheel or scrolling
+ * area of a touchpad.
+ *
+ * The scroll callback receives all scrolling input, like that from a mouse
+ * wheel or a touchpad scrolling area.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new scroll callback, or `NULL` to remove the
+ * currently set callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, double xoffset, double yoffset)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWscrollfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref scrolling
+ *
+ * @since Added in version 3.0. Replaces `glfwSetMouseWheelCallback`.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWscrollfun glfwSetScrollCallback(GLFWwindow* window, GLFWscrollfun callback);
+
+ /*! @brief Sets the path drop callback.
+ *
+ * This function sets the path drop callback of the specified window, which is
+ * called when one or more dragged paths are dropped on the window.
+ *
+ * Because the path array and its strings may have been generated specifically
+ * for that event, they are not guaranteed to be valid after the callback has
+ * returned. If you wish to use them after the callback returns, you need to
+ * make a deep copy.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new file drop callback, or `NULL` to remove the
+ * currently set callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, int path_count, const char* paths[])
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWdropfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @remark @wayland File drop is currently unimplemented.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref path_drop
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWdropfun glfwSetDropCallback(GLFWwindow* window, GLFWdropfun callback);
+
+ /*! @brief Returns whether the specified joystick is present.
+ *
+ * This function returns whether the specified joystick is present.
+ *
+ * There is no need to call this function before other functions that accept
+ * a joystick ID, as they all check for presence before performing any other
+ * work.
+ *
+ * @param[in] jid The [joystick](@ref joysticks) to query.
+ * @return `GLFW_TRUE` if the joystick is present, or `GLFW_FALSE` otherwise.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref joystick
+ *
+ * @since Added in version 3.0. Replaces `glfwGetJoystickParam`.
+ *
+ * @ingroup input
+ */
+ SSCAPI int glfwJoystickPresent(int jid);
+
+ /*! @brief Returns the values of all axes of the specified joystick.
+ *
+ * This function returns the values of all axes of the specified joystick.
+ * Each element in the array is a value between -1.0 and 1.0.
+ *
+ * If the specified joystick is not present this function will return `NULL`
+ * but will not generate an error. This can be used instead of first calling
+ * @ref glfwJoystickPresent.
+ *
+ * @param[in] jid The [joystick](@ref joysticks) to query.
+ * @param[out] count Where to store the number of axis values in the returned
+ * array. This is set to zero if the joystick is not present or an error
+ * occurred.
+ * @return An array of axis values, or `NULL` if the joystick is not present or
+ * an [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The returned array is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the specified joystick is
+ * disconnected or the library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref joystick_axis
+ *
+ * @since Added in version 3.0. Replaces `glfwGetJoystickPos`.
+ *
+ * @ingroup input
+ */
+ SSCAPI const float* glfwGetJoystickAxes(int jid, int* count);
+
+ /*! @brief Returns the state of all buttons of the specified joystick.
+ *
+ * This function returns the state of all buttons of the specified joystick.
+ * Each element in the array is either `GLFW_PRESS` or `GLFW_RELEASE`.
+ *
+ * For backward compatibility with earlier versions that did not have @ref
+ * glfwGetJoystickHats, the button array also includes all hats, each
+ * represented as four buttons. The hats are in the same order as returned by
+ * __glfwGetJoystickHats__ and are in the order _up_, _right_, _down_ and
+ * _left_. To disable these extra buttons, set the @ref
+ * GLFW_JOYSTICK_HAT_BUTTONS init hint before initialization.
+ *
+ * If the specified joystick is not present this function will return `NULL`
+ * but will not generate an error. This can be used instead of first calling
+ * @ref glfwJoystickPresent.
+ *
+ * @param[in] jid The [joystick](@ref joysticks) to query.
+ * @param[out] count Where to store the number of button states in the returned
+ * array. This is set to zero if the joystick is not present or an error
+ * occurred.
+ * @return An array of button states, or `NULL` if the joystick is not present
+ * or an [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The returned array is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the specified joystick is
+ * disconnected or the library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref joystick_button
+ *
+ * @since Added in version 2.2.
+ * @glfw3 Changed to return a dynamic array.
+ *
+ * @ingroup input
+ */
+ SSCAPI const unsigned char* glfwGetJoystickButtons(int jid, int* count);
+
+ /*! @brief Returns the state of all hats of the specified joystick.
+ *
+ * This function returns the state of all hats of the specified joystick.
+ * Each element in the array is one of the following values:
+ *
+ * Name | Value
+ * ---- | -----
+ * `GLFW_HAT_CENTERED` | 0
+ * `GLFW_HAT_UP` | 1
+ * `GLFW_HAT_RIGHT` | 2
+ * `GLFW_HAT_DOWN` | 4
+ * `GLFW_HAT_LEFT` | 8
+ * `GLFW_HAT_RIGHT_UP` | `GLFW_HAT_RIGHT` \| `GLFW_HAT_UP`
+ * `GLFW_HAT_RIGHT_DOWN` | `GLFW_HAT_RIGHT` \| `GLFW_HAT_DOWN`
+ * `GLFW_HAT_LEFT_UP` | `GLFW_HAT_LEFT` \| `GLFW_HAT_UP`
+ * `GLFW_HAT_LEFT_DOWN` | `GLFW_HAT_LEFT` \| `GLFW_HAT_DOWN`
+ *
+ * The diagonal directions are bitwise combinations of the primary (up, right,
+ * down and left) directions and you can test for these individually by ANDing
+ * it with the corresponding direction.
+ *
+ * @code
+ * if (hats[2] & GLFW_HAT_RIGHT)
+ * {
+ * // State of hat 2 could be right-up, right or right-down
+ * }
+ * @endcode
+ *
+ * If the specified joystick is not present this function will return `NULL`
+ * but will not generate an error. This can be used instead of first calling
+ * @ref glfwJoystickPresent.
+ *
+ * @param[in] jid The [joystick](@ref joysticks) to query.
+ * @param[out] count Where to store the number of hat states in the returned
+ * array. This is set to zero if the joystick is not present or an error
+ * occurred.
+ * @return An array of hat states, or `NULL` if the joystick is not present
+ * or an [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The returned array is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the specified joystick is
+ * disconnected, this function is called again for that joystick or the library
+ * is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref joystick_hat
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ SSCAPI const unsigned char* glfwGetJoystickHats(int jid, int* count);
+
+ /*! @brief Returns the name of the specified joystick.
+ *
+ * This function returns the name, encoded as UTF-8, of the specified joystick.
+ * The returned string is allocated and freed by GLFW. You should not free it
+ * yourself.
+ *
+ * If the specified joystick is not present this function will return `NULL`
+ * but will not generate an error. This can be used instead of first calling
+ * @ref glfwJoystickPresent.
+ *
+ * @param[in] jid The [joystick](@ref joysticks) to query.
+ * @return The UTF-8 encoded name of the joystick, or `NULL` if the joystick
+ * is not present or an [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The returned string is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the specified joystick is
+ * disconnected or the library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref joystick_name
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup input
+ */
+ SSCAPI const char* glfwGetJoystickName(int jid);
+
+ /*! @brief Returns the SDL compatible GUID of the specified joystick.
+ *
+ * This function returns the SDL compatible GUID, as a UTF-8 encoded
+ * hexadecimal string, of the specified joystick. The returned string is
+ * allocated and freed by GLFW. You should not free it yourself.
+ *
+ * The GUID is what connects a joystick to a gamepad mapping. A connected
+ * joystick will always have a GUID even if there is no gamepad mapping
+ * assigned to it.
+ *
+ * If the specified joystick is not present this function will return `NULL`
+ * but will not generate an error. This can be used instead of first calling
+ * @ref glfwJoystickPresent.
+ *
+ * The GUID uses the format introduced in SDL 2.0.5. This GUID tries to
+ * uniquely identify the make and model of a joystick but does not identify
+ * a specific unit, e.g. all wired Xbox 360 controllers will have the same
+ * GUID on that platform. The GUID for a unit may vary between platforms
+ * depending on what hardware information the platform specific APIs provide.
+ *
+ * @param[in] jid The [joystick](@ref joysticks) to query.
+ * @return The UTF-8 encoded GUID of the joystick, or `NULL` if the joystick
+ * is not present or an [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The returned string is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the specified joystick is
+ * disconnected or the library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref gamepad
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ SSCAPI const char* glfwGetJoystickGUID(int jid);
+
+ /*! @brief Sets the user pointer of the specified joystick.
+ *
+ * This function sets the user-defined pointer of the specified joystick. The
+ * current value is retained until the joystick is disconnected. The initial
+ * value is `NULL`.
+ *
+ * This function may be called from the joystick callback, even for a joystick
+ * that is being disconnected.
+ *
+ * @param[in] jid The joystick whose pointer to set.
+ * @param[in] pointer The new value.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @sa @ref joystick_userptr
+ * @sa @ref glfwGetJoystickUserPointer
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ SSCAPI void glfwSetJoystickUserPointer(int jid, void* pointer);
+
+ /*! @brief Returns the user pointer of the specified joystick.
+ *
+ * This function returns the current value of the user-defined pointer of the
+ * specified joystick. The initial value is `NULL`.
+ *
+ * This function may be called from the joystick callback, even for a joystick
+ * that is being disconnected.
+ *
+ * @param[in] jid The joystick whose pointer to return.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @sa @ref joystick_userptr
+ * @sa @ref glfwSetJoystickUserPointer
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ SSCAPI void* glfwGetJoystickUserPointer(int jid);
+
+ /*! @brief Returns whether the specified joystick has a gamepad mapping.
+ *
+ * This function returns whether the specified joystick is both present and has
+ * a gamepad mapping.
+ *
+ * If the specified joystick is present but does not have a gamepad mapping
+ * this function will return `GLFW_FALSE` but will not generate an error. Call
+ * @ref glfwJoystickPresent to check if a joystick is present regardless of
+ * whether it has a mapping.
+ *
+ * @param[in] jid The [joystick](@ref joysticks) to query.
+ * @return `GLFW_TRUE` if a joystick is both present and has a gamepad mapping,
+ * or `GLFW_FALSE` otherwise.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_INVALID_ENUM.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref gamepad
+ * @sa @ref glfwGetGamepadState
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ SSCAPI int glfwJoystickIsGamepad(int jid);
+
+ /*! @brief Sets the joystick configuration callback.
+ *
+ * This function sets the joystick configuration callback, or removes the
+ * currently set callback. This is called when a joystick is connected to or
+ * disconnected from the system.
+ *
+ * For joystick connection and disconnection events to be delivered on all
+ * platforms, you need to call one of the [event processing](@ref events)
+ * functions. Joystick disconnection may also be detected and the callback
+ * called by joystick functions. The function will then return whatever it
+ * returns if the joystick is not present.
+ *
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(int jid, int event)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWjoystickfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref joystick_event
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun callback);
+
+ /*! @brief Adds the specified SDL_GameControllerDB gamepad mappings.
+ *
+ * This function parses the specified ASCII encoded string and updates the
+ * internal list with any gamepad mappings it finds. This string may
+ * contain either a single gamepad mapping or many mappings separated by
+ * newlines. The parser supports the full format of the `gamecontrollerdb.txt`
+ * source file including empty lines and comments.
+ *
+ * See @ref gamepad_mapping for a description of the format.
+ *
+ * If there is already a gamepad mapping for a given GUID in the internal list,
+ * it will be replaced by the one passed to this function. If the library is
+ * terminated and re-initialized the internal list will revert to the built-in
+ * default.
+ *
+ * @param[in] string The string containing the gamepad mappings.
+ * @return `GLFW_TRUE` if successful, or `GLFW_FALSE` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_INVALID_VALUE.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref gamepad
+ * @sa @ref glfwJoystickIsGamepad
+ * @sa @ref glfwGetGamepadName
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ SSCAPI int glfwUpdateGamepadMappings(const char* string);
+
+ /*! @brief Returns the human-readable gamepad name for the specified joystick.
+ *
+ * This function returns the human-readable name of the gamepad from the
+ * gamepad mapping assigned to the specified joystick.
+ *
+ * If the specified joystick is not present or does not have a gamepad mapping
+ * this function will return `NULL` but will not generate an error. Call
+ * @ref glfwJoystickPresent to check whether it is present regardless of
+ * whether it has a mapping.
+ *
+ * @param[in] jid The [joystick](@ref joysticks) to query.
+ * @return The UTF-8 encoded name of the gamepad, or `NULL` if the
+ * joystick is not present, does not have a mapping or an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref GLFW_INVALID_ENUM.
+ *
+ * @pointer_lifetime The returned string is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the specified joystick is
+ * disconnected, the gamepad mappings are updated or the library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref gamepad
+ * @sa @ref glfwJoystickIsGamepad
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ SSCAPI const char* glfwGetGamepadName(int jid);
+
+ /*! @brief Retrieves the state of the specified joystick remapped as a gamepad.
+ *
+ * This function retrieves the state of the specified joystick remapped to
+ * an Xbox-like gamepad.
+ *
+ * If the specified joystick is not present or does not have a gamepad mapping
+ * this function will return `GLFW_FALSE` but will not generate an error. Call
+ * @ref glfwJoystickPresent to check whether it is present regardless of
+ * whether it has a mapping.
+ *
+ * The Guide button may not be available for input as it is often hooked by the
+ * system or the Steam client.
+ *
+ * Not all devices have all the buttons or axes provided by @ref
+ * GLFWgamepadstate. Unavailable buttons and axes will always report
+ * `GLFW_RELEASE` and 0.0 respectively.
+ *
+ * @param[in] jid The [joystick](@ref joysticks) to query.
+ * @param[out] state The gamepad input state of the joystick.
+ * @return `GLFW_TRUE` if successful, or `GLFW_FALSE` if no joystick is
+ * connected, it has no gamepad mapping or an [error](@ref error_handling)
+ * occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_INVALID_ENUM.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref gamepad
+ * @sa @ref glfwUpdateGamepadMappings
+ * @sa @ref glfwJoystickIsGamepad
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ SSCAPI int glfwGetGamepadState(int jid, GLFWgamepadstate* state);
+
+ /*! @brief Sets the clipboard to the specified string.
+ *
+ * This function sets the system clipboard to the specified, UTF-8 encoded
+ * string.
+ *
+ * @param[in] window Deprecated. Any valid window or `NULL`.
+ * @param[in] string A UTF-8 encoded string.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The specified string is copied before this function
+ * returns.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref clipboard
+ * @sa @ref glfwGetClipboardString
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup input
+ */
+ SSCAPI void glfwSetClipboardString(GLFWwindow* window, const char* string);
+
+ /*! @brief Returns the contents of the clipboard as a string.
+ *
+ * This function returns the contents of the system clipboard, if it contains
+ * or is convertible to a UTF-8 encoded string. If the clipboard is empty or
+ * if its contents cannot be converted, `NULL` is returned and a @ref
+ * GLFW_FORMAT_UNAVAILABLE error is generated.
+ *
+ * @param[in] window Deprecated. Any valid window or `NULL`.
+ * @return The contents of the clipboard as a UTF-8 encoded string, or `NULL`
+ * if an [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_FORMAT_UNAVAILABLE and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The returned string is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the next call to @ref
+ * glfwGetClipboardString or @ref glfwSetClipboardString, or until the library
+ * is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref clipboard
+ * @sa @ref glfwSetClipboardString
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup input
+ */
+ SSCAPI const char* glfwGetClipboardString(GLFWwindow* window);
+
+ /*! @brief Returns the GLFW time.
+ *
+ * This function returns the current GLFW time, in seconds. Unless the time
+ * has been set using @ref glfwSetTime it measures time elapsed since GLFW was
+ * initialized.
+ *
+ * This function and @ref glfwSetTime are helper functions on top of @ref
+ * glfwGetTimerFrequency and @ref glfwGetTimerValue.
+ *
+ * The resolution of the timer is system dependent, but is usually on the order
+ * of a few micro- or nanoseconds. It uses the highest-resolution monotonic
+ * time source on each operating system.
+ *
+ * @return The current time, in seconds, or zero if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Reading and
+ * writing of the internal base time is not atomic, so it needs to be
+ * externally synchronized with calls to @ref glfwSetTime.
+ *
+ * @sa @ref time
+ *
+ * @since Added in version 1.0.
+ *
+ * @ingroup input
+ */
+ SSCAPI double glfwGetTime(void);
+
+ /*! @brief Sets the GLFW time.
+ *
+ * This function sets the current GLFW time, in seconds. The value must be
+ * a positive finite number less than or equal to 18446744073.0, which is
+ * approximately 584.5 years.
+ *
+ * This function and @ref glfwGetTime are helper functions on top of @ref
+ * glfwGetTimerFrequency and @ref glfwGetTimerValue.
+ *
+ * @param[in] time The new value, in seconds.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_INVALID_VALUE.
+ *
+ * @remark The upper limit of GLFW time is calculated as
+ * floor((264 - 1) / 109) and is due to implementations
+ * storing nanoseconds in 64 bits. The limit may be increased in the future.
+ *
+ * @thread_safety This function may be called from any thread. Reading and
+ * writing of the internal base time is not atomic, so it needs to be
+ * externally synchronized with calls to @ref glfwGetTime.
+ *
+ * @sa @ref time
+ *
+ * @since Added in version 2.2.
+ *
+ * @ingroup input
+ */
+ SSCAPI void glfwSetTime(double time);
+
+ /*! @brief Returns the current value of the raw timer.
+ *
+ * This function returns the current value of the raw timer, measured in
+ * 1 / frequency seconds. To get the frequency, call @ref
+ * glfwGetTimerFrequency.
+ *
+ * @return The value of the timer, or zero if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref time
+ * @sa @ref glfwGetTimerFrequency
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup input
+ */
+ SSCAPI uint64_t glfwGetTimerValue(void);
+
+ /*! @brief Returns the frequency, in Hz, of the raw timer.
+ *
+ * This function returns the frequency, in Hz, of the raw timer.
+ *
+ * @return The frequency of the timer, in Hz, or zero if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref time
+ * @sa @ref glfwGetTimerValue
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup input
+ */
+ SSCAPI uint64_t glfwGetTimerFrequency(void);
+
+ /*! @brief Makes the context of the specified window current for the calling
+ * thread.
+ *
+ * This function makes the OpenGL or OpenGL ES context of the specified window
+ * current on the calling thread. A context must only be made current on
+ * a single thread at a time and each thread can have only a single current
+ * context at a time.
+ *
+ * When moving a context between threads, you must make it non-current on the
+ * old thread before making it current on the new one.
+ *
+ * By default, making a context non-current implicitly forces a pipeline flush.
+ * On machines that support `GL_KHR_context_flush_control`, you can control
+ * whether a context performs this flush by setting the
+ * [GLFW_CONTEXT_RELEASE_BEHAVIOR](@ref GLFW_CONTEXT_RELEASE_BEHAVIOR_hint)
+ * hint.
+ *
+ * The specified window must have an OpenGL or OpenGL ES context. Specifying
+ * a window without a context will generate a @ref GLFW_NO_WINDOW_CONTEXT
+ * error.
+ *
+ * @param[in] window The window whose context to make current, or `NULL` to
+ * detach the current context.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_NO_WINDOW_CONTEXT and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref context_current
+ * @sa @ref glfwGetCurrentContext
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup context
+ */
+ SSCAPI void glfwMakeContextCurrent(GLFWwindow* window);
+
+ /*! @brief Returns the window whose context is current on the calling thread.
+ *
+ * This function returns the window whose OpenGL or OpenGL ES context is
+ * current on the calling thread.
+ *
+ * @return The window whose context is current, or `NULL` if no window's
+ * context is current.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref context_current
+ * @sa @ref glfwMakeContextCurrent
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup context
+ */
+ SSCAPI GLFWwindow* glfwGetCurrentContext(void);
+
+ /*! @brief Swaps the front and back buffers of the specified window.
+ *
+ * This function swaps the front and back buffers of the specified window when
+ * rendering with OpenGL or OpenGL ES. If the swap interval is greater than
+ * zero, the GPU driver waits the specified number of screen updates before
+ * swapping the buffers.
+ *
+ * The specified window must have an OpenGL or OpenGL ES context. Specifying
+ * a window without a context will generate a @ref GLFW_NO_WINDOW_CONTEXT
+ * error.
+ *
+ * This function does not apply to Vulkan. If you are rendering with Vulkan,
+ * see `vkQueuePresentKHR` instead.
+ *
+ * @param[in] window The window whose buffers to swap.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_NO_WINDOW_CONTEXT and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @remark __EGL:__ The context of the specified window must be current on the
+ * calling thread.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref buffer_swap
+ * @sa @ref glfwSwapInterval
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSwapBuffers(GLFWwindow* window);
+
+ /*! @brief Sets the swap interval for the current context.
+ *
+ * This function sets the swap interval for the current OpenGL or OpenGL ES
+ * context, i.e. the number of screen updates to wait from the time @ref
+ * glfwSwapBuffers was called before swapping the buffers and returning. This
+ * is sometimes called _vertical synchronization_, _vertical retrace
+ * synchronization_ or just _vsync_.
+ *
+ * A context that supports either of the `WGL_EXT_swap_control_tear` and
+ * `GLX_EXT_swap_control_tear` extensions also accepts _negative_ swap
+ * intervals, which allows the driver to swap immediately even if a frame
+ * arrives a little bit late. You can check for these extensions with @ref
+ * glfwExtensionSupported.
+ *
+ * A context must be current on the calling thread. Calling this function
+ * without a current context will cause a @ref GLFW_NO_CURRENT_CONTEXT error.
+ *
+ * This function does not apply to Vulkan. If you are rendering with Vulkan,
+ * see the present mode of your swapchain instead.
+ *
+ * @param[in] interval The minimum number of screen updates to wait for
+ * until the buffers are swapped by @ref glfwSwapBuffers.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_NO_CURRENT_CONTEXT and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @remark This function is not called during context creation, leaving the
+ * swap interval set to whatever is the default for that API. This is done
+ * because some swap interval extensions used by GLFW do not allow the swap
+ * interval to be reset to zero once it has been set to a non-zero value.
+ *
+ * @remark Some GPU drivers do not honor the requested swap interval, either
+ * because of a user setting that overrides the application's request or due to
+ * bugs in the driver.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref buffer_swap
+ * @sa @ref glfwSwapBuffers
+ *
+ * @since Added in version 1.0.
+ *
+ * @ingroup context
+ */
+ SSCAPI void glfwSwapInterval(int interval);
+
+ /*! @brief Returns whether the specified extension is available.
+ *
+ * This function returns whether the specified
+ * [API extension](@ref context_glext) is supported by the current OpenGL or
+ * OpenGL ES context. It searches both for client API extension and context
+ * creation API extensions.
+ *
+ * A context must be current on the calling thread. Calling this function
+ * without a current context will cause a @ref GLFW_NO_CURRENT_CONTEXT error.
+ *
+ * As this functions retrieves and searches one or more extension strings each
+ * call, it is recommended that you cache its results if it is going to be used
+ * frequently. The extension strings will not change during the lifetime of
+ * a context, so there is no danger in doing this.
+ *
+ * This function does not apply to Vulkan. If you are using Vulkan, see @ref
+ * glfwGetRequiredInstanceExtensions, `vkEnumerateInstanceExtensionProperties`
+ * and `vkEnumerateDeviceExtensionProperties` instead.
+ *
+ * @param[in] extension The ASCII encoded name of the extension.
+ * @return `GLFW_TRUE` if the extension is available, or `GLFW_FALSE`
+ * otherwise.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_NO_CURRENT_CONTEXT, @ref GLFW_INVALID_VALUE and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref context_glext
+ * @sa @ref glfwGetProcAddress
+ *
+ * @since Added in version 1.0.
+ *
+ * @ingroup context
+ */
+ SSCAPI int glfwExtensionSupported(const char* extension);
+
+ /*! @brief Returns the address of the specified function for the current
+ * context.
+ *
+ * This function returns the address of the specified OpenGL or OpenGL ES
+ * [core or extension function](@ref context_glext), if it is supported
+ * by the current context.
+ *
+ * A context must be current on the calling thread. Calling this function
+ * without a current context will cause a @ref GLFW_NO_CURRENT_CONTEXT error.
+ *
+ * This function does not apply to Vulkan. If you are rendering with Vulkan,
+ * see @ref glfwGetInstanceProcAddress, `vkGetInstanceProcAddr` and
+ * `vkGetDeviceProcAddr` instead.
+ *
+ * @param[in] procname The ASCII encoded name of the function.
+ * @return The address of the function, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_NO_CURRENT_CONTEXT and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @remark The address of a given function is not guaranteed to be the same
+ * between contexts.
+ *
+ * @remark This function may return a non-`NULL` address despite the
+ * associated version or extension not being available. Always check the
+ * context version or extension string first.
+ *
+ * @pointer_lifetime The returned function pointer is valid until the context
+ * is destroyed or the library is terminated.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref context_glext
+ * @sa @ref glfwExtensionSupported
+ *
+ * @since Added in version 1.0.
+ *
+ * @ingroup context
+ */
+ SSCAPI GLFWglproc glfwGetProcAddress(const char* procname);
+
+ /*! @brief Returns whether the Vulkan loader and an ICD have been found.
+ *
+ * This function returns whether the Vulkan loader and any minimally functional
+ * ICD have been found.
+ *
+ * The availability of a Vulkan loader and even an ICD does not by itself guarantee that
+ * surface creation or even instance creation is possible. Call @ref
+ * glfwGetRequiredInstanceExtensions to check whether the extensions necessary for Vulkan
+ * surface creation are available and @ref glfwGetPhysicalDevicePresentationSupport to
+ * check whether a queue family of a physical device supports image presentation.
+ *
+ * @return `GLFW_TRUE` if Vulkan is minimally available, or `GLFW_FALSE`
+ * otherwise.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref vulkan_support
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup vulkan
+ */
+ SSCAPI int glfwVulkanSupported(void);
+
+ /*! @brief Returns the Vulkan instance extensions required by GLFW.
+ *
+ * This function returns an array of names of Vulkan instance extensions required
+ * by GLFW for creating Vulkan surfaces for GLFW windows. If successful, the
+ * list will always contain `VK_KHR_surface`, so if you don't require any
+ * additional extensions you can pass this list directly to the
+ * `VkInstanceCreateInfo` struct.
+ *
+ * If Vulkan is not available on the machine, this function returns `NULL` and
+ * generates a @ref GLFW_API_UNAVAILABLE error. Call @ref glfwVulkanSupported
+ * to check whether Vulkan is at least minimally available.
+ *
+ * If Vulkan is available but no set of extensions allowing window surface
+ * creation was found, this function returns `NULL`. You may still use Vulkan
+ * for off-screen rendering and compute work.
+ *
+ * @param[out] count Where to store the number of extensions in the returned
+ * array. This is set to zero if an error occurred.
+ * @return An array of ASCII encoded extension names, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_API_UNAVAILABLE.
+ *
+ * @remark Additional extensions may be required by future versions of GLFW.
+ * You should check if any extensions you wish to enable are already in the
+ * returned array, as it is an error to specify an extension more than once in
+ * the `VkInstanceCreateInfo` struct.
+ *
+ * @pointer_lifetime The returned array is allocated and freed by GLFW. You
+ * should not free it yourself. It is guaranteed to be valid only until the
+ * library is terminated.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref vulkan_ext
+ * @sa @ref glfwCreateWindowSurface
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup vulkan
+ */
+ SSCAPI const char** glfwGetRequiredInstanceExtensions(uint32_t* count);
+
+#if defined(VK_VERSION_1_0)
+
+ /*! @brief Returns the address of the specified Vulkan instance function.
+ *
+ * This function returns the address of the specified Vulkan core or extension
+ * function for the specified instance. If instance is set to `NULL` it can
+ * return any function exported from the Vulkan loader, including at least the
+ * following functions:
+ *
+ * - `vkEnumerateInstanceExtensionProperties`
+ * - `vkEnumerateInstanceLayerProperties`
+ * - `vkCreateInstance`
+ * - `vkGetInstanceProcAddr`
+ *
+ * If Vulkan is not available on the machine, this function returns `NULL` and
+ * generates a @ref GLFW_API_UNAVAILABLE error. Call @ref glfwVulkanSupported
+ * to check whether Vulkan is at least minimally available.
+ *
+ * This function is equivalent to calling `vkGetInstanceProcAddr` with
+ * a platform-specific query of the Vulkan loader as a fallback.
+ *
+ * @param[in] instance The Vulkan instance to query, or `NULL` to retrieve
+ * functions related to instance creation.
+ * @param[in] procname The ASCII encoded name of the function.
+ * @return The address of the function, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_API_UNAVAILABLE.
+ *
+ * @pointer_lifetime The returned function pointer is valid until the library
+ * is terminated.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref vulkan_proc
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup vulkan
+ */
+ SSCAPI GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance, const char* procname);
+
+ /*! @brief Returns whether the specified queue family can present images.
+ *
+ * This function returns whether the specified queue family of the specified
+ * physical device supports presentation to the platform GLFW was built for.
+ *
+ * If Vulkan or the required window surface creation instance extensions are
+ * not available on the machine, or if the specified instance was not created
+ * with the required extensions, this function returns `GLFW_FALSE` and
+ * generates a @ref GLFW_API_UNAVAILABLE error. Call @ref glfwVulkanSupported
+ * to check whether Vulkan is at least minimally available and @ref
+ * glfwGetRequiredInstanceExtensions to check what instance extensions are
+ * required.
+ *
+ * @param[in] instance The instance that the physical device belongs to.
+ * @param[in] device The physical device that the queue family belongs to.
+ * @param[in] queuefamily The index of the queue family to query.
+ * @return `GLFW_TRUE` if the queue family supports presentation, or
+ * `GLFW_FALSE` otherwise.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_API_UNAVAILABLE and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @remark @macos This function currently always returns `GLFW_TRUE`, as the
+ * `VK_MVK_macos_surface` and `VK_EXT_metal_surface` extensions do not provide
+ * a `vkGetPhysicalDevice*PresentationSupport` type function.
+ *
+ * @thread_safety This function may be called from any thread. For
+ * synchronization details of Vulkan objects, see the Vulkan specification.
+ *
+ * @sa @ref vulkan_present
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup vulkan
+ */
+ SSCAPI int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily);
+
+ /*! @brief Creates a Vulkan surface for the specified window.
+ *
+ * This function creates a Vulkan surface for the specified window.
+ *
+ * If the Vulkan loader or at least one minimally functional ICD were not found,
+ * this function returns `VK_ERROR_INITIALIZATION_FAILED` and generates a @ref
+ * GLFW_API_UNAVAILABLE error. Call @ref glfwVulkanSupported to check whether
+ * Vulkan is at least minimally available.
+ *
+ * If the required window surface creation instance extensions are not
+ * available or if the specified instance was not created with these extensions
+ * enabled, this function returns `VK_ERROR_EXTENSION_NOT_PRESENT` and
+ * generates a @ref GLFW_API_UNAVAILABLE error. Call @ref
+ * glfwGetRequiredInstanceExtensions to check what instance extensions are
+ * required.
+ *
+ * The window surface cannot be shared with another API so the window must
+ * have been created with the [client api hint](@ref GLFW_CLIENT_API_attrib)
+ * set to `GLFW_NO_API` otherwise it generates a @ref GLFW_INVALID_VALUE error
+ * and returns `VK_ERROR_NATIVE_WINDOW_IN_USE_KHR`.
+ *
+ * The window surface must be destroyed before the specified Vulkan instance.
+ * It is the responsibility of the caller to destroy the window surface. GLFW
+ * does not destroy it for you. Call `vkDestroySurfaceKHR` to destroy the
+ * surface.
+ *
+ * @param[in] instance The Vulkan instance to create the surface in.
+ * @param[in] window The window to create the surface for.
+ * @param[in] allocator The allocator to use, or `NULL` to use the default
+ * allocator.
+ * @param[out] surface Where to store the handle of the surface. This is set
+ * to `VK_NULL_HANDLE` if an error occurred.
+ * @return `VK_SUCCESS` if successful, or a Vulkan error code if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_API_UNAVAILABLE, @ref GLFW_PLATFORM_ERROR and @ref GLFW_INVALID_VALUE
+ *
+ * @remark If an error occurs before the creation call is made, GLFW returns
+ * the Vulkan error code most appropriate for the error. Appropriate use of
+ * @ref glfwVulkanSupported and @ref glfwGetRequiredInstanceExtensions should
+ * eliminate almost all occurrences of these errors.
+ *
+ * @remark @macos GLFW prefers the `VK_EXT_metal_surface` extension, with the
+ * `VK_MVK_macos_surface` extension as a fallback. The name of the selected
+ * extension, if any, is included in the array returned by @ref
+ * glfwGetRequiredInstanceExtensions.
+ *
+ * @remark @macos This function creates and sets a `CAMetalLayer` instance for
+ * the window content view, which is required for MoltenVK to function.
+ *
+ * @remark @x11 By default GLFW prefers the `VK_KHR_xcb_surface` extension,
+ * with the `VK_KHR_xlib_surface` extension as a fallback. You can make
+ * `VK_KHR_xlib_surface` the preferred extension by setting the
+ * [GLFW_X11_XCB_VULKAN_SURFACE](@ref GLFW_X11_XCB_VULKAN_SURFACE_hint) init
+ * hint. The name of the selected extension, if any, is included in the array
+ * returned by @ref glfwGetRequiredInstanceExtensions.
+ *
+ * @thread_safety This function may be called from any thread. For
+ * synchronization details of Vulkan objects, see the Vulkan specification.
+ *
+ * @sa @ref vulkan_surface
+ * @sa @ref glfwGetRequiredInstanceExtensions
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup vulkan
+ */
+ SSCAPI VkResult glfwCreateWindowSurface(VkInstance instance, GLFWwindow* window, const VkAllocationCallbacks* allocator, VkSurfaceKHR* surface);
+
+#endif /*VK_VERSION_1_0*/
+
+
+ /*************************************************************************
+ * Global definition cleanup
+ *************************************************************************/
+
+ /* ------------------- BEGIN SYSTEM/COMPILER SPECIFIC -------------------- */
+
+#ifdef GLFW_WINGDIAPI_DEFINED
+#undef WINGDIAPI
+#undef GLFW_WINGDIAPI_DEFINED
+#endif
+
+#ifdef GLFW_CALLBACK_DEFINED
+#undef CALLBACK
+#undef GLFW_CALLBACK_DEFINED
+#endif
+
+/* Some OpenGL related headers need GLAPIENTRY, but it is unconditionally
+ * defined by some gl.h variants (OpenBSD) so define it after if needed.
+ */
+#ifndef GLAPIENTRY
+#define GLAPIENTRY APIENTRY
+#define GLFW_GLAPIENTRY_DEFINED
+#endif
+
+ /* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _glfw3_h_ */
+
diff --git a/StgSharp.C/glfw3.lib b/StgSharp.C/glfw3.lib
new file mode 100644
index 00000000..4baa46d0
Binary files /dev/null and b/StgSharp.C/glfw3.lib differ
diff --git a/StgSharp.C/glfw3_mt.lib b/StgSharp.C/glfw3_mt.lib
new file mode 100644
index 00000000..30ba4ada
Binary files /dev/null and b/StgSharp.C/glfw3_mt.lib differ
diff --git a/StgSharp.C/glfw3dll.lib b/StgSharp.C/glfw3dll.lib
new file mode 100644
index 00000000..e1b3f3ef
Binary files /dev/null and b/StgSharp.C/glfw3dll.lib differ
diff --git a/StgSharp.C/glfw3native.h b/StgSharp.C/glfw3native.h
new file mode 100644
index 00000000..a97c9840
--- /dev/null
+++ b/StgSharp.C/glfw3native.h
@@ -0,0 +1,632 @@
+/*************************************************************************
+ * GLFW 3.4 - www.glfw->org
+ * A library for OpenGL, window and input
+ *------------------------------------------------------------------------
+ * Copyright (c) 2002-2006 Marcus Geelnard
+ * Copyright (c) 2006-2018 Camilla Löwy org>
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would
+ * be appreciated but is not required.
+ *
+ * 2. Altered source versions must be plainly marked as such, and must not
+ * be misrepresented as being the original software.
+ *
+ * 3. This notice may not be removed or altered from any source
+ * distribution.
+ *
+ *************************************************************************/
+
+#ifndef _glfw3_native_h_
+#define _glfw3_native_h_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*************************************************************************
+ * Doxygen documentation
+ *************************************************************************/
+
+/*! @file glfw3native.h
+ * @brief The header of the native access functions.
+ *
+ * This is the header file of the native access functions. See @ref native for
+ * more information.
+ */
+/*! @defgroup native Native access
+ * @brief Functions related to accessing native handles.
+ *
+ * **By using the native access functions you assert that you know what you're
+ * doing and how to fix problems caused by using them. If you don't, you
+ * shouldn't be using them.**
+ *
+ * Before the inclusion of @ref glfw3native.h, you may define zero or more
+ * window system API macro and zero or more context creation API macros.
+ *
+ * The chosen backends must match those the library was compiled for. Failure
+ * to do this will cause a link-time error.
+ *
+ * The available window API macros are:
+ * * `GLFW_EXPOSE_NATIVE_WIN32`
+ * * `GLFW_EXPOSE_NATIVE_COCOA`
+ * * `GLFW_EXPOSE_NATIVE_X11`
+ * * `GLFW_EXPOSE_NATIVE_WAYLAND`
+ *
+ * The available context API macros are:
+ * * `GLFW_EXPOSE_NATIVE_WGL`
+ * * `GLFW_EXPOSE_NATIVE_NSGL`
+ * * `GLFW_EXPOSE_NATIVE_GLX`
+ * * `GLFW_EXPOSE_NATIVE_EGL`
+ * * `GLFW_EXPOSE_NATIVE_OSMESA`
+ *
+ * These macros select which of the native access functions that are declared
+ * and which platform-specific headers to include. It is then up your (by
+ * definition platform-specific) code to handle which of these should be
+ * defined.
+ *
+ * If you do not want the platform-specific headers to be included, define
+ * `GLFW_NATIVE_INCLUDE_NONE` before including the @ref glfw3native.h header.
+ *
+ * @code
+ * #define GLFW_EXPOSE_NATIVE_WIN32
+ * #define GLFW_EXPOSE_NATIVE_WGL
+ * #define GLFW_NATIVE_INCLUDE_NONE
+ * #include
+ * @endcode
+ */
+
+/*************************************************************************
+ * System headers and types
+ *************************************************************************/
+
+#if !defined(GLFW_NATIVE_INCLUDE_NONE)
+
+#if defined(GLFW_EXPOSE_NATIVE_WIN32) || defined(GLFW_EXPOSE_NATIVE_WGL)
+/* This is a workaround for the fact that glfw3.h needs to export APIENTRY (for
+ * example to allow applications to correctly declare a GL_KHR_debug callback)
+ * but windows.h assumes no one will define APIENTRY before it does
+ */
+#if defined(GLFW_APIENTRY_DEFINED)
+#undef APIENTRY
+#undef GLFW_APIENTRY_DEFINED
+#endif
+#include
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_COCOA) || defined(GLFW_EXPOSE_NATIVE_NSGL)
+#if defined(__OBJC__)
+#import
+#else
+#include
+#include
+#endif
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_X11) || defined(GLFW_EXPOSE_NATIVE_GLX)
+#include
+#include
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_WAYLAND)
+#include
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_WGL)
+/* WGL is declared by windows.h */
+#endif
+#if defined(GLFW_EXPOSE_NATIVE_NSGL)
+/* NSGL is declared by Cocoa.h */
+#endif
+#if defined(GLFW_EXPOSE_NATIVE_GLX)
+/* This is a workaround for the fact that glfw3.h defines GLAPIENTRY because by
+ * default it also acts as an OpenGL header
+ * However, glx.h will include gl.h, which will define it unconditionally
+ */
+#if defined(GLFW_GLAPIENTRY_DEFINED)
+#undef GLAPIENTRY
+#undef GLFW_GLAPIENTRY_DEFINED
+#endif
+#include
+#endif
+#if defined(GLFW_EXPOSE_NATIVE_EGL)
+#include
+#endif
+#if defined(GLFW_EXPOSE_NATIVE_OSMESA)
+/* This is a workaround for the fact that glfw3.h defines GLAPIENTRY because by
+ * default it also acts as an OpenGL header
+ * However, osmesa.h will include gl.h, which will define it unconditionally
+ */
+#if defined(GLFW_GLAPIENTRY_DEFINED)
+#undef GLAPIENTRY
+#undef GLFW_GLAPIENTRY_DEFINED
+#endif
+#include
+#endif
+
+#endif /*GLFW_NATIVE_INCLUDE_NONE*/
+
+/*************************************************************************
+ * Functions
+ *************************************************************************/
+
+#if defined(GLFW_EXPOSE_NATIVE_WIN32)
+/*! @brief Returns the adapter device name of the specified monitor.
+ *
+ * @return The UTF-8 encoded adapter device name (for example `\\.\DISPLAY1`)
+ * of the specified monitor, or `NULL` if an [error](@ref error_handling)
+ * occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup native
+ */
+SSCAPI const char *glfwGetWin32Adapter(GLFWmonitor *monitor);
+
+/*! @brief Returns the display device name of the specified monitor.
+ *
+ * @return The UTF-8 encoded display device name (for example
+ * `\\.\DISPLAY1\Monitor0`) of the specified monitor, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup native
+ */
+SSCAPI const char *glfwGetWin32Monitor(GLFWmonitor *monitor);
+
+/*! @brief Returns the `HWND` of the specified window.
+ *
+ * @return The `HWND` of the specified window, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @remark The `HDC` associated with the window can be queried with the
+ * [GetDC](https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getdc)
+ * function.
+ * @code
+ * HDC dc = GetDC(glfwGetWin32Window(window));
+ * @endcode
+ * This DC is private and does not need to be released.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup native
+ */
+SSCAPI HWND glfwGetWin32Window(GLFWwindow *window);
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_WGL)
+/*! @brief Returns the `HGLRC` of the specified window.
+ *
+ * @return The `HGLRC` of the specified window, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
+ * GLFW_NOT_INITIALIZED.
+ *
+ * @remark The `HDC` associated with the window can be queried with the
+ * [GetDC](https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getdc)
+ * function.
+ * @code
+ * HDC dc = GetDC(glfwGetWin32Window(window));
+ * @endcode
+ * This DC is private and does not need to be released.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup native
+ */
+SSCAPI HGLRC glfwGetWGLContext(GLFWwindow *window);
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_COCOA)
+/*! @brief Returns the `CGDirectDisplayID` of the specified monitor.
+ *
+ * @return The `CGDirectDisplayID` of the specified monitor, or
+ * `kCGNullDirectDisplay` if an [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup native
+ */
+SSCAPI CGDirectDisplayID glfwGetCocoaMonitor(GLFWmonitor *monitor);
+
+/*! @brief Returns the `NSWindow` of the specified window.
+ *
+ * @return The `NSWindow` of the specified window, or `nil` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup native
+ */
+SSCAPI id glfwGetCocoaWindow(GLFWwindow *window);
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_NSGL)
+/*! @brief Returns the `NSOpenGLContext` of the specified window.
+ *
+ * @return The `NSOpenGLContext` of the specified window, or `nil` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
+ * GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup native
+ */
+SSCAPI id glfwGetNSGLContext(GLFWwindow *window);
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_X11)
+/*! @brief Returns the `Display` used by GLFW.
+ *
+ * @return The `Display` used by GLFW, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup native
+ */
+SSCAPI Display *glfwGetX11Display(void);
+
+/*! @brief Returns the `RRCrtc` of the specified monitor.
+ *
+ * @return The `RRCrtc` of the specified monitor, or `None` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup native
+ */
+SSCAPI RRCrtc glfwGetX11Adapter(GLFWmonitor *monitor);
+
+/*! @brief Returns the `RROutput` of the specified monitor.
+ *
+ * @return The `RROutput` of the specified monitor, or `None` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup native
+ */
+SSCAPI RROutput glfwGetX11Monitor(GLFWmonitor *monitor);
+
+/*! @brief Returns the `Window` of the specified window.
+ *
+ * @return The `Window` of the specified window, or `None` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup native
+ */
+SSCAPI Window glfwGetX11Window(GLFWwindow *window);
+
+/*! @brief Sets the current primary selection to the specified string.
+ *
+ * @param[in] string A UTF-8 encoded string.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The specified string is copied before this function
+ * returns.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref clipboard
+ * @sa glfwGetX11SelectionString
+ * @sa glfwSetClipboardString
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup native
+ */
+SSCAPI void glfwSetX11SelectionString(const char *string);
+
+/*! @brief Returns the contents of the current primary selection as a string.
+ *
+ * If the selection is empty or if its contents cannot be converted, `NULL`
+ * is returned and a @ref GLFW_FORMAT_UNAVAILABLE error is generated.
+ *
+ * @return The contents of the selection as a UTF-8 encoded string, or `NULL`
+ * if an [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The returned string is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the next call to @ref
+ * glfwGetX11SelectionString or @ref glfwSetX11SelectionString, or until the
+ * library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref clipboard
+ * @sa glfwSetX11SelectionString
+ * @sa glfwGetClipboardString
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup native
+ */
+SSCAPI const char *glfwGetX11SelectionString(void);
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_GLX)
+/*! @brief Returns the `GLXContext` of the specified window.
+ *
+ * @return The `GLXContext` of the specified window, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
+ * GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup native
+ */
+SSCAPI GLXContext glfwGetGLXContext(GLFWwindow *window);
+
+/*! @brief Returns the `GLXWindow` of the specified window.
+ *
+ * @return The `GLXWindow` of the specified window, or `None` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
+ * GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup native
+ */
+SSCAPI GLXWindow glfwGetGLXWindow(GLFWwindow *window);
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_WAYLAND)
+/*! @brief Returns the `struct wl_display*` used by GLFW.
+ *
+ * @return The `struct wl_display*` used by GLFW, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup native
+ */
+SSCAPI struct wl_display *glfwGetWaylandDisplay(void);
+
+/*! @brief Returns the `struct wl_output*` of the specified monitor.
+ *
+ * @return The `struct wl_output*` of the specified monitor, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup native
+ */
+SSCAPI struct wl_output *glfwGetWaylandMonitor(GLFWmonitor *monitor);
+
+/*! @brief Returns the main `struct wl_surface*` of the specified window.
+ *
+ * @return The main `struct wl_surface*` of the specified window, or `NULL` if
+ * an [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup native
+ */
+SSCAPI struct wl_surface *glfwGetWaylandWindow(GLFWwindow *window);
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_EGL)
+/*! @brief Returns the `EGLDisplay` used by GLFW.
+ *
+ * @return The `EGLDisplay` used by GLFW, or `EGL_NO_DISPLAY` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @remark Because EGL is initialized on demand, this function will return
+ * `EGL_NO_DISPLAY` until the first context has been created via EGL.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup native
+ */
+SSCAPI EGLDisplay glfwGetEGLDisplay(void);
+
+/*! @brief Returns the `EGLContext` of the specified window.
+ *
+ * @return The `EGLContext` of the specified window, or `EGL_NO_CONTEXT` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
+ * GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup native
+ */
+SSCAPI EGLContext glfwGetEGLContext(GLFWwindow *window);
+
+/*! @brief Returns the `EGLSurface` of the specified window.
+ *
+ * @return The `EGLSurface` of the specified window, or `EGL_NO_SURFACE` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
+ * GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup native
+ */
+SSCAPI EGLSurface glfwGetEGLSurface(GLFWwindow *window);
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_OSMESA)
+/*! @brief Retrieves the color buffer associated with the specified window.
+ *
+ * @param[in] window The window whose color buffer to retrieve.
+ * @param[out] width Where to store the width of the color buffer, or `NULL`.
+ * @param[out] height Where to store the height of the color buffer, or `NULL`.
+ * @param[out] format Where to store the OSMesa pixel format of the color
+ * buffer, or `NULL`.
+ * @param[out] buffer Where to store the address of the color buffer, or
+ * `NULL`.
+ * @return `GLFW_TRUE` if successful, or `GLFW_FALSE` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
+ * GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup native
+ */
+SSCAPI int glfwGetOSMesaColorBuffer(GLFWwindow *window, int *width, int *height, int *format,
+ void **buffer);
+
+/*! @brief Retrieves the depth buffer associated with the specified window.
+ *
+ * @param[in] window The window whose depth buffer to retrieve.
+ * @param[out] width Where to store the width of the depth buffer, or `NULL`.
+ * @param[out] height Where to store the height of the depth buffer, or `NULL`.
+ * @param[out] bytesPerValue Where to store the number of bytes per depth
+ * buffer element, or `NULL`.
+ * @param[out] buffer Where to store the address of the depth buffer, or
+ * `NULL`.
+ * @return `GLFW_TRUE` if successful, or `GLFW_FALSE` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
+ * GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup native
+ */
+SSCAPI int glfwGetOSMesaDepthBuffer(GLFWwindow *window, int *width, int *height, int *bytesPerValue,
+ void **buffer);
+
+/*! @brief Returns the `OSMesaContext` of the specified window.
+ *
+ * @return The `OSMesaContext` of the specified window, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
+ * GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup native
+ */
+SSCAPI OSMesaContext glfwGetOSMesaContext(GLFWwindow *window);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _glfw3_native_h_ */
diff --git a/StgSharp.C/hash.c b/StgSharp.C/hash.c
new file mode 100644
index 00000000..8939ef66
--- /dev/null
+++ b/StgSharp.C/hash.c
@@ -0,0 +1,44 @@
+#include "ssc_intrinsic.h"
+#include "StgSharpC.h"
+
+INTERNAL int SSCDECL city_hash_simplify_sse(byte const *str, int const length)
+{
+ uint32_t hash = length, size = length << 1;
+ byte *end = str + size, *ptr = str;
+
+ if (size < 4) {
+ for (; ptr < end; ptr += 2) {
+ hash = _mm_crc32_u16(hash, *ptr);
+ }
+ } else if (size < 16) {
+ byte *last = end - 4;
+ for (; ptr < end; ptr += 4) {
+ hash = _mm_crc32_u32(hash, *(uint32_t *)ptr);
+ }
+ for (; ptr < end; ptr++) {
+ hash = _mm_crc32_u16(hash, *ptr);
+ }
+ } else {
+ byte *last_128 = end - 16, *last_32 = end - 4;
+ uint64_t hash64 = size;
+ for (; ptr < last_128; ptr += 16) {
+ __m128i vec = _mm_loadu_si32((int *)ptr);
+ hash64 = _mm_crc32_u64(hash64, _mm_extract_epi64(vec, 0));
+ hash64 = _mm_crc32_u64(hash64, _mm_extract_epi64(vec, 1));
+ }
+ hash = _mm_crc32_u8(hash, hash64);
+ hash = _mm_crc32_u8(hash, hash64 >> 32);
+ for (; ptr < last_32; ptr += 4) {
+ hash = _mm_crc32_u32(hash,*(uint32_t *)ptr);
+ }
+ for (; ptr < end; ptr += 2) {
+ hash = _mm_crc32_u8(hash,*ptr);
+ }
+ }
+ hash ^= hash >> 16;
+ hash *= 0x85ebca6b;
+ hash ^= hash >> 13;
+ hash *= 0xc2b2ae35;
+ hash ^= hash >> 16;
+ return hash;
+}
diff --git a/StgSharp.C/intrinsic.c b/StgSharp.C/intrinsic.c
new file mode 100644
index 00000000..bfd00e20
--- /dev/null
+++ b/StgSharp.C/intrinsic.c
@@ -0,0 +1,137 @@
+#include "StgSharpC.h"
+#include "ssc_intrinsic.h"
+
+
+#ifdef _MSC_VER
+#include
+#include
+#else
+#include
+#endif // _MSC_VER
+
+PRIVATE void load_intrinsic_sse(ssc_intrinsic *context);
+PRIVATE void load_intrinsic_avx(ssc_intrinsic *context);
+PRIVATE void load_intrinsic_512(ssc_intrinsic *context);
+
+PRIVATE int check_isa(most_advanced_instruction instruction_family)
+{
+ if (instruction_family != NEON) {
+#if _MSC_VER
+ return __check_isa_support(instruction_family, 0);
+#else
+ switch (instruction_family) {
+ case SSE:
+ return __builtin_cpu_supports("sse4.2");
+ case AVX256:
+ return __builtin_cpu_supports("avx2");
+ case AVX512:
+ return __builtin_cpu_supports("avx512f");
+ default:
+ return 0;
+ }
+#endif // _MSC_VER
+ }
+
+#if defined(__ARM_NEON) || defined(__ARM_NEON__)
+ return 1;
+#else
+ return 0;
+#endif
+}
+
+SSCAPI int load_intrinsic_function(void *intrinsic_context)
+{
+ ssc_null_assert(intrinsic_context);
+
+ ssc_intrinsic *context = (ssc_intrinsic *)intrinsic_context;
+
+ if (check_isa(AVX512)) {
+ load_intrinsic_512(context);
+ return 3;
+ } else if (check_isa(AVX256)) {
+ load_intrinsic_avx(context);
+ return 2;
+ } else if (check_isa(SSE)) {
+ load_intrinsic_sse(context);
+ return 1;
+ } else if (check_isa(NEON)) {
+ return -1;
+ }
+
+ return 0;
+}
+
+void load_intrinsic_sse(ssc_intrinsic *context)
+{
+ context->add_m2 = addmatrix2_sse;
+ context->add_m3 = addmatrix3_sse;
+ context->add_m4 = addmatrix4_sse;
+ context->transpose_23 = transpose23;
+ context->transpose_24 = transpose24;
+ context->transpose_32 = transpose32;
+ context->transpose_33 = transpose33;
+ context->transpose_34 = transpose34;
+ context->transpose_42 = transpose42;
+ context->transpose_43 = transpose43;
+ context->transpose_44 = transpose44;
+ context->normalize_3 = normalize;
+ context->det_matrix33 = det_mat3;
+ context->det_matrix44 = det_mat4;
+ context->dot_31 = dot_31_sse;
+ context->dot_32 = dot_32_sse;
+ context->dot_41 = dot_41_sse;
+ context->dot_42 = dot_42_sse;
+ context->dot_43 = dot_43_sse;
+ context->city_hash_simplify = city_hash_simplify_sse;
+ context->index_pair = index_pair_sse;
+}
+
+void load_intrinsic_avx(ssc_intrinsic *context)
+{
+ context->add_m2 = addmatrix2_avx;
+ context->add_m3 = addmatrix3_avx;
+ context->add_m4 = addmatrix4_avx;
+ context->transpose_23 = transpose23;
+ context->transpose_24 = transpose24;
+ context->transpose_32 = transpose32;
+ context->transpose_33 = transpose33;
+ context->transpose_34 = transpose34;
+ context->transpose_42 = transpose42;
+ context->transpose_43 = transpose43;
+ context->transpose_44 = transpose44;
+ context->normalize_3 = normalize;
+ context->det_matrix33 = det_mat3;
+ context->det_matrix44 = det_mat4;
+ context->dot_31 = dot_31_avx;
+ context->dot_32 = dot_32_avx;
+ context->dot_41 = dot_41_avx;
+ context->dot_42 = dot_42_avx;
+ context->dot_43 = dot_43_avx;
+ context->city_hash_simplify = city_hash_simplify_sse;
+ context->index_pair = index_pair_sse;
+}
+
+void load_intrinsic_512(ssc_intrinsic *context)
+{
+ context->add_m2 = addmatrix2_avx;
+ context->add_m3 = addmatrix3_512;
+ context->add_m4 = addmatrix4_512;
+ context->transpose_23 = transpose23;
+ context->transpose_24 = transpose24;
+ context->transpose_32 = transpose32;
+ context->transpose_33 = transpose33;
+ context->transpose_34 = transpose34;
+ context->transpose_42 = transpose42;
+ context->transpose_43 = transpose43;
+ context->transpose_44 = transpose44;
+ context->normalize_3 = normalize;
+ context->det_matrix33 = det_mat3;
+ context->det_matrix44 = det_mat4;
+ context->dot_31 = dot_31_avx;
+ context->dot_32 = dot_32_avx;
+ context->dot_41 = dot_41_avx;
+ context->dot_42 = dot_42_avx;
+ context->dot_43 = dot_43_avx;
+ context->city_hash_simplify = city_hash_simplify_sse;
+ context->index_pair = index_pair_sse;
+}
diff --git a/StgSharp.C/khrplatform.h b/StgSharp.C/khrplatform.h
new file mode 100644
index 00000000..5cd17f65
--- /dev/null
+++ b/StgSharp.C/khrplatform.h
@@ -0,0 +1,310 @@
+#ifndef __khrplatform_h_
+#define __khrplatform_h_
+
+/*
+** Copyright (c) 2008-2018 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+
+/* Khronos platform-specific types and definitions.
+ *
+ * The master copy of khrplatform.h is maintained in the Khronos EGL
+ * Registry repository at https://github.com/KhronosGroup/EGL-Registry
+ * The last semantic modification to khrplatform.h was at commit ID:
+ * 67a3e0864c2d75ea5287b9f3d2eb74a745936692
+ *
+ * Adopters may modify this file to suit their platform. Adopters are
+ * encouraged to submit platform specific modifications to the Khronos
+ * group so that they can be included in future versions of this file.
+ * Please submit changes by filing pull requests or issues on
+ * the EGL Registry repository linked above.
+ *
+ *
+ * See the Implementer's Guidelines for information about where this file
+ * should be located on your system and for more details of its use:
+ * http://www.khronos.org/registry/implementers_guide.pdf
+ *
+ * This file should be included as
+ * #include
+ * by Khronos client API header files that use its types and defines.
+ *
+ * The types in khrplatform.h should only be used to define API-specific types.
+ *
+ * Types defined in khrplatform.h:
+ * khronos_int8_t signed 8 bit
+ * khronos_uint8_t unsigned 8 bit
+ * khronos_int16_t signed 16 bit
+ * khronos_uint16_t unsigned 16 bit
+ * khronos_int32_t signed 32 bit
+ * khronos_uint32_t unsigned 32 bit
+ * khronos_int64_t signed 64 bit
+ * khronos_uint64_t unsigned 64 bit
+ * khronos_intptr_t signed same number of bits as a pointer
+ * khronos_uintptr_t unsigned same number of bits as a pointer
+ * khronos_ssize_t signed size
+ * khronos_usize_t unsigned size
+ * khronos_float_t signed 32 bit floating point
+ * khronos_time_ns_t unsigned 64 bit time in nanoseconds
+ * khronos_utime_nanoseconds_t unsigned time interval or absolute time in
+ * nanoseconds
+ * khronos_stime_nanoseconds_t signed time interval in nanoseconds
+ * khronos_boolean_enum_t enumerated boolean type. This should
+ * only be used as a base type when a client API's boolean type is
+ * an enum. Client APIs which use an integer or other type for
+ * booleans cannot use this as the base type for their boolean.
+ *
+ * Tokens defined in khrplatform.h:
+ *
+ * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values.
+ *
+ * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0.
+ * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0.
+ *
+ * Calling convention macros defined in this file:
+ * KHRONOS_APICALL
+ * KHRONOS_APIENTRY
+ * KHRONOS_APIATTRIBUTES
+ *
+ * These may be used in function prototypes as:
+ *
+ * KHRONOS_APICALL void KHRONOS_APIENTRY funcname(
+ * int arg1,
+ * int arg2) KHRONOS_APIATTRIBUTES;
+ */
+
+#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC)
+#define KHRONOS_STATIC 1
+#endif
+
+/*-------------------------------------------------------------------------
+ * Definition of KHRONOS_APICALL
+ *-------------------------------------------------------------------------
+ * This precedes the return type of the function in the function prototype.
+ */
+#if defined(KHRONOS_STATIC)
+/* If the preprocessor constant KHRONOS_STATIC is defined, make the
+ * header compatible with static linking. */
+#define KHRONOS_APICALL
+#elif defined(_WIN32)
+#define KHRONOS_APICALL __declspec(dllimport)
+#elif defined(__SYMBIAN32__)
+#define KHRONOS_APICALL IMPORT_C
+#elif defined(__ANDROID__)
+#define KHRONOS_APICALL __attribute__((visibility("default")))
+#else
+#define KHRONOS_APICALL
+#endif
+
+/*-------------------------------------------------------------------------
+ * Definition of KHRONOS_APIENTRY
+ *-------------------------------------------------------------------------
+ * This follows the return type of the function and precedes the function
+ * name in the function prototype.
+ */
+#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
+/* Win32 but not WinCE */
+#define KHRONOS_APIENTRY __stdcall
+#else
+#define KHRONOS_APIENTRY
+#endif
+
+/*-------------------------------------------------------------------------
+ * Definition of KHRONOS_APIATTRIBUTES
+ *-------------------------------------------------------------------------
+ * This follows the closing parenthesis of the function prototype arguments.
+ */
+#if defined(__ARMCC_2__)
+#define KHRONOS_APIATTRIBUTES __softfp
+#else
+#define KHRONOS_APIATTRIBUTES
+#endif
+
+/*-------------------------------------------------------------------------
+ * basic type definitions
+ *-----------------------------------------------------------------------*/
+#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || \
+ defined(__SCO__) || defined(__USLC__)
+
+/*
+ * Using
+ */
+#include
+typedef int32_t khronos_int32_t;
+typedef uint32_t khronos_uint32_t;
+typedef int64_t khronos_int64_t;
+typedef uint64_t khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+/*
+ * To support platform where unsigned long cannot be used interchangeably with
+ * inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t.
+ * Ideally, we could just use (u)intptr_t everywhere, but this could result in
+ * ABI breakage if khronos_uintptr_t is changed from unsigned long to
+ * unsigned long long or similar (this results in different C++ name mangling).
+ * To avoid changes for existing platforms, we restrict usage of intptr_t to
+ * platforms where the size of a pointer is larger than the size of long.
+ */
+#if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__)
+#if __SIZEOF_POINTER__ > __SIZEOF_LONG__
+#define KHRONOS_USE_INTPTR_T
+#endif
+#endif
+
+#elif defined(__VMS) || defined(__sgi)
+
+/*
+ * Using
+ */
+#include
+typedef int32_t khronos_int32_t;
+typedef uint32_t khronos_uint32_t;
+typedef int64_t khronos_int64_t;
+typedef uint64_t khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
+
+/*
+ * Win32
+ */
+typedef __int32 khronos_int32_t;
+typedef unsigned __int32 khronos_uint32_t;
+typedef __int64 khronos_int64_t;
+typedef unsigned __int64 khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#elif defined(__sun__) || defined(__digital__)
+
+/*
+ * Sun or Digital
+ */
+typedef int khronos_int32_t;
+typedef unsigned int khronos_uint32_t;
+#if defined(__arch64__) || defined(_LP64)
+typedef long int khronos_int64_t;
+typedef unsigned long int khronos_uint64_t;
+#else
+typedef long long int khronos_int64_t;
+typedef unsigned long long int khronos_uint64_t;
+#endif /* __arch64__ */
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#elif 0
+
+/*
+ * Hypothetical platform with no float or int64 support
+ */
+typedef int khronos_int32_t;
+typedef unsigned int khronos_uint32_t;
+#define KHRONOS_SUPPORT_INT64 0
+#define KHRONOS_SUPPORT_FLOAT 0
+
+#else
+
+/*
+ * Generic fallback
+ */
+#include
+typedef int32_t khronos_int32_t;
+typedef uint32_t khronos_uint32_t;
+typedef int64_t khronos_int64_t;
+typedef uint64_t khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#endif
+
+/*
+ * Types that are (so far) the same on all platforms
+ */
+typedef signed char khronos_int8_t;
+typedef unsigned char khronos_uint8_t;
+typedef signed short int khronos_int16_t;
+typedef unsigned short int khronos_uint16_t;
+
+/*
+ * Types that differ between LLP64 and LP64 architectures - in LLP64,
+ * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
+ * to be the only LLP64 architecture in current use.
+ */
+#ifdef KHRONOS_USE_INTPTR_T
+typedef intptr_t khronos_intptr_t;
+typedef uintptr_t khronos_uintptr_t;
+#elif defined(_WIN64)
+typedef signed long long int khronos_intptr_t;
+typedef unsigned long long int khronos_uintptr_t;
+#else
+typedef signed long int khronos_intptr_t;
+typedef unsigned long int khronos_uintptr_t;
+#endif
+
+#if defined(_WIN64)
+typedef signed long long int khronos_ssize_t;
+typedef unsigned long long int khronos_usize_t;
+#else
+typedef signed long int khronos_ssize_t;
+typedef unsigned long int khronos_usize_t;
+#endif
+
+#if KHRONOS_SUPPORT_FLOAT
+/*
+ * Float type
+ */
+typedef float khronos_float_t;
+#endif
+
+#if KHRONOS_SUPPORT_INT64
+/* Time types
+ *
+ * These types can be used to represent a time interval in nanoseconds or
+ * an absolute Unadjusted System Time. Unadjusted System Time is the number
+ * of nanoseconds since some arbitrary system event (e.g. since the last
+ * time the system booted). The Unadjusted System Time is an unsigned
+ * 64 bit value that wraps back to 0 every 584 years. Time intervals
+ * may be either signed or unsigned.
+ */
+typedef khronos_uint64_t khronos_utime_nanoseconds_t;
+typedef khronos_int64_t khronos_stime_nanoseconds_t;
+#endif
+
+/*
+ * Dummy value used to pad enum types to 32 bits.
+ */
+#ifndef KHRONOS_MAX_ENUM
+#define KHRONOS_MAX_ENUM 0x7FFFFFFF
+#endif
+
+/*
+ * Enumerated boolean type
+ *
+ * Values other than zero should be considered to be true. Therefore
+ * comparisons should not be made against KHRONOS_TRUE.
+ */
+typedef enum {
+ KHRONOS_FALSE = 0,
+ KHRONOS_TRUE = 1,
+ KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
+} khronos_boolean_enum_t;
+
+#endif /* __khrplatform_h_ */
diff --git a/StgSharp.C/mat2.c b/StgSharp.C/mat2.c
new file mode 100644
index 00000000..211b1eab
--- /dev/null
+++ b/StgSharp.C/mat2.c
@@ -0,0 +1,42 @@
+#include "StgSharpC.h"
+#include "ssc_intrinsic.h"
+
+INTERNAL void __cdecl transpose23(__2_columnset *source, __3_columnset *target)
+{
+ __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t1 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(3, 2, 3, 2));
+
+ target->column[0] = _mm_shuffle_ps(t0, zero_vec, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[1] = _mm_shuffle_ps(t0, zero_vec, _MM_SHUFFLE(3, 1, 3, 1));
+ target->column[2] = _mm_shuffle_ps(t1, zero_vec, _MM_SHUFFLE(2, 0, 2, 0));
+}
+
+INTERNAL void __cdecl transpose24(__2_columnset *source, __4_columnset *target)
+{
+ __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t1 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(3, 2, 3, 2));
+
+ target->column[0] = _mm_shuffle_ps(t0, zero_vec, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[1] = _mm_shuffle_ps(t0, zero_vec, _MM_SHUFFLE(3, 1, 3, 1));
+ target->column[2] = _mm_shuffle_ps(t1, zero_vec, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[3] = _mm_shuffle_ps(t1, zero_vec, _MM_SHUFFLE(3, 1, 3, 1));
+}
+
+INTERNAL void __cdecl addmatrix2_sse(__2_columnset *left, __2_columnset *right, __2_columnset *ans)
+{
+ __m128 temp0 = _mm_add_ps(ALIGN(left->column[0]), ALIGN(right->column[0]));
+ __m128 temp1 = _mm_add_ps(ALIGN(left->column[1]), ALIGN(right->column[1]));
+
+ _mm_storeu_ps(&ans->m[0][0], temp0);
+ _mm_storeu_ps(&ans->m[0][1], temp1);
+}
+
+INTERNAL void __cdecl addmatrix2_avx(__2_columnset *left, __2_columnset *right, __2_columnset *ans)
+{
+ __m256 temp = _mm256_add_ps(ALIGN256(left->column[0]), ALIGN256(right->column[0]));
+ _mm256_storeu_ps(&ans->m[0][0], temp);
+}
diff --git a/StgSharp.C/mat3.c b/StgSharp.C/mat3.c
new file mode 100644
index 00000000..b9dfeef6
--- /dev/null
+++ b/StgSharp.C/mat3.c
@@ -0,0 +1,104 @@
+#include "StgSharpC.h"
+#include "ssc_intrinsic.h"
+#include
+
+INTERNAL void _cdecl transpose32(__3_columnset *source, __2_columnset *target)
+{
+ __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t2 = _mm_shuffle_ps(ALIGN(source->column[2]), zero_vec, _MM_SHUFFLE(1, 0, 1, 0));
+
+ target->column[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
+}
+
+INTERNAL void _cdecl transpose33(__3_columnset *source, __3_columnset *target)
+{
+ __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t1 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(3, 2, 3, 2));
+ __m128 t2 = _mm_shuffle_ps(ALIGN(source->column[2]), zero_vec, _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t3 = _mm_shuffle_ps(ALIGN(source->column[2]), zero_vec, _MM_SHUFFLE(3, 2, 3, 2));
+
+ target->column[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
+ target->column[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0));
+}
+
+INTERNAL void _cdecl transpose34(__3_columnset *source, __4_columnset *target)
+{
+ __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t1 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(3, 2, 3, 2));
+ __m128 t2 = _mm_shuffle_ps(ALIGN(source->column[2]), zero_vec, _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t3 = _mm_shuffle_ps(ALIGN(source->column[2]), zero_vec, _MM_SHUFFLE(3, 2, 3, 2));
+
+ target->column[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
+ target->column[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[3] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(3, 1, 3, 1));
+}
+
+INTERNAL float _cdecl det_mat3_internal(__m128 const c0, __m128 const c1, __m128 const c2)
+{
+ //let adding row aligned
+ __m128 addc1 = _mm_shuffle_ps(c1, c1, _MM_SHUFFLE(3, 0, 2, 1));
+ __m128 addc2 = _mm_shuffle_ps(c2, c2, _MM_SHUFFLE(3, 1, 0, 2));
+
+ //let sub row aligned
+ __m128 subc1 = _mm_shuffle_ps(c1, c1, _MM_SHUFFLE(3, 1, 0, 2));
+ __m128 subc2 = _mm_shuffle_ps(c2, c2, _MM_SHUFFLE(3, 0, 2, 1));
+
+ //multple all add row
+ __m128 cache = _mm_mul_ps(c0, addc1);
+ cache = _mm_mul_ps(cache, addc2);
+
+ //multiple all sub row
+ __m128 sub = _mm_mul_ps(c0, subc1);
+ sub = _mm_mul_ps(sub, subc2);
+
+ //main-corner sub sub-corner
+ cache = _mm_sub_ps(cache, sub);
+
+ __m128 ret = _mm_hadd_ps(cache, cache); //element 1 add element 2
+ ret = _mm_add_ps(ret, cache); //(e1 add e2) add element 3
+
+ return ret.m128_f32[2];
+}
+
+INTERNAL float _cdecl det_mat3(__3_columnset *source, __3_columnset *transpose)
+{
+ return det_mat3_internal(source->column[0], source->column[1], source->column[2]);
+}
+
+#pragma region add
+
+INTERNAL void __cdecl addmatrix3_sse(__3_columnset *left, __3_columnset *right, __3_columnset *ans)
+{
+ __m128 temp0 = _mm_add_ps(ALIGN(left->column[0]), ALIGN(right->column[0]));
+ __m128 temp1 = _mm_add_ps(ALIGN(left->column[1]), ALIGN(right->column[1]));
+ __m128 temp2 = _mm_add_ps(ALIGN(left->column[2]), ALIGN(right->column[2]));
+
+ _mm_storeu_ps(&ans->m[0][0], temp0);
+ _mm_storeu_ps(&ans->m[0][1], temp1);
+ _mm_storeu_ps(&ans->m[0][2], temp2);
+}
+
+INTERNAL void __cdecl addmatrix3_avx(__3_columnset *left, __3_columnset *right, __3_columnset *ans)
+{
+ __m256 temp0 = _mm256_add_ps(ALIGN256(left->part), ALIGN256(right->part));
+ __m128 temp1 = _mm_add_ps(ALIGN(left->column[2]), ALIGN(right->column[2]));
+
+ _mm256_storeu_ps(&ans->m[0][0], temp0);
+ _mm_storeu_ps(&ans->m[0][2], temp1);
+}
+
+INTERNAL void __cdecl addmatrix3_512(__3_columnset *left, __3_columnset *right, __3_columnset *ans)
+{
+ __m512 temp = _mm512_add_ps(_mm512_loadu_ps(left), _mm512_loadu_ps(right));
+ _mm512_mask_store_ps(ans, 0x0fff, temp);
+}
+
+#pragma endregion
diff --git a/StgSharp.C/mat4.c b/StgSharp.C/mat4.c
new file mode 100644
index 00000000..5ddd28f6
--- /dev/null
+++ b/StgSharp.C/mat4.c
@@ -0,0 +1,84 @@
+
+#include "StgSharpC.h"
+#include "ssc_intrinsic.h"
+#include
+#include
+
+INTERNAL void __cdecl transpose42(__4_columnset const *source, __2_columnset *target)
+{
+ __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t2 = _mm_shuffle_ps(ALIGN(source->column[2]), ALIGN(source->column[3]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+
+ target->column[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
+}
+
+INTERNAL void __cdecl transpose43(__4_columnset const *source, __3_columnset *target)
+{
+ __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t1 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(3, 2, 3, 2));
+ __m128 t2 = _mm_shuffle_ps(ALIGN(source->column[2]), ALIGN(source->column[3]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t3 = _mm_shuffle_ps(ALIGN(source->column[2]), ALIGN(source->column[3]),
+ _MM_SHUFFLE(3, 2, 3, 2));
+
+ target->column[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
+ target->column[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0));
+}
+
+INTERNAL void __cdecl transpose44(__4_columnset const *source, __4_columnset *target)
+{
+ __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t1 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(3, 2, 3, 2));
+ __m128 t2 = _mm_shuffle_ps(ALIGN(source->column[2]), ALIGN(source->column[3]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t3 = _mm_shuffle_ps(ALIGN(source->column[2]), ALIGN(source->column[3]),
+ _MM_SHUFFLE(3, 2, 3, 2));
+
+ target->column[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
+ target->column[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[3] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(3, 1, 3, 1));
+}
+
+INTERNAL float __cdecl det_mat4(__4_columnset const *mat_ptr, __4_columnset const *transpose)
+{
+ __m128 mc0 = ALIGN(mat_ptr->column[0]);
+ __m128 mc1 = ALIGN(mat_ptr->column[1]);
+ __m128 mc2 = ALIGN(mat_ptr->column[2]);
+ __m128 mc3 = ALIGN(mat_ptr->column[3]);
+
+ __m128 cogeneration =
+ _mm_set_ps(det_mat3_internal(mc0, mc1, mc2), det_mat3_internal(mc0, mc1, mc3),
+ det_mat3_internal(mc0, mc2, mc3), det_mat3_internal(mc1, mc2, mc3));
+ __m128 retvec = _mm_mul_ps(ALIGN(transpose->column[3]), cogeneration);
+ retvec = _mm_hsub_ps(retvec, retvec);
+ retvec = _mm_hadd_ps(retvec, retvec);
+ return -retvec.m128_f32[0];
+}
+
+INTERNAL void SSCDECL addmatrix4_sse(__4_columnset *left, __4_columnset *right, __4_columnset *ans)
+{
+ ans->column[0] = _mm_add_ps(ALIGN(left->column[0]), ALIGN(right->column[0]));
+ ans->column[1] = _mm_add_ps(ALIGN(left->column[1]), ALIGN(right->column[1]));
+ ans->column[2] = _mm_add_ps(ALIGN(left->column[2]), ALIGN(right->column[2]));
+ ans->column[3] = _mm_add_ps(ALIGN(left->column[3]), ALIGN(right->column[3]));
+}
+
+INTERNAL void SSCDECL addmatrix4_avx(__4_columnset *left, __4_columnset *right, __4_columnset *ans)
+{
+ ans->half[0] = _mm256_add_ps(ALIGN256(left->half[0]), ALIGN256(right->half[0]));
+ ans->half[1] = _mm256_add_ps(ALIGN256(left->half[1]), ALIGN256(right->half[1]));
+}
+
+INTERNAL void SSCDECL addmatrix4_512(__4_columnset *left, __4_columnset *right, __4_columnset *ans)
+{
+ ans->stream = _mm512_add_ps(ALIGN512(left->stream), ALIGN512(right->stream));
+}
diff --git a/StgSharp.C/ssc_internal.h b/StgSharp.C/ssc_internal.h
new file mode 100644
index 00000000..164b7ced
--- /dev/null
+++ b/StgSharp.C/ssc_internal.h
@@ -0,0 +1,37 @@
+#ifdef _MSC_VER
+#pragma once
+#endif
+
+#include "xmmintrin.h"
+/*
+#include "GLAD/gl.h"
+#include "glfw3.h"
+#include "StgSharpC.h"
+*/
+
+#ifndef SSC_INTERNAL
+#define SSC_INTERNAL
+
+#ifdef _MSC_VER
+#define _CRT_SECURE_NO_WARNINGS 1
+#define WIN32_LEAN_AND_MEAN
+#define SSCDECL __cdecl
+#define SSCAPI __declspec(dllexport)
+#define FORCEINLINE __forceinline
+#include
+#elif defined(__clang__) || defined(__GNUC__)
+#define SSCDECL __attribute__((cdecl))
+#define SSCAPI __attribute__((dllexport))
+#define FORCEINLINE __attribute__((always_inline))
+#else
+#define SSCAPI
+#define SSCDECL
+#define FORCEINLINE
+#endif
+
+#define SSCAPI_DEFINE
+
+#define PRIVATE static
+#define INTERNAL extern
+
+#endif //
diff --git a/StgSharp.C/ssc_intrinsic.h b/StgSharp.C/ssc_intrinsic.h
new file mode 100644
index 00000000..a82dd608
--- /dev/null
+++ b/StgSharp.C/ssc_intrinsic.h
@@ -0,0 +1,151 @@
+#ifdef _MSC_VER
+#pragma once
+#endif
+
+#ifndef SSC_INTRIN
+#define SSC_INTRIN
+
+#include "StgSharpC.h"
+#include
+#include
+
+#ifdef _MSC_VER
+#include
+#include
+#endif
+
+#define LASTTWO(x) (x & 3)
+#define LAST(x) (x & 3)
+#define get_align_begin(x) ((x + 15) & (~15))
+
+#define SSE_INSERT(source, target, reset3, reset2, reset1, reset0) \
+ (LASTTWO(source - 1) << 6) | (LASTTWO(target - 1) << 4) | (LAST(reset3) << 3) | \
+ (LAST(reset2) << 2) | (LAST(reset1) << 1) | LAST(reset0)
+#define SSE_INSERT_SIMPLE(source, target) SSE_INSERT(source, target, 0, 0, 0, 0)
+#define M256_PERMUTE(s3, s2, s1, s0) (LASTTWO(s3) << 6) | (LASTTWO(s2) << 4) | (LASTTWO(s1) << 2) | (LASTTWO(s0)
+
+#define zero_vec _mm_setzero_ps()
+#define zero_vec_256 _mm256_setzero_ps()
+
+typedef union uint64_u {
+ uint64_t u64;
+ uint32_t u32[2];
+}uint64_u;
+
+typedef union column_2 {
+ __m256 stream;
+ __m128 column[2];
+ float m[4][2];
+} __2_columnset;
+
+typedef union column_3 {
+ __m256 part;
+ __m128 column[3];
+ float m[4][3];
+} __3_columnset;
+
+typedef union column_4 {
+ __m512 stream;
+ __m256 half[2];
+ __m128 column[4];
+ float m[4][4];
+} __4_columnset;
+
+typedef void(SSCDECL *VECTORNORMALIZEPROC)(__m128 *source, __m128 *target);
+typedef void(SSCDECL *DOTPROC)(void *transpose, __m128 *vector, __m128 *ans);
+typedef void(SSCDECL *MATRIXTRANSPOSEPROC)(void *source, void *target);
+typedef void(SSCDECL *MATRIXDETPROC)(void *mat, void *transpose);
+typedef void(SSCDECL *MATARITHMETIC)(void *left, void *right, void *ans);
+typedef void(SSCDECL *SCALERMATARITHMETIC)(void *left, void *right, void *ans);
+
+#pragma region matix function
+
+INTERNAL void normalize(__m128 *source, __m128 *target);
+
+INTERNAL void SSCDECL addmatrix2_sse(__2_columnset *left, __2_columnset *right, __2_columnset *ans);
+INTERNAL void SSCDECL addmatrix2_avx(__2_columnset *left, __2_columnset *right, __2_columnset *ans);
+INTERNAL void SSCDECL transpose23(__2_columnset const *source, __3_columnset *target);
+INTERNAL void SSCDECL transpose24(__2_columnset const *source, __4_columnset *target);
+
+INTERNAL void SSCDECL addmatrix3_sse(__3_columnset *left, __3_columnset *right, __3_columnset *ans);
+INTERNAL void SSCDECL addmatrix3_avx(__3_columnset *left, __3_columnset *right, __3_columnset *ans);
+INTERNAL void SSCDECL addmatrix3_512(__3_columnset *left, __3_columnset *right, __3_columnset *ans);
+INTERNAL void SSCDECL transpose32(__3_columnset const *source, __2_columnset *target);
+INTERNAL void SSCDECL transpose33(__3_columnset const *source, __3_columnset *target);
+INTERNAL void SSCDECL transpose34(__3_columnset const *source, __4_columnset *target);
+INTERNAL float SSCDECL det_mat3(__3_columnset *matrix, __3_columnset *tranpose);
+
+INTERNAL void SSCDECL addmatrix4_sse(__4_columnset *left, __4_columnset *right, __4_columnset *ans);
+INTERNAL void SSCDECL addmatrix4_avx(__4_columnset *left, __4_columnset *right, __4_columnset *ans);
+INTERNAL void SSCDECL addmatrix4_512(__4_columnset *left, __4_columnset *right, __4_columnset *ans);
+INTERNAL void SSCDECL transpose42(__4_columnset const *source, __2_columnset *target);
+INTERNAL void SSCDECL transpose43(__4_columnset const *source, __3_columnset *target);
+INTERNAL void SSCDECL transpose44(__4_columnset const *source, __4_columnset *target);
+INTERNAL float SSCDECL det_mat4(__4_columnset *matrix, __4_columnset *transpose);
+
+#pragma endregion
+
+#pragma region dot
+
+INTERNAL void FORCEINLINE SSCDECL dot_41_sse(__4_columnset *transpose, __m128 *vector, __m128 *ans);
+INTERNAL void FORCEINLINE SSCDECL dot_31_sse(__3_columnset *transpose, __m128 *vector, __m128 *ans);
+INTERNAL void FORCEINLINE SSCDECL dot_41_avx(__4_columnset *transpose, __m128 *vector, __m128 *ans);
+INTERNAL void FORCEINLINE SSCDECL dot_31_avx(__3_columnset *transpose, __m128 *vector, __m128 *ans);
+
+INTERNAL void SSCDECL dot_32_sse(__3_columnset *transpose, __m128 *vector, __m128 *ans);
+INTERNAL void SSCDECL dot_32_avx(__3_columnset *transpose, __m128 *vector, __m128 *ans);
+INTERNAL void SSCDECL dot_42_sse(__4_columnset *transpose, __m128 *vector, __m128 *ans);
+INTERNAL void SSCDECL dot_42_avx(__4_columnset *transpose, __m128 *vector, __m128 *ans);
+
+INTERNAL void SSCDECL dot_43_sse(__4_columnset *transpose, __m128 *vector, __m128 *ans);
+INTERNAL void SSCDECL dot_43_avx(__4_columnset *transpose, __m128 *vector, __m128 *ans);
+INTERNAL void SSCDECL dot_43_512(__4_columnset *transpose, __m128 *vector, __m128 *ans);
+
+#pragma endregion
+
+#pragma region string
+
+INTERNAL int SSCDECL city_hash_simplify_sse(byte const *str, int length);
+INTERNAL int SSCDECL index_pair_sse(short const *str, uint32_t target, int length);
+
+#pragma endregion
+
+typedef struct ssc_intrinsic {
+ MATARITHMETIC add_m2;
+ MATARITHMETIC add_m3;
+ MATARITHMETIC add_m4;
+ int (*city_hash_simplify)(byte *str, int length);
+ MATRIXDETPROC det_matrix33;
+ MATRIXDETPROC det_matrix44;
+ DOTPROC dot_31;
+ DOTPROC dot_32;
+ DOTPROC dot_41;
+ DOTPROC dot_42;
+ DOTPROC dot_43;
+ int (*index_pair)(short const *str, uint32_t target, int length);
+ VECTORNORMALIZEPROC normalize_3;
+ MATRIXTRANSPOSEPROC transpose_23;
+ MATRIXTRANSPOSEPROC transpose_24;
+ MATRIXTRANSPOSEPROC transpose_32;
+ MATRIXTRANSPOSEPROC transpose_33;
+ MATRIXTRANSPOSEPROC transpose_34;
+ MATRIXTRANSPOSEPROC transpose_42;
+ MATRIXTRANSPOSEPROC transpose_43;
+ MATRIXTRANSPOSEPROC transpose_44;
+} ssc_intrinsic;
+
+typedef enum most_advanced_instruction {
+#ifdef _MSC_VER
+ SSE = __IA_SUPPORT_SSE42,
+ AVX256 = __IA_SUPPORT_VECTOR256,
+ AVX512 = __IA_SUPPORT_VECTOR512,
+ NEON
+#else
+ SSE,
+ AVX256,
+ AVX512,
+ NEON
+#endif
+} most_advanced_instruction;
+
+#endif // !SSC_INTRIN
diff --git a/StgSharp.C/stb_image.c b/StgSharp.C/stb_image.c
new file mode 100644
index 00000000..3c2d25a2
--- /dev/null
+++ b/StgSharp.C/stb_image.c
@@ -0,0 +1,8475 @@
+#include "stb_image.h"
+
+#if defined(STBI_ONLY_JPEG) || defined(STBI_ONLY_PNG) || defined(STBI_ONLY_BMP) || \
+ defined(STBI_ONLY_TGA) || defined(STBI_ONLY_GIF) || defined(STBI_ONLY_PSD) || \
+ defined(STBI_ONLY_HDR) || defined(STBI_ONLY_PIC) || defined(STBI_ONLY_PNM) || \
+ defined(STBI_ONLY_ZLIB)
+#ifndef STBI_ONLY_JPEG
+#define STBI_NO_JPEG
+#endif
+#ifndef STBI_ONLY_PNG
+#define STBI_NO_PNG
+#endif
+#ifndef STBI_ONLY_BMP
+#define STBI_NO_BMP
+#endif
+#ifndef STBI_ONLY_PSD
+#define STBI_NO_PSD
+#endif
+#ifndef STBI_ONLY_TGA
+#define STBI_NO_TGA
+#endif
+#ifndef STBI_ONLY_GIF
+#define STBI_NO_GIF
+#endif
+#ifndef STBI_ONLY_HDR
+#define STBI_NO_HDR
+#endif
+#ifndef STBI_ONLY_PIC
+#define STBI_NO_PIC
+#endif
+#ifndef STBI_ONLY_PNM
+#define STBI_NO_PNM
+#endif
+#endif
+
+#if defined(STBI_NO_PNG) && !defined(STBI_SUPPORT_ZLIB) && !defined(STBI_NO_ZLIB)
+#define STBI_NO_ZLIB
+#endif
+
+#include
+#include // ptrdiff_t on osx
+#include
+#include
+#include
+
+#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR)
+#include // ldexp, pow
+#endif
+
+#ifndef STBI_NO_STDIO
+#include
+#endif
+
+#ifndef STBI_ASSERT
+#include
+#define STBI_ASSERT(x) assert(x)
+#endif
+
+#ifdef __cplusplus
+#define STBI_EXTERN extern "C"
+#else
+#define STBI_EXTERN extern
+#endif
+
+#ifndef _MSC_VER
+#ifdef __cplusplus
+#define stbi_inline inline
+#else
+#define stbi_inline
+#endif
+#else
+#define stbi_inline __forceinline
+#endif
+
+#ifndef STBI_NO_THREAD_LOCALS
+#if defined(__cplusplus) && __cplusplus >= 201103L
+#define STBI_THREAD_LOCAL thread_local
+#elif defined(__GNUC__) && __GNUC__ < 5
+#define STBI_THREAD_LOCAL __thread
+#elif defined(_MSC_VER)
+#define STBI_THREAD_LOCAL __declspec(thread)
+#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_THREADS__)
+#define STBI_THREAD_LOCAL _Thread_local
+#endif
+
+#ifndef STBI_THREAD_LOCAL
+#if defined(__GNUC__)
+#define STBI_THREAD_LOCAL __thread
+#endif
+#endif
+#endif
+
+#if defined(_MSC_VER) || defined(__SYMBIAN32__)
+typedef unsigned short stbi__uint16;
+typedef signed short stbi__int16;
+typedef unsigned int stbi__uint32;
+typedef signed int stbi__int32;
+#else
+#include
+typedef uint16_t stbi__uint16;
+typedef int16_t stbi__int16;
+typedef uint32_t stbi__uint32;
+typedef int32_t stbi__int32;
+#endif
+
+// should produce compiler error if size is wrong
+typedef unsigned char validate_uint32[sizeof(stbi__uint32) == 4 ? 1 : -1];
+
+#ifdef _MSC_VER
+#define STBI_NOTUSED(v) (void)(v)
+#else
+#define STBI_NOTUSED(v) (void)sizeof(v)
+#endif
+
+#ifdef _MSC_VER
+#define STBI_HAS_LROTL
+#endif
+
+#ifdef STBI_HAS_LROTL
+#define stbi_lrot(x, y) _lrotl(x, y)
+#else
+#define stbi_lrot(x, y) (((x) << (y)) | ((x) >> (-(y) & 31)))
+#endif
+
+#if defined(STBI_MALLOC) && defined(STBI_FREE) && \
+ (defined(STBI_REALLOC) || defined(STBI_REALLOC_SIZED))
+// ok
+#elif !defined(STBI_MALLOC) && !defined(STBI_FREE) && !defined(STBI_REALLOC) && \
+ !defined(STBI_REALLOC_SIZED)
+// ok
+#else
+#error "Must define all or none of STBI_MALLOC, STBI_FREE, and STBI_REALLOC (or STBI_REALLOC_SIZED)."
+#endif
+
+#ifndef STBI_MALLOC
+#define STBI_MALLOC(sz) malloc(sz)
+#define STBI_REALLOC(p, newsz) realloc(p, newsz)
+#define STBI_FREE(p) free(p)
+#endif
+
+#ifndef STBI_REALLOC_SIZED
+#define STBI_REALLOC_SIZED(p, oldsz, newsz) STBI_REALLOC(p, newsz)
+#endif
+
+// x86/x64 detection
+#if defined(__x86_64__) || defined(_M_X64)
+#define STBI__X64_TARGET
+#elif defined(__i386) || defined(_M_IX86)
+#define STBI__X86_TARGET
+#endif
+
+#if defined(__GNUC__) && defined(STBI__X86_TARGET) && !defined(__SSE2__) && !defined(STBI_NO_SIMD)
+// gcc doesn't support sse2 intrinsics unless you compile with -msse2,
+// which in turn means it gets to use SSE2 everywhere. This is unfortunate,
+// but previous attempts to provide the SSE2 functions with runtime
+// detection caused numerous issues. The way architecture extensions are
+// exposed in GCC/Clang is, sadly, not really suited for one-file libs.
+// New behavior: if compiled with -msse2, we use SSE2 without any
+// detection; if not, we don't use it at all.
+#define STBI_NO_SIMD
+#endif
+
+#if defined(__MINGW32__) && defined(STBI__X86_TARGET) && !defined(STBI_MINGW_ENABLE_SSE2) && \
+ !defined(STBI_NO_SIMD)
+// Note that __MINGW32__ doesn't actually mean 32-bit, so we have to avoid STBI__X64_TARGET
+//
+// 32-bit MinGW wants ESP to be 16-byte aligned, but this is not in the
+// Windows ABI and VC++ as well as Windows DLLs don't maintain that invariant.
+// As a result, enabling SSE2 on 32-bit MinGW is dangerous when not
+// simultaneously enabling "-mstackrealign".
+//
+// See https://github.com/nothings/stb/issues/81 for more information.
+//
+// So default to no SSE2 on 32-bit MinGW. If you've read this far and added
+// -mstackrealign to your build settings, feel free to #define STBI_MINGW_ENABLE_SSE2.
+#define STBI_NO_SIMD
+#endif
+
+#if !defined(STBI_NO_SIMD) && (defined(STBI__X86_TARGET) || defined(STBI__X64_TARGET))
+#define STBI_SSE2
+#include
+
+#ifdef _MSC_VER
+
+#if _MSC_VER >= 1400 // not VC6
+#include // __cpuid
+static int stbi__cpuid3(void)
+{
+ int info[4];
+ __cpuid(info, 1);
+ return info[3];
+}
+#else
+static int stbi__cpuid3(void)
+{
+ int res;
+ __asm {
+ mov eax, 1
+ cpuid
+ mov res, edx
+ }
+ return res;
+}
+#endif
+
+#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name
+
+#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2)
+static int stbi__sse2_available(void)
+{
+ int info3 = stbi__cpuid3();
+ return ((info3 >> 26) & 1) != 0;
+}
+#endif
+
+#else // assume GCC-style if not VC++
+#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16)))
+
+#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2)
+static int stbi__sse2_available(void)
+{
+ // If we're even attempting to compile this on GCC/Clang, that means
+ // -msse2 is on, which means the compiler is allowed to use SSE2
+ // instructions at will, and so are we.
+ return 1;
+}
+#endif
+
+#endif
+#endif
+
+// ARM NEON
+#if defined(STBI_NO_SIMD) && defined(STBI_NEON)
+#undef STBI_NEON
+#endif
+
+#ifdef STBI_NEON
+#include
+#ifdef _MSC_VER
+#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name
+#else
+#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16)))
+#endif
+#endif
+
+#ifndef STBI_SIMD_ALIGN
+#define STBI_SIMD_ALIGN(type, name) type name
+#endif
+
+#ifndef STBI_MAX_DIMENSIONS
+#define STBI_MAX_DIMENSIONS (1 << 24)
+#endif
+
+///////////////////////////////////////////////
+//
+// stbi__context struct and start_xxx functions
+
+// stbi__context structure is our basic context used by all images, so it
+// contains all the IO context, plus some basic image information
+typedef struct {
+ stbi__uint32 img_x, img_y;
+ int img_n, img_out_n;
+
+ stbi_io_callbacks io;
+ void *io_user_data;
+
+ int read_from_callbacks;
+ int buflen;
+ stbi_uc buffer_start[128];
+ int callback_already_read;
+
+ stbi_uc *img_buffer, *img_buffer_end;
+ stbi_uc *img_buffer_original, *img_buffer_original_end;
+} stbi__context;
+
+static void stbi__refill_buffer(stbi__context *s);
+
+// initialize a memory-decode context
+static void stbi__start_mem(stbi__context *s, stbi_uc const *buffer, int len)
+{
+ s->io.read = NULL;
+ s->read_from_callbacks = 0;
+ s->callback_already_read = 0;
+ s->img_buffer = s->img_buffer_original = (stbi_uc *)buffer;
+ s->img_buffer_end = s->img_buffer_original_end = (stbi_uc *)buffer + len;
+}
+
+// initialize a callback-based context
+static void stbi__start_callbacks(stbi__context *s, stbi_io_callbacks *c, void *user)
+{
+ s->io = *c;
+ s->io_user_data = user;
+ s->buflen = sizeof(s->buffer_start);
+ s->read_from_callbacks = 1;
+ s->callback_already_read = 0;
+ s->img_buffer = s->img_buffer_original = s->buffer_start;
+ stbi__refill_buffer(s);
+ s->img_buffer_original_end = s->img_buffer_end;
+}
+
+#ifndef STBI_NO_STDIO
+
+static int stbi__stdio_read(void *user, char *data, int size)
+{
+ return (int)fread(data, 1, size, (FILE *)user);
+}
+
+static void stbi__stdio_skip(void *user, int n)
+{
+ int ch;
+ fseek((FILE *)user, n, SEEK_CUR);
+ ch = fgetc((FILE *)user); /* have to read a byte to reset feof()'s flag */
+ if (ch != EOF) {
+ ungetc(ch, (FILE *)user); /* push byte back onto stream if valid. */
+ }
+}
+
+static int stbi__stdio_eof(void *user)
+{
+ return feof((FILE *)user) || ferror((FILE *)user);
+}
+
+static stbi_io_callbacks stbi__stdio_callbacks = {
+ stbi__stdio_read,
+ stbi__stdio_skip,
+ stbi__stdio_eof,
+};
+
+static void stbi__start_file(stbi__context *s, FILE *f)
+{
+ stbi__start_callbacks(s, &stbi__stdio_callbacks, (void *)f);
+}
+
+//static void stop_file(stbi__context *s) { }
+
+#endif // !STBI_NO_STDIO
+
+static void stbi__rewind(stbi__context *s)
+{
+ // conceptually rewind SHOULD rewind to the beginning of the stream,
+ // but we just rewind to the beginning of the initial buffer, because
+ // we only use it after doing 'test', which only ever looks at at most 92 bytes
+ s->img_buffer = s->img_buffer_original;
+ s->img_buffer_end = s->img_buffer_original_end;
+}
+
+enum { STBI_ORDER_RGB, STBI_ORDER_BGR };
+
+typedef struct {
+ int bits_per_channel;
+ int num_channels;
+ int channel_order;
+} stbi__result_info;
+
+#ifndef STBI_NO_JPEG
+static int stbi__jpeg_test(stbi__context *s);
+static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri);
+static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp);
+#endif
+
+#ifndef STBI_NO_PNG
+static int stbi__png_test(stbi__context *s);
+static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri);
+static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp);
+static int stbi__png_is16(stbi__context *s);
+#endif
+
+#ifndef STBI_NO_BMP
+static int stbi__bmp_test(stbi__context *s);
+static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri);
+static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp);
+#endif
+
+#ifndef STBI_NO_TGA
+static int stbi__tga_test(stbi__context *s);
+static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri);
+static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp);
+#endif
+
+#ifndef STBI_NO_PSD
+static int stbi__psd_test(stbi__context *s);
+static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri, int bpc);
+static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp);
+static int stbi__psd_is16(stbi__context *s);
+#endif
+
+#ifndef STBI_NO_HDR
+static int stbi__hdr_test(stbi__context *s);
+static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri);
+static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp);
+#endif
+
+#ifndef STBI_NO_PIC
+static int stbi__pic_test(stbi__context *s);
+static void *stbi__pic_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri);
+static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp);
+#endif
+
+#ifndef STBI_NO_GIF
+static int stbi__gif_test(stbi__context *s);
+static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri);
+static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp,
+ int req_comp);
+static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp);
+#endif
+
+#ifndef STBI_NO_PNM
+static int stbi__pnm_test(stbi__context *s);
+static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri);
+static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp);
+static int stbi__pnm_is16(stbi__context *s);
+#endif
+
+static
+#ifdef STBI_THREAD_LOCAL
+ STBI_THREAD_LOCAL
+#endif
+ const char *stbi__g_failure_reason;
+
+STBIDEF const char *stbi_failure_reason(void)
+{
+ return stbi__g_failure_reason;
+}
+
+#ifndef STBI_NO_FAILURE_STRINGS
+static int stbi__err(const char *str)
+{
+ stbi__g_failure_reason = str;
+ return 0;
+}
+#endif
+
+static void *stbi__malloc(size_t size)
+{
+ return STBI_MALLOC(size);
+}
+
+// stb_image uses ints pervasively, including for offset calculations.
+// therefore the largest decoded image size we can support with the
+// current code, even on 64-bit targets, is INT_MAX. this is not a
+// significant limitation for the intended use case.
+//
+// we do, however, need to make sure our size calculations don't
+// overflow. hence a few helper functions for size calculations that
+// multiply integers together, making sure that they're non-negative
+// and no overflow occurs.
+
+// return 1 if the sum is valid, 0 on overflow.
+// negative terms are considered invalid.
+static int stbi__addsizes_valid(int a, int b)
+{
+ if (b < 0)
+ return 0;
+ // now 0 <= b <= INT_MAX, hence also
+ // 0 <= INT_MAX - b <= INTMAX.
+ // And "a + b <= INT_MAX" (which might overflow) is the
+ // same as a <= INT_MAX - b (no overflow)
+ return a <= INT_MAX - b;
+}
+
+// returns 1 if the product is valid, 0 on overflow.
+// negative factors are considered invalid.
+static int stbi__mul2sizes_valid(int a, int b)
+{
+ if (a < 0 || b < 0)
+ return 0;
+ if (b == 0)
+ return 1; // mul-by-0 is always safe
+ // portable way to check for no overflows in a*b
+ return a <= INT_MAX / b;
+}
+
+#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || \
+ !defined(STBI_NO_HDR)
+// returns 1 if "a*b + add" has no negative terms/factors and doesn't overflow
+static int stbi__mad2sizes_valid(int a, int b, int add)
+{
+ return stbi__mul2sizes_valid(a, b) && stbi__addsizes_valid(a * b, add);
+}
+#endif
+
+// returns 1 if "a*b*c + add" has no negative terms/factors and doesn't overflow
+static int stbi__mad3sizes_valid(int a, int b, int c, int add)
+{
+ return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a * b, c) &&
+ stbi__addsizes_valid(a * b * c, add);
+}
+
+// returns 1 if "a*b*c*d + add" has no negative terms/factors and doesn't overflow
+#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) || !defined(STBI_NO_PNM)
+static int stbi__mad4sizes_valid(int a, int b, int c, int d, int add)
+{
+ return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a * b, c) &&
+ stbi__mul2sizes_valid(a * b * c, d) && stbi__addsizes_valid(a * b * c * d, add);
+}
+#endif
+
+#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || \
+ !defined(STBI_NO_HDR)
+// mallocs with size overflow checking
+static void *stbi__malloc_mad2(int a, int b, int add)
+{
+ if (!stbi__mad2sizes_valid(a, b, add))
+ return NULL;
+ return stbi__malloc(a * b + add);
+}
+#endif
+
+static void *stbi__malloc_mad3(int a, int b, int c, int add)
+{
+ if (!stbi__mad3sizes_valid(a, b, c, add))
+ return NULL;
+ return stbi__malloc(a * b * c + add);
+}
+
+#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) || !defined(STBI_NO_PNM)
+static void *stbi__malloc_mad4(int a, int b, int c, int d, int add)
+{
+ if (!stbi__mad4sizes_valid(a, b, c, d, add))
+ return NULL;
+ return stbi__malloc(a * b * c * d + add);
+}
+#endif
+
+// returns 1 if the sum of two signed ints is valid (between -2^31 and 2^31-1 inclusive), 0 on overflow.
+static int stbi__addints_valid(int a, int b)
+{
+ if ((a >= 0) != (b >= 0))
+ return 1; // a and b have different signs, so no overflow
+ if (a < 0 && b < 0)
+ return a >=
+ INT_MIN -
+ b; // same as a + b >= INT_MIN; INT_MIN - b cannot overflow since b < 0.
+ return a <= INT_MAX - b;
+}
+
+// returns 1 if the product of two signed shorts is valid, 0 on overflow.
+static int stbi__mul2shorts_valid(short a, short b)
+{
+ if (b == 0 || b == -1)
+ return 1; // multiplication by 0 is always 0; check for -1 so SHRT_MIN/b doesn't overflow
+ if ((a >= 0) == (b >= 0))
+ return a <= SHRT_MAX / b; // product is positive, so similar to mul2sizes_valid
+ if (b < 0)
+ return a <= SHRT_MIN / b; // same as a * b >= SHRT_MIN
+ return a >= SHRT_MIN / b;
+}
+
+// stbi__err - error
+// stbi__errpf - error returning pointer to float
+// stbi__errpuc - error returning pointer to unsigned char
+
+#ifdef STBI_NO_FAILURE_STRINGS
+#define stbi__err(x, y) 0
+#elif defined(STBI_FAILURE_USERMSG)
+#define stbi__err(x, y) stbi__err(y)
+#else
+#define stbi__err(x, y) stbi__err(x)
+#endif
+
+#define stbi__errpf(x, y) ((float *)(size_t)(stbi__err(x, y) ? NULL : NULL))
+#define stbi__errpuc(x, y) ((unsigned char *)(size_t)(stbi__err(x, y) ? NULL : NULL))
+
+STBIDEF void stbi_image_free(void *retval_from_stbi_load)
+{
+ STBI_FREE(retval_from_stbi_load);
+}
+
+#ifndef STBI_NO_LINEAR
+static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp);
+#endif
+
+#ifndef STBI_NO_HDR
+static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp);
+#endif
+
+static int stbi__vertically_flip_on_load_global = 0;
+
+STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip)
+{
+ stbi__vertically_flip_on_load_global = flag_true_if_should_flip;
+}
+
+#ifndef STBI_THREAD_LOCAL
+#define stbi__vertically_flip_on_load stbi__vertically_flip_on_load_global
+#else
+static STBI_THREAD_LOCAL int stbi__vertically_flip_on_load_local, stbi__vertically_flip_on_load_set;
+
+STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip)
+{
+ stbi__vertically_flip_on_load_local = flag_true_if_should_flip;
+ stbi__vertically_flip_on_load_set = 1;
+}
+
+#define stbi__vertically_flip_on_load \
+ (stbi__vertically_flip_on_load_set ? stbi__vertically_flip_on_load_local : \
+ stbi__vertically_flip_on_load_global)
+#endif // STBI_THREAD_LOCAL
+
+static void *stbi__load_main(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri, int bpc)
+{
+ memset(ri, 0,
+ sizeof(*ri)); // make sure it's initialized if we add new fields
+ ri->bits_per_channel = 8; // default is 8 so most paths don't have to be changed
+ ri->channel_order =
+ STBI_ORDER_RGB; // all current input & output are this, but this is here so we can add BGR order
+ ri->num_channels = 0;
+
+ // test the formats with a very explicit header first (at least a FOURCC
+ // or distinctive magic number first)
+#ifndef STBI_NO_PNG
+ if (stbi__png_test(s))
+ return stbi__png_load(s, x, y, comp, req_comp, ri);
+#endif
+#ifndef STBI_NO_BMP
+ if (stbi__bmp_test(s))
+ return stbi__bmp_load(s, x, y, comp, req_comp, ri);
+#endif
+#ifndef STBI_NO_GIF
+ if (stbi__gif_test(s))
+ return stbi__gif_load(s, x, y, comp, req_comp, ri);
+#endif
+#ifndef STBI_NO_PSD
+ if (stbi__psd_test(s))
+ return stbi__psd_load(s, x, y, comp, req_comp, ri, bpc);
+#else
+ STBI_NOTUSED(bpc);
+#endif
+#ifndef STBI_NO_PIC
+ if (stbi__pic_test(s))
+ return stbi__pic_load(s, x, y, comp, req_comp, ri);
+#endif
+
+ // then the formats that can end up attempting to load with just 1 or 2
+ // bytes matching expectations; these are prone to false positives, so
+ // try them later
+#ifndef STBI_NO_JPEG
+ if (stbi__jpeg_test(s))
+ return stbi__jpeg_load(s, x, y, comp, req_comp, ri);
+#endif
+#ifndef STBI_NO_PNM
+ if (stbi__pnm_test(s))
+ return stbi__pnm_load(s, x, y, comp, req_comp, ri);
+#endif
+
+#ifndef STBI_NO_HDR
+ if (stbi__hdr_test(s)) {
+ float *hdr = stbi__hdr_load(s, x, y, comp, req_comp, ri);
+ return stbi__hdr_to_ldr(hdr, *x, *y, req_comp ? req_comp : *comp);
+ }
+#endif
+
+#ifndef STBI_NO_TGA
+ // test tga last because it's a crappy test!
+ if (stbi__tga_test(s))
+ return stbi__tga_load(s, x, y, comp, req_comp, ri);
+#endif
+
+ return stbi__errpuc("unknown image type", "Image not of any known type, or corrupt");
+}
+
+static stbi_uc *stbi__convert_16_to_8(stbi__uint16 *orig, int w, int h, int channels)
+{
+ int i;
+ int img_len = w * h * channels;
+ stbi_uc *reduced;
+
+ reduced = (stbi_uc *)stbi__malloc(img_len);
+ if (reduced == NULL)
+ return stbi__errpuc("outofmem", "Out of memory");
+
+ for (i = 0; i < img_len; ++i)
+ reduced[i] =
+ (stbi_uc)((orig[i] >> 8) &
+ 0xFF); // top half of each byte is sufficient approx of 16->8 bit scaling
+
+ STBI_FREE(orig);
+ return reduced;
+}
+
+static stbi__uint16 *stbi__convert_8_to_16(stbi_uc *orig, int w, int h, int channels)
+{
+ int i;
+ int img_len = w * h * channels;
+ stbi__uint16 *enlarged;
+
+ enlarged = (stbi__uint16 *)stbi__malloc(img_len * 2);
+ if (enlarged == NULL)
+ return (stbi__uint16 *)stbi__errpuc("outofmem", "Out of memory");
+
+ for (i = 0; i < img_len; ++i)
+ enlarged[i] =
+ (stbi__uint16)((orig[i] << 8) +
+ orig[i]); // replicate to high and low byte, maps 0->0, 255->0xffff
+
+ STBI_FREE(orig);
+ return enlarged;
+}
+
+static void stbi__vertical_flip(void *image, int w, int h, int bytes_per_pixel)
+{
+ int row;
+ size_t bytes_per_row = (size_t)w * bytes_per_pixel;
+ stbi_uc temp[2048];
+ stbi_uc *bytes = (stbi_uc *)image;
+
+ for (row = 0; row < (h >> 1); row++) {
+ stbi_uc *row0 = bytes + row * bytes_per_row;
+ stbi_uc *row1 = bytes + (h - row - 1) * bytes_per_row;
+ // swap row0 with row1
+ size_t bytes_left = bytes_per_row;
+ while (bytes_left) {
+ size_t bytes_copy = (bytes_left < sizeof(temp)) ? bytes_left : sizeof(temp);
+ memcpy(temp, row0, bytes_copy);
+ memcpy(row0, row1, bytes_copy);
+ memcpy(row1, temp, bytes_copy);
+ row0 += bytes_copy;
+ row1 += bytes_copy;
+ bytes_left -= bytes_copy;
+ }
+ }
+}
+
+#ifndef STBI_NO_GIF
+static void stbi__vertical_flip_slices(void *image, int w, int h, int z, int bytes_per_pixel)
+{
+ int slice;
+ int slice_size = w * h * bytes_per_pixel;
+
+ stbi_uc *bytes = (stbi_uc *)image;
+ for (slice = 0; slice < z; ++slice) {
+ stbi__vertical_flip(bytes, w, h, bytes_per_pixel);
+ bytes += slice_size;
+ }
+}
+#endif
+
+static unsigned char *stbi__load_and_postprocess_8bit(stbi__context *s, int *x, int *y, int *comp,
+ int req_comp)
+{
+ stbi__result_info ri;
+ void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 8);
+
+ if (result == NULL)
+ return NULL;
+
+ // it is the responsibility of the loaders to make sure we get either 8 or 16 bit.
+ STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16);
+
+ if (ri.bits_per_channel != 8) {
+ result = stbi__convert_16_to_8((stbi__uint16 *)result, *x, *y,
+ req_comp == 0 ? *comp : req_comp);
+ ri.bits_per_channel = 8;
+ }
+
+ // @TODO: move stbi__convert_format to here
+
+ if (stbi__vertically_flip_on_load) {
+ int channels = req_comp ? req_comp : *comp;
+ stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi_uc));
+ }
+
+ return (unsigned char *)result;
+}
+
+static stbi__uint16 *stbi__load_and_postprocess_16bit(stbi__context *s, int *x, int *y, int *comp,
+ int req_comp)
+{
+ stbi__result_info ri;
+ void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 16);
+
+ if (result == NULL)
+ return NULL;
+
+ // it is the responsibility of the loaders to make sure we get either 8 or 16 bit.
+ STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16);
+
+ if (ri.bits_per_channel != 16) {
+ result = stbi__convert_8_to_16((stbi_uc *)result, *x, *y,
+ req_comp == 0 ? *comp : req_comp);
+ ri.bits_per_channel = 16;
+ }
+
+ // @TODO: move stbi__convert_format16 to here
+ // @TODO: special case RGB-to-Y (and RGBA-to-YA) for 8-bit-to-16-bit case to keep more precision
+
+ if (stbi__vertically_flip_on_load) {
+ int channels = req_comp ? req_comp : *comp;
+ stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi__uint16));
+ }
+
+ return (stbi__uint16 *)result;
+}
+
+#if !defined(STBI_NO_HDR) && !defined(STBI_NO_LINEAR)
+static void stbi__float_postprocess(float *result, int *x, int *y, int *comp, int req_comp)
+{
+ if (stbi__vertically_flip_on_load && result != NULL) {
+ int channels = req_comp ? req_comp : *comp;
+ stbi__vertical_flip(result, *x, *y, channels * sizeof(float));
+ }
+}
+#endif
+
+#ifndef STBI_NO_STDIO
+
+#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8)
+STBI_EXTERN __declspec(dllimport) int __stdcall MultiByteToWideChar(unsigned int cp,
+ unsigned long flags,
+ const char *str, int cbmb,
+ wchar_t *widestr, int cchwide);
+STBI_EXTERN __declspec(dllimport) int __stdcall WideCharToMultiByte(
+ unsigned int cp, unsigned long flags, const wchar_t *widestr, int cchwide, char *str,
+ int cbmb, const char *defchar, int *used_default);
+#endif
+
+#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8)
+STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t *input)
+{
+ return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, (int)bufferlen, NULL,
+ NULL);
+}
+#endif
+
+static FILE *stbi__fopen(char const *filename, char const *mode)
+{
+ FILE *f;
+#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8)
+ wchar_t wMode[64];
+ wchar_t wFilename[1024];
+ if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, filename, -1, wFilename,
+ sizeof(wFilename) / sizeof(*wFilename)))
+ return 0;
+
+ if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, mode, -1, wMode,
+ sizeof(wMode) / sizeof(*wMode)))
+ return 0;
+
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ if (0 != _wfopen_s(&f, wFilename, wMode))
+ f = 0;
+#else
+ f = _wfopen(wFilename, wMode);
+#endif
+
+#elif defined(_MSC_VER) && _MSC_VER >= 1400
+ if (0 != fopen_s(&f, filename, mode))
+ f = 0;
+#else
+ f = fopen(filename, mode);
+#endif
+ return f;
+}
+
+STBIDEF stbi_uc *stbi_load(char const *filename, int *x, int *y, int *comp, int req_comp)
+{
+ FILE *f = stbi__fopen(filename, "rb");
+ unsigned char *result;
+ if (!f)
+ return stbi__errpuc("can't fopen", "Unable to open file");
+ result = stbi_load_from_file(f, x, y, comp, req_comp);
+ fclose(f);
+ return result;
+}
+
+STBIDEF void stbi_load_to_target(char const *filename, int *x, int *y, stbi_uc *target, int *comp,
+ int req_comp)
+{
+ FILE *f = stbi__fopen(filename, "rb");
+ unsigned char *result;
+ if (!f) {
+ *target = "can't fopen, Unable to open file";
+ return;
+ }
+ result = stbi_load_from_file(f, x, y, comp, req_comp);
+ fclose(f);
+}
+
+STBIDEF stbi_uc *stbi_load_from_file(FILE *f, int *x, int *y, int *comp, int req_comp)
+{
+ unsigned char *result;
+ stbi__context s;
+ stbi__start_file(&s, f);
+ result = stbi__load_and_postprocess_8bit(&s, x, y, comp, req_comp);
+ if (result) {
+ // need to 'unget' all the characters in the IO buffer
+ fseek(f, -(int)(s.img_buffer_end - s.img_buffer), SEEK_CUR);
+ }
+ return result;
+}
+
+STBIDEF stbi__uint16 *stbi_load_from_file_16(FILE *f, int *x, int *y, int *comp, int req_comp)
+{
+ stbi__uint16 *result;
+ stbi__context s;
+ stbi__start_file(&s, f);
+ result = stbi__load_and_postprocess_16bit(&s, x, y, comp, req_comp);
+ if (result) {
+ // need to 'unget' all the characters in the IO buffer
+ fseek(f, -(int)(s.img_buffer_end - s.img_buffer), SEEK_CUR);
+ }
+ return result;
+}
+
+STBIDEF stbi_us *stbi_load_16(char const *filename, int *x, int *y, int *comp, int req_comp)
+{
+ FILE *f = stbi__fopen(filename, "rb");
+ stbi__uint16 *result;
+ if (!f)
+ return (stbi_us *)stbi__errpuc("can't fopen", "Unable to open file");
+ result = stbi_load_from_file_16(f, x, y, comp, req_comp);
+ fclose(f);
+ return result;
+}
+
+#endif //!STBI_NO_STDIO
+
+STBIDEF stbi_us *stbi_load_16_from_memory(stbi_uc const *buffer, int len, int *x, int *y,
+ int *channels_in_file, int desired_channels)
+{
+ stbi__context s;
+ stbi__start_mem(&s, buffer, len);
+ return stbi__load_and_postprocess_16bit(&s, x, y, channels_in_file, desired_channels);
+}
+
+STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x,
+ int *y, int *channels_in_file, int desired_channels)
+{
+ stbi__context s;
+ stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user);
+ return stbi__load_and_postprocess_16bit(&s, x, y, channels_in_file, desired_channels);
+}
+
+STBIDEF stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp,
+ int req_comp)
+{
+ stbi__context s;
+ stbi__start_mem(&s, buffer, len);
+ return stbi__load_and_postprocess_8bit(&s, x, y, comp, req_comp);
+}
+
+STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y,
+ int *comp, int req_comp)
+{
+ stbi__context s;
+ stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user);
+ return stbi__load_and_postprocess_8bit(&s, x, y, comp, req_comp);
+}
+
+#ifndef STBI_NO_GIF
+STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x,
+ int *y, int *z, int *comp, int req_comp)
+{
+ unsigned char *result;
+ stbi__context s;
+ stbi__start_mem(&s, buffer, len);
+
+ result = (unsigned char *)stbi__load_gif_main(&s, delays, x, y, z, comp, req_comp);
+ if (stbi__vertically_flip_on_load) {
+ stbi__vertical_flip_slices(result, *x, *y, *z, *comp);
+ }
+
+ return result;
+}
+#endif
+
+#ifndef STBI_NO_LINEAR
+static float *stbi__loadf_main(stbi__context *s, int *x, int *y, int *comp, int req_comp)
+{
+ unsigned char *data;
+#ifndef STBI_NO_HDR
+ if (stbi__hdr_test(s)) {
+ stbi__result_info ri;
+ float *hdr_data = stbi__hdr_load(s, x, y, comp, req_comp, &ri);
+ if (hdr_data)
+ stbi__float_postprocess(hdr_data, x, y, comp, req_comp);
+ return hdr_data;
+ }
+#endif
+ data = stbi__load_and_postprocess_8bit(s, x, y, comp, req_comp);
+ if (data)
+ return stbi__ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp);
+ return stbi__errpf("unknown image type", "Image not of any known type, or corrupt");
+}
+
+STBIDEF float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp,
+ int req_comp)
+{
+ stbi__context s;
+ stbi__start_mem(&s, buffer, len);
+ return stbi__loadf_main(&s, x, y, comp, req_comp);
+}
+
+STBIDEF float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y,
+ int *comp, int req_comp)
+{
+ stbi__context s;
+ stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user);
+ return stbi__loadf_main(&s, x, y, comp, req_comp);
+}
+
+#ifndef STBI_NO_STDIO
+STBIDEF float *stbi_loadf(char const *filename, int *x, int *y, int *comp, int req_comp)
+{
+ float *result;
+ FILE *f = stbi__fopen(filename, "rb");
+ if (!f)
+ return stbi__errpf("can't fopen", "Unable to open file");
+ result = stbi_loadf_from_file(f, x, y, comp, req_comp);
+ fclose(f);
+ return result;
+}
+
+STBIDEF float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *comp, int req_comp)
+{
+ stbi__context s;
+ stbi__start_file(&s, f);
+ return stbi__loadf_main(&s, x, y, comp, req_comp);
+}
+#endif // !STBI_NO_STDIO
+
+#endif // !STBI_NO_LINEAR
+
+// these is-hdr-or-not is defined independent of whether STBI_NO_LINEAR is
+// defined, for API simplicity; if STBI_NO_LINEAR is defined, it always
+// reports false!
+
+STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len)
+{
+#ifndef STBI_NO_HDR
+ stbi__context s;
+ stbi__start_mem(&s, buffer, len);
+ return stbi__hdr_test(&s);
+#else
+ STBI_NOTUSED(buffer);
+ STBI_NOTUSED(len);
+ return 0;
+#endif
+}
+
+#ifndef STBI_NO_STDIO
+STBIDEF int stbi_is_hdr(char const *filename)
+{
+ FILE *f = stbi__fopen(filename, "rb");
+ int result = 0;
+ if (f) {
+ result = stbi_is_hdr_from_file(f);
+ fclose(f);
+ }
+ return result;
+}
+
+STBIDEF int stbi_is_hdr_from_file(FILE *f)
+{
+#ifndef STBI_NO_HDR
+ long pos = ftell(f);
+ int res;
+ stbi__context s;
+ stbi__start_file(&s, f);
+ res = stbi__hdr_test(&s);
+ fseek(f, pos, SEEK_SET);
+ return res;
+#else
+ STBI_NOTUSED(f);
+ return 0;
+#endif
+}
+#endif // !STBI_NO_STDIO
+
+STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user)
+{
+#ifndef STBI_NO_HDR
+ stbi__context s;
+ stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user);
+ return stbi__hdr_test(&s);
+#else
+ STBI_NOTUSED(clbk);
+ STBI_NOTUSED(user);
+ return 0;
+#endif
+}
+
+#ifndef STBI_NO_LINEAR
+static float stbi__l2h_gamma = 2.2f, stbi__l2h_scale = 1.0f;
+
+STBIDEF void stbi_ldr_to_hdr_gamma(float gamma)
+{
+ stbi__l2h_gamma = gamma;
+}
+STBIDEF void stbi_ldr_to_hdr_scale(float scale)
+{
+ stbi__l2h_scale = scale;
+}
+#endif
+
+static float stbi__h2l_gamma_i = 1.0f / 2.2f, stbi__h2l_scale_i = 1.0f;
+
+STBIDEF void stbi_hdr_to_ldr_gamma(float gamma)
+{
+ stbi__h2l_gamma_i = 1 / gamma;
+}
+STBIDEF void stbi_hdr_to_ldr_scale(float scale)
+{
+ stbi__h2l_scale_i = 1 / scale;
+}
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// Common code used by all image loaders
+//
+
+enum { STBI__SCAN_load = 0, STBI__SCAN_type, STBI__SCAN_header };
+
+static void stbi__refill_buffer(stbi__context *s)
+{
+ int n = (s->io.read)(s->io_user_data, (char *)s->buffer_start, s->buflen);
+ s->callback_already_read += (int)(s->img_buffer - s->img_buffer_original);
+ if (n == 0) {
+ // at end of file, treat same as if from memory, but need to handle case
+ // where s->img_buffer isn't pointing to safe memory, e.g. 0-byte file
+ s->read_from_callbacks = 0;
+ s->img_buffer = s->buffer_start;
+ s->img_buffer_end = s->buffer_start + 1;
+ *s->img_buffer = 0;
+ } else {
+ s->img_buffer = s->buffer_start;
+ s->img_buffer_end = s->buffer_start + n;
+ }
+}
+
+stbi_inline static stbi_uc stbi__get8(stbi__context *s)
+{
+ if (s->img_buffer < s->img_buffer_end)
+ return *s->img_buffer++;
+ if (s->read_from_callbacks) {
+ stbi__refill_buffer(s);
+ return *s->img_buffer++;
+ }
+ return 0;
+}
+
+#if defined(STBI_NO_JPEG) && defined(STBI_NO_HDR) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM)
+// nothing
+#else
+stbi_inline static int stbi__at_eof(stbi__context *s)
+{
+ if (s->io.read) {
+ if (!(s->io.eof)(s->io_user_data))
+ return 0;
+ // if feof() is true, check if buffer = end
+ // special case: we've only got the special 0 character at the end
+ if (s->read_from_callbacks == 0)
+ return 1;
+ }
+
+ return s->img_buffer >= s->img_buffer_end;
+}
+#endif
+
+#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && \
+ defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && \
+ defined(STBI_NO_PIC)
+// nothing
+#else
+static void stbi__skip(stbi__context *s, int n)
+{
+ if (n == 0)
+ return; // already there!
+ if (n < 0) {
+ s->img_buffer = s->img_buffer_end;
+ return;
+ }
+ if (s->io.read) {
+ int blen = (int)(s->img_buffer_end - s->img_buffer);
+ if (blen < n) {
+ s->img_buffer = s->img_buffer_end;
+ (s->io.skip)(s->io_user_data, n - blen);
+ return;
+ }
+ }
+ s->img_buffer += n;
+}
+#endif
+
+#if defined(STBI_NO_PNG) && defined(STBI_NO_TGA) && defined(STBI_NO_HDR) && defined(STBI_NO_PNM)
+// nothing
+#else
+static int stbi__getn(stbi__context *s, stbi_uc *buffer, int n)
+{
+ if (s->io.read) {
+ int blen = (int)(s->img_buffer_end - s->img_buffer);
+ if (blen < n) {
+ int res, count;
+
+ memcpy(buffer, s->img_buffer, blen);
+
+ count = (s->io.read)(s->io_user_data, (char *)buffer + blen, n - blen);
+ res = (count == (n - blen));
+ s->img_buffer = s->img_buffer_end;
+ return res;
+ }
+ }
+
+ if (s->img_buffer + n <= s->img_buffer_end) {
+ memcpy(buffer, s->img_buffer, n);
+ s->img_buffer += n;
+ return 1;
+ } else
+ return 0;
+}
+#endif
+
+#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC)
+// nothing
+#else
+static int stbi__get16be(stbi__context *s)
+{
+ int z = stbi__get8(s);
+ return (z << 8) + stbi__get8(s);
+}
+#endif
+
+#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC)
+// nothing
+#else
+static stbi__uint32 stbi__get32be(stbi__context *s)
+{
+ stbi__uint32 z = stbi__get16be(s);
+ return (z << 16) + stbi__get16be(s);
+}
+#endif
+
+#if defined(STBI_NO_BMP) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF)
+// nothing
+#else
+static int stbi__get16le(stbi__context *s)
+{
+ int z = stbi__get8(s);
+ return z + (stbi__get8(s) << 8);
+}
+#endif
+
+#ifndef STBI_NO_BMP
+static stbi__uint32 stbi__get32le(stbi__context *s)
+{
+ stbi__uint32 z = stbi__get16le(s);
+ z += (stbi__uint32)stbi__get16le(s) << 16;
+ return z;
+}
+#endif
+
+#define STBI__BYTECAST(x) ((stbi_uc)((x) & 255)) // truncate int to byte without warnings
+
+#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && \
+ defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && \
+ defined(STBI_NO_PIC) && defined(STBI_NO_PNM)
+// nothing
+#else
+//////////////////////////////////////////////////////////////////////////////
+//
+// generic converter from built-in img_n to req_comp
+// individual types do this automatically as much as possible (e.g. jpeg
+// does all cases internally since it needs to colorspace convert anyway,
+// and it never has alpha, so very few cases ). png can automatically
+// interleave an alpha=255 channel, but falls back to this for other cases
+//
+// assume data buffer is malloced, so malloc a new one and free that one
+// only failure mode is malloc failing
+
+static stbi_uc stbi__compute_y(int r, int g, int b)
+{
+ return (stbi_uc)(((r * 77) + (g * 150) + (29 * b)) >> 8);
+}
+#endif
+
+#if defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && \
+ defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && \
+ defined(STBI_NO_PNM)
+// nothing
+#else
+static unsigned char *stbi__convert_format(unsigned char *data, int img_n, int req_comp,
+ unsigned int x, unsigned int y)
+{
+ int i, j;
+ unsigned char *good;
+
+ if (req_comp == img_n)
+ return data;
+ STBI_ASSERT(req_comp >= 1 && req_comp <= 4);
+
+ good = (unsigned char *)stbi__malloc_mad3(req_comp, x, y, 0);
+ if (good == NULL) {
+ STBI_FREE(data);
+ return stbi__errpuc("outofmem", "Out of memory");
+ }
+
+ for (j = 0; j < (int)y; ++j) {
+ unsigned char *src = data + j * x * img_n;
+ unsigned char *dest = good + j * x * req_comp;
+
+#define STBI__COMBO(a, b) ((a) * 8 + (b))
+#define STBI__CASE(a, b) \
+ case STBI__COMBO(a, b): \
+ for (i = x - 1; i >= 0; --i, src += a, dest += b)
+ // convert source image with img_n components to one with req_comp components;
+ // avoid switch per pixel, so use switch per scanline and massive macros
+ switch (STBI__COMBO(img_n, req_comp)) {
+ STBI__CASE(1, 2)
+ {
+ dest[0] = src[0];
+ dest[1] = 255;
+ }
+ break;
+ STBI__CASE(1, 3)
+ {
+ dest[0] = dest[1] = dest[2] = src[0];
+ }
+ break;
+ STBI__CASE(1, 4)
+ {
+ dest[0] = dest[1] = dest[2] = src[0];
+ dest[3] = 255;
+ }
+ break;
+ STBI__CASE(2, 1)
+ {
+ dest[0] = src[0];
+ }
+ break;
+ STBI__CASE(2, 3)
+ {
+ dest[0] = dest[1] = dest[2] = src[0];
+ }
+ break;
+ STBI__CASE(2, 4)
+ {
+ dest[0] = dest[1] = dest[2] = src[0];
+ dest[3] = src[1];
+ }
+ break;
+ STBI__CASE(3, 4)
+ {
+ dest[0] = src[0];
+ dest[1] = src[1];
+ dest[2] = src[2];
+ dest[3] = 255;
+ }
+ break;
+ STBI__CASE(3, 1)
+ {
+ dest[0] = stbi__compute_y(src[0], src[1], src[2]);
+ }
+ break;
+ STBI__CASE(3, 2)
+ {
+ dest[0] = stbi__compute_y(src[0], src[1], src[2]);
+ dest[1] = 255;
+ }
+ break;
+ STBI__CASE(4, 1)
+ {
+ dest[0] = stbi__compute_y(src[0], src[1], src[2]);
+ }
+ break;
+ STBI__CASE(4, 2)
+ {
+ dest[0] = stbi__compute_y(src[0], src[1], src[2]);
+ dest[1] = src[3];
+ }
+ break;
+ STBI__CASE(4, 3)
+ {
+ dest[0] = src[0];
+ dest[1] = src[1];
+ dest[2] = src[2];
+ }
+ break;
+ default:
+ STBI_ASSERT(0);
+ STBI_FREE(data);
+ STBI_FREE(good);
+ return stbi__errpuc("unsupported", "Unsupported format conversion");
+ }
+#undef STBI__CASE
+ }
+
+ STBI_FREE(data);
+ return good;
+}
+#endif
+
+#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD)
+// nothing
+#else
+static stbi__uint16 stbi__compute_y_16(int r, int g, int b)
+{
+ return (stbi__uint16)(((r * 77) + (g * 150) + (29 * b)) >> 8);
+}
+#endif
+
+#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD)
+// nothing
+#else
+static stbi__uint16 *stbi__convert_format16(stbi__uint16 *data, int img_n, int req_comp,
+ unsigned int x, unsigned int y)
+{
+ int i, j;
+ stbi__uint16 *good;
+
+ if (req_comp == img_n)
+ return data;
+ STBI_ASSERT(req_comp >= 1 && req_comp <= 4);
+
+ good = (stbi__uint16 *)stbi__malloc(req_comp * x * y * 2);
+ if (good == NULL) {
+ STBI_FREE(data);
+ return (stbi__uint16 *)stbi__errpuc("outofmem", "Out of memory");
+ }
+
+ for (j = 0; j < (int)y; ++j) {
+ stbi__uint16 *src = data + j * x * img_n;
+ stbi__uint16 *dest = good + j * x * req_comp;
+
+#define STBI__COMBO(a, b) ((a) * 8 + (b))
+#define STBI__CASE(a, b) \
+ case STBI__COMBO(a, b): \
+ for (i = x - 1; i >= 0; --i, src += a, dest += b)
+ // convert source image with img_n components to one with req_comp components;
+ // avoid switch per pixel, so use switch per scanline and massive macros
+ switch (STBI__COMBO(img_n, req_comp)) {
+ STBI__CASE(1, 2)
+ {
+ dest[0] = src[0];
+ dest[1] = 0xffff;
+ }
+ break;
+ STBI__CASE(1, 3)
+ {
+ dest[0] = dest[1] = dest[2] = src[0];
+ }
+ break;
+ STBI__CASE(1, 4)
+ {
+ dest[0] = dest[1] = dest[2] = src[0];
+ dest[3] = 0xffff;
+ }
+ break;
+ STBI__CASE(2, 1)
+ {
+ dest[0] = src[0];
+ }
+ break;
+ STBI__CASE(2, 3)
+ {
+ dest[0] = dest[1] = dest[2] = src[0];
+ }
+ break;
+ STBI__CASE(2, 4)
+ {
+ dest[0] = dest[1] = dest[2] = src[0];
+ dest[3] = src[1];
+ }
+ break;
+ STBI__CASE(3, 4)
+ {
+ dest[0] = src[0];
+ dest[1] = src[1];
+ dest[2] = src[2];
+ dest[3] = 0xffff;
+ }
+ break;
+ STBI__CASE(3, 1)
+ {
+ dest[0] = stbi__compute_y_16(src[0], src[1], src[2]);
+ }
+ break;
+ STBI__CASE(3, 2)
+ {
+ dest[0] = stbi__compute_y_16(src[0], src[1], src[2]);
+ dest[1] = 0xffff;
+ }
+ break;
+ STBI__CASE(4, 1)
+ {
+ dest[0] = stbi__compute_y_16(src[0], src[1], src[2]);
+ }
+ break;
+ STBI__CASE(4, 2)
+ {
+ dest[0] = stbi__compute_y_16(src[0], src[1], src[2]);
+ dest[1] = src[3];
+ }
+ break;
+ STBI__CASE(4, 3)
+ {
+ dest[0] = src[0];
+ dest[1] = src[1];
+ dest[2] = src[2];
+ }
+ break;
+ default:
+ STBI_ASSERT(0);
+ STBI_FREE(data);
+ STBI_FREE(good);
+ return (stbi__uint16 *)stbi__errpuc("unsupported",
+ "Unsupported format conversion");
+ }
+#undef STBI__CASE
+ }
+
+ STBI_FREE(data);
+ return good;
+}
+#endif
+
+#ifndef STBI_NO_LINEAR
+static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp)
+{
+ int i, k, n;
+ float *output;
+ if (!data)
+ return NULL;
+ output = (float *)stbi__malloc_mad4(x, y, comp, sizeof(float), 0);
+ if (output == NULL) {
+ STBI_FREE(data);
+ return stbi__errpf("outofmem", "Out of memory");
+ }
+ // compute number of non-alpha components
+ if (comp & 1)
+ n = comp;
+ else
+ n = comp - 1;
+ for (i = 0; i < x * y; ++i) {
+ for (k = 0; k < n; ++k) {
+ output[i * comp + k] =
+ (float)(pow(data[i * comp + k] / 255.0f, stbi__l2h_gamma) *
+ stbi__l2h_scale);
+ }
+ }
+ if (n < comp) {
+ for (i = 0; i < x * y; ++i) {
+ output[i * comp + n] = data[i * comp + n] / 255.0f;
+ }
+ }
+ STBI_FREE(data);
+ return output;
+}
+#endif
+
+#ifndef STBI_NO_HDR
+#define stbi__float2int(x) ((int)(x))
+static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp)
+{
+ int i, k, n;
+ stbi_uc *output;
+ if (!data)
+ return NULL;
+ output = (stbi_uc *)stbi__malloc_mad3(x, y, comp, 0);
+ if (output == NULL) {
+ STBI_FREE(data);
+ return stbi__errpuc("outofmem", "Out of memory");
+ }
+ // compute number of non-alpha components
+ if (comp & 1)
+ n = comp;
+ else
+ n = comp - 1;
+ for (i = 0; i < x * y; ++i) {
+ for (k = 0; k < n; ++k) {
+ float z = (float)pow(data[i * comp + k] * stbi__h2l_scale_i,
+ stbi__h2l_gamma_i) *
+ 255 +
+ 0.5f;
+ if (z < 0)
+ z = 0;
+ if (z > 255)
+ z = 255;
+ output[i * comp + k] = (stbi_uc)stbi__float2int(z);
+ }
+ if (k < comp) {
+ float z = data[i * comp + k] * 255 + 0.5f;
+ if (z < 0)
+ z = 0;
+ if (z > 255)
+ z = 255;
+ output[i * comp + k] = (stbi_uc)stbi__float2int(z);
+ }
+ }
+ STBI_FREE(data);
+ return output;
+}
+#endif
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// "baseline" JPEG/JFIF decoder
+//
+// simple implementation
+// - doesn't support delayed output of y-dimension
+// - simple interface (only one output format: 8-bit interleaved RGB)
+// - doesn't try to recover corrupt jpegs
+// - doesn't allow partial loading, loading multiple at once
+// - still fast on x86 (copying globals into locals doesn't help x86)
+// - allocates lots of intermediate memory (full size of all components)
+// - non-interleaved case requires this anyway
+// - allows good upsampling (see next)
+// high-quality
+// - upsampled channels are bilinearly interpolated, even across blocks
+// - quality integer IDCT derived from IJG's 'slow'
+// performance
+// - fast huffman; reasonable integer IDCT
+// - some SIMD kernels for common paths on targets with SSE2/NEON
+// - uses a lot of intermediate memory, could cache poorly
+
+#ifndef STBI_NO_JPEG
+
+// huffman decoding acceleration
+#define FAST_BITS 9 // larger handles more cases; smaller stomps less cache
+
+typedef struct {
+ stbi_uc fast[1 << FAST_BITS];
+ // weirdly, repacking this into AoS is a 10% speed loss, instead of a win
+ stbi__uint16 code[256];
+ stbi_uc values[256];
+ stbi_uc size[257];
+ unsigned int maxcode[18];
+ int delta[17]; // old 'firstsymbol' - old 'firstcode'
+} stbi__huffman;
+
+typedef struct {
+ stbi__context *s;
+ stbi__huffman huff_dc[4];
+ stbi__huffman huff_ac[4];
+ stbi__uint16 dequant[4][64];
+ stbi__int16 fast_ac[4][1 << FAST_BITS];
+
+ // sizes for components, interleaved MCUs
+ int img_h_max, img_v_max;
+ int img_mcu_x, img_mcu_y;
+ int img_mcu_w, img_mcu_h;
+
+ // definition of jpeg image component
+ struct {
+ int id;
+ int h, v;
+ int tq;
+ int hd, ha;
+ int dc_pred;
+
+ int x, y, w2, h2;
+ stbi_uc *data;
+ void *raw_data, *raw_coeff;
+ stbi_uc *linebuf;
+ short *coeff; // progressive only
+ int coeff_w, coeff_h; // number of 8x8 coefficient blocks
+ } img_comp[4];
+
+ stbi__uint32 code_buffer; // jpeg entropy-coded buffer
+ int code_bits; // number of valid bits
+ unsigned char marker; // marker seen while filling entropy buffer
+ int nomore; // flag if we saw a marker so must stop
+
+ int progressive;
+ int spec_start;
+ int spec_end;
+ int succ_high;
+ int succ_low;
+ int eob_run;
+ int jfif;
+ int app14_color_transform; // Adobe APP14 tag
+ int rgb;
+
+ int scan_n, order[4];
+ int restart_interval, todo;
+
+ // kernels
+ void (*idct_block_kernel)(stbi_uc *out, int out_stride, short data[64]);
+ void (*YCbCr_to_RGB_kernel)(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb,
+ const stbi_uc *pcr, int count, int step);
+ stbi_uc *(*resample_row_hv_2_kernel)(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w,
+ int hs);
+} stbi__jpeg;
+
+static int stbi__build_huffman(stbi__huffman *h, int *count)
+{
+ int i, j, k = 0;
+ unsigned int code;
+ // build size list for each symbol (from JPEG spec)
+ for (i = 0; i < 16; ++i) {
+ for (j = 0; j < count[i]; ++j) {
+ h->size[k++] = (stbi_uc)(i + 1);
+ if (k >= 257)
+ return stbi__err("bad size list", "Corrupt JPEG");
+ }
+ }
+ h->size[k] = 0;
+
+ // compute actual symbols (from jpeg spec)
+ code = 0;
+ k = 0;
+ for (j = 1; j <= 16; ++j) {
+ // compute delta to add to code to compute symbol id
+ h->delta[j] = k - code;
+ if (h->size[k] == j) {
+ while (h->size[k] == j)
+ h->code[k++] = (stbi__uint16)(code++);
+ if (code - 1 >= (1u << j))
+ return stbi__err("bad code lengths", "Corrupt JPEG");
+ }
+ // compute largest code + 1 for this size, preshifted as needed later
+ h->maxcode[j] = code << (16 - j);
+ code <<= 1;
+ }
+ h->maxcode[j] = 0xffffffff;
+
+ // build non-spec acceleration table; 255 is flag for not-accelerated
+ memset(h->fast, 255, 1 << FAST_BITS);
+ for (i = 0; i < k; ++i) {
+ int s = h->size[i];
+ if (s <= FAST_BITS) {
+ int c = h->code[i] << (FAST_BITS - s);
+ int m = 1 << (FAST_BITS - s);
+ for (j = 0; j < m; ++j) {
+ h->fast[c + j] = (stbi_uc)i;
+ }
+ }
+ }
+ return 1;
+}
+
+// build a table that decodes both magnitude and value of small ACs in
+// one go.
+static void stbi__build_fast_ac(stbi__int16 *fast_ac, stbi__huffman *h)
+{
+ int i;
+ for (i = 0; i < (1 << FAST_BITS); ++i) {
+ stbi_uc fast = h->fast[i];
+ fast_ac[i] = 0;
+ if (fast < 255) {
+ int rs = h->values[fast];
+ int run = (rs >> 4) & 15;
+ int magbits = rs & 15;
+ int len = h->size[fast];
+
+ if (magbits && len + magbits <= FAST_BITS) {
+ // magnitude code followed by receive_extend code
+ int k = ((i << len) & ((1 << FAST_BITS) - 1)) >>
+ (FAST_BITS - magbits);
+ int m = 1 << (magbits - 1);
+ if (k < m)
+ k += (~0U << magbits) + 1;
+ // if the result is small enough, we can fit it in fast_ac table
+ if (k >= -128 && k <= 127)
+ fast_ac[i] = (stbi__int16)((k * 256) + (run * 16) +
+ (len + magbits));
+ }
+ }
+ }
+}
+
+static void stbi__grow_buffer_unsafe(stbi__jpeg *j)
+{
+ do {
+ unsigned int b = j->nomore ? 0 : stbi__get8(j->s);
+ if (b == 0xff) {
+ int c = stbi__get8(j->s);
+ while (c == 0xff)
+ c = stbi__get8(j->s); // consume fill bytes
+ if (c != 0) {
+ j->marker = (unsigned char)c;
+ j->nomore = 1;
+ return;
+ }
+ }
+ j->code_buffer |= b << (24 - j->code_bits);
+ j->code_bits += 8;
+ } while (j->code_bits <= 24);
+}
+
+// (1 << n) - 1
+static const stbi__uint32 stbi__bmask[17] = { 0, 1, 3, 7, 15, 31, 63, 127, 255,
+ 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535 };
+
+// decode a jpeg huffman value from the bitstream
+stbi_inline static int stbi__jpeg_huff_decode(stbi__jpeg *j, stbi__huffman *h)
+{
+ unsigned int temp;
+ int c, k;
+
+ if (j->code_bits < 16)
+ stbi__grow_buffer_unsafe(j);
+
+ // look at the top FAST_BITS and determine what symbol ID it is,
+ // if the code is <= FAST_BITS
+ c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS) - 1);
+ k = h->fast[c];
+ if (k < 255) {
+ int s = h->size[k];
+ if (s > j->code_bits)
+ return -1;
+ j->code_buffer <<= s;
+ j->code_bits -= s;
+ return h->values[k];
+ }
+
+ // naive test is to shift the code_buffer down so k bits are
+ // valid, then test against maxcode. To speed this up, we've
+ // preshifted maxcode left so that it has (16-k) 0s at the
+ // end; in other words, regardless of the number of bits, it
+ // wants to be compared against something shifted to have 16;
+ // that way we don't need to shift inside the loop.
+ temp = j->code_buffer >> 16;
+ for (k = FAST_BITS + 1;; ++k)
+ if (temp < h->maxcode[k])
+ break;
+ if (k == 17) {
+ // error! code not found
+ j->code_bits -= 16;
+ return -1;
+ }
+
+ if (k > j->code_bits)
+ return -1;
+
+ // convert the huffman code to the symbol id
+ c = ((j->code_buffer >> (32 - k)) & stbi__bmask[k]) + h->delta[k];
+ if (c < 0 || c >= 256) // symbol id out of bounds!
+ return -1;
+ STBI_ASSERT((((j->code_buffer) >> (32 - h->size[c])) & stbi__bmask[h->size[c]]) ==
+ h->code[c]);
+
+ // convert the id to a symbol
+ j->code_bits -= k;
+ j->code_buffer <<= k;
+ return h->values[c];
+}
+
+// bias[n] = (-1<code_bits < n)
+ stbi__grow_buffer_unsafe(j);
+ if (j->code_bits < n)
+ return 0; // ran out of bits from stream, return 0s intead of continuing
+
+ sgn = j->code_buffer >>
+ 31; // sign bit always in MSB; 0 if MSB clear (positive), 1 if MSB set (negative)
+ k = stbi_lrot(j->code_buffer, n);
+ j->code_buffer = k & ~stbi__bmask[n];
+ k &= stbi__bmask[n];
+ j->code_bits -= n;
+ return k + (stbi__jbias[n] & (sgn - 1));
+}
+
+// get some unsigned bits
+stbi_inline static int stbi__jpeg_get_bits(stbi__jpeg *j, int n)
+{
+ unsigned int k;
+ if (j->code_bits < n)
+ stbi__grow_buffer_unsafe(j);
+ if (j->code_bits < n)
+ return 0; // ran out of bits from stream, return 0s intead of continuing
+ k = stbi_lrot(j->code_buffer, n);
+ j->code_buffer = k & ~stbi__bmask[n];
+ k &= stbi__bmask[n];
+ j->code_bits -= n;
+ return k;
+}
+
+stbi_inline static int stbi__jpeg_get_bit(stbi__jpeg *j)
+{
+ unsigned int k;
+ if (j->code_bits < 1)
+ stbi__grow_buffer_unsafe(j);
+ if (j->code_bits < 1)
+ return 0; // ran out of bits from stream, return 0s intead of continuing
+ k = j->code_buffer;
+ j->code_buffer <<= 1;
+ --j->code_bits;
+ return k & 0x80000000;
+}
+
+// given a value that's at position X in the zigzag stream,
+// where does it appear in the 8x8 matrix coded as row-major?
+static const stbi_uc stbi__jpeg_dezigzag[64 + 15] = {
+ 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27,
+ 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51,
+ 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63,
+ // let corrupt input sample past end
+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63
+};
+
+// decode one 64-entry block--
+static int stbi__jpeg_decode_block(stbi__jpeg *j, short data[64], stbi__huffman *hdc,
+ stbi__huffman *hac, stbi__int16 *fac, int b,
+ stbi__uint16 *dequant)
+{
+ int diff, dc, k;
+ int t;
+
+ if (j->code_bits < 16)
+ stbi__grow_buffer_unsafe(j);
+ t = stbi__jpeg_huff_decode(j, hdc);
+ if (t < 0 || t > 15)
+ return stbi__err("bad huffman code", "Corrupt JPEG");
+
+ // 0 all the ac values now so we can do it 32-bits at a time
+ memset(data, 0, 64 * sizeof(data[0]));
+
+ diff = t ? stbi__extend_receive(j, t) : 0;
+ if (!stbi__addints_valid(j->img_comp[b].dc_pred, diff))
+ return stbi__err("bad delta", "Corrupt JPEG");
+ dc = j->img_comp[b].dc_pred + diff;
+ j->img_comp[b].dc_pred = dc;
+ if (!stbi__mul2shorts_valid(dc, dequant[0]))
+ return stbi__err("can't merge dc and ac", "Corrupt JPEG");
+ data[0] = (short)(dc * dequant[0]);
+
+ // decode AC components, see JPEG spec
+ k = 1;
+ do {
+ unsigned int zig;
+ int c, r, s;
+ if (j->code_bits < 16)
+ stbi__grow_buffer_unsafe(j);
+ c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS) - 1);
+ r = fac[c];
+ if (r) { // fast-AC path
+ k += (r >> 4) & 15; // run
+ s = r & 15; // combined length
+ if (s > j->code_bits)
+ return stbi__err("bad huffman code",
+ "Combined length longer than code bits available");
+ j->code_buffer <<= s;
+ j->code_bits -= s;
+ // decode into unzigzag'd location
+ zig = stbi__jpeg_dezigzag[k++];
+ data[zig] = (short)((r >> 8) * dequant[zig]);
+ } else {
+ int rs = stbi__jpeg_huff_decode(j, hac);
+ if (rs < 0)
+ return stbi__err("bad huffman code", "Corrupt JPEG");
+ s = rs & 15;
+ r = rs >> 4;
+ if (s == 0) {
+ if (rs != 0xf0)
+ break; // end block
+ k += 16;
+ } else {
+ k += r;
+ // decode into unzigzag'd location
+ zig = stbi__jpeg_dezigzag[k++];
+ data[zig] = (short)(stbi__extend_receive(j, s) * dequant[zig]);
+ }
+ }
+ } while (k < 64);
+ return 1;
+}
+
+static int stbi__jpeg_decode_block_prog_dc(stbi__jpeg *j, short data[64], stbi__huffman *hdc, int b)
+{
+ int diff, dc;
+ int t;
+ if (j->spec_end != 0)
+ return stbi__err("can't merge dc and ac", "Corrupt JPEG");
+
+ if (j->code_bits < 16)
+ stbi__grow_buffer_unsafe(j);
+
+ if (j->succ_high == 0) {
+ // first scan for DC coefficient, must be first
+ memset(data, 0,
+ 64 * sizeof(data[0])); // 0 all the ac values now
+ t = stbi__jpeg_huff_decode(j, hdc);
+ if (t < 0 || t > 15)
+ return stbi__err("can't merge dc and ac", "Corrupt JPEG");
+ diff = t ? stbi__extend_receive(j, t) : 0;
+
+ if (!stbi__addints_valid(j->img_comp[b].dc_pred, diff))
+ return stbi__err("bad delta", "Corrupt JPEG");
+ dc = j->img_comp[b].dc_pred + diff;
+ j->img_comp[b].dc_pred = dc;
+ if (!stbi__mul2shorts_valid(dc, 1 << j->succ_low))
+ return stbi__err("can't merge dc and ac", "Corrupt JPEG");
+ data[0] = (short)(dc * (1 << j->succ_low));
+ } else {
+ // refinement scan for DC coefficient
+ if (stbi__jpeg_get_bit(j))
+ data[0] += (short)(1 << j->succ_low);
+ }
+ return 1;
+}
+
+// @OPTIMIZE: store non-zigzagged during the decode passes,
+// and only de-zigzag when dequantizing
+static int stbi__jpeg_decode_block_prog_ac(stbi__jpeg *j, short data[64], stbi__huffman *hac,
+ stbi__int16 *fac)
+{
+ int k;
+ if (j->spec_start == 0)
+ return stbi__err("can't merge dc and ac", "Corrupt JPEG");
+
+ if (j->succ_high == 0) {
+ int shift = j->succ_low;
+
+ if (j->eob_run) {
+ --j->eob_run;
+ return 1;
+ }
+
+ k = j->spec_start;
+ do {
+ unsigned int zig;
+ int c, r, s;
+ if (j->code_bits < 16)
+ stbi__grow_buffer_unsafe(j);
+ c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS) - 1);
+ r = fac[c];
+ if (r) { // fast-AC path
+ k += (r >> 4) & 15; // run
+ s = r & 15; // combined length
+ if (s > j->code_bits)
+ return stbi__err(
+ "bad huffman code",
+ "Combined length longer than code bits available");
+ j->code_buffer <<= s;
+ j->code_bits -= s;
+ zig = stbi__jpeg_dezigzag[k++];
+ data[zig] = (short)((r >> 8) * (1 << shift));
+ } else {
+ int rs = stbi__jpeg_huff_decode(j, hac);
+ if (rs < 0)
+ return stbi__err("bad huffman code", "Corrupt JPEG");
+ s = rs & 15;
+ r = rs >> 4;
+ if (s == 0) {
+ if (r < 15) {
+ j->eob_run = (1 << r);
+ if (r)
+ j->eob_run += stbi__jpeg_get_bits(j, r);
+ --j->eob_run;
+ break;
+ }
+ k += 16;
+ } else {
+ k += r;
+ zig = stbi__jpeg_dezigzag[k++];
+ data[zig] =
+ (short)(stbi__extend_receive(j, s) * (1 << shift));
+ }
+ }
+ } while (k <= j->spec_end);
+ } else {
+ // refinement scan for these AC coefficients
+
+ short bit = (short)(1 << j->succ_low);
+
+ if (j->eob_run) {
+ --j->eob_run;
+ for (k = j->spec_start; k <= j->spec_end; ++k) {
+ short *p = &data[stbi__jpeg_dezigzag[k]];
+ if (*p != 0)
+ if (stbi__jpeg_get_bit(j))
+ if ((*p & bit) == 0) {
+ if (*p > 0)
+ *p += bit;
+ else
+ *p -= bit;
+ }
+ }
+ } else {
+ k = j->spec_start;
+ do {
+ int r, s;
+ int rs = stbi__jpeg_huff_decode(
+ j,
+ hac); // @OPTIMIZE see if we can use the fast path here, advance-by-r is so slow, eh
+ if (rs < 0)
+ return stbi__err("bad huffman code", "Corrupt JPEG");
+ s = rs & 15;
+ r = rs >> 4;
+ if (s == 0) {
+ if (r < 15) {
+ j->eob_run = (1 << r) - 1;
+ if (r)
+ j->eob_run += stbi__jpeg_get_bits(j, r);
+ r = 64; // force end of block
+ } else {
+ // r=15 s=0 should write 16 0s, so we just do
+ // a run of 15 0s and then write s (which is 0),
+ // so we don't have to do anything special here
+ }
+ } else {
+ if (s != 1)
+ return stbi__err("bad huffman code",
+ "Corrupt JPEG");
+ // sign bit
+ if (stbi__jpeg_get_bit(j))
+ s = bit;
+ else
+ s = -bit;
+ }
+
+ // advance by r
+ while (k <= j->spec_end) {
+ short *p = &data[stbi__jpeg_dezigzag[k++]];
+ if (*p != 0) {
+ if (stbi__jpeg_get_bit(j))
+ if ((*p & bit) == 0) {
+ if (*p > 0)
+ *p += bit;
+ else
+ *p -= bit;
+ }
+ } else {
+ if (r == 0) {
+ *p = (short)s;
+ break;
+ }
+ --r;
+ }
+ }
+ } while (k <= j->spec_end);
+ }
+ }
+ return 1;
+}
+
+// take a -128..127 value and stbi__clamp it and convert to 0..255
+stbi_inline static stbi_uc stbi__clamp(int x)
+{
+ // trick to use a single test to catch both cases
+ if ((unsigned int)x > 255) {
+ if (x < 0)
+ return 0;
+ if (x > 255)
+ return 255;
+ }
+ return (stbi_uc)x;
+}
+
+#define stbi__f2f(x) ((int)(((x) * 4096 + 0.5)))
+#define stbi__fsh(x) ((x) * 4096)
+
+// derived from jidctint -- DCT_ISLOW
+#define STBI__IDCT_1D(s0, s1, s2, s3, s4, s5, s6, s7) \
+ int t0, t1, t2, t3, p1, p2, p3, p4, p5, x0, x1, x2, x3; \
+ p2 = s2; \
+ p3 = s6; \
+ p1 = (p2 + p3) * stbi__f2f(0.5411961f); \
+ t2 = p1 + p3 * stbi__f2f(-1.847759065f); \
+ t3 = p1 + p2 * stbi__f2f(0.765366865f); \
+ p2 = s0; \
+ p3 = s4; \
+ t0 = stbi__fsh(p2 + p3); \
+ t1 = stbi__fsh(p2 - p3); \
+ x0 = t0 + t3; \
+ x3 = t0 - t3; \
+ x1 = t1 + t2; \
+ x2 = t1 - t2; \
+ t0 = s7; \
+ t1 = s5; \
+ t2 = s3; \
+ t3 = s1; \
+ p3 = t0 + t2; \
+ p4 = t1 + t3; \
+ p1 = t0 + t3; \
+ p2 = t1 + t2; \
+ p5 = (p3 + p4) * stbi__f2f(1.175875602f); \
+ t0 = t0 * stbi__f2f(0.298631336f); \
+ t1 = t1 * stbi__f2f(2.053119869f); \
+ t2 = t2 * stbi__f2f(3.072711026f); \
+ t3 = t3 * stbi__f2f(1.501321110f); \
+ p1 = p5 + p1 * stbi__f2f(-0.899976223f); \
+ p2 = p5 + p2 * stbi__f2f(-2.562915447f); \
+ p3 = p3 * stbi__f2f(-1.961570560f); \
+ p4 = p4 * stbi__f2f(-0.390180644f); \
+ t3 += p1 + p4; \
+ t2 += p2 + p3; \
+ t1 += p2 + p4; \
+ t0 += p1 + p3;
+
+static void stbi__idct_block(stbi_uc *out, int out_stride, short data[64])
+{
+ int i, val[64], *v = val;
+ stbi_uc *o;
+ short *d = data;
+
+ // columns
+ for (i = 0; i < 8; ++i, ++d, ++v) {
+ // if all zeroes, shortcut -- this avoids dequantizing 0s and IDCTing
+ if (d[8] == 0 && d[16] == 0 && d[24] == 0 && d[32] == 0 && d[40] == 0 &&
+ d[48] == 0 && d[56] == 0) {
+ // no shortcut 0 seconds
+ // (1|2|3|4|5|6|7)==0 0 seconds
+ // all separate -0.047 seconds
+ // 1 && 2|3 && 4|5 && 6|7: -0.047 seconds
+ int dcterm = d[0] * 4;
+ v[0] = v[8] = v[16] = v[24] = v[32] = v[40] = v[48] = v[56] = dcterm;
+ } else {
+ STBI__IDCT_1D(d[0], d[8], d[16], d[24], d[32], d[40], d[48], d[56])
+ // constants scaled things up by 1<<12; let's bring them back
+ // down, but keep 2 extra bits of precision
+ x0 += 512;
+ x1 += 512;
+ x2 += 512;
+ x3 += 512;
+ v[0] = (x0 + t3) >> 10;
+ v[56] = (x0 - t3) >> 10;
+ v[8] = (x1 + t2) >> 10;
+ v[48] = (x1 - t2) >> 10;
+ v[16] = (x2 + t1) >> 10;
+ v[40] = (x2 - t1) >> 10;
+ v[24] = (x3 + t0) >> 10;
+ v[32] = (x3 - t0) >> 10;
+ }
+ }
+
+ for (i = 0, v = val, o = out; i < 8; ++i, v += 8, o += out_stride) {
+ // no fast case since the first 1D IDCT spread components out
+ STBI__IDCT_1D(v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7])
+ // constants scaled things up by 1<<12, plus we had 1<<2 from first
+ // loop, plus horizontal and vertical each scale by sqrt(8) so together
+ // we've got an extra 1<<3, so 1<<17 total we need to remove.
+ // so we want to round that, which means adding 0.5 * 1<<17,
+ // aka 65536. Also, we'll end up with -128 to 127 that we want
+ // to encode as 0..255 by adding 128, so we'll add that before the shift
+ x0 += 65536 + (128 << 17);
+ x1 += 65536 + (128 << 17);
+ x2 += 65536 + (128 << 17);
+ x3 += 65536 + (128 << 17);
+ // tried computing the shifts into temps, or'ing the temps to see
+ // if any were out of range, but that was slower
+ o[0] = stbi__clamp((x0 + t3) >> 17);
+ o[7] = stbi__clamp((x0 - t3) >> 17);
+ o[1] = stbi__clamp((x1 + t2) >> 17);
+ o[6] = stbi__clamp((x1 - t2) >> 17);
+ o[2] = stbi__clamp((x2 + t1) >> 17);
+ o[5] = stbi__clamp((x2 - t1) >> 17);
+ o[3] = stbi__clamp((x3 + t0) >> 17);
+ o[4] = stbi__clamp((x3 - t0) >> 17);
+ }
+}
+
+#ifdef STBI_SSE2
+// sse2 integer IDCT. not the fastest possible implementation but it
+// produces bit-identical results to the generic C version so it's
+// fully "transparent".
+static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64])
+{
+ // This is constructed to match our regular (generic) integer IDCT exactly.
+ __m128i row0, row1, row2, row3, row4, row5, row6, row7;
+ __m128i tmp;
+
+ // dot product constant: even elems=x, odd elems=y
+#define dct_const(x, y) _mm_setr_epi16((x), (y), (x), (y), (x), (y), (x), (y))
+
+// out(0) = c0[even]*x + c0[odd]*y (c0, x, y 16-bit, out 32-bit)
+// out(1) = c1[even]*x + c1[odd]*y
+#define dct_rot(out0, out1, x, y, c0, c1) \
+ __m128i c0##lo = _mm_unpacklo_epi16((x), (y)); \
+ __m128i c0##hi = _mm_unpackhi_epi16((x), (y)); \
+ __m128i out0##_l = _mm_madd_epi16(c0##lo, c0); \
+ __m128i out0##_h = _mm_madd_epi16(c0##hi, c0); \
+ __m128i out1##_l = _mm_madd_epi16(c0##lo, c1); \
+ __m128i out1##_h = _mm_madd_epi16(c0##hi, c1)
+
+ // out = in << 12 (in 16-bit, out 32-bit)
+#define dct_widen(out, in) \
+ __m128i out##_l = _mm_srai_epi32(_mm_unpacklo_epi16(_mm_setzero_si128(), (in)), 4); \
+ __m128i out##_h = _mm_srai_epi32(_mm_unpackhi_epi16(_mm_setzero_si128(), (in)), 4)
+
+ // wide add
+#define dct_wadd(out, a, b) \
+ __m128i out##_l = _mm_add_epi32(a##_l, b##_l); \
+ __m128i out##_h = _mm_add_epi32(a##_h, b##_h)
+
+ // wide sub
+#define dct_wsub(out, a, b) \
+ __m128i out##_l = _mm_sub_epi32(a##_l, b##_l); \
+ __m128i out##_h = _mm_sub_epi32(a##_h, b##_h)
+
+ // butterfly a/b, add bias, then shift by "s" and pack
+#define dct_bfly32o(out0, out1, a, b, bias, s) \
+ { \
+ __m128i abiased_l = _mm_add_epi32(a##_l, bias); \
+ __m128i abiased_h = _mm_add_epi32(a##_h, bias); \
+ dct_wadd(sum, abiased, b); \
+ dct_wsub(dif, abiased, b); \
+ out0 = _mm_packs_epi32(_mm_srai_epi32(sum_l, s), _mm_srai_epi32(sum_h, s)); \
+ out1 = _mm_packs_epi32(_mm_srai_epi32(dif_l, s), _mm_srai_epi32(dif_h, s)); \
+ }
+
+ // 8-bit interleave step (for transposes)
+#define dct_interleave8(a, b) \
+ tmp = a; \
+ a = _mm_unpacklo_epi8(a, b); \
+ b = _mm_unpackhi_epi8(tmp, b)
+
+ // 16-bit interleave step (for transposes)
+#define dct_interleave16(a, b) \
+ tmp = a; \
+ a = _mm_unpacklo_epi16(a, b); \
+ b = _mm_unpackhi_epi16(tmp, b)
+
+#define dct_pass(bias, shift) \
+ { \
+ /* even part */ \
+ dct_rot(t2e, t3e, row2, row6, rot0_0, rot0_1); \
+ __m128i sum04 = _mm_add_epi16(row0, row4); \
+ __m128i dif04 = _mm_sub_epi16(row0, row4); \
+ dct_widen(t0e, sum04); \
+ dct_widen(t1e, dif04); \
+ dct_wadd(x0, t0e, t3e); \
+ dct_wsub(x3, t0e, t3e); \
+ dct_wadd(x1, t1e, t2e); \
+ dct_wsub(x2, t1e, t2e); \
+ /* odd part */ \
+ dct_rot(y0o, y2o, row7, row3, rot2_0, rot2_1); \
+ dct_rot(y1o, y3o, row5, row1, rot3_0, rot3_1); \
+ __m128i sum17 = _mm_add_epi16(row1, row7); \
+ __m128i sum35 = _mm_add_epi16(row3, row5); \
+ dct_rot(y4o, y5o, sum17, sum35, rot1_0, rot1_1); \
+ dct_wadd(x4, y0o, y4o); \
+ dct_wadd(x5, y1o, y5o); \
+ dct_wadd(x6, y2o, y5o); \
+ dct_wadd(x7, y3o, y4o); \
+ dct_bfly32o(row0, row7, x0, x7, bias, shift); \
+ dct_bfly32o(row1, row6, x1, x6, bias, shift); \
+ dct_bfly32o(row2, row5, x2, x5, bias, shift); \
+ dct_bfly32o(row3, row4, x3, x4, bias, shift); \
+ }
+
+ __m128i rot0_0 =
+ dct_const(stbi__f2f(0.5411961f), stbi__f2f(0.5411961f) + stbi__f2f(-1.847759065f));
+ __m128i rot0_1 =
+ dct_const(stbi__f2f(0.5411961f) + stbi__f2f(0.765366865f), stbi__f2f(0.5411961f));
+ __m128i rot1_0 = dct_const(stbi__f2f(1.175875602f) + stbi__f2f(-0.899976223f),
+ stbi__f2f(1.175875602f));
+ __m128i rot1_1 = dct_const(stbi__f2f(1.175875602f),
+ stbi__f2f(1.175875602f) + stbi__f2f(-2.562915447f));
+ __m128i rot2_0 = dct_const(stbi__f2f(-1.961570560f) + stbi__f2f(0.298631336f),
+ stbi__f2f(-1.961570560f));
+ __m128i rot2_1 = dct_const(stbi__f2f(-1.961570560f),
+ stbi__f2f(-1.961570560f) + stbi__f2f(3.072711026f));
+ __m128i rot3_0 = dct_const(stbi__f2f(-0.390180644f) + stbi__f2f(2.053119869f),
+ stbi__f2f(-0.390180644f));
+ __m128i rot3_1 = dct_const(stbi__f2f(-0.390180644f),
+ stbi__f2f(-0.390180644f) + stbi__f2f(1.501321110f));
+
+ // rounding biases in column/row passes, see stbi__idct_block for explanation.
+ __m128i bias_0 = _mm_set1_epi32(512);
+ __m128i bias_1 = _mm_set1_epi32(65536 + (128 << 17));
+
+ // load
+ row0 = _mm_load_si128((const __m128i *)(data + 0 * 8));
+ row1 = _mm_load_si128((const __m128i *)(data + 1 * 8));
+ row2 = _mm_load_si128((const __m128i *)(data + 2 * 8));
+ row3 = _mm_load_si128((const __m128i *)(data + 3 * 8));
+ row4 = _mm_load_si128((const __m128i *)(data + 4 * 8));
+ row5 = _mm_load_si128((const __m128i *)(data + 5 * 8));
+ row6 = _mm_load_si128((const __m128i *)(data + 6 * 8));
+ row7 = _mm_load_si128((const __m128i *)(data + 7 * 8));
+
+ // column pass
+ dct_pass(bias_0, 10);
+
+ {
+ // 16bit 8x8 transpose pass 1
+ dct_interleave16(row0, row4);
+ dct_interleave16(row1, row5);
+ dct_interleave16(row2, row6);
+ dct_interleave16(row3, row7);
+
+ // transpose pass 2
+ dct_interleave16(row0, row2);
+ dct_interleave16(row1, row3);
+ dct_interleave16(row4, row6);
+ dct_interleave16(row5, row7);
+
+ // transpose pass 3
+ dct_interleave16(row0, row1);
+ dct_interleave16(row2, row3);
+ dct_interleave16(row4, row5);
+ dct_interleave16(row6, row7);
+ }
+
+ // row pass
+ dct_pass(bias_1, 17);
+
+ {
+ // pack
+ __m128i p0 = _mm_packus_epi16(row0, row1); // a0a1a2a3...a7b0b1b2b3...b7
+ __m128i p1 = _mm_packus_epi16(row2, row3);
+ __m128i p2 = _mm_packus_epi16(row4, row5);
+ __m128i p3 = _mm_packus_epi16(row6, row7);
+
+ // 8bit 8x8 transpose pass 1
+ dct_interleave8(p0, p2); // a0e0a1e1...
+ dct_interleave8(p1, p3); // c0g0c1g1...
+
+ // transpose pass 2
+ dct_interleave8(p0, p1); // a0c0e0g0...
+ dct_interleave8(p2, p3); // b0d0f0h0...
+
+ // transpose pass 3
+ dct_interleave8(p0, p2); // a0b0c0d0...
+ dct_interleave8(p1, p3); // a4b4c4d4...
+
+ // store
+ _mm_storel_epi64((__m128i *)out, p0);
+ out += out_stride;
+ _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p0, 0x4e));
+ out += out_stride;
+ _mm_storel_epi64((__m128i *)out, p2);
+ out += out_stride;
+ _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p2, 0x4e));
+ out += out_stride;
+ _mm_storel_epi64((__m128i *)out, p1);
+ out += out_stride;
+ _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p1, 0x4e));
+ out += out_stride;
+ _mm_storel_epi64((__m128i *)out, p3);
+ out += out_stride;
+ _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p3, 0x4e));
+ }
+
+#undef dct_const
+#undef dct_rot
+#undef dct_widen
+#undef dct_wadd
+#undef dct_wsub
+#undef dct_bfly32o
+#undef dct_interleave8
+#undef dct_interleave16
+#undef dct_pass
+}
+
+#endif // STBI_SSE2
+
+#ifdef STBI_NEON
+
+// NEON integer IDCT. should produce bit-identical
+// results to the generic C version.
+static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64])
+{
+ int16x8_t row0, row1, row2, row3, row4, row5, row6, row7;
+
+ int16x4_t rot0_0 = vdup_n_s16(stbi__f2f(0.5411961f));
+ int16x4_t rot0_1 = vdup_n_s16(stbi__f2f(-1.847759065f));
+ int16x4_t rot0_2 = vdup_n_s16(stbi__f2f(0.765366865f));
+ int16x4_t rot1_0 = vdup_n_s16(stbi__f2f(1.175875602f));
+ int16x4_t rot1_1 = vdup_n_s16(stbi__f2f(-0.899976223f));
+ int16x4_t rot1_2 = vdup_n_s16(stbi__f2f(-2.562915447f));
+ int16x4_t rot2_0 = vdup_n_s16(stbi__f2f(-1.961570560f));
+ int16x4_t rot2_1 = vdup_n_s16(stbi__f2f(-0.390180644f));
+ int16x4_t rot3_0 = vdup_n_s16(stbi__f2f(0.298631336f));
+ int16x4_t rot3_1 = vdup_n_s16(stbi__f2f(2.053119869f));
+ int16x4_t rot3_2 = vdup_n_s16(stbi__f2f(3.072711026f));
+ int16x4_t rot3_3 = vdup_n_s16(stbi__f2f(1.501321110f));
+
+#define dct_long_mul(out, inq, coeff) \
+ int32x4_t out##_l = vmull_s16(vget_low_s16(inq), coeff); \
+ int32x4_t out##_h = vmull_s16(vget_high_s16(inq), coeff)
+
+#define dct_long_mac(out, acc, inq, coeff) \
+ int32x4_t out##_l = vmlal_s16(acc##_l, vget_low_s16(inq), coeff); \
+ int32x4_t out##_h = vmlal_s16(acc##_h, vget_high_s16(inq), coeff)
+
+#define dct_widen(out, inq) \
+ int32x4_t out##_l = vshll_n_s16(vget_low_s16(inq), 12); \
+ int32x4_t out##_h = vshll_n_s16(vget_high_s16(inq), 12)
+
+ // wide add
+#define dct_wadd(out, a, b) \
+ int32x4_t out##_l = vaddq_s32(a##_l, b##_l); \
+ int32x4_t out##_h = vaddq_s32(a##_h, b##_h)
+
+// wide sub
+#define dct_wsub(out, a, b) \
+ int32x4_t out##_l = vsubq_s32(a##_l, b##_l); \
+ int32x4_t out##_h = vsubq_s32(a##_h, b##_h)
+
+// butterfly a/b, then shift using "shiftop" by "s" and pack
+#define dct_bfly32o(out0, out1, a, b, shiftop, s) \
+ { \
+ dct_wadd(sum, a, b); \
+ dct_wsub(dif, a, b); \
+ out0 = vcombine_s16(shiftop(sum_l, s), shiftop(sum_h, s)); \
+ out1 = vcombine_s16(shiftop(dif_l, s), shiftop(dif_h, s)); \
+ }
+
+#define dct_pass(shiftop, shift) \
+ { \
+ /* even part */ \
+ int16x8_t sum26 = vaddq_s16(row2, row6); \
+ dct_long_mul(p1e, sum26, rot0_0); \
+ dct_long_mac(t2e, p1e, row6, rot0_1); \
+ dct_long_mac(t3e, p1e, row2, rot0_2); \
+ int16x8_t sum04 = vaddq_s16(row0, row4); \
+ int16x8_t dif04 = vsubq_s16(row0, row4); \
+ dct_widen(t0e, sum04); \
+ dct_widen(t1e, dif04); \
+ dct_wadd(x0, t0e, t3e); \
+ dct_wsub(x3, t0e, t3e); \
+ dct_wadd(x1, t1e, t2e); \
+ dct_wsub(x2, t1e, t2e); \
+ /* odd part */ \
+ int16x8_t sum15 = vaddq_s16(row1, row5); \
+ int16x8_t sum17 = vaddq_s16(row1, row7); \
+ int16x8_t sum35 = vaddq_s16(row3, row5); \
+ int16x8_t sum37 = vaddq_s16(row3, row7); \
+ int16x8_t sumodd = vaddq_s16(sum17, sum35); \
+ dct_long_mul(p5o, sumodd, rot1_0); \
+ dct_long_mac(p1o, p5o, sum17, rot1_1); \
+ dct_long_mac(p2o, p5o, sum35, rot1_2); \
+ dct_long_mul(p3o, sum37, rot2_0); \
+ dct_long_mul(p4o, sum15, rot2_1); \
+ dct_wadd(sump13o, p1o, p3o); \
+ dct_wadd(sump24o, p2o, p4o); \
+ dct_wadd(sump23o, p2o, p3o); \
+ dct_wadd(sump14o, p1o, p4o); \
+ dct_long_mac(x4, sump13o, row7, rot3_0); \
+ dct_long_mac(x5, sump24o, row5, rot3_1); \
+ dct_long_mac(x6, sump23o, row3, rot3_2); \
+ dct_long_mac(x7, sump14o, row1, rot3_3); \
+ dct_bfly32o(row0, row7, x0, x7, shiftop, shift); \
+ dct_bfly32o(row1, row6, x1, x6, shiftop, shift); \
+ dct_bfly32o(row2, row5, x2, x5, shiftop, shift); \
+ dct_bfly32o(row3, row4, x3, x4, shiftop, shift); \
+ }
+
+ // load
+ row0 = vld1q_s16(data + 0 * 8);
+ row1 = vld1q_s16(data + 1 * 8);
+ row2 = vld1q_s16(data + 2 * 8);
+ row3 = vld1q_s16(data + 3 * 8);
+ row4 = vld1q_s16(data + 4 * 8);
+ row5 = vld1q_s16(data + 5 * 8);
+ row6 = vld1q_s16(data + 6 * 8);
+ row7 = vld1q_s16(data + 7 * 8);
+
+ // add DC bias
+ row0 = vaddq_s16(row0, vsetq_lane_s16(1024, vdupq_n_s16(0), 0));
+
+ // column pass
+ dct_pass(vrshrn_n_s32, 10);
+
+ // 16bit 8x8 transpose
+ {
+ // these three map to a single VTRN.16, VTRN.32, and VSWP, respectively.
+ // whether compilers actually get this is another story, sadly.
+#define dct_trn16(x, y) \
+ { \
+ int16x8x2_t t = vtrnq_s16(x, y); \
+ x = t.val[0]; \
+ y = t.val[1]; \
+ }
+#define dct_trn32(x, y) \
+ { \
+ int32x4x2_t t = vtrnq_s32(vreinterpretq_s32_s16(x), vreinterpretq_s32_s16(y)); \
+ x = vreinterpretq_s16_s32(t.val[0]); \
+ y = vreinterpretq_s16_s32(t.val[1]); \
+ }
+#define dct_trn64(x, y) \
+ { \
+ int16x8_t x0 = x; \
+ int16x8_t y0 = y; \
+ x = vcombine_s16(vget_low_s16(x0), vget_low_s16(y0)); \
+ y = vcombine_s16(vget_high_s16(x0), vget_high_s16(y0)); \
+ }
+
+ // pass 1
+ dct_trn16(row0, row1); // a0b0a2b2a4b4a6b6
+ dct_trn16(row2, row3);
+ dct_trn16(row4, row5);
+ dct_trn16(row6, row7);
+
+ // pass 2
+ dct_trn32(row0, row2); // a0b0c0d0a4b4c4d4
+ dct_trn32(row1, row3);
+ dct_trn32(row4, row6);
+ dct_trn32(row5, row7);
+
+ // pass 3
+ dct_trn64(row0, row4); // a0b0c0d0e0f0g0h0
+ dct_trn64(row1, row5);
+ dct_trn64(row2, row6);
+ dct_trn64(row3, row7);
+
+#undef dct_trn16
+#undef dct_trn32
+#undef dct_trn64
+ }
+
+ // row pass
+ // vrshrn_n_s32 only supports shifts up to 16, we need
+ // 17. so do a non-rounding shift of 16 first then follow
+ // up with a rounding shift by 1.
+ dct_pass(vshrn_n_s32, 16);
+
+ {
+ // pack and round
+ uint8x8_t p0 = vqrshrun_n_s16(row0, 1);
+ uint8x8_t p1 = vqrshrun_n_s16(row1, 1);
+ uint8x8_t p2 = vqrshrun_n_s16(row2, 1);
+ uint8x8_t p3 = vqrshrun_n_s16(row3, 1);
+ uint8x8_t p4 = vqrshrun_n_s16(row4, 1);
+ uint8x8_t p5 = vqrshrun_n_s16(row5, 1);
+ uint8x8_t p6 = vqrshrun_n_s16(row6, 1);
+ uint8x8_t p7 = vqrshrun_n_s16(row7, 1);
+
+ // again, these can translate into one instruction, but often don't.
+#define dct_trn8_8(x, y) \
+ { \
+ uint8x8x2_t t = vtrn_u8(x, y); \
+ x = t.val[0]; \
+ y = t.val[1]; \
+ }
+#define dct_trn8_16(x, y) \
+ { \
+ uint16x4x2_t t = vtrn_u16(vreinterpret_u16_u8(x), vreinterpret_u16_u8(y)); \
+ x = vreinterpret_u8_u16(t.val[0]); \
+ y = vreinterpret_u8_u16(t.val[1]); \
+ }
+#define dct_trn8_32(x, y) \
+ { \
+ uint32x2x2_t t = vtrn_u32(vreinterpret_u32_u8(x), vreinterpret_u32_u8(y)); \
+ x = vreinterpret_u8_u32(t.val[0]); \
+ y = vreinterpret_u8_u32(t.val[1]); \
+ }
+
+ // sadly can't use interleaved stores here since we only write
+ // 8 bytes to each scan line!
+
+ // 8x8 8-bit transpose pass 1
+ dct_trn8_8(p0, p1);
+ dct_trn8_8(p2, p3);
+ dct_trn8_8(p4, p5);
+ dct_trn8_8(p6, p7);
+
+ // pass 2
+ dct_trn8_16(p0, p2);
+ dct_trn8_16(p1, p3);
+ dct_trn8_16(p4, p6);
+ dct_trn8_16(p5, p7);
+
+ // pass 3
+ dct_trn8_32(p0, p4);
+ dct_trn8_32(p1, p5);
+ dct_trn8_32(p2, p6);
+ dct_trn8_32(p3, p7);
+
+ // store
+ vst1_u8(out, p0);
+ out += out_stride;
+ vst1_u8(out, p1);
+ out += out_stride;
+ vst1_u8(out, p2);
+ out += out_stride;
+ vst1_u8(out, p3);
+ out += out_stride;
+ vst1_u8(out, p4);
+ out += out_stride;
+ vst1_u8(out, p5);
+ out += out_stride;
+ vst1_u8(out, p6);
+ out += out_stride;
+ vst1_u8(out, p7);
+
+#undef dct_trn8_8
+#undef dct_trn8_16
+#undef dct_trn8_32
+ }
+
+#undef dct_long_mul
+#undef dct_long_mac
+#undef dct_widen
+#undef dct_wadd
+#undef dct_wsub
+#undef dct_bfly32o
+#undef dct_pass
+}
+
+#endif // STBI_NEON
+
+#define STBI__MARKER_none 0xff
+// if there's a pending marker from the entropy stream, return that
+// otherwise, fetch from the stream and get a marker. if there's no
+// marker, return 0xff, which is never a valid marker value
+static stbi_uc stbi__get_marker(stbi__jpeg *j)
+{
+ stbi_uc x;
+ if (j->marker != STBI__MARKER_none) {
+ x = j->marker;
+ j->marker = STBI__MARKER_none;
+ return x;
+ }
+ x = stbi__get8(j->s);
+ if (x != 0xff)
+ return STBI__MARKER_none;
+ while (x == 0xff)
+ x = stbi__get8(j->s); // consume repeated 0xff fill bytes
+ return x;
+}
+
+// in each scan, we'll have scan_n components, and the order
+// of the components is specified by order[]
+#define STBI__RESTART(x) ((x) >= 0xd0 && (x) <= 0xd7)
+
+// after a restart interval, stbi__jpeg_reset the entropy decoder and
+// the dc prediction
+static void stbi__jpeg_reset(stbi__jpeg *j)
+{
+ j->code_bits = 0;
+ j->code_buffer = 0;
+ j->nomore = 0;
+ j->img_comp[0].dc_pred = j->img_comp[1].dc_pred = j->img_comp[2].dc_pred =
+ j->img_comp[3].dc_pred = 0;
+ j->marker = STBI__MARKER_none;
+ j->todo = j->restart_interval ? j->restart_interval : 0x7fffffff;
+ j->eob_run = 0;
+ // no more than 1<<31 MCUs if no restart_interal? that's plenty safe,
+ // since we don't even allow 1<<30 pixels
+}
+
+static int stbi__parse_entropy_coded_data(stbi__jpeg *z)
+{
+ stbi__jpeg_reset(z);
+ if (!z->progressive) {
+ if (z->scan_n == 1) {
+ int i, j;
+ STBI_SIMD_ALIGN(short, data[64]);
+ int n = z->order[0];
+ // non-interleaved data, we just need to process one block at a time,
+ // in trivial scanline order
+ // number of blocks to do just depends on how many actual "pixels" this
+ // component has, independent of interleaved MCU blocking and such
+ int w = (z->img_comp[n].x + 7) >> 3;
+ int h = (z->img_comp[n].y + 7) >> 3;
+ for (j = 0; j < h; ++j) {
+ for (i = 0; i < w; ++i) {
+ int ha = z->img_comp[n].ha;
+ if (!stbi__jpeg_decode_block(
+ z, data, z->huff_dc + z->img_comp[n].hd,
+ z->huff_ac + ha, z->fast_ac[ha], n,
+ z->dequant[z->img_comp[n].tq]))
+ return 0;
+ z->idct_block_kernel(z->img_comp[n].data +
+ z->img_comp[n].w2 * j * 8 +
+ i * 8,
+ z->img_comp[n].w2, data);
+ // every data block is an MCU, so countdown the restart interval
+ if (--z->todo <= 0) {
+ if (z->code_bits < 24)
+ stbi__grow_buffer_unsafe(z);
+ // if it's NOT a restart, then just bail, so we get corrupt data
+ // rather than no data
+ if (!STBI__RESTART(z->marker))
+ return 1;
+ stbi__jpeg_reset(z);
+ }
+ }
+ }
+ return 1;
+ } else { // interleaved
+ int i, j, k, x, y;
+ STBI_SIMD_ALIGN(short, data[64]);
+ for (j = 0; j < z->img_mcu_y; ++j) {
+ for (i = 0; i < z->img_mcu_x; ++i) {
+ // scan an interleaved mcu... process scan_n components in order
+ for (k = 0; k < z->scan_n; ++k) {
+ int n = z->order[k];
+ // scan out an mcu's worth of this component; that's just determined
+ // by the basic H and V specified for the component
+ for (y = 0; y < z->img_comp[n].v; ++y) {
+ for (x = 0; x < z->img_comp[n].h; ++x) {
+ int x2 =
+ (i * z->img_comp[n].h + x) *
+ 8;
+ int y2 =
+ (j * z->img_comp[n].v + y) *
+ 8;
+ int ha = z->img_comp[n].ha;
+ if (!stbi__jpeg_decode_block(
+ z, data,
+ z->huff_dc +
+ z->img_comp[n]
+ .hd,
+ z->huff_ac + ha,
+ z->fast_ac[ha], n,
+ z->dequant[z->img_comp[n]
+ .tq]))
+ return 0;
+ z->idct_block_kernel(
+ z->img_comp[n].data +
+ z->img_comp[n].w2 *
+ y2 +
+ x2,
+ z->img_comp[n].w2, data);
+ }
+ }
+ }
+ // after all interleaved components, that's an interleaved MCU,
+ // so now count down the restart interval
+ if (--z->todo <= 0) {
+ if (z->code_bits < 24)
+ stbi__grow_buffer_unsafe(z);
+ if (!STBI__RESTART(z->marker))
+ return 1;
+ stbi__jpeg_reset(z);
+ }
+ }
+ }
+ return 1;
+ }
+ } else {
+ if (z->scan_n == 1) {
+ int i, j;
+ int n = z->order[0];
+ // non-interleaved data, we just need to process one block at a time,
+ // in trivial scanline order
+ // number of blocks to do just depends on how many actual "pixels" this
+ // component has, independent of interleaved MCU blocking and such
+ int w = (z->img_comp[n].x + 7) >> 3;
+ int h = (z->img_comp[n].y + 7) >> 3;
+ for (j = 0; j < h; ++j) {
+ for (i = 0; i < w; ++i) {
+ short *data = z->img_comp[n].coeff +
+ 64 * (i + j * z->img_comp[n].coeff_w);
+ if (z->spec_start == 0) {
+ if (!stbi__jpeg_decode_block_prog_dc(
+ z, data, &z->huff_dc[z->img_comp[n].hd],
+ n))
+ return 0;
+ } else {
+ int ha = z->img_comp[n].ha;
+ if (!stbi__jpeg_decode_block_prog_ac(
+ z, data, &z->huff_ac[ha],
+ z->fast_ac[ha]))
+ return 0;
+ }
+ // every data block is an MCU, so countdown the restart interval
+ if (--z->todo <= 0) {
+ if (z->code_bits < 24)
+ stbi__grow_buffer_unsafe(z);
+ if (!STBI__RESTART(z->marker))
+ return 1;
+ stbi__jpeg_reset(z);
+ }
+ }
+ }
+ return 1;
+ } else { // interleaved
+ int i, j, k, x, y;
+ for (j = 0; j < z->img_mcu_y; ++j) {
+ for (i = 0; i < z->img_mcu_x; ++i) {
+ // scan an interleaved mcu... process scan_n components in order
+ for (k = 0; k < z->scan_n; ++k) {
+ int n = z->order[k];
+ // scan out an mcu's worth of this component; that's just determined
+ // by the basic H and V specified for the component
+ for (y = 0; y < z->img_comp[n].v; ++y) {
+ for (x = 0; x < z->img_comp[n].h; ++x) {
+ int x2 = (i * z->img_comp[n].h + x);
+ int y2 = (j * z->img_comp[n].v + y);
+ short *data =
+ z->img_comp[n].coeff +
+ 64 * (x2 +
+ y2 * z->img_comp[n]
+ .coeff_w);
+ if (!stbi__jpeg_decode_block_prog_dc(
+ z, data,
+ &z->huff_dc[z->img_comp[n]
+ .hd],
+ n))
+ return 0;
+ }
+ }
+ }
+ // after all interleaved components, that's an interleaved MCU,
+ // so now count down the restart interval
+ if (--z->todo <= 0) {
+ if (z->code_bits < 24)
+ stbi__grow_buffer_unsafe(z);
+ if (!STBI__RESTART(z->marker))
+ return 1;
+ stbi__jpeg_reset(z);
+ }
+ }
+ }
+ return 1;
+ }
+ }
+}
+
+static void stbi__jpeg_dequantize(short *data, stbi__uint16 *dequant)
+{
+ int i;
+ for (i = 0; i < 64; ++i)
+ data[i] *= dequant[i];
+}
+
+static void stbi__jpeg_finish(stbi__jpeg *z)
+{
+ if (z->progressive) {
+ // dequantize and idct the data
+ int i, j, n;
+ for (n = 0; n < z->s->img_n; ++n) {
+ int w = (z->img_comp[n].x + 7) >> 3;
+ int h = (z->img_comp[n].y + 7) >> 3;
+ for (j = 0; j < h; ++j) {
+ for (i = 0; i < w; ++i) {
+ short *data = z->img_comp[n].coeff +
+ 64 * (i + j * z->img_comp[n].coeff_w);
+ stbi__jpeg_dequantize(data, z->dequant[z->img_comp[n].tq]);
+ z->idct_block_kernel(z->img_comp[n].data +
+ z->img_comp[n].w2 * j * 8 +
+ i * 8,
+ z->img_comp[n].w2, data);
+ }
+ }
+ }
+ }
+}
+
+static int stbi__process_marker(stbi__jpeg *z, int m)
+{
+ int L;
+ switch (m) {
+ case STBI__MARKER_none: // no marker found
+ return stbi__err("expected marker", "Corrupt JPEG");
+
+ case 0xDD: // DRI - specify restart interval
+ if (stbi__get16be(z->s) != 4)
+ return stbi__err("bad DRI len", "Corrupt JPEG");
+ z->restart_interval = stbi__get16be(z->s);
+ return 1;
+
+ case 0xDB: // DQT - define quantization table
+ L = stbi__get16be(z->s) - 2;
+ while (L > 0) {
+ int q = stbi__get8(z->s);
+ int p = q >> 4, sixteen = (p != 0);
+ int t = q & 15, i;
+ if (p != 0 && p != 1)
+ return stbi__err("bad DQT type", "Corrupt JPEG");
+ if (t > 3)
+ return stbi__err("bad DQT table", "Corrupt JPEG");
+
+ for (i = 0; i < 64; ++i)
+ z->dequant[t][stbi__jpeg_dezigzag[i]] =
+ (stbi__uint16)(sixteen ? stbi__get16be(z->s) :
+ stbi__get8(z->s));
+ L -= (sixteen ? 129 : 65);
+ }
+ return L == 0;
+
+ case 0xC4: // DHT - define huffman table
+ L = stbi__get16be(z->s) - 2;
+ while (L > 0) {
+ stbi_uc *v;
+ int sizes[16], i, n = 0;
+ int q = stbi__get8(z->s);
+ int tc = q >> 4;
+ int th = q & 15;
+ if (tc > 1 || th > 3)
+ return stbi__err("bad DHT header", "Corrupt JPEG");
+ for (i = 0; i < 16; ++i) {
+ sizes[i] = stbi__get8(z->s);
+ n += sizes[i];
+ }
+ if (n > 256)
+ return stbi__err(
+ "bad DHT header",
+ "Corrupt JPEG"); // Loop over i < n would write past end of values!
+ L -= 17;
+ if (tc == 0) {
+ if (!stbi__build_huffman(z->huff_dc + th, sizes))
+ return 0;
+ v = z->huff_dc[th].values;
+ } else {
+ if (!stbi__build_huffman(z->huff_ac + th, sizes))
+ return 0;
+ v = z->huff_ac[th].values;
+ }
+ for (i = 0; i < n; ++i)
+ v[i] = stbi__get8(z->s);
+ if (tc != 0)
+ stbi__build_fast_ac(z->fast_ac[th], z->huff_ac + th);
+ L -= n;
+ }
+ return L == 0;
+ }
+
+ // check for comment block or APP blocks
+ if ((m >= 0xE0 && m <= 0xEF) || m == 0xFE) {
+ L = stbi__get16be(z->s);
+ if (L < 2) {
+ if (m == 0xFE)
+ return stbi__err("bad COM len", "Corrupt JPEG");
+ else
+ return stbi__err("bad APP len", "Corrupt JPEG");
+ }
+ L -= 2;
+
+ if (m == 0xE0 && L >= 5) { // JFIF APP0 segment
+ static const unsigned char tag[5] = { 'J', 'F', 'I', 'F', '\0' };
+ int ok = 1;
+ int i;
+ for (i = 0; i < 5; ++i)
+ if (stbi__get8(z->s) != tag[i])
+ ok = 0;
+ L -= 5;
+ if (ok)
+ z->jfif = 1;
+ } else if (m == 0xEE && L >= 12) { // Adobe APP14 segment
+ static const unsigned char tag[6] = { 'A', 'd', 'o', 'b', 'e', '\0' };
+ int ok = 1;
+ int i;
+ for (i = 0; i < 6; ++i)
+ if (stbi__get8(z->s) != tag[i])
+ ok = 0;
+ L -= 6;
+ if (ok) {
+ stbi__get8(z->s); // version
+ stbi__get16be(z->s); // flags0
+ stbi__get16be(z->s); // flags1
+ z->app14_color_transform = stbi__get8(z->s); // color transform
+ L -= 6;
+ }
+ }
+
+ stbi__skip(z->s, L);
+ return 1;
+ }
+
+ return stbi__err("unknown marker", "Corrupt JPEG");
+}
+
+// after we see SOS
+static int stbi__process_scan_header(stbi__jpeg *z)
+{
+ int i;
+ int Ls = stbi__get16be(z->s);
+ z->scan_n = stbi__get8(z->s);
+ if (z->scan_n < 1 || z->scan_n > 4 || z->scan_n > (int)z->s->img_n)
+ return stbi__err("bad SOS component count", "Corrupt JPEG");
+ if (Ls != 6 + 2 * z->scan_n)
+ return stbi__err("bad SOS len", "Corrupt JPEG");
+ for (i = 0; i < z->scan_n; ++i) {
+ int id = stbi__get8(z->s), which;
+ int q = stbi__get8(z->s);
+ for (which = 0; which < z->s->img_n; ++which)
+ if (z->img_comp[which].id == id)
+ break;
+ if (which == z->s->img_n)
+ return 0; // no match
+ z->img_comp[which].hd = q >> 4;
+ if (z->img_comp[which].hd > 3)
+ return stbi__err("bad DC huff", "Corrupt JPEG");
+ z->img_comp[which].ha = q & 15;
+ if (z->img_comp[which].ha > 3)
+ return stbi__err("bad AC huff", "Corrupt JPEG");
+ z->order[i] = which;
+ }
+
+ {
+ int aa;
+ z->spec_start = stbi__get8(z->s);
+ z->spec_end = stbi__get8(z->s); // should be 63, but might be 0
+ aa = stbi__get8(z->s);
+ z->succ_high = (aa >> 4);
+ z->succ_low = (aa & 15);
+ if (z->progressive) {
+ if (z->spec_start > 63 || z->spec_end > 63 || z->spec_start > z->spec_end ||
+ z->succ_high > 13 || z->succ_low > 13)
+ return stbi__err("bad SOS", "Corrupt JPEG");
+ } else {
+ if (z->spec_start != 0)
+ return stbi__err("bad SOS", "Corrupt JPEG");
+ if (z->succ_high != 0 || z->succ_low != 0)
+ return stbi__err("bad SOS", "Corrupt JPEG");
+ z->spec_end = 63;
+ }
+ }
+
+ return 1;
+}
+
+static int stbi__free_jpeg_components(stbi__jpeg *z, int ncomp, int why)
+{
+ int i;
+ for (i = 0; i < ncomp; ++i) {
+ if (z->img_comp[i].raw_data) {
+ STBI_FREE(z->img_comp[i].raw_data);
+ z->img_comp[i].raw_data = NULL;
+ z->img_comp[i].data = NULL;
+ }
+ if (z->img_comp[i].raw_coeff) {
+ STBI_FREE(z->img_comp[i].raw_coeff);
+ z->img_comp[i].raw_coeff = 0;
+ z->img_comp[i].coeff = 0;
+ }
+ if (z->img_comp[i].linebuf) {
+ STBI_FREE(z->img_comp[i].linebuf);
+ z->img_comp[i].linebuf = NULL;
+ }
+ }
+ return why;
+}
+
+static int stbi__process_frame_header(stbi__jpeg *z, int scan)
+{
+ stbi__context *s = z->s;
+ int Lf, p, i, q, h_max = 1, v_max = 1, c;
+ Lf = stbi__get16be(s);
+ if (Lf < 11)
+ return stbi__err("bad SOF len", "Corrupt JPEG"); // JPEG
+ p = stbi__get8(s);
+ if (p != 8)
+ return stbi__err("only 8-bit",
+ "JPEG format not supported: 8-bit only"); // JPEG baseline
+ s->img_y = stbi__get16be(s);
+ if (s->img_y == 0)
+ return stbi__err(
+ "no header height",
+ "JPEG format not supported: delayed height"); // Legal, but we don't handle it--but neither does IJG
+ s->img_x = stbi__get16be(s);
+ if (s->img_x == 0)
+ return stbi__err("0 width", "Corrupt JPEG"); // JPEG requires
+ if (s->img_y > STBI_MAX_DIMENSIONS)
+ return stbi__err("too large", "Very large image (corrupt?)");
+ if (s->img_x > STBI_MAX_DIMENSIONS)
+ return stbi__err("too large", "Very large image (corrupt?)");
+ c = stbi__get8(s);
+ if (c != 3 && c != 1 && c != 4)
+ return stbi__err("bad component count", "Corrupt JPEG");
+ s->img_n = c;
+ for (i = 0; i < c; ++i) {
+ z->img_comp[i].data = NULL;
+ z->img_comp[i].linebuf = NULL;
+ }
+
+ if (Lf != 8 + 3 * s->img_n)
+ return stbi__err("bad SOF len", "Corrupt JPEG");
+
+ z->rgb = 0;
+ for (i = 0; i < s->img_n; ++i) {
+ static const unsigned char rgb[3] = { 'R', 'G', 'B' };
+ z->img_comp[i].id = stbi__get8(s);
+ if (s->img_n == 3 && z->img_comp[i].id == rgb[i])
+ ++z->rgb;
+ q = stbi__get8(s);
+ z->img_comp[i].h = (q >> 4);
+ if (!z->img_comp[i].h || z->img_comp[i].h > 4)
+ return stbi__err("bad H", "Corrupt JPEG");
+ z->img_comp[i].v = q & 15;
+ if (!z->img_comp[i].v || z->img_comp[i].v > 4)
+ return stbi__err("bad V", "Corrupt JPEG");
+ z->img_comp[i].tq = stbi__get8(s);
+ if (z->img_comp[i].tq > 3)
+ return stbi__err("bad TQ", "Corrupt JPEG");
+ }
+
+ if (scan != STBI__SCAN_load)
+ return 1;
+
+ if (!stbi__mad3sizes_valid(s->img_x, s->img_y, s->img_n, 0))
+ return stbi__err("too large", "Image too large to decode");
+
+ for (i = 0; i < s->img_n; ++i) {
+ if (z->img_comp[i].h > h_max)
+ h_max = z->img_comp[i].h;
+ if (z->img_comp[i].v > v_max)
+ v_max = z->img_comp[i].v;
+ }
+
+ // check that plane subsampling factors are integer ratios; our resamplers can't deal with fractional ratios
+ // and I've never seen a non-corrupted JPEG file actually use them
+ for (i = 0; i < s->img_n; ++i) {
+ if (h_max % z->img_comp[i].h != 0)
+ return stbi__err("bad H", "Corrupt JPEG");
+ if (v_max % z->img_comp[i].v != 0)
+ return stbi__err("bad V", "Corrupt JPEG");
+ }
+
+ // compute interleaved mcu info
+ z->img_h_max = h_max;
+ z->img_v_max = v_max;
+ z->img_mcu_w = h_max * 8;
+ z->img_mcu_h = v_max * 8;
+ // these sizes can't be more than 17 bits
+ z->img_mcu_x = (s->img_x + z->img_mcu_w - 1) / z->img_mcu_w;
+ z->img_mcu_y = (s->img_y + z->img_mcu_h - 1) / z->img_mcu_h;
+
+ for (i = 0; i < s->img_n; ++i) {
+ // number of effective pixels (e.g. for non-interleaved MCU)
+ z->img_comp[i].x = (s->img_x * z->img_comp[i].h + h_max - 1) / h_max;
+ z->img_comp[i].y = (s->img_y * z->img_comp[i].v + v_max - 1) / v_max;
+ // to simplify generation, we'll allocate enough memory to decode
+ // the bogus oversized data from using interleaved MCUs and their
+ // big blocks (e.g. a 16x16 iMCU on an image of width 33); we won't
+ // discard the extra data until colorspace conversion
+ //
+ // img_mcu_x, img_mcu_y: <=17 bits; comp[i].h and .v are <=4 (checked earlier)
+ // so these muls can't overflow with 32-bit ints (which we require)
+ z->img_comp[i].w2 = z->img_mcu_x * z->img_comp[i].h * 8;
+ z->img_comp[i].h2 = z->img_mcu_y * z->img_comp[i].v * 8;
+ z->img_comp[i].coeff = 0;
+ z->img_comp[i].raw_coeff = 0;
+ z->img_comp[i].linebuf = NULL;
+ z->img_comp[i].raw_data =
+ stbi__malloc_mad2(z->img_comp[i].w2, z->img_comp[i].h2, 15);
+ if (z->img_comp[i].raw_data == NULL)
+ return stbi__free_jpeg_components(z, i + 1,
+ stbi__err("outofmem", "Out of memory"));
+ // align blocks for idct using mmx/sse
+ z->img_comp[i].data = (stbi_uc *)(((size_t)z->img_comp[i].raw_data + 15) & ~15);
+ if (z->progressive) {
+ // w2, h2 are multiples of 8 (see above)
+ z->img_comp[i].coeff_w = z->img_comp[i].w2 / 8;
+ z->img_comp[i].coeff_h = z->img_comp[i].h2 / 8;
+ z->img_comp[i].raw_coeff = stbi__malloc_mad3(
+ z->img_comp[i].w2, z->img_comp[i].h2, sizeof(short), 15);
+ if (z->img_comp[i].raw_coeff == NULL)
+ return stbi__free_jpeg_components(
+ z, i + 1, stbi__err("outofmem", "Out of memory"));
+ z->img_comp[i].coeff =
+ (short *)(((size_t)z->img_comp[i].raw_coeff + 15) & ~15);
+ }
+ }
+
+ return 1;
+}
+
+// use comparisons since in some cases we handle more than one case (e.g. SOF)
+#define stbi__DNL(x) ((x) == 0xdc)
+#define stbi__SOI(x) ((x) == 0xd8)
+#define stbi__EOI(x) ((x) == 0xd9)
+#define stbi__SOF(x) ((x) == 0xc0 || (x) == 0xc1 || (x) == 0xc2)
+#define stbi__SOS(x) ((x) == 0xda)
+
+#define stbi__SOF_progressive(x) ((x) == 0xc2)
+
+static int stbi__decode_jpeg_header(stbi__jpeg *z, int scan)
+{
+ int m;
+ z->jfif = 0;
+ z->app14_color_transform = -1; // valid values are 0,1,2
+ z->marker = STBI__MARKER_none; // initialize cached marker to empty
+ m = stbi__get_marker(z);
+ if (!stbi__SOI(m))
+ return stbi__err("no SOI", "Corrupt JPEG");
+ if (scan == STBI__SCAN_type)
+ return 1;
+ m = stbi__get_marker(z);
+ while (!stbi__SOF(m)) {
+ if (!stbi__process_marker(z, m))
+ return 0;
+ m = stbi__get_marker(z);
+ while (m == STBI__MARKER_none) {
+ // some files have extra padding after their blocks, so ok, we'll scan
+ if (stbi__at_eof(z->s))
+ return stbi__err("no SOF", "Corrupt JPEG");
+ m = stbi__get_marker(z);
+ }
+ }
+ z->progressive = stbi__SOF_progressive(m);
+ if (!stbi__process_frame_header(z, scan))
+ return 0;
+ return 1;
+}
+
+static int stbi__skip_jpeg_junk_at_end(stbi__jpeg *j)
+{
+ // some JPEGs have junk at end, skip over it but if we find what looks
+ // like a valid marker, resume there
+ while (!stbi__at_eof(j->s)) {
+ int x = stbi__get8(j->s);
+ while (x == 255) { // might be a marker
+ if (stbi__at_eof(j->s))
+ return STBI__MARKER_none;
+ x = stbi__get8(j->s);
+ if (x != 0x00 && x != 0xff) {
+ // not a stuffed zero or lead-in to another marker, looks
+ // like an actual marker, return it
+ return x;
+ }
+ // stuffed zero has x=0 now which ends the loop, meaning we go
+ // back to regular scan loop.
+ // repeated 0xff keeps trying to read the next byte of the marker.
+ }
+ }
+ return STBI__MARKER_none;
+}
+
+// decode image to YCbCr format
+static int stbi__decode_jpeg_image(stbi__jpeg *j)
+{
+ int m;
+ for (m = 0; m < 4; m++) {
+ j->img_comp[m].raw_data = NULL;
+ j->img_comp[m].raw_coeff = NULL;
+ }
+ j->restart_interval = 0;
+ if (!stbi__decode_jpeg_header(j, STBI__SCAN_load))
+ return 0;
+ m = stbi__get_marker(j);
+ while (!stbi__EOI(m)) {
+ if (stbi__SOS(m)) {
+ if (!stbi__process_scan_header(j))
+ return 0;
+ if (!stbi__parse_entropy_coded_data(j))
+ return 0;
+ if (j->marker == STBI__MARKER_none) {
+ j->marker = stbi__skip_jpeg_junk_at_end(j);
+ // if we reach eof without hitting a marker, stbi__get_marker() below will fail and we'll eventually return 0
+ }
+ m = stbi__get_marker(j);
+ if (STBI__RESTART(m))
+ m = stbi__get_marker(j);
+ } else if (stbi__DNL(m)) {
+ int Ld = stbi__get16be(j->s);
+ stbi__uint32 NL = stbi__get16be(j->s);
+ if (Ld != 4)
+ return stbi__err("bad DNL len", "Corrupt JPEG");
+ if (NL != j->s->img_y)
+ return stbi__err("bad DNL height", "Corrupt JPEG");
+ m = stbi__get_marker(j);
+ } else {
+ if (!stbi__process_marker(j, m))
+ return 1;
+ m = stbi__get_marker(j);
+ }
+ }
+ if (j->progressive)
+ stbi__jpeg_finish(j);
+ return 1;
+}
+
+// static jfif-centered resampling (across block boundaries)
+
+typedef stbi_uc *(*resample_row_func)(stbi_uc *out, stbi_uc *in0, stbi_uc *in1, int w, int hs);
+
+#define stbi__div4(x) ((stbi_uc)((x) >> 2))
+
+static stbi_uc *resample_row_1(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs)
+{
+ STBI_NOTUSED(out);
+ STBI_NOTUSED(in_far);
+ STBI_NOTUSED(w);
+ STBI_NOTUSED(hs);
+ return in_near;
+}
+
+static stbi_uc *stbi__resample_row_v_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w,
+ int hs)
+{
+ // need to generate two samples vertically for every one in input
+ int i;
+ STBI_NOTUSED(hs);
+ for (i = 0; i < w; ++i)
+ out[i] = stbi__div4(3 * in_near[i] + in_far[i] + 2);
+ return out;
+}
+
+static stbi_uc *stbi__resample_row_h_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w,
+ int hs)
+{
+ // need to generate two samples horizontally for every one in input
+ int i;
+ stbi_uc *input = in_near;
+
+ if (w == 1) {
+ // if only one sample, can't do any interpolation
+ out[0] = out[1] = input[0];
+ return out;
+ }
+
+ out[0] = input[0];
+ out[1] = stbi__div4(input[0] * 3 + input[1] + 2);
+ for (i = 1; i < w - 1; ++i) {
+ int n = 3 * input[i] + 2;
+ out[i * 2 + 0] = stbi__div4(n + input[i - 1]);
+ out[i * 2 + 1] = stbi__div4(n + input[i + 1]);
+ }
+ out[i * 2 + 0] = stbi__div4(input[w - 2] * 3 + input[w - 1] + 2);
+ out[i * 2 + 1] = input[w - 1];
+
+ STBI_NOTUSED(in_far);
+ STBI_NOTUSED(hs);
+
+ return out;
+}
+
+#define stbi__div16(x) ((stbi_uc)((x) >> 4))
+
+static stbi_uc *stbi__resample_row_hv_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w,
+ int hs)
+{
+ // need to generate 2x2 samples for every one in input
+ int i, t0, t1;
+ if (w == 1) {
+ out[0] = out[1] = stbi__div4(3 * in_near[0] + in_far[0] + 2);
+ return out;
+ }
+
+ t1 = 3 * in_near[0] + in_far[0];
+ out[0] = stbi__div4(t1 + 2);
+ for (i = 1; i < w; ++i) {
+ t0 = t1;
+ t1 = 3 * in_near[i] + in_far[i];
+ out[i * 2 - 1] = stbi__div16(3 * t0 + t1 + 8);
+ out[i * 2] = stbi__div16(3 * t1 + t0 + 8);
+ }
+ out[w * 2 - 1] = stbi__div4(t1 + 2);
+
+ STBI_NOTUSED(hs);
+
+ return out;
+}
+
+#if defined(STBI_SSE2) || defined(STBI_NEON)
+static stbi_uc *stbi__resample_row_hv_2_simd(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w,
+ int hs)
+{
+ // need to generate 2x2 samples for every one in input
+ int i = 0, t0, t1;
+
+ if (w == 1) {
+ out[0] = out[1] = stbi__div4(3 * in_near[0] + in_far[0] + 2);
+ return out;
+ }
+
+ t1 = 3 * in_near[0] + in_far[0];
+ // process groups of 8 pixels for as long as we can.
+ // note we can't handle the last pixel in a row in this loop
+ // because we need to handle the filter boundary conditions.
+ for (; i < ((w - 1) & ~7); i += 8) {
+#if defined(STBI_SSE2)
+ // load and perform the vertical filtering pass
+ // this uses 3*x + y = 4*x + (y - x)
+ __m128i zero = _mm_setzero_si128();
+ __m128i farb = _mm_loadl_epi64((__m128i *)(in_far + i));
+ __m128i nearb = _mm_loadl_epi64((__m128i *)(in_near + i));
+ __m128i farw = _mm_unpacklo_epi8(farb, zero);
+ __m128i nearw = _mm_unpacklo_epi8(nearb, zero);
+ __m128i diff = _mm_sub_epi16(farw, nearw);
+ __m128i nears = _mm_slli_epi16(nearw, 2);
+ __m128i curr = _mm_add_epi16(nears, diff); // current row
+
+ // horizontal filter works the same based on shifted vers of current
+ // row. "prev" is current row shifted right by 1 pixel; we need to
+ // insert the previous pixel value (from t1).
+ // "next" is current row shifted left by 1 pixel, with first pixel
+ // of next block of 8 pixels added in.
+ __m128i prv0 = _mm_slli_si128(curr, 2);
+ __m128i nxt0 = _mm_srli_si128(curr, 2);
+ __m128i prev = _mm_insert_epi16(prv0, t1, 0);
+ __m128i next = _mm_insert_epi16(nxt0, 3 * in_near[i + 8] + in_far[i + 8], 7);
+
+ // horizontal filter, polyphase implementation since it's convenient:
+ // even pixels = 3*cur + prev = cur*4 + (prev - cur)
+ // odd pixels = 3*cur + next = cur*4 + (next - cur)
+ // note the shared term.
+ __m128i bias = _mm_set1_epi16(8);
+ __m128i curs = _mm_slli_epi16(curr, 2);
+ __m128i prvd = _mm_sub_epi16(prev, curr);
+ __m128i nxtd = _mm_sub_epi16(next, curr);
+ __m128i curb = _mm_add_epi16(curs, bias);
+ __m128i even = _mm_add_epi16(prvd, curb);
+ __m128i odd = _mm_add_epi16(nxtd, curb);
+
+ // interleave even and odd pixels, then undo scaling.
+ __m128i int0 = _mm_unpacklo_epi16(even, odd);
+ __m128i int1 = _mm_unpackhi_epi16(even, odd);
+ __m128i de0 = _mm_srli_epi16(int0, 4);
+ __m128i de1 = _mm_srli_epi16(int1, 4);
+
+ // pack and write output
+ __m128i outv = _mm_packus_epi16(de0, de1);
+ _mm_storeu_si128((__m128i *)(out + i * 2), outv);
+#elif defined(STBI_NEON)
+ // load and perform the vertical filtering pass
+ // this uses 3*x + y = 4*x + (y - x)
+ uint8x8_t farb = vld1_u8(in_far + i);
+ uint8x8_t nearb = vld1_u8(in_near + i);
+ int16x8_t diff = vreinterpretq_s16_u16(vsubl_u8(farb, nearb));
+ int16x8_t nears = vreinterpretq_s16_u16(vshll_n_u8(nearb, 2));
+ int16x8_t curr = vaddq_s16(nears, diff); // current row
+
+ // horizontal filter works the same based on shifted vers of current
+ // row. "prev" is current row shifted right by 1 pixel; we need to
+ // insert the previous pixel value (from t1).
+ // "next" is current row shifted left by 1 pixel, with first pixel
+ // of next block of 8 pixels added in.
+ int16x8_t prv0 = vextq_s16(curr, curr, 7);
+ int16x8_t nxt0 = vextq_s16(curr, curr, 1);
+ int16x8_t prev = vsetq_lane_s16(t1, prv0, 0);
+ int16x8_t next = vsetq_lane_s16(3 * in_near[i + 8] + in_far[i + 8], nxt0, 7);
+
+ // horizontal filter, polyphase implementation since it's convenient:
+ // even pixels = 3*cur + prev = cur*4 + (prev - cur)
+ // odd pixels = 3*cur + next = cur*4 + (next - cur)
+ // note the shared term.
+ int16x8_t curs = vshlq_n_s16(curr, 2);
+ int16x8_t prvd = vsubq_s16(prev, curr);
+ int16x8_t nxtd = vsubq_s16(next, curr);
+ int16x8_t even = vaddq_s16(curs, prvd);
+ int16x8_t odd = vaddq_s16(curs, nxtd);
+
+ // undo scaling and round, then store with even/odd phases interleaved
+ uint8x8x2_t o;
+ o.val[0] = vqrshrun_n_s16(even, 4);
+ o.val[1] = vqrshrun_n_s16(odd, 4);
+ vst2_u8(out + i * 2, o);
+#endif
+
+ // "previous" value for next iter
+ t1 = 3 * in_near[i + 7] + in_far[i + 7];
+ }
+
+ t0 = t1;
+ t1 = 3 * in_near[i] + in_far[i];
+ out[i * 2] = stbi__div16(3 * t1 + t0 + 8);
+
+ for (++i; i < w; ++i) {
+ t0 = t1;
+ t1 = 3 * in_near[i] + in_far[i];
+ out[i * 2 - 1] = stbi__div16(3 * t0 + t1 + 8);
+ out[i * 2] = stbi__div16(3 * t1 + t0 + 8);
+ }
+ out[w * 2 - 1] = stbi__div4(t1 + 2);
+
+ STBI_NOTUSED(hs);
+
+ return out;
+}
+#endif
+
+static stbi_uc *stbi__resample_row_generic(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w,
+ int hs)
+{
+ // resample with nearest-neighbor
+ int i, j;
+ STBI_NOTUSED(in_far);
+ for (i = 0; i < w; ++i)
+ for (j = 0; j < hs; ++j)
+ out[i * hs + j] = in_near[i];
+ return out;
+}
+
+// this is a reduced-precision calculation of YCbCr-to-RGB introduced
+// to make sure the code produces the same results in both SIMD and scalar
+#define stbi__float2fixed(x) (((int)((x) * 4096.0f + 0.5f)) << 8)
+static void stbi__YCbCr_to_RGB_row(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb,
+ const stbi_uc *pcr, int count, int step)
+{
+ int i;
+ for (i = 0; i < count; ++i) {
+ int y_fixed = (y[i] << 20) + (1 << 19); // rounding
+ int r, g, b;
+ int cr = pcr[i] - 128;
+ int cb = pcb[i] - 128;
+ r = y_fixed + cr * stbi__float2fixed(1.40200f);
+ g = y_fixed + (cr * -stbi__float2fixed(0.71414f)) +
+ ((cb * -stbi__float2fixed(0.34414f)) & 0xffff0000);
+ b = y_fixed + cb * stbi__float2fixed(1.77200f);
+ r >>= 20;
+ g >>= 20;
+ b >>= 20;
+ if ((unsigned)r > 255) {
+ if (r < 0)
+ r = 0;
+ else
+ r = 255;
+ }
+ if ((unsigned)g > 255) {
+ if (g < 0)
+ g = 0;
+ else
+ g = 255;
+ }
+ if ((unsigned)b > 255) {
+ if (b < 0)
+ b = 0;
+ else
+ b = 255;
+ }
+ out[0] = (stbi_uc)r;
+ out[1] = (stbi_uc)g;
+ out[2] = (stbi_uc)b;
+ out[3] = 255;
+ out += step;
+ }
+}
+
+#if defined(STBI_SSE2) || defined(STBI_NEON)
+static void stbi__YCbCr_to_RGB_simd(stbi_uc *out, stbi_uc const *y, stbi_uc const *pcb,
+ stbi_uc const *pcr, int count, int step)
+{
+ int i = 0;
+
+#ifdef STBI_SSE2
+ // step == 3 is pretty ugly on the final interleave, and i'm not convinced
+ // it's useful in practice (you wouldn't use it for textures, for example).
+ // so just accelerate step == 4 case.
+ if (step == 4) {
+ // this is a fairly straightforward implementation and not super-optimized.
+ __m128i signflip = _mm_set1_epi8(-0x80);
+ __m128i cr_const0 = _mm_set1_epi16((short)(1.40200f * 4096.0f + 0.5f));
+ __m128i cr_const1 = _mm_set1_epi16(-(short)(0.71414f * 4096.0f + 0.5f));
+ __m128i cb_const0 = _mm_set1_epi16(-(short)(0.34414f * 4096.0f + 0.5f));
+ __m128i cb_const1 = _mm_set1_epi16((short)(1.77200f * 4096.0f + 0.5f));
+ __m128i y_bias = _mm_set1_epi8((char)(unsigned char)128);
+ __m128i xw = _mm_set1_epi16(255); // alpha channel
+
+ for (; i + 7 < count; i += 8) {
+ // load
+ __m128i y_bytes = _mm_loadl_epi64((__m128i *)(y + i));
+ __m128i cr_bytes = _mm_loadl_epi64((__m128i *)(pcr + i));
+ __m128i cb_bytes = _mm_loadl_epi64((__m128i *)(pcb + i));
+ __m128i cr_biased = _mm_xor_si128(cr_bytes, signflip); // -128
+ __m128i cb_biased = _mm_xor_si128(cb_bytes, signflip); // -128
+
+ // unpack to short (and left-shift cr, cb by 8)
+ __m128i yw = _mm_unpacklo_epi8(y_bias, y_bytes);
+ __m128i crw = _mm_unpacklo_epi8(_mm_setzero_si128(), cr_biased);
+ __m128i cbw = _mm_unpacklo_epi8(_mm_setzero_si128(), cb_biased);
+
+ // color transform
+ __m128i yws = _mm_srli_epi16(yw, 4);
+ __m128i cr0 = _mm_mulhi_epi16(cr_const0, crw);
+ __m128i cb0 = _mm_mulhi_epi16(cb_const0, cbw);
+ __m128i cb1 = _mm_mulhi_epi16(cbw, cb_const1);
+ __m128i cr1 = _mm_mulhi_epi16(crw, cr_const1);
+ __m128i rws = _mm_add_epi16(cr0, yws);
+ __m128i gwt = _mm_add_epi16(cb0, yws);
+ __m128i bws = _mm_add_epi16(yws, cb1);
+ __m128i gws = _mm_add_epi16(gwt, cr1);
+
+ // descale
+ __m128i rw = _mm_srai_epi16(rws, 4);
+ __m128i bw = _mm_srai_epi16(bws, 4);
+ __m128i gw = _mm_srai_epi16(gws, 4);
+
+ // back to byte, set up for transpose
+ __m128i brb = _mm_packus_epi16(rw, bw);
+ __m128i gxb = _mm_packus_epi16(gw, xw);
+
+ // transpose to interleave channels
+ __m128i t0 = _mm_unpacklo_epi8(brb, gxb);
+ __m128i t1 = _mm_unpackhi_epi8(brb, gxb);
+ __m128i o0 = _mm_unpacklo_epi16(t0, t1);
+ __m128i o1 = _mm_unpackhi_epi16(t0, t1);
+
+ // store
+ _mm_storeu_si128((__m128i *)(out + 0), o0);
+ _mm_storeu_si128((__m128i *)(out + 16), o1);
+ out += 32;
+ }
+ }
+#endif
+
+#ifdef STBI_NEON
+ // in this version, step=3 support would be easy to add. but is there demand?
+ if (step == 4) {
+ // this is a fairly straightforward implementation and not super-optimized.
+ uint8x8_t signflip = vdup_n_u8(0x80);
+ int16x8_t cr_const0 = vdupq_n_s16((short)(1.40200f * 4096.0f + 0.5f));
+ int16x8_t cr_const1 = vdupq_n_s16(-(short)(0.71414f * 4096.0f + 0.5f));
+ int16x8_t cb_const0 = vdupq_n_s16(-(short)(0.34414f * 4096.0f + 0.5f));
+ int16x8_t cb_const1 = vdupq_n_s16((short)(1.77200f * 4096.0f + 0.5f));
+
+ for (; i + 7 < count; i += 8) {
+ // load
+ uint8x8_t y_bytes = vld1_u8(y + i);
+ uint8x8_t cr_bytes = vld1_u8(pcr + i);
+ uint8x8_t cb_bytes = vld1_u8(pcb + i);
+ int8x8_t cr_biased = vreinterpret_s8_u8(vsub_u8(cr_bytes, signflip));
+ int8x8_t cb_biased = vreinterpret_s8_u8(vsub_u8(cb_bytes, signflip));
+
+ // expand to s16
+ int16x8_t yws = vreinterpretq_s16_u16(vshll_n_u8(y_bytes, 4));
+ int16x8_t crw = vshll_n_s8(cr_biased, 7);
+ int16x8_t cbw = vshll_n_s8(cb_biased, 7);
+
+ // color transform
+ int16x8_t cr0 = vqdmulhq_s16(crw, cr_const0);
+ int16x8_t cb0 = vqdmulhq_s16(cbw, cb_const0);
+ int16x8_t cr1 = vqdmulhq_s16(crw, cr_const1);
+ int16x8_t cb1 = vqdmulhq_s16(cbw, cb_const1);
+ int16x8_t rws = vaddq_s16(yws, cr0);
+ int16x8_t gws = vaddq_s16(vaddq_s16(yws, cb0), cr1);
+ int16x8_t bws = vaddq_s16(yws, cb1);
+
+ // undo scaling, round, convert to byte
+ uint8x8x4_t o;
+ o.val[0] = vqrshrun_n_s16(rws, 4);
+ o.val[1] = vqrshrun_n_s16(gws, 4);
+ o.val[2] = vqrshrun_n_s16(bws, 4);
+ o.val[3] = vdup_n_u8(255);
+
+ // store, interleaving r/g/b/a
+ vst4_u8(out, o);
+ out += 8 * 4;
+ }
+ }
+#endif
+
+ for (; i < count; ++i) {
+ int y_fixed = (y[i] << 20) + (1 << 19); // rounding
+ int r, g, b;
+ int cr = pcr[i] - 128;
+ int cb = pcb[i] - 128;
+ r = y_fixed + cr * stbi__float2fixed(1.40200f);
+ g = y_fixed + cr * -stbi__float2fixed(0.71414f) +
+ ((cb * -stbi__float2fixed(0.34414f)) & 0xffff0000);
+ b = y_fixed + cb * stbi__float2fixed(1.77200f);
+ r >>= 20;
+ g >>= 20;
+ b >>= 20;
+ if ((unsigned)r > 255) {
+ if (r < 0)
+ r = 0;
+ else
+ r = 255;
+ }
+ if ((unsigned)g > 255) {
+ if (g < 0)
+ g = 0;
+ else
+ g = 255;
+ }
+ if ((unsigned)b > 255) {
+ if (b < 0)
+ b = 0;
+ else
+ b = 255;
+ }
+ out[0] = (stbi_uc)r;
+ out[1] = (stbi_uc)g;
+ out[2] = (stbi_uc)b;
+ out[3] = 255;
+ out += step;
+ }
+}
+#endif
+
+// set up the kernels
+static void stbi__setup_jpeg(stbi__jpeg *j)
+{
+ j->idct_block_kernel = stbi__idct_block;
+ j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_row;
+ j->resample_row_hv_2_kernel = stbi__resample_row_hv_2;
+
+#ifdef STBI_SSE2
+ if (stbi__sse2_available()) {
+ j->idct_block_kernel = stbi__idct_simd;
+ j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd;
+ j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd;
+ }
+#endif
+
+#ifdef STBI_NEON
+ j->idct_block_kernel = stbi__idct_simd;
+ j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd;
+ j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd;
+#endif
+}
+
+// clean up the temporary component buffers
+static void stbi__cleanup_jpeg(stbi__jpeg *j)
+{
+ stbi__free_jpeg_components(j, j->s->img_n, 0);
+}
+
+typedef struct {
+ resample_row_func resample;
+ stbi_uc *line0, *line1;
+ int hs, vs; // expansion factor in each axis
+ int w_lores; // horizontal pixels pre-expansion
+ int ystep; // how far through vertical expansion we are
+ int ypos; // which pre-expansion row we're on
+} stbi__resample;
+
+// fast 0..255 * 0..255 => 0..255 rounded multiplication
+static stbi_uc stbi__blinn_8x8(stbi_uc x, stbi_uc y)
+{
+ unsigned int t = x * y + 128;
+ return (stbi_uc)((t + (t >> 8)) >> 8);
+}
+
+static stbi_uc *load_jpeg_image(stbi__jpeg *z, int *out_x, int *out_y, int *comp, int req_comp)
+{
+ int n, decode_n, is_rgb;
+ z->s->img_n = 0; // make stbi__cleanup_jpeg safe
+
+ // validate req_comp
+ if (req_comp < 0 || req_comp > 4)
+ return stbi__errpuc("bad req_comp", "Internal error");
+
+ // load a jpeg image from whichever source, but leave in YCbCr format
+ if (!stbi__decode_jpeg_image(z)) {
+ stbi__cleanup_jpeg(z);
+ return NULL;
+ }
+
+ // determine actual number of components to generate
+ n = req_comp ? req_comp : z->s->img_n >= 3 ? 3 : 1;
+
+ is_rgb = z->s->img_n == 3 && (z->rgb == 3 || (z->app14_color_transform == 0 && !z->jfif));
+
+ if (z->s->img_n == 3 && n < 3 && !is_rgb)
+ decode_n = 1;
+ else
+ decode_n = z->s->img_n;
+
+ // nothing to do if no components requested; check this now to avoid
+ // accessing uninitialized coutput[0] later
+ if (decode_n <= 0) {
+ stbi__cleanup_jpeg(z);
+ return NULL;
+ }
+
+ // resample and color-convert
+ {
+ int k;
+ unsigned int i, j;
+ stbi_uc *output;
+ stbi_uc *coutput[4] = { NULL, NULL, NULL, NULL };
+
+ stbi__resample res_comp[4];
+
+ for (k = 0; k < decode_n; ++k) {
+ stbi__resample *r = &res_comp[k];
+
+ // allocate line buffer big enough for upsampling off the edges
+ // with upsample factor of 4
+ z->img_comp[k].linebuf = (stbi_uc *)stbi__malloc(z->s->img_x + 3);
+ if (!z->img_comp[k].linebuf) {
+ stbi__cleanup_jpeg(z);
+ return stbi__errpuc("outofmem", "Out of memory");
+ }
+
+ r->hs = z->img_h_max / z->img_comp[k].h;
+ r->vs = z->img_v_max / z->img_comp[k].v;
+ r->ystep = r->vs >> 1;
+ r->w_lores = (z->s->img_x + r->hs - 1) / r->hs;
+ r->ypos = 0;
+ r->line0 = r->line1 = z->img_comp[k].data;
+
+ if (r->hs == 1 && r->vs == 1)
+ r->resample = resample_row_1;
+ else if (r->hs == 1 && r->vs == 2)
+ r->resample = stbi__resample_row_v_2;
+ else if (r->hs == 2 && r->vs == 1)
+ r->resample = stbi__resample_row_h_2;
+ else if (r->hs == 2 && r->vs == 2)
+ r->resample = z->resample_row_hv_2_kernel;
+ else
+ r->resample = stbi__resample_row_generic;
+ }
+
+ // can't error after this so, this is safe
+ output = (stbi_uc *)stbi__malloc_mad3(n, z->s->img_x, z->s->img_y, 1);
+ if (!output) {
+ stbi__cleanup_jpeg(z);
+ return stbi__errpuc("outofmem", "Out of memory");
+ }
+
+ // now go ahead and resample
+ for (j = 0; j < z->s->img_y; ++j) {
+ stbi_uc *out = output + n * z->s->img_x * j;
+ for (k = 0; k < decode_n; ++k) {
+ stbi__resample *r = &res_comp[k];
+ int y_bot = r->ystep >= (r->vs >> 1);
+ coutput[k] = r->resample(z->img_comp[k].linebuf,
+ y_bot ? r->line1 : r->line0,
+ y_bot ? r->line0 : r->line1, r->w_lores,
+ r->hs);
+ if (++r->ystep >= r->vs) {
+ r->ystep = 0;
+ r->line0 = r->line1;
+ if (++r->ypos < z->img_comp[k].y)
+ r->line1 += z->img_comp[k].w2;
+ }
+ }
+ if (n >= 3) {
+ stbi_uc *y = coutput[0];
+ if (z->s->img_n == 3) {
+ if (is_rgb) {
+ for (i = 0; i < z->s->img_x; ++i) {
+ out[0] = y[i];
+ out[1] = coutput[1][i];
+ out[2] = coutput[2][i];
+ out[3] = 255;
+ out += n;
+ }
+ } else {
+ z->YCbCr_to_RGB_kernel(out, y, coutput[1],
+ coutput[2], z->s->img_x, n);
+ }
+ } else if (z->s->img_n == 4) {
+ if (z->app14_color_transform == 0) { // CMYK
+ for (i = 0; i < z->s->img_x; ++i) {
+ stbi_uc m = coutput[3][i];
+ out[0] = stbi__blinn_8x8(coutput[0][i], m);
+ out[1] = stbi__blinn_8x8(coutput[1][i], m);
+ out[2] = stbi__blinn_8x8(coutput[2][i], m);
+ out[3] = 255;
+ out += n;
+ }
+ } else if (z->app14_color_transform == 2) { // YCCK
+ z->YCbCr_to_RGB_kernel(out, y, coutput[1],
+ coutput[2], z->s->img_x, n);
+ for (i = 0; i < z->s->img_x; ++i) {
+ stbi_uc m = coutput[3][i];
+ out[0] = stbi__blinn_8x8(255 - out[0], m);
+ out[1] = stbi__blinn_8x8(255 - out[1], m);
+ out[2] = stbi__blinn_8x8(255 - out[2], m);
+ out += n;
+ }
+ } else { // YCbCr + alpha? Ignore the fourth channel for now
+ z->YCbCr_to_RGB_kernel(out, y, coutput[1],
+ coutput[2], z->s->img_x, n);
+ }
+ } else
+ for (i = 0; i < z->s->img_x; ++i) {
+ out[0] = out[1] = out[2] = y[i];
+ out[3] = 255; // not used if n==3
+ out += n;
+ }
+ } else {
+ if (is_rgb) {
+ if (n == 1)
+ for (i = 0; i < z->s->img_x; ++i)
+ *out++ = stbi__compute_y(coutput[0][i],
+ coutput[1][i],
+ coutput[2][i]);
+ else {
+ for (i = 0; i < z->s->img_x; ++i, out += 2) {
+ out[0] = stbi__compute_y(coutput[0][i],
+ coutput[1][i],
+ coutput[2][i]);
+ out[1] = 255;
+ }
+ }
+ } else if (z->s->img_n == 4 && z->app14_color_transform == 0) {
+ for (i = 0; i < z->s->img_x; ++i) {
+ stbi_uc m = coutput[3][i];
+ stbi_uc r = stbi__blinn_8x8(coutput[0][i], m);
+ stbi_uc g = stbi__blinn_8x8(coutput[1][i], m);
+ stbi_uc b = stbi__blinn_8x8(coutput[2][i], m);
+ out[0] = stbi__compute_y(r, g, b);
+ out[1] = 255;
+ out += n;
+ }
+ } else if (z->s->img_n == 4 && z->app14_color_transform == 2) {
+ for (i = 0; i < z->s->img_x; ++i) {
+ out[0] = stbi__blinn_8x8(255 - coutput[0][i],
+ coutput[3][i]);
+ out[1] = 255;
+ out += n;
+ }
+ } else {
+ stbi_uc *y = coutput[0];
+ if (n == 1)
+ for (i = 0; i < z->s->img_x; ++i)
+ out[i] = y[i];
+ else
+ for (i = 0; i < z->s->img_x; ++i) {
+ *out++ = y[i];
+ *out++ = 255;
+ }
+ }
+ }
+ }
+ stbi__cleanup_jpeg(z);
+ *out_x = z->s->img_x;
+ *out_y = z->s->img_y;
+ if (comp)
+ *comp = z->s->img_n >= 3 ? 3 : 1; // report original components, not output
+ return output;
+ }
+}
+
+static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri)
+{
+ unsigned char *result;
+ stbi__jpeg *j = (stbi__jpeg *)stbi__malloc(sizeof(stbi__jpeg));
+ if (!j)
+ return stbi__errpuc("outofmem", "Out of memory");
+ memset(j, 0, sizeof(stbi__jpeg));
+ STBI_NOTUSED(ri);
+ j->s = s;
+ stbi__setup_jpeg(j);
+ result = load_jpeg_image(j, x, y, comp, req_comp);
+ STBI_FREE(j);
+ return result;
+}
+
+static int stbi__jpeg_test(stbi__context *s)
+{
+ int r;
+ stbi__jpeg *j = (stbi__jpeg *)stbi__malloc(sizeof(stbi__jpeg));
+ if (!j)
+ return stbi__err("outofmem", "Out of memory");
+ memset(j, 0, sizeof(stbi__jpeg));
+ j->s = s;
+ stbi__setup_jpeg(j);
+ r = stbi__decode_jpeg_header(j, STBI__SCAN_type);
+ stbi__rewind(s);
+ STBI_FREE(j);
+ return r;
+}
+
+static int stbi__jpeg_info_raw(stbi__jpeg *j, int *x, int *y, int *comp)
+{
+ if (!stbi__decode_jpeg_header(j, STBI__SCAN_header)) {
+ stbi__rewind(j->s);
+ return 0;
+ }
+ if (x)
+ *x = j->s->img_x;
+ if (y)
+ *y = j->s->img_y;
+ if (comp)
+ *comp = j->s->img_n >= 3 ? 3 : 1;
+ return 1;
+}
+
+static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ int result;
+ stbi__jpeg *j = (stbi__jpeg *)(stbi__malloc(sizeof(stbi__jpeg)));
+ if (!j)
+ return stbi__err("outofmem", "Out of memory");
+ memset(j, 0, sizeof(stbi__jpeg));
+ j->s = s;
+ result = stbi__jpeg_info_raw(j, x, y, comp);
+ STBI_FREE(j);
+ return result;
+}
+#endif
+
+// public domain zlib decode v0.2 Sean Barrett 2006-11-18
+// simple implementation
+// - all input must be provided in an upfront buffer
+// - all output is written to a single output buffer (can malloc/realloc)
+// performance
+// - fast huffman
+
+#ifndef STBI_NO_ZLIB
+
+// fast-way is faster to check than jpeg huffman, but slow way is slower
+#define STBI__ZFAST_BITS 9 // accelerate all cases in default tables
+#define STBI__ZFAST_MASK ((1 << STBI__ZFAST_BITS) - 1)
+#define STBI__ZNSYMS 288 // number of symbols in literal/length alphabet
+
+// zlib-style huffman encoding
+// (jpegs packs from left, zlib from right, so can't share code)
+typedef struct {
+ stbi__uint16 fast[1 << STBI__ZFAST_BITS];
+ stbi__uint16 firstcode[16];
+ int maxcode[17];
+ stbi__uint16 firstsymbol[16];
+ stbi_uc size[STBI__ZNSYMS];
+ stbi__uint16 value[STBI__ZNSYMS];
+} stbi__zhuffman;
+
+stbi_inline static int stbi__bitreverse16(int n)
+{
+ n = ((n & 0xAAAA) >> 1) | ((n & 0x5555) << 1);
+ n = ((n & 0xCCCC) >> 2) | ((n & 0x3333) << 2);
+ n = ((n & 0xF0F0) >> 4) | ((n & 0x0F0F) << 4);
+ n = ((n & 0xFF00) >> 8) | ((n & 0x00FF) << 8);
+ return n;
+}
+
+stbi_inline static int stbi__bit_reverse(int v, int bits)
+{
+ STBI_ASSERT(bits <= 16);
+ // to bit reverse n bits, reverse 16 and shift
+ // e.g. 11 bits, bit reverse and shift away 5
+ return stbi__bitreverse16(v) >> (16 - bits);
+}
+
+static int stbi__zbuild_huffman(stbi__zhuffman *z, const stbi_uc *sizelist, int num)
+{
+ int i, k = 0;
+ int code, next_code[16], sizes[17];
+
+ // DEFLATE spec for generating codes
+ memset(sizes, 0, sizeof(sizes));
+ memset(z->fast, 0, sizeof(z->fast));
+ for (i = 0; i < num; ++i)
+ ++sizes[sizelist[i]];
+ sizes[0] = 0;
+ for (i = 1; i < 16; ++i)
+ if (sizes[i] > (1 << i))
+ return stbi__err("bad sizes", "Corrupt PNG");
+ code = 0;
+ for (i = 1; i < 16; ++i) {
+ next_code[i] = code;
+ z->firstcode[i] = (stbi__uint16)code;
+ z->firstsymbol[i] = (stbi__uint16)k;
+ code = (code + sizes[i]);
+ if (sizes[i])
+ if (code - 1 >= (1 << i))
+ return stbi__err("bad codelengths", "Corrupt PNG");
+ z->maxcode[i] = code << (16 - i); // preshift for inner loop
+ code <<= 1;
+ k += sizes[i];
+ }
+ z->maxcode[16] = 0x10000; // sentinel
+ for (i = 0; i < num; ++i) {
+ int s = sizelist[i];
+ if (s) {
+ int c = next_code[s] - z->firstcode[s] + z->firstsymbol[s];
+ stbi__uint16 fastv = (stbi__uint16)((s << 9) | i);
+ z->size[c] = (stbi_uc)s;
+ z->value[c] = (stbi__uint16)i;
+ if (s <= STBI__ZFAST_BITS) {
+ int j = stbi__bit_reverse(next_code[s], s);
+ while (j < (1 << STBI__ZFAST_BITS)) {
+ z->fast[j] = fastv;
+ j += (1 << s);
+ }
+ }
+ ++next_code[s];
+ }
+ }
+ return 1;
+}
+
+// zlib-from-memory implementation for PNG reading
+// because PNG allows splitting the zlib stream arbitrarily,
+// and it's annoying structurally to have PNG call ZLIB call PNG,
+// we require PNG read all the IDATs and combine them into a single
+// memory buffer
+
+typedef struct {
+ stbi_uc *zbuffer, *zbuffer_end;
+ int num_bits;
+ stbi__uint32 code_buffer;
+
+ char *zout;
+ char *zout_start;
+ char *zout_end;
+ int z_expandable;
+
+ stbi__zhuffman z_length, z_distance;
+} stbi__zbuf;
+
+stbi_inline static int stbi__zeof(stbi__zbuf *z)
+{
+ return (z->zbuffer >= z->zbuffer_end);
+}
+
+stbi_inline static stbi_uc stbi__zget8(stbi__zbuf *z)
+{
+ return stbi__zeof(z) ? 0 : *z->zbuffer++;
+}
+
+static void stbi__fill_bits(stbi__zbuf *z)
+{
+ do {
+ if (z->code_buffer >= (1U << z->num_bits)) {
+ z->zbuffer = z->zbuffer_end; /* treat this as EOF so we fail. */
+ return;
+ }
+ z->code_buffer |= (unsigned int)stbi__zget8(z) << z->num_bits;
+ z->num_bits += 8;
+ } while (z->num_bits <= 24);
+}
+
+stbi_inline static unsigned int stbi__zreceive(stbi__zbuf *z, int n)
+{
+ unsigned int k;
+ if (z->num_bits < n)
+ stbi__fill_bits(z);
+ k = z->code_buffer & ((1 << n) - 1);
+ z->code_buffer >>= n;
+ z->num_bits -= n;
+ return k;
+}
+
+static int stbi__zhuffman_decode_slowpath(stbi__zbuf *a, stbi__zhuffman *z)
+{
+ int b, s, k;
+ // not resolved by fast table, so compute it the slow way
+ // use jpeg approach, which requires MSbits at top
+ k = stbi__bit_reverse(a->code_buffer, 16);
+ for (s = STBI__ZFAST_BITS + 1;; ++s)
+ if (k < z->maxcode[s])
+ break;
+ if (s >= 16)
+ return -1; // invalid code!
+ // code size is s, so:
+ b = (k >> (16 - s)) - z->firstcode[s] + z->firstsymbol[s];
+ if (b >= STBI__ZNSYMS)
+ return -1; // some data was corrupt somewhere!
+ if (z->size[b] != s)
+ return -1; // was originally an assert, but report failure instead.
+ a->code_buffer >>= s;
+ a->num_bits -= s;
+ return z->value[b];
+}
+
+stbi_inline static int stbi__zhuffman_decode(stbi__zbuf *a, stbi__zhuffman *z)
+{
+ int b, s;
+ if (a->num_bits < 16) {
+ if (stbi__zeof(a)) {
+ return -1; /* report error for unexpected end of data. */
+ }
+ stbi__fill_bits(a);
+ }
+ b = z->fast[a->code_buffer & STBI__ZFAST_MASK];
+ if (b) {
+ s = b >> 9;
+ a->code_buffer >>= s;
+ a->num_bits -= s;
+ return b & 511;
+ }
+ return stbi__zhuffman_decode_slowpath(a, z);
+}
+
+static int stbi__zexpand(stbi__zbuf *z, char *zout,
+ int n) // need to make room for n bytes
+{
+ char *q;
+ unsigned int cur, limit, old_limit;
+ z->zout = zout;
+ if (!z->z_expandable)
+ return stbi__err("output buffer limit", "Corrupt PNG");
+ cur = (unsigned int)(z->zout - z->zout_start);
+ limit = old_limit = (unsigned)(z->zout_end - z->zout_start);
+ if (UINT_MAX - cur < (unsigned)n)
+ return stbi__err("outofmem", "Out of memory");
+ while (cur + n > limit) {
+ if (limit > UINT_MAX / 2)
+ return stbi__err("outofmem", "Out of memory");
+ limit *= 2;
+ }
+ q = (char *)STBI_REALLOC_SIZED(z->zout_start, old_limit, limit);
+ STBI_NOTUSED(old_limit);
+ if (q == NULL)
+ return stbi__err("outofmem", "Out of memory");
+ z->zout_start = q;
+ z->zout = q + cur;
+ z->zout_end = q + limit;
+ return 1;
+}
+
+static const int stbi__zlength_base[31] = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15,
+ 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83,
+ 99, 115, 131, 163, 195, 227, 258, 0, 0 };
+
+static const int stbi__zlength_extra[31] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,
+ 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0 };
+
+static const int stbi__zdist_base[32] = { 1, 2, 3, 4, 5, 7, 9, 13,
+ 17, 25, 33, 49, 65, 97, 129, 193,
+ 257, 385, 513, 769, 1025, 1537, 2049, 3073,
+ 4097, 6145, 8193, 12289, 16385, 24577, 0, 0 };
+
+static const int stbi__zdist_extra[32] = { 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6,
+ 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 };
+
+static int stbi__parse_huffman_block(stbi__zbuf *a)
+{
+ char *zout = a->zout;
+ for (;;) {
+ int z = stbi__zhuffman_decode(a, &a->z_length);
+ if (z < 256) {
+ if (z < 0)
+ return stbi__err("bad huffman code",
+ "Corrupt PNG"); // error in huffman codes
+ if (zout >= a->zout_end) {
+ if (!stbi__zexpand(a, zout, 1))
+ return 0;
+ zout = a->zout;
+ }
+ *zout++ = (char)z;
+ } else {
+ stbi_uc *p;
+ int len, dist;
+ if (z == 256) {
+ a->zout = zout;
+ return 1;
+ }
+ if (z >= 286)
+ return stbi__err(
+ "bad huffman code",
+ "Corrupt PNG"); // per DEFLATE, length codes 286 and 287 must not appear in compressed data
+ z -= 257;
+ len = stbi__zlength_base[z];
+ if (stbi__zlength_extra[z])
+ len += stbi__zreceive(a, stbi__zlength_extra[z]);
+ z = stbi__zhuffman_decode(a, &a->z_distance);
+ if (z < 0 || z >= 30)
+ return stbi__err(
+ "bad huffman code",
+ "Corrupt PNG"); // per DEFLATE, distance codes 30 and 31 must not appear in compressed data
+ dist = stbi__zdist_base[z];
+ if (stbi__zdist_extra[z])
+ dist += stbi__zreceive(a, stbi__zdist_extra[z]);
+ if (zout - a->zout_start < dist)
+ return stbi__err("bad dist", "Corrupt PNG");
+ if (zout + len > a->zout_end) {
+ if (!stbi__zexpand(a, zout, len))
+ return 0;
+ zout = a->zout;
+ }
+ p = (stbi_uc *)(zout - dist);
+ if (dist == 1) { // run of one byte; common in images.
+ stbi_uc v = *p;
+ if (len) {
+ do
+ *zout++ = v;
+ while (--len);
+ }
+ } else {
+ if (len) {
+ do
+ *zout++ = *p++;
+ while (--len);
+ }
+ }
+ }
+ }
+}
+
+static int stbi__compute_huffman_codes(stbi__zbuf *a)
+{
+ static const stbi_uc length_dezigzag[19] = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5,
+ 11, 4, 12, 3, 13, 2, 14, 1, 15 };
+ stbi__zhuffman z_codelength;
+ stbi_uc lencodes[286 + 32 + 137]; //padding for maximum single op
+ stbi_uc codelength_sizes[19];
+ int i, n;
+
+ int hlit = stbi__zreceive(a, 5) + 257;
+ int hdist = stbi__zreceive(a, 5) + 1;
+ int hclen = stbi__zreceive(a, 4) + 4;
+ int ntot = hlit + hdist;
+
+ memset(codelength_sizes, 0, sizeof(codelength_sizes));
+ for (i = 0; i < hclen; ++i) {
+ int s = stbi__zreceive(a, 3);
+ codelength_sizes[length_dezigzag[i]] = (stbi_uc)s;
+ }
+ if (!stbi__zbuild_huffman(&z_codelength, codelength_sizes, 19))
+ return 0;
+
+ n = 0;
+ while (n < ntot) {
+ int c = stbi__zhuffman_decode(a, &z_codelength);
+ if (c < 0 || c >= 19)
+ return stbi__err("bad codelengths", "Corrupt PNG");
+ if (c < 16)
+ lencodes[n++] = (stbi_uc)c;
+ else {
+ stbi_uc fill = 0;
+ if (c == 16) {
+ c = stbi__zreceive(a, 2) + 3;
+ if (n == 0)
+ return stbi__err("bad codelengths", "Corrupt PNG");
+ fill = lencodes[n - 1];
+ } else if (c == 17) {
+ c = stbi__zreceive(a, 3) + 3;
+ } else if (c == 18) {
+ c = stbi__zreceive(a, 7) + 11;
+ } else {
+ return stbi__err("bad codelengths", "Corrupt PNG");
+ }
+ if (ntot - n < c)
+ return stbi__err("bad codelengths", "Corrupt PNG");
+ memset(lencodes + n, fill, c);
+ n += c;
+ }
+ }
+ if (n != ntot)
+ return stbi__err("bad codelengths", "Corrupt PNG");
+ if (!stbi__zbuild_huffman(&a->z_length, lencodes, hlit))
+ return 0;
+ if (!stbi__zbuild_huffman(&a->z_distance, lencodes + hlit, hdist))
+ return 0;
+ return 1;
+}
+
+static int stbi__parse_uncompressed_block(stbi__zbuf *a)
+{
+ stbi_uc header[4];
+ int len, nlen, k;
+ if (a->num_bits & 7)
+ stbi__zreceive(a, a->num_bits & 7); // discard
+ // drain the bit-packed data into header
+ k = 0;
+ while (a->num_bits > 0) {
+ header[k++] = (stbi_uc)(a->code_buffer & 255); // suppress MSVC run-time check
+ a->code_buffer >>= 8;
+ a->num_bits -= 8;
+ }
+ if (a->num_bits < 0)
+ return stbi__err("zlib corrupt", "Corrupt PNG");
+ // now fill header the normal way
+ while (k < 4)
+ header[k++] = stbi__zget8(a);
+ len = header[1] * 256 + header[0];
+ nlen = header[3] * 256 + header[2];
+ if (nlen != (len ^ 0xffff))
+ return stbi__err("zlib corrupt", "Corrupt PNG");
+ if (a->zbuffer + len > a->zbuffer_end)
+ return stbi__err("read past buffer", "Corrupt PNG");
+ if (a->zout + len > a->zout_end)
+ if (!stbi__zexpand(a, a->zout, len))
+ return 0;
+ memcpy(a->zout, a->zbuffer, len);
+ a->zbuffer += len;
+ a->zout += len;
+ return 1;
+}
+
+static int stbi__parse_zlib_header(stbi__zbuf *a)
+{
+ int cmf = stbi__zget8(a);
+ int cm = cmf & 15;
+ /* int cinfo = cmf >> 4; */
+ int flg = stbi__zget8(a);
+ if (stbi__zeof(a))
+ return stbi__err("bad zlib header", "Corrupt PNG"); // zlib spec
+ if ((cmf * 256 + flg) % 31 != 0)
+ return stbi__err("bad zlib header", "Corrupt PNG"); // zlib spec
+ if (flg & 32)
+ return stbi__err("no preset dict",
+ "Corrupt PNG"); // preset dictionary not allowed in png
+ if (cm != 8)
+ return stbi__err("bad compression",
+ "Corrupt PNG"); // DEFLATE required for png
+ // window = 1 << (8 + cinfo)... but who cares, we fully buffer output
+ return 1;
+}
+
+static const stbi_uc stbi__zdefault_length[STBI__ZNSYMS] = {
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8
+};
+static const stbi_uc stbi__zdefault_distance[32] = {
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
+};
+/*
+Init algorithm:
+{
+ int i; // use <= to match clearly with spec
+ for (i=0; i <= 143; ++i) stbi__zdefault_length[i] = 8;
+ for ( ; i <= 255; ++i) stbi__zdefault_length[i] = 9;
+ for ( ; i <= 279; ++i) stbi__zdefault_length[i] = 7;
+ for ( ; i <= 287; ++i) stbi__zdefault_length[i] = 8;
+
+ for (i=0; i <= 31; ++i) stbi__zdefault_distance[i] = 5;
+}
+*/
+
+static int stbi__parse_zlib(stbi__zbuf *a, int parse_header)
+{
+ int final, type;
+ if (parse_header)
+ if (!stbi__parse_zlib_header(a))
+ return 0;
+ a->num_bits = 0;
+ a->code_buffer = 0;
+ do {
+ final = stbi__zreceive(a, 1);
+ type = stbi__zreceive(a, 2);
+ if (type == 0) {
+ if (!stbi__parse_uncompressed_block(a))
+ return 0;
+ } else if (type == 3) {
+ return 0;
+ } else {
+ if (type == 1) {
+ // use fixed code lengths
+ if (!stbi__zbuild_huffman(&a->z_length, stbi__zdefault_length,
+ STBI__ZNSYMS))
+ return 0;
+ if (!stbi__zbuild_huffman(&a->z_distance, stbi__zdefault_distance,
+ 32))
+ return 0;
+ } else {
+ if (!stbi__compute_huffman_codes(a))
+ return 0;
+ }
+ if (!stbi__parse_huffman_block(a))
+ return 0;
+ }
+ } while (!final);
+ return 1;
+}
+
+static int stbi__do_zlib(stbi__zbuf *a, char *obuf, int olen, int exp, int parse_header)
+{
+ a->zout_start = obuf;
+ a->zout = obuf;
+ a->zout_end = obuf + olen;
+ a->z_expandable = exp;
+
+ return stbi__parse_zlib(a, parse_header);
+}
+
+STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size,
+ int *outlen)
+{
+ stbi__zbuf a;
+ char *p = (char *)stbi__malloc(initial_size);
+ if (p == NULL)
+ return NULL;
+ a.zbuffer = (stbi_uc *)buffer;
+ a.zbuffer_end = (stbi_uc *)buffer + len;
+ if (stbi__do_zlib(&a, p, initial_size, 1, 1)) {
+ if (outlen)
+ *outlen = (int)(a.zout - a.zout_start);
+ return a.zout_start;
+ } else {
+ STBI_FREE(a.zout_start);
+ return NULL;
+ }
+}
+
+STBIDEF char *stbi_zlib_decode_malloc(char const *buffer, int len, int *outlen)
+{
+ return stbi_zlib_decode_malloc_guesssize(buffer, len, 16384, outlen);
+}
+
+STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len,
+ int initial_size, int *outlen,
+ int parse_header)
+{
+ stbi__zbuf a;
+ char *p = (char *)stbi__malloc(initial_size);
+ if (p == NULL)
+ return NULL;
+ a.zbuffer = (stbi_uc *)buffer;
+ a.zbuffer_end = (stbi_uc *)buffer + len;
+ if (stbi__do_zlib(&a, p, initial_size, 1, parse_header)) {
+ if (outlen)
+ *outlen = (int)(a.zout - a.zout_start);
+ return a.zout_start;
+ } else {
+ STBI_FREE(a.zout_start);
+ return NULL;
+ }
+}
+
+STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, char const *ibuffer, int ilen)
+{
+ stbi__zbuf a;
+ a.zbuffer = (stbi_uc *)ibuffer;
+ a.zbuffer_end = (stbi_uc *)ibuffer + ilen;
+ if (stbi__do_zlib(&a, obuffer, olen, 0, 1))
+ return (int)(a.zout - a.zout_start);
+ else
+ return -1;
+}
+
+STBIDEF char *stbi_zlib_decode_noheader_malloc(char const *buffer, int len, int *outlen)
+{
+ stbi__zbuf a;
+ char *p = (char *)stbi__malloc(16384);
+ if (p == NULL)
+ return NULL;
+ a.zbuffer = (stbi_uc *)buffer;
+ a.zbuffer_end = (stbi_uc *)buffer + len;
+ if (stbi__do_zlib(&a, p, 16384, 1, 0)) {
+ if (outlen)
+ *outlen = (int)(a.zout - a.zout_start);
+ return a.zout_start;
+ } else {
+ STBI_FREE(a.zout_start);
+ return NULL;
+ }
+}
+
+STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen)
+{
+ stbi__zbuf a;
+ a.zbuffer = (stbi_uc *)ibuffer;
+ a.zbuffer_end = (stbi_uc *)ibuffer + ilen;
+ if (stbi__do_zlib(&a, obuffer, olen, 0, 0))
+ return (int)(a.zout - a.zout_start);
+ else
+ return -1;
+}
+#endif
+
+// public domain "baseline" PNG decoder v0.10 Sean Barrett 2006-11-18
+// simple implementation
+// - only 8-bit samples
+// - no CRC checking
+// - allocates lots of intermediate memory
+// - avoids problem of streaming data between subsystems
+// - avoids explicit window management
+// performance
+// - uses stb_zlib, a PD zlib implementation with fast huffman decoding
+
+#ifndef STBI_NO_PNG
+typedef struct {
+ stbi__uint32 length;
+ stbi__uint32 type;
+} stbi__pngchunk;
+
+static stbi__pngchunk stbi__get_chunk_header(stbi__context *s)
+{
+ stbi__pngchunk c;
+ c.length = stbi__get32be(s);
+ c.type = stbi__get32be(s);
+ return c;
+}
+
+static int stbi__check_png_header(stbi__context *s)
+{
+ static const stbi_uc png_sig[8] = { 137, 80, 78, 71, 13, 10, 26, 10 };
+ int i;
+ for (i = 0; i < 8; ++i)
+ if (stbi__get8(s) != png_sig[i])
+ return stbi__err("bad png sig", "Not a PNG");
+ return 1;
+}
+
+typedef struct {
+ stbi__context *s;
+ stbi_uc *idata, *expanded, *out;
+ int depth;
+} stbi__png;
+
+enum {
+ STBI__F_none = 0,
+ STBI__F_sub = 1,
+ STBI__F_up = 2,
+ STBI__F_avg = 3,
+ STBI__F_paeth = 4,
+ // synthetic filters used for first scanline to avoid needing a dummy row of 0s
+ STBI__F_avg_first,
+ STBI__F_paeth_first
+};
+
+static stbi_uc first_row_filter[5] = { STBI__F_none, STBI__F_sub, STBI__F_none, STBI__F_avg_first,
+ STBI__F_paeth_first };
+
+static int stbi__paeth(int a, int b, int c)
+{
+ int p = a + b - c;
+ int pa = abs(p - a);
+ int pb = abs(p - b);
+ int pc = abs(p - c);
+ if (pa <= pb && pa <= pc)
+ return a;
+ if (pb <= pc)
+ return b;
+ return c;
+}
+
+static const stbi_uc stbi__depth_scale_table[9] = { 0, 0xff, 0x55, 0, 0x11, 0, 0, 0, 0x01 };
+
+// create the png data from post-deflated data
+static int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__uint32 raw_len, int out_n,
+ stbi__uint32 x, stbi__uint32 y, int depth, int color)
+{
+ int bytes = (depth == 16 ? 2 : 1);
+ stbi__context *s = a->s;
+ stbi__uint32 i, j, stride = x * out_n * bytes;
+ stbi__uint32 img_len, img_width_bytes;
+ int k;
+ int img_n = s->img_n; // copy it into a local for later
+
+ int output_bytes = out_n * bytes;
+ int filter_bytes = img_n * bytes;
+ int width = x;
+
+ STBI_ASSERT(out_n == s->img_n || out_n == s->img_n + 1);
+ a->out = (stbi_uc *)stbi__malloc_mad3(x, y, output_bytes,
+ 0); // extra bytes to write off the end into
+ if (!a->out)
+ return stbi__err("outofmem", "Out of memory");
+
+ if (!stbi__mad3sizes_valid(img_n, x, depth, 7))
+ return stbi__err("too large", "Corrupt PNG");
+ img_width_bytes = (((img_n * x * depth) + 7) >> 3);
+ img_len = (img_width_bytes + 1) * y;
+
+ // we used to check for exact match between raw_len and img_len on non-interlaced PNGs,
+ // but issue #276 reported a PNG in the wild that had extra data at the end (all zeros),
+ // so just check for raw_len < img_len always.
+ if (raw_len < img_len)
+ return stbi__err("not enough pixels", "Corrupt PNG");
+
+ for (j = 0; j < y; ++j) {
+ stbi_uc *cur = a->out + stride * j;
+ stbi_uc *prior;
+ int filter = *raw++;
+
+ if (filter > 4)
+ return stbi__err("invalid filter", "Corrupt PNG");
+
+ if (depth < 8) {
+ if (img_width_bytes > x)
+ return stbi__err("invalid width", "Corrupt PNG");
+ cur += x * out_n -
+ img_width_bytes; // store output to the rightmost img_len bytes, so we can decode in place
+ filter_bytes = 1;
+ width = img_width_bytes;
+ }
+ prior = cur -
+ stride; // bugfix: need to compute this after 'cur +=' computation above
+
+ // if first row, use special filter that doesn't sample previous row
+ if (j == 0)
+ filter = first_row_filter[filter];
+
+ // handle first byte explicitly
+ for (k = 0; k < filter_bytes; ++k) {
+ switch (filter) {
+ case STBI__F_none:
+ cur[k] = raw[k];
+ break;
+ case STBI__F_sub:
+ cur[k] = raw[k];
+ break;
+ case STBI__F_up:
+ cur[k] = STBI__BYTECAST(raw[k] + prior[k]);
+ break;
+ case STBI__F_avg:
+ cur[k] = STBI__BYTECAST(raw[k] + (prior[k] >> 1));
+ break;
+ case STBI__F_paeth:
+ cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(0, prior[k], 0));
+ break;
+ case STBI__F_avg_first:
+ cur[k] = raw[k];
+ break;
+ case STBI__F_paeth_first:
+ cur[k] = raw[k];
+ break;
+ }
+ }
+
+ if (depth == 8) {
+ if (img_n != out_n)
+ cur[img_n] = 255; // first pixel
+ raw += img_n;
+ cur += out_n;
+ prior += out_n;
+ } else if (depth == 16) {
+ if (img_n != out_n) {
+ cur[filter_bytes] = 255; // first pixel top byte
+ cur[filter_bytes + 1] = 255; // first pixel bottom byte
+ }
+ raw += filter_bytes;
+ cur += output_bytes;
+ prior += output_bytes;
+ } else {
+ raw += 1;
+ cur += 1;
+ prior += 1;
+ }
+
+ // this is a little gross, so that we don't switch per-pixel or per-component
+ if (depth < 8 || img_n == out_n) {
+ int nk = (width - 1) * filter_bytes;
+#define STBI__CASE(f) \
+ case f: \
+ for (k = 0; k < nk; ++k)
+ switch (filter) {
+ // "none" filter turns into a memcpy here; make that explicit.
+ case STBI__F_none:
+ memcpy(cur, raw, nk);
+ break;
+ STBI__CASE(STBI__F_sub)
+ {
+ cur[k] = STBI__BYTECAST(raw[k] + cur[k - filter_bytes]);
+ }
+ break;
+ STBI__CASE(STBI__F_up)
+ {
+ cur[k] = STBI__BYTECAST(raw[k] + prior[k]);
+ }
+ break;
+ STBI__CASE(STBI__F_avg)
+ {
+ cur[k] = STBI__BYTECAST(
+ raw[k] + ((prior[k] + cur[k - filter_bytes]) >> 1));
+ }
+ break;
+ STBI__CASE(STBI__F_paeth)
+ {
+ cur[k] = STBI__BYTECAST(
+ raw[k] + stbi__paeth(cur[k - filter_bytes],
+ prior[k],
+ prior[k - filter_bytes]));
+ }
+ break;
+ STBI__CASE(STBI__F_avg_first)
+ {
+ cur[k] = STBI__BYTECAST(raw[k] +
+ (cur[k - filter_bytes] >> 1));
+ }
+ break;
+ STBI__CASE(STBI__F_paeth_first)
+ {
+ cur[k] = STBI__BYTECAST(
+ raw[k] + stbi__paeth(cur[k - filter_bytes], 0, 0));
+ }
+ break;
+ }
+#undef STBI__CASE
+ raw += nk;
+ } else {
+ STBI_ASSERT(img_n + 1 == out_n);
+#define STBI__CASE(f) \
+ case f: \
+ for (i = x - 1; i >= 1; --i, cur[filter_bytes] = 255, raw += filter_bytes, \
+ cur += output_bytes, prior += output_bytes) \
+ for (k = 0; k < filter_bytes; ++k)
+ switch (filter) {
+ STBI__CASE(STBI__F_none)
+ {
+ cur[k] = raw[k];
+ }
+ break;
+ STBI__CASE(STBI__F_sub)
+ {
+ cur[k] = STBI__BYTECAST(raw[k] + cur[k - output_bytes]);
+ }
+ break;
+ STBI__CASE(STBI__F_up)
+ {
+ cur[k] = STBI__BYTECAST(raw[k] + prior[k]);
+ }
+ break;
+ STBI__CASE(STBI__F_avg)
+ {
+ cur[k] = STBI__BYTECAST(
+ raw[k] + ((prior[k] + cur[k - output_bytes]) >> 1));
+ }
+ break;
+ STBI__CASE(STBI__F_paeth)
+ {
+ cur[k] = STBI__BYTECAST(
+ raw[k] + stbi__paeth(cur[k - output_bytes],
+ prior[k],
+ prior[k - output_bytes]));
+ }
+ break;
+ STBI__CASE(STBI__F_avg_first)
+ {
+ cur[k] = STBI__BYTECAST(raw[k] +
+ (cur[k - output_bytes] >> 1));
+ }
+ break;
+ STBI__CASE(STBI__F_paeth_first)
+ {
+ cur[k] = STBI__BYTECAST(
+ raw[k] + stbi__paeth(cur[k - output_bytes], 0, 0));
+ }
+ break;
+ }
+#undef STBI__CASE
+
+ // the loop above sets the high byte of the pixels' alpha, but for
+ // 16 bit png files we also need the low byte set. we'll do that here.
+ if (depth == 16) {
+ cur = a->out +
+ stride * j; // start at the beginning of the row again
+ for (i = 0; i < x; ++i, cur += output_bytes) {
+ cur[filter_bytes + 1] = 255;
+ }
+ }
+ }
+ }
+
+ // we make a separate pass to expand bits to pixels; for performance,
+ // this could run two scanlines behind the above code, so it won't
+ // intefere with filtering but will still be in the cache.
+ if (depth < 8) {
+ for (j = 0; j < y; ++j) {
+ stbi_uc *cur = a->out + stride * j;
+ stbi_uc *in = a->out + stride * j + x * out_n - img_width_bytes;
+ // unpack 1/2/4-bit into a 8-bit buffer. allows us to keep the common 8-bit path optimal at minimal cost for 1/2/4-bit
+ // png guarante byte alignment, if width is not multiple of 8/4/2 we'll decode dummy trailing data that will be skipped in the later loop
+ stbi_uc scale = (color == 0) ? stbi__depth_scale_table[depth] :
+ 1; // scale grayscale values to 0..255 range
+
+ // note that the final byte might overshoot and write more data than desired.
+ // we can allocate enough data that this never writes out of memory, but it
+ // could also overwrite the next scanline. can it overwrite non-empty data
+ // on the next scanline? yes, consider 1-pixel-wide scanlines with 1-bit-per-pixel.
+ // so we need to explicitly clamp the final ones
+
+ if (depth == 4) {
+ for (k = x * img_n; k >= 2; k -= 2, ++in) {
+ *cur++ = scale * ((*in >> 4));
+ *cur++ = scale * ((*in) & 0x0f);
+ }
+ if (k > 0)
+ *cur++ = scale * ((*in >> 4));
+ } else if (depth == 2) {
+ for (k = x * img_n; k >= 4; k -= 4, ++in) {
+ *cur++ = scale * ((*in >> 6));
+ *cur++ = scale * ((*in >> 4) & 0x03);
+ *cur++ = scale * ((*in >> 2) & 0x03);
+ *cur++ = scale * ((*in) & 0x03);
+ }
+ if (k > 0)
+ *cur++ = scale * ((*in >> 6));
+ if (k > 1)
+ *cur++ = scale * ((*in >> 4) & 0x03);
+ if (k > 2)
+ *cur++ = scale * ((*in >> 2) & 0x03);
+ } else if (depth == 1) {
+ for (k = x * img_n; k >= 8; k -= 8, ++in) {
+ *cur++ = scale * ((*in >> 7));
+ *cur++ = scale * ((*in >> 6) & 0x01);
+ *cur++ = scale * ((*in >> 5) & 0x01);
+ *cur++ = scale * ((*in >> 4) & 0x01);
+ *cur++ = scale * ((*in >> 3) & 0x01);
+ *cur++ = scale * ((*in >> 2) & 0x01);
+ *cur++ = scale * ((*in >> 1) & 0x01);
+ *cur++ = scale * ((*in) & 0x01);
+ }
+ if (k > 0)
+ *cur++ = scale * ((*in >> 7));
+ if (k > 1)
+ *cur++ = scale * ((*in >> 6) & 0x01);
+ if (k > 2)
+ *cur++ = scale * ((*in >> 5) & 0x01);
+ if (k > 3)
+ *cur++ = scale * ((*in >> 4) & 0x01);
+ if (k > 4)
+ *cur++ = scale * ((*in >> 3) & 0x01);
+ if (k > 5)
+ *cur++ = scale * ((*in >> 2) & 0x01);
+ if (k > 6)
+ *cur++ = scale * ((*in >> 1) & 0x01);
+ }
+ if (img_n != out_n) {
+ int q;
+ // insert alpha = 255
+ cur = a->out + stride * j;
+ if (img_n == 1) {
+ for (q = x - 1; q >= 0; --q) {
+ cur[q * 2 + 1] = 255;
+ cur[q * 2 + 0] = cur[q];
+ }
+ } else {
+ STBI_ASSERT(img_n == 3);
+ for (q = x - 1; q >= 0; --q) {
+ cur[q * 4 + 3] = 255;
+ cur[q * 4 + 2] = cur[q * 3 + 2];
+ cur[q * 4 + 1] = cur[q * 3 + 1];
+ cur[q * 4 + 0] = cur[q * 3 + 0];
+ }
+ }
+ }
+ }
+ } else if (depth == 16) {
+ // force the image data from big-endian to platform-native.
+ // this is done in a separate pass due to the decoding relying
+ // on the data being untouched, but could probably be done
+ // per-line during decode if care is taken.
+ stbi_uc *cur = a->out;
+ stbi__uint16 *cur16 = (stbi__uint16 *)cur;
+
+ for (i = 0; i < x * y * out_n; ++i, cur16++, cur += 2) {
+ *cur16 = (cur[0] << 8) | cur[1];
+ }
+ }
+
+ return 1;
+}
+
+static int stbi__create_png_image(stbi__png *a, stbi_uc *image_data, stbi__uint32 image_data_len,
+ int out_n, int depth, int color, int interlaced)
+{
+ int bytes = (depth == 16 ? 2 : 1);
+ int out_bytes = out_n * bytes;
+ stbi_uc *final;
+ int p;
+ if (!interlaced)
+ return stbi__create_png_image_raw(a, image_data, image_data_len, out_n, a->s->img_x,
+ a->s->img_y, depth, color);
+
+ // de-interlacing
+ final = (stbi_uc *)stbi__malloc_mad3(a->s->img_x, a->s->img_y, out_bytes, 0);
+ if (!final)
+ return stbi__err("outofmem", "Out of memory");
+ for (p = 0; p < 7; ++p) {
+ int xorig[] = { 0, 4, 0, 2, 0, 1, 0 };
+ int yorig[] = { 0, 0, 4, 0, 2, 0, 1 };
+ int xspc[] = { 8, 8, 4, 4, 2, 2, 1 };
+ int yspc[] = { 8, 8, 8, 4, 4, 2, 2 };
+ int i, j, x, y;
+ // pass1_x[4] = 0, pass1_x[5] = 1, pass1_x[12] = 1
+ x = (a->s->img_x - xorig[p] + xspc[p] - 1) / xspc[p];
+ y = (a->s->img_y - yorig[p] + yspc[p] - 1) / yspc[p];
+ if (x && y) {
+ stbi__uint32 img_len = ((((a->s->img_n * x * depth) + 7) >> 3) + 1) * y;
+ if (!stbi__create_png_image_raw(a, image_data, image_data_len, out_n, x, y,
+ depth, color)) {
+ STBI_FREE(final);
+ return 0;
+ }
+ for (j = 0; j < y; ++j) {
+ for (i = 0; i < x; ++i) {
+ int out_y = j * yspc[p] + yorig[p];
+ int out_x = i * xspc[p] + xorig[p];
+ memcpy(final + out_y * a->s->img_x * out_bytes +
+ out_x * out_bytes,
+ a->out + (j * x + i) * out_bytes, out_bytes);
+ }
+ }
+ STBI_FREE(a->out);
+ image_data += img_len;
+ image_data_len -= img_len;
+ }
+ }
+ a->out = final;
+
+ return 1;
+}
+
+static int stbi__compute_transparency(stbi__png *z, stbi_uc tc[3], int out_n)
+{
+ stbi__context *s = z->s;
+ stbi__uint32 i, pixel_count = s->img_x * s->img_y;
+ stbi_uc *p = z->out;
+
+ // compute color-based transparency, assuming we've
+ // already got 255 as the alpha value in the output
+ STBI_ASSERT(out_n == 2 || out_n == 4);
+
+ if (out_n == 2) {
+ for (i = 0; i < pixel_count; ++i) {
+ p[1] = (p[0] == tc[0] ? 0 : 255);
+ p += 2;
+ }
+ } else {
+ for (i = 0; i < pixel_count; ++i) {
+ if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2])
+ p[3] = 0;
+ p += 4;
+ }
+ }
+ return 1;
+}
+
+static int stbi__compute_transparency16(stbi__png *z, stbi__uint16 tc[3], int out_n)
+{
+ stbi__context *s = z->s;
+ stbi__uint32 i, pixel_count = s->img_x * s->img_y;
+ stbi__uint16 *p = (stbi__uint16 *)z->out;
+
+ // compute color-based transparency, assuming we've
+ // already got 65535 as the alpha value in the output
+ STBI_ASSERT(out_n == 2 || out_n == 4);
+
+ if (out_n == 2) {
+ for (i = 0; i < pixel_count; ++i) {
+ p[1] = (p[0] == tc[0] ? 0 : 65535);
+ p += 2;
+ }
+ } else {
+ for (i = 0; i < pixel_count; ++i) {
+ if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2])
+ p[3] = 0;
+ p += 4;
+ }
+ }
+ return 1;
+}
+
+static int stbi__expand_png_palette(stbi__png *a, stbi_uc *palette, int len, int pal_img_n)
+{
+ stbi__uint32 i, pixel_count = a->s->img_x * a->s->img_y;
+ stbi_uc *p, *temp_out, *orig = a->out;
+
+ p = (stbi_uc *)stbi__malloc_mad2(pixel_count, pal_img_n, 0);
+ if (p == NULL)
+ return stbi__err("outofmem", "Out of memory");
+
+ // between here and free(out) below, exitting would leak
+ temp_out = p;
+
+ if (pal_img_n == 3) {
+ for (i = 0; i < pixel_count; ++i) {
+ int n = orig[i] * 4;
+ p[0] = palette[n];
+ p[1] = palette[n + 1];
+ p[2] = palette[n + 2];
+ p += 3;
+ }
+ } else {
+ for (i = 0; i < pixel_count; ++i) {
+ int n = orig[i] * 4;
+ p[0] = palette[n];
+ p[1] = palette[n + 1];
+ p[2] = palette[n + 2];
+ p[3] = palette[n + 3];
+ p += 4;
+ }
+ }
+ STBI_FREE(a->out);
+ a->out = temp_out;
+
+ STBI_NOTUSED(len);
+
+ return 1;
+}
+
+static int stbi__unpremultiply_on_load_global = 0;
+static int stbi__de_iphone_flag_global = 0;
+
+STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply)
+{
+ stbi__unpremultiply_on_load_global = flag_true_if_should_unpremultiply;
+}
+
+STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert)
+{
+ stbi__de_iphone_flag_global = flag_true_if_should_convert;
+}
+
+#ifndef STBI_THREAD_LOCAL
+#define stbi__unpremultiply_on_load stbi__unpremultiply_on_load_global
+#define stbi__de_iphone_flag stbi__de_iphone_flag_global
+#else
+static STBI_THREAD_LOCAL int stbi__unpremultiply_on_load_local, stbi__unpremultiply_on_load_set;
+static STBI_THREAD_LOCAL int stbi__de_iphone_flag_local, stbi__de_iphone_flag_set;
+
+STBIDEF void stbi_set_unpremultiply_on_load_thread(int flag_true_if_should_unpremultiply)
+{
+ stbi__unpremultiply_on_load_local = flag_true_if_should_unpremultiply;
+ stbi__unpremultiply_on_load_set = 1;
+}
+
+STBIDEF void stbi_convert_iphone_png_to_rgb_thread(int flag_true_if_should_convert)
+{
+ stbi__de_iphone_flag_local = flag_true_if_should_convert;
+ stbi__de_iphone_flag_set = 1;
+}
+
+#define stbi__unpremultiply_on_load \
+ (stbi__unpremultiply_on_load_set ? stbi__unpremultiply_on_load_local : \
+ stbi__unpremultiply_on_load_global)
+#define stbi__de_iphone_flag \
+ (stbi__de_iphone_flag_set ? stbi__de_iphone_flag_local : stbi__de_iphone_flag_global)
+#endif // STBI_THREAD_LOCAL
+
+static void stbi__de_iphone(stbi__png *z)
+{
+ stbi__context *s = z->s;
+ stbi__uint32 i, pixel_count = s->img_x * s->img_y;
+ stbi_uc *p = z->out;
+
+ if (s->img_out_n == 3) { // convert bgr to rgb
+ for (i = 0; i < pixel_count; ++i) {
+ stbi_uc t = p[0];
+ p[0] = p[2];
+ p[2] = t;
+ p += 3;
+ }
+ } else {
+ STBI_ASSERT(s->img_out_n == 4);
+ if (stbi__unpremultiply_on_load) {
+ // convert bgr to rgb and unpremultiply
+ for (i = 0; i < pixel_count; ++i) {
+ stbi_uc a = p[3];
+ stbi_uc t = p[0];
+ if (a) {
+ stbi_uc half = a / 2;
+ p[0] = (p[2] * 255 + half) / a;
+ p[1] = (p[1] * 255 + half) / a;
+ p[2] = (t * 255 + half) / a;
+ } else {
+ p[0] = p[2];
+ p[2] = t;
+ }
+ p += 4;
+ }
+ } else {
+ // convert bgr to rgb
+ for (i = 0; i < pixel_count; ++i) {
+ stbi_uc t = p[0];
+ p[0] = p[2];
+ p[2] = t;
+ p += 4;
+ }
+ }
+ }
+}
+
+#define STBI__PNG_TYPE(a, b, c, d) \
+ (((unsigned)(a) << 24) + ((unsigned)(b) << 16) + ((unsigned)(c) << 8) + (unsigned)(d))
+
+static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp)
+{
+ stbi_uc palette[1024], pal_img_n = 0;
+ stbi_uc has_trans = 0, tc[3] = { 0 };
+ stbi__uint16 tc16[3];
+ stbi__uint32 ioff = 0, idata_limit = 0, i, pal_len = 0;
+ int first = 1, k, interlace = 0, color = 0, is_iphone = 0;
+ stbi__context *s = z->s;
+
+ z->expanded = NULL;
+ z->idata = NULL;
+ z->out = NULL;
+
+ if (!stbi__check_png_header(s))
+ return 0;
+
+ if (scan == STBI__SCAN_type)
+ return 1;
+
+ for (;;) {
+ stbi__pngchunk c = stbi__get_chunk_header(s);
+ switch (c.type) {
+ case STBI__PNG_TYPE('C', 'g', 'B', 'I'):
+ is_iphone = 1;
+ stbi__skip(s, c.length);
+ break;
+ case STBI__PNG_TYPE('I', 'H', 'D', 'R'): {
+ int comp, filter;
+ if (!first)
+ return stbi__err("multiple IHDR", "Corrupt PNG");
+ first = 0;
+ if (c.length != 13)
+ return stbi__err("bad IHDR len", "Corrupt PNG");
+ s->img_x = stbi__get32be(s);
+ s->img_y = stbi__get32be(s);
+ if (s->img_y > STBI_MAX_DIMENSIONS)
+ return stbi__err("too large", "Very large image (corrupt?)");
+ if (s->img_x > STBI_MAX_DIMENSIONS)
+ return stbi__err("too large", "Very large image (corrupt?)");
+ z->depth = stbi__get8(s);
+ if (z->depth != 1 && z->depth != 2 && z->depth != 4 && z->depth != 8 &&
+ z->depth != 16)
+ return stbi__err("1/2/4/8/16-bit only",
+ "PNG not supported: 1/2/4/8/16-bit only");
+ color = stbi__get8(s);
+ if (color > 6)
+ return stbi__err("bad ctype", "Corrupt PNG");
+ if (color == 3 && z->depth == 16)
+ return stbi__err("bad ctype", "Corrupt PNG");
+ if (color == 3)
+ pal_img_n = 3;
+ else if (color & 1)
+ return stbi__err("bad ctype", "Corrupt PNG");
+ comp = stbi__get8(s);
+ if (comp)
+ return stbi__err("bad comp method", "Corrupt PNG");
+ filter = stbi__get8(s);
+ if (filter)
+ return stbi__err("bad filter method", "Corrupt PNG");
+ interlace = stbi__get8(s);
+ if (interlace > 1)
+ return stbi__err("bad interlace method", "Corrupt PNG");
+ if (!s->img_x || !s->img_y)
+ return stbi__err("0-pixel image", "Corrupt PNG");
+ if (!pal_img_n) {
+ s->img_n = (color & 2 ? 3 : 1) + (color & 4 ? 1 : 0);
+ if ((1 << 30) / s->img_x / s->img_n < s->img_y)
+ return stbi__err("too large", "Image too large to decode");
+ } else {
+ // if paletted, then pal_n is our final components, and
+ // img_n is # components to decompress/filter.
+ s->img_n = 1;
+ if ((1 << 30) / s->img_x / 4 < s->img_y)
+ return stbi__err("too large", "Corrupt PNG");
+ }
+ // even with SCAN_header, have to scan to see if we have a tRNS
+ break;
+ }
+
+ case STBI__PNG_TYPE('P', 'L', 'T', 'E'): {
+ if (first)
+ return stbi__err("first not IHDR", "Corrupt PNG");
+ if (c.length > 256 * 3)
+ return stbi__err("invalid PLTE", "Corrupt PNG");
+ pal_len = c.length / 3;
+ if (pal_len * 3 != c.length)
+ return stbi__err("invalid PLTE", "Corrupt PNG");
+ for (i = 0; i < pal_len; ++i) {
+ palette[i * 4 + 0] = stbi__get8(s);
+ palette[i * 4 + 1] = stbi__get8(s);
+ palette[i * 4 + 2] = stbi__get8(s);
+ palette[i * 4 + 3] = 255;
+ }
+ break;
+ }
+
+ case STBI__PNG_TYPE('t', 'R', 'N', 'S'): {
+ if (first)
+ return stbi__err("first not IHDR", "Corrupt PNG");
+ if (z->idata)
+ return stbi__err("tRNS after IDAT", "Corrupt PNG");
+ if (pal_img_n) {
+ if (scan == STBI__SCAN_header) {
+ s->img_n = 4;
+ return 1;
+ }
+ if (pal_len == 0)
+ return stbi__err("tRNS before PLTE", "Corrupt PNG");
+ if (c.length > pal_len)
+ return stbi__err("bad tRNS len", "Corrupt PNG");
+ pal_img_n = 4;
+ for (i = 0; i < c.length; ++i)
+ palette[i * 4 + 3] = stbi__get8(s);
+ } else {
+ if (!(s->img_n & 1))
+ return stbi__err("tRNS with alpha", "Corrupt PNG");
+ if (c.length != (stbi__uint32)s->img_n * 2)
+ return stbi__err("bad tRNS len", "Corrupt PNG");
+ has_trans = 1;
+ // non-paletted with tRNS = constant alpha. if header-scanning, we can stop now.
+ if (scan == STBI__SCAN_header) {
+ ++s->img_n;
+ return 1;
+ }
+ if (z->depth == 16) {
+ for (k = 0; k < s->img_n; ++k)
+ tc16[k] = (stbi__uint16)stbi__get16be(
+ s); // copy the values as-is
+ } else {
+ for (k = 0; k < s->img_n; ++k)
+ tc[k] = (stbi_uc)(stbi__get16be(s) & 255) *
+ stbi__depth_scale_table
+ [z->depth]; // non 8-bit images will be larger
+ }
+ }
+ break;
+ }
+
+ case STBI__PNG_TYPE('I', 'D', 'A', 'T'): {
+ if (first)
+ return stbi__err("first not IHDR", "Corrupt PNG");
+ if (pal_img_n && !pal_len)
+ return stbi__err("no PLTE", "Corrupt PNG");
+ if (scan == STBI__SCAN_header) {
+ // header scan definitely stops at first IDAT
+ if (pal_img_n)
+ s->img_n = pal_img_n;
+ return 1;
+ }
+ if (c.length > (1u << 30))
+ return stbi__err("IDAT size limit",
+ "IDAT section larger than 2^30 bytes");
+ if ((int)(ioff + c.length) < (int)ioff)
+ return 0;
+ if (ioff + c.length > idata_limit) {
+ stbi__uint32 idata_limit_old = idata_limit;
+ stbi_uc *p;
+ if (idata_limit == 0)
+ idata_limit = c.length > 4096 ? c.length : 4096;
+ while (ioff + c.length > idata_limit)
+ idata_limit *= 2;
+ STBI_NOTUSED(idata_limit_old);
+ p = (stbi_uc *)STBI_REALLOC_SIZED(z->idata, idata_limit_old,
+ idata_limit);
+ if (p == NULL)
+ return stbi__err("outofmem", "Out of memory");
+ z->idata = p;
+ }
+ if (!stbi__getn(s, z->idata + ioff, c.length))
+ return stbi__err("outofdata", "Corrupt PNG");
+ ioff += c.length;
+ break;
+ }
+
+ case STBI__PNG_TYPE('I', 'E', 'N', 'D'): {
+ stbi__uint32 raw_len, bpl;
+ if (first)
+ return stbi__err("first not IHDR", "Corrupt PNG");
+ if (scan != STBI__SCAN_load)
+ return 1;
+ if (z->idata == NULL)
+ return stbi__err("no IDAT", "Corrupt PNG");
+ // initial guess for decoded data size to avoid unnecessary reallocs
+ bpl = (s->img_x * z->depth + 7) / 8; // bytes per line, per component
+ raw_len = bpl * s->img_y * s->img_n /* pixels */ +
+ s->img_y /* filter mode per row */;
+ z->expanded = (stbi_uc *)stbi_zlib_decode_malloc_guesssize_headerflag(
+ (char *)z->idata, ioff, raw_len, (int *)&raw_len, !is_iphone);
+ if (z->expanded == NULL)
+ return 0; // zlib should set error
+ STBI_FREE(z->idata);
+ z->idata = NULL;
+ if ((req_comp == s->img_n + 1 && req_comp != 3 && !pal_img_n) || has_trans)
+ s->img_out_n = s->img_n + 1;
+ else
+ s->img_out_n = s->img_n;
+ if (!stbi__create_png_image(z, z->expanded, raw_len, s->img_out_n, z->depth,
+ color, interlace))
+ return 0;
+ if (has_trans) {
+ if (z->depth == 16) {
+ if (!stbi__compute_transparency16(z, tc16, s->img_out_n))
+ return 0;
+ } else {
+ if (!stbi__compute_transparency(z, tc, s->img_out_n))
+ return 0;
+ }
+ }
+ if (is_iphone && stbi__de_iphone_flag && s->img_out_n > 2)
+ stbi__de_iphone(z);
+ if (pal_img_n) {
+ // pal_img_n == 3 or 4
+ s->img_n = pal_img_n; // record the actual colors we had
+ s->img_out_n = pal_img_n;
+ if (req_comp >= 3)
+ s->img_out_n = req_comp;
+ if (!stbi__expand_png_palette(z, palette, pal_len, s->img_out_n))
+ return 0;
+ } else if (has_trans) {
+ // non-paletted image with tRNS -> source image has (constant) alpha
+ ++s->img_n;
+ }
+ STBI_FREE(z->expanded);
+ z->expanded = NULL;
+ // end of PNG chunk, read and skip CRC
+ stbi__get32be(s);
+ return 1;
+ }
+
+ default:
+ // if critical, fail
+ if (first)
+ return stbi__err("first not IHDR", "Corrupt PNG");
+ if ((c.type & (1 << 29)) == 0) {
+#ifndef STBI_NO_FAILURE_STRINGS
+ // not threadsafe
+ static char invalid_chunk[] = "XXXX PNG chunk not known";
+ invalid_chunk[0] = STBI__BYTECAST(c.type >> 24);
+ invalid_chunk[1] = STBI__BYTECAST(c.type >> 16);
+ invalid_chunk[2] = STBI__BYTECAST(c.type >> 8);
+ invalid_chunk[3] = STBI__BYTECAST(c.type >> 0);
+#endif
+ return stbi__err(invalid_chunk,
+ "PNG not supported: unknown PNG chunk type");
+ }
+ stbi__skip(s, c.length);
+ break;
+ }
+ // end of PNG chunk, read and skip CRC
+ stbi__get32be(s);
+ }
+}
+
+static void *stbi__do_png(stbi__png *p, int *x, int *y, int *n, int req_comp, stbi__result_info *ri)
+{
+ void *result = NULL;
+ if (req_comp < 0 || req_comp > 4)
+ return stbi__errpuc("bad req_comp", "Internal error");
+ if (stbi__parse_png_file(p, STBI__SCAN_load, req_comp)) {
+ if (p->depth <= 8)
+ ri->bits_per_channel = 8;
+ else if (p->depth == 16)
+ ri->bits_per_channel = 16;
+ else
+ return stbi__errpuc("bad bits_per_channel",
+ "PNG not supported: unsupported color depth");
+ result = p->out;
+ p->out = NULL;
+ if (req_comp && req_comp != p->s->img_out_n) {
+ if (ri->bits_per_channel == 8)
+ result = stbi__convert_format((unsigned char *)result,
+ p->s->img_out_n, req_comp,
+ p->s->img_x, p->s->img_y);
+ else
+ result = stbi__convert_format16((stbi__uint16 *)result,
+ p->s->img_out_n, req_comp,
+ p->s->img_x, p->s->img_y);
+ p->s->img_out_n = req_comp;
+ if (result == NULL)
+ return result;
+ }
+ *x = p->s->img_x;
+ *y = p->s->img_y;
+ if (n)
+ *n = p->s->img_n;
+ }
+ STBI_FREE(p->out);
+ p->out = NULL;
+ STBI_FREE(p->expanded);
+ p->expanded = NULL;
+ STBI_FREE(p->idata);
+ p->idata = NULL;
+
+ return result;
+}
+
+static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri)
+{
+ stbi__png p;
+ p.s = s;
+ return stbi__do_png(&p, x, y, comp, req_comp, ri);
+}
+
+static int stbi__png_test(stbi__context *s)
+{
+ int r;
+ r = stbi__check_png_header(s);
+ stbi__rewind(s);
+ return r;
+}
+
+static int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp)
+{
+ if (!stbi__parse_png_file(p, STBI__SCAN_header, 0)) {
+ stbi__rewind(p->s);
+ return 0;
+ }
+ if (x)
+ *x = p->s->img_x;
+ if (y)
+ *y = p->s->img_y;
+ if (comp)
+ *comp = p->s->img_n;
+ return 1;
+}
+
+static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ stbi__png p;
+ p.s = s;
+ return stbi__png_info_raw(&p, x, y, comp);
+}
+
+static int stbi__png_is16(stbi__context *s)
+{
+ stbi__png p;
+ p.s = s;
+ if (!stbi__png_info_raw(&p, NULL, NULL, NULL))
+ return 0;
+ if (p.depth != 16) {
+ stbi__rewind(p.s);
+ return 0;
+ }
+ return 1;
+}
+#endif
+
+// Microsoft/Windows BMP image
+
+#ifndef STBI_NO_BMP
+static int stbi__bmp_test_raw(stbi__context *s)
+{
+ int r;
+ int sz;
+ if (stbi__get8(s) != 'B')
+ return 0;
+ if (stbi__get8(s) != 'M')
+ return 0;
+ stbi__get32le(s); // discard filesize
+ stbi__get16le(s); // discard reserved
+ stbi__get16le(s); // discard reserved
+ stbi__get32le(s); // discard data offset
+ sz = stbi__get32le(s);
+ r = (sz == 12 || sz == 40 || sz == 56 || sz == 108 || sz == 124);
+ return r;
+}
+
+static int stbi__bmp_test(stbi__context *s)
+{
+ int r = stbi__bmp_test_raw(s);
+ stbi__rewind(s);
+ return r;
+}
+
+// returns 0..31 for the highest set bit
+static int stbi__high_bit(unsigned int z)
+{
+ int n = 0;
+ if (z == 0)
+ return -1;
+ if (z >= 0x10000) {
+ n += 16;
+ z >>= 16;
+ }
+ if (z >= 0x00100) {
+ n += 8;
+ z >>= 8;
+ }
+ if (z >= 0x00010) {
+ n += 4;
+ z >>= 4;
+ }
+ if (z >= 0x00004) {
+ n += 2;
+ z >>= 2;
+ }
+ if (z >= 0x00002) {
+ n += 1; /* >>= 1;*/
+ }
+ return n;
+}
+
+static int stbi__bitcount(unsigned int a)
+{
+ a = (a & 0x55555555) + ((a >> 1) & 0x55555555); // max 2
+ a = (a & 0x33333333) + ((a >> 2) & 0x33333333); // max 4
+ a = (a + (a >> 4)) & 0x0f0f0f0f; // max 8 per 4, now 8 bits
+ a = (a + (a >> 8)); // max 16 per 8 bits
+ a = (a + (a >> 16)); // max 32 per 8 bits
+ return a & 0xff;
+}
+
+// extract an arbitrarily-aligned N-bit value (N=bits)
+// from v, and then make it 8-bits long and fractionally
+// extend it to full full range.
+static int stbi__shiftsigned(unsigned int v, int shift, int bits)
+{
+ static unsigned int mul_table[9] = {
+ 0,
+ 0xff /*0b11111111*/,
+ 0x55 /*0b01010101*/,
+ 0x49 /*0b01001001*/,
+ 0x11 /*0b00010001*/,
+ 0x21 /*0b00100001*/,
+ 0x41 /*0b01000001*/,
+ 0x81 /*0b10000001*/,
+ 0x01 /*0b00000001*/,
+ };
+ static unsigned int shift_table[9] = {
+ 0, 0, 0, 1, 0, 2, 4, 6, 0,
+ };
+ if (shift < 0)
+ v <<= -shift;
+ else
+ v >>= shift;
+ STBI_ASSERT(v < 256);
+ v >>= (8 - bits);
+ STBI_ASSERT(bits >= 0 && bits <= 8);
+ return (int)((unsigned)v * mul_table[bits]) >> shift_table[bits];
+}
+
+typedef struct {
+ int bpp, offset, hsz;
+ unsigned int mr, mg, mb, ma, all_a;
+ int extra_read;
+} stbi__bmp_data;
+
+static int stbi__bmp_set_mask_defaults(stbi__bmp_data *info, int compress)
+{
+ // BI_BITFIELDS specifies masks explicitly, don't override
+ if (compress == 3)
+ return 1;
+
+ if (compress == 0) {
+ if (info->bpp == 16) {
+ info->mr = 31u << 10;
+ info->mg = 31u << 5;
+ info->mb = 31u << 0;
+ } else if (info->bpp == 32) {
+ info->mr = 0xffu << 16;
+ info->mg = 0xffu << 8;
+ info->mb = 0xffu << 0;
+ info->ma = 0xffu << 24;
+ info->all_a =
+ 0; // if all_a is 0 at end, then we loaded alpha channel but it was all 0
+ } else {
+ // otherwise, use defaults, which is all-0
+ info->mr = info->mg = info->mb = info->ma = 0;
+ }
+ return 1;
+ }
+ return 0; // error
+}
+
+static void *stbi__bmp_parse_header(stbi__context *s, stbi__bmp_data *info)
+{
+ int hsz;
+ if (stbi__get8(s) != 'B' || stbi__get8(s) != 'M')
+ return stbi__errpuc("not BMP", "Corrupt BMP");
+ stbi__get32le(s); // discard filesize
+ stbi__get16le(s); // discard reserved
+ stbi__get16le(s); // discard reserved
+ info->offset = stbi__get32le(s);
+ info->hsz = hsz = stbi__get32le(s);
+ info->mr = info->mg = info->mb = info->ma = 0;
+ info->extra_read = 14;
+
+ if (info->offset < 0)
+ return stbi__errpuc("bad BMP", "bad BMP");
+
+ if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108 && hsz != 124)
+ return stbi__errpuc("unknown BMP", "BMP type not supported: unknown");
+ if (hsz == 12) {
+ s->img_x = stbi__get16le(s);
+ s->img_y = stbi__get16le(s);
+ } else {
+ s->img_x = stbi__get32le(s);
+ s->img_y = stbi__get32le(s);
+ }
+ if (stbi__get16le(s) != 1)
+ return stbi__errpuc("bad BMP", "bad BMP");
+ info->bpp = stbi__get16le(s);
+ if (hsz != 12) {
+ int compress = stbi__get32le(s);
+ if (compress == 1 || compress == 2)
+ return stbi__errpuc("BMP RLE", "BMP type not supported: RLE");
+ if (compress >= 4)
+ return stbi__errpuc(
+ "BMP JPEG/PNG",
+ "BMP type not supported: unsupported compression"); // this includes PNG/JPEG modes
+ if (compress == 3 && info->bpp != 16 && info->bpp != 32)
+ return stbi__errpuc("bad BMP",
+ "bad BMP"); // bitfields requires 16 or 32 bits/pixel
+ stbi__get32le(s); // discard sizeof
+ stbi__get32le(s); // discard hres
+ stbi__get32le(s); // discard vres
+ stbi__get32le(s); // discard colorsused
+ stbi__get32le(s); // discard max important
+ if (hsz == 40 || hsz == 56) {
+ if (hsz == 56) {
+ stbi__get32le(s);
+ stbi__get32le(s);
+ stbi__get32le(s);
+ stbi__get32le(s);
+ }
+ if (info->bpp == 16 || info->bpp == 32) {
+ if (compress == 0) {
+ stbi__bmp_set_mask_defaults(info, compress);
+ } else if (compress == 3) {
+ info->mr = stbi__get32le(s);
+ info->mg = stbi__get32le(s);
+ info->mb = stbi__get32le(s);
+ info->extra_read += 12;
+ // not documented, but generated by photoshop and handled by mspaint
+ if (info->mr == info->mg && info->mg == info->mb) {
+ // ?!?!?
+ return stbi__errpuc("bad BMP", "bad BMP");
+ }
+ } else
+ return stbi__errpuc("bad BMP", "bad BMP");
+ }
+ } else {
+ // V4/V5 header
+ int i;
+ if (hsz != 108 && hsz != 124)
+ return stbi__errpuc("bad BMP", "bad BMP");
+ info->mr = stbi__get32le(s);
+ info->mg = stbi__get32le(s);
+ info->mb = stbi__get32le(s);
+ info->ma = stbi__get32le(s);
+ if (compress !=
+ 3) // override mr/mg/mb unless in BI_BITFIELDS mode, as per docs
+ stbi__bmp_set_mask_defaults(info, compress);
+ stbi__get32le(s); // discard color space
+ for (i = 0; i < 12; ++i)
+ stbi__get32le(s); // discard color space parameters
+ if (hsz == 124) {
+ stbi__get32le(s); // discard rendering intent
+ stbi__get32le(s); // discard offset of profile data
+ stbi__get32le(s); // discard size of profile data
+ stbi__get32le(s); // discard reserved
+ }
+ }
+ }
+ return (void *)1;
+}
+
+static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri)
+{
+ stbi_uc *out;
+ unsigned int mr = 0, mg = 0, mb = 0, ma = 0, all_a;
+ stbi_uc pal[256][4];
+ int psize = 0, i, j, width;
+ int flip_vertically, pad, target;
+ stbi__bmp_data info;
+ STBI_NOTUSED(ri);
+
+ info.all_a = 255;
+ if (stbi__bmp_parse_header(s, &info) == NULL)
+ return NULL; // error code already set
+
+ flip_vertically = ((int)s->img_y) > 0;
+ s->img_y = abs((int)s->img_y);
+
+ if (s->img_y > STBI_MAX_DIMENSIONS)
+ return stbi__errpuc("too large", "Very large image (corrupt?)");
+ if (s->img_x > STBI_MAX_DIMENSIONS)
+ return stbi__errpuc("too large", "Very large image (corrupt?)");
+
+ mr = info.mr;
+ mg = info.mg;
+ mb = info.mb;
+ ma = info.ma;
+ all_a = info.all_a;
+
+ if (info.hsz == 12) {
+ if (info.bpp < 24)
+ psize = (info.offset - info.extra_read - 24) / 3;
+ } else {
+ if (info.bpp < 16)
+ psize = (info.offset - info.extra_read - info.hsz) >> 2;
+ }
+ if (psize == 0) {
+ // accept some number of extra bytes after the header, but if the offset points either to before
+ // the header ends or implies a large amount of extra data, reject the file as malformed
+ int bytes_read_so_far =
+ s->callback_already_read + (int)(s->img_buffer - s->img_buffer_original);
+ int header_limit = 1024; // max we actually read is below 256 bytes currently.
+ int extra_data_limit =
+ 256 *
+ 4; // what ordinarily goes here is a palette; 256 entries*4 bytes is its max size.
+ if (bytes_read_so_far <= 0 || bytes_read_so_far > header_limit) {
+ return stbi__errpuc("bad header", "Corrupt BMP");
+ }
+ // we established that bytes_read_so_far is positive and sensible.
+ // the first half of this test rejects offsets that are either too small positives, or
+ // negative, and guarantees that info.offset >= bytes_read_so_far > 0. this in turn
+ // ensures the number computed in the second half of the test can't overflow.
+ if (info.offset < bytes_read_so_far ||
+ info.offset - bytes_read_so_far > extra_data_limit) {
+ return stbi__errpuc("bad offset", "Corrupt BMP");
+ } else {
+ stbi__skip(s, info.offset - bytes_read_so_far);
+ }
+ }
+
+ if (info.bpp == 24 && ma == 0xff000000)
+ s->img_n = 3;
+ else
+ s->img_n = ma ? 4 : 3;
+ if (req_comp && req_comp >= 3) // we can directly decode 3 or 4
+ target = req_comp;
+ else
+ target = s->img_n; // if they want monochrome, we'll post-convert
+
+ // sanity-check size
+ if (!stbi__mad3sizes_valid(target, s->img_x, s->img_y, 0))
+ return stbi__errpuc("too large", "Corrupt BMP");
+
+ out = (stbi_uc *)stbi__malloc_mad3(target, s->img_x, s->img_y, 0);
+ if (!out)
+ return stbi__errpuc("outofmem", "Out of memory");
+ if (info.bpp < 16) {
+ int z = 0;
+ if (psize == 0 || psize > 256) {
+ STBI_FREE(out);
+ return stbi__errpuc("invalid", "Corrupt BMP");
+ }
+ for (i = 0; i < psize; ++i) {
+ pal[i][2] = stbi__get8(s);
+ pal[i][1] = stbi__get8(s);
+ pal[i][0] = stbi__get8(s);
+ if (info.hsz != 12)
+ stbi__get8(s);
+ pal[i][3] = 255;
+ }
+ stbi__skip(s, info.offset - info.extra_read - info.hsz -
+ psize * (info.hsz == 12 ? 3 : 4));
+ if (info.bpp == 1)
+ width = (s->img_x + 7) >> 3;
+ else if (info.bpp == 4)
+ width = (s->img_x + 1) >> 1;
+ else if (info.bpp == 8)
+ width = s->img_x;
+ else {
+ STBI_FREE(out);
+ return stbi__errpuc("bad bpp", "Corrupt BMP");
+ }
+ pad = (-width) & 3;
+ if (info.bpp == 1) {
+ for (j = 0; j < (int)s->img_y; ++j) {
+ int bit_offset = 7, v = stbi__get8(s);
+ for (i = 0; i < (int)s->img_x; ++i) {
+ int color = (v >> bit_offset) & 0x1;
+ out[z++] = pal[color][0];
+ out[z++] = pal[color][1];
+ out[z++] = pal[color][2];
+ if (target == 4)
+ out[z++] = 255;
+ if (i + 1 == (int)s->img_x)
+ break;
+ if ((--bit_offset) < 0) {
+ bit_offset = 7;
+ v = stbi__get8(s);
+ }
+ }
+ stbi__skip(s, pad);
+ }
+ } else {
+ for (j = 0; j < (int)s->img_y; ++j) {
+ for (i = 0; i < (int)s->img_x; i += 2) {
+ int v = stbi__get8(s), v2 = 0;
+ if (info.bpp == 4) {
+ v2 = v & 15;
+ v >>= 4;
+ }
+ out[z++] = pal[v][0];
+ out[z++] = pal[v][1];
+ out[z++] = pal[v][2];
+ if (target == 4)
+ out[z++] = 255;
+ if (i + 1 == (int)s->img_x)
+ break;
+ v = (info.bpp == 8) ? stbi__get8(s) : v2;
+ out[z++] = pal[v][0];
+ out[z++] = pal[v][1];
+ out[z++] = pal[v][2];
+ if (target == 4)
+ out[z++] = 255;
+ }
+ stbi__skip(s, pad);
+ }
+ }
+ } else {
+ int rshift = 0, gshift = 0, bshift = 0, ashift = 0, rcount = 0, gcount = 0,
+ bcount = 0, acount = 0;
+ int z = 0;
+ int easy = 0;
+ stbi__skip(s, info.offset - info.extra_read - info.hsz);
+ if (info.bpp == 24)
+ width = 3 * s->img_x;
+ else if (info.bpp == 16)
+ width = 2 * s->img_x;
+ else /* bpp = 32 and pad = 0 */
+ width = 0;
+ pad = (-width) & 3;
+ if (info.bpp == 24) {
+ easy = 1;
+ } else if (info.bpp == 32) {
+ if (mb == 0xff && mg == 0xff00 && mr == 0x00ff0000 && ma == 0xff000000)
+ easy = 2;
+ }
+ if (!easy) {
+ if (!mr || !mg || !mb) {
+ STBI_FREE(out);
+ return stbi__errpuc("bad masks", "Corrupt BMP");
+ }
+ // right shift amt to put high bit in position #7
+ rshift = stbi__high_bit(mr) - 7;
+ rcount = stbi__bitcount(mr);
+ gshift = stbi__high_bit(mg) - 7;
+ gcount = stbi__bitcount(mg);
+ bshift = stbi__high_bit(mb) - 7;
+ bcount = stbi__bitcount(mb);
+ ashift = stbi__high_bit(ma) - 7;
+ acount = stbi__bitcount(ma);
+ if (rcount > 8 || gcount > 8 || bcount > 8 || acount > 8) {
+ STBI_FREE(out);
+ return stbi__errpuc("bad masks", "Corrupt BMP");
+ }
+ }
+ for (j = 0; j < (int)s->img_y; ++j) {
+ if (easy) {
+ for (i = 0; i < (int)s->img_x; ++i) {
+ unsigned char a;
+ out[z + 2] = stbi__get8(s);
+ out[z + 1] = stbi__get8(s);
+ out[z + 0] = stbi__get8(s);
+ z += 3;
+ a = (easy == 2 ? stbi__get8(s) : 255);
+ all_a |= a;
+ if (target == 4)
+ out[z++] = a;
+ }
+ } else {
+ int bpp = info.bpp;
+ for (i = 0; i < (int)s->img_x; ++i) {
+ stbi__uint32 v = (bpp == 16 ?
+ (stbi__uint32)stbi__get16le(s) :
+ stbi__get32le(s));
+ unsigned int a;
+ out[z++] = STBI__BYTECAST(
+ stbi__shiftsigned(v & mr, rshift, rcount));
+ out[z++] = STBI__BYTECAST(
+ stbi__shiftsigned(v & mg, gshift, gcount));
+ out[z++] = STBI__BYTECAST(
+ stbi__shiftsigned(v & mb, bshift, bcount));
+ a = (ma ? stbi__shiftsigned(v & ma, ashift, acount) : 255);
+ all_a |= a;
+ if (target == 4)
+ out[z++] = STBI__BYTECAST(a);
+ }
+ }
+ stbi__skip(s, pad);
+ }
+ }
+
+ // if alpha channel is all 0s, replace with all 255s
+ if (target == 4 && all_a == 0)
+ for (i = 4 * s->img_x * s->img_y - 1; i >= 0; i -= 4)
+ out[i] = 255;
+
+ if (flip_vertically) {
+ stbi_uc t;
+ for (j = 0; j < (int)s->img_y >> 1; ++j) {
+ stbi_uc *p1 = out + j * s->img_x * target;
+ stbi_uc *p2 = out + (s->img_y - 1 - j) * s->img_x * target;
+ for (i = 0; i < (int)s->img_x * target; ++i) {
+ t = p1[i];
+ p1[i] = p2[i];
+ p2[i] = t;
+ }
+ }
+ }
+
+ if (req_comp && req_comp != target) {
+ out = stbi__convert_format(out, target, req_comp, s->img_x, s->img_y);
+ if (out == NULL)
+ return out; // stbi__convert_format frees input on failure
+ }
+
+ *x = s->img_x;
+ *y = s->img_y;
+ if (comp)
+ *comp = s->img_n;
+ return out;
+}
+#endif
+
+// Targa Truevision - TGA
+// by Jonathan Dummer
+#ifndef STBI_NO_TGA
+// returns STBI_rgb or whatever, 0 on error
+static int stbi__tga_get_comp(int bits_per_pixel, int is_grey, int *is_rgb16)
+{
+ // only RGB or RGBA (incl. 16bit) or grey allowed
+ if (is_rgb16)
+ *is_rgb16 = 0;
+ switch (bits_per_pixel) {
+ case 8:
+ return STBI_grey;
+ case 16:
+ if (is_grey)
+ return STBI_grey_alpha;
+ // fallthrough
+ case 15:
+ if (is_rgb16)
+ *is_rgb16 = 1;
+ return STBI_rgb;
+ case 24: // fallthrough
+ case 32:
+ return bits_per_pixel / 8;
+ default:
+ return 0;
+ }
+}
+
+static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ int tga_w, tga_h, tga_comp, tga_image_type, tga_bits_per_pixel, tga_colormap_bpp;
+ int sz, tga_colormap_type;
+ stbi__get8(s); // discard Offset
+ tga_colormap_type = stbi__get8(s); // colormap type
+ if (tga_colormap_type > 1) {
+ stbi__rewind(s);
+ return 0; // only RGB or indexed allowed
+ }
+ tga_image_type = stbi__get8(s); // image type
+ if (tga_colormap_type == 1) { // colormapped (paletted) image
+ if (tga_image_type != 1 && tga_image_type != 9) {
+ stbi__rewind(s);
+ return 0;
+ }
+ stbi__skip(s,
+ 4); // skip index of first colormap entry and number of entries
+ sz = stbi__get8(s); // check bits per palette color entry
+ if ((sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32)) {
+ stbi__rewind(s);
+ return 0;
+ }
+ stbi__skip(s, 4); // skip image x and y origin
+ tga_colormap_bpp = sz;
+ } else { // "normal" image w/o colormap - only RGB or grey allowed, +/- RLE
+ if ((tga_image_type != 2) && (tga_image_type != 3) && (tga_image_type != 10) &&
+ (tga_image_type != 11)) {
+ stbi__rewind(s);
+ return 0; // only RGB or grey allowed, +/- RLE
+ }
+ stbi__skip(s,
+ 9); // skip colormap specification and image x/y origin
+ tga_colormap_bpp = 0;
+ }
+ tga_w = stbi__get16le(s);
+ if (tga_w < 1) {
+ stbi__rewind(s);
+ return 0; // test width
+ }
+ tga_h = stbi__get16le(s);
+ if (tga_h < 1) {
+ stbi__rewind(s);
+ return 0; // test height
+ }
+ tga_bits_per_pixel = stbi__get8(s); // bits per pixel
+ stbi__get8(s); // ignore alpha bits
+ if (tga_colormap_bpp != 0) {
+ if ((tga_bits_per_pixel != 8) && (tga_bits_per_pixel != 16)) {
+ // when using a colormap, tga_bits_per_pixel is the size of the indexes
+ // I don't think anything but 8 or 16bit indexes makes sense
+ stbi__rewind(s);
+ return 0;
+ }
+ tga_comp = stbi__tga_get_comp(tga_colormap_bpp, 0, NULL);
+ } else {
+ tga_comp = stbi__tga_get_comp(
+ tga_bits_per_pixel, (tga_image_type == 3) || (tga_image_type == 11), NULL);
+ }
+ if (!tga_comp) {
+ stbi__rewind(s);
+ return 0;
+ }
+ if (x)
+ *x = tga_w;
+ if (y)
+ *y = tga_h;
+ if (comp)
+ *comp = tga_comp;
+ return 1; // seems to have passed everything
+}
+
+static int stbi__tga_test(stbi__context *s)
+{
+ int res = 0;
+ int sz, tga_color_type;
+ stbi__get8(s); // discard Offset
+ tga_color_type = stbi__get8(s); // color type
+ if (tga_color_type > 1)
+ goto errorEnd; // only RGB or indexed allowed
+ sz = stbi__get8(s); // image type
+ if (tga_color_type == 1) { // colormapped (paletted) image
+ if (sz != 1 && sz != 9)
+ goto errorEnd; // colortype 1 demands image type 1 or 9
+ stbi__skip(s,
+ 4); // skip index of first colormap entry and number of entries
+ sz = stbi__get8(s); // check bits per palette color entry
+ if ((sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32))
+ goto errorEnd;
+ stbi__skip(s, 4); // skip image x and y origin
+ } else { // "normal" image w/o colormap
+ if ((sz != 2) && (sz != 3) && (sz != 10) && (sz != 11))
+ goto errorEnd; // only RGB or grey allowed, +/- RLE
+ stbi__skip(s,
+ 9); // skip colormap specification and image x/y origin
+ }
+ if (stbi__get16le(s) < 1)
+ goto errorEnd; // test width
+ if (stbi__get16le(s) < 1)
+ goto errorEnd; // test height
+ sz = stbi__get8(s); // bits per pixel
+ if ((tga_color_type == 1) && (sz != 8) && (sz != 16))
+ goto errorEnd; // for colormapped images, bpp is size of an index
+ if ((sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32))
+ goto errorEnd;
+
+ res = 1; // if we got this far, everything's good and we can return 1 instead of 0
+
+errorEnd:
+ stbi__rewind(s);
+ return res;
+}
+
+// read 16bit value and convert to 24bit RGB
+static void stbi__tga_read_rgb16(stbi__context *s, stbi_uc *out)
+{
+ stbi__uint16 px = (stbi__uint16)stbi__get16le(s);
+ stbi__uint16 fiveBitMask = 31;
+ // we have 3 channels with 5bits each
+ int r = (px >> 10) & fiveBitMask;
+ int g = (px >> 5) & fiveBitMask;
+ int b = px & fiveBitMask;
+ // Note that this saves the data in RGB(A) order, so it doesn't need to be swapped later
+ out[0] = (stbi_uc)((r * 255) / 31);
+ out[1] = (stbi_uc)((g * 255) / 31);
+ out[2] = (stbi_uc)((b * 255) / 31);
+
+ // some people claim that the most significant bit might be used for alpha
+ // (possibly if an alpha-bit is set in the "image descriptor byte")
+ // but that only made 16bit test images completely translucent..
+ // so let's treat all 15 and 16bit TGAs as RGB with no alpha.
+}
+
+static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri)
+{
+ // read in the TGA header stuff
+ int tga_offset = stbi__get8(s);
+ int tga_indexed = stbi__get8(s);
+ int tga_image_type = stbi__get8(s);
+ int tga_is_RLE = 0;
+ int tga_palette_start = stbi__get16le(s);
+ int tga_palette_len = stbi__get16le(s);
+ int tga_palette_bits = stbi__get8(s);
+ int tga_x_origin = stbi__get16le(s);
+ int tga_y_origin = stbi__get16le(s);
+ int tga_width = stbi__get16le(s);
+ int tga_height = stbi__get16le(s);
+ int tga_bits_per_pixel = stbi__get8(s);
+ int tga_comp, tga_rgb16 = 0;
+ int tga_inverted = stbi__get8(s);
+ // int tga_alpha_bits = tga_inverted & 15; // the 4 lowest bits - unused (useless?)
+ // image data
+ unsigned char *tga_data;
+ unsigned char *tga_palette = NULL;
+ int i, j;
+ unsigned char raw_data[4] = { 0 };
+ int RLE_count = 0;
+ int RLE_repeating = 0;
+ int read_next_pixel = 1;
+ STBI_NOTUSED(ri);
+ STBI_NOTUSED(tga_x_origin); // @TODO
+ STBI_NOTUSED(tga_y_origin); // @TODO
+
+ if (tga_height > STBI_MAX_DIMENSIONS)
+ return stbi__errpuc("too large", "Very large image (corrupt?)");
+ if (tga_width > STBI_MAX_DIMENSIONS)
+ return stbi__errpuc("too large", "Very large image (corrupt?)");
+
+ // do a tiny bit of precessing
+ if (tga_image_type >= 8) {
+ tga_image_type -= 8;
+ tga_is_RLE = 1;
+ }
+ tga_inverted = 1 - ((tga_inverted >> 5) & 1);
+
+ // If I'm paletted, then I'll use the number of bits from the palette
+ if (tga_indexed)
+ tga_comp = stbi__tga_get_comp(tga_palette_bits, 0, &tga_rgb16);
+ else
+ tga_comp =
+ stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3), &tga_rgb16);
+
+ if (!tga_comp) // shouldn't really happen, stbi__tga_test() should have ensured basic consistency
+ return stbi__errpuc("bad format", "Can't find out TGA pixelformat");
+
+ // tga info
+ *x = tga_width;
+ *y = tga_height;
+ if (comp)
+ *comp = tga_comp;
+
+ if (!stbi__mad3sizes_valid(tga_width, tga_height, tga_comp, 0))
+ return stbi__errpuc("too large", "Corrupt TGA");
+
+ tga_data = (unsigned char *)stbi__malloc_mad3(tga_width, tga_height, tga_comp, 0);
+ if (!tga_data)
+ return stbi__errpuc("outofmem", "Out of memory");
+
+ // skip to the data's starting position (offset usually = 0)
+ stbi__skip(s, tga_offset);
+
+ if (!tga_indexed && !tga_is_RLE && !tga_rgb16) {
+ for (i = 0; i < tga_height; ++i) {
+ int row = tga_inverted ? tga_height - i - 1 : i;
+ stbi_uc *tga_row = tga_data + row * tga_width * tga_comp;
+ stbi__getn(s, tga_row, tga_width * tga_comp);
+ }
+ } else {
+ // do I need to load a palette?
+ if (tga_indexed) {
+ if (tga_palette_len == 0) { /* you have to have at least one entry! */
+ STBI_FREE(tga_data);
+ return stbi__errpuc("bad palette", "Corrupt TGA");
+ }
+
+ // any data to skip? (offset usually = 0)
+ stbi__skip(s, tga_palette_start);
+ // load the palette
+ tga_palette =
+ (unsigned char *)stbi__malloc_mad2(tga_palette_len, tga_comp, 0);
+ if (!tga_palette) {
+ STBI_FREE(tga_data);
+ return stbi__errpuc("outofmem", "Out of memory");
+ }
+ if (tga_rgb16) {
+ stbi_uc *pal_entry = tga_palette;
+ STBI_ASSERT(tga_comp == STBI_rgb);
+ for (i = 0; i < tga_palette_len; ++i) {
+ stbi__tga_read_rgb16(s, pal_entry);
+ pal_entry += tga_comp;
+ }
+ } else if (!stbi__getn(s, tga_palette, tga_palette_len * tga_comp)) {
+ STBI_FREE(tga_data);
+ STBI_FREE(tga_palette);
+ return stbi__errpuc("bad palette", "Corrupt TGA");
+ }
+ }
+ // load the data
+ for (i = 0; i < tga_width * tga_height; ++i) {
+ // if I'm in RLE mode, do I need to get a RLE stbi__pngchunk?
+ if (tga_is_RLE) {
+ if (RLE_count == 0) {
+ // yep, get the next byte as a RLE command
+ int RLE_cmd = stbi__get8(s);
+ RLE_count = 1 + (RLE_cmd & 127);
+ RLE_repeating = RLE_cmd >> 7;
+ read_next_pixel = 1;
+ } else if (!RLE_repeating) {
+ read_next_pixel = 1;
+ }
+ } else {
+ read_next_pixel = 1;
+ }
+ // OK, if I need to read a pixel, do it now
+ if (read_next_pixel) {
+ // load however much data we did have
+ if (tga_indexed) {
+ // read in index, then perform the lookup
+ int pal_idx = (tga_bits_per_pixel == 8) ? stbi__get8(s) :
+ stbi__get16le(s);
+ if (pal_idx >= tga_palette_len) {
+ // invalid index
+ pal_idx = 0;
+ }
+ pal_idx *= tga_comp;
+ for (j = 0; j < tga_comp; ++j) {
+ raw_data[j] = tga_palette[pal_idx + j];
+ }
+ } else if (tga_rgb16) {
+ STBI_ASSERT(tga_comp == STBI_rgb);
+ stbi__tga_read_rgb16(s, raw_data);
+ } else {
+ // read in the data raw
+ for (j = 0; j < tga_comp; ++j) {
+ raw_data[j] = stbi__get8(s);
+ }
+ }
+ // clear the reading flag for the next pixel
+ read_next_pixel = 0;
+ } // end of reading a pixel
+
+ // copy data
+ for (j = 0; j < tga_comp; ++j)
+ tga_data[i * tga_comp + j] = raw_data[j];
+
+ // in case we're in RLE mode, keep counting down
+ --RLE_count;
+ }
+ // do I need to invert the image?
+ if (tga_inverted) {
+ for (j = 0; j * 2 < tga_height; ++j) {
+ int index1 = j * tga_width * tga_comp;
+ int index2 = (tga_height - 1 - j) * tga_width * tga_comp;
+ for (i = tga_width * tga_comp; i > 0; --i) {
+ unsigned char temp = tga_data[index1];
+ tga_data[index1] = tga_data[index2];
+ tga_data[index2] = temp;
+ ++index1;
+ ++index2;
+ }
+ }
+ }
+ // clear my palette, if I had one
+ if (tga_palette != NULL) {
+ STBI_FREE(tga_palette);
+ }
+ }
+
+ // swap RGB - if the source data was RGB16, it already is in the right order
+ if (tga_comp >= 3 && !tga_rgb16) {
+ unsigned char *tga_pixel = tga_data;
+ for (i = 0; i < tga_width * tga_height; ++i) {
+ unsigned char temp = tga_pixel[0];
+ tga_pixel[0] = tga_pixel[2];
+ tga_pixel[2] = temp;
+ tga_pixel += tga_comp;
+ }
+ }
+
+ // convert to target component count
+ if (req_comp && req_comp != tga_comp)
+ tga_data =
+ stbi__convert_format(tga_data, tga_comp, req_comp, tga_width, tga_height);
+
+ // the things I do to get rid of an error message, and yet keep
+ // Microsoft's C compilers happy... [8^(
+ tga_palette_start = tga_palette_len = tga_palette_bits = tga_x_origin = tga_y_origin = 0;
+ STBI_NOTUSED(tga_palette_start);
+ // OK, done
+ return tga_data;
+}
+#endif
+
+// *************************************************************************************************
+// Photoshop PSD loader -- PD by Thatcher Ulrich, integration by Nicolas Schulz, tweaked by STB
+
+#ifndef STBI_NO_PSD
+static int stbi__psd_test(stbi__context *s)
+{
+ int r = (stbi__get32be(s) == 0x38425053);
+ stbi__rewind(s);
+ return r;
+}
+
+static int stbi__psd_decode_rle(stbi__context *s, stbi_uc *p, int pixelCount)
+{
+ int count, nleft, len;
+
+ count = 0;
+ while ((nleft = pixelCount - count) > 0) {
+ len = stbi__get8(s);
+ if (len == 128) {
+ // No-op.
+ } else if (len < 128) {
+ // Copy next len+1 bytes literally.
+ len++;
+ if (len > nleft)
+ return 0; // corrupt data
+ count += len;
+ while (len) {
+ *p = stbi__get8(s);
+ p += 4;
+ len--;
+ }
+ } else if (len > 128) {
+ stbi_uc val;
+ // Next -len+1 bytes in the dest are replicated from next source byte.
+ // (Interpret len as a negative 8-bit int.)
+ len = 257 - len;
+ if (len > nleft)
+ return 0; // corrupt data
+ val = stbi__get8(s);
+ count += len;
+ while (len) {
+ *p = val;
+ p += 4;
+ len--;
+ }
+ }
+ }
+
+ return 1;
+}
+
+static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri, int bpc)
+{
+ int pixelCount;
+ int channelCount, compression;
+ int channel, i;
+ int bitdepth;
+ int w, h;
+ stbi_uc *out;
+ STBI_NOTUSED(ri);
+
+ // Check identifier
+ if (stbi__get32be(s) != 0x38425053) // "8BPS"
+ return stbi__errpuc("not PSD", "Corrupt PSD image");
+
+ // Check file type version.
+ if (stbi__get16be(s) != 1)
+ return stbi__errpuc("wrong version", "Unsupported version of PSD image");
+
+ // Skip 6 reserved bytes.
+ stbi__skip(s, 6);
+
+ // Read the number of channels (R, G, B, A, etc).
+ channelCount = stbi__get16be(s);
+ if (channelCount < 0 || channelCount > 16)
+ return stbi__errpuc("wrong channel count",
+ "Unsupported number of channels in PSD image");
+
+ // Read the rows and columns of the image.
+ h = stbi__get32be(s);
+ w = stbi__get32be(s);
+
+ if (h > STBI_MAX_DIMENSIONS)
+ return stbi__errpuc("too large", "Very large image (corrupt?)");
+ if (w > STBI_MAX_DIMENSIONS)
+ return stbi__errpuc("too large", "Very large image (corrupt?)");
+
+ // Make sure the depth is 8 bits.
+ bitdepth = stbi__get16be(s);
+ if (bitdepth != 8 && bitdepth != 16)
+ return stbi__errpuc("unsupported bit depth", "PSD bit depth is not 8 or 16 bit");
+
+ // Make sure the color mode is RGB.
+ // Valid options are:
+ // 0: Bitmap
+ // 1: Grayscale
+ // 2: Indexed color
+ // 3: RGB color
+ // 4: CMYK color
+ // 7: Multichannel
+ // 8: Duotone
+ // 9: Lab color
+ if (stbi__get16be(s) != 3)
+ return stbi__errpuc("wrong color format", "PSD is not in RGB color format");
+
+ // Skip the Mode Data. (It's the palette for indexed color; other info for other modes.)
+ stbi__skip(s, stbi__get32be(s));
+
+ // Skip the image resources. (resolution, pen tool paths, etc)
+ stbi__skip(s, stbi__get32be(s));
+
+ // Skip the reserved data.
+ stbi__skip(s, stbi__get32be(s));
+
+ // Find out if the data is compressed.
+ // Known values:
+ // 0: no compression
+ // 1: RLE compressed
+ compression = stbi__get16be(s);
+ if (compression > 1)
+ return stbi__errpuc("bad compression", "PSD has an unknown compression format");
+
+ // Check size
+ if (!stbi__mad3sizes_valid(4, w, h, 0))
+ return stbi__errpuc("too large", "Corrupt PSD");
+
+ // Create the destination image.
+
+ if (!compression && bitdepth == 16 && bpc == 16) {
+ out = (stbi_uc *)stbi__malloc_mad3(8, w, h, 0);
+ ri->bits_per_channel = 16;
+ } else
+ out = (stbi_uc *)stbi__malloc(4 * w * h);
+
+ if (!out)
+ return stbi__errpuc("outofmem", "Out of memory");
+ pixelCount = w * h;
+
+ // Initialize the data to zero.
+ //memset( out, 0, pixelCount * 4 );
+
+ // Finally, the image data.
+ if (compression) {
+ // RLE as used by .PSD and .TIFF
+ // Loop until you get the number of unpacked bytes you are expecting:
+ // Read the next source byte into n.
+ // If n is between 0 and 127 inclusive, copy the next n+1 bytes literally.
+ // Else if n is between -127 and -1 inclusive, copy the next byte -n+1 times.
+ // Else if n is 128, noop.
+ // Endloop
+
+ // The RLE-compressed data is preceded by a 2-byte data count for each row in the data,
+ // which we're going to just skip.
+ stbi__skip(s, h * channelCount * 2);
+
+ // Read the RLE data by channel.
+ for (channel = 0; channel < 4; channel++) {
+ stbi_uc *p;
+
+ p = out + channel;
+ if (channel >= channelCount) {
+ // Fill this channel with default data.
+ for (i = 0; i < pixelCount; i++, p += 4)
+ *p = (channel == 3 ? 255 : 0);
+ } else {
+ // Read the RLE data.
+ if (!stbi__psd_decode_rle(s, p, pixelCount)) {
+ STBI_FREE(out);
+ return stbi__errpuc("corrupt", "bad RLE data");
+ }
+ }
+ }
+ } else {
+ // We're at the raw image data. It's each channel in order (Red, Green, Blue, Alpha, ...)
+ // where each channel consists of an 8-bit (or 16-bit) value for each pixel in the image.
+
+ // Read the data by channel.
+ for (channel = 0; channel < 4; channel++) {
+ if (channel >= channelCount) {
+ // Fill this channel with default data.
+ if (bitdepth == 16 && bpc == 16) {
+ stbi__uint16 *q = ((stbi__uint16 *)out) + channel;
+ stbi__uint16 val = channel == 3 ? 65535 : 0;
+ for (i = 0; i < pixelCount; i++, q += 4)
+ *q = val;
+ } else {
+ stbi_uc *p = out + channel;
+ stbi_uc val = channel == 3 ? 255 : 0;
+ for (i = 0; i < pixelCount; i++, p += 4)
+ *p = val;
+ }
+ } else {
+ if (ri->bits_per_channel == 16) { // output bpc
+ stbi__uint16 *q = ((stbi__uint16 *)out) + channel;
+ for (i = 0; i < pixelCount; i++, q += 4)
+ *q = (stbi__uint16)stbi__get16be(s);
+ } else {
+ stbi_uc *p = out + channel;
+ if (bitdepth == 16) { // input bpc
+ for (i = 0; i < pixelCount; i++, p += 4)
+ *p = (stbi_uc)(stbi__get16be(s) >> 8);
+ } else {
+ for (i = 0; i < pixelCount; i++, p += 4)
+ *p = stbi__get8(s);
+ }
+ }
+ }
+ }
+ }
+
+ // remove weird white matte from PSD
+ if (channelCount >= 4) {
+ if (ri->bits_per_channel == 16) {
+ for (i = 0; i < w * h; ++i) {
+ stbi__uint16 *pixel = (stbi__uint16 *)out + 4 * i;
+ if (pixel[3] != 0 && pixel[3] != 65535) {
+ float a = pixel[3] / 65535.0f;
+ float ra = 1.0f / a;
+ float inv_a = 65535.0f * (1 - ra);
+ pixel[0] = (stbi__uint16)(pixel[0] * ra + inv_a);
+ pixel[1] = (stbi__uint16)(pixel[1] * ra + inv_a);
+ pixel[2] = (stbi__uint16)(pixel[2] * ra + inv_a);
+ }
+ }
+ } else {
+ for (i = 0; i < w * h; ++i) {
+ unsigned char *pixel = out + 4 * i;
+ if (pixel[3] != 0 && pixel[3] != 255) {
+ float a = pixel[3] / 255.0f;
+ float ra = 1.0f / a;
+ float inv_a = 255.0f * (1 - ra);
+ pixel[0] = (unsigned char)(pixel[0] * ra + inv_a);
+ pixel[1] = (unsigned char)(pixel[1] * ra + inv_a);
+ pixel[2] = (unsigned char)(pixel[2] * ra + inv_a);
+ }
+ }
+ }
+ }
+
+ // convert to desired output format
+ if (req_comp && req_comp != 4) {
+ if (ri->bits_per_channel == 16)
+ out = (stbi_uc *)stbi__convert_format16((stbi__uint16 *)out, 4, req_comp, w,
+ h);
+ else
+ out = stbi__convert_format(out, 4, req_comp, w, h);
+ if (out == NULL)
+ return out; // stbi__convert_format frees input on failure
+ }
+
+ if (comp)
+ *comp = 4;
+ *y = h;
+ *x = w;
+
+ return out;
+}
+#endif
+
+// *************************************************************************************************
+// Softimage PIC loader
+// by Tom Seddon
+//
+// See http://softimage.wiki.softimage.com/index.php/INFO:_PIC_file_format
+// See http://ozviz.wasp.uwa.edu.au/~pbourke/dataformats/softimagepic/
+
+#ifndef STBI_NO_PIC
+static int stbi__pic_is4(stbi__context *s, const char *str)
+{
+ int i;
+ for (i = 0; i < 4; ++i)
+ if (stbi__get8(s) != (stbi_uc)str[i])
+ return 0;
+
+ return 1;
+}
+
+static int stbi__pic_test_core(stbi__context *s)
+{
+ int i;
+
+ if (!stbi__pic_is4(s, "\x53\x80\xF6\x34"))
+ return 0;
+
+ for (i = 0; i < 84; ++i)
+ stbi__get8(s);
+
+ if (!stbi__pic_is4(s, "PICT"))
+ return 0;
+
+ return 1;
+}
+
+typedef struct {
+ stbi_uc size, type, channel;
+} stbi__pic_packet;
+
+static stbi_uc *stbi__readval(stbi__context *s, int channel, stbi_uc *dest)
+{
+ int mask = 0x80, i;
+
+ for (i = 0; i < 4; ++i, mask >>= 1) {
+ if (channel & mask) {
+ if (stbi__at_eof(s))
+ return stbi__errpuc("bad file", "PIC file too short");
+ dest[i] = stbi__get8(s);
+ }
+ }
+
+ return dest;
+}
+
+static void stbi__copyval(int channel, stbi_uc *dest, const stbi_uc *src)
+{
+ int mask = 0x80, i;
+
+ for (i = 0; i < 4; ++i, mask >>= 1)
+ if (channel & mask)
+ dest[i] = src[i];
+}
+
+static stbi_uc *stbi__pic_load_core(stbi__context *s, int width, int height, int *comp,
+ stbi_uc *result)
+{
+ int act_comp = 0, num_packets = 0, y, chained;
+ stbi__pic_packet packets[10];
+
+ // this will (should...) cater for even some bizarre stuff like having data
+ // for the same channel in multiple packets.
+ do {
+ stbi__pic_packet *packet;
+
+ if (num_packets == sizeof(packets) / sizeof(packets[0]))
+ return stbi__errpuc("bad format", "too many packets");
+
+ packet = &packets[num_packets++];
+
+ chained = stbi__get8(s);
+ packet->size = stbi__get8(s);
+ packet->type = stbi__get8(s);
+ packet->channel = stbi__get8(s);
+
+ act_comp |= packet->channel;
+
+ if (stbi__at_eof(s))
+ return stbi__errpuc("bad file", "file too short (reading packets)");
+ if (packet->size != 8)
+ return stbi__errpuc("bad format", "packet isn't 8bpp");
+ } while (chained);
+
+ *comp = (act_comp & 0x10 ? 4 : 3); // has alpha channel?
+
+ for (y = 0; y < height; ++y) {
+ int packet_idx;
+
+ for (packet_idx = 0; packet_idx < num_packets; ++packet_idx) {
+ stbi__pic_packet *packet = &packets[packet_idx];
+ stbi_uc *dest = result + y * width * 4;
+
+ switch (packet->type) {
+ default:
+ return stbi__errpuc("bad format",
+ "packet has bad compression type");
+
+ case 0: { //uncompressed
+ int x;
+
+ for (x = 0; x < width; ++x, dest += 4)
+ if (!stbi__readval(s, packet->channel, dest))
+ return 0;
+ break;
+ }
+
+ case 1: //Pure RLE
+ {
+ int left = width, i;
+
+ while (left > 0) {
+ stbi_uc count, value[4];
+
+ count = stbi__get8(s);
+ if (stbi__at_eof(s))
+ return stbi__errpuc(
+ "bad file",
+ "file too short (pure read count)");
+
+ if (count > left)
+ count = (stbi_uc)left;
+
+ if (!stbi__readval(s, packet->channel, value))
+ return 0;
+
+ for (i = 0; i < count; ++i, dest += 4)
+ stbi__copyval(packet->channel, dest, value);
+ left -= count;
+ }
+ } break;
+
+ case 2: { //Mixed RLE
+ int left = width;
+ while (left > 0) {
+ int count = stbi__get8(s), i;
+ if (stbi__at_eof(s))
+ return stbi__errpuc(
+ "bad file",
+ "file too short (mixed read count)");
+
+ if (count >= 128) { // Repeated
+ stbi_uc value[4];
+
+ if (count == 128)
+ count = stbi__get16be(s);
+ else
+ count -= 127;
+ if (count > left)
+ return stbi__errpuc("bad file",
+ "scanline overrun");
+
+ if (!stbi__readval(s, packet->channel, value))
+ return 0;
+
+ for (i = 0; i < count; ++i, dest += 4)
+ stbi__copyval(packet->channel, dest, value);
+ } else { // Raw
+ ++count;
+ if (count > left)
+ return stbi__errpuc("bad file",
+ "scanline overrun");
+
+ for (i = 0; i < count; ++i, dest += 4)
+ if (!stbi__readval(s, packet->channel,
+ dest))
+ return 0;
+ }
+ left -= count;
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ return result;
+}
+
+static void *stbi__pic_load(stbi__context *s, int *px, int *py, int *comp, int req_comp,
+ stbi__result_info *ri)
+{
+ stbi_uc *result;
+ int i, x, y, internal_comp;
+ STBI_NOTUSED(ri);
+
+ if (!comp)
+ comp = &internal_comp;
+
+ for (i = 0; i < 92; ++i)
+ stbi__get8(s);
+
+ x = stbi__get16be(s);
+ y = stbi__get16be(s);
+
+ if (y > STBI_MAX_DIMENSIONS)
+ return stbi__errpuc("too large", "Very large image (corrupt?)");
+ if (x > STBI_MAX_DIMENSIONS)
+ return stbi__errpuc("too large", "Very large image (corrupt?)");
+
+ if (stbi__at_eof(s))
+ return stbi__errpuc("bad file", "file too short (pic header)");
+ if (!stbi__mad3sizes_valid(x, y, 4, 0))
+ return stbi__errpuc("too large", "PIC image too large to decode");
+
+ stbi__get32be(s); //skip `ratio'
+ stbi__get16be(s); //skip `fields'
+ stbi__get16be(s); //skip `pad'
+
+ // intermediate buffer is RGBA
+ result = (stbi_uc *)stbi__malloc_mad3(x, y, 4, 0);
+ if (!result)
+ return stbi__errpuc("outofmem", "Out of memory");
+ memset(result, 0xff, x * y * 4);
+
+ if (!stbi__pic_load_core(s, x, y, comp, result)) {
+ STBI_FREE(result);
+ result = 0;
+ }
+ *px = x;
+ *py = y;
+ if (req_comp == 0)
+ req_comp = *comp;
+ result = stbi__convert_format(result, 4, req_comp, x, y);
+
+ return result;
+}
+
+static int stbi__pic_test(stbi__context *s)
+{
+ int r = stbi__pic_test_core(s);
+ stbi__rewind(s);
+ return r;
+}
+#endif
+
+// *************************************************************************************************
+// GIF loader -- public domain by Jean-Marc Lienher -- simplified/shrunk by stb
+
+#ifndef STBI_NO_GIF
+typedef struct {
+ stbi__int16 prefix;
+ stbi_uc first;
+ stbi_uc suffix;
+} stbi__gif_lzw;
+
+typedef struct {
+ int w, h;
+ stbi_uc *out; // output buffer (always 4 components)
+ stbi_uc *background; // The current "background" as far as a gif is concerned
+ stbi_uc *history;
+ int flags, bgindex, ratio, transparent, eflags;
+ stbi_uc pal[256][4];
+ stbi_uc lpal[256][4];
+ stbi__gif_lzw codes[8192];
+ stbi_uc *color_table;
+ int parse, step;
+ int lflags;
+ int start_x, start_y;
+ int max_x, max_y;
+ int cur_x, cur_y;
+ int line_size;
+ int delay;
+} stbi__gif;
+
+static int stbi__gif_test_raw(stbi__context *s)
+{
+ int sz;
+ if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' ||
+ stbi__get8(s) != '8')
+ return 0;
+ sz = stbi__get8(s);
+ if (sz != '9' && sz != '7')
+ return 0;
+ if (stbi__get8(s) != 'a')
+ return 0;
+ return 1;
+}
+
+static int stbi__gif_test(stbi__context *s)
+{
+ int r = stbi__gif_test_raw(s);
+ stbi__rewind(s);
+ return r;
+}
+
+static void stbi__gif_parse_colortable(stbi__context *s, stbi_uc pal[256][4], int num_entries,
+ int transp)
+{
+ int i;
+ for (i = 0; i < num_entries; ++i) {
+ pal[i][2] = stbi__get8(s);
+ pal[i][1] = stbi__get8(s);
+ pal[i][0] = stbi__get8(s);
+ pal[i][3] = transp == i ? 0 : 255;
+ }
+}
+
+static int stbi__gif_header(stbi__context *s, stbi__gif *g, int *comp, int is_info)
+{
+ stbi_uc version;
+ if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' ||
+ stbi__get8(s) != '8')
+ return stbi__err("not GIF", "Corrupt GIF");
+
+ version = stbi__get8(s);
+ if (version != '7' && version != '9')
+ return stbi__err("not GIF", "Corrupt GIF");
+ if (stbi__get8(s) != 'a')
+ return stbi__err("not GIF", "Corrupt GIF");
+
+ stbi__g_failure_reason = "";
+ g->w = stbi__get16le(s);
+ g->h = stbi__get16le(s);
+ g->flags = stbi__get8(s);
+ g->bgindex = stbi__get8(s);
+ g->ratio = stbi__get8(s);
+ g->transparent = -1;
+
+ if (g->w > STBI_MAX_DIMENSIONS)
+ return stbi__err("too large", "Very large image (corrupt?)");
+ if (g->h > STBI_MAX_DIMENSIONS)
+ return stbi__err("too large", "Very large image (corrupt?)");
+
+ if (comp != 0)
+ *comp = 4; // can't actually tell whether it's 3 or 4 until we parse the comments
+
+ if (is_info)
+ return 1;
+
+ if (g->flags & 0x80)
+ stbi__gif_parse_colortable(s, g->pal, 2 << (g->flags & 7), -1);
+
+ return 1;
+}
+
+static int stbi__gif_info_raw(stbi__context *s, int *x, int *y, int *comp)
+{
+ stbi__gif *g = (stbi__gif *)stbi__malloc(sizeof(stbi__gif));
+ if (!g)
+ return stbi__err("outofmem", "Out of memory");
+ if (!stbi__gif_header(s, g, comp, 1)) {
+ STBI_FREE(g);
+ stbi__rewind(s);
+ return 0;
+ }
+ if (x)
+ *x = g->w;
+ if (y)
+ *y = g->h;
+ STBI_FREE(g);
+ return 1;
+}
+
+static void stbi__out_gif_code(stbi__gif *g, stbi__uint16 code)
+{
+ stbi_uc *p, *c;
+ int idx;
+
+ // recurse to decode the prefixes, since the linked-list is backwards,
+ // and working backwards through an interleaved image would be nasty
+ if (g->codes[code].prefix >= 0)
+ stbi__out_gif_code(g, g->codes[code].prefix);
+
+ if (g->cur_y >= g->max_y)
+ return;
+
+ idx = g->cur_x + g->cur_y;
+ p = &g->out[idx];
+ g->history[idx / 4] = 1;
+
+ c = &g->color_table[g->codes[code].suffix * 4];
+ if (c[3] > 128) { // don't render transparent pixels;
+ p[0] = c[2];
+ p[1] = c[1];
+ p[2] = c[0];
+ p[3] = c[3];
+ }
+ g->cur_x += 4;
+
+ if (g->cur_x >= g->max_x) {
+ g->cur_x = g->start_x;
+ g->cur_y += g->step;
+
+ while (g->cur_y >= g->max_y && g->parse > 0) {
+ g->step = (1 << g->parse) * g->line_size;
+ g->cur_y = g->start_y + (g->step >> 1);
+ --g->parse;
+ }
+ }
+}
+
+static stbi_uc *stbi__process_gif_raster(stbi__context *s, stbi__gif *g)
+{
+ stbi_uc lzw_cs;
+ stbi__int32 len, init_code;
+ stbi__uint32 first;
+ stbi__int32 codesize, codemask, avail, oldcode, bits, valid_bits, clear;
+ stbi__gif_lzw *p;
+
+ lzw_cs = stbi__get8(s);
+ if (lzw_cs > 12)
+ return NULL;
+ clear = 1 << lzw_cs;
+ first = 1;
+ codesize = lzw_cs + 1;
+ codemask = (1 << codesize) - 1;
+ bits = 0;
+ valid_bits = 0;
+ for (init_code = 0; init_code < clear; init_code++) {
+ g->codes[init_code].prefix = -1;
+ g->codes[init_code].first = (stbi_uc)init_code;
+ g->codes[init_code].suffix = (stbi_uc)init_code;
+ }
+
+ // support no starting clear code
+ avail = clear + 2;
+ oldcode = -1;
+
+ len = 0;
+ for (;;) {
+ if (valid_bits < codesize) {
+ if (len == 0) {
+ len = stbi__get8(s); // start new block
+ if (len == 0)
+ return g->out;
+ }
+ --len;
+ bits |= (stbi__int32)stbi__get8(s) << valid_bits;
+ valid_bits += 8;
+ } else {
+ stbi__int32 code = bits & codemask;
+ bits >>= codesize;
+ valid_bits -= codesize;
+ // @OPTIMIZE: is there some way we can accelerate the non-clear path?
+ if (code == clear) { // clear code
+ codesize = lzw_cs + 1;
+ codemask = (1 << codesize) - 1;
+ avail = clear + 2;
+ oldcode = -1;
+ first = 0;
+ } else if (code == clear + 1) { // end of stream code
+ stbi__skip(s, len);
+ while ((len = stbi__get8(s)) > 0)
+ stbi__skip(s, len);
+ return g->out;
+ } else if (code <= avail) {
+ if (first) {
+ return stbi__errpuc("no clear code", "Corrupt GIF");
+ }
+
+ if (oldcode >= 0) {
+ p = &g->codes[avail++];
+ if (avail > 8192) {
+ return stbi__errpuc("too many codes",
+ "Corrupt GIF");
+ }
+
+ p->prefix = (stbi__int16)oldcode;
+ p->first = g->codes[oldcode].first;
+ p->suffix = (code == avail) ? p->first :
+ g->codes[code].first;
+ } else if (code == avail)
+ return stbi__errpuc("illegal code in raster",
+ "Corrupt GIF");
+
+ stbi__out_gif_code(g, (stbi__uint16)code);
+
+ if ((avail & codemask) == 0 && avail <= 0x0FFF) {
+ codesize++;
+ codemask = (1 << codesize) - 1;
+ }
+
+ oldcode = code;
+ } else {
+ return stbi__errpuc("illegal code in raster", "Corrupt GIF");
+ }
+ }
+ }
+}
+
+// this function is designed to support animated gifs, although stb_image doesn't support it
+// two back is the image from two frames ago, used for a very specific disposal format
+static stbi_uc *stbi__gif_load_next(stbi__context *s, stbi__gif *g, int *comp, int req_comp,
+ stbi_uc *two_back)
+{
+ int dispose;
+ int first_frame;
+ int pi;
+ int pcount;
+ STBI_NOTUSED(req_comp);
+
+ // on first frame, any non-written pixels get the background colour (non-transparent)
+ first_frame = 0;
+ if (g->out == 0) {
+ if (!stbi__gif_header(s, g, comp, 0))
+ return 0; // stbi__g_failure_reason set by stbi__gif_header
+ if (!stbi__mad3sizes_valid(4, g->w, g->h, 0))
+ return stbi__errpuc("too large", "GIF image is too large");
+ pcount = g->w * g->h;
+ g->out = (stbi_uc *)stbi__malloc(4 * pcount);
+ g->background = (stbi_uc *)stbi__malloc(4 * pcount);
+ g->history = (stbi_uc *)stbi__malloc(pcount);
+ if (!g->out || !g->background || !g->history)
+ return stbi__errpuc("outofmem", "Out of memory");
+
+ // image is treated as "transparent" at the start - ie, nothing overwrites the current background;
+ // background colour is only used for pixels that are not rendered first frame, after that "background"
+ // color refers to the color that was there the previous frame.
+ memset(g->out, 0x00, 4 * pcount);
+ memset(g->background, 0x00,
+ 4 * pcount); // state of the background (starts transparent)
+ memset(g->history, 0x00,
+ pcount); // pixels that were affected previous frame
+ first_frame = 1;
+ } else {
+ // second frame - how do we dispose of the previous one?
+ dispose = (g->eflags & 0x1C) >> 2;
+ pcount = g->w * g->h;
+
+ if ((dispose == 3) && (two_back == 0)) {
+ dispose =
+ 2; // if I don't have an image to revert back to, default to the old background
+ }
+
+ if (dispose == 3) { // use previous graphic
+ for (pi = 0; pi < pcount; ++pi) {
+ if (g->history[pi]) {
+ memcpy(&g->out[pi * 4], &two_back[pi * 4], 4);
+ }
+ }
+ } else if (dispose == 2) {
+ // restore what was changed last frame to background before that frame;
+ for (pi = 0; pi < pcount; ++pi) {
+ if (g->history[pi]) {
+ memcpy(&g->out[pi * 4], &g->background[pi * 4], 4);
+ }
+ }
+ } else {
+ // This is a non-disposal case eithe way, so just
+ // leave the pixels as is, and they will become the new background
+ // 1: do not dispose
+ // 0: not specified.
+ }
+
+ // background is what out is after the undoing of the previou frame;
+ memcpy(g->background, g->out, 4 * g->w * g->h);
+ }
+
+ // clear my history;
+ memset(g->history, 0x00,
+ g->w * g->h); // pixels that were affected previous frame
+
+ for (;;) {
+ int tag = stbi__get8(s);
+ switch (tag) {
+ case 0x2C: /* Image Descriptor */
+ {
+ stbi__int32 x, y, w, h;
+ stbi_uc *o;
+
+ x = stbi__get16le(s);
+ y = stbi__get16le(s);
+ w = stbi__get16le(s);
+ h = stbi__get16le(s);
+ if (((x + w) > (g->w)) || ((y + h) > (g->h)))
+ return stbi__errpuc("bad Image Descriptor", "Corrupt GIF");
+
+ g->line_size = g->w * 4;
+ g->start_x = x * 4;
+ g->start_y = y * g->line_size;
+ g->max_x = g->start_x + w * 4;
+ g->max_y = g->start_y + h * g->line_size;
+ g->cur_x = g->start_x;
+ g->cur_y = g->start_y;
+
+ // if the width of the specified rectangle is 0, that means
+ // we may not see *any* pixels or the image is malformed;
+ // to make sure this is caught, move the current y down to
+ // max_y (which is what out_gif_code checks).
+ if (w == 0)
+ g->cur_y = g->max_y;
+
+ g->lflags = stbi__get8(s);
+
+ if (g->lflags & 0x40) {
+ g->step = 8 * g->line_size; // first interlaced spacing
+ g->parse = 3;
+ } else {
+ g->step = g->line_size;
+ g->parse = 0;
+ }
+
+ if (g->lflags & 0x80) {
+ stbi__gif_parse_colortable(s, g->lpal, 2 << (g->lflags & 7),
+ g->eflags & 0x01 ? g->transparent : -1);
+ g->color_table = (stbi_uc *)g->lpal;
+ } else if (g->flags & 0x80) {
+ g->color_table = (stbi_uc *)g->pal;
+ } else
+ return stbi__errpuc("missing color table", "Corrupt GIF");
+
+ o = stbi__process_gif_raster(s, g);
+ if (!o)
+ return NULL;
+
+ // if this was the first frame,
+ pcount = g->w * g->h;
+ if (first_frame && (g->bgindex > 0)) {
+ // if first frame, any pixel not drawn to gets the background color
+ for (pi = 0; pi < pcount; ++pi) {
+ if (g->history[pi] == 0) {
+ g->pal[g->bgindex][3] =
+ 255; // just in case it was made transparent, undo that; It will be reset next frame if need be;
+ memcpy(&g->out[pi * 4], &g->pal[g->bgindex], 4);
+ }
+ }
+ }
+
+ return o;
+ }
+
+ case 0x21: // Comment Extension.
+ {
+ int len;
+ int ext = stbi__get8(s);
+ if (ext == 0xF9) { // Graphic Control Extension.
+ len = stbi__get8(s);
+ if (len == 4) {
+ g->eflags = stbi__get8(s);
+ g->delay =
+ 10 *
+ stbi__get16le(
+ s); // delay - 1/100th of a second, saving as 1/1000ths.
+
+ // unset old transparent
+ if (g->transparent >= 0) {
+ g->pal[g->transparent][3] = 255;
+ }
+ if (g->eflags & 0x01) {
+ g->transparent = stbi__get8(s);
+ if (g->transparent >= 0) {
+ g->pal[g->transparent][3] = 0;
+ }
+ } else {
+ // don't need transparent
+ stbi__skip(s, 1);
+ g->transparent = -1;
+ }
+ } else {
+ stbi__skip(s, len);
+ break;
+ }
+ }
+ while ((len = stbi__get8(s)) != 0) {
+ stbi__skip(s, len);
+ }
+ break;
+ }
+
+ case 0x3B: // gif stream termination code
+ return (stbi_uc *)s; // using '1' causes warning on some compilers
+
+ default:
+ return stbi__errpuc("unknown code", "Corrupt GIF");
+ }
+ }
+}
+
+static void *stbi__load_gif_main_outofmem(stbi__gif *g, stbi_uc *out, int **delays)
+{
+ STBI_FREE(g->out);
+ STBI_FREE(g->history);
+ STBI_FREE(g->background);
+
+ if (out)
+ STBI_FREE(out);
+ if (delays && *delays)
+ STBI_FREE(*delays);
+ return stbi__errpuc("outofmem", "Out of memory");
+}
+
+static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp,
+ int req_comp)
+{
+ if (stbi__gif_test(s)) {
+ int layers = 0;
+ stbi_uc *u = 0;
+ stbi_uc *out = 0;
+ stbi_uc *two_back = 0;
+ stbi__gif g;
+ int stride;
+ int out_size = 0;
+ int delays_size = 0;
+
+ STBI_NOTUSED(out_size);
+ STBI_NOTUSED(delays_size);
+
+ memset(&g, 0, sizeof(g));
+ if (delays) {
+ *delays = 0;
+ }
+
+ do {
+ u = stbi__gif_load_next(s, &g, comp, req_comp, two_back);
+ if (u == (stbi_uc *)s)
+ u = 0; // end of animated gif marker
+
+ if (u) {
+ *x = g.w;
+ *y = g.h;
+ ++layers;
+ stride = g.w * g.h * 4;
+
+ if (out) {
+ void *tmp = (stbi_uc *)STBI_REALLOC_SIZED(out, out_size,
+ layers * stride);
+ if (!tmp)
+ return stbi__load_gif_main_outofmem(&g, out,
+ delays);
+ else {
+ out = (stbi_uc *)tmp;
+ out_size = layers * stride;
+ }
+
+ if (delays) {
+ int *new_delays = (int *)STBI_REALLOC_SIZED(
+ *delays, delays_size, sizeof(int) * layers);
+ if (!new_delays)
+ return stbi__load_gif_main_outofmem(&g, out,
+ delays);
+ *delays = new_delays;
+ delays_size = layers * sizeof(int);
+ }
+ } else {
+ out = (stbi_uc *)stbi__malloc(layers * stride);
+ if (!out)
+ return stbi__load_gif_main_outofmem(&g, out,
+ delays);
+ out_size = layers * stride;
+ if (delays) {
+ *delays = (int *)stbi__malloc(layers * sizeof(int));
+ if (!*delays)
+ return stbi__load_gif_main_outofmem(&g, out,
+ delays);
+ delays_size = layers * sizeof(int);
+ }
+ }
+ memcpy(out + ((layers - 1) * stride), u, stride);
+ if (layers >= 2) {
+ two_back = out - 2 * stride;
+ }
+
+ if (delays) {
+ (*delays)[layers - 1U] = g.delay;
+ }
+ }
+ } while (u != 0);
+
+ // free temp buffer;
+ STBI_FREE(g.out);
+ STBI_FREE(g.history);
+ STBI_FREE(g.background);
+
+ // do the final conversion after loading everything;
+ if (req_comp && req_comp != 4)
+ out = stbi__convert_format(out, 4, req_comp, layers * g.w, g.h);
+
+ *z = layers;
+ return out;
+ } else {
+ return stbi__errpuc("not GIF", "Image was not as a gif type.");
+ }
+}
+
+static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri)
+{
+ stbi_uc *u = 0;
+ stbi__gif g;
+ memset(&g, 0, sizeof(g));
+ STBI_NOTUSED(ri);
+
+ u = stbi__gif_load_next(s, &g, comp, req_comp, 0);
+ if (u == (stbi_uc *)s)
+ u = 0; // end of animated gif marker
+ if (u) {
+ *x = g.w;
+ *y = g.h;
+
+ // moved conversion to after successful load so that the same
+ // can be done for multiple frames.
+ if (req_comp && req_comp != 4)
+ u = stbi__convert_format(u, 4, req_comp, g.w, g.h);
+ } else if (g.out) {
+ // if there was an error and we allocated an image buffer, free it!
+ STBI_FREE(g.out);
+ }
+
+ // free buffers needed for multiple frame loading;
+ STBI_FREE(g.history);
+ STBI_FREE(g.background);
+
+ return u;
+}
+
+static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ return stbi__gif_info_raw(s, x, y, comp);
+}
+#endif
+
+// *************************************************************************************************
+// Radiance RGBE HDR loader
+// originally by Nicolas Schulz
+#ifndef STBI_NO_HDR
+static int stbi__hdr_test_core(stbi__context *s, const char *signature)
+{
+ int i;
+ for (i = 0; signature[i]; ++i)
+ if (stbi__get8(s) != signature[i])
+ return 0;
+ stbi__rewind(s);
+ return 1;
+}
+
+static int stbi__hdr_test(stbi__context *s)
+{
+ int r = stbi__hdr_test_core(s, "#?RADIANCE\n");
+ stbi__rewind(s);
+ if (!r) {
+ r = stbi__hdr_test_core(s, "#?RGBE\n");
+ stbi__rewind(s);
+ }
+ return r;
+}
+
+#define STBI__HDR_BUFLEN 1024
+static char *stbi__hdr_gettoken(stbi__context *z, char *buffer)
+{
+ int len = 0;
+ char c = '\0';
+
+ c = (char)stbi__get8(z);
+
+ while (!stbi__at_eof(z) && c != '\n') {
+ buffer[len++] = c;
+ if (len == STBI__HDR_BUFLEN - 1) {
+ // flush to end of line
+ while (!stbi__at_eof(z) && stbi__get8(z) != '\n')
+ ;
+ break;
+ }
+ c = (char)stbi__get8(z);
+ }
+
+ buffer[len] = 0;
+ return buffer;
+}
+
+static void stbi__hdr_convert(float *output, stbi_uc *input, int req_comp)
+{
+ if (input[3] != 0) {
+ float f1;
+ // Exponent
+ f1 = (float)ldexp(1.0f, input[3] - (int)(128 + 8));
+ if (req_comp <= 2)
+ output[0] = (input[0] + input[1] + input[2]) * f1 / 3;
+ else {
+ output[0] = input[0] * f1;
+ output[1] = input[1] * f1;
+ output[2] = input[2] * f1;
+ }
+ if (req_comp == 2)
+ output[1] = 1;
+ if (req_comp == 4)
+ output[3] = 1;
+ } else {
+ switch (req_comp) {
+ case 4:
+ output[3] = 1; /* fallthrough */
+ case 3:
+ output[0] = output[1] = output[2] = 0;
+ break;
+ case 2:
+ output[1] = 1; /* fallthrough */
+ case 1:
+ output[0] = 0;
+ break;
+ }
+ }
+}
+
+static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri)
+{
+ char buffer[STBI__HDR_BUFLEN];
+ char *token;
+ int valid = 0;
+ int width, height;
+ stbi_uc *scanline;
+ float *hdr_data;
+ int len;
+ unsigned char count, value;
+ int i, j, k, c1, c2, z;
+ const char *headerToken;
+ STBI_NOTUSED(ri);
+
+ // Check identifier
+ headerToken = stbi__hdr_gettoken(s, buffer);
+ if (strcmp(headerToken, "#?RADIANCE") != 0 && strcmp(headerToken, "#?RGBE") != 0)
+ return stbi__errpf("not HDR", "Corrupt HDR image");
+
+ // Parse header
+ for (;;) {
+ token = stbi__hdr_gettoken(s, buffer);
+ if (token[0] == 0)
+ break;
+ if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0)
+ valid = 1;
+ }
+
+ if (!valid)
+ return stbi__errpf("unsupported format", "Unsupported HDR format");
+
+ // Parse width and height
+ // can't use sscanf() if we're not using stdio!
+ token = stbi__hdr_gettoken(s, buffer);
+ if (strncmp(token, "-Y ", 3))
+ return stbi__errpf("unsupported data layout", "Unsupported HDR format");
+ token += 3;
+ height = (int)strtol(token, &token, 10);
+ while (*token == ' ')
+ ++token;
+ if (strncmp(token, "+X ", 3))
+ return stbi__errpf("unsupported data layout", "Unsupported HDR format");
+ token += 3;
+ width = (int)strtol(token, NULL, 10);
+
+ if (height > STBI_MAX_DIMENSIONS)
+ return stbi__errpf("too large", "Very large image (corrupt?)");
+ if (width > STBI_MAX_DIMENSIONS)
+ return stbi__errpf("too large", "Very large image (corrupt?)");
+
+ *x = width;
+ *y = height;
+
+ if (comp)
+ *comp = 3;
+ if (req_comp == 0)
+ req_comp = 3;
+
+ if (!stbi__mad4sizes_valid(width, height, req_comp, sizeof(float), 0))
+ return stbi__errpf("too large", "HDR image is too large");
+
+ // Read data
+ hdr_data = (float *)stbi__malloc_mad4(width, height, req_comp, sizeof(float), 0);
+ if (!hdr_data)
+ return stbi__errpf("outofmem", "Out of memory");
+
+ // Load image data
+ // image data is stored as some number of sca
+ if (width < 8 || width >= 32768) {
+ // Read flat data
+ for (j = 0; j < height; ++j) {
+ for (i = 0; i < width; ++i) {
+ stbi_uc rgbe[4];
+main_decode_loop:
+ stbi__getn(s, rgbe, 4);
+ stbi__hdr_convert(hdr_data + j * width * req_comp + i * req_comp,
+ rgbe, req_comp);
+ }
+ }
+ } else {
+ // Read RLE-encoded data
+ scanline = NULL;
+
+ for (j = 0; j < height; ++j) {
+ c1 = stbi__get8(s);
+ c2 = stbi__get8(s);
+ len = stbi__get8(s);
+ if (c1 != 2 || c2 != 2 || (len & 0x80)) {
+ // not run-length encoded, so we have to actually use THIS data as a decoded
+ // pixel (note this can't be a valid pixel--one of RGB must be >= 128)
+ stbi_uc rgbe[4];
+ rgbe[0] = (stbi_uc)c1;
+ rgbe[1] = (stbi_uc)c2;
+ rgbe[2] = (stbi_uc)len;
+ rgbe[3] = (stbi_uc)stbi__get8(s);
+ stbi__hdr_convert(hdr_data, rgbe, req_comp);
+ i = 1;
+ j = 0;
+ STBI_FREE(scanline);
+ goto main_decode_loop; // yes, this makes no sense
+ }
+ len <<= 8;
+ len |= stbi__get8(s);
+ if (len != width) {
+ STBI_FREE(hdr_data);
+ STBI_FREE(scanline);
+ return stbi__errpf("invalid decoded scanline length",
+ "corrupt HDR");
+ }
+ if (scanline == NULL) {
+ scanline = (stbi_uc *)stbi__malloc_mad2(width, 4, 0);
+ if (!scanline) {
+ STBI_FREE(hdr_data);
+ return stbi__errpf("outofmem", "Out of memory");
+ }
+ }
+
+ for (k = 0; k < 4; ++k) {
+ int nleft;
+ i = 0;
+ while ((nleft = width - i) > 0) {
+ count = stbi__get8(s);
+ if (count > 128) {
+ // Run
+ value = stbi__get8(s);
+ count -= 128;
+ if ((count == 0) || (count > nleft)) {
+ STBI_FREE(hdr_data);
+ STBI_FREE(scanline);
+ return stbi__errpf("corrupt",
+ "bad RLE data in HDR");
+ }
+ for (z = 0; z < count; ++z)
+ scanline[i++ * 4 + k] = value;
+ } else {
+ // Dump
+ if ((count == 0) || (count > nleft)) {
+ STBI_FREE(hdr_data);
+ STBI_FREE(scanline);
+ return stbi__errpf("corrupt",
+ "bad RLE data in HDR");
+ }
+ for (z = 0; z < count; ++z)
+ scanline[i++ * 4 + k] = stbi__get8(s);
+ }
+ }
+ }
+ for (i = 0; i < width; ++i)
+ stbi__hdr_convert(hdr_data + (j * width + i) * req_comp,
+ scanline + i * 4, req_comp);
+ }
+ if (scanline)
+ STBI_FREE(scanline);
+ }
+
+ return hdr_data;
+}
+
+static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ char buffer[STBI__HDR_BUFLEN];
+ char *token;
+ int valid = 0;
+ int dummy;
+
+ if (!x)
+ x = &dummy;
+ if (!y)
+ y = &dummy;
+ if (!comp)
+ comp = &dummy;
+
+ if (stbi__hdr_test(s) == 0) {
+ stbi__rewind(s);
+ return 0;
+ }
+
+ for (;;) {
+ token = stbi__hdr_gettoken(s, buffer);
+ if (token[0] == 0)
+ break;
+ if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0)
+ valid = 1;
+ }
+
+ if (!valid) {
+ stbi__rewind(s);
+ return 0;
+ }
+ token = stbi__hdr_gettoken(s, buffer);
+ if (strncmp(token, "-Y ", 3)) {
+ stbi__rewind(s);
+ return 0;
+ }
+ token += 3;
+ *y = (int)strtol(token, &token, 10);
+ while (*token == ' ')
+ ++token;
+ if (strncmp(token, "+X ", 3)) {
+ stbi__rewind(s);
+ return 0;
+ }
+ token += 3;
+ *x = (int)strtol(token, NULL, 10);
+ *comp = 3;
+ return 1;
+}
+#endif // STBI_NO_HDR
+
+#ifndef STBI_NO_BMP
+static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ void *p;
+ stbi__bmp_data info;
+
+ info.all_a = 255;
+ p = stbi__bmp_parse_header(s, &info);
+ if (p == NULL) {
+ stbi__rewind(s);
+ return 0;
+ }
+ if (x)
+ *x = s->img_x;
+ if (y)
+ *y = s->img_y;
+ if (comp) {
+ if (info.bpp == 24 && info.ma == 0xff000000)
+ *comp = 3;
+ else
+ *comp = info.ma ? 4 : 3;
+ }
+ return 1;
+}
+#endif
+
+#ifndef STBI_NO_PSD
+static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ int channelCount, dummy, depth;
+ if (!x)
+ x = &dummy;
+ if (!y)
+ y = &dummy;
+ if (!comp)
+ comp = &dummy;
+ if (stbi__get32be(s) != 0x38425053) {
+ stbi__rewind(s);
+ return 0;
+ }
+ if (stbi__get16be(s) != 1) {
+ stbi__rewind(s);
+ return 0;
+ }
+ stbi__skip(s, 6);
+ channelCount = stbi__get16be(s);
+ if (channelCount < 0 || channelCount > 16) {
+ stbi__rewind(s);
+ return 0;
+ }
+ *y = stbi__get32be(s);
+ *x = stbi__get32be(s);
+ depth = stbi__get16be(s);
+ if (depth != 8 && depth != 16) {
+ stbi__rewind(s);
+ return 0;
+ }
+ if (stbi__get16be(s) != 3) {
+ stbi__rewind(s);
+ return 0;
+ }
+ *comp = 4;
+ return 1;
+}
+
+static int stbi__psd_is16(stbi__context *s)
+{
+ int channelCount, depth;
+ if (stbi__get32be(s) != 0x38425053) {
+ stbi__rewind(s);
+ return 0;
+ }
+ if (stbi__get16be(s) != 1) {
+ stbi__rewind(s);
+ return 0;
+ }
+ stbi__skip(s, 6);
+ channelCount = stbi__get16be(s);
+ if (channelCount < 0 || channelCount > 16) {
+ stbi__rewind(s);
+ return 0;
+ }
+ STBI_NOTUSED(stbi__get32be(s));
+ STBI_NOTUSED(stbi__get32be(s));
+ depth = stbi__get16be(s);
+ if (depth != 16) {
+ stbi__rewind(s);
+ return 0;
+ }
+ return 1;
+}
+#endif
+
+#ifndef STBI_NO_PIC
+static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ int act_comp = 0, num_packets = 0, chained, dummy;
+ stbi__pic_packet packets[10];
+
+ if (!x)
+ x = &dummy;
+ if (!y)
+ y = &dummy;
+ if (!comp)
+ comp = &dummy;
+
+ if (!stbi__pic_is4(s, "\x53\x80\xF6\x34")) {
+ stbi__rewind(s);
+ return 0;
+ }
+
+ stbi__skip(s, 88);
+
+ *x = stbi__get16be(s);
+ *y = stbi__get16be(s);
+ if (stbi__at_eof(s)) {
+ stbi__rewind(s);
+ return 0;
+ }
+ if ((*x) != 0 && (1 << 28) / (*x) < (*y)) {
+ stbi__rewind(s);
+ return 0;
+ }
+
+ stbi__skip(s, 8);
+
+ do {
+ stbi__pic_packet *packet;
+
+ if (num_packets == sizeof(packets) / sizeof(packets[0]))
+ return 0;
+
+ packet = &packets[num_packets++];
+ chained = stbi__get8(s);
+ packet->size = stbi__get8(s);
+ packet->type = stbi__get8(s);
+ packet->channel = stbi__get8(s);
+ act_comp |= packet->channel;
+
+ if (stbi__at_eof(s)) {
+ stbi__rewind(s);
+ return 0;
+ }
+ if (packet->size != 8) {
+ stbi__rewind(s);
+ return 0;
+ }
+ } while (chained);
+
+ *comp = (act_comp & 0x10 ? 4 : 3);
+
+ return 1;
+}
+#endif
+
+// *************************************************************************************************
+// Portable Gray Map and Portable Pixel Map loader
+// by Ken Miller
+//
+// PGM: http://netpbm.sourceforge.net/doc/pgm.html
+// PPM: http://netpbm.sourceforge.net/doc/ppm.html
+//
+// Known limitations:
+// Does not support comments in the header section
+// Does not support ASCII image data (formats P2 and P3)
+
+#ifndef STBI_NO_PNM
+
+static int stbi__pnm_test(stbi__context *s)
+{
+ char p, t;
+ p = (char)stbi__get8(s);
+ t = (char)stbi__get8(s);
+ if (p != 'P' || (t != '5' && t != '6')) {
+ stbi__rewind(s);
+ return 0;
+ }
+ return 1;
+}
+
+static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri)
+{
+ stbi_uc *out;
+ STBI_NOTUSED(ri);
+
+ ri->bits_per_channel =
+ stbi__pnm_info(s, (int *)&s->img_x, (int *)&s->img_y, (int *)&s->img_n);
+ if (ri->bits_per_channel == 0)
+ return 0;
+
+ if (s->img_y > STBI_MAX_DIMENSIONS)
+ return stbi__errpuc("too large", "Very large image (corrupt?)");
+ if (s->img_x > STBI_MAX_DIMENSIONS)
+ return stbi__errpuc("too large", "Very large image (corrupt?)");
+
+ *x = s->img_x;
+ *y = s->img_y;
+ if (comp)
+ *comp = s->img_n;
+
+ if (!stbi__mad4sizes_valid(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8, 0))
+ return stbi__errpuc("too large", "PNM too large");
+
+ out = (stbi_uc *)stbi__malloc_mad4(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8,
+ 0);
+ if (!out)
+ return stbi__errpuc("outofmem", "Out of memory");
+ if (!stbi__getn(s, out, s->img_n * s->img_x * s->img_y * (ri->bits_per_channel / 8))) {
+ STBI_FREE(out);
+ return stbi__errpuc("bad PNM", "PNM file truncated");
+ }
+
+ if (req_comp && req_comp != s->img_n) {
+ if (ri->bits_per_channel == 16) {
+ out = (stbi_uc *)stbi__convert_format16((stbi__uint16 *)out, s->img_n,
+ req_comp, s->img_x, s->img_y);
+ } else {
+ out = stbi__convert_format(out, s->img_n, req_comp, s->img_x, s->img_y);
+ }
+ if (out == NULL)
+ return out; // stbi__convert_format frees input on failure
+ }
+ return out;
+}
+
+static int stbi__pnm_isspace(char c)
+{
+ return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r';
+}
+
+static void stbi__pnm_skip_whitespace(stbi__context *s, char *c)
+{
+ for (;;) {
+ while (!stbi__at_eof(s) && stbi__pnm_isspace(*c))
+ *c = (char)stbi__get8(s);
+
+ if (stbi__at_eof(s) || *c != '#')
+ break;
+
+ while (!stbi__at_eof(s) && *c != '\n' && *c != '\r')
+ *c = (char)stbi__get8(s);
+ }
+}
+
+static int stbi__pnm_isdigit(char c)
+{
+ return c >= '0' && c <= '9';
+}
+
+static int stbi__pnm_getinteger(stbi__context *s, char *c)
+{
+ int value = 0;
+
+ while (!stbi__at_eof(s) && stbi__pnm_isdigit(*c)) {
+ value = value * 10 + (*c - '0');
+ *c = (char)stbi__get8(s);
+ if ((value > 214748364) || (value == 214748364 && *c > '7'))
+ return stbi__err(
+ "integer parse overflow",
+ "Parsing an integer in the PPM header overflowed a 32-bit int");
+ }
+
+ return value;
+}
+
+static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ int maxv, dummy;
+ char c, p, t;
+
+ if (!x)
+ x = &dummy;
+ if (!y)
+ y = &dummy;
+ if (!comp)
+ comp = &dummy;
+
+ stbi__rewind(s);
+
+ // Get identifier
+ p = (char)stbi__get8(s);
+ t = (char)stbi__get8(s);
+ if (p != 'P' || (t != '5' && t != '6')) {
+ stbi__rewind(s);
+ return 0;
+ }
+
+ *comp = (t == '6') ? 3 : 1; // '5' is 1-component .pgm; '6' is 3-component .ppm
+
+ c = (char)stbi__get8(s);
+ stbi__pnm_skip_whitespace(s, &c);
+
+ *x = stbi__pnm_getinteger(s, &c); // read width
+ if (*x == 0)
+ return stbi__err("invalid width", "PPM image header had zero or overflowing width");
+ stbi__pnm_skip_whitespace(s, &c);
+
+ *y = stbi__pnm_getinteger(s, &c); // read height
+ if (*y == 0)
+ return stbi__err("invalid width", "PPM image header had zero or overflowing width");
+ stbi__pnm_skip_whitespace(s, &c);
+
+ maxv = stbi__pnm_getinteger(s, &c); // read max value
+ if (maxv > 65535)
+ return stbi__err("max value > 65535",
+ "PPM image supports only 8-bit and 16-bit images");
+ else if (maxv > 255)
+ return 16;
+ else
+ return 8;
+}
+
+static int stbi__pnm_is16(stbi__context *s)
+{
+ if (stbi__pnm_info(s, NULL, NULL, NULL) == 16)
+ return 1;
+ return 0;
+}
+#endif
+
+static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp)
+{
+#ifndef STBI_NO_JPEG
+ if (stbi__jpeg_info(s, x, y, comp))
+ return 1;
+#endif
+
+#ifndef STBI_NO_PNG
+ if (stbi__png_info(s, x, y, comp))
+ return 1;
+#endif
+
+#ifndef STBI_NO_GIF
+ if (stbi__gif_info(s, x, y, comp))
+ return 1;
+#endif
+
+#ifndef STBI_NO_BMP
+ if (stbi__bmp_info(s, x, y, comp))
+ return 1;
+#endif
+
+#ifndef STBI_NO_PSD
+ if (stbi__psd_info(s, x, y, comp))
+ return 1;
+#endif
+
+#ifndef STBI_NO_PIC
+ if (stbi__pic_info(s, x, y, comp))
+ return 1;
+#endif
+
+#ifndef STBI_NO_PNM
+ if (stbi__pnm_info(s, x, y, comp))
+ return 1;
+#endif
+
+#ifndef STBI_NO_HDR
+ if (stbi__hdr_info(s, x, y, comp))
+ return 1;
+#endif
+
+ // test tga last because it's a crappy test!
+#ifndef STBI_NO_TGA
+ if (stbi__tga_info(s, x, y, comp))
+ return 1;
+#endif
+ return stbi__err("unknown image type", "Image not of any known type, or corrupt");
+}
+
+static int stbi__is_16_main(stbi__context *s)
+{
+#ifndef STBI_NO_PNG
+ if (stbi__png_is16(s))
+ return 1;
+#endif
+
+#ifndef STBI_NO_PSD
+ if (stbi__psd_is16(s))
+ return 1;
+#endif
+
+#ifndef STBI_NO_PNM
+ if (stbi__pnm_is16(s))
+ return 1;
+#endif
+ return 0;
+}
+
+#ifndef STBI_NO_STDIO
+STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp)
+{
+ FILE *f = stbi__fopen(filename, "rb");
+ int result;
+ if (!f)
+ return stbi__err("can't fopen", "Unable to open file");
+ result = stbi_info_from_file(f, x, y, comp);
+ fclose(f);
+ return result;
+}
+
+STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp)
+{
+ int r;
+ stbi__context s;
+ long pos = ftell(f);
+ stbi__start_file(&s, f);
+ r = stbi__info_main(&s, x, y, comp);
+ fseek(f, pos, SEEK_SET);
+ return r;
+}
+
+STBIDEF int stbi_is_16_bit(char const *filename)
+{
+ FILE *f = stbi__fopen(filename, "rb");
+ int result;
+ if (!f)
+ return stbi__err("can't fopen", "Unable to open file");
+ result = stbi_is_16_bit_from_file(f);
+ fclose(f);
+ return result;
+}
+
+STBIDEF int stbi_is_16_bit_from_file(FILE *f)
+{
+ int r;
+ stbi__context s;
+ long pos = ftell(f);
+ stbi__start_file(&s, f);
+ r = stbi__is_16_main(&s);
+ fseek(f, pos, SEEK_SET);
+ return r;
+}
+#endif // !STBI_NO_STDIO
+
+STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp)
+{
+ stbi__context s;
+ stbi__start_mem(&s, buffer, len);
+ return stbi__info_main(&s, x, y, comp);
+}
+
+STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *user, int *x, int *y,
+ int *comp)
+{
+ stbi__context s;
+ stbi__start_callbacks(&s, (stbi_io_callbacks *)c, user);
+ return stbi__info_main(&s, x, y, comp);
+}
+
+STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len)
+{
+ stbi__context s;
+ stbi__start_mem(&s, buffer, len);
+ return stbi__is_16_main(&s);
+}
+
+STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *c, void *user)
+{
+ stbi__context s;
+ stbi__start_callbacks(&s, (stbi_io_callbacks *)c, user);
+ return stbi__is_16_main(&s);
+}
+
+/*
+ revision history:
+ 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs
+ 2.19 (2018-02-11) fix warning
+ 2.18 (2018-01-30) fix warnings
+ 2.17 (2018-01-29) change sbti__shiftsigned to avoid clang -O2 bug
+ 1-bit BMP
+ *_is_16_bit api
+ avoid warnings
+ 2.16 (2017-07-23) all functions have 16-bit variants;
+ STBI_NO_STDIO works again;
+ compilation fixes;
+ fix rounding in unpremultiply;
+ optimize vertical flip;
+ disable raw_len validation;
+ documentation fixes
+ 2.15 (2017-03-18) fix png-1,2,4 bug; now all Imagenet JPGs decode;
+ warning fixes; disable run-time SSE detection on gcc;
+ uniform handling of optional "return" values;
+ thread-safe initialization of zlib tables
+ 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs
+ 2.13 (2016-11-29) add 16-bit API, only supported for PNG right now
+ 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes
+ 2.11 (2016-04-02) allocate large structures on the stack
+ remove white matting for transparent PSD
+ fix reported channel count for PNG & BMP
+ re-enable SSE2 in non-gcc 64-bit
+ support RGB-formatted JPEG
+ read 16-bit PNGs (only as 8-bit)
+ 2.10 (2016-01-22) avoid warning introduced in 2.09 by STBI_REALLOC_SIZED
+ 2.09 (2016-01-16) allow comments in PNM files
+ 16-bit-per-pixel TGA (not bit-per-component)
+ info() for TGA could break due to .hdr handling
+ info() for BMP to shares code instead of sloppy parse
+ can use STBI_REALLOC_SIZED if allocator doesn't support realloc
+ code cleanup
+ 2.08 (2015-09-13) fix to 2.07 cleanup, reading RGB PSD as RGBA
+ 2.07 (2015-09-13) fix compiler warnings
+ partial animated GIF support
+ limited 16-bpc PSD support
+ #ifdef unused functions
+ bug with < 92 byte PIC,PNM,HDR,TGA
+ 2.06 (2015-04-19) fix bug where PSD returns wrong '*comp' value
+ 2.05 (2015-04-19) fix bug in progressive JPEG handling, fix warning
+ 2.04 (2015-04-15) try to re-enable SIMD on MinGW 64-bit
+ 2.03 (2015-04-12) extra corruption checking (mmozeiko)
+ stbi_set_flip_vertically_on_load (nguillemot)
+ fix NEON support; fix mingw support
+ 2.02 (2015-01-19) fix incorrect assert, fix warning
+ 2.01 (2015-01-17) fix various warnings; suppress SIMD on gcc 32-bit without -msse2
+ 2.00b (2014-12-25) fix STBI_MALLOC in progressive JPEG
+ 2.00 (2014-12-25) optimize JPG, including x86 SSE2 & NEON SIMD (ryg)
+ progressive JPEG (stb)
+ PGM/PPM support (Ken Miller)
+ STBI_MALLOC,STBI_REALLOC,STBI_FREE
+ GIF bugfix -- seemingly never worked
+ STBI_NO_*, STBI_ONLY_*
+ 1.48 (2014-12-14) fix incorrectly-named assert()
+ 1.47 (2014-12-14) 1/2/4-bit PNG support, both direct and paletted (Omar Cornut & stb)
+ optimize PNG (ryg)
+ fix bug in interlaced PNG with user-specified channel count (stb)
+ 1.46 (2014-08-26)
+ fix broken tRNS chunk (colorkey-style transparency) in non-paletted PNG
+ 1.45 (2014-08-16)
+ fix MSVC-ARM internal compiler error by wrapping malloc
+ 1.44 (2014-08-07)
+ various warning fixes from Ronny Chevalier
+ 1.43 (2014-07-15)
+ fix MSVC-only compiler problem in code changed in 1.42
+ 1.42 (2014-07-09)
+ don't define _CRT_SECURE_NO_WARNINGS (affects user code)
+ fixes to stbi__cleanup_jpeg path
+ added STBI_ASSERT to avoid requiring assert.h
+ 1.41 (2014-06-25)
+ fix search&replace from 1.36 that messed up comments/error messages
+ 1.40 (2014-06-22)
+ fix gcc struct-initialization warning
+ 1.39 (2014-06-15)
+ fix to TGA optimization when req_comp != number of components in TGA;
+ fix to GIF loading because BMP wasn't rewinding (whoops, no GIFs in my test suite)
+ add support for BMP version 5 (more ignored fields)
+ 1.38 (2014-06-06)
+ suppress MSVC warnings on integer casts truncating values
+ fix accidental rename of 'skip' field of I/O
+ 1.37 (2014-06-04)
+ remove duplicate typedef
+ 1.36 (2014-06-03)
+ convert to header file single-file library
+ if de-iphone isn't set, load iphone images color-swapped instead of returning NULL
+ 1.35 (2014-05-27)
+ various warnings
+ fix broken STBI_SIMD path
+ fix bug where stbi_load_from_file no longer left file pointer in correct place
+ fix broken non-easy path for 32-bit BMP (possibly never used)
+ TGA optimization by Arseny Kapoulkine
+ 1.34 (unknown)
+ use STBI_NOTUSED in stbi__resample_row_generic(), fix one more leak in tga failure case
+ 1.33 (2011-07-14)
+ make stbi_is_hdr work in STBI_NO_HDR (as specified), minor compiler-friendly improvements
+ 1.32 (2011-07-13)
+ support for "info" function for all supported filetypes (SpartanJ)
+ 1.31 (2011-06-20)
+ a few more leak fixes, bug in PNG handling (SpartanJ)
+ 1.30 (2011-06-11)
+ added ability to load files via callbacks to accomidate custom input streams (Ben Wenger)
+ removed deprecated format-specific test/load functions
+ removed support for installable file formats (stbi_loader) -- would have been broken for IO callbacks anyway
+ error cases in bmp and tga give messages and don't leak (Raymond Barbiero, grisha)
+ fix inefficiency in decoding 32-bit BMP (David Woo)
+ 1.29 (2010-08-16)
+ various warning fixes from Aurelien Pocheville
+ 1.28 (2010-08-01)
+ fix bug in GIF palette transparency (SpartanJ)
+ 1.27 (2010-08-01)
+ cast-to-stbi_uc to fix warnings
+ 1.26 (2010-07-24)
+ fix bug in file buffering for PNG reported by SpartanJ
+ 1.25 (2010-07-17)
+ refix trans_data warning (Won Chun)
+ 1.24 (2010-07-12)
+ perf improvements reading from files on platforms with lock-heavy fgetc()
+ minor perf improvements for jpeg
+ deprecated type-specific functions so we'll get feedback if they're needed
+ attempt to fix trans_data warning (Won Chun)
+ 1.23 fixed bug in iPhone support
+ 1.22 (2010-07-10)
+ removed image *writing* support
+ stbi_info support from Jetro Lauha
+ GIF support from Jean-Marc Lienher
+ iPhone PNG-extensions from James Brown
+ warning-fixes from Nicolas Schulz and Janez Zemva (i.stbi__err. Janez (U+017D)emva)
+ 1.21 fix use of 'stbi_uc' in header (reported by jon blow)
+ 1.20 added support for Softimage PIC, by Tom Seddon
+ 1.19 bug in interlaced PNG corruption check (found by ryg)
+ 1.18 (2008-08-02)
+ fix a threading bug (local mutable static)
+ 1.17 support interlaced PNG
+ 1.16 major bugfix - stbi__convert_format converted one too many pixels
+ 1.15 initialize some fields for thread safety
+ 1.14 fix threadsafe conversion bug
+ header-file-only version (#define STBI_HEADER_FILE_ONLY before including)
+ 1.13 threadsafe
+ 1.12 const qualifiers in the API
+ 1.11 Support installable IDCT, colorspace conversion routines
+ 1.10 Fixes for 64-bit (don't use "unsigned long")
+ optimized upsampling by Fabian "ryg" Giesen
+ 1.09 Fix format-conversion for PSD code (bad global variables!)
+ 1.08 Thatcher Ulrich's PSD code integrated by Nicolas Schulz
+ 1.07 attempt to fix C++ warning/errors again
+ 1.06 attempt to fix C++ warning/errors again
+ 1.05 fix TGA loading to return correct *comp and use good luminance calc
+ 1.04 default float alpha is 1, not 255; use 'void *' for stbi_image_free
+ 1.03 bugfixes to STBI_NO_STDIO, STBI_NO_HDR
+ 1.02 support for (subset of) HDR files, float interface for preferred access to them
+ 1.01 fix bug: possible bug in handling right-side up bmps... not sure
+ fix bug: the stbi__bmp_load() and stbi__tga_load() functions didn't work at all
+ 1.00 interface to zlib that skips zlib header
+ 0.99 correct handling of alpha in palette
+ 0.98 TGA loader by lonesock; dynamically add loaders (untested)
+ 0.97 jpeg errors on too large a file; also catch another malloc failure
+ 0.96 fix detection of invalid v value - particleman@mollyrocket forum
+ 0.95 during header scan, seek to markers in case of padding
+ 0.94 STBI_NO_STDIO to disable stdio usage; rename all #defines the same
+ 0.93 handle jpegtran output; verbose errors
+ 0.92 read 4,8,16,24,32-bit BMP files of several formats
+ 0.91 output 24-bit Windows 3.0 BMP files
+ 0.90 fix a few more warnings; bump version number to approach 1.0
+ 0.61 bugfixes due to Marc LeBlanc, Christopher Lloyd
+ 0.60 fix compiling as c++
+ 0.59 fix warnings: merge Dave Moore's -Wall fixes
+ 0.58 fix bug: zlib uncompressed mode len/nlen was wrong endian
+ 0.57 fix bug: jpg last huffman symbol before marker was >9 bits but less than 16 available
+ 0.56 fix bug: zlib uncompressed mode len vs. nlen
+ 0.55 fix bug: restart_interval not initialized to 0
+ 0.54 allow NULL for 'int *comp'
+ 0.53 fix bug in png 3->4; speedup png decoding
+ 0.52 png handles req_comp=3,4 directly; minor cleanup; jpeg comments
+ 0.51 obey req_comp requests, 1-component jpegs return as 1-component,
+ on 'test' only check type, not whether we support this variant
+ 0.50 (2006-11-19)
+ first released version
+*/
+
+/*
+------------------------------------------------------------------------------
+This software is available under 2 licenses -- choose whichever you prefer.
+------------------------------------------------------------------------------
+ALTERNATIVE A - MIT License
+Copyright (c) 2017 Sean Barrett
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+------------------------------------------------------------------------------
+ALTERNATIVE B - Public Domain (www.unlicense.org)
+This is free and unencumbered software released into the public domain.
+Anyone is free to copy, modify, publish, use, compile, sell, or distribute this
+software, either in source code form or as a compiled binary, for any purpose,
+commercial or non-commercial, and by any means.
+In jurisdictions that recognize copyright laws, the author or authors of this
+software dedicate any and all copyright interest in the software to the public
+domain. We make this dedication for the benefit of the public at large and to
+the detriment of our heirs and successors. We intend this dedication to be an
+overt act of relinquishment in perpetuity of all present and future rights to
+this software under copyright law.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+------------------------------------------------------------------------------
+*/
diff --git a/StgSharp.C/stb_image.h b/StgSharp.C/stb_image.h
new file mode 100644
index 00000000..ae870bf6
--- /dev/null
+++ b/StgSharp.C/stb_image.h
@@ -0,0 +1,787 @@
+/* stb_image - v2.28 - public domain image loader - http://nothings.org/stb
+ no warranty implied; use at your own risk
+
+ Do this:
+ #define STB_IMAGE_IMPLEMENTATION
+ before you include this file in *one* C or C++ file to create the implementation.
+
+ // i.e. it should look like this:
+ #include ...
+ #include ...
+ #include ...
+ #define STB_IMAGE_IMPLEMENTATION
+ #include "stb_image.h"
+
+ You can #define STBI_ASSERT(x) before the #include to avoid using assert.h.
+ And #define STBI_MALLOC, STBI_REALLOC, and STBI_FREE to avoid using malloc,realloc,free
+
+
+ QUICK NOTES:
+ Primarily of interest to game developers and other people who can
+ avoid problematic images and only need the trivial interface
+
+ JPEG baseline & progressive (12 bpc/arithmetic not supported, same as stock IJG lib)
+ PNG 1/2/4/8/16-bit-per-channel
+
+ TGA (not sure what subset, if a subset)
+ BMP non-1bpp, non-RLE
+ PSD (composited view only, no extra channels, 8/16 bit-per-channel)
+
+ GIF (*comp always reports as 4-channel)
+ HDR (radiance rgbE format)
+ PIC (Softimage PIC)
+ PNM (PPM and PGM binary only)
+
+ Animated GIF still needs a proper API, but here's one way to do it:
+ http://gist.github.com/urraka/685d9a6340b26b830d49
+
+ - decode from memory or through FILE (define STBI_NO_STDIO to remove code)
+ - decode from arbitrary I/O callbacks
+ - SIMD acceleration on x86/x64 (SSE2) and ARM (NEON)
+
+ Full documentation under "DOCUMENTATION" below.
+
+
+LICENSE
+
+ See end of file for license information.
+
+RECENT REVISION HISTORY:
+
+ 2.28 (2023-01-29) many error fixes, security errors, just tons of stuff
+ 2.27 (2021-07-11) document stbi_info better, 16-bit PNM support, bug fixes
+ 2.26 (2020-07-13) many minor fixes
+ 2.25 (2020-02-02) fix warnings
+ 2.24 (2020-02-02) fix warnings; thread-local failure_reason and flip_vertically
+ 2.23 (2019-08-11) fix clang static analysis warning
+ 2.22 (2019-03-04) gif fixes, fix warnings
+ 2.21 (2019-02-25) fix typo in comment
+ 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs
+ 2.19 (2018-02-11) fix warning
+ 2.18 (2018-01-30) fix warnings
+ 2.17 (2018-01-29) bugfix, 1-bit BMP, 16-bitness query, fix warnings
+ 2.16 (2017-07-23) all functions have 16-bit variants; optimizations; bugfixes
+ 2.15 (2017-03-18) fix png-1,2,4; all Imagenet JPGs; no runtime SSE detection on GCC
+ 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs
+ 2.13 (2016-12-04) experimental 16-bit API, only for PNG so far; fixes
+ 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes
+ 2.11 (2016-04-02) 16-bit PNGS; enable SSE2 in non-gcc x64
+ RGB-format JPEG; remove white matting in PSD;
+ allocate large structures on the stack;
+ correct channel count for PNG & BMP
+ 2.10 (2016-01-22) avoid warning introduced in 2.09
+ 2.09 (2016-01-16) 16-bit TGA; comments in PNM files; STBI_REALLOC_SIZED
+
+ See end of file for full revision history.
+
+
+ ============================ Contributors =========================
+
+ Image formats Extensions, features
+ Sean Barrett (jpeg, png, bmp) Jetro Lauha (stbi_info)
+ Nicolas Schulz (hdr, psd) Martin "SpartanJ" Golini (stbi_info)
+ Jonathan Dummer (tga) James "moose2000" Brown (iPhone PNG)
+ Jean-Marc Lienher (gif) Ben "Disch" Wenger (io callbacks)
+ Tom Seddon (pic) Omar Cornut (1/2/4-bit PNG)
+ Thatcher Ulrich (psd) Nicolas Guillemot (vertical flip)
+ Ken Miller (pgm, ppm) Richard Mitton (16-bit PSD)
+ github:urraka (animated gif) Junggon Kim (PNM comments)
+ Christopher Forseth (animated gif) Daniel Gibson (16-bit TGA)
+ socks-the-fox (16-bit PNG)
+ Jeremy Sawicki (handle all ImageNet JPGs)
+ Optimizations & bugfixes Mikhail Morozov (1-bit BMP)
+ Fabian "ryg" Giesen Anael Seghezzi (is-16-bit query)
+ Arseny Kapoulkine Simon Breuss (16-bit PNM)
+ John-Mark Allen
+ Carmelo J Fdez-Aguera
+
+ Bug & warning fixes
+ Marc LeBlanc David Woo Guillaume George Martins Mozeiko
+ Christpher Lloyd Jerry Jansson Joseph Thomson Blazej Dariusz Roszkowski
+ Phil Jordan Dave Moore Roy Eltham
+ Hayaki Saito Nathan Reed Won Chun
+ Luke Graham Johan Duparc Nick Verigakis the Horde3D community
+ Thomas Ruf Ronny Chevalier github:rlyeh
+ Janez Zemva John Bartholomew Michal Cichon github:romigrou
+ Jonathan Blow Ken Hamada Tero Hanninen github:svdijk
+ Eugene Golushkov Laurent Gomila Cort Stratton github:snagar
+ Aruelien Pocheville Sergio Gonzalez Thibault Reuille github:Zelex
+ Cass Everitt Ryamond Barbiero github:grim210
+ Paul Du Bois Engin Manap Aldo Culquicondor github:sammyhw
+ Philipp Wiesemann Dale Weiler Oriol Ferrer Mesia github:phprus
+ Josh Tobin Neil Bickford Matthew Gregan github:poppolopoppo
+ Julian Raschke Gregory Mullen Christian Floisand github:darealshinji
+ Baldur Karlsson Kevin Schmidt JR Smith github:Michaelangel007
+ Brad Weinberger Matvey Cherevko github:mosra
+ Luca Sas Alexander Veselov Zack Middleton [reserved]
+ Ryan C. Gordon [reserved] [reserved]
+ DO NOT ADD YOUR NAME HERE
+
+ Jacko Dirks
+
+ To add your name to the credits, pick a random blank space in the middle and fill it.
+ 80% of merge conflicts on stb PRs are due to people adding their name at the end
+ of the credits.
+*/
+
+#pragma once
+
+#ifndef STBI_INCLUDE_STB_IMAGE_H
+#define STBI_INCLUDE_STB_IMAGE_H
+
+// DOCUMENTATION
+//
+// Limitations:
+// - no 12-bit-per-channel JPEG
+// - no JPEGs with arithmetic coding
+// - GIF always returns *comp=4
+//
+// Basic usage (see HDR discussion below for HDR usage):
+// int x,y,n;
+// unsigned char *data = stbi_load(filename, &x, &y, &n, 0);
+// // ... process data if not NULL ...
+// // ... x = width, y = height, n = # 8-bit components per pixel ...
+// // ... replace '0' with '1'..'4' to force that many components per pixel
+// // ... but 'n' will always be the number that it would have been if you said 0
+// stbi_image_free(data);
+//
+// Standard parameters:
+// int *x -- outputs image width in pixels
+// int *y -- outputs image height in pixels
+// int *channels_in_file -- outputs # of image components in image file
+// int desired_channels -- if non-zero, # of image components requested in result
+//
+// The return value from an image loader is an 'unsigned char *' which points
+// to the pixel data, or NULL on an allocation failure or if the image is
+// corrupt or invalid. The pixel data consists of *y scanlines of *x pixels,
+// with each pixel consisting of N interleaved 8-bit components; the first
+// pixel pointed to is top-left-most in the image. There is no padding between
+// image scanlines or between pixels, regardless of format. The number of
+// components N is 'desired_channels' if desired_channels is non-zero, or
+// *channels_in_file otherwise. If desired_channels is non-zero,
+// *channels_in_file has the number of components that _would_ have been
+// output otherwise. E.g. if you set desired_channels to 4, you will always
+// get RGBA output, but you can check *channels_in_file to see if it's trivially
+// opaque because e.g. there were only 3 channels in the source image.
+//
+// An output image with N components has the following components interleaved
+// in this order in each pixel:
+//
+// N=#comp components
+// 1 grey
+// 2 grey, alpha
+// 3 red, green, blue
+// 4 red, green, blue, alpha
+//
+// If image loading fails for any reason, the return value will be NULL,
+// and *x, *y, *channels_in_file will be unchanged. The function
+// stbi_failure_reason() can be queried for an extremely brief, end-user
+// unfriendly explanation of why the load failed. Define STBI_NO_FAILURE_STRINGS
+// to avoid compiling these strings at all, and STBI_FAILURE_USERMSG to get slightly
+// more user-friendly ones.
+//
+// Paletted PNG, BMP, GIF, and PIC images are automatically depalettized.
+//
+// To query the width, height and component count of an image without having to
+// decode the full file, you can use the stbi_info family of functions:
+//
+// int x,y,n,ok;
+// ok = stbi_info(filename, &x, &y, &n);
+// // returns ok=1 and sets x, y, n if image is a supported format,
+// // 0 otherwise.
+//
+// Note that stb_image pervasively uses ints in its public API for sizes,
+// including sizes of memory buffers. This is now part of the API and thus
+// hard to change without causing breakage. As a result, the various image
+// loaders all have certain limits on image size; these differ somewhat
+// by format but generally boil down to either just under 2GB or just under
+// 1GB. When the decoded image would be larger than this, stb_image decoding
+// will fail.
+//
+// Additionally, stb_image will reject image files that have any of their
+// dimensions set to a larger value than the configurable STBI_MAX_DIMENSIONS,
+// which defaults to 2**24 = 16777216 pixels. Due to the above memory limit,
+// the only way to have an image with such dimensions load correctly
+// is for it to have a rather extreme aspect ratio. Either way, the
+// assumption here is that such larger images are likely to be malformed
+// or malicious. If you do need to load an image with individual dimensions
+// larger than that, and it still fits in the overall size limit, you can
+// #define STBI_MAX_DIMENSIONS on your own to be something larger.
+//
+// ===========================================================================
+//
+// UNICODE:
+//
+// If compiling for Windows and you wish to use Unicode filenames, compile
+// with
+// #define STBI_WINDOWS_UTF8
+// and pass utf8-encoded filenames. Call stbi_convert_wchar_to_utf8 to convert
+// Windows wchar_t filenames to utf8.
+//
+// ===========================================================================
+//
+// Philosophy
+//
+// stb libraries are designed with the following priorities:
+//
+// 1. easy to use
+// 2. easy to maintain
+// 3. good performance
+//
+// Sometimes I let "good performance" creep up in priority over "easy to maintain",
+// and for best performance I may provide less-easy-to-use APIs that give higher
+// performance, in addition to the easy-to-use ones. Nevertheless, it's important
+// to keep in mind that from the standpoint of you, a client of this library,
+// all you care about is #1 and #3, and stb libraries DO NOT emphasize #3 above all.
+//
+// Some secondary priorities arise directly from the first two, some of which
+// provide more explicit reasons why performance can't be emphasized.
+//
+// - Portable ("ease of use")
+// - Small source code footprint ("easy to maintain")
+// - No dependencies ("ease of use")
+//
+// ===========================================================================
+//
+// I/O callbacks
+//
+// I/O callbacks allow you to read from arbitrary sources, like packaged
+// files or some other source. Data read from callbacks are processed
+// through a small internal buffer (currently 128 bytes) to try to reduce
+// overhead.
+//
+// The three functions you must define are "read" (reads some bytes of data),
+// "skip" (skips some bytes of data), "eof" (reports if the stream is at the end).
+//
+// ===========================================================================
+//
+// SIMD support
+//
+// The JPEG decoder will try to automatically use SIMD kernels on x86 when
+// supported by the compiler. For ARM Neon support, you must explicitly
+// request it.
+//
+// (The old do-it-yourself SIMD API is no longer supported in the current
+// code.)
+//
+// On x86, SSE2 will automatically be used when available based on a run-time
+// test; if not, the generic C versions are used as a fall-back. On ARM targets,
+// the typical path is to have separate builds for NEON and non-NEON devices
+// (at least this is true for iOS and Android). Therefore, the NEON support is
+// toggled by a build flag: define STBI_NEON to get NEON loops.
+//
+// If for some reason you do not want to use any of SIMD code, or if
+// you have issues compiling it, you can disable it entirely by
+// defining STBI_NO_SIMD.
+//
+// ===========================================================================
+//
+// HDR image support (disable by defining STBI_NO_HDR)
+//
+// stb_image supports loading HDR images in general, and currently the Radiance
+// .HDR file format specifically. You can still load any file through the existing
+// interface; if you attempt to load an HDR file, it will be automatically remapped
+// to LDR, assuming gamma 2.2 and an arbitrary scale factor defaulting to 1;
+// both of these constants can be reconfigured through this interface:
+//
+// stbi_hdr_to_ldr_gamma(2.2f);
+// stbi_hdr_to_ldr_scale(1.0f);
+//
+// (note, do not use _inverse_ constants; stbi_image will invert them
+// appropriately).
+//
+// Additionally, there is a new, parallel interface for loading files as
+// (linear) floats to preserve the full dynamic range:
+//
+// float *data = stbi_loadf(filename, &x, &y, &n, 0);
+//
+// If you load LDR images through this interface, those images will
+// be promoted to floating point values, run through the inverse of
+// constants corresponding to the above:
+//
+// stbi_ldr_to_hdr_scale(1.0f);
+// stbi_ldr_to_hdr_gamma(2.2f);
+//
+// Finally, given a filename (or an open file or memory block--see header
+// file for details) containing image data, you can query for the "most
+// appropriate" interface to use (that is, whether the image is HDR or
+// not), using:
+//
+// stbi_is_hdr(char *filename);
+//
+// ===========================================================================
+//
+// iPhone PNG support:
+//
+// We optionally support converting iPhone-formatted PNGs (which store
+// premultiplied BGRA) back to RGB, even though they're internally encoded
+// differently. To enable this conversion, call
+// stbi_convert_iphone_png_to_rgb(1).
+//
+// Call stbi_set_unpremultiply_on_load(1) as well to force a divide per
+// pixel to remove any premultiplied alpha *only* if the image file explicitly
+// says there's premultiplied data (currently only happens in iPhone images,
+// and only if iPhone convert-to-rgb processing is on).
+//
+// ===========================================================================
+//
+// ADDITIONAL CONFIGURATION
+//
+// - You can suppress implementation of any of the decoders to reduce
+// your code footprint by #defining one or more of the following
+// symbols before creating the implementation.
+//
+// STBI_NO_JPEG
+// STBI_NO_PNG
+// STBI_NO_BMP
+// STBI_NO_PSD
+// STBI_NO_TGA
+// STBI_NO_GIF
+// STBI_NO_HDR
+// STBI_NO_PIC
+// STBI_NO_PNM (.ppm and .pgm)
+//
+// - You can request *only* certain decoders and suppress all other ones
+// (this will be more forward-compatible, as addition of new decoders
+// doesn't require you to disable them explicitly):
+//
+// STBI_ONLY_JPEG
+// STBI_ONLY_PNG
+// STBI_ONLY_BMP
+// STBI_ONLY_PSD
+// STBI_ONLY_TGA
+// STBI_ONLY_GIF
+// STBI_ONLY_HDR
+// STBI_ONLY_PIC
+// STBI_ONLY_PNM (.ppm and .pgm)
+//
+// - If you use STBI_NO_PNG (or _ONLY_ without PNG), and you still
+// want the zlib decoder to be available, #define STBI_SUPPORT_ZLIB
+//
+// - If you define STBI_MAX_DIMENSIONS, stb_image will reject images greater
+// than that size (in either width or height) without further processing.
+// This is to let programs in the wild set an upper bound to prevent
+// denial-of-service attacks on untrusted data, as one could generate a
+// valid image of gigantic dimensions and force stb_image to allocate a
+// huge block of memory and spend disproportionate time decoding it. By
+// default this is set to (1 << 24), which is 16777216, but that's still
+// very big.
+
+#ifndef STBI_NO_STDIO
+#include
+#endif // STBI_NO_STDIO
+
+#define STBI_VERSION 1
+
+enum {
+ STBI_default = 0, // only used for desired_channels
+
+ STBI_grey = 1,
+ STBI_grey_alpha = 2,
+ STBI_rgb = 3,
+ STBI_rgb_alpha = 4
+};
+
+#include
+typedef unsigned char stbi_uc;
+typedef unsigned short stbi_us;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef STBIDEF
+#ifdef STB_IMAGE_STATIC
+#define STBIDEF static
+#else
+#define STBIDEF extern
+#endif
+#endif
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// PRIMARY API - works on images of any type
+//
+
+//
+// load image by filename, open file, or memory buffer
+//
+
+typedef struct {
+ int (*read)(
+ void *user, char *data,
+ int size); // fill 'data' with 'size' bytes. return number of bytes actually read
+ void (*skip)(void *user,
+ int n); // skip the next 'n' bytes, or 'unget' the last -n bytes if negative
+ int (*eof)(void *user); // returns nonzero if we are at end of file/data
+} stbi_io_callbacks;
+
+////////////////////////////////////
+//
+// 8-bits-per-channel interface
+//
+
+STBIDEF stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, int *x, int *y,
+ int *channels_in_file, int desired_channels);
+STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y,
+ int *channels_in_file, int desired_channels);
+
+#ifndef STBI_NO_STDIO
+STBIDEF stbi_uc *stbi_load(char const *filename, int *x, int *y, int *channels_in_file,
+ int desired_channels);
+STBIDEF void stbi_load_to_target(char const *filename, int *x, int *y, stbi_uc *target,
+ int *channels_in_file, int desired_channels);
+STBIDEF stbi_uc *stbi_load_from_file(FILE *f, int *x, int *y, int *channels_in_file,
+ int desired_channels);
+// for stbi_load_from_file, file pointer is left pointing immediately after image
+#endif
+
+#ifndef STBI_NO_GIF
+STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x,
+ int *y, int *z, int *comp, int req_comp);
+#endif
+
+#ifdef STBI_WINDOWS_UTF8
+STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t *input);
+#endif
+
+////////////////////////////////////
+//
+// 16-bits-per-channel interface
+//
+
+STBIDEF stbi_us *stbi_load_16_from_memory(stbi_uc const *buffer, int len, int *x, int *y,
+ int *channels_in_file, int desired_channels);
+STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x,
+ int *y, int *channels_in_file, int desired_channels);
+
+#ifndef STBI_NO_STDIO
+STBIDEF stbi_us *stbi_load_16(char const *filename, int *x, int *y, int *channels_in_file,
+ int desired_channels);
+STBIDEF stbi_us *stbi_load_from_file_16(FILE *f, int *x, int *y, int *channels_in_file,
+ int desired_channels);
+#endif
+
+////////////////////////////////////
+//
+// float-per-channel interface
+//
+#ifndef STBI_NO_LINEAR
+STBIDEF float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, int *x, int *y,
+ int *channels_in_file, int desired_channels);
+STBIDEF float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y,
+ int *channels_in_file, int desired_channels);
+
+#ifndef STBI_NO_STDIO
+STBIDEF float *stbi_loadf(char const *filename, int *x, int *y, int *channels_in_file,
+ int desired_channels);
+STBIDEF float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *channels_in_file,
+ int desired_channels);
+#endif
+#endif
+
+#ifndef STBI_NO_HDR
+STBIDEF void stbi_hdr_to_ldr_gamma(float gamma);
+STBIDEF void stbi_hdr_to_ldr_scale(float scale);
+#endif // STBI_NO_HDR
+
+#ifndef STBI_NO_LINEAR
+STBIDEF void stbi_ldr_to_hdr_gamma(float gamma);
+STBIDEF void stbi_ldr_to_hdr_scale(float scale);
+#endif // STBI_NO_LINEAR
+
+// stbi_is_hdr is always defined, but always returns false if STBI_NO_HDR
+STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user);
+STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len);
+#ifndef STBI_NO_STDIO
+STBIDEF int stbi_is_hdr(char const *filename);
+STBIDEF int stbi_is_hdr_from_file(FILE *f);
+#endif // STBI_NO_STDIO
+
+// get a VERY brief reason for failure
+// on most compilers (and ALL modern mainstream compilers) this is threadsafe
+STBIDEF const char *stbi_failure_reason(void);
+
+// free the loaded image -- this is just free()
+STBIDEF void stbi_image_free(void *retval_from_stbi_load);
+
+// get image dimensions & components without fully decoding
+STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp);
+STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y,
+ int *comp);
+STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len);
+STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *clbk, void *user);
+
+#ifndef STBI_NO_STDIO
+STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp);
+STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp);
+STBIDEF int stbi_is_16_bit(char const *filename);
+STBIDEF int stbi_is_16_bit_from_file(FILE *f);
+#endif
+
+// for image formats that explicitly notate that they have premultiplied alpha,
+// we just return the colors as stored in the file. set this flag to force
+// unpremultiplication. results are undefined if the unpremultiply overflow.
+STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply);
+
+// indicate whether we should process iphone images back to canonical format,
+// or just pass them through "as-is"
+STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert);
+
+// flip the image vertically, so the first pixel in the output array is the bottom left
+STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip);
+
+// as above, but only applies to images loaded on the thread that calls the function
+// this function is only available if your compiler supports thread-local variables;
+// calling it will fail to link if your compiler doesn't
+STBIDEF void stbi_set_unpremultiply_on_load_thread(int flag_true_if_should_unpremultiply);
+STBIDEF void stbi_convert_iphone_png_to_rgb_thread(int flag_true_if_should_convert);
+STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip);
+
+// ZLIB client - used by PNG, available for other purposes
+
+STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size,
+ int *outlen);
+STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len,
+ int initial_size, int *outlen,
+ int parse_header);
+STBIDEF char *stbi_zlib_decode_malloc(const char *buffer, int len, int *outlen);
+STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, const char *ibuffer, int ilen);
+
+STBIDEF char *stbi_zlib_decode_noheader_malloc(const char *buffer, int len, int *outlen);
+STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer,
+ int ilen);
+
+#ifdef __cplusplus
+}
+#endif
+
+//
+//
+//// end header file /////////////////////////////////////////////////////
+#endif // STBI_INCLUDE_STB_IMAGE_H
+
+/*
+ revision history:
+ 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs
+ 2.19 (2018-02-11) fix warning
+ 2.18 (2018-01-30) fix warnings
+ 2.17 (2018-01-29) change sbti__shiftsigned to avoid clang -O2 bug
+ 1-bit BMP
+ *_is_16_bit api
+ avoid warnings
+ 2.16 (2017-07-23) all functions have 16-bit variants;
+ STBI_NO_STDIO works again;
+ compilation fixes;
+ fix rounding in unpremultiply;
+ optimize vertical flip;
+ disable raw_len validation;
+ documentation fixes
+ 2.15 (2017-03-18) fix png-1,2,4 bug; now all Imagenet JPGs decode;
+ warning fixes; disable run-time SSE detection on gcc;
+ uniform handling of optional "return" values;
+ thread-safe initialization of zlib tables
+ 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs
+ 2.13 (2016-11-29) add 16-bit API, only supported for PNG right now
+ 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes
+ 2.11 (2016-04-02) allocate large structures on the stack
+ remove white matting for transparent PSD
+ fix reported channel count for PNG & BMP
+ re-enable SSE2 in non-gcc 64-bit
+ support RGB-formatted JPEG
+ read 16-bit PNGs (only as 8-bit)
+ 2.10 (2016-01-22) avoid warning introduced in 2.09 by STBI_REALLOC_SIZED
+ 2.09 (2016-01-16) allow comments in PNM files
+ 16-bit-per-pixel TGA (not bit-per-component)
+ info() for TGA could break due to .hdr handling
+ info() for BMP to shares code instead of sloppy parse
+ can use STBI_REALLOC_SIZED if allocator doesn't support realloc
+ code cleanup
+ 2.08 (2015-09-13) fix to 2.07 cleanup, reading RGB PSD as RGBA
+ 2.07 (2015-09-13) fix compiler warnings
+ partial animated GIF support
+ limited 16-bpc PSD support
+ #ifdef unused functions
+ bug with < 92 byte PIC,PNM,HDR,TGA
+ 2.06 (2015-04-19) fix bug where PSD returns wrong '*comp' value
+ 2.05 (2015-04-19) fix bug in progressive JPEG handling, fix warning
+ 2.04 (2015-04-15) try to re-enable SIMD on MinGW 64-bit
+ 2.03 (2015-04-12) extra corruption checking (mmozeiko)
+ stbi_set_flip_vertically_on_load (nguillemot)
+ fix NEON support; fix mingw support
+ 2.02 (2015-01-19) fix incorrect assert, fix warning
+ 2.01 (2015-01-17) fix various warnings; suppress SIMD on gcc 32-bit without -msse2
+ 2.00b (2014-12-25) fix STBI_MALLOC in progressive JPEG
+ 2.00 (2014-12-25) optimize JPG, including x86 SSE2 & NEON SIMD (ryg)
+ progressive JPEG (stb)
+ PGM/PPM support (Ken Miller)
+ STBI_MALLOC,STBI_REALLOC,STBI_FREE
+ GIF bugfix -- seemingly never worked
+ STBI_NO_*, STBI_ONLY_*
+ 1.48 (2014-12-14) fix incorrectly-named assert()
+ 1.47 (2014-12-14) 1/2/4-bit PNG support, both direct and paletted (Omar Cornut & stb)
+ optimize PNG (ryg)
+ fix bug in interlaced PNG with user-specified channel count (stb)
+ 1.46 (2014-08-26)
+ fix broken tRNS chunk (colorkey-style transparency) in non-paletted PNG
+ 1.45 (2014-08-16)
+ fix MSVC-ARM internal compiler error by wrapping malloc
+ 1.44 (2014-08-07)
+ various warning fixes from Ronny Chevalier
+ 1.43 (2014-07-15)
+ fix MSVC-only compiler problem in code changed in 1.42
+ 1.42 (2014-07-09)
+ don't define _CRT_SECURE_NO_WARNINGS (affects user code)
+ fixes to stbi__cleanup_jpeg path
+ added STBI_ASSERT to avoid requiring assert.h
+ 1.41 (2014-06-25)
+ fix search&replace from 1.36 that messed up comments/error messages
+ 1.40 (2014-06-22)
+ fix gcc struct-initialization warning
+ 1.39 (2014-06-15)
+ fix to TGA optimization when req_comp != number of components in TGA;
+ fix to GIF loading because BMP wasn't rewinding (whoops, no GIFs in my test suite)
+ add support for BMP version 5 (more ignored fields)
+ 1.38 (2014-06-06)
+ suppress MSVC warnings on integer casts truncating values
+ fix accidental rename of 'skip' field of I/O
+ 1.37 (2014-06-04)
+ remove duplicate typedef
+ 1.36 (2014-06-03)
+ convert to header file single-file library
+ if de-iphone isn't set, load iphone images color-swapped instead of returning NULL
+ 1.35 (2014-05-27)
+ various warnings
+ fix broken STBI_SIMD path
+ fix bug where stbi_load_from_file no longer left file pointer in correct place
+ fix broken non-easy path for 32-bit BMP (possibly never used)
+ TGA optimization by Arseny Kapoulkine
+ 1.34 (unknown)
+ use STBI_NOTUSED in stbi__resample_row_generic(), fix one more leak in tga failure case
+ 1.33 (2011-07-14)
+ make stbi_is_hdr work in STBI_NO_HDR (as specified), minor compiler-friendly improvements
+ 1.32 (2011-07-13)
+ support for "info" function for all supported filetypes (SpartanJ)
+ 1.31 (2011-06-20)
+ a few more leak fixes, bug in PNG handling (SpartanJ)
+ 1.30 (2011-06-11)
+ added ability to load files via callbacks to accomidate custom input streams (Ben Wenger)
+ removed deprecated format-specific test/load functions
+ removed support for installable file formats (stbi_loader) -- would have been broken for IO callbacks anyway
+ error cases in bmp and tga give messages and don't leak (Raymond Barbiero, grisha)
+ fix inefficiency in decoding 32-bit BMP (David Woo)
+ 1.29 (2010-08-16)
+ various warning fixes from Aurelien Pocheville
+ 1.28 (2010-08-01)
+ fix bug in GIF palette transparency (SpartanJ)
+ 1.27 (2010-08-01)
+ cast-to-stbi_uc to fix warnings
+ 1.26 (2010-07-24)
+ fix bug in file buffering for PNG reported by SpartanJ
+ 1.25 (2010-07-17)
+ refix trans_data warning (Won Chun)
+ 1.24 (2010-07-12)
+ perf improvements reading from files on platforms with lock-heavy fgetc()
+ minor perf improvements for jpeg
+ deprecated type-specific functions so we'll get feedback if they're needed
+ attempt to fix trans_data warning (Won Chun)
+ 1.23 fixed bug in iPhone support
+ 1.22 (2010-07-10)
+ removed image *writing* support
+ stbi_info support from Jetro Lauha
+ GIF support from Jean-Marc Lienher
+ iPhone PNG-extensions from James Brown
+ warning-fixes from Nicolas Schulz and Janez Zemva (i.stbi__err. Janez (U+017D)emva)
+ 1.21 fix use of 'stbi_uc' in header (reported by jon blow)
+ 1.20 added support for Softimage PIC, by Tom Seddon
+ 1.19 bug in interlaced PNG corruption check (found by ryg)
+ 1.18 (2008-08-02)
+ fix a threading bug (local mutable static)
+ 1.17 support interlaced PNG
+ 1.16 major bugfix - stbi__convert_format converted one too many pixels
+ 1.15 initialize some fields for thread safety
+ 1.14 fix threadsafe conversion bug
+ header-file-only version (#define STBI_HEADER_FILE_ONLY before including)
+ 1.13 threadsafe
+ 1.12 const qualifiers in the API
+ 1.11 Support installable IDCT, colorspace conversion routines
+ 1.10 Fixes for 64-bit (don't use "unsigned long")
+ optimized upsampling by Fabian "ryg" Giesen
+ 1.09 Fix format-conversion for PSD code (bad global variables!)
+ 1.08 Thatcher Ulrich's PSD code integrated by Nicolas Schulz
+ 1.07 attempt to fix C++ warning/errors again
+ 1.06 attempt to fix C++ warning/errors again
+ 1.05 fix TGA loading to return correct *comp and use good luminance calc
+ 1.04 default float alpha is 1, not 255; use 'void *' for stbi_image_free
+ 1.03 bugfixes to STBI_NO_STDIO, STBI_NO_HDR
+ 1.02 support for (subset of) HDR files, float interface for preferred access to them
+ 1.01 fix bug: possible bug in handling right-side up bmps... not sure
+ fix bug: the stbi__bmp_load() and stbi__tga_load() functions didn't work at all
+ 1.00 interface to zlib that skips zlib header
+ 0.99 correct handling of alpha in palette
+ 0.98 TGA loader by lonesock; dynamically add loaders (untested)
+ 0.97 jpeg errors on too large a file; also catch another malloc failure
+ 0.96 fix detection of invalid v value - particleman@mollyrocket forum
+ 0.95 during header scan, seek to markers in case of padding
+ 0.94 STBI_NO_STDIO to disable stdio usage; rename all #defines the same
+ 0.93 handle jpegtran output; verbose errors
+ 0.92 read 4,8,16,24,32-bit BMP files of several formats
+ 0.91 output 24-bit Windows 3.0 BMP files
+ 0.90 fix a few more warnings; bump version number to approach 1.0
+ 0.61 bugfixes due to Marc LeBlanc, Christopher Lloyd
+ 0.60 fix compiling as c++
+ 0.59 fix warnings: merge Dave Moore's -Wall fixes
+ 0.58 fix bug: zlib uncompressed mode len/nlen was wrong endian
+ 0.57 fix bug: jpg last huffman symbol before marker was >9 bits but less than 16 available
+ 0.56 fix bug: zlib uncompressed mode len vs. nlen
+ 0.55 fix bug: restart_interval not initialized to 0
+ 0.54 allow NULL for 'int *comp'
+ 0.53 fix bug in png 3->4; speedup png decoding
+ 0.52 png handles req_comp=3,4 directly; minor cleanup; jpeg comments
+ 0.51 obey req_comp requests, 1-component jpegs return as 1-component,
+ on 'test' only check type, not whether we support this variant
+ 0.50 (2006-11-19)
+ first released version
+*/
+
+/*
+------------------------------------------------------------------------------
+This software is available under 2 licenses -- choose whichever you prefer.
+------------------------------------------------------------------------------
+ALTERNATIVE A - MIT License
+Copyright (c) 2017 Sean Barrett
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+------------------------------------------------------------------------------
+ALTERNATIVE B - Public Domain (www.unlicense.org)
+This is free and unencumbered software released into the public domain.
+Anyone is free to copy, modify, publish, use, compile, sell, or distribute this
+software, either in source code form or as a compiled binary, for any purpose,
+commercial or non-commercial, and by any means.
+In jurisdictions that recognize copyright laws, the author or authors of this
+software dedicate any and all copyright interest in the software to the public
+domain. We make this dedication for the benefit of the public at large and to
+the detriment of our heirs and successors. We intend this dedication to be an
+overt act of relinquishment in perpetuity of all present and future rights to
+this software under copyright law.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+------------------------------------------------------------------------------
+*/
diff --git a/StgSharp.C/string.c b/StgSharp.C/string.c
new file mode 100644
index 00000000..713d353b
--- /dev/null
+++ b/StgSharp.C/string.c
@@ -0,0 +1,53 @@
+#include "ssc_intrinsic.h"
+
+int index_pair_sse(short const *str, uint32_t target, int length)
+{
+ int index = 0, result = 0, size = length, end = size - 8;
+ __m128i s = {
+ target,
+ target,
+ target,
+ target,
+ };
+ __m128i vec, com;
+
+ while (index < end) {
+ vec = _mm_loadu_epi32(str + index);
+ com = _mm_cmpeq_epi16(vec, s);
+ result = _mm_movemask_epi8(com);
+ if (result) {
+ for (size_t i = 0; i < 7; i++) {
+ if (((result & 0xF) == 0xF)) {
+ return index + i;
+ }
+ if (result == 0) {
+ break;
+ }
+ result >>= 2;
+ }
+ }
+ index += 1;
+ vec = _mm_loadu_epi32(str + index);
+ com = _mm_cmpeq_epi16(vec, s);
+ result = _mm_movemask_epi8(com);
+ if (result) {
+ for (size_t i = 0; i < 7; i++) {
+ if (((result & 0xF) == 0xF)) {
+ return index + i;
+ }
+ if (result == 0) {
+ break;
+ }
+ result >>= 2;
+ }
+ }
+ index += 7;
+ }
+ for (; (index < size - 1) && (!result); index += 2) {
+ result = *(int *)(str + index) == target;
+ }
+ if (result) {
+ return index;
+ }
+ return -1;
+}
diff --git a/StgSharp.C/vector.c b/StgSharp.C/vector.c
new file mode 100644
index 00000000..c534bae7
--- /dev/null
+++ b/StgSharp.C/vector.c
@@ -0,0 +1,31 @@
+#include "StgSharpC.h"
+#include "ssc_internal.h"
+
+SSCAPI void SSCDECL normalize(__m128 *source, __m128 *target)
+{
+ __m128 a_length_sq = _mm_mul_ps(*source, *source);
+ a_length_sq = _mm_add_ps(a_length_sq,
+ _mm_shuffle_ps(a_length_sq, a_length_sq, _MM_SHUFFLE(2, 3, 0, 1)));
+ a_length_sq = _mm_add_ss(a_length_sq,
+ _mm_shuffle_ps(a_length_sq, a_length_sq, _MM_SHUFFLE(0, 0, 3, 2)));
+
+ __m128 a_inv_length = _mm_rsqrt_ps(a_length_sq);
+ *source = _mm_mul_ps(*source, a_inv_length);
+
+ __m128 dot_product = _mm_mul_ps(*target, *source);
+ dot_product = _mm_add_ps(dot_product,
+ _mm_shuffle_ps(dot_product, dot_product, _MM_SHUFFLE(2, 3, 0, 1)));
+ dot_product = _mm_add_ss(dot_product,
+ _mm_shuffle_ps(dot_product, dot_product, _MM_SHUFFLE(0, 0, 3, 2)));
+
+ __m128 b_orthogonal = _mm_sub_ps(*target, _mm_mul_ps(*source, dot_product));
+
+ __m128 b_length_sq = _mm_mul_ps(b_orthogonal, b_orthogonal);
+ b_length_sq = _mm_add_ps(b_length_sq,
+ _mm_shuffle_ps(b_length_sq, b_length_sq, _MM_SHUFFLE(2, 3, 0, 1)));
+ b_length_sq = _mm_add_ss(b_length_sq,
+ _mm_shuffle_ps(b_length_sq, b_length_sq, _MM_SHUFFLE(0, 0, 3, 2)));
+
+ __m128 b_inv_length = _mm_rsqrt_ps(b_length_sq);
+ *target = _mm_mul_ps(b_orthogonal, b_inv_length);
+}
diff --git a/StgSharp.C/vector_dot.c b/StgSharp.C/vector_dot.c
new file mode 100644
index 00000000..a6152e89
--- /dev/null
+++ b/StgSharp.C/vector_dot.c
@@ -0,0 +1,147 @@
+#include "ssc_intrinsic.h"
+#include "SSC_internal.h"
+
+static const int avxdot_indices[] = { 0, 4, 1, 5, 2, 3, 6, 7 };
+
+INTERNAL void FORCEINLINE SSCDECL dot_41_sse(__4_columnset *transpose, __m128 *vector, __m128 *ans)
+{
+ *ans = _mm_dp_ps(transpose->column[0], *vector, 0B11110001);
+ *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[1], *vector, 0B11110001),
+ SSE_INSERT_SIMPLE(1, 1));
+ *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], *vector, 0B11110001),
+ SSE_INSERT_SIMPLE(1, 3));
+ *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[3], *vector, 0B11110001),
+ SSE_INSERT_SIMPLE(1, 4));
+}
+
+INTERNAL void SSCDECL dot_41_avx(__4_columnset *transpose, __m128 *vector, __m128 *ans)
+{
+ __m256 _double = _mm256_set_m128(vector[0], vector[0]);
+ __m256 tmp = _mm256_dp_ps(transpose->half[0], _double, 0B11110001);
+ tmp = _mm256_blend_ps(tmp, _mm256_dp_ps(transpose->half[0], _double, 0B11110010),
+ 0B00100010);
+ *ans = _mm256_castps256_ps128(
+ _mm256_permutevar8x32_ps(tmp, _mm256_loadu_epi32(avxdot_indices)));
+}
+
+INTERNAL void FORCEINLINE SSCDECL dot_31_sse(__3_columnset *transpose, __m128 *vector, __m128 *ans)
+{
+ *ans = _mm_dp_ps(transpose->column[0], *vector, 0B11110001);
+ *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[1], *vector, 0B11110001),
+ SSE_INSERT_SIMPLE(1, 2));
+ *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], *vector, 0B11110001),
+ SSE_INSERT_SIMPLE(1, 3));
+}
+
+INTERNAL void FORCEINLINE SSCDECL dot_31_avx(__3_columnset *transpose, __m128 *vector, __m128 *ans)
+{
+ __m256 _double = _mm256_set_m128(vector[0], vector[0]);
+ __m256 tmp = _mm256_dp_ps(transpose->part, _double, 0B11110001);
+ *ans = _mm256_castps256_ps128(
+ _mm256_permutevar8x32_ps(tmp, _mm256_loadu_epi32(avxdot_indices)));
+ *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], *vector, 0B11110001),
+ SSE_INSERT_SIMPLE(1, 3));
+}
+
+INTERNAL void SSCDECL dot_42_sse(__4_columnset *transpose, __m128 *vector, __m128 *ans)
+{
+ ans[0] = _mm_dp_ps(transpose->column[0], vector[0], 0B11110001);
+ ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[1], vector[0], 0B11110001),
+ SSE_INSERT_SIMPLE(1, 2));
+ ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], vector[0], 0B11110001),
+ SSE_INSERT_SIMPLE(1, 3));
+ ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[3], vector[0], 0B11110001),
+ SSE_INSERT_SIMPLE(1, 4));
+
+ ans[1] = _mm_dp_ps(transpose->column[0], vector[1], 0B11110001);
+ ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[1], vector[1], 0B11110001),
+ SSE_INSERT_SIMPLE(1, 2));
+ ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], vector[1], 0B11110001),
+ SSE_INSERT_SIMPLE(1, 3));
+ ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[3], vector[1], 0B11110001),
+ SSE_INSERT_SIMPLE(1, 4));
+}
+
+INTERNAL void SSCDECL dot_32_sse(__3_columnset *transpose, __m128 *vector, __m128 *ans)
+{
+ ans[0] = _mm_dp_ps(transpose->column[0], vector[0], 0B11110001);
+ ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[1], vector[0], 0B11110001),
+ SSE_INSERT_SIMPLE(1, 2));
+ ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], vector[0], 0B11110001),
+ SSE_INSERT_SIMPLE(1, 3));
+
+ ans[1] = _mm_dp_ps(transpose->column[0], vector[1], 0B11110001);
+ ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[1], vector[1], 0B11110001),
+ SSE_INSERT_SIMPLE(1, 2));
+ ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], vector[1], 0B11110001),
+ SSE_INSERT_SIMPLE(1, 3));
+}
+
+INTERNAL void SSCDECL dot_42_avx(__4_columnset *transpose, __m128 *vector, __m128 *ans)
+{
+ __2_columnset *ans_ptr = (__2_columnset *)ans, *right_ptr = (__2_columnset *)vector;
+ __m256 temp = ALIGN256(transpose->half[0]);
+
+ ans_ptr->stream = _mm256_dp_ps(temp, right_ptr->stream, 0B11110001);
+ temp = _mm256_permute2f128_ps(temp, temp, 0B00000001);
+ ans_ptr->stream = _mm256_blend_ps(
+ ans_ptr->stream, _mm256_dp_ps(temp, right_ptr->stream, 0B11110010), 0B00100010);
+
+ temp = ALIGN256(transpose->half[1]);
+ ans_ptr->stream = _mm256_blend_ps(
+ ans_ptr->stream, _mm256_dp_ps(temp, right_ptr->stream, 0B11110100), 0B01000100);
+ temp = _mm256_permute2f128_ps(temp, temp, 0B00000001);
+ ans_ptr->stream = _mm256_blend_ps(
+ ans_ptr->stream, _mm256_dp_ps(temp, right_ptr->stream, 0B11111000), 0B10001000);
+
+ ans[1] = _mm_shuffle_ps(ALIGN(ans[1]), ALIGN(ans[1]), _MM_SHUFFLE(2, 3, 0, 1));
+}
+
+INTERNAL void SSCDECL dot_32_avx(__3_columnset *transpose, __m128 *vector, __m128 *ans)
+{
+ __2_columnset *ans_ptr = (__2_columnset *)ans, *right_ptr = (__2_columnset *)vector;
+ __m256 temp = transpose->part;
+
+ ans_ptr->stream = _mm256_dp_ps(temp, right_ptr->stream, 0B11110001);
+ temp = _mm256_permute2f128_ps(temp, temp, 0B00000001);
+ ans_ptr->stream = _mm256_blend_ps(
+ ans_ptr->stream, _mm256_dp_ps(temp, right_ptr->stream, 0B11110010), 0B00100010);
+
+ temp = _mm256_set_m128(transpose->column[2], transpose->column[2]);
+ ans_ptr->stream = _mm256_blend_ps(
+ ans_ptr->stream, _mm256_dp_ps(temp, right_ptr->stream, 0B11110100), 0B01000100);
+
+ ans[1] = _mm_shuffle_ps(ALIGN(ans[1]), ALIGN(ans[1]), _MM_SHUFFLE(2, 2, 0, 1));
+}
+
+INTERNAL void SSCDECL dot_43_sse(__4_columnset *transpose, __m128 *vector, __m128 *ans)
+{
+ dot_41_sse(transpose, vector, ans);
+ dot_41_sse(transpose, vector + 1, ans + 1);
+ dot_41_sse(transpose, vector + 2, ans + 2);
+}
+
+INTERNAL void SSCDECL dot_43_avx(__4_columnset *transpose, __m128 *vector, __m128 *ans)
+{
+ __3_columnset *ans_ptr = (__3_columnset *)ans, *right_ptr = (__3_columnset *)vector;
+ __m256 temp = ALIGN256(transpose->half[0]);
+ __m256 third = _mm256_set_m128(right_ptr->column[2], right_ptr->column[2]);
+
+ ans_ptr->part = _mm256_dp_ps(temp, right_ptr->part, 0B11110001);
+ __m256 ans_third = _mm256_dp_ps(temp, third, 0B11110001);
+ temp = _mm256_permute2f128_ps(temp, temp, 0B00000001);
+ ans_ptr->part = _mm256_blend_ps(
+ ans_ptr->part, _mm256_dp_ps(temp, right_ptr->part, 0B11110010), 0B00100010);
+
+ temp = ALIGN256(transpose->half[1]);
+ ans_ptr->part = _mm256_blend_ps(
+ ans_ptr->part, _mm256_dp_ps(temp, right_ptr->part, 0B11110100), 0B01000100);
+ ans_third = _mm256_blend_ps(ans_third, _mm256_dp_ps(temp, third, 0B11110010), 0B00100010);
+ temp = _mm256_permute2f128_ps(temp, temp, 0B00000001);
+ ans_ptr->part = _mm256_blend_ps(
+ ans_ptr->part, _mm256_dp_ps(temp, right_ptr->part, 0B11111000), 0B10001000);
+
+ ans[1] = _mm_shuffle_ps(ALIGN(ans[1]), ALIGN(ans[1]), _MM_SHUFFLE(2, 3, 0, 1));
+ ans[2] = _mm256_castps256_ps128(
+ _mm256_permutevar8x32_ps(ans_third, _mm256_loadu_epi32(avxdot_indices)));
+}
diff --git a/StgSharp.C/wgl.h b/StgSharp.C/wgl.h
new file mode 100644
index 00000000..a48052de
--- /dev/null
+++ b/StgSharp.C/wgl.h
@@ -0,0 +1,1076 @@
+/**
+ * Loader generated by glad 2.0.5 on Fri Feb 16 00:51:03 2024
+ *
+ * SPDX-License-Identifier: (WTFPL OR CC0-1.0) AND Apache-2.0
+ *
+ * Generator: C/C++
+ * Specification: wgl
+ * Extensions: 57
+ *
+ * APIs:
+ * - wgl=1.0
+ *
+ * Options:
+ * - ALIAS = False
+ * - DEBUG = False
+ * - HEADER_ONLY = False
+ * - LOADER = False
+ * - MX = True
+ * - ON_DEMAND = False
+ *
+ * Commandline:
+ * --api='wgl=1.0' --extensions='WGL_3DFX_multisample,WGL_3DL_stereo_control,WGL_AMD_gpu_association,WGL_ARB_buffer_region,WGL_ARB_context_flush_control,WGL_ARB_create_context,WGL_ARB_create_context_no_error,WGL_ARB_create_context_profile,WGL_ARB_create_context_robustness,WGL_ARB_extensions_string,WGL_ARB_framebuffer_sRGB,WGL_ARB_make_current_read,WGL_ARB_multisample,WGL_ARB_pbuffer,WGL_ARB_pixel_format,WGL_ARB_pixel_format_float,WGL_ARB_render_texture,WGL_ARB_robustness_application_isolation,WGL_ARB_robustness_share_group_isolation,WGL_ATI_pixel_format_float,WGL_ATI_render_texture_rectangle,WGL_EXT_colorspace,WGL_EXT_create_context_es2_profile,WGL_EXT_create_context_es_profile,WGL_EXT_depth_float,WGL_EXT_display_color_table,WGL_EXT_extensions_string,WGL_EXT_framebuffer_sRGB,WGL_EXT_make_current_read,WGL_EXT_multisample,WGL_EXT_pbuffer,WGL_EXT_pixel_format,WGL_EXT_pixel_format_packed_float,WGL_EXT_swap_control,WGL_EXT_swap_control_tear,WGL_I3D_digital_video_control,WGL_I3D_gamma,WGL_I3D_genlock,WGL_I3D_image_buffer,WGL_I3D_swap_frame_lock,WGL_I3D_swap_frame_usage,WGL_NV_DX_interop,WGL_NV_DX_interop2,WGL_NV_copy_image,WGL_NV_delay_before_swap,WGL_NV_float_buffer,WGL_NV_gpu_affinity,WGL_NV_multigpu_context,WGL_NV_multisample_coverage,WGL_NV_present_video,WGL_NV_render_depth_texture,WGL_NV_render_texture_rectangle,WGL_NV_swap_group,WGL_NV_vertex_array_range,WGL_NV_video_capture,WGL_NV_video_output,WGL_OML_sync_control' c --mx
+ *
+ * Online:
+ * http://glad.sh/#api=wgl%3D1.0&extensions=WGL_3DFX_multisample%2CWGL_3DL_stereo_control%2CWGL_AMD_gpu_association%2CWGL_ARB_buffer_region%2CWGL_ARB_context_flush_control%2CWGL_ARB_create_context%2CWGL_ARB_create_context_no_error%2CWGL_ARB_create_context_profile%2CWGL_ARB_create_context_robustness%2CWGL_ARB_extensions_string%2CWGL_ARB_framebuffer_sRGB%2CWGL_ARB_make_current_read%2CWGL_ARB_multisample%2CWGL_ARB_pbuffer%2CWGL_ARB_pixel_format%2CWGL_ARB_pixel_format_float%2CWGL_ARB_render_texture%2CWGL_ARB_robustness_application_isolation%2CWGL_ARB_robustness_share_group_isolation%2CWGL_ATI_pixel_format_float%2CWGL_ATI_render_texture_rectangle%2CWGL_EXT_colorspace%2CWGL_EXT_create_context_es2_profile%2CWGL_EXT_create_context_es_profile%2CWGL_EXT_depth_float%2CWGL_EXT_display_color_table%2CWGL_EXT_extensions_string%2CWGL_EXT_framebuffer_sRGB%2CWGL_EXT_make_current_read%2CWGL_EXT_multisample%2CWGL_EXT_pbuffer%2CWGL_EXT_pixel_format%2CWGL_EXT_pixel_format_packed_float%2CWGL_EXT_swap_control%2CWGL_EXT_swap_control_tear%2CWGL_I3D_digital_video_control%2CWGL_I3D_gamma%2CWGL_I3D_genlock%2CWGL_I3D_image_buffer%2CWGL_I3D_swap_frame_lock%2CWGL_I3D_swap_frame_usage%2CWGL_NV_DX_interop%2CWGL_NV_DX_interop2%2CWGL_NV_copy_image%2CWGL_NV_delay_before_swap%2CWGL_NV_float_buffer%2CWGL_NV_gpu_affinity%2CWGL_NV_multigpu_context%2CWGL_NV_multisample_coverage%2CWGL_NV_present_video%2CWGL_NV_render_depth_texture%2CWGL_NV_render_texture_rectangle%2CWGL_NV_swap_group%2CWGL_NV_vertex_array_range%2CWGL_NV_video_capture%2CWGL_NV_video_output%2CWGL_OML_sync_control&generator=c&options=MX
+ *
+ */
+
+#ifndef GLAD_WGL_H_
+#define GLAD_WGL_H_
+
+#include
+#include "gl.h"
+
+#define GLAD_WGL
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef GLAD_PLATFORM_H_
+#define GLAD_PLATFORM_H_
+
+#ifndef GLAD_PLATFORM_WIN32
+#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__)
+#define GLAD_PLATFORM_WIN32 1
+#else
+#define GLAD_PLATFORM_WIN32 0
+#endif
+#endif
+
+#ifndef GLAD_PLATFORM_APPLE
+#ifdef __APPLE__
+#define GLAD_PLATFORM_APPLE 1
+#else
+#define GLAD_PLATFORM_APPLE 0
+#endif
+#endif
+
+#ifndef GLAD_PLATFORM_EMSCRIPTEN
+#ifdef __EMSCRIPTEN__
+#define GLAD_PLATFORM_EMSCRIPTEN 1
+#else
+#define GLAD_PLATFORM_EMSCRIPTEN 0
+#endif
+#endif
+
+#ifndef GLAD_PLATFORM_UWP
+#if defined(_MSC_VER) && !defined(GLAD_INTERNAL_HAVE_WINAPIFAMILY)
+#ifdef __has_include
+#if __has_include()
+#define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
+#endif
+#elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
+#define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
+#endif
+#endif
+
+#ifdef GLAD_INTERNAL_HAVE_WINAPIFAMILY
+#include
+#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && \
+ WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+#define GLAD_PLATFORM_UWP 1
+#endif
+#endif
+
+#ifndef GLAD_PLATFORM_UWP
+#define GLAD_PLATFORM_UWP 0
+#endif
+#endif
+
+#ifdef __GNUC__
+#define GLAD_GNUC_EXTENSION __extension__
+#else
+#define GLAD_GNUC_EXTENSION
+#endif
+
+#define GLAD_UNUSED(x) (void)(x)
+
+#ifndef GLAD_API_CALL
+#if defined(GLAD_API_CALL_EXPORT)
+#if GLAD_PLATFORM_WIN32 || defined(__CYGWIN__)
+#if defined(GLAD_API_CALL_EXPORT_BUILD)
+#if defined(__GNUC__)
+#define GLAD_API_CALL __attribute__((dllexport)) extern
+#else
+#define GLAD_API_CALL __declspec(dllexport) extern
+#endif
+#else
+#if defined(__GNUC__)
+#define GLAD_API_CALL __attribute__((dllimport)) extern
+#else
+#define GLAD_API_CALL __declspec(dllimport) extern
+#endif
+#endif
+#elif defined(__GNUC__) && defined(GLAD_API_CALL_EXPORT_BUILD)
+#define GLAD_API_CALL __attribute__((visibility("default"))) extern
+#else
+#define GLAD_API_CALL extern
+#endif
+#else
+#define GLAD_API_CALL extern
+#endif
+#endif
+
+#ifdef APIENTRY
+#define GLAD_API_PTR APIENTRY
+#elif GLAD_PLATFORM_WIN32
+#define GLAD_API_PTR __stdcall
+#else
+#define GLAD_API_PTR
+#endif
+
+#ifndef GLAPI
+#define GLAPI GLAD_API_CALL
+#endif
+
+#ifndef GLAPIENTRY
+#define GLAPIENTRY GLAD_API_PTR
+#endif
+
+#define GLAD_MAKE_VERSION(major, minor) (major * 10000 + minor)
+#define GLAD_VERSION_MAJOR(version) (version / 10000)
+#define GLAD_VERSION_MINOR(version) (version % 10000)
+
+#define GLAD_GENERATOR_VERSION "2.0.5"
+
+typedef void (*GLADapiproc)(void);
+
+typedef GLADapiproc (*GLADloadfunc)(const char *name);
+typedef GLADapiproc (*GLADuserptrloadfunc)(void *userptr, const char *name);
+
+typedef void (*GLADprecallback)(const char *name, GLADapiproc apiproc, int len_args, ...);
+typedef void (*GLADpostcallback)(void *ret, const char *name, GLADapiproc apiproc, int len_args,
+ ...);
+
+#endif /* GLAD_PLATFORM_H_ */
+
+#define ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0
+#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
+#define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043
+#define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043
+#define ERROR_INVALID_PROFILE_ARB 0x2096
+#define ERROR_INVALID_VERSION_ARB 0x2095
+#define ERROR_MISSING_AFFINITY_MASK_NV 0x20D1
+#define WGL_ACCELERATION_ARB 0x2003
+#define WGL_ACCELERATION_EXT 0x2003
+#define WGL_ACCESS_READ_ONLY_NV 0x00000000
+#define WGL_ACCESS_READ_WRITE_NV 0x00000001
+#define WGL_ACCESS_WRITE_DISCARD_NV 0x00000002
+#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021
+#define WGL_ACCUM_ALPHA_BITS_EXT 0x2021
+#define WGL_ACCUM_BITS_ARB 0x201D
+#define WGL_ACCUM_BITS_EXT 0x201D
+#define WGL_ACCUM_BLUE_BITS_ARB 0x2020
+#define WGL_ACCUM_BLUE_BITS_EXT 0x2020
+#define WGL_ACCUM_GREEN_BITS_ARB 0x201F
+#define WGL_ACCUM_GREEN_BITS_EXT 0x201F
+#define WGL_ACCUM_RED_BITS_ARB 0x201E
+#define WGL_ACCUM_RED_BITS_EXT 0x201E
+#define WGL_ALPHA_BITS_ARB 0x201B
+#define WGL_ALPHA_BITS_EXT 0x201B
+#define WGL_ALPHA_SHIFT_ARB 0x201C
+#define WGL_ALPHA_SHIFT_EXT 0x201C
+#define WGL_AUX0_ARB 0x2087
+#define WGL_AUX1_ARB 0x2088
+#define WGL_AUX2_ARB 0x2089
+#define WGL_AUX3_ARB 0x208A
+#define WGL_AUX4_ARB 0x208B
+#define WGL_AUX5_ARB 0x208C
+#define WGL_AUX6_ARB 0x208D
+#define WGL_AUX7_ARB 0x208E
+#define WGL_AUX8_ARB 0x208F
+#define WGL_AUX9_ARB 0x2090
+#define WGL_AUX_BUFFERS_ARB 0x2024
+#define WGL_AUX_BUFFERS_EXT 0x2024
+#define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002
+#define WGL_BACK_LEFT_ARB 0x2085
+#define WGL_BACK_RIGHT_ARB 0x2086
+#define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0
+#define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071
+#define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070
+#define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1
+#define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2
+#define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0
+#define WGL_BLUE_BITS_ARB 0x2019
+#define WGL_BLUE_BITS_EXT 0x2019
+#define WGL_BLUE_SHIFT_ARB 0x201A
+#define WGL_BLUE_SHIFT_EXT 0x201A
+#define WGL_COLORSPACE_EXT 0x309D
+#define WGL_COLORSPACE_LINEAR_EXT 0x308A
+#define WGL_COLORSPACE_SRGB_EXT 0x3089
+#define WGL_COLOR_BITS_ARB 0x2014
+#define WGL_COLOR_BITS_EXT 0x2014
+#define WGL_COLOR_SAMPLES_NV 0x20B9
+#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
+#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
+#define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001
+#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
+#define WGL_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004
+#define WGL_CONTEXT_FLAGS_ARB 0x2094
+#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
+#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093
+#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
+#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
+#define WGL_CONTEXT_MULTIGPU_ATTRIB_AFR_NV 0x20AC
+#define WGL_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV 0x20AD
+#define WGL_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV 0x20AE
+#define WGL_CONTEXT_MULTIGPU_ATTRIB_NV 0x20AA
+#define WGL_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV 0x20AB
+#define WGL_CONTEXT_OPENGL_NO_ERROR_ARB 0x31B3
+#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
+#define WGL_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097
+#define WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098
+#define WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0
+#define WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
+#define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
+#define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
+#define WGL_COVERAGE_SAMPLES_NV 0x2042
+#define WGL_CUBE_MAP_FACE_ARB 0x207C
+#define WGL_DEPTH_BITS_ARB 0x2022
+#define WGL_DEPTH_BITS_EXT 0x2022
+#define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004
+#define WGL_DEPTH_COMPONENT_NV 0x20A7
+#define WGL_DEPTH_FLOAT_EXT 0x2040
+#define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5
+#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050
+#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051
+#define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052
+#define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053
+#define WGL_DOUBLE_BUFFER_ARB 0x2011
+#define WGL_DOUBLE_BUFFER_EXT 0x2011
+#define WGL_DRAW_TO_BITMAP_ARB 0x2002
+#define WGL_DRAW_TO_BITMAP_EXT 0x2002
+#define WGL_DRAW_TO_PBUFFER_ARB 0x202D
+#define WGL_DRAW_TO_PBUFFER_EXT 0x202D
+#define WGL_DRAW_TO_WINDOW_ARB 0x2001
+#define WGL_DRAW_TO_WINDOW_EXT 0x2001
+#define WGL_FLOAT_COMPONENTS_NV 0x20B0
+#define WGL_FONT_LINES 0
+#define WGL_FONT_POLYGONS 1
+#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9
+#define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9
+#define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001
+#define WGL_FRONT_LEFT_ARB 0x2083
+#define WGL_FRONT_RIGHT_ARB 0x2084
+#define WGL_FULL_ACCELERATION_ARB 0x2027
+#define WGL_FULL_ACCELERATION_EXT 0x2027
+#define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F
+#define WGL_GAMMA_TABLE_SIZE_I3D 0x204E
+#define WGL_GENERIC_ACCELERATION_ARB 0x2026
+#define WGL_GENERIC_ACCELERATION_EXT 0x2026
+#define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049
+#define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048
+#define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C
+#define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A
+#define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B
+#define WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D 0x2046
+#define WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D 0x2045
+#define WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D 0x2047
+#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044
+#define WGL_GPU_CLOCK_AMD 0x21A4
+#define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2
+#define WGL_GPU_NUM_PIPES_AMD 0x21A5
+#define WGL_GPU_NUM_RB_AMD 0x21A7
+#define WGL_GPU_NUM_SIMD_AMD 0x21A6
+#define WGL_GPU_NUM_SPI_AMD 0x21A8
+#define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
+#define WGL_GPU_RAM_AMD 0x21A3
+#define WGL_GPU_RENDERER_STRING_AMD 0x1F01
+#define WGL_GPU_VENDOR_AMD 0x1F00
+#define WGL_GREEN_BITS_ARB 0x2017
+#define WGL_GREEN_BITS_EXT 0x2017
+#define WGL_GREEN_SHIFT_ARB 0x2018
+#define WGL_GREEN_SHIFT_EXT 0x2018
+#define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002
+#define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001
+#define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
+#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030
+#define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030
+#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E
+#define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E
+#define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F
+#define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F
+#define WGL_MIPMAP_LEVEL_ARB 0x207B
+#define WGL_MIPMAP_TEXTURE_ARB 0x2074
+#define WGL_NEED_PALETTE_ARB 0x2004
+#define WGL_NEED_PALETTE_EXT 0x2004
+#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
+#define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005
+#define WGL_NO_ACCELERATION_ARB 0x2025
+#define WGL_NO_ACCELERATION_EXT 0x2025
+#define WGL_NO_RESET_NOTIFICATION_ARB 0x8261
+#define WGL_NO_TEXTURE_ARB 0x2077
+#define WGL_NUMBER_OVERLAYS_ARB 0x2008
+#define WGL_NUMBER_OVERLAYS_EXT 0x2008
+#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
+#define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000
+#define WGL_NUMBER_UNDERLAYS_ARB 0x2009
+#define WGL_NUMBER_UNDERLAYS_EXT 0x2009
+#define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
+#define WGL_NUM_VIDEO_SLOTS_NV 0x20F0
+#define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032
+#define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031
+#define WGL_PBUFFER_HEIGHT_ARB 0x2035
+#define WGL_PBUFFER_HEIGHT_EXT 0x2035
+#define WGL_PBUFFER_LARGEST_ARB 0x2033
+#define WGL_PBUFFER_LARGEST_EXT 0x2033
+#define WGL_PBUFFER_LOST_ARB 0x2036
+#define WGL_PBUFFER_WIDTH_ARB 0x2034
+#define WGL_PBUFFER_WIDTH_EXT 0x2034
+#define WGL_PIXEL_TYPE_ARB 0x2013
+#define WGL_PIXEL_TYPE_EXT 0x2013
+#define WGL_RED_BITS_ARB 0x2015
+#define WGL_RED_BITS_EXT 0x2015
+#define WGL_RED_SHIFT_ARB 0x2016
+#define WGL_RED_SHIFT_EXT 0x2016
+#define WGL_SAMPLES_3DFX 0x2061
+#define WGL_SAMPLES_ARB 0x2042
+#define WGL_SAMPLES_EXT 0x2042
+#define WGL_SAMPLE_BUFFERS_3DFX 0x2060
+#define WGL_SAMPLE_BUFFERS_ARB 0x2041
+#define WGL_SAMPLE_BUFFERS_EXT 0x2041
+#define WGL_SHARE_ACCUM_ARB 0x200E
+#define WGL_SHARE_ACCUM_EXT 0x200E
+#define WGL_SHARE_DEPTH_ARB 0x200C
+#define WGL_SHARE_DEPTH_EXT 0x200C
+#define WGL_SHARE_STENCIL_ARB 0x200D
+#define WGL_SHARE_STENCIL_EXT 0x200D
+#define WGL_STENCIL_BITS_ARB 0x2023
+#define WGL_STENCIL_BITS_EXT 0x2023
+#define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008
+#define WGL_STEREO_ARB 0x2012
+#define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056
+#define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055
+#define WGL_STEREO_EXT 0x2012
+#define WGL_STEREO_POLARITY_INVERT_3DL 0x2058
+#define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057
+#define WGL_SUPPORT_GDI_ARB 0x200F
+#define WGL_SUPPORT_GDI_EXT 0x200F
+#define WGL_SUPPORT_OPENGL_ARB 0x2010
+#define WGL_SUPPORT_OPENGL_EXT 0x2010
+#define WGL_SWAP_COPY_ARB 0x2029
+#define WGL_SWAP_COPY_EXT 0x2029
+#define WGL_SWAP_EXCHANGE_ARB 0x2028
+#define WGL_SWAP_EXCHANGE_EXT 0x2028
+#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
+#define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006
+#define WGL_SWAP_MAIN_PLANE 0x00000001
+#define WGL_SWAP_METHOD_ARB 0x2007
+#define WGL_SWAP_METHOD_EXT 0x2007
+#define WGL_SWAP_OVERLAY1 0x00000002
+#define WGL_SWAP_OVERLAY10 0x00000400
+#define WGL_SWAP_OVERLAY11 0x00000800
+#define WGL_SWAP_OVERLAY12 0x00001000
+#define WGL_SWAP_OVERLAY13 0x00002000
+#define WGL_SWAP_OVERLAY14 0x00004000
+#define WGL_SWAP_OVERLAY15 0x00008000
+#define WGL_SWAP_OVERLAY2 0x00000004
+#define WGL_SWAP_OVERLAY3 0x00000008
+#define WGL_SWAP_OVERLAY4 0x00000010
+#define WGL_SWAP_OVERLAY5 0x00000020
+#define WGL_SWAP_OVERLAY6 0x00000040
+#define WGL_SWAP_OVERLAY7 0x00000080
+#define WGL_SWAP_OVERLAY8 0x00000100
+#define WGL_SWAP_OVERLAY9 0x00000200
+#define WGL_SWAP_UNDEFINED_ARB 0x202A
+#define WGL_SWAP_UNDEFINED_EXT 0x202A
+#define WGL_SWAP_UNDERLAY1 0x00010000
+#define WGL_SWAP_UNDERLAY10 0x02000000
+#define WGL_SWAP_UNDERLAY11 0x04000000
+#define WGL_SWAP_UNDERLAY12 0x08000000
+#define WGL_SWAP_UNDERLAY13 0x10000000
+#define WGL_SWAP_UNDERLAY14 0x20000000
+#define WGL_SWAP_UNDERLAY15 0x40000000
+#define WGL_SWAP_UNDERLAY2 0x00020000
+#define WGL_SWAP_UNDERLAY3 0x00040000
+#define WGL_SWAP_UNDERLAY4 0x00080000
+#define WGL_SWAP_UNDERLAY5 0x00100000
+#define WGL_SWAP_UNDERLAY6 0x00200000
+#define WGL_SWAP_UNDERLAY7 0x00400000
+#define WGL_SWAP_UNDERLAY8 0x00800000
+#define WGL_SWAP_UNDERLAY9 0x01000000
+#define WGL_TEXTURE_1D_ARB 0x2079
+#define WGL_TEXTURE_2D_ARB 0x207A
+#define WGL_TEXTURE_CUBE_MAP_ARB 0x2078
+#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E
+#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080
+#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082
+#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D
+#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F
+#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081
+#define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6
+#define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8
+#define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7
+#define WGL_TEXTURE_FLOAT_RG_NV 0x20B6
+#define WGL_TEXTURE_FLOAT_R_NV 0x20B5
+#define WGL_TEXTURE_FORMAT_ARB 0x2072
+#define WGL_TEXTURE_RECTANGLE_ATI 0x21A5
+#define WGL_TEXTURE_RECTANGLE_NV 0x20A2
+#define WGL_TEXTURE_RGBA_ARB 0x2076
+#define WGL_TEXTURE_RGB_ARB 0x2075
+#define WGL_TEXTURE_TARGET_ARB 0x2073
+#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
+#define WGL_TRANSPARENT_ARB 0x200A
+#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
+#define WGL_TRANSPARENT_EXT 0x200A
+#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
+#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
+#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
+#define WGL_TRANSPARENT_VALUE_EXT 0x200B
+#define WGL_TYPE_COLORINDEX_ARB 0x202C
+#define WGL_TYPE_COLORINDEX_EXT 0x202C
+#define WGL_TYPE_RGBA_ARB 0x202B
+#define WGL_TYPE_RGBA_EXT 0x202B
+#define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0
+#define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0
+#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8
+#define WGL_UNIQUE_ID_NV 0x20CE
+#define WGL_VIDEO_OUT_ALPHA_NV 0x20C4
+#define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
+#define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
+#define WGL_VIDEO_OUT_COLOR_NV 0x20C3
+#define WGL_VIDEO_OUT_DEPTH_NV 0x20C5
+#define WGL_VIDEO_OUT_FIELD_1 0x20C9
+#define WGL_VIDEO_OUT_FIELD_2 0x20CA
+#define WGL_VIDEO_OUT_FRAME 0x20C8
+#define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB
+#define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC
+
+struct _GPU_DEVICE {
+ DWORD cb;
+ CHAR DeviceName[32];
+ CHAR DeviceString[128];
+ DWORD Flags;
+ RECT rcVirtualScreen;
+};
+DECLARE_HANDLE(HPBUFFERARB);
+DECLARE_HANDLE(HPBUFFEREXT);
+DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV);
+DECLARE_HANDLE(HPVIDEODEV);
+DECLARE_HANDLE(HPGPUNV);
+DECLARE_HANDLE(HGPUNV);
+DECLARE_HANDLE(HVIDEOINPUTDEVICENV);
+typedef struct _GPU_DEVICE GPU_DEVICE;
+typedef struct _GPU_DEVICE *PGPU_DEVICE;
+
+#define WGL_VERSION_1_0 1
+GLAD_API_CALL int GLAD_WGL_VERSION_1_0;
+#define WGL_3DFX_multisample 1
+GLAD_API_CALL int GLAD_WGL_3DFX_multisample;
+#define WGL_3DL_stereo_control 1
+GLAD_API_CALL int GLAD_WGL_3DL_stereo_control;
+#define WGL_AMD_gpu_association 1
+GLAD_API_CALL int GLAD_WGL_AMD_gpu_association;
+#define WGL_ARB_buffer_region 1
+GLAD_API_CALL int GLAD_WGL_ARB_buffer_region;
+#define WGL_ARB_context_flush_control 1
+GLAD_API_CALL int GLAD_WGL_ARB_context_flush_control;
+#define WGL_ARB_create_context 1
+GLAD_API_CALL int GLAD_WGL_ARB_create_context;
+#define WGL_ARB_create_context_no_error 1
+GLAD_API_CALL int GLAD_WGL_ARB_create_context_no_error;
+#define WGL_ARB_create_context_profile 1
+GLAD_API_CALL int GLAD_WGL_ARB_create_context_profile;
+#define WGL_ARB_create_context_robustness 1
+GLAD_API_CALL int GLAD_WGL_ARB_create_context_robustness;
+#define WGL_ARB_extensions_string 1
+GLAD_API_CALL int GLAD_WGL_ARB_extensions_string;
+#define WGL_ARB_framebuffer_sRGB 1
+GLAD_API_CALL int GLAD_WGL_ARB_framebuffer_sRGB;
+#define WGL_ARB_make_current_read 1
+GLAD_API_CALL int GLAD_WGL_ARB_make_current_read;
+#define WGL_ARB_multisample 1
+GLAD_API_CALL int GLAD_WGL_ARB_multisample;
+#define WGL_ARB_pbuffer 1
+GLAD_API_CALL int GLAD_WGL_ARB_pbuffer;
+#define WGL_ARB_pixel_format 1
+GLAD_API_CALL int GLAD_WGL_ARB_pixel_format;
+#define WGL_ARB_pixel_format_float 1
+GLAD_API_CALL int GLAD_WGL_ARB_pixel_format_float;
+#define WGL_ARB_render_texture 1
+GLAD_API_CALL int GLAD_WGL_ARB_render_texture;
+#define WGL_ARB_robustness_application_isolation 1
+GLAD_API_CALL int GLAD_WGL_ARB_robustness_application_isolation;
+#define WGL_ARB_robustness_share_group_isolation 1
+GLAD_API_CALL int GLAD_WGL_ARB_robustness_share_group_isolation;
+#define WGL_ATI_pixel_format_float 1
+GLAD_API_CALL int GLAD_WGL_ATI_pixel_format_float;
+#define WGL_ATI_render_texture_rectangle 1
+GLAD_API_CALL int GLAD_WGL_ATI_render_texture_rectangle;
+#define WGL_EXT_colorspace 1
+GLAD_API_CALL int GLAD_WGL_EXT_colorspace;
+#define WGL_EXT_create_context_es2_profile 1
+GLAD_API_CALL int GLAD_WGL_EXT_create_context_es2_profile;
+#define WGL_EXT_create_context_es_profile 1
+GLAD_API_CALL int GLAD_WGL_EXT_create_context_es_profile;
+#define WGL_EXT_depth_float 1
+GLAD_API_CALL int GLAD_WGL_EXT_depth_float;
+#define WGL_EXT_display_color_table 1
+GLAD_API_CALL int GLAD_WGL_EXT_display_color_table;
+#define WGL_EXT_extensions_string 1
+GLAD_API_CALL int GLAD_WGL_EXT_extensions_string;
+#define WGL_EXT_framebuffer_sRGB 1
+GLAD_API_CALL int GLAD_WGL_EXT_framebuffer_sRGB;
+#define WGL_EXT_make_current_read 1
+GLAD_API_CALL int GLAD_WGL_EXT_make_current_read;
+#define WGL_EXT_multisample 1
+GLAD_API_CALL int GLAD_WGL_EXT_multisample;
+#define WGL_EXT_pbuffer 1
+GLAD_API_CALL int GLAD_WGL_EXT_pbuffer;
+#define WGL_EXT_pixel_format 1
+GLAD_API_CALL int GLAD_WGL_EXT_pixel_format;
+#define WGL_EXT_pixel_format_packed_float 1
+GLAD_API_CALL int GLAD_WGL_EXT_pixel_format_packed_float;
+#define WGL_EXT_swap_control 1
+GLAD_API_CALL int GLAD_WGL_EXT_swap_control;
+#define WGL_EXT_swap_control_tear 1
+GLAD_API_CALL int GLAD_WGL_EXT_swap_control_tear;
+#define WGL_I3D_digital_video_control 1
+GLAD_API_CALL int GLAD_WGL_I3D_digital_video_control;
+#define WGL_I3D_gamma 1
+GLAD_API_CALL int GLAD_WGL_I3D_gamma;
+#define WGL_I3D_genlock 1
+GLAD_API_CALL int GLAD_WGL_I3D_genlock;
+#define WGL_I3D_image_buffer 1
+GLAD_API_CALL int GLAD_WGL_I3D_image_buffer;
+#define WGL_I3D_swap_frame_lock 1
+GLAD_API_CALL int GLAD_WGL_I3D_swap_frame_lock;
+#define WGL_I3D_swap_frame_usage 1
+GLAD_API_CALL int GLAD_WGL_I3D_swap_frame_usage;
+#define WGL_NV_DX_interop 1
+GLAD_API_CALL int GLAD_WGL_NV_DX_interop;
+#define WGL_NV_DX_interop2 1
+GLAD_API_CALL int GLAD_WGL_NV_DX_interop2;
+#define WGL_NV_copy_image 1
+GLAD_API_CALL int GLAD_WGL_NV_copy_image;
+#define WGL_NV_delay_before_swap 1
+GLAD_API_CALL int GLAD_WGL_NV_delay_before_swap;
+#define WGL_NV_float_buffer 1
+GLAD_API_CALL int GLAD_WGL_NV_float_buffer;
+#define WGL_NV_gpu_affinity 1
+GLAD_API_CALL int GLAD_WGL_NV_gpu_affinity;
+#define WGL_NV_multigpu_context 1
+GLAD_API_CALL int GLAD_WGL_NV_multigpu_context;
+#define WGL_NV_multisample_coverage 1
+GLAD_API_CALL int GLAD_WGL_NV_multisample_coverage;
+#define WGL_NV_present_video 1
+GLAD_API_CALL int GLAD_WGL_NV_present_video;
+#define WGL_NV_render_depth_texture 1
+GLAD_API_CALL int GLAD_WGL_NV_render_depth_texture;
+#define WGL_NV_render_texture_rectangle 1
+GLAD_API_CALL int GLAD_WGL_NV_render_texture_rectangle;
+#define WGL_NV_swap_group 1
+GLAD_API_CALL int GLAD_WGL_NV_swap_group;
+#define WGL_NV_vertex_array_range 1
+GLAD_API_CALL int GLAD_WGL_NV_vertex_array_range;
+#define WGL_NV_video_capture 1
+GLAD_API_CALL int GLAD_WGL_NV_video_capture;
+#define WGL_NV_video_output 1
+GLAD_API_CALL int GLAD_WGL_NV_video_output;
+#define WGL_OML_sync_control 1
+GLAD_API_CALL int GLAD_WGL_OML_sync_control;
+
+typedef int(GLAD_API_PTR *PFNCHOOSEPIXELFORMATPROC)(HDC hDc, const PIXELFORMATDESCRIPTOR *pPfd);
+typedef int(GLAD_API_PTR *PFNDESCRIBEPIXELFORMATPROC)(HDC hdc, int ipfd, UINT cjpfd,
+ PIXELFORMATDESCRIPTOR *ppfd);
+typedef UINT(GLAD_API_PTR *PFNGETENHMETAFILEPIXELFORMATPROC)(HENHMETAFILE hemf, UINT cbBuffer,
+ PIXELFORMATDESCRIPTOR *ppfd);
+typedef int(GLAD_API_PTR *PFNGETPIXELFORMATPROC)(HDC hdc);
+typedef BOOL(GLAD_API_PTR *PFNSETPIXELFORMATPROC)(HDC hdc, int ipfd,
+ const PIXELFORMATDESCRIPTOR *ppfd);
+typedef BOOL(GLAD_API_PTR *PFNSWAPBUFFERSPROC)(HDC hdc);
+typedef void *(GLAD_API_PTR *PFNWGLALLOCATEMEMORYNVPROC)(GLsizei size, GLfloat readfreq,
+ GLfloat writefreq, GLfloat priority);
+typedef BOOL(GLAD_API_PTR *PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC)(HDC hDC, const HANDLE *pEvent,
+ const LPVOID *pAddress,
+ const DWORD *pSize, UINT count);
+typedef BOOL(GLAD_API_PTR *PFNWGLBEGINFRAMETRACKINGI3DPROC)(void);
+typedef GLboolean(GLAD_API_PTR *PFNWGLBINDDISPLAYCOLORTABLEEXTPROC)(GLushort id);
+typedef BOOL(GLAD_API_PTR *PFNWGLBINDSWAPBARRIERNVPROC)(GLuint group, GLuint barrier);
+typedef BOOL(GLAD_API_PTR *PFNWGLBINDTEXIMAGEARBPROC)(HPBUFFERARB hPbuffer, int iBuffer);
+typedef BOOL(GLAD_API_PTR *PFNWGLBINDVIDEOCAPTUREDEVICENVPROC)(UINT uVideoSlot,
+ HVIDEOINPUTDEVICENV hDevice);
+typedef BOOL(GLAD_API_PTR *PFNWGLBINDVIDEODEVICENVPROC)(HDC hDc, unsigned int uVideoSlot,
+ HVIDEOOUTPUTDEVICENV hVideoDevice,
+ const int *piAttribList);
+typedef BOOL(GLAD_API_PTR *PFNWGLBINDVIDEOIMAGENVPROC)(HPVIDEODEV hVideoDevice,
+ HPBUFFERARB hPbuffer, int iVideoBuffer);
+typedef VOID(GLAD_API_PTR *PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC)(
+ HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0,
+ GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+typedef BOOL(GLAD_API_PTR *PFNWGLCHOOSEPIXELFORMATARBPROC)(HDC hdc, const int *piAttribIList,
+ const FLOAT *pfAttribFList,
+ UINT nMaxFormats, int *piFormats,
+ UINT *nNumFormats);
+typedef BOOL(GLAD_API_PTR *PFNWGLCHOOSEPIXELFORMATEXTPROC)(HDC hdc, const int *piAttribIList,
+ const FLOAT *pfAttribFList,
+ UINT nMaxFormats, int *piFormats,
+ UINT *nNumFormats);
+typedef BOOL(GLAD_API_PTR *PFNWGLCOPYCONTEXTPROC)(HGLRC hglrcSrc, HGLRC hglrcDst, UINT mask);
+typedef BOOL(GLAD_API_PTR *PFNWGLCOPYIMAGESUBDATANVPROC)(
+ HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY,
+ GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX,
+ GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
+typedef HDC(GLAD_API_PTR *PFNWGLCREATEAFFINITYDCNVPROC)(const HGPUNV *phGpuList);
+typedef HGLRC(GLAD_API_PTR *PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC)(UINT id);
+typedef HGLRC(GLAD_API_PTR *PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC)(UINT id,
+ HGLRC hShareContext,
+ const int *attribList);
+typedef HANDLE(GLAD_API_PTR *PFNWGLCREATEBUFFERREGIONARBPROC)(HDC hDC, int iLayerPlane, UINT uType);
+typedef HGLRC(GLAD_API_PTR *PFNWGLCREATECONTEXTPROC)(HDC hDc);
+typedef HGLRC(GLAD_API_PTR *PFNWGLCREATECONTEXTATTRIBSARBPROC)(HDC hDC, HGLRC hShareContext,
+ const int *attribList);
+typedef GLboolean(GLAD_API_PTR *PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC)(GLushort id);
+typedef LPVOID(GLAD_API_PTR *PFNWGLCREATEIMAGEBUFFERI3DPROC)(HDC hDC, DWORD dwSize, UINT uFlags);
+typedef HGLRC(GLAD_API_PTR *PFNWGLCREATELAYERCONTEXTPROC)(HDC hDc, int level);
+typedef HPBUFFERARB(GLAD_API_PTR *PFNWGLCREATEPBUFFERARBPROC)(HDC hDC, int iPixelFormat, int iWidth,
+ int iHeight, const int *piAttribList);
+typedef HPBUFFEREXT(GLAD_API_PTR *PFNWGLCREATEPBUFFEREXTPROC)(HDC hDC, int iPixelFormat, int iWidth,
+ int iHeight, const int *piAttribList);
+typedef BOOL(GLAD_API_PTR *PFNWGLDXCLOSEDEVICENVPROC)(HANDLE hDevice);
+typedef BOOL(GLAD_API_PTR *PFNWGLDXLOCKOBJECTSNVPROC)(HANDLE hDevice, GLint count,
+ HANDLE *hObjects);
+typedef BOOL(GLAD_API_PTR *PFNWGLDXOBJECTACCESSNVPROC)(HANDLE hObject, GLenum access);
+typedef HANDLE(GLAD_API_PTR *PFNWGLDXOPENDEVICENVPROC)(void *dxDevice);
+typedef HANDLE(GLAD_API_PTR *PFNWGLDXREGISTEROBJECTNVPROC)(HANDLE hDevice, void *dxObject,
+ GLuint name, GLenum type, GLenum access);
+typedef BOOL(GLAD_API_PTR *PFNWGLDXSETRESOURCESHAREHANDLENVPROC)(void *dxObject,
+ HANDLE shareHandle);
+typedef BOOL(GLAD_API_PTR *PFNWGLDXUNLOCKOBJECTSNVPROC)(HANDLE hDevice, GLint count,
+ HANDLE *hObjects);
+typedef BOOL(GLAD_API_PTR *PFNWGLDXUNREGISTEROBJECTNVPROC)(HANDLE hDevice, HANDLE hObject);
+typedef BOOL(GLAD_API_PTR *PFNWGLDELAYBEFORESWAPNVPROC)(HDC hDC, GLfloat seconds);
+typedef BOOL(GLAD_API_PTR *PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC)(HGLRC hglrc);
+typedef VOID(GLAD_API_PTR *PFNWGLDELETEBUFFERREGIONARBPROC)(HANDLE hRegion);
+typedef BOOL(GLAD_API_PTR *PFNWGLDELETECONTEXTPROC)(HGLRC oldContext);
+typedef BOOL(GLAD_API_PTR *PFNWGLDELETEDCNVPROC)(HDC hdc);
+typedef BOOL(GLAD_API_PTR *PFNWGLDESCRIBELAYERPLANEPROC)(HDC hDc, int pixelFormat, int layerPlane,
+ UINT nBytes, LAYERPLANEDESCRIPTOR *plpd);
+typedef VOID(GLAD_API_PTR *PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC)(GLushort id);
+typedef BOOL(GLAD_API_PTR *PFNWGLDESTROYIMAGEBUFFERI3DPROC)(HDC hDC, LPVOID pAddress);
+typedef BOOL(GLAD_API_PTR *PFNWGLDESTROYPBUFFERARBPROC)(HPBUFFERARB hPbuffer);
+typedef BOOL(GLAD_API_PTR *PFNWGLDESTROYPBUFFEREXTPROC)(HPBUFFEREXT hPbuffer);
+typedef BOOL(GLAD_API_PTR *PFNWGLDISABLEFRAMELOCKI3DPROC)(void);
+typedef BOOL(GLAD_API_PTR *PFNWGLDISABLEGENLOCKI3DPROC)(HDC hDC);
+typedef BOOL(GLAD_API_PTR *PFNWGLENABLEFRAMELOCKI3DPROC)(void);
+typedef BOOL(GLAD_API_PTR *PFNWGLENABLEGENLOCKI3DPROC)(HDC hDC);
+typedef BOOL(GLAD_API_PTR *PFNWGLENDFRAMETRACKINGI3DPROC)(void);
+typedef BOOL(GLAD_API_PTR *PFNWGLENUMGPUDEVICESNVPROC)(HGPUNV hGpu, UINT iDeviceIndex,
+ PGPU_DEVICE lpGpuDevice);
+typedef BOOL(GLAD_API_PTR *PFNWGLENUMGPUSFROMAFFINITYDCNVPROC)(HDC hAffinityDC, UINT iGpuIndex,
+ HGPUNV *hGpu);
+typedef BOOL(GLAD_API_PTR *PFNWGLENUMGPUSNVPROC)(UINT iGpuIndex, HGPUNV *phGpu);
+typedef UINT(GLAD_API_PTR *PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC)(
+ HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList);
+typedef int(GLAD_API_PTR *PFNWGLENUMERATEVIDEODEVICESNVPROC)(HDC hDc,
+ HVIDEOOUTPUTDEVICENV *phDeviceList);
+typedef void(GLAD_API_PTR *PFNWGLFREEMEMORYNVPROC)(void *pointer);
+typedef BOOL(GLAD_API_PTR *PFNWGLGENLOCKSAMPLERATEI3DPROC)(HDC hDC, UINT uRate);
+typedef BOOL(GLAD_API_PTR *PFNWGLGENLOCKSOURCEDELAYI3DPROC)(HDC hDC, UINT uDelay);
+typedef BOOL(GLAD_API_PTR *PFNWGLGENLOCKSOURCEEDGEI3DPROC)(HDC hDC, UINT uEdge);
+typedef BOOL(GLAD_API_PTR *PFNWGLGENLOCKSOURCEI3DPROC)(HDC hDC, UINT uSource);
+typedef UINT(GLAD_API_PTR *PFNWGLGETCONTEXTGPUIDAMDPROC)(HGLRC hglrc);
+typedef HGLRC(GLAD_API_PTR *PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC)(void);
+typedef HGLRC(GLAD_API_PTR *PFNWGLGETCURRENTCONTEXTPROC)(void);
+typedef HDC(GLAD_API_PTR *PFNWGLGETCURRENTDCPROC)(void);
+typedef HDC(GLAD_API_PTR *PFNWGLGETCURRENTREADDCARBPROC)(void);
+typedef HDC(GLAD_API_PTR *PFNWGLGETCURRENTREADDCEXTPROC)(void);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC)(HDC hDC, int iAttribute,
+ int *piValue);
+typedef const char *(GLAD_API_PTR *PFNWGLGETEXTENSIONSSTRINGARBPROC)(HDC hdc);
+typedef const char *(GLAD_API_PTR *PFNWGLGETEXTENSIONSSTRINGEXTPROC)(void);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETFRAMEUSAGEI3DPROC)(float *pUsage);
+typedef UINT(GLAD_API_PTR *PFNWGLGETGPUIDSAMDPROC)(UINT maxCount, UINT *ids);
+typedef INT(GLAD_API_PTR *PFNWGLGETGPUINFOAMDPROC)(UINT id, INT property, GLenum dataType,
+ UINT size, void *data);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETGAMMATABLEI3DPROC)(HDC hDC, int iEntries, USHORT *puRed,
+ USHORT *puGreen, USHORT *puBlue);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETGAMMATABLEPARAMETERSI3DPROC)(HDC hDC, int iAttribute,
+ int *piValue);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETGENLOCKSAMPLERATEI3DPROC)(HDC hDC, UINT *uRate);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETGENLOCKSOURCEDELAYI3DPROC)(HDC hDC, UINT *uDelay);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETGENLOCKSOURCEEDGEI3DPROC)(HDC hDC, UINT *uEdge);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETGENLOCKSOURCEI3DPROC)(HDC hDC, UINT *uSource);
+typedef int(GLAD_API_PTR *PFNWGLGETLAYERPALETTEENTRIESPROC)(HDC hdc, int iLayerPlane, int iStart,
+ int cEntries, COLORREF *pcr);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETMSCRATEOMLPROC)(HDC hdc, INT32 *numerator, INT32 *denominator);
+typedef HDC(GLAD_API_PTR *PFNWGLGETPBUFFERDCARBPROC)(HPBUFFERARB hPbuffer);
+typedef HDC(GLAD_API_PTR *PFNWGLGETPBUFFERDCEXTPROC)(HPBUFFEREXT hPbuffer);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETPIXELFORMATATTRIBFVARBPROC)(HDC hdc, int iPixelFormat,
+ int iLayerPlane, UINT nAttributes,
+ const int *piAttributes,
+ FLOAT *pfValues);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETPIXELFORMATATTRIBFVEXTPROC)(HDC hdc, int iPixelFormat,
+ int iLayerPlane, UINT nAttributes,
+ int *piAttributes, FLOAT *pfValues);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETPIXELFORMATATTRIBIVARBPROC)(HDC hdc, int iPixelFormat,
+ int iLayerPlane, UINT nAttributes,
+ const int *piAttributes,
+ int *piValues);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETPIXELFORMATATTRIBIVEXTPROC)(HDC hdc, int iPixelFormat,
+ int iLayerPlane, UINT nAttributes,
+ int *piAttributes, int *piValues);
+typedef PROC(GLAD_API_PTR *PFNWGLGETPROCADDRESSPROC)(LPCSTR lpszProc);
+typedef int(GLAD_API_PTR *PFNWGLGETSWAPINTERVALEXTPROC)(void);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETSYNCVALUESOMLPROC)(HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETVIDEODEVICENVPROC)(HDC hDC, int numDevices,
+ HPVIDEODEV *hVideoDevice);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETVIDEOINFONVPROC)(HPVIDEODEV hpVideoDevice,
+ unsigned long *pulCounterOutputPbuffer,
+ unsigned long *pulCounterOutputVideo);
+typedef BOOL(GLAD_API_PTR *PFNWGLISENABLEDFRAMELOCKI3DPROC)(BOOL *pFlag);
+typedef BOOL(GLAD_API_PTR *PFNWGLISENABLEDGENLOCKI3DPROC)(HDC hDC, BOOL *pFlag);
+typedef BOOL(GLAD_API_PTR *PFNWGLJOINSWAPGROUPNVPROC)(HDC hDC, GLuint group);
+typedef GLboolean(GLAD_API_PTR *PFNWGLLOADDISPLAYCOLORTABLEEXTPROC)(const GLushort *table,
+ GLuint length);
+typedef BOOL(GLAD_API_PTR *PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC)(HDC hDc,
+ HVIDEOINPUTDEVICENV hDevice);
+typedef BOOL(GLAD_API_PTR *PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC)(HGLRC hglrc);
+typedef BOOL(GLAD_API_PTR *PFNWGLMAKECONTEXTCURRENTARBPROC)(HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+typedef BOOL(GLAD_API_PTR *PFNWGLMAKECONTEXTCURRENTEXTPROC)(HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+typedef BOOL(GLAD_API_PTR *PFNWGLMAKECURRENTPROC)(HDC hDc, HGLRC newContext);
+typedef BOOL(GLAD_API_PTR *PFNWGLQUERYCURRENTCONTEXTNVPROC)(int iAttribute, int *piValue);
+typedef BOOL(GLAD_API_PTR *PFNWGLQUERYFRAMECOUNTNVPROC)(HDC hDC, GLuint *count);
+typedef BOOL(GLAD_API_PTR *PFNWGLQUERYFRAMELOCKMASTERI3DPROC)(BOOL *pFlag);
+typedef BOOL(GLAD_API_PTR *PFNWGLQUERYFRAMETRACKINGI3DPROC)(DWORD *pFrameCount,
+ DWORD *pMissedFrames,
+ float *pLastMissedUsage);
+typedef BOOL(GLAD_API_PTR *PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC)(HDC hDC, UINT *uMaxLineDelay,
+ UINT *uMaxPixelDelay);
+typedef BOOL(GLAD_API_PTR *PFNWGLQUERYMAXSWAPGROUPSNVPROC)(HDC hDC, GLuint *maxGroups,
+ GLuint *maxBarriers);
+typedef BOOL(GLAD_API_PTR *PFNWGLQUERYPBUFFERARBPROC)(HPBUFFERARB hPbuffer, int iAttribute,
+ int *piValue);
+typedef BOOL(GLAD_API_PTR *PFNWGLQUERYPBUFFEREXTPROC)(HPBUFFEREXT hPbuffer, int iAttribute,
+ int *piValue);
+typedef BOOL(GLAD_API_PTR *PFNWGLQUERYSWAPGROUPNVPROC)(HDC hDC, GLuint *group, GLuint *barrier);
+typedef BOOL(GLAD_API_PTR *PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC)(HDC hDc,
+ HVIDEOINPUTDEVICENV hDevice,
+ int iAttribute, int *piValue);
+typedef BOOL(GLAD_API_PTR *PFNWGLREALIZELAYERPALETTEPROC)(HDC hdc, int iLayerPlane, BOOL bRealize);
+typedef BOOL(GLAD_API_PTR *PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC)(HDC hDC, const LPVOID *pAddress,
+ UINT count);
+typedef int(GLAD_API_PTR *PFNWGLRELEASEPBUFFERDCARBPROC)(HPBUFFERARB hPbuffer, HDC hDC);
+typedef int(GLAD_API_PTR *PFNWGLRELEASEPBUFFERDCEXTPROC)(HPBUFFEREXT hPbuffer, HDC hDC);
+typedef BOOL(GLAD_API_PTR *PFNWGLRELEASETEXIMAGEARBPROC)(HPBUFFERARB hPbuffer, int iBuffer);
+typedef BOOL(GLAD_API_PTR *PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC)(HDC hDc,
+ HVIDEOINPUTDEVICENV hDevice);
+typedef BOOL(GLAD_API_PTR *PFNWGLRELEASEVIDEODEVICENVPROC)(HPVIDEODEV hVideoDevice);
+typedef BOOL(GLAD_API_PTR *PFNWGLRELEASEVIDEOIMAGENVPROC)(HPBUFFERARB hPbuffer, int iVideoBuffer);
+typedef BOOL(GLAD_API_PTR *PFNWGLRESETFRAMECOUNTNVPROC)(HDC hDC);
+typedef BOOL(GLAD_API_PTR *PFNWGLRESTOREBUFFERREGIONARBPROC)(HANDLE hRegion, int x, int y,
+ int width, int height, int xSrc,
+ int ySrc);
+typedef BOOL(GLAD_API_PTR *PFNWGLSAVEBUFFERREGIONARBPROC)(HANDLE hRegion, int x, int y, int width,
+ int height);
+typedef BOOL(GLAD_API_PTR *PFNWGLSENDPBUFFERTOVIDEONVPROC)(HPBUFFERARB hPbuffer, int iBufferType,
+ unsigned long *pulCounterPbuffer,
+ BOOL bBlock);
+typedef BOOL(GLAD_API_PTR *PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC)(HDC hDC, int iAttribute,
+ const int *piValue);
+typedef BOOL(GLAD_API_PTR *PFNWGLSETGAMMATABLEI3DPROC)(HDC hDC, int iEntries, const USHORT *puRed,
+ const USHORT *puGreen, const USHORT *puBlue);
+typedef BOOL(GLAD_API_PTR *PFNWGLSETGAMMATABLEPARAMETERSI3DPROC)(HDC hDC, int iAttribute,
+ const int *piValue);
+typedef int(GLAD_API_PTR *PFNWGLSETLAYERPALETTEENTRIESPROC)(HDC hdc, int iLayerPlane, int iStart,
+ int cEntries, const COLORREF *pcr);
+typedef BOOL(GLAD_API_PTR *PFNWGLSETPBUFFERATTRIBARBPROC)(HPBUFFERARB hPbuffer,
+ const int *piAttribList);
+typedef BOOL(GLAD_API_PTR *PFNWGLSETSTEREOEMITTERSTATE3DLPROC)(HDC hDC, UINT uState);
+typedef BOOL(GLAD_API_PTR *PFNWGLSHARELISTSPROC)(HGLRC hrcSrvShare, HGLRC hrcSrvSource);
+typedef INT64(GLAD_API_PTR *PFNWGLSWAPBUFFERSMSCOMLPROC)(HDC hdc, INT64 target_msc, INT64 divisor,
+ INT64 remainder);
+typedef BOOL(GLAD_API_PTR *PFNWGLSWAPINTERVALEXTPROC)(int interval);
+typedef BOOL(GLAD_API_PTR *PFNWGLSWAPLAYERBUFFERSPROC)(HDC hdc, UINT fuFlags);
+typedef INT64(GLAD_API_PTR *PFNWGLSWAPLAYERBUFFERSMSCOMLPROC)(HDC hdc, INT fuPlanes,
+ INT64 target_msc, INT64 divisor,
+ INT64 remainder);
+typedef BOOL(GLAD_API_PTR *PFNWGLUSEFONTBITMAPSPROC)(HDC hDC, DWORD first, DWORD count,
+ DWORD listBase);
+typedef BOOL(GLAD_API_PTR *PFNWGLUSEFONTBITMAPSAPROC)(HDC hDC, DWORD first, DWORD count,
+ DWORD listBase);
+typedef BOOL(GLAD_API_PTR *PFNWGLUSEFONTBITMAPSWPROC)(HDC hDC, DWORD first, DWORD count,
+ DWORD listBase);
+typedef BOOL(GLAD_API_PTR *PFNWGLUSEFONTOUTLINESPROC)(HDC hDC, DWORD first, DWORD count,
+ DWORD listBase, FLOAT deviation,
+ FLOAT extrusion, int format,
+ LPGLYPHMETRICSFLOAT lpgmf);
+typedef BOOL(GLAD_API_PTR *PFNWGLUSEFONTOUTLINESAPROC)(HDC hDC, DWORD first, DWORD count,
+ DWORD listBase, FLOAT deviation,
+ FLOAT extrusion, int format,
+ LPGLYPHMETRICSFLOAT lpgmf);
+typedef BOOL(GLAD_API_PTR *PFNWGLUSEFONTOUTLINESWPROC)(HDC hDC, DWORD first, DWORD count,
+ DWORD listBase, FLOAT deviation,
+ FLOAT extrusion, int format,
+ LPGLYPHMETRICSFLOAT lpgmf);
+typedef BOOL(GLAD_API_PTR *PFNWGLWAITFORMSCOMLPROC)(HDC hdc, INT64 target_msc, INT64 divisor,
+ INT64 remainder, INT64 *ust, INT64 *msc,
+ INT64 *sbc);
+typedef BOOL(GLAD_API_PTR *PFNWGLWAITFORSBCOMLPROC)(HDC hdc, INT64 target_sbc, INT64 *ust,
+ INT64 *msc, INT64 *sbc);
+
+GLAD_API_CALL PFNWGLALLOCATEMEMORYNVPROC glad_wglAllocateMemoryNV;
+#define wglAllocateMemoryNV glad_wglAllocateMemoryNV
+GLAD_API_CALL PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC glad_wglAssociateImageBufferEventsI3D;
+#define wglAssociateImageBufferEventsI3D glad_wglAssociateImageBufferEventsI3D
+GLAD_API_CALL PFNWGLBEGINFRAMETRACKINGI3DPROC glad_wglBeginFrameTrackingI3D;
+#define wglBeginFrameTrackingI3D glad_wglBeginFrameTrackingI3D
+GLAD_API_CALL PFNWGLBINDDISPLAYCOLORTABLEEXTPROC glad_wglBindDisplayColorTableEXT;
+#define wglBindDisplayColorTableEXT glad_wglBindDisplayColorTableEXT
+GLAD_API_CALL PFNWGLBINDSWAPBARRIERNVPROC glad_wglBindSwapBarrierNV;
+#define wglBindSwapBarrierNV glad_wglBindSwapBarrierNV
+GLAD_API_CALL PFNWGLBINDTEXIMAGEARBPROC glad_wglBindTexImageARB;
+#define wglBindTexImageARB glad_wglBindTexImageARB
+GLAD_API_CALL PFNWGLBINDVIDEOCAPTUREDEVICENVPROC glad_wglBindVideoCaptureDeviceNV;
+#define wglBindVideoCaptureDeviceNV glad_wglBindVideoCaptureDeviceNV
+GLAD_API_CALL PFNWGLBINDVIDEODEVICENVPROC glad_wglBindVideoDeviceNV;
+#define wglBindVideoDeviceNV glad_wglBindVideoDeviceNV
+GLAD_API_CALL PFNWGLBINDVIDEOIMAGENVPROC glad_wglBindVideoImageNV;
+#define wglBindVideoImageNV glad_wglBindVideoImageNV
+GLAD_API_CALL PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC glad_wglBlitContextFramebufferAMD;
+#define wglBlitContextFramebufferAMD glad_wglBlitContextFramebufferAMD
+GLAD_API_CALL PFNWGLCHOOSEPIXELFORMATARBPROC glad_wglChoosePixelFormatARB;
+#define wglChoosePixelFormatARB glad_wglChoosePixelFormatARB
+GLAD_API_CALL PFNWGLCHOOSEPIXELFORMATEXTPROC glad_wglChoosePixelFormatEXT;
+#define wglChoosePixelFormatEXT glad_wglChoosePixelFormatEXT
+GLAD_API_CALL PFNWGLCOPYIMAGESUBDATANVPROC glad_wglCopyImageSubDataNV;
+#define wglCopyImageSubDataNV glad_wglCopyImageSubDataNV
+GLAD_API_CALL PFNWGLCREATEAFFINITYDCNVPROC glad_wglCreateAffinityDCNV;
+#define wglCreateAffinityDCNV glad_wglCreateAffinityDCNV
+GLAD_API_CALL PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC glad_wglCreateAssociatedContextAMD;
+#define wglCreateAssociatedContextAMD glad_wglCreateAssociatedContextAMD
+GLAD_API_CALL PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC glad_wglCreateAssociatedContextAttribsAMD;
+#define wglCreateAssociatedContextAttribsAMD glad_wglCreateAssociatedContextAttribsAMD
+GLAD_API_CALL PFNWGLCREATEBUFFERREGIONARBPROC glad_wglCreateBufferRegionARB;
+#define wglCreateBufferRegionARB glad_wglCreateBufferRegionARB
+GLAD_API_CALL PFNWGLCREATECONTEXTATTRIBSARBPROC glad_wglCreateContextAttribsARB;
+#define wglCreateContextAttribsARB glad_wglCreateContextAttribsARB
+GLAD_API_CALL PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC glad_wglCreateDisplayColorTableEXT;
+#define wglCreateDisplayColorTableEXT glad_wglCreateDisplayColorTableEXT
+GLAD_API_CALL PFNWGLCREATEIMAGEBUFFERI3DPROC glad_wglCreateImageBufferI3D;
+#define wglCreateImageBufferI3D glad_wglCreateImageBufferI3D
+GLAD_API_CALL PFNWGLCREATEPBUFFERARBPROC glad_wglCreatePbufferARB;
+#define wglCreatePbufferARB glad_wglCreatePbufferARB
+GLAD_API_CALL PFNWGLCREATEPBUFFEREXTPROC glad_wglCreatePbufferEXT;
+#define wglCreatePbufferEXT glad_wglCreatePbufferEXT
+GLAD_API_CALL PFNWGLDXCLOSEDEVICENVPROC glad_wglDXCloseDeviceNV;
+#define wglDXCloseDeviceNV glad_wglDXCloseDeviceNV
+GLAD_API_CALL PFNWGLDXLOCKOBJECTSNVPROC glad_wglDXLockObjectsNV;
+#define wglDXLockObjectsNV glad_wglDXLockObjectsNV
+GLAD_API_CALL PFNWGLDXOBJECTACCESSNVPROC glad_wglDXObjectAccessNV;
+#define wglDXObjectAccessNV glad_wglDXObjectAccessNV
+GLAD_API_CALL PFNWGLDXOPENDEVICENVPROC glad_wglDXOpenDeviceNV;
+#define wglDXOpenDeviceNV glad_wglDXOpenDeviceNV
+GLAD_API_CALL PFNWGLDXREGISTEROBJECTNVPROC glad_wglDXRegisterObjectNV;
+#define wglDXRegisterObjectNV glad_wglDXRegisterObjectNV
+GLAD_API_CALL PFNWGLDXSETRESOURCESHAREHANDLENVPROC glad_wglDXSetResourceShareHandleNV;
+#define wglDXSetResourceShareHandleNV glad_wglDXSetResourceShareHandleNV
+GLAD_API_CALL PFNWGLDXUNLOCKOBJECTSNVPROC glad_wglDXUnlockObjectsNV;
+#define wglDXUnlockObjectsNV glad_wglDXUnlockObjectsNV
+GLAD_API_CALL PFNWGLDXUNREGISTEROBJECTNVPROC glad_wglDXUnregisterObjectNV;
+#define wglDXUnregisterObjectNV glad_wglDXUnregisterObjectNV
+GLAD_API_CALL PFNWGLDELAYBEFORESWAPNVPROC glad_wglDelayBeforeSwapNV;
+#define wglDelayBeforeSwapNV glad_wglDelayBeforeSwapNV
+GLAD_API_CALL PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC glad_wglDeleteAssociatedContextAMD;
+#define wglDeleteAssociatedContextAMD glad_wglDeleteAssociatedContextAMD
+GLAD_API_CALL PFNWGLDELETEBUFFERREGIONARBPROC glad_wglDeleteBufferRegionARB;
+#define wglDeleteBufferRegionARB glad_wglDeleteBufferRegionARB
+GLAD_API_CALL PFNWGLDELETEDCNVPROC glad_wglDeleteDCNV;
+#define wglDeleteDCNV glad_wglDeleteDCNV
+GLAD_API_CALL PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC glad_wglDestroyDisplayColorTableEXT;
+#define wglDestroyDisplayColorTableEXT glad_wglDestroyDisplayColorTableEXT
+GLAD_API_CALL PFNWGLDESTROYIMAGEBUFFERI3DPROC glad_wglDestroyImageBufferI3D;
+#define wglDestroyImageBufferI3D glad_wglDestroyImageBufferI3D
+GLAD_API_CALL PFNWGLDESTROYPBUFFERARBPROC glad_wglDestroyPbufferARB;
+#define wglDestroyPbufferARB glad_wglDestroyPbufferARB
+GLAD_API_CALL PFNWGLDESTROYPBUFFEREXTPROC glad_wglDestroyPbufferEXT;
+#define wglDestroyPbufferEXT glad_wglDestroyPbufferEXT
+GLAD_API_CALL PFNWGLDISABLEFRAMELOCKI3DPROC glad_wglDisableFrameLockI3D;
+#define wglDisableFrameLockI3D glad_wglDisableFrameLockI3D
+GLAD_API_CALL PFNWGLDISABLEGENLOCKI3DPROC glad_wglDisableGenlockI3D;
+#define wglDisableGenlockI3D glad_wglDisableGenlockI3D
+GLAD_API_CALL PFNWGLENABLEFRAMELOCKI3DPROC glad_wglEnableFrameLockI3D;
+#define wglEnableFrameLockI3D glad_wglEnableFrameLockI3D
+GLAD_API_CALL PFNWGLENABLEGENLOCKI3DPROC glad_wglEnableGenlockI3D;
+#define wglEnableGenlockI3D glad_wglEnableGenlockI3D
+GLAD_API_CALL PFNWGLENDFRAMETRACKINGI3DPROC glad_wglEndFrameTrackingI3D;
+#define wglEndFrameTrackingI3D glad_wglEndFrameTrackingI3D
+GLAD_API_CALL PFNWGLENUMGPUDEVICESNVPROC glad_wglEnumGpuDevicesNV;
+#define wglEnumGpuDevicesNV glad_wglEnumGpuDevicesNV
+GLAD_API_CALL PFNWGLENUMGPUSFROMAFFINITYDCNVPROC glad_wglEnumGpusFromAffinityDCNV;
+#define wglEnumGpusFromAffinityDCNV glad_wglEnumGpusFromAffinityDCNV
+GLAD_API_CALL PFNWGLENUMGPUSNVPROC glad_wglEnumGpusNV;
+#define wglEnumGpusNV glad_wglEnumGpusNV
+GLAD_API_CALL PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC glad_wglEnumerateVideoCaptureDevicesNV;
+#define wglEnumerateVideoCaptureDevicesNV glad_wglEnumerateVideoCaptureDevicesNV
+GLAD_API_CALL PFNWGLENUMERATEVIDEODEVICESNVPROC glad_wglEnumerateVideoDevicesNV;
+#define wglEnumerateVideoDevicesNV glad_wglEnumerateVideoDevicesNV
+GLAD_API_CALL PFNWGLFREEMEMORYNVPROC glad_wglFreeMemoryNV;
+#define wglFreeMemoryNV glad_wglFreeMemoryNV
+GLAD_API_CALL PFNWGLGENLOCKSAMPLERATEI3DPROC glad_wglGenlockSampleRateI3D;
+#define wglGenlockSampleRateI3D glad_wglGenlockSampleRateI3D
+GLAD_API_CALL PFNWGLGENLOCKSOURCEDELAYI3DPROC glad_wglGenlockSourceDelayI3D;
+#define wglGenlockSourceDelayI3D glad_wglGenlockSourceDelayI3D
+GLAD_API_CALL PFNWGLGENLOCKSOURCEEDGEI3DPROC glad_wglGenlockSourceEdgeI3D;
+#define wglGenlockSourceEdgeI3D glad_wglGenlockSourceEdgeI3D
+GLAD_API_CALL PFNWGLGENLOCKSOURCEI3DPROC glad_wglGenlockSourceI3D;
+#define wglGenlockSourceI3D glad_wglGenlockSourceI3D
+GLAD_API_CALL PFNWGLGETCONTEXTGPUIDAMDPROC glad_wglGetContextGPUIDAMD;
+#define wglGetContextGPUIDAMD glad_wglGetContextGPUIDAMD
+GLAD_API_CALL PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC glad_wglGetCurrentAssociatedContextAMD;
+#define wglGetCurrentAssociatedContextAMD glad_wglGetCurrentAssociatedContextAMD
+GLAD_API_CALL PFNWGLGETCURRENTREADDCARBPROC glad_wglGetCurrentReadDCARB;
+#define wglGetCurrentReadDCARB glad_wglGetCurrentReadDCARB
+GLAD_API_CALL PFNWGLGETCURRENTREADDCEXTPROC glad_wglGetCurrentReadDCEXT;
+#define wglGetCurrentReadDCEXT glad_wglGetCurrentReadDCEXT
+GLAD_API_CALL PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC glad_wglGetDigitalVideoParametersI3D;
+#define wglGetDigitalVideoParametersI3D glad_wglGetDigitalVideoParametersI3D
+GLAD_API_CALL PFNWGLGETEXTENSIONSSTRINGARBPROC glad_wglGetExtensionsStringARB;
+#define wglGetExtensionsStringARB glad_wglGetExtensionsStringARB
+GLAD_API_CALL PFNWGLGETEXTENSIONSSTRINGEXTPROC glad_wglGetExtensionsStringEXT;
+#define wglGetExtensionsStringEXT glad_wglGetExtensionsStringEXT
+GLAD_API_CALL PFNWGLGETFRAMEUSAGEI3DPROC glad_wglGetFrameUsageI3D;
+#define wglGetFrameUsageI3D glad_wglGetFrameUsageI3D
+GLAD_API_CALL PFNWGLGETGPUIDSAMDPROC glad_wglGetGPUIDsAMD;
+#define wglGetGPUIDsAMD glad_wglGetGPUIDsAMD
+GLAD_API_CALL PFNWGLGETGPUINFOAMDPROC glad_wglGetGPUInfoAMD;
+#define wglGetGPUInfoAMD glad_wglGetGPUInfoAMD
+GLAD_API_CALL PFNWGLGETGAMMATABLEI3DPROC glad_wglGetGammaTableI3D;
+#define wglGetGammaTableI3D glad_wglGetGammaTableI3D
+GLAD_API_CALL PFNWGLGETGAMMATABLEPARAMETERSI3DPROC glad_wglGetGammaTableParametersI3D;
+#define wglGetGammaTableParametersI3D glad_wglGetGammaTableParametersI3D
+GLAD_API_CALL PFNWGLGETGENLOCKSAMPLERATEI3DPROC glad_wglGetGenlockSampleRateI3D;
+#define wglGetGenlockSampleRateI3D glad_wglGetGenlockSampleRateI3D
+GLAD_API_CALL PFNWGLGETGENLOCKSOURCEDELAYI3DPROC glad_wglGetGenlockSourceDelayI3D;
+#define wglGetGenlockSourceDelayI3D glad_wglGetGenlockSourceDelayI3D
+GLAD_API_CALL PFNWGLGETGENLOCKSOURCEEDGEI3DPROC glad_wglGetGenlockSourceEdgeI3D;
+#define wglGetGenlockSourceEdgeI3D glad_wglGetGenlockSourceEdgeI3D
+GLAD_API_CALL PFNWGLGETGENLOCKSOURCEI3DPROC glad_wglGetGenlockSourceI3D;
+#define wglGetGenlockSourceI3D glad_wglGetGenlockSourceI3D
+GLAD_API_CALL PFNWGLGETMSCRATEOMLPROC glad_wglGetMscRateOML;
+#define wglGetMscRateOML glad_wglGetMscRateOML
+GLAD_API_CALL PFNWGLGETPBUFFERDCARBPROC glad_wglGetPbufferDCARB;
+#define wglGetPbufferDCARB glad_wglGetPbufferDCARB
+GLAD_API_CALL PFNWGLGETPBUFFERDCEXTPROC glad_wglGetPbufferDCEXT;
+#define wglGetPbufferDCEXT glad_wglGetPbufferDCEXT
+GLAD_API_CALL PFNWGLGETPIXELFORMATATTRIBFVARBPROC glad_wglGetPixelFormatAttribfvARB;
+#define wglGetPixelFormatAttribfvARB glad_wglGetPixelFormatAttribfvARB
+GLAD_API_CALL PFNWGLGETPIXELFORMATATTRIBFVEXTPROC glad_wglGetPixelFormatAttribfvEXT;
+#define wglGetPixelFormatAttribfvEXT glad_wglGetPixelFormatAttribfvEXT
+GLAD_API_CALL PFNWGLGETPIXELFORMATATTRIBIVARBPROC glad_wglGetPixelFormatAttribivARB;
+#define wglGetPixelFormatAttribivARB glad_wglGetPixelFormatAttribivARB
+GLAD_API_CALL PFNWGLGETPIXELFORMATATTRIBIVEXTPROC glad_wglGetPixelFormatAttribivEXT;
+#define wglGetPixelFormatAttribivEXT glad_wglGetPixelFormatAttribivEXT
+GLAD_API_CALL PFNWGLGETSWAPINTERVALEXTPROC glad_wglGetSwapIntervalEXT;
+#define wglGetSwapIntervalEXT glad_wglGetSwapIntervalEXT
+GLAD_API_CALL PFNWGLGETSYNCVALUESOMLPROC glad_wglGetSyncValuesOML;
+#define wglGetSyncValuesOML glad_wglGetSyncValuesOML
+GLAD_API_CALL PFNWGLGETVIDEODEVICENVPROC glad_wglGetVideoDeviceNV;
+#define wglGetVideoDeviceNV glad_wglGetVideoDeviceNV
+GLAD_API_CALL PFNWGLGETVIDEOINFONVPROC glad_wglGetVideoInfoNV;
+#define wglGetVideoInfoNV glad_wglGetVideoInfoNV
+GLAD_API_CALL PFNWGLISENABLEDFRAMELOCKI3DPROC glad_wglIsEnabledFrameLockI3D;
+#define wglIsEnabledFrameLockI3D glad_wglIsEnabledFrameLockI3D
+GLAD_API_CALL PFNWGLISENABLEDGENLOCKI3DPROC glad_wglIsEnabledGenlockI3D;
+#define wglIsEnabledGenlockI3D glad_wglIsEnabledGenlockI3D
+GLAD_API_CALL PFNWGLJOINSWAPGROUPNVPROC glad_wglJoinSwapGroupNV;
+#define wglJoinSwapGroupNV glad_wglJoinSwapGroupNV
+GLAD_API_CALL PFNWGLLOADDISPLAYCOLORTABLEEXTPROC glad_wglLoadDisplayColorTableEXT;
+#define wglLoadDisplayColorTableEXT glad_wglLoadDisplayColorTableEXT
+GLAD_API_CALL PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC glad_wglLockVideoCaptureDeviceNV;
+#define wglLockVideoCaptureDeviceNV glad_wglLockVideoCaptureDeviceNV
+GLAD_API_CALL PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC glad_wglMakeAssociatedContextCurrentAMD;
+#define wglMakeAssociatedContextCurrentAMD glad_wglMakeAssociatedContextCurrentAMD
+GLAD_API_CALL PFNWGLMAKECONTEXTCURRENTARBPROC glad_wglMakeContextCurrentARB;
+#define wglMakeContextCurrentARB glad_wglMakeContextCurrentARB
+GLAD_API_CALL PFNWGLMAKECONTEXTCURRENTEXTPROC glad_wglMakeContextCurrentEXT;
+#define wglMakeContextCurrentEXT glad_wglMakeContextCurrentEXT
+GLAD_API_CALL PFNWGLQUERYCURRENTCONTEXTNVPROC glad_wglQueryCurrentContextNV;
+#define wglQueryCurrentContextNV glad_wglQueryCurrentContextNV
+GLAD_API_CALL PFNWGLQUERYFRAMECOUNTNVPROC glad_wglQueryFrameCountNV;
+#define wglQueryFrameCountNV glad_wglQueryFrameCountNV
+GLAD_API_CALL PFNWGLQUERYFRAMELOCKMASTERI3DPROC glad_wglQueryFrameLockMasterI3D;
+#define wglQueryFrameLockMasterI3D glad_wglQueryFrameLockMasterI3D
+GLAD_API_CALL PFNWGLQUERYFRAMETRACKINGI3DPROC glad_wglQueryFrameTrackingI3D;
+#define wglQueryFrameTrackingI3D glad_wglQueryFrameTrackingI3D
+GLAD_API_CALL PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC glad_wglQueryGenlockMaxSourceDelayI3D;
+#define wglQueryGenlockMaxSourceDelayI3D glad_wglQueryGenlockMaxSourceDelayI3D
+GLAD_API_CALL PFNWGLQUERYMAXSWAPGROUPSNVPROC glad_wglQueryMaxSwapGroupsNV;
+#define wglQueryMaxSwapGroupsNV glad_wglQueryMaxSwapGroupsNV
+GLAD_API_CALL PFNWGLQUERYPBUFFERARBPROC glad_wglQueryPbufferARB;
+#define wglQueryPbufferARB glad_wglQueryPbufferARB
+GLAD_API_CALL PFNWGLQUERYPBUFFEREXTPROC glad_wglQueryPbufferEXT;
+#define wglQueryPbufferEXT glad_wglQueryPbufferEXT
+GLAD_API_CALL PFNWGLQUERYSWAPGROUPNVPROC glad_wglQuerySwapGroupNV;
+#define wglQuerySwapGroupNV glad_wglQuerySwapGroupNV
+GLAD_API_CALL PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC glad_wglQueryVideoCaptureDeviceNV;
+#define wglQueryVideoCaptureDeviceNV glad_wglQueryVideoCaptureDeviceNV
+GLAD_API_CALL PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC glad_wglReleaseImageBufferEventsI3D;
+#define wglReleaseImageBufferEventsI3D glad_wglReleaseImageBufferEventsI3D
+GLAD_API_CALL PFNWGLRELEASEPBUFFERDCARBPROC glad_wglReleasePbufferDCARB;
+#define wglReleasePbufferDCARB glad_wglReleasePbufferDCARB
+GLAD_API_CALL PFNWGLRELEASEPBUFFERDCEXTPROC glad_wglReleasePbufferDCEXT;
+#define wglReleasePbufferDCEXT glad_wglReleasePbufferDCEXT
+GLAD_API_CALL PFNWGLRELEASETEXIMAGEARBPROC glad_wglReleaseTexImageARB;
+#define wglReleaseTexImageARB glad_wglReleaseTexImageARB
+GLAD_API_CALL PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC glad_wglReleaseVideoCaptureDeviceNV;
+#define wglReleaseVideoCaptureDeviceNV glad_wglReleaseVideoCaptureDeviceNV
+GLAD_API_CALL PFNWGLRELEASEVIDEODEVICENVPROC glad_wglReleaseVideoDeviceNV;
+#define wglReleaseVideoDeviceNV glad_wglReleaseVideoDeviceNV
+GLAD_API_CALL PFNWGLRELEASEVIDEOIMAGENVPROC glad_wglReleaseVideoImageNV;
+#define wglReleaseVideoImageNV glad_wglReleaseVideoImageNV
+GLAD_API_CALL PFNWGLRESETFRAMECOUNTNVPROC glad_wglResetFrameCountNV;
+#define wglResetFrameCountNV glad_wglResetFrameCountNV
+GLAD_API_CALL PFNWGLRESTOREBUFFERREGIONARBPROC glad_wglRestoreBufferRegionARB;
+#define wglRestoreBufferRegionARB glad_wglRestoreBufferRegionARB
+GLAD_API_CALL PFNWGLSAVEBUFFERREGIONARBPROC glad_wglSaveBufferRegionARB;
+#define wglSaveBufferRegionARB glad_wglSaveBufferRegionARB
+GLAD_API_CALL PFNWGLSENDPBUFFERTOVIDEONVPROC glad_wglSendPbufferToVideoNV;
+#define wglSendPbufferToVideoNV glad_wglSendPbufferToVideoNV
+GLAD_API_CALL PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC glad_wglSetDigitalVideoParametersI3D;
+#define wglSetDigitalVideoParametersI3D glad_wglSetDigitalVideoParametersI3D
+GLAD_API_CALL PFNWGLSETGAMMATABLEI3DPROC glad_wglSetGammaTableI3D;
+#define wglSetGammaTableI3D glad_wglSetGammaTableI3D
+GLAD_API_CALL PFNWGLSETGAMMATABLEPARAMETERSI3DPROC glad_wglSetGammaTableParametersI3D;
+#define wglSetGammaTableParametersI3D glad_wglSetGammaTableParametersI3D
+GLAD_API_CALL PFNWGLSETPBUFFERATTRIBARBPROC glad_wglSetPbufferAttribARB;
+#define wglSetPbufferAttribARB glad_wglSetPbufferAttribARB
+GLAD_API_CALL PFNWGLSETSTEREOEMITTERSTATE3DLPROC glad_wglSetStereoEmitterState3DL;
+#define wglSetStereoEmitterState3DL glad_wglSetStereoEmitterState3DL
+GLAD_API_CALL PFNWGLSWAPBUFFERSMSCOMLPROC glad_wglSwapBuffersMscOML;
+#define wglSwapBuffersMscOML glad_wglSwapBuffersMscOML
+GLAD_API_CALL PFNWGLSWAPINTERVALEXTPROC glad_wglSwapIntervalEXT;
+#define wglSwapIntervalEXT glad_wglSwapIntervalEXT
+GLAD_API_CALL PFNWGLSWAPLAYERBUFFERSMSCOMLPROC glad_wglSwapLayerBuffersMscOML;
+#define wglSwapLayerBuffersMscOML glad_wglSwapLayerBuffersMscOML
+GLAD_API_CALL PFNWGLWAITFORMSCOMLPROC glad_wglWaitForMscOML;
+#define wglWaitForMscOML glad_wglWaitForMscOML
+GLAD_API_CALL PFNWGLWAITFORSBCOMLPROC glad_wglWaitForSbcOML;
+#define wglWaitForSbcOML glad_wglWaitForSbcOML
+
+GLAD_API_CALL int gladLoadWGLUserPtr(HDC hdc, GLADuserptrloadfunc load, void *userptr);
+GLAD_API_CALL int gladLoadWGL(HDC hdc, GLADloadfunc load);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/StgSharp.C/x64/Debug/StgSharp.C.Build.CppClean.log b/StgSharp.C/x64/Debug/StgSharp.C.Build.CppClean.log
new file mode 100644
index 00000000..9192fb5b
--- /dev/null
+++ b/StgSharp.C/x64/Debug/StgSharp.C.Build.CppClean.log
@@ -0,0 +1,52 @@
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\build\stgsharp.c.bsc
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\dllmain.sbr
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\dllmain.obj
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\dllmain.cod
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\mat3.sbr
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\mat3.obj
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\mat3.cod
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\intrinsic.sbr
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\intrinsic.obj
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\intrinsic.cod
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\stgsharpc.sbr
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\stgsharpc.obj
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\stgsharpc.cod
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\string.sbr
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\string.obj
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\string.cod
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\mat4.sbr
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\mat4.obj
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\mat4.cod
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\mat2.sbr
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\mat2.obj
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\mat2.cod
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\hash.sbr
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\hash.obj
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\hash.cod
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\vector_dot.sbr
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\vector_dot.obj
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\vector_dot.cod
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\vector.sbr
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\vector.obj
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\vector.cod
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\stb_image.sbr
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\stb_image.obj
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\stb_image.cod
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\vc143.pdb
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\build\stgsharp.c.dll
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\build\stgsharp.c.pdb
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\build\stgsharp.c.lib
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\build\stgsharp.c.exp
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\stgsharp.c.ilk
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\vc143.idb
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\stgsharp.c.tlog\bscmake.command.1.tlog
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\stgsharp.c.tlog\bscmake.read.1.tlog
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\stgsharp.c.tlog\bscmake.write.1.tlog
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\stgsharp.c.tlog\cl.11516.write.1.tlog
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\stgsharp.c.tlog\cl.command.1.tlog
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\stgsharp.c.tlog\cl.items.tlog
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\stgsharp.c.tlog\cl.read.1.tlog
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\stgsharp.c.tlog\link.command.1.tlog
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\stgsharp.c.tlog\link.read.1.tlog
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\stgsharp.c.tlog\link.secondary.1.tlog
+d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\内核源代码\stgsharp.c\x64\debug\stgsharp.c.tlog\link.write.1.tlog
diff --git a/StgSharp.C/x64/Debug/StgSharp.C.dll.recipe b/StgSharp.C/x64/Debug/StgSharp.C.dll.recipe
new file mode 100644
index 00000000..d8a66a51
--- /dev/null
+++ b/StgSharp.C/x64/Debug/StgSharp.C.dll.recipe
@@ -0,0 +1,11 @@
+
+
+
+
+ D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\build\StgSharp.C.dll
+
+
+
+
+
+
\ No newline at end of file
diff --git a/StgSharp.C/x64/Debug/StgSharp.C.ilk b/StgSharp.C/x64/Debug/StgSharp.C.ilk
new file mode 100644
index 00000000..5abde768
Binary files /dev/null and b/StgSharp.C/x64/Debug/StgSharp.C.ilk differ
diff --git a/StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.13144.write.1.tlog b/StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.13144.write.1.tlog
new file mode 100644
index 00000000..a3e06b10
Binary files /dev/null and b/StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.13144.write.1.tlog differ
diff --git a/StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.command.1.tlog b/StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.command.1.tlog
new file mode 100644
index 00000000..4239242a
Binary files /dev/null and b/StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.command.1.tlog differ
diff --git a/StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.read.1.tlog b/StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.read.1.tlog
new file mode 100644
index 00000000..70e4cda1
Binary files /dev/null and b/StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.read.1.tlog differ
diff --git a/StgSharp.C/x64/Debug/StgSharp.C.tlog/Cl.items.tlog b/StgSharp.C/x64/Debug/StgSharp.C.tlog/Cl.items.tlog
new file mode 100644
index 00000000..22541118
--- /dev/null
+++ b/StgSharp.C/x64/Debug/StgSharp.C.tlog/Cl.items.tlog
@@ -0,0 +1,11 @@
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\dllmain.c;D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\x64\Debug\dllmain.obj
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\intrinsic.c;D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\x64\Debug\intrinsic.obj
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c;D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\x64\Debug\mat2.obj
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c;D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\x64\Debug\mat3.obj
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c;D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\x64\Debug\mat4.obj
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\stb_image.c;D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\x64\Debug\stb_image.obj
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\StgSharpC.c;D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\x64\Debug\StgSharpC.obj
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\hash.c;D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\x64\Debug\hash.obj
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\string.c;D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\x64\Debug\string.obj
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\vector.c;D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\x64\Debug\vector.obj
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\vector_dot.c;D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\x64\Debug\vector_dot.obj
diff --git a/StgSharp.C/x64/Debug/StgSharp.C.tlog/StgSharp.C.lastbuildstate b/StgSharp.C/x64/Debug/StgSharp.C.tlog/StgSharp.C.lastbuildstate
new file mode 100644
index 00000000..174a20c9
--- /dev/null
+++ b/StgSharp.C/x64/Debug/StgSharp.C.tlog/StgSharp.C.lastbuildstate
@@ -0,0 +1,2 @@
+PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.41.34120:TargetPlatformVersion=10.0.22621.0:
+Debug|x64|D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\|
diff --git a/StgSharp.C/x64/Debug/StgSharp.C.tlog/bscmake.command.1.tlog b/StgSharp.C/x64/Debug/StgSharp.C.tlog/bscmake.command.1.tlog
new file mode 100644
index 00000000..4dd2c07f
Binary files /dev/null and b/StgSharp.C/x64/Debug/StgSharp.C.tlog/bscmake.command.1.tlog differ
diff --git a/StgSharp.C/x64/Debug/StgSharp.C.tlog/bscmake.read.1.tlog b/StgSharp.C/x64/Debug/StgSharp.C.tlog/bscmake.read.1.tlog
new file mode 100644
index 00000000..925321f8
Binary files /dev/null and b/StgSharp.C/x64/Debug/StgSharp.C.tlog/bscmake.read.1.tlog differ
diff --git a/StgSharp.C/x64/Debug/StgSharp.C.tlog/bscmake.write.1.tlog b/StgSharp.C/x64/Debug/StgSharp.C.tlog/bscmake.write.1.tlog
new file mode 100644
index 00000000..61a28e20
Binary files /dev/null and b/StgSharp.C/x64/Debug/StgSharp.C.tlog/bscmake.write.1.tlog differ
diff --git a/StgSharp.C/x64/Debug/StgSharp.C.tlog/link.command.1.tlog b/StgSharp.C/x64/Debug/StgSharp.C.tlog/link.command.1.tlog
new file mode 100644
index 00000000..5b829347
Binary files /dev/null and b/StgSharp.C/x64/Debug/StgSharp.C.tlog/link.command.1.tlog differ
diff --git a/StgSharp.C/x64/Debug/StgSharp.C.tlog/link.read.1.tlog b/StgSharp.C/x64/Debug/StgSharp.C.tlog/link.read.1.tlog
new file mode 100644
index 00000000..e095cc74
Binary files /dev/null and b/StgSharp.C/x64/Debug/StgSharp.C.tlog/link.read.1.tlog differ
diff --git a/StgSharp.C/x64/Debug/StgSharp.C.tlog/link.secondary.1.tlog b/StgSharp.C/x64/Debug/StgSharp.C.tlog/link.secondary.1.tlog
new file mode 100644
index 00000000..27855864
--- /dev/null
+++ b/StgSharp.C/x64/Debug/StgSharp.C.tlog/link.secondary.1.tlog
@@ -0,0 +1,4 @@
+^D:\NITLOADINDUSTRY\研究项目\1-FLAGSHIP\TH2020\PROJECTFILE\内核源代码\STGSHARP.C\GLFW3.LIB|D:\NITLOADINDUSTRY\研究项目\1-FLAGSHIP\TH2020\PROJECTFILE\内核源代码\STGSHARP.C\GLFW3DLL.LIB|D:\NITLOADINDUSTRY\研究项目\1-FLAGSHIP\TH2020\PROJECTFILE\内核源代码\STGSHARP.C\GLFW3_MT.LIB|D:\NITLOADINDUSTRY\研究项目\1-FLAGSHIP\TH2020\PROJECTFILE\内核源代码\STGSHARP.C\X64\DEBUG\DLLMAIN.OBJ|D:\NITLOADINDUSTRY\研究项目\1-FLAGSHIP\TH2020\PROJECTFILE\内核源代码\STGSHARP.C\X64\DEBUG\HASH.OBJ|D:\NITLOADINDUSTRY\研究项目\1-FLAGSHIP\TH2020\PROJECTFILE\内核源代码\STGSHARP.C\X64\DEBUG\INTRINSIC.OBJ|D:\NITLOADINDUSTRY\研究项目\1-FLAGSHIP\TH2020\PROJECTFILE\内核源代码\STGSHARP.C\X64\DEBUG\MAT2.OBJ|D:\NITLOADINDUSTRY\研究项目\1-FLAGSHIP\TH2020\PROJECTFILE\内核源代码\STGSHARP.C\X64\DEBUG\MAT3.OBJ|D:\NITLOADINDUSTRY\研究项目\1-FLAGSHIP\TH2020\PROJECTFILE\内核源代码\STGSHARP.C\X64\DEBUG\MAT4.OBJ|D:\NITLOADINDUSTRY\研究项目\1-FLAGSHIP\TH2020\PROJECTFILE\内核源代码\STGSHARP.C\X64\DEBUG\STB_IMAGE.OBJ|D:\NITLOADINDUSTRY\研究项目\1-FLAGSHIP\TH2020\PROJECTFILE\内核源代码\STGSHARP.C\X64\DEBUG\STGSHARPC.OBJ|D:\NITLOADINDUSTRY\研究项目\1-FLAGSHIP\TH2020\PROJECTFILE\内核源代码\STGSHARP.C\X64\DEBUG\STRING.OBJ|D:\NITLOADINDUSTRY\研究项目\1-FLAGSHIP\TH2020\PROJECTFILE\内核源代码\STGSHARP.C\X64\DEBUG\VECTOR.OBJ|D:\NITLOADINDUSTRY\研究项目\1-FLAGSHIP\TH2020\PROJECTFILE\内核源代码\STGSHARP.C\X64\DEBUG\VECTOR_DOT.OBJ
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\build\StgSharp.C.lib
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\build\StgSharp.C.EXP
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\x64\Debug\StgSharp.C.ilk
diff --git a/StgSharp.C/x64/Debug/StgSharp.C.tlog/link.write.1.tlog b/StgSharp.C/x64/Debug/StgSharp.C.tlog/link.write.1.tlog
new file mode 100644
index 00000000..a4f34ce0
Binary files /dev/null and b/StgSharp.C/x64/Debug/StgSharp.C.tlog/link.write.1.tlog differ
diff --git a/StgSharp.C/x64/Debug/StgSharpC.cod b/StgSharp.C/x64/Debug/StgSharpC.cod
new file mode 100644
index 00000000..1c2db210
--- /dev/null
+++ b/StgSharp.C/x64/Debug/StgSharpC.cod
@@ -0,0 +1,870 @@
+; Listing generated by Microsoft (R) Optimizing Compiler Version 19.41.34120.0
+
+include listing.inc
+
+INCLUDELIB MSVCRTD
+INCLUDELIB OLDNAMES
+
+_DATA SEGMENT
+COMM infolog:BYTE:0200H
+COMM currentContext:QWORD
+_DATA ENDS
+msvcjmc SEGMENT
+__7583A0D2_mmintrin@h DB 01H
+__DDA0A690_concurrencysal@h DB 01H
+__9ECC08BE_sal@h DB 01H
+__E05D733A_vadefs@h DB 01H
+__6A355E0E_vcruntime@h DB 01H
+__1B0272D9_corecrt@h DB 01H
+__45DED006_corecrt_malloc@h DB 01H
+__FA77ED4C_malloc@h DB 01H
+__EAE0325A_xmmintrin@h DB 01H
+__0ED14FEE_winpackagefamily@h DB 01H
+__F92EF742_winapifamily@h DB 01H
+__22E515EB_sdkddkver@h DB 01H
+__A09A3A7D_excpt@h DB 01H
+__AC8FA393_stdarg@h DB 01H
+__29F49F40_specstrings_undef@h DB 01H
+__D0F42932_specstrings_strict@h DB 01H
+__F00405FD_sdv_driverspecs@h DB 01H
+__173E09CA_driverspecs@h DB 01H
+__9A452361_specstrings@h DB 01H
+__74484FB3_corecrt_wctype@h DB 01H
+__1EC467ED_ctype@h DB 01H
+__98517906_kernelspecs@h DB 01H
+__D3497022_basetsd@h DB 01H
+__61CC25A1_errno@h DB 01H
+__890838BD_vcruntime_string@h DB 01H
+__E4C945B4_corecrt_memcpy_s@h DB 01H
+__8EAFF484_corecrt_memory@h DB 01H
+__6490AEC5_corecrt_wstring@h DB 01H
+__E8295E1E_string@h DB 01H
+__7FCB5136_guiddef@h DB 01H
+__FF8A9E11_pshpack4@h DB 01H
+__D5438902_poppack@h DB 01H
+__FB07E2A3_pshpack2@h DB 01H
+__F6906775_pshpack8@h DB 01H
+__F9415CFA_pshpack1@h DB 01H
+__E58C6F1C_apiset@h DB 01H
+__A5C52262_ktmtypes@h DB 01H
+__FBBA8F9D_winnt@h DB 01H
+__A32D3D2C_minwindef@h DB 01H
+__7D798299_windef@h DB 01H
+__9AE108E9_apisetcconv@h DB 01H
+__9CE53D2C_minwinbase@h DB 01H
+__5D0AA210_apiquery2@h DB 01H
+__4DD4E726_processenv@h DB 01H
+__3575CC96_fileapi@h DB 01H
+__8EA220E6_fileapifromapp@h DB 01H
+__BF9B31FE_debugapi@h DB 01H
+__C3AFE134_utilapiset@h DB 01H
+__76F69E51_handleapi@h DB 01H
+__7E63D784_errhandlingapi@h DB 01H
+__FFA7003C_fibersapi@h DB 01H
+__8971CECF_namedpipeapi@h DB 01H
+__46C9D8A6_profileapi@h DB 01H
+__98D4F0A3_heapapi@h DB 01H
+__50EF2A88_ioapiset@h DB 01H
+__92EA1464_synchapi@h DB 01H
+__A53D8AED_interlockedapi@h DB 01H
+__B506CAAF_processthreadsapi@h DB 01H
+__FF735694_sysinfoapi@h DB 01H
+__29589789_memoryapi@h DB 01H
+__E9C7A663_enclaveapi@h DB 01H
+__D035F9F7_threadpoollegacyapiset@h DB 01H
+__C899130C_threadpoolapiset@h DB 01H
+__E0441EE7_jobapi@h DB 01H
+__CEF86838_jobapi2@h DB 01H
+__35AC6B9A_wow64apiset@h DB 01H
+__C8AE41A5_libloaderapi@h DB 01H
+__CC9E232D_securitybaseapi@h DB 01H
+__C9D0C9B8_namespaceapi@h DB 01H
+__30FF9CAD_systemtopologyapi@h DB 01H
+__4D358795_processtopologyapi@h DB 01H
+__40446D10_securityappcontainer@h DB 01H
+__3A952EDF_realtimeapiset@h DB 01H
+__F4865F4B_winerror@h DB 01H
+__53C1BD93_timezoneapi@h DB 01H
+__1FFBEDBF_winbase@h DB 01H
+__43D3FA34_wingdi@h DB 01H
+__D24A7391_tvout@h DB 01H
+__7713A6C8_winuser@h DB 01H
+__0B345F71_datetimeapi@h DB 01H
+__9AC6960C_winnls@h DB 01H
+__973A40A8_stringapiset@h DB 01H
+__CC46FEE2_wincontypes@h DB 01H
+__97D70BE1_consoleapi@h DB 01H
+__27EC5E18_consoleapi2@h DB 01H
+__262E342F_consoleapi3@h DB 01H
+__641DCD70_wincon@h DB 01H
+__5A96C7A7_verrsrc@h DB 01H
+__B69C6FF2_winver@h DB 01H
+__7AEB8C37_reason@h DB 01H
+__59F1A8A9_winreg@h DB 01H
+__EE0E2B7F_wnnc@h DB 01H
+__DCDB7054_winnetwk@h DB 01H
+__81DDEDE3_stralign@h DB 01H
+__2134D1B4_winsvc@h DB 01H
+__11C07376_mcx@h DB 01H
+__577CE3E7_ime_cmodes@h DB 01H
+__1E72C31E_imm@h DB 01H
+__E15BF856_windows@h DB 01H
+__8FC206A7_ssc_internal@h DB 01H
+__44420885_corecrt_stdio_config@h DB 01H
+__AB601D8D_corecrt_wstdio@h DB 01H
+__C1EC35D3_stdio@h DB 01H
+__13F5961F_stddef@h DB 01H
+__FD6DBD68_corecrt_search@h DB 01H
+__E2E33A61_corecrt_wstdlib@h DB 01H
+__26263363_limits@h DB 01H
+__6E5ACABA_stdlib@h DB 01H
+__9049550C_stb_image@h DB 01H
+__98501D5C_stdint@h DB 01H
+__264E89B8_khrplatform@h DB 01H
+__799FCA13_gl@h DB 01H
+__A57296D0_wgl@h DB 01H
+__417F438F_glfw3@h DB 01H
+__8F82BB96_emmintrin@h DB 01H
+__5023D31F_pmmintrin@h DB 01H
+__E0FAA09D_tmmintrin@h DB 01H
+__C9C1B51E_smmintrin@h DB 01H
+__ACA33CD2_nmmintrin@h DB 01H
+__7918C69C_wmmintrin@h DB 01H
+__B28C8B9B_zmmintrin@h DB 01H
+__85982951_immintrin@h DB 01H
+__19139D6C_assert@h DB 01H
+__0C16F932_StgSharpC@h DB 01H
+__9BC420BA_StgSharpC@c DB 01H
+msvcjmc ENDS
+PUBLIC glCheckShaderStat
+PUBLIC initGL
+PUBLIC linkShaderProgram
+PUBLIC loadImageData
+PUBLIC loadGlfuncDefault
+PUBLIC unloadImageData
+PUBLIC readLog
+PUBLIC __JustMyCode_Default
+PUBLIC ??_C@_0BL@MOJGOJJP@Failed?5to?5load?5OpenGL?5api?3@ ; `string'
+EXTRN __report_rangecheckfailure:PROC
+EXTRN __imp_free:PROC
+EXTRN __imp_strcpy_s:PROC
+EXTRN stbi_load: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 __security_check_cookie:PROC
+EXTRN __security_cookie:QWORD
+; 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 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 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
+; 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\StgSharpC.c
+; COMDAT readLog
+_TEXT SEGMENT
+$T1 = 200
+readLog PROC ; COMDAT
+
+; 72 : {
+
+$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:__9BC420BA_StgSharpC@c
+ 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001b 90 npad 1
+
+; 73 : 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
+
+; 74 : return infolog;
+
+ 00056 48 8d 05 00 00
+ 00 00 lea rax, OFFSET FLAT:infolog
+$LN2@readLog:
+
+; 75 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\StgSharpC.c
+; COMDAT unloadImageData
+_TEXT SEGMENT
+out$ = 224
+unloadImageData PROC ; COMDAT
+
+; 67 : {
+
+$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:__9BC420BA_StgSharpC@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 68 : 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
+
+; 69 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\StgSharpC.c
+; COMDAT loadGlfuncDefault
+_TEXT SEGMENT
+ret$ = 8
+i$1 = 40
+procName$ = 288
+loadGlfuncDefault PROC ; COMDAT
+
+; 31 : {
+
+$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:__9BC420BA_StgSharpC@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 32 : 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
+
+; 33 : // printf("%llu\n", (uint64_t)ret);
+; 34 : if (ret == NULL) {
+
+ 00030 48 83 7d 08 00 cmp QWORD PTR ret$[rbp], 0
+ 00035 75 5b jne SHORT $LN5@loadGlfunc
+
+; 35 : 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
+
+; 36 : 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
+
+; 37 : 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
+
+; 38 : }
+
+ 00090 eb c9 jmp SHORT $LN2@loadGlfunc
+$LN3@loadGlfunc:
+$LN5@loadGlfunc:
+
+; 39 : //printf("%s\n", infolog);
+; 40 : }
+; 41 : return (GLFWglproc)ret;
+
+ 00092 48 8b 45 08 mov rax, QWORD PTR ret$[rbp]
+
+; 42 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\StgSharpC.c
+; COMDAT loadImageData
+_TEXT SEGMENT
+location$ = 224
+out$ = 232
+loader$ = 240
+loadImageData PROC ; COMDAT
+
+; 59 : {
+
+$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:__9BC420BA_StgSharpC@c
+ 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00029 90 npad 1
+
+; 60 : 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
+
+; 61 : 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:
+
+; 62 : }
+; 63 : 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
+
+; 64 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\StgSharpC.c
+; COMDAT linkShaderProgram
+_TEXT SEGMENT
+success$ = 4
+__$ArrayPad$ = 216
+context$ = 256
+shaderProgram$ = 264
+linkShaderProgram PROC ; COMDAT
+
+; 45 : {
+
+$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:__9BC420BA_StgSharpC@c
+ 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0004d 90 npad 1
+
+; 46 : 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 80 22 00
+ 00 call QWORD PTR [rax+8832]
+ 00061 90 npad 1
+
+; 47 :
+; 48 : int success;
+; 49 : 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 48 1a 00
+ 00 call QWORD PTR [rax+6728]
+ 0007e 90 npad 1
+
+; 50 : if (!success) {
+
+ 0007f 83 7d 04 00 cmp DWORD PTR success$[rbp], 0
+ 00083 75 29 jne SHORT $LN2@linkShader
+
+; 51 : 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 98 19 00
+ 00 call QWORD PTR [rax+6552]
+ 000a7 90 npad 1
+
+; 52 : return 0;
+
+ 000a8 33 c0 xor eax, eax
+ 000aa eb 08 jmp SHORT $LN1@linkShader
+
+; 53 : } else {
+
+ 000ac eb 06 jmp SHORT $LN3@linkShader
+$LN2@linkShader:
+
+; 54 : return shaderProgram;
+
+ 000ae 8b 85 08 01 00
+ 00 mov eax, DWORD PTR shaderProgram$[rbp]
+$LN3@linkShader:
+$LN1@linkShader:
+
+; 55 : }
+; 56 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\StgSharpC.c
+; COMDAT initGL
+_TEXT SEGMENT
+majorVersion$ = 224
+minorVersion$ = 232
+initGL PROC ; COMDAT
+
+; 23 : {
+
+$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:__9BC420BA_StgSharpC@c
+ 0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00022 90 npad 1
+
+; 24 : 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
+
+; 25 : 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
+
+; 26 : 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
+
+; 27 : 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
+
+; 28 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\StgSharpC.c
+; COMDAT glCheckShaderStat
+_TEXT SEGMENT
+stat$ = 4
+__$ArrayPad$ = 216
+context$ = 256
+shaderHandle$ = 264
+key$ = 272
+logRef$ = 280
+glCheckShaderStat PROC ; COMDAT
+
+; 12 : {
+
+$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:__9BC420BA_StgSharpC@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 13 : int stat = 0;
+
+ 00059 c7 45 04 00 00
+ 00 00 mov DWORD PTR stat$[rbp], 0
+
+; 14 : 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 40 1b 00
+ 00 call QWORD PTR [rax+6976]
+ 0007d 90 npad 1
+
+; 15 : if (!stat) {
+
+ 0007e 83 7d 04 00 cmp DWORD PTR stat$[rbp], 0
+ 00082 75 23 jne SHORT $LN2@glCheckSha
+
+; 16 : 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 20 1b 00
+ 00 call QWORD PTR [rax+6944]
+ 000a6 90 npad 1
+$LN2@glCheckSha:
+
+; 17 : }
+; 18 : *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
+
+; 19 : return stat;
+
+ 000b8 8b 45 04 mov eax, DWORD PTR stat$[rbp]
+
+; 20 : }
+
+ 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
+END
diff --git a/StgSharp.C/x64/Debug/StgSharpC.log b/StgSharp.C/x64/Debug/StgSharpC.log
new file mode 100644
index 00000000..923df6ad
--- /dev/null
+++ b/StgSharp.C/x64/Debug/StgSharpC.log
@@ -0,0 +1,56 @@
+C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\Microsoft.CppBuild.targets(517,5): warning MSB8004: Output 目录未以斜杠结尾。 此生成实例将添加斜杠,因为必须有这个斜杠才能正确计算 Output 目录。
+ StgSharpC.c
+ intrinsic.c
+ mat4.c
+ string.c
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\StgSharpC.c(14,30): warning C4244: “函数”: 从“uint64_t”转换到“GLuint”,可能丢失数据
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\StgSharpC.c(16,43): warning C4244: “函数”: 从“uint64_t”转换到“GLuint”,可能丢失数据
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\string.c(21,54): warning C4267: “return”: 从“size_t”转换到“int”,可能丢失数据
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\string.c(36,54): warning C4267: “return”: 从“size_t”转换到“int”,可能丢失数据
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(9,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(9,62): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(11,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(11,62): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(20,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(20,62): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(22,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(22,62): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(24,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(24,62): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(26,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(26,62): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(36,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(36,62): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(38,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(38,62): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(40,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(40,62): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(42,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(42,62): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(51,54): warning C4028: 形参 1 与声明不同
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(51,84): warning C4028: 形参 2 与声明不同
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(53,22): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(54,22): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(55,22): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(56,22): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(59,28): warning C4013: “det_mat3_internal”未定义;假设外部返回 int
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(59,28): warning C4244: “函数”: 从“int”转换到“float”,可能丢失数据
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(59,62): warning C4244: “函数”: 从“int”转换到“float”,可能丢失数据
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(60,28): warning C4244: “函数”: 从“int”转换到“float”,可能丢失数据
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(60,62): warning C4244: “函数”: 从“int”转换到“float”,可能丢失数据
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(61,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(69,37): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(69,61): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(70,37): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(70,61): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(71,37): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(71,61): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(72,37): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(72,61): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(77,38): warning C4133: “函数”: 从“__m256 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(77,63): warning C4133: “函数”: 从“__m256 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(78,38): warning C4133: “函数”: 从“__m256 *”到“const float *”的类型不兼容
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(78,63): warning C4133: “函数”: 从“__m256 *”到“const float *”的类型不兼容
+ 正在创建库 D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\build\StgSharp.C.lib 和对象 D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\build\StgSharp.C.exp
+LINK : warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
+ StgSharpC.vcxproj -> D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\build\StgSharp.C.dll
diff --git a/StgSharp.C/x64/Debug/StgSharpC.obj b/StgSharp.C/x64/Debug/StgSharpC.obj
new file mode 100644
index 00000000..9a374b1e
Binary files /dev/null and b/StgSharp.C/x64/Debug/StgSharpC.obj differ
diff --git a/StgSharp.C/x64/Debug/StgSharpC.sbr b/StgSharp.C/x64/Debug/StgSharpC.sbr
new file mode 100644
index 00000000..81d4436c
Binary files /dev/null and b/StgSharp.C/x64/Debug/StgSharpC.sbr differ
diff --git a/StgSharp.C/x64/Debug/StgSharpC.vcxproj.FileListAbsolute.txt b/StgSharp.C/x64/Debug/StgSharpC.vcxproj.FileListAbsolute.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/StgSharp.C/x64/Debug/dllmain.cod b/StgSharp.C/x64/Debug/dllmain.cod
new file mode 100644
index 00000000..5fc188d2
--- /dev/null
+++ b/StgSharp.C/x64/Debug/dllmain.cod
@@ -0,0 +1,263 @@
+; Listing generated by Microsoft (R) Optimizing Compiler Version 19.41.34120.0
+
+include listing.inc
+
+INCLUDELIB MSVCRTD
+INCLUDELIB OLDNAMES
+
+_DATA SEGMENT
+COMM infolog:BYTE:0200H
+_DATA ENDS
+msvcjmc SEGMENT
+__7583A0D2_mmintrin@h DB 01H
+__DDA0A690_concurrencysal@h DB 01H
+__9ECC08BE_sal@h DB 01H
+__E05D733A_vadefs@h DB 01H
+__6A355E0E_vcruntime@h DB 01H
+__1B0272D9_corecrt@h DB 01H
+__45DED006_corecrt_malloc@h DB 01H
+__FA77ED4C_malloc@h DB 01H
+__EAE0325A_xmmintrin@h DB 01H
+__0ED14FEE_winpackagefamily@h DB 01H
+__F92EF742_winapifamily@h DB 01H
+__22E515EB_sdkddkver@h DB 01H
+__A09A3A7D_excpt@h DB 01H
+__AC8FA393_stdarg@h DB 01H
+__29F49F40_specstrings_undef@h DB 01H
+__D0F42932_specstrings_strict@h DB 01H
+__F00405FD_sdv_driverspecs@h DB 01H
+__173E09CA_driverspecs@h DB 01H
+__9A452361_specstrings@h DB 01H
+__74484FB3_corecrt_wctype@h DB 01H
+__1EC467ED_ctype@h DB 01H
+__98517906_kernelspecs@h DB 01H
+__D3497022_basetsd@h DB 01H
+__61CC25A1_errno@h DB 01H
+__890838BD_vcruntime_string@h DB 01H
+__E4C945B4_corecrt_memcpy_s@h DB 01H
+__8EAFF484_corecrt_memory@h DB 01H
+__6490AEC5_corecrt_wstring@h DB 01H
+__E8295E1E_string@h DB 01H
+__7FCB5136_guiddef@h DB 01H
+__FF8A9E11_pshpack4@h DB 01H
+__D5438902_poppack@h DB 01H
+__FB07E2A3_pshpack2@h DB 01H
+__F6906775_pshpack8@h DB 01H
+__F9415CFA_pshpack1@h DB 01H
+__E58C6F1C_apiset@h DB 01H
+__A5C52262_ktmtypes@h DB 01H
+__FBBA8F9D_winnt@h DB 01H
+__A32D3D2C_minwindef@h DB 01H
+__7D798299_windef@h DB 01H
+__9AE108E9_apisetcconv@h DB 01H
+__9CE53D2C_minwinbase@h DB 01H
+__5D0AA210_apiquery2@h DB 01H
+__4DD4E726_processenv@h DB 01H
+__3575CC96_fileapi@h DB 01H
+__8EA220E6_fileapifromapp@h DB 01H
+__BF9B31FE_debugapi@h DB 01H
+__C3AFE134_utilapiset@h DB 01H
+__76F69E51_handleapi@h DB 01H
+__7E63D784_errhandlingapi@h DB 01H
+__FFA7003C_fibersapi@h DB 01H
+__8971CECF_namedpipeapi@h DB 01H
+__46C9D8A6_profileapi@h DB 01H
+__98D4F0A3_heapapi@h DB 01H
+__50EF2A88_ioapiset@h DB 01H
+__92EA1464_synchapi@h DB 01H
+__A53D8AED_interlockedapi@h DB 01H
+__B506CAAF_processthreadsapi@h DB 01H
+__FF735694_sysinfoapi@h DB 01H
+__29589789_memoryapi@h DB 01H
+__E9C7A663_enclaveapi@h DB 01H
+__D035F9F7_threadpoollegacyapiset@h DB 01H
+__C899130C_threadpoolapiset@h DB 01H
+__E0441EE7_jobapi@h DB 01H
+__CEF86838_jobapi2@h DB 01H
+__35AC6B9A_wow64apiset@h DB 01H
+__C8AE41A5_libloaderapi@h DB 01H
+__CC9E232D_securitybaseapi@h DB 01H
+__C9D0C9B8_namespaceapi@h DB 01H
+__30FF9CAD_systemtopologyapi@h DB 01H
+__4D358795_processtopologyapi@h DB 01H
+__40446D10_securityappcontainer@h DB 01H
+__3A952EDF_realtimeapiset@h DB 01H
+__F4865F4B_winerror@h DB 01H
+__53C1BD93_timezoneapi@h DB 01H
+__1FFBEDBF_winbase@h DB 01H
+__43D3FA34_wingdi@h DB 01H
+__D24A7391_tvout@h DB 01H
+__7713A6C8_winuser@h DB 01H
+__0B345F71_datetimeapi@h DB 01H
+__9AC6960C_winnls@h DB 01H
+__973A40A8_stringapiset@h DB 01H
+__CC46FEE2_wincontypes@h DB 01H
+__97D70BE1_consoleapi@h DB 01H
+__27EC5E18_consoleapi2@h DB 01H
+__262E342F_consoleapi3@h DB 01H
+__641DCD70_wincon@h DB 01H
+__5A96C7A7_verrsrc@h DB 01H
+__B69C6FF2_winver@h DB 01H
+__7AEB8C37_reason@h DB 01H
+__59F1A8A9_winreg@h DB 01H
+__EE0E2B7F_wnnc@h DB 01H
+__DCDB7054_winnetwk@h DB 01H
+__81DDEDE3_stralign@h DB 01H
+__2134D1B4_winsvc@h DB 01H
+__11C07376_mcx@h DB 01H
+__577CE3E7_ime_cmodes@h DB 01H
+__1E72C31E_imm@h DB 01H
+__E15BF856_windows@h DB 01H
+__8FC206A7_ssc_internal@h DB 01H
+__44420885_corecrt_stdio_config@h DB 01H
+__AB601D8D_corecrt_wstdio@h DB 01H
+__C1EC35D3_stdio@h DB 01H
+__13F5961F_stddef@h DB 01H
+__FD6DBD68_corecrt_search@h DB 01H
+__E2E33A61_corecrt_wstdlib@h DB 01H
+__26263363_limits@h DB 01H
+__6E5ACABA_stdlib@h DB 01H
+__9049550C_stb_image@h DB 01H
+__98501D5C_stdint@h DB 01H
+__264E89B8_khrplatform@h DB 01H
+__799FCA13_gl@h DB 01H
+__A57296D0_wgl@h DB 01H
+__417F438F_glfw3@h DB 01H
+__8F82BB96_emmintrin@h DB 01H
+__5023D31F_pmmintrin@h DB 01H
+__E0FAA09D_tmmintrin@h DB 01H
+__C9C1B51E_smmintrin@h DB 01H
+__ACA33CD2_nmmintrin@h DB 01H
+__7918C69C_wmmintrin@h DB 01H
+__B28C8B9B_zmmintrin@h DB 01H
+__85982951_immintrin@h DB 01H
+__19139D6C_assert@h DB 01H
+__0C16F932_StgSharpC@h DB 01H
+__F35F2EF4_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$DllMain DD imagerel $LN9
+ DD imagerel $LN9+134
+ 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
+; 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\dllmain.c
+; COMDAT DllMain
+_TEXT SEGMENT
+tv64 = 192
+hModule$ = 240
+ul_reason_for_call$ = 248
+lpReserved$ = 256
+DllMain PROC ; COMDAT
+
+; 13 : {
+
+$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:__F35F2EF4_dllmain@c
+ 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00028 90 npad 1
+
+; 14 : 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 32 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 12 je SHORT $LN5@DllMain
+ 00050 83 bd c0 00 00
+ 00 03 cmp DWORD PTR tv64[rbp], 3
+ 00057 74 10 je SHORT $LN6@DllMain
+ 00059 eb 1c jmp SHORT $LN2@DllMain
+$LN4@DllMain:
+
+; 15 : {
+; 16 : case DLL_PROCESS_ATTACH:
+; 17 : return 1;
+
+ 0005b b8 01 00 00 00 mov eax, 1
+ 00060 eb 1a jmp SHORT $LN1@DllMain
+$LN5@DllMain:
+
+; 18 : case DLL_THREAD_ATTACH:
+; 19 : return 1;
+
+ 00062 b8 01 00 00 00 mov eax, 1
+ 00067 eb 13 jmp SHORT $LN1@DllMain
+$LN6@DllMain:
+
+; 20 : case DLL_THREAD_DETACH:
+; 21 : return 1;
+
+ 00069 b8 01 00 00 00 mov eax, 1
+ 0006e eb 0c jmp SHORT $LN1@DllMain
+$LN7@DllMain:
+
+; 22 : case DLL_PROCESS_DETACH:
+; 23 : return 1;
+
+ 00070 b8 01 00 00 00 mov eax, 1
+ 00075 eb 05 jmp SHORT $LN1@DllMain
+$LN2@DllMain:
+
+; 24 : break;
+; 25 : }
+; 26 : return TRUE;
+
+ 00077 b8 01 00 00 00 mov eax, 1
+$LN1@DllMain:
+
+; 27 : }
+
+ 0007c 48 8d a5 d8 00
+ 00 00 lea rsp, QWORD PTR [rbp+216]
+ 00083 5f pop rdi
+ 00084 5d pop rbp
+ 00085 c3 ret 0
+DllMain ENDP
+_TEXT ENDS
+END
diff --git a/StgSharp.C/x64/Debug/dllmain.obj b/StgSharp.C/x64/Debug/dllmain.obj
new file mode 100644
index 00000000..a56949d6
Binary files /dev/null and b/StgSharp.C/x64/Debug/dllmain.obj differ
diff --git a/StgSharp.C/x64/Debug/dllmain.sbr b/StgSharp.C/x64/Debug/dllmain.sbr
new file mode 100644
index 00000000..69abfd5b
Binary files /dev/null and b/StgSharp.C/x64/Debug/dllmain.sbr differ
diff --git a/StgSharp.C/x64/Debug/hash.cod b/StgSharp.C/x64/Debug/hash.cod
new file mode 100644
index 00000000..d6f90aa0
--- /dev/null
+++ b/StgSharp.C/x64/Debug/hash.cod
@@ -0,0 +1,528 @@
+; Listing generated by Microsoft (R) Optimizing Compiler Version 19.41.34120.0
+
+include listing.inc
+
+INCLUDELIB MSVCRTD
+INCLUDELIB OLDNAMES
+
+_DATA SEGMENT
+COMM infolog:BYTE:0200H
+_DATA ENDS
+msvcjmc SEGMENT
+__7583A0D2_mmintrin@h DB 01H
+__DDA0A690_concurrencysal@h DB 01H
+__9ECC08BE_sal@h DB 01H
+__E05D733A_vadefs@h DB 01H
+__6A355E0E_vcruntime@h DB 01H
+__1B0272D9_corecrt@h DB 01H
+__45DED006_corecrt_malloc@h DB 01H
+__FA77ED4C_malloc@h DB 01H
+__EAE0325A_xmmintrin@h DB 01H
+__0ED14FEE_winpackagefamily@h DB 01H
+__F92EF742_winapifamily@h DB 01H
+__22E515EB_sdkddkver@h DB 01H
+__A09A3A7D_excpt@h DB 01H
+__AC8FA393_stdarg@h DB 01H
+__29F49F40_specstrings_undef@h DB 01H
+__D0F42932_specstrings_strict@h DB 01H
+__F00405FD_sdv_driverspecs@h DB 01H
+__173E09CA_driverspecs@h DB 01H
+__9A452361_specstrings@h DB 01H
+__74484FB3_corecrt_wctype@h DB 01H
+__1EC467ED_ctype@h DB 01H
+__98517906_kernelspecs@h DB 01H
+__D3497022_basetsd@h DB 01H
+__61CC25A1_errno@h DB 01H
+__890838BD_vcruntime_string@h DB 01H
+__E4C945B4_corecrt_memcpy_s@h DB 01H
+__8EAFF484_corecrt_memory@h DB 01H
+__6490AEC5_corecrt_wstring@h DB 01H
+__E8295E1E_string@h DB 01H
+__7FCB5136_guiddef@h DB 01H
+__FF8A9E11_pshpack4@h DB 01H
+__D5438902_poppack@h DB 01H
+__FB07E2A3_pshpack2@h DB 01H
+__F6906775_pshpack8@h DB 01H
+__F9415CFA_pshpack1@h DB 01H
+__E58C6F1C_apiset@h DB 01H
+__A5C52262_ktmtypes@h DB 01H
+__FBBA8F9D_winnt@h DB 01H
+__A32D3D2C_minwindef@h DB 01H
+__7D798299_windef@h DB 01H
+__9AE108E9_apisetcconv@h DB 01H
+__9CE53D2C_minwinbase@h DB 01H
+__5D0AA210_apiquery2@h DB 01H
+__4DD4E726_processenv@h DB 01H
+__3575CC96_fileapi@h DB 01H
+__8EA220E6_fileapifromapp@h DB 01H
+__BF9B31FE_debugapi@h DB 01H
+__C3AFE134_utilapiset@h DB 01H
+__76F69E51_handleapi@h DB 01H
+__7E63D784_errhandlingapi@h DB 01H
+__FFA7003C_fibersapi@h DB 01H
+__8971CECF_namedpipeapi@h DB 01H
+__46C9D8A6_profileapi@h DB 01H
+__98D4F0A3_heapapi@h DB 01H
+__50EF2A88_ioapiset@h DB 01H
+__92EA1464_synchapi@h DB 01H
+__A53D8AED_interlockedapi@h DB 01H
+__B506CAAF_processthreadsapi@h DB 01H
+__FF735694_sysinfoapi@h DB 01H
+__29589789_memoryapi@h DB 01H
+__E9C7A663_enclaveapi@h DB 01H
+__D035F9F7_threadpoollegacyapiset@h DB 01H
+__C899130C_threadpoolapiset@h DB 01H
+__E0441EE7_jobapi@h DB 01H
+__CEF86838_jobapi2@h DB 01H
+__35AC6B9A_wow64apiset@h DB 01H
+__C8AE41A5_libloaderapi@h DB 01H
+__CC9E232D_securitybaseapi@h DB 01H
+__C9D0C9B8_namespaceapi@h DB 01H
+__30FF9CAD_systemtopologyapi@h DB 01H
+__4D358795_processtopologyapi@h DB 01H
+__40446D10_securityappcontainer@h DB 01H
+__3A952EDF_realtimeapiset@h DB 01H
+__F4865F4B_winerror@h DB 01H
+__53C1BD93_timezoneapi@h DB 01H
+__1FFBEDBF_winbase@h DB 01H
+__43D3FA34_wingdi@h DB 01H
+__D24A7391_tvout@h DB 01H
+__7713A6C8_winuser@h DB 01H
+__0B345F71_datetimeapi@h DB 01H
+__9AC6960C_winnls@h DB 01H
+__973A40A8_stringapiset@h DB 01H
+__CC46FEE2_wincontypes@h DB 01H
+__97D70BE1_consoleapi@h DB 01H
+__27EC5E18_consoleapi2@h DB 01H
+__262E342F_consoleapi3@h DB 01H
+__641DCD70_wincon@h DB 01H
+__5A96C7A7_verrsrc@h DB 01H
+__B69C6FF2_winver@h DB 01H
+__7AEB8C37_reason@h DB 01H
+__59F1A8A9_winreg@h DB 01H
+__EE0E2B7F_wnnc@h DB 01H
+__DCDB7054_winnetwk@h DB 01H
+__81DDEDE3_stralign@h DB 01H
+__2134D1B4_winsvc@h DB 01H
+__11C07376_mcx@h DB 01H
+__577CE3E7_ime_cmodes@h DB 01H
+__1E72C31E_imm@h DB 01H
+__E15BF856_windows@h DB 01H
+__8FC206A7_ssc_internal@h DB 01H
+__44420885_corecrt_stdio_config@h DB 01H
+__AB601D8D_corecrt_wstdio@h DB 01H
+__C1EC35D3_stdio@h DB 01H
+__13F5961F_stddef@h DB 01H
+__FD6DBD68_corecrt_search@h DB 01H
+__E2E33A61_corecrt_wstdlib@h DB 01H
+__26263363_limits@h DB 01H
+__6E5ACABA_stdlib@h DB 01H
+__9049550C_stb_image@h DB 01H
+__98501D5C_stdint@h DB 01H
+__264E89B8_khrplatform@h DB 01H
+__799FCA13_gl@h DB 01H
+__A57296D0_wgl@h DB 01H
+__417F438F_glfw3@h DB 01H
+__8F82BB96_emmintrin@h DB 01H
+__5023D31F_pmmintrin@h DB 01H
+__E0FAA09D_tmmintrin@h DB 01H
+__C9C1B51E_smmintrin@h DB 01H
+__ACA33CD2_nmmintrin@h DB 01H
+__7918C69C_wmmintrin@h DB 01H
+__B28C8B9B_zmmintrin@h DB 01H
+__85982951_immintrin@h DB 01H
+__19139D6C_assert@h DB 01H
+__0C16F932_StgSharpC@h DB 01H
+__B2F9F159_intrin0@inl@h DB 01H
+__0833F55F_setjmp@h DB 01H
+__3F5BC814_ammintrin@h DB 01H
+__2E054928_intrin@h DB 01H
+__5A8332CE_isa_availability@h DB 01H
+__EB6C2FE1_ssc_intrinsic@h DB 01H
+__F5438B76_hash@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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\hash.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
+
+; 5 : {
+
+$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:__F5438B76_hash@c
+ 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00023 90 npad 1
+
+; 6 : 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
+
+; 7 : 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
+
+; 8 :
+; 9 : if (size < 4) {
+
+ 00057 83 7d 24 04 cmp DWORD PTR size$[rbp], 4
+ 0005b 73 35 jae SHORT $LN20@city_hash_
+
+; 10 : 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_
+
+; 11 : 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
+
+; 12 : }
+
+ 0008b eb d2 jmp SHORT $LN2@city_hash_
+$LN3@city_hash_:
+
+; 13 : } 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_
+
+; 14 : 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
+
+; 15 : 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_
+
+; 16 : 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
+
+; 17 : }
+
+ 000d0 eb d7 jmp SHORT $LN5@city_hash_
+$LN6@city_hash_:
+
+; 18 : 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_
+
+; 19 : 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
+
+; 20 : }
+
+ 000ff eb d3 jmp SHORT $LN8@city_hash_
+$LN9@city_hash_:
+
+; 21 : } else {
+
+ 00101 e9 21 01 00 00 jmp $LN23@city_hash_
+$LN22@city_hash_:
+
+; 22 : byte *last_128 = end - 16, *last_32 = end - 4;
+
+ 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
+ 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
+
+; 23 : 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
+
+; 24 : 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_
+
+; 25 : __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
+
+; 26 : 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
+
+; 27 : 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
+
+; 28 : }
+
+ 001a5 eb 89 jmp SHORT $LN11@city_hash_
+$LN12@city_hash_:
+
+; 29 : 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
+
+; 30 : 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
+
+; 31 : 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_
+
+; 32 : 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
+
+; 33 : }
+
+ 001fa eb d4 jmp SHORT $LN14@city_hash_
+$LN15@city_hash_:
+
+; 34 : 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_
+
+; 35 : 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
+
+; 36 : }
+
+ 00225 eb d7 jmp SHORT $LN17@city_hash_
+$LN18@city_hash_:
+$LN23@city_hash_:
+$LN21@city_hash_:
+
+; 37 : }
+; 38 : 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
+
+; 39 : 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
+
+; 40 : 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
+
+; 41 : 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
+
+; 42 : 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
+
+; 43 : return hash;
+
+ 0026b 8b 45 04 mov eax, DWORD PTR hash$[rbp]
+
+; 44 : }
+
+ 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/StgSharp.C/x64/Debug/hash.obj b/StgSharp.C/x64/Debug/hash.obj
new file mode 100644
index 00000000..5fefe104
Binary files /dev/null and b/StgSharp.C/x64/Debug/hash.obj differ
diff --git a/StgSharp.C/x64/Debug/hash.sbr b/StgSharp.C/x64/Debug/hash.sbr
new file mode 100644
index 00000000..d4812a21
Binary files /dev/null and b/StgSharp.C/x64/Debug/hash.sbr differ
diff --git a/StgSharp.C/x64/Debug/intrinsic.cod b/StgSharp.C/x64/Debug/intrinsic.cod
new file mode 100644
index 00000000..e41ee02f
--- /dev/null
+++ b/StgSharp.C/x64/Debug/intrinsic.cod
@@ -0,0 +1,1178 @@
+; Listing generated by Microsoft (R) Optimizing Compiler Version 19.41.34120.0
+
+include listing.inc
+
+INCLUDELIB MSVCRTD
+INCLUDELIB OLDNAMES
+
+_DATA SEGMENT
+COMM infolog:BYTE:0200H
+_DATA ENDS
+msvcjmc SEGMENT
+__7583A0D2_mmintrin@h DB 01H
+__DDA0A690_concurrencysal@h DB 01H
+__9ECC08BE_sal@h DB 01H
+__E05D733A_vadefs@h DB 01H
+__6A355E0E_vcruntime@h DB 01H
+__1B0272D9_corecrt@h DB 01H
+__45DED006_corecrt_malloc@h DB 01H
+__FA77ED4C_malloc@h DB 01H
+__EAE0325A_xmmintrin@h DB 01H
+__0ED14FEE_winpackagefamily@h DB 01H
+__F92EF742_winapifamily@h DB 01H
+__22E515EB_sdkddkver@h DB 01H
+__A09A3A7D_excpt@h DB 01H
+__AC8FA393_stdarg@h DB 01H
+__29F49F40_specstrings_undef@h DB 01H
+__D0F42932_specstrings_strict@h DB 01H
+__F00405FD_sdv_driverspecs@h DB 01H
+__173E09CA_driverspecs@h DB 01H
+__9A452361_specstrings@h DB 01H
+__74484FB3_corecrt_wctype@h DB 01H
+__1EC467ED_ctype@h DB 01H
+__98517906_kernelspecs@h DB 01H
+__D3497022_basetsd@h DB 01H
+__61CC25A1_errno@h DB 01H
+__890838BD_vcruntime_string@h DB 01H
+__E4C945B4_corecrt_memcpy_s@h DB 01H
+__8EAFF484_corecrt_memory@h DB 01H
+__6490AEC5_corecrt_wstring@h DB 01H
+__E8295E1E_string@h DB 01H
+__7FCB5136_guiddef@h DB 01H
+__FF8A9E11_pshpack4@h DB 01H
+__D5438902_poppack@h DB 01H
+__FB07E2A3_pshpack2@h DB 01H
+__F6906775_pshpack8@h DB 01H
+__F9415CFA_pshpack1@h DB 01H
+__E58C6F1C_apiset@h DB 01H
+__A5C52262_ktmtypes@h DB 01H
+__FBBA8F9D_winnt@h DB 01H
+__A32D3D2C_minwindef@h DB 01H
+__7D798299_windef@h DB 01H
+__9AE108E9_apisetcconv@h DB 01H
+__9CE53D2C_minwinbase@h DB 01H
+__5D0AA210_apiquery2@h DB 01H
+__4DD4E726_processenv@h DB 01H
+__3575CC96_fileapi@h DB 01H
+__8EA220E6_fileapifromapp@h DB 01H
+__BF9B31FE_debugapi@h DB 01H
+__C3AFE134_utilapiset@h DB 01H
+__76F69E51_handleapi@h DB 01H
+__7E63D784_errhandlingapi@h DB 01H
+__FFA7003C_fibersapi@h DB 01H
+__8971CECF_namedpipeapi@h DB 01H
+__46C9D8A6_profileapi@h DB 01H
+__98D4F0A3_heapapi@h DB 01H
+__50EF2A88_ioapiset@h DB 01H
+__92EA1464_synchapi@h DB 01H
+__A53D8AED_interlockedapi@h DB 01H
+__B506CAAF_processthreadsapi@h DB 01H
+__FF735694_sysinfoapi@h DB 01H
+__29589789_memoryapi@h DB 01H
+__E9C7A663_enclaveapi@h DB 01H
+__D035F9F7_threadpoollegacyapiset@h DB 01H
+__C899130C_threadpoolapiset@h DB 01H
+__E0441EE7_jobapi@h DB 01H
+__CEF86838_jobapi2@h DB 01H
+__35AC6B9A_wow64apiset@h DB 01H
+__C8AE41A5_libloaderapi@h DB 01H
+__CC9E232D_securitybaseapi@h DB 01H
+__C9D0C9B8_namespaceapi@h DB 01H
+__30FF9CAD_systemtopologyapi@h DB 01H
+__4D358795_processtopologyapi@h DB 01H
+__40446D10_securityappcontainer@h DB 01H
+__3A952EDF_realtimeapiset@h DB 01H
+__F4865F4B_winerror@h DB 01H
+__53C1BD93_timezoneapi@h DB 01H
+__1FFBEDBF_winbase@h DB 01H
+__43D3FA34_wingdi@h DB 01H
+__D24A7391_tvout@h DB 01H
+__7713A6C8_winuser@h DB 01H
+__0B345F71_datetimeapi@h DB 01H
+__9AC6960C_winnls@h DB 01H
+__973A40A8_stringapiset@h DB 01H
+__CC46FEE2_wincontypes@h DB 01H
+__97D70BE1_consoleapi@h DB 01H
+__27EC5E18_consoleapi2@h DB 01H
+__262E342F_consoleapi3@h DB 01H
+__641DCD70_wincon@h DB 01H
+__5A96C7A7_verrsrc@h DB 01H
+__B69C6FF2_winver@h DB 01H
+__7AEB8C37_reason@h DB 01H
+__59F1A8A9_winreg@h DB 01H
+__EE0E2B7F_wnnc@h DB 01H
+__DCDB7054_winnetwk@h DB 01H
+__81DDEDE3_stralign@h DB 01H
+__2134D1B4_winsvc@h DB 01H
+__11C07376_mcx@h DB 01H
+__577CE3E7_ime_cmodes@h DB 01H
+__1E72C31E_imm@h DB 01H
+__E15BF856_windows@h DB 01H
+__8FC206A7_ssc_internal@h DB 01H
+__44420885_corecrt_stdio_config@h DB 01H
+__AB601D8D_corecrt_wstdio@h DB 01H
+__C1EC35D3_stdio@h DB 01H
+__13F5961F_stddef@h DB 01H
+__FD6DBD68_corecrt_search@h DB 01H
+__E2E33A61_corecrt_wstdlib@h DB 01H
+__26263363_limits@h DB 01H
+__6E5ACABA_stdlib@h DB 01H
+__9049550C_stb_image@h DB 01H
+__98501D5C_stdint@h DB 01H
+__264E89B8_khrplatform@h DB 01H
+__799FCA13_gl@h DB 01H
+__A57296D0_wgl@h DB 01H
+__417F438F_glfw3@h DB 01H
+__8F82BB96_emmintrin@h DB 01H
+__5023D31F_pmmintrin@h DB 01H
+__E0FAA09D_tmmintrin@h DB 01H
+__C9C1B51E_smmintrin@h DB 01H
+__ACA33CD2_nmmintrin@h DB 01H
+__7918C69C_wmmintrin@h DB 01H
+__B28C8B9B_zmmintrin@h DB 01H
+__85982951_immintrin@h DB 01H
+__19139D6C_assert@h DB 01H
+__0C16F932_StgSharpC@h DB 01H
+__B2F9F159_intrin0@inl@h DB 01H
+__0833F55F_setjmp@h DB 01H
+__3F5BC814_ammintrin@h DB 01H
+__2E054928_intrin@h DB 01H
+__5A8332CE_isa_availability@h DB 01H
+__EB6C2FE1_ssc_intrinsic@h DB 01H
+__BE01F05B_intrinsic@c DB 01H
+msvcjmc ENDS
+PUBLIC __check_isa_support
+PUBLIC load_intrinsic_function
+PUBLIC __JustMyCode_Default
+PUBLIC ??_C@_1KG@LKFICGJK@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@ ; `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 normalize:PROC
+EXTRN addmatrix2_sse:PROC
+EXTRN addmatrix2_avx:PROC
+EXTRN transpose23:PROC
+EXTRN transpose24:PROC
+EXTRN addmatrix3_sse:PROC
+EXTRN addmatrix3_avx:PROC
+EXTRN addmatrix3_512:PROC
+EXTRN transpose32:PROC
+EXTRN transpose33:PROC
+EXTRN transpose34:PROC
+EXTRN det_mat3:PROC
+EXTRN addmatrix4_sse:PROC
+EXTRN addmatrix4_avx:PROC
+EXTRN addmatrix4_512:PROC
+EXTRN transpose42:PROC
+EXTRN transpose43:PROC
+EXTRN transpose44:PROC
+EXTRN det_mat4:PROC
+EXTRN dot_41_sse:PROC
+EXTRN dot_31_sse:PROC
+EXTRN dot_41_avx:PROC
+EXTRN dot_31_avx:PROC
+EXTRN dot_32_sse:PROC
+EXTRN dot_32_avx:PROC
+EXTRN dot_42_sse:PROC
+EXTRN dot_42_avx:PROC
+EXTRN dot_43_sse:PROC
+EXTRN dot_43_avx:PROC
+EXTRN city_hash_simplify_sse:PROC
+EXTRN index_pair_sse:PROC
+EXTRN _RTC_InitBase:PROC
+EXTRN _RTC_Shutdown:PROC
+EXTRN __CheckForDebuggerJustMyCode:PROC
+EXTRN __isa_inverted:QWORD
+EXTRN __avx10_version:DWORD
+; COMDAT pdata
+pdata SEGMENT
+$pdata$__check_isa_support DD imagerel $LN7
+ DD imagerel $LN7+138
+ DD imagerel $unwind$__check_isa_support
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$load_intrinsic_function DD imagerel $LN11
+ DD imagerel $LN11+213
+ 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+434
+ 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+434
+ 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+434
+ DD imagerel $unwind$load_intrinsic_512
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$check_isa DD imagerel check_isa
+ DD imagerel check_isa+70
+ DD imagerel $unwind$check_isa
+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@_1KG@LKFICGJK@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@
+CONST SEGMENT
+??_C@_1KG@LKFICGJK@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@ DB 'D'
+ DB 00H, ':', 00H, '\', 00H, 'N', 00H, 'i', 00H, 't', 00H, 'l', 00H
+ DB 'o', 00H, 'a', 00H, 'd', 00H, 'I', 00H, 'n', 00H, 'd', 00H, 'u'
+ DB 00H, 's', 00H, 't', 00H, 'r', 00H, 'y', 00H, '\', 00H, 014H, 'x'
+ DB 'vzy', 098H, 0eeH, 'v\', 00H, '1', 00H, '-', 00H, 'F', 00H, 'l'
+ DB 00H, 'a', 00H, 'g', 00H, 's', 00H, 'h', 00H, 'i', 00H, 'p', 00H
+ DB '\', 00H, 'T', 00H, 'H', 00H, '2', 00H, '0', 00H, '2', 00H, '0'
+ DB 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'j', 00H, 'e', 00H
+ DB 'c', 00H, 't', 00H, 'F', 00H, 'i', 00H, 'l', 00H, 'e', 00H, '\'
+ DB 00H, 085H, 'Q8h', 090H, 'n', 0e3H, 'N', 01H, 'x\', 00H, 'S', 00H
+ DB 't', 00H, 'g', 00H, 'S', 00H, 'h', 00H, 'a', 00H, 'r', 00H, 'p'
+ DB 00H, '.', 00H, 'C', 00H, '\', 00H, 'i', 00H, 'n', 00H, 't', 00H
+ DB 'r', 00H, 'i', 00H, 'n', 00H, 's', 00H, 'i', 00H, 'c', 00H, '.'
+ DB 00H, 'c', 00H, 00H, 00H ; `string'
+CONST ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$check_isa DD 025051201H
+ DD 010d2312H
+ DD 07006001dH
+ DD 05005H
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$load_intrinsic_512 DD 025051301H
+ DD 010e2313H
+ DD 07007001dH
+ DD 05006H
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$load_intrinsic_avx DD 025051301H
+ DD 010e2313H
+ DD 07007001dH
+ DD 05006H
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$load_intrinsic_sse DD 025051301H
+ DD 010e2313H
+ DD 07007001dH
+ DD 05006H
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$load_intrinsic_function DD 025051301H
+ DD 010e2313H
+ DD 070070021H
+ DD 05006H
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$__check_isa_support DD 025051601H
+ DD 01112316H
+ DD 0700a001fH
+ DD 05009H
+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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\intrinsic.c
+; COMDAT check_isa
+_TEXT SEGMENT
+instruction_family$ = 224
+check_isa PROC ; COMDAT
+
+; 17 : {
+
+ 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:__BE01F05B_intrinsic@c
+ 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001e 90 npad 1
+
+; 18 : if (instruction_family != NEON) {
+
+ 0001f 83 bd e0 00 00
+ 00 05 cmp DWORD PTR instruction_family$[rbp], 5
+ 00026 74 12 je SHORT $LN2@check_isa
+
+; 19 : #if _MSC_VER
+; 20 : return __check_isa_support(instruction_family, 0);
+
+ 00028 33 d2 xor edx, edx
+ 0002a 8b 8d e0 00 00
+ 00 mov ecx, DWORD PTR instruction_family$[rbp]
+ 00030 e8 00 00 00 00 call __check_isa_support
+ 00035 0f b6 c0 movzx eax, al
+ 00038 eb 02 jmp SHORT $LN1@check_isa
+$LN2@check_isa:
+
+; 21 : #else
+; 22 : switch (instruction_family) {
+; 23 : case SSE:
+; 24 : return __builtin_cpu_supports("sse4.2");
+; 25 : case AVX256:
+; 26 : return __builtin_cpu_supports("avx2");
+; 27 : case AVX512:
+; 28 : return __builtin_cpu_supports("avx512f");
+; 29 : default:
+; 30 : return 0;
+; 31 : }
+; 32 : #endif // _MSC_VER
+; 33 : }
+; 34 :
+; 35 : #if defined(__ARM_NEON) || defined(__ARM_NEON__)
+; 36 : return 1;
+; 37 : #else
+; 38 : return 0;
+
+ 0003a 33 c0 xor eax, eax
+$LN1@check_isa:
+
+; 39 : #endif
+; 40 : }
+
+ 0003c 48 8d a5 c8 00
+ 00 00 lea rsp, QWORD PTR [rbp+200]
+ 00043 5f pop rdi
+ 00044 5d pop rbp
+ 00045 c3 ret 0
+check_isa ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\intrinsic.c
+; COMDAT load_intrinsic_512
+_TEXT SEGMENT
+context$ = 224
+load_intrinsic_512 PROC ; COMDAT
+
+; 115 : {
+
+ 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:__BE01F05B_intrinsic@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 116 : context->add_m2 = addmatrix2_avx;
+
+ 00020 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00027 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:addmatrix2_avx
+ 0002e 48 89 08 mov QWORD PTR [rax], rcx
+
+; 117 : context->add_m3 = addmatrix3_512;
+
+ 00031 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00038 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:addmatrix3_512
+ 0003f 48 89 48 08 mov QWORD PTR [rax+8], rcx
+
+; 118 : context->add_m4 = addmatrix4_512;
+
+ 00043 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 0004a 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:addmatrix4_512
+ 00051 48 89 48 10 mov QWORD PTR [rax+16], rcx
+
+; 119 : context->transpose_23 = transpose23;
+
+ 00055 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 0005c 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose23
+ 00063 48 89 48 68 mov QWORD PTR [rax+104], rcx
+
+; 120 : context->transpose_24 = transpose24;
+
+ 00067 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 0006e 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose24
+ 00075 48 89 48 70 mov QWORD PTR [rax+112], rcx
+
+; 121 : context->transpose_32 = transpose32;
+
+ 00079 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00080 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose32
+ 00087 48 89 48 78 mov QWORD PTR [rax+120], rcx
+
+; 122 : context->transpose_33 = transpose33;
+
+ 0008b 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00092 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose33
+ 00099 48 89 88 80 00
+ 00 00 mov QWORD PTR [rax+128], rcx
+
+; 123 : context->transpose_34 = transpose34;
+
+ 000a0 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 000a7 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose34
+ 000ae 48 89 88 88 00
+ 00 00 mov QWORD PTR [rax+136], rcx
+
+; 124 : context->transpose_42 = transpose42;
+
+ 000b5 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 000bc 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose42
+ 000c3 48 89 88 90 00
+ 00 00 mov QWORD PTR [rax+144], rcx
+
+; 125 : context->transpose_43 = transpose43;
+
+ 000ca 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 000d1 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose43
+ 000d8 48 89 88 98 00
+ 00 00 mov QWORD PTR [rax+152], rcx
+
+; 126 : context->transpose_44 = transpose44;
+
+ 000df 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 000e6 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose44
+ 000ed 48 89 88 a0 00
+ 00 00 mov QWORD PTR [rax+160], rcx
+
+; 127 : context->normalize_3 = normalize;
+
+ 000f4 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 000fb 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:normalize
+ 00102 48 89 48 60 mov QWORD PTR [rax+96], rcx
+
+; 128 : context->det_matrix33 = det_mat3;
+
+ 00106 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 0010d 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:det_mat3
+ 00114 48 89 48 20 mov QWORD PTR [rax+32], rcx
+
+; 129 : context->det_matrix44 = det_mat4;
+
+ 00118 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 0011f 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:det_mat4
+ 00126 48 89 48 28 mov QWORD PTR [rax+40], rcx
+
+; 130 : context->dot_31 = dot_31_avx;
+
+ 0012a 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00131 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:dot_31_avx
+ 00138 48 89 48 30 mov QWORD PTR [rax+48], rcx
+
+; 131 : context->dot_32 = dot_32_avx;
+
+ 0013c 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00143 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:dot_32_avx
+ 0014a 48 89 48 38 mov QWORD PTR [rax+56], rcx
+
+; 132 : context->dot_41 = dot_41_avx;
+
+ 0014e 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00155 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:dot_41_avx
+ 0015c 48 89 48 40 mov QWORD PTR [rax+64], rcx
+
+; 133 : context->dot_42 = dot_42_avx;
+
+ 00160 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00167 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:dot_42_avx
+ 0016e 48 89 48 48 mov QWORD PTR [rax+72], rcx
+
+; 134 : context->dot_43 = dot_43_avx;
+
+ 00172 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00179 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:dot_43_avx
+ 00180 48 89 48 50 mov QWORD PTR [rax+80], rcx
+
+; 135 : context->city_hash_simplify = city_hash_simplify_sse;
+
+ 00184 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 0018b 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:city_hash_simplify_sse
+ 00192 48 89 48 18 mov QWORD PTR [rax+24], rcx
+
+; 136 : context->index_pair = index_pair_sse;
+
+ 00196 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 0019d 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:index_pair_sse
+ 001a4 48 89 48 58 mov QWORD PTR [rax+88], rcx
+
+; 137 : }
+
+ 001a8 48 8d a5 c8 00
+ 00 00 lea rsp, QWORD PTR [rbp+200]
+ 001af 5f pop rdi
+ 001b0 5d pop rbp
+ 001b1 c3 ret 0
+load_intrinsic_512 ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\intrinsic.c
+; COMDAT load_intrinsic_avx
+_TEXT SEGMENT
+context$ = 224
+load_intrinsic_avx PROC ; COMDAT
+
+; 90 : {
+
+ 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:__BE01F05B_intrinsic@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 91 : context->add_m2 = addmatrix2_avx;
+
+ 00020 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00027 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:addmatrix2_avx
+ 0002e 48 89 08 mov QWORD PTR [rax], rcx
+
+; 92 : context->add_m3 = addmatrix3_avx;
+
+ 00031 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00038 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:addmatrix3_avx
+ 0003f 48 89 48 08 mov QWORD PTR [rax+8], rcx
+
+; 93 : context->add_m4 = addmatrix4_avx;
+
+ 00043 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 0004a 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:addmatrix4_avx
+ 00051 48 89 48 10 mov QWORD PTR [rax+16], rcx
+
+; 94 : context->transpose_23 = transpose23;
+
+ 00055 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 0005c 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose23
+ 00063 48 89 48 68 mov QWORD PTR [rax+104], rcx
+
+; 95 : context->transpose_24 = transpose24;
+
+ 00067 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 0006e 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose24
+ 00075 48 89 48 70 mov QWORD PTR [rax+112], rcx
+
+; 96 : context->transpose_32 = transpose32;
+
+ 00079 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00080 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose32
+ 00087 48 89 48 78 mov QWORD PTR [rax+120], rcx
+
+; 97 : context->transpose_33 = transpose33;
+
+ 0008b 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00092 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose33
+ 00099 48 89 88 80 00
+ 00 00 mov QWORD PTR [rax+128], rcx
+
+; 98 : context->transpose_34 = transpose34;
+
+ 000a0 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 000a7 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose34
+ 000ae 48 89 88 88 00
+ 00 00 mov QWORD PTR [rax+136], rcx
+
+; 99 : context->transpose_42 = transpose42;
+
+ 000b5 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 000bc 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose42
+ 000c3 48 89 88 90 00
+ 00 00 mov QWORD PTR [rax+144], rcx
+
+; 100 : context->transpose_43 = transpose43;
+
+ 000ca 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 000d1 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose43
+ 000d8 48 89 88 98 00
+ 00 00 mov QWORD PTR [rax+152], rcx
+
+; 101 : context->transpose_44 = transpose44;
+
+ 000df 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 000e6 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose44
+ 000ed 48 89 88 a0 00
+ 00 00 mov QWORD PTR [rax+160], rcx
+
+; 102 : context->normalize_3 = normalize;
+
+ 000f4 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 000fb 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:normalize
+ 00102 48 89 48 60 mov QWORD PTR [rax+96], rcx
+
+; 103 : context->det_matrix33 = det_mat3;
+
+ 00106 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 0010d 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:det_mat3
+ 00114 48 89 48 20 mov QWORD PTR [rax+32], rcx
+
+; 104 : context->det_matrix44 = det_mat4;
+
+ 00118 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 0011f 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:det_mat4
+ 00126 48 89 48 28 mov QWORD PTR [rax+40], rcx
+
+; 105 : context->dot_31 = dot_31_avx;
+
+ 0012a 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00131 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:dot_31_avx
+ 00138 48 89 48 30 mov QWORD PTR [rax+48], rcx
+
+; 106 : context->dot_32 = dot_32_avx;
+
+ 0013c 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00143 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:dot_32_avx
+ 0014a 48 89 48 38 mov QWORD PTR [rax+56], rcx
+
+; 107 : context->dot_41 = dot_41_avx;
+
+ 0014e 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00155 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:dot_41_avx
+ 0015c 48 89 48 40 mov QWORD PTR [rax+64], rcx
+
+; 108 : context->dot_42 = dot_42_avx;
+
+ 00160 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00167 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:dot_42_avx
+ 0016e 48 89 48 48 mov QWORD PTR [rax+72], rcx
+
+; 109 : context->dot_43 = dot_43_avx;
+
+ 00172 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00179 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:dot_43_avx
+ 00180 48 89 48 50 mov QWORD PTR [rax+80], rcx
+
+; 110 : context->city_hash_simplify = city_hash_simplify_sse;
+
+ 00184 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 0018b 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:city_hash_simplify_sse
+ 00192 48 89 48 18 mov QWORD PTR [rax+24], rcx
+
+; 111 : context->index_pair = index_pair_sse;
+
+ 00196 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 0019d 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:index_pair_sse
+ 001a4 48 89 48 58 mov QWORD PTR [rax+88], rcx
+
+; 112 : }
+
+ 001a8 48 8d a5 c8 00
+ 00 00 lea rsp, QWORD PTR [rbp+200]
+ 001af 5f pop rdi
+ 001b0 5d pop rbp
+ 001b1 c3 ret 0
+load_intrinsic_avx ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\intrinsic.c
+; COMDAT load_intrinsic_sse
+_TEXT SEGMENT
+context$ = 224
+load_intrinsic_sse PROC ; COMDAT
+
+; 65 : {
+
+ 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:__BE01F05B_intrinsic@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 66 : context->add_m2 = addmatrix2_sse;
+
+ 00020 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00027 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:addmatrix2_sse
+ 0002e 48 89 08 mov QWORD PTR [rax], rcx
+
+; 67 : context->add_m3 = addmatrix3_sse;
+
+ 00031 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00038 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:addmatrix3_sse
+ 0003f 48 89 48 08 mov QWORD PTR [rax+8], rcx
+
+; 68 : context->add_m4 = addmatrix4_sse;
+
+ 00043 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 0004a 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:addmatrix4_sse
+ 00051 48 89 48 10 mov QWORD PTR [rax+16], rcx
+
+; 69 : context->transpose_23 = transpose23;
+
+ 00055 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 0005c 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose23
+ 00063 48 89 48 68 mov QWORD PTR [rax+104], rcx
+
+; 70 : context->transpose_24 = transpose24;
+
+ 00067 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 0006e 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose24
+ 00075 48 89 48 70 mov QWORD PTR [rax+112], rcx
+
+; 71 : context->transpose_32 = transpose32;
+
+ 00079 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00080 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose32
+ 00087 48 89 48 78 mov QWORD PTR [rax+120], rcx
+
+; 72 : context->transpose_33 = transpose33;
+
+ 0008b 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00092 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose33
+ 00099 48 89 88 80 00
+ 00 00 mov QWORD PTR [rax+128], rcx
+
+; 73 : context->transpose_34 = transpose34;
+
+ 000a0 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 000a7 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose34
+ 000ae 48 89 88 88 00
+ 00 00 mov QWORD PTR [rax+136], rcx
+
+; 74 : context->transpose_42 = transpose42;
+
+ 000b5 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 000bc 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose42
+ 000c3 48 89 88 90 00
+ 00 00 mov QWORD PTR [rax+144], rcx
+
+; 75 : context->transpose_43 = transpose43;
+
+ 000ca 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 000d1 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose43
+ 000d8 48 89 88 98 00
+ 00 00 mov QWORD PTR [rax+152], rcx
+
+; 76 : context->transpose_44 = transpose44;
+
+ 000df 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 000e6 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:transpose44
+ 000ed 48 89 88 a0 00
+ 00 00 mov QWORD PTR [rax+160], rcx
+
+; 77 : context->normalize_3 = normalize;
+
+ 000f4 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 000fb 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:normalize
+ 00102 48 89 48 60 mov QWORD PTR [rax+96], rcx
+
+; 78 : context->det_matrix33 = det_mat3;
+
+ 00106 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 0010d 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:det_mat3
+ 00114 48 89 48 20 mov QWORD PTR [rax+32], rcx
+
+; 79 : context->det_matrix44 = det_mat4;
+
+ 00118 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 0011f 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:det_mat4
+ 00126 48 89 48 28 mov QWORD PTR [rax+40], rcx
+
+; 80 : context->dot_31 = dot_31_sse;
+
+ 0012a 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00131 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:dot_31_sse
+ 00138 48 89 48 30 mov QWORD PTR [rax+48], rcx
+
+; 81 : context->dot_32 = dot_32_sse;
+
+ 0013c 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00143 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:dot_32_sse
+ 0014a 48 89 48 38 mov QWORD PTR [rax+56], rcx
+
+; 82 : context->dot_41 = dot_41_sse;
+
+ 0014e 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00155 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:dot_41_sse
+ 0015c 48 89 48 40 mov QWORD PTR [rax+64], rcx
+
+; 83 : context->dot_42 = dot_42_sse;
+
+ 00160 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00167 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:dot_42_sse
+ 0016e 48 89 48 48 mov QWORD PTR [rax+72], rcx
+
+; 84 : context->dot_43 = dot_43_sse;
+
+ 00172 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 00179 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:dot_43_sse
+ 00180 48 89 48 50 mov QWORD PTR [rax+80], rcx
+
+; 85 : context->city_hash_simplify = city_hash_simplify_sse;
+
+ 00184 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 0018b 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:city_hash_simplify_sse
+ 00192 48 89 48 18 mov QWORD PTR [rax+24], rcx
+
+; 86 : context->index_pair = index_pair_sse;
+
+ 00196 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR context$[rbp]
+ 0019d 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:index_pair_sse
+ 001a4 48 89 48 58 mov QWORD PTR [rax+88], rcx
+
+; 87 : }
+
+ 001a8 48 8d a5 c8 00
+ 00 00 lea rsp, QWORD PTR [rbp+200]
+ 001af 5f pop rdi
+ 001b0 5d pop rbp
+ 001b1 c3 ret 0
+load_intrinsic_sse ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\intrinsic.c
+; COMDAT load_intrinsic_function
+_TEXT SEGMENT
+context$ = 8
+intrinsic_context$ = 256
+load_intrinsic_function PROC ; COMDAT
+
+; 43 : {
+
+$LN11:
+ 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:__BE01F05B_intrinsic@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 44 : ssc_null_assert(intrinsic_context);
+
+ 00020 48 83 bd 00 01
+ 00 00 00 cmp QWORD PTR intrinsic_context$[rbp], 0
+ 00028 75 1c jne SHORT $LN10@load_intri
+ 0002a 41 b8 2c 00 00
+ 00 mov r8d, 44 ; 0000002cH
+ 00030 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:??_C@_1KG@LKFICGJK@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@
+ 00037 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@
+ 0003e ff 15 00 00 00
+ 00 call QWORD PTR __imp__wassert
+ 00044 33 c0 xor eax, eax
+$LN10@load_intri:
+
+; 45 :
+; 46 : ssc_intrinsic *context = (ssc_intrinsic *)intrinsic_context;
+
+ 00046 48 8b 85 00 01
+ 00 00 mov rax, QWORD PTR intrinsic_context$[rbp]
+ 0004d 48 89 45 08 mov QWORD PTR context$[rbp], rax
+
+; 47 :
+; 48 : if (check_isa(AVX512)) {
+
+ 00051 b9 04 00 00 00 mov ecx, 4
+ 00056 e8 00 00 00 00 call check_isa
+ 0005b 85 c0 test eax, eax
+ 0005d 74 13 je SHORT $LN2@load_intri
+
+; 49 : load_intrinsic_512(context);
+
+ 0005f 48 8b 4d 08 mov rcx, QWORD PTR context$[rbp]
+ 00063 e8 00 00 00 00 call load_intrinsic_512
+ 00068 90 npad 1
+
+; 50 : return 3;
+
+ 00069 b8 03 00 00 00 mov eax, 3
+ 0006e eb 5b jmp SHORT $LN1@load_intri
+ 00070 eb 57 jmp SHORT $LN3@load_intri
+$LN2@load_intri:
+
+; 51 : } else if (check_isa(AVX256)) {
+
+ 00072 b9 02 00 00 00 mov ecx, 2
+ 00077 e8 00 00 00 00 call check_isa
+ 0007c 85 c0 test eax, eax
+ 0007e 74 13 je SHORT $LN4@load_intri
+
+; 52 : load_intrinsic_avx(context);
+
+ 00080 48 8b 4d 08 mov rcx, QWORD PTR context$[rbp]
+ 00084 e8 00 00 00 00 call load_intrinsic_avx
+ 00089 90 npad 1
+
+; 53 : return 2;
+
+ 0008a b8 02 00 00 00 mov eax, 2
+ 0008f eb 3a jmp SHORT $LN1@load_intri
+ 00091 eb 36 jmp SHORT $LN5@load_intri
+$LN4@load_intri:
+
+; 54 : } else if (check_isa(SSE)) {
+
+ 00093 b9 10 00 00 00 mov ecx, 16
+ 00098 e8 00 00 00 00 call check_isa
+ 0009d 85 c0 test eax, eax
+ 0009f 74 13 je SHORT $LN6@load_intri
+
+; 55 : load_intrinsic_sse(context);
+
+ 000a1 48 8b 4d 08 mov rcx, QWORD PTR context$[rbp]
+ 000a5 e8 00 00 00 00 call load_intrinsic_sse
+ 000aa 90 npad 1
+
+; 56 : return 1;
+
+ 000ab b8 01 00 00 00 mov eax, 1
+ 000b0 eb 19 jmp SHORT $LN1@load_intri
+ 000b2 eb 15 jmp SHORT $LN7@load_intri
+$LN6@load_intri:
+
+; 57 : } else if (check_isa(NEON)) {
+
+ 000b4 b9 05 00 00 00 mov ecx, 5
+ 000b9 e8 00 00 00 00 call check_isa
+ 000be 85 c0 test eax, eax
+ 000c0 74 07 je SHORT $LN8@load_intri
+
+; 58 : return -1;
+
+ 000c2 b8 ff ff ff ff mov eax, -1
+ 000c7 eb 02 jmp SHORT $LN1@load_intri
+$LN8@load_intri:
+$LN7@load_intri:
+$LN5@load_intri:
+$LN3@load_intri:
+
+; 59 : }
+; 60 :
+; 61 : return 0;
+
+ 000c9 33 c0 xor eax, eax
+$LN1@load_intri:
+
+; 62 : }
+
+ 000cb 48 8d a5 e8 00
+ 00 00 lea rsp, QWORD PTR [rbp+232]
+ 000d2 5f pop rdi
+ 000d3 5d pop rbp
+ 000d4 c3 ret 0
+load_intrinsic_function ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\immintrin.h
+; COMDAT __check_isa_support
+_TEXT SEGMENT
+tv69 = 192
+tv71 = 196
+__x$ = 240
+__v$ = 248
+__check_isa_support PROC ; COMDAT
+
+; 109 : { return ((__x & __isa_inverted) == 0) && ((unsigned char)__avx10_version >= __v); }
+
+$LN7:
+ 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:__85982951_immintrin@h
+ 0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00022 90 npad 1
+ 00023 8b 85 f0 00 00
+ 00 mov eax, DWORD PTR __x$[rbp]
+ 00029 48 23 05 00 00
+ 00 00 and rax, QWORD PTR __isa_inverted
+ 00030 48 85 c0 test rax, rax
+ 00033 75 1b jne SHORT $LN3@check_isa_
+ 00035 0f b6 05 00 00
+ 00 00 movzx eax, BYTE PTR __avx10_version
+ 0003c 3b 85 f8 00 00
+ 00 cmp eax, DWORD PTR __v$[rbp]
+ 00042 72 0c jb SHORT $LN3@check_isa_
+ 00044 c7 85 c0 00 00
+ 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1
+ 0004e eb 0a jmp SHORT $LN4@check_isa_
+$LN3@check_isa_:
+ 00050 c7 85 c0 00 00
+ 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0
+$LN4@check_isa_:
+ 0005a 83 bd c0 00 00
+ 00 00 cmp DWORD PTR tv69[rbp], 0
+ 00061 75 0c jne SHORT $LN5@check_isa_
+ 00063 c7 85 c4 00 00
+ 00 00 00 00 00 mov DWORD PTR tv71[rbp], 0
+ 0006d eb 0a jmp SHORT $LN6@check_isa_
+$LN5@check_isa_:
+ 0006f c7 85 c4 00 00
+ 00 01 00 00 00 mov DWORD PTR tv71[rbp], 1
+$LN6@check_isa_:
+ 00079 0f b6 85 c4 00
+ 00 00 movzx eax, BYTE PTR tv71[rbp]
+ 00080 48 8d a5 d8 00
+ 00 00 lea rsp, QWORD PTR [rbp+216]
+ 00087 5f pop rdi
+ 00088 5d pop rbp
+ 00089 c3 ret 0
+__check_isa_support ENDP
+_TEXT ENDS
+END
diff --git a/StgSharp.C/x64/Debug/intrinsic.obj b/StgSharp.C/x64/Debug/intrinsic.obj
new file mode 100644
index 00000000..4c75db74
Binary files /dev/null and b/StgSharp.C/x64/Debug/intrinsic.obj differ
diff --git a/StgSharp.C/x64/Debug/intrinsic.sbr b/StgSharp.C/x64/Debug/intrinsic.sbr
new file mode 100644
index 00000000..4b25a191
Binary files /dev/null and b/StgSharp.C/x64/Debug/intrinsic.sbr differ
diff --git a/StgSharp.C/x64/Debug/mat2.cod b/StgSharp.C/x64/Debug/mat2.cod
new file mode 100644
index 00000000..6bec1801
--- /dev/null
+++ b/StgSharp.C/x64/Debug/mat2.cod
@@ -0,0 +1,634 @@
+; Listing generated by Microsoft (R) Optimizing Compiler Version 19.41.34120.0
+
+include listing.inc
+
+INCLUDELIB MSVCRTD
+INCLUDELIB OLDNAMES
+
+_DATA SEGMENT
+COMM infolog:BYTE:0200H
+_DATA ENDS
+msvcjmc SEGMENT
+__7583A0D2_mmintrin@h DB 01H
+__DDA0A690_concurrencysal@h DB 01H
+__9ECC08BE_sal@h DB 01H
+__E05D733A_vadefs@h DB 01H
+__6A355E0E_vcruntime@h DB 01H
+__1B0272D9_corecrt@h DB 01H
+__45DED006_corecrt_malloc@h DB 01H
+__FA77ED4C_malloc@h DB 01H
+__EAE0325A_xmmintrin@h DB 01H
+__0ED14FEE_winpackagefamily@h DB 01H
+__F92EF742_winapifamily@h DB 01H
+__22E515EB_sdkddkver@h DB 01H
+__A09A3A7D_excpt@h DB 01H
+__AC8FA393_stdarg@h DB 01H
+__29F49F40_specstrings_undef@h DB 01H
+__D0F42932_specstrings_strict@h DB 01H
+__F00405FD_sdv_driverspecs@h DB 01H
+__173E09CA_driverspecs@h DB 01H
+__9A452361_specstrings@h DB 01H
+__74484FB3_corecrt_wctype@h DB 01H
+__1EC467ED_ctype@h DB 01H
+__98517906_kernelspecs@h DB 01H
+__D3497022_basetsd@h DB 01H
+__61CC25A1_errno@h DB 01H
+__890838BD_vcruntime_string@h DB 01H
+__E4C945B4_corecrt_memcpy_s@h DB 01H
+__8EAFF484_corecrt_memory@h DB 01H
+__6490AEC5_corecrt_wstring@h DB 01H
+__E8295E1E_string@h DB 01H
+__7FCB5136_guiddef@h DB 01H
+__FF8A9E11_pshpack4@h DB 01H
+__D5438902_poppack@h DB 01H
+__FB07E2A3_pshpack2@h DB 01H
+__F6906775_pshpack8@h DB 01H
+__F9415CFA_pshpack1@h DB 01H
+__E58C6F1C_apiset@h DB 01H
+__A5C52262_ktmtypes@h DB 01H
+__FBBA8F9D_winnt@h DB 01H
+__A32D3D2C_minwindef@h DB 01H
+__7D798299_windef@h DB 01H
+__9AE108E9_apisetcconv@h DB 01H
+__9CE53D2C_minwinbase@h DB 01H
+__5D0AA210_apiquery2@h DB 01H
+__4DD4E726_processenv@h DB 01H
+__3575CC96_fileapi@h DB 01H
+__8EA220E6_fileapifromapp@h DB 01H
+__BF9B31FE_debugapi@h DB 01H
+__C3AFE134_utilapiset@h DB 01H
+__76F69E51_handleapi@h DB 01H
+__7E63D784_errhandlingapi@h DB 01H
+__FFA7003C_fibersapi@h DB 01H
+__8971CECF_namedpipeapi@h DB 01H
+__46C9D8A6_profileapi@h DB 01H
+__98D4F0A3_heapapi@h DB 01H
+__50EF2A88_ioapiset@h DB 01H
+__92EA1464_synchapi@h DB 01H
+__A53D8AED_interlockedapi@h DB 01H
+__B506CAAF_processthreadsapi@h DB 01H
+__FF735694_sysinfoapi@h DB 01H
+__29589789_memoryapi@h DB 01H
+__E9C7A663_enclaveapi@h DB 01H
+__D035F9F7_threadpoollegacyapiset@h DB 01H
+__C899130C_threadpoolapiset@h DB 01H
+__E0441EE7_jobapi@h DB 01H
+__CEF86838_jobapi2@h DB 01H
+__35AC6B9A_wow64apiset@h DB 01H
+__C8AE41A5_libloaderapi@h DB 01H
+__CC9E232D_securitybaseapi@h DB 01H
+__C9D0C9B8_namespaceapi@h DB 01H
+__30FF9CAD_systemtopologyapi@h DB 01H
+__4D358795_processtopologyapi@h DB 01H
+__40446D10_securityappcontainer@h DB 01H
+__3A952EDF_realtimeapiset@h DB 01H
+__F4865F4B_winerror@h DB 01H
+__53C1BD93_timezoneapi@h DB 01H
+__1FFBEDBF_winbase@h DB 01H
+__43D3FA34_wingdi@h DB 01H
+__D24A7391_tvout@h DB 01H
+__7713A6C8_winuser@h DB 01H
+__0B345F71_datetimeapi@h DB 01H
+__9AC6960C_winnls@h DB 01H
+__973A40A8_stringapiset@h DB 01H
+__CC46FEE2_wincontypes@h DB 01H
+__97D70BE1_consoleapi@h DB 01H
+__27EC5E18_consoleapi2@h DB 01H
+__262E342F_consoleapi3@h DB 01H
+__641DCD70_wincon@h DB 01H
+__5A96C7A7_verrsrc@h DB 01H
+__B69C6FF2_winver@h DB 01H
+__7AEB8C37_reason@h DB 01H
+__59F1A8A9_winreg@h DB 01H
+__EE0E2B7F_wnnc@h DB 01H
+__DCDB7054_winnetwk@h DB 01H
+__81DDEDE3_stralign@h DB 01H
+__2134D1B4_winsvc@h DB 01H
+__11C07376_mcx@h DB 01H
+__577CE3E7_ime_cmodes@h DB 01H
+__1E72C31E_imm@h DB 01H
+__E15BF856_windows@h DB 01H
+__8FC206A7_ssc_internal@h DB 01H
+__44420885_corecrt_stdio_config@h DB 01H
+__AB601D8D_corecrt_wstdio@h DB 01H
+__C1EC35D3_stdio@h DB 01H
+__13F5961F_stddef@h DB 01H
+__FD6DBD68_corecrt_search@h DB 01H
+__E2E33A61_corecrt_wstdlib@h DB 01H
+__26263363_limits@h DB 01H
+__6E5ACABA_stdlib@h DB 01H
+__9049550C_stb_image@h DB 01H
+__98501D5C_stdint@h DB 01H
+__264E89B8_khrplatform@h DB 01H
+__799FCA13_gl@h DB 01H
+__A57296D0_wgl@h DB 01H
+__417F438F_glfw3@h DB 01H
+__8F82BB96_emmintrin@h DB 01H
+__5023D31F_pmmintrin@h DB 01H
+__E0FAA09D_tmmintrin@h DB 01H
+__C9C1B51E_smmintrin@h DB 01H
+__ACA33CD2_nmmintrin@h DB 01H
+__7918C69C_wmmintrin@h DB 01H
+__B28C8B9B_zmmintrin@h DB 01H
+__85982951_immintrin@h DB 01H
+__19139D6C_assert@h DB 01H
+__0C16F932_StgSharpC@h DB 01H
+__B2F9F159_intrin0@inl@h DB 01H
+__0833F55F_setjmp@h DB 01H
+__3F5BC814_ammintrin@h DB 01H
+__2E054928_intrin@h DB 01H
+__5A8332CE_isa_availability@h DB 01H
+__EB6C2FE1_ssc_intrinsic@h DB 01H
+__5972891A_mat2@c DB 01H
+msvcjmc ENDS
+PUBLIC addmatrix2_sse
+PUBLIC addmatrix2_avx
+PUBLIC transpose23
+PUBLIC transpose24
+PUBLIC __JustMyCode_Default
+EXTRN _RTC_InitBase:PROC
+EXTRN _RTC_Shutdown:PROC
+EXTRN __CheckForDebuggerJustMyCode:PROC
+; COMDAT pdata
+pdata SEGMENT
+$pdata$addmatrix2_sse DD imagerel $LN3
+ DD imagerel $LN3+254
+ DD imagerel $unwind$addmatrix2_sse
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$addmatrix2_avx DD imagerel $LN3
+ DD imagerel $LN3+169
+ DD imagerel $unwind$addmatrix2_avx
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$transpose23 DD imagerel $LN3
+ DD imagerel $LN3+271
+ DD imagerel $unwind$transpose23
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$transpose24 DD imagerel $LN3
+ DD imagerel $LN3+305
+ DD imagerel $unwind$transpose24
+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$transpose24 DD 025051801H
+ DD 01132318H
+ DD 0700c0029H
+ DD 0500bH
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$transpose23 DD 025051801H
+ DD 01132318H
+ DD 0700c0029H
+ DD 0500bH
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$addmatrix2_avx DD 02d062801H
+ DD 011a231fH
+ DD 07013002aH
+ DD 0d0115012H
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$addmatrix2_sse DD 025051d01H
+ DD 0118231dH
+ DD 070110029H
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\mat2.c
+; COMDAT transpose24
+_TEXT SEGMENT
+t0$ = 16
+t1$ = 64
+source$ = 320
+target$ = 328
+transpose24 PROC ; COMDAT
+
+; 17 : {
+
+$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 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:__5972891A_mat2@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 18 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+
+ 00025 b8 10 00 00 00 mov eax, 16
+ 0002a 48 6b c0 01 imul rax, rax, 1
+ 0002e 48 8b 8d 40 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00035 48 03 c8 add rcx, rax
+ 00038 48 8b c1 mov rax, rcx
+ 0003b 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0003e b8 10 00 00 00 mov eax, 16
+ 00043 48 6b c0 00 imul rax, rax, 0
+ 00047 48 8b 8d 40 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 0004e 48 03 c8 add rcx, rax
+ 00051 48 8b c1 mov rax, rcx
+ 00054 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00057 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
+ 0005b 0f 28 c1 movaps xmm0, xmm1
+ 0005e 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0
+
+; 19 : _MM_SHUFFLE(1, 0, 1, 0));
+; 20 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+
+ 00062 b8 10 00 00 00 mov eax, 16
+ 00067 48 6b c0 01 imul rax, rax, 1
+ 0006b 48 8b 8d 40 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00072 48 03 c8 add rcx, rax
+ 00075 48 8b c1 mov rax, rcx
+ 00078 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0007b b8 10 00 00 00 mov eax, 16
+ 00080 48 6b c0 00 imul rax, rax, 0
+ 00084 48 8b 8d 40 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 0008b 48 03 c8 add rcx, rax
+ 0008e 48 8b c1 mov rax, rcx
+ 00091 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00094 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH
+ 00098 0f 28 c1 movaps xmm0, xmm1
+ 0009b 0f 29 45 40 movaps XMMWORD PTR t1$[rbp], xmm0
+
+; 21 : _MM_SHUFFLE(3, 2, 3, 2));
+; 22 :
+; 23 : target->column[0] = _mm_shuffle_ps(t0, zero_vec, _MM_SHUFFLE(2, 0, 2, 0));
+
+ 0009f 0f 57 c0 xorps xmm0, xmm0
+ 000a2 0f 28 4d 10 movaps xmm1, XMMWORD PTR t0$[rbp]
+ 000a6 0f c6 c8 88 shufps xmm1, xmm0, 136 ; 00000088H
+ 000aa 0f 28 c1 movaps xmm0, xmm1
+ 000ad b8 10 00 00 00 mov eax, 16
+ 000b2 48 6b c0 00 imul rax, rax, 0
+ 000b6 48 8b 8d 48 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 000bd 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 24 : target->column[1] = _mm_shuffle_ps(t0, zero_vec, _MM_SHUFFLE(3, 1, 3, 1));
+
+ 000c1 0f 57 c0 xorps xmm0, xmm0
+ 000c4 0f 28 4d 10 movaps xmm1, XMMWORD PTR t0$[rbp]
+ 000c8 0f c6 c8 dd shufps xmm1, xmm0, 221 ; 000000ddH
+ 000cc 0f 28 c1 movaps xmm0, xmm1
+ 000cf b8 10 00 00 00 mov eax, 16
+ 000d4 48 6b c0 01 imul rax, rax, 1
+ 000d8 48 8b 8d 48 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 000df 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 25 : target->column[2] = _mm_shuffle_ps(t1, zero_vec, _MM_SHUFFLE(2, 0, 2, 0));
+
+ 000e3 0f 57 c0 xorps xmm0, xmm0
+ 000e6 0f 28 4d 40 movaps xmm1, XMMWORD PTR t1$[rbp]
+ 000ea 0f c6 c8 88 shufps xmm1, xmm0, 136 ; 00000088H
+ 000ee 0f 28 c1 movaps xmm0, xmm1
+ 000f1 b8 10 00 00 00 mov eax, 16
+ 000f6 48 6b c0 02 imul rax, rax, 2
+ 000fa 48 8b 8d 48 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 00101 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 26 : target->column[3] = _mm_shuffle_ps(t1, zero_vec, _MM_SHUFFLE(3, 1, 3, 1));
+
+ 00105 0f 57 c0 xorps xmm0, xmm0
+ 00108 0f 28 4d 40 movaps xmm1, XMMWORD PTR t1$[rbp]
+ 0010c 0f c6 c8 dd shufps xmm1, xmm0, 221 ; 000000ddH
+ 00110 0f 28 c1 movaps xmm0, xmm1
+ 00113 b8 10 00 00 00 mov eax, 16
+ 00118 48 6b c0 03 imul rax, rax, 3
+ 0011c 48 8b 8d 48 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 00123 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 27 : }
+
+ 00127 48 8d a5 28 01
+ 00 00 lea rsp, QWORD PTR [rbp+296]
+ 0012e 5f pop rdi
+ 0012f 5d pop rbp
+ 00130 c3 ret 0
+transpose24 ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\mat2.c
+; COMDAT transpose23
+_TEXT SEGMENT
+t0$ = 16
+t1$ = 64
+source$ = 320
+target$ = 328
+transpose23 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 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:__5972891A_mat2@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 6 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+
+ 00025 b8 10 00 00 00 mov eax, 16
+ 0002a 48 6b c0 01 imul rax, rax, 1
+ 0002e 48 8b 8d 40 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00035 48 03 c8 add rcx, rax
+ 00038 48 8b c1 mov rax, rcx
+ 0003b 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0003e b8 10 00 00 00 mov eax, 16
+ 00043 48 6b c0 00 imul rax, rax, 0
+ 00047 48 8b 8d 40 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 0004e 48 03 c8 add rcx, rax
+ 00051 48 8b c1 mov rax, rcx
+ 00054 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00057 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
+ 0005b 0f 28 c1 movaps xmm0, xmm1
+ 0005e 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0
+
+; 7 : _MM_SHUFFLE(1, 0, 1, 0));
+; 8 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+
+ 00062 b8 10 00 00 00 mov eax, 16
+ 00067 48 6b c0 01 imul rax, rax, 1
+ 0006b 48 8b 8d 40 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00072 48 03 c8 add rcx, rax
+ 00075 48 8b c1 mov rax, rcx
+ 00078 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0007b b8 10 00 00 00 mov eax, 16
+ 00080 48 6b c0 00 imul rax, rax, 0
+ 00084 48 8b 8d 40 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 0008b 48 03 c8 add rcx, rax
+ 0008e 48 8b c1 mov rax, rcx
+ 00091 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00094 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH
+ 00098 0f 28 c1 movaps xmm0, xmm1
+ 0009b 0f 29 45 40 movaps XMMWORD PTR t1$[rbp], xmm0
+
+; 9 : _MM_SHUFFLE(3, 2, 3, 2));
+; 10 :
+; 11 : target->column[0] = _mm_shuffle_ps(t0, zero_vec, _MM_SHUFFLE(2, 0, 2, 0));
+
+ 0009f 0f 57 c0 xorps xmm0, xmm0
+ 000a2 0f 28 4d 10 movaps xmm1, XMMWORD PTR t0$[rbp]
+ 000a6 0f c6 c8 88 shufps xmm1, xmm0, 136 ; 00000088H
+ 000aa 0f 28 c1 movaps xmm0, xmm1
+ 000ad b8 10 00 00 00 mov eax, 16
+ 000b2 48 6b c0 00 imul rax, rax, 0
+ 000b6 48 8b 8d 48 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 000bd 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 12 : target->column[1] = _mm_shuffle_ps(t0, zero_vec, _MM_SHUFFLE(3, 1, 3, 1));
+
+ 000c1 0f 57 c0 xorps xmm0, xmm0
+ 000c4 0f 28 4d 10 movaps xmm1, XMMWORD PTR t0$[rbp]
+ 000c8 0f c6 c8 dd shufps xmm1, xmm0, 221 ; 000000ddH
+ 000cc 0f 28 c1 movaps xmm0, xmm1
+ 000cf b8 10 00 00 00 mov eax, 16
+ 000d4 48 6b c0 01 imul rax, rax, 1
+ 000d8 48 8b 8d 48 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 000df 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 13 : target->column[2] = _mm_shuffle_ps(t1, zero_vec, _MM_SHUFFLE(2, 0, 2, 0));
+
+ 000e3 0f 57 c0 xorps xmm0, xmm0
+ 000e6 0f 28 4d 40 movaps xmm1, XMMWORD PTR t1$[rbp]
+ 000ea 0f c6 c8 88 shufps xmm1, xmm0, 136 ; 00000088H
+ 000ee 0f 28 c1 movaps xmm0, xmm1
+ 000f1 b8 10 00 00 00 mov eax, 16
+ 000f6 48 6b c0 02 imul rax, rax, 2
+ 000fa 48 8b 8d 48 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 00101 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 14 : }
+
+ 00105 48 8d a5 28 01
+ 00 00 lea rsp, QWORD PTR [rbp+296]
+ 0010c 5f pop rdi
+ 0010d 5d pop rbp
+ 0010e c3 ret 0
+transpose23 ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\mat2.c
+; COMDAT addmatrix2_avx
+_TEXT SEGMENT
+temp$ = 32
+left$ = 336
+right$ = 344
+ans$ = 352
+addmatrix2_avx PROC ; COMDAT
+
+; 39 : {
+
+$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 01
+ 00 00 sub rsp, 336 ; 00000150H
+ 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:__5972891A_mat2@c
+ 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00034 90 npad 1
+
+; 40 : __m256 temp = _mm256_add_ps(ALIGN256(left->column[0]), ALIGN256(right->column[0]));
+
+ 00035 b8 10 00 00 00 mov eax, 16
+ 0003a 48 6b c0 00 imul rax, rax, 0
+ 0003e 49 8b 8d 58 01
+ 00 00 mov rcx, QWORD PTR right$[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 b8 10 00 00 00 mov eax, 16
+ 00054 48 6b c0 00 imul rax, rax, 0
+ 00058 49 8b 8d 50 01
+ 00 00 mov rcx, QWORD PTR left$[r13]
+ 0005f 48 03 c8 add rcx, rax
+ 00062 48 8b c1 mov rax, rcx
+ 00065 c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax]
+ 00069 c5 f4 58 c0 vaddps ymm0, ymm1, ymm0
+ 0006d c5 fc 11 45 20 vmovups YMMWORD PTR temp$[rbp], ymm0
+
+; 41 : _mm256_storeu_ps(&ans->m[0][0], temp);
+
+ 00072 b8 08 00 00 00 mov eax, 8
+ 00077 48 6b c0 00 imul rax, rax, 0
+ 0007b 49 8b 8d 60 01
+ 00 00 mov rcx, QWORD PTR ans$[r13]
+ 00082 48 03 c8 add rcx, rax
+ 00085 48 8b c1 mov rax, rcx
+ 00088 b9 04 00 00 00 mov ecx, 4
+ 0008d 48 6b c9 00 imul rcx, rcx, 0
+ 00091 48 03 c1 add rax, rcx
+ 00094 c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR temp$[rbp]
+ 00099 c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
+
+; 42 : }
+
+ 0009d 49 8d a5 30 01
+ 00 00 lea rsp, QWORD PTR [r13+304]
+ 000a4 5f pop rdi
+ 000a5 5d pop rbp
+ 000a6 41 5d pop r13
+ 000a8 c3 ret 0
+addmatrix2_avx ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\mat2.c
+; COMDAT addmatrix2_sse
+_TEXT SEGMENT
+temp0$ = 16
+temp1$ = 64
+left$ = 320
+right$ = 328
+ans$ = 336
+addmatrix2_sse PROC ; COMDAT
+
+; 30 : {
+
+$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 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:__5972891A_mat2@c
+ 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00029 90 npad 1
+
+; 31 : __m128 temp0 = _mm_add_ps(ALIGN(left->column[0]), ALIGN(right->column[0]));
+
+ 0002a b8 10 00 00 00 mov eax, 16
+ 0002f 48 6b c0 00 imul rax, rax, 0
+ 00033 48 8b 8d 48 01
+ 00 00 mov rcx, QWORD PTR right$[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 b8 10 00 00 00 mov eax, 16
+ 00048 48 6b c0 00 imul rax, rax, 0
+ 0004c 48 8b 8d 40 01
+ 00 00 mov rcx, QWORD PTR left$[rbp]
+ 00053 48 03 c8 add rcx, rax
+ 00056 48 8b c1 mov rax, rcx
+ 00059 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 0005c 0f 58 c8 addps xmm1, xmm0
+ 0005f 0f 28 c1 movaps xmm0, xmm1
+ 00062 0f 29 45 10 movaps XMMWORD PTR temp0$[rbp], xmm0
+
+; 32 : __m128 temp1 = _mm_add_ps(ALIGN(left->column[1]), ALIGN(right->column[1]));
+
+ 00066 b8 10 00 00 00 mov eax, 16
+ 0006b 48 6b c0 01 imul rax, rax, 1
+ 0006f 48 8b 8d 48 01
+ 00 00 mov rcx, QWORD PTR right$[rbp]
+ 00076 48 03 c8 add rcx, rax
+ 00079 48 8b c1 mov rax, rcx
+ 0007c 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0007f b8 10 00 00 00 mov eax, 16
+ 00084 48 6b c0 01 imul rax, rax, 1
+ 00088 48 8b 8d 40 01
+ 00 00 mov rcx, QWORD PTR left$[rbp]
+ 0008f 48 03 c8 add rcx, rax
+ 00092 48 8b c1 mov rax, rcx
+ 00095 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00098 0f 58 c8 addps xmm1, xmm0
+ 0009b 0f 28 c1 movaps xmm0, xmm1
+ 0009e 0f 29 45 40 movaps XMMWORD PTR temp1$[rbp], xmm0
+
+; 33 :
+; 34 : _mm_storeu_ps(&ans->m[0][0], temp0);
+
+ 000a2 b8 08 00 00 00 mov eax, 8
+ 000a7 48 6b c0 00 imul rax, rax, 0
+ 000ab 48 8b 8d 50 01
+ 00 00 mov rcx, QWORD PTR ans$[rbp]
+ 000b2 48 03 c8 add rcx, rax
+ 000b5 48 8b c1 mov rax, rcx
+ 000b8 b9 04 00 00 00 mov ecx, 4
+ 000bd 48 6b c9 00 imul rcx, rcx, 0
+ 000c1 48 03 c1 add rax, rcx
+ 000c4 0f 28 45 10 movaps xmm0, XMMWORD PTR temp0$[rbp]
+ 000c8 0f 11 00 movups XMMWORD PTR [rax], xmm0
+
+; 35 : _mm_storeu_ps(&ans->m[0][1], temp1);
+
+ 000cb b8 08 00 00 00 mov eax, 8
+ 000d0 48 6b c0 00 imul rax, rax, 0
+ 000d4 48 8b 8d 50 01
+ 00 00 mov rcx, QWORD PTR ans$[rbp]
+ 000db 48 03 c8 add rcx, rax
+ 000de 48 8b c1 mov rax, rcx
+ 000e1 b9 04 00 00 00 mov ecx, 4
+ 000e6 48 6b c9 01 imul rcx, rcx, 1
+ 000ea 48 03 c1 add rax, rcx
+ 000ed 0f 28 45 40 movaps xmm0, XMMWORD PTR temp1$[rbp]
+ 000f1 0f 11 00 movups XMMWORD PTR [rax], xmm0
+
+; 36 : }
+
+ 000f4 48 8d a5 28 01
+ 00 00 lea rsp, QWORD PTR [rbp+296]
+ 000fb 5f pop rdi
+ 000fc 5d pop rbp
+ 000fd c3 ret 0
+addmatrix2_sse ENDP
+_TEXT ENDS
+END
diff --git a/StgSharp.C/x64/Debug/mat2.obj b/StgSharp.C/x64/Debug/mat2.obj
new file mode 100644
index 00000000..8e00bbdd
Binary files /dev/null and b/StgSharp.C/x64/Debug/mat2.obj differ
diff --git a/StgSharp.C/x64/Debug/mat2.sbr b/StgSharp.C/x64/Debug/mat2.sbr
new file mode 100644
index 00000000..8350f66a
Binary files /dev/null and b/StgSharp.C/x64/Debug/mat2.sbr differ
diff --git a/StgSharp.C/x64/Debug/mat3.cod b/StgSharp.C/x64/Debug/mat3.cod
new file mode 100644
index 00000000..2ce0d7d0
--- /dev/null
+++ b/StgSharp.C/x64/Debug/mat3.cod
@@ -0,0 +1,1218 @@
+; Listing generated by Microsoft (R) Optimizing Compiler Version 19.41.34120.0
+
+include listing.inc
+
+INCLUDELIB MSVCRTD
+INCLUDELIB OLDNAMES
+
+_DATA SEGMENT
+COMM infolog:BYTE:0200H
+_DATA ENDS
+msvcjmc SEGMENT
+__7583A0D2_mmintrin@h DB 01H
+__DDA0A690_concurrencysal@h DB 01H
+__9ECC08BE_sal@h DB 01H
+__E05D733A_vadefs@h DB 01H
+__6A355E0E_vcruntime@h DB 01H
+__1B0272D9_corecrt@h DB 01H
+__45DED006_corecrt_malloc@h DB 01H
+__FA77ED4C_malloc@h DB 01H
+__EAE0325A_xmmintrin@h DB 01H
+__0ED14FEE_winpackagefamily@h DB 01H
+__F92EF742_winapifamily@h DB 01H
+__22E515EB_sdkddkver@h DB 01H
+__A09A3A7D_excpt@h DB 01H
+__AC8FA393_stdarg@h DB 01H
+__29F49F40_specstrings_undef@h DB 01H
+__D0F42932_specstrings_strict@h DB 01H
+__F00405FD_sdv_driverspecs@h DB 01H
+__173E09CA_driverspecs@h DB 01H
+__9A452361_specstrings@h DB 01H
+__74484FB3_corecrt_wctype@h DB 01H
+__1EC467ED_ctype@h DB 01H
+__98517906_kernelspecs@h DB 01H
+__D3497022_basetsd@h DB 01H
+__61CC25A1_errno@h DB 01H
+__890838BD_vcruntime_string@h DB 01H
+__E4C945B4_corecrt_memcpy_s@h DB 01H
+__8EAFF484_corecrt_memory@h DB 01H
+__6490AEC5_corecrt_wstring@h DB 01H
+__E8295E1E_string@h DB 01H
+__7FCB5136_guiddef@h DB 01H
+__FF8A9E11_pshpack4@h DB 01H
+__D5438902_poppack@h DB 01H
+__FB07E2A3_pshpack2@h DB 01H
+__F6906775_pshpack8@h DB 01H
+__F9415CFA_pshpack1@h DB 01H
+__E58C6F1C_apiset@h DB 01H
+__A5C52262_ktmtypes@h DB 01H
+__FBBA8F9D_winnt@h DB 01H
+__A32D3D2C_minwindef@h DB 01H
+__7D798299_windef@h DB 01H
+__9AE108E9_apisetcconv@h DB 01H
+__9CE53D2C_minwinbase@h DB 01H
+__5D0AA210_apiquery2@h DB 01H
+__4DD4E726_processenv@h DB 01H
+__3575CC96_fileapi@h DB 01H
+__8EA220E6_fileapifromapp@h DB 01H
+__BF9B31FE_debugapi@h DB 01H
+__C3AFE134_utilapiset@h DB 01H
+__76F69E51_handleapi@h DB 01H
+__7E63D784_errhandlingapi@h DB 01H
+__FFA7003C_fibersapi@h DB 01H
+__8971CECF_namedpipeapi@h DB 01H
+__46C9D8A6_profileapi@h DB 01H
+__98D4F0A3_heapapi@h DB 01H
+__50EF2A88_ioapiset@h DB 01H
+__92EA1464_synchapi@h DB 01H
+__A53D8AED_interlockedapi@h DB 01H
+__B506CAAF_processthreadsapi@h DB 01H
+__FF735694_sysinfoapi@h DB 01H
+__29589789_memoryapi@h DB 01H
+__E9C7A663_enclaveapi@h DB 01H
+__D035F9F7_threadpoollegacyapiset@h DB 01H
+__C899130C_threadpoolapiset@h DB 01H
+__E0441EE7_jobapi@h DB 01H
+__CEF86838_jobapi2@h DB 01H
+__35AC6B9A_wow64apiset@h DB 01H
+__C8AE41A5_libloaderapi@h DB 01H
+__CC9E232D_securitybaseapi@h DB 01H
+__C9D0C9B8_namespaceapi@h DB 01H
+__30FF9CAD_systemtopologyapi@h DB 01H
+__4D358795_processtopologyapi@h DB 01H
+__40446D10_securityappcontainer@h DB 01H
+__3A952EDF_realtimeapiset@h DB 01H
+__F4865F4B_winerror@h DB 01H
+__53C1BD93_timezoneapi@h DB 01H
+__1FFBEDBF_winbase@h DB 01H
+__43D3FA34_wingdi@h DB 01H
+__D24A7391_tvout@h DB 01H
+__7713A6C8_winuser@h DB 01H
+__0B345F71_datetimeapi@h DB 01H
+__9AC6960C_winnls@h DB 01H
+__973A40A8_stringapiset@h DB 01H
+__CC46FEE2_wincontypes@h DB 01H
+__97D70BE1_consoleapi@h DB 01H
+__27EC5E18_consoleapi2@h DB 01H
+__262E342F_consoleapi3@h DB 01H
+__641DCD70_wincon@h DB 01H
+__5A96C7A7_verrsrc@h DB 01H
+__B69C6FF2_winver@h DB 01H
+__7AEB8C37_reason@h DB 01H
+__59F1A8A9_winreg@h DB 01H
+__EE0E2B7F_wnnc@h DB 01H
+__DCDB7054_winnetwk@h DB 01H
+__81DDEDE3_stralign@h DB 01H
+__2134D1B4_winsvc@h DB 01H
+__11C07376_mcx@h DB 01H
+__577CE3E7_ime_cmodes@h DB 01H
+__1E72C31E_imm@h DB 01H
+__E15BF856_windows@h DB 01H
+__8FC206A7_ssc_internal@h DB 01H
+__44420885_corecrt_stdio_config@h DB 01H
+__AB601D8D_corecrt_wstdio@h DB 01H
+__C1EC35D3_stdio@h DB 01H
+__13F5961F_stddef@h DB 01H
+__FD6DBD68_corecrt_search@h DB 01H
+__E2E33A61_corecrt_wstdlib@h DB 01H
+__26263363_limits@h DB 01H
+__6E5ACABA_stdlib@h DB 01H
+__9049550C_stb_image@h DB 01H
+__98501D5C_stdint@h DB 01H
+__264E89B8_khrplatform@h DB 01H
+__799FCA13_gl@h DB 01H
+__A57296D0_wgl@h DB 01H
+__417F438F_glfw3@h DB 01H
+__8F82BB96_emmintrin@h DB 01H
+__5023D31F_pmmintrin@h DB 01H
+__E0FAA09D_tmmintrin@h DB 01H
+__C9C1B51E_smmintrin@h DB 01H
+__ACA33CD2_nmmintrin@h DB 01H
+__7918C69C_wmmintrin@h DB 01H
+__B28C8B9B_zmmintrin@h DB 01H
+__85982951_immintrin@h DB 01H
+__19139D6C_assert@h DB 01H
+__0C16F932_StgSharpC@h DB 01H
+__B2F9F159_intrin0@inl@h DB 01H
+__0833F55F_setjmp@h DB 01H
+__3F5BC814_ammintrin@h DB 01H
+__2E054928_intrin@h DB 01H
+__5A8332CE_isa_availability@h DB 01H
+__EB6C2FE1_ssc_intrinsic@h DB 01H
+__58B0E32D_mat3@c DB 01H
+msvcjmc ENDS
+PUBLIC addmatrix3_sse
+PUBLIC addmatrix3_avx
+PUBLIC addmatrix3_512
+PUBLIC transpose32
+PUBLIC transpose33
+PUBLIC transpose34
+PUBLIC det_mat3
+PUBLIC det_mat3_internal
+PUBLIC __JustMyCode_Default
+EXTRN _RTC_CheckStackVars:PROC
+EXTRN _RTC_InitBase:PROC
+EXTRN _RTC_Shutdown:PROC
+EXTRN __CheckForDebuggerJustMyCode:PROC
+EXTRN _fltused:DWORD
+; COMDAT pdata
+pdata SEGMENT
+$pdata$addmatrix3_sse DD imagerel $LN3
+ DD imagerel $LN3+355
+ DD imagerel $unwind$addmatrix3_sse
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$addmatrix3_avx DD imagerel $LN3
+ DD imagerel $LN3+240
+ DD imagerel $unwind$addmatrix3_avx
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$addmatrix3_512 DD imagerel $LN3
+ DD imagerel $LN3+133
+ DD imagerel $unwind$addmatrix3_512
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$transpose32 DD imagerel $LN3
+ DD imagerel $LN3+205
+ DD imagerel $unwind$transpose32
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$transpose33 DD imagerel $LN3
+ DD imagerel $LN3+340
+ DD imagerel $unwind$transpose33
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$transpose34 DD imagerel $LN3
+ DD imagerel $LN3+372
+ DD imagerel $unwind$transpose34
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$det_mat3 DD imagerel $LN3
+ DD imagerel $LN3+154
+ DD imagerel $unwind$det_mat3
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$det_mat3_internal DD imagerel $LN3
+ DD imagerel $LN3+371
+ DD imagerel $unwind$det_mat3_internal
+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$det_mat3_internal DD 035053601H
+ DD 0118331dH
+ DD 070110049H
+ DD 05010H
+xdata ENDS
+; COMDAT CONST
+CONST SEGMENT
+det_mat3_internal$rtcName$0 DB 072H
+ DB 065H
+ DB 074H
+ DB 00H
+ ORG $+12
+det_mat3_internal$rtcVarDesc DD 0160H
+ DD 010H
+ DQ FLAT:det_mat3_internal$rtcName$0
+ ORG $+48
+det_mat3_internal$rtcFrameData DD 01H
+ DD 00H
+ DQ FLAT:det_mat3_internal$rtcVarDesc
+CONST ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$det_mat3 DD 035051801H
+ DD 01133318H
+ DD 0700c0031H
+ DD 0500bH
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$transpose34 DD 025051801H
+ DD 01132318H
+ DD 0700c0035H
+ DD 0500bH
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$transpose33 DD 025051801H
+ DD 01132318H
+ DD 0700c0035H
+ DD 0500bH
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$transpose32 DD 025051801H
+ DD 01132318H
+ DD 0700c0029H
+ DD 0500bH
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$addmatrix3_512 DD 02d062801H
+ DD 011a231fH
+ DD 070130036H
+ DD 0d0115012H
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$addmatrix3_avx DD 02d062801H
+ DD 011a231fH
+ DD 070130030H
+ DD 0d0115012H
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$addmatrix3_sse DD 025051d01H
+ DD 0118231dH
+ DD 07011002fH
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\mat3.c
+; COMDAT det_mat3_internal
+_TEXT SEGMENT
+addc1$ = 16
+addc2$ = 64
+subc1$ = 112
+subc2$ = 160
+cache$ = 208
+sub$ = 256
+ret$ = 304
+c0$ = 560
+c1$ = 568
+c2$ = 576
+det_mat3_internal PROC ; COMDAT
+
+; 45 : {
+
+$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 48 02
+ 00 00 sub rsp, 584 ; 00000248H
+ 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48]
+ 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48]
+ 00022 b9 56 00 00 00 mov ecx, 86 ; 00000056H
+ 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
+ 0002c f3 ab rep stosd
+ 0002e 48 8b 8c 24 68
+ 02 00 00 mov rcx, QWORD PTR [rsp+616]
+ 00036 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:__58B0E32D_mat3@c
+ 0003d e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00042 90 npad 1
+
+; 46 : //let adding row aligned
+; 47 : __m128 addc1 = _mm_shuffle_ps(c1, c1, _MM_SHUFFLE(3, 0, 2, 1));
+
+ 00043 48 8b 85 38 02
+ 00 00 mov rax, QWORD PTR c1$[rbp]
+ 0004a 48 8b 8d 38 02
+ 00 00 mov rcx, QWORD PTR c1$[rbp]
+ 00051 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 00054 0f c6 01 c9 shufps xmm0, XMMWORD PTR [rcx], 201 ; 000000c9H
+ 00058 0f 29 45 10 movaps XMMWORD PTR addc1$[rbp], xmm0
+
+; 48 : __m128 addc2 = _mm_shuffle_ps(c2, c2, _MM_SHUFFLE(3, 1, 0, 2));
+
+ 0005c 48 8b 85 40 02
+ 00 00 mov rax, QWORD PTR c2$[rbp]
+ 00063 48 8b 8d 40 02
+ 00 00 mov rcx, QWORD PTR c2$[rbp]
+ 0006a 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0006d 0f c6 01 d2 shufps xmm0, XMMWORD PTR [rcx], 210 ; 000000d2H
+ 00071 0f 29 45 40 movaps XMMWORD PTR addc2$[rbp], xmm0
+
+; 49 :
+; 50 : //let sub row aligned
+; 51 : __m128 subc1 = _mm_shuffle_ps(c1, c1, _MM_SHUFFLE(3, 1, 0, 2));
+
+ 00075 48 8b 85 38 02
+ 00 00 mov rax, QWORD PTR c1$[rbp]
+ 0007c 48 8b 8d 38 02
+ 00 00 mov rcx, QWORD PTR c1$[rbp]
+ 00083 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 00086 0f c6 01 d2 shufps xmm0, XMMWORD PTR [rcx], 210 ; 000000d2H
+ 0008a 0f 29 45 70 movaps XMMWORD PTR subc1$[rbp], xmm0
+
+; 52 : __m128 subc2 = _mm_shuffle_ps(c2, c2, _MM_SHUFFLE(3, 0, 2, 1));
+
+ 0008e 48 8b 85 40 02
+ 00 00 mov rax, QWORD PTR c2$[rbp]
+ 00095 48 8b 8d 40 02
+ 00 00 mov rcx, QWORD PTR c2$[rbp]
+ 0009c 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0009f 0f c6 01 c9 shufps xmm0, XMMWORD PTR [rcx], 201 ; 000000c9H
+ 000a3 0f 29 85 a0 00
+ 00 00 movaps XMMWORD PTR subc2$[rbp], xmm0
+
+; 53 :
+; 54 : //multple all add row
+; 55 : __m128 cache = _mm_mul_ps(c0, addc1);
+
+ 000aa 48 8b 85 30 02
+ 00 00 mov rax, QWORD PTR c0$[rbp]
+ 000b1 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 000b4 0f 59 45 10 mulps xmm0, XMMWORD PTR addc1$[rbp]
+ 000b8 0f 29 85 d0 00
+ 00 00 movaps XMMWORD PTR cache$[rbp], xmm0
+
+; 56 : cache = _mm_mul_ps(cache, addc2);
+
+ 000bf 0f 28 85 d0 00
+ 00 00 movaps xmm0, XMMWORD PTR cache$[rbp]
+ 000c6 0f 59 45 40 mulps xmm0, XMMWORD PTR addc2$[rbp]
+ 000ca 0f 29 85 d0 00
+ 00 00 movaps XMMWORD PTR cache$[rbp], xmm0
+
+; 57 :
+; 58 : //multiple all sub row
+; 59 : __m128 sub = _mm_mul_ps(c0, subc1);
+
+ 000d1 48 8b 85 30 02
+ 00 00 mov rax, QWORD PTR c0$[rbp]
+ 000d8 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 000db 0f 59 45 70 mulps xmm0, XMMWORD PTR subc1$[rbp]
+ 000df 0f 29 85 00 01
+ 00 00 movaps XMMWORD PTR sub$[rbp], xmm0
+
+; 60 : sub = _mm_mul_ps(sub, subc2);
+
+ 000e6 0f 28 85 00 01
+ 00 00 movaps xmm0, XMMWORD PTR sub$[rbp]
+ 000ed 0f 59 85 a0 00
+ 00 00 mulps xmm0, XMMWORD PTR subc2$[rbp]
+ 000f4 0f 29 85 00 01
+ 00 00 movaps XMMWORD PTR sub$[rbp], xmm0
+
+; 61 :
+; 62 : //main-corner sub sub-corner
+; 63 : cache = _mm_sub_ps(cache, sub);
+
+ 000fb 0f 28 85 d0 00
+ 00 00 movaps xmm0, XMMWORD PTR cache$[rbp]
+ 00102 0f 5c 85 00 01
+ 00 00 subps xmm0, XMMWORD PTR sub$[rbp]
+ 00109 0f 29 85 d0 00
+ 00 00 movaps XMMWORD PTR cache$[rbp], xmm0
+
+; 64 :
+; 65 : __m128 ret = _mm_hadd_ps(cache, cache); //element 1 add element 2
+
+ 00110 0f 28 85 d0 00
+ 00 00 movaps xmm0, XMMWORD PTR cache$[rbp]
+ 00117 f2 0f 7c 85 d0
+ 00 00 00 haddps xmm0, XMMWORD PTR cache$[rbp]
+ 0011f 0f 29 85 30 01
+ 00 00 movaps XMMWORD PTR ret$[rbp], xmm0
+
+; 66 : ret = _mm_add_ps(ret, cache); //(e1 add e2) add element 3
+
+ 00126 0f 28 85 30 01
+ 00 00 movaps xmm0, XMMWORD PTR ret$[rbp]
+ 0012d 0f 58 85 d0 00
+ 00 00 addps xmm0, XMMWORD PTR cache$[rbp]
+ 00134 0f 29 85 30 01
+ 00 00 movaps XMMWORD PTR ret$[rbp], xmm0
+
+; 67 :
+; 68 : return ret.m128_f32[2];
+
+ 0013b b8 04 00 00 00 mov eax, 4
+ 00140 48 6b c0 02 imul rax, rax, 2
+ 00144 f3 0f 10 84 05
+ 30 01 00 00 movss xmm0, DWORD PTR ret$[rbp+rax]
+
+; 69 : }
+
+ 0014d f3 0f 7f 44 24
+ 20 movdqu XMMWORD PTR [rsp+32], xmm0
+ 00153 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48]
+ 00157 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:det_mat3_internal$rtcFrameData
+ 0015e e8 00 00 00 00 call _RTC_CheckStackVars
+ 00163 f3 0f 6f 44 24
+ 20 movdqu xmm0, XMMWORD PTR [rsp+32]
+ 00169 48 8d a5 18 02
+ 00 00 lea rsp, QWORD PTR [rbp+536]
+ 00170 5f pop rdi
+ 00171 5d pop rbp
+ 00172 c3 ret 0
+det_mat3_internal ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\mat3.c
+; COMDAT det_mat3
+_TEXT SEGMENT
+$T1 = 208
+$T2 = 256
+$T3 = 304
+source$ = 368
+transpose$ = 376
+det_mat3 PROC ; COMDAT
+
+; 72 : {
+
+$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 88 01
+ 00 00 sub rsp, 392 ; 00000188H
+ 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48]
+ 00018 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:__58B0E32D_mat3@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 73 : return det_mat3_internal(source->column[0], source->column[1], source->column[2]);
+
+ 00025 b8 10 00 00 00 mov eax, 16
+ 0002a 48 6b c0 02 imul rax, rax, 2
+ 0002e 48 8b 8d 70 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00035 0f 10 04 01 movups xmm0, XMMWORD PTR [rcx+rax]
+ 00039 0f 11 85 30 01
+ 00 00 movups XMMWORD PTR $T3[rbp], xmm0
+ 00040 b8 10 00 00 00 mov eax, 16
+ 00045 48 6b c0 01 imul rax, rax, 1
+ 00049 48 8b 8d 70 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00050 0f 10 04 01 movups xmm0, XMMWORD PTR [rcx+rax]
+ 00054 0f 11 85 00 01
+ 00 00 movups XMMWORD PTR $T2[rbp], xmm0
+ 0005b b8 10 00 00 00 mov eax, 16
+ 00060 48 6b c0 00 imul rax, rax, 0
+ 00064 48 8b 8d 70 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 0006b 0f 10 04 01 movups xmm0, XMMWORD PTR [rcx+rax]
+ 0006f 0f 11 85 d0 00
+ 00 00 movups XMMWORD PTR $T1[rbp], xmm0
+ 00076 4c 8d 85 30 01
+ 00 00 lea r8, QWORD PTR $T3[rbp]
+ 0007d 48 8d 95 00 01
+ 00 00 lea rdx, QWORD PTR $T2[rbp]
+ 00084 48 8d 8d d0 00
+ 00 00 lea rcx, QWORD PTR $T1[rbp]
+ 0008b e8 00 00 00 00 call det_mat3_internal
+
+; 74 : }
+
+ 00090 48 8d a5 58 01
+ 00 00 lea rsp, QWORD PTR [rbp+344]
+ 00097 5f pop rdi
+ 00098 5d pop rbp
+ 00099 c3 ret 0
+det_mat3 ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\mat3.c
+; COMDAT transpose34
+_TEXT SEGMENT
+t0$ = 16
+t1$ = 64
+t2$ = 112
+t3$ = 160
+source$ = 416
+target$ = 424
+transpose34 PROC ; COMDAT
+
+; 30 : {
+
+$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 a8 01
+ 00 00 sub rsp, 424 ; 000001a8H
+ 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
+ 00018 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:__58B0E32D_mat3@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 31 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+
+ 00025 b8 10 00 00 00 mov eax, 16
+ 0002a 48 6b c0 01 imul rax, rax, 1
+ 0002e 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00035 48 03 c8 add rcx, rax
+ 00038 48 8b c1 mov rax, rcx
+ 0003b 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0003e b8 10 00 00 00 mov eax, 16
+ 00043 48 6b c0 00 imul rax, rax, 0
+ 00047 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 0004e 48 03 c8 add rcx, rax
+ 00051 48 8b c1 mov rax, rcx
+ 00054 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00057 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
+ 0005b 0f 28 c1 movaps xmm0, xmm1
+ 0005e 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0
+
+; 32 : _MM_SHUFFLE(1, 0, 1, 0));
+; 33 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+
+ 00062 b8 10 00 00 00 mov eax, 16
+ 00067 48 6b c0 01 imul rax, rax, 1
+ 0006b 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00072 48 03 c8 add rcx, rax
+ 00075 48 8b c1 mov rax, rcx
+ 00078 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0007b b8 10 00 00 00 mov eax, 16
+ 00080 48 6b c0 00 imul rax, rax, 0
+ 00084 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 0008b 48 03 c8 add rcx, rax
+ 0008e 48 8b c1 mov rax, rcx
+ 00091 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00094 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH
+ 00098 0f 28 c1 movaps xmm0, xmm1
+ 0009b 0f 29 45 40 movaps XMMWORD PTR t1$[rbp], xmm0
+
+; 34 : _MM_SHUFFLE(3, 2, 3, 2));
+; 35 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->column[2]), zero_vec, _MM_SHUFFLE(1, 0, 1, 0));
+
+ 0009f 0f 57 c0 xorps xmm0, xmm0
+ 000a2 b8 10 00 00 00 mov eax, 16
+ 000a7 48 6b c0 02 imul rax, rax, 2
+ 000ab 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 000b2 48 03 c8 add rcx, rax
+ 000b5 48 8b c1 mov rax, rcx
+ 000b8 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 000bb 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
+ 000bf 0f 28 c1 movaps xmm0, xmm1
+ 000c2 0f 29 45 70 movaps XMMWORD PTR t2$[rbp], xmm0
+
+; 36 : __m128 t3 = _mm_shuffle_ps(ALIGN(source->column[2]), zero_vec, _MM_SHUFFLE(3, 2, 3, 2));
+
+ 000c6 0f 57 c0 xorps xmm0, xmm0
+ 000c9 b8 10 00 00 00 mov eax, 16
+ 000ce 48 6b c0 02 imul rax, rax, 2
+ 000d2 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 000d9 48 03 c8 add rcx, rax
+ 000dc 48 8b c1 mov rax, rcx
+ 000df 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 000e2 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH
+ 000e6 0f 28 c1 movaps xmm0, xmm1
+ 000e9 0f 29 85 a0 00
+ 00 00 movaps XMMWORD PTR t3$[rbp], xmm0
+
+; 37 :
+; 38 : target->column[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
+
+ 000f0 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
+ 000f4 0f c6 45 70 88 shufps xmm0, XMMWORD PTR t2$[rbp], 136 ; 00000088H
+ 000f9 b8 10 00 00 00 mov eax, 16
+ 000fe 48 6b c0 00 imul rax, rax, 0
+ 00102 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 00109 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 39 : target->column[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
+
+ 0010d 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
+ 00111 0f c6 45 70 dd shufps xmm0, XMMWORD PTR t2$[rbp], 221 ; 000000ddH
+ 00116 b8 10 00 00 00 mov eax, 16
+ 0011b 48 6b c0 01 imul rax, rax, 1
+ 0011f 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 00126 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 40 : target->column[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0));
+
+ 0012a 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp]
+ 0012e 0f c6 85 a0 00
+ 00 00 88 shufps xmm0, XMMWORD PTR t3$[rbp], 136 ; 00000088H
+ 00136 b8 10 00 00 00 mov eax, 16
+ 0013b 48 6b c0 02 imul rax, rax, 2
+ 0013f 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 00146 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 41 : target->column[3] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(3, 1, 3, 1));
+
+ 0014a 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp]
+ 0014e 0f c6 85 a0 00
+ 00 00 dd shufps xmm0, XMMWORD PTR t3$[rbp], 221 ; 000000ddH
+ 00156 b8 10 00 00 00 mov eax, 16
+ 0015b 48 6b c0 03 imul rax, rax, 3
+ 0015f 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 00166 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 42 : }
+
+ 0016a 48 8d a5 88 01
+ 00 00 lea rsp, QWORD PTR [rbp+392]
+ 00171 5f pop rdi
+ 00172 5d pop rbp
+ 00173 c3 ret 0
+transpose34 ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\mat3.c
+; COMDAT transpose33
+_TEXT SEGMENT
+t0$ = 16
+t1$ = 64
+t2$ = 112
+t3$ = 160
+source$ = 416
+target$ = 424
+transpose33 PROC ; COMDAT
+
+; 16 : {
+
+$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 a8 01
+ 00 00 sub rsp, 424 ; 000001a8H
+ 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
+ 00018 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:__58B0E32D_mat3@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 17 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+
+ 00025 b8 10 00 00 00 mov eax, 16
+ 0002a 48 6b c0 01 imul rax, rax, 1
+ 0002e 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00035 48 03 c8 add rcx, rax
+ 00038 48 8b c1 mov rax, rcx
+ 0003b 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0003e b8 10 00 00 00 mov eax, 16
+ 00043 48 6b c0 00 imul rax, rax, 0
+ 00047 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 0004e 48 03 c8 add rcx, rax
+ 00051 48 8b c1 mov rax, rcx
+ 00054 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00057 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
+ 0005b 0f 28 c1 movaps xmm0, xmm1
+ 0005e 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0
+
+; 18 : _MM_SHUFFLE(1, 0, 1, 0));
+; 19 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+
+ 00062 b8 10 00 00 00 mov eax, 16
+ 00067 48 6b c0 01 imul rax, rax, 1
+ 0006b 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00072 48 03 c8 add rcx, rax
+ 00075 48 8b c1 mov rax, rcx
+ 00078 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0007b b8 10 00 00 00 mov eax, 16
+ 00080 48 6b c0 00 imul rax, rax, 0
+ 00084 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 0008b 48 03 c8 add rcx, rax
+ 0008e 48 8b c1 mov rax, rcx
+ 00091 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00094 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH
+ 00098 0f 28 c1 movaps xmm0, xmm1
+ 0009b 0f 29 45 40 movaps XMMWORD PTR t1$[rbp], xmm0
+
+; 20 : _MM_SHUFFLE(3, 2, 3, 2));
+; 21 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->column[2]), zero_vec, _MM_SHUFFLE(1, 0, 1, 0));
+
+ 0009f 0f 57 c0 xorps xmm0, xmm0
+ 000a2 b8 10 00 00 00 mov eax, 16
+ 000a7 48 6b c0 02 imul rax, rax, 2
+ 000ab 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 000b2 48 03 c8 add rcx, rax
+ 000b5 48 8b c1 mov rax, rcx
+ 000b8 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 000bb 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
+ 000bf 0f 28 c1 movaps xmm0, xmm1
+ 000c2 0f 29 45 70 movaps XMMWORD PTR t2$[rbp], xmm0
+
+; 22 : __m128 t3 = _mm_shuffle_ps(ALIGN(source->column[2]), zero_vec, _MM_SHUFFLE(3, 2, 3, 2));
+
+ 000c6 0f 57 c0 xorps xmm0, xmm0
+ 000c9 b8 10 00 00 00 mov eax, 16
+ 000ce 48 6b c0 02 imul rax, rax, 2
+ 000d2 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 000d9 48 03 c8 add rcx, rax
+ 000dc 48 8b c1 mov rax, rcx
+ 000df 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 000e2 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH
+ 000e6 0f 28 c1 movaps xmm0, xmm1
+ 000e9 0f 29 85 a0 00
+ 00 00 movaps XMMWORD PTR t3$[rbp], xmm0
+
+; 23 :
+; 24 : target->column[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
+
+ 000f0 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
+ 000f4 0f c6 45 70 88 shufps xmm0, XMMWORD PTR t2$[rbp], 136 ; 00000088H
+ 000f9 b8 10 00 00 00 mov eax, 16
+ 000fe 48 6b c0 00 imul rax, rax, 0
+ 00102 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 00109 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 25 : target->column[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
+
+ 0010d 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
+ 00111 0f c6 45 70 dd shufps xmm0, XMMWORD PTR t2$[rbp], 221 ; 000000ddH
+ 00116 b8 10 00 00 00 mov eax, 16
+ 0011b 48 6b c0 01 imul rax, rax, 1
+ 0011f 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 00126 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 26 : target->column[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0));
+
+ 0012a 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp]
+ 0012e 0f c6 85 a0 00
+ 00 00 88 shufps xmm0, XMMWORD PTR t3$[rbp], 136 ; 00000088H
+ 00136 b8 10 00 00 00 mov eax, 16
+ 0013b 48 6b c0 02 imul rax, rax, 2
+ 0013f 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 00146 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 27 : }
+
+ 0014a 48 8d a5 88 01
+ 00 00 lea rsp, QWORD PTR [rbp+392]
+ 00151 5f pop rdi
+ 00152 5d pop rbp
+ 00153 c3 ret 0
+transpose33 ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\mat3.c
+; COMDAT transpose32
+_TEXT SEGMENT
+t0$ = 16
+t2$ = 64
+source$ = 320
+target$ = 328
+transpose32 PROC ; COMDAT
+
+; 6 : {
+
+$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 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:__58B0E32D_mat3@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 7 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+
+ 00025 b8 10 00 00 00 mov eax, 16
+ 0002a 48 6b c0 01 imul rax, rax, 1
+ 0002e 48 8b 8d 40 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00035 48 03 c8 add rcx, rax
+ 00038 48 8b c1 mov rax, rcx
+ 0003b 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0003e b8 10 00 00 00 mov eax, 16
+ 00043 48 6b c0 00 imul rax, rax, 0
+ 00047 48 8b 8d 40 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 0004e 48 03 c8 add rcx, rax
+ 00051 48 8b c1 mov rax, rcx
+ 00054 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00057 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
+ 0005b 0f 28 c1 movaps xmm0, xmm1
+ 0005e 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0
+
+; 8 : _MM_SHUFFLE(1, 0, 1, 0));
+; 9 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->column[2]), zero_vec, _MM_SHUFFLE(1, 0, 1, 0));
+
+ 00062 0f 57 c0 xorps xmm0, xmm0
+ 00065 b8 10 00 00 00 mov eax, 16
+ 0006a 48 6b c0 02 imul rax, rax, 2
+ 0006e 48 8b 8d 40 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00075 48 03 c8 add rcx, rax
+ 00078 48 8b c1 mov rax, rcx
+ 0007b 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 0007e 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
+ 00082 0f 28 c1 movaps xmm0, xmm1
+ 00085 0f 29 45 40 movaps XMMWORD PTR t2$[rbp], xmm0
+
+; 10 :
+; 11 : target->column[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
+
+ 00089 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
+ 0008d 0f c6 45 40 88 shufps xmm0, XMMWORD PTR t2$[rbp], 136 ; 00000088H
+ 00092 b8 10 00 00 00 mov eax, 16
+ 00097 48 6b c0 00 imul rax, rax, 0
+ 0009b 48 8b 8d 48 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 000a2 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 12 : target->column[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
+
+ 000a6 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
+ 000aa 0f c6 45 40 dd shufps xmm0, XMMWORD PTR t2$[rbp], 221 ; 000000ddH
+ 000af b8 10 00 00 00 mov eax, 16
+ 000b4 48 6b c0 01 imul rax, rax, 1
+ 000b8 48 8b 8d 48 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 000bf 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 13 : }
+
+ 000c3 48 8d a5 28 01
+ 00 00 lea rsp, QWORD PTR [rbp+296]
+ 000ca 5f pop rdi
+ 000cb 5d pop rbp
+ 000cc c3 ret 0
+transpose32 ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\mat3.c
+; COMDAT addmatrix3_512
+_TEXT SEGMENT
+temp$ = 64
+left$ = 432
+right$ = 440
+ans$ = 448
+addmatrix3_512 PROC ; COMDAT
+
+; 99 : {
+
+$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 01
+ 00 00 sub rsp, 432 ; 000001b0H
+ 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:__58B0E32D_mat3@c
+ 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00034 90 npad 1
+
+; 100 : __m512 temp = _mm512_add_ps(_mm512_loadu_ps(left), _mm512_loadu_ps(right));
+
+ 00035 49 8b 85 b8 01
+ 00 00 mov rax, QWORD PTR right$[r13]
+ 0003c 62 f1 7c 48 10
+ 00 vmovups zmm0, ZMMWORD PTR [rax]
+ 00042 49 8b 85 b0 01
+ 00 00 mov rax, QWORD PTR left$[r13]
+ 00049 62 f1 7c 48 10
+ 08 vmovups zmm1, ZMMWORD PTR [rax]
+ 0004f 62 f1 74 48 58
+ c0 vaddps zmm0, zmm1, zmm0
+ 00055 62 f1 7c 48 11
+ 45 01 vmovups ZMMWORD PTR temp$[rbp], zmm0
+
+; 101 : _mm512_mask_store_ps(ans, 0x0fff, temp);
+
+ 0005c b8 ff 0f 00 00 mov eax, 4095 ; 00000fffH
+ 00061 c5 f8 92 c8 kmovw k1, ax
+ 00065 49 8b 85 c0 01
+ 00 00 mov rax, QWORD PTR ans$[r13]
+ 0006c 62 f1 7c 48 10
+ 45 01 vmovups zmm0, ZMMWORD PTR temp$[rbp]
+ 00073 62 f1 7c 49 11
+ 00 vmovups ZMMWORD PTR [rax] {k1}, zmm0
+
+; 102 : }
+
+ 00079 49 8d a5 90 01
+ 00 00 lea rsp, QWORD PTR [r13+400]
+ 00080 5f pop rdi
+ 00081 5d pop rbp
+ 00082 41 5d pop r13
+ 00084 c3 ret 0
+addmatrix3_512 ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\mat3.c
+; COMDAT addmatrix3_avx
+_TEXT SEGMENT
+temp0$ = 32
+temp1$ = 96
+left$ = 384
+right$ = 392
+ans$ = 400
+addmatrix3_avx PROC ; COMDAT
+
+; 90 : {
+
+$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 80 01
+ 00 00 sub rsp, 384 ; 00000180H
+ 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:__58B0E32D_mat3@c
+ 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00034 90 npad 1
+
+; 91 : __m256 temp0 = _mm256_add_ps(ALIGN256(left->part), ALIGN256(right->part));
+
+ 00035 49 8b 85 88 01
+ 00 00 mov rax, QWORD PTR right$[r13]
+ 0003c c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax]
+ 00040 49 8b 85 80 01
+ 00 00 mov rax, QWORD PTR left$[r13]
+ 00047 c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax]
+ 0004b c5 f4 58 c0 vaddps ymm0, ymm1, ymm0
+ 0004f c5 fc 11 45 20 vmovups YMMWORD PTR temp0$[rbp], ymm0
+
+; 92 : __m128 temp1 = _mm_add_ps(ALIGN(left->column[2]), ALIGN(right->column[2]));
+
+ 00054 b8 10 00 00 00 mov eax, 16
+ 00059 48 6b c0 02 imul rax, rax, 2
+ 0005d 49 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR right$[r13]
+ 00064 48 03 c8 add rcx, rax
+ 00067 48 8b c1 mov rax, rcx
+ 0006a 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0006d b8 10 00 00 00 mov eax, 16
+ 00072 48 6b c0 02 imul rax, rax, 2
+ 00076 49 8b 8d 80 01
+ 00 00 mov rcx, QWORD PTR left$[r13]
+ 0007d 48 03 c8 add rcx, rax
+ 00080 48 8b c1 mov rax, rcx
+ 00083 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00086 0f 58 c8 addps xmm1, xmm0
+ 00089 0f 28 c1 movaps xmm0, xmm1
+ 0008c 0f 29 45 60 movaps XMMWORD PTR temp1$[rbp], xmm0
+
+; 93 :
+; 94 : _mm256_storeu_ps(&ans->m[0][0], temp0);
+
+ 00090 b8 0c 00 00 00 mov eax, 12
+ 00095 48 6b c0 00 imul rax, rax, 0
+ 00099 49 8b 8d 90 01
+ 00 00 mov rcx, QWORD PTR ans$[r13]
+ 000a0 48 03 c8 add rcx, rax
+ 000a3 48 8b c1 mov rax, rcx
+ 000a6 b9 04 00 00 00 mov ecx, 4
+ 000ab 48 6b c9 00 imul rcx, rcx, 0
+ 000af 48 03 c1 add rax, rcx
+ 000b2 c5 fc 10 45 20 vmovups ymm0, YMMWORD PTR temp0$[rbp]
+ 000b7 c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
+
+; 95 : _mm_storeu_ps(&ans->m[0][2], temp1);
+
+ 000bb b8 0c 00 00 00 mov eax, 12
+ 000c0 48 6b c0 00 imul rax, rax, 0
+ 000c4 49 8b 8d 90 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 04 00 00 00 mov ecx, 4
+ 000d6 48 6b c9 02 imul rcx, rcx, 2
+ 000da 48 03 c1 add rax, rcx
+ 000dd 0f 28 45 60 movaps xmm0, XMMWORD PTR temp1$[rbp]
+ 000e1 0f 11 00 movups XMMWORD PTR [rax], xmm0
+
+; 96 : }
+
+ 000e4 49 8d a5 60 01
+ 00 00 lea rsp, QWORD PTR [r13+352]
+ 000eb 5f pop rdi
+ 000ec 5d pop rbp
+ 000ed 41 5d pop r13
+ 000ef c3 ret 0
+addmatrix3_avx ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\mat3.c
+; COMDAT addmatrix3_sse
+_TEXT SEGMENT
+temp0$ = 16
+temp1$ = 64
+temp2$ = 112
+left$ = 368
+right$ = 376
+ans$ = 384
+addmatrix3_sse PROC ; COMDAT
+
+; 79 : {
+
+$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 78 01
+ 00 00 sub rsp, 376 ; 00000178H
+ 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
+ 0001d 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:__58B0E32D_mat3@c
+ 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00029 90 npad 1
+
+; 80 : __m128 temp0 = _mm_add_ps(ALIGN(left->column[0]), ALIGN(right->column[0]));
+
+ 0002a b8 10 00 00 00 mov eax, 16
+ 0002f 48 6b c0 00 imul rax, rax, 0
+ 00033 48 8b 8d 78 01
+ 00 00 mov rcx, QWORD PTR right$[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 b8 10 00 00 00 mov eax, 16
+ 00048 48 6b c0 00 imul rax, rax, 0
+ 0004c 48 8b 8d 70 01
+ 00 00 mov rcx, QWORD PTR left$[rbp]
+ 00053 48 03 c8 add rcx, rax
+ 00056 48 8b c1 mov rax, rcx
+ 00059 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 0005c 0f 58 c8 addps xmm1, xmm0
+ 0005f 0f 28 c1 movaps xmm0, xmm1
+ 00062 0f 29 45 10 movaps XMMWORD PTR temp0$[rbp], xmm0
+
+; 81 : __m128 temp1 = _mm_add_ps(ALIGN(left->column[1]), ALIGN(right->column[1]));
+
+ 00066 b8 10 00 00 00 mov eax, 16
+ 0006b 48 6b c0 01 imul rax, rax, 1
+ 0006f 48 8b 8d 78 01
+ 00 00 mov rcx, QWORD PTR right$[rbp]
+ 00076 48 03 c8 add rcx, rax
+ 00079 48 8b c1 mov rax, rcx
+ 0007c 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0007f b8 10 00 00 00 mov eax, 16
+ 00084 48 6b c0 01 imul rax, rax, 1
+ 00088 48 8b 8d 70 01
+ 00 00 mov rcx, QWORD PTR left$[rbp]
+ 0008f 48 03 c8 add rcx, rax
+ 00092 48 8b c1 mov rax, rcx
+ 00095 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00098 0f 58 c8 addps xmm1, xmm0
+ 0009b 0f 28 c1 movaps xmm0, xmm1
+ 0009e 0f 29 45 40 movaps XMMWORD PTR temp1$[rbp], xmm0
+
+; 82 : __m128 temp2 = _mm_add_ps(ALIGN(left->column[2]), ALIGN(right->column[2]));
+
+ 000a2 b8 10 00 00 00 mov eax, 16
+ 000a7 48 6b c0 02 imul rax, rax, 2
+ 000ab 48 8b 8d 78 01
+ 00 00 mov rcx, QWORD PTR right$[rbp]
+ 000b2 48 03 c8 add rcx, rax
+ 000b5 48 8b c1 mov rax, rcx
+ 000b8 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 000bb b8 10 00 00 00 mov eax, 16
+ 000c0 48 6b c0 02 imul rax, rax, 2
+ 000c4 48 8b 8d 70 01
+ 00 00 mov rcx, QWORD PTR left$[rbp]
+ 000cb 48 03 c8 add rcx, rax
+ 000ce 48 8b c1 mov rax, rcx
+ 000d1 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 000d4 0f 58 c8 addps xmm1, xmm0
+ 000d7 0f 28 c1 movaps xmm0, xmm1
+ 000da 0f 29 45 70 movaps XMMWORD PTR temp2$[rbp], xmm0
+
+; 83 :
+; 84 : _mm_storeu_ps(&ans->m[0][0], temp0);
+
+ 000de b8 0c 00 00 00 mov eax, 12
+ 000e3 48 6b c0 00 imul rax, rax, 0
+ 000e7 48 8b 8d 80 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 04 00 00 00 mov ecx, 4
+ 000f9 48 6b c9 00 imul rcx, rcx, 0
+ 000fd 48 03 c1 add rax, rcx
+ 00100 0f 28 45 10 movaps xmm0, XMMWORD PTR temp0$[rbp]
+ 00104 0f 11 00 movups XMMWORD PTR [rax], xmm0
+
+; 85 : _mm_storeu_ps(&ans->m[0][1], temp1);
+
+ 00107 b8 0c 00 00 00 mov eax, 12
+ 0010c 48 6b c0 00 imul rax, rax, 0
+ 00110 48 8b 8d 80 01
+ 00 00 mov rcx, QWORD PTR ans$[rbp]
+ 00117 48 03 c8 add rcx, rax
+ 0011a 48 8b c1 mov rax, rcx
+ 0011d b9 04 00 00 00 mov ecx, 4
+ 00122 48 6b c9 01 imul rcx, rcx, 1
+ 00126 48 03 c1 add rax, rcx
+ 00129 0f 28 45 40 movaps xmm0, XMMWORD PTR temp1$[rbp]
+ 0012d 0f 11 00 movups XMMWORD PTR [rax], xmm0
+
+; 86 : _mm_storeu_ps(&ans->m[0][2], temp2);
+
+ 00130 b8 0c 00 00 00 mov eax, 12
+ 00135 48 6b c0 00 imul rax, rax, 0
+ 00139 48 8b 8d 80 01
+ 00 00 mov rcx, QWORD PTR ans$[rbp]
+ 00140 48 03 c8 add rcx, rax
+ 00143 48 8b c1 mov rax, rcx
+ 00146 b9 04 00 00 00 mov ecx, 4
+ 0014b 48 6b c9 02 imul rcx, rcx, 2
+ 0014f 48 03 c1 add rax, rcx
+ 00152 0f 28 45 70 movaps xmm0, XMMWORD PTR temp2$[rbp]
+ 00156 0f 11 00 movups XMMWORD PTR [rax], xmm0
+
+; 87 : }
+
+ 00159 48 8d a5 58 01
+ 00 00 lea rsp, QWORD PTR [rbp+344]
+ 00160 5f pop rdi
+ 00161 5d pop rbp
+ 00162 c3 ret 0
+addmatrix3_sse ENDP
+_TEXT ENDS
+END
diff --git a/StgSharp.C/x64/Debug/mat3.obj b/StgSharp.C/x64/Debug/mat3.obj
new file mode 100644
index 00000000..53bb1a6f
Binary files /dev/null and b/StgSharp.C/x64/Debug/mat3.obj differ
diff --git a/StgSharp.C/x64/Debug/mat3.sbr b/StgSharp.C/x64/Debug/mat3.sbr
new file mode 100644
index 00000000..7a18a6b9
Binary files /dev/null and b/StgSharp.C/x64/Debug/mat3.sbr differ
diff --git a/StgSharp.C/x64/Debug/mat4.cod b/StgSharp.C/x64/Debug/mat4.cod
new file mode 100644
index 00000000..ea95ee60
--- /dev/null
+++ b/StgSharp.C/x64/Debug/mat4.cod
@@ -0,0 +1,1211 @@
+; Listing generated by Microsoft (R) Optimizing Compiler Version 19.41.34120.0
+
+include listing.inc
+
+INCLUDELIB MSVCRTD
+INCLUDELIB OLDNAMES
+
+_DATA SEGMENT
+COMM infolog:BYTE:0200H
+_DATA ENDS
+msvcjmc SEGMENT
+__7583A0D2_mmintrin@h DB 01H
+__DDA0A690_concurrencysal@h DB 01H
+__9ECC08BE_sal@h DB 01H
+__E05D733A_vadefs@h DB 01H
+__6A355E0E_vcruntime@h DB 01H
+__1B0272D9_corecrt@h DB 01H
+__45DED006_corecrt_malloc@h DB 01H
+__FA77ED4C_malloc@h DB 01H
+__EAE0325A_xmmintrin@h DB 01H
+__0ED14FEE_winpackagefamily@h DB 01H
+__F92EF742_winapifamily@h DB 01H
+__22E515EB_sdkddkver@h DB 01H
+__A09A3A7D_excpt@h DB 01H
+__AC8FA393_stdarg@h DB 01H
+__29F49F40_specstrings_undef@h DB 01H
+__D0F42932_specstrings_strict@h DB 01H
+__F00405FD_sdv_driverspecs@h DB 01H
+__173E09CA_driverspecs@h DB 01H
+__9A452361_specstrings@h DB 01H
+__74484FB3_corecrt_wctype@h DB 01H
+__1EC467ED_ctype@h DB 01H
+__98517906_kernelspecs@h DB 01H
+__D3497022_basetsd@h DB 01H
+__61CC25A1_errno@h DB 01H
+__890838BD_vcruntime_string@h DB 01H
+__E4C945B4_corecrt_memcpy_s@h DB 01H
+__8EAFF484_corecrt_memory@h DB 01H
+__6490AEC5_corecrt_wstring@h DB 01H
+__E8295E1E_string@h DB 01H
+__7FCB5136_guiddef@h DB 01H
+__FF8A9E11_pshpack4@h DB 01H
+__D5438902_poppack@h DB 01H
+__FB07E2A3_pshpack2@h DB 01H
+__F6906775_pshpack8@h DB 01H
+__F9415CFA_pshpack1@h DB 01H
+__E58C6F1C_apiset@h DB 01H
+__A5C52262_ktmtypes@h DB 01H
+__FBBA8F9D_winnt@h DB 01H
+__A32D3D2C_minwindef@h DB 01H
+__7D798299_windef@h DB 01H
+__9AE108E9_apisetcconv@h DB 01H
+__9CE53D2C_minwinbase@h DB 01H
+__5D0AA210_apiquery2@h DB 01H
+__4DD4E726_processenv@h DB 01H
+__3575CC96_fileapi@h DB 01H
+__8EA220E6_fileapifromapp@h DB 01H
+__BF9B31FE_debugapi@h DB 01H
+__C3AFE134_utilapiset@h DB 01H
+__76F69E51_handleapi@h DB 01H
+__7E63D784_errhandlingapi@h DB 01H
+__FFA7003C_fibersapi@h DB 01H
+__8971CECF_namedpipeapi@h DB 01H
+__46C9D8A6_profileapi@h DB 01H
+__98D4F0A3_heapapi@h DB 01H
+__50EF2A88_ioapiset@h DB 01H
+__92EA1464_synchapi@h DB 01H
+__A53D8AED_interlockedapi@h DB 01H
+__B506CAAF_processthreadsapi@h DB 01H
+__FF735694_sysinfoapi@h DB 01H
+__29589789_memoryapi@h DB 01H
+__E9C7A663_enclaveapi@h DB 01H
+__D035F9F7_threadpoollegacyapiset@h DB 01H
+__C899130C_threadpoolapiset@h DB 01H
+__E0441EE7_jobapi@h DB 01H
+__CEF86838_jobapi2@h DB 01H
+__35AC6B9A_wow64apiset@h DB 01H
+__C8AE41A5_libloaderapi@h DB 01H
+__CC9E232D_securitybaseapi@h DB 01H
+__C9D0C9B8_namespaceapi@h DB 01H
+__30FF9CAD_systemtopologyapi@h DB 01H
+__4D358795_processtopologyapi@h DB 01H
+__40446D10_securityappcontainer@h DB 01H
+__3A952EDF_realtimeapiset@h DB 01H
+__F4865F4B_winerror@h DB 01H
+__53C1BD93_timezoneapi@h DB 01H
+__1FFBEDBF_winbase@h DB 01H
+__43D3FA34_wingdi@h DB 01H
+__D24A7391_tvout@h DB 01H
+__7713A6C8_winuser@h DB 01H
+__0B345F71_datetimeapi@h DB 01H
+__9AC6960C_winnls@h DB 01H
+__973A40A8_stringapiset@h DB 01H
+__CC46FEE2_wincontypes@h DB 01H
+__97D70BE1_consoleapi@h DB 01H
+__27EC5E18_consoleapi2@h DB 01H
+__262E342F_consoleapi3@h DB 01H
+__641DCD70_wincon@h DB 01H
+__5A96C7A7_verrsrc@h DB 01H
+__B69C6FF2_winver@h DB 01H
+__7AEB8C37_reason@h DB 01H
+__59F1A8A9_winreg@h DB 01H
+__EE0E2B7F_wnnc@h DB 01H
+__DCDB7054_winnetwk@h DB 01H
+__81DDEDE3_stralign@h DB 01H
+__2134D1B4_winsvc@h DB 01H
+__11C07376_mcx@h DB 01H
+__577CE3E7_ime_cmodes@h DB 01H
+__1E72C31E_imm@h DB 01H
+__E15BF856_windows@h DB 01H
+__8FC206A7_ssc_internal@h DB 01H
+__44420885_corecrt_stdio_config@h DB 01H
+__AB601D8D_corecrt_wstdio@h DB 01H
+__C1EC35D3_stdio@h DB 01H
+__13F5961F_stddef@h DB 01H
+__FD6DBD68_corecrt_search@h DB 01H
+__E2E33A61_corecrt_wstdlib@h DB 01H
+__26263363_limits@h DB 01H
+__6E5ACABA_stdlib@h DB 01H
+__9049550C_stb_image@h DB 01H
+__98501D5C_stdint@h DB 01H
+__264E89B8_khrplatform@h DB 01H
+__799FCA13_gl@h DB 01H
+__A57296D0_wgl@h DB 01H
+__417F438F_glfw3@h DB 01H
+__8F82BB96_emmintrin@h DB 01H
+__5023D31F_pmmintrin@h DB 01H
+__E0FAA09D_tmmintrin@h DB 01H
+__C9C1B51E_smmintrin@h DB 01H
+__ACA33CD2_nmmintrin@h DB 01H
+__7918C69C_wmmintrin@h DB 01H
+__B28C8B9B_zmmintrin@h DB 01H
+__85982951_immintrin@h DB 01H
+__19139D6C_assert@h DB 01H
+__0C16F932_StgSharpC@h DB 01H
+__B2F9F159_intrin0@inl@h DB 01H
+__0833F55F_setjmp@h DB 01H
+__3F5BC814_ammintrin@h DB 01H
+__2E054928_intrin@h DB 01H
+__5A8332CE_isa_availability@h DB 01H
+__EB6C2FE1_ssc_intrinsic@h DB 01H
+__5DFFF5A8_mat4@c DB 01H
+msvcjmc ENDS
+PUBLIC addmatrix4_sse
+PUBLIC addmatrix4_avx
+PUBLIC addmatrix4_512
+PUBLIC transpose42
+PUBLIC transpose43
+PUBLIC transpose44
+PUBLIC det_mat4
+PUBLIC __JustMyCode_Default
+PUBLIC __xmm@80000000800000008000000080000000
+EXTRN det_mat3_internal:PROC
+EXTRN _RTC_CheckStackVars:PROC
+EXTRN _RTC_InitBase:PROC
+EXTRN _RTC_Shutdown:PROC
+EXTRN __CheckForDebuggerJustMyCode:PROC
+EXTRN _fltused:DWORD
+; COMDAT pdata
+pdata SEGMENT
+$pdata$addmatrix4_sse DD imagerel $LN3
+ DD imagerel $LN3+356
+ DD imagerel $unwind$addmatrix4_sse
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$addmatrix4_avx DD imagerel $LN3
+ DD imagerel $LN3+206
+ DD imagerel $unwind$addmatrix4_avx
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$addmatrix4_512 DD imagerel $LN3
+ DD imagerel $LN3+97
+ DD imagerel $unwind$addmatrix4_512
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$transpose42 DD imagerel $LN3
+ DD imagerel $LN3+227
+ DD imagerel $unwind$transpose42
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$transpose43 DD imagerel $LN3
+ DD imagerel $LN3+384
+ DD imagerel $unwind$transpose43
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$transpose44 DD imagerel $LN3
+ DD imagerel $LN3+416
+ DD imagerel $unwind$transpose44
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$det_mat4 DD imagerel $LN3
+ DD imagerel $LN3+655
+ DD imagerel $unwind$det_mat4
+pdata ENDS
+; COMDAT __xmm@80000000800000008000000080000000
+CONST SEGMENT
+__xmm@80000000800000008000000080000000 DB 00H, 00H, 00H, 080H, 00H, 00H, 00H
+ DB 080H, 00H, 00H, 00H, 080H, 00H, 00H, 00H, 080H
+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$det_mat4 DD 035053101H
+ DD 01133318H
+ DD 0700c00a3H
+ DD 0500bH
+xdata ENDS
+; COMDAT CONST
+CONST SEGMENT
+det_mat4$rtcName$0 DB 072H
+ DB 065H
+ DB 074H
+ DB 076H
+ DB 065H
+ DB 063H
+ DB 00H
+ ORG $+9
+det_mat4$rtcVarDesc DD 0130H
+ DD 010H
+ DQ FLAT:det_mat4$rtcName$0
+ ORG $+48
+det_mat4$rtcFrameData DD 01H
+ DD 00H
+ DQ FLAT:det_mat4$rtcVarDesc
+CONST ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$transpose44 DD 025051801H
+ DD 01132318H
+ DD 0700c0035H
+ DD 0500bH
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$transpose43 DD 025051801H
+ DD 01132318H
+ DD 0700c0035H
+ DD 0500bH
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$transpose42 DD 025051801H
+ DD 01132318H
+ DD 0700c0029H
+ DD 0500bH
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$addmatrix4_512 DD 025051d01H
+ DD 0118231dH
+ DD 07011001dH
+ DD 05010H
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$addmatrix4_avx DD 025051d01H
+ DD 0118231dH
+ DD 07011001dH
+ DD 05010H
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$addmatrix4_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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\mat4.c
+; COMDAT det_mat4
+_TEXT SEGMENT
+mc0$ = 16
+mc1$ = 64
+mc2$ = 112
+mc3$ = 160
+cogeneration$ = 208
+retvec$ = 256
+$T4 = 688
+$T5 = 736
+$T6 = 784
+$T7 = 832
+$T8 = 880
+$T9 = 928
+$T10 = 976
+$T11 = 1024
+$T12 = 1072
+$T13 = 1120
+$T14 = 1168
+$T15 = 1216
+tv89 = 1236
+tv95 = 1240
+tv133 = 1244
+mat_ptr$ = 1280
+transpose$ = 1288
+det_mat4 PROC ; COMDAT
+
+; 52 : {
+
+$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 18 05
+ 00 00 sub rsp, 1304 ; 00000518H
+ 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48]
+ 00018 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48]
+ 0001d b9 da 00 00 00 mov ecx, 218 ; 000000daH
+ 00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
+ 00027 f3 ab rep stosd
+ 00029 48 8b 8c 24 38
+ 05 00 00 mov rcx, QWORD PTR [rsp+1336]
+ 00031 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:__5DFFF5A8_mat4@c
+ 00038 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0003d 90 npad 1
+
+; 53 : __m128 mc0 = ALIGN(mat_ptr->column[0]);
+
+ 0003e b8 10 00 00 00 mov eax, 16
+ 00043 48 6b c0 00 imul rax, rax, 0
+ 00047 48 8b 8d 00 05
+ 00 00 mov rcx, QWORD PTR mat_ptr$[rbp]
+ 0004e 48 03 c8 add rcx, rax
+ 00051 48 8b c1 mov rax, rcx
+ 00054 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 00057 0f 29 45 10 movaps XMMWORD PTR mc0$[rbp], xmm0
+
+; 54 : __m128 mc1 = ALIGN(mat_ptr->column[1]);
+
+ 0005b b8 10 00 00 00 mov eax, 16
+ 00060 48 6b c0 01 imul rax, rax, 1
+ 00064 48 8b 8d 00 05
+ 00 00 mov rcx, QWORD PTR mat_ptr$[rbp]
+ 0006b 48 03 c8 add rcx, rax
+ 0006e 48 8b c1 mov rax, rcx
+ 00071 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 00074 0f 29 45 40 movaps XMMWORD PTR mc1$[rbp], xmm0
+
+; 55 : __m128 mc2 = ALIGN(mat_ptr->column[2]);
+
+ 00078 b8 10 00 00 00 mov eax, 16
+ 0007d 48 6b c0 02 imul rax, rax, 2
+ 00081 48 8b 8d 00 05
+ 00 00 mov rcx, QWORD PTR mat_ptr$[rbp]
+ 00088 48 03 c8 add rcx, rax
+ 0008b 48 8b c1 mov rax, rcx
+ 0008e 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 00091 0f 29 45 70 movaps XMMWORD PTR mc2$[rbp], xmm0
+
+; 56 : __m128 mc3 = ALIGN(mat_ptr->column[3]);
+
+ 00095 b8 10 00 00 00 mov eax, 16
+ 0009a 48 6b c0 03 imul rax, rax, 3
+ 0009e 48 8b 8d 00 05
+ 00 00 mov rcx, QWORD PTR mat_ptr$[rbp]
+ 000a5 48 03 c8 add rcx, rax
+ 000a8 48 8b c1 mov rax, rcx
+ 000ab 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 000ae 0f 29 85 a0 00
+ 00 00 movaps XMMWORD PTR mc3$[rbp], xmm0
+
+; 57 :
+; 58 : __m128 cogeneration =
+
+ 000b5 0f 28 85 a0 00
+ 00 00 movaps xmm0, XMMWORD PTR mc3$[rbp]
+ 000bc 0f 29 85 10 03
+ 00 00 movaps XMMWORD PTR $T6[rbp], xmm0
+ 000c3 0f 28 45 70 movaps xmm0, XMMWORD PTR mc2$[rbp]
+ 000c7 0f 29 85 e0 02
+ 00 00 movaps XMMWORD PTR $T5[rbp], xmm0
+ 000ce 0f 28 45 40 movaps xmm0, XMMWORD PTR mc1$[rbp]
+ 000d2 0f 29 85 b0 02
+ 00 00 movaps XMMWORD PTR $T4[rbp], xmm0
+ 000d9 4c 8d 85 10 03
+ 00 00 lea r8, QWORD PTR $T6[rbp]
+ 000e0 48 8d 95 e0 02
+ 00 00 lea rdx, QWORD PTR $T5[rbp]
+ 000e7 48 8d 8d b0 02
+ 00 00 lea rcx, QWORD PTR $T4[rbp]
+ 000ee e8 00 00 00 00 call det_mat3_internal
+ 000f3 f3 0f 2a c0 cvtsi2ss xmm0, eax
+ 000f7 f3 0f 11 85 d4
+ 04 00 00 movss DWORD PTR tv89[rbp], xmm0
+ 000ff 0f 28 8d a0 00
+ 00 00 movaps xmm1, XMMWORD PTR mc3$[rbp]
+ 00106 0f 29 8d a0 03
+ 00 00 movaps XMMWORD PTR $T9[rbp], xmm1
+ 0010d 0f 28 4d 70 movaps xmm1, XMMWORD PTR mc2$[rbp]
+ 00111 0f 29 8d 70 03
+ 00 00 movaps XMMWORD PTR $T8[rbp], xmm1
+ 00118 0f 28 4d 10 movaps xmm1, XMMWORD PTR mc0$[rbp]
+ 0011c 0f 29 8d 40 03
+ 00 00 movaps XMMWORD PTR $T7[rbp], xmm1
+ 00123 4c 8d 85 a0 03
+ 00 00 lea r8, QWORD PTR $T9[rbp]
+ 0012a 48 8d 95 70 03
+ 00 00 lea rdx, QWORD PTR $T8[rbp]
+ 00131 48 8d 8d 40 03
+ 00 00 lea rcx, QWORD PTR $T7[rbp]
+ 00138 e8 00 00 00 00 call det_mat3_internal
+ 0013d f3 0f 2a c0 cvtsi2ss xmm0, eax
+ 00141 f3 0f 11 85 d8
+ 04 00 00 movss DWORD PTR tv95[rbp], xmm0
+ 00149 0f 28 8d a0 00
+ 00 00 movaps xmm1, XMMWORD PTR mc3$[rbp]
+ 00150 0f 29 8d 30 04
+ 00 00 movaps XMMWORD PTR $T12[rbp], xmm1
+ 00157 0f 28 4d 40 movaps xmm1, XMMWORD PTR mc1$[rbp]
+ 0015b 0f 29 8d 00 04
+ 00 00 movaps XMMWORD PTR $T11[rbp], xmm1
+ 00162 0f 28 4d 10 movaps xmm1, XMMWORD PTR mc0$[rbp]
+ 00166 0f 29 8d d0 03
+ 00 00 movaps XMMWORD PTR $T10[rbp], xmm1
+ 0016d 4c 8d 85 30 04
+ 00 00 lea r8, QWORD PTR $T12[rbp]
+ 00174 48 8d 95 00 04
+ 00 00 lea rdx, QWORD PTR $T11[rbp]
+ 0017b 48 8d 8d d0 03
+ 00 00 lea rcx, QWORD PTR $T10[rbp]
+ 00182 e8 00 00 00 00 call det_mat3_internal
+ 00187 f3 0f 2a c0 cvtsi2ss xmm0, eax
+ 0018b f3 0f 11 85 dc
+ 04 00 00 movss DWORD PTR tv133[rbp], xmm0
+ 00193 0f 28 4d 70 movaps xmm1, XMMWORD PTR mc2$[rbp]
+ 00197 0f 29 8d c0 04
+ 00 00 movaps XMMWORD PTR $T15[rbp], xmm1
+ 0019e 0f 28 4d 40 movaps xmm1, XMMWORD PTR mc1$[rbp]
+ 001a2 0f 29 8d 90 04
+ 00 00 movaps XMMWORD PTR $T14[rbp], xmm1
+ 001a9 0f 28 4d 10 movaps xmm1, XMMWORD PTR mc0$[rbp]
+ 001ad 0f 29 8d 60 04
+ 00 00 movaps XMMWORD PTR $T13[rbp], xmm1
+ 001b4 4c 8d 85 c0 04
+ 00 00 lea r8, QWORD PTR $T15[rbp]
+ 001bb 48 8d 95 90 04
+ 00 00 lea rdx, QWORD PTR $T14[rbp]
+ 001c2 48 8d 8d 60 04
+ 00 00 lea rcx, QWORD PTR $T13[rbp]
+ 001c9 e8 00 00 00 00 call det_mat3_internal
+ 001ce f3 0f 2a c0 cvtsi2ss xmm0, eax
+ 001d2 f3 0f 10 8d dc
+ 04 00 00 movss xmm1, DWORD PTR tv133[rbp]
+ 001da f3 0f 10 95 d8
+ 04 00 00 movss xmm2, DWORD PTR tv95[rbp]
+ 001e2 f3 0f 10 9d d4
+ 04 00 00 movss xmm3, DWORD PTR tv89[rbp]
+ 001ea 0f 14 c8 unpcklps xmm1, xmm0
+ 001ed 0f 14 da unpcklps xmm3, xmm2
+ 001f0 0f 28 c3 movaps xmm0, xmm3
+ 001f3 0f 16 c1 movlhps xmm0, xmm1
+ 001f6 0f 29 85 d0 00
+ 00 00 movaps XMMWORD PTR cogeneration$[rbp], xmm0
+
+; 59 : _mm_set_ps(det_mat3_internal(mc0, mc1, mc2), det_mat3_internal(mc0, mc1, mc3),
+; 60 : det_mat3_internal(mc0, mc2, mc3), det_mat3_internal(mc1, mc2, mc3));
+; 61 : __m128 retvec = _mm_mul_ps(ALIGN(transpose->column[3]), cogeneration);
+
+ 001fd b8 10 00 00 00 mov eax, 16
+ 00202 48 6b c0 03 imul rax, rax, 3
+ 00206 48 8b 8d 08 05
+ 00 00 mov rcx, QWORD PTR transpose$[rbp]
+ 0020d 48 03 c8 add rcx, rax
+ 00210 48 8b c1 mov rax, rcx
+ 00213 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 00216 0f 59 85 d0 00
+ 00 00 mulps xmm0, XMMWORD PTR cogeneration$[rbp]
+ 0021d 0f 29 85 00 01
+ 00 00 movaps XMMWORD PTR retvec$[rbp], xmm0
+
+; 62 : retvec = _mm_hsub_ps(retvec, retvec);
+
+ 00224 0f 28 85 00 01
+ 00 00 movaps xmm0, XMMWORD PTR retvec$[rbp]
+ 0022b f2 0f 7d 85 00
+ 01 00 00 hsubps xmm0, XMMWORD PTR retvec$[rbp]
+ 00233 0f 29 85 00 01
+ 00 00 movaps XMMWORD PTR retvec$[rbp], xmm0
+
+; 63 : retvec = _mm_hadd_ps(retvec, retvec);
+
+ 0023a 0f 28 85 00 01
+ 00 00 movaps xmm0, XMMWORD PTR retvec$[rbp]
+ 00241 f2 0f 7c 85 00
+ 01 00 00 haddps xmm0, XMMWORD PTR retvec$[rbp]
+ 00249 0f 29 85 00 01
+ 00 00 movaps XMMWORD PTR retvec$[rbp], xmm0
+
+; 64 : return -retvec.m128_f32[0];
+
+ 00250 b8 04 00 00 00 mov eax, 4
+ 00255 48 6b c0 00 imul rax, rax, 0
+ 00259 f3 0f 10 84 05
+ 00 01 00 00 movss xmm0, DWORD PTR retvec$[rbp+rax]
+ 00262 0f 57 05 00 00
+ 00 00 xorps xmm0, DWORD PTR __xmm@80000000800000008000000080000000
+
+; 65 : }
+
+ 00269 f3 0f 7f 44 24
+ 20 movdqu XMMWORD PTR [rsp+32], xmm0
+ 0026f 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48]
+ 00273 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:det_mat4$rtcFrameData
+ 0027a e8 00 00 00 00 call _RTC_CheckStackVars
+ 0027f f3 0f 6f 44 24
+ 20 movdqu xmm0, XMMWORD PTR [rsp+32]
+ 00285 48 8d a5 e8 04
+ 00 00 lea rsp, QWORD PTR [rbp+1256]
+ 0028c 5f pop rdi
+ 0028d 5d pop rbp
+ 0028e c3 ret 0
+det_mat4 ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\mat4.c
+; COMDAT transpose44
+_TEXT SEGMENT
+t0$ = 16
+t1$ = 64
+t2$ = 112
+t3$ = 160
+source$ = 416
+target$ = 424
+transpose44 PROC ; COMDAT
+
+; 35 : {
+
+$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 a8 01
+ 00 00 sub rsp, 424 ; 000001a8H
+ 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
+ 00018 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:__5DFFF5A8_mat4@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 36 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+
+ 00025 b8 10 00 00 00 mov eax, 16
+ 0002a 48 6b c0 01 imul rax, rax, 1
+ 0002e 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00035 48 03 c8 add rcx, rax
+ 00038 48 8b c1 mov rax, rcx
+ 0003b 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0003e b8 10 00 00 00 mov eax, 16
+ 00043 48 6b c0 00 imul rax, rax, 0
+ 00047 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 0004e 48 03 c8 add rcx, rax
+ 00051 48 8b c1 mov rax, rcx
+ 00054 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00057 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
+ 0005b 0f 28 c1 movaps xmm0, xmm1
+ 0005e 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0
+
+; 37 : _MM_SHUFFLE(1, 0, 1, 0));
+; 38 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+
+ 00062 b8 10 00 00 00 mov eax, 16
+ 00067 48 6b c0 01 imul rax, rax, 1
+ 0006b 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00072 48 03 c8 add rcx, rax
+ 00075 48 8b c1 mov rax, rcx
+ 00078 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0007b b8 10 00 00 00 mov eax, 16
+ 00080 48 6b c0 00 imul rax, rax, 0
+ 00084 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 0008b 48 03 c8 add rcx, rax
+ 0008e 48 8b c1 mov rax, rcx
+ 00091 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00094 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH
+ 00098 0f 28 c1 movaps xmm0, xmm1
+ 0009b 0f 29 45 40 movaps XMMWORD PTR t1$[rbp], xmm0
+
+; 39 : _MM_SHUFFLE(3, 2, 3, 2));
+; 40 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->column[2]), ALIGN(source->column[3]),
+
+ 0009f b8 10 00 00 00 mov eax, 16
+ 000a4 48 6b c0 03 imul rax, rax, 3
+ 000a8 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 000af 48 03 c8 add rcx, rax
+ 000b2 48 8b c1 mov rax, rcx
+ 000b5 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 000b8 b8 10 00 00 00 mov eax, 16
+ 000bd 48 6b c0 02 imul rax, rax, 2
+ 000c1 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 000c8 48 03 c8 add rcx, rax
+ 000cb 48 8b c1 mov rax, rcx
+ 000ce 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 000d1 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
+ 000d5 0f 28 c1 movaps xmm0, xmm1
+ 000d8 0f 29 45 70 movaps XMMWORD PTR t2$[rbp], xmm0
+
+; 41 : _MM_SHUFFLE(1, 0, 1, 0));
+; 42 : __m128 t3 = _mm_shuffle_ps(ALIGN(source->column[2]), ALIGN(source->column[3]),
+
+ 000dc b8 10 00 00 00 mov eax, 16
+ 000e1 48 6b c0 03 imul rax, rax, 3
+ 000e5 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 000ec 48 03 c8 add rcx, rax
+ 000ef 48 8b c1 mov rax, rcx
+ 000f2 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 000f5 b8 10 00 00 00 mov eax, 16
+ 000fa 48 6b c0 02 imul rax, rax, 2
+ 000fe 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00105 48 03 c8 add rcx, rax
+ 00108 48 8b c1 mov rax, rcx
+ 0010b 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 0010e 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH
+ 00112 0f 28 c1 movaps xmm0, xmm1
+ 00115 0f 29 85 a0 00
+ 00 00 movaps XMMWORD PTR t3$[rbp], xmm0
+
+; 43 : _MM_SHUFFLE(3, 2, 3, 2));
+; 44 :
+; 45 : target->column[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
+
+ 0011c 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
+ 00120 0f c6 45 70 88 shufps xmm0, XMMWORD PTR t2$[rbp], 136 ; 00000088H
+ 00125 b8 10 00 00 00 mov eax, 16
+ 0012a 48 6b c0 00 imul rax, rax, 0
+ 0012e 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 00135 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 46 : target->column[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
+
+ 00139 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
+ 0013d 0f c6 45 70 dd shufps xmm0, XMMWORD PTR t2$[rbp], 221 ; 000000ddH
+ 00142 b8 10 00 00 00 mov eax, 16
+ 00147 48 6b c0 01 imul rax, rax, 1
+ 0014b 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 00152 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 47 : target->column[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0));
+
+ 00156 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp]
+ 0015a 0f c6 85 a0 00
+ 00 00 88 shufps xmm0, XMMWORD PTR t3$[rbp], 136 ; 00000088H
+ 00162 b8 10 00 00 00 mov eax, 16
+ 00167 48 6b c0 02 imul rax, rax, 2
+ 0016b 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 00172 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 48 : target->column[3] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(3, 1, 3, 1));
+
+ 00176 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp]
+ 0017a 0f c6 85 a0 00
+ 00 00 dd shufps xmm0, XMMWORD PTR t3$[rbp], 221 ; 000000ddH
+ 00182 b8 10 00 00 00 mov eax, 16
+ 00187 48 6b c0 03 imul rax, rax, 3
+ 0018b 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 00192 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 49 : }
+
+ 00196 48 8d a5 88 01
+ 00 00 lea rsp, QWORD PTR [rbp+392]
+ 0019d 5f pop rdi
+ 0019e 5d pop rbp
+ 0019f c3 ret 0
+transpose44 ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\mat4.c
+; COMDAT transpose43
+_TEXT SEGMENT
+t0$ = 16
+t1$ = 64
+t2$ = 112
+t3$ = 160
+source$ = 416
+target$ = 424
+transpose43 PROC ; COMDAT
+
+; 19 : {
+
+$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 a8 01
+ 00 00 sub rsp, 424 ; 000001a8H
+ 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
+ 00018 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:__5DFFF5A8_mat4@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 20 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+
+ 00025 b8 10 00 00 00 mov eax, 16
+ 0002a 48 6b c0 01 imul rax, rax, 1
+ 0002e 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00035 48 03 c8 add rcx, rax
+ 00038 48 8b c1 mov rax, rcx
+ 0003b 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0003e b8 10 00 00 00 mov eax, 16
+ 00043 48 6b c0 00 imul rax, rax, 0
+ 00047 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 0004e 48 03 c8 add rcx, rax
+ 00051 48 8b c1 mov rax, rcx
+ 00054 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00057 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
+ 0005b 0f 28 c1 movaps xmm0, xmm1
+ 0005e 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0
+
+; 21 : _MM_SHUFFLE(1, 0, 1, 0));
+; 22 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+
+ 00062 b8 10 00 00 00 mov eax, 16
+ 00067 48 6b c0 01 imul rax, rax, 1
+ 0006b 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00072 48 03 c8 add rcx, rax
+ 00075 48 8b c1 mov rax, rcx
+ 00078 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0007b b8 10 00 00 00 mov eax, 16
+ 00080 48 6b c0 00 imul rax, rax, 0
+ 00084 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 0008b 48 03 c8 add rcx, rax
+ 0008e 48 8b c1 mov rax, rcx
+ 00091 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00094 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH
+ 00098 0f 28 c1 movaps xmm0, xmm1
+ 0009b 0f 29 45 40 movaps XMMWORD PTR t1$[rbp], xmm0
+
+; 23 : _MM_SHUFFLE(3, 2, 3, 2));
+; 24 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->column[2]), ALIGN(source->column[3]),
+
+ 0009f b8 10 00 00 00 mov eax, 16
+ 000a4 48 6b c0 03 imul rax, rax, 3
+ 000a8 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 000af 48 03 c8 add rcx, rax
+ 000b2 48 8b c1 mov rax, rcx
+ 000b5 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 000b8 b8 10 00 00 00 mov eax, 16
+ 000bd 48 6b c0 02 imul rax, rax, 2
+ 000c1 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 000c8 48 03 c8 add rcx, rax
+ 000cb 48 8b c1 mov rax, rcx
+ 000ce 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 000d1 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
+ 000d5 0f 28 c1 movaps xmm0, xmm1
+ 000d8 0f 29 45 70 movaps XMMWORD PTR t2$[rbp], xmm0
+
+; 25 : _MM_SHUFFLE(1, 0, 1, 0));
+; 26 : __m128 t3 = _mm_shuffle_ps(ALIGN(source->column[2]), ALIGN(source->column[3]),
+
+ 000dc b8 10 00 00 00 mov eax, 16
+ 000e1 48 6b c0 03 imul rax, rax, 3
+ 000e5 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 000ec 48 03 c8 add rcx, rax
+ 000ef 48 8b c1 mov rax, rcx
+ 000f2 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 000f5 b8 10 00 00 00 mov eax, 16
+ 000fa 48 6b c0 02 imul rax, rax, 2
+ 000fe 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00105 48 03 c8 add rcx, rax
+ 00108 48 8b c1 mov rax, rcx
+ 0010b 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 0010e 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH
+ 00112 0f 28 c1 movaps xmm0, xmm1
+ 00115 0f 29 85 a0 00
+ 00 00 movaps XMMWORD PTR t3$[rbp], xmm0
+
+; 27 : _MM_SHUFFLE(3, 2, 3, 2));
+; 28 :
+; 29 : target->column[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
+
+ 0011c 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
+ 00120 0f c6 45 70 88 shufps xmm0, XMMWORD PTR t2$[rbp], 136 ; 00000088H
+ 00125 b8 10 00 00 00 mov eax, 16
+ 0012a 48 6b c0 00 imul rax, rax, 0
+ 0012e 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 00135 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 30 : target->column[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
+
+ 00139 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
+ 0013d 0f c6 45 70 dd shufps xmm0, XMMWORD PTR t2$[rbp], 221 ; 000000ddH
+ 00142 b8 10 00 00 00 mov eax, 16
+ 00147 48 6b c0 01 imul rax, rax, 1
+ 0014b 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 00152 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 31 : target->column[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0));
+
+ 00156 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp]
+ 0015a 0f c6 85 a0 00
+ 00 00 88 shufps xmm0, XMMWORD PTR t3$[rbp], 136 ; 00000088H
+ 00162 b8 10 00 00 00 mov eax, 16
+ 00167 48 6b c0 02 imul rax, rax, 2
+ 0016b 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 00172 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 32 : }
+
+ 00176 48 8d a5 88 01
+ 00 00 lea rsp, QWORD PTR [rbp+392]
+ 0017d 5f pop rdi
+ 0017e 5d pop rbp
+ 0017f c3 ret 0
+transpose43 ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\mat4.c
+; COMDAT transpose42
+_TEXT SEGMENT
+t0$ = 16
+t2$ = 64
+source$ = 320
+target$ = 328
+transpose42 PROC ; COMDAT
+
+; 8 : {
+
+$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 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:__5DFFF5A8_mat4@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 9 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+
+ 00025 b8 10 00 00 00 mov eax, 16
+ 0002a 48 6b c0 01 imul rax, rax, 1
+ 0002e 48 8b 8d 40 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00035 48 03 c8 add rcx, rax
+ 00038 48 8b c1 mov rax, rcx
+ 0003b 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0003e b8 10 00 00 00 mov eax, 16
+ 00043 48 6b c0 00 imul rax, rax, 0
+ 00047 48 8b 8d 40 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 0004e 48 03 c8 add rcx, rax
+ 00051 48 8b c1 mov rax, rcx
+ 00054 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00057 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
+ 0005b 0f 28 c1 movaps xmm0, xmm1
+ 0005e 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0
+
+; 10 : _MM_SHUFFLE(1, 0, 1, 0));
+; 11 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->column[2]), ALIGN(source->column[3]),
+
+ 00062 b8 10 00 00 00 mov eax, 16
+ 00067 48 6b c0 03 imul rax, rax, 3
+ 0006b 48 8b 8d 40 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00072 48 03 c8 add rcx, rax
+ 00075 48 8b c1 mov rax, rcx
+ 00078 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0007b b8 10 00 00 00 mov eax, 16
+ 00080 48 6b c0 02 imul rax, rax, 2
+ 00084 48 8b 8d 40 01
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 0008b 48 03 c8 add rcx, rax
+ 0008e 48 8b c1 mov rax, rcx
+ 00091 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00094 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
+ 00098 0f 28 c1 movaps xmm0, xmm1
+ 0009b 0f 29 45 40 movaps XMMWORD PTR t2$[rbp], xmm0
+
+; 12 : _MM_SHUFFLE(1, 0, 1, 0));
+; 13 :
+; 14 : target->column[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
+
+ 0009f 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
+ 000a3 0f c6 45 40 88 shufps xmm0, XMMWORD PTR t2$[rbp], 136 ; 00000088H
+ 000a8 b8 10 00 00 00 mov eax, 16
+ 000ad 48 6b c0 00 imul rax, rax, 0
+ 000b1 48 8b 8d 48 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 000b8 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 15 : target->column[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
+
+ 000bc 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
+ 000c0 0f c6 45 40 dd shufps xmm0, XMMWORD PTR t2$[rbp], 221 ; 000000ddH
+ 000c5 b8 10 00 00 00 mov eax, 16
+ 000ca 48 6b c0 01 imul rax, rax, 1
+ 000ce 48 8b 8d 48 01
+ 00 00 mov rcx, QWORD PTR target$[rbp]
+ 000d5 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 16 : }
+
+ 000d9 48 8d a5 28 01
+ 00 00 lea rsp, QWORD PTR [rbp+296]
+ 000e0 5f pop rdi
+ 000e1 5d pop rbp
+ 000e2 c3 ret 0
+transpose42 ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\mat4.c
+; COMDAT addmatrix4_512
+_TEXT SEGMENT
+left$ = 224
+right$ = 232
+ans$ = 240
+addmatrix4_512 PROC ; COMDAT
+
+; 82 : {
+
+$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:__5DFFF5A8_mat4@c
+ 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00029 90 npad 1
+
+; 83 : ans->stream = _mm512_add_ps(ALIGN512(left->stream), ALIGN512(right->stream));
+
+ 0002a 48 8b 85 e8 00
+ 00 00 mov rax, QWORD PTR right$[rbp]
+ 00031 62 f1 7c 48 10
+ 00 vmovups zmm0, ZMMWORD PTR [rax]
+ 00037 48 8b 85 e0 00
+ 00 00 mov rax, QWORD PTR left$[rbp]
+ 0003e 62 f1 7c 48 10
+ 08 vmovups zmm1, ZMMWORD PTR [rax]
+ 00044 62 f1 74 48 58
+ c0 vaddps zmm0, zmm1, zmm0
+ 0004a 48 8b 85 f0 00
+ 00 00 mov rax, QWORD PTR ans$[rbp]
+ 00051 62 f1 7c 48 11
+ 00 vmovups ZMMWORD PTR [rax], zmm0
+
+; 84 : }
+
+ 00057 48 8d a5 c8 00
+ 00 00 lea rsp, QWORD PTR [rbp+200]
+ 0005e 5f pop rdi
+ 0005f 5d pop rbp
+ 00060 c3 ret 0
+addmatrix4_512 ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\mat4.c
+; COMDAT addmatrix4_avx
+_TEXT SEGMENT
+left$ = 224
+right$ = 232
+ans$ = 240
+addmatrix4_avx PROC ; COMDAT
+
+; 76 : {
+
+$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:__5DFFF5A8_mat4@c
+ 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00029 90 npad 1
+
+; 77 : ans->half[0] = _mm256_add_ps(ALIGN256(left->half[0]), ALIGN256(right->half[0]));
+
+ 0002a b8 20 00 00 00 mov eax, 32 ; 00000020H
+ 0002f 48 6b c0 00 imul rax, rax, 0
+ 00033 48 8b 8d e8 00
+ 00 00 mov rcx, QWORD PTR right$[rbp]
+ 0003a 48 03 c8 add rcx, rax
+ 0003d 48 8b c1 mov rax, rcx
+ 00040 c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax]
+ 00044 b8 20 00 00 00 mov eax, 32 ; 00000020H
+ 00049 48 6b c0 00 imul rax, rax, 0
+ 0004d 48 8b 8d e0 00
+ 00 00 mov rcx, QWORD PTR left$[rbp]
+ 00054 48 03 c8 add rcx, rax
+ 00057 48 8b c1 mov rax, rcx
+ 0005a c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax]
+ 0005e c5 f4 58 c0 vaddps ymm0, ymm1, ymm0
+ 00062 b8 20 00 00 00 mov eax, 32 ; 00000020H
+ 00067 48 6b c0 00 imul rax, rax, 0
+ 0006b 48 8b 8d f0 00
+ 00 00 mov rcx, QWORD PTR ans$[rbp]
+ 00072 c5 fc 11 04 01 vmovups YMMWORD PTR [rcx+rax], ymm0
+
+; 78 : ans->half[1] = _mm256_add_ps(ALIGN256(left->half[1]), ALIGN256(right->half[1]));
+
+ 00077 b8 20 00 00 00 mov eax, 32 ; 00000020H
+ 0007c 48 6b c0 01 imul rax, rax, 1
+ 00080 48 8b 8d e8 00
+ 00 00 mov rcx, QWORD PTR right$[rbp]
+ 00087 48 03 c8 add rcx, rax
+ 0008a 48 8b c1 mov rax, rcx
+ 0008d c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax]
+ 00091 b8 20 00 00 00 mov eax, 32 ; 00000020H
+ 00096 48 6b c0 01 imul rax, rax, 1
+ 0009a 48 8b 8d e0 00
+ 00 00 mov rcx, QWORD PTR left$[rbp]
+ 000a1 48 03 c8 add rcx, rax
+ 000a4 48 8b c1 mov rax, rcx
+ 000a7 c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax]
+ 000ab c5 f4 58 c0 vaddps ymm0, ymm1, ymm0
+ 000af b8 20 00 00 00 mov eax, 32 ; 00000020H
+ 000b4 48 6b c0 01 imul rax, rax, 1
+ 000b8 48 8b 8d f0 00
+ 00 00 mov rcx, QWORD PTR ans$[rbp]
+ 000bf c5 fc 11 04 01 vmovups YMMWORD PTR [rcx+rax], ymm0
+
+; 79 : }
+
+ 000c4 48 8d a5 c8 00
+ 00 00 lea rsp, QWORD PTR [rbp+200]
+ 000cb 5f pop rdi
+ 000cc 5d pop rbp
+ 000cd c3 ret 0
+addmatrix4_avx ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\mat4.c
+; COMDAT addmatrix4_sse
+_TEXT SEGMENT
+left$ = 224
+right$ = 232
+ans$ = 240
+addmatrix4_sse PROC ; COMDAT
+
+; 68 : {
+
+$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:__5DFFF5A8_mat4@c
+ 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00029 90 npad 1
+
+; 69 : ans->column[0] = _mm_add_ps(ALIGN(left->column[0]), ALIGN(right->column[0]));
+
+ 0002a b8 10 00 00 00 mov eax, 16
+ 0002f 48 6b c0 00 imul rax, rax, 0
+ 00033 48 8b 8d e8 00
+ 00 00 mov rcx, QWORD PTR right$[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 b8 10 00 00 00 mov eax, 16
+ 00048 48 6b c0 00 imul rax, rax, 0
+ 0004c 48 8b 8d e0 00
+ 00 00 mov rcx, QWORD PTR left$[rbp]
+ 00053 48 03 c8 add rcx, rax
+ 00056 48 8b c1 mov rax, rcx
+ 00059 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 0005c 0f 58 c8 addps xmm1, xmm0
+ 0005f 0f 28 c1 movaps xmm0, xmm1
+ 00062 b8 10 00 00 00 mov eax, 16
+ 00067 48 6b c0 00 imul rax, rax, 0
+ 0006b 48 8b 8d f0 00
+ 00 00 mov rcx, QWORD PTR ans$[rbp]
+ 00072 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 70 : ans->column[1] = _mm_add_ps(ALIGN(left->column[1]), ALIGN(right->column[1]));
+
+ 00076 b8 10 00 00 00 mov eax, 16
+ 0007b 48 6b c0 01 imul rax, rax, 1
+ 0007f 48 8b 8d e8 00
+ 00 00 mov rcx, QWORD PTR right$[rbp]
+ 00086 48 03 c8 add rcx, rax
+ 00089 48 8b c1 mov rax, rcx
+ 0008c 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0008f b8 10 00 00 00 mov eax, 16
+ 00094 48 6b c0 01 imul rax, rax, 1
+ 00098 48 8b 8d e0 00
+ 00 00 mov rcx, QWORD PTR left$[rbp]
+ 0009f 48 03 c8 add rcx, rax
+ 000a2 48 8b c1 mov rax, rcx
+ 000a5 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 000a8 0f 58 c8 addps xmm1, xmm0
+ 000ab 0f 28 c1 movaps xmm0, xmm1
+ 000ae b8 10 00 00 00 mov eax, 16
+ 000b3 48 6b c0 01 imul rax, rax, 1
+ 000b7 48 8b 8d f0 00
+ 00 00 mov rcx, QWORD PTR ans$[rbp]
+ 000be 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 71 : ans->column[2] = _mm_add_ps(ALIGN(left->column[2]), ALIGN(right->column[2]));
+
+ 000c2 b8 10 00 00 00 mov eax, 16
+ 000c7 48 6b c0 02 imul rax, rax, 2
+ 000cb 48 8b 8d e8 00
+ 00 00 mov rcx, QWORD PTR right$[rbp]
+ 000d2 48 03 c8 add rcx, rax
+ 000d5 48 8b c1 mov rax, rcx
+ 000d8 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 000db b8 10 00 00 00 mov eax, 16
+ 000e0 48 6b c0 02 imul rax, rax, 2
+ 000e4 48 8b 8d e0 00
+ 00 00 mov rcx, QWORD PTR left$[rbp]
+ 000eb 48 03 c8 add rcx, rax
+ 000ee 48 8b c1 mov rax, rcx
+ 000f1 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 000f4 0f 58 c8 addps xmm1, xmm0
+ 000f7 0f 28 c1 movaps xmm0, xmm1
+ 000fa b8 10 00 00 00 mov eax, 16
+ 000ff 48 6b c0 02 imul rax, rax, 2
+ 00103 48 8b 8d f0 00
+ 00 00 mov rcx, QWORD PTR ans$[rbp]
+ 0010a 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 72 : ans->column[3] = _mm_add_ps(ALIGN(left->column[3]), ALIGN(right->column[3]));
+
+ 0010e b8 10 00 00 00 mov eax, 16
+ 00113 48 6b c0 03 imul rax, rax, 3
+ 00117 48 8b 8d e8 00
+ 00 00 mov rcx, QWORD PTR right$[rbp]
+ 0011e 48 03 c8 add rcx, rax
+ 00121 48 8b c1 mov rax, rcx
+ 00124 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 00127 b8 10 00 00 00 mov eax, 16
+ 0012c 48 6b c0 03 imul rax, rax, 3
+ 00130 48 8b 8d e0 00
+ 00 00 mov rcx, QWORD PTR left$[rbp]
+ 00137 48 03 c8 add rcx, rax
+ 0013a 48 8b c1 mov rax, rcx
+ 0013d 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00140 0f 58 c8 addps xmm1, xmm0
+ 00143 0f 28 c1 movaps xmm0, xmm1
+ 00146 b8 10 00 00 00 mov eax, 16
+ 0014b 48 6b c0 03 imul rax, rax, 3
+ 0014f 48 8b 8d f0 00
+ 00 00 mov rcx, QWORD PTR ans$[rbp]
+ 00156 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 73 : }
+
+ 0015a 48 8d a5 c8 00
+ 00 00 lea rsp, QWORD PTR [rbp+200]
+ 00161 5f pop rdi
+ 00162 5d pop rbp
+ 00163 c3 ret 0
+addmatrix4_sse ENDP
+_TEXT ENDS
+END
diff --git a/StgSharp.C/x64/Debug/mat4.obj b/StgSharp.C/x64/Debug/mat4.obj
new file mode 100644
index 00000000..c43d9eb1
Binary files /dev/null and b/StgSharp.C/x64/Debug/mat4.obj differ
diff --git a/StgSharp.C/x64/Debug/mat4.sbr b/StgSharp.C/x64/Debug/mat4.sbr
new file mode 100644
index 00000000..110145a0
Binary files /dev/null and b/StgSharp.C/x64/Debug/mat4.sbr differ
diff --git a/StgSharp.C/x64/Debug/stb_image.cod b/StgSharp.C/x64/Debug/stb_image.cod
new file mode 100644
index 00000000..211ea800
--- /dev/null
+++ b/StgSharp.C/x64/Debug/stb_image.cod
@@ -0,0 +1,62266 @@
+; Listing generated by Microsoft (R) Optimizing Compiler Version 19.41.34120.0
+
+include listing.inc
+
+INCLUDELIB MSVCRTD
+INCLUDELIB OLDNAMES
+
+msvcjmc SEGMENT
+__DDA0A690_concurrencysal@h DB 01H
+__9ECC08BE_sal@h DB 01H
+__E05D733A_vadefs@h DB 01H
+__6A355E0E_vcruntime@h DB 01H
+__1B0272D9_corecrt@h DB 01H
+__44420885_corecrt_stdio_config@h DB 01H
+__AB601D8D_corecrt_wstdio@h DB 01H
+__C1EC35D3_stdio@h DB 01H
+__45DED006_corecrt_malloc@h DB 01H
+__13F5961F_stddef@h DB 01H
+__FD6DBD68_corecrt_search@h DB 01H
+__E2E33A61_corecrt_wstdlib@h DB 01H
+__26263363_limits@h DB 01H
+__6E5ACABA_stdlib@h DB 01H
+__9049550C_stb_image@h DB 01H
+__AC8FA393_stdarg@h DB 01H
+__61CC25A1_errno@h DB 01H
+__890838BD_vcruntime_string@h DB 01H
+__E4C945B4_corecrt_memcpy_s@h DB 01H
+__8EAFF484_corecrt_memory@h DB 01H
+__6490AEC5_corecrt_wstring@h DB 01H
+__E8295E1E_string@h DB 01H
+__BB16330F_corecrt_math@h DB 01H
+__3BF2A406_math@h DB 01H
+__19139D6C_assert@h DB 01H
+__7583A0D2_mmintrin@h DB 01H
+__FA77ED4C_malloc@h DB 01H
+__EAE0325A_xmmintrin@h DB 01H
+__8F82BB96_emmintrin@h DB 01H
+__B2F9F159_intrin0@inl@h DB 01H
+__0833F55F_setjmp@h DB 01H
+__5023D31F_pmmintrin@h DB 01H
+__E0FAA09D_tmmintrin@h DB 01H
+__C9C1B51E_smmintrin@h DB 01H
+__ACA33CD2_nmmintrin@h DB 01H
+__7918C69C_wmmintrin@h DB 01H
+__B28C8B9B_zmmintrin@h DB 01H
+__85982951_immintrin@h DB 01H
+__3F5BC814_ammintrin@h DB 01H
+__2E054928_intrin@h DB 01H
+__079B8C84_stb_image@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_to_target
+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 __JustMyCode_Default
+PUBLIC ??_C@_0BD@CBEDEJPH@unknown?5image?5type@ ; `string'
+PUBLIC ??_C@_08NOGIMCHF@outofmem@ ; `string'
+PUBLIC ??_C@_1KG@HOANCCHA@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@ ; `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@_0CB@DDANHPKI@can?8t?5fopen?0?5Unable?5to?5open?5fil@ ; `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@_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@_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@_0O@MKGNGALN@invalid?5width@ ; `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@_1BG@FLOPDKAN@?$AAi?$AAm?$AAg?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA3@ ; `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@_0BC@CNFMOKHC@max?5value?5?$DO?565535@ ; `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 __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 __imp_free:PROC
+EXTRN __imp_malloc:PROC
+EXTRN __imp_realloc:PROC
+EXTRN abs:PROC
+EXTRN _lrotl:PROC
+EXTRN __imp_strtol:PROC
+EXTRN memcpy:PROC
+EXTRN memset:PROC
+EXTRN strcmp:PROC
+EXTRN __imp_strncmp:PROC
+EXTRN pow:PROC
+EXTRN __imp_ldexp:PROC
+EXTRN __imp__wassert: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_to_target DD imagerel $LN4
+ DD imagerel $LN4+160
+ DD imagerel $unwind$stbi_load_to_target
+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+376
+ 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+987
+ 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+593
+ 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+167
+ 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+241
+ 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+761
+ 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+343
+ 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+190
+ DD imagerel $unwind$stbi__paeth
+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+7148
+ 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+3798
+ 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 __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@_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@_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@_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@_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@_0O@MKGNGALN@invalid?5width@
+CONST SEGMENT
+??_C@_0O@MKGNGALN@invalid?5width@ DB 'invalid width', 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@_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@_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@_0CB@DDANHPKI@can?8t?5fopen?0?5Unable?5to?5open?5fil@
+CONST SEGMENT
+??_C@_0CB@DDANHPKI@can?8t?5fopen?0?5Unable?5to?5open?5fil@ DB 'can''t fop'
+ DB 'en, Unable to open file', 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@_1KG@HOANCCHA@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@
+CONST SEGMENT
+??_C@_1KG@HOANCCHA@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@ DB 'D'
+ DB 00H, ':', 00H, '\', 00H, 'N', 00H, 'i', 00H, 't', 00H, 'l', 00H
+ DB 'o', 00H, 'a', 00H, 'd', 00H, 'I', 00H, 'n', 00H, 'd', 00H, 'u'
+ DB 00H, 's', 00H, 't', 00H, 'r', 00H, 'y', 00H, '\', 00H, 014H, 'x'
+ DB 'vzy', 098H, 0eeH, 'v\', 00H, '1', 00H, '-', 00H, 'F', 00H, 'l'
+ DB 00H, 'a', 00H, 'g', 00H, 's', 00H, 'h', 00H, 'i', 00H, 'p', 00H
+ DB '\', 00H, 'T', 00H, 'H', 00H, '2', 00H, '0', 00H, '2', 00H, '0'
+ DB 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'j', 00H, 'e', 00H
+ DB 'c', 00H, 't', 00H, 'F', 00H, 'i', 00H, 'l', 00H, 'e', 00H, '\'
+ DB 00H, 085H, 'Q8h', 090H, 'n', 0e3H, 'N', 01H, 'x\', 00H, 'S', 00H
+ DB 't', 00H, 'g', 00H, 'S', 00H, 'h', 00H, 'a', 00H, 'r', 00H, 'p'
+ DB 00H, '.', 00H, 'C', 00H, '\', 00H, 's', 00H, 't', 00H, 'b', 00H
+ DB '_', 00H, 'i', 00H, 'm', 00H, 'a', 00H, 'g', 00H, 'e', 00H, '.'
+ DB 00H, 'c', 00H, 00H, 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 06H
+ 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$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 0ebdH
+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 07016008dH
+ DD 05015H
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$stbi__paeth DD 025051b01H
+ DD 0116231bH
+ DD 0700f002dH
+ 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 025051801H
+ DD 01132318H
+ DD 0700c001fH
+ DD 0500bH
+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 0701502cbH
+ DD 05014H
+ DD imagerel __GSHandlerCheck
+ DD 01648H
+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 01000H
+ 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 0701002cfH
+ DD 0500fH
+ DD imagerel __GSHandlerCheck
+ DD 01668H
+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 01000H
+ 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 0701502cbH
+ DD 05014H
+ DD imagerel __GSHandlerCheck
+ DD 01648H
+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 01000H
+ 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 0701502cfH
+ DD 05014H
+ DD imagerel __GSHandlerCheck
+ DD 01668H
+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 01000H
+ 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 0701502cfH
+ DD 05014H
+ DD imagerel __GSHandlerCheck
+ DD 01668H
+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 01000H
+ 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_to_target DD 035052201H
+ DD 011d3322H
+ DD 070160027H
+ DD 05015H
+xdata 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__is_16_main
+_TEXT SEGMENT
+s$ = 224
+stbi__is_16_main PROC ; COMDAT
+
+; 8159 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 8160 : #ifndef STBI_NO_PNG
+; 8161 : 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
+
+; 8162 : return 1;
+
+ 00030 b8 01 00 00 00 mov eax, 1
+ 00035 eb 30 jmp SHORT $LN1@stbi__is_1
+$LN2@stbi__is_1:
+
+; 8163 : #endif
+; 8164 :
+; 8165 : #ifndef STBI_NO_PSD
+; 8166 : 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
+
+; 8167 : return 1;
+
+ 00047 b8 01 00 00 00 mov eax, 1
+ 0004c eb 19 jmp SHORT $LN1@stbi__is_1
+$LN3@stbi__is_1:
+
+; 8168 : #endif
+; 8169 :
+; 8170 : #ifndef STBI_NO_PNM
+; 8171 : 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
+
+; 8172 : return 1;
+
+ 0005e b8 01 00 00 00 mov eax, 1
+ 00063 eb 02 jmp SHORT $LN1@stbi__is_1
+$LN4@stbi__is_1:
+
+; 8173 : #endif
+; 8174 : return 0;
+
+ 00065 33 c0 xor eax, eax
+$LN1@stbi__is_1:
+
+; 8175 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__info_main
+_TEXT SEGMENT
+s$ = 224
+x$ = 232
+y$ = 240
+comp$ = 248
+stbi__info_main PROC ; COMDAT
+
+; 8109 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 8110 : #ifndef STBI_NO_JPEG
+; 8111 : 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
+
+; 8112 : return 1;
+
+ 00054 b8 01 00 00 00 mov eax, 1
+ 00059 e9 7b 01 00 00 jmp $LN1@stbi__info
+$LN2@stbi__info:
+
+; 8113 : #endif
+; 8114 :
+; 8115 : #ifndef STBI_NO_PNG
+; 8116 : 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
+
+; 8117 : return 1;
+
+ 00083 b8 01 00 00 00 mov eax, 1
+ 00088 e9 4c 01 00 00 jmp $LN1@stbi__info
+$LN3@stbi__info:
+
+; 8118 : #endif
+; 8119 :
+; 8120 : #ifndef STBI_NO_GIF
+; 8121 : 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
+
+; 8122 : return 1;
+
+ 000b2 b8 01 00 00 00 mov eax, 1
+ 000b7 e9 1d 01 00 00 jmp $LN1@stbi__info
+$LN4@stbi__info:
+
+; 8123 : #endif
+; 8124 :
+; 8125 : #ifndef STBI_NO_BMP
+; 8126 : 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
+
+; 8127 : return 1;
+
+ 000e1 b8 01 00 00 00 mov eax, 1
+ 000e6 e9 ee 00 00 00 jmp $LN1@stbi__info
+$LN5@stbi__info:
+
+; 8128 : #endif
+; 8129 :
+; 8130 : #ifndef STBI_NO_PSD
+; 8131 : 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
+
+; 8132 : return 1;
+
+ 00110 b8 01 00 00 00 mov eax, 1
+ 00115 e9 bf 00 00 00 jmp $LN1@stbi__info
+$LN6@stbi__info:
+
+; 8133 : #endif
+; 8134 :
+; 8135 : #ifndef STBI_NO_PIC
+; 8136 : 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
+
+; 8137 : return 1;
+
+ 0013f b8 01 00 00 00 mov eax, 1
+ 00144 e9 90 00 00 00 jmp $LN1@stbi__info
+$LN7@stbi__info:
+
+; 8138 : #endif
+; 8139 :
+; 8140 : #ifndef STBI_NO_PNM
+; 8141 : 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
+
+; 8142 : return 1;
+
+ 0016e b8 01 00 00 00 mov eax, 1
+ 00173 eb 64 jmp SHORT $LN1@stbi__info
+$LN8@stbi__info:
+
+; 8143 : #endif
+; 8144 :
+; 8145 : #ifndef STBI_NO_HDR
+; 8146 : 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
+
+; 8147 : return 1;
+
+ 0019a b8 01 00 00 00 mov eax, 1
+ 0019f eb 38 jmp SHORT $LN1@stbi__info
+$LN9@stbi__info:
+
+; 8148 : #endif
+; 8149 :
+; 8150 : // test tga last because it's a crappy test!
+; 8151 : #ifndef STBI_NO_TGA
+; 8152 : 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
+
+; 8153 : return 1;
+
+ 001c6 b8 01 00 00 00 mov eax, 1
+ 001cb eb 0c jmp SHORT $LN1@stbi__info
+$LN10@stbi__info:
+
+; 8154 : #endif
+; 8155 : 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:
+
+; 8156 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__pnm_getinteger
+_TEXT SEGMENT
+value$ = 4
+s$ = 256
+c$ = 264
+stbi__pnm_getinteger PROC ; COMDAT
+
+; 8038 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 8039 : int value = 0;
+
+ 00025 c7 45 04 00 00
+ 00 00 mov DWORD PTR value$[rbp], 0
+$LN2@stbi__pnm_:
+
+; 8040 :
+; 8041 : 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_
+
+; 8042 : 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
+
+; 8043 : *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
+
+; 8044 : 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_:
+
+; 8045 : 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_:
+
+; 8046 : "integer parse overflow",
+; 8047 : "Parsing an integer in the PPM header overflowed a 32-bit int");
+; 8048 : }
+
+ 000a8 eb 82 jmp SHORT $LN2@stbi__pnm_
+$LN3@stbi__pnm_:
+
+; 8049 :
+; 8050 : return value;
+
+ 000aa 8b 45 04 mov eax, DWORD PTR value$[rbp]
+$LN1@stbi__pnm_:
+
+; 8051 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__pnm_isdigit
+_TEXT SEGMENT
+tv68 = 192
+c$ = 240
+stbi__pnm_isdigit PROC ; COMDAT
+
+; 8033 : {
+
+ 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:__079B8C84_stb_image@c
+ 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001e 90 npad 1
+
+; 8034 : 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]
+
+; 8035 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__pnm_skip_whitespace
+_TEXT SEGMENT
+s$ = 224
+c$ = 232
+stbi__pnm_skip_whitespace PROC ; COMDAT
+
+; 8019 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+$LN2@stbi__pnm_:
+$LN5@stbi__pnm_:
+
+; 8020 : for (;;) {
+; 8021 : 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_
+
+; 8022 : *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_:
+
+; 8023 :
+; 8024 : 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_:
+
+; 8025 : break;
+
+ 0007e eb 4a jmp SHORT $LN3@stbi__pnm_
+$LN9@stbi__pnm_:
+$LN7@stbi__pnm_:
+
+; 8026 :
+; 8027 : 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_
+
+; 8028 : *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_:
+
+; 8029 : }
+
+ 000c5 e9 5b ff ff ff jmp $LN2@stbi__pnm_
+$LN3@stbi__pnm_:
+
+; 8030 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__pnm_isspace
+_TEXT SEGMENT
+tv76 = 192
+c$ = 240
+stbi__pnm_isspace PROC ; COMDAT
+
+; 8014 : {
+
+ 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:__079B8C84_stb_image@c
+ 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001e 90 npad 1
+
+; 8015 : 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]
+
+; 8016 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__hdr_convert
+_TEXT SEGMENT
+f1$1 = 4
+tv152 = 212
+output$ = 256
+input$ = 264
+req_comp$ = 272
+stbi__hdr_convert PROC ; COMDAT
+
+; 7545 : {
+
+ 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:__079B8C84_stb_image@c
+ 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00029 90 npad 1
+
+; 7546 : 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_
+
+; 7547 : float f1;
+; 7548 : // Exponent
+; 7549 : 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
+
+; 7550 : 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_
+
+; 7551 : 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_:
+
+; 7552 : else {
+; 7553 : 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
+
+; 7554 : 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
+
+; 7555 : 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_:
+
+; 7556 : }
+; 7557 : 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_
+
+; 7558 : 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_:
+
+; 7559 : 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_
+
+; 7560 : 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_:
+
+; 7561 : } else {
+
+ 001ce e9 d5 00 00 00 jmp $LN5@stbi__hdr_
+$LN4@stbi__hdr_:
+
+; 7562 : 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_:
+
+; 7563 : case 4:
+; 7564 : 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_:
+
+; 7565 : case 3:
+; 7566 : 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
+
+; 7567 : break;
+
+ 00271 eb 35 jmp SHORT $LN2@stbi__hdr_
+$LN12@stbi__hdr_:
+
+; 7568 : case 2:
+; 7569 : 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_:
+
+; 7570 : case 1:
+; 7571 : 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_:
+
+; 7572 : break;
+; 7573 : }
+; 7574 : }
+; 7575 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__hdr_gettoken
+_TEXT SEGMENT
+len$ = 4
+c$ = 36
+z$ = 288
+buffer$ = 296
+stbi__hdr_gettoken PROC ; COMDAT
+
+; 7523 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 7524 : int len = 0;
+
+ 00025 c7 45 04 00 00
+ 00 00 mov DWORD PTR len$[rbp], 0
+
+; 7525 : char c = '\0';
+
+ 0002c c6 45 24 00 mov BYTE PTR c$[rbp], 0
+
+; 7526 :
+; 7527 : 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_:
+
+; 7528 :
+; 7529 : 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_
+
+; 7530 : 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
+
+; 7531 : 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_:
+
+; 7532 : // flush to end of line
+; 7533 : 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_
+
+; 7534 : ;
+
+ 0009f eb da jmp SHORT $LN4@stbi__hdr_
+$LN5@stbi__hdr_:
+
+; 7535 : break;
+
+ 000a1 eb 11 jmp SHORT $LN3@stbi__hdr_
+$LN6@stbi__hdr_:
+
+; 7536 : }
+; 7537 : 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
+
+; 7538 : }
+
+ 000b2 eb 8b jmp SHORT $LN2@stbi__hdr_
+$LN3@stbi__hdr_:
+
+; 7539 :
+; 7540 : 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
+
+; 7541 : return buffer;
+
+ 000c3 48 8b 85 28 01
+ 00 00 mov rax, QWORD PTR buffer$[rbp]
+
+; 7542 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__hdr_test_core
+_TEXT SEGMENT
+i$ = 4
+s$ = 256
+signature$ = 264
+stbi__hdr_test_core PROC ; COMDAT
+
+; 7501 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 7502 : int i;
+; 7503 : 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_
+
+; 7504 : 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_
+
+; 7505 : 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_:
+
+; 7506 : 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
+
+; 7507 : return 1;
+
+ 0007e b8 01 00 00 00 mov eax, 1
+$LN1@stbi__hdr_:
+
+; 7508 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__load_gif_main_outofmem
+_TEXT SEGMENT
+tv78 = 192
+g$ = 240
+out$ = 248
+delays$ = 256
+stbi__load_gif_main_outofmem PROC ; COMDAT
+
+; 7354 : {
+
+ 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:__079B8C84_stb_image@c
+ 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00029 90 npad 1
+
+; 7355 : 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
+
+; 7356 : 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
+
+; 7357 : 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
+
+; 7358 :
+; 7359 : 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
+
+; 7360 : 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:
+
+; 7361 : 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
+
+; 7362 : 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:
+
+; 7363 : 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]
+
+; 7364 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 7169 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 7170 : int dispose;
+; 7171 : int first_frame;
+; 7172 : int pi;
+; 7173 : int pcount;
+; 7174 : STBI_NOTUSED(req_comp);
+; 7175 :
+; 7176 : // on first frame, any non-written pixels get the background colour (non-transparent)
+; 7177 : first_frame = 0;
+
+ 0002f c7 45 24 00 00
+ 00 00 mov DWORD PTR first_frame$[rbp], 0
+
+; 7178 : 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_
+
+; 7179 : 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_
+
+; 7180 : 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_:
+
+; 7181 : 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_
+
+; 7182 : 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_:
+
+; 7183 : 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
+
+; 7184 : 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
+
+; 7185 : 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
+
+; 7186 : 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
+
+; 7187 : 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_:
+
+; 7188 : 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_:
+
+; 7189 :
+; 7190 : // image is treated as "transparent" at the start - ie, nothing overwrites the current background;
+; 7191 : // background colour is only used for pixels that are not rendered first frame, after that "background"
+; 7192 : // color refers to the color that was there the previous frame.
+; 7193 : 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
+
+; 7194 : 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
+
+; 7195 : 4 * pcount); // state of the background (starts transparent)
+; 7196 : memset(g->history, 0x00,
+
+ 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
+
+; 7197 : pcount); // pixels that were affected previous frame
+; 7198 : first_frame = 1;
+
+ 001e1 c7 45 24 01 00
+ 00 00 mov DWORD PTR first_frame$[rbp], 1
+
+; 7199 : } else {
+
+ 001e8 e9 6b 01 00 00 jmp $LN19@stbi__gif_
+$LN18@stbi__gif_:
+
+; 7200 : // second frame - how do we dispose of the previous one?
+; 7201 : 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
+
+; 7202 : 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
+
+; 7203 :
+; 7204 : 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_
+
+; 7205 : dispose =
+
+ 00227 c7 45 04 02 00
+ 00 00 mov DWORD PTR dispose$[rbp], 2
+$LN24@stbi__gif_:
+
+; 7206 : 2; // if I don't have an image to revert back to, default to the old background
+; 7207 : }
+; 7208 :
+; 7209 : 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_
+
+; 7210 : 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_
+
+; 7211 : 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_
+
+; 7212 : 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_:
+
+; 7213 : }
+; 7214 : }
+
+ 002a2 eb 99 jmp SHORT $LN2@stbi__gif_
+$LN3@stbi__gif_:
+
+; 7215 : } 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_
+
+; 7216 : // restore what was changed last frame to background before that frame;
+; 7217 : 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_
+
+; 7218 : 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_
+
+; 7219 : 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_:
+
+; 7220 : }
+; 7221 : }
+
+ 0031e eb 95 jmp SHORT $LN5@stbi__gif_
+$LN6@stbi__gif_:
+$LN28@stbi__gif_:
+$LN26@stbi__gif_:
+
+; 7222 : } else {
+; 7223 : // This is a non-disposal case eithe way, so just
+; 7224 : // leave the pixels as is, and they will become the new background
+; 7225 : // 1: do not dispose
+; 7226 : // 0: not specified.
+; 7227 : }
+; 7228 :
+; 7229 : // background is what out is after the undoing of the previou frame;
+; 7230 : 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_:
+
+; 7231 : }
+; 7232 :
+; 7233 : // clear my history;
+; 7234 : memset(g->history, 0x00,
+
+ 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_:
+
+; 7235 : g->w * g->h); // pixels that were affected previous frame
+; 7236 :
+; 7237 : for (;;) {
+; 7238 : 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
+
+; 7239 : 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_:
+
+; 7240 : case 0x2C: /* Image Descriptor */
+; 7241 : {
+; 7242 : stbi__int32 x, y, w, h;
+; 7243 : stbi_uc *o;
+; 7244 :
+; 7245 : 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
+
+; 7246 : 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
+
+; 7247 : 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
+
+; 7248 : 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
+
+; 7249 : 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_:
+
+; 7250 : 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_:
+
+; 7251 :
+; 7252 : 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
+
+; 7253 : 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
+
+; 7254 : 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
+
+; 7255 : 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
+
+; 7256 : 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
+
+; 7257 : 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
+
+; 7258 : 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
+
+; 7259 :
+; 7260 : // if the width of the specified rectangle is 0, that means
+; 7261 : // we may not see *any* pixels or the image is malformed;
+; 7262 : // to make sure this is caught, move the current y down to
+; 7263 : // max_y (which is what out_gif_code checks).
+; 7264 : 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_
+
+; 7265 : 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_:
+
+; 7266 :
+; 7267 : 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
+
+; 7268 :
+; 7269 : 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_
+
+; 7270 : 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
+
+; 7271 : 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
+
+; 7272 : } else {
+
+ 005da eb 2b jmp SHORT $LN36@stbi__gif_
+$LN35@stbi__gif_:
+
+; 7273 : 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
+
+; 7274 : 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_:
+
+; 7275 : }
+; 7276 :
+; 7277 : 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_
+
+; 7278 : 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
+
+; 7279 : g->eflags & 0x01 ? g->transparent : -1);
+; 7280 : 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_:
+
+; 7281 : } 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_
+
+; 7282 : 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
+
+; 7283 : } else
+
+ 006e5 eb 34 jmp SHORT $LN40@stbi__gif_
+$LN39@stbi__gif_:
+
+; 7284 : 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_:
+
+; 7285 :
+; 7286 : 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
+
+; 7287 : 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_
+
+; 7288 : return NULL;
+
+ 0073f 33 c0 xor eax, eax
+ 00741 e9 90 02 00 00 jmp $LN1@stbi__gif_
+$LN41@stbi__gif_:
+
+; 7289 :
+; 7290 : // if this was the first frame,
+; 7291 : 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
+
+; 7292 : 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_
+
+; 7293 : // if first frame, any pixel not drawn to gets the background color
+; 7294 : 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_
+
+; 7295 : 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_
+
+; 7296 : 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
+
+; 7297 : 255; // just in case it was made transparent, undo that; It will be reset next frame if need be;
+; 7298 : 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_:
+
+; 7299 : }
+; 7300 : }
+
+ 00810 e9 6c ff ff ff jmp $LN13@stbi__gif_
+$LN14@stbi__gif_:
+$LN42@stbi__gif_:
+
+; 7301 : }
+; 7302 :
+; 7303 : 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_:
+
+; 7304 : }
+; 7305 :
+; 7306 : case 0x21: // Comment Extension.
+; 7307 : {
+; 7308 : int len;
+; 7309 : 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
+
+; 7310 : 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_
+
+; 7311 : 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
+
+; 7312 : 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_
+
+; 7313 : 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
+
+; 7314 : 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
+
+; 7315 : 10 *
+; 7316 : stbi__get16le(
+; 7317 : s); // delay - 1/100th of a second, saving as 1/1000ths.
+; 7318 :
+; 7319 : // unset old transparent
+; 7320 : 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_
+
+; 7321 : 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_:
+
+; 7322 : }
+; 7323 : 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_
+
+; 7324 : 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
+
+; 7325 : 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_
+
+; 7326 : 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_:
+
+; 7327 : }
+; 7328 : } else {
+
+ 00929 eb 20 jmp SHORT $LN50@stbi__gif_
+$LN49@stbi__gif_:
+
+; 7329 : // don't need transparent
+; 7330 : 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
+
+; 7331 : 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_:
+
+; 7332 : }
+; 7333 : } else {
+
+ 0094b eb 15 jmp SHORT $LN47@stbi__gif_
+$LN46@stbi__gif_:
+
+; 7334 : 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
+
+; 7335 : break;
+
+ 00960 eb 6f jmp SHORT $LN11@stbi__gif_
+$LN47@stbi__gif_:
+$LN45@stbi__gif_:
+$LN16@stbi__gif_:
+
+; 7336 : }
+; 7337 : }
+; 7338 : 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_
+
+; 7339 : 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
+
+; 7340 : }
+
+ 00993 eb cd jmp SHORT $LN16@stbi__gif_
+$LN17@stbi__gif_:
+
+; 7341 : break;
+
+ 00995 eb 3a jmp SHORT $LN11@stbi__gif_
+$LN52@stbi__gif_:
+
+; 7342 : }
+; 7343 :
+; 7344 : case 0x3B: // gif stream termination code
+; 7345 : 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_:
+
+; 7346 :
+; 7347 : default:
+; 7348 : 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_:
+
+; 7349 : }
+; 7350 : }
+
+ 009d1 e9 ae f9 ff ff jmp $LN8@stbi__gif_
+$LN1@stbi__gif_:
+
+; 7351 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 7077 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 7078 : stbi_uc lzw_cs;
+; 7079 : stbi__int32 len, init_code;
+; 7080 : stbi__uint32 first;
+; 7081 : stbi__int32 codesize, codemask, avail, oldcode, bits, valid_bits, clear;
+; 7082 : stbi__gif_lzw *p;
+; 7083 :
+; 7084 : 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
+
+; 7085 : 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
+
+; 7086 : return NULL;
+
+ 0003d 33 c0 xor eax, eax
+ 0003f e9 a2 04 00 00 jmp $LN1@stbi__proc
+$LN10@stbi__proc:
+
+; 7087 : 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
+
+; 7088 : first = 1;
+
+ 00064 c7 45 64 01 00
+ 00 00 mov DWORD PTR first$[rbp], 1
+
+; 7089 : 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
+
+; 7090 : 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
+
+; 7091 : bits = 0;
+
+ 0009b c7 85 04 01 00
+ 00 00 00 00 00 mov DWORD PTR bits$[rbp], 0
+
+; 7092 : valid_bits = 0;
+
+ 000a5 c7 85 24 01 00
+ 00 00 00 00 00 mov DWORD PTR valid_bits$[rbp], 0
+
+; 7093 : 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
+
+; 7094 : 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
+
+; 7095 : 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
+
+; 7096 : 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
+
+; 7097 : }
+
+ 0010f eb a7 jmp SHORT $LN2@stbi__proc
+$LN3@stbi__proc:
+
+; 7098 :
+; 7099 : // support no starting clear code
+; 7100 : 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
+
+; 7101 : oldcode = -1;
+
+ 00120 c7 85 e4 00 00
+ 00 ff ff ff ff mov DWORD PTR oldcode$[rbp], -1
+
+; 7102 :
+; 7103 : len = 0;
+
+ 0012a c7 45 24 00 00
+ 00 00 mov DWORD PTR len$[rbp], 0
+$LN5@stbi__proc:
+
+; 7104 : for (;;) {
+; 7105 : 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
+
+; 7106 : if (len == 0) {
+
+ 0013f 83 7d 24 00 cmp DWORD PTR len$[rbp], 0
+ 00143 75 28 jne SHORT $LN13@stbi__proc
+
+; 7107 : 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
+
+; 7108 : if (len == 0)
+
+ 00157 83 7d 24 00 cmp DWORD PTR len$[rbp], 0
+ 0015b 75 10 jne SHORT $LN14@stbi__proc
+
+; 7109 : 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:
+
+; 7110 : }
+; 7111 : --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
+
+; 7112 : 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
+
+; 7113 : 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
+
+; 7114 : } else {
+
+ 001ab e9 31 03 00 00 jmp $LN12@stbi__proc
+$LN11@stbi__proc:
+
+; 7115 : 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
+
+; 7116 : 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
+
+; 7117 : 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
+
+; 7118 : // @OPTIMIZE: is there some way we can accelerate the non-clear path?
+; 7119 : 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
+
+; 7120 : 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
+
+; 7121 : 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
+
+; 7122 : 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
+
+; 7123 : oldcode = -1;
+
+ 00240 c7 85 e4 00 00
+ 00 ff ff ff ff mov DWORD PTR oldcode$[rbp], -1
+
+; 7124 : 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:
+
+; 7125 : } 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
+
+; 7126 : 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:
+
+; 7127 : 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
+
+; 7128 : 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:
+
+; 7129 : 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:
+
+; 7130 : } 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
+
+; 7131 : if (first) {
+
+ 002c7 83 7d 64 00 cmp DWORD PTR first$[rbp], 0
+ 002cb 74 34 je SHORT $LN21@stbi__proc
+
+; 7132 : 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:
+
+; 7133 : }
+; 7134 :
+; 7135 : 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
+
+; 7136 : 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
+
+; 7137 : 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
+
+; 7138 : 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:
+
+; 7139 : "Corrupt GIF");
+; 7140 : }
+; 7141 :
+; 7142 : 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
+
+; 7143 : 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
+
+; 7144 : 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:
+
+; 7145 : g->codes[code].first;
+; 7146 : } 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
+
+; 7147 : 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:
+
+; 7148 : "Corrupt GIF");
+; 7149 :
+; 7150 : 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
+
+; 7151 :
+; 7152 : 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
+
+; 7153 : 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
+
+; 7154 : 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:
+
+; 7155 : }
+; 7156 :
+; 7157 : 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
+
+; 7158 : } else {
+
+ 004ae eb 31 jmp SHORT $LN20@stbi__proc
+$LN19@stbi__proc:
+
+; 7159 : 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:
+
+; 7160 : }
+; 7161 : }
+; 7162 : }
+
+ 004e1 e9 4b fc ff ff jmp $LN5@stbi__proc
+$LN1@stbi__proc:
+
+; 7163 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 7039 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 7040 : stbi_uc *p, *c;
+; 7041 : int idx;
+; 7042 :
+; 7043 : // recurse to decode the prefixes, since the linked-list is backwards,
+; 7044 : // and working backwards through an interleaved image would be nasty
+; 7045 : 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_
+
+; 7046 : 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_:
+
+; 7047 :
+; 7048 : 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_
+
+; 7049 : return;
+
+ 0007e e9 64 02 00 00 jmp $LN1@stbi__out_
+$LN5@stbi__out_:
+
+; 7050 :
+; 7051 : 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
+
+; 7052 : 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
+
+; 7053 : 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
+
+; 7054 :
+; 7055 : 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
+
+; 7056 : 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_
+
+; 7057 : 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
+
+; 7058 : 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
+
+; 7059 : 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
+
+; 7060 : 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_:
+
+; 7061 : }
+; 7062 : 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
+
+; 7063 :
+; 7064 : 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_
+
+; 7065 : 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
+
+; 7066 : 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_:
+
+; 7067 :
+; 7068 : 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_
+
+; 7069 : 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
+
+; 7070 : 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
+
+; 7071 : --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
+
+; 7072 : }
+
+ 002e2 e9 44 ff ff ff jmp $LN2@stbi__out_
+$LN3@stbi__out_:
+$LN7@stbi__out_:
+$LN1@stbi__out_:
+
+; 7073 : }
+; 7074 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__gif_info_raw
+_TEXT SEGMENT
+g$ = 8
+s$ = 256
+x$ = 264
+y$ = 272
+comp$ = 280
+stbi__gif_info_raw PROC ; COMDAT
+
+; 7021 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 7022 : 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
+
+; 7023 : if (!g)
+
+ 0003d 48 83 7d 08 00 cmp QWORD PTR g$[rbp], 0
+ 00042 75 11 jne SHORT $LN2@stbi__gif_
+
+; 7024 : 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_:
+
+; 7025 : 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_
+
+; 7026 : 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
+
+; 7027 : 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
+
+; 7028 : return 0;
+
+ 0008e 33 c0 xor eax, eax
+ 00090 eb 43 jmp SHORT $LN1@stbi__gif_
+$LN3@stbi__gif_:
+
+; 7029 : }
+; 7030 : 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_
+
+; 7031 : *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_:
+
+; 7032 : 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_
+
+; 7033 : *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_:
+
+; 7034 : 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
+
+; 7035 : return 1;
+
+ 000d0 b8 01 00 00 00 mov eax, 1
+$LN1@stbi__gif_:
+
+; 7036 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__gif_header
+_TEXT SEGMENT
+version$ = 4
+tv225 = 212
+s$ = 256
+g$ = 264
+comp$ = 272
+is_info$ = 280
+stbi__gif_header PROC ; COMDAT
+
+; 6983 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 6984 : stbi_uc version;
+; 6985 : 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_:
+
+; 6986 : stbi__get8(s) != '8')
+; 6987 : 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_:
+
+; 6988 :
+; 6989 : 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
+
+; 6990 : 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_
+
+; 6991 : 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_:
+
+; 6992 : 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_
+
+; 6993 : 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_:
+
+; 6994 :
+; 6995 : 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
+
+; 6996 : 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
+
+; 6997 : 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
+
+; 6998 : 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
+
+; 6999 : 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
+
+; 7000 : 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
+
+; 7001 : 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
+
+; 7002 :
+; 7003 : 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_
+
+; 7004 : 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_:
+
+; 7005 : 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_
+
+; 7006 : 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_:
+
+; 7007 :
+; 7008 : 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_
+
+; 7009 : *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_:
+
+; 7010 :
+; 7011 : 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_
+
+; 7012 : return 1;
+
+ 001f1 b8 01 00 00 00 mov eax, 1
+ 001f6 eb 5f jmp SHORT $LN1@stbi__gif_
+$LN9@stbi__gif_:
+
+; 7013 :
+; 7014 : 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_
+
+; 7015 : 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_:
+
+; 7016 :
+; 7017 : return 1;
+
+ 00252 b8 01 00 00 00 mov eax, 1
+$LN1@stbi__gif_:
+
+; 7018 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 6972 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 6973 : int i;
+; 6974 : 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_
+
+; 6975 : 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
+
+; 6976 : 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
+
+; 6977 : 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
+
+; 6978 : 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
+
+; 6979 : }
+
+ 00107 e9 2c ff ff ff jmp $LN2@stbi__gif_
+$LN3@stbi__gif_:
+
+; 6980 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__gif_test_raw
+_TEXT SEGMENT
+sz$ = 4
+s$ = 256
+stbi__gif_test_raw PROC ; COMDAT
+
+; 6950 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 6951 : int sz;
+; 6952 : 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_:
+
+; 6953 : stbi__get8(s) != '8')
+; 6954 : return 0;
+
+ 00070 33 c0 xor eax, eax
+ 00072 eb 3f jmp SHORT $LN1@stbi__gif_
+$LN2@stbi__gif_:
+
+; 6955 : 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
+
+; 6956 : 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_
+
+; 6957 : return 0;
+
+ 00092 33 c0 xor eax, eax
+ 00094 eb 1d jmp SHORT $LN1@stbi__gif_
+$LN4@stbi__gif_:
+
+; 6958 : 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_
+
+; 6959 : return 0;
+
+ 000aa 33 c0 xor eax, eax
+ 000ac eb 05 jmp SHORT $LN1@stbi__gif_
+$LN5@stbi__gif_:
+
+; 6960 : return 1;
+
+ 000ae b8 01 00 00 00 mov eax, 1
+$LN1@stbi__gif_:
+
+; 6961 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 6741 : {
+
+ 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:__079B8C84_stb_image@c
+ 00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00057 90 npad 1
+
+; 6742 : 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_:
+
+; 6743 : stbi__pic_packet packets[10];
+; 6744 :
+; 6745 : // this will (should...) cater for even some bizarre stuff like having data
+; 6746 : // for the same channel in multiple packets.
+; 6747 : do {
+; 6748 : stbi__pic_packet *packet;
+; 6749 :
+; 6750 : 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_
+
+; 6751 : 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_:
+
+; 6752 :
+; 6753 : 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
+
+; 6754 :
+; 6755 : 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
+
+; 6756 : 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
+
+; 6757 : 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
+
+; 6758 : 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
+
+; 6759 :
+; 6760 : 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
+
+; 6761 :
+; 6762 : 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_
+
+; 6763 : 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_:
+
+; 6764 : 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_
+
+; 6765 : 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_:
+
+; 6766 : } while (chained);
+
+ 001b2 83 7d 64 00 cmp DWORD PTR chained$[rbp], 0
+ 001b6 0f 85 aa fe ff
+ ff jne $LN4@stbi__pic_
+
+; 6767 :
+; 6768 : *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
+
+; 6769 :
+; 6770 : 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_
+
+; 6771 : int packet_idx;
+; 6772 :
+; 6773 : 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_
+
+; 6774 : 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
+
+; 6775 : 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
+
+; 6776 :
+; 6777 : 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_
+
+; 6778 : default:
+; 6779 : 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_:
+
+; 6780 : "packet has bad compression type");
+; 6781 :
+; 6782 : case 0: { //uncompressed
+; 6783 : int x;
+; 6784 :
+; 6785 : 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_
+
+; 6786 : 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_
+
+; 6787 : 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_:
+
+; 6788 : break;
+
+ 00341 e9 87 03 00 00 jmp $LN11@stbi__pic_
+$LN35@stbi__pic_:
+
+; 6789 : }
+; 6790 :
+; 6791 : case 1: //Pure RLE
+; 6792 : {
+; 6793 : 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_:
+
+; 6794 :
+; 6795 : 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_
+
+; 6796 : stbi_uc count, value[4];
+; 6797 :
+; 6798 : 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
+
+; 6799 : 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_
+
+; 6800 : 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_:
+
+; 6801 : "bad file",
+; 6802 : "file too short (pure read count)");
+; 6803 :
+; 6804 : 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_
+
+; 6805 : 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_:
+
+; 6806 :
+; 6807 : 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_
+
+; 6808 : return 0;
+
+ 003f6 33 c0 xor eax, eax
+ 003f8 e9 e1 02 00 00 jmp $LN1@stbi__pic_
+$LN38@stbi__pic_:
+
+; 6809 :
+; 6810 : 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_
+
+; 6811 : 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_:
+
+; 6812 : 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
+
+; 6813 : }
+
+ 00472 e9 db fe ff ff jmp $LN16@stbi__pic_
+$LN17@stbi__pic_:
+
+; 6814 : } break;
+
+ 00477 e9 51 02 00 00 jmp $LN11@stbi__pic_
+$LN39@stbi__pic_:
+
+; 6815 :
+; 6816 : case 2: { //Mixed RLE
+; 6817 : 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_:
+
+; 6818 : 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_
+
+; 6819 : 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
+
+; 6820 : 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_
+
+; 6821 : 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_:
+
+; 6822 : "bad file",
+; 6823 : "file too short (mixed read count)");
+; 6824 :
+; 6825 : 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_
+
+; 6826 : stbi_uc value[4];
+; 6827 :
+; 6828 : 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_
+
+; 6829 : 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_:
+
+; 6830 : else
+; 6831 : 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_:
+
+; 6832 : 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_
+
+; 6833 : 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_:
+
+; 6834 : "scanline overrun");
+; 6835 :
+; 6836 : 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_
+
+; 6837 : return 0;
+
+ 00594 33 c0 xor eax, eax
+ 00596 e9 43 01 00 00 jmp $LN1@stbi__pic_
+$LN46@stbi__pic_:
+
+; 6838 :
+; 6839 : 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_
+
+; 6840 : 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_:
+
+; 6841 : } else { // Raw
+
+ 005f8 e9 b5 00 00 00 jmp $LN42@stbi__pic_
+$LN41@stbi__pic_:
+
+; 6842 : ++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
+
+; 6843 : 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_
+
+; 6844 : 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_:
+
+; 6845 : "scanline overrun");
+; 6846 :
+; 6847 : 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_
+
+; 6848 : 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_
+
+; 6849 : dest))
+; 6850 : 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_:
+
+; 6851 : }
+; 6852 : 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
+
+; 6853 : }
+
+ 006c8 e9 bb fd ff ff jmp $LN21@stbi__pic_
+$LN22@stbi__pic_:
+$LN11@stbi__pic_:
+
+; 6854 : break;
+; 6855 : }
+; 6856 : }
+; 6857 : }
+
+ 006cd e9 45 fb ff ff jmp $LN8@stbi__pic_
+$LN9@stbi__pic_:
+
+; 6858 : }
+
+ 006d2 e9 1d fb ff ff jmp $LN5@stbi__pic_
+$LN6@stbi__pic_:
+
+; 6859 :
+; 6860 : return result;
+
+ 006d7 48 8b 85 30 04
+ 00 00 mov rax, QWORD PTR result$[rbp]
+$LN1@stbi__pic_:
+
+; 6861 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__copyval
+_TEXT SEGMENT
+mask$ = 4
+i$ = 36
+channel$ = 288
+dest$ = 296
+src$ = 304
+stbi__copyval PROC ; COMDAT
+
+; 6731 : {
+
+ 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:__079B8C84_stb_image@c
+ 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00028 90 npad 1
+
+; 6732 : int mask = 0x80, i;
+
+ 00029 c7 45 04 80 00
+ 00 00 mov DWORD PTR mask$[rbp], 128 ; 00000080H
+
+; 6733 :
+; 6734 : 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
+
+; 6735 : 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
+
+; 6736 : 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:
+
+; 6737 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__readval
+_TEXT SEGMENT
+mask$ = 4
+i$ = 36
+tv75 = 248
+s$ = 288
+channel$ = 296
+dest$ = 304
+stbi__readval PROC ; COMDAT
+
+; 6716 : {
+
+ 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:__079B8C84_stb_image@c
+ 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00028 90 npad 1
+
+; 6717 : int mask = 0x80, i;
+
+ 00029 c7 45 04 80 00
+ 00 00 mov DWORD PTR mask$[rbp], 128 ; 00000080H
+
+; 6718 :
+; 6719 : 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
+
+; 6720 : 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
+
+; 6721 : 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
+
+; 6722 : 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:
+
+; 6723 : 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:
+
+; 6724 : }
+; 6725 : }
+
+ 000bb e9 79 ff ff ff jmp $LN2@stbi__read
+$LN3@stbi__read:
+
+; 6726 :
+; 6727 : return dest;
+
+ 000c0 48 8b 85 30 01
+ 00 00 mov rax, QWORD PTR dest$[rbp]
+$LN1@stbi__read:
+
+; 6728 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__pic_test_core
+_TEXT SEGMENT
+i$ = 4
+s$ = 256
+stbi__pic_test_core PROC ; COMDAT
+
+; 6696 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 6697 : int i;
+; 6698 :
+; 6699 : 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_
+
+; 6700 : return 0;
+
+ 00037 33 c0 xor eax, eax
+ 00039 eb 46 jmp SHORT $LN1@stbi__pic_
+$LN5@stbi__pic_:
+
+; 6701 :
+; 6702 : 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_
+
+; 6703 : 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_:
+
+; 6704 :
+; 6705 : 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_
+
+; 6706 : return 0;
+
+ 00078 33 c0 xor eax, eax
+ 0007a eb 05 jmp SHORT $LN1@stbi__pic_
+$LN6@stbi__pic_:
+
+; 6707 :
+; 6708 : return 1;
+
+ 0007c b8 01 00 00 00 mov eax, 1
+$LN1@stbi__pic_:
+
+; 6709 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__pic_is4
+_TEXT SEGMENT
+i$ = 4
+s$ = 256
+str$ = 264
+stbi__pic_is4 PROC ; COMDAT
+
+; 6686 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 6687 : int i;
+; 6688 : 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_
+
+; 6689 : 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_
+
+; 6690 : 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_:
+
+; 6691 :
+; 6692 : return 1;
+
+ 00064 b8 01 00 00 00 mov eax, 1
+$LN1@stbi__pic_:
+
+; 6693 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 6429 : {
+
+ 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:__079B8C84_stb_image@c
+ 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00029 90 npad 1
+
+; 6430 : int count, nleft, len;
+; 6431 :
+; 6432 : count = 0;
+
+ 0002a c7 45 04 00 00
+ 00 00 mov DWORD PTR count$[rbp], 0
+$LN2@stbi__psd_:
+
+; 6433 : 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_
+
+; 6434 : 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
+
+; 6435 : 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_:
+
+; 6436 : // No-op.
+; 6437 : } 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_
+
+; 6438 : // Copy next len+1 bytes literally.
+; 6439 : 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
+
+; 6440 : 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_
+
+; 6441 : return 0; // corrupt data
+
+ 00084 33 c0 xor eax, eax
+ 00086 e9 bb 00 00 00 jmp $LN1@stbi__psd_
+$LN12@stbi__psd_:
+
+; 6442 : 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_:
+
+; 6443 : while (len) {
+
+ 00098 83 7d 44 00 cmp DWORD PTR len$[rbp], 0
+ 0009c 74 31 je SHORT $LN5@stbi__psd_
+
+; 6444 : *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
+
+; 6445 : 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
+
+; 6446 : 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
+
+; 6447 : }
+
+ 000cd eb c9 jmp SHORT $LN4@stbi__psd_
+$LN5@stbi__psd_:
+
+; 6448 : } 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_
+
+; 6449 : stbi_uc val;
+; 6450 : // Next -len+1 bytes in the dest are replicated from next source byte.
+; 6451 : // (Interpret len as a negative 8-bit int.)
+; 6452 : 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
+
+; 6453 : 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_
+
+; 6454 : return 0; // corrupt data
+
+ 000ed 33 c0 xor eax, eax
+ 000ef eb 55 jmp SHORT $LN1@stbi__psd_
+$LN14@stbi__psd_:
+
+; 6455 : 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
+
+; 6456 : 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_:
+
+; 6457 : while (len) {
+
+ 0010d 83 7d 44 00 cmp DWORD PTR len$[rbp], 0
+ 00111 74 29 je SHORT $LN7@stbi__psd_
+
+; 6458 : *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
+
+; 6459 : 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
+
+; 6460 : 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
+
+; 6461 : }
+
+ 0013a eb d1 jmp SHORT $LN6@stbi__psd_
+$LN7@stbi__psd_:
+$LN13@stbi__psd_:
+$LN11@stbi__psd_:
+$LN9@stbi__psd_:
+
+; 6462 : }
+; 6463 : }
+
+ 0013c e9 f0 fe ff ff jmp $LN2@stbi__psd_
+$LN3@stbi__psd_:
+
+; 6464 :
+; 6465 : return 1;
+
+ 00141 b8 01 00 00 00 mov eax, 1
+$LN1@stbi__psd_:
+
+; 6466 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 6198 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 6199 : 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
+
+; 6200 : stbi__uint16 fiveBitMask = 31;
+
+ 00035 b8 1f 00 00 00 mov eax, 31
+ 0003a 66 89 45 24 mov WORD PTR fiveBitMask$[rbp], ax
+
+; 6201 : // we have 3 channels with 5bits each
+; 6202 : 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
+
+; 6203 : 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
+
+; 6204 : 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
+
+; 6205 : // Note that this saves the data in RGB(A) order, so it doesn't need to be swapped later
+; 6206 : 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
+
+; 6207 : 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
+
+; 6208 : 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
+
+; 6209 :
+; 6210 : // some people claim that the most significant bit might be used for alpha
+; 6211 : // (possibly if an alpha-bit is set in the "image descriptor byte")
+; 6212 : // but that only made 16bit test images completely translucent..
+; 6213 : // so let's treat all 15 and 16bit TGAs as RGB with no alpha.
+; 6214 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 6060 : {
+
+ 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:__079B8C84_stb_image@c
+ 00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00027 90 npad 1
+
+; 6061 : // only RGB or RGBA (incl. 16bit) or grey allowed
+; 6062 : 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_
+
+; 6063 : *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_:
+
+; 6064 : 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_:
+
+; 6065 : case 8:
+; 6066 : return STBI_grey;
+
+ 0007a b8 01 00 00 00 mov eax, 1
+ 0007f eb 41 jmp SHORT $LN1@stbi__tga_
+$LN6@stbi__tga_:
+
+; 6067 : case 16:
+; 6068 : 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_
+
+; 6069 : 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_:
+
+; 6070 : // fallthrough
+; 6071 : case 15:
+; 6072 : 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_
+
+; 6073 : *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_:
+
+; 6074 : 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_:
+
+; 6075 : case 24: // fallthrough
+; 6076 : case 32:
+; 6077 : 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_:
+
+; 6078 : default:
+; 6079 : return 0;
+
+ 000c0 33 c0 xor eax, eax
+$LN1@stbi__tga_:
+
+; 6080 : }
+; 6081 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 5710 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 5711 : int hsz;
+; 5712 : 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_:
+
+; 5713 : 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_:
+
+; 5714 : 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
+
+; 5715 : 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
+
+; 5716 : 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
+
+; 5717 : 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
+
+; 5718 : 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
+
+; 5719 : 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
+
+; 5720 : 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
+
+; 5721 :
+; 5722 : 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_
+
+; 5723 : 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_:
+
+; 5724 :
+; 5725 : 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_
+
+; 5726 : 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_:
+
+; 5727 : if (hsz == 12) {
+
+ 001b3 83 7d 04 0c cmp DWORD PTR hsz$[rbp], 12
+ 001b7 75 2d jne SHORT $LN9@stbi__bmp_
+
+; 5728 : 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
+
+; 5729 : 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
+
+; 5730 : } else {
+
+ 001e4 eb 2b jmp SHORT $LN10@stbi__bmp_
+$LN9@stbi__bmp_:
+
+; 5731 : 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
+
+; 5732 : 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_:
+
+; 5733 : }
+; 5734 : 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_
+
+; 5735 : 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_:
+
+; 5736 : 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
+
+; 5737 : 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_
+
+; 5738 : 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
+
+; 5739 : 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_:
+
+; 5740 : 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_:
+
+; 5741 : if (compress >= 4)
+
+ 002c4 83 7d 24 04 cmp DWORD PTR compress$1[rbp], 4
+ 002c8 7c 34 jl SHORT $LN15@stbi__bmp_
+
+; 5742 : 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_:
+
+; 5743 : "BMP JPEG/PNG",
+; 5744 : "BMP type not supported: unsupported compression"); // this includes PNG/JPEG modes
+; 5745 : 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_
+
+; 5746 : 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_:
+
+; 5747 : "bad BMP"); // bitfields requires 16 or 32 bits/pixel
+; 5748 : 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
+
+; 5749 : 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
+
+; 5750 : 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
+
+; 5751 : 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
+
+; 5752 : 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
+
+; 5753 : 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_:
+
+; 5754 : if (hsz == 56) {
+
+ 003a1 83 7d 04 38 cmp DWORD PTR hsz$[rbp], 56 ; 00000038H
+ 003a5 75 34 jne SHORT $LN20@stbi__bmp_
+
+; 5755 : 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
+
+; 5756 : 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
+
+; 5757 : 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
+
+; 5758 : 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_:
+
+; 5759 : }
+; 5760 : 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_:
+
+; 5761 : if (compress == 0) {
+
+ 003f7 83 7d 24 00 cmp DWORD PTR compress$1[rbp], 0
+ 003fb 75 15 jne SHORT $LN23@stbi__bmp_
+
+; 5762 : 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_:
+
+; 5763 : } 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_
+
+; 5764 : 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
+
+; 5765 : 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
+
+; 5766 : 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
+
+; 5767 : 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
+
+; 5768 : // not documented, but generated by photoshop and handled by mspaint
+; 5769 : 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_
+
+; 5770 : // ?!?!?
+; 5771 : 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_:
+
+; 5772 : }
+; 5773 : } else
+
+ 004d5 eb 34 jmp SHORT $LN26@stbi__bmp_
+$LN25@stbi__bmp_:
+
+; 5774 : 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_:
+
+; 5775 : }
+; 5776 : } else {
+
+ 0050b e9 1b 01 00 00 jmp $LN18@stbi__bmp_
+$LN17@stbi__bmp_:
+
+; 5777 : // V4/V5 header
+; 5778 : int i;
+; 5779 : 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_
+
+; 5780 : 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_:
+
+; 5781 : 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
+
+; 5782 : 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
+
+; 5783 : 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
+
+; 5784 : 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
+
+; 5785 : if (compress !=
+
+ 005a8 83 7d 24 03 cmp DWORD PTR compress$1[rbp], 3
+ 005ac 74 10 je SHORT $LN29@stbi__bmp_
+
+; 5786 : 3) // override mr/mg/mb unless in BI_BITFIELDS mode, as per docs
+; 5787 : 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_:
+
+; 5788 : 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
+
+; 5789 : 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_
+
+; 5790 : 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_:
+
+; 5791 : if (hsz == 124) {
+
+ 005f1 83 7d 04 7c cmp DWORD PTR hsz$[rbp], 124 ; 0000007cH
+ 005f5 75 34 jne SHORT $LN30@stbi__bmp_
+
+; 5792 : 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
+
+; 5793 : 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
+
+; 5794 : 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
+
+; 5795 : 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_:
+
+; 5796 : }
+; 5797 : }
+; 5798 : }
+; 5799 : return (void *)1;
+
+ 0062b b8 01 00 00 00 mov eax, 1
+$LN1@stbi__bmp_:
+
+; 5800 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__bmp_set_mask_defaults
+_TEXT SEGMENT
+info$ = 224
+compress$ = 232
+stbi__bmp_set_mask_defaults PROC ; COMDAT
+
+; 5683 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00023 90 npad 1
+
+; 5684 : // BI_BITFIELDS specifies masks explicitly, don't override
+; 5685 : 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_
+
+; 5686 : return 1;
+
+ 0002d b8 01 00 00 00 mov eax, 1
+ 00032 e9 dd 00 00 00 jmp $LN1@stbi__bmp_
+$LN2@stbi__bmp_:
+
+; 5687 :
+; 5688 : 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_
+
+; 5689 : 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_
+
+; 5690 : 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
+
+; 5691 : 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
+
+; 5692 : 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_:
+
+; 5693 : } 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_
+
+; 5694 : 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
+
+; 5695 : 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
+
+; 5696 : 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
+
+; 5697 : 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
+
+; 5698 : 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
+
+; 5699 : 0; // if all_a is 0 at end, then we loaded alpha channel but it was all 0
+; 5700 : } else {
+
+ 000d1 eb 38 jmp SHORT $LN7@stbi__bmp_
+$LN6@stbi__bmp_:
+
+; 5701 : // otherwise, use defaults, which is all-0
+; 5702 : 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_:
+
+; 5703 : }
+; 5704 : return 1;
+
+ 0010b b8 01 00 00 00 mov eax, 1
+ 00110 eb 02 jmp SHORT $LN1@stbi__bmp_
+$LN3@stbi__bmp_:
+
+; 5705 : }
+; 5706 : return 0; // error
+
+ 00112 33 c0 xor eax, eax
+$LN1@stbi__bmp_:
+
+; 5707 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__shiftsigned
+_TEXT SEGMENT
+v$ = 224
+shift$ = 232
+bits$ = 240
+stbi__shiftsigned PROC ; COMDAT
+
+; 5651 : {
+
+ 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:__079B8C84_stb_image@c
+ 00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00027 90 npad 1
+
+; 5652 : static unsigned int mul_table[9] = {
+; 5653 : 0,
+; 5654 : 0xff /*0b11111111*/,
+; 5655 : 0x55 /*0b01010101*/,
+; 5656 : 0x49 /*0b01001001*/,
+; 5657 : 0x11 /*0b00010001*/,
+; 5658 : 0x21 /*0b00100001*/,
+; 5659 : 0x41 /*0b01000001*/,
+; 5660 : 0x81 /*0b10000001*/,
+; 5661 : 0x01 /*0b00000001*/,
+; 5662 : };
+; 5663 : static unsigned int shift_table[9] = {
+; 5664 : 0, 0, 0, 1, 0, 2, 4, 6, 0,
+; 5665 : };
+; 5666 : 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
+
+; 5667 : 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:
+
+; 5668 : else
+; 5669 : 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:
+
+; 5670 : 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 26 16 00
+ 00 mov r8d, 5670 ; 00001626H
+ 00075 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:??_C@_1KG@HOANCCHA@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@
+ 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:
+
+; 5671 : 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
+
+; 5672 : 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 28 16 00
+ 00 mov r8d, 5672 ; 00001628H
+ 000bf 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:??_C@_1KG@HOANCCHA@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@
+ 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:
+
+; 5673 : 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
+
+; 5674 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__bitcount
+_TEXT SEGMENT
+a$ = 224
+stbi__bitcount PROC ; COMDAT
+
+; 5638 : {
+
+ 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:__079B8C84_stb_image@c
+ 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001e 90 npad 1
+
+; 5639 : 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
+
+; 5640 : 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
+
+; 5641 : 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
+
+; 5642 : 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
+
+; 5643 : 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
+
+; 5644 : 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
+
+; 5645 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__high_bit
+_TEXT SEGMENT
+n$ = 4
+z$ = 256
+stbi__high_bit PROC ; COMDAT
+
+; 5611 : {
+
+ 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:__079B8C84_stb_image@c
+ 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001e 90 npad 1
+
+; 5612 : int n = 0;
+
+ 0001f c7 45 04 00 00
+ 00 00 mov DWORD PTR n$[rbp], 0
+
+; 5613 : 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
+
+; 5614 : return -1;
+
+ 0002f b8 ff ff ff ff mov eax, -1
+ 00034 e9 9e 00 00 00 jmp $LN1@stbi__high
+$LN2@stbi__high:
+
+; 5615 : 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
+
+; 5616 : 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
+
+; 5617 : 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:
+
+; 5618 : }
+; 5619 : 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
+
+; 5620 : 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
+
+; 5621 : 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:
+
+; 5622 : }
+; 5623 : 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
+
+; 5624 : 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
+
+; 5625 : 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:
+
+; 5626 : }
+; 5627 : 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
+
+; 5628 : 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
+
+; 5629 : 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:
+
+; 5630 : }
+; 5631 : 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
+
+; 5632 : 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:
+
+; 5633 : }
+; 5634 : return n;
+
+ 000d4 8b 45 04 mov eax, DWORD PTR n$[rbp]
+$LN1@stbi__high:
+
+; 5635 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__bmp_test_raw
+_TEXT SEGMENT
+r$ = 4
+sz$ = 36
+tv83 = 244
+s$ = 288
+stbi__bmp_test_raw PROC ; COMDAT
+
+; 5586 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 5587 : int r;
+; 5588 : int sz;
+; 5589 : 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_
+
+; 5590 : return 0;
+
+ 00034 33 c0 xor eax, eax
+ 00036 e9 9e 00 00 00 jmp $LN1@stbi__bmp_
+$LN2@stbi__bmp_:
+
+; 5591 : 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_
+
+; 5592 : return 0;
+
+ 0004f 33 c0 xor eax, eax
+ 00051 e9 83 00 00 00 jmp $LN1@stbi__bmp_
+$LN3@stbi__bmp_:
+
+; 5593 : 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
+
+; 5594 : 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
+
+; 5595 : 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
+
+; 5596 : 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
+
+; 5597 : 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
+
+; 5598 : 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
+
+; 5599 : return r;
+
+ 000d6 8b 45 04 mov eax, DWORD PTR r$[rbp]
+$LN1@stbi__bmp_:
+
+; 5600 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__png_info_raw
+_TEXT SEGMENT
+p$ = 224
+x$ = 232
+y$ = 240
+comp$ = 248
+stbi__png_info_raw PROC ; COMDAT
+
+; 5547 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 5548 : 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_
+
+; 5549 : 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
+
+; 5550 : return 0;
+
+ 00057 33 c0 xor eax, eax
+ 00059 eb 64 jmp SHORT $LN1@stbi__png_
+$LN2@stbi__png_:
+
+; 5551 : }
+; 5552 : 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_
+
+; 5553 : *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_:
+
+; 5554 : 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_
+
+; 5555 : *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_:
+
+; 5556 : 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_
+
+; 5557 : *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_:
+
+; 5558 : return 1;
+
+ 000ba b8 01 00 00 00 mov eax, 1
+$LN1@stbi__png_:
+
+; 5559 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 5488 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 5489 : void *result = NULL;
+
+ 0002f 48 c7 45 08 00
+ 00 00 00 mov QWORD PTR result$[rbp], 0
+
+; 5490 : 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:
+
+; 5491 : 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:
+
+; 5492 : 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
+
+; 5493 : 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
+
+; 5494 : 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:
+
+; 5495 : 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
+
+; 5496 : 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:
+
+; 5497 : else
+; 5498 : 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:
+
+; 5499 : "PNG not supported: unsupported color depth");
+; 5500 : 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
+
+; 5501 : 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
+
+; 5502 : 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
+
+; 5503 : 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
+
+; 5504 : 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:
+
+; 5505 : p->s->img_out_n, req_comp,
+; 5506 : p->s->img_x, p->s->img_y);
+; 5507 : else
+; 5508 : 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:
+
+; 5509 : p->s->img_out_n, req_comp,
+; 5510 : p->s->img_x, p->s->img_y);
+; 5511 : 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
+
+; 5512 : if (result == NULL)
+
+ 001e9 48 83 7d 08 00 cmp QWORD PTR result$[rbp], 0
+ 001ee 75 09 jne SHORT $LN12@stbi__do_p
+
+; 5513 : 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:
+
+; 5514 : }
+; 5515 : *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
+
+; 5516 : *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
+
+; 5517 : 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
+
+; 5518 : *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:
+
+; 5519 : }
+; 5520 : 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
+
+; 5521 : 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
+
+; 5522 : 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
+
+; 5523 : 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
+
+; 5524 : 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
+
+; 5525 : 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
+
+; 5526 :
+; 5527 : return result;
+
+ 002a7 48 8b 45 08 mov rax, QWORD PTR result$[rbp]
+$LN1@stbi__do_p:
+
+; 5528 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+tv345 = 2484
+tv394 = 2484
+tv461 = 2484
+tv197 = 2488
+__$ArrayPad$ = 2496
+z$ = 2544
+scan$ = 2552
+req_comp$ = 2560
+stbi__parse_png_file PROC ; COMDAT
+
+; 5235 : {
+
+ 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:__079B8C84_stb_image@c
+ 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00052 90 npad 1
+
+; 5236 : stbi_uc palette[1024], pal_img_n = 0;
+
+ 00053 c6 85 24 04 00
+ 00 00 mov BYTE PTR pal_img_n$[rbp], 0
+
+; 5237 : 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
+
+; 5238 : stbi__uint16 tc16[3];
+; 5239 : 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
+
+; 5240 : 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
+
+; 5241 : 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
+
+; 5242 :
+; 5243 : 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
+
+; 5244 : 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
+
+; 5245 : 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
+
+; 5246 :
+; 5247 : 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
+
+; 5248 : return 0;
+
+ 00108 33 c0 xor eax, eax
+ 0010a e9 98 0d 00 00 jmp $LN1@stbi__pars
+$LN21@stbi__pars:
+
+; 5249 :
+; 5250 : 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
+
+; 5251 : return 1;
+
+ 00118 b8 01 00 00 00 mov eax, 1
+ 0011d e9 85 0d 00 00 jmp $LN1@stbi__pars
+$LN22@stbi__pars:
+$LN2@stbi__pars:
+
+; 5252 :
+; 5253 : for (;;) {
+; 5254 : 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
+
+; 5255 : 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 e0 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 a7 08 00
+ 00 je $LN72@stbi__pars
+ 00185 e9 3c 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 17 0c 00 00 jmp $LN93@stbi__pars
+$LN23@stbi__pars:
+
+; 5256 : case STBI__PNG_TYPE('C', 'g', 'B', 'I'):
+; 5257 : is_iphone = 1;
+
+ 001af c7 85 a4 05 00
+ 00 01 00 00 00 mov DWORD PTR is_iphone$[rbp], 1
+
+; 5258 : 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
+
+; 5259 : break;
+
+ 001cc e9 c4 0c 00 00 jmp $LN5@stbi__pars
+$LN24@stbi__pars:
+
+; 5260 : case STBI__PNG_TYPE('I', 'H', 'D', 'R'): {
+; 5261 : int comp, filter;
+; 5262 : if (!first)
+
+ 001d1 83 bd 24 05 00
+ 00 00 cmp DWORD PTR first$[rbp], 0
+ 001d8 75 11 jne SHORT $LN25@stbi__pars
+
+; 5263 : 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 bc 0c 00 00 jmp $LN1@stbi__pars
+$LN25@stbi__pars:
+
+; 5264 : first = 0;
+
+ 001eb c7 85 24 05 00
+ 00 00 00 00 00 mov DWORD PTR first$[rbp], 0
+
+; 5265 : 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
+
+; 5266 : 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 98 0c 00 00 jmp $LN1@stbi__pars
+$LN26@stbi__pars:
+
+; 5267 : 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
+
+; 5268 : 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
+
+; 5269 : 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
+
+; 5270 : 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 4c 0c 00 00 jmp $LN1@stbi__pars
+$LN27@stbi__pars:
+
+; 5271 : 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
+
+; 5272 : 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 2c 0c 00 00 jmp $LN1@stbi__pars
+$LN28@stbi__pars:
+
+; 5273 : 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
+
+; 5274 : 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
+
+; 5275 : z->depth != 16)
+; 5276 : 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 c1 0b 00 00 jmp $LN1@stbi__pars
+$LN29@stbi__pars:
+
+; 5277 : "PNG not supported: 1/2/4/8/16-bit only");
+; 5278 : 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
+
+; 5279 : 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
+
+; 5280 : 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 92 0b 00 00 jmp $LN1@stbi__pars
+$LN30@stbi__pars:
+
+; 5281 : 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
+
+; 5282 : 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 6b 0b 00 00 jmp $LN1@stbi__pars
+$LN31@stbi__pars:
+
+; 5283 : 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
+
+; 5284 : 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:
+
+; 5285 : 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
+
+; 5286 : 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 3b 0b 00 00 jmp $LN1@stbi__pars
+$LN34@stbi__pars:
+$LN33@stbi__pars:
+
+; 5287 : 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
+
+; 5288 : 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
+
+; 5289 : 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 0c 0b 00 00 jmp $LN1@stbi__pars
+$LN35@stbi__pars:
+
+; 5290 : 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
+
+; 5291 : 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
+
+; 5292 : 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 dd 0a 00 00 jmp $LN1@stbi__pars
+$LN36@stbi__pars:
+
+; 5293 : 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
+
+; 5294 : 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
+
+; 5295 : 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 ae 0a 00 00 jmp $LN1@stbi__pars
+$LN37@stbi__pars:
+
+; 5296 : 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:
+
+; 5297 : 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 84 0a 00 00 jmp $LN1@stbi__pars
+$LN38@stbi__pars:
+
+; 5298 : 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
+
+; 5299 : 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
+
+; 5300 : 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
+
+; 5301 : 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 dc 09 00 00 jmp $LN1@stbi__pars
+$LN42@stbi__pars:
+
+; 5302 : } else {
+
+ 004cb eb 44 jmp SHORT $LN41@stbi__pars
+$LN40@stbi__pars:
+
+; 5303 : // if paletted, then pal_n is our final components, and
+; 5304 : // img_n is # components to decompress/filter.
+; 5305 : 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
+
+; 5306 : 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
+
+; 5307 : 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 96 09 00 00 jmp $LN1@stbi__pars
+$LN43@stbi__pars:
+$LN41@stbi__pars:
+
+; 5308 : }
+; 5309 : // even with SCAN_header, have to scan to see if we have a tRNS
+; 5310 : break;
+
+ 00511 e9 7f 09 00 00 jmp $LN5@stbi__pars
+$LN44@stbi__pars:
+
+; 5311 : }
+; 5312 :
+; 5313 : case STBI__PNG_TYPE('P', 'L', 'T', 'E'): {
+; 5314 : if (first)
+
+ 00516 83 bd 24 05 00
+ 00 00 cmp DWORD PTR first$[rbp], 0
+ 0051d 74 11 je SHORT $LN45@stbi__pars
+
+; 5315 : 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 77 09 00 00 jmp $LN1@stbi__pars
+$LN45@stbi__pars:
+
+; 5316 : 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
+
+; 5317 : 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 5a 09 00 00 jmp $LN1@stbi__pars
+$LN46@stbi__pars:
+
+; 5318 : 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
+
+; 5319 : 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
+
+; 5320 : 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 25 09 00 00 jmp $LN1@stbi__pars
+$LN47@stbi__pars:
+
+; 5321 : 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
+
+; 5322 : 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
+
+; 5323 : 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
+
+; 5324 : 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
+
+; 5325 : 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
+
+; 5326 : }
+
+ 00617 e9 72 ff ff ff jmp $LN7@stbi__pars
+$LN8@stbi__pars:
+
+; 5327 : break;
+
+ 0061c e9 74 08 00 00 jmp $LN5@stbi__pars
+$LN48@stbi__pars:
+
+; 5328 : }
+; 5329 :
+; 5330 : case STBI__PNG_TYPE('t', 'R', 'N', 'S'): {
+; 5331 : if (first)
+
+ 00621 83 bd 24 05 00
+ 00 00 cmp DWORD PTR first$[rbp], 0
+ 00628 74 11 je SHORT $LN49@stbi__pars
+
+; 5332 : 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 6c 08 00 00 jmp $LN1@stbi__pars
+$LN49@stbi__pars:
+
+; 5333 : 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
+
+; 5334 : 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 4d 08 00 00 jmp $LN1@stbi__pars
+$LN50@stbi__pars:
+
+; 5335 : 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
+
+; 5336 : 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
+
+; 5337 : 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
+
+; 5338 : return 1;
+
+ 00680 b8 01 00 00 00 mov eax, 1
+ 00685 e9 1d 08 00 00 jmp $LN1@stbi__pars
+$LN53@stbi__pars:
+
+; 5339 : }
+; 5340 : 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
+
+; 5341 : 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 03 08 00 00 jmp $LN1@stbi__pars
+$LN54@stbi__pars:
+
+; 5342 : 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
+
+; 5343 : 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 e4 07 00 00 jmp $LN1@stbi__pars
+$LN55@stbi__pars:
+
+; 5344 : pal_img_n = 4;
+
+ 006c3 c6 85 24 04 00
+ 00 04 mov BYTE PTR pal_img_n$[rbp], 4
+
+; 5345 : 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
+
+; 5346 : 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:
+
+; 5347 : } else {
+
+ 00713 e9 38 01 00 00 jmp $LN52@stbi__pars
+$LN51@stbi__pars:
+
+; 5348 : 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
+
+; 5349 : 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 6d 07 00 00 jmp $LN1@stbi__pars
+$LN56@stbi__pars:
+
+; 5350 : 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
+
+; 5351 : 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 48 07 00 00 jmp $LN1@stbi__pars
+$LN57@stbi__pars:
+
+; 5352 : has_trans = 1;
+
+ 0075f c6 85 44 04 00
+ 00 01 mov BYTE PTR has_trans$[rbp], 1
+
+; 5353 : // non-paletted with tRNS = constant alpha. if header-scanning, we can stop now.
+; 5354 : 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
+
+; 5355 : ++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
+
+; 5356 : return 1;
+
+ 00785 b8 01 00 00 00 mov eax, 1
+ 0078a e9 18 07 00 00 jmp $LN1@stbi__pars
+$LN58@stbi__pars:
+
+; 5357 : }
+; 5358 : 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 4b jne SHORT $LN59@stbi__pars
+
+; 5359 : for (k = 0; k < s->img_n; ++k)
+
+ 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:
+ 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:
+ 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 1d jge SHORT $LN14@stbi__pars
+
+; 5360 : tc16[k] = (stbi__uint16)stbi__get16be(
+
+ 007c8 48 8b 8d c8 05
+ 00 00 mov rcx, QWORD PTR s$[rbp]
+ 007cf e8 00 00 00 00 call stbi__get16be
+ 007d4 48 63 8d 44 05
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 007db 66 89 84 4d 84
+ 04 00 00 mov WORD PTR tc16$[rbp+rcx*2], ax
+ 007e3 eb c3 jmp SHORT $LN13@stbi__pars
+$LN14@stbi__pars:
+
+; 5361 : s); // copy the values as-is
+; 5362 : } else {
+
+ 007e5 eb 69 jmp SHORT $LN60@stbi__pars
+$LN59@stbi__pars:
+
+; 5363 : for (k = 0; k < s->img_n; ++k)
+
+ 007e7 c7 85 44 05 00
+ 00 00 00 00 00 mov DWORD PTR k$[rbp], 0
+ 007f1 eb 0e jmp SHORT $LN18@stbi__pars
+$LN16@stbi__pars:
+ 007f3 8b 85 44 05 00
+ 00 mov eax, DWORD PTR k$[rbp]
+ 007f9 ff c0 inc eax
+ 007fb 89 85 44 05 00
+ 00 mov DWORD PTR k$[rbp], eax
+$LN18@stbi__pars:
+ 00801 48 8b 85 c8 05
+ 00 00 mov rax, QWORD PTR s$[rbp]
+ 00808 8b 40 08 mov eax, DWORD PTR [rax+8]
+ 0080b 39 85 44 05 00
+ 00 cmp DWORD PTR k$[rbp], eax
+ 00811 7d 3d jge SHORT $LN17@stbi__pars
+
+; 5364 : tc[k] = (stbi_uc)(stbi__get16be(s) & 255) *
+
+ 00813 48 8b 8d c8 05
+ 00 00 mov rcx, QWORD PTR s$[rbp]
+ 0081a e8 00 00 00 00 call stbi__get16be
+ 0081f 25 ff 00 00 00 and eax, 255 ; 000000ffH
+ 00824 0f b6 c0 movzx eax, al
+ 00827 48 8b 8d f0 09
+ 00 00 mov rcx, QWORD PTR z$[rbp]
+ 0082e 48 63 49 20 movsxd rcx, DWORD PTR [rcx+32]
+ 00832 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:stbi__depth_scale_table
+ 00839 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
+ 0083d 0f af c1 imul eax, ecx
+ 00840 48 63 8d 44 05
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 00847 88 84 0d 64 04
+ 00 00 mov BYTE PTR tc$[rbp+rcx], al
+ 0084e eb a3 jmp SHORT $LN16@stbi__pars
+$LN17@stbi__pars:
+$LN60@stbi__pars:
+$LN52@stbi__pars:
+
+; 5365 : stbi__depth_scale_table
+; 5366 : [z->depth]; // non 8-bit images will be larger
+; 5367 : }
+; 5368 : }
+; 5369 : break;
+
+ 00850 e9 40 06 00 00 jmp $LN5@stbi__pars
+$LN61@stbi__pars:
+
+; 5370 : }
+; 5371 :
+; 5372 : case STBI__PNG_TYPE('I', 'D', 'A', 'T'): {
+; 5373 : if (first)
+
+ 00855 83 bd 24 05 00
+ 00 00 cmp DWORD PTR first$[rbp], 0
+ 0085c 74 11 je SHORT $LN62@stbi__pars
+
+; 5374 : return stbi__err("first not IHDR", "Corrupt PNG");
+
+ 0085e 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:??_C@_0P@JEAFOMAF@first?5not?5IHDR@
+ 00865 e8 00 00 00 00 call stbi__err
+ 0086a e9 38 06 00 00 jmp $LN1@stbi__pars
+$LN62@stbi__pars:
+
+; 5375 : if (pal_img_n && !pal_len)
+
+ 0086f 0f b6 85 24 04
+ 00 00 movzx eax, BYTE PTR pal_img_n$[rbp]
+ 00876 85 c0 test eax, eax
+ 00878 74 1a je SHORT $LN63@stbi__pars
+ 0087a 83 bd 04 05 00
+ 00 00 cmp DWORD PTR pal_len$[rbp], 0
+ 00881 75 11 jne SHORT $LN63@stbi__pars
+
+; 5376 : return stbi__err("no PLTE", "Corrupt PNG");
+
+ 00883 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:??_C@_07CKIELOEH@no?5PLTE@
+ 0088a e8 00 00 00 00 call stbi__err
+ 0088f e9 13 06 00 00 jmp $LN1@stbi__pars
+$LN63@stbi__pars:
+
+; 5377 : if (scan == STBI__SCAN_header) {
+
+ 00894 83 bd f8 09 00
+ 00 02 cmp DWORD PTR scan$[rbp], 2
+ 0089b 75 26 jne SHORT $LN64@stbi__pars
+
+; 5378 : // header scan definitely stops at first IDAT
+; 5379 : if (pal_img_n)
+
+ 0089d 0f b6 85 24 04
+ 00 00 movzx eax, BYTE PTR pal_img_n$[rbp]
+ 008a4 85 c0 test eax, eax
+ 008a6 74 11 je SHORT $LN65@stbi__pars
+
+; 5380 : s->img_n = pal_img_n;
+
+ 008a8 0f b6 85 24 04
+ 00 00 movzx eax, BYTE PTR pal_img_n$[rbp]
+ 008af 48 8b 8d c8 05
+ 00 00 mov rcx, QWORD PTR s$[rbp]
+ 008b6 89 41 08 mov DWORD PTR [rcx+8], eax
+$LN65@stbi__pars:
+
+; 5381 : return 1;
+
+ 008b9 b8 01 00 00 00 mov eax, 1
+ 008be e9 e4 05 00 00 jmp $LN1@stbi__pars
+$LN64@stbi__pars:
+
+; 5382 : }
+; 5383 : if (c.length > (1u << 30))
+
+ 008c3 81 bd e8 05 00
+ 00 00 00 00 40 cmp DWORD PTR c$8[rbp], 1073741824 ; 40000000H
+ 008cd 76 11 jbe SHORT $LN66@stbi__pars
+
+; 5384 : return stbi__err("IDAT size limit",
+
+ 008cf 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@PLHGLONG@IDAT?5size?5limit@
+ 008d6 e8 00 00 00 00 call stbi__err
+ 008db e9 c7 05 00 00 jmp $LN1@stbi__pars
+$LN66@stbi__pars:
+
+; 5385 : "IDAT section larger than 2^30 bytes");
+; 5386 : if ((int)(ioff + c.length) < (int)ioff)
+
+ 008e0 8b 85 e8 05 00
+ 00 mov eax, DWORD PTR c$8[rbp]
+ 008e6 8b 8d a4 04 00
+ 00 mov ecx, DWORD PTR ioff$[rbp]
+ 008ec 03 c8 add ecx, eax
+ 008ee 8b c1 mov eax, ecx
+ 008f0 3b 85 a4 04 00
+ 00 cmp eax, DWORD PTR ioff$[rbp]
+ 008f6 7d 07 jge SHORT $LN67@stbi__pars
+
+; 5387 : return 0;
+
+ 008f8 33 c0 xor eax, eax
+ 008fa e9 a8 05 00 00 jmp $LN1@stbi__pars
+$LN67@stbi__pars:
+
+; 5388 : if (ioff + c.length > idata_limit) {
+
+ 008ff 8b 85 e8 05 00
+ 00 mov eax, DWORD PTR c$8[rbp]
+ 00905 8b 8d a4 04 00
+ 00 mov ecx, DWORD PTR ioff$[rbp]
+ 0090b 03 c8 add ecx, eax
+ 0090d 8b c1 mov eax, ecx
+ 0090f 3b 85 c4 04 00
+ 00 cmp eax, DWORD PTR idata_limit$[rbp]
+ 00915 0f 86 ba 00 00
+ 00 jbe $LN68@stbi__pars
+
+; 5389 : stbi__uint32 idata_limit_old = idata_limit;
+
+ 0091b 8b 85 c4 04 00
+ 00 mov eax, DWORD PTR idata_limit$[rbp]
+ 00921 89 85 44 06 00
+ 00 mov DWORD PTR idata_limit_old$11[rbp], eax
+
+; 5390 : stbi_uc *p;
+; 5391 : if (idata_limit == 0)
+
+ 00927 83 bd c4 04 00
+ 00 00 cmp DWORD PTR idata_limit$[rbp], 0
+ 0092e 75 30 jne SHORT $LN69@stbi__pars
+
+; 5392 : idata_limit = c.length > 4096 ? c.length : 4096;
+
+ 00930 81 bd e8 05 00
+ 00 00 10 00 00 cmp DWORD PTR c$8[rbp], 4096 ; 00001000H
+ 0093a 76 0e jbe SHORT $LN101@stbi__pars
+ 0093c 8b 85 e8 05 00
+ 00 mov eax, DWORD PTR c$8[rbp]
+ 00942 89 85 b4 09 00
+ 00 mov DWORD PTR tv345[rbp], eax
+ 00948 eb 0a jmp SHORT $LN102@stbi__pars
+$LN101@stbi__pars:
+ 0094a c7 85 b4 09 00
+ 00 00 10 00 00 mov DWORD PTR tv345[rbp], 4096 ; 00001000H
+$LN102@stbi__pars:
+ 00954 8b 85 b4 09 00
+ 00 mov eax, DWORD PTR tv345[rbp]
+ 0095a 89 85 c4 04 00
+ 00 mov DWORD PTR idata_limit$[rbp], eax
+$LN69@stbi__pars:
+$LN19@stbi__pars:
+
+; 5393 : while (ioff + c.length > idata_limit)
+
+ 00960 8b 85 e8 05 00
+ 00 mov eax, DWORD PTR c$8[rbp]
+ 00966 8b 8d a4 04 00
+ 00 mov ecx, DWORD PTR ioff$[rbp]
+ 0096c 03 c8 add ecx, eax
+ 0096e 8b c1 mov eax, ecx
+ 00970 3b 85 c4 04 00
+ 00 cmp eax, DWORD PTR idata_limit$[rbp]
+ 00976 76 10 jbe SHORT $LN20@stbi__pars
+
+; 5394 : idata_limit *= 2;
+
+ 00978 8b 85 c4 04 00
+ 00 mov eax, DWORD PTR idata_limit$[rbp]
+ 0097e d1 e0 shl eax, 1
+ 00980 89 85 c4 04 00
+ 00 mov DWORD PTR idata_limit$[rbp], eax
+ 00986 eb d8 jmp SHORT $LN19@stbi__pars
+$LN20@stbi__pars:
+
+; 5395 : STBI_NOTUSED(idata_limit_old);
+; 5396 : p = (stbi_uc *)STBI_REALLOC_SIZED(z->idata, idata_limit_old,
+
+ 00988 8b 85 c4 04 00
+ 00 mov eax, DWORD PTR idata_limit$[rbp]
+ 0098e 8b d0 mov edx, eax
+ 00990 48 8b 85 f0 09
+ 00 00 mov rax, QWORD PTR z$[rbp]
+ 00997 48 8b 48 08 mov rcx, QWORD PTR [rax+8]
+ 0099b ff 15 00 00 00
+ 00 call QWORD PTR __imp_realloc
+ 009a1 48 89 85 68 06
+ 00 00 mov QWORD PTR p$12[rbp], rax
+
+; 5397 : idata_limit);
+; 5398 : if (p == NULL)
+
+ 009a8 48 83 bd 68 06
+ 00 00 00 cmp QWORD PTR p$12[rbp], 0
+ 009b0 75 11 jne SHORT $LN70@stbi__pars
+
+; 5399 : return stbi__err("outofmem", "Out of memory");
+
+ 009b2 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@
+ 009b9 e8 00 00 00 00 call stbi__err
+ 009be e9 e4 04 00 00 jmp $LN1@stbi__pars
+$LN70@stbi__pars:
+
+; 5400 : z->idata = p;
+
+ 009c3 48 8b 85 f0 09
+ 00 00 mov rax, QWORD PTR z$[rbp]
+ 009ca 48 8b 8d 68 06
+ 00 00 mov rcx, QWORD PTR p$12[rbp]
+ 009d1 48 89 48 08 mov QWORD PTR [rax+8], rcx
+$LN68@stbi__pars:
+
+; 5401 : }
+; 5402 : if (!stbi__getn(s, z->idata + ioff, c.length))
+
+ 009d5 8b 85 a4 04 00
+ 00 mov eax, DWORD PTR ioff$[rbp]
+ 009db 48 8b 8d f0 09
+ 00 00 mov rcx, QWORD PTR z$[rbp]
+ 009e2 48 03 41 08 add rax, QWORD PTR [rcx+8]
+ 009e6 44 8b 85 e8 05
+ 00 00 mov r8d, DWORD PTR c$8[rbp]
+ 009ed 48 8b d0 mov rdx, rax
+ 009f0 48 8b 8d c8 05
+ 00 00 mov rcx, QWORD PTR s$[rbp]
+ 009f7 e8 00 00 00 00 call stbi__getn
+ 009fc 85 c0 test eax, eax
+ 009fe 75 11 jne SHORT $LN71@stbi__pars
+
+; 5403 : return stbi__err("outofdata", "Corrupt PNG");
+
+ 00a00 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:??_C@_09MNNCNKEO@outofdata@
+ 00a07 e8 00 00 00 00 call stbi__err
+ 00a0c e9 96 04 00 00 jmp $LN1@stbi__pars
+$LN71@stbi__pars:
+
+; 5404 : ioff += c.length;
+
+ 00a11 8b 85 e8 05 00
+ 00 mov eax, DWORD PTR c$8[rbp]
+ 00a17 8b 8d a4 04 00
+ 00 mov ecx, DWORD PTR ioff$[rbp]
+ 00a1d 03 c8 add ecx, eax
+ 00a1f 8b c1 mov eax, ecx
+ 00a21 89 85 a4 04 00
+ 00 mov DWORD PTR ioff$[rbp], eax
+
+; 5405 : break;
+
+ 00a27 e9 69 04 00 00 jmp $LN5@stbi__pars
+$LN72@stbi__pars:
+
+; 5406 : }
+; 5407 :
+; 5408 : case STBI__PNG_TYPE('I', 'E', 'N', 'D'): {
+; 5409 : stbi__uint32 raw_len, bpl;
+; 5410 : if (first)
+
+ 00a2c 83 bd 24 05 00
+ 00 00 cmp DWORD PTR first$[rbp], 0
+ 00a33 74 11 je SHORT $LN73@stbi__pars
+
+; 5411 : return stbi__err("first not IHDR", "Corrupt PNG");
+
+ 00a35 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:??_C@_0P@JEAFOMAF@first?5not?5IHDR@
+ 00a3c e8 00 00 00 00 call stbi__err
+ 00a41 e9 61 04 00 00 jmp $LN1@stbi__pars
+$LN73@stbi__pars:
+
+; 5412 : if (scan != STBI__SCAN_load)
+
+ 00a46 83 bd f8 09 00
+ 00 00 cmp DWORD PTR scan$[rbp], 0
+ 00a4d 74 0a je SHORT $LN74@stbi__pars
+
+; 5413 : return 1;
+
+ 00a4f b8 01 00 00 00 mov eax, 1
+ 00a54 e9 4e 04 00 00 jmp $LN1@stbi__pars
+$LN74@stbi__pars:
+
+; 5414 : if (z->idata == NULL)
+
+ 00a59 48 8b 85 f0 09
+ 00 00 mov rax, QWORD PTR z$[rbp]
+ 00a60 48 83 78 08 00 cmp QWORD PTR [rax+8], 0
+ 00a65 75 11 jne SHORT $LN75@stbi__pars
+
+; 5415 : return stbi__err("no IDAT", "Corrupt PNG");
+
+ 00a67 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:??_C@_07MLPECBNA@no?5IDAT@
+ 00a6e e8 00 00 00 00 call stbi__err
+ 00a73 e9 2f 04 00 00 jmp $LN1@stbi__pars
+$LN75@stbi__pars:
+
+; 5416 : // initial guess for decoded data size to avoid unnecessary reallocs
+; 5417 : bpl = (s->img_x * z->depth + 7) / 8; // bytes per line, per component
+
+ 00a78 48 8b 85 c8 05
+ 00 00 mov rax, QWORD PTR s$[rbp]
+ 00a7f 48 8b 8d f0 09
+ 00 00 mov rcx, QWORD PTR z$[rbp]
+ 00a86 8b 00 mov eax, DWORD PTR [rax]
+ 00a88 0f af 41 20 imul eax, DWORD PTR [rcx+32]
+ 00a8c 83 c0 07 add eax, 7
+ 00a8f 33 d2 xor edx, edx
+ 00a91 b9 08 00 00 00 mov ecx, 8
+ 00a96 f7 f1 div ecx
+ 00a98 89 85 a4 06 00
+ 00 mov DWORD PTR bpl$14[rbp], eax
+
+; 5418 : raw_len = bpl * s->img_y * s->img_n /* pixels */ +
+
+ 00a9e 48 8b 85 c8 05
+ 00 00 mov rax, QWORD PTR s$[rbp]
+ 00aa5 8b 8d a4 06 00
+ 00 mov ecx, DWORD PTR bpl$14[rbp]
+ 00aab 0f af 48 04 imul ecx, DWORD PTR [rax+4]
+ 00aaf 8b c1 mov eax, ecx
+ 00ab1 48 8b 8d c8 05
+ 00 00 mov rcx, QWORD PTR s$[rbp]
+ 00ab8 0f af 41 08 imul eax, DWORD PTR [rcx+8]
+ 00abc 48 8b 8d c8 05
+ 00 00 mov rcx, QWORD PTR s$[rbp]
+ 00ac3 03 41 04 add eax, DWORD PTR [rcx+4]
+ 00ac6 89 85 84 06 00
+ 00 mov DWORD PTR raw_len$13[rbp], eax
+
+; 5419 : s->img_y /* filter mode per row */;
+; 5420 : z->expanded = (stbi_uc *)stbi_zlib_decode_malloc_guesssize_headerflag(
+
+ 00acc 83 bd a4 05 00
+ 00 00 cmp DWORD PTR is_iphone$[rbp], 0
+ 00ad3 75 0c jne SHORT $LN103@stbi__pars
+ 00ad5 c7 85 b4 09 00
+ 00 01 00 00 00 mov DWORD PTR tv394[rbp], 1
+ 00adf eb 0a jmp SHORT $LN104@stbi__pars
+$LN103@stbi__pars:
+ 00ae1 c7 85 b4 09 00
+ 00 00 00 00 00 mov DWORD PTR tv394[rbp], 0
+$LN104@stbi__pars:
+ 00aeb 8b 85 b4 09 00
+ 00 mov eax, DWORD PTR tv394[rbp]
+ 00af1 89 44 24 20 mov DWORD PTR [rsp+32], eax
+ 00af5 4c 8d 8d 84 06
+ 00 00 lea r9, QWORD PTR raw_len$13[rbp]
+ 00afc 44 8b 85 84 06
+ 00 00 mov r8d, DWORD PTR raw_len$13[rbp]
+ 00b03 8b 95 a4 04 00
+ 00 mov edx, DWORD PTR ioff$[rbp]
+ 00b09 48 8b 85 f0 09
+ 00 00 mov rax, QWORD PTR z$[rbp]
+ 00b10 48 8b 48 08 mov rcx, QWORD PTR [rax+8]
+ 00b14 e8 00 00 00 00 call stbi_zlib_decode_malloc_guesssize_headerflag
+ 00b19 48 8b 8d f0 09
+ 00 00 mov rcx, QWORD PTR z$[rbp]
+ 00b20 48 89 41 10 mov QWORD PTR [rcx+16], rax
+
+; 5421 : (char *)z->idata, ioff, raw_len, (int *)&raw_len, !is_iphone);
+; 5422 : if (z->expanded == NULL)
+
+ 00b24 48 8b 85 f0 09
+ 00 00 mov rax, QWORD PTR z$[rbp]
+ 00b2b 48 83 78 10 00 cmp QWORD PTR [rax+16], 0
+ 00b30 75 07 jne SHORT $LN76@stbi__pars
+
+; 5423 : return 0; // zlib should set error
+
+ 00b32 33 c0 xor eax, eax
+ 00b34 e9 6e 03 00 00 jmp $LN1@stbi__pars
+$LN76@stbi__pars:
+
+; 5424 : STBI_FREE(z->idata);
+
+ 00b39 48 8b 85 f0 09
+ 00 00 mov rax, QWORD PTR z$[rbp]
+ 00b40 48 8b 48 08 mov rcx, QWORD PTR [rax+8]
+ 00b44 ff 15 00 00 00
+ 00 call QWORD PTR __imp_free
+ 00b4a 90 npad 1
+
+; 5425 : z->idata = NULL;
+
+ 00b4b 48 8b 85 f0 09
+ 00 00 mov rax, QWORD PTR z$[rbp]
+ 00b52 48 c7 40 08 00
+ 00 00 00 mov QWORD PTR [rax+8], 0
+
+; 5426 : if ((req_comp == s->img_n + 1 && req_comp != 3 && !pal_img_n) || has_trans)
+
+ 00b5a 48 8b 85 c8 05
+ 00 00 mov rax, QWORD PTR s$[rbp]
+ 00b61 8b 40 08 mov eax, DWORD PTR [rax+8]
+ 00b64 ff c0 inc eax
+ 00b66 39 85 00 0a 00
+ 00 cmp DWORD PTR req_comp$[rbp], eax
+ 00b6c 75 14 jne SHORT $LN80@stbi__pars
+ 00b6e 83 bd 00 0a 00
+ 00 03 cmp DWORD PTR req_comp$[rbp], 3
+ 00b75 74 0b je SHORT $LN80@stbi__pars
+ 00b77 0f b6 85 24 04
+ 00 00 movzx eax, BYTE PTR pal_img_n$[rbp]
+ 00b7e 85 c0 test eax, eax
+ 00b80 74 0b je SHORT $LN79@stbi__pars
+$LN80@stbi__pars:
+ 00b82 0f b6 85 44 04
+ 00 00 movzx eax, BYTE PTR has_trans$[rbp]
+ 00b89 85 c0 test eax, eax
+ 00b8b 74 18 je SHORT $LN77@stbi__pars
+$LN79@stbi__pars:
+
+; 5427 : s->img_out_n = s->img_n + 1;
+
+ 00b8d 48 8b 85 c8 05
+ 00 00 mov rax, QWORD PTR s$[rbp]
+ 00b94 8b 40 08 mov eax, DWORD PTR [rax+8]
+ 00b97 ff c0 inc eax
+ 00b99 48 8b 8d c8 05
+ 00 00 mov rcx, QWORD PTR s$[rbp]
+ 00ba0 89 41 0c mov DWORD PTR [rcx+12], eax
+ 00ba3 eb 14 jmp SHORT $LN78@stbi__pars
+$LN77@stbi__pars:
+
+; 5428 : else
+; 5429 : s->img_out_n = s->img_n;
+
+ 00ba5 48 8b 85 c8 05
+ 00 00 mov rax, QWORD PTR s$[rbp]
+ 00bac 48 8b 8d c8 05
+ 00 00 mov rcx, QWORD PTR s$[rbp]
+ 00bb3 8b 49 08 mov ecx, DWORD PTR [rcx+8]
+ 00bb6 89 48 0c mov DWORD PTR [rax+12], ecx
+$LN78@stbi__pars:
+
+; 5430 : if (!stbi__create_png_image(z, z->expanded, raw_len, s->img_out_n, z->depth,
+
+ 00bb9 8b 85 64 05 00
+ 00 mov eax, DWORD PTR interlace$[rbp]
+ 00bbf 89 44 24 30 mov DWORD PTR [rsp+48], eax
+ 00bc3 8b 85 84 05 00
+ 00 mov eax, DWORD PTR color$[rbp]
+ 00bc9 89 44 24 28 mov DWORD PTR [rsp+40], eax
+ 00bcd 48 8b 85 f0 09
+ 00 00 mov rax, QWORD PTR z$[rbp]
+ 00bd4 8b 40 20 mov eax, DWORD PTR [rax+32]
+ 00bd7 89 44 24 20 mov DWORD PTR [rsp+32], eax
+ 00bdb 48 8b 85 c8 05
+ 00 00 mov rax, QWORD PTR s$[rbp]
+ 00be2 44 8b 48 0c mov r9d, DWORD PTR [rax+12]
+ 00be6 44 8b 85 84 06
+ 00 00 mov r8d, DWORD PTR raw_len$13[rbp]
+ 00bed 48 8b 85 f0 09
+ 00 00 mov rax, QWORD PTR z$[rbp]
+ 00bf4 48 8b 50 10 mov rdx, QWORD PTR [rax+16]
+ 00bf8 48 8b 8d f0 09
+ 00 00 mov rcx, QWORD PTR z$[rbp]
+ 00bff e8 00 00 00 00 call stbi__create_png_image
+ 00c04 85 c0 test eax, eax
+ 00c06 75 07 jne SHORT $LN81@stbi__pars
+
+; 5431 : color, interlace))
+; 5432 : return 0;
+
+ 00c08 33 c0 xor eax, eax
+ 00c0a e9 98 02 00 00 jmp $LN1@stbi__pars
+$LN81@stbi__pars:
+
+; 5433 : if (has_trans) {
+
+ 00c0f 0f b6 85 44 04
+ 00 00 movzx eax, BYTE PTR has_trans$[rbp]
+ 00c16 85 c0 test eax, eax
+ 00c18 74 61 je SHORT $LN82@stbi__pars
+
+; 5434 : if (z->depth == 16) {
+
+ 00c1a 48 8b 85 f0 09
+ 00 00 mov rax, QWORD PTR z$[rbp]
+ 00c21 83 78 20 10 cmp DWORD PTR [rax+32], 16
+ 00c25 75 2b jne SHORT $LN83@stbi__pars
+
+; 5435 : if (!stbi__compute_transparency16(z, tc16, s->img_out_n))
+
+ 00c27 48 8b 85 c8 05
+ 00 00 mov rax, QWORD PTR s$[rbp]
+ 00c2e 44 8b 40 0c mov r8d, DWORD PTR [rax+12]
+ 00c32 48 8d 95 84 04
+ 00 00 lea rdx, QWORD PTR tc16$[rbp]
+ 00c39 48 8b 8d f0 09
+ 00 00 mov rcx, QWORD PTR z$[rbp]
+ 00c40 e8 00 00 00 00 call stbi__compute_transparency16
+ 00c45 85 c0 test eax, eax
+ 00c47 75 07 jne SHORT $LN85@stbi__pars
+
+; 5436 : return 0;
+
+ 00c49 33 c0 xor eax, eax
+ 00c4b e9 57 02 00 00 jmp $LN1@stbi__pars
+$LN85@stbi__pars:
+
+; 5437 : } else {
+
+ 00c50 eb 29 jmp SHORT $LN84@stbi__pars
+$LN83@stbi__pars:
+
+; 5438 : if (!stbi__compute_transparency(z, tc, s->img_out_n))
+
+ 00c52 48 8b 85 c8 05
+ 00 00 mov rax, QWORD PTR s$[rbp]
+ 00c59 44 8b 40 0c mov r8d, DWORD PTR [rax+12]
+ 00c5d 48 8d 95 64 04
+ 00 00 lea rdx, QWORD PTR tc$[rbp]
+ 00c64 48 8b 8d f0 09
+ 00 00 mov rcx, QWORD PTR z$[rbp]
+ 00c6b e8 00 00 00 00 call stbi__compute_transparency
+ 00c70 85 c0 test eax, eax
+ 00c72 75 07 jne SHORT $LN86@stbi__pars
+
+; 5439 : return 0;
+
+ 00c74 33 c0 xor eax, eax
+ 00c76 e9 2c 02 00 00 jmp $LN1@stbi__pars
+$LN86@stbi__pars:
+$LN84@stbi__pars:
+$LN82@stbi__pars:
+
+; 5440 : }
+; 5441 : }
+; 5442 : if (is_iphone && stbi__de_iphone_flag && s->img_out_n > 2)
+
+ 00c7b 83 bd a4 05 00
+ 00 00 cmp DWORD PTR is_iphone$[rbp], 0
+ 00c82 74 74 je SHORT $LN87@stbi__pars
+ 00c84 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__de_iphone_flag_set
+ 00c89 8b c0 mov eax, eax
+ 00c8b 8b 0d 00 00 00
+ 00 mov ecx, DWORD PTR _tls_index
+ 00c91 65 48 8b 14 25
+ 58 00 00 00 mov rdx, QWORD PTR gs:88
+ 00c9a 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8]
+ 00c9e 83 3c 08 00 cmp DWORD PTR [rax+rcx], 0
+ 00ca2 74 25 je SHORT $LN105@stbi__pars
+ 00ca4 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__de_iphone_flag_local
+ 00ca9 8b c0 mov eax, eax
+ 00cab 8b 0d 00 00 00
+ 00 mov ecx, DWORD PTR _tls_index
+ 00cb1 65 48 8b 14 25
+ 58 00 00 00 mov rdx, QWORD PTR gs:88
+ 00cba 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8]
+ 00cbe 8b 04 08 mov eax, DWORD PTR [rax+rcx]
+ 00cc1 89 85 b4 09 00
+ 00 mov DWORD PTR tv461[rbp], eax
+ 00cc7 eb 0c jmp SHORT $LN106@stbi__pars
+$LN105@stbi__pars:
+ 00cc9 8b 05 00 00 00
+ 00 mov eax, DWORD PTR stbi__de_iphone_flag_global
+ 00ccf 89 85 b4 09 00
+ 00 mov DWORD PTR tv461[rbp], eax
+$LN106@stbi__pars:
+ 00cd5 83 bd b4 09 00
+ 00 00 cmp DWORD PTR tv461[rbp], 0
+ 00cdc 74 1a je SHORT $LN87@stbi__pars
+ 00cde 48 8b 85 c8 05
+ 00 00 mov rax, QWORD PTR s$[rbp]
+ 00ce5 83 78 0c 02 cmp DWORD PTR [rax+12], 2
+ 00ce9 7e 0d jle SHORT $LN87@stbi__pars
+
+; 5443 : stbi__de_iphone(z);
+
+ 00ceb 48 8b 8d f0 09
+ 00 00 mov rcx, QWORD PTR z$[rbp]
+ 00cf2 e8 00 00 00 00 call stbi__de_iphone
+ 00cf7 90 npad 1
+$LN87@stbi__pars:
+
+; 5444 : if (pal_img_n) {
+
+ 00cf8 0f b6 85 24 04
+ 00 00 movzx eax, BYTE PTR pal_img_n$[rbp]
+ 00cff 85 c0 test eax, eax
+ 00d01 74 6a je SHORT $LN88@stbi__pars
+
+; 5445 : // pal_img_n == 3 or 4
+; 5446 : s->img_n = pal_img_n; // record the actual colors we had
+
+ 00d03 0f b6 85 24 04
+ 00 00 movzx eax, BYTE PTR pal_img_n$[rbp]
+ 00d0a 48 8b 8d c8 05
+ 00 00 mov rcx, QWORD PTR s$[rbp]
+ 00d11 89 41 08 mov DWORD PTR [rcx+8], eax
+
+; 5447 : s->img_out_n = pal_img_n;
+
+ 00d14 0f b6 85 24 04
+ 00 00 movzx eax, BYTE PTR pal_img_n$[rbp]
+ 00d1b 48 8b 8d c8 05
+ 00 00 mov rcx, QWORD PTR s$[rbp]
+ 00d22 89 41 0c mov DWORD PTR [rcx+12], eax
+
+; 5448 : if (req_comp >= 3)
+
+ 00d25 83 bd 00 0a 00
+ 00 03 cmp DWORD PTR req_comp$[rbp], 3
+ 00d2c 7c 10 jl SHORT $LN90@stbi__pars
+
+; 5449 : s->img_out_n = req_comp;
+
+ 00d2e 48 8b 85 c8 05
+ 00 00 mov rax, QWORD PTR s$[rbp]
+ 00d35 8b 8d 00 0a 00
+ 00 mov ecx, DWORD PTR req_comp$[rbp]
+ 00d3b 89 48 0c mov DWORD PTR [rax+12], ecx
+$LN90@stbi__pars:
+
+; 5450 : if (!stbi__expand_png_palette(z, palette, pal_len, s->img_out_n))
+
+ 00d3e 48 8b 85 c8 05
+ 00 00 mov rax, QWORD PTR s$[rbp]
+ 00d45 44 8b 48 0c mov r9d, DWORD PTR [rax+12]
+ 00d49 44 8b 85 04 05
+ 00 00 mov r8d, DWORD PTR pal_len$[rbp]
+ 00d50 48 8d 55 10 lea rdx, QWORD PTR palette$[rbp]
+ 00d54 48 8b 8d f0 09
+ 00 00 mov rcx, QWORD PTR z$[rbp]
+ 00d5b e8 00 00 00 00 call stbi__expand_png_palette
+ 00d60 85 c0 test eax, eax
+ 00d62 75 07 jne SHORT $LN91@stbi__pars
+
+; 5451 : return 0;
+
+ 00d64 33 c0 xor eax, eax
+ 00d66 e9 3c 01 00 00 jmp $LN1@stbi__pars
+$LN91@stbi__pars:
+
+; 5452 : } else if (has_trans) {
+
+ 00d6b eb 21 jmp SHORT $LN89@stbi__pars
+$LN88@stbi__pars:
+ 00d6d 0f b6 85 44 04
+ 00 00 movzx eax, BYTE PTR has_trans$[rbp]
+ 00d74 85 c0 test eax, eax
+ 00d76 74 16 je SHORT $LN92@stbi__pars
+
+; 5453 : // non-paletted image with tRNS -> source image has (constant) alpha
+; 5454 : ++s->img_n;
+
+ 00d78 48 8b 85 c8 05
+ 00 00 mov rax, QWORD PTR s$[rbp]
+ 00d7f 8b 40 08 mov eax, DWORD PTR [rax+8]
+ 00d82 ff c0 inc eax
+ 00d84 48 8b 8d c8 05
+ 00 00 mov rcx, QWORD PTR s$[rbp]
+ 00d8b 89 41 08 mov DWORD PTR [rcx+8], eax
+$LN92@stbi__pars:
+$LN89@stbi__pars:
+
+; 5455 : }
+; 5456 : STBI_FREE(z->expanded);
+
+ 00d8e 48 8b 85 f0 09
+ 00 00 mov rax, QWORD PTR z$[rbp]
+ 00d95 48 8b 48 10 mov rcx, QWORD PTR [rax+16]
+ 00d99 ff 15 00 00 00
+ 00 call QWORD PTR __imp_free
+ 00d9f 90 npad 1
+
+; 5457 : z->expanded = NULL;
+
+ 00da0 48 8b 85 f0 09
+ 00 00 mov rax, QWORD PTR z$[rbp]
+ 00da7 48 c7 40 10 00
+ 00 00 00 mov QWORD PTR [rax+16], 0
+
+; 5458 : // end of PNG chunk, read and skip CRC
+; 5459 : stbi__get32be(s);
+
+ 00daf 48 8b 8d c8 05
+ 00 00 mov rcx, QWORD PTR s$[rbp]
+ 00db6 e8 00 00 00 00 call stbi__get32be
+ 00dbb 90 npad 1
+
+; 5460 : return 1;
+
+ 00dbc b8 01 00 00 00 mov eax, 1
+ 00dc1 e9 e1 00 00 00 jmp $LN1@stbi__pars
+$LN93@stbi__pars:
+
+; 5461 : }
+; 5462 :
+; 5463 : default:
+; 5464 : // if critical, fail
+; 5465 : if (first)
+
+ 00dc6 83 bd 24 05 00
+ 00 00 cmp DWORD PTR first$[rbp], 0
+ 00dcd 74 11 je SHORT $LN94@stbi__pars
+
+; 5466 : return stbi__err("first not IHDR", "Corrupt PNG");
+
+ 00dcf 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:??_C@_0P@JEAFOMAF@first?5not?5IHDR@
+ 00dd6 e8 00 00 00 00 call stbi__err
+ 00ddb e9 c7 00 00 00 jmp $LN1@stbi__pars
+$LN94@stbi__pars:
+
+; 5467 : if ((c.type & (1 << 29)) == 0) {
+
+ 00de0 8b 85 ec 05 00
+ 00 mov eax, DWORD PTR c$8[rbp+4]
+ 00de6 25 00 00 00 20 and eax, 536870912 ; 20000000H
+ 00deb 85 c0 test eax, eax
+ 00ded 0f 85 8f 00 00
+ 00 jne $LN95@stbi__pars
+
+; 5468 : #ifndef STBI_NO_FAILURE_STRINGS
+; 5469 : // not threadsafe
+; 5470 : static char invalid_chunk[] = "XXXX PNG chunk not known";
+; 5471 : invalid_chunk[0] = STBI__BYTECAST(c.type >> 24);
+
+ 00df3 8b 85 ec 05 00
+ 00 mov eax, DWORD PTR c$8[rbp+4]
+ 00df9 c1 e8 18 shr eax, 24
+ 00dfc 25 ff 00 00 00 and eax, 255 ; 000000ffH
+ 00e01 b9 01 00 00 00 mov ecx, 1
+ 00e06 48 6b c9 00 imul rcx, rcx, 0
+ 00e0a 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:?invalid_chunk@?BP@??stbi__parse_png_file@@9@9
+ 00e11 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 5472 : invalid_chunk[1] = STBI__BYTECAST(c.type >> 16);
+
+ 00e14 8b 85 ec 05 00
+ 00 mov eax, DWORD PTR c$8[rbp+4]
+ 00e1a c1 e8 10 shr eax, 16
+ 00e1d 25 ff 00 00 00 and eax, 255 ; 000000ffH
+ 00e22 b9 01 00 00 00 mov ecx, 1
+ 00e27 48 6b c9 01 imul rcx, rcx, 1
+ 00e2b 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:?invalid_chunk@?BP@??stbi__parse_png_file@@9@9
+ 00e32 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 5473 : invalid_chunk[2] = STBI__BYTECAST(c.type >> 8);
+
+ 00e35 8b 85 ec 05 00
+ 00 mov eax, DWORD PTR c$8[rbp+4]
+ 00e3b c1 e8 08 shr eax, 8
+ 00e3e 25 ff 00 00 00 and eax, 255 ; 000000ffH
+ 00e43 b9 01 00 00 00 mov ecx, 1
+ 00e48 48 6b c9 02 imul rcx, rcx, 2
+ 00e4c 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:?invalid_chunk@?BP@??stbi__parse_png_file@@9@9
+ 00e53 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 5474 : invalid_chunk[3] = STBI__BYTECAST(c.type >> 0);
+
+ 00e56 8b 85 ec 05 00
+ 00 mov eax, DWORD PTR c$8[rbp+4]
+ 00e5c 25 ff 00 00 00 and eax, 255 ; 000000ffH
+ 00e61 b9 01 00 00 00 mov ecx, 1
+ 00e66 48 6b c9 03 imul rcx, rcx, 3
+ 00e6a 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:?invalid_chunk@?BP@??stbi__parse_png_file@@9@9
+ 00e71 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 5475 : #endif
+; 5476 : return stbi__err(invalid_chunk,
+
+ 00e74 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:?invalid_chunk@?BP@??stbi__parse_png_file@@9@9
+ 00e7b e8 00 00 00 00 call stbi__err
+ 00e80 eb 25 jmp SHORT $LN1@stbi__pars
+$LN95@stbi__pars:
+
+; 5477 : "PNG not supported: unknown PNG chunk type");
+; 5478 : }
+; 5479 : stbi__skip(s, c.length);
+
+ 00e82 8b 95 e8 05 00
+ 00 mov edx, DWORD PTR c$8[rbp]
+ 00e88 48 8b 8d c8 05
+ 00 00 mov rcx, QWORD PTR s$[rbp]
+ 00e8f e8 00 00 00 00 call stbi__skip
+ 00e94 90 npad 1
+$LN5@stbi__pars:
+
+; 5480 : break;
+; 5481 : }
+; 5482 : // end of PNG chunk, read and skip CRC
+; 5483 : stbi__get32be(s);
+
+ 00e95 48 8b 8d c8 05
+ 00 00 mov rcx, QWORD PTR s$[rbp]
+ 00e9c e8 00 00 00 00 call stbi__get32be
+ 00ea1 90 npad 1
+
+; 5484 : }
+
+ 00ea2 e9 7b f2 ff ff jmp $LN2@stbi__pars
+$LN1@stbi__pars:
+
+; 5485 : }
+
+ 00ea7 48 8b f8 mov rdi, rax
+ 00eaa 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64]
+ 00eae 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:stbi__parse_png_file$rtcFrameData
+ 00eb5 e8 00 00 00 00 call _RTC_CheckStackVars
+ 00eba 48 8b c7 mov rax, rdi
+ 00ebd 48 8b 8d c0 09
+ 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
+ 00ec4 48 33 cd xor rcx, rbp
+ 00ec7 e8 00 00 00 00 call __security_check_cookie
+ 00ecc 48 8d a5 d8 09
+ 00 00 lea rsp, QWORD PTR [rbp+2520]
+ 00ed3 5f pop rdi
+ 00ed4 5d pop rbp
+ 00ed5 c3 ret 0
+stbi__parse_png_file ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 5189 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 5190 : 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
+
+; 5191 : 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
+
+; 5192 : 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
+
+; 5193 :
+; 5194 : 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
+
+; 5195 : 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
+
+; 5196 : 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
+
+; 5197 : 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
+
+; 5198 : 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
+
+; 5199 : 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
+
+; 5200 : }
+
+ 000cd eb 92 jmp SHORT $LN2@stbi__de_i
+$LN3@stbi__de_i:
+
+; 5201 : } else {
+
+ 000cf e9 59 02 00 00 jmp $LN12@stbi__de_i
+$LN11@stbi__de_i:
+
+; 5202 : 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 52 14 00
+ 00 mov r8d, 5202 ; 00001452H
+ 000e4 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:??_C@_1KG@HOANCCHA@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@
+ 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:
+
+; 5203 : 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
+
+; 5204 : // convert bgr to rgb and unpremultiply
+; 5205 : 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
+
+; 5206 : 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
+
+; 5207 : 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
+
+; 5208 : 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
+
+; 5209 : 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
+
+; 5210 : 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
+
+; 5211 : 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
+
+; 5212 : 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
+
+; 5213 : } else {
+
+ 00268 eb 39 jmp SHORT $LN16@stbi__de_i
+$LN15@stbi__de_i:
+
+; 5214 : 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
+
+; 5215 : 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:
+
+; 5216 : }
+; 5217 : 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
+
+; 5218 : }
+
+ 002af e9 ad fe ff ff jmp $LN5@stbi__de_i
+$LN6@stbi__de_i:
+
+; 5219 : } else {
+
+ 002b4 eb 77 jmp SHORT $LN14@stbi__de_i
+$LN13@stbi__de_i:
+
+; 5220 : // convert bgr to rgb
+; 5221 : 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
+
+; 5222 : 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
+
+; 5223 : 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
+
+; 5224 : 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
+
+; 5225 : 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
+
+; 5226 : }
+
+ 0032b eb 92 jmp SHORT $LN8@stbi__de_i
+$LN9@stbi__de_i:
+$LN14@stbi__de_i:
+$LN12@stbi__de_i:
+
+; 5227 : }
+; 5228 : }
+; 5229 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 5112 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 5113 : 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
+
+; 5114 : 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
+
+; 5115 :
+; 5116 : 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
+
+; 5117 : if (p == NULL)
+
+ 00073 48 83 7d 48 00 cmp QWORD PTR p$[rbp], 0
+ 00078 75 11 jne SHORT $LN8@stbi__expa
+
+; 5118 : 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:
+
+; 5119 :
+; 5120 : // between here and free(out) below, exitting would leak
+; 5121 : 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
+
+; 5122 :
+; 5123 : 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
+
+; 5124 : 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
+
+; 5125 : 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
+
+; 5126 : 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
+
+; 5127 : 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
+
+; 5128 : 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
+
+; 5129 : 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
+
+; 5130 : }
+
+ 00150 e9 54 ff ff ff jmp $LN2@stbi__expa
+$LN3@stbi__expa:
+
+; 5131 : } else {
+
+ 00155 e9 dc 00 00 00 jmp $LN10@stbi__expa
+$LN9@stbi__expa:
+
+; 5132 : 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
+
+; 5133 : 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
+
+; 5134 : 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
+
+; 5135 : 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
+
+; 5136 : 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
+
+; 5137 : 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
+
+; 5138 : 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
+
+; 5139 : }
+
+ 00231 e9 2d ff ff ff jmp $LN5@stbi__expa
+$LN6@stbi__expa:
+$LN10@stbi__expa:
+
+; 5140 : }
+; 5141 : 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
+
+; 5142 : 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
+
+; 5143 :
+; 5144 : STBI_NOTUSED(len);
+; 5145 :
+; 5146 : return 1;
+
+ 00257 b8 01 00 00 00 mov eax, 1
+$LN1@stbi__expa:
+
+; 5147 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 5087 : {
+
+ 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:__079B8C84_stb_image@c
+ 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00029 90 npad 1
+
+; 5088 : 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
+
+; 5089 : 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
+
+; 5090 : 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
+
+; 5091 :
+; 5092 : // compute color-based transparency, assuming we've
+; 5093 : // already got 65535 as the alpha value in the output
+; 5094 : 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 e6 13 00
+ 00 mov r8d, 5094 ; 000013e6H
+ 00070 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:??_C@_1KG@HOANCCHA@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@
+ 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:
+
+; 5095 :
+; 5096 : 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
+
+; 5097 : 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
+
+; 5098 : 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
+
+; 5099 : 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
+
+; 5100 : }
+
+ 0010f eb 8b jmp SHORT $LN2@stbi__comp
+$LN3@stbi__comp:
+
+; 5101 : } else {
+
+ 00111 e9 bc 00 00 00 jmp $LN9@stbi__comp
+$LN8@stbi__comp:
+
+; 5102 : 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
+
+; 5103 : 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
+
+; 5104 : 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:
+
+; 5105 : 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
+
+; 5106 : }
+
+ 001cd e9 4d ff ff ff jmp $LN5@stbi__comp
+$LN6@stbi__comp:
+$LN9@stbi__comp:
+
+; 5107 : }
+; 5108 : return 1;
+
+ 001d2 b8 01 00 00 00 mov eax, 1
+
+; 5109 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 5062 : {
+
+ 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:__079B8C84_stb_image@c
+ 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00029 90 npad 1
+
+; 5063 : 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
+
+; 5064 : 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
+
+; 5065 : 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
+
+; 5066 :
+; 5067 : // compute color-based transparency, assuming we've
+; 5068 : // already got 255 as the alpha value in the output
+; 5069 : 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 cd 13 00
+ 00 mov r8d, 5069 ; 000013cdH
+ 00070 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:??_C@_1KG@HOANCCHA@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@
+ 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:
+
+; 5070 :
+; 5071 : 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
+
+; 5072 : 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
+
+; 5073 : 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
+
+; 5074 : 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
+
+; 5075 : }
+
+ 0010e eb 8c jmp SHORT $LN2@stbi__comp
+$LN3@stbi__comp:
+
+; 5076 : } else {
+
+ 00110 e9 ba 00 00 00 jmp $LN9@stbi__comp
+$LN8@stbi__comp:
+
+; 5077 : 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
+
+; 5078 : 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
+
+; 5079 : 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:
+
+; 5080 : 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
+
+; 5081 : }
+
+ 001ca e9 4f ff ff ff jmp $LN5@stbi__comp
+$LN6@stbi__comp:
+$LN9@stbi__comp:
+
+; 5082 : }
+; 5083 : return 1;
+
+ 001cf b8 01 00 00 00 mov eax, 1
+
+; 5084 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 5013 : {
+
+ 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:__079B8C84_stb_image@c
+ 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00047 90 npad 1
+
+; 5014 : 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
+
+; 5015 : 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
+
+; 5016 : stbi_uc *final;
+; 5017 : int p;
+; 5018 : if (!interlaced)
+
+ 0007d 83 bd 30 04 00
+ 00 00 cmp DWORD PTR interlaced$[rbp], 0
+ 00084 75 5b jne SHORT $LN11@stbi__crea
+
+; 5019 : 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:
+
+; 5020 : a->s->img_y, depth, color);
+; 5021 :
+; 5022 : // de-interlacing
+; 5023 : 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
+
+; 5024 : if (!final)
+
+ 0010a 48 83 7d 48 00 cmp QWORD PTR final$[rbp], 0
+ 0010f 75 11 jne SHORT $LN12@stbi__crea
+
+; 5025 : 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:
+
+; 5026 : 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
+
+; 5027 : 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
+
+; 5028 : 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
+
+; 5029 : 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
+
+; 5030 : 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
+
+; 5031 : int i, j, x, y;
+; 5032 : // pass1_x[4] = 0, pass1_x[5] = 1, pass1_x[12] = 1
+; 5033 : 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
+
+; 5034 : 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
+
+; 5035 : 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
+
+; 5036 : 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
+
+; 5037 : 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
+
+; 5038 : depth, color)) {
+; 5039 : 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
+
+; 5040 : return 0;
+
+ 0036e 33 c0 xor eax, eax
+ 00370 e9 87 01 00 00 jmp $LN1@stbi__crea
+$LN14@stbi__crea:
+
+; 5041 : }
+; 5042 : 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
+
+; 5043 : 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
+
+; 5044 : 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
+
+; 5045 : 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
+
+; 5046 : 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
+
+; 5047 : out_x * out_bytes,
+; 5048 : a->out + (j * x + i) * out_bytes, out_bytes);
+; 5049 : }
+
+ 00497 e9 11 ff ff ff jmp $LN8@stbi__crea
+$LN9@stbi__crea:
+
+; 5050 : }
+
+ 0049c e9 e0 fe ff ff jmp $LN5@stbi__crea
+$LN6@stbi__crea:
+
+; 5051 : 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
+
+; 5052 : 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
+
+; 5053 : 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:
+
+; 5054 : }
+; 5055 : }
+
+ 004e3 e9 43 fc ff ff jmp $LN2@stbi__crea
+$LN3@stbi__crea:
+
+; 5056 : 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
+
+; 5057 :
+; 5058 : return 1;
+
+ 004f7 b8 01 00 00 00 mov eax, 1
+$LN1@stbi__crea:
+
+; 5059 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+k$ = 228
+img_n$ = 260
+output_bytes$ = 292
+filter_bytes$ = 324
+width$ = 356
+cur$1 = 392
+prior$2 = 424
+filter$3 = 452
+nk$4 = 484
+cur$5 = 520
+in$6 = 552
+scale$7 = 580
+q$8 = 612
+cur$9 = 648
+cur16$10 = 680
+tv391 = 1076
+tv65 = 1076
+tv168 = 1076
+tv216 = 1076
+tv274 = 1076
+tv343 = 1076
+tv413 = 1076
+tv546 = 1076
+tv618 = 1076
+tv666 = 1076
+tv360 = 1080
+tv563 = 1080
+a$ = 1120
+raw$ = 1128
+raw_len$ = 1136
+out_n$ = 1144
+x$ = 1152
+y$ = 1160
+depth$ = 1168
+color$ = 1176
+stbi__create_png_image_raw PROC ; COMDAT
+
+; 4698 : {
+
+ 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 68 04
+ 00 00 sub rsp, 1128 ; 00000468H
+ 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
+ 00022 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 4699 : int bytes = (depth == 16 ? 2 : 1);
+
+ 0002f 83 bd 90 04 00
+ 00 10 cmp DWORD PTR depth$[rbp], 16
+ 00036 75 0c jne SHORT $LN159@stbi__crea
+ 00038 c7 85 34 04 00
+ 00 02 00 00 00 mov DWORD PTR tv65[rbp], 2
+ 00042 eb 0a jmp SHORT $LN160@stbi__crea
+$LN159@stbi__crea:
+ 00044 c7 85 34 04 00
+ 00 01 00 00 00 mov DWORD PTR tv65[rbp], 1
+$LN160@stbi__crea:
+ 0004e 8b 85 34 04 00
+ 00 mov eax, DWORD PTR tv65[rbp]
+ 00054 89 45 04 mov DWORD PTR bytes$[rbp], eax
+
+; 4700 : stbi__context *s = a->s;
+
+ 00057 48 8b 85 60 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
+
+; 4701 : stbi__uint32 i, j, stride = x * out_n * bytes;
+
+ 00065 8b 85 80 04 00
+ 00 mov eax, DWORD PTR x$[rbp]
+ 0006b 0f af 85 78 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
+
+; 4702 : stbi__uint32 img_len, img_width_bytes;
+; 4703 : int k;
+; 4704 : int img_n = s->img_n; // copy it into a local for later
+
+ 0007c 48 8b 45 28 mov rax, QWORD PTR s$[rbp]
+ 00080 8b 40 08 mov eax, DWORD PTR [rax+8]
+ 00083 89 85 04 01 00
+ 00 mov DWORD PTR img_n$[rbp], eax
+
+; 4705 :
+; 4706 : int output_bytes = out_n * bytes;
+
+ 00089 8b 85 78 04 00
+ 00 mov eax, DWORD PTR out_n$[rbp]
+ 0008f 0f af 45 04 imul eax, DWORD PTR bytes$[rbp]
+ 00093 89 85 24 01 00
+ 00 mov DWORD PTR output_bytes$[rbp], eax
+
+; 4707 : int filter_bytes = img_n * bytes;
+
+ 00099 8b 85 04 01 00
+ 00 mov eax, DWORD PTR img_n$[rbp]
+ 0009f 0f af 45 04 imul eax, DWORD PTR bytes$[rbp]
+ 000a3 89 85 44 01 00
+ 00 mov DWORD PTR filter_bytes$[rbp], eax
+
+; 4708 : int width = x;
+
+ 000a9 8b 85 80 04 00
+ 00 mov eax, DWORD PTR x$[rbp]
+ 000af 89 85 64 01 00
+ 00 mov DWORD PTR width$[rbp], eax
+
+; 4709 :
+; 4710 : STBI_ASSERT(out_n == s->img_n || out_n == s->img_n + 1);
+
+ 000b5 48 8b 45 28 mov rax, QWORD PTR s$[rbp]
+ 000b9 8b 40 08 mov eax, DWORD PTR [rax+8]
+ 000bc 39 85 78 04 00
+ 00 cmp DWORD PTR out_n$[rbp], eax
+ 000c2 74 2d je SHORT $LN161@stbi__crea
+ 000c4 48 8b 45 28 mov rax, QWORD PTR s$[rbp]
+ 000c8 8b 40 08 mov eax, DWORD PTR [rax+8]
+ 000cb ff c0 inc eax
+ 000cd 39 85 78 04 00
+ 00 cmp DWORD PTR out_n$[rbp], eax
+ 000d3 74 1c je SHORT $LN161@stbi__crea
+ 000d5 41 b8 66 12 00
+ 00 mov r8d, 4710 ; 00001266H
+ 000db 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:??_C@_1KG@HOANCCHA@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@
+ 000e2 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@
+ 000e9 ff 15 00 00 00
+ 00 call QWORD PTR __imp__wassert
+ 000ef 33 c0 xor eax, eax
+$LN161@stbi__crea:
+
+; 4711 : a->out = (stbi_uc *)stbi__malloc_mad3(x, y, output_bytes,
+
+ 000f1 45 33 c9 xor r9d, r9d
+ 000f4 44 8b 85 24 01
+ 00 00 mov r8d, DWORD PTR output_bytes$[rbp]
+ 000fb 8b 95 88 04 00
+ 00 mov edx, DWORD PTR y$[rbp]
+ 00101 8b 8d 80 04 00
+ 00 mov ecx, DWORD PTR x$[rbp]
+ 00107 e8 00 00 00 00 call stbi__malloc_mad3
+ 0010c 48 8b 8d 60 04
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 00113 48 89 41 18 mov QWORD PTR [rcx+24], rax
+
+; 4712 : 0); // extra bytes to write off the end into
+; 4713 : if (!a->out)
+
+ 00117 48 8b 85 60 04
+ 00 00 mov rax, QWORD PTR a$[rbp]
+ 0011e 48 83 78 18 00 cmp QWORD PTR [rax+24], 0
+ 00123 75 11 jne SHORT $LN98@stbi__crea
+
+; 4714 : return stbi__err("outofmem", "Out of memory");
+
+ 00125 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@
+ 0012c e8 00 00 00 00 call stbi__err
+ 00131 e9 55 1a 00 00 jmp $LN1@stbi__crea
+$LN98@stbi__crea:
+
+; 4715 :
+; 4716 : if (!stbi__mad3sizes_valid(img_n, x, depth, 7))
+
+ 00136 41 b9 07 00 00
+ 00 mov r9d, 7
+ 0013c 44 8b 85 90 04
+ 00 00 mov r8d, DWORD PTR depth$[rbp]
+ 00143 8b 95 80 04 00
+ 00 mov edx, DWORD PTR x$[rbp]
+ 00149 8b 8d 04 01 00
+ 00 mov ecx, DWORD PTR img_n$[rbp]
+ 0014f e8 00 00 00 00 call stbi__mad3sizes_valid
+ 00154 85 c0 test eax, eax
+ 00156 75 11 jne SHORT $LN99@stbi__crea
+
+; 4717 : return stbi__err("too large", "Corrupt PNG");
+
+ 00158 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@
+ 0015f e8 00 00 00 00 call stbi__err
+ 00164 e9 22 1a 00 00 jmp $LN1@stbi__crea
+$LN99@stbi__crea:
+
+; 4718 : img_width_bytes = (((img_n * x * depth) + 7) >> 3);
+
+ 00169 8b 85 04 01 00
+ 00 mov eax, DWORD PTR img_n$[rbp]
+ 0016f 0f af 85 80 04
+ 00 00 imul eax, DWORD PTR x$[rbp]
+ 00176 0f af 85 90 04
+ 00 00 imul eax, DWORD PTR depth$[rbp]
+ 0017d 83 c0 07 add eax, 7
+ 00180 c1 e8 03 shr eax, 3
+ 00183 89 85 c4 00 00
+ 00 mov DWORD PTR img_width_bytes$[rbp], eax
+
+; 4719 : img_len = (img_width_bytes + 1) * y;
+
+ 00189 8b 85 c4 00 00
+ 00 mov eax, DWORD PTR img_width_bytes$[rbp]
+ 0018f ff c0 inc eax
+ 00191 0f af 85 88 04
+ 00 00 imul eax, DWORD PTR y$[rbp]
+ 00198 89 85 a4 00 00
+ 00 mov DWORD PTR img_len$[rbp], eax
+
+; 4720 :
+; 4721 : // we used to check for exact match between raw_len and img_len on non-interlaced PNGs,
+; 4722 : // but issue #276 reported a PNG in the wild that had extra data at the end (all zeros),
+; 4723 : // so just check for raw_len < img_len always.
+; 4724 : if (raw_len < img_len)
+
+ 0019e 8b 85 a4 00 00
+ 00 mov eax, DWORD PTR img_len$[rbp]
+ 001a4 39 85 70 04 00
+ 00 cmp DWORD PTR raw_len$[rbp], eax
+ 001aa 73 11 jae SHORT $LN100@stbi__crea
+
+; 4725 : return stbi__err("not enough pixels", "Corrupt PNG");
+
+ 001ac 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:??_C@_0BC@BHMPBBMG@not?5enough?5pixels@
+ 001b3 e8 00 00 00 00 call stbi__err
+ 001b8 e9 ce 19 00 00 jmp $LN1@stbi__crea
+$LN100@stbi__crea:
+
+; 4726 :
+; 4727 : for (j = 0; j < y; ++j) {
+
+ 001bd c7 45 64 00 00
+ 00 00 mov DWORD PTR j$[rbp], 0
+ 001c4 eb 08 jmp SHORT $LN4@stbi__crea
+$LN2@stbi__crea:
+ 001c6 8b 45 64 mov eax, DWORD PTR j$[rbp]
+ 001c9 ff c0 inc eax
+ 001cb 89 45 64 mov DWORD PTR j$[rbp], eax
+$LN4@stbi__crea:
+ 001ce 8b 85 88 04 00
+ 00 mov eax, DWORD PTR y$[rbp]
+ 001d4 39 45 64 cmp DWORD PTR j$[rbp], eax
+ 001d7 0f 83 28 10 00
+ 00 jae $LN3@stbi__crea
+
+; 4728 : stbi_uc *cur = a->out + stride * j;
+
+ 001dd 8b 85 84 00 00
+ 00 mov eax, DWORD PTR stride$[rbp]
+ 001e3 0f af 45 64 imul eax, DWORD PTR j$[rbp]
+ 001e7 8b c0 mov eax, eax
+ 001e9 48 8b 8d 60 04
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 001f0 48 03 41 18 add rax, QWORD PTR [rcx+24]
+ 001f4 48 89 85 88 01
+ 00 00 mov QWORD PTR cur$1[rbp], rax
+
+; 4729 : stbi_uc *prior;
+; 4730 : int filter = *raw++;
+
+ 001fb 48 8b 85 68 04
+ 00 00 mov rax, QWORD PTR raw$[rbp]
+ 00202 0f b6 00 movzx eax, BYTE PTR [rax]
+ 00205 89 85 c4 01 00
+ 00 mov DWORD PTR filter$3[rbp], eax
+ 0020b 48 8b 85 68 04
+ 00 00 mov rax, QWORD PTR raw$[rbp]
+ 00212 48 ff c0 inc rax
+ 00215 48 89 85 68 04
+ 00 00 mov QWORD PTR raw$[rbp], rax
+
+; 4731 :
+; 4732 : if (filter > 4)
+
+ 0021c 83 bd c4 01 00
+ 00 04 cmp DWORD PTR filter$3[rbp], 4
+ 00223 7e 11 jle SHORT $LN101@stbi__crea
+
+; 4733 : return stbi__err("invalid filter", "Corrupt PNG");
+
+ 00225 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:??_C@_0P@FBBCPGMN@invalid?5filter@
+ 0022c e8 00 00 00 00 call stbi__err
+ 00231 e9 55 19 00 00 jmp $LN1@stbi__crea
+$LN101@stbi__crea:
+
+; 4734 :
+; 4735 : if (depth < 8) {
+
+ 00236 83 bd 90 04 00
+ 00 08 cmp DWORD PTR depth$[rbp], 8
+ 0023d 7d 5e jge SHORT $LN102@stbi__crea
+
+; 4736 : if (img_width_bytes > x)
+
+ 0023f 8b 85 80 04 00
+ 00 mov eax, DWORD PTR x$[rbp]
+ 00245 39 85 c4 00 00
+ 00 cmp DWORD PTR img_width_bytes$[rbp], eax
+ 0024b 76 11 jbe SHORT $LN103@stbi__crea
+
+; 4737 : return stbi__err("invalid width", "Corrupt PNG");
+
+ 0024d 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:??_C@_0O@MKGNGALN@invalid?5width@
+ 00254 e8 00 00 00 00 call stbi__err
+ 00259 e9 2d 19 00 00 jmp $LN1@stbi__crea
+$LN103@stbi__crea:
+
+; 4738 : cur += x * out_n -
+
+ 0025e 8b 85 80 04 00
+ 00 mov eax, DWORD PTR x$[rbp]
+ 00264 0f af 85 78 04
+ 00 00 imul eax, DWORD PTR out_n$[rbp]
+ 0026b 2b 85 c4 00 00
+ 00 sub eax, DWORD PTR img_width_bytes$[rbp]
+ 00271 8b c0 mov eax, eax
+ 00273 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 0027a 48 03 c8 add rcx, rax
+ 0027d 48 8b c1 mov rax, rcx
+ 00280 48 89 85 88 01
+ 00 00 mov QWORD PTR cur$1[rbp], rax
+
+; 4739 : img_width_bytes; // store output to the rightmost img_len bytes, so we can decode in place
+; 4740 : filter_bytes = 1;
+
+ 00287 c7 85 44 01 00
+ 00 01 00 00 00 mov DWORD PTR filter_bytes$[rbp], 1
+
+; 4741 : width = img_width_bytes;
+
+ 00291 8b 85 c4 00 00
+ 00 mov eax, DWORD PTR img_width_bytes$[rbp]
+ 00297 89 85 64 01 00
+ 00 mov DWORD PTR width$[rbp], eax
+$LN102@stbi__crea:
+
+; 4742 : }
+; 4743 : prior = cur -
+
+ 0029d 8b 85 84 00 00
+ 00 mov eax, DWORD PTR stride$[rbp]
+ 002a3 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 002aa 48 2b c8 sub rcx, rax
+ 002ad 48 8b c1 mov rax, rcx
+ 002b0 48 89 85 a8 01
+ 00 00 mov QWORD PTR prior$2[rbp], rax
+
+; 4744 : stride; // bugfix: need to compute this after 'cur +=' computation above
+; 4745 :
+; 4746 : // if first row, use special filter that doesn't sample previous row
+; 4747 : if (j == 0)
+
+ 002b7 83 7d 64 00 cmp DWORD PTR j$[rbp], 0
+ 002bb 75 18 jne SHORT $LN104@stbi__crea
+
+; 4748 : filter = first_row_filter[filter];
+
+ 002bd 48 63 85 c4 01
+ 00 00 movsxd rax, DWORD PTR filter$3[rbp]
+ 002c4 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:first_row_filter
+ 002cb 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
+ 002cf 89 85 c4 01 00
+ 00 mov DWORD PTR filter$3[rbp], eax
+$LN104@stbi__crea:
+
+; 4749 :
+; 4750 : // handle first byte explicitly
+; 4751 : for (k = 0; k < filter_bytes; ++k) {
+
+ 002d5 c7 85 e4 00 00
+ 00 00 00 00 00 mov DWORD PTR k$[rbp], 0
+ 002df eb 0e jmp SHORT $LN7@stbi__crea
+$LN5@stbi__crea:
+ 002e1 8b 85 e4 00 00
+ 00 mov eax, DWORD PTR k$[rbp]
+ 002e7 ff c0 inc eax
+ 002e9 89 85 e4 00 00
+ 00 mov DWORD PTR k$[rbp], eax
+$LN7@stbi__crea:
+ 002ef 8b 85 44 01 00
+ 00 mov eax, DWORD PTR filter_bytes$[rbp]
+ 002f5 39 85 e4 00 00
+ 00 cmp DWORD PTR k$[rbp], eax
+ 002fb 0f 8d b0 01 00
+ 00 jge $LN6@stbi__crea
+
+; 4752 : switch (filter) {
+
+ 00301 8b 85 c4 01 00
+ 00 mov eax, DWORD PTR filter$3[rbp]
+ 00307 89 85 34 04 00
+ 00 mov DWORD PTR tv168[rbp], eax
+ 0030d 83 bd 34 04 00
+ 00 06 cmp DWORD PTR tv168[rbp], 6
+ 00314 0f 87 92 01 00
+ 00 ja $LN8@stbi__crea
+ 0031a 48 63 85 34 04
+ 00 00 movsxd rax, DWORD PTR tv168[rbp]
+ 00321 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:__ImageBase
+ 00328 8b 84 81 00 00
+ 00 00 mov eax, DWORD PTR $LN168@stbi__crea[rcx+rax*4]
+ 0032f 48 03 c1 add rax, rcx
+ 00332 ff e0 jmp rax
+$LN105@stbi__crea:
+
+; 4753 : case STBI__F_none:
+; 4754 : cur[k] = raw[k];
+
+ 00334 48 63 85 e4 00
+ 00 00 movsxd rax, DWORD PTR k$[rbp]
+ 0033b 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 00342 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 00349 4c 8b 85 68 04
+ 00 00 mov r8, QWORD PTR raw$[rbp]
+ 00350 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax]
+ 00355 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4755 : break;
+
+ 00358 e9 4f 01 00 00 jmp $LN8@stbi__crea
+$LN106@stbi__crea:
+
+; 4756 : case STBI__F_sub:
+; 4757 : cur[k] = raw[k];
+
+ 0035d 48 63 85 e4 00
+ 00 00 movsxd rax, DWORD PTR k$[rbp]
+ 00364 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 0036b 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 00372 4c 8b 85 68 04
+ 00 00 mov r8, QWORD PTR raw$[rbp]
+ 00379 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax]
+ 0037e 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4758 : break;
+
+ 00381 e9 26 01 00 00 jmp $LN8@stbi__crea
+$LN107@stbi__crea:
+
+; 4759 : case STBI__F_up:
+; 4760 : cur[k] = STBI__BYTECAST(raw[k] + prior[k]);
+
+ 00386 48 63 85 e4 00
+ 00 00 movsxd rax, DWORD PTR k$[rbp]
+ 0038d 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 00394 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
+ 00398 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 0039f 48 8b 95 a8 01
+ 00 00 mov rdx, QWORD PTR prior$2[rbp]
+ 003a6 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
+ 003aa 03 c1 add eax, ecx
+ 003ac 25 ff 00 00 00 and eax, 255 ; 000000ffH
+ 003b1 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 003b8 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 003bf 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4761 : break;
+
+ 003c2 e9 e5 00 00 00 jmp $LN8@stbi__crea
+$LN108@stbi__crea:
+
+; 4762 : case STBI__F_avg:
+; 4763 : cur[k] = STBI__BYTECAST(raw[k] + (prior[k] >> 1));
+
+ 003c7 48 63 85 e4 00
+ 00 00 movsxd rax, DWORD PTR k$[rbp]
+ 003ce 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 003d5 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
+ 003d9 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 003e0 48 8b 95 a8 01
+ 00 00 mov rdx, QWORD PTR prior$2[rbp]
+ 003e7 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
+ 003eb d1 f9 sar ecx, 1
+ 003ed 03 c1 add eax, ecx
+ 003ef 25 ff 00 00 00 and eax, 255 ; 000000ffH
+ 003f4 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 003fb 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 00402 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4764 : break;
+
+ 00405 e9 a2 00 00 00 jmp $LN8@stbi__crea
+$LN109@stbi__crea:
+
+; 4765 : case STBI__F_paeth:
+; 4766 : cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(0, prior[k], 0));
+
+ 0040a 48 63 85 e4 00
+ 00 00 movsxd rax, DWORD PTR k$[rbp]
+ 00411 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 00418 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
+ 0041c 89 85 34 04 00
+ 00 mov DWORD PTR tv216[rbp], eax
+ 00422 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 00429 48 8b 95 a8 01
+ 00 00 mov rdx, QWORD PTR prior$2[rbp]
+ 00430 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
+ 00434 45 33 c0 xor r8d, r8d
+ 00437 8b d1 mov edx, ecx
+ 00439 33 c9 xor ecx, ecx
+ 0043b e8 00 00 00 00 call stbi__paeth
+ 00440 8b 8d 34 04 00
+ 00 mov ecx, DWORD PTR tv216[rbp]
+ 00446 03 c8 add ecx, eax
+ 00448 8b c1 mov eax, ecx
+ 0044a 25 ff 00 00 00 and eax, 255 ; 000000ffH
+ 0044f 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 00456 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 0045d 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4767 : break;
+
+ 00460 eb 4a jmp SHORT $LN8@stbi__crea
+$LN110@stbi__crea:
+
+; 4768 : case STBI__F_avg_first:
+; 4769 : cur[k] = raw[k];
+
+ 00462 48 63 85 e4 00
+ 00 00 movsxd rax, DWORD PTR k$[rbp]
+ 00469 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 00470 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 00477 4c 8b 85 68 04
+ 00 00 mov r8, QWORD PTR raw$[rbp]
+ 0047e 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax]
+ 00483 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4770 : break;
+
+ 00486 eb 24 jmp SHORT $LN8@stbi__crea
+$LN111@stbi__crea:
+
+; 4771 : case STBI__F_paeth_first:
+; 4772 : cur[k] = raw[k];
+
+ 00488 48 63 85 e4 00
+ 00 00 movsxd rax, DWORD PTR k$[rbp]
+ 0048f 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 00496 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 0049d 4c 8b 85 68 04
+ 00 00 mov r8, QWORD PTR raw$[rbp]
+ 004a4 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax]
+ 004a9 88 04 0a mov BYTE PTR [rdx+rcx], al
+$LN8@stbi__crea:
+
+; 4773 : break;
+; 4774 : }
+; 4775 : }
+
+ 004ac e9 30 fe ff ff jmp $LN5@stbi__crea
+$LN6@stbi__crea:
+
+; 4776 :
+; 4777 : if (depth == 8) {
+
+ 004b1 83 bd 90 04 00
+ 00 08 cmp DWORD PTR depth$[rbp], 8
+ 004b8 75 76 jne SHORT $LN112@stbi__crea
+
+; 4778 : if (img_n != out_n)
+
+ 004ba 8b 85 78 04 00
+ 00 mov eax, DWORD PTR out_n$[rbp]
+ 004c0 39 85 04 01 00
+ 00 cmp DWORD PTR img_n$[rbp], eax
+ 004c6 74 12 je SHORT $LN114@stbi__crea
+
+; 4779 : cur[img_n] = 255; // first pixel
+
+ 004c8 48 63 85 04 01
+ 00 00 movsxd rax, DWORD PTR img_n$[rbp]
+ 004cf 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 004d6 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH
+$LN114@stbi__crea:
+
+; 4780 : raw += img_n;
+
+ 004da 48 63 85 04 01
+ 00 00 movsxd rax, DWORD PTR img_n$[rbp]
+ 004e1 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 004e8 48 03 c8 add rcx, rax
+ 004eb 48 8b c1 mov rax, rcx
+ 004ee 48 89 85 68 04
+ 00 00 mov QWORD PTR raw$[rbp], rax
+
+; 4781 : cur += out_n;
+
+ 004f5 48 63 85 78 04
+ 00 00 movsxd rax, DWORD PTR out_n$[rbp]
+ 004fc 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 00503 48 03 c8 add rcx, rax
+ 00506 48 8b c1 mov rax, rcx
+ 00509 48 89 85 88 01
+ 00 00 mov QWORD PTR cur$1[rbp], rax
+
+; 4782 : prior += out_n;
+
+ 00510 48 63 85 78 04
+ 00 00 movsxd rax, DWORD PTR out_n$[rbp]
+ 00517 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR prior$2[rbp]
+ 0051e 48 03 c8 add rcx, rax
+ 00521 48 8b c1 mov rax, rcx
+ 00524 48 89 85 a8 01
+ 00 00 mov QWORD PTR prior$2[rbp], rax
+ 0052b e9 c8 00 00 00 jmp $LN113@stbi__crea
+$LN112@stbi__crea:
+
+; 4783 : } else if (depth == 16) {
+
+ 00530 83 bd 90 04 00
+ 00 10 cmp DWORD PTR depth$[rbp], 16
+ 00537 0f 85 88 00 00
+ 00 jne $LN115@stbi__crea
+
+; 4784 : if (img_n != out_n) {
+
+ 0053d 8b 85 78 04 00
+ 00 mov eax, DWORD PTR out_n$[rbp]
+ 00543 39 85 04 01 00
+ 00 cmp DWORD PTR img_n$[rbp], eax
+ 00549 74 27 je SHORT $LN117@stbi__crea
+
+; 4785 : cur[filter_bytes] = 255; // first pixel top byte
+
+ 0054b 48 63 85 44 01
+ 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp]
+ 00552 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 00559 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH
+
+; 4786 : cur[filter_bytes + 1] = 255; // first pixel bottom byte
+
+ 0055d 8b 85 44 01 00
+ 00 mov eax, DWORD PTR filter_bytes$[rbp]
+ 00563 ff c0 inc eax
+ 00565 48 98 cdqe
+ 00567 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 0056e c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH
+$LN117@stbi__crea:
+
+; 4787 : }
+; 4788 : raw += filter_bytes;
+
+ 00572 48 63 85 44 01
+ 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp]
+ 00579 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 00580 48 03 c8 add rcx, rax
+ 00583 48 8b c1 mov rax, rcx
+ 00586 48 89 85 68 04
+ 00 00 mov QWORD PTR raw$[rbp], rax
+
+; 4789 : cur += output_bytes;
+
+ 0058d 48 63 85 24 01
+ 00 00 movsxd rax, DWORD PTR output_bytes$[rbp]
+ 00594 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 0059b 48 03 c8 add rcx, rax
+ 0059e 48 8b c1 mov rax, rcx
+ 005a1 48 89 85 88 01
+ 00 00 mov QWORD PTR cur$1[rbp], rax
+
+; 4790 : prior += output_bytes;
+
+ 005a8 48 63 85 24 01
+ 00 00 movsxd rax, DWORD PTR output_bytes$[rbp]
+ 005af 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR prior$2[rbp]
+ 005b6 48 03 c8 add rcx, rax
+ 005b9 48 8b c1 mov rax, rcx
+ 005bc 48 89 85 a8 01
+ 00 00 mov QWORD PTR prior$2[rbp], rax
+
+; 4791 : } else {
+
+ 005c3 eb 33 jmp SHORT $LN116@stbi__crea
+$LN115@stbi__crea:
+
+; 4792 : raw += 1;
+
+ 005c5 48 8b 85 68 04
+ 00 00 mov rax, QWORD PTR raw$[rbp]
+ 005cc 48 ff c0 inc rax
+ 005cf 48 89 85 68 04
+ 00 00 mov QWORD PTR raw$[rbp], rax
+
+; 4793 : cur += 1;
+
+ 005d6 48 8b 85 88 01
+ 00 00 mov rax, QWORD PTR cur$1[rbp]
+ 005dd 48 ff c0 inc rax
+ 005e0 48 89 85 88 01
+ 00 00 mov QWORD PTR cur$1[rbp], rax
+
+; 4794 : prior += 1;
+
+ 005e7 48 8b 85 a8 01
+ 00 00 mov rax, QWORD PTR prior$2[rbp]
+ 005ee 48 ff c0 inc rax
+ 005f1 48 89 85 a8 01
+ 00 00 mov QWORD PTR prior$2[rbp], rax
+$LN116@stbi__crea:
+$LN113@stbi__crea:
+
+; 4795 : }
+; 4796 :
+; 4797 : // this is a little gross, so that we don't switch per-pixel or per-component
+; 4798 : if (depth < 8 || img_n == out_n) {
+
+ 005f8 83 bd 90 04 00
+ 00 08 cmp DWORD PTR depth$[rbp], 8
+ 005ff 7c 12 jl SHORT $LN120@stbi__crea
+ 00601 8b 85 78 04 00
+ 00 mov eax, DWORD PTR out_n$[rbp]
+ 00607 39 85 04 01 00
+ 00 cmp DWORD PTR img_n$[rbp], eax
+ 0060d 0f 85 d8 03 00
+ 00 jne $LN118@stbi__crea
+$LN120@stbi__crea:
+
+; 4799 : int nk = (width - 1) * filter_bytes;
+
+ 00613 8b 85 64 01 00
+ 00 mov eax, DWORD PTR width$[rbp]
+ 00619 ff c8 dec eax
+ 0061b 0f af 85 44 01
+ 00 00 imul eax, DWORD PTR filter_bytes$[rbp]
+ 00622 89 85 e4 01 00
+ 00 mov DWORD PTR nk$4[rbp], eax
+
+; 4800 : #define STBI__CASE(f) \
+; 4801 : case f: \
+; 4802 : for (k = 0; k < nk; ++k)
+; 4803 : switch (filter) {
+
+ 00628 8b 85 c4 01 00
+ 00 mov eax, DWORD PTR filter$3[rbp]
+ 0062e 89 85 34 04 00
+ 00 mov DWORD PTR tv274[rbp], eax
+ 00634 83 bd 34 04 00
+ 00 06 cmp DWORD PTR tv274[rbp], 6
+ 0063b 0f 87 8a 03 00
+ 00 ja $LN10@stbi__crea
+ 00641 48 63 85 34 04
+ 00 00 movsxd rax, DWORD PTR tv274[rbp]
+ 00648 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:__ImageBase
+ 0064f 8b 84 81 00 00
+ 00 00 mov eax, DWORD PTR $LN167@stbi__crea[rcx+rax*4]
+ 00656 48 03 c1 add rax, rcx
+ 00659 ff e0 jmp rax
+$LN121@stbi__crea:
+
+; 4804 : // "none" filter turns into a memcpy here; make that explicit.
+; 4805 : case STBI__F_none:
+; 4806 : memcpy(cur, raw, nk);
+
+ 0065b 48 63 85 e4 01
+ 00 00 movsxd rax, DWORD PTR nk$4[rbp]
+ 00662 4c 8b c0 mov r8, rax
+ 00665 48 8b 95 68 04
+ 00 00 mov rdx, QWORD PTR raw$[rbp]
+ 0066c 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 00673 e8 00 00 00 00 call memcpy
+ 00678 90 npad 1
+
+; 4807 : break;
+
+ 00679 e9 4d 03 00 00 jmp $LN10@stbi__crea
+$LN122@stbi__crea:
+
+; 4808 : STBI__CASE(STBI__F_sub)
+
+ 0067e c7 85 e4 00 00
+ 00 00 00 00 00 mov DWORD PTR k$[rbp], 0
+ 00688 eb 0e jmp SHORT $LN14@stbi__crea
+$LN12@stbi__crea:
+ 0068a 8b 85 e4 00 00
+ 00 mov eax, DWORD PTR k$[rbp]
+ 00690 ff c0 inc eax
+ 00692 89 85 e4 00 00
+ 00 mov DWORD PTR k$[rbp], eax
+$LN14@stbi__crea:
+ 00698 8b 85 e4 01 00
+ 00 mov eax, DWORD PTR nk$4[rbp]
+ 0069e 39 85 e4 00 00
+ 00 cmp DWORD PTR k$[rbp], eax
+ 006a4 7d 4a jge SHORT $LN13@stbi__crea
+
+; 4809 : {
+; 4810 : cur[k] = STBI__BYTECAST(raw[k] + cur[k - filter_bytes]);
+
+ 006a6 48 63 85 e4 00
+ 00 00 movsxd rax, DWORD PTR k$[rbp]
+ 006ad 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 006b4 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
+ 006b8 8b 8d 44 01 00
+ 00 mov ecx, DWORD PTR filter_bytes$[rbp]
+ 006be 8b 95 e4 00 00
+ 00 mov edx, DWORD PTR k$[rbp]
+ 006c4 2b d1 sub edx, ecx
+ 006c6 8b ca mov ecx, edx
+ 006c8 48 63 c9 movsxd rcx, ecx
+ 006cb 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 006d2 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
+ 006d6 03 c1 add eax, ecx
+ 006d8 25 ff 00 00 00 and eax, 255 ; 000000ffH
+ 006dd 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 006e4 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 006eb 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4811 : }
+
+ 006ee eb 9a jmp SHORT $LN12@stbi__crea
+$LN13@stbi__crea:
+
+; 4812 : break;
+
+ 006f0 e9 d6 02 00 00 jmp $LN10@stbi__crea
+$LN123@stbi__crea:
+
+; 4813 : STBI__CASE(STBI__F_up)
+
+ 006f5 c7 85 e4 00 00
+ 00 00 00 00 00 mov DWORD PTR k$[rbp], 0
+ 006ff eb 0e jmp SHORT $LN17@stbi__crea
+$LN15@stbi__crea:
+ 00701 8b 85 e4 00 00
+ 00 mov eax, DWORD PTR k$[rbp]
+ 00707 ff c0 inc eax
+ 00709 89 85 e4 00 00
+ 00 mov DWORD PTR k$[rbp], eax
+$LN17@stbi__crea:
+ 0070f 8b 85 e4 01 00
+ 00 mov eax, DWORD PTR nk$4[rbp]
+ 00715 39 85 e4 00 00
+ 00 cmp DWORD PTR k$[rbp], eax
+ 0071b 7d 3e jge SHORT $LN16@stbi__crea
+
+; 4814 : {
+; 4815 : cur[k] = STBI__BYTECAST(raw[k] + prior[k]);
+
+ 0071d 48 63 85 e4 00
+ 00 00 movsxd rax, DWORD PTR k$[rbp]
+ 00724 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 0072b 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
+ 0072f 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 00736 48 8b 95 a8 01
+ 00 00 mov rdx, QWORD PTR prior$2[rbp]
+ 0073d 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
+ 00741 03 c1 add eax, ecx
+ 00743 25 ff 00 00 00 and eax, 255 ; 000000ffH
+ 00748 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 0074f 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 00756 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4816 : }
+
+ 00759 eb a6 jmp SHORT $LN15@stbi__crea
+$LN16@stbi__crea:
+
+; 4817 : break;
+
+ 0075b e9 6b 02 00 00 jmp $LN10@stbi__crea
+$LN124@stbi__crea:
+
+; 4818 : STBI__CASE(STBI__F_avg)
+
+ 00760 c7 85 e4 00 00
+ 00 00 00 00 00 mov DWORD PTR k$[rbp], 0
+ 0076a eb 0e jmp SHORT $LN20@stbi__crea
+$LN18@stbi__crea:
+ 0076c 8b 85 e4 00 00
+ 00 mov eax, DWORD PTR k$[rbp]
+ 00772 ff c0 inc eax
+ 00774 89 85 e4 00 00
+ 00 mov DWORD PTR k$[rbp], eax
+$LN20@stbi__crea:
+ 0077a 8b 85 e4 01 00
+ 00 mov eax, DWORD PTR nk$4[rbp]
+ 00780 39 85 e4 00 00
+ 00 cmp DWORD PTR k$[rbp], eax
+ 00786 7d 64 jge SHORT $LN19@stbi__crea
+
+; 4819 : {
+; 4820 : cur[k] = STBI__BYTECAST(
+
+ 00788 48 63 85 e4 00
+ 00 00 movsxd rax, DWORD PTR k$[rbp]
+ 0078f 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 00796 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
+ 0079a 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 007a1 48 8b 95 a8 01
+ 00 00 mov rdx, QWORD PTR prior$2[rbp]
+ 007a8 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
+ 007ac 8b 95 44 01 00
+ 00 mov edx, DWORD PTR filter_bytes$[rbp]
+ 007b2 44 8b 85 e4 00
+ 00 00 mov r8d, DWORD PTR k$[rbp]
+ 007b9 44 2b c2 sub r8d, edx
+ 007bc 41 8b d0 mov edx, r8d
+ 007bf 48 63 d2 movsxd rdx, edx
+ 007c2 4c 8b 85 88 01
+ 00 00 mov r8, QWORD PTR cur$1[rbp]
+ 007c9 41 0f b6 14 10 movzx edx, BYTE PTR [r8+rdx]
+ 007ce 03 ca add ecx, edx
+ 007d0 d1 f9 sar ecx, 1
+ 007d2 03 c1 add eax, ecx
+ 007d4 25 ff 00 00 00 and eax, 255 ; 000000ffH
+ 007d9 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 007e0 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 007e7 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4821 : raw[k] + ((prior[k] + cur[k - filter_bytes]) >> 1));
+; 4822 : }
+
+ 007ea eb 80 jmp SHORT $LN18@stbi__crea
+$LN19@stbi__crea:
+
+; 4823 : break;
+
+ 007ec e9 da 01 00 00 jmp $LN10@stbi__crea
+$LN125@stbi__crea:
+
+; 4824 : STBI__CASE(STBI__F_paeth)
+
+ 007f1 c7 85 e4 00 00
+ 00 00 00 00 00 mov DWORD PTR k$[rbp], 0
+ 007fb eb 0e jmp SHORT $LN23@stbi__crea
+$LN21@stbi__crea:
+ 007fd 8b 85 e4 00 00
+ 00 mov eax, DWORD PTR k$[rbp]
+ 00803 ff c0 inc eax
+ 00805 89 85 e4 00 00
+ 00 mov DWORD PTR k$[rbp], eax
+$LN23@stbi__crea:
+ 0080b 8b 85 e4 01 00
+ 00 mov eax, DWORD PTR nk$4[rbp]
+ 00811 39 85 e4 00 00
+ 00 cmp DWORD PTR k$[rbp], eax
+ 00817 0f 8d a6 00 00
+ 00 jge $LN22@stbi__crea
+
+; 4825 : {
+; 4826 : cur[k] = STBI__BYTECAST(
+
+ 0081d 48 63 85 e4 00
+ 00 00 movsxd rax, DWORD PTR k$[rbp]
+ 00824 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 0082b 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
+ 0082f 89 85 34 04 00
+ 00 mov DWORD PTR tv343[rbp], eax
+ 00835 8b 8d 44 01 00
+ 00 mov ecx, DWORD PTR filter_bytes$[rbp]
+ 0083b 8b 95 e4 00 00
+ 00 mov edx, DWORD PTR k$[rbp]
+ 00841 2b d1 sub edx, ecx
+ 00843 8b ca mov ecx, edx
+ 00845 48 63 c9 movsxd rcx, ecx
+ 00848 48 8b 95 a8 01
+ 00 00 mov rdx, QWORD PTR prior$2[rbp]
+ 0084f 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
+ 00853 48 63 95 e4 00
+ 00 00 movsxd rdx, DWORD PTR k$[rbp]
+ 0085a 4c 8b 85 a8 01
+ 00 00 mov r8, QWORD PTR prior$2[rbp]
+ 00861 41 0f b6 14 10 movzx edx, BYTE PTR [r8+rdx]
+ 00866 44 8b 85 44 01
+ 00 00 mov r8d, DWORD PTR filter_bytes$[rbp]
+ 0086d 44 8b 8d e4 00
+ 00 00 mov r9d, DWORD PTR k$[rbp]
+ 00874 45 2b c8 sub r9d, r8d
+ 00877 45 8b c1 mov r8d, r9d
+ 0087a 4d 63 c0 movsxd r8, r8d
+ 0087d 4c 8b 8d 88 01
+ 00 00 mov r9, QWORD PTR cur$1[rbp]
+ 00884 47 0f b6 04 01 movzx r8d, BYTE PTR [r9+r8]
+ 00889 44 89 85 38 04
+ 00 00 mov DWORD PTR tv360[rbp], r8d
+ 00890 44 8b c1 mov r8d, ecx
+ 00893 8b 8d 38 04 00
+ 00 mov ecx, DWORD PTR tv360[rbp]
+ 00899 e8 00 00 00 00 call stbi__paeth
+ 0089e 8b 8d 34 04 00
+ 00 mov ecx, DWORD PTR tv343[rbp]
+ 008a4 03 c8 add ecx, eax
+ 008a6 8b c1 mov eax, ecx
+ 008a8 25 ff 00 00 00 and eax, 255 ; 000000ffH
+ 008ad 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 008b4 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 008bb 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4827 : raw[k] + stbi__paeth(cur[k - filter_bytes],
+; 4828 : prior[k],
+; 4829 : prior[k - filter_bytes]));
+; 4830 : }
+
+ 008be e9 3a ff ff ff jmp $LN21@stbi__crea
+$LN22@stbi__crea:
+
+; 4831 : break;
+
+ 008c3 e9 03 01 00 00 jmp $LN10@stbi__crea
+$LN126@stbi__crea:
+
+; 4832 : STBI__CASE(STBI__F_avg_first)
+
+ 008c8 c7 85 e4 00 00
+ 00 00 00 00 00 mov DWORD PTR k$[rbp], 0
+ 008d2 eb 0e jmp SHORT $LN26@stbi__crea
+$LN24@stbi__crea:
+ 008d4 8b 85 e4 00 00
+ 00 mov eax, DWORD PTR k$[rbp]
+ 008da ff c0 inc eax
+ 008dc 89 85 e4 00 00
+ 00 mov DWORD PTR k$[rbp], eax
+$LN26@stbi__crea:
+ 008e2 8b 85 e4 01 00
+ 00 mov eax, DWORD PTR nk$4[rbp]
+ 008e8 39 85 e4 00 00
+ 00 cmp DWORD PTR k$[rbp], eax
+ 008ee 7d 4c jge SHORT $LN25@stbi__crea
+
+; 4833 : {
+; 4834 : cur[k] = STBI__BYTECAST(raw[k] +
+
+ 008f0 48 63 85 e4 00
+ 00 00 movsxd rax, DWORD PTR k$[rbp]
+ 008f7 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 008fe 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
+ 00902 8b 8d 44 01 00
+ 00 mov ecx, DWORD PTR filter_bytes$[rbp]
+ 00908 8b 95 e4 00 00
+ 00 mov edx, DWORD PTR k$[rbp]
+ 0090e 2b d1 sub edx, ecx
+ 00910 8b ca mov ecx, edx
+ 00912 48 63 c9 movsxd rcx, ecx
+ 00915 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 0091c 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
+ 00920 d1 f9 sar ecx, 1
+ 00922 03 c1 add eax, ecx
+ 00924 25 ff 00 00 00 and eax, 255 ; 000000ffH
+ 00929 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 00930 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 00937 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4835 : (cur[k - filter_bytes] >> 1));
+; 4836 : }
+
+ 0093a eb 98 jmp SHORT $LN24@stbi__crea
+$LN25@stbi__crea:
+
+; 4837 : break;
+
+ 0093c e9 8a 00 00 00 jmp $LN10@stbi__crea
+$LN127@stbi__crea:
+
+; 4838 : STBI__CASE(STBI__F_paeth_first)
+
+ 00941 c7 85 e4 00 00
+ 00 00 00 00 00 mov DWORD PTR k$[rbp], 0
+ 0094b eb 0e jmp SHORT $LN29@stbi__crea
+$LN27@stbi__crea:
+ 0094d 8b 85 e4 00 00
+ 00 mov eax, DWORD PTR k$[rbp]
+ 00953 ff c0 inc eax
+ 00955 89 85 e4 00 00
+ 00 mov DWORD PTR k$[rbp], eax
+$LN29@stbi__crea:
+ 0095b 8b 85 e4 01 00
+ 00 mov eax, DWORD PTR nk$4[rbp]
+ 00961 39 85 e4 00 00
+ 00 cmp DWORD PTR k$[rbp], eax
+ 00967 7d 62 jge SHORT $LN28@stbi__crea
+
+; 4839 : {
+; 4840 : cur[k] = STBI__BYTECAST(
+
+ 00969 48 63 85 e4 00
+ 00 00 movsxd rax, DWORD PTR k$[rbp]
+ 00970 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 00977 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
+ 0097b 89 85 34 04 00
+ 00 mov DWORD PTR tv391[rbp], eax
+ 00981 8b 8d 44 01 00
+ 00 mov ecx, DWORD PTR filter_bytes$[rbp]
+ 00987 8b 95 e4 00 00
+ 00 mov edx, DWORD PTR k$[rbp]
+ 0098d 2b d1 sub edx, ecx
+ 0098f 8b ca mov ecx, edx
+ 00991 48 63 c9 movsxd rcx, ecx
+ 00994 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 0099b 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
+ 0099f 45 33 c0 xor r8d, r8d
+ 009a2 33 d2 xor edx, edx
+ 009a4 e8 00 00 00 00 call stbi__paeth
+ 009a9 8b 8d 34 04 00
+ 00 mov ecx, DWORD PTR tv391[rbp]
+ 009af 03 c8 add ecx, eax
+ 009b1 8b c1 mov eax, ecx
+ 009b3 25 ff 00 00 00 and eax, 255 ; 000000ffH
+ 009b8 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 009bf 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 009c6 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4841 : raw[k] + stbi__paeth(cur[k - filter_bytes], 0, 0));
+; 4842 : }
+
+ 009c9 eb 82 jmp SHORT $LN27@stbi__crea
+$LN28@stbi__crea:
+$LN10@stbi__crea:
+
+; 4843 : break;
+; 4844 : }
+; 4845 : #undef STBI__CASE
+; 4846 : raw += nk;
+
+ 009cb 48 63 85 e4 01
+ 00 00 movsxd rax, DWORD PTR nk$4[rbp]
+ 009d2 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 009d9 48 03 c8 add rcx, rax
+ 009dc 48 8b c1 mov rax, rcx
+ 009df 48 89 85 68 04
+ 00 00 mov QWORD PTR raw$[rbp], rax
+
+; 4847 : } else {
+
+ 009e6 e9 15 08 00 00 jmp $LN119@stbi__crea
+$LN118@stbi__crea:
+
+; 4848 : STBI_ASSERT(img_n + 1 == out_n);
+
+ 009eb 8b 85 04 01 00
+ 00 mov eax, DWORD PTR img_n$[rbp]
+ 009f1 ff c0 inc eax
+ 009f3 3b 85 78 04 00
+ 00 cmp eax, DWORD PTR out_n$[rbp]
+ 009f9 74 1c je SHORT $LN162@stbi__crea
+ 009fb 41 b8 f0 12 00
+ 00 mov r8d, 4848 ; 000012f0H
+ 00a01 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:??_C@_1KG@HOANCCHA@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@
+ 00a08 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@
+ 00a0f ff 15 00 00 00
+ 00 call QWORD PTR __imp__wassert
+ 00a15 33 c0 xor eax, eax
+$LN162@stbi__crea:
+
+; 4849 : #define STBI__CASE(f) \
+; 4850 : case f: \
+; 4851 : for (i = x - 1; i >= 1; --i, cur[filter_bytes] = 255, raw += filter_bytes, \
+; 4852 : cur += output_bytes, prior += output_bytes) \
+; 4853 : for (k = 0; k < filter_bytes; ++k)
+; 4854 : switch (filter) {
+
+ 00a17 8b 85 c4 01 00
+ 00 mov eax, DWORD PTR filter$3[rbp]
+ 00a1d 89 85 34 04 00
+ 00 mov DWORD PTR tv413[rbp], eax
+ 00a23 83 bd 34 04 00
+ 00 06 cmp DWORD PTR tv413[rbp], 6
+ 00a2a 0f 87 5b 07 00
+ 00 ja $LN30@stbi__crea
+ 00a30 48 63 85 34 04
+ 00 00 movsxd rax, DWORD PTR tv413[rbp]
+ 00a37 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:__ImageBase
+ 00a3e 8b 84 81 00 00
+ 00 00 mov eax, DWORD PTR $LN166@stbi__crea[rcx+rax*4]
+ 00a45 48 03 c1 add rax, rcx
+ 00a48 ff e0 jmp rax
+$LN128@stbi__crea:
+
+; 4855 : STBI__CASE(STBI__F_none)
+
+ 00a4a 8b 85 80 04 00
+ 00 mov eax, DWORD PTR x$[rbp]
+ 00a50 ff c8 dec eax
+ 00a52 89 45 44 mov DWORD PTR i$[rbp], eax
+ 00a55 eb 6b jmp SHORT $LN34@stbi__crea
+$LN32@stbi__crea:
+ 00a57 8b 45 44 mov eax, DWORD PTR i$[rbp]
+ 00a5a ff c8 dec eax
+ 00a5c 89 45 44 mov DWORD PTR i$[rbp], eax
+ 00a5f 48 63 85 44 01
+ 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp]
+ 00a66 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 00a6d c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH
+ 00a71 48 63 85 44 01
+ 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp]
+ 00a78 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 00a7f 48 03 c8 add rcx, rax
+ 00a82 48 8b c1 mov rax, rcx
+ 00a85 48 89 85 68 04
+ 00 00 mov QWORD PTR raw$[rbp], rax
+ 00a8c 48 63 85 24 01
+ 00 00 movsxd rax, DWORD PTR output_bytes$[rbp]
+ 00a93 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 00a9a 48 03 c8 add rcx, rax
+ 00a9d 48 8b c1 mov rax, rcx
+ 00aa0 48 89 85 88 01
+ 00 00 mov QWORD PTR cur$1[rbp], rax
+ 00aa7 48 63 85 24 01
+ 00 00 movsxd rax, DWORD PTR output_bytes$[rbp]
+ 00aae 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR prior$2[rbp]
+ 00ab5 48 03 c8 add rcx, rax
+ 00ab8 48 8b c1 mov rax, rcx
+ 00abb 48 89 85 a8 01
+ 00 00 mov QWORD PTR prior$2[rbp], rax
+$LN34@stbi__crea:
+ 00ac2 83 7d 44 01 cmp DWORD PTR i$[rbp], 1
+ 00ac6 72 53 jb SHORT $LN33@stbi__crea
+ 00ac8 c7 85 e4 00 00
+ 00 00 00 00 00 mov DWORD PTR k$[rbp], 0
+ 00ad2 eb 0e jmp SHORT $LN37@stbi__crea
+$LN35@stbi__crea:
+ 00ad4 8b 85 e4 00 00
+ 00 mov eax, DWORD PTR k$[rbp]
+ 00ada ff c0 inc eax
+ 00adc 89 85 e4 00 00
+ 00 mov DWORD PTR k$[rbp], eax
+$LN37@stbi__crea:
+ 00ae2 8b 85 44 01 00
+ 00 mov eax, DWORD PTR filter_bytes$[rbp]
+ 00ae8 39 85 e4 00 00
+ 00 cmp DWORD PTR k$[rbp], eax
+ 00aee 7d 26 jge SHORT $LN36@stbi__crea
+
+; 4856 : {
+; 4857 : cur[k] = raw[k];
+
+ 00af0 48 63 85 e4 00
+ 00 00 movsxd rax, DWORD PTR k$[rbp]
+ 00af7 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 00afe 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 00b05 4c 8b 85 68 04
+ 00 00 mov r8, QWORD PTR raw$[rbp]
+ 00b0c 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax]
+ 00b11 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4858 : }
+
+ 00b14 eb be jmp SHORT $LN35@stbi__crea
+$LN36@stbi__crea:
+ 00b16 e9 3c ff ff ff jmp $LN32@stbi__crea
+$LN33@stbi__crea:
+
+; 4859 : break;
+
+ 00b1b e9 6b 06 00 00 jmp $LN30@stbi__crea
+$LN129@stbi__crea:
+
+; 4860 : STBI__CASE(STBI__F_sub)
+
+ 00b20 8b 85 80 04 00
+ 00 mov eax, DWORD PTR x$[rbp]
+ 00b26 ff c8 dec eax
+ 00b28 89 45 44 mov DWORD PTR i$[rbp], eax
+ 00b2b eb 6b jmp SHORT $LN40@stbi__crea
+$LN38@stbi__crea:
+ 00b2d 8b 45 44 mov eax, DWORD PTR i$[rbp]
+ 00b30 ff c8 dec eax
+ 00b32 89 45 44 mov DWORD PTR i$[rbp], eax
+ 00b35 48 63 85 44 01
+ 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp]
+ 00b3c 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 00b43 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH
+ 00b47 48 63 85 44 01
+ 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp]
+ 00b4e 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 00b55 48 03 c8 add rcx, rax
+ 00b58 48 8b c1 mov rax, rcx
+ 00b5b 48 89 85 68 04
+ 00 00 mov QWORD PTR raw$[rbp], rax
+ 00b62 48 63 85 24 01
+ 00 00 movsxd rax, DWORD PTR output_bytes$[rbp]
+ 00b69 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 00b70 48 03 c8 add rcx, rax
+ 00b73 48 8b c1 mov rax, rcx
+ 00b76 48 89 85 88 01
+ 00 00 mov QWORD PTR cur$1[rbp], rax
+ 00b7d 48 63 85 24 01
+ 00 00 movsxd rax, DWORD PTR output_bytes$[rbp]
+ 00b84 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR prior$2[rbp]
+ 00b8b 48 03 c8 add rcx, rax
+ 00b8e 48 8b c1 mov rax, rcx
+ 00b91 48 89 85 a8 01
+ 00 00 mov QWORD PTR prior$2[rbp], rax
+$LN40@stbi__crea:
+ 00b98 83 7d 44 01 cmp DWORD PTR i$[rbp], 1
+ 00b9c 72 77 jb SHORT $LN39@stbi__crea
+ 00b9e c7 85 e4 00 00
+ 00 00 00 00 00 mov DWORD PTR k$[rbp], 0
+ 00ba8 eb 0e jmp SHORT $LN43@stbi__crea
+$LN41@stbi__crea:
+ 00baa 8b 85 e4 00 00
+ 00 mov eax, DWORD PTR k$[rbp]
+ 00bb0 ff c0 inc eax
+ 00bb2 89 85 e4 00 00
+ 00 mov DWORD PTR k$[rbp], eax
+$LN43@stbi__crea:
+ 00bb8 8b 85 44 01 00
+ 00 mov eax, DWORD PTR filter_bytes$[rbp]
+ 00bbe 39 85 e4 00 00
+ 00 cmp DWORD PTR k$[rbp], eax
+ 00bc4 7d 4a jge SHORT $LN42@stbi__crea
+
+; 4861 : {
+; 4862 : cur[k] = STBI__BYTECAST(raw[k] + cur[k - output_bytes]);
+
+ 00bc6 48 63 85 e4 00
+ 00 00 movsxd rax, DWORD PTR k$[rbp]
+ 00bcd 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 00bd4 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
+ 00bd8 8b 8d 24 01 00
+ 00 mov ecx, DWORD PTR output_bytes$[rbp]
+ 00bde 8b 95 e4 00 00
+ 00 mov edx, DWORD PTR k$[rbp]
+ 00be4 2b d1 sub edx, ecx
+ 00be6 8b ca mov ecx, edx
+ 00be8 48 63 c9 movsxd rcx, ecx
+ 00beb 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 00bf2 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
+ 00bf6 03 c1 add eax, ecx
+ 00bf8 25 ff 00 00 00 and eax, 255 ; 000000ffH
+ 00bfd 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 00c04 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 00c0b 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4863 : }
+
+ 00c0e eb 9a jmp SHORT $LN41@stbi__crea
+$LN42@stbi__crea:
+ 00c10 e9 18 ff ff ff jmp $LN38@stbi__crea
+$LN39@stbi__crea:
+
+; 4864 : break;
+
+ 00c15 e9 71 05 00 00 jmp $LN30@stbi__crea
+$LN130@stbi__crea:
+
+; 4865 : STBI__CASE(STBI__F_up)
+
+ 00c1a 8b 85 80 04 00
+ 00 mov eax, DWORD PTR x$[rbp]
+ 00c20 ff c8 dec eax
+ 00c22 89 45 44 mov DWORD PTR i$[rbp], eax
+ 00c25 eb 6b jmp SHORT $LN46@stbi__crea
+$LN44@stbi__crea:
+ 00c27 8b 45 44 mov eax, DWORD PTR i$[rbp]
+ 00c2a ff c8 dec eax
+ 00c2c 89 45 44 mov DWORD PTR i$[rbp], eax
+ 00c2f 48 63 85 44 01
+ 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp]
+ 00c36 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 00c3d c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH
+ 00c41 48 63 85 44 01
+ 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp]
+ 00c48 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 00c4f 48 03 c8 add rcx, rax
+ 00c52 48 8b c1 mov rax, rcx
+ 00c55 48 89 85 68 04
+ 00 00 mov QWORD PTR raw$[rbp], rax
+ 00c5c 48 63 85 24 01
+ 00 00 movsxd rax, DWORD PTR output_bytes$[rbp]
+ 00c63 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 00c6a 48 03 c8 add rcx, rax
+ 00c6d 48 8b c1 mov rax, rcx
+ 00c70 48 89 85 88 01
+ 00 00 mov QWORD PTR cur$1[rbp], rax
+ 00c77 48 63 85 24 01
+ 00 00 movsxd rax, DWORD PTR output_bytes$[rbp]
+ 00c7e 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR prior$2[rbp]
+ 00c85 48 03 c8 add rcx, rax
+ 00c88 48 8b c1 mov rax, rcx
+ 00c8b 48 89 85 a8 01
+ 00 00 mov QWORD PTR prior$2[rbp], rax
+$LN46@stbi__crea:
+ 00c92 83 7d 44 01 cmp DWORD PTR i$[rbp], 1
+ 00c96 72 6b jb SHORT $LN45@stbi__crea
+ 00c98 c7 85 e4 00 00
+ 00 00 00 00 00 mov DWORD PTR k$[rbp], 0
+ 00ca2 eb 0e jmp SHORT $LN49@stbi__crea
+$LN47@stbi__crea:
+ 00ca4 8b 85 e4 00 00
+ 00 mov eax, DWORD PTR k$[rbp]
+ 00caa ff c0 inc eax
+ 00cac 89 85 e4 00 00
+ 00 mov DWORD PTR k$[rbp], eax
+$LN49@stbi__crea:
+ 00cb2 8b 85 44 01 00
+ 00 mov eax, DWORD PTR filter_bytes$[rbp]
+ 00cb8 39 85 e4 00 00
+ 00 cmp DWORD PTR k$[rbp], eax
+ 00cbe 7d 3e jge SHORT $LN48@stbi__crea
+
+; 4866 : {
+; 4867 : cur[k] = STBI__BYTECAST(raw[k] + prior[k]);
+
+ 00cc0 48 63 85 e4 00
+ 00 00 movsxd rax, DWORD PTR k$[rbp]
+ 00cc7 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 00cce 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
+ 00cd2 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 00cd9 48 8b 95 a8 01
+ 00 00 mov rdx, QWORD PTR prior$2[rbp]
+ 00ce0 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
+ 00ce4 03 c1 add eax, ecx
+ 00ce6 25 ff 00 00 00 and eax, 255 ; 000000ffH
+ 00ceb 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 00cf2 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 00cf9 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4868 : }
+
+ 00cfc eb a6 jmp SHORT $LN47@stbi__crea
+$LN48@stbi__crea:
+ 00cfe e9 24 ff ff ff jmp $LN44@stbi__crea
+$LN45@stbi__crea:
+
+; 4869 : break;
+
+ 00d03 e9 83 04 00 00 jmp $LN30@stbi__crea
+$LN131@stbi__crea:
+
+; 4870 : STBI__CASE(STBI__F_avg)
+
+ 00d08 8b 85 80 04 00
+ 00 mov eax, DWORD PTR x$[rbp]
+ 00d0e ff c8 dec eax
+ 00d10 89 45 44 mov DWORD PTR i$[rbp], eax
+ 00d13 eb 6b jmp SHORT $LN52@stbi__crea
+$LN50@stbi__crea:
+ 00d15 8b 45 44 mov eax, DWORD PTR i$[rbp]
+ 00d18 ff c8 dec eax
+ 00d1a 89 45 44 mov DWORD PTR i$[rbp], eax
+ 00d1d 48 63 85 44 01
+ 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp]
+ 00d24 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 00d2b c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH
+ 00d2f 48 63 85 44 01
+ 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp]
+ 00d36 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 00d3d 48 03 c8 add rcx, rax
+ 00d40 48 8b c1 mov rax, rcx
+ 00d43 48 89 85 68 04
+ 00 00 mov QWORD PTR raw$[rbp], rax
+ 00d4a 48 63 85 24 01
+ 00 00 movsxd rax, DWORD PTR output_bytes$[rbp]
+ 00d51 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 00d58 48 03 c8 add rcx, rax
+ 00d5b 48 8b c1 mov rax, rcx
+ 00d5e 48 89 85 88 01
+ 00 00 mov QWORD PTR cur$1[rbp], rax
+ 00d65 48 63 85 24 01
+ 00 00 movsxd rax, DWORD PTR output_bytes$[rbp]
+ 00d6c 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR prior$2[rbp]
+ 00d73 48 03 c8 add rcx, rax
+ 00d76 48 8b c1 mov rax, rcx
+ 00d79 48 89 85 a8 01
+ 00 00 mov QWORD PTR prior$2[rbp], rax
+$LN52@stbi__crea:
+ 00d80 83 7d 44 01 cmp DWORD PTR i$[rbp], 1
+ 00d84 0f 82 91 00 00
+ 00 jb $LN51@stbi__crea
+ 00d8a c7 85 e4 00 00
+ 00 00 00 00 00 mov DWORD PTR k$[rbp], 0
+ 00d94 eb 0e jmp SHORT $LN55@stbi__crea
+$LN53@stbi__crea:
+ 00d96 8b 85 e4 00 00
+ 00 mov eax, DWORD PTR k$[rbp]
+ 00d9c ff c0 inc eax
+ 00d9e 89 85 e4 00 00
+ 00 mov DWORD PTR k$[rbp], eax
+$LN55@stbi__crea:
+ 00da4 8b 85 44 01 00
+ 00 mov eax, DWORD PTR filter_bytes$[rbp]
+ 00daa 39 85 e4 00 00
+ 00 cmp DWORD PTR k$[rbp], eax
+ 00db0 7d 64 jge SHORT $LN54@stbi__crea
+
+; 4871 : {
+; 4872 : cur[k] = STBI__BYTECAST(
+
+ 00db2 48 63 85 e4 00
+ 00 00 movsxd rax, DWORD PTR k$[rbp]
+ 00db9 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 00dc0 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
+ 00dc4 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 00dcb 48 8b 95 a8 01
+ 00 00 mov rdx, QWORD PTR prior$2[rbp]
+ 00dd2 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
+ 00dd6 8b 95 24 01 00
+ 00 mov edx, DWORD PTR output_bytes$[rbp]
+ 00ddc 44 8b 85 e4 00
+ 00 00 mov r8d, DWORD PTR k$[rbp]
+ 00de3 44 2b c2 sub r8d, edx
+ 00de6 41 8b d0 mov edx, r8d
+ 00de9 48 63 d2 movsxd rdx, edx
+ 00dec 4c 8b 85 88 01
+ 00 00 mov r8, QWORD PTR cur$1[rbp]
+ 00df3 41 0f b6 14 10 movzx edx, BYTE PTR [r8+rdx]
+ 00df8 03 ca add ecx, edx
+ 00dfa d1 f9 sar ecx, 1
+ 00dfc 03 c1 add eax, ecx
+ 00dfe 25 ff 00 00 00 and eax, 255 ; 000000ffH
+ 00e03 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 00e0a 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 00e11 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4873 : raw[k] + ((prior[k] + cur[k - output_bytes]) >> 1));
+; 4874 : }
+
+ 00e14 eb 80 jmp SHORT $LN53@stbi__crea
+$LN54@stbi__crea:
+ 00e16 e9 fa fe ff ff jmp $LN50@stbi__crea
+$LN51@stbi__crea:
+
+; 4875 : break;
+
+ 00e1b e9 6b 03 00 00 jmp $LN30@stbi__crea
+$LN132@stbi__crea:
+
+; 4876 : STBI__CASE(STBI__F_paeth)
+
+ 00e20 8b 85 80 04 00
+ 00 mov eax, DWORD PTR x$[rbp]
+ 00e26 ff c8 dec eax
+ 00e28 89 45 44 mov DWORD PTR i$[rbp], eax
+ 00e2b eb 6b jmp SHORT $LN58@stbi__crea
+$LN56@stbi__crea:
+ 00e2d 8b 45 44 mov eax, DWORD PTR i$[rbp]
+ 00e30 ff c8 dec eax
+ 00e32 89 45 44 mov DWORD PTR i$[rbp], eax
+ 00e35 48 63 85 44 01
+ 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp]
+ 00e3c 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 00e43 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH
+ 00e47 48 63 85 44 01
+ 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp]
+ 00e4e 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 00e55 48 03 c8 add rcx, rax
+ 00e58 48 8b c1 mov rax, rcx
+ 00e5b 48 89 85 68 04
+ 00 00 mov QWORD PTR raw$[rbp], rax
+ 00e62 48 63 85 24 01
+ 00 00 movsxd rax, DWORD PTR output_bytes$[rbp]
+ 00e69 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 00e70 48 03 c8 add rcx, rax
+ 00e73 48 8b c1 mov rax, rcx
+ 00e76 48 89 85 88 01
+ 00 00 mov QWORD PTR cur$1[rbp], rax
+ 00e7d 48 63 85 24 01
+ 00 00 movsxd rax, DWORD PTR output_bytes$[rbp]
+ 00e84 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR prior$2[rbp]
+ 00e8b 48 03 c8 add rcx, rax
+ 00e8e 48 8b c1 mov rax, rcx
+ 00e91 48 89 85 a8 01
+ 00 00 mov QWORD PTR prior$2[rbp], rax
+$LN58@stbi__crea:
+ 00e98 83 7d 44 01 cmp DWORD PTR i$[rbp], 1
+ 00e9c 0f 82 d7 00 00
+ 00 jb $LN57@stbi__crea
+ 00ea2 c7 85 e4 00 00
+ 00 00 00 00 00 mov DWORD PTR k$[rbp], 0
+ 00eac eb 0e jmp SHORT $LN61@stbi__crea
+$LN59@stbi__crea:
+ 00eae 8b 85 e4 00 00
+ 00 mov eax, DWORD PTR k$[rbp]
+ 00eb4 ff c0 inc eax
+ 00eb6 89 85 e4 00 00
+ 00 mov DWORD PTR k$[rbp], eax
+$LN61@stbi__crea:
+ 00ebc 8b 85 44 01 00
+ 00 mov eax, DWORD PTR filter_bytes$[rbp]
+ 00ec2 39 85 e4 00 00
+ 00 cmp DWORD PTR k$[rbp], eax
+ 00ec8 0f 8d a6 00 00
+ 00 jge $LN60@stbi__crea
+
+; 4877 : {
+; 4878 : cur[k] = STBI__BYTECAST(
+
+ 00ece 48 63 85 e4 00
+ 00 00 movsxd rax, DWORD PTR k$[rbp]
+ 00ed5 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 00edc 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
+ 00ee0 89 85 34 04 00
+ 00 mov DWORD PTR tv546[rbp], eax
+ 00ee6 8b 8d 24 01 00
+ 00 mov ecx, DWORD PTR output_bytes$[rbp]
+ 00eec 8b 95 e4 00 00
+ 00 mov edx, DWORD PTR k$[rbp]
+ 00ef2 2b d1 sub edx, ecx
+ 00ef4 8b ca mov ecx, edx
+ 00ef6 48 63 c9 movsxd rcx, ecx
+ 00ef9 48 8b 95 a8 01
+ 00 00 mov rdx, QWORD PTR prior$2[rbp]
+ 00f00 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
+ 00f04 48 63 95 e4 00
+ 00 00 movsxd rdx, DWORD PTR k$[rbp]
+ 00f0b 4c 8b 85 a8 01
+ 00 00 mov r8, QWORD PTR prior$2[rbp]
+ 00f12 41 0f b6 14 10 movzx edx, BYTE PTR [r8+rdx]
+ 00f17 44 8b 85 24 01
+ 00 00 mov r8d, DWORD PTR output_bytes$[rbp]
+ 00f1e 44 8b 8d e4 00
+ 00 00 mov r9d, DWORD PTR k$[rbp]
+ 00f25 45 2b c8 sub r9d, r8d
+ 00f28 45 8b c1 mov r8d, r9d
+ 00f2b 4d 63 c0 movsxd r8, r8d
+ 00f2e 4c 8b 8d 88 01
+ 00 00 mov r9, QWORD PTR cur$1[rbp]
+ 00f35 47 0f b6 04 01 movzx r8d, BYTE PTR [r9+r8]
+ 00f3a 44 89 85 38 04
+ 00 00 mov DWORD PTR tv563[rbp], r8d
+ 00f41 44 8b c1 mov r8d, ecx
+ 00f44 8b 8d 38 04 00
+ 00 mov ecx, DWORD PTR tv563[rbp]
+ 00f4a e8 00 00 00 00 call stbi__paeth
+ 00f4f 8b 8d 34 04 00
+ 00 mov ecx, DWORD PTR tv546[rbp]
+ 00f55 03 c8 add ecx, eax
+ 00f57 8b c1 mov eax, ecx
+ 00f59 25 ff 00 00 00 and eax, 255 ; 000000ffH
+ 00f5e 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 00f65 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 00f6c 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4879 : raw[k] + stbi__paeth(cur[k - output_bytes],
+; 4880 : prior[k],
+; 4881 : prior[k - output_bytes]));
+; 4882 : }
+
+ 00f6f e9 3a ff ff ff jmp $LN59@stbi__crea
+$LN60@stbi__crea:
+ 00f74 e9 b4 fe ff ff jmp $LN56@stbi__crea
+$LN57@stbi__crea:
+
+; 4883 : break;
+
+ 00f79 e9 0d 02 00 00 jmp $LN30@stbi__crea
+$LN133@stbi__crea:
+
+; 4884 : STBI__CASE(STBI__F_avg_first)
+
+ 00f7e 8b 85 80 04 00
+ 00 mov eax, DWORD PTR x$[rbp]
+ 00f84 ff c8 dec eax
+ 00f86 89 45 44 mov DWORD PTR i$[rbp], eax
+ 00f89 eb 6b jmp SHORT $LN64@stbi__crea
+$LN62@stbi__crea:
+ 00f8b 8b 45 44 mov eax, DWORD PTR i$[rbp]
+ 00f8e ff c8 dec eax
+ 00f90 89 45 44 mov DWORD PTR i$[rbp], eax
+ 00f93 48 63 85 44 01
+ 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp]
+ 00f9a 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 00fa1 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH
+ 00fa5 48 63 85 44 01
+ 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp]
+ 00fac 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 00fb3 48 03 c8 add rcx, rax
+ 00fb6 48 8b c1 mov rax, rcx
+ 00fb9 48 89 85 68 04
+ 00 00 mov QWORD PTR raw$[rbp], rax
+ 00fc0 48 63 85 24 01
+ 00 00 movsxd rax, DWORD PTR output_bytes$[rbp]
+ 00fc7 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 00fce 48 03 c8 add rcx, rax
+ 00fd1 48 8b c1 mov rax, rcx
+ 00fd4 48 89 85 88 01
+ 00 00 mov QWORD PTR cur$1[rbp], rax
+ 00fdb 48 63 85 24 01
+ 00 00 movsxd rax, DWORD PTR output_bytes$[rbp]
+ 00fe2 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR prior$2[rbp]
+ 00fe9 48 03 c8 add rcx, rax
+ 00fec 48 8b c1 mov rax, rcx
+ 00fef 48 89 85 a8 01
+ 00 00 mov QWORD PTR prior$2[rbp], rax
+$LN64@stbi__crea:
+ 00ff6 83 7d 44 01 cmp DWORD PTR i$[rbp], 1
+ 00ffa 72 79 jb SHORT $LN63@stbi__crea
+ 00ffc c7 85 e4 00 00
+ 00 00 00 00 00 mov DWORD PTR k$[rbp], 0
+ 01006 eb 0e jmp SHORT $LN67@stbi__crea
+$LN65@stbi__crea:
+ 01008 8b 85 e4 00 00
+ 00 mov eax, DWORD PTR k$[rbp]
+ 0100e ff c0 inc eax
+ 01010 89 85 e4 00 00
+ 00 mov DWORD PTR k$[rbp], eax
+$LN67@stbi__crea:
+ 01016 8b 85 44 01 00
+ 00 mov eax, DWORD PTR filter_bytes$[rbp]
+ 0101c 39 85 e4 00 00
+ 00 cmp DWORD PTR k$[rbp], eax
+ 01022 7d 4c jge SHORT $LN66@stbi__crea
+
+; 4885 : {
+; 4886 : cur[k] = STBI__BYTECAST(raw[k] +
+
+ 01024 48 63 85 e4 00
+ 00 00 movsxd rax, DWORD PTR k$[rbp]
+ 0102b 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 01032 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
+ 01036 8b 8d 24 01 00
+ 00 mov ecx, DWORD PTR output_bytes$[rbp]
+ 0103c 8b 95 e4 00 00
+ 00 mov edx, DWORD PTR k$[rbp]
+ 01042 2b d1 sub edx, ecx
+ 01044 8b ca mov ecx, edx
+ 01046 48 63 c9 movsxd rcx, ecx
+ 01049 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 01050 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
+ 01054 d1 f9 sar ecx, 1
+ 01056 03 c1 add eax, ecx
+ 01058 25 ff 00 00 00 and eax, 255 ; 000000ffH
+ 0105d 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 01064 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 0106b 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4887 : (cur[k - output_bytes] >> 1));
+; 4888 : }
+
+ 0106e eb 98 jmp SHORT $LN65@stbi__crea
+$LN66@stbi__crea:
+ 01070 e9 16 ff ff ff jmp $LN62@stbi__crea
+$LN63@stbi__crea:
+
+; 4889 : break;
+
+ 01075 e9 11 01 00 00 jmp $LN30@stbi__crea
+$LN134@stbi__crea:
+
+; 4890 : STBI__CASE(STBI__F_paeth_first)
+
+ 0107a 8b 85 80 04 00
+ 00 mov eax, DWORD PTR x$[rbp]
+ 01080 ff c8 dec eax
+ 01082 89 45 44 mov DWORD PTR i$[rbp], eax
+ 01085 eb 6b jmp SHORT $LN70@stbi__crea
+$LN68@stbi__crea:
+ 01087 8b 45 44 mov eax, DWORD PTR i$[rbp]
+ 0108a ff c8 dec eax
+ 0108c 89 45 44 mov DWORD PTR i$[rbp], eax
+ 0108f 48 63 85 44 01
+ 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp]
+ 01096 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 0109d c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH
+ 010a1 48 63 85 44 01
+ 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp]
+ 010a8 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 010af 48 03 c8 add rcx, rax
+ 010b2 48 8b c1 mov rax, rcx
+ 010b5 48 89 85 68 04
+ 00 00 mov QWORD PTR raw$[rbp], rax
+ 010bc 48 63 85 24 01
+ 00 00 movsxd rax, DWORD PTR output_bytes$[rbp]
+ 010c3 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 010ca 48 03 c8 add rcx, rax
+ 010cd 48 8b c1 mov rax, rcx
+ 010d0 48 89 85 88 01
+ 00 00 mov QWORD PTR cur$1[rbp], rax
+ 010d7 48 63 85 24 01
+ 00 00 movsxd rax, DWORD PTR output_bytes$[rbp]
+ 010de 48 8b 8d a8 01
+ 00 00 mov rcx, QWORD PTR prior$2[rbp]
+ 010e5 48 03 c8 add rcx, rax
+ 010e8 48 8b c1 mov rax, rcx
+ 010eb 48 89 85 a8 01
+ 00 00 mov QWORD PTR prior$2[rbp], rax
+$LN70@stbi__crea:
+ 010f2 83 7d 44 01 cmp DWORD PTR i$[rbp], 1
+ 010f6 0f 82 8f 00 00
+ 00 jb $LN69@stbi__crea
+ 010fc c7 85 e4 00 00
+ 00 00 00 00 00 mov DWORD PTR k$[rbp], 0
+ 01106 eb 0e jmp SHORT $LN73@stbi__crea
+$LN71@stbi__crea:
+ 01108 8b 85 e4 00 00
+ 00 mov eax, DWORD PTR k$[rbp]
+ 0110e ff c0 inc eax
+ 01110 89 85 e4 00 00
+ 00 mov DWORD PTR k$[rbp], eax
+$LN73@stbi__crea:
+ 01116 8b 85 44 01 00
+ 00 mov eax, DWORD PTR filter_bytes$[rbp]
+ 0111c 39 85 e4 00 00
+ 00 cmp DWORD PTR k$[rbp], eax
+ 01122 7d 62 jge SHORT $LN72@stbi__crea
+
+; 4891 : {
+; 4892 : cur[k] = STBI__BYTECAST(
+
+ 01124 48 63 85 e4 00
+ 00 00 movsxd rax, DWORD PTR k$[rbp]
+ 0112b 48 8b 8d 68 04
+ 00 00 mov rcx, QWORD PTR raw$[rbp]
+ 01132 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
+ 01136 89 85 34 04 00
+ 00 mov DWORD PTR tv618[rbp], eax
+ 0113c 8b 8d 24 01 00
+ 00 mov ecx, DWORD PTR output_bytes$[rbp]
+ 01142 8b 95 e4 00 00
+ 00 mov edx, DWORD PTR k$[rbp]
+ 01148 2b d1 sub edx, ecx
+ 0114a 8b ca mov ecx, edx
+ 0114c 48 63 c9 movsxd rcx, ecx
+ 0114f 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 01156 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
+ 0115a 45 33 c0 xor r8d, r8d
+ 0115d 33 d2 xor edx, edx
+ 0115f e8 00 00 00 00 call stbi__paeth
+ 01164 8b 8d 34 04 00
+ 00 mov ecx, DWORD PTR tv618[rbp]
+ 0116a 03 c8 add ecx, eax
+ 0116c 8b c1 mov eax, ecx
+ 0116e 25 ff 00 00 00 and eax, 255 ; 000000ffH
+ 01173 48 63 8d e4 00
+ 00 00 movsxd rcx, DWORD PTR k$[rbp]
+ 0117a 48 8b 95 88 01
+ 00 00 mov rdx, QWORD PTR cur$1[rbp]
+ 01181 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4893 : raw[k] + stbi__paeth(cur[k - output_bytes], 0, 0));
+; 4894 : }
+
+ 01184 eb 82 jmp SHORT $LN71@stbi__crea
+$LN72@stbi__crea:
+ 01186 e9 fc fe ff ff jmp $LN68@stbi__crea
+$LN69@stbi__crea:
+$LN30@stbi__crea:
+
+; 4895 : break;
+; 4896 : }
+; 4897 : #undef STBI__CASE
+; 4898 :
+; 4899 : // the loop above sets the high byte of the pixels' alpha, but for
+; 4900 : // 16 bit png files we also need the low byte set. we'll do that here.
+; 4901 : if (depth == 16) {
+
+ 0118b 83 bd 90 04 00
+ 00 10 cmp DWORD PTR depth$[rbp], 16
+ 01192 75 6c jne SHORT $LN135@stbi__crea
+
+; 4902 : cur = a->out +
+
+ 01194 8b 85 84 00 00
+ 00 mov eax, DWORD PTR stride$[rbp]
+ 0119a 0f af 45 64 imul eax, DWORD PTR j$[rbp]
+ 0119e 8b c0 mov eax, eax
+ 011a0 48 8b 8d 60 04
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 011a7 48 03 41 18 add rax, QWORD PTR [rcx+24]
+ 011ab 48 89 85 88 01
+ 00 00 mov QWORD PTR cur$1[rbp], rax
+
+; 4903 : stride * j; // start at the beginning of the row again
+; 4904 : for (i = 0; i < x; ++i, cur += output_bytes) {
+
+ 011b2 c7 45 44 00 00
+ 00 00 mov DWORD PTR i$[rbp], 0
+ 011b9 eb 23 jmp SHORT $LN76@stbi__crea
+$LN74@stbi__crea:
+ 011bb 8b 45 44 mov eax, DWORD PTR i$[rbp]
+ 011be ff c0 inc eax
+ 011c0 89 45 44 mov DWORD PTR i$[rbp], eax
+ 011c3 48 63 85 24 01
+ 00 00 movsxd rax, DWORD PTR output_bytes$[rbp]
+ 011ca 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 011d1 48 03 c8 add rcx, rax
+ 011d4 48 8b c1 mov rax, rcx
+ 011d7 48 89 85 88 01
+ 00 00 mov QWORD PTR cur$1[rbp], rax
+$LN76@stbi__crea:
+ 011de 8b 85 80 04 00
+ 00 mov eax, DWORD PTR x$[rbp]
+ 011e4 39 45 44 cmp DWORD PTR i$[rbp], eax
+ 011e7 73 17 jae SHORT $LN75@stbi__crea
+
+; 4905 : cur[filter_bytes + 1] = 255;
+
+ 011e9 8b 85 44 01 00
+ 00 mov eax, DWORD PTR filter_bytes$[rbp]
+ 011ef ff c0 inc eax
+ 011f1 48 98 cdqe
+ 011f3 48 8b 8d 88 01
+ 00 00 mov rcx, QWORD PTR cur$1[rbp]
+ 011fa c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH
+
+; 4906 : }
+
+ 011fe eb bb jmp SHORT $LN74@stbi__crea
+$LN75@stbi__crea:
+$LN135@stbi__crea:
+$LN119@stbi__crea:
+
+; 4907 : }
+; 4908 : }
+; 4909 : }
+
+ 01200 e9 c1 ef ff ff jmp $LN2@stbi__crea
+$LN3@stbi__crea:
+
+; 4910 :
+; 4911 : // we make a separate pass to expand bits to pixels; for performance,
+; 4912 : // this could run two scanlines behind the above code, so it won't
+; 4913 : // intefere with filtering but will still be in the cache.
+; 4914 : if (depth < 8) {
+
+ 01205 83 bd 90 04 00
+ 00 08 cmp DWORD PTR depth$[rbp], 8
+ 0120c 0f 8d c0 08 00
+ 00 jge $LN136@stbi__crea
+
+; 4915 : for (j = 0; j < y; ++j) {
+
+ 01212 c7 45 64 00 00
+ 00 00 mov DWORD PTR j$[rbp], 0
+ 01219 eb 08 jmp SHORT $LN79@stbi__crea
+$LN77@stbi__crea:
+ 0121b 8b 45 64 mov eax, DWORD PTR j$[rbp]
+ 0121e ff c0 inc eax
+ 01220 89 45 64 mov DWORD PTR j$[rbp], eax
+$LN79@stbi__crea:
+ 01223 8b 85 88 04 00
+ 00 mov eax, DWORD PTR y$[rbp]
+ 01229 39 45 64 cmp DWORD PTR j$[rbp], eax
+ 0122c 0f 83 9b 08 00
+ 00 jae $LN78@stbi__crea
+
+; 4916 : stbi_uc *cur = a->out + stride * j;
+
+ 01232 8b 85 84 00 00
+ 00 mov eax, DWORD PTR stride$[rbp]
+ 01238 0f af 45 64 imul eax, DWORD PTR j$[rbp]
+ 0123c 8b c0 mov eax, eax
+ 0123e 48 8b 8d 60 04
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 01245 48 03 41 18 add rax, QWORD PTR [rcx+24]
+ 01249 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+
+; 4917 : stbi_uc *in = a->out + stride * j + x * out_n - img_width_bytes;
+
+ 01250 8b 85 84 00 00
+ 00 mov eax, DWORD PTR stride$[rbp]
+ 01256 0f af 45 64 imul eax, DWORD PTR j$[rbp]
+ 0125a 8b c0 mov eax, eax
+ 0125c 48 8b 8d 60 04
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 01263 48 8b 49 18 mov rcx, QWORD PTR [rcx+24]
+ 01267 48 03 c8 add rcx, rax
+ 0126a 48 8b c1 mov rax, rcx
+ 0126d 8b 8d 80 04 00
+ 00 mov ecx, DWORD PTR x$[rbp]
+ 01273 0f af 8d 78 04
+ 00 00 imul ecx, DWORD PTR out_n$[rbp]
+ 0127a 8b c9 mov ecx, ecx
+ 0127c 48 03 c1 add rax, rcx
+ 0127f 8b 8d c4 00 00
+ 00 mov ecx, DWORD PTR img_width_bytes$[rbp]
+ 01285 48 2b c1 sub rax, rcx
+ 01288 48 89 85 28 02
+ 00 00 mov QWORD PTR in$6[rbp], rax
+
+; 4918 : // unpack 1/2/4-bit into a 8-bit buffer. allows us to keep the common 8-bit path optimal at minimal cost for 1/2/4-bit
+; 4919 : // png guarante byte alignment, if width is not multiple of 8/4/2 we'll decode dummy trailing data that will be skipped in the later loop
+; 4920 : stbi_uc scale = (color == 0) ? stbi__depth_scale_table[depth] :
+
+ 0128f 83 bd 98 04 00
+ 00 00 cmp DWORD PTR color$[rbp], 0
+ 01296 75 1a jne SHORT $LN163@stbi__crea
+ 01298 48 63 85 90 04
+ 00 00 movsxd rax, DWORD PTR depth$[rbp]
+ 0129f 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:stbi__depth_scale_table
+ 012a6 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
+ 012aa 89 85 34 04 00
+ 00 mov DWORD PTR tv666[rbp], eax
+ 012b0 eb 0a jmp SHORT $LN164@stbi__crea
+$LN163@stbi__crea:
+ 012b2 c7 85 34 04 00
+ 00 01 00 00 00 mov DWORD PTR tv666[rbp], 1
+$LN164@stbi__crea:
+ 012bc 0f b6 85 34 04
+ 00 00 movzx eax, BYTE PTR tv666[rbp]
+ 012c3 88 85 44 02 00
+ 00 mov BYTE PTR scale$7[rbp], al
+
+; 4921 : 1; // scale grayscale values to 0..255 range
+; 4922 :
+; 4923 : // note that the final byte might overshoot and write more data than desired.
+; 4924 : // we can allocate enough data that this never writes out of memory, but it
+; 4925 : // could also overwrite the next scanline. can it overwrite non-empty data
+; 4926 : // on the next scanline? yes, consider 1-pixel-wide scanlines with 1-bit-per-pixel.
+; 4927 : // so we need to explicitly clamp the final ones
+; 4928 :
+; 4929 : if (depth == 4) {
+
+ 012c9 83 bd 90 04 00
+ 00 04 cmp DWORD PTR depth$[rbp], 4
+ 012d0 0f 85 e4 00 00
+ 00 jne $LN138@stbi__crea
+
+; 4930 : for (k = x * img_n; k >= 2; k -= 2, ++in) {
+
+ 012d6 8b 85 80 04 00
+ 00 mov eax, DWORD PTR x$[rbp]
+ 012dc 0f af 85 04 01
+ 00 00 imul eax, DWORD PTR img_n$[rbp]
+ 012e3 89 85 e4 00 00
+ 00 mov DWORD PTR k$[rbp], eax
+ 012e9 eb 20 jmp SHORT $LN82@stbi__crea
+$LN80@stbi__crea:
+ 012eb 8b 85 e4 00 00
+ 00 mov eax, DWORD PTR k$[rbp]
+ 012f1 83 e8 02 sub eax, 2
+ 012f4 89 85 e4 00 00
+ 00 mov DWORD PTR k$[rbp], eax
+ 012fa 48 8b 85 28 02
+ 00 00 mov rax, QWORD PTR in$6[rbp]
+ 01301 48 ff c0 inc rax
+ 01304 48 89 85 28 02
+ 00 00 mov QWORD PTR in$6[rbp], rax
+$LN82@stbi__crea:
+ 0130b 83 bd e4 00 00
+ 00 02 cmp DWORD PTR k$[rbp], 2
+ 01312 7c 67 jl SHORT $LN81@stbi__crea
+
+; 4931 : *cur++ = scale * ((*in >> 4));
+
+ 01314 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 0131b 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 01322 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 01325 c1 f9 04 sar ecx, 4
+ 01328 0f af c1 imul eax, ecx
+ 0132b 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 01332 88 01 mov BYTE PTR [rcx], al
+ 01334 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 0133b 48 ff c0 inc rax
+ 0133e 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+
+; 4932 : *cur++ = scale * ((*in) & 0x0f);
+
+ 01345 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 0134c 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 01353 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 01356 83 e1 0f and ecx, 15
+ 01359 0f af c1 imul eax, ecx
+ 0135c 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 01363 88 01 mov BYTE PTR [rcx], al
+ 01365 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 0136c 48 ff c0 inc rax
+ 0136f 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+
+; 4933 : }
+
+ 01376 e9 70 ff ff ff jmp $LN80@stbi__crea
+$LN81@stbi__crea:
+
+; 4934 : if (k > 0)
+
+ 0137b 83 bd e4 00 00
+ 00 00 cmp DWORD PTR k$[rbp], 0
+ 01382 7e 31 jle SHORT $LN140@stbi__crea
+
+; 4935 : *cur++ = scale * ((*in >> 4));
+
+ 01384 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 0138b 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 01392 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 01395 c1 f9 04 sar ecx, 4
+ 01398 0f af c1 imul eax, ecx
+ 0139b 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 013a2 88 01 mov BYTE PTR [rcx], al
+ 013a4 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 013ab 48 ff c0 inc rax
+ 013ae 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+$LN140@stbi__crea:
+
+; 4936 : } else if (depth == 2) {
+
+ 013b5 e9 6b 05 00 00 jmp $LN139@stbi__crea
+$LN138@stbi__crea:
+ 013ba 83 bd 90 04 00
+ 00 02 cmp DWORD PTR depth$[rbp], 2
+ 013c1 0f 85 ca 01 00
+ 00 jne $LN141@stbi__crea
+
+; 4937 : for (k = x * img_n; k >= 4; k -= 4, ++in) {
+
+ 013c7 8b 85 80 04 00
+ 00 mov eax, DWORD PTR x$[rbp]
+ 013cd 0f af 85 04 01
+ 00 00 imul eax, DWORD PTR img_n$[rbp]
+ 013d4 89 85 e4 00 00
+ 00 mov DWORD PTR k$[rbp], eax
+ 013da eb 20 jmp SHORT $LN85@stbi__crea
+$LN83@stbi__crea:
+ 013dc 8b 85 e4 00 00
+ 00 mov eax, DWORD PTR k$[rbp]
+ 013e2 83 e8 04 sub eax, 4
+ 013e5 89 85 e4 00 00
+ 00 mov DWORD PTR k$[rbp], eax
+ 013eb 48 8b 85 28 02
+ 00 00 mov rax, QWORD PTR in$6[rbp]
+ 013f2 48 ff c0 inc rax
+ 013f5 48 89 85 28 02
+ 00 00 mov QWORD PTR in$6[rbp], rax
+$LN85@stbi__crea:
+ 013fc 83 bd e4 00 00
+ 00 04 cmp DWORD PTR k$[rbp], 4
+ 01403 0f 8c cf 00 00
+ 00 jl $LN84@stbi__crea
+
+; 4938 : *cur++ = scale * ((*in >> 6));
+
+ 01409 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 01410 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 01417 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 0141a c1 f9 06 sar ecx, 6
+ 0141d 0f af c1 imul eax, ecx
+ 01420 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 01427 88 01 mov BYTE PTR [rcx], al
+ 01429 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 01430 48 ff c0 inc rax
+ 01433 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+
+; 4939 : *cur++ = scale * ((*in >> 4) & 0x03);
+
+ 0143a 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 01441 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 01448 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 0144b c1 f9 04 sar ecx, 4
+ 0144e 83 e1 03 and ecx, 3
+ 01451 0f af c1 imul eax, ecx
+ 01454 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 0145b 88 01 mov BYTE PTR [rcx], al
+ 0145d 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 01464 48 ff c0 inc rax
+ 01467 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+
+; 4940 : *cur++ = scale * ((*in >> 2) & 0x03);
+
+ 0146e 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 01475 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 0147c 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 0147f c1 f9 02 sar ecx, 2
+ 01482 83 e1 03 and ecx, 3
+ 01485 0f af c1 imul eax, ecx
+ 01488 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 0148f 88 01 mov BYTE PTR [rcx], al
+ 01491 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 01498 48 ff c0 inc rax
+ 0149b 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+
+; 4941 : *cur++ = scale * ((*in) & 0x03);
+
+ 014a2 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 014a9 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 014b0 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 014b3 83 e1 03 and ecx, 3
+ 014b6 0f af c1 imul eax, ecx
+ 014b9 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 014c0 88 01 mov BYTE PTR [rcx], al
+ 014c2 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 014c9 48 ff c0 inc rax
+ 014cc 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+
+; 4942 : }
+
+ 014d3 e9 04 ff ff ff jmp $LN83@stbi__crea
+$LN84@stbi__crea:
+
+; 4943 : if (k > 0)
+
+ 014d8 83 bd e4 00 00
+ 00 00 cmp DWORD PTR k$[rbp], 0
+ 014df 7e 31 jle SHORT $LN143@stbi__crea
+
+; 4944 : *cur++ = scale * ((*in >> 6));
+
+ 014e1 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 014e8 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 014ef 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 014f2 c1 f9 06 sar ecx, 6
+ 014f5 0f af c1 imul eax, ecx
+ 014f8 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 014ff 88 01 mov BYTE PTR [rcx], al
+ 01501 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 01508 48 ff c0 inc rax
+ 0150b 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+$LN143@stbi__crea:
+
+; 4945 : if (k > 1)
+
+ 01512 83 bd e4 00 00
+ 00 01 cmp DWORD PTR k$[rbp], 1
+ 01519 7e 34 jle SHORT $LN144@stbi__crea
+
+; 4946 : *cur++ = scale * ((*in >> 4) & 0x03);
+
+ 0151b 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 01522 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 01529 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 0152c c1 f9 04 sar ecx, 4
+ 0152f 83 e1 03 and ecx, 3
+ 01532 0f af c1 imul eax, ecx
+ 01535 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 0153c 88 01 mov BYTE PTR [rcx], al
+ 0153e 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 01545 48 ff c0 inc rax
+ 01548 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+$LN144@stbi__crea:
+
+; 4947 : if (k > 2)
+
+ 0154f 83 bd e4 00 00
+ 00 02 cmp DWORD PTR k$[rbp], 2
+ 01556 7e 34 jle SHORT $LN145@stbi__crea
+
+; 4948 : *cur++ = scale * ((*in >> 2) & 0x03);
+
+ 01558 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 0155f 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 01566 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 01569 c1 f9 02 sar ecx, 2
+ 0156c 83 e1 03 and ecx, 3
+ 0156f 0f af c1 imul eax, ecx
+ 01572 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 01579 88 01 mov BYTE PTR [rcx], al
+ 0157b 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 01582 48 ff c0 inc rax
+ 01585 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+$LN145@stbi__crea:
+
+; 4949 : } else if (depth == 1) {
+
+ 0158c e9 94 03 00 00 jmp $LN142@stbi__crea
+$LN141@stbi__crea:
+ 01591 83 bd 90 04 00
+ 00 01 cmp DWORD PTR depth$[rbp], 1
+ 01598 0f 85 87 03 00
+ 00 jne $LN146@stbi__crea
+
+; 4950 : for (k = x * img_n; k >= 8; k -= 8, ++in) {
+
+ 0159e 8b 85 80 04 00
+ 00 mov eax, DWORD PTR x$[rbp]
+ 015a4 0f af 85 04 01
+ 00 00 imul eax, DWORD PTR img_n$[rbp]
+ 015ab 89 85 e4 00 00
+ 00 mov DWORD PTR k$[rbp], eax
+ 015b1 eb 20 jmp SHORT $LN88@stbi__crea
+$LN86@stbi__crea:
+ 015b3 8b 85 e4 00 00
+ 00 mov eax, DWORD PTR k$[rbp]
+ 015b9 83 e8 08 sub eax, 8
+ 015bc 89 85 e4 00 00
+ 00 mov DWORD PTR k$[rbp], eax
+ 015c2 48 8b 85 28 02
+ 00 00 mov rax, QWORD PTR in$6[rbp]
+ 015c9 48 ff c0 inc rax
+ 015cc 48 89 85 28 02
+ 00 00 mov QWORD PTR in$6[rbp], rax
+$LN88@stbi__crea:
+ 015d3 83 bd e4 00 00
+ 00 08 cmp DWORD PTR k$[rbp], 8
+ 015da 0f 8c 9e 01 00
+ 00 jl $LN87@stbi__crea
+
+; 4951 : *cur++ = scale * ((*in >> 7));
+
+ 015e0 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 015e7 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 015ee 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 015f1 c1 f9 07 sar ecx, 7
+ 015f4 0f af c1 imul eax, ecx
+ 015f7 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 015fe 88 01 mov BYTE PTR [rcx], al
+ 01600 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 01607 48 ff c0 inc rax
+ 0160a 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+
+; 4952 : *cur++ = scale * ((*in >> 6) & 0x01);
+
+ 01611 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 01618 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 0161f 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 01622 c1 f9 06 sar ecx, 6
+ 01625 83 e1 01 and ecx, 1
+ 01628 0f af c1 imul eax, ecx
+ 0162b 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 01632 88 01 mov BYTE PTR [rcx], al
+ 01634 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 0163b 48 ff c0 inc rax
+ 0163e 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+
+; 4953 : *cur++ = scale * ((*in >> 5) & 0x01);
+
+ 01645 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 0164c 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 01653 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 01656 c1 f9 05 sar ecx, 5
+ 01659 83 e1 01 and ecx, 1
+ 0165c 0f af c1 imul eax, ecx
+ 0165f 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 01666 88 01 mov BYTE PTR [rcx], al
+ 01668 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 0166f 48 ff c0 inc rax
+ 01672 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+
+; 4954 : *cur++ = scale * ((*in >> 4) & 0x01);
+
+ 01679 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 01680 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 01687 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 0168a c1 f9 04 sar ecx, 4
+ 0168d 83 e1 01 and ecx, 1
+ 01690 0f af c1 imul eax, ecx
+ 01693 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 0169a 88 01 mov BYTE PTR [rcx], al
+ 0169c 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 016a3 48 ff c0 inc rax
+ 016a6 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+
+; 4955 : *cur++ = scale * ((*in >> 3) & 0x01);
+
+ 016ad 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 016b4 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 016bb 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 016be c1 f9 03 sar ecx, 3
+ 016c1 83 e1 01 and ecx, 1
+ 016c4 0f af c1 imul eax, ecx
+ 016c7 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 016ce 88 01 mov BYTE PTR [rcx], al
+ 016d0 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 016d7 48 ff c0 inc rax
+ 016da 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+
+; 4956 : *cur++ = scale * ((*in >> 2) & 0x01);
+
+ 016e1 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 016e8 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 016ef 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 016f2 c1 f9 02 sar ecx, 2
+ 016f5 83 e1 01 and ecx, 1
+ 016f8 0f af c1 imul eax, ecx
+ 016fb 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 01702 88 01 mov BYTE PTR [rcx], al
+ 01704 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 0170b 48 ff c0 inc rax
+ 0170e 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+
+; 4957 : *cur++ = scale * ((*in >> 1) & 0x01);
+
+ 01715 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 0171c 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 01723 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 01726 d1 f9 sar ecx, 1
+ 01728 83 e1 01 and ecx, 1
+ 0172b 0f af c1 imul eax, ecx
+ 0172e 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 01735 88 01 mov BYTE PTR [rcx], al
+ 01737 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 0173e 48 ff c0 inc rax
+ 01741 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+
+; 4958 : *cur++ = scale * ((*in) & 0x01);
+
+ 01748 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 0174f 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 01756 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 01759 83 e1 01 and ecx, 1
+ 0175c 0f af c1 imul eax, ecx
+ 0175f 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 01766 88 01 mov BYTE PTR [rcx], al
+ 01768 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 0176f 48 ff c0 inc rax
+ 01772 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+
+; 4959 : }
+
+ 01779 e9 35 fe ff ff jmp $LN86@stbi__crea
+$LN87@stbi__crea:
+
+; 4960 : if (k > 0)
+
+ 0177e 83 bd e4 00 00
+ 00 00 cmp DWORD PTR k$[rbp], 0
+ 01785 7e 31 jle SHORT $LN147@stbi__crea
+
+; 4961 : *cur++ = scale * ((*in >> 7));
+
+ 01787 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 0178e 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 01795 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 01798 c1 f9 07 sar ecx, 7
+ 0179b 0f af c1 imul eax, ecx
+ 0179e 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 017a5 88 01 mov BYTE PTR [rcx], al
+ 017a7 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 017ae 48 ff c0 inc rax
+ 017b1 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+$LN147@stbi__crea:
+
+; 4962 : if (k > 1)
+
+ 017b8 83 bd e4 00 00
+ 00 01 cmp DWORD PTR k$[rbp], 1
+ 017bf 7e 34 jle SHORT $LN148@stbi__crea
+
+; 4963 : *cur++ = scale * ((*in >> 6) & 0x01);
+
+ 017c1 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 017c8 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 017cf 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 017d2 c1 f9 06 sar ecx, 6
+ 017d5 83 e1 01 and ecx, 1
+ 017d8 0f af c1 imul eax, ecx
+ 017db 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 017e2 88 01 mov BYTE PTR [rcx], al
+ 017e4 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 017eb 48 ff c0 inc rax
+ 017ee 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+$LN148@stbi__crea:
+
+; 4964 : if (k > 2)
+
+ 017f5 83 bd e4 00 00
+ 00 02 cmp DWORD PTR k$[rbp], 2
+ 017fc 7e 34 jle SHORT $LN149@stbi__crea
+
+; 4965 : *cur++ = scale * ((*in >> 5) & 0x01);
+
+ 017fe 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 01805 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 0180c 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 0180f c1 f9 05 sar ecx, 5
+ 01812 83 e1 01 and ecx, 1
+ 01815 0f af c1 imul eax, ecx
+ 01818 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 0181f 88 01 mov BYTE PTR [rcx], al
+ 01821 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 01828 48 ff c0 inc rax
+ 0182b 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+$LN149@stbi__crea:
+
+; 4966 : if (k > 3)
+
+ 01832 83 bd e4 00 00
+ 00 03 cmp DWORD PTR k$[rbp], 3
+ 01839 7e 34 jle SHORT $LN150@stbi__crea
+
+; 4967 : *cur++ = scale * ((*in >> 4) & 0x01);
+
+ 0183b 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 01842 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 01849 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 0184c c1 f9 04 sar ecx, 4
+ 0184f 83 e1 01 and ecx, 1
+ 01852 0f af c1 imul eax, ecx
+ 01855 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 0185c 88 01 mov BYTE PTR [rcx], al
+ 0185e 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 01865 48 ff c0 inc rax
+ 01868 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+$LN150@stbi__crea:
+
+; 4968 : if (k > 4)
+
+ 0186f 83 bd e4 00 00
+ 00 04 cmp DWORD PTR k$[rbp], 4
+ 01876 7e 34 jle SHORT $LN151@stbi__crea
+
+; 4969 : *cur++ = scale * ((*in >> 3) & 0x01);
+
+ 01878 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 0187f 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 01886 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 01889 c1 f9 03 sar ecx, 3
+ 0188c 83 e1 01 and ecx, 1
+ 0188f 0f af c1 imul eax, ecx
+ 01892 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 01899 88 01 mov BYTE PTR [rcx], al
+ 0189b 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 018a2 48 ff c0 inc rax
+ 018a5 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+$LN151@stbi__crea:
+
+; 4970 : if (k > 5)
+
+ 018ac 83 bd e4 00 00
+ 00 05 cmp DWORD PTR k$[rbp], 5
+ 018b3 7e 34 jle SHORT $LN152@stbi__crea
+
+; 4971 : *cur++ = scale * ((*in >> 2) & 0x01);
+
+ 018b5 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 018bc 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 018c3 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 018c6 c1 f9 02 sar ecx, 2
+ 018c9 83 e1 01 and ecx, 1
+ 018cc 0f af c1 imul eax, ecx
+ 018cf 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 018d6 88 01 mov BYTE PTR [rcx], al
+ 018d8 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 018df 48 ff c0 inc rax
+ 018e2 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+$LN152@stbi__crea:
+
+; 4972 : if (k > 6)
+
+ 018e9 83 bd e4 00 00
+ 00 06 cmp DWORD PTR k$[rbp], 6
+ 018f0 7e 33 jle SHORT $LN153@stbi__crea
+
+; 4973 : *cur++ = scale * ((*in >> 1) & 0x01);
+
+ 018f2 0f b6 85 44 02
+ 00 00 movzx eax, BYTE PTR scale$7[rbp]
+ 018f9 48 8b 8d 28 02
+ 00 00 mov rcx, QWORD PTR in$6[rbp]
+ 01900 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 01903 d1 f9 sar ecx, 1
+ 01905 83 e1 01 and ecx, 1
+ 01908 0f af c1 imul eax, ecx
+ 0190b 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 01912 88 01 mov BYTE PTR [rcx], al
+ 01914 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR cur$5[rbp]
+ 0191b 48 ff c0 inc rax
+ 0191e 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+$LN153@stbi__crea:
+$LN146@stbi__crea:
+$LN142@stbi__crea:
+$LN139@stbi__crea:
+
+; 4974 : }
+; 4975 : if (img_n != out_n) {
+
+ 01925 8b 85 78 04 00
+ 00 mov eax, DWORD PTR out_n$[rbp]
+ 0192b 39 85 04 01 00
+ 00 cmp DWORD PTR img_n$[rbp], eax
+ 01931 0f 84 91 01 00
+ 00 je $LN154@stbi__crea
+
+; 4976 : int q;
+; 4977 : // insert alpha = 255
+; 4978 : cur = a->out + stride * j;
+
+ 01937 8b 85 84 00 00
+ 00 mov eax, DWORD PTR stride$[rbp]
+ 0193d 0f af 45 64 imul eax, DWORD PTR j$[rbp]
+ 01941 8b c0 mov eax, eax
+ 01943 48 8b 8d 60 04
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 0194a 48 03 41 18 add rax, QWORD PTR [rcx+24]
+ 0194e 48 89 85 08 02
+ 00 00 mov QWORD PTR cur$5[rbp], rax
+
+; 4979 : if (img_n == 1) {
+
+ 01955 83 bd 04 01 00
+ 00 01 cmp DWORD PTR img_n$[rbp], 1
+ 0195c 75 6d jne SHORT $LN155@stbi__crea
+
+; 4980 : for (q = x - 1; q >= 0; --q) {
+
+ 0195e 8b 85 80 04 00
+ 00 mov eax, DWORD PTR x$[rbp]
+ 01964 ff c8 dec eax
+ 01966 89 85 64 02 00
+ 00 mov DWORD PTR q$8[rbp], eax
+ 0196c eb 0e jmp SHORT $LN91@stbi__crea
+$LN89@stbi__crea:
+ 0196e 8b 85 64 02 00
+ 00 mov eax, DWORD PTR q$8[rbp]
+ 01974 ff c8 dec eax
+ 01976 89 85 64 02 00
+ 00 mov DWORD PTR q$8[rbp], eax
+$LN91@stbi__crea:
+ 0197c 83 bd 64 02 00
+ 00 00 cmp DWORD PTR q$8[rbp], 0
+ 01983 7c 41 jl SHORT $LN90@stbi__crea
+
+; 4981 : cur[q * 2 + 1] = 255;
+
+ 01985 8b 85 64 02 00
+ 00 mov eax, DWORD PTR q$8[rbp]
+ 0198b 8d 44 00 01 lea eax, DWORD PTR [rax+rax+1]
+ 0198f 48 98 cdqe
+ 01991 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 01998 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH
+
+; 4982 : cur[q * 2 + 0] = cur[q];
+
+ 0199c 48 63 85 64 02
+ 00 00 movsxd rax, DWORD PTR q$8[rbp]
+ 019a3 8b 8d 64 02 00
+ 00 mov ecx, DWORD PTR q$8[rbp]
+ 019a9 03 c9 add ecx, ecx
+ 019ab 48 63 c9 movsxd rcx, ecx
+ 019ae 48 8b 95 08 02
+ 00 00 mov rdx, QWORD PTR cur$5[rbp]
+ 019b5 4c 8b 85 08 02
+ 00 00 mov r8, QWORD PTR cur$5[rbp]
+ 019bc 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax]
+ 019c1 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4983 : }
+
+ 019c4 eb a8 jmp SHORT $LN89@stbi__crea
+$LN90@stbi__crea:
+
+; 4984 : } else {
+
+ 019c6 e9 fd 00 00 00 jmp $LN156@stbi__crea
+$LN155@stbi__crea:
+
+; 4985 : STBI_ASSERT(img_n == 3);
+
+ 019cb 83 bd 04 01 00
+ 00 03 cmp DWORD PTR img_n$[rbp], 3
+ 019d2 74 1c je SHORT $LN165@stbi__crea
+ 019d4 41 b8 79 13 00
+ 00 mov r8d, 4985 ; 00001379H
+ 019da 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:??_C@_1KG@HOANCCHA@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@
+ 019e1 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@
+ 019e8 ff 15 00 00 00
+ 00 call QWORD PTR __imp__wassert
+ 019ee 33 c0 xor eax, eax
+$LN165@stbi__crea:
+
+; 4986 : for (q = x - 1; q >= 0; --q) {
+
+ 019f0 8b 85 80 04 00
+ 00 mov eax, DWORD PTR x$[rbp]
+ 019f6 ff c8 dec eax
+ 019f8 89 85 64 02 00
+ 00 mov DWORD PTR q$8[rbp], eax
+ 019fe eb 0e jmp SHORT $LN94@stbi__crea
+$LN92@stbi__crea:
+ 01a00 8b 85 64 02 00
+ 00 mov eax, DWORD PTR q$8[rbp]
+ 01a06 ff c8 dec eax
+ 01a08 89 85 64 02 00
+ 00 mov DWORD PTR q$8[rbp], eax
+$LN94@stbi__crea:
+ 01a0e 83 bd 64 02 00
+ 00 00 cmp DWORD PTR q$8[rbp], 0
+ 01a15 0f 8c ad 00 00
+ 00 jl $LN93@stbi__crea
+
+; 4987 : cur[q * 4 + 3] = 255;
+
+ 01a1b 8b 85 64 02 00
+ 00 mov eax, DWORD PTR q$8[rbp]
+ 01a21 8d 04 85 03 00
+ 00 00 lea eax, DWORD PTR [rax*4+3]
+ 01a28 48 98 cdqe
+ 01a2a 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR cur$5[rbp]
+ 01a31 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH
+
+; 4988 : cur[q * 4 + 2] = cur[q * 3 + 2];
+
+ 01a35 6b 85 64 02 00
+ 00 03 imul eax, DWORD PTR q$8[rbp], 3
+ 01a3c 83 c0 02 add eax, 2
+ 01a3f 48 98 cdqe
+ 01a41 8b 8d 64 02 00
+ 00 mov ecx, DWORD PTR q$8[rbp]
+ 01a47 8d 0c 8d 02 00
+ 00 00 lea ecx, DWORD PTR [rcx*4+2]
+ 01a4e 48 63 c9 movsxd rcx, ecx
+ 01a51 48 8b 95 08 02
+ 00 00 mov rdx, QWORD PTR cur$5[rbp]
+ 01a58 4c 8b 85 08 02
+ 00 00 mov r8, QWORD PTR cur$5[rbp]
+ 01a5f 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax]
+ 01a64 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4989 : cur[q * 4 + 1] = cur[q * 3 + 1];
+
+ 01a67 6b 85 64 02 00
+ 00 03 imul eax, DWORD PTR q$8[rbp], 3
+ 01a6e ff c0 inc eax
+ 01a70 48 98 cdqe
+ 01a72 8b 8d 64 02 00
+ 00 mov ecx, DWORD PTR q$8[rbp]
+ 01a78 8d 0c 8d 01 00
+ 00 00 lea ecx, DWORD PTR [rcx*4+1]
+ 01a7f 48 63 c9 movsxd rcx, ecx
+ 01a82 48 8b 95 08 02
+ 00 00 mov rdx, QWORD PTR cur$5[rbp]
+ 01a89 4c 8b 85 08 02
+ 00 00 mov r8, QWORD PTR cur$5[rbp]
+ 01a90 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax]
+ 01a95 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4990 : cur[q * 4 + 0] = cur[q * 3 + 0];
+
+ 01a98 6b 85 64 02 00
+ 00 03 imul eax, DWORD PTR q$8[rbp], 3
+ 01a9f 48 98 cdqe
+ 01aa1 8b 8d 64 02 00
+ 00 mov ecx, DWORD PTR q$8[rbp]
+ 01aa7 c1 e1 02 shl ecx, 2
+ 01aaa 48 63 c9 movsxd rcx, ecx
+ 01aad 48 8b 95 08 02
+ 00 00 mov rdx, QWORD PTR cur$5[rbp]
+ 01ab4 4c 8b 85 08 02
+ 00 00 mov r8, QWORD PTR cur$5[rbp]
+ 01abb 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax]
+ 01ac0 88 04 0a mov BYTE PTR [rdx+rcx], al
+
+; 4991 : }
+
+ 01ac3 e9 38 ff ff ff jmp $LN92@stbi__crea
+$LN93@stbi__crea:
+$LN156@stbi__crea:
+$LN154@stbi__crea:
+
+; 4992 : }
+; 4993 : }
+; 4994 : }
+
+ 01ac8 e9 4e f7 ff ff jmp $LN77@stbi__crea
+$LN78@stbi__crea:
+
+; 4995 : } else if (depth == 16) {
+
+ 01acd e9 b4 00 00 00 jmp $LN137@stbi__crea
+$LN136@stbi__crea:
+ 01ad2 83 bd 90 04 00
+ 00 10 cmp DWORD PTR depth$[rbp], 16
+ 01ad9 0f 85 a7 00 00
+ 00 jne $LN157@stbi__crea
+
+; 4996 : // force the image data from big-endian to platform-native.
+; 4997 : // this is done in a separate pass due to the decoding relying
+; 4998 : // on the data being untouched, but could probably be done
+; 4999 : // per-line during decode if care is taken.
+; 5000 : stbi_uc *cur = a->out;
+
+ 01adf 48 8b 85 60 04
+ 00 00 mov rax, QWORD PTR a$[rbp]
+ 01ae6 48 8b 40 18 mov rax, QWORD PTR [rax+24]
+ 01aea 48 89 85 88 02
+ 00 00 mov QWORD PTR cur$9[rbp], rax
+
+; 5001 : stbi__uint16 *cur16 = (stbi__uint16 *)cur;
+
+ 01af1 48 8b 85 88 02
+ 00 00 mov rax, QWORD PTR cur$9[rbp]
+ 01af8 48 89 85 a8 02
+ 00 00 mov QWORD PTR cur16$10[rbp], rax
+
+; 5002 :
+; 5003 : for (i = 0; i < x * y * out_n; ++i, cur16++, cur += 2) {
+
+ 01aff c7 45 44 00 00
+ 00 00 mov DWORD PTR i$[rbp], 0
+ 01b06 eb 2c jmp SHORT $LN97@stbi__crea
+$LN95@stbi__crea:
+ 01b08 8b 45 44 mov eax, DWORD PTR i$[rbp]
+ 01b0b ff c0 inc eax
+ 01b0d 89 45 44 mov DWORD PTR i$[rbp], eax
+ 01b10 48 8b 85 a8 02
+ 00 00 mov rax, QWORD PTR cur16$10[rbp]
+ 01b17 48 83 c0 02 add rax, 2
+ 01b1b 48 89 85 a8 02
+ 00 00 mov QWORD PTR cur16$10[rbp], rax
+ 01b22 48 8b 85 88 02
+ 00 00 mov rax, QWORD PTR cur$9[rbp]
+ 01b29 48 83 c0 02 add rax, 2
+ 01b2d 48 89 85 88 02
+ 00 00 mov QWORD PTR cur$9[rbp], rax
+$LN97@stbi__crea:
+ 01b34 8b 85 80 04 00
+ 00 mov eax, DWORD PTR x$[rbp]
+ 01b3a 0f af 85 88 04
+ 00 00 imul eax, DWORD PTR y$[rbp]
+ 01b41 0f af 85 78 04
+ 00 00 imul eax, DWORD PTR out_n$[rbp]
+ 01b48 39 45 44 cmp DWORD PTR i$[rbp], eax
+ 01b4b 73 39 jae SHORT $LN96@stbi__crea
+
+; 5004 : *cur16 = (cur[0] << 8) | cur[1];
+
+ 01b4d b8 01 00 00 00 mov eax, 1
+ 01b52 48 6b c0 00 imul rax, rax, 0
+ 01b56 48 8b 8d 88 02
+ 00 00 mov rcx, QWORD PTR cur$9[rbp]
+ 01b5d 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
+ 01b61 c1 e0 08 shl eax, 8
+ 01b64 b9 01 00 00 00 mov ecx, 1
+ 01b69 48 6b c9 01 imul rcx, rcx, 1
+ 01b6d 48 8b 95 88 02
+ 00 00 mov rdx, QWORD PTR cur$9[rbp]
+ 01b74 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
+ 01b78 0b c1 or eax, ecx
+ 01b7a 48 8b 8d a8 02
+ 00 00 mov rcx, QWORD PTR cur16$10[rbp]
+ 01b81 66 89 01 mov WORD PTR [rcx], ax
+
+; 5005 : }
+
+ 01b84 eb 82 jmp SHORT $LN95@stbi__crea
+$LN96@stbi__crea:
+$LN157@stbi__crea:
+$LN137@stbi__crea:
+
+; 5006 : }
+; 5007 :
+; 5008 : return 1;
+
+ 01b86 b8 01 00 00 00 mov eax, 1
+$LN1@stbi__crea:
+
+; 5009 : }
+
+ 01b8b 48 8d a5 48 04
+ 00 00 lea rsp, QWORD PTR [rbp+1096]
+ 01b92 5f pop rdi
+ 01b93 5d pop rbp
+ 01b94 c3 ret 0
+ 01b95 0f 1f 00 npad 3
+$LN168@stbi__crea:
+ 01b98 00 00 00 00 DD $LN105@stbi__crea
+ 01b9c 00 00 00 00 DD $LN106@stbi__crea
+ 01ba0 00 00 00 00 DD $LN107@stbi__crea
+ 01ba4 00 00 00 00 DD $LN108@stbi__crea
+ 01ba8 00 00 00 00 DD $LN109@stbi__crea
+ 01bac 00 00 00 00 DD $LN110@stbi__crea
+ 01bb0 00 00 00 00 DD $LN111@stbi__crea
+$LN167@stbi__crea:
+ 01bb4 00 00 00 00 DD $LN121@stbi__crea
+ 01bb8 00 00 00 00 DD $LN122@stbi__crea
+ 01bbc 00 00 00 00 DD $LN123@stbi__crea
+ 01bc0 00 00 00 00 DD $LN124@stbi__crea
+ 01bc4 00 00 00 00 DD $LN125@stbi__crea
+ 01bc8 00 00 00 00 DD $LN126@stbi__crea
+ 01bcc 00 00 00 00 DD $LN127@stbi__crea
+$LN166@stbi__crea:
+ 01bd0 00 00 00 00 DD $LN128@stbi__crea
+ 01bd4 00 00 00 00 DD $LN129@stbi__crea
+ 01bd8 00 00 00 00 DD $LN130@stbi__crea
+ 01bdc 00 00 00 00 DD $LN131@stbi__crea
+ 01be0 00 00 00 00 DD $LN132@stbi__crea
+ 01be4 00 00 00 00 DD $LN133@stbi__crea
+ 01be8 00 00 00 00 DD $LN134@stbi__crea
+stbi__create_png_image_raw ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__paeth
+_TEXT SEGMENT
+p$ = 4
+pa$ = 36
+pb$ = 68
+pc$ = 100
+a$ = 352
+b$ = 360
+c$ = 368
+stbi__paeth PROC ; COMDAT
+
+; 4681 : {
+
+ 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 68 01
+ 00 00 sub rsp, 360 ; 00000168H
+ 00016 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
+ 0001b 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:__079B8C84_stb_image@c
+ 00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00027 90 npad 1
+
+; 4682 : int p = a + b - c;
+
+ 00028 8b 85 68 01 00
+ 00 mov eax, DWORD PTR b$[rbp]
+ 0002e 8b 8d 60 01 00
+ 00 mov ecx, DWORD PTR a$[rbp]
+ 00034 03 c8 add ecx, eax
+ 00036 8b c1 mov eax, ecx
+ 00038 2b 85 70 01 00
+ 00 sub eax, DWORD PTR c$[rbp]
+ 0003e 89 45 04 mov DWORD PTR p$[rbp], eax
+
+; 4683 : int pa = abs(p - a);
+
+ 00041 8b 85 60 01 00
+ 00 mov eax, DWORD PTR a$[rbp]
+ 00047 8b 4d 04 mov ecx, DWORD PTR p$[rbp]
+ 0004a 2b c8 sub ecx, eax
+ 0004c 8b c1 mov eax, ecx
+ 0004e 8b c8 mov ecx, eax
+ 00050 e8 00 00 00 00 call abs
+ 00055 89 45 24 mov DWORD PTR pa$[rbp], eax
+
+; 4684 : int pb = abs(p - b);
+
+ 00058 8b 85 68 01 00
+ 00 mov eax, DWORD PTR b$[rbp]
+ 0005e 8b 4d 04 mov ecx, DWORD PTR p$[rbp]
+ 00061 2b c8 sub ecx, eax
+ 00063 8b c1 mov eax, ecx
+ 00065 8b c8 mov ecx, eax
+ 00067 e8 00 00 00 00 call abs
+ 0006c 89 45 44 mov DWORD PTR pb$[rbp], eax
+
+; 4685 : int pc = abs(p - c);
+
+ 0006f 8b 85 70 01 00
+ 00 mov eax, DWORD PTR c$[rbp]
+ 00075 8b 4d 04 mov ecx, DWORD PTR p$[rbp]
+ 00078 2b c8 sub ecx, eax
+ 0007a 8b c1 mov eax, ecx
+ 0007c 8b c8 mov ecx, eax
+ 0007e e8 00 00 00 00 call abs
+ 00083 89 45 64 mov DWORD PTR pc$[rbp], eax
+
+; 4686 : if (pa <= pb && pa <= pc)
+
+ 00086 8b 45 44 mov eax, DWORD PTR pb$[rbp]
+ 00089 39 45 24 cmp DWORD PTR pa$[rbp], eax
+ 0008c 7f 10 jg SHORT $LN2@stbi__paet
+ 0008e 8b 45 64 mov eax, DWORD PTR pc$[rbp]
+ 00091 39 45 24 cmp DWORD PTR pa$[rbp], eax
+ 00094 7f 08 jg SHORT $LN2@stbi__paet
+
+; 4687 : return a;
+
+ 00096 8b 85 60 01 00
+ 00 mov eax, DWORD PTR a$[rbp]
+ 0009c eb 16 jmp SHORT $LN1@stbi__paet
+$LN2@stbi__paet:
+
+; 4688 : if (pb <= pc)
+
+ 0009e 8b 45 64 mov eax, DWORD PTR pc$[rbp]
+ 000a1 39 45 44 cmp DWORD PTR pb$[rbp], eax
+ 000a4 7f 08 jg SHORT $LN3@stbi__paet
+
+; 4689 : return b;
+
+ 000a6 8b 85 68 01 00
+ 00 mov eax, DWORD PTR b$[rbp]
+ 000ac eb 06 jmp SHORT $LN1@stbi__paet
+$LN3@stbi__paet:
+
+; 4690 : return c;
+
+ 000ae 8b 85 70 01 00
+ 00 mov eax, DWORD PTR c$[rbp]
+$LN1@stbi__paet:
+
+; 4691 : }
+
+ 000b4 48 8d a5 48 01
+ 00 00 lea rsp, QWORD PTR [rbp+328]
+ 000bb 5f pop rdi
+ 000bc 5d pop rbp
+ 000bd c3 ret 0
+stbi__paeth ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__check_png_header
+_TEXT SEGMENT
+i$ = 4
+s$ = 256
+stbi__check_png_header PROC ; COMDAT
+
+; 4651 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 4652 : static const stbi_uc png_sig[8] = { 137, 80, 78, 71, 13, 10, 26, 10 };
+; 4653 : int i;
+; 4654 : 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
+
+; 4655 : 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
+
+; 4656 : 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:
+
+; 4657 : return 1;
+
+ 00069 b8 01 00 00 00 mov eax, 1
+$LN1@stbi__chec:
+
+; 4658 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__get_chunk_header
+_TEXT SEGMENT
+c$ = 8
+s$ = 256
+stbi__get_chunk_header PROC ; COMDAT
+
+; 4643 : {
+
+ 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:__079B8C84_stb_image@c
+ 00033 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00038 90 npad 1
+
+; 4644 : stbi__pngchunk c;
+; 4645 : 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
+
+; 4646 : 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
+
+; 4647 : return c;
+
+ 00057 48 8b 45 08 mov rax, QWORD PTR c$[rbp]
+
+; 4648 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__do_zlib
+_TEXT SEGMENT
+a$ = 224
+obuf$ = 232
+olen$ = 240
+exp$ = 248
+parse_header$ = 256
+stbi__do_zlib PROC ; COMDAT
+
+; 4532 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 4533 : 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 20 mov QWORD PTR [rax+32], rcx
+
+; 4534 : 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 18 mov QWORD PTR [rax+24], rcx
+
+; 4535 : 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 28 mov QWORD PTR [rcx+40], rax
+
+; 4536 : 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 30 mov DWORD PTR [rax+48], ecx
+
+; 4537 :
+; 4538 : 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
+
+; 4539 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__parse_zlib
+_TEXT SEGMENT
+final$ = 4
+type$ = 36
+a$ = 288
+parse_header$ = 296
+stbi__parse_zlib PROC ; COMDAT
+
+; 4496 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00023 90 npad 1
+
+; 4497 : int final, type;
+; 4498 : 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
+
+; 4499 : 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
+
+; 4500 : return 0;
+
+ 0003d 33 c0 xor eax, eax
+ 0003f e9 09 01 00 00 jmp $LN1@stbi__pars
+$LN6@stbi__pars:
+$LN5@stbi__pars:
+
+; 4501 : 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
+
+; 4502 : a->code_buffer = 0;
+
+ 00052 48 8b 85 20 01
+ 00 00 mov rax, QWORD PTR a$[rbp]
+ 00059 c7 40 14 00 00
+ 00 00 mov DWORD PTR [rax+20], 0
+$LN4@stbi__pars:
+
+; 4503 : do {
+; 4504 : final = stbi__zreceive(a, 1);
+
+ 00060 ba 01 00 00 00 mov edx, 1
+ 00065 48 8b 8d 20 01
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 0006c e8 00 00 00 00 call stbi__zreceive
+ 00071 89 45 04 mov DWORD PTR final$[rbp], eax
+
+; 4505 : type = stbi__zreceive(a, 2);
+
+ 00074 ba 02 00 00 00 mov edx, 2
+ 00079 48 8b 8d 20 01
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 00080 e8 00 00 00 00 call stbi__zreceive
+ 00085 89 45 24 mov DWORD PTR type$[rbp], eax
+
+; 4506 : if (type == 0) {
+
+ 00088 83 7d 24 00 cmp DWORD PTR type$[rbp], 0
+ 0008c 75 1c jne SHORT $LN7@stbi__pars
+
+; 4507 : if (!stbi__parse_uncompressed_block(a))
+
+ 0008e 48 8b 8d 20 01
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 00095 e8 00 00 00 00 call stbi__parse_uncompressed_block
+ 0009a 85 c0 test eax, eax
+ 0009c 75 07 jne SHORT $LN9@stbi__pars
+
+; 4508 : return 0;
+
+ 0009e 33 c0 xor eax, eax
+ 000a0 e9 a8 00 00 00 jmp $LN1@stbi__pars
+$LN9@stbi__pars:
+
+; 4509 : } else if (type == 3) {
+
+ 000a5 e9 94 00 00 00 jmp $LN8@stbi__pars
+$LN7@stbi__pars:
+ 000aa 83 7d 24 03 cmp DWORD PTR type$[rbp], 3
+ 000ae 75 0c jne SHORT $LN10@stbi__pars
+
+; 4510 : return 0;
+
+ 000b0 33 c0 xor eax, eax
+ 000b2 e9 96 00 00 00 jmp $LN1@stbi__pars
+
+; 4511 : } else {
+
+ 000b7 e9 82 00 00 00 jmp $LN11@stbi__pars
+$LN10@stbi__pars:
+
+; 4512 : if (type == 1) {
+
+ 000bc 83 7d 24 01 cmp DWORD PTR type$[rbp], 1
+ 000c0 75 54 jne SHORT $LN12@stbi__pars
+
+; 4513 : // use fixed code lengths
+; 4514 : if (!stbi__zbuild_huffman(&a->z_length, stbi__zdefault_length,
+
+ 000c2 48 8b 85 20 01
+ 00 00 mov rax, QWORD PTR a$[rbp]
+ 000c9 48 83 c0 34 add rax, 52 ; 00000034H
+ 000cd 41 b8 20 01 00
+ 00 mov r8d, 288 ; 00000120H
+ 000d3 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:stbi__zdefault_length
+ 000da 48 8b c8 mov rcx, rax
+ 000dd e8 00 00 00 00 call stbi__zbuild_huffman
+ 000e2 85 c0 test eax, eax
+ 000e4 75 04 jne SHORT $LN14@stbi__pars
+
+; 4515 : STBI__ZNSYMS))
+; 4516 : return 0;
+
+ 000e6 33 c0 xor eax, eax
+ 000e8 eb 63 jmp SHORT $LN1@stbi__pars
+$LN14@stbi__pars:
+
+; 4517 : if (!stbi__zbuild_huffman(&a->z_distance, stbi__zdefault_distance,
+
+ 000ea 48 8b 85 20 01
+ 00 00 mov rax, QWORD PTR a$[rbp]
+ 000f1 48 05 18 08 00
+ 00 add rax, 2072 ; 00000818H
+ 000f7 41 b8 20 00 00
+ 00 mov r8d, 32 ; 00000020H
+ 000fd 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:stbi__zdefault_distance
+ 00104 48 8b c8 mov rcx, rax
+ 00107 e8 00 00 00 00 call stbi__zbuild_huffman
+ 0010c 85 c0 test eax, eax
+ 0010e 75 04 jne SHORT $LN15@stbi__pars
+
+; 4518 : 32))
+; 4519 : return 0;
+
+ 00110 33 c0 xor eax, eax
+ 00112 eb 39 jmp SHORT $LN1@stbi__pars
+$LN15@stbi__pars:
+
+; 4520 : } else {
+
+ 00114 eb 14 jmp SHORT $LN13@stbi__pars
+$LN12@stbi__pars:
+
+; 4521 : if (!stbi__compute_huffman_codes(a))
+
+ 00116 48 8b 8d 20 01
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 0011d e8 00 00 00 00 call stbi__compute_huffman_codes
+ 00122 85 c0 test eax, eax
+ 00124 75 04 jne SHORT $LN16@stbi__pars
+
+; 4522 : return 0;
+
+ 00126 33 c0 xor eax, eax
+ 00128 eb 23 jmp SHORT $LN1@stbi__pars
+$LN16@stbi__pars:
+$LN13@stbi__pars:
+
+; 4523 : }
+; 4524 : if (!stbi__parse_huffman_block(a))
+
+ 0012a 48 8b 8d 20 01
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 00131 e8 00 00 00 00 call stbi__parse_huffman_block
+ 00136 85 c0 test eax, eax
+ 00138 75 04 jne SHORT $LN17@stbi__pars
+
+; 4525 : return 0;
+
+ 0013a 33 c0 xor eax, eax
+ 0013c eb 0f jmp SHORT $LN1@stbi__pars
+$LN17@stbi__pars:
+$LN11@stbi__pars:
+$LN8@stbi__pars:
+
+; 4526 : }
+; 4527 : } while (!final);
+
+ 0013e 83 7d 04 00 cmp DWORD PTR final$[rbp], 0
+ 00142 0f 84 18 ff ff
+ ff je $LN4@stbi__pars
+
+; 4528 : return 1;
+
+ 00148 b8 01 00 00 00 mov eax, 1
+$LN1@stbi__pars:
+
+; 4529 : }
+
+ 0014d 48 8d a5 08 01
+ 00 00 lea rsp, QWORD PTR [rbp+264]
+ 00154 5f pop rdi
+ 00155 5d pop rbp
+ 00156 c3 ret 0
+stbi__parse_zlib ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__parse_zlib_header
+_TEXT SEGMENT
+cmf$ = 4
+cm$ = 36
+flg$ = 68
+a$ = 320
+stbi__parse_zlib_header PROC ; COMDAT
+
+; 4447 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 4448 : 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
+
+; 4449 : 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
+
+; 4450 : /* int cinfo = cmf >> 4; */
+; 4451 : 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
+
+; 4452 : 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
+
+; 4453 : 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:
+
+; 4454 : 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
+
+; 4455 : 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:
+
+; 4456 : 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
+
+; 4457 : 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:
+
+; 4458 : "Corrupt PNG"); // preset dictionary not allowed in png
+; 4459 : if (cm != 8)
+
+ 000a9 83 7d 24 08 cmp DWORD PTR cm$[rbp], 8
+ 000ad 74 0e je SHORT $LN5@stbi__pars
+
+; 4460 : return stbi__err("bad compression",
+
+ 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:
+
+; 4461 : "Corrupt PNG"); // DEFLATE required for png
+; 4462 : // window = 1 << (8 + cinfo)... but who cares, we fully buffer output
+; 4463 : return 1;
+
+ 000bd b8 01 00 00 00 mov eax, 1
+$LN1@stbi__pars:
+
+; 4464 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__parse_uncompressed_block
+_TEXT SEGMENT
+header$ = 4
+len$ = 36
+nlen$ = 68
+k$ = 100
+a$ = 352
+stbi__parse_uncompressed_block PROC ; COMDAT
+
+; 4414 : {
+
+ 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:__079B8C84_stb_image@c
+ 00033 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00038 90 npad 1
+
+; 4415 : stbi_uc header[4];
+; 4416 : int len, nlen, k;
+; 4417 : 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
+
+; 4418 : 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:
+
+; 4419 : // drain the bit-packed data into header
+; 4420 : k = 0;
+
+ 00066 c7 45 64 00 00
+ 00 00 mov DWORD PTR k$[rbp], 0
+$LN2@stbi__pars:
+
+; 4421 : 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
+
+; 4422 : 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 14 mov eax, DWORD PTR [rax+20]
+ 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
+
+; 4423 : a->code_buffer >>= 8;
+
+ 00099 48 8b 85 60 01
+ 00 00 mov rax, QWORD PTR a$[rbp]
+ 000a0 8b 40 14 mov eax, DWORD PTR [rax+20]
+ 000a3 c1 e8 08 shr eax, 8
+ 000a6 48 8b 8d 60 01
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 000ad 89 41 14 mov DWORD PTR [rcx+20], eax
+
+; 4424 : 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
+
+; 4425 : }
+
+ 000c7 eb a4 jmp SHORT $LN2@stbi__pars
+$LN3@stbi__pars:
+
+; 4426 : 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
+
+; 4427 : 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:
+
+; 4428 : // now fill header the normal way
+; 4429 : while (k < 4)
+
+ 000e7 83 7d 64 04 cmp DWORD PTR k$[rbp], 4
+ 000eb 7d 1e jge SHORT $LN5@stbi__pars
+
+; 4430 : 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:
+
+; 4431 : 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
+
+; 4432 : 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
+
+; 4433 : 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
+
+; 4434 : 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:
+
+; 4435 : 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
+
+; 4436 : 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:
+
+; 4437 : 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 18 add rax, QWORD PTR [rcx+24]
+ 001b2 48 8b 8d 60 01
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 001b9 48 3b 41 28 cmp rax, QWORD PTR [rcx+40]
+ 001bd 76 23 jbe SHORT $LN10@stbi__pars
+
+; 4438 : 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 18 mov rdx, QWORD PTR [rax+24]
+ 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
+
+; 4439 : return 0;
+
+ 001de 33 c0 xor eax, eax
+ 001e0 eb 59 jmp SHORT $LN1@stbi__pars
+$LN11@stbi__pars:
+$LN10@stbi__pars:
+
+; 4440 : 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 18 mov rcx, QWORD PTR [rax+24]
+ 001fe e8 00 00 00 00 call memcpy
+ 00203 90 npad 1
+
+; 4441 : 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
+
+; 4442 : 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 18 add rax, QWORD PTR [rcx+24]
+ 0022b 48 8b 8d 60 01
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 00232 48 89 41 18 mov QWORD PTR [rcx+24], rax
+
+; 4443 : return 1;
+
+ 00236 b8 01 00 00 00 mov eax, 1
+$LN1@stbi__pars:
+
+; 4444 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 4356 : {
+
+ 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:__079B8C84_stb_image@c
+ 0004a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0004f 90 npad 1
+
+; 4357 : static const stbi_uc length_dezigzag[19] = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5,
+; 4358 : 11, 4, 12, 3, 13, 2, 14, 1, 15 };
+; 4359 : stbi__zhuffman z_codelength;
+; 4360 : stbi_uc lencodes[286 + 32 + 137]; //padding for maximum single op
+; 4361 : stbi_uc codelength_sizes[19];
+; 4362 : int i, n;
+; 4363 :
+; 4364 : 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
+
+; 4365 : 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
+
+; 4366 : 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
+
+; 4367 : 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
+
+; 4368 :
+; 4369 : 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
+
+; 4370 : 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
+
+; 4371 : 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
+
+; 4372 : 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
+
+; 4373 : }
+
+ 00129 eb ab jmp SHORT $LN2@stbi__comp
+$LN3@stbi__comp:
+
+; 4374 : 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
+
+; 4375 : return 0;
+
+ 00145 33 c0 xor eax, eax
+ 00147 e9 3a 02 00 00 jmp $LN1@stbi__comp
+$LN7@stbi__comp:
+
+; 4376 :
+; 4377 : n = 0;
+
+ 0014c c7 85 54 0a 00
+ 00 00 00 00 00 mov DWORD PTR n$[rbp], 0
+$LN5@stbi__comp:
+
+; 4378 : 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
+
+; 4379 : 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
+
+; 4380 : 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:
+
+; 4381 : 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:
+
+; 4382 : 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
+
+; 4383 : 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:
+
+; 4384 : else {
+; 4385 : stbi_uc fill = 0;
+
+ 001d2 c6 85 34 0b 00
+ 00 00 mov BYTE PTR fill$8[rbp], 0
+
+; 4386 : 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
+
+; 4387 : 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
+
+; 4388 : 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
+
+; 4389 : 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:
+
+; 4390 : 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:
+
+; 4391 : } 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
+
+; 4392 : 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:
+
+; 4393 : } 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
+
+; 4394 : 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
+
+; 4395 : } else {
+
+ 00278 eb 11 jmp SHORT $LN18@stbi__comp
+$LN17@stbi__comp:
+
+; 4396 : 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:
+
+; 4397 : }
+; 4398 : 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
+
+; 4399 : 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:
+
+; 4400 : 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
+
+; 4401 : 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:
+
+; 4402 : }
+; 4403 : }
+
+ 00303 e9 4e fe ff ff jmp $LN5@stbi__comp
+$LN6@stbi__comp:
+
+; 4404 : 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
+
+; 4405 : 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:
+
+; 4406 : 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 34 add rax, 52 ; 00000034H
+ 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
+
+; 4407 : return 0;
+
+ 00349 33 c0 xor eax, eax
+ 0034b eb 39 jmp SHORT $LN1@stbi__comp
+$LN21@stbi__comp:
+
+; 4408 : 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 18 08
+ 00 00 add rcx, 2072 ; 00000818H
+ 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
+
+; 4409 : return 0;
+
+ 0037d 33 c0 xor eax, eax
+ 0037f eb 05 jmp SHORT $LN1@stbi__comp
+$LN22@stbi__comp:
+
+; 4410 : return 1;
+
+ 00381 b8 01 00 00 00 mov eax, 1
+$LN1@stbi__comp:
+
+; 4411 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 4292 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 4293 : char *zout = a->zout;
+
+ 00020 48 8b 85 a0 01
+ 00 00 mov rax, QWORD PTR a$[rbp]
+ 00027 48 8b 40 18 mov rax, QWORD PTR [rax+24]
+ 0002b 48 89 45 08 mov QWORD PTR zout$[rbp], rax
+$LN2@stbi__pars:
+
+; 4294 : for (;;) {
+; 4295 : 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 34 add rax, 52 ; 00000034H
+ 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
+
+; 4296 : 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
+
+; 4297 : if (z < 0)
+
+ 00055 83 7d 24 00 cmp DWORD PTR z$1[rbp], 0
+ 00059 7d 11 jge SHORT $LN13@stbi__pars
+
+; 4298 : 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 83 02 00 00 jmp $LN1@stbi__pars
+$LN13@stbi__pars:
+
+; 4299 : "Corrupt PNG"); // error in huffman codes
+; 4300 : if (zout >= a->zout_end) {
+
+ 0006c 48 8b 85 a0 01
+ 00 00 mov rax, QWORD PTR a$[rbp]
+ 00073 48 8b 40 28 mov rax, QWORD PTR [rax+40]
+ 00077 48 39 45 08 cmp QWORD PTR zout$[rbp], rax
+ 0007b 72 30 jb SHORT $LN14@stbi__pars
+
+; 4301 : 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
+
+; 4302 : return 0;
+
+ 00097 33 c0 xor eax, eax
+ 00099 e9 51 02 00 00 jmp $LN1@stbi__pars
+$LN15@stbi__pars:
+
+; 4303 : zout = a->zout;
+
+ 0009e 48 8b 85 a0 01
+ 00 00 mov rax, QWORD PTR a$[rbp]
+ 000a5 48 8b 40 18 mov rax, QWORD PTR [rax+24]
+ 000a9 48 89 45 08 mov QWORD PTR zout$[rbp], rax
+$LN14@stbi__pars:
+
+; 4304 : }
+; 4305 : *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
+
+; 4306 : } else {
+
+ 000c2 e9 23 02 00 00 jmp $LN12@stbi__pars
+$LN11@stbi__pars:
+
+; 4307 : stbi_uc *p;
+; 4308 : int len, dist;
+; 4309 : if (z == 256) {
+
+ 000c7 81 7d 24 00 01
+ 00 00 cmp DWORD PTR z$1[rbp], 256 ; 00000100H
+ 000ce 75 19 jne SHORT $LN16@stbi__pars
+
+; 4310 : 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 18 mov QWORD PTR [rax+24], rcx
+
+; 4311 : return 1;
+
+ 000df b8 01 00 00 00 mov eax, 1
+ 000e4 e9 06 02 00 00 jmp $LN1@stbi__pars
+$LN16@stbi__pars:
+
+; 4312 : }
+; 4313 : if (z >= 286)
+
+ 000e9 81 7d 24 1e 01
+ 00 00 cmp DWORD PTR z$1[rbp], 286 ; 0000011eH
+ 000f0 7c 11 jl SHORT $LN17@stbi__pars
+
+; 4314 : return stbi__err(
+
+ 000f2 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@
+ 000f9 e8 00 00 00 00 call stbi__err
+ 000fe e9 ec 01 00 00 jmp $LN1@stbi__pars
+$LN17@stbi__pars:
+
+; 4315 : "bad huffman code",
+; 4316 : "Corrupt PNG"); // per DEFLATE, length codes 286 and 287 must not appear in compressed data
+; 4317 : z -= 257;
+
+ 00103 8b 45 24 mov eax, DWORD PTR z$1[rbp]
+ 00106 2d 01 01 00 00 sub eax, 257 ; 00000101H
+ 0010b 89 45 24 mov DWORD PTR z$1[rbp], eax
+
+; 4318 : len = stbi__zlength_base[z];
+
+ 0010e 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp]
+ 00112 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:stbi__zlength_base
+ 00119 8b 04 81 mov eax, DWORD PTR [rcx+rax*4]
+ 0011c 89 45 64 mov DWORD PTR len$3[rbp], eax
+
+; 4319 : if (stbi__zlength_extra[z])
+
+ 0011f 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp]
+ 00123 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:stbi__zlength_extra
+ 0012a 83 3c 81 00 cmp DWORD PTR [rcx+rax*4], 0
+ 0012e 74 24 je SHORT $LN18@stbi__pars
+
+; 4320 : len += stbi__zreceive(a, stbi__zlength_extra[z]);
+
+ 00130 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp]
+ 00134 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:stbi__zlength_extra
+ 0013b 8b 14 81 mov edx, DWORD PTR [rcx+rax*4]
+ 0013e 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 00145 e8 00 00 00 00 call stbi__zreceive
+ 0014a 8b 4d 64 mov ecx, DWORD PTR len$3[rbp]
+ 0014d 03 c8 add ecx, eax
+ 0014f 8b c1 mov eax, ecx
+ 00151 89 45 64 mov DWORD PTR len$3[rbp], eax
+$LN18@stbi__pars:
+
+; 4321 : z = stbi__zhuffman_decode(a, &a->z_distance);
+
+ 00154 48 8b 85 a0 01
+ 00 00 mov rax, QWORD PTR a$[rbp]
+ 0015b 48 05 18 08 00
+ 00 add rax, 2072 ; 00000818H
+ 00161 48 8b d0 mov rdx, rax
+ 00164 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 0016b e8 00 00 00 00 call stbi__zhuffman_decode
+ 00170 89 45 24 mov DWORD PTR z$1[rbp], eax
+
+; 4322 : if (z < 0 || z >= 30)
+
+ 00173 83 7d 24 00 cmp DWORD PTR z$1[rbp], 0
+ 00177 7c 06 jl SHORT $LN20@stbi__pars
+ 00179 83 7d 24 1e cmp DWORD PTR z$1[rbp], 30
+ 0017d 7c 11 jl SHORT $LN19@stbi__pars
+$LN20@stbi__pars:
+
+; 4323 : return stbi__err(
+
+ 0017f 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@
+ 00186 e8 00 00 00 00 call stbi__err
+ 0018b e9 5f 01 00 00 jmp $LN1@stbi__pars
+$LN19@stbi__pars:
+
+; 4324 : "bad huffman code",
+; 4325 : "Corrupt PNG"); // per DEFLATE, distance codes 30 and 31 must not appear in compressed data
+; 4326 : dist = stbi__zdist_base[z];
+
+ 00190 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp]
+ 00194 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:stbi__zdist_base
+ 0019b 8b 04 81 mov eax, DWORD PTR [rcx+rax*4]
+ 0019e 89 85 84 00 00
+ 00 mov DWORD PTR dist$4[rbp], eax
+
+; 4327 : if (stbi__zdist_extra[z])
+
+ 001a4 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp]
+ 001a8 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:stbi__zdist_extra
+ 001af 83 3c 81 00 cmp DWORD PTR [rcx+rax*4], 0
+ 001b3 74 2a je SHORT $LN21@stbi__pars
+
+; 4328 : dist += stbi__zreceive(a, stbi__zdist_extra[z]);
+
+ 001b5 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp]
+ 001b9 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:stbi__zdist_extra
+ 001c0 8b 14 81 mov edx, DWORD PTR [rcx+rax*4]
+ 001c3 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 001ca e8 00 00 00 00 call stbi__zreceive
+ 001cf 8b 8d 84 00 00
+ 00 mov ecx, DWORD PTR dist$4[rbp]
+ 001d5 03 c8 add ecx, eax
+ 001d7 8b c1 mov eax, ecx
+ 001d9 89 85 84 00 00
+ 00 mov DWORD PTR dist$4[rbp], eax
+$LN21@stbi__pars:
+
+; 4329 : if (zout - a->zout_start < dist)
+
+ 001df 48 8b 85 a0 01
+ 00 00 mov rax, QWORD PTR a$[rbp]
+ 001e6 48 8b 40 20 mov rax, QWORD PTR [rax+32]
+ 001ea 48 8b 4d 08 mov rcx, QWORD PTR zout$[rbp]
+ 001ee 48 2b c8 sub rcx, rax
+ 001f1 48 8b c1 mov rax, rcx
+ 001f4 48 63 8d 84 00
+ 00 00 movsxd rcx, DWORD PTR dist$4[rbp]
+ 001fb 48 3b c1 cmp rax, rcx
+ 001fe 7d 11 jge SHORT $LN22@stbi__pars
+
+; 4330 : return stbi__err("bad dist", "Corrupt PNG");
+
+ 00200 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:??_C@_08DIAPIMGJ@bad?5dist@
+ 00207 e8 00 00 00 00 call stbi__err
+ 0020c e9 de 00 00 00 jmp $LN1@stbi__pars
+$LN22@stbi__pars:
+
+; 4331 : if (zout + len > a->zout_end) {
+
+ 00211 48 63 45 64 movsxd rax, DWORD PTR len$3[rbp]
+ 00215 48 8b 4d 08 mov rcx, QWORD PTR zout$[rbp]
+ 00219 48 03 c8 add rcx, rax
+ 0021c 48 8b c1 mov rax, rcx
+ 0021f 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 00226 48 3b 41 28 cmp rax, QWORD PTR [rcx+40]
+ 0022a 76 2e jbe SHORT $LN23@stbi__pars
+
+; 4332 : if (!stbi__zexpand(a, zout, len))
+
+ 0022c 44 8b 45 64 mov r8d, DWORD PTR len$3[rbp]
+ 00230 48 8b 55 08 mov rdx, QWORD PTR zout$[rbp]
+ 00234 48 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 0023b e8 00 00 00 00 call stbi__zexpand
+ 00240 85 c0 test eax, eax
+ 00242 75 07 jne SHORT $LN24@stbi__pars
+
+; 4333 : return 0;
+
+ 00244 33 c0 xor eax, eax
+ 00246 e9 a4 00 00 00 jmp $LN1@stbi__pars
+$LN24@stbi__pars:
+
+; 4334 : zout = a->zout;
+
+ 0024b 48 8b 85 a0 01
+ 00 00 mov rax, QWORD PTR a$[rbp]
+ 00252 48 8b 40 18 mov rax, QWORD PTR [rax+24]
+ 00256 48 89 45 08 mov QWORD PTR zout$[rbp], rax
+$LN23@stbi__pars:
+
+; 4335 : }
+; 4336 : p = (stbi_uc *)(zout - dist);
+
+ 0025a 48 63 85 84 00
+ 00 00 movsxd rax, DWORD PTR dist$4[rbp]
+ 00261 48 8b 4d 08 mov rcx, QWORD PTR zout$[rbp]
+ 00265 48 2b c8 sub rcx, rax
+ 00268 48 8b c1 mov rax, rcx
+ 0026b 48 89 45 48 mov QWORD PTR p$2[rbp], rax
+
+; 4337 : if (dist == 1) { // run of one byte; common in images.
+
+ 0026f 83 bd 84 00 00
+ 00 01 cmp DWORD PTR dist$4[rbp], 1
+ 00276 75 3b jne SHORT $LN25@stbi__pars
+
+; 4338 : stbi_uc v = *p;
+
+ 00278 48 8b 45 48 mov rax, QWORD PTR p$2[rbp]
+ 0027c 0f b6 00 movzx eax, BYTE PTR [rax]
+ 0027f 88 85 a4 00 00
+ 00 mov BYTE PTR v$5[rbp], al
+
+; 4339 : if (len) {
+
+ 00285 83 7d 64 00 cmp DWORD PTR len$3[rbp], 0
+ 00289 74 26 je SHORT $LN27@stbi__pars
+$LN7@stbi__pars:
+
+; 4340 : do
+; 4341 : *zout++ = v;
+
+ 0028b 48 8b 45 08 mov rax, QWORD PTR zout$[rbp]
+ 0028f 0f b6 8d a4 00
+ 00 00 movzx ecx, BYTE PTR v$5[rbp]
+ 00296 88 08 mov BYTE PTR [rax], cl
+ 00298 48 8b 45 08 mov rax, QWORD PTR zout$[rbp]
+ 0029c 48 ff c0 inc rax
+ 0029f 48 89 45 08 mov QWORD PTR zout$[rbp], rax
+
+; 4342 : while (--len);
+
+ 002a3 8b 45 64 mov eax, DWORD PTR len$3[rbp]
+ 002a6 ff c8 dec eax
+ 002a8 89 45 64 mov DWORD PTR len$3[rbp], eax
+ 002ab 83 7d 64 00 cmp DWORD PTR len$3[rbp], 0
+ 002af 75 da jne SHORT $LN7@stbi__pars
+$LN27@stbi__pars:
+
+; 4343 : }
+; 4344 : } else {
+
+ 002b1 eb 37 jmp SHORT $LN26@stbi__pars
+$LN25@stbi__pars:
+
+; 4345 : if (len) {
+
+ 002b3 83 7d 64 00 cmp DWORD PTR len$3[rbp], 0
+ 002b7 74 31 je SHORT $LN28@stbi__pars
+$LN10@stbi__pars:
+
+; 4346 : do
+; 4347 : *zout++ = *p++;
+
+ 002b9 48 8b 45 08 mov rax, QWORD PTR zout$[rbp]
+ 002bd 48 8b 4d 48 mov rcx, QWORD PTR p$2[rbp]
+ 002c1 0f b6 09 movzx ecx, BYTE PTR [rcx]
+ 002c4 88 08 mov BYTE PTR [rax], cl
+ 002c6 48 8b 45 08 mov rax, QWORD PTR zout$[rbp]
+ 002ca 48 ff c0 inc rax
+ 002cd 48 89 45 08 mov QWORD PTR zout$[rbp], rax
+ 002d1 48 8b 45 48 mov rax, QWORD PTR p$2[rbp]
+ 002d5 48 ff c0 inc rax
+ 002d8 48 89 45 48 mov QWORD PTR p$2[rbp], rax
+
+; 4348 : while (--len);
+
+ 002dc 8b 45 64 mov eax, DWORD PTR len$3[rbp]
+ 002df ff c8 dec eax
+ 002e1 89 45 64 mov DWORD PTR len$3[rbp], eax
+ 002e4 83 7d 64 00 cmp DWORD PTR len$3[rbp], 0
+ 002e8 75 cf jne SHORT $LN10@stbi__pars
+$LN28@stbi__pars:
+$LN26@stbi__pars:
+$LN12@stbi__pars:
+
+; 4349 : }
+; 4350 : }
+; 4351 : }
+; 4352 : }
+
+ 002ea e9 40 fd ff ff jmp $LN2@stbi__pars
+$LN1@stbi__pars:
+
+; 4353 : }
+
+ 002ef 48 8d a5 88 01
+ 00 00 lea rsp, QWORD PTR [rbp+392]
+ 002f6 5f pop rdi
+ 002f7 5d pop rbp
+ 002f8 c3 ret 0
+stbi__parse_huffman_block ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__zexpand
+_TEXT SEGMENT
+q$ = 8
+cur$ = 36
+limit$ = 68
+old_limit$ = 100
+z$ = 352
+zout$ = 360
+n$ = 368
+stbi__zexpand PROC ; COMDAT
+
+; 4251 : {
+
+ 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:__079B8C84_stb_image@c
+ 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00029 90 npad 1
+
+; 4252 : char *q;
+; 4253 : unsigned int cur, limit, old_limit;
+; 4254 : 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 18 mov QWORD PTR [rax+24], rcx
+
+; 4255 : if (!z->z_expandable)
+
+ 0003c 48 8b 85 60 01
+ 00 00 mov rax, QWORD PTR z$[rbp]
+ 00043 83 78 30 00 cmp DWORD PTR [rax+48], 0
+ 00047 75 11 jne SHORT $LN4@stbi__zexp
+
+; 4256 : 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:
+
+; 4257 : 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 20 mov rcx, QWORD PTR [rcx+32]
+ 0006c 48 8b 40 18 mov rax, QWORD PTR [rax+24]
+ 00070 48 2b c1 sub rax, rcx
+ 00073 89 45 24 mov DWORD PTR cur$[rbp], eax
+
+; 4258 : 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 20 mov rcx, QWORD PTR [rcx+32]
+ 00088 48 8b 40 28 mov rax, QWORD PTR [rax+40]
+ 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
+
+; 4259 : 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
+
+; 4260 : 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:
+
+; 4261 : 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
+
+; 4262 : 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
+
+; 4263 : 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:
+
+; 4264 : 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
+
+; 4265 : }
+
+ 000ea eb cd jmp SHORT $LN2@stbi__zexp
+$LN3@stbi__zexp:
+
+; 4266 : 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 20 mov rcx, QWORD PTR [rax+32]
+ 000fc ff 15 00 00 00
+ 00 call QWORD PTR __imp_realloc
+ 00102 48 89 45 08 mov QWORD PTR q$[rbp], rax
+
+; 4267 : STBI_NOTUSED(old_limit);
+; 4268 : if (q == NULL)
+
+ 00106 48 83 7d 08 00 cmp QWORD PTR q$[rbp], 0
+ 0010b 75 0e jne SHORT $LN7@stbi__zexp
+
+; 4269 : 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:
+
+; 4270 : 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 20 mov QWORD PTR [rax+32], rcx
+
+; 4271 : 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 18 mov QWORD PTR [rcx+24], rax
+
+; 4272 : 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 28 mov QWORD PTR [rcx+40], rax
+
+; 4273 : return 1;
+
+ 0015a b8 01 00 00 00 mov eax, 1
+$LN1@stbi__zexp:
+
+; 4274 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__zhuffman_decode
+_TEXT SEGMENT
+b$ = 4
+s$ = 36
+tv133 = 248
+a$ = 288
+z$ = 296
+stbi__zhuffman_decode PROC ; COMDAT
+
+; 4231 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 4232 : int b, s;
+; 4233 : 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 27 jge SHORT $LN2@stbi__zhuf
+
+; 4234 : 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 0a je SHORT $LN3@stbi__zhuf
+
+; 4235 : return -1; /* report error for unexpected end of data. */
+
+ 00042 b8 ff ff ff ff mov eax, -1
+ 00047 e9 9b 00 00 00 jmp $LN1@stbi__zhuf
+$LN3@stbi__zhuf:
+
+; 4236 : }
+; 4237 : stbi__fill_bits(a);
+
+ 0004c 48 8b 8d 20 01
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 00053 e8 00 00 00 00 call stbi__fill_bits
+ 00058 90 npad 1
+$LN2@stbi__zhuf:
+
+; 4238 : }
+; 4239 : b = z->fast[a->code_buffer & STBI__ZFAST_MASK];
+
+ 00059 48 8b 85 20 01
+ 00 00 mov rax, QWORD PTR a$[rbp]
+ 00060 8b 40 14 mov eax, DWORD PTR [rax+20]
+ 00063 25 ff 01 00 00 and eax, 511 ; 000001ffH
+ 00068 8b c0 mov eax, eax
+ 0006a 48 8b 8d 28 01
+ 00 00 mov rcx, QWORD PTR z$[rbp]
+ 00071 0f b7 04 41 movzx eax, WORD PTR [rcx+rax*2]
+ 00075 89 45 04 mov DWORD PTR b$[rbp], eax
+
+; 4240 : if (b) {
+
+ 00078 83 7d 04 00 cmp DWORD PTR b$[rbp], 0
+ 0007c 74 56 je SHORT $LN4@stbi__zhuf
+
+; 4241 : s = b >> 9;
+
+ 0007e 8b 45 04 mov eax, DWORD PTR b$[rbp]
+ 00081 c1 f8 09 sar eax, 9
+ 00084 89 45 24 mov DWORD PTR s$[rbp], eax
+
+; 4242 : a->code_buffer >>= s;
+
+ 00087 8b 45 24 mov eax, DWORD PTR s$[rbp]
+ 0008a 48 8b 8d 20 01
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 00091 48 89 8d f8 00
+ 00 00 mov QWORD PTR tv133[rbp], rcx
+ 00098 0f b6 c8 movzx ecx, al
+ 0009b 48 8b 85 f8 00
+ 00 00 mov rax, QWORD PTR tv133[rbp]
+ 000a2 8b 40 14 mov eax, DWORD PTR [rax+20]
+ 000a5 d3 e8 shr eax, cl
+ 000a7 48 8b 8d 20 01
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 000ae 89 41 14 mov DWORD PTR [rcx+20], eax
+
+; 4243 : a->num_bits -= s;
+
+ 000b1 48 8b 85 20 01
+ 00 00 mov rax, QWORD PTR a$[rbp]
+ 000b8 8b 4d 24 mov ecx, DWORD PTR s$[rbp]
+ 000bb 8b 40 10 mov eax, DWORD PTR [rax+16]
+ 000be 2b c1 sub eax, ecx
+ 000c0 48 8b 8d 20 01
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 000c7 89 41 10 mov DWORD PTR [rcx+16], eax
+
+; 4244 : return b & 511;
+
+ 000ca 8b 45 04 mov eax, DWORD PTR b$[rbp]
+ 000cd 25 ff 01 00 00 and eax, 511 ; 000001ffH
+ 000d2 eb 13 jmp SHORT $LN1@stbi__zhuf
+$LN4@stbi__zhuf:
+
+; 4245 : }
+; 4246 : return stbi__zhuffman_decode_slowpath(a, z);
+
+ 000d4 48 8b 95 28 01
+ 00 00 mov rdx, QWORD PTR z$[rbp]
+ 000db 48 8b 8d 20 01
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 000e2 e8 00 00 00 00 call stbi__zhuffman_decode_slowpath
+$LN1@stbi__zhuf:
+
+; 4247 : }
+
+ 000e7 48 8d a5 08 01
+ 00 00 lea rsp, QWORD PTR [rbp+264]
+ 000ee 5f pop rdi
+ 000ef 5d pop rbp
+ 000f0 c3 ret 0
+stbi__zhuffman_decode ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 4209 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 4210 : int b, s, k;
+; 4211 : // not resolved by fast table, so compute it the slow way
+; 4212 : // use jpeg approach, which requires MSbits at top
+; 4213 : 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 14 mov ecx, DWORD PTR [rax+20]
+ 00034 e8 00 00 00 00 call stbi__bit_reverse
+ 00039 89 45 44 mov DWORD PTR k$[rbp], eax
+
+; 4214 : 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:
+
+; 4215 : 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
+
+; 4216 : break;
+
+ 00064 eb 02 jmp SHORT $LN3@stbi__zhuf
+$LN5@stbi__zhuf:
+ 00066 eb dd jmp SHORT $LN2@stbi__zhuf
+$LN3@stbi__zhuf:
+
+; 4217 : if (s >= 16)
+
+ 00068 83 7d 24 10 cmp DWORD PTR s$[rbp], 16
+ 0006c 7c 0a jl SHORT $LN6@stbi__zhuf
+
+; 4218 : 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:
+
+; 4219 : // code size is s, so:
+; 4220 : 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
+
+; 4221 : 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
+
+; 4222 : 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:
+
+; 4223 : 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
+
+; 4224 : 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:
+
+; 4225 : 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 14 mov eax, DWORD PTR [rax+20]
+ 00102 d3 e8 shr eax, cl
+ 00104 48 8b 8d 40 01
+ 00 00 mov rcx, QWORD PTR a$[rbp]
+ 0010b 89 41 14 mov DWORD PTR [rcx+20], eax
+
+; 4226 : 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
+
+; 4227 : 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:
+
+; 4228 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__zreceive
+_TEXT SEGMENT
+k$ = 4
+tv84 = 212
+tv90 = 216
+z$ = 256
+n$ = 264
+stbi__zreceive PROC ; COMDAT
+
+; 4198 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00023 90 npad 1
+
+; 4199 : unsigned int k;
+; 4200 : 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
+
+; 4201 : 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:
+
+; 4202 : 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 14 mov ecx, DWORD PTR [rcx+20]
+ 0006b 23 c8 and ecx, eax
+ 0006d 8b c1 mov eax, ecx
+ 0006f 89 45 04 mov DWORD PTR k$[rbp], eax
+
+; 4203 : 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 14 mov eax, DWORD PTR [rax+20]
+ 00093 d3 e8 shr eax, cl
+ 00095 48 8b 8d 00 01
+ 00 00 mov rcx, QWORD PTR z$[rbp]
+ 0009c 89 41 14 mov DWORD PTR [rcx+20], eax
+
+; 4204 : 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
+
+; 4205 : return k;
+
+ 000bb 8b 45 04 mov eax, DWORD PTR k$[rbp]
+
+; 4206 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__fill_bits
+_TEXT SEGMENT
+tv92 = 192
+z$ = 240
+stbi__fill_bits PROC ; COMDAT
+
+; 4186 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+$LN4@stbi__fill:
+
+; 4187 : do {
+; 4188 : 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 14 cmp DWORD PTR [rcx+20], eax
+ 0004a 72 17 jb SHORT $LN5@stbi__fill
+
+; 4189 : 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
+
+; 4190 : return;
+
+ 00061 eb 5b jmp SHORT $LN1@stbi__fill
+$LN5@stbi__fill:
+
+; 4191 : }
+; 4192 : 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 14 mov ecx, DWORD PTR [rcx+20]
+ 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 14 mov DWORD PTR [rcx+20], eax
+
+; 4193 : 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
+
+; 4194 : } 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:
+
+; 4195 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__zget8
+_TEXT SEGMENT
+tv73 = 192
+z$ = 240
+stbi__zget8 PROC ; COMDAT
+
+; 4181 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 4182 : 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]
+
+; 4183 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__zeof
+_TEXT SEGMENT
+tv67 = 192
+z$ = 240
+stbi__zeof PROC ; COMDAT
+
+; 4176 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 4177 : 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]
+
+; 4178 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 4109 : {
+
+ 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:__079B8C84_stb_image@c
+ 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00053 90 npad 1
+
+; 4110 : int i, k = 0;
+
+ 00054 c7 45 24 00 00
+ 00 00 mov DWORD PTR k$[rbp], 0
+
+; 4111 : int code, next_code[16], sizes[17];
+; 4112 :
+; 4113 : // DEFLATE spec for generating codes
+; 4114 : 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
+
+; 4115 : 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
+
+; 4116 : 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
+
+; 4117 : ++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:
+
+; 4118 : 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
+
+; 4119 : 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
+
+; 4120 : 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
+
+; 4121 : 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:
+
+; 4122 : code = 0;
+
+ 0012b c7 45 44 00 00
+ 00 00 mov DWORD PTR code$[rbp], 0
+
+; 4123 : 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
+
+; 4124 : 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
+
+; 4125 : 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
+
+; 4126 : 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
+
+; 4127 : 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
+
+; 4128 : 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
+
+; 4129 : 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
+
+; 4130 : 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:
+
+; 4131 : 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
+
+; 4132 : 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
+
+; 4133 : 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
+
+; 4134 : }
+
+ 0020e e9 28 ff ff ff jmp $LN8@stbi__zbui
+$LN9@stbi__zbui:
+
+; 4135 : 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
+
+; 4136 : 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
+
+; 4137 : 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
+
+; 4138 : 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
+
+; 4139 : 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
+
+; 4140 : 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
+
+; 4141 : 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
+
+; 4142 : 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
+
+; 4143 : 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
+
+; 4144 : 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:
+
+; 4145 : 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
+
+; 4146 : 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
+
+; 4147 : 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
+
+; 4148 : }
+
+ 00370 eb ad jmp SHORT $LN14@stbi__zbui
+$LN15@stbi__zbui:
+$LN20@stbi__zbui:
+
+; 4149 : }
+; 4150 : ++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:
+
+; 4151 : }
+; 4152 : }
+
+ 0038a e9 a8 fe ff ff jmp $LN11@stbi__zbui
+$LN12@stbi__zbui:
+
+; 4153 : return 1;
+
+ 0038f b8 01 00 00 00 mov eax, 1
+$LN1@stbi__zbui:
+
+; 4154 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__bit_reverse
+_TEXT SEGMENT
+v$ = 224
+bits$ = 232
+stbi__bit_reverse PROC ; COMDAT
+
+; 4101 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00022 90 npad 1
+
+; 4102 : 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 06 10 00
+ 00 mov r8d, 4102 ; 00001006H
+ 00032 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:??_C@_1KG@HOANCCHA@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@
+ 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_:
+
+; 4103 : // to bit reverse n bits, reverse 16 and shift
+; 4104 : // e.g. 11 bits, bit reverse and shift away 5
+; 4105 : 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
+
+; 4106 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__bitreverse16
+_TEXT SEGMENT
+n$ = 224
+stbi__bitreverse16 PROC ; COMDAT
+
+; 4092 : {
+
+ 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:__079B8C84_stb_image@c
+ 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001e 90 npad 1
+
+; 4093 : 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
+
+; 4094 : 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
+
+; 4095 : 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
+
+; 4096 : 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
+
+; 4097 : return n;
+
+ 000b1 8b 85 e0 00 00
+ 00 mov eax, DWORD PTR n$[rbp]
+
+; 4098 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__jpeg_info_raw
+_TEXT SEGMENT
+tv80 = 192
+j$ = 240
+x$ = 248
+y$ = 256
+comp$ = 264
+stbi__jpeg_info_raw PROC ; COMDAT
+
+; 4038 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 4039 : 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
+
+; 4040 : 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
+
+; 4041 : return 0;
+
+ 00054 33 c0 xor eax, eax
+ 00056 e9 83 00 00 00 jmp $LN1@stbi__jpeg
+$LN2@stbi__jpeg:
+
+; 4042 : }
+; 4043 : 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
+
+; 4044 : *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:
+
+; 4045 : 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
+
+; 4046 : *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:
+
+; 4047 : 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
+
+; 4048 : *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:
+
+; 4049 : return 1;
+
+ 000d9 b8 01 00 00 00 mov eax, 1
+$LN1@stbi__jpeg:
+
+; 4050 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 3813 : {
+
+ 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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 3814 : int n, decode_n, is_rgb;
+; 3815 : 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
+
+; 3816 :
+; 3817 : // validate req_comp
+; 3818 : 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_:
+
+; 3819 : 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_:
+
+; 3820 :
+; 3821 : // load a jpeg image from whichever source, but leave in YCbCr format
+; 3822 : 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_
+
+; 3823 : 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
+
+; 3824 : return NULL;
+
+ 000cd 33 c0 xor eax, eax
+ 000cf e9 d6 11 00 00 jmp $LN1@load_jpeg_
+$LN43@load_jpeg_:
+
+; 3825 : }
+; 3826 :
+; 3827 : // determine actual number of components to generate
+; 3828 : 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
+
+; 3829 :
+; 3830 : 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
+
+; 3831 :
+; 3832 : 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_
+
+; 3833 : 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_:
+
+; 3834 : else
+; 3835 : 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_:
+
+; 3836 :
+; 3837 : // nothing to do if no components requested; check this now to avoid
+; 3838 : // accessing uninitialized coutput[0] later
+; 3839 : if (decode_n <= 0) {
+
+ 001ba 83 7d 24 00 cmp DWORD PTR decode_n$[rbp], 0
+ 001be 7f 14 jg SHORT $LN46@load_jpeg_
+
+; 3840 : 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
+
+; 3841 : return NULL;
+
+ 001cd 33 c0 xor eax, eax
+ 001cf e9 d6 10 00 00 jmp $LN1@load_jpeg_
+$LN46@load_jpeg_:
+
+; 3842 : }
+; 3843 :
+; 3844 : // resample and color-convert
+; 3845 : {
+; 3846 : int k;
+; 3847 : unsigned int i, j;
+; 3848 : stbi_uc *output;
+; 3849 : 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
+
+; 3850 :
+; 3851 : stbi__resample res_comp[4];
+; 3852 :
+; 3853 : 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_
+
+; 3854 : 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
+
+; 3855 :
+; 3856 : // allocate line buffer big enough for upsampling off the edges
+; 3857 : // with upsample factor of 4
+; 3858 : 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
+
+; 3859 : 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_
+
+; 3860 : 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
+
+; 3861 : 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_:
+
+; 3862 : }
+; 3863 :
+; 3864 : 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
+
+; 3865 : 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
+
+; 3866 : 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
+
+; 3867 : 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
+
+; 3868 : 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
+
+; 3869 : 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
+
+; 3870 :
+; 3871 : 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_
+
+; 3872 : 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_:
+
+; 3873 : 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_
+
+; 3874 : 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_:
+
+; 3875 : 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_
+
+; 3876 : 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_:
+
+; 3877 : 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_
+
+; 3878 : 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_:
+
+; 3879 : else
+; 3880 : 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_:
+
+; 3881 : }
+
+ 00493 e9 71 fd ff ff jmp $LN2@load_jpeg_
+$LN3@load_jpeg_:
+
+; 3882 :
+; 3883 : // can't error after this so, this is safe
+; 3884 : 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
+
+; 3885 : 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_
+
+; 3886 : 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
+
+; 3887 : 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_:
+
+; 3888 : }
+; 3889 :
+; 3890 : // now go ahead and resample
+; 3891 : 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_
+
+; 3892 : 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
+
+; 3893 : 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_
+
+; 3894 : 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
+
+; 3895 : 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
+
+; 3896 : 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
+
+; 3897 : y_bot ? r->line1 : r->line0,
+; 3898 : y_bot ? r->line0 : r->line1, r->w_lores,
+; 3899 : r->hs);
+; 3900 : 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_
+
+; 3901 : 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
+
+; 3902 : 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
+
+; 3903 : 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_
+
+; 3904 : 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_:
+
+; 3905 : }
+; 3906 : }
+
+ 0075c e9 1c fe ff ff jmp $LN8@load_jpeg_
+$LN9@load_jpeg_:
+
+; 3907 : 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_
+
+; 3908 : 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
+
+; 3909 : 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_
+
+; 3910 : 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_
+
+; 3911 : 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_
+
+; 3912 : 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
+
+; 3913 : 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
+
+; 3914 : 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
+
+; 3915 : 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
+
+; 3916 : 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
+
+; 3917 : }
+
+ 00882 e9 26 ff ff ff jmp $LN11@load_jpeg_
+$LN12@load_jpeg_:
+
+; 3918 : } else {
+
+ 00887 eb 57 jmp SHORT $LN64@load_jpeg_
+$LN63@load_jpeg_:
+
+; 3919 : 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_:
+
+; 3920 : coutput[2], z->s->img_x, n);
+; 3921 : }
+
+ 008e0 e9 2d 04 00 00 jmp $LN62@load_jpeg_
+$LN61@load_jpeg_:
+
+; 3922 : } 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_
+
+; 3923 : 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_
+
+; 3924 : 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_
+
+; 3925 : 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
+
+; 3926 : 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
+
+; 3927 : 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
+
+; 3928 : 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
+
+; 3929 : 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
+
+; 3930 : 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
+
+; 3931 : }
+
+ 00a3a e9 da fe ff ff jmp $LN14@load_jpeg_
+$LN15@load_jpeg_:
+
+; 3932 : } 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_
+
+; 3933 : 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
+
+; 3934 : coutput[2], z->s->img_x, n);
+; 3935 : 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_
+
+; 3936 : 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
+
+; 3937 : 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
+
+; 3938 : 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
+
+; 3939 : 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
+
+; 3940 : 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
+
+; 3941 : }
+
+ 00bd7 e9 df fe ff ff jmp $LN17@load_jpeg_
+$LN18@load_jpeg_:
+
+; 3942 : } else { // YCbCr + alpha? Ignore the fourth channel for now
+
+ 00bdc eb 57 jmp SHORT $LN70@load_jpeg_
+$LN69@load_jpeg_:
+
+; 3943 : 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_:
+
+; 3944 : coutput[2], z->s->img_x, n);
+; 3945 : }
+; 3946 : } else
+
+ 00c35 e9 d8 00 00 00 jmp $LN66@load_jpeg_
+$LN65@load_jpeg_:
+
+; 3947 : 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_
+
+; 3948 : 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
+
+; 3949 : 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
+
+; 3950 : 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
+
+; 3951 : }
+
+ 00d0d e9 34 ff ff ff jmp $LN20@load_jpeg_
+$LN21@load_jpeg_:
+$LN66@load_jpeg_:
+$LN62@load_jpeg_:
+
+; 3952 : } else {
+
+ 00d12 e9 10 05 00 00 jmp $LN60@load_jpeg_
+$LN59@load_jpeg_:
+
+; 3953 : 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_
+
+; 3954 : 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_
+
+; 3955 : 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_
+
+; 3956 : *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_:
+
+; 3957 : coutput[1][i],
+; 3958 : coutput[2][i]);
+
+ 00de7 e9 db 00 00 00 jmp $LN74@load_jpeg_
+$LN73@load_jpeg_:
+
+; 3959 : else {
+; 3960 : 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_
+
+; 3961 : 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
+
+; 3962 : coutput[1][i],
+; 3963 : coutput[2][i]);
+; 3964 : 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
+
+; 3965 : }
+
+ 00ec2 e9 31 ff ff ff jmp $LN26@load_jpeg_
+$LN27@load_jpeg_:
+$LN74@load_jpeg_:
+
+; 3966 : }
+
+ 00ec7 e9 5b 03 00 00 jmp $LN72@load_jpeg_
+$LN71@load_jpeg_:
+
+; 3967 : } 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_
+
+; 3968 : 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_
+
+; 3969 : 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
+
+; 3970 : 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
+
+; 3971 : 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
+
+; 3972 : 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
+
+; 3973 : 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
+
+; 3974 : 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
+
+; 3975 : 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
+
+; 3976 : }
+
+ 0103a e9 c1 fe ff ff jmp $LN29@load_jpeg_
+$LN30@load_jpeg_:
+
+; 3977 : } 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_
+
+; 3978 : 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_
+
+; 3979 : 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
+
+; 3980 : coutput[3][i]);
+; 3981 : 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
+
+; 3982 : 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
+
+; 3983 : }
+
+ 01135 e9 3e ff ff ff jmp $LN32@load_jpeg_
+$LN33@load_jpeg_:
+
+; 3984 : } else {
+
+ 0113a e9 e8 00 00 00 jmp $LN78@load_jpeg_
+$LN77@load_jpeg_:
+
+; 3985 : 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
+
+; 3986 : if (n == 1)
+
+ 01157 83 7d 04 01 cmp DWORD PTR n$[rbp], 1
+ 0115b 75 54 jne SHORT $LN79@load_jpeg_
+
+; 3987 : 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_
+
+; 3988 : 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_:
+
+; 3989 : else
+; 3990 : 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_
+
+; 3991 : *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
+
+; 3992 : *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
+
+; 3993 : }
+
+ 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_:
+
+; 3994 : }
+; 3995 : }
+; 3996 : }
+
+ 01227 e9 f2 f2 ff ff jmp $LN5@load_jpeg_
+$LN6@load_jpeg_:
+
+; 3997 : 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
+
+; 3998 : *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
+
+; 3999 : *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
+
+; 4000 : 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_
+
+; 4001 : *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_:
+
+; 4002 : return output;
+
+ 012a3 48 8b 85 c8 00
+ 00 00 mov rax, QWORD PTR output$8[rbp]
+$LN1@load_jpeg_:
+
+; 4003 : }
+; 4004 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__blinn_8x8
+_TEXT SEGMENT
+t$ = 4
+x$ = 256
+y$ = 264
+stbi__blinn_8x8 PROC ; COMDAT
+
+; 3807 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00022 90 npad 1
+
+; 3808 : 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
+
+; 3809 : 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
+
+; 3810 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__cleanup_jpeg
+_TEXT SEGMENT
+j$ = 224
+stbi__cleanup_jpeg PROC ; COMDAT
+
+; 3792 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 3793 : 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
+
+; 3794 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__setup_jpeg
+_TEXT SEGMENT
+j$ = 224
+stbi__setup_jpeg PROC ; COMDAT
+
+; 3770 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 3771 : 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
+
+; 3772 : 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
+
+; 3773 : 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
+
+; 3774 :
+; 3775 : #ifdef STBI_SSE2
+; 3776 : 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
+
+; 3777 : 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
+
+; 3778 : 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
+
+; 3779 : 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:
+
+; 3780 : }
+; 3781 : #endif
+; 3782 :
+; 3783 : #ifdef STBI_NEON
+; 3784 : j->idct_block_kernel = stbi__idct_simd;
+; 3785 : j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd;
+; 3786 : j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd;
+; 3787 : #endif
+; 3788 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 3619 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 3620 : int i = 0;
+
+ 0002f c7 45 04 00 00
+ 00 00 mov DWORD PTR i$[rbp], 0
+
+; 3621 :
+; 3622 : #ifdef STBI_SSE2
+; 3623 : // step == 3 is pretty ugly on the final interleave, and i'm not convinced
+; 3624 : // it's useful in practice (you wouldn't use it for textures, for example).
+; 3625 : // so just accelerate step == 4 case.
+; 3626 : 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
+
+; 3627 : // this is a fairly straightforward implementation and not super-optimized.
+; 3628 : __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
+
+; 3629 : __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
+
+; 3630 : __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
+
+; 3631 : __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
+
+; 3632 : __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
+
+; 3633 : __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
+
+; 3634 : __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
+
+; 3635 :
+; 3636 : 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
+
+; 3637 : // load
+; 3638 : __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
+
+; 3639 : __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
+
+; 3640 : __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
+
+; 3641 : __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
+
+; 3642 : __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
+
+; 3643 :
+; 3644 : // unpack to short (and left-shift cr, cb by 8)
+; 3645 : __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
+
+; 3646 : __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
+
+; 3647 : __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
+
+; 3648 :
+; 3649 : // color transform
+; 3650 : __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
+
+; 3651 : __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
+
+; 3652 : __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
+
+; 3653 : __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
+
+; 3654 : __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
+
+; 3655 : __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
+
+; 3656 : __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
+
+; 3657 : __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
+
+; 3658 : __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
+
+; 3659 :
+; 3660 : // descale
+; 3661 : __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
+
+; 3662 : __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
+
+; 3663 : __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
+
+; 3664 :
+; 3665 : // back to byte, set up for transpose
+; 3666 : __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
+
+; 3667 : __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
+
+; 3668 :
+; 3669 : // transpose to interleave channels
+; 3670 : __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
+
+; 3671 : __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
+
+; 3672 : __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
+
+; 3673 : __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
+
+; 3674 :
+; 3675 : // store
+; 3676 : _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
+
+; 3677 : _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
+
+; 3678 : 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
+
+; 3679 : }
+
+ 00366 e9 44 fd ff ff jmp $LN2@stbi__YCbC
+$LN3@stbi__YCbC:
+$LN8@stbi__YCbC:
+
+; 3680 : }
+; 3681 : #endif
+; 3682 :
+; 3683 : #ifdef STBI_NEON
+; 3684 : // in this version, step=3 support would be easy to add. but is there demand?
+; 3685 : if (step == 4) {
+; 3686 : // this is a fairly straightforward implementation and not super-optimized.
+; 3687 : uint8x8_t signflip = vdup_n_u8(0x80);
+; 3688 : int16x8_t cr_const0 = vdupq_n_s16((short)(1.40200f * 4096.0f + 0.5f));
+; 3689 : int16x8_t cr_const1 = vdupq_n_s16(-(short)(0.71414f * 4096.0f + 0.5f));
+; 3690 : int16x8_t cb_const0 = vdupq_n_s16(-(short)(0.34414f * 4096.0f + 0.5f));
+; 3691 : int16x8_t cb_const1 = vdupq_n_s16((short)(1.77200f * 4096.0f + 0.5f));
+; 3692 :
+; 3693 : for (; i + 7 < count; i += 8) {
+; 3694 : // load
+; 3695 : uint8x8_t y_bytes = vld1_u8(y + i);
+; 3696 : uint8x8_t cr_bytes = vld1_u8(pcr + i);
+; 3697 : uint8x8_t cb_bytes = vld1_u8(pcb + i);
+; 3698 : int8x8_t cr_biased = vreinterpret_s8_u8(vsub_u8(cr_bytes, signflip));
+; 3699 : int8x8_t cb_biased = vreinterpret_s8_u8(vsub_u8(cb_bytes, signflip));
+; 3700 :
+; 3701 : // expand to s16
+; 3702 : int16x8_t yws = vreinterpretq_s16_u16(vshll_n_u8(y_bytes, 4));
+; 3703 : int16x8_t crw = vshll_n_s8(cr_biased, 7);
+; 3704 : int16x8_t cbw = vshll_n_s8(cb_biased, 7);
+; 3705 :
+; 3706 : // color transform
+; 3707 : int16x8_t cr0 = vqdmulhq_s16(crw, cr_const0);
+; 3708 : int16x8_t cb0 = vqdmulhq_s16(cbw, cb_const0);
+; 3709 : int16x8_t cr1 = vqdmulhq_s16(crw, cr_const1);
+; 3710 : int16x8_t cb1 = vqdmulhq_s16(cbw, cb_const1);
+; 3711 : int16x8_t rws = vaddq_s16(yws, cr0);
+; 3712 : int16x8_t gws = vaddq_s16(vaddq_s16(yws, cb0), cr1);
+; 3713 : int16x8_t bws = vaddq_s16(yws, cb1);
+; 3714 :
+; 3715 : // undo scaling, round, convert to byte
+; 3716 : uint8x8x4_t o;
+; 3717 : o.val[0] = vqrshrun_n_s16(rws, 4);
+; 3718 : o.val[1] = vqrshrun_n_s16(gws, 4);
+; 3719 : o.val[2] = vqrshrun_n_s16(bws, 4);
+; 3720 : o.val[3] = vdup_n_u8(255);
+; 3721 :
+; 3722 : // store, interleaving r/g/b/a
+; 3723 : vst4_u8(out, o);
+; 3724 : out += 8 * 4;
+; 3725 : }
+; 3726 : }
+; 3727 : #endif
+; 3728 :
+; 3729 : 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
+
+; 3730 : 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
+
+; 3731 : int r, g, b;
+; 3732 : 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
+
+; 3733 : 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
+
+; 3734 : 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
+
+; 3735 : 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
+
+; 3736 : ((cb * -stbi__float2fixed(0.34414f)) & 0xffff0000);
+; 3737 : 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
+
+; 3738 : 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
+
+; 3739 : 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
+
+; 3740 : 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
+
+; 3741 : 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
+
+; 3742 : 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
+
+; 3743 : 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:
+
+; 3744 : else
+; 3745 : 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:
+
+; 3746 : }
+; 3747 : 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
+
+; 3748 : 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
+
+; 3749 : 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:
+
+; 3750 : else
+; 3751 : 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:
+
+; 3752 : }
+; 3753 : 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
+
+; 3754 : 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
+
+; 3755 : 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:
+
+; 3756 : else
+; 3757 : 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:
+
+; 3758 : }
+; 3759 : 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
+
+; 3760 : 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
+
+; 3761 : 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
+
+; 3762 : 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
+
+; 3763 : 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
+
+; 3764 : }
+
+ 00560 e9 08 fe ff ff jmp $LN5@stbi__YCbC
+$LN6@stbi__YCbC:
+
+; 3765 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 3576 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 3577 : int i;
+; 3578 : 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
+
+; 3579 : 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
+
+; 3580 : int r, g, b;
+; 3581 : 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
+
+; 3582 : 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
+
+; 3583 : 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
+
+; 3584 : 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
+
+; 3585 : ((cb * -stbi__float2fixed(0.34414f)) & 0xffff0000);
+; 3586 : 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
+
+; 3587 : 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
+
+; 3588 : 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
+
+; 3589 : 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
+
+; 3590 : 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
+
+; 3591 : if (r < 0)
+
+ 00118 83 7d 44 00 cmp DWORD PTR r$2[rbp], 0
+ 0011c 7d 09 jge SHORT $LN6@stbi__YCbC
+
+; 3592 : 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:
+
+; 3593 : else
+; 3594 : r = 255;
+
+ 00127 c7 45 44 ff 00
+ 00 00 mov DWORD PTR r$2[rbp], 255 ; 000000ffH
+$LN7@stbi__YCbC:
+$LN5@stbi__YCbC:
+
+; 3595 : }
+; 3596 : 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
+
+; 3597 : if (g < 0)
+
+ 00137 83 7d 64 00 cmp DWORD PTR g$3[rbp], 0
+ 0013b 7d 09 jge SHORT $LN9@stbi__YCbC
+
+; 3598 : 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:
+
+; 3599 : else
+; 3600 : g = 255;
+
+ 00146 c7 45 64 ff 00
+ 00 00 mov DWORD PTR g$3[rbp], 255 ; 000000ffH
+$LN10@stbi__YCbC:
+$LN8@stbi__YCbC:
+
+; 3601 : }
+; 3602 : 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
+
+; 3603 : 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
+
+; 3604 : 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:
+
+; 3605 : else
+; 3606 : 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:
+
+; 3607 : }
+; 3608 : 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
+
+; 3609 : 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
+
+; 3610 : 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
+
+; 3611 : 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
+
+; 3612 : 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
+
+; 3613 : }
+
+ 001ef e9 44 fe ff ff jmp $LN2@stbi__YCbC
+$LN3@stbi__YCbC:
+
+; 3614 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 3561 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 3562 : // resample with nearest-neighbor
+; 3563 : int i, j;
+; 3564 : STBI_NOTUSED(in_far);
+; 3565 : 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
+
+; 3566 : 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
+
+; 3567 : 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:
+
+; 3568 : return out;
+
+ 00095 48 8b 85 20 01
+ 00 00 mov rax, QWORD PTR out$[rbp]
+
+; 3569 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 3444 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 3445 : // need to generate 2x2 samples for every one in input
+; 3446 : int i = 0, t0, t1;
+
+ 0002f c7 45 04 00 00
+ 00 00 mov DWORD PTR i$[rbp], 0
+
+; 3447 :
+; 3448 : 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
+
+; 3449 : 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
+
+; 3450 : 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:
+
+; 3451 : }
+; 3452 :
+; 3453 : 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
+
+; 3454 : // process groups of 8 pixels for as long as we can.
+; 3455 : // note we can't handle the last pixel in a row in this loop
+; 3456 : // because we need to handle the filter boundary conditions.
+; 3457 : 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
+
+; 3458 : #if defined(STBI_SSE2)
+; 3459 : // load and perform the vertical filtering pass
+; 3460 : // this uses 3*x + y = 4*x + (y - x)
+; 3461 : __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
+
+; 3462 : __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
+
+; 3463 : __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
+
+; 3464 : __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
+
+; 3465 : __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
+
+; 3466 : __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
+
+; 3467 : __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
+
+; 3468 : __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
+
+; 3469 :
+; 3470 : // horizontal filter works the same based on shifted vers of current
+; 3471 : // row. "prev" is current row shifted right by 1 pixel; we need to
+; 3472 : // insert the previous pixel value (from t1).
+; 3473 : // "next" is current row shifted left by 1 pixel, with first pixel
+; 3474 : // of next block of 8 pixels added in.
+; 3475 : __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
+
+; 3476 : __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
+
+; 3477 : __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
+
+; 3478 : __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
+
+; 3479 :
+; 3480 : // horizontal filter, polyphase implementation since it's convenient:
+; 3481 : // even pixels = 3*cur + prev = cur*4 + (prev - cur)
+; 3482 : // odd pixels = 3*cur + next = cur*4 + (next - cur)
+; 3483 : // note the shared term.
+; 3484 : __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
+
+; 3485 : __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
+
+; 3486 : __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
+
+; 3487 : __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
+
+; 3488 : __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
+
+; 3489 : __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
+
+; 3490 : __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
+
+; 3491 :
+; 3492 : // interleave even and odd pixels, then undo scaling.
+; 3493 : __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
+
+; 3494 : __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
+
+; 3495 : __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
+
+; 3496 : __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
+
+; 3497 :
+; 3498 : // pack and write output
+; 3499 : __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
+
+; 3500 : _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
+
+; 3501 : #elif defined(STBI_NEON)
+; 3502 : // load and perform the vertical filtering pass
+; 3503 : // this uses 3*x + y = 4*x + (y - x)
+; 3504 : uint8x8_t farb = vld1_u8(in_far + i);
+; 3505 : uint8x8_t nearb = vld1_u8(in_near + i);
+; 3506 : int16x8_t diff = vreinterpretq_s16_u16(vsubl_u8(farb, nearb));
+; 3507 : int16x8_t nears = vreinterpretq_s16_u16(vshll_n_u8(nearb, 2));
+; 3508 : int16x8_t curr = vaddq_s16(nears, diff); // current row
+; 3509 :
+; 3510 : // horizontal filter works the same based on shifted vers of current
+; 3511 : // row. "prev" is current row shifted right by 1 pixel; we need to
+; 3512 : // insert the previous pixel value (from t1).
+; 3513 : // "next" is current row shifted left by 1 pixel, with first pixel
+; 3514 : // of next block of 8 pixels added in.
+; 3515 : int16x8_t prv0 = vextq_s16(curr, curr, 7);
+; 3516 : int16x8_t nxt0 = vextq_s16(curr, curr, 1);
+; 3517 : int16x8_t prev = vsetq_lane_s16(t1, prv0, 0);
+; 3518 : int16x8_t next = vsetq_lane_s16(3 * in_near[i + 8] + in_far[i + 8], nxt0, 7);
+; 3519 :
+; 3520 : // horizontal filter, polyphase implementation since it's convenient:
+; 3521 : // even pixels = 3*cur + prev = cur*4 + (prev - cur)
+; 3522 : // odd pixels = 3*cur + next = cur*4 + (next - cur)
+; 3523 : // note the shared term.
+; 3524 : int16x8_t curs = vshlq_n_s16(curr, 2);
+; 3525 : int16x8_t prvd = vsubq_s16(prev, curr);
+; 3526 : int16x8_t nxtd = vsubq_s16(next, curr);
+; 3527 : int16x8_t even = vaddq_s16(curs, prvd);
+; 3528 : int16x8_t odd = vaddq_s16(curs, nxtd);
+; 3529 :
+; 3530 : // undo scaling and round, then store with even/odd phases interleaved
+; 3531 : uint8x8x2_t o;
+; 3532 : o.val[0] = vqrshrun_n_s16(even, 4);
+; 3533 : o.val[1] = vqrshrun_n_s16(odd, 4);
+; 3534 : vst2_u8(out + i * 2, o);
+; 3535 : #endif
+; 3536 :
+; 3537 : // "previous" value for next iter
+; 3538 : 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
+
+; 3539 : }
+
+ 00397 e9 4d fd ff ff jmp $LN2@stbi__resa
+$LN3@stbi__resa:
+
+; 3540 :
+; 3541 : t0 = t1;
+
+ 0039c 8b 45 44 mov eax, DWORD PTR t1$[rbp]
+ 0039f 89 45 24 mov DWORD PTR t0$[rbp], eax
+
+; 3542 : 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
+
+; 3543 : 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
+
+; 3544 :
+; 3545 : 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
+
+; 3546 : t0 = t1;
+
+ 00405 8b 45 44 mov eax, DWORD PTR t1$[rbp]
+ 00408 89 45 24 mov DWORD PTR t0$[rbp], eax
+
+; 3547 : 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
+
+; 3548 : 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
+
+; 3549 : 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
+
+; 3550 : }
+
+ 00473 e9 7a ff ff ff jmp $LN5@stbi__resa
+$LN6@stbi__resa:
+
+; 3551 : 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
+
+; 3552 :
+; 3553 : STBI_NOTUSED(hs);
+; 3554 :
+; 3555 : return out;
+
+ 00498 48 8b 85 40 07
+ 00 00 mov rax, QWORD PTR out$[rbp]
+$LN1@stbi__resa:
+
+; 3556 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 3418 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 3419 : // need to generate 2x2 samples for every one in input
+; 3420 : int i, t0, t1;
+; 3421 : 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
+
+; 3422 : 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
+
+; 3423 : 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:
+
+; 3424 : }
+; 3425 :
+; 3426 : 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
+
+; 3427 : 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
+
+; 3428 : 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
+
+; 3429 : t0 = t1;
+
+ 00118 8b 45 44 mov eax, DWORD PTR t1$[rbp]
+ 0011b 89 45 24 mov DWORD PTR t0$[rbp], eax
+
+; 3430 : 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
+
+; 3431 : 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
+
+; 3432 : 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
+
+; 3433 : }
+
+ 00186 e9 7a ff ff ff jmp $LN2@stbi__resa
+$LN3@stbi__resa:
+
+; 3434 : 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
+
+; 3435 :
+; 3436 : STBI_NOTUSED(hs);
+; 3437 :
+; 3438 : return out;
+
+ 001ab 48 8b 85 40 01
+ 00 00 mov rax, QWORD PTR out$[rbp]
+$LN1@stbi__resa:
+
+; 3439 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 3387 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 3388 : // need to generate two samples horizontally for every one in input
+; 3389 : int i;
+; 3390 : 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
+
+; 3391 :
+; 3392 : 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
+
+; 3393 : // if only one sample, can't do any interpolation
+; 3394 : 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
+
+; 3395 : 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:
+
+; 3396 : }
+; 3397 :
+; 3398 : 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
+
+; 3399 : 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
+
+; 3400 : 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
+
+; 3401 : 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
+
+; 3402 : 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
+
+; 3403 : 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
+
+; 3404 : }
+
+ 0018b e9 79 ff ff ff jmp $LN2@stbi__resa
+$LN3@stbi__resa:
+
+; 3405 : 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
+
+; 3406 : 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
+
+; 3407 :
+; 3408 : STBI_NOTUSED(in_far);
+; 3409 : STBI_NOTUSED(hs);
+; 3410 :
+; 3411 : return out;
+
+ 001f9 48 8b 85 40 01
+ 00 00 mov rax, QWORD PTR out$[rbp]
+$LN1@stbi__resa:
+
+; 3412 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 3376 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 3377 : // need to generate two samples vertically for every one in input
+; 3378 : int i;
+; 3379 : STBI_NOTUSED(hs);
+; 3380 : 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
+
+; 3381 : 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:
+
+; 3382 : return out;
+
+ 00083 48 8b 85 00 01
+ 00 00 mov rax, QWORD PTR out$[rbp]
+
+; 3383 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT resample_row_1
+_TEXT SEGMENT
+out$ = 224
+in_near$ = 232
+in_far$ = 240
+w$ = 248
+hs$ = 256
+resample_row_1 PROC ; COMDAT
+
+; 3366 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 3367 : STBI_NOTUSED(out);
+; 3368 : STBI_NOTUSED(in_far);
+; 3369 : STBI_NOTUSED(w);
+; 3370 : STBI_NOTUSED(hs);
+; 3371 : return in_near;
+
+ 0002f 48 8b 85 e8 00
+ 00 00 mov rax, QWORD PTR in_near$[rbp]
+
+; 3372 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__decode_jpeg_image
+_TEXT SEGMENT
+m$ = 4
+Ld$1 = 36
+NL$2 = 68
+j$ = 320
+stbi__decode_jpeg_image PROC ; COMDAT
+
+; 3317 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 3318 : int m;
+; 3319 : 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
+
+; 3320 : 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
+
+; 3321 : 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
+
+; 3322 : }
+
+ 0006d eb ba jmp SHORT $LN2@stbi__deco
+$LN3@stbi__deco:
+
+; 3323 : 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
+
+; 3324 : 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
+
+; 3325 : return 0;
+
+ 00092 33 c0 xor eax, eax
+ 00094 e9 8e 01 00 00 jmp $LN1@stbi__deco
+$LN7@stbi__deco:
+
+; 3326 : 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:
+
+; 3327 : 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
+
+; 3328 : 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
+
+; 3329 : 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
+
+; 3330 : return 0;
+
+ 000d5 33 c0 xor eax, eax
+ 000d7 e9 4b 01 00 00 jmp $LN1@stbi__deco
+$LN10@stbi__deco:
+
+; 3331 : 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
+
+; 3332 : return 0;
+
+ 000ec 33 c0 xor eax, eax
+ 000ee e9 34 01 00 00 jmp $LN1@stbi__deco
+$LN11@stbi__deco:
+
+; 3333 : 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
+
+; 3334 : 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:
+
+; 3335 : // if we reach eof without hitting a marker, stbi__get_marker() below will fail and we'll eventually return 0
+; 3336 : }
+; 3337 : 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
+
+; 3338 : 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
+
+; 3339 : 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:
+
+; 3340 : } 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
+
+; 3341 : 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
+
+; 3342 : 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
+
+; 3343 : if (Ld != 4)
+
+ 00189 83 7d 24 04 cmp DWORD PTR Ld$1[rbp], 4
+ 0018d 74 11 je SHORT $LN16@stbi__deco
+
+; 3344 : 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:
+
+; 3345 : 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
+
+; 3346 : 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:
+
+; 3347 : 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
+
+; 3348 : } else {
+
+ 001d2 eb 2c jmp SHORT $LN15@stbi__deco
+$LN14@stbi__deco:
+
+; 3349 : 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
+
+; 3350 : return 1;
+
+ 001e7 b8 01 00 00 00 mov eax, 1
+ 001ec eb 39 jmp SHORT $LN1@stbi__deco
+$LN18@stbi__deco:
+
+; 3351 : 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:
+
+; 3352 : }
+; 3353 : }
+
+ 00200 e9 a6 fe ff ff jmp $LN5@stbi__deco
+$LN6@stbi__deco:
+
+; 3354 : 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
+
+; 3355 : 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:
+
+; 3356 : return 1;
+
+ 00222 b8 01 00 00 00 mov eax, 1
+$LN1@stbi__deco:
+
+; 3357 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__skip_jpeg_junk_at_end
+_TEXT SEGMENT
+x$1 = 4
+j$ = 256
+stbi__skip_jpeg_junk_at_end PROC ; COMDAT
+
+; 3293 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+$LN2@stbi__skip:
+
+; 3294 : // some JPEGs have junk at end, skip over it but if we find what looks
+; 3295 : // like a valid marker, resume there
+; 3296 : 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 65 jne SHORT $LN3@stbi__skip
+
+; 3297 : int 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 0f b6 c0 movzx eax, al
+ 00045 89 45 04 mov DWORD PTR x$1[rbp], eax
+$LN4@stbi__skip:
+
+; 3298 : while (x == 255) { // might be a marker
+
+ 00048 81 7d 04 ff 00
+ 00 00 cmp DWORD PTR x$1[rbp], 255 ; 000000ffH
+ 0004f 75 45 jne SHORT $LN5@stbi__skip
+
+; 3299 : if (stbi__at_eof(j->s))
+
+ 00051 48 8b 85 00 01
+ 00 00 mov rax, QWORD PTR j$[rbp]
+ 00058 48 8b 08 mov rcx, QWORD PTR [rax]
+ 0005b e8 00 00 00 00 call stbi__at_eof
+ 00060 85 c0 test eax, eax
+ 00062 74 07 je SHORT $LN6@stbi__skip
+
+; 3300 : return STBI__MARKER_none;
+
+ 00064 b8 ff 00 00 00 mov eax, 255 ; 000000ffH
+ 00069 eb 32 jmp SHORT $LN1@stbi__skip
+$LN6@stbi__skip:
+
+; 3301 : x = stbi__get8(j->s);
+
+ 0006b 48 8b 85 00 01
+ 00 00 mov rax, QWORD PTR j$[rbp]
+ 00072 48 8b 08 mov rcx, QWORD PTR [rax]
+ 00075 e8 00 00 00 00 call stbi__get8
+ 0007a 0f b6 c0 movzx eax, al
+ 0007d 89 45 04 mov DWORD PTR x$1[rbp], eax
+
+; 3302 : if (x != 0x00 && x != 0xff) {
+
+ 00080 83 7d 04 00 cmp DWORD PTR x$1[rbp], 0
+ 00084 74 0e je SHORT $LN7@stbi__skip
+ 00086 81 7d 04 ff 00
+ 00 00 cmp DWORD PTR x$1[rbp], 255 ; 000000ffH
+ 0008d 74 05 je SHORT $LN7@stbi__skip
+
+; 3303 : // not a stuffed zero or lead-in to another marker, looks
+; 3304 : // like an actual marker, return it
+; 3305 : return x;
+
+ 0008f 8b 45 04 mov eax, DWORD PTR x$1[rbp]
+ 00092 eb 09 jmp SHORT $LN1@stbi__skip
+$LN7@stbi__skip:
+
+; 3306 : }
+; 3307 : // stuffed zero has x=0 now which ends the loop, meaning we go
+; 3308 : // back to regular scan loop.
+; 3309 : // repeated 0xff keeps trying to read the next byte of the marker.
+; 3310 : }
+
+ 00094 eb b2 jmp SHORT $LN4@stbi__skip
+$LN5@stbi__skip:
+
+; 3311 : }
+
+ 00096 eb 88 jmp SHORT $LN2@stbi__skip
+$LN3@stbi__skip:
+
+; 3312 : return STBI__MARKER_none;
+
+ 00098 b8 ff 00 00 00 mov eax, 255 ; 000000ffH
+$LN1@stbi__skip:
+
+; 3313 : }
+
+ 0009d 48 8d a5 e8 00
+ 00 00 lea rsp, QWORD PTR [rbp+232]
+ 000a4 5f pop rdi
+ 000a5 5d pop rbp
+ 000a6 c3 ret 0
+stbi__skip_jpeg_junk_at_end ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__decode_jpeg_header
+_TEXT SEGMENT
+m$ = 4
+tv131 = 212
+z$ = 256
+scan$ = 264
+stbi__decode_jpeg_header PROC ; COMDAT
+
+; 3264 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00023 90 npad 1
+
+; 3265 : int m;
+; 3266 : 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
+
+; 3267 : 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
+
+; 3268 : 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
+
+; 3269 : 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
+
+; 3270 : 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
+
+; 3271 : 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:
+
+; 3272 : 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
+
+; 3273 : return 1;
+
+ 00089 b8 01 00 00 00 mov eax, 1
+ 0008e e9 f1 00 00 00 jmp $LN1@stbi__deco
+$LN7@stbi__deco:
+
+; 3274 : 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:
+
+; 3275 : 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
+
+; 3276 : 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
+
+; 3277 : return 0;
+
+ 000d7 33 c0 xor eax, eax
+ 000d9 e9 a6 00 00 00 jmp $LN1@stbi__deco
+$LN8@stbi__deco:
+
+; 3278 : 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:
+
+; 3279 : 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
+
+; 3280 : // some files have extra padding after their blocks, so ok, we'll scan
+; 3281 : 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
+
+; 3282 : 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:
+
+; 3283 : 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
+
+; 3284 : }
+
+ 0012c eb c2 jmp SHORT $LN4@stbi__deco
+$LN5@stbi__deco:
+
+; 3285 : }
+
+ 0012e e9 72 ff ff ff jmp $LN2@stbi__deco
+$LN3@stbi__deco:
+
+; 3286 : 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
+
+; 3287 : 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
+
+; 3288 : return 0;
+
+ 0017b 33 c0 xor eax, eax
+ 0017d eb 05 jmp SHORT $LN1@stbi__deco
+$LN10@stbi__deco:
+
+; 3289 : return 1;
+
+ 0017f b8 01 00 00 00 mov eax, 1
+$LN1@stbi__deco:
+
+; 3290 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 3131 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00023 90 npad 1
+
+; 3132 : 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
+
+; 3133 : 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
+
+; 3134 : 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
+
+; 3135 : if (Lf < 11)
+
+ 00052 83 7d 24 0b cmp DWORD PTR Lf$[rbp], 11
+ 00056 7d 11 jge SHORT $LN17@stbi__proc
+
+; 3136 : 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:
+
+; 3137 : 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
+
+; 3138 : if (p != 8)
+
+ 00078 83 7d 44 08 cmp DWORD PTR p$[rbp], 8
+ 0007c 74 11 je SHORT $LN18@stbi__proc
+
+; 3139 : 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:
+
+; 3140 : "JPEG format not supported: 8-bit only"); // JPEG baseline
+; 3141 : 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
+
+; 3142 : 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
+
+; 3143 : 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:
+
+; 3144 : "no header height",
+; 3145 : "JPEG format not supported: delayed height"); // Legal, but we don't handle it--but neither does IJG
+; 3146 : 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
+
+; 3147 : 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
+
+; 3148 : 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:
+
+; 3149 : 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
+
+; 3150 : 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:
+
+; 3151 : 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
+
+; 3152 : 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:
+
+; 3153 : 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
+
+; 3154 : 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
+
+; 3155 : 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:
+
+; 3156 : 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
+
+; 3157 : 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
+
+; 3158 : 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
+
+; 3159 : 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
+
+; 3160 : }
+
+ 001bb eb b5 jmp SHORT $LN2@stbi__proc
+$LN3@stbi__proc:
+
+; 3161 :
+; 3162 : 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
+
+; 3163 : 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:
+
+; 3164 :
+; 3165 : 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
+
+; 3166 : 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
+
+; 3167 : static const unsigned char rgb[3] = { 'R', 'G', 'B' };
+; 3168 : 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
+
+; 3169 : 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
+
+; 3170 : ++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:
+
+; 3171 : 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
+
+; 3172 : 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
+
+; 3173 : 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:
+
+; 3174 : 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:
+
+; 3175 : 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
+
+; 3176 : 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:
+
+; 3177 : 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:
+
+; 3178 : 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
+
+; 3179 : 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
+
+; 3180 : 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:
+
+; 3181 : }
+
+ 003a1 e9 52 fe ff ff jmp $LN5@stbi__proc
+$LN6@stbi__proc:
+
+; 3182 :
+; 3183 : 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
+
+; 3184 : return 1;
+
+ 003af b8 01 00 00 00 mov eax, 1
+ 003b4 e9 c1 05 00 00 jmp $LN1@stbi__proc
+$LN31@stbi__proc:
+
+; 3185 :
+; 3186 : 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
+
+; 3187 : 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:
+
+; 3188 :
+; 3189 : 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
+
+; 3190 : 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
+
+; 3191 : 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:
+
+; 3192 : 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
+
+; 3193 : 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:
+
+; 3194 : }
+
+ 0047c e9 73 ff ff ff jmp $LN8@stbi__proc
+$LN9@stbi__proc:
+
+; 3195 :
+; 3196 : // check that plane subsampling factors are integer ratios; our resamplers can't deal with fractional ratios
+; 3197 : // and I've never seen a non-corrupted JPEG file actually use them
+; 3198 : 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
+
+; 3199 : 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
+
+; 3200 : 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:
+
+; 3201 : 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
+
+; 3202 : 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:
+
+; 3203 : }
+
+ 00528 e9 5d ff ff ff jmp $LN11@stbi__proc
+$LN12@stbi__proc:
+
+; 3204 :
+; 3205 : // compute interleaved mcu info
+; 3206 : 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
+
+; 3207 : 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
+
+; 3208 : 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
+
+; 3209 : 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
+
+; 3210 : // these sizes can't be more than 17 bits
+; 3211 : 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
+
+; 3212 : 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
+
+; 3213 :
+; 3214 : 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
+
+; 3215 : // number of effective pixels (e.g. for non-interleaved MCU)
+; 3216 : 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
+
+; 3217 : 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
+
+; 3218 : // to simplify generation, we'll allocate enough memory to decode
+; 3219 : // the bogus oversized data from using interleaved MCUs and their
+; 3220 : // big blocks (e.g. a 16x16 iMCU on an image of width 33); we won't
+; 3221 : // discard the extra data until colorspace conversion
+; 3222 : //
+; 3223 : // img_mcu_x, img_mcu_y: <=17 bits; comp[i].h and .v are <=4 (checked earlier)
+; 3224 : // so these muls can't overflow with 32-bit ints (which we require)
+; 3225 : 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
+
+; 3226 : 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
+
+; 3227 : 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
+
+; 3228 : 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
+
+; 3229 : 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
+
+; 3230 : 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
+
+; 3231 : stbi__malloc_mad2(z->img_comp[i].w2, z->img_comp[i].h2, 15);
+; 3232 : 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
+
+; 3233 : 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:
+
+; 3234 : stbi__err("outofmem", "Out of memory"));
+; 3235 : // align blocks for idct using mmx/sse
+; 3236 : 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
+
+; 3237 : 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
+
+; 3238 : // w2, h2 are multiples of 8 (see above)
+; 3239 : 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
+
+; 3240 : 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
+
+; 3241 : 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
+
+; 3242 : z->img_comp[i].w2, z->img_comp[i].h2, sizeof(short), 15);
+; 3243 : 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
+
+; 3244 : 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:
+
+; 3245 : z, i + 1, stbi__err("outofmem", "Out of memory"));
+; 3246 : 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:
+
+; 3247 : (short *)(((size_t)z->img_comp[i].raw_coeff + 15) & ~15);
+; 3248 : }
+; 3249 : }
+
+ 00970 e9 7a fc ff ff jmp $LN14@stbi__proc
+$LN15@stbi__proc:
+
+; 3250 :
+; 3251 : return 1;
+
+ 00975 b8 01 00 00 00 mov eax, 1
+$LN1@stbi__proc:
+
+; 3252 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__free_jpeg_components
+_TEXT SEGMENT
+i$ = 4
+z$ = 256
+ncomp$ = 264
+why$ = 272
+stbi__free_jpeg_components PROC ; COMDAT
+
+; 3109 : {
+
+ 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:__079B8C84_stb_image@c
+ 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00028 90 npad 1
+
+; 3110 : int i;
+; 3111 : 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
+
+; 3112 : 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
+
+; 3113 : 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
+
+; 3114 : 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
+
+; 3115 : 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:
+
+; 3116 : }
+; 3117 : 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
+
+; 3118 : 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
+
+; 3119 : 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
+
+; 3120 : 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:
+
+; 3121 : }
+; 3122 : 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
+
+; 3123 : 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
+
+; 3124 : 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:
+
+; 3125 : }
+; 3126 : }
+
+ 00178 e9 b5 fe ff ff jmp $LN2@stbi__free
+$LN3@stbi__free:
+
+; 3127 : return why;
+
+ 0017d 8b 85 10 01 00
+ 00 mov eax, DWORD PTR why$[rbp]
+
+; 3128 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 3060 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 3061 : int i;
+; 3062 : 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
+
+; 3063 : 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
+
+; 3064 : 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:
+
+; 3065 : 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:
+
+; 3066 : 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
+
+; 3067 : 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:
+
+; 3068 : 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
+
+; 3069 : 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
+
+; 3070 : 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
+
+; 3071 : 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
+
+; 3072 : 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
+
+; 3073 : break;
+
+ 00157 eb 02 jmp SHORT $LN6@stbi__proc
+$LN11@stbi__proc:
+ 00159 eb c7 jmp SHORT $LN5@stbi__proc
+$LN6@stbi__proc:
+
+; 3074 : 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
+
+; 3075 : return 0; // no match
+
+ 0016d 33 c0 xor eax, eax
+ 0016f e9 0c 02 00 00 jmp $LN1@stbi__proc
+$LN12@stbi__proc:
+
+; 3076 : 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
+
+; 3077 : 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
+
+; 3078 : 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:
+
+; 3079 : 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
+
+; 3080 : 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
+
+; 3081 : 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:
+
+; 3082 : 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
+
+; 3083 : }
+
+ 0021b e9 ae fe ff ff jmp $LN2@stbi__proc
+$LN3@stbi__proc:
+
+; 3084 :
+; 3085 : {
+; 3086 : int aa;
+; 3087 : 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
+
+; 3088 : 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
+
+; 3089 : 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
+
+; 3090 : 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
+
+; 3091 : 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
+
+; 3092 : 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
+
+; 3093 : if (z->spec_start > 63 || z->spec_end > 63 || z->spec_start > z->spec_end ||
+; 3094 : 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:
+
+; 3095 : 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:
+
+; 3096 : } else {
+
+ 0031c eb 5d jmp SHORT $LN16@stbi__proc
+$LN15@stbi__proc:
+
+; 3097 : 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
+
+; 3098 : 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:
+
+; 3099 : 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:
+
+; 3100 : 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:
+
+; 3101 : 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:
+
+; 3102 : }
+; 3103 : }
+; 3104 :
+; 3105 : return 1;
+
+ 0037b b8 01 00 00 00 mov eax, 1
+$LN1@stbi__proc:
+
+; 3106 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 2945 : {
+
+ 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:__079B8C84_stb_image@c
+ 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0004d 90 npad 1
+
+; 2946 : int L;
+; 2947 : 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:
+
+; 2948 : case STBI__MARKER_none: // no marker found
+; 2949 : 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:
+
+; 2950 :
+; 2951 : case 0xDD: // DRI - specify restart interval
+; 2952 : 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
+
+; 2953 : 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:
+
+; 2954 : 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
+
+; 2955 : return 1;
+
+ 000e5 b8 01 00 00 00 mov eax, 1
+ 000ea e9 56 06 00 00 jmp $LN1@stbi__proc
+$LN26@stbi__proc:
+
+; 2956 :
+; 2957 : case 0xDB: // DQT - define quantization table
+; 2958 : 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:
+
+; 2959 : 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
+
+; 2960 : 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
+
+; 2961 : 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
+
+; 2962 : 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
+
+; 2963 : 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
+
+; 2964 : 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:
+
+; 2965 : 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
+
+; 2966 : 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:
+
+; 2967 :
+; 2968 : 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
+
+; 2969 : 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:
+
+; 2970 : (stbi__uint16)(sixteen ? stbi__get16be(z->s) :
+; 2971 : stbi__get8(z->s));
+; 2972 : 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
+
+; 2973 : }
+
+ 00257 e9 a8 fe ff ff jmp $LN4@stbi__proc
+$LN5@stbi__proc:
+
+; 2974 : 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:
+
+; 2975 :
+; 2976 : case 0xC4: // DHT - define huffman table
+; 2977 : 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:
+
+; 2978 : 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
+
+; 2979 : stbi_uc *v;
+; 2980 : int sizes[16], i, n = 0;
+
+ 002a2 c7 85 64 01 00
+ 00 00 00 00 00 mov DWORD PTR n$12[rbp], 0
+
+; 2981 : 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
+
+; 2982 : 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
+
+; 2983 : 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
+
+; 2984 : 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:
+
+; 2985 : 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:
+
+; 2986 : 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
+
+; 2987 : 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
+
+; 2988 : 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
+
+; 2989 : }
+
+ 00366 eb a9 jmp SHORT $LN11@stbi__proc
+$LN12@stbi__proc:
+
+; 2990 : 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
+
+; 2991 : 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:
+
+; 2992 : "bad DHT header",
+; 2993 : "Corrupt JPEG"); // Loop over i < n would write past end of values!
+; 2994 : 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
+
+; 2995 : 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
+
+; 2996 : 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
+
+; 2997 : return 0;
+
+ 003c4 33 c0 xor eax, eax
+ 003c6 e9 7a 03 00 00 jmp $LN1@stbi__proc
+$LN35@stbi__proc:
+
+; 2998 : 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
+
+; 2999 : } else {
+
+ 003ef eb 5b jmp SHORT $LN34@stbi__proc
+$LN33@stbi__proc:
+
+; 3000 : 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
+
+; 3001 : return 0;
+
+ 00421 33 c0 xor eax, eax
+ 00423 e9 1d 03 00 00 jmp $LN1@stbi__proc
+$LN36@stbi__proc:
+
+; 3002 : 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:
+
+; 3003 : }
+; 3004 : 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
+
+; 3005 : 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:
+
+; 3006 : 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
+
+; 3007 : 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:
+
+; 3008 : 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
+
+; 3009 : }
+
+ 004f2 e9 a1 fd ff ff jmp $LN9@stbi__proc
+$LN10@stbi__proc:
+
+; 3010 : 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:
+
+; 3011 : }
+; 3012 :
+; 3013 : // check for comment block or APP blocks
+; 3014 : 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:
+
+; 3015 : 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
+
+; 3016 : if (L < 2) {
+
+ 00558 83 7d 04 02 cmp DWORD PTR L$[rbp], 2
+ 0055c 7d 30 jge SHORT $LN41@stbi__proc
+
+; 3017 : 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
+
+; 3018 : 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:
+
+; 3019 : else
+; 3020 : 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:
+
+; 3021 : }
+; 3022 : 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
+
+; 3023 :
+; 3024 : 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
+
+; 3025 : static const unsigned char tag[5] = { 'J', 'F', 'I', 'F', '\0' };
+; 3026 : int ok = 1;
+
+ 005b1 c7 85 e4 01 00
+ 00 01 00 00 00 mov DWORD PTR ok$16[rbp], 1
+
+; 3027 : int i;
+; 3028 : 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
+
+; 3029 : 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
+
+; 3030 : 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:
+
+; 3031 : 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
+
+; 3032 : 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
+
+; 3033 : 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:
+
+; 3034 : } 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
+
+; 3035 : static const unsigned char tag[6] = { 'A', 'd', 'o', 'b', 'e', '\0' };
+; 3036 : int ok = 1;
+
+ 00654 c7 85 24 02 00
+ 00 01 00 00 00 mov DWORD PTR ok$18[rbp], 1
+
+; 3037 : int i;
+; 3038 : 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
+
+; 3039 : 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
+
+; 3040 : 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:
+
+; 3041 : 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
+
+; 3042 : 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
+
+; 3043 : 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
+
+; 3044 : 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
+
+; 3045 : 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
+
+; 3046 : 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
+
+; 3047 : 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:
+
+; 3048 : }
+; 3049 : }
+; 3050 :
+; 3051 : 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
+
+; 3052 : return 1;
+
+ 00732 b8 01 00 00 00 mov eax, 1
+ 00737 eb 0c jmp SHORT $LN1@stbi__proc
+$LN38@stbi__proc:
+
+; 3053 : }
+; 3054 :
+; 3055 : 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:
+
+; 3056 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 2922 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 2923 : 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
+
+; 2924 : // dequantize and idct the data
+; 2925 : int i, j, n;
+; 2926 : 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
+
+; 2927 : 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
+
+; 2928 : 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
+
+; 2929 : 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
+
+; 2930 : 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
+
+; 2931 : 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
+
+; 2932 : 64 * (i + j * z->img_comp[n].coeff_w);
+; 2933 : 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
+
+; 2934 : 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
+
+; 2935 : z->img_comp[n].w2 * j * 8 +
+; 2936 : i * 8,
+; 2937 : z->img_comp[n].w2, data);
+; 2938 : }
+
+ 001d6 e9 ea fe ff ff jmp $LN8@stbi__jpeg
+$LN9@stbi__jpeg:
+
+; 2939 : }
+
+ 001db e9 c5 fe ff ff jmp $LN5@stbi__jpeg
+$LN6@stbi__jpeg:
+
+; 2940 : }
+
+ 001e0 e9 58 fe ff ff jmp $LN2@stbi__jpeg
+$LN3@stbi__jpeg:
+$LN11@stbi__jpeg:
+
+; 2941 : }
+; 2942 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__jpeg_dequantize
+_TEXT SEGMENT
+i$ = 4
+data$ = 256
+dequant$ = 264
+stbi__jpeg_dequantize PROC ; COMDAT
+
+; 2915 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 2916 : int i;
+; 2917 : 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
+
+; 2918 : 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:
+
+; 2919 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 2745 : {
+
+ 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:__079B8C84_stb_image@c
+ 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00049 90 npad 1
+
+; 2746 : 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
+
+; 2747 : 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
+
+; 2748 : 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
+
+; 2749 : int i, j;
+; 2750 : STBI_SIMD_ALIGN(short, data[64]);
+; 2751 : 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
+
+; 2752 : // non-interleaved data, we just need to process one block at a time,
+; 2753 : // in trivial scanline order
+; 2754 : // number of blocks to do just depends on how many actual "pixels" this
+; 2755 : // component has, independent of interleaved MCU blocking and such
+; 2756 : 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
+
+; 2757 : 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
+
+; 2758 : 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
+
+; 2759 : 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
+
+; 2760 : 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
+
+; 2761 : 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
+
+; 2762 : z, data, z->huff_dc + z->img_comp[n].hd,
+; 2763 : z->huff_ac + ha, z->fast_ac[ha], n,
+; 2764 : z->dequant[z->img_comp[n].tq]))
+; 2765 : return 0;
+
+ 00207 33 c0 xor eax, eax
+ 00209 e9 6f 0a 00 00 jmp $LN1@stbi__pars
+$LN48@stbi__pars:
+
+; 2766 : 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
+
+; 2767 : z->img_comp[n].w2 * j * 8 +
+; 2768 : i * 8,
+; 2769 : z->img_comp[n].w2, data);
+; 2770 : // every data block is an MCU, so countdown the restart interval
+; 2771 : 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
+
+; 2772 : 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
+
+; 2773 : 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:
+
+; 2774 : // if it's NOT a restart, then just bail, so we get corrupt data
+; 2775 : // rather than no data
+; 2776 : 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:
+
+; 2777 : return 1;
+
+ 002fe b8 01 00 00 00 mov eax, 1
+ 00303 e9 75 09 00 00 jmp $LN1@stbi__pars
+$LN51@stbi__pars:
+
+; 2778 : 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:
+
+; 2779 : }
+; 2780 : }
+
+ 00315 e9 f5 fd ff ff jmp $LN5@stbi__pars
+$LN6@stbi__pars:
+
+; 2781 : }
+
+ 0031a e9 d0 fd ff ff jmp $LN2@stbi__pars
+$LN3@stbi__pars:
+
+; 2782 : return 1;
+
+ 0031f b8 01 00 00 00 mov eax, 1
+ 00324 e9 54 09 00 00 jmp $LN1@stbi__pars
+
+; 2783 : } else { // interleaved
+
+ 00329 e9 aa 03 00 00 jmp $LN47@stbi__pars
+$LN46@stbi__pars:
+
+; 2784 : int i, j, k, x, y;
+; 2785 : STBI_SIMD_ALIGN(short, data[64]);
+; 2786 : 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
+
+; 2787 : 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
+
+; 2788 : // scan an interleaved mcu... process scan_n components in order
+; 2789 : 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
+
+; 2790 : 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
+
+; 2791 : // scan out an mcu's worth of this component; that's just determined
+; 2792 : // by the basic H and V specified for the component
+; 2793 : 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
+
+; 2794 : 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
+
+; 2795 : 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
+
+; 2796 : (i * z->img_comp[n].h + x) *
+; 2797 : 8;
+; 2798 : 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
+
+; 2799 : (j * z->img_comp[n].v + y) *
+; 2800 : 8;
+; 2801 : 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
+
+; 2802 : 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
+
+; 2803 : z, data,
+; 2804 : z->huff_dc +
+; 2805 : z->img_comp[n]
+; 2806 : .hd,
+; 2807 : z->huff_ac + ha,
+; 2808 : z->fast_ac[ha], n,
+; 2809 : z->dequant[z->img_comp[n]
+; 2810 : .tq]))
+; 2811 : return 0;
+
+ 005a6 33 c0 xor eax, eax
+ 005a8 e9 d0 06 00 00 jmp $LN1@stbi__pars
+$LN53@stbi__pars:
+
+; 2812 : 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
+
+; 2813 : z->img_comp[n].data +
+; 2814 : z->img_comp[n].w2 *
+; 2815 : y2 +
+; 2816 : x2,
+; 2817 : z->img_comp[n].w2, data);
+; 2818 : }
+
+ 00626 e9 02 fe ff ff jmp $LN20@stbi__pars
+$LN21@stbi__pars:
+
+; 2819 : }
+
+ 0062b e9 be fd ff ff jmp $LN17@stbi__pars
+$LN18@stbi__pars:
+
+; 2820 : }
+
+ 00630 e9 6b fd ff ff jmp $LN14@stbi__pars
+$LN15@stbi__pars:
+
+; 2821 : // after all interleaved components, that's an interleaved MCU,
+; 2822 : // so now count down the restart interval
+; 2823 : 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
+
+; 2824 : 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
+
+; 2825 : 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:
+
+; 2826 : 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:
+
+; 2827 : return 1;
+
+ 006ad b8 01 00 00 00 mov eax, 1
+ 006b2 e9 c6 05 00 00 jmp $LN1@stbi__pars
+$LN56@stbi__pars:
+
+; 2828 : 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:
+
+; 2829 : }
+; 2830 : }
+
+ 006c4 e9 a4 fc ff ff jmp $LN11@stbi__pars
+$LN12@stbi__pars:
+
+; 2831 : }
+
+ 006c9 e9 6c fc ff ff jmp $LN8@stbi__pars
+$LN9@stbi__pars:
+
+; 2832 : return 1;
+
+ 006ce b8 01 00 00 00 mov eax, 1
+ 006d3 e9 a5 05 00 00 jmp $LN1@stbi__pars
+$LN47@stbi__pars:
+
+; 2833 : }
+; 2834 : } else {
+
+ 006d8 e9 a0 05 00 00 jmp $LN45@stbi__pars
+$LN44@stbi__pars:
+
+; 2835 : 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
+
+; 2836 : int i, j;
+; 2837 : 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
+
+; 2838 : // non-interleaved data, we just need to process one block at a time,
+; 2839 : // in trivial scanline order
+; 2840 : // number of blocks to do just depends on how many actual "pixels" this
+; 2841 : // component has, independent of interleaved MCU blocking and such
+; 2842 : 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
+
+; 2843 : 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
+
+; 2844 : 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
+
+; 2845 : 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
+
+; 2846 : 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
+
+; 2847 : 64 * (i + j * z->img_comp[n].coeff_w);
+; 2848 : 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
+
+; 2849 : 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
+
+; 2850 : z, data, &z->huff_dc[z->img_comp[n].hd],
+; 2851 : n))
+; 2852 : return 0;
+
+ 00868 33 c0 xor eax, eax
+ 0086a e9 0e 04 00 00 jmp $LN1@stbi__pars
+$LN62@stbi__pars:
+
+; 2853 : } else {
+
+ 0086f eb 7d jmp SHORT $LN61@stbi__pars
+$LN60@stbi__pars:
+
+; 2854 : 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
+
+; 2855 : 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
+
+; 2856 : z, data, &z->huff_ac[ha],
+; 2857 : z->fast_ac[ha]))
+; 2858 : return 0;
+
+ 008e7 33 c0 xor eax, eax
+ 008e9 e9 8f 03 00 00 jmp $LN1@stbi__pars
+$LN63@stbi__pars:
+$LN61@stbi__pars:
+
+; 2859 : }
+; 2860 : // every data block is an MCU, so countdown the restart interval
+; 2861 : 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
+
+; 2862 : 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
+
+; 2863 : 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:
+
+; 2864 : 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:
+
+; 2865 : return 1;
+
+ 00966 b8 01 00 00 00 mov eax, 1
+ 0096b e9 0d 03 00 00 jmp $LN1@stbi__pars
+$LN66@stbi__pars:
+
+; 2866 : 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:
+
+; 2867 : }
+; 2868 : }
+
+ 0097d e9 0e fe ff ff jmp $LN26@stbi__pars
+$LN27@stbi__pars:
+
+; 2869 : }
+
+ 00982 e9 dd fd ff ff jmp $LN23@stbi__pars
+$LN24@stbi__pars:
+
+; 2870 : return 1;
+
+ 00987 b8 01 00 00 00 mov eax, 1
+ 0098c e9 ec 02 00 00 jmp $LN1@stbi__pars
+
+; 2871 : } else { // interleaved
+
+ 00991 e9 e7 02 00 00 jmp $LN59@stbi__pars
+$LN58@stbi__pars:
+
+; 2872 : int i, j, k, x, y;
+; 2873 : 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
+
+; 2874 : 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
+
+; 2875 : // scan an interleaved mcu... process scan_n components in order
+; 2876 : 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
+
+; 2877 : 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
+
+; 2878 : // scan out an mcu's worth of this component; that's just determined
+; 2879 : // by the basic H and V specified for the component
+; 2880 : 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
+
+; 2881 : 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
+
+; 2882 : 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
+
+; 2883 : 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
+
+; 2884 : 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
+
+; 2885 : z->img_comp[n].coeff +
+; 2886 : 64 * (x2 +
+; 2887 : y2 * z->img_comp[n]
+; 2888 : .coeff_w);
+; 2889 : 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
+
+; 2890 : z, data,
+; 2891 : &z->huff_dc[z->img_comp[n]
+; 2892 : .hd],
+; 2893 : n))
+; 2894 : return 0;
+
+ 00bcc 33 c0 xor eax, eax
+ 00bce e9 aa 00 00 00 jmp $LN1@stbi__pars
+$LN68@stbi__pars:
+
+; 2895 : }
+
+ 00bd3 e9 bd fe ff ff jmp $LN41@stbi__pars
+$LN42@stbi__pars:
+
+; 2896 : }
+
+ 00bd8 e9 79 fe ff ff jmp $LN38@stbi__pars
+$LN39@stbi__pars:
+
+; 2897 : }
+
+ 00bdd e9 26 fe ff ff jmp $LN35@stbi__pars
+$LN36@stbi__pars:
+
+; 2898 : // after all interleaved components, that's an interleaved MCU,
+; 2899 : // so now count down the restart interval
+; 2900 : 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
+
+; 2901 : 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
+
+; 2902 : 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:
+
+; 2903 : 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:
+
+; 2904 : return 1;
+
+ 00c5a b8 01 00 00 00 mov eax, 1
+ 00c5f eb 1c jmp SHORT $LN1@stbi__pars
+$LN71@stbi__pars:
+
+; 2905 : 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:
+
+; 2906 : }
+; 2907 : }
+
+ 00c6e e9 62 fd ff ff jmp $LN32@stbi__pars
+$LN33@stbi__pars:
+
+; 2908 : }
+
+ 00c73 e9 2a fd ff ff jmp $LN29@stbi__pars
+$LN30@stbi__pars:
+
+; 2909 : return 1;
+
+ 00c78 b8 01 00 00 00 mov eax, 1
+$LN59@stbi__pars:
+$LN45@stbi__pars:
+$LN1@stbi__pars:
+
+; 2910 : }
+; 2911 : }
+; 2912 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__jpeg_reset
+_TEXT SEGMENT
+tv88 = 192
+j$ = 240
+stbi__jpeg_reset PROC ; COMDAT
+
+; 2731 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 2732 : 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
+
+; 2733 : 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
+
+; 2734 : 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
+
+; 2735 : 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
+
+; 2736 : j->img_comp[3].dc_pred = 0;
+; 2737 : 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
+
+; 2738 : 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
+
+; 2739 : 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
+
+; 2740 : // no more than 1<<31 MCUs if no restart_interal? that's plenty safe,
+; 2741 : // since we don't even allow 1<<30 pixels
+; 2742 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__get_marker
+_TEXT SEGMENT
+x$ = 4
+j$ = 256
+stbi__get_marker PROC ; COMDAT
+
+; 2709 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 2710 : stbi_uc x;
+; 2711 : 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_
+
+; 2712 : 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
+
+; 2713 : 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
+
+; 2714 : return x;
+
+ 00054 0f b6 45 04 movzx eax, BYTE PTR x$[rbp]
+ 00058 eb 44 jmp SHORT $LN1@stbi__get_
+$LN4@stbi__get_:
+
+; 2715 : }
+; 2716 : 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
+
+; 2717 : 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_
+
+; 2718 : 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_:
+
+; 2719 : 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_
+
+; 2720 : 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_:
+
+; 2721 : return x;
+
+ 0009a 0f b6 45 04 movzx eax, BYTE PTR x$[rbp]
+$LN1@stbi__get_:
+
+; 2722 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 2267 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 2268 : // This is constructed to match our regular (generic) integer IDCT exactly.
+; 2269 : __m128i row0, row1, row2, row3, row4, row5, row6, row7;
+; 2270 : __m128i tmp;
+; 2271 :
+; 2272 : // dot product constant: even elems=x, odd elems=y
+; 2273 : #define dct_const(x, y) _mm_setr_epi16((x), (y), (x), (y), (x), (y), (x), (y))
+; 2274 :
+; 2275 : // out(0) = c0[even]*x + c0[odd]*y (c0, x, y 16-bit, out 32-bit)
+; 2276 : // out(1) = c1[even]*x + c1[odd]*y
+; 2277 : #define dct_rot(out0, out1, x, y, c0, c1) \
+; 2278 : __m128i c0##lo = _mm_unpacklo_epi16((x), (y)); \
+; 2279 : __m128i c0##hi = _mm_unpackhi_epi16((x), (y)); \
+; 2280 : __m128i out0##_l = _mm_madd_epi16(c0##lo, c0); \
+; 2281 : __m128i out0##_h = _mm_madd_epi16(c0##hi, c0); \
+; 2282 : __m128i out1##_l = _mm_madd_epi16(c0##lo, c1); \
+; 2283 : __m128i out1##_h = _mm_madd_epi16(c0##hi, c1)
+; 2284 :
+; 2285 : // out = in << 12 (in 16-bit, out 32-bit)
+; 2286 : #define dct_widen(out, in) \
+; 2287 : __m128i out##_l = _mm_srai_epi32(_mm_unpacklo_epi16(_mm_setzero_si128(), (in)), 4); \
+; 2288 : __m128i out##_h = _mm_srai_epi32(_mm_unpackhi_epi16(_mm_setzero_si128(), (in)), 4)
+; 2289 :
+; 2290 : // wide add
+; 2291 : #define dct_wadd(out, a, b) \
+; 2292 : __m128i out##_l = _mm_add_epi32(a##_l, b##_l); \
+; 2293 : __m128i out##_h = _mm_add_epi32(a##_h, b##_h)
+; 2294 :
+; 2295 : // wide sub
+; 2296 : #define dct_wsub(out, a, b) \
+; 2297 : __m128i out##_l = _mm_sub_epi32(a##_l, b##_l); \
+; 2298 : __m128i out##_h = _mm_sub_epi32(a##_h, b##_h)
+; 2299 :
+; 2300 : // butterfly a/b, add bias, then shift by "s" and pack
+; 2301 : #define dct_bfly32o(out0, out1, a, b, bias, s) \
+; 2302 : { \
+; 2303 : __m128i abiased_l = _mm_add_epi32(a##_l, bias); \
+; 2304 : __m128i abiased_h = _mm_add_epi32(a##_h, bias); \
+; 2305 : dct_wadd(sum, abiased, b); \
+; 2306 : dct_wsub(dif, abiased, b); \
+; 2307 : out0 = _mm_packs_epi32(_mm_srai_epi32(sum_l, s), _mm_srai_epi32(sum_h, s)); \
+; 2308 : out1 = _mm_packs_epi32(_mm_srai_epi32(dif_l, s), _mm_srai_epi32(dif_h, s)); \
+; 2309 : }
+; 2310 :
+; 2311 : // 8-bit interleave step (for transposes)
+; 2312 : #define dct_interleave8(a, b) \
+; 2313 : tmp = a; \
+; 2314 : a = _mm_unpacklo_epi8(a, b); \
+; 2315 : b = _mm_unpackhi_epi8(tmp, b)
+; 2316 :
+; 2317 : // 16-bit interleave step (for transposes)
+; 2318 : #define dct_interleave16(a, b) \
+; 2319 : tmp = a; \
+; 2320 : a = _mm_unpacklo_epi16(a, b); \
+; 2321 : b = _mm_unpackhi_epi16(tmp, b)
+; 2322 :
+; 2323 : #define dct_pass(bias, shift) \
+; 2324 : { \
+; 2325 : /* even part */ \
+; 2326 : dct_rot(t2e, t3e, row2, row6, rot0_0, rot0_1); \
+; 2327 : __m128i sum04 = _mm_add_epi16(row0, row4); \
+; 2328 : __m128i dif04 = _mm_sub_epi16(row0, row4); \
+; 2329 : dct_widen(t0e, sum04); \
+; 2330 : dct_widen(t1e, dif04); \
+; 2331 : dct_wadd(x0, t0e, t3e); \
+; 2332 : dct_wsub(x3, t0e, t3e); \
+; 2333 : dct_wadd(x1, t1e, t2e); \
+; 2334 : dct_wsub(x2, t1e, t2e); \
+; 2335 : /* odd part */ \
+; 2336 : dct_rot(y0o, y2o, row7, row3, rot2_0, rot2_1); \
+; 2337 : dct_rot(y1o, y3o, row5, row1, rot3_0, rot3_1); \
+; 2338 : __m128i sum17 = _mm_add_epi16(row1, row7); \
+; 2339 : __m128i sum35 = _mm_add_epi16(row3, row5); \
+; 2340 : dct_rot(y4o, y5o, sum17, sum35, rot1_0, rot1_1); \
+; 2341 : dct_wadd(x4, y0o, y4o); \
+; 2342 : dct_wadd(x5, y1o, y5o); \
+; 2343 : dct_wadd(x6, y2o, y5o); \
+; 2344 : dct_wadd(x7, y3o, y4o); \
+; 2345 : dct_bfly32o(row0, row7, x0, x7, bias, shift); \
+; 2346 : dct_bfly32o(row1, row6, x1, x6, bias, shift); \
+; 2347 : dct_bfly32o(row2, row5, x2, x5, bias, shift); \
+; 2348 : dct_bfly32o(row3, row4, x3, x4, bias, shift); \
+; 2349 : }
+; 2350 :
+; 2351 : __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
+
+; 2352 : dct_const(stbi__f2f(0.5411961f), stbi__f2f(0.5411961f) + stbi__f2f(-1.847759065f));
+; 2353 : __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
+
+; 2354 : dct_const(stbi__f2f(0.5411961f) + stbi__f2f(0.765366865f), stbi__f2f(0.5411961f));
+; 2355 : __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
+
+; 2356 : stbi__f2f(1.175875602f));
+; 2357 : __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
+
+; 2358 : stbi__f2f(1.175875602f) + stbi__f2f(-2.562915447f));
+; 2359 : __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
+
+; 2360 : stbi__f2f(-1.961570560f));
+; 2361 : __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
+
+; 2362 : stbi__f2f(-1.961570560f) + stbi__f2f(3.072711026f));
+; 2363 : __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
+
+; 2364 : stbi__f2f(-0.390180644f));
+; 2365 : __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
+
+; 2366 : stbi__f2f(-0.390180644f) + stbi__f2f(1.501321110f));
+; 2367 :
+; 2368 : // rounding biases in column/row passes, see stbi__idct_block for explanation.
+; 2369 : __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
+
+; 2370 : __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
+
+; 2371 :
+; 2372 : // load
+; 2373 : 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
+
+; 2374 : 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
+
+; 2375 : 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
+
+; 2376 : 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
+
+; 2377 : 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
+
+; 2378 : 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
+
+; 2379 : 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
+
+; 2380 : 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
+
+; 2381 :
+; 2382 : // column pass
+; 2383 : 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
+
+; 2384 :
+; 2385 : {
+; 2386 : // 16bit 8x8 transpose pass 1
+; 2387 : 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
+
+; 2388 : 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
+
+; 2389 : 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
+
+; 2390 : 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
+
+; 2391 :
+; 2392 : // transpose pass 2
+; 2393 : 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
+
+; 2394 : 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
+
+; 2395 : 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
+
+; 2396 : 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
+
+; 2397 :
+; 2398 : // transpose pass 3
+; 2399 : 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
+
+; 2400 : 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
+
+; 2401 : 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
+
+; 2402 : 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
+
+; 2403 : }
+; 2404 :
+; 2405 : // row pass
+; 2406 : 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
+
+; 2407 :
+; 2408 : {
+; 2409 : // pack
+; 2410 : __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
+
+; 2411 : __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
+
+; 2412 : __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
+
+; 2413 : __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
+
+; 2414 :
+; 2415 : // 8bit 8x8 transpose pass 1
+; 2416 : 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
+
+; 2417 : 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
+
+; 2418 :
+; 2419 : // transpose pass 2
+; 2420 : 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
+
+; 2421 : 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
+
+; 2422 :
+; 2423 : // transpose pass 3
+; 2424 : 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
+
+; 2425 : 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
+
+; 2426 :
+; 2427 : // store
+; 2428 : _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
+
+; 2429 : 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
+
+; 2430 : _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
+
+; 2431 : 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
+
+; 2432 : _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
+
+; 2433 : 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
+
+; 2434 : _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
+
+; 2435 : 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
+
+; 2436 : _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
+
+; 2437 : 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
+
+; 2438 : _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
+
+; 2439 : 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
+
+; 2440 : _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
+
+; 2441 : 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
+
+; 2442 : _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
+
+; 2443 : }
+; 2444 :
+; 2445 : #undef dct_const
+; 2446 : #undef dct_rot
+; 2447 : #undef dct_widen
+; 2448 : #undef dct_wadd
+; 2449 : #undef dct_wsub
+; 2450 : #undef dct_bfly32o
+; 2451 : #undef dct_interleave8
+; 2452 : #undef dct_interleave16
+; 2453 : #undef dct_pass
+; 2454 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 2201 : {
+
+ 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:__079B8C84_stb_image@c
+ 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00052 90 npad 1
+
+; 2202 : 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
+
+; 2203 : stbi_uc *o;
+; 2204 : 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
+
+; 2205 :
+; 2206 : // columns
+; 2207 : 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
+
+; 2208 : // if all zeroes, shortcut -- this avoids dequantizing 0s and IDCTing
+; 2209 : if (d[8] == 0 && d[16] == 0 && d[24] == 0 && d[32] == 0 && d[40] == 0 &&
+; 2210 : 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
+
+; 2211 : // no shortcut 0 seconds
+; 2212 : // (1|2|3|4|5|6|7)==0 0 seconds
+; 2213 : // all separate -0.047 seconds
+; 2214 : // 1 && 2|3 && 4|5 && 6|7: -0.047 seconds
+; 2215 : 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
+
+; 2216 : 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
+
+; 2217 : } else {
+
+ 00254 e9 ac 04 00 00 jmp $LN9@stbi__idct
+$LN8@stbi__idct:
+
+; 2218 : 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
+
+; 2219 : // constants scaled things up by 1<<12; let's bring them back
+; 2220 : // down, but keep 2 extra bits of precision
+; 2221 : 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
+
+; 2222 : 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
+
+; 2223 : 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
+
+; 2224 : 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
+
+; 2225 : 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
+
+; 2226 : 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
+
+; 2227 : 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
+
+; 2228 : 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
+
+; 2229 : 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
+
+; 2230 : 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
+
+; 2231 : 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
+
+; 2232 : 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:
+
+; 2233 : }
+; 2234 : }
+
+ 00705 e9 6b f9 ff ff jmp $LN2@stbi__idct
+$LN3@stbi__idct:
+
+; 2235 :
+; 2236 : 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
+
+; 2237 : // no fast case since the first 1D IDCT spread components out
+; 2238 : 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
+
+; 2239 : // constants scaled things up by 1<<12, plus we had 1<<2 from first
+; 2240 : // loop, plus horizontal and vertical each scale by sqrt(8) so together
+; 2241 : // we've got an extra 1<<3, so 1<<17 total we need to remove.
+; 2242 : // so we want to round that, which means adding 0.5 * 1<<17,
+; 2243 : // aka 65536. Also, we'll end up with -128 to 127 that we want
+; 2244 : // to encode as 0..255 by adding 128, so we'll add that before the shift
+; 2245 : 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
+
+; 2246 : 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
+
+; 2247 : 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
+
+; 2248 : 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
+
+; 2249 : // tried computing the shifts into temps, or'ing the temps to see
+; 2250 : // if any were out of range, but that was slower
+; 2251 : 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
+
+; 2252 : 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
+
+; 2253 : 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
+
+; 2254 : 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
+
+; 2255 : 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
+
+; 2256 : 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
+
+; 2257 : 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
+
+; 2258 : 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
+
+; 2259 : }
+
+ 00c47 e9 e0 fa ff ff jmp $LN5@stbi__idct
+$LN6@stbi__idct:
+
+; 2260 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__clamp
+_TEXT SEGMENT
+x$ = 224
+stbi__clamp PROC ; COMDAT
+
+; 2148 : {
+
+ 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:__079B8C84_stb_image@c
+ 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001e 90 npad 1
+
+; 2149 : // trick to use a single test to catch both cases
+; 2150 : 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
+
+; 2151 : 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
+
+; 2152 : return 0;
+
+ 00034 32 c0 xor al, al
+ 00036 eb 17 jmp SHORT $LN1@stbi__clam
+$LN3@stbi__clam:
+
+; 2153 : 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
+
+; 2154 : return 255;
+
+ 00044 b0 ff mov al, 255 ; 000000ffH
+ 00046 eb 07 jmp SHORT $LN1@stbi__clam
+$LN4@stbi__clam:
+$LN2@stbi__clam:
+
+; 2155 : }
+; 2156 : return (stbi_uc)x;
+
+ 00048 0f b6 85 e0 00
+ 00 00 movzx eax, BYTE PTR x$[rbp]
+$LN1@stbi__clam:
+
+; 2157 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 2015 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 2016 : int k;
+; 2017 : 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
+
+; 2018 : 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:
+
+; 2019 :
+; 2020 : 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
+
+; 2021 : 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
+
+; 2022 :
+; 2023 : 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
+
+; 2024 : --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
+
+; 2025 : return 1;
+
+ 000a0 b8 01 00 00 00 mov eax, 1
+ 000a5 e9 1b 06 00 00 jmp $LN1@stbi__jpeg
+$LN16@stbi__jpeg:
+
+; 2026 : }
+; 2027 :
+; 2028 : 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:
+
+; 2029 : do {
+; 2030 : unsigned int zig;
+; 2031 : int c, r, s;
+; 2032 : 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
+
+; 2033 : 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:
+
+; 2034 : 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
+
+; 2035 : 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
+
+; 2036 : 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
+
+; 2037 : 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
+
+; 2038 : 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
+
+; 2039 : 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
+
+; 2040 : 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:
+
+; 2041 : "bad huffman code",
+; 2042 : "Combined length longer than code bits available");
+; 2043 : 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
+
+; 2044 : 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
+
+; 2045 : 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
+
+; 2046 : 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
+
+; 2047 : } else {
+
+ 001f1 e9 47 01 00 00 jmp $LN19@stbi__jpeg
+$LN18@stbi__jpeg:
+
+; 2048 : 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
+
+; 2049 : 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
+
+; 2050 : 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:
+
+; 2051 : 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
+
+; 2052 : 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
+
+; 2053 : 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
+
+; 2054 : 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
+
+; 2055 : 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
+
+; 2056 : 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
+
+; 2057 : 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:
+
+; 2058 : --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
+
+; 2059 : break;
+
+ 002d7 eb 7a jmp SHORT $LN3@stbi__jpeg
+$LN24@stbi__jpeg:
+
+; 2060 : }
+; 2061 : 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
+
+; 2062 : } else {
+
+ 002e2 eb 59 jmp SHORT $LN23@stbi__jpeg
+$LN22@stbi__jpeg:
+
+; 2063 : 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
+
+; 2064 : 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
+
+; 2065 : 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:
+
+; 2066 : (short)(stbi__extend_receive(j, s) * (1 << shift));
+; 2067 : }
+; 2068 : }
+; 2069 : } 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:
+
+; 2070 : } else {
+
+ 00353 e9 68 03 00 00 jmp $LN15@stbi__jpeg
+$LN14@stbi__jpeg:
+
+; 2071 : // refinement scan for these AC coefficients
+; 2072 :
+; 2073 : 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
+
+; 2074 :
+; 2075 : 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
+
+; 2076 : --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
+
+; 2077 : 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
+
+; 2078 : 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
+
+; 2079 : 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
+
+; 2080 : 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
+
+; 2081 : 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
+
+; 2082 : 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
+
+; 2083 : *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:
+
+; 2084 : else
+; 2085 : *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:
+
+; 2086 : }
+; 2087 : }
+
+ 00486 e9 39 ff ff ff jmp $LN5@stbi__jpeg
+$LN6@stbi__jpeg:
+
+; 2088 : } else {
+
+ 0048b e9 30 02 00 00 jmp $LN27@stbi__jpeg
+$LN26@stbi__jpeg:
+
+; 2089 : 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:
+
+; 2090 : do {
+; 2091 : int r, s;
+; 2092 : 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
+
+; 2093 : j,
+; 2094 : hac); // @OPTIMIZE see if we can use the fast path here, advance-by-r is so slow, eh
+; 2095 : 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
+
+; 2096 : 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:
+
+; 2097 : 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
+
+; 2098 : 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
+
+; 2099 : 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
+
+; 2100 : 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
+
+; 2101 : 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
+
+; 2102 : 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
+
+; 2103 : 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:
+
+; 2104 : 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:
+
+; 2105 : } else {
+; 2106 : // r=15 s=0 should write 16 0s, so we just do
+; 2107 : // a run of 15 0s and then write s (which is 0),
+; 2108 : // so we don't have to do anything special here
+; 2109 : }
+; 2110 : } else {
+
+ 0056d eb 48 jmp SHORT $LN35@stbi__jpeg
+$LN34@stbi__jpeg:
+
+; 2111 : 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
+
+; 2112 : 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:
+
+; 2113 : "Corrupt JPEG");
+; 2114 : // sign bit
+; 2115 : 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
+
+; 2116 : 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:
+
+; 2117 : else
+; 2118 : 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:
+
+; 2119 : }
+; 2120 :
+; 2121 : // advance by r
+; 2122 : 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
+
+; 2123 : 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
+
+; 2124 : 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
+
+; 2125 : 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
+
+; 2126 : 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
+
+; 2127 : 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
+
+; 2128 : *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:
+
+; 2129 : else
+; 2130 : *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:
+
+; 2131 : }
+; 2132 : } else {
+
+ 00679 eb 2a jmp SHORT $LN43@stbi__jpeg
+$LN42@stbi__jpeg:
+
+; 2133 : 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
+
+; 2134 : *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
+
+; 2135 : break;
+
+ 00695 eb 13 jmp SHORT $LN12@stbi__jpeg
+$LN48@stbi__jpeg:
+
+; 2136 : }
+; 2137 : --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:
+
+; 2138 : }
+; 2139 : }
+
+ 006a5 e9 0d ff ff ff jmp $LN11@stbi__jpeg
+$LN12@stbi__jpeg:
+
+; 2140 : } 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:
+
+; 2141 : }
+; 2142 : }
+; 2143 : return 1;
+
+ 006c0 b8 01 00 00 00 mov eax, 1
+$LN1@stbi__jpeg:
+
+; 2144 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__jpeg_decode_block_prog_dc
+_TEXT SEGMENT
+diff$ = 4
+dc$ = 36
+t$ = 68
+tv87 = 276
+tv207 = 276
+tv211 = 276
+j$ = 320
+data$ = 328
+hdc$ = 336
+b$ = 344
+stbi__jpeg_decode_block_prog_dc PROC ; COMDAT
+
+; 1978 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 1979 : int diff, dc;
+; 1980 : int t;
+; 1981 : 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
+
+; 1982 : 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 f7 01 00 00 jmp $LN1@stbi__jpeg
+$LN2@stbi__jpeg:
+
+; 1983 :
+; 1984 : 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
+
+; 1985 : 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:
+
+; 1986 :
+; 1987 : 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 6e 01 00
+ 00 jne $LN4@stbi__jpeg
+
+; 1988 : // first scan for DC coefficient, must be first
+; 1989 : memset(data, 0,
+
+ 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
+
+; 1990 : 64 * sizeof(data[0])); // 0 all the ac values now
+; 1991 : 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
+
+; 1992 : 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:
+
+; 1993 : 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 7e 01 00 00 jmp $LN1@stbi__jpeg
+$LN6@stbi__jpeg:
+
+; 1994 : 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
+
+; 1995 :
+; 1996 : 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
+
+; 1997 : 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 18 01 00 00 jmp $LN1@stbi__jpeg
+$LN8@stbi__jpeg:
+
+; 1998 : 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
+
+; 1999 : 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
+
+; 2000 : 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 tv207[rbp], ecx
+ 00182 0f b6 c8 movzx ecx, al
+ 00185 8b 85 14 01 00
+ 00 mov eax, DWORD PTR tv207[rbp]
+ 0018b d3 e0 shl eax, cl
+ 0018d 0f b7 d0 movzx edx, ax
+ 00190 0f b7 4d 24 movzx ecx, WORD PTR dc$[rbp]
+ 00194 e8 00 00 00 00 call stbi__mul2shorts_valid
+ 00199 85 c0 test eax, eax
+ 0019b 75 11 jne SHORT $LN9@stbi__jpeg
+
+; 2001 : return stbi__err("can't merge dc and ac", "Corrupt JPEG");
+
+ 0019d 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:??_C@_0BG@PJBJDAGM@can?8t?5merge?5dc?5and?5ac@
+ 001a4 e8 00 00 00 00 call stbi__err
+ 001a9 e9 99 00 00 00 jmp $LN1@stbi__jpeg
+$LN9@stbi__jpeg:
+
+; 2002 : data[0] = (short)(dc * (1 << j->succ_low));
+
+ 001ae 48 8b 85 40 01
+ 00 00 mov rax, QWORD PTR j$[rbp]
+ 001b5 8b 80 40 48 00
+ 00 mov eax, DWORD PTR [rax+18496]
+ 001bb b9 01 00 00 00 mov ecx, 1
+ 001c0 89 8d 14 01 00
+ 00 mov DWORD PTR tv211[rbp], ecx
+ 001c6 0f b6 c8 movzx ecx, al
+ 001c9 8b 85 14 01 00
+ 00 mov eax, DWORD PTR tv211[rbp]
+ 001cf d3 e0 shl eax, cl
+ 001d1 8b 4d 24 mov ecx, DWORD PTR dc$[rbp]
+ 001d4 0f af c8 imul ecx, eax
+ 001d7 8b c1 mov eax, ecx
+ 001d9 b9 02 00 00 00 mov ecx, 2
+ 001de 48 6b c9 00 imul rcx, rcx, 0
+ 001e2 48 8b 95 48 01
+ 00 00 mov rdx, QWORD PTR data$[rbp]
+ 001e9 66 89 04 0a mov WORD PTR [rdx+rcx], ax
+
+; 2003 : } else {
+
+ 001ed eb 53 jmp SHORT $LN5@stbi__jpeg
+$LN4@stbi__jpeg:
+
+; 2004 : // refinement scan for DC coefficient
+; 2005 : if (stbi__jpeg_get_bit(j))
+
+ 001ef 48 8b 8d 40 01
+ 00 00 mov rcx, QWORD PTR j$[rbp]
+ 001f6 e8 00 00 00 00 call stbi__jpeg_get_bit
+ 001fb 85 c0 test eax, eax
+ 001fd 74 43 je SHORT $LN10@stbi__jpeg
+
+; 2006 : data[0] += (short)(1 << j->succ_low);
+
+ 001ff b8 02 00 00 00 mov eax, 2
+ 00204 48 6b c0 00 imul rax, rax, 0
+ 00208 48 8b 8d 40 01
+ 00 00 mov rcx, QWORD PTR j$[rbp]
+ 0020f 8b 89 40 48 00
+ 00 mov ecx, DWORD PTR [rcx+18496]
+ 00215 ba 01 00 00 00 mov edx, 1
+ 0021a d3 e2 shl edx, cl
+ 0021c 8b ca mov ecx, edx
+ 0021e 0f bf c9 movsx ecx, cx
+ 00221 48 8b 95 48 01
+ 00 00 mov rdx, QWORD PTR data$[rbp]
+ 00228 0f bf 04 02 movsx eax, WORD PTR [rdx+rax]
+ 0022c 03 c1 add eax, ecx
+ 0022e b9 02 00 00 00 mov ecx, 2
+ 00233 48 6b c9 00 imul rcx, rcx, 0
+ 00237 48 8b 95 48 01
+ 00 00 mov rdx, QWORD PTR data$[rbp]
+ 0023e 66 89 04 0a mov WORD PTR [rdx+rcx], ax
+$LN10@stbi__jpeg:
+$LN5@stbi__jpeg:
+
+; 2007 : }
+; 2008 : return 1;
+
+ 00242 b8 01 00 00 00 mov eax, 1
+$LN1@stbi__jpeg:
+
+; 2009 : }
+
+ 00247 48 8d a5 28 01
+ 00 00 lea rsp, QWORD PTR [rbp+296]
+ 0024e 5f pop rdi
+ 0024f 5d pop rbp
+ 00250 c3 ret 0
+stbi__jpeg_decode_block_prog_dc ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+tv275 = 472
+j$ = 512
+data$ = 520
+hdc$ = 528
+hac$ = 536
+fac$ = 544
+b$ = 552
+dequant$ = 560
+stbi__jpeg_decode_block PROC ; COMDAT
+
+; 1914 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 1915 : int diff, dc, k;
+; 1916 : int t;
+; 1917 :
+; 1918 : 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
+
+; 1919 : 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:
+
+; 1920 : 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
+
+; 1921 : 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:
+
+; 1922 : 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 52 03 00 00 jmp $LN1@stbi__jpeg
+$LN6@stbi__jpeg:
+
+; 1923 :
+; 1924 : // 0 all the ac values now so we can do it 32-bits at a time
+; 1925 : 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
+
+; 1926 :
+; 1927 : 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
+
+; 1928 : 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
+
+; 1929 : 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 d7 02 00 00 jmp $LN1@stbi__jpeg
+$LN8@stbi__jpeg:
+
+; 1930 : 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
+
+; 1931 : 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
+
+; 1932 : 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 14 01 movzx edx, WORD PTR [rcx+rax]
+ 00149 0f b7 4d 24 movzx ecx, WORD PTR dc$[rbp]
+ 0014d e8 00 00 00 00 call stbi__mul2shorts_valid
+ 00152 85 c0 test eax, eax
+ 00154 75 11 jne SHORT $LN9@stbi__jpeg
+
+; 1933 : return stbi__err("can't merge dc and ac", "Corrupt JPEG");
+
+ 00156 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:??_C@_0BG@PJBJDAGM@can?8t?5merge?5dc?5and?5ac@
+ 0015d e8 00 00 00 00 call stbi__err
+ 00162 e9 6a 02 00 00 jmp $LN1@stbi__jpeg
+$LN9@stbi__jpeg:
+
+; 1934 : data[0] = (short)(dc * dequant[0]);
+
+ 00167 b8 02 00 00 00 mov eax, 2
+ 0016c 48 6b c0 00 imul rax, rax, 0
+ 00170 48 8b 8d 30 02
+ 00 00 mov rcx, QWORD PTR dequant$[rbp]
+ 00177 0f b7 04 01 movzx eax, WORD PTR [rcx+rax]
+ 0017b 8b 4d 24 mov ecx, DWORD PTR dc$[rbp]
+ 0017e 0f af c8 imul ecx, eax
+ 00181 8b c1 mov eax, ecx
+ 00183 b9 02 00 00 00 mov ecx, 2
+ 00188 48 6b c9 00 imul rcx, rcx, 0
+ 0018c 48 8b 95 08 02
+ 00 00 mov rdx, QWORD PTR data$[rbp]
+ 00193 66 89 04 0a mov WORD PTR [rdx+rcx], ax
+
+; 1935 :
+; 1936 : // decode AC components, see JPEG spec
+; 1937 : k = 1;
+
+ 00197 c7 45 44 01 00
+ 00 00 mov DWORD PTR k$[rbp], 1
+$LN4@stbi__jpeg:
+
+; 1938 : do {
+; 1939 : unsigned int zig;
+; 1940 : int c, r, s;
+; 1941 : if (j->code_bits < 16)
+
+ 0019e 48 8b 85 00 02
+ 00 00 mov rax, QWORD PTR j$[rbp]
+ 001a5 83 b8 24 48 00
+ 00 10 cmp DWORD PTR [rax+18468], 16
+ 001ac 7d 0d jge SHORT $LN10@stbi__jpeg
+
+; 1942 : stbi__grow_buffer_unsafe(j);
+
+ 001ae 48 8b 8d 00 02
+ 00 00 mov rcx, QWORD PTR j$[rbp]
+ 001b5 e8 00 00 00 00 call stbi__grow_buffer_unsafe
+ 001ba 90 npad 1
+$LN10@stbi__jpeg:
+
+; 1943 : c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS) - 1);
+
+ 001bb 48 8b 85 00 02
+ 00 00 mov rax, QWORD PTR j$[rbp]
+ 001c2 8b 80 20 48 00
+ 00 mov eax, DWORD PTR [rax+18464]
+ 001c8 c1 e8 17 shr eax, 23
+ 001cb 25 ff 01 00 00 and eax, 511 ; 000001ffH
+ 001d0 89 85 a4 00 00
+ 00 mov DWORD PTR c$2[rbp], eax
+
+; 1944 : r = fac[c];
+
+ 001d6 48 63 85 a4 00
+ 00 00 movsxd rax, DWORD PTR c$2[rbp]
+ 001dd 48 8b 8d 20 02
+ 00 00 mov rcx, QWORD PTR fac$[rbp]
+ 001e4 0f bf 04 41 movsx eax, WORD PTR [rcx+rax*2]
+ 001e8 89 85 c4 00 00
+ 00 mov DWORD PTR r$3[rbp], eax
+
+; 1945 : if (r) { // fast-AC path
+
+ 001ee 83 bd c4 00 00
+ 00 00 cmp DWORD PTR r$3[rbp], 0
+ 001f5 0f 84 f0 00 00
+ 00 je $LN11@stbi__jpeg
+
+; 1946 : k += (r >> 4) & 15; // run
+
+ 001fb 8b 85 c4 00 00
+ 00 mov eax, DWORD PTR r$3[rbp]
+ 00201 c1 f8 04 sar eax, 4
+ 00204 83 e0 0f and eax, 15
+ 00207 8b 4d 44 mov ecx, DWORD PTR k$[rbp]
+ 0020a 03 c8 add ecx, eax
+ 0020c 8b c1 mov eax, ecx
+ 0020e 89 45 44 mov DWORD PTR k$[rbp], eax
+
+; 1947 : s = r & 15; // combined length
+
+ 00211 8b 85 c4 00 00
+ 00 mov eax, DWORD PTR r$3[rbp]
+ 00217 83 e0 0f and eax, 15
+ 0021a 89 85 e4 00 00
+ 00 mov DWORD PTR s$4[rbp], eax
+
+; 1948 : if (s > j->code_bits)
+
+ 00220 48 8b 85 00 02
+ 00 00 mov rax, QWORD PTR j$[rbp]
+ 00227 8b 80 24 48 00
+ 00 mov eax, DWORD PTR [rax+18468]
+ 0022d 39 85 e4 00 00
+ 00 cmp DWORD PTR s$4[rbp], eax
+ 00233 7e 11 jle SHORT $LN13@stbi__jpeg
+
+; 1949 : return stbi__err("bad huffman code",
+
+ 00235 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@
+ 0023c e8 00 00 00 00 call stbi__err
+ 00241 e9 8b 01 00 00 jmp $LN1@stbi__jpeg
+$LN13@stbi__jpeg:
+
+; 1950 : "Combined length longer than code bits available");
+; 1951 : j->code_buffer <<= s;
+
+ 00246 8b 85 e4 00 00
+ 00 mov eax, DWORD PTR s$4[rbp]
+ 0024c 48 8b 8d 00 02
+ 00 00 mov rcx, QWORD PTR j$[rbp]
+ 00253 48 89 8d d8 01
+ 00 00 mov QWORD PTR tv275[rbp], rcx
+ 0025a 0f b6 c8 movzx ecx, al
+ 0025d 48 8b 85 d8 01
+ 00 00 mov rax, QWORD PTR tv275[rbp]
+ 00264 8b 80 20 48 00
+ 00 mov eax, DWORD PTR [rax+18464]
+ 0026a d3 e0 shl eax, cl
+ 0026c 48 8b 8d 00 02
+ 00 00 mov rcx, QWORD PTR j$[rbp]
+ 00273 89 81 20 48 00
+ 00 mov DWORD PTR [rcx+18464], eax
+
+; 1952 : j->code_bits -= s;
+
+ 00279 48 8b 85 00 02
+ 00 00 mov rax, QWORD PTR j$[rbp]
+ 00280 8b 8d e4 00 00
+ 00 mov ecx, DWORD PTR s$4[rbp]
+ 00286 8b 80 24 48 00
+ 00 mov eax, DWORD PTR [rax+18468]
+ 0028c 2b c1 sub eax, ecx
+ 0028e 48 8b 8d 00 02
+ 00 00 mov rcx, QWORD PTR j$[rbp]
+ 00295 89 81 24 48 00
+ 00 mov DWORD PTR [rcx+18468], eax
+
+; 1953 : // decode into unzigzag'd location
+; 1954 : zig = stbi__jpeg_dezigzag[k++];
+
+ 0029b 48 63 45 44 movsxd rax, DWORD PTR k$[rbp]
+ 0029f 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:stbi__jpeg_dezigzag
+ 002a6 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
+ 002aa 89 85 84 00 00
+ 00 mov DWORD PTR zig$1[rbp], eax
+ 002b0 8b 45 44 mov eax, DWORD PTR k$[rbp]
+ 002b3 ff c0 inc eax
+ 002b5 89 45 44 mov DWORD PTR k$[rbp], eax
+
+; 1955 : data[zig] = (short)((r >> 8) * dequant[zig]);
+
+ 002b8 8b 85 c4 00 00
+ 00 mov eax, DWORD PTR r$3[rbp]
+ 002be c1 f8 08 sar eax, 8
+ 002c1 8b 8d 84 00 00
+ 00 mov ecx, DWORD PTR zig$1[rbp]
+ 002c7 48 8b 95 30 02
+ 00 00 mov rdx, QWORD PTR dequant$[rbp]
+ 002ce 0f b7 0c 4a movzx ecx, WORD PTR [rdx+rcx*2]
+ 002d2 0f af c1 imul eax, ecx
+ 002d5 8b 8d 84 00 00
+ 00 mov ecx, DWORD PTR zig$1[rbp]
+ 002db 48 8b 95 08 02
+ 00 00 mov rdx, QWORD PTR data$[rbp]
+ 002e2 66 89 04 4a mov WORD PTR [rdx+rcx*2], ax
+
+; 1956 : } else {
+
+ 002e6 e9 d7 00 00 00 jmp $LN12@stbi__jpeg
+$LN11@stbi__jpeg:
+
+; 1957 : int rs = stbi__jpeg_huff_decode(j, hac);
+
+ 002eb 48 8b 95 18 02
+ 00 00 mov rdx, QWORD PTR hac$[rbp]
+ 002f2 48 8b 8d 00 02
+ 00 00 mov rcx, QWORD PTR j$[rbp]
+ 002f9 e8 00 00 00 00 call stbi__jpeg_huff_decode
+ 002fe 89 85 04 01 00
+ 00 mov DWORD PTR rs$5[rbp], eax
+
+; 1958 : if (rs < 0)
+
+ 00304 83 bd 04 01 00
+ 00 00 cmp DWORD PTR rs$5[rbp], 0
+ 0030b 7d 11 jge SHORT $LN14@stbi__jpeg
+
+; 1959 : return stbi__err("bad huffman code", "Corrupt JPEG");
+
+ 0030d 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@
+ 00314 e8 00 00 00 00 call stbi__err
+ 00319 e9 b3 00 00 00 jmp $LN1@stbi__jpeg
+$LN14@stbi__jpeg:
+
+; 1960 : s = rs & 15;
+
+ 0031e 8b 85 04 01 00
+ 00 mov eax, DWORD PTR rs$5[rbp]
+ 00324 83 e0 0f and eax, 15
+ 00327 89 85 e4 00 00
+ 00 mov DWORD PTR s$4[rbp], eax
+
+; 1961 : r = rs >> 4;
+
+ 0032d 8b 85 04 01 00
+ 00 mov eax, DWORD PTR rs$5[rbp]
+ 00333 c1 f8 04 sar eax, 4
+ 00336 89 85 c4 00 00
+ 00 mov DWORD PTR r$3[rbp], eax
+
+; 1962 : if (s == 0) {
+
+ 0033c 83 bd e4 00 00
+ 00 00 cmp DWORD PTR s$4[rbp], 0
+ 00343 75 19 jne SHORT $LN15@stbi__jpeg
+
+; 1963 : if (rs != 0xf0)
+
+ 00345 81 bd 04 01 00
+ 00 f0 00 00 00 cmp DWORD PTR rs$5[rbp], 240 ; 000000f0H
+ 0034f 74 02 je SHORT $LN17@stbi__jpeg
+
+; 1964 : break; // end block
+
+ 00351 eb 79 jmp SHORT $LN3@stbi__jpeg
+$LN17@stbi__jpeg:
+
+; 1965 : k += 16;
+
+ 00353 8b 45 44 mov eax, DWORD PTR k$[rbp]
+ 00356 83 c0 10 add eax, 16
+ 00359 89 45 44 mov DWORD PTR k$[rbp], eax
+
+; 1966 : } else {
+
+ 0035c eb 64 jmp SHORT $LN16@stbi__jpeg
+$LN15@stbi__jpeg:
+
+; 1967 : k += r;
+
+ 0035e 8b 85 c4 00 00
+ 00 mov eax, DWORD PTR r$3[rbp]
+ 00364 8b 4d 44 mov ecx, DWORD PTR k$[rbp]
+ 00367 03 c8 add ecx, eax
+ 00369 8b c1 mov eax, ecx
+ 0036b 89 45 44 mov DWORD PTR k$[rbp], eax
+
+; 1968 : // decode into unzigzag'd location
+; 1969 : zig = stbi__jpeg_dezigzag[k++];
+
+ 0036e 48 63 45 44 movsxd rax, DWORD PTR k$[rbp]
+ 00372 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:stbi__jpeg_dezigzag
+ 00379 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
+ 0037d 89 85 84 00 00
+ 00 mov DWORD PTR zig$1[rbp], eax
+ 00383 8b 45 44 mov eax, DWORD PTR k$[rbp]
+ 00386 ff c0 inc eax
+ 00388 89 45 44 mov DWORD PTR k$[rbp], eax
+
+; 1970 : data[zig] = (short)(stbi__extend_receive(j, s) * dequant[zig]);
+
+ 0038b 8b 95 e4 00 00
+ 00 mov edx, DWORD PTR s$4[rbp]
+ 00391 48 8b 8d 00 02
+ 00 00 mov rcx, QWORD PTR j$[rbp]
+ 00398 e8 00 00 00 00 call stbi__extend_receive
+ 0039d 8b 8d 84 00 00
+ 00 mov ecx, DWORD PTR zig$1[rbp]
+ 003a3 48 8b 95 30 02
+ 00 00 mov rdx, QWORD PTR dequant$[rbp]
+ 003aa 0f b7 0c 4a movzx ecx, WORD PTR [rdx+rcx*2]
+ 003ae 0f af c1 imul eax, ecx
+ 003b1 8b 8d 84 00 00
+ 00 mov ecx, DWORD PTR zig$1[rbp]
+ 003b7 48 8b 95 08 02
+ 00 00 mov rdx, QWORD PTR data$[rbp]
+ 003be 66 89 04 4a mov WORD PTR [rdx+rcx*2], ax
+$LN16@stbi__jpeg:
+$LN12@stbi__jpeg:
+
+; 1971 : }
+; 1972 : }
+; 1973 : } while (k < 64);
+
+ 003c2 83 7d 44 40 cmp DWORD PTR k$[rbp], 64 ; 00000040H
+ 003c6 0f 8c d2 fd ff
+ ff jl $LN4@stbi__jpeg
+$LN3@stbi__jpeg:
+
+; 1974 : return 1;
+
+ 003cc b8 01 00 00 00 mov eax, 1
+$LN1@stbi__jpeg:
+
+; 1975 : }
+
+ 003d1 48 8d a5 e8 01
+ 00 00 lea rsp, QWORD PTR [rbp+488]
+ 003d8 5f pop rdi
+ 003d9 5d pop rbp
+ 003da c3 ret 0
+stbi__jpeg_decode_block ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__jpeg_get_bit
+_TEXT SEGMENT
+k$ = 4
+j$ = 256
+stbi__jpeg_get_bit PROC ; COMDAT
+
+; 1888 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 1889 : unsigned int k;
+; 1890 : 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
+
+; 1891 : 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:
+
+; 1892 : 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
+
+; 1893 : 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:
+
+; 1894 : 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
+
+; 1895 : 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
+
+; 1896 : --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
+
+; 1897 : 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:
+
+; 1898 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__jpeg_get_bits
+_TEXT SEGMENT
+k$ = 4
+j$ = 256
+n$ = 264
+stbi__jpeg_get_bits PROC ; COMDAT
+
+; 1874 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00023 90 npad 1
+
+; 1875 : unsigned int k;
+; 1876 : 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
+
+; 1877 : 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:
+
+; 1878 : 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
+
+; 1879 : 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:
+
+; 1880 : 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
+
+; 1881 : 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
+
+; 1882 : 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
+
+; 1883 : 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
+
+; 1884 : return k;
+
+ 000e1 8b 45 04 mov eax, DWORD PTR k$[rbp]
+$LN1@stbi__jpeg:
+
+; 1885 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__extend_receive
+_TEXT SEGMENT
+k$ = 4
+sgn$ = 36
+j$ = 288
+n$ = 296
+stbi__extend_receive PROC ; COMDAT
+
+; 1855 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00023 90 npad 1
+
+; 1856 : unsigned int k;
+; 1857 : int sgn;
+; 1858 : 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
+
+; 1859 : 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:
+
+; 1860 : 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
+
+; 1861 : 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:
+
+; 1862 :
+; 1863 : 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
+
+; 1864 : 31; // sign bit always in MSB; 0 if MSB clear (positive), 1 if MSB set (negative)
+; 1865 : 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
+
+; 1866 : 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
+
+; 1867 : 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
+
+; 1868 : 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
+
+; 1869 : 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:
+
+; 1870 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 1796 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 1797 : unsigned int temp;
+; 1798 : int c, k;
+; 1799 :
+; 1800 : 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
+
+; 1801 : 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:
+
+; 1802 :
+; 1803 : // look at the top FAST_BITS and determine what symbol ID it is,
+; 1804 : // if the code is <= FAST_BITS
+; 1805 : 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
+
+; 1806 : 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
+
+; 1807 : 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
+
+; 1808 : 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
+
+; 1809 : 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
+
+; 1810 : return -1;
+
+ 000a1 b8 ff ff ff ff mov eax, -1
+ 000a6 e9 41 02 00 00 jmp $LN1@stbi__jpeg
+$LN7@stbi__jpeg:
+
+; 1811 : 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
+
+; 1812 : 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
+
+; 1813 : 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:
+
+; 1814 : }
+; 1815 :
+; 1816 : // naive test is to shift the code_buffer down so k bits are
+; 1817 : // valid, then test against maxcode. To speed this up, we've
+; 1818 : // preshifted maxcode left so that it has (16-k) 0s at the
+; 1819 : // end; in other words, regardless of the number of bits, it
+; 1820 : // wants to be compared against something shifted to have 16;
+; 1821 : // that way we don't need to shift inside the loop.
+; 1822 : 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
+
+; 1823 : 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:
+
+; 1824 : 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
+
+; 1825 : break;
+
+ 0014d eb 02 jmp SHORT $LN3@stbi__jpeg
+$LN8@stbi__jpeg:
+ 0014f eb dd jmp SHORT $LN2@stbi__jpeg
+$LN3@stbi__jpeg:
+
+; 1826 : if (k == 17) {
+
+ 00151 83 7d 44 11 cmp DWORD PTR k$[rbp], 17
+ 00155 75 27 jne SHORT $LN9@stbi__jpeg
+
+; 1827 : // error! code not found
+; 1828 : 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
+
+; 1829 : return -1;
+
+ 00174 b8 ff ff ff ff mov eax, -1
+ 00179 e9 6e 01 00 00 jmp $LN1@stbi__jpeg
+$LN9@stbi__jpeg:
+
+; 1830 : }
+; 1831 :
+; 1832 : 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
+
+; 1833 : return -1;
+
+ 00190 b8 ff ff ff ff mov eax, -1
+ 00195 e9 52 01 00 00 jmp $LN1@stbi__jpeg
+$LN10@stbi__jpeg:
+
+; 1834 :
+; 1835 : // convert the huffman code to the symbol id
+; 1836 : 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
+
+; 1837 : 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:
+
+; 1838 : return -1;
+
+ 001f4 b8 ff ff ff ff mov eax, -1
+ 001f9 e9 ee 00 00 00 jmp $LN1@stbi__jpeg
+$LN11@stbi__jpeg:
+
+; 1839 : 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 30 07 00
+ 00 mov r8d, 1840 ; 00000730H
+ 00274 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:??_C@_1KG@HOANCCHA@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@
+ 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:
+
+; 1840 : h->code[c]);
+; 1841 :
+; 1842 : // convert the id to a symbol
+; 1843 : 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
+
+; 1844 : 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
+
+; 1845 : 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:
+
+; 1846 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__grow_buffer_unsafe
+_TEXT SEGMENT
+b$1 = 4
+c$2 = 36
+tv70 = 244
+j$ = 288
+stbi__grow_buffer_unsafe PROC ; COMDAT
+
+; 1772 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+$LN4@stbi__grow:
+
+; 1773 : do {
+; 1774 : 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
+
+; 1775 : 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
+
+; 1776 : 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:
+
+; 1777 : 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
+
+; 1778 : 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:
+
+; 1779 : if (c != 0) {
+
+ 0009b 83 7d 24 00 cmp DWORD PTR c$2[rbp], 0
+ 0009f 74 24 je SHORT $LN8@stbi__grow
+
+; 1780 : 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
+
+; 1781 : 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
+
+; 1782 : return;
+
+ 000c3 eb 6b jmp SHORT $LN1@stbi__grow
+$LN8@stbi__grow:
+$LN7@stbi__grow:
+
+; 1783 : }
+; 1784 : }
+; 1785 : 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
+
+; 1786 : 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
+
+; 1787 : } 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:
+
+; 1788 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 1744 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 1745 : int i;
+; 1746 : 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
+
+; 1747 : 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
+
+; 1748 : 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
+
+; 1749 : 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
+
+; 1750 : 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
+
+; 1751 : 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
+
+; 1752 : 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
+
+; 1753 : 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
+
+; 1754 :
+; 1755 : 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
+
+; 1756 : // magnitude code followed by receive_extend code
+; 1757 : 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
+
+; 1758 : (FAST_BITS - magbits);
+; 1759 : 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
+
+; 1760 : 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
+
+; 1761 : 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:
+
+; 1762 : // if the result is small enough, we can fit it in fast_ac table
+; 1763 : 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
+
+; 1764 : 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:
+
+; 1765 : (len + magbits));
+; 1766 : }
+; 1767 : }
+; 1768 : }
+
+ 001a9 e9 80 fe ff ff jmp $LN2@stbi__buil
+$LN3@stbi__buil:
+
+; 1769 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 1695 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 1696 : int i, j, k = 0;
+
+ 00025 c7 45 44 00 00
+ 00 00 mov DWORD PTR k$[rbp], 0
+
+; 1697 : unsigned int code;
+; 1698 : // build size list for each symbol (from JPEG spec)
+; 1699 : 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
+
+; 1700 : 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
+
+; 1701 : 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
+
+; 1702 : 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
+
+; 1703 : 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:
+
+; 1704 : }
+
+ 000a0 eb aa jmp SHORT $LN5@stbi__buil
+$LN6@stbi__buil:
+
+; 1705 : }
+
+ 000a2 eb 91 jmp SHORT $LN2@stbi__buil
+$LN3@stbi__buil:
+
+; 1706 : 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
+
+; 1707 :
+; 1708 : // compute actual symbols (from jpeg spec)
+; 1709 : code = 0;
+
+ 000b7 c7 45 64 00 00
+ 00 00 mov DWORD PTR code$[rbp], 0
+
+; 1710 : k = 0;
+
+ 000be c7 45 44 00 00
+ 00 00 mov DWORD PTR k$[rbp], 0
+
+; 1711 : 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
+
+; 1712 : // compute delta to add to code to compute symbol id
+; 1713 : 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
+
+; 1714 : 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:
+
+; 1715 : 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
+
+; 1716 : 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:
+
+; 1717 : 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
+
+; 1718 : 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:
+
+; 1719 : }
+; 1720 : // compute largest code + 1 for this size, preshifted as needed later
+; 1721 : 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
+
+; 1722 : 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
+
+; 1723 : }
+
+ 001a5 e9 24 ff ff ff jmp $LN8@stbi__buil
+$LN9@stbi__buil:
+
+; 1724 : 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
+
+; 1725 :
+; 1726 : // build non-spec acceleration table; 255 is flag for not-accelerated
+; 1727 : 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
+
+; 1728 : 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
+
+; 1729 : 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
+
+; 1730 : 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
+
+; 1731 : 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
+
+; 1732 : 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
+
+; 1733 : 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
+
+; 1734 : 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
+
+; 1735 : }
+
+ 002a4 eb ce jmp SHORT $LN16@stbi__buil
+$LN17@stbi__buil:
+$LN22@stbi__buil:
+
+; 1736 : }
+; 1737 : }
+
+ 002a6 e9 39 ff ff ff jmp $LN13@stbi__buil
+$LN14@stbi__buil:
+
+; 1738 : return 1;
+
+ 002ab b8 01 00 00 00 mov eax, 1
+$LN1@stbi__buil:
+
+; 1739 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 1416 : {
+
+ 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:__079B8C84_stb_image@c
+ 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002d 90 npad 1
+
+; 1417 : int i, j;
+; 1418 : stbi__uint16 *good;
+; 1419 :
+; 1420 : 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
+
+; 1421 : 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:
+
+; 1422 : 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 8e 05 00
+ 00 mov r8d, 1422 ; 0000058eH
+ 00060 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:??_C@_1KG@HOANCCHA@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@
+ 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:
+
+; 1423 :
+; 1424 : 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
+
+; 1425 : if (good == NULL) {
+
+ 00099 48 83 7d 48 00 cmp QWORD PTR good$[rbp], 0
+ 0009e 75 42 jne SHORT $LN44@stbi__conv
+
+; 1426 : 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
+
+; 1427 : 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:
+
+; 1428 : }
+; 1429 :
+; 1430 : 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
+
+; 1431 : 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
+
+; 1432 : 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
+
+; 1433 :
+; 1434 : #define STBI__COMBO(a, b) ((a) * 8 + (b))
+; 1435 : #define STBI__CASE(a, b) \
+; 1436 : case STBI__COMBO(a, b): \
+; 1437 : for (i = x - 1; i >= 0; --i, src += a, dest += b)
+; 1438 : // convert source image with img_n components to one with req_comp components;
+; 1439 : // avoid switch per pixel, so use switch per scanline and massive macros
+; 1440 : 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:
+
+; 1441 : 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
+
+; 1442 : {
+; 1443 : 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
+
+; 1444 : 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
+
+; 1445 : }
+
+ 00209 eb 93 jmp SHORT $LN7@stbi__conv
+$LN8@stbi__conv:
+
+; 1446 : break;
+
+ 0020b e9 58 08 00 00 jmp $LN5@stbi__conv
+$LN46@stbi__conv:
+
+; 1447 : 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
+
+; 1448 : {
+; 1449 : 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
+
+; 1450 : }
+
+ 002c1 e9 57 ff ff ff jmp $LN10@stbi__conv
+$LN11@stbi__conv:
+
+; 1451 : break;
+
+ 002c6 e9 9d 07 00 00 jmp $LN5@stbi__conv
+$LN47@stbi__conv:
+
+; 1452 : 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
+
+; 1453 : {
+; 1454 : 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
+
+; 1455 : 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
+
+; 1456 : }
+
+ 00399 e9 3a ff ff ff jmp $LN13@stbi__conv
+$LN14@stbi__conv:
+
+; 1457 : break;
+
+ 0039e e9 c5 06 00 00 jmp $LN5@stbi__conv
+$LN48@stbi__conv:
+
+; 1458 : 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
+
+; 1459 : {
+; 1460 : 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
+
+; 1461 : }
+
+ 00402 eb ac jmp SHORT $LN16@stbi__conv
+$LN17@stbi__conv:
+
+; 1462 : break;
+
+ 00404 e9 5f 06 00 00 jmp $LN5@stbi__conv
+$LN49@stbi__conv:
+
+; 1463 : 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
+
+; 1464 : {
+; 1465 : 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
+
+; 1466 : }
+
+ 004ba e9 57 ff ff ff jmp $LN19@stbi__conv
+$LN20@stbi__conv:
+
+; 1467 : break;
+
+ 004bf e9 a4 05 00 00 jmp $LN5@stbi__conv
+$LN50@stbi__conv:
+
+; 1468 : 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
+
+; 1469 : {
+; 1470 : 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
+
+; 1471 : 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
+
+; 1472 : }
+
+ 0059f e9 2d ff ff ff jmp $LN22@stbi__conv
+$LN23@stbi__conv:
+
+; 1473 : break;
+
+ 005a4 e9 bf 04 00 00 jmp $LN5@stbi__conv
+$LN51@stbi__conv:
+
+; 1474 : 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
+
+; 1475 : {
+; 1476 : 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
+
+; 1477 : 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
+
+; 1478 : 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
+
+; 1479 : 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
+
+; 1480 : }
+
+ 00671 e9 40 ff ff ff jmp $LN25@stbi__conv
+$LN26@stbi__conv:
+
+; 1481 : break;
+
+ 00676 e9 ed 03 00 00 jmp $LN5@stbi__conv
+$LN52@stbi__conv:
+
+; 1482 : 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
+
+; 1483 : {
+; 1484 : 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
+
+; 1485 : }
+
+ 00714 e9 6f ff ff ff jmp $LN28@stbi__conv
+$LN29@stbi__conv:
+
+; 1486 : break;
+
+ 00719 e9 4a 03 00 00 jmp $LN5@stbi__conv
+$LN53@stbi__conv:
+
+; 1487 : 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
+
+; 1488 : {
+; 1489 : 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
+
+; 1490 : 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
+
+; 1491 : }
+
+ 007d0 e9 56 ff ff ff jmp $LN31@stbi__conv
+$LN32@stbi__conv:
+
+; 1492 : break;
+
+ 007d5 e9 8e 02 00 00 jmp $LN5@stbi__conv
+$LN54@stbi__conv:
+
+; 1493 : 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
+
+; 1494 : {
+; 1495 : 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
+
+; 1496 : }
+
+ 00873 e9 6f ff ff ff jmp $LN34@stbi__conv
+$LN35@stbi__conv:
+
+; 1497 : break;
+
+ 00878 e9 eb 01 00 00 jmp $LN5@stbi__conv
+$LN55@stbi__conv:
+
+; 1498 : 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
+
+; 1499 : {
+; 1500 : 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
+
+; 1501 : 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
+
+; 1502 : }
+
+ 00940 e9 45 ff ff ff jmp $LN37@stbi__conv
+$LN38@stbi__conv:
+
+; 1503 : break;
+
+ 00945 e9 1e 01 00 00 jmp $LN5@stbi__conv
+$LN56@stbi__conv:
+
+; 1504 : 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
+
+; 1505 : {
+; 1506 : 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
+
+; 1507 : 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
+
+; 1508 : 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
+
+; 1509 : }
+
+ 009f5 e9 5d ff ff ff jmp $LN40@stbi__conv
+$LN41@stbi__conv:
+
+; 1510 : break;
+
+ 009fa eb 6c jmp SHORT $LN5@stbi__conv
+$LN57@stbi__conv:
+
+; 1511 : default:
+; 1512 : 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 e8 05 00
+ 00 mov r8d, 1512 ; 000005e8H
+ 00a08 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:??_C@_1KG@HOANCCHA@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@
+ 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:
+
+; 1513 : 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
+
+; 1514 : 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
+
+; 1515 : 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:
+
+; 1516 : "Unsupported format conversion");
+; 1517 : }
+; 1518 : #undef STBI__CASE
+; 1519 : }
+
+ 00a68 e9 7e f6 ff ff jmp $LN2@stbi__conv
+$LN3@stbi__conv:
+
+; 1520 :
+; 1521 : 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
+
+; 1522 : return good;
+
+ 00a7b 48 8b 45 48 mov rax, QWORD PTR good$[rbp]
+$LN1@stbi__conv:
+
+; 1523 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__compute_y_16
+_TEXT SEGMENT
+r$ = 224
+g$ = 232
+b$ = 240
+stbi__compute_y_16 PROC ; COMDAT
+
+; 1406 : {
+
+ 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:__079B8C84_stb_image@c
+ 00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00027 90 npad 1
+
+; 1407 : 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
+
+; 1408 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 1293 : {
+
+ 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:__079B8C84_stb_image@c
+ 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002d 90 npad 1
+
+; 1294 : int i, j;
+; 1295 : unsigned char *good;
+; 1296 :
+; 1297 : 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
+
+; 1298 : 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:
+
+; 1299 : 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 13 05 00
+ 00 mov r8d, 1299 ; 00000513H
+ 00060 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:??_C@_1KG@HOANCCHA@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@
+ 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:
+
+; 1300 :
+; 1301 : 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
+
+; 1302 : if (good == NULL) {
+
+ 00095 48 83 7d 48 00 cmp QWORD PTR good$[rbp], 0
+ 0009a 75 42 jne SHORT $LN44@stbi__conv
+
+; 1303 : 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
+
+; 1304 : 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:
+
+; 1305 : }
+; 1306 :
+; 1307 : 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
+
+; 1308 : 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
+
+; 1309 : 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
+
+; 1310 :
+; 1311 : #define STBI__COMBO(a, b) ((a) * 8 + (b))
+; 1312 : #define STBI__CASE(a, b) \
+; 1313 : case STBI__COMBO(a, b): \
+; 1314 : for (i = x - 1; i >= 0; --i, src += a, dest += b)
+; 1315 : // convert source image with img_n components to one with req_comp components;
+; 1316 : // avoid switch per pixel, so use switch per scanline and massive macros
+; 1317 : 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:
+
+; 1318 : 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
+
+; 1319 : {
+; 1320 : 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
+
+; 1321 : 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
+
+; 1322 : }
+
+ 00202 eb 9a jmp SHORT $LN7@stbi__conv
+$LN8@stbi__conv:
+
+; 1323 : break;
+
+ 00204 e9 2b 08 00 00 jmp $LN5@stbi__conv
+$LN46@stbi__conv:
+
+; 1324 : 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
+
+; 1325 : {
+; 1326 : 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
+
+; 1327 : }
+
+ 002b6 e9 5b ff ff ff jmp $LN10@stbi__conv
+$LN11@stbi__conv:
+
+; 1328 : break;
+
+ 002bb e9 74 07 00 00 jmp $LN5@stbi__conv
+$LN47@stbi__conv:
+
+; 1329 : 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
+
+; 1330 : {
+; 1331 : 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
+
+; 1332 : 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
+
+; 1333 : }
+
+ 00385 e9 43 ff ff ff jmp $LN13@stbi__conv
+$LN14@stbi__conv:
+
+; 1334 : break;
+
+ 0038a e9 a5 06 00 00 jmp $LN5@stbi__conv
+$LN48@stbi__conv:
+
+; 1335 : 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
+
+; 1336 : {
+; 1337 : 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
+
+; 1338 : }
+
+ 003ec eb ae jmp SHORT $LN16@stbi__conv
+$LN17@stbi__conv:
+
+; 1339 : break;
+
+ 003ee e9 41 06 00 00 jmp $LN5@stbi__conv
+$LN49@stbi__conv:
+
+; 1340 : 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
+
+; 1341 : {
+; 1342 : 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
+
+; 1343 : }
+
+ 004a1 e9 5a ff ff ff jmp $LN19@stbi__conv
+$LN20@stbi__conv:
+
+; 1344 : break;
+
+ 004a6 e9 89 05 00 00 jmp $LN5@stbi__conv
+$LN50@stbi__conv:
+
+; 1345 : 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
+
+; 1346 : {
+; 1347 : 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
+
+; 1348 : 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
+
+; 1349 : }
+
+ 00582 e9 31 ff ff ff jmp $LN22@stbi__conv
+$LN23@stbi__conv:
+
+; 1350 : break;
+
+ 00587 e9 a8 04 00 00 jmp $LN5@stbi__conv
+$LN51@stbi__conv:
+
+; 1351 : 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
+
+; 1352 : {
+; 1353 : 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
+
+; 1354 : 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
+
+; 1355 : 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
+
+; 1356 : 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
+
+; 1357 : }
+
+ 0064c e9 48 ff ff ff jmp $LN25@stbi__conv
+$LN26@stbi__conv:
+
+; 1358 : break;
+
+ 00651 e9 de 03 00 00 jmp $LN5@stbi__conv
+$LN52@stbi__conv:
+
+; 1359 : 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
+
+; 1360 : {
+; 1361 : 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
+
+; 1362 : }
+
+ 006ed e9 71 ff ff ff jmp $LN28@stbi__conv
+$LN29@stbi__conv:
+
+; 1363 : break;
+
+ 006f2 e9 3d 03 00 00 jmp $LN5@stbi__conv
+$LN53@stbi__conv:
+
+; 1364 : 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
+
+; 1365 : {
+; 1366 : 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
+
+; 1367 : 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
+
+; 1368 : }
+
+ 007a3 e9 5c ff ff ff jmp $LN31@stbi__conv
+$LN32@stbi__conv:
+
+; 1369 : break;
+
+ 007a8 e9 87 02 00 00 jmp $LN5@stbi__conv
+$LN54@stbi__conv:
+
+; 1370 : 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
+
+; 1371 : {
+; 1372 : 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
+
+; 1373 : }
+
+ 00844 e9 71 ff ff ff jmp $LN34@stbi__conv
+$LN35@stbi__conv:
+
+; 1374 : break;
+
+ 00849 e9 e6 01 00 00 jmp $LN5@stbi__conv
+$LN55@stbi__conv:
+
+; 1375 : 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
+
+; 1376 : {
+; 1377 : 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
+
+; 1378 : 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
+
+; 1379 : }
+
+ 0090f e9 47 ff ff ff jmp $LN37@stbi__conv
+$LN38@stbi__conv:
+
+; 1380 : break;
+
+ 00914 e9 1b 01 00 00 jmp $LN5@stbi__conv
+$LN56@stbi__conv:
+
+; 1381 : 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
+
+; 1382 : {
+; 1383 : 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
+
+; 1384 : 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
+
+; 1385 : 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
+
+; 1386 : }
+
+ 009c1 e9 60 ff ff ff jmp $LN40@stbi__conv
+$LN41@stbi__conv:
+
+; 1387 : break;
+
+ 009c6 eb 6c jmp SHORT $LN5@stbi__conv
+$LN57@stbi__conv:
+
+; 1388 : default:
+; 1389 : 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 6d 05 00
+ 00 mov r8d, 1389 ; 0000056dH
+ 009d4 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:??_C@_1KG@HOANCCHA@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@
+ 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:
+
+; 1390 : 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
+
+; 1391 : 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
+
+; 1392 : 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:
+
+; 1393 : }
+; 1394 : #undef STBI__CASE
+; 1395 : }
+
+ 00a34 e9 ae f6 ff ff jmp $LN2@stbi__conv
+$LN3@stbi__conv:
+
+; 1396 :
+; 1397 : 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
+
+; 1398 : return good;
+
+ 00a47 48 8b 45 48 mov rax, QWORD PTR good$[rbp]
+$LN1@stbi__conv:
+
+; 1399 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__compute_y
+_TEXT SEGMENT
+r$ = 224
+g$ = 232
+b$ = 240
+stbi__compute_y PROC ; COMDAT
+
+; 1281 : {
+
+ 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:__079B8C84_stb_image@c
+ 00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00027 90 npad 1
+
+; 1282 : 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
+
+; 1283 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__get32le
+_TEXT SEGMENT
+z$ = 4
+s$ = 256
+stbi__get32le PROC ; COMDAT
+
+; 1255 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 1256 : 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
+
+; 1257 : 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
+
+; 1258 : return z;
+
+ 00048 8b 45 04 mov eax, DWORD PTR z$[rbp]
+
+; 1259 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__get16le
+_TEXT SEGMENT
+z$ = 4
+s$ = 256
+stbi__get16le PROC ; COMDAT
+
+; 1247 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 1248 : 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
+
+; 1249 : 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
+
+; 1250 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__get32be
+_TEXT SEGMENT
+z$ = 4
+tv66 = 212
+s$ = 256
+stbi__get32be PROC ; COMDAT
+
+; 1237 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 1238 : 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
+
+; 1239 : 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
+
+; 1240 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__get16be
+_TEXT SEGMENT
+z$ = 4
+tv67 = 212
+s$ = 256
+stbi__get16be PROC ; COMDAT
+
+; 1227 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 1228 : 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
+
+; 1229 : 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
+
+; 1230 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 1199 : {
+
+ 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:__079B8C84_stb_image@c
+ 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00029 90 npad 1
+
+; 1200 : 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
+
+; 1201 : 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
+
+; 1202 : 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
+
+; 1203 : int res, count;
+; 1204 :
+; 1205 : 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
+
+; 1206 :
+; 1207 : 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
+
+; 1208 : 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
+
+; 1209 : 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
+
+; 1210 : 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:
+
+; 1211 : }
+; 1212 : }
+; 1213 :
+; 1214 : 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
+
+; 1215 : 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
+
+; 1216 : 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
+
+; 1217 : return 1;
+
+ 0018a b8 01 00 00 00 mov eax, 1
+ 0018f eb 04 jmp SHORT $LN1@stbi__getn
+
+; 1218 : } else
+
+ 00191 eb 02 jmp SHORT $LN5@stbi__getn
+$LN4@stbi__getn:
+
+; 1219 : return 0;
+
+ 00193 33 c0 xor eax, eax
+$LN5@stbi__getn:
+$LN1@stbi__getn:
+
+; 1220 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__skip
+_TEXT SEGMENT
+blen$1 = 4
+s$ = 256
+n$ = 264
+stbi__skip PROC ; COMDAT
+
+; 1176 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00023 90 npad 1
+
+; 1177 : 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
+
+; 1178 : return; // already there!
+
+ 0002d e9 cb 00 00 00 jmp $LN1@stbi__skip
+$LN2@stbi__skip:
+
+; 1179 : 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
+
+; 1180 : 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
+
+; 1181 : return;
+
+ 00057 e9 a1 00 00 00 jmp $LN1@stbi__skip
+$LN3@stbi__skip:
+
+; 1182 : }
+; 1183 : 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
+
+; 1184 : 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
+
+; 1185 : 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
+
+; 1186 : 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
+
+; 1187 : (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
+
+; 1188 : return;
+
+ 000d8 eb 23 jmp SHORT $LN1@stbi__skip
+$LN5@stbi__skip:
+$LN4@stbi__skip:
+
+; 1189 : }
+; 1190 : }
+; 1191 : 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:
+
+; 1192 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__at_eof
+_TEXT SEGMENT
+tv76 = 192
+s$ = 240
+stbi__at_eof PROC ; COMDAT
+
+; 1156 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 1157 : 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
+
+; 1158 : 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
+
+; 1159 : return 0;
+
+ 00047 33 c0 xor eax, eax
+ 00049 eb 4e jmp SHORT $LN1@stbi__at_e
+$LN3@stbi__at_e:
+
+; 1160 : // if feof() is true, check if buffer = end
+; 1161 : // special case: we've only got the special 0 character at the end
+; 1162 : 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
+
+; 1163 : 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:
+
+; 1164 : }
+; 1165 :
+; 1166 : 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:
+
+; 1167 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__get8
+_TEXT SEGMENT
+tv72 = 192
+tv81 = 192
+s$ = 240
+stbi__get8 PROC ; COMDAT
+
+; 1142 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 1143 : 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
+
+; 1144 : 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:
+
+; 1145 : 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
+
+; 1146 : 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
+
+; 1147 : 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:
+
+; 1148 : }
+; 1149 : return 0;
+
+ 000d6 32 c0 xor al, al
+$LN1@stbi__get8:
+
+; 1150 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 979 : {
+
+ 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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 980 : unsigned char *data;
+; 981 : #ifndef STBI_NO_HDR
+; 982 : 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
+
+; 983 : stbi__result_info ri;
+; 984 : 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
+
+; 985 : 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
+
+; 986 : 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:
+
+; 987 : 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:
+
+; 988 : }
+; 989 : #endif
+; 990 : 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
+
+; 991 : if (data)
+
+ 00109 48 83 7d 08 00 cmp QWORD PTR data$[rbp], 0
+ 0010e 74 4b je SHORT $LN4@stbi__load
+
+; 992 : 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:
+
+; 993 : 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:
+
+; 994 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__fopen
+_TEXT SEGMENT
+f$ = 8
+__$ArrayPad$ = 216
+filename$ = 256
+mode$ = 264
+stbi__fopen PROC ; COMDAT
+
+; 836 : {
+
+ 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:__079B8C84_stb_image@c
+ 00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0004e 90 npad 1
+
+; 837 : FILE *f;
+; 838 : #if defined(_WIN32) && defined(STBI_WINDOWS_UTF8)
+; 839 : wchar_t wMode[64];
+; 840 : wchar_t wFilename[1024];
+; 841 : if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, filename, -1, wFilename,
+; 842 : sizeof(wFilename) / sizeof(*wFilename)))
+; 843 : return 0;
+; 844 :
+; 845 : if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, mode, -1, wMode,
+; 846 : sizeof(wMode) / sizeof(*wMode)))
+; 847 : return 0;
+; 848 :
+; 849 : #if defined(_MSC_VER) && _MSC_VER >= 1400
+; 850 : if (0 != _wfopen_s(&f, wFilename, wMode))
+; 851 : f = 0;
+; 852 : #else
+; 853 : f = _wfopen(wFilename, wMode);
+; 854 : #endif
+; 855 :
+; 856 : #elif defined(_MSC_VER) && _MSC_VER >= 1400
+; 857 : 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
+
+; 858 : f = 0;
+
+ 0006b 48 c7 45 08 00
+ 00 00 00 mov QWORD PTR f$[rbp], 0
+$LN2@stbi__fope:
+
+; 859 : #else
+; 860 : f = fopen(filename, mode);
+; 861 : #endif
+; 862 : return f;
+
+ 00073 48 8b 45 08 mov rax, QWORD PTR f$[rbp]
+
+; 863 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 807 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 808 : 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
+
+; 809 : 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
+
+; 810 : 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:
+
+; 811 : }
+; 812 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 778 : {
+
+ 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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 779 : stbi__result_info ri;
+; 780 : 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
+
+; 781 :
+; 782 : if (result == NULL)
+
+ 00099 48 83 7d 38 00 cmp QWORD PTR result$[rbp], 0
+ 0009e 75 07 jne SHORT $LN2@stbi__load
+
+; 783 : return NULL;
+
+ 000a0 33 c0 xor eax, eax
+ 000a2 e9 36 01 00 00 jmp $LN1@stbi__load
+$LN2@stbi__load:
+
+; 784 :
+; 785 : // it is the responsibility of the loaders to make sure we get either 8 or 16 bit.
+; 786 : 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 12 03 00
+ 00 mov r8d, 786 ; 00000312H
+ 000b9 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:??_C@_1KG@HOANCCHA@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@
+ 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:
+
+; 787 :
+; 788 : 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
+
+; 789 : 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
+
+; 790 : req_comp == 0 ? *comp : req_comp);
+; 791 : ri.bits_per_channel = 16;
+
+ 00122 c7 45 08 10 00
+ 00 00 mov DWORD PTR ri$[rbp], 16
+$LN3@stbi__load:
+
+; 792 : }
+; 793 :
+; 794 : // @TODO: move stbi__convert_format16 to here
+; 795 : // @TODO: special case RGB-to-Y (and RGBA-to-YA) for 8-bit-to-16-bit case to keep more precision
+; 796 :
+; 797 : 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
+
+; 798 : 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
+
+; 799 : 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:
+
+; 800 : }
+; 801 :
+; 802 : return (stbi__uint16 *)result;
+
+ 001d9 48 8b 45 38 mov rax, QWORD PTR result$[rbp]
+$LN1@stbi__load:
+
+; 803 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 750 : {
+
+ 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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 751 : stbi__result_info ri;
+; 752 : 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
+
+; 753 :
+; 754 : if (result == NULL)
+
+ 00099 48 83 7d 38 00 cmp QWORD PTR result$[rbp], 0
+ 0009e 75 07 jne SHORT $LN2@stbi__load
+
+; 755 : return NULL;
+
+ 000a0 33 c0 xor eax, eax
+ 000a2 e9 30 01 00 00 jmp $LN1@stbi__load
+$LN2@stbi__load:
+
+; 756 :
+; 757 : // it is the responsibility of the loaders to make sure we get either 8 or 16 bit.
+; 758 : 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 f6 02 00
+ 00 mov r8d, 758 ; 000002f6H
+ 000b9 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:??_C@_1KG@HOANCCHA@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@
+ 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:
+
+; 759 :
+; 760 : 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
+
+; 761 : 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
+
+; 762 : req_comp == 0 ? *comp : req_comp);
+; 763 : ri.bits_per_channel = 8;
+
+ 00122 c7 45 08 08 00
+ 00 00 mov DWORD PTR ri$[rbp], 8
+$LN3@stbi__load:
+
+; 764 : }
+; 765 :
+; 766 : // @TODO: move stbi__convert_format to here
+; 767 :
+; 768 : 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
+
+; 769 : 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
+
+; 770 : 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:
+
+; 771 : }
+; 772 :
+; 773 : return (unsigned char *)result;
+
+ 001d3 48 8b 45 38 mov rax, QWORD PTR result$[rbp]
+$LN1@stbi__load:
+
+; 774 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 736 : {
+
+ 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:__079B8C84_stb_image@c
+ 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002d 90 npad 1
+
+; 737 : int slice;
+; 738 : 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
+
+; 739 :
+; 740 : 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
+
+; 741 : 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
+
+; 742 : 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
+
+; 743 : 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
+
+; 744 : }
+
+ 0009c eb bb jmp SHORT $LN2@stbi__vert
+$LN3@stbi__vert:
+
+; 745 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 711 : {
+
+ 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:__079B8C84_stb_image@c
+ 00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00057 90 npad 1
+
+; 712 : int row;
+; 713 : 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
+
+; 714 : stbi_uc temp[2048];
+; 715 : 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
+
+; 716 :
+; 717 : 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
+
+; 718 : 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
+
+; 719 : 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
+
+; 720 : // swap row0 with row1
+; 721 : 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:
+
+; 722 : 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
+
+; 723 : 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
+
+; 724 : 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
+
+; 725 : 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
+
+; 726 : 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
+
+; 727 : 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
+
+; 728 : 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
+
+; 729 : 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
+
+; 730 : }
+
+ 001d0 e9 1b ff ff ff jmp $LN5@stbi__vert
+$LN6@stbi__vert:
+
+; 731 : }
+
+ 001d5 e9 ab fe ff ff jmp $LN2@stbi__vert
+$LN3@stbi__vert:
+
+; 732 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 692 : {
+
+ 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:__079B8C84_stb_image@c
+ 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002d 90 npad 1
+
+; 693 : int i;
+; 694 : 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
+
+; 695 : stbi__uint16 *enlarged;
+; 696 :
+; 697 : 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
+
+; 698 : if (enlarged == NULL)
+
+ 00058 48 83 7d 48 00 cmp QWORD PTR enlarged$[rbp], 0
+ 0005d 75 31 jne SHORT $LN5@stbi__conv
+
+; 699 : 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:
+
+; 700 :
+; 701 : 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
+
+; 702 : 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:
+
+; 703 : (stbi__uint16)((orig[i] << 8) +
+; 704 : orig[i]); // replicate to high and low byte, maps 0->0, 255->0xffff
+; 705 :
+; 706 : 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
+
+; 707 : return enlarged;
+
+ 000e8 48 8b 45 48 mov rax, QWORD PTR enlarged$[rbp]
+$LN1@stbi__conv:
+
+; 708 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 673 : {
+
+ 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:__079B8C84_stb_image@c
+ 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002d 90 npad 1
+
+; 674 : int i;
+; 675 : 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
+
+; 676 : stbi_uc *reduced;
+; 677 :
+; 678 : 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
+
+; 679 : if (reduced == NULL)
+
+ 00055 48 83 7d 48 00 cmp QWORD PTR reduced$[rbp], 0
+ 0005a 75 31 jne SHORT $LN5@stbi__conv
+
+; 680 : 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:
+
+; 681 :
+; 682 : 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
+
+; 683 : 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:
+
+; 684 : (stbi_uc)((orig[i] >> 8) &
+; 685 : 0xFF); // top half of each byte is sufficient approx of 16->8 bit scaling
+; 686 :
+; 687 : 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
+
+; 688 : return reduced;
+
+ 000d8 48 8b 45 48 mov rax, QWORD PTR reduced$[rbp]
+$LN1@stbi__conv:
+
+; 689 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 611 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 612 : memset(ri, 0,
+
+ 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
+
+; 613 : sizeof(*ri)); // make sure it's initialized if we add new fields
+; 614 : 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
+
+; 615 : 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
+
+; 616 : STBI_ORDER_RGB; // all current input & output are this, but this is here so we can add BGR order
+; 617 : 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
+
+; 618 :
+; 619 : // test the formats with a very explicit header first (at least a FOURCC
+; 620 : // or distinctive magic number first)
+; 621 : #ifndef STBI_NO_PNG
+; 622 : 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
+
+; 623 : 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:
+
+; 624 : #endif
+; 625 : #ifndef STBI_NO_BMP
+; 626 : 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
+
+; 627 : 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:
+
+; 628 : #endif
+; 629 : #ifndef STBI_NO_GIF
+; 630 : 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
+
+; 631 : 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:
+
+; 632 : #endif
+; 633 : #ifndef STBI_NO_PSD
+; 634 : 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
+
+; 635 : 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:
+
+; 636 : #else
+; 637 : STBI_NOTUSED(bpc);
+; 638 : #endif
+; 639 : #ifndef STBI_NO_PIC
+; 640 : 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
+
+; 641 : 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:
+
+; 642 : #endif
+; 643 :
+; 644 : // then the formats that can end up attempting to load with just 1 or 2
+; 645 : // bytes matching expectations; these are prone to false positives, so
+; 646 : // try them later
+; 647 : #ifndef STBI_NO_JPEG
+; 648 : 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
+
+; 649 : 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:
+
+; 650 : #endif
+; 651 : #ifndef STBI_NO_PNM
+; 652 : 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
+
+; 653 : 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:
+
+; 654 : #endif
+; 655 :
+; 656 : #ifndef STBI_NO_HDR
+; 657 : 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
+
+; 658 : 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
+
+; 659 : 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:
+
+; 660 : }
+; 661 : #endif
+; 662 :
+; 663 : #ifndef STBI_NO_TGA
+; 664 : // test tga last because it's a crappy test!
+; 665 : 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
+
+; 666 : 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:
+
+; 667 : #endif
+; 668 :
+; 669 : 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:
+
+; 670 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 1563 : {
+
+ 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:__079B8C84_stb_image@c
+ 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002d 90 npad 1
+
+; 1564 : int i, k, n;
+; 1565 : stbi_uc *output;
+; 1566 : 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_
+
+; 1567 : return NULL;
+
+ 00038 33 c0 xor eax, eax
+ 0003a e9 3e 02 00 00 jmp $LN1@stbi__hdr_
+$LN8@stbi__hdr_:
+
+; 1568 : 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
+
+; 1569 : if (output == NULL) {
+
+ 0005e 48 83 7d 68 00 cmp QWORD PTR output$[rbp], 0
+ 00063 75 42 jne SHORT $LN9@stbi__hdr_
+
+; 1570 : 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
+
+; 1571 : 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_:
+
+; 1572 : }
+; 1573 : // compute number of non-alpha components
+; 1574 : 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_
+
+; 1575 : 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_:
+
+; 1576 : else
+; 1577 : 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_:
+
+; 1578 : 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_
+
+; 1579 : 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_
+
+; 1580 : 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
+
+; 1581 : stbi__h2l_gamma_i) *
+; 1582 : 255 +
+; 1583 : 0.5f;
+; 1584 : 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_
+
+; 1585 : 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_:
+
+; 1586 : 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_
+
+; 1587 : 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_:
+
+; 1588 : 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
+
+; 1589 : }
+
+ 001c8 e9 2d ff ff ff jmp $LN5@stbi__hdr_
+$LN6@stbi__hdr_:
+
+; 1590 : 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_
+
+; 1591 : 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
+
+; 1592 : 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_
+
+; 1593 : 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_:
+
+; 1594 : 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_
+
+; 1595 : 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_:
+
+; 1596 : 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_:
+
+; 1597 : }
+; 1598 : }
+
+ 00266 e9 68 fe ff ff jmp $LN2@stbi__hdr_
+$LN3@stbi__hdr_:
+
+; 1599 : 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
+
+; 1600 : return output;
+
+ 00279 48 8b 45 68 mov rax, QWORD PTR output$[rbp]
+$LN1@stbi__hdr_:
+
+; 1601 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 1528 : {
+
+ 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:__079B8C84_stb_image@c
+ 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002d 90 npad 1
+
+; 1529 : int i, k, n;
+; 1530 : float *output;
+; 1531 : 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_
+
+; 1532 : return NULL;
+
+ 00038 33 c0 xor eax, eax
+ 0003a e9 d2 01 00 00 jmp $LN1@stbi__ldr_
+$LN11@stbi__ldr_:
+
+; 1533 : 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
+
+; 1534 : if (output == NULL) {
+
+ 00069 48 83 7d 68 00 cmp QWORD PTR output$[rbp], 0
+ 0006e 75 42 jne SHORT $LN12@stbi__ldr_
+
+; 1535 : 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
+
+; 1536 : 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_:
+
+; 1537 : }
+; 1538 : // compute number of non-alpha components
+; 1539 : 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_
+
+; 1540 : 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_:
+
+; 1541 : else
+; 1542 : 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_:
+
+; 1543 : 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_
+
+; 1544 : 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_
+
+; 1545 : 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
+
+; 1546 : (float)(pow(data[i * comp + k] / 255.0f, stbi__l2h_gamma) *
+; 1547 : stbi__l2h_scale);
+; 1548 : }
+
+ 00187 e9 79 ff ff ff jmp $LN5@stbi__ldr_
+$LN6@stbi__ldr_:
+
+; 1549 : }
+
+ 0018c e9 4d ff ff ff jmp $LN2@stbi__ldr_
+$LN3@stbi__ldr_:
+
+; 1550 : 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_
+
+; 1551 : 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_
+
+; 1552 : 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
+
+; 1553 : }
+
+ 001fd eb a6 jmp SHORT $LN8@stbi__ldr_
+$LN9@stbi__ldr_:
+$LN15@stbi__ldr_:
+
+; 1554 : }
+; 1555 : 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
+
+; 1556 : return output;
+
+ 0020d 48 8b 45 68 mov rax, QWORD PTR output$[rbp]
+$LN1@stbi__ldr_:
+
+; 1557 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__mul2shorts_valid
+_TEXT SEGMENT
+tv73 = 192
+tv75 = 192
+tv82 = 192
+tv87 = 192
+tv72 = 196
+tv79 = 196
+tv86 = 196
+tv91 = 196
+a$ = 240
+b$ = 248
+stbi__mul2shorts_valid PROC ; COMDAT
+
+; 548 : {
+
+ 00000 66 89 54 24 10 mov WORD PTR [rsp+16], dx
+ 00005 66 89 4c 24 08 mov WORD PTR [rsp+8], cx
+ 0000a 55 push rbp
+ 0000b 57 push rdi
+ 0000c 48 81 ec f8 00
+ 00 00 sub rsp, 248 ; 000000f8H
+ 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
+ 00018 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:__079B8C84_stb_image@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 549 : if (b == 0 || b == -1)
+
+ 00025 0f bf 85 f8 00
+ 00 00 movsx eax, WORD PTR b$[rbp]
+ 0002c 85 c0 test eax, eax
+ 0002e 74 0c je SHORT $LN3@stbi__mul2
+ 00030 0f bf 85 f8 00
+ 00 00 movsx eax, WORD PTR b$[rbp]
+ 00037 83 f8 ff cmp eax, -1
+ 0003a 75 0a jne SHORT $LN2@stbi__mul2
+$LN3@stbi__mul2:
+
+; 550 : return 1; // multiplication by 0 is always 0; check for -1 so SHRT_MIN/b doesn't overflow
+
+ 0003c b8 01 00 00 00 mov eax, 1
+ 00041 e9 28 01 00 00 jmp $LN1@stbi__mul2
+$LN2@stbi__mul2:
+
+; 551 : if ((a >= 0) == (b >= 0))
+
+ 00046 0f bf 85 f0 00
+ 00 00 movsx eax, WORD PTR a$[rbp]
+ 0004d 85 c0 test eax, eax
+ 0004f 7c 0c jl SHORT $LN9@stbi__mul2
+ 00051 c7 85 c0 00 00
+ 00 01 00 00 00 mov DWORD PTR tv73[rbp], 1
+ 0005b eb 0a jmp SHORT $LN10@stbi__mul2
+$LN9@stbi__mul2:
+ 0005d c7 85 c0 00 00
+ 00 00 00 00 00 mov DWORD PTR tv73[rbp], 0
+$LN10@stbi__mul2:
+ 00067 0f bf 85 f8 00
+ 00 00 movsx eax, WORD PTR b$[rbp]
+ 0006e 85 c0 test eax, eax
+ 00070 7c 0c jl SHORT $LN7@stbi__mul2
+ 00072 c7 85 c4 00 00
+ 00 01 00 00 00 mov DWORD PTR tv72[rbp], 1
+ 0007c eb 0a jmp SHORT $LN8@stbi__mul2
+$LN7@stbi__mul2:
+ 0007e c7 85 c4 00 00
+ 00 00 00 00 00 mov DWORD PTR tv72[rbp], 0
+$LN8@stbi__mul2:
+ 00088 8b 85 c4 00 00
+ 00 mov eax, DWORD PTR tv72[rbp]
+ 0008e 39 85 c0 00 00
+ 00 cmp DWORD PTR tv73[rbp], eax
+ 00094 75 47 jne SHORT $LN4@stbi__mul2
+
+; 552 : return a <= SHRT_MAX / b; // product is positive, so similar to mul2sizes_valid
+
+ 00096 0f bf 85 f0 00
+ 00 00 movsx eax, WORD PTR a$[rbp]
+ 0009d 89 85 c0 00 00
+ 00 mov DWORD PTR tv75[rbp], eax
+ 000a3 0f bf 8d f8 00
+ 00 00 movsx ecx, WORD PTR b$[rbp]
+ 000aa b8 ff 7f 00 00 mov eax, 32767 ; 00007fffH
+ 000af 99 cdq
+ 000b0 f7 f9 idiv ecx
+ 000b2 8b 8d c0 00 00
+ 00 mov ecx, DWORD PTR tv75[rbp]
+ 000b8 3b c8 cmp ecx, eax
+ 000ba 7f 0c jg SHORT $LN11@stbi__mul2
+ 000bc c7 85 c4 00 00
+ 00 01 00 00 00 mov DWORD PTR tv79[rbp], 1
+ 000c6 eb 0a jmp SHORT $LN12@stbi__mul2
+$LN11@stbi__mul2:
+ 000c8 c7 85 c4 00 00
+ 00 00 00 00 00 mov DWORD PTR tv79[rbp], 0
+$LN12@stbi__mul2:
+ 000d2 8b 85 c4 00 00
+ 00 mov eax, DWORD PTR tv79[rbp]
+ 000d8 e9 91 00 00 00 jmp $LN1@stbi__mul2
+$LN4@stbi__mul2:
+
+; 553 : if (b < 0)
+
+ 000dd 0f bf 85 f8 00
+ 00 00 movsx eax, WORD PTR b$[rbp]
+ 000e4 85 c0 test eax, eax
+ 000e6 7d 44 jge SHORT $LN5@stbi__mul2
+
+; 554 : return a <= SHRT_MIN / b; // same as a * b >= SHRT_MIN
+
+ 000e8 0f bf 85 f0 00
+ 00 00 movsx eax, WORD PTR a$[rbp]
+ 000ef 89 85 c0 00 00
+ 00 mov DWORD PTR tv82[rbp], eax
+ 000f5 0f bf 8d f8 00
+ 00 00 movsx ecx, WORD PTR b$[rbp]
+ 000fc b8 00 80 ff ff mov eax, -32768 ; ffffffffffff8000H
+ 00101 99 cdq
+ 00102 f7 f9 idiv ecx
+ 00104 8b 8d c0 00 00
+ 00 mov ecx, DWORD PTR tv82[rbp]
+ 0010a 3b c8 cmp ecx, eax
+ 0010c 7f 0c jg SHORT $LN13@stbi__mul2
+ 0010e c7 85 c4 00 00
+ 00 01 00 00 00 mov DWORD PTR tv86[rbp], 1
+ 00118 eb 0a jmp SHORT $LN14@stbi__mul2
+$LN13@stbi__mul2:
+ 0011a c7 85 c4 00 00
+ 00 00 00 00 00 mov DWORD PTR tv86[rbp], 0
+$LN14@stbi__mul2:
+ 00124 8b 85 c4 00 00
+ 00 mov eax, DWORD PTR tv86[rbp]
+ 0012a eb 42 jmp SHORT $LN1@stbi__mul2
+$LN5@stbi__mul2:
+
+; 555 : return a >= SHRT_MIN / b;
+
+ 0012c 0f bf 85 f0 00
+ 00 00 movsx eax, WORD PTR a$[rbp]
+ 00133 89 85 c0 00 00
+ 00 mov DWORD PTR tv87[rbp], eax
+ 00139 0f bf 8d f8 00
+ 00 00 movsx ecx, WORD PTR b$[rbp]
+ 00140 b8 00 80 ff ff mov eax, -32768 ; ffffffffffff8000H
+ 00145 99 cdq
+ 00146 f7 f9 idiv ecx
+ 00148 8b 8d c0 00 00
+ 00 mov ecx, DWORD PTR tv87[rbp]
+ 0014e 3b c8 cmp ecx, eax
+ 00150 7c 0c jl SHORT $LN15@stbi__mul2
+ 00152 c7 85 c4 00 00
+ 00 01 00 00 00 mov DWORD PTR tv91[rbp], 1
+ 0015c eb 0a jmp SHORT $LN16@stbi__mul2
+$LN15@stbi__mul2:
+ 0015e c7 85 c4 00 00
+ 00 00 00 00 00 mov DWORD PTR tv91[rbp], 0
+$LN16@stbi__mul2:
+ 00168 8b 85 c4 00 00
+ 00 mov eax, DWORD PTR tv91[rbp]
+$LN1@stbi__mul2:
+
+; 556 : }
+
+ 0016e 48 8d a5 d8 00
+ 00 00 lea rsp, QWORD PTR [rbp+216]
+ 00175 5f pop rdi
+ 00176 5d pop rbp
+ 00177 c3 ret 0
+stbi__mul2shorts_valid ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__addints_valid
+_TEXT SEGMENT
+tv67 = 192
+tv73 = 192
+tv76 = 192
+tv66 = 196
+a$ = 240
+b$ = 248
+stbi__addints_valid PROC ; COMDAT
+
+; 536 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00022 90 npad 1
+
+; 537 : 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
+
+; 538 : 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:
+
+; 539 : 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
+
+; 540 : 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:
+
+; 541 : INT_MIN -
+; 542 : b; // same as a + b >= INT_MIN; INT_MIN - b cannot overflow since b < 0.
+; 543 : 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:
+
+; 544 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__malloc_mad4
+_TEXT SEGMENT
+a$ = 224
+b$ = 232
+c$ = 240
+d$ = 248
+add$ = 256
+stbi__malloc_mad4 PROC ; COMDAT
+
+; 527 : {
+
+ 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:__079B8C84_stb_image@c
+ 00027 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002c 90 npad 1
+
+; 528 : 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
+
+; 529 : return NULL;
+
+ 0005a 33 c0 xor eax, eax
+ 0005c eb 2b jmp SHORT $LN1@stbi__mall
+$LN2@stbi__mall:
+
+; 530 : 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:
+
+; 531 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__malloc_mad3
+_TEXT SEGMENT
+a$ = 224
+b$ = 232
+c$ = 240
+add$ = 248
+stbi__malloc_mad3 PROC ; COMDAT
+
+; 519 : {
+
+ 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:__079B8C84_stb_image@c
+ 00027 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002c 90 npad 1
+
+; 520 : 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
+
+; 521 : return NULL;
+
+ 00050 33 c0 xor eax, eax
+ 00052 eb 24 jmp SHORT $LN1@stbi__mall
+$LN2@stbi__mall:
+
+; 522 : 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:
+
+; 523 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__malloc_mad2
+_TEXT SEGMENT
+a$ = 224
+b$ = 232
+add$ = 240
+stbi__malloc_mad2 PROC ; COMDAT
+
+; 511 : {
+
+ 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:__079B8C84_stb_image@c
+ 00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00027 90 npad 1
+
+; 512 : 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
+
+; 513 : return NULL;
+
+ 00044 33 c0 xor eax, eax
+ 00046 eb 1d jmp SHORT $LN1@stbi__mall
+$LN2@stbi__mall:
+
+; 514 : 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:
+
+; 515 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__mad4sizes_valid
+_TEXT SEGMENT
+tv86 = 192
+a$ = 240
+b$ = 248
+c$ = 256
+d$ = 264
+add$ = 272
+stbi__mad4sizes_valid PROC ; COMDAT
+
+; 501 : {
+
+ 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:__079B8C84_stb_image@c
+ 00027 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002c 90 npad 1
+
+; 502 : 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]
+
+; 503 : stbi__mul2sizes_valid(a * b * c, d) && stbi__addsizes_valid(a * b * c * d, add);
+; 504 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__mad3sizes_valid
+_TEXT SEGMENT
+tv79 = 192
+a$ = 240
+b$ = 248
+c$ = 256
+add$ = 264
+stbi__mad3sizes_valid PROC ; COMDAT
+
+; 493 : {
+
+ 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:__079B8C84_stb_image@c
+ 00027 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002c 90 npad 1
+
+; 494 : 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]
+
+; 495 : stbi__addsizes_valid(a * b * c, add);
+; 496 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__mad2sizes_valid
+_TEXT SEGMENT
+tv73 = 192
+a$ = 240
+b$ = 248
+add$ = 256
+stbi__mad2sizes_valid PROC ; COMDAT
+
+; 486 : {
+
+ 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:__079B8C84_stb_image@c
+ 00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00027 90 npad 1
+
+; 487 : 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]
+
+; 488 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__mul2sizes_valid
+_TEXT SEGMENT
+tv69 = 192
+a$ = 240
+b$ = 248
+stbi__mul2sizes_valid PROC ; COMDAT
+
+; 473 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00022 90 npad 1
+
+; 474 : 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:
+
+; 475 : return 0;
+
+ 00035 33 c0 xor eax, eax
+ 00037 eb 40 jmp SHORT $LN1@stbi__mul2
+$LN2@stbi__mul2:
+
+; 476 : 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
+
+; 477 : 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:
+
+; 478 : // portable way to check for no overflows in a*b
+; 479 : 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:
+
+; 480 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__addsizes_valid
+_TEXT SEGMENT
+tv67 = 192
+a$ = 240
+b$ = 248
+stbi__addsizes_valid PROC ; COMDAT
+
+; 460 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00022 90 npad 1
+
+; 461 : 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
+
+; 462 : return 0;
+
+ 0002c 33 c0 xor eax, eax
+ 0002e eb 2f jmp SHORT $LN1@stbi__adds
+$LN2@stbi__adds:
+
+; 463 : // now 0 <= b <= INT_MAX, hence also
+; 464 : // 0 <= INT_MAX - b <= INTMAX.
+; 465 : // And "a + b <= INT_MAX" (which might overflow) is the
+; 466 : // same as a <= INT_MAX - b (no overflow)
+; 467 : 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:
+
+; 468 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__malloc
+_TEXT SEGMENT
+size$ = 224
+stbi__malloc PROC ; COMDAT
+
+; 443 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 444 : 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
+
+; 445 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__err
+_TEXT SEGMENT
+str$ = 224
+stbi__err PROC ; COMDAT
+
+; 436 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 437 : 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
+
+; 438 : return 0;
+
+ 00045 33 c0 xor eax, eax
+
+; 439 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__pnm_is16
+_TEXT SEGMENT
+s$ = 224
+stbi__pnm_is16 PROC ; COMDAT
+
+; 8101 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 8102 : 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_
+
+; 8103 : return 1;
+
+ 00039 b8 01 00 00 00 mov eax, 1
+ 0003e eb 02 jmp SHORT $LN1@stbi__pnm_
+$LN2@stbi__pnm_:
+
+; 8104 : return 0;
+
+ 00040 33 c0 xor eax, eax
+$LN1@stbi__pnm_:
+
+; 8105 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 8054 : {
+
+ 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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 8055 : int maxv, dummy;
+; 8056 : char c, p, t;
+; 8057 :
+; 8058 : 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_
+
+; 8059 : 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_:
+
+; 8060 : 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_
+
+; 8061 : 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_:
+
+; 8062 : 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_
+
+; 8063 : 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_:
+
+; 8064 :
+; 8065 : 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
+
+; 8066 :
+; 8067 : // Get identifier
+; 8068 : 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
+
+; 8069 : 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
+
+; 8070 : 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_:
+
+; 8071 : 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
+
+; 8072 : return 0;
+
+ 000f4 33 c0 xor eax, eax
+ 000f6 e9 1f 01 00 00 jmp $LN1@stbi__pnm_
+$LN5@stbi__pnm_:
+
+; 8073 : }
+; 8074 :
+; 8075 : *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
+
+; 8076 :
+; 8077 : 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
+
+; 8078 : 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
+
+; 8079 :
+; 8080 : *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
+
+; 8081 : 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_
+
+; 8082 : 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_:
+
+; 8083 : 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
+
+; 8084 :
+; 8085 : *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
+
+; 8086 : 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_
+
+; 8087 : 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_:
+
+; 8088 : 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
+
+; 8089 :
+; 8090 : 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
+
+; 8091 : 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_
+
+; 8092 : 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_:
+
+; 8093 : "PPM image supports only 8-bit and 16-bit images");
+; 8094 : 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_
+
+; 8095 : 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_:
+
+; 8096 : else
+; 8097 : return 8;
+
+ 00215 b8 08 00 00 00 mov eax, 8
+$LN12@stbi__pnm_:
+$LN10@stbi__pnm_:
+$LN1@stbi__pnm_:
+
+; 8098 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 7969 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 7970 : stbi_uc *out;
+; 7971 : STBI_NOTUSED(ri);
+; 7972 :
+; 7973 : 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
+
+; 7974 : stbi__pnm_info(s, (int *)&s->img_x, (int *)&s->img_y, (int *)&s->img_n);
+; 7975 : 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_
+
+; 7976 : return 0;
+
+ 00073 33 c0 xor eax, eax
+ 00075 e9 06 03 00 00 jmp $LN1@stbi__pnm_
+$LN2@stbi__pnm_:
+
+; 7977 :
+; 7978 : 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_
+
+; 7979 : 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_:
+
+; 7980 : 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_
+
+; 7981 : 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_:
+
+; 7982 :
+; 7983 : *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
+
+; 7984 : *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
+
+; 7985 : 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_
+
+; 7986 : *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_:
+
+; 7987 :
+; 7988 : 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_
+
+; 7989 : 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_:
+
+; 7990 :
+; 7991 : 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
+
+; 7992 : 0);
+; 7993 : if (!out)
+
+ 001ff 48 83 7d 08 00 cmp QWORD PTR out$[rbp], 0
+ 00204 75 34 jne SHORT $LN7@stbi__pnm_
+
+; 7994 : 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_:
+
+; 7995 : 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_
+
+; 7996 : 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
+
+; 7997 : 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_:
+
+; 7998 : }
+; 7999 :
+; 8000 : 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_
+
+; 8001 : 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_
+
+; 8002 : 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
+
+; 8003 : req_comp, s->img_x, s->img_y);
+; 8004 : } else {
+
+ 00337 eb 36 jmp SHORT $LN11@stbi__pnm_
+$LN10@stbi__pnm_:
+
+; 8005 : 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_:
+
+; 8006 : }
+; 8007 : if (out == NULL)
+
+ 0036f 48 83 7d 08 00 cmp QWORD PTR out$[rbp], 0
+ 00374 75 06 jne SHORT $LN12@stbi__pnm_
+
+; 8008 : 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_:
+
+; 8009 : }
+; 8010 : return out;
+
+ 0037c 48 8b 45 08 mov rax, QWORD PTR out$[rbp]
+$LN1@stbi__pnm_:
+
+; 8011 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__pnm_test
+_TEXT SEGMENT
+p$ = 4
+t$ = 36
+s$ = 288
+stbi__pnm_test PROC ; COMDAT
+
+; 7956 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 7957 : char p, t;
+; 7958 : 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
+
+; 7959 : 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
+
+; 7960 : 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_:
+
+; 7961 : 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
+
+; 7962 : return 0;
+
+ 00066 33 c0 xor eax, eax
+ 00068 eb 05 jmp SHORT $LN1@stbi__pnm_
+$LN2@stbi__pnm_:
+
+; 7963 : }
+; 7964 : return 1;
+
+ 0006a b8 01 00 00 00 mov eax, 1
+$LN1@stbi__pnm_:
+
+; 7965 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__gif_info
+_TEXT SEGMENT
+s$ = 224
+x$ = 232
+y$ = 240
+comp$ = 248
+stbi__gif_info PROC ; COMDAT
+
+; 7491 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 7492 : 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
+
+; 7493 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 7368 : {
+
+ 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:__079B8C84_stb_image@c
+ 00059 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0005e 90 npad 1
+
+; 7369 : 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
+
+; 7370 : int layers = 0;
+
+ 00073 c7 45 04 00 00
+ 00 00 mov DWORD PTR layers$4[rbp], 0
+
+; 7371 : stbi_uc *u = 0;
+
+ 0007a 48 c7 45 28 00
+ 00 00 00 mov QWORD PTR u$5[rbp], 0
+
+; 7372 : stbi_uc *out = 0;
+
+ 00082 48 c7 45 48 00
+ 00 00 00 mov QWORD PTR out$6[rbp], 0
+
+; 7373 : stbi_uc *two_back = 0;
+
+ 0008a 48 c7 45 68 00
+ 00 00 00 mov QWORD PTR two_back$7[rbp], 0
+
+; 7374 : stbi__gif g;
+; 7375 : int stride;
+; 7376 : int out_size = 0;
+
+ 00092 c7 85 34 89 00
+ 00 00 00 00 00 mov DWORD PTR out_size$10[rbp], 0
+
+; 7377 : int delays_size = 0;
+
+ 0009c c7 85 54 89 00
+ 00 00 00 00 00 mov DWORD PTR delays_size$11[rbp], 0
+
+; 7378 :
+; 7379 : STBI_NOTUSED(out_size);
+; 7380 : STBI_NOTUSED(delays_size);
+; 7381 :
+; 7382 : 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
+
+; 7383 : 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
+
+; 7384 : *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:
+
+; 7385 : }
+; 7386 :
+; 7387 : do {
+; 7388 : 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
+
+; 7389 : 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
+
+; 7390 : 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:
+
+; 7391 :
+; 7392 : 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
+
+; 7393 : *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
+
+; 7394 : *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
+
+; 7395 : ++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
+
+; 7396 : 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
+
+; 7397 :
+; 7398 : 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
+
+; 7399 : 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
+
+; 7400 : layers * stride);
+; 7401 : 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
+
+; 7402 : 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:
+
+; 7403 : delays);
+; 7404 : else {
+; 7405 : 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
+
+; 7406 : 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:
+
+; 7407 : }
+; 7408 :
+; 7409 : 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
+
+; 7410 : 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
+
+; 7411 : *delays, delays_size, sizeof(int) * layers);
+; 7412 : 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
+
+; 7413 : 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:
+
+; 7414 : delays);
+; 7415 : *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
+
+; 7416 : 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:
+
+; 7417 : }
+; 7418 : } else {
+
+ 00268 e9 a6 00 00 00 jmp $LN11@stbi__load
+$LN10@stbi__load:
+
+; 7419 : 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
+
+; 7420 : if (!out)
+
+ 00285 48 83 7d 48 00 cmp QWORD PTR out$6[rbp], 0
+ 0028a 75 1c jne SHORT $LN16@stbi__load
+
+; 7421 : 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:
+
+; 7422 : delays);
+; 7423 : 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
+
+; 7424 : 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
+
+; 7425 : *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
+
+; 7426 : 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
+
+; 7427 : 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:
+
+; 7428 : delays);
+; 7429 : 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:
+
+; 7430 : }
+; 7431 : }
+; 7432 : 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
+
+; 7433 : if (layers >= 2) {
+
+ 00340 83 7d 04 02 cmp DWORD PTR layers$4[rbp], 2
+ 00344 7c 18 jl SHORT $LN19@stbi__load
+
+; 7434 : 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:
+
+; 7435 : }
+; 7436 :
+; 7437 : 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
+
+; 7438 : (*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:
+
+; 7439 : }
+; 7440 : }
+; 7441 : } 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
+
+; 7442 :
+; 7443 : // free temp buffer;
+; 7444 : 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
+
+; 7445 : 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
+
+; 7446 : 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
+
+; 7447 :
+; 7448 : // do the final conversion after loading everything;
+; 7449 : 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
+
+; 7450 : 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:
+
+; 7451 :
+; 7452 : *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
+
+; 7453 : return out;
+
+ 00405 48 8b 45 48 mov rax, QWORD PTR out$6[rbp]
+ 00409 eb 31 jmp SHORT $LN1@stbi__load
+
+; 7454 : } else {
+
+ 0040b eb 2f jmp SHORT $LN6@stbi__load
+$LN5@stbi__load:
+
+; 7455 : 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:
+
+; 7456 : }
+; 7457 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 7461 : {
+
+ 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:__079B8C84_stb_image@c
+ 00059 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0005e 90 npad 1
+
+; 7462 : stbi_uc *u = 0;
+
+ 0005f 48 c7 45 08 00
+ 00 00 00 mov QWORD PTR u$[rbp], 0
+
+; 7463 : stbi__gif g;
+; 7464 : 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
+
+; 7465 : STBI_NOTUSED(ri);
+; 7466 :
+; 7467 : 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
+
+; 7468 : 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_
+
+; 7469 : 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_:
+
+; 7470 : if (u) {
+
+ 000b9 48 83 7d 08 00 cmp QWORD PTR u$[rbp], 0
+ 000be 74 50 je SHORT $LN3@stbi__gif_
+
+; 7471 : *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
+
+; 7472 : *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
+
+; 7473 :
+; 7474 : // moved conversion to after successful load so that the same
+; 7475 : // can be done for multiple frames.
+; 7476 : 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_
+
+; 7477 : 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_:
+
+; 7478 : } 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_
+
+; 7479 : // if there was an error and we allocated an image buffer, free it!
+; 7480 : 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_:
+
+; 7481 : }
+; 7482 :
+; 7483 : // free buffers needed for multiple frame loading;
+; 7484 : 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
+
+; 7485 : 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
+
+; 7486 :
+; 7487 : return u;
+
+ 00138 48 8b 45 08 mov rax, QWORD PTR u$[rbp]
+
+; 7488 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__gif_test
+_TEXT SEGMENT
+r$ = 4
+s$ = 256
+stbi__gif_test PROC ; COMDAT
+
+; 6964 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 6965 : 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
+
+; 6966 : 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
+
+; 6967 : return r;
+
+ 0003c 8b 45 04 mov eax, DWORD PTR r$[rbp]
+
+; 6968 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 7882 : {
+
+ 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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 7883 : 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
+
+; 7884 : stbi__pic_packet packets[10];
+; 7885 :
+; 7886 : 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_
+
+; 7887 : 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_:
+
+; 7888 : 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_
+
+; 7889 : 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_:
+
+; 7890 : 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_
+
+; 7891 : 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_:
+
+; 7892 :
+; 7893 : 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_
+
+; 7894 : 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
+
+; 7895 : return 0;
+
+ 000ca 33 c0 xor eax, eax
+ 000cc e9 c3 01 00 00 jmp $LN1@stbi__pic_
+$LN8@stbi__pic_:
+
+; 7896 : }
+; 7897 :
+; 7898 : 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
+
+; 7899 :
+; 7900 : *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
+
+; 7901 : *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
+
+; 7902 : 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_
+
+; 7903 : 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
+
+; 7904 : return 0;
+
+ 0012a 33 c0 xor eax, eax
+ 0012c e9 63 01 00 00 jmp $LN1@stbi__pic_
+$LN9@stbi__pic_:
+
+; 7905 : }
+; 7906 : 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_
+
+; 7907 : 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
+
+; 7908 : return 0;
+
+ 00164 33 c0 xor eax, eax
+ 00166 e9 29 01 00 00 jmp $LN1@stbi__pic_
+$LN10@stbi__pic_:
+
+; 7909 : }
+; 7910 :
+; 7911 : 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_:
+
+; 7912 :
+; 7913 : do {
+; 7914 : stbi__pic_packet *packet;
+; 7915 :
+; 7916 : 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_
+
+; 7917 : return 0;
+
+ 00187 33 c0 xor eax, eax
+ 00189 e9 06 01 00 00 jmp $LN1@stbi__pic_
+$LN11@stbi__pic_:
+
+; 7918 :
+; 7919 : 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
+
+; 7920 : 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
+
+; 7921 : 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
+
+; 7922 : 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
+
+; 7923 : 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
+
+; 7924 : 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
+
+; 7925 :
+; 7926 : 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_
+
+; 7927 : 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
+
+; 7928 : return 0;
+
+ 00232 33 c0 xor eax, eax
+ 00234 eb 5e jmp SHORT $LN1@stbi__pic_
+$LN12@stbi__pic_:
+
+; 7929 : }
+; 7930 : 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_
+
+; 7931 : 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
+
+; 7932 : return 0;
+
+ 00252 33 c0 xor eax, eax
+ 00254 eb 3e jmp SHORT $LN1@stbi__pic_
+$LN13@stbi__pic_:
+
+; 7933 : }
+; 7934 : } while (chained);
+
+ 00256 83 7d 44 00 cmp DWORD PTR chained$[rbp], 0
+ 0025a 0f 85 1d ff ff
+ ff jne $LN4@stbi__pic_
+
+; 7935 :
+; 7936 : *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
+
+; 7937 :
+; 7938 : return 1;
+
+ 0028f b8 01 00 00 00 mov eax, 1
+$LN1@stbi__pic_:
+
+; 7939 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 6865 : {
+
+ 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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 6866 : stbi_uc *result;
+; 6867 : int i, x, y, internal_comp;
+; 6868 : STBI_NOTUSED(ri);
+; 6869 :
+; 6870 : 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_
+
+; 6871 : 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_:
+
+; 6872 :
+; 6873 : 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_
+
+; 6874 : 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_:
+
+; 6875 :
+; 6876 : 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
+
+; 6877 : 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
+
+; 6878 :
+; 6879 : 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_
+
+; 6880 : 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_:
+
+; 6881 : 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_
+
+; 6882 : 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_:
+
+; 6883 :
+; 6884 : 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_
+
+; 6885 : 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_:
+
+; 6886 : 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_
+
+; 6887 : 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_:
+
+; 6888 :
+; 6889 : 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
+
+; 6890 : 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
+
+; 6891 : 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
+
+; 6892 :
+; 6893 : // intermediate buffer is RGBA
+; 6894 : 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
+
+; 6895 : if (!result)
+
+ 001fe 48 83 7d 08 00 cmp QWORD PTR result$[rbp], 0
+ 00203 75 34 jne SHORT $LN10@stbi__pic_
+
+; 6896 : 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_:
+
+; 6897 : 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
+
+; 6898 :
+; 6899 : 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_
+
+; 6900 : 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
+
+; 6901 : result = 0;
+
+ 0028a 48 c7 45 08 00
+ 00 00 00 mov QWORD PTR result$[rbp], 0
+$LN11@stbi__pic_:
+
+; 6902 : }
+; 6903 : *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
+
+; 6904 : *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
+
+; 6905 : 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_
+
+; 6906 : 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_:
+
+; 6907 : 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
+
+; 6908 :
+; 6909 : return result;
+
+ 002e6 48 8b 45 08 mov rax, QWORD PTR result$[rbp]
+$LN1@stbi__pic_:
+
+; 6910 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__pic_test
+_TEXT SEGMENT
+r$ = 4
+s$ = 256
+stbi__pic_test PROC ; COMDAT
+
+; 6913 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 6914 : 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
+
+; 6915 : 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
+
+; 6916 : return r;
+
+ 0003c 8b 45 04 mov eax, DWORD PTR r$[rbp]
+
+; 6917 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 7737 : {
+
+ 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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 7738 : char buffer[STBI__HDR_BUFLEN];
+; 7739 : char *token;
+; 7740 : int valid = 0;
+
+ 00059 c7 85 44 04 00
+ 00 00 00 00 00 mov DWORD PTR valid$[rbp], 0
+
+; 7741 : int dummy;
+; 7742 :
+; 7743 : 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_
+
+; 7744 : 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_:
+
+; 7745 : 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_
+
+; 7746 : 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_:
+
+; 7747 : 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_
+
+; 7748 : 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_:
+
+; 7749 :
+; 7750 : 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_
+
+; 7751 : 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
+
+; 7752 : return 0;
+
+ 000c8 33 c0 xor eax, eax
+ 000ca e9 82 01 00 00 jmp $LN1@stbi__hdr_
+$LN10@stbi__hdr_:
+$LN2@stbi__hdr_:
+
+; 7753 : }
+; 7754 :
+; 7755 : for (;;) {
+; 7756 : 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
+
+; 7757 : 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_
+
+; 7758 : break;
+
+ 000fe eb 23 jmp SHORT $LN3@stbi__hdr_
+$LN11@stbi__hdr_:
+
+; 7759 : 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_
+
+; 7760 : valid = 1;
+
+ 00117 c7 85 44 04 00
+ 00 01 00 00 00 mov DWORD PTR valid$[rbp], 1
+$LN12@stbi__hdr_:
+
+; 7761 : }
+
+ 00121 eb ac jmp SHORT $LN2@stbi__hdr_
+$LN3@stbi__hdr_:
+
+; 7762 :
+; 7763 : if (!valid) {
+
+ 00123 83 bd 44 04 00
+ 00 00 cmp DWORD PTR valid$[rbp], 0
+ 0012a 75 14 jne SHORT $LN13@stbi__hdr_
+
+; 7764 : 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
+
+; 7765 : return 0;
+
+ 00139 33 c0 xor eax, eax
+ 0013b e9 11 01 00 00 jmp $LN1@stbi__hdr_
+$LN13@stbi__hdr_:
+
+; 7766 : }
+; 7767 : 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
+
+; 7768 : 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_
+
+; 7769 : 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
+
+; 7770 : return 0;
+
+ 00182 33 c0 xor eax, eax
+ 00184 e9 c8 00 00 00 jmp $LN1@stbi__hdr_
+$LN14@stbi__hdr_:
+
+; 7771 : }
+; 7772 : 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
+
+; 7773 : *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_:
+
+; 7774 : 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_
+
+; 7775 : ++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_:
+
+; 7776 : 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_
+
+; 7777 : 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
+
+; 7778 : return 0;
+
+ 0020b 33 c0 xor eax, eax
+ 0020d eb 42 jmp SHORT $LN1@stbi__hdr_
+$LN15@stbi__hdr_:
+
+; 7779 : }
+; 7780 : 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
+
+; 7781 : *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
+
+; 7782 : *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
+
+; 7783 : return 1;
+
+ 0024c b8 01 00 00 00 mov eax, 1
+$LN1@stbi__hdr_:
+
+; 7784 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 7579 : {
+
+ 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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 7580 : char buffer[STBI__HDR_BUFLEN];
+; 7581 : char *token;
+; 7582 : int valid = 0;
+
+ 00059 c7 85 44 04 00
+ 00 00 00 00 00 mov DWORD PTR valid$[rbp], 0
+
+; 7583 : int width, height;
+; 7584 : stbi_uc *scanline;
+; 7585 : float *hdr_data;
+; 7586 : int len;
+; 7587 : unsigned char count, value;
+; 7588 : int i, j, k, c1, c2, z;
+; 7589 : const char *headerToken;
+; 7590 : STBI_NOTUSED(ri);
+; 7591 :
+; 7592 : // Check identifier
+; 7593 : 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
+
+; 7594 : 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_
+
+; 7595 : 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_:
+
+; 7596 :
+; 7597 : // Parse header
+; 7598 : for (;;) {
+; 7599 : 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
+
+; 7600 : 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_
+
+; 7601 : break;
+
+ 0010b eb 23 jmp SHORT $LN3@stbi__hdr_
+$LN31@stbi__hdr_:
+
+; 7602 : 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_
+
+; 7603 : valid = 1;
+
+ 00124 c7 85 44 04 00
+ 00 01 00 00 00 mov DWORD PTR valid$[rbp], 1
+$LN32@stbi__hdr_:
+
+; 7604 : }
+
+ 0012e eb ac jmp SHORT $LN2@stbi__hdr_
+$LN3@stbi__hdr_:
+
+; 7605 :
+; 7606 : if (!valid)
+
+ 00130 83 bd 44 04 00
+ 00 00 cmp DWORD PTR valid$[rbp], 0
+ 00137 75 34 jne SHORT $LN33@stbi__hdr_
+
+; 7607 : 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_:
+
+; 7608 :
+; 7609 : // Parse width and height
+; 7610 : // can't use sscanf() if we're not using stdio!
+; 7611 : 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
+
+; 7612 : 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_
+
+; 7613 : 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_:
+
+; 7614 : 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
+
+; 7615 : 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_:
+
+; 7616 : 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_
+
+; 7617 : ++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_:
+
+; 7618 : 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_
+
+; 7619 : 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_:
+
+; 7620 : 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
+
+; 7621 : 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
+
+; 7622 :
+; 7623 : 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_
+
+; 7624 : 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_:
+
+; 7625 : 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_
+
+; 7626 : 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_:
+
+; 7627 :
+; 7628 : *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
+
+; 7629 : *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
+
+; 7630 :
+; 7631 : 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_
+
+; 7632 : *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_:
+
+; 7633 : 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_
+
+; 7634 : req_comp = 3;
+
+ 00367 c7 85 d0 09 00
+ 00 03 00 00 00 mov DWORD PTR req_comp$[rbp], 3
+$LN39@stbi__hdr_:
+
+; 7635 :
+; 7636 : 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_
+
+; 7637 : 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_:
+
+; 7638 :
+; 7639 : // Read data
+; 7640 : 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
+
+; 7641 : 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_
+
+; 7642 : 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_:
+
+; 7643 :
+; 7644 : // Load image data
+; 7645 : // image data is stored as some number of sca
+; 7646 : 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_:
+
+; 7647 : // Read flat data
+; 7648 : 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_
+
+; 7649 : 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:
+
+; 7650 : stbi_uc rgbe[4];
+; 7651 : main_decode_loop:
+; 7652 : 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
+
+; 7653 : 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
+
+; 7654 : rgbe, req_comp);
+; 7655 : }
+
+ 0050d e9 79 ff ff ff jmp $LN10@stbi__hdr_
+$LN11@stbi__hdr_:
+
+; 7656 : }
+
+ 00512 e9 48 ff ff ff jmp $LN7@stbi__hdr_
+$LN8@stbi__hdr_:
+
+; 7657 : } else {
+
+ 00517 e9 0c 05 00 00 jmp $LN43@stbi__hdr_
+$LN42@stbi__hdr_:
+
+; 7658 : // Read RLE-encoded data
+; 7659 : scanline = NULL;
+
+ 0051c 48 c7 85 a8 04
+ 00 00 00 00 00
+ 00 mov QWORD PTR scanline$[rbp], 0
+
+; 7660 :
+; 7661 : 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_
+
+; 7662 : 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
+
+; 7663 : 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
+
+; 7664 : 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
+
+; 7665 : 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_:
+
+; 7666 : // not run-length encoded, so we have to actually use THIS data as a decoded
+; 7667 : // pixel (note this can't be a valid pixel--one of RGB must be >= 128)
+; 7668 : stbi_uc rgbe[4];
+; 7669 : 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
+
+; 7670 : 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
+
+; 7671 : 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
+
+; 7672 : 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
+
+; 7673 : 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
+
+; 7674 : i = 1;
+
+ 00633 c7 85 44 05 00
+ 00 01 00 00 00 mov DWORD PTR i$[rbp], 1
+
+; 7675 : j = 0;
+
+ 0063d c7 85 64 05 00
+ 00 00 00 00 00 mov DWORD PTR j$[rbp], 0
+
+; 7676 : 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
+
+; 7677 : goto main_decode_loop; // yes, this makes no sense
+
+ 00655 e9 4d fe ff ff jmp $main_decode_loop$82
+$LN45@stbi__hdr_:
+
+; 7678 : }
+; 7679 : 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
+
+; 7680 : 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
+
+; 7681 : 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_
+
+; 7682 : 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
+
+; 7683 : 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
+
+; 7684 : 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_:
+
+; 7685 : "corrupt HDR");
+; 7686 : }
+; 7687 : 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_
+
+; 7688 : 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
+
+; 7689 : 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_
+
+; 7690 : 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
+
+; 7691 : 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_:
+
+; 7692 : }
+; 7693 : }
+; 7694 :
+; 7695 : 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_
+
+; 7696 : int nleft;
+; 7697 : i = 0;
+
+ 0077d c7 85 44 05 00
+ 00 00 00 00 00 mov DWORD PTR i$[rbp], 0
+$LN19@stbi__hdr_:
+
+; 7698 : 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_
+
+; 7699 : 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
+
+; 7700 : 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_
+
+; 7701 : // Run
+; 7702 : 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
+
+; 7703 : 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
+
+; 7704 : 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_:
+
+; 7705 : 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
+
+; 7706 : 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
+
+; 7707 : 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_:
+
+; 7708 : "bad RLE data in HDR");
+; 7709 : }
+; 7710 : 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_
+
+; 7711 : 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_:
+
+; 7712 : } else {
+
+ 008b7 e9 cb 00 00 00 jmp $LN51@stbi__hdr_
+$LN50@stbi__hdr_:
+
+; 7713 : // Dump
+; 7714 : 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_:
+
+; 7715 : 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
+
+; 7716 : 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
+
+; 7717 : 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_:
+
+; 7718 : "bad RLE data in HDR");
+; 7719 : }
+; 7720 : 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_
+
+; 7721 : 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_:
+
+; 7722 : }
+; 7723 : }
+
+ 00987 e9 fb fd ff ff jmp $LN19@stbi__hdr_
+$LN20@stbi__hdr_:
+
+; 7724 : }
+
+ 0098c e9 d1 fd ff ff jmp $LN16@stbi__hdr_
+$LN17@stbi__hdr_:
+
+; 7725 : 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_
+
+; 7726 : 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_:
+
+; 7727 : scanline + i * 4, req_comp);
+; 7728 : }
+
+ 00a0b e9 23 fb ff ff jmp $LN13@stbi__hdr_
+$LN14@stbi__hdr_:
+
+; 7729 : 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_
+
+; 7730 : 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_:
+
+; 7731 : }
+; 7732 :
+; 7733 : return hdr_data;
+
+ 00a28 48 8b 85 c8 04
+ 00 00 mov rax, QWORD PTR hdr_data$[rbp]
+$LN1@stbi__hdr_:
+
+; 7734 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__hdr_test
+_TEXT SEGMENT
+r$ = 4
+s$ = 256
+stbi__hdr_test PROC ; COMDAT
+
+; 7511 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 7512 : 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
+
+; 7513 : 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
+
+; 7514 : if (!r) {
+
+ 00043 83 7d 04 00 cmp DWORD PTR r$[rbp], 0
+ 00047 75 23 jne SHORT $LN2@stbi__hdr_
+
+; 7515 : 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
+
+; 7516 : 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_:
+
+; 7517 : }
+; 7518 : return r;
+
+ 0006c 8b 45 04 mov eax, DWORD PTR r$[rbp]
+
+; 7519 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__psd_is16
+_TEXT SEGMENT
+channelCount$ = 4
+depth$ = 36
+s$ = 288
+stbi__psd_is16 PROC ; COMDAT
+
+; 7853 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 7854 : int channelCount, depth;
+; 7855 : 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_
+
+; 7856 : 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
+
+; 7857 : return 0;
+
+ 00040 33 c0 xor eax, eax
+ 00042 e9 a8 00 00 00 jmp $LN1@stbi__psd_
+$LN2@stbi__psd_:
+
+; 7858 : }
+; 7859 : 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_
+
+; 7860 : 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
+
+; 7861 : return 0;
+
+ 00065 33 c0 xor eax, eax
+ 00067 e9 83 00 00 00 jmp $LN1@stbi__psd_
+$LN3@stbi__psd_:
+
+; 7862 : }
+; 7863 : 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
+
+; 7864 : 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
+
+; 7865 : 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_:
+
+; 7866 : 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
+
+; 7867 : return 0;
+
+ 000a6 33 c0 xor eax, eax
+ 000a8 eb 45 jmp SHORT $LN1@stbi__psd_
+$LN4@stbi__psd_:
+
+; 7868 : }
+; 7869 : 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
+
+; 7870 : 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
+
+; 7871 : 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
+
+; 7872 : if (depth != 16) {
+
+ 000d3 83 7d 24 10 cmp DWORD PTR depth$[rbp], 16
+ 000d7 74 11 je SHORT $LN6@stbi__psd_
+
+; 7873 : 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
+
+; 7874 : return 0;
+
+ 000e6 33 c0 xor eax, eax
+ 000e8 eb 05 jmp SHORT $LN1@stbi__psd_
+$LN6@stbi__psd_:
+
+; 7875 : }
+; 7876 : return 1;
+
+ 000ea b8 01 00 00 00 mov eax, 1
+$LN1@stbi__psd_:
+
+; 7877 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 7815 : {
+
+ 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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 7816 : int channelCount, dummy, depth;
+; 7817 : 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_
+
+; 7818 : 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_:
+
+; 7819 : 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_
+
+; 7820 : 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_:
+
+; 7821 : 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_
+
+; 7822 : 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_:
+
+; 7823 : 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_
+
+; 7824 : 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
+
+; 7825 : return 0;
+
+ 000b8 33 c0 xor eax, eax
+ 000ba e9 f0 00 00 00 jmp $LN1@stbi__psd_
+$LN5@stbi__psd_:
+
+; 7826 : }
+; 7827 : 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_
+
+; 7828 : 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
+
+; 7829 : return 0;
+
+ 000dd 33 c0 xor eax, eax
+ 000df e9 cb 00 00 00 jmp $LN1@stbi__psd_
+$LN6@stbi__psd_:
+
+; 7830 : }
+; 7831 : 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
+
+; 7832 : 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
+
+; 7833 : 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_:
+
+; 7834 : 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
+
+; 7835 : return 0;
+
+ 0011e 33 c0 xor eax, eax
+ 00120 e9 8a 00 00 00 jmp $LN1@stbi__psd_
+$LN7@stbi__psd_:
+
+; 7836 : }
+; 7837 : *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
+
+; 7838 : *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
+
+; 7839 : 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
+
+; 7840 : 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_
+
+; 7841 : 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
+
+; 7842 : return 0;
+
+ 00177 33 c0 xor eax, eax
+ 00179 eb 34 jmp SHORT $LN1@stbi__psd_
+$LN9@stbi__psd_:
+
+; 7843 : }
+; 7844 : 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_
+
+; 7845 : 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
+
+; 7846 : return 0;
+
+ 00199 33 c0 xor eax, eax
+ 0019b eb 12 jmp SHORT $LN1@stbi__psd_
+$LN10@stbi__psd_:
+
+; 7847 : }
+; 7848 : *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
+
+; 7849 : return 1;
+
+ 001aa b8 01 00 00 00 mov eax, 1
+$LN1@stbi__psd_:
+
+; 7850 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 6470 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 6471 : int pixelCount;
+; 6472 : int channelCount, compression;
+; 6473 : int channel, i;
+; 6474 : int bitdepth;
+; 6475 : int w, h;
+; 6476 : stbi_uc *out;
+; 6477 : STBI_NOTUSED(ri);
+; 6478 :
+; 6479 : // Check identifier
+; 6480 : 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_
+
+; 6481 : 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_:
+
+; 6482 :
+; 6483 : // Check file type version.
+; 6484 : 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_
+
+; 6485 : 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_:
+
+; 6486 :
+; 6487 : // Skip 6 reserved bytes.
+; 6488 : 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
+
+; 6489 :
+; 6490 : // Read the number of channels (R, G, B, A, etc).
+; 6491 : 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
+
+; 6492 : 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_:
+
+; 6493 : 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_:
+
+; 6494 : "Unsupported number of channels in PSD image");
+; 6495 :
+; 6496 : // Read the rows and columns of the image.
+; 6497 : 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
+
+; 6498 : 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
+
+; 6499 :
+; 6500 : 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_
+
+; 6501 : 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_:
+
+; 6502 : 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_
+
+; 6503 : 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_:
+
+; 6504 :
+; 6505 : // Make sure the depth is 8 bits.
+; 6506 : 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
+
+; 6507 : 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_
+
+; 6508 : 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_:
+
+; 6509 :
+; 6510 : // Make sure the color mode is RGB.
+; 6511 : // Valid options are:
+; 6512 : // 0: Bitmap
+; 6513 : // 1: Grayscale
+; 6514 : // 2: Indexed color
+; 6515 : // 3: RGB color
+; 6516 : // 4: CMYK color
+; 6517 : // 7: Multichannel
+; 6518 : // 8: Duotone
+; 6519 : // 9: Lab color
+; 6520 : 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_
+
+; 6521 : 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_:
+
+; 6522 :
+; 6523 : // Skip the Mode Data. (It's the palette for indexed color; other info for other modes.)
+; 6524 : 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
+
+; 6525 :
+; 6526 : // Skip the image resources. (resolution, pen tool paths, etc)
+; 6527 : 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
+
+; 6528 :
+; 6529 : // Skip the reserved data.
+; 6530 : 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
+
+; 6531 :
+; 6532 : // Find out if the data is compressed.
+; 6533 : // Known values:
+; 6534 : // 0: no compression
+; 6535 : // 1: RLE compressed
+; 6536 : 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
+
+; 6537 : if (compression > 1)
+
+ 002bd 83 7d 44 01 cmp DWORD PTR compression$[rbp], 1
+ 002c1 7e 34 jle SHORT $LN40@stbi__psd_
+
+; 6538 : 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_:
+
+; 6539 :
+; 6540 : // Check size
+; 6541 : 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_
+
+; 6542 : 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_:
+
+; 6543 :
+; 6544 : // Create the destination image.
+; 6545 :
+; 6546 : 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_
+
+; 6547 : 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
+
+; 6548 : 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
+
+; 6549 : } else
+
+ 0038f eb 21 jmp SHORT $LN43@stbi__psd_
+$LN42@stbi__psd_:
+
+; 6550 : 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_:
+
+; 6551 :
+; 6552 : 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_
+
+; 6553 : 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_:
+
+; 6554 : 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
+
+; 6555 :
+; 6556 : // Initialize the data to zero.
+; 6557 : //memset( out, 0, pixelCount * 4 );
+; 6558 :
+; 6559 : // Finally, the image data.
+; 6560 : if (compression) {
+
+ 00400 83 7d 44 00 cmp DWORD PTR compression$[rbp], 0
+ 00404 0f 84 24 01 00
+ 00 je $LN45@stbi__psd_
+
+; 6561 : // RLE as used by .PSD and .TIFF
+; 6562 : // Loop until you get the number of unpacked bytes you are expecting:
+; 6563 : // Read the next source byte into n.
+; 6564 : // If n is between 0 and 127 inclusive, copy the next n+1 bytes literally.
+; 6565 : // Else if n is between -127 and -1 inclusive, copy the next byte -n+1 times.
+; 6566 : // Else if n is 128, noop.
+; 6567 : // Endloop
+; 6568 :
+; 6569 : // The RLE-compressed data is preceded by a 2-byte data count for each row in the data,
+; 6570 : // which we're going to just skip.
+; 6571 : 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
+
+; 6572 :
+; 6573 : // Read the RLE data by channel.
+; 6574 : 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_
+
+; 6575 : stbi_uc *p;
+; 6576 :
+; 6577 : 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
+
+; 6578 : 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_
+
+; 6579 : // Fill this channel with default data.
+; 6580 : 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_
+
+; 6581 : *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_:
+
+; 6582 : } else {
+
+ 004c5 eb 5d jmp SHORT $LN48@stbi__psd_
+$LN47@stbi__psd_:
+
+; 6583 : // Read the RLE data.
+; 6584 : 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_
+
+; 6585 : 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
+
+; 6586 : 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_:
+
+; 6587 : }
+; 6588 : }
+; 6589 : }
+
+ 00524 e9 05 ff ff ff jmp $LN2@stbi__psd_
+$LN3@stbi__psd_:
+
+; 6590 : } else {
+
+ 00529 e9 9c 02 00 00 jmp $LN46@stbi__psd_
+$LN45@stbi__psd_:
+
+; 6591 : // We're at the raw image data. It's each channel in order (Red, Green, Blue, Alpha, ...)
+; 6592 : // where each channel consists of an 8-bit (or 16-bit) value for each pixel in the image.
+; 6593 :
+; 6594 : // Read the data by channel.
+; 6595 : 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_
+
+; 6596 : 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_
+
+; 6597 : // Fill this channel with default data.
+; 6598 : 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_
+
+; 6599 : 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
+
+; 6600 : 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
+
+; 6601 : 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_
+
+; 6602 : *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_:
+
+; 6603 : } else {
+
+ 005f9 e9 8a 00 00 00 jmp $LN53@stbi__psd_
+$LN52@stbi__psd_:
+
+; 6604 : 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
+
+; 6605 : 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
+
+; 6606 : 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_
+
+; 6607 : *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_:
+
+; 6608 : }
+; 6609 : } else {
+
+ 00688 e9 38 01 00 00 jmp $LN51@stbi__psd_
+$LN50@stbi__psd_:
+
+; 6610 : 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_
+
+; 6611 : 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
+
+; 6612 : 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_
+
+; 6613 : *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_:
+
+; 6614 : } else {
+
+ 006fe e9 c2 00 00 00 jmp $LN55@stbi__psd_
+$LN54@stbi__psd_:
+
+; 6615 : 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
+
+; 6616 : 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_
+
+; 6617 : 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_
+
+; 6618 : *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_:
+
+; 6619 : } else {
+
+ 00775 eb 4e jmp SHORT $LN57@stbi__psd_
+$LN56@stbi__psd_:
+
+; 6620 : 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_
+
+; 6621 : *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_:
+
+; 6622 : }
+; 6623 : }
+; 6624 : }
+; 6625 : }
+
+ 007c5 e9 6d fd ff ff jmp $LN8@stbi__psd_
+$LN9@stbi__psd_:
+$LN46@stbi__psd_:
+
+; 6626 : }
+; 6627 :
+; 6628 : // remove weird white matte from PSD
+; 6629 : 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_
+
+; 6630 : 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_
+
+; 6631 : 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_
+
+; 6632 : 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
+
+; 6633 : 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_
+
+; 6634 : 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
+
+; 6635 : 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
+
+; 6636 : 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
+
+; 6637 : 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
+
+; 6638 : 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
+
+; 6639 : 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_:
+
+; 6640 : }
+; 6641 : }
+
+ 00996 e9 55 fe ff ff jmp $LN26@stbi__psd_
+$LN27@stbi__psd_:
+
+; 6642 : } else {
+
+ 0099b e9 b6 01 00 00 jmp $LN60@stbi__psd_
+$LN59@stbi__psd_:
+
+; 6643 : 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_
+
+; 6644 : 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
+
+; 6645 : 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_
+
+; 6646 : 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
+
+; 6647 : 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
+
+; 6648 : 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
+
+; 6649 : 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
+
+; 6650 : 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
+
+; 6651 : 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_:
+
+; 6652 : }
+; 6653 : }
+
+ 00b51 e9 56 fe ff ff jmp $LN29@stbi__psd_
+$LN30@stbi__psd_:
+$LN60@stbi__psd_:
+$LN58@stbi__psd_:
+
+; 6654 : }
+; 6655 : }
+; 6656 :
+; 6657 : // convert to desired output format
+; 6658 : 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_
+
+; 6659 : 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_
+
+; 6660 : 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_:
+
+; 6661 : h);
+; 6662 : else
+; 6663 : 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_:
+
+; 6664 : 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_
+
+; 6665 : 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_:
+
+; 6666 : }
+; 6667 :
+; 6668 : 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_
+
+; 6669 : *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_:
+
+; 6670 : *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
+
+; 6671 : *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
+
+; 6672 :
+; 6673 : return out;
+
+ 00c26 48 8b 85 08 01
+ 00 00 mov rax, QWORD PTR out$[rbp]
+$LN1@stbi__psd_:
+
+; 6674 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__psd_test
+_TEXT SEGMENT
+r$ = 4
+tv67 = 212
+s$ = 256
+stbi__psd_test PROC ; COMDAT
+
+; 6422 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 6423 : 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
+
+; 6424 : 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
+
+; 6425 : return r;
+
+ 0005f 8b 45 04 mov eax, DWORD PTR r$[rbp]
+
+; 6426 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 6084 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 6085 : int tga_w, tga_h, tga_comp, tga_image_type, tga_bits_per_pixel, tga_colormap_bpp;
+; 6086 : int sz, tga_colormap_type;
+; 6087 : 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
+
+; 6088 : 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
+
+; 6089 : 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_
+
+; 6090 : 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
+
+; 6091 : 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_:
+
+; 6092 : }
+; 6093 : 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
+
+; 6094 : 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_
+
+; 6095 : 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_
+
+; 6096 : 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
+
+; 6097 : return 0;
+
+ 000a6 33 c0 xor eax, eax
+ 000a8 e9 1f 02 00 00 jmp $LN1@stbi__tga_
+$LN5@stbi__tga_:
+
+; 6098 : }
+; 6099 : stbi__skip(s,
+
+ 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
+
+; 6100 : 4); // skip index of first colormap entry and number of entries
+; 6101 : 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
+
+; 6102 : 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_
+
+; 6103 : 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
+
+; 6104 : return 0;
+
+ 0010e 33 c0 xor eax, eax
+ 00110 e9 b7 01 00 00 jmp $LN1@stbi__tga_
+$LN6@stbi__tga_:
+
+; 6105 : }
+; 6106 : 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
+
+; 6107 : 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
+
+; 6108 : } else { // "normal" image w/o colormap - only RGB or grey allowed, +/- RLE
+
+ 00133 eb 48 jmp SHORT $LN4@stbi__tga_
+$LN3@stbi__tga_:
+
+; 6109 : 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_
+
+; 6110 : (tga_image_type != 11)) {
+; 6111 : 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
+
+; 6112 : 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_:
+
+; 6113 : }
+; 6114 : stbi__skip(s,
+
+ 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
+
+; 6115 : 9); // skip colormap specification and image x/y origin
+; 6116 : 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_:
+
+; 6117 : }
+; 6118 : 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
+
+; 6119 : if (tga_w < 1) {
+
+ 0018c 83 7d 04 01 cmp DWORD PTR tga_w$[rbp], 1
+ 00190 7d 14 jge SHORT $LN8@stbi__tga_
+
+; 6120 : 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
+
+; 6121 : return 0; // test width
+
+ 0019f 33 c0 xor eax, eax
+ 001a1 e9 26 01 00 00 jmp $LN1@stbi__tga_
+$LN8@stbi__tga_:
+
+; 6122 : }
+; 6123 : 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
+
+; 6124 : if (tga_h < 1) {
+
+ 001b5 83 7d 24 01 cmp DWORD PTR tga_h$[rbp], 1
+ 001b9 7d 14 jge SHORT $LN9@stbi__tga_
+
+; 6125 : 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
+
+; 6126 : return 0; // test height
+
+ 001c8 33 c0 xor eax, eax
+ 001ca e9 fd 00 00 00 jmp $LN1@stbi__tga_
+$LN9@stbi__tga_:
+
+; 6127 : }
+; 6128 : 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
+
+; 6129 : 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
+
+; 6130 : 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_
+
+; 6131 : 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_
+
+; 6132 : // when using a colormap, tga_bits_per_pixel is the size of the indexes
+; 6133 : // I don't think anything but 8 or 16bit indexes makes sense
+; 6134 : 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
+
+; 6135 : return 0;
+
+ 00219 33 c0 xor eax, eax
+ 0021b e9 ac 00 00 00 jmp $LN1@stbi__tga_
+$LN12@stbi__tga_:
+
+; 6136 : }
+; 6137 : 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
+
+; 6138 : } else {
+
+ 00233 eb 39 jmp SHORT $LN11@stbi__tga_
+$LN10@stbi__tga_:
+
+; 6139 : 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_:
+
+; 6140 : tga_bits_per_pixel, (tga_image_type == 3) || (tga_image_type == 11), NULL);
+; 6141 : }
+; 6142 : if (!tga_comp) {
+
+ 0026e 83 7d 44 00 cmp DWORD PTR tga_comp$[rbp], 0
+ 00272 75 11 jne SHORT $LN13@stbi__tga_
+
+; 6143 : 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
+
+; 6144 : return 0;
+
+ 00281 33 c0 xor eax, eax
+ 00283 eb 47 jmp SHORT $LN1@stbi__tga_
+$LN13@stbi__tga_:
+
+; 6145 : }
+; 6146 : 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_
+
+; 6147 : *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_:
+
+; 6148 : 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_
+
+; 6149 : *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_:
+
+; 6150 : 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_
+
+; 6151 : *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_:
+
+; 6152 : return 1; // seems to have passed everything
+
+ 002c7 b8 01 00 00 00 mov eax, 1
+$LN1@stbi__tga_:
+
+; 6153 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 6218 : {
+
+ 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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 6219 : // read in the TGA header stuff
+; 6220 : 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
+
+; 6221 : 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
+
+; 6222 : 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
+
+; 6223 : int tga_is_RLE = 0;
+
+ 0008f c7 45 64 00 00
+ 00 00 mov DWORD PTR tga_is_RLE$[rbp], 0
+
+; 6224 : 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
+
+; 6225 : 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
+
+; 6226 : 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
+
+; 6227 : 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
+
+; 6228 : 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
+
+; 6229 : 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
+
+; 6230 : 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
+
+; 6231 : 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
+
+; 6232 : int tga_comp, tga_rgb16 = 0;
+
+ 0012c c7 85 a4 01 00
+ 00 00 00 00 00 mov DWORD PTR tga_rgb16$[rbp], 0
+
+; 6233 : 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
+
+; 6234 : // int tga_alpha_bits = tga_inverted & 15; // the 4 lowest bits - unused (useless?)
+; 6235 : // image data
+; 6236 : unsigned char *tga_data;
+; 6237 : unsigned char *tga_palette = NULL;
+
+ 0014b 48 c7 85 08 02
+ 00 00 00 00 00
+ 00 mov QWORD PTR tga_palette$[rbp], 0
+
+; 6238 : int i, j;
+; 6239 : 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
+
+; 6240 : int RLE_count = 0;
+
+ 00169 c7 85 84 02 00
+ 00 00 00 00 00 mov DWORD PTR RLE_count$[rbp], 0
+
+; 6241 : int RLE_repeating = 0;
+
+ 00173 c7 85 a4 02 00
+ 00 00 00 00 00 mov DWORD PTR RLE_repeating$[rbp], 0
+
+; 6242 : int read_next_pixel = 1;
+
+ 0017d c7 85 c4 02 00
+ 00 01 00 00 00 mov DWORD PTR read_next_pixel$[rbp], 1
+
+; 6243 : STBI_NOTUSED(ri);
+; 6244 : STBI_NOTUSED(tga_x_origin); // @TODO
+; 6245 : STBI_NOTUSED(tga_y_origin); // @TODO
+; 6246 :
+; 6247 : 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_
+
+; 6248 : 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_:
+
+; 6249 : 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_
+
+; 6250 : 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_:
+
+; 6251 :
+; 6252 : // do a tiny bit of precessing
+; 6253 : 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_
+
+; 6254 : 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
+
+; 6255 : tga_is_RLE = 1;
+
+ 00216 c7 45 64 01 00
+ 00 00 mov DWORD PTR tga_is_RLE$[rbp], 1
+$LN31@stbi__tga_:
+
+; 6256 : }
+; 6257 : 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
+
+; 6258 :
+; 6259 : // If I'm paletted, then I'll use the number of bits from the palette
+; 6260 : if (tga_indexed)
+
+ 00238 83 7d 24 00 cmp DWORD PTR tga_indexed$[rbp], 0
+ 0023c 74 1c je SHORT $LN32@stbi__tga_
+
+; 6261 : 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_:
+
+; 6262 : else
+; 6263 : 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_:
+
+; 6264 : stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3), &tga_rgb16);
+; 6265 :
+; 6266 : 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_
+
+; 6267 : 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_:
+
+; 6268 :
+; 6269 : // tga info
+; 6270 : *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
+
+; 6271 : *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
+
+; 6272 : 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_
+
+; 6273 : *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_:
+
+; 6274 :
+; 6275 : 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_
+
+; 6276 : 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_:
+
+; 6277 :
+; 6278 : 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
+
+; 6279 : 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_
+
+; 6280 : 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_:
+
+; 6281 :
+; 6282 : // skip to the data's starting position (offset usually = 0)
+; 6283 : 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
+
+; 6284 :
+; 6285 : 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_
+
+; 6286 : 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_
+
+; 6287 : 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
+
+; 6288 : 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
+
+; 6289 : 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
+
+; 6290 : }
+
+ 004a1 e9 52 ff ff ff jmp $LN2@stbi__tga_
+$LN3@stbi__tga_:
+
+; 6291 : } else {
+
+ 004a6 e9 8f 05 00 00 jmp $LN39@stbi__tga_
+$LN38@stbi__tga_:
+
+; 6292 : // do I need to load a palette?
+; 6293 : 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_
+
+; 6294 : 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_
+
+; 6295 : 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
+
+; 6296 : 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_:
+
+; 6297 : }
+; 6298 :
+; 6299 : // any data to skip? (offset usually = 0)
+; 6300 : 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
+
+; 6301 : // load the palette
+; 6302 : 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
+
+; 6303 : (unsigned char *)stbi__malloc_mad2(tga_palette_len, tga_comp, 0);
+; 6304 : 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_
+
+; 6305 : 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
+
+; 6306 : 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_:
+
+; 6307 : }
+; 6308 : 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_
+
+; 6309 : 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
+
+; 6310 : 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 a6 18 00
+ 00 mov r8d, 6310 ; 000018a6H
+ 005a4 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:??_C@_1KG@HOANCCHA@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@
+ 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_:
+
+; 6311 : 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_
+
+; 6312 : 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
+
+; 6313 : 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
+
+; 6314 : }
+
+ 00611 eb b3 jmp SHORT $LN5@stbi__tga_
+$LN6@stbi__tga_:
+
+; 6315 : } 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_
+
+; 6316 : 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
+
+; 6317 : 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
+
+; 6318 : 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_:
+
+; 6319 : }
+; 6320 : }
+; 6321 : // load the data
+; 6322 : 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_
+
+; 6323 : // if I'm in RLE mode, do I need to get a RLE stbi__pngchunk?
+; 6324 : 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_
+
+; 6325 : 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_
+
+; 6326 : // yep, get the next byte as a RLE command
+; 6327 : 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
+
+; 6328 : 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
+
+; 6329 : 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
+
+; 6330 : 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_:
+
+; 6331 : } 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_
+
+; 6332 : 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_:
+
+; 6333 : }
+; 6334 : } else {
+
+ 00722 eb 0a jmp SHORT $LN47@stbi__tga_
+$LN46@stbi__tga_:
+
+; 6335 : 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_:
+
+; 6336 : }
+; 6337 : // OK, if I need to read a pixel, do it now
+; 6338 : 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_
+
+; 6339 : // load however much data we did have
+; 6340 : 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_
+
+; 6341 : // read in index, then perform the lookup
+; 6342 : 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
+
+; 6343 : stbi__get16le(s);
+; 6344 : 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_
+
+; 6345 : // invalid index
+; 6346 : 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_:
+
+; 6347 : }
+; 6348 : 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
+
+; 6349 : 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_
+
+; 6350 : 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
+
+; 6351 : }
+
+ 00801 eb b7 jmp SHORT $LN11@stbi__tga_
+$LN12@stbi__tga_:
+
+; 6352 : } 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_
+
+; 6353 : 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 d1 18 00
+ 00 mov r8d, 6353 ; 000018d1H
+ 00820 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:??_C@_1KG@HOANCCHA@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@
+ 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_:
+
+; 6354 : 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
+
+; 6355 : } else {
+
+ 0084a eb 44 jmp SHORT $LN56@stbi__tga_
+$LN55@stbi__tga_:
+
+; 6356 : // read in the data raw
+; 6357 : 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_
+
+; 6358 : 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
+
+; 6359 : }
+
+ 0088e eb c8 jmp SHORT $LN14@stbi__tga_
+$LN15@stbi__tga_:
+$LN56@stbi__tga_:
+$LN53@stbi__tga_:
+
+; 6360 : }
+; 6361 : // clear the reading flag for the next pixel
+; 6362 : 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_:
+
+; 6363 : } // end of reading a pixel
+; 6364 :
+; 6365 : // copy data
+; 6366 : 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_
+
+; 6367 : 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_:
+
+; 6368 :
+; 6369 : // in case we're in RLE mode, keep counting down
+; 6370 : --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
+
+; 6371 : }
+
+ 00901 e9 92 fd ff ff jmp $LN8@stbi__tga_
+$LN9@stbi__tga_:
+
+; 6372 : // do I need to invert the image?
+; 6373 : 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_
+
+; 6374 : 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_
+
+; 6375 : 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
+
+; 6376 : 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
+
+; 6377 : 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_
+
+; 6378 : 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
+
+; 6379 : 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
+
+; 6380 : 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
+
+; 6381 : ++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
+
+; 6382 : ++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
+
+; 6383 : }
+
+ 00a18 e9 75 ff ff ff jmp $LN23@stbi__tga_
+$LN24@stbi__tga_:
+
+; 6384 : }
+
+ 00a1d e9 fd fe ff ff jmp $LN20@stbi__tga_
+$LN21@stbi__tga_:
+$LN57@stbi__tga_:
+
+; 6385 : }
+; 6386 : // clear my palette, if I had one
+; 6387 : 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_
+
+; 6388 : 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_:
+
+; 6389 : }
+; 6390 : }
+; 6391 :
+; 6392 : // swap RGB - if the source data was RGB16, it already is in the right order
+; 6393 : 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_
+
+; 6394 : 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
+
+; 6395 : 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_
+
+; 6396 : 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
+
+; 6397 : 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
+
+; 6398 : 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
+
+; 6399 : 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
+
+; 6400 : }
+
+ 00b07 e9 62 ff ff ff jmp $LN26@stbi__tga_
+$LN27@stbi__tga_:
+$LN59@stbi__tga_:
+
+; 6401 : }
+; 6402 :
+; 6403 : // convert to target component count
+; 6404 : 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_
+
+; 6405 : 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_:
+
+; 6406 : stbi__convert_format(tga_data, tga_comp, req_comp, tga_width, tga_height);
+; 6407 :
+; 6408 : // the things I do to get rid of an error message, and yet keep
+; 6409 : // Microsoft's C compilers happy... [8^(
+; 6410 : 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
+
+; 6411 : STBI_NOTUSED(tga_palette_start);
+; 6412 : // OK, done
+; 6413 : return tga_data;
+
+ 00b8e 48 8b 85 e8 01
+ 00 00 mov rax, QWORD PTR tga_data$[rbp]
+$LN1@stbi__tga_:
+
+; 6414 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__tga_test
+_TEXT SEGMENT
+res$ = 4
+sz$ = 36
+tga_color_type$ = 68
+s$ = 320
+stbi__tga_test PROC ; COMDAT
+
+; 6156 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 6157 : int res = 0;
+
+ 00020 c7 45 04 00 00
+ 00 00 mov DWORD PTR res$[rbp], 0
+
+; 6158 : int sz, tga_color_type;
+; 6159 : 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
+
+; 6160 : 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
+
+; 6161 : 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_
+
+; 6162 : goto errorEnd; // only RGB or indexed allowed
+
+ 0004c e9 26 01 00 00 jmp $errorEnd$13
+$LN2@stbi__tga_:
+
+; 6163 : 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
+
+; 6164 : 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_
+
+; 6165 : 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_
+
+; 6166 : goto errorEnd; // colortype 1 demands image type 1 or 9
+
+ 00075 e9 fd 00 00 00 jmp $errorEnd$13
+$LN5@stbi__tga_:
+
+; 6167 : stbi__skip(s,
+
+ 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
+
+; 6168 : 4); // skip index of first colormap entry and number of entries
+; 6169 : 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
+
+; 6170 : 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_
+
+; 6171 : goto errorEnd;
+
+ 000bc e9 b6 00 00 00 jmp $errorEnd$13
+$LN6@stbi__tga_:
+
+; 6172 : 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
+
+; 6173 : } else { // "normal" image w/o colormap
+
+ 000d3 eb 2f jmp SHORT $LN4@stbi__tga_
+$LN3@stbi__tga_:
+
+; 6174 : 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_
+
+; 6175 : goto errorEnd; // only RGB or grey allowed, +/- RLE
+
+ 000ed e9 85 00 00 00 jmp $errorEnd$13
+$LN7@stbi__tga_:
+
+; 6176 : stbi__skip(s,
+
+ 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_:
+
+; 6177 : 9); // skip colormap specification and image x/y origin
+; 6178 : }
+; 6179 : 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_
+
+; 6180 : goto errorEnd; // test width
+
+ 00115 eb 60 jmp SHORT $errorEnd$13
+$LN8@stbi__tga_:
+
+; 6181 : 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_
+
+; 6182 : goto errorEnd; // test height
+
+ 00128 eb 4d jmp SHORT $errorEnd$13
+$LN9@stbi__tga_:
+
+; 6183 : 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
+
+; 6184 : 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_
+
+; 6185 : goto errorEnd; // for colormapped images, bpp is size of an index
+
+ 0014e eb 27 jmp SHORT $errorEnd$13
+$LN10@stbi__tga_:
+
+; 6186 : 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_
+
+; 6187 : goto errorEnd;
+
+ 0016e eb 07 jmp SHORT $errorEnd$13
+$LN11@stbi__tga_:
+
+; 6188 :
+; 6189 : 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:
+
+; 6190 :
+; 6191 : errorEnd:
+; 6192 : 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
+
+; 6193 : return res;
+
+ 00184 8b 45 04 mov eax, DWORD PTR res$[rbp]
+
+; 6194 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 7789 : {
+
+ 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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 7790 : void *p;
+; 7791 : stbi__bmp_data info;
+; 7792 :
+; 7793 : info.all_a = 255;
+
+ 00059 c7 45 44 ff 00
+ 00 00 mov DWORD PTR info$[rbp+28], 255 ; 000000ffH
+
+; 7794 : 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
+
+; 7795 : if (p == NULL) {
+
+ 00074 48 83 7d 08 00 cmp QWORD PTR p$[rbp], 0
+ 00079 75 14 jne SHORT $LN2@stbi__bmp_
+
+; 7796 : 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
+
+; 7797 : return 0;
+
+ 00088 33 c0 xor eax, eax
+ 0008a e9 91 00 00 00 jmp $LN1@stbi__bmp_
+$LN2@stbi__bmp_:
+
+; 7798 : }
+; 7799 : 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_
+
+; 7800 : *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_:
+
+; 7801 : 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_
+
+; 7802 : *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_:
+
+; 7803 : 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_
+
+; 7804 : 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_
+
+; 7805 : *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_:
+
+; 7806 : else
+; 7807 : *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_:
+
+; 7808 : }
+; 7809 : return 1;
+
+ 0011b b8 01 00 00 00 mov eax, 1
+$LN1@stbi__bmp_:
+
+; 7810 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 5804 : {
+
+ 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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 5805 : stbi_uc *out;
+; 5806 : 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
+
+; 5807 : stbi_uc pal[256][4];
+; 5808 : int psize = 0, i, j, width;
+
+ 00078 c7 85 e4 04 00
+ 00 00 00 00 00 mov DWORD PTR psize$[rbp], 0
+
+; 5809 : int flip_vertically, pad, target;
+; 5810 : stbi__bmp_data info;
+; 5811 : STBI_NOTUSED(ri);
+; 5812 :
+; 5813 : info.all_a = 255;
+
+ 00082 c7 85 e4 05 00
+ 00 ff 00 00 00 mov DWORD PTR info$[rbp+28], 255 ; 000000ffH
+
+; 5814 : 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_
+
+; 5815 : 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_:
+
+; 5816 :
+; 5817 : 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
+
+; 5818 : 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
+
+; 5819 :
+; 5820 : 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_
+
+; 5821 : 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_:
+
+; 5822 : 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_
+
+; 5823 : 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_:
+
+; 5824 :
+; 5825 : 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
+
+; 5826 : 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
+
+; 5827 : 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
+
+; 5828 : 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
+
+; 5829 : 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
+
+; 5830 :
+; 5831 : 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_
+
+; 5832 : 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_
+
+; 5833 : 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_:
+
+; 5834 : } else {
+
+ 001e0 eb 28 jmp SHORT $LN39@stbi__bmp_
+$LN38@stbi__bmp_:
+
+; 5835 : 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_
+
+; 5836 : 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_:
+
+; 5837 : }
+; 5838 : 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_
+
+; 5839 : // accept some number of extra bytes after the header, but if the offset points either to before
+; 5840 : // the header ends or implies a large amount of extra data, reject the file as malformed
+; 5841 : 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
+
+; 5842 : s->callback_already_read + (int)(s->img_buffer - s->img_buffer_original);
+; 5843 : 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
+
+; 5844 : 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
+
+; 5845 : 256 *
+; 5846 : 4; // what ordinarily goes here is a palette; 256 entries*4 bytes is its max size.
+; 5847 : 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_:
+
+; 5848 : 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_:
+
+; 5849 : }
+; 5850 : // we established that bytes_read_so_far is positive and sensible.
+; 5851 : // the first half of this test rejects offsets that are either too small positives, or
+; 5852 : // negative, and guarantees that info.offset >= bytes_read_so_far > 0. this in turn
+; 5853 : // ensures the number computed in the second half of the test can't overflow.
+; 5854 : 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_:
+
+; 5855 : info.offset - bytes_read_so_far > extra_data_limit) {
+; 5856 : 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_
+
+; 5857 : } else {
+
+ 00302 eb 1f jmp SHORT $LN46@stbi__bmp_
+$LN45@stbi__bmp_:
+
+; 5858 : 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_:
+
+; 5859 : }
+; 5860 : }
+; 5861 :
+; 5862 : 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_
+
+; 5863 : 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_:
+
+; 5864 : else
+; 5865 : 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_:
+
+; 5866 : 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_
+
+; 5867 : 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_:
+
+; 5868 : else
+; 5869 : 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_:
+
+; 5870 :
+; 5871 : // sanity-check size
+; 5872 : 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_
+
+; 5873 : 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_:
+
+; 5874 :
+; 5875 : 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
+
+; 5876 : if (!out)
+
+ 00427 48 83 7d 08 00 cmp QWORD PTR out$[rbp], 0
+ 0042c 75 34 jne SHORT $LN53@stbi__bmp_
+
+; 5877 : 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_:
+
+; 5878 : 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_
+
+; 5879 : int z = 0;
+
+ 0046f c7 85 64 06 00
+ 00 00 00 00 00 mov DWORD PTR z$8[rbp], 0
+
+; 5880 : 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_:
+
+; 5881 : 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
+
+; 5882 : 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_:
+
+; 5883 : }
+; 5884 : 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_
+
+; 5885 : 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
+
+; 5886 : 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
+
+; 5887 : 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
+
+; 5888 : 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_
+
+; 5889 : 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_:
+
+; 5890 : 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
+
+; 5891 : }
+
+ 005a0 e9 34 ff ff ff jmp $LN2@stbi__bmp_
+$LN3@stbi__bmp_:
+
+; 5892 : 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
+
+; 5893 : psize * (info.hsz == 12 ? 3 : 4));
+; 5894 : 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_
+
+; 5895 : 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_:
+
+; 5896 : 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_
+
+; 5897 : 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_:
+
+; 5898 : 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_
+
+; 5899 : 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_:
+
+; 5900 : else {
+; 5901 : 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
+
+; 5902 : 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_:
+
+; 5903 : }
+; 5904 : 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
+
+; 5905 : 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_
+
+; 5906 : 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_
+
+; 5907 : 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
+
+; 5908 : 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_
+
+; 5909 : 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
+
+; 5910 : 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
+
+; 5911 : 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
+
+; 5912 : 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
+
+; 5913 : 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_
+
+; 5914 : 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_:
+
+; 5915 : 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_
+
+; 5916 : break;
+
+ 00829 eb 3b jmp SHORT $LN9@stbi__bmp_
+$LN68@stbi__bmp_:
+
+; 5917 : 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_
+
+; 5918 : bit_offset = 7;
+
+ 00842 c7 85 84 06 00
+ 00 07 00 00 00 mov DWORD PTR bit_offset$9[rbp], 7
+
+; 5919 : 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_:
+
+; 5920 : }
+; 5921 : }
+
+ 00861 e9 a2 fe ff ff jmp $LN8@stbi__bmp_
+$LN9@stbi__bmp_:
+
+; 5922 : 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
+
+; 5923 : }
+
+ 00879 e9 3b fe ff ff jmp $LN5@stbi__bmp_
+$LN6@stbi__bmp_:
+
+; 5924 : } else {
+
+ 0087e e9 b5 02 00 00 jmp $LN66@stbi__bmp_
+$LN65@stbi__bmp_:
+
+; 5925 : 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_
+
+; 5926 : 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_
+
+; 5927 : 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
+
+; 5928 : 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_
+
+; 5929 : 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
+
+; 5930 : 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_:
+
+; 5931 : }
+; 5932 : 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
+
+; 5933 : 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
+
+; 5934 : 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
+
+; 5935 : 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_
+
+; 5936 : 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_:
+
+; 5937 : 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_
+
+; 5938 : break;
+
+ 00a0d e9 0e 01 00 00 jmp $LN15@stbi__bmp_
+$LN72@stbi__bmp_:
+
+; 5939 : 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
+
+; 5940 : 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
+
+; 5941 : 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
+
+; 5942 : 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
+
+; 5943 : 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_
+
+; 5944 : 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_:
+
+; 5945 : }
+
+ 00b1b e9 9f fd ff ff jmp $LN14@stbi__bmp_
+$LN15@stbi__bmp_:
+
+; 5946 : 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
+
+; 5947 : }
+
+ 00b33 e9 57 fd ff ff jmp $LN11@stbi__bmp_
+$LN12@stbi__bmp_:
+$LN66@stbi__bmp_:
+
+; 5948 : }
+; 5949 : } else {
+
+ 00b38 e9 af 05 00 00 jmp $LN55@stbi__bmp_
+$LN54@stbi__bmp_:
+
+; 5950 : 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
+
+; 5951 : 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
+
+; 5952 : int z = 0;
+
+ 00b8d c7 85 24 08 00
+ 00 00 00 00 00 mov DWORD PTR z$22[rbp], 0
+
+; 5953 : int easy = 0;
+
+ 00b97 c7 85 44 08 00
+ 00 00 00 00 00 mov DWORD PTR easy$23[rbp], 0
+
+; 5954 : 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
+
+; 5955 : 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_
+
+; 5956 : 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_:
+
+; 5957 : 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_
+
+; 5958 : 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_:
+
+; 5959 : else /* bpp = 32 and pad = 0 */
+; 5960 : 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_:
+
+; 5961 : 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
+
+; 5962 : 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_
+
+; 5963 : 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_:
+
+; 5964 : } 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_
+
+; 5965 : 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_
+
+; 5966 : 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_:
+
+; 5967 : }
+; 5968 : 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_
+
+; 5969 : 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_:
+
+; 5970 : 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
+
+; 5971 : 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_:
+
+; 5972 : }
+; 5973 : // right shift amt to put high bit in position #7
+; 5974 : 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
+
+; 5975 : 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
+
+; 5976 : 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
+
+; 5977 : 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
+
+; 5978 : 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
+
+; 5979 : 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
+
+; 5980 : 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
+
+; 5981 : 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
+
+; 5982 : 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_:
+
+; 5983 : 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
+
+; 5984 : 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_:
+
+; 5985 : }
+; 5986 : }
+; 5987 : 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_
+
+; 5988 : 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_
+
+; 5989 : 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_
+
+; 5990 : unsigned char a;
+; 5991 : 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
+
+; 5992 : 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
+
+; 5993 : 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
+
+; 5994 : 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
+
+; 5995 : 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
+
+; 5996 : 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
+
+; 5997 : 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_
+
+; 5998 : 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_:
+
+; 5999 : }
+
+ 00ef8 e9 f6 fe ff ff jmp $LN20@stbi__bmp_
+$LN21@stbi__bmp_:
+
+; 6000 : } else {
+
+ 00efd e9 d2 01 00 00 jmp $LN88@stbi__bmp_
+$LN87@stbi__bmp_:
+
+; 6001 : 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
+
+; 6002 : 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_
+
+; 6003 : 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
+
+; 6004 : (stbi__uint32)stbi__get16le(s) :
+; 6005 : stbi__get32le(s));
+; 6006 : unsigned int a;
+; 6007 : 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
+
+; 6008 : stbi__shiftsigned(v & mr, rshift, rcount));
+; 6009 : 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
+
+; 6010 : stbi__shiftsigned(v & mg, gshift, gcount));
+; 6011 : 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
+
+; 6012 : stbi__shiftsigned(v & mb, bshift, bcount));
+; 6013 : 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
+
+; 6014 : 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
+
+; 6015 : 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_
+
+; 6016 : 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_:
+
+; 6017 : }
+
+ 010cf e9 46 fe ff ff jmp $LN23@stbi__bmp_
+$LN24@stbi__bmp_:
+$LN88@stbi__bmp_:
+
+; 6018 : }
+; 6019 : 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
+
+; 6020 : }
+
+ 010e7 e9 ca fc ff ff jmp $LN17@stbi__bmp_
+$LN18@stbi__bmp_:
+$LN55@stbi__bmp_:
+
+; 6021 : }
+; 6022 :
+; 6023 : // if alpha channel is all 0s, replace with all 255s
+; 6024 : 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_
+
+; 6025 : 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_
+
+; 6026 : 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_:
+
+; 6027 :
+; 6028 : 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_
+
+; 6029 : stbi_uc t;
+; 6030 : 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_
+
+; 6031 : 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
+
+; 6032 : 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
+
+; 6033 : 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_
+
+; 6034 : 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
+
+; 6035 : 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
+
+; 6036 : 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
+
+; 6037 : }
+
+ 0126f eb 84 jmp SHORT $LN32@stbi__bmp_
+$LN33@stbi__bmp_:
+
+; 6038 : }
+
+ 01271 e9 eb fe ff ff jmp $LN29@stbi__bmp_
+$LN30@stbi__bmp_:
+$LN92@stbi__bmp_:
+
+; 6039 : }
+; 6040 :
+; 6041 : 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_
+
+; 6042 : 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
+
+; 6043 : if (out == NULL)
+
+ 012bf 48 83 7d 08 00 cmp QWORD PTR out$[rbp], 0
+ 012c4 75 06 jne SHORT $LN94@stbi__bmp_
+
+; 6044 : 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_:
+
+; 6045 : }
+; 6046 :
+; 6047 : *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
+
+; 6048 : *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
+
+; 6049 : 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_
+
+; 6050 : *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_:
+
+; 6051 : return out;
+
+ 0130e 48 8b 45 08 mov rax, QWORD PTR out$[rbp]
+$LN1@stbi__bmp_:
+
+; 6052 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__bmp_test
+_TEXT SEGMENT
+r$ = 4
+s$ = 256
+stbi__bmp_test PROC ; COMDAT
+
+; 5603 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 5604 : 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
+
+; 5605 : 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
+
+; 5606 : return r;
+
+ 0003c 8b 45 04 mov eax, DWORD PTR r$[rbp]
+
+; 5607 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__png_is16
+_TEXT SEGMENT
+p$ = 8
+__$ArrayPad$ = 248
+s$ = 288
+stbi__png_is16 PROC ; COMDAT
+
+; 5569 : {
+
+ 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:__079B8C84_stb_image@c
+ 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00049 90 npad 1
+
+; 5570 : stbi__png p;
+; 5571 : 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
+
+; 5572 : 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_
+
+; 5573 : return 0;
+
+ 0006a 33 c0 xor eax, eax
+ 0006c eb 19 jmp SHORT $LN1@stbi__png_
+$LN2@stbi__png_:
+
+; 5574 : if (p.depth != 16) {
+
+ 0006e 83 7d 28 10 cmp DWORD PTR p$[rbp+32], 16
+ 00072 74 0e je SHORT $LN3@stbi__png_
+
+; 5575 : 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
+
+; 5576 : return 0;
+
+ 0007e 33 c0 xor eax, eax
+ 00080 eb 05 jmp SHORT $LN1@stbi__png_
+$LN3@stbi__png_:
+
+; 5577 : }
+; 5578 : return 1;
+
+ 00082 b8 01 00 00 00 mov eax, 1
+$LN1@stbi__png_:
+
+; 5579 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__png_info
+_TEXT SEGMENT
+p$ = 8
+__$ArrayPad$ = 248
+s$ = 288
+x$ = 296
+y$ = 304
+comp$ = 312
+stbi__png_info PROC ; COMDAT
+
+; 5562 : {
+
+ 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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 5563 : stbi__png p;
+; 5564 : 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
+
+; 5565 : 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
+
+; 5566 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 5532 : {
+
+ 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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 5533 : stbi__png p;
+; 5534 : 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
+
+; 5535 : 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
+
+; 5536 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__png_test
+_TEXT SEGMENT
+r$ = 4
+s$ = 256
+stbi__png_test PROC ; COMDAT
+
+; 5539 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 5540 : int r;
+; 5541 : 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
+
+; 5542 : 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
+
+; 5543 : return r;
+
+ 0003c 8b 45 04 mov eax, DWORD PTR r$[rbp]
+
+; 5544 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__jpeg_info
+_TEXT SEGMENT
+result$ = 4
+j$ = 40
+s$ = 288
+x$ = 296
+y$ = 304
+comp$ = 312
+stbi__jpeg_info PROC ; COMDAT
+
+; 4053 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 4054 : int result;
+; 4055 : 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
+
+; 4056 : if (!j)
+
+ 0003d 48 83 7d 28 00 cmp QWORD PTR j$[rbp], 0
+ 00042 75 0e jne SHORT $LN2@stbi__jpeg
+
+; 4057 : 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:
+
+; 4058 : 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
+
+; 4059 : 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
+
+; 4060 : 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
+
+; 4061 : 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
+
+; 4062 : return result;
+
+ 0009e 8b 45 04 mov eax, DWORD PTR result$[rbp]
+$LN1@stbi__jpeg:
+
+; 4063 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 4008 : {
+
+ 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 4009 : unsigned char *result;
+; 4010 : 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
+
+; 4011 : if (!j)
+
+ 0003d 48 83 7d 28 00 cmp QWORD PTR j$[rbp], 0
+ 00042 75 31 jne SHORT $LN2@stbi__jpeg
+
+; 4012 : 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:
+
+; 4013 : 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
+
+; 4014 : STBI_NOTUSED(ri);
+; 4015 : 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
+
+; 4016 : 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
+
+; 4017 : 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
+
+; 4018 : 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
+
+; 4019 : return result;
+
+ 000d6 48 8b 45 08 mov rax, QWORD PTR result$[rbp]
+$LN1@stbi__jpeg:
+
+; 4020 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__jpeg_test
+_TEXT SEGMENT
+r$ = 4
+j$ = 40
+s$ = 288
+stbi__jpeg_test PROC ; COMDAT
+
+; 4023 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 4024 : int r;
+; 4025 : 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
+
+; 4026 : if (!j)
+
+ 0002e 48 83 7d 28 00 cmp QWORD PTR j$[rbp], 0
+ 00033 75 0e jne SHORT $LN2@stbi__jpeg
+
+; 4027 : 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:
+
+; 4028 : 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
+
+; 4029 : 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
+
+; 4030 : 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
+
+; 4031 : 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
+
+; 4032 : 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
+
+; 4033 : 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
+
+; 4034 : return r;
+
+ 00096 8b 45 04 mov eax, DWORD PTR r$[rbp]
+$LN1@stbi__jpeg:
+
+; 4035 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__rewind
+_TEXT SEGMENT
+s$ = 224
+stbi__rewind PROC ; COMDAT
+
+; 339 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 340 : // conceptually rewind SHOULD rewind to the beginning of the stream,
+; 341 : // but we just rewind to the beginning of the initial buffer, because
+; 342 : // we only use it after doing 'test', which only ever looks at at most 92 bytes
+; 343 : 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
+
+; 344 : 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
+
+; 345 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__start_file
+_TEXT SEGMENT
+s$ = 224
+f$ = 232
+stbi__start_file PROC ; COMDAT
+
+; 330 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 331 : 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
+
+; 332 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__stdio_eof
+_TEXT SEGMENT
+tv70 = 192
+user$ = 240
+stbi__stdio_eof PROC ; COMDAT
+
+; 319 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 320 : 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]
+
+; 321 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__stdio_skip
+_TEXT SEGMENT
+ch$ = 4
+user$ = 256
+n$ = 264
+stbi__stdio_skip PROC ; COMDAT
+
+; 309 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00023 90 npad 1
+
+; 310 : int ch;
+; 311 : 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
+
+; 312 : 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
+
+; 313 : if (ch != EOF) {
+
+ 0004e 83 7d 04 ff cmp DWORD PTR ch$[rbp], -1
+ 00052 74 11 je SHORT $LN2@stbi__stdi
+
+; 314 : 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:
+
+; 315 : }
+; 316 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__stdio_read
+_TEXT SEGMENT
+user$ = 224
+data$ = 232
+size$ = 240
+stbi__stdio_read PROC ; COMDAT
+
+; 304 : {
+
+ 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:__079B8C84_stb_image@c
+ 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00029 90 npad 1
+
+; 305 : 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
+
+; 306 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__start_callbacks
+_TEXT SEGMENT
+tv72 = 192
+s$ = 240
+c$ = 248
+user$ = 256
+stbi__start_callbacks PROC ; COMDAT
+
+; 290 : {
+
+ 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:__079B8C84_stb_image@c
+ 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002a 90 npad 1
+
+; 291 : 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
+
+; 292 : 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
+
+; 293 : 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
+
+; 294 : 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
+
+; 295 : 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
+
+; 296 : 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
+
+; 297 : 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
+
+; 298 : 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
+
+; 299 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__start_mem
+_TEXT SEGMENT
+tv72 = 192
+s$ = 240
+buffer$ = 248
+len$ = 256
+stbi__start_mem PROC ; COMDAT
+
+; 280 : {
+
+ 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:__079B8C84_stb_image@c
+ 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00029 90 npad 1
+
+; 281 : 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
+
+; 282 : 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
+
+; 283 : 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
+
+; 284 : 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
+
+; 285 : 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
+
+; 286 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__refill_buffer
+_TEXT SEGMENT
+n$ = 4
+s$ = 256
+stbi__refill_buffer PROC ; COMDAT
+
+; 1125 : {
+
+ 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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 1126 : 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
+
+; 1127 : 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
+
+; 1128 : if (n == 0) {
+
+ 0008a 83 7d 04 00 cmp DWORD PTR n$[rbp], 0
+ 0008e 75 53 jne SHORT $LN2@stbi__refi
+
+; 1129 : // at end of file, treat same as if from memory, but need to handle case
+; 1130 : // where s->img_buffer isn't pointing to safe memory, e.g. 0-byte file
+; 1131 : 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
+
+; 1132 : 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
+
+; 1133 : 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
+
+; 1134 : *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
+
+; 1135 : } else {
+
+ 000e1 eb 37 jmp SHORT $LN3@stbi__refi
+$LN2@stbi__refi:
+
+; 1136 : 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
+
+; 1137 : 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:
+
+; 1138 : }
+; 1139 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__sse2_available
+_TEXT SEGMENT
+info3$ = 4
+tv68 = 212
+stbi__sse2_available PROC ; COMDAT
+
+; 210 : {
+
+ 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:__079B8C84_stb_image@c
+ 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001b 90 npad 1
+
+; 211 : int info3 = stbi__cpuid3();
+
+ 0001c e8 00 00 00 00 call stbi__cpuid3
+ 00021 89 45 04 mov DWORD PTR info3$[rbp], eax
+
+; 212 : 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]
+
+; 213 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi__cpuid3
+_TEXT SEGMENT
+info$ = 8
+__$ArrayPad$ = 232
+stbi__cpuid3 PROC ; COMDAT
+
+; 188 : {
+
+ 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:__079B8C84_stb_image@c
+ 00039 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0003e 90 npad 1
+
+; 189 : int info[4];
+; 190 : __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
+
+; 191 : 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]
+
+; 192 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_zlib_decode_noheader_buffer
+_TEXT SEGMENT
+a$ = 16
+__$ArrayPad$ = 5656
+obuffer$ = 5696
+olen$ = 5704
+ibuffer$ = 5712
+ilen$ = 5720
+stbi_zlib_decode_noheader_buffer PROC ; COMDAT
+
+; 4615 : {
+
+$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 58 16 00 00 mov eax, 5720 ; 00001658H
+ 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 0a 04 00 00 mov ecx, 1034 ; 0000040aH
+ 00031 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
+ 00036 f3 ab rep stosd
+ 00038 48 8b 8c 24 78
+ 16 00 00 mov rcx, QWORD PTR [rsp+5752]
+ 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 18 16
+ 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
+ 00051 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:__079B8C84_stb_image@c
+ 00058 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0005d 90 npad 1
+
+; 4616 : stbi__zbuf a;
+; 4617 : a.zbuffer = (stbi_uc *)ibuffer;
+
+ 0005e 48 8b 85 50 16
+ 00 00 mov rax, QWORD PTR ibuffer$[rbp]
+ 00065 48 89 45 10 mov QWORD PTR a$[rbp], rax
+
+; 4618 : a.zbuffer_end = (stbi_uc *)ibuffer + ilen;
+
+ 00069 48 63 85 58 16
+ 00 00 movsxd rax, DWORD PTR ilen$[rbp]
+ 00070 48 8b 8d 50 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
+
+; 4619 : 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 48 16
+ 00 00 mov r8d, DWORD PTR olen$[rbp]
+ 00093 48 8b 95 40 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_
+
+; 4620 : return (int)(a.zout - a.zout_start);
+
+ 000a7 48 8b 45 30 mov rax, QWORD PTR a$[rbp+32]
+ 000ab 48 8b 4d 28 mov rcx, QWORD PTR a$[rbp+24]
+ 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_:
+
+; 4621 : else
+; 4622 : return -1;
+
+ 000b9 b8 ff ff ff ff mov eax, -1
+$LN3@stbi_zlib_:
+$LN1@stbi_zlib_:
+
+; 4623 : }
+
+ 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 18 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 28 16
+ 00 00 lea rsp, QWORD PTR [rbp+5672]
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_zlib_decode_noheader_malloc
+_TEXT SEGMENT
+a$ = 16
+p$ = 4136
+__$ArrayPad$ = 5688
+buffer$ = 5728
+len$ = 5736
+outlen$ = 5744
+stbi_zlib_decode_noheader_malloc PROC ; COMDAT
+
+; 4597 : {
+
+$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 78 16 00 00 mov eax, 5752 ; 00001678H
+ 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 12 04 00 00 mov ecx, 1042 ; 00000412H
+ 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
+ 00031 f3 ab rep stosd
+ 00033 48 8b 8c 24 98
+ 16 00 00 mov rcx, QWORD PTR [rsp+5784]
+ 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 38 16
+ 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
+ 0004c 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 4598 : stbi__zbuf a;
+; 4599 : 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 28 10
+ 00 00 mov QWORD PTR p$[rbp], rax
+
+; 4600 : if (p == NULL)
+
+ 0006a 48 83 bd 28 10
+ 00 00 00 cmp QWORD PTR p$[rbp], 0
+ 00072 75 07 jne SHORT $LN2@stbi_zlib_
+
+; 4601 : return NULL;
+
+ 00074 33 c0 xor eax, eax
+ 00076 e9 81 00 00 00 jmp $LN1@stbi_zlib_
+$LN2@stbi_zlib_:
+
+; 4602 : a.zbuffer = (stbi_uc *)buffer;
+
+ 0007b 48 8b 85 60 16
+ 00 00 mov rax, QWORD PTR buffer$[rbp]
+ 00082 48 89 45 10 mov QWORD PTR a$[rbp], rax
+
+; 4603 : a.zbuffer_end = (stbi_uc *)buffer + len;
+
+ 00086 48 63 85 68 16
+ 00 00 movsxd rax, DWORD PTR len$[rbp]
+ 0008d 48 8b 8d 60 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
+
+; 4604 : 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 28 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_
+
+; 4605 : if (outlen)
+
+ 000c6 48 83 bd 70 16
+ 00 00 00 cmp QWORD PTR outlen$[rbp], 0
+ 000ce 74 17 je SHORT $LN5@stbi_zlib_
+
+; 4606 : *outlen = (int)(a.zout - a.zout_start);
+
+ 000d0 48 8b 45 30 mov rax, QWORD PTR a$[rbp+32]
+ 000d4 48 8b 4d 28 mov rcx, QWORD PTR a$[rbp+24]
+ 000d8 48 2b c8 sub rcx, rax
+ 000db 48 8b c1 mov rax, rcx
+ 000de 48 8b 8d 70 16
+ 00 00 mov rcx, QWORD PTR outlen$[rbp]
+ 000e5 89 01 mov DWORD PTR [rcx], eax
+$LN5@stbi_zlib_:
+
+; 4607 : return a.zout_start;
+
+ 000e7 48 8b 45 30 mov rax, QWORD PTR a$[rbp+32]
+ 000eb eb 0f jmp SHORT $LN1@stbi_zlib_
+
+; 4608 : } else {
+
+ 000ed eb 0d jmp SHORT $LN4@stbi_zlib_
+$LN3@stbi_zlib_:
+
+; 4609 : STBI_FREE(a.zout_start);
+
+ 000ef 48 8b 4d 30 mov rcx, QWORD PTR a$[rbp+32]
+ 000f3 ff 15 00 00 00
+ 00 call QWORD PTR __imp_free
+ 000f9 90 npad 1
+
+; 4610 : return NULL;
+
+ 000fa 33 c0 xor eax, eax
+$LN4@stbi_zlib_:
+$LN1@stbi_zlib_:
+
+; 4611 : }
+; 4612 : }
+
+ 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 38 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 48 16
+ 00 00 lea rsp, QWORD PTR [rbp+5704]
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_zlib_decode_buffer
+_TEXT SEGMENT
+a$ = 16
+__$ArrayPad$ = 5656
+obuffer$ = 5696
+olen$ = 5704
+ibuffer$ = 5712
+ilen$ = 5720
+stbi_zlib_decode_buffer PROC ; COMDAT
+
+; 4586 : {
+
+$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 58 16 00 00 mov eax, 5720 ; 00001658H
+ 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 0a 04 00 00 mov ecx, 1034 ; 0000040aH
+ 00031 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
+ 00036 f3 ab rep stosd
+ 00038 48 8b 8c 24 78
+ 16 00 00 mov rcx, QWORD PTR [rsp+5752]
+ 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 18 16
+ 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
+ 00051 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:__079B8C84_stb_image@c
+ 00058 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0005d 90 npad 1
+
+; 4587 : stbi__zbuf a;
+; 4588 : a.zbuffer = (stbi_uc *)ibuffer;
+
+ 0005e 48 8b 85 50 16
+ 00 00 mov rax, QWORD PTR ibuffer$[rbp]
+ 00065 48 89 45 10 mov QWORD PTR a$[rbp], rax
+
+; 4589 : a.zbuffer_end = (stbi_uc *)ibuffer + ilen;
+
+ 00069 48 63 85 58 16
+ 00 00 movsxd rax, DWORD PTR ilen$[rbp]
+ 00070 48 8b 8d 50 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
+
+; 4590 : 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 48 16
+ 00 00 mov r8d, DWORD PTR olen$[rbp]
+ 00093 48 8b 95 40 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_
+
+; 4591 : return (int)(a.zout - a.zout_start);
+
+ 000a7 48 8b 45 30 mov rax, QWORD PTR a$[rbp+32]
+ 000ab 48 8b 4d 28 mov rcx, QWORD PTR a$[rbp+24]
+ 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_:
+
+; 4592 : else
+; 4593 : return -1;
+
+ 000b9 b8 ff ff ff ff mov eax, -1
+$LN3@stbi_zlib_:
+$LN1@stbi_zlib_:
+
+; 4594 : }
+
+ 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 18 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 28 16
+ 00 00 lea rsp, QWORD PTR [rbp+5672]
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_zlib_decode_malloc
+_TEXT SEGMENT
+buffer$ = 224
+len$ = 232
+outlen$ = 240
+stbi_zlib_decode_malloc PROC ; COMDAT
+
+; 4561 : {
+
+$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:__079B8C84_stb_image@c
+ 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00028 90 npad 1
+
+; 4562 : 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
+
+; 4563 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_zlib_decode_malloc_guesssize_headerflag
+_TEXT SEGMENT
+a$ = 16
+p$ = 4136
+__$ArrayPad$ = 5688
+buffer$ = 5728
+len$ = 5736
+initial_size$ = 5744
+outlen$ = 5752
+parse_header$ = 5760
+stbi_zlib_decode_malloc_guesssize_headerflag PROC ; COMDAT
+
+; 4568 : {
+
+$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 78 16 00 00 mov eax, 5752 ; 00001678H
+ 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 12 04 00 00 mov ecx, 1042 ; 00000412H
+ 00031 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
+ 00036 f3 ab rep stosd
+ 00038 48 8b 8c 24 98
+ 16 00 00 mov rcx, QWORD PTR [rsp+5784]
+ 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 38 16
+ 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
+ 00051 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:__079B8C84_stb_image@c
+ 00058 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0005d 90 npad 1
+
+; 4569 : stbi__zbuf a;
+; 4570 : char *p = (char *)stbi__malloc(initial_size);
+
+ 0005e 48 63 85 70 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 28 10
+ 00 00 mov QWORD PTR p$[rbp], rax
+
+; 4571 : if (p == NULL)
+
+ 00074 48 83 bd 28 10
+ 00 00 00 cmp QWORD PTR p$[rbp], 0
+ 0007c 75 07 jne SHORT $LN2@stbi_zlib_
+
+; 4572 : return NULL;
+
+ 0007e 33 c0 xor eax, eax
+ 00080 e9 84 00 00 00 jmp $LN1@stbi_zlib_
+$LN2@stbi_zlib_:
+
+; 4573 : a.zbuffer = (stbi_uc *)buffer;
+
+ 00085 48 8b 85 60 16
+ 00 00 mov rax, QWORD PTR buffer$[rbp]
+ 0008c 48 89 45 10 mov QWORD PTR a$[rbp], rax
+
+; 4574 : a.zbuffer_end = (stbi_uc *)buffer + len;
+
+ 00090 48 63 85 68 16
+ 00 00 movsxd rax, DWORD PTR len$[rbp]
+ 00097 48 8b 8d 60 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
+
+; 4575 : if (stbi__do_zlib(&a, p, initial_size, 1, parse_header)) {
+
+ 000a8 8b 85 80 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 70 16
+ 00 00 mov r8d, DWORD PTR initial_size$[rbp]
+ 000bf 48 8b 95 28 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_
+
+; 4576 : if (outlen)
+
+ 000d3 48 83 bd 78 16
+ 00 00 00 cmp QWORD PTR outlen$[rbp], 0
+ 000db 74 17 je SHORT $LN5@stbi_zlib_
+
+; 4577 : *outlen = (int)(a.zout - a.zout_start);
+
+ 000dd 48 8b 45 30 mov rax, QWORD PTR a$[rbp+32]
+ 000e1 48 8b 4d 28 mov rcx, QWORD PTR a$[rbp+24]
+ 000e5 48 2b c8 sub rcx, rax
+ 000e8 48 8b c1 mov rax, rcx
+ 000eb 48 8b 8d 78 16
+ 00 00 mov rcx, QWORD PTR outlen$[rbp]
+ 000f2 89 01 mov DWORD PTR [rcx], eax
+$LN5@stbi_zlib_:
+
+; 4578 : return a.zout_start;
+
+ 000f4 48 8b 45 30 mov rax, QWORD PTR a$[rbp+32]
+ 000f8 eb 0f jmp SHORT $LN1@stbi_zlib_
+
+; 4579 : } else {
+
+ 000fa eb 0d jmp SHORT $LN4@stbi_zlib_
+$LN3@stbi_zlib_:
+
+; 4580 : STBI_FREE(a.zout_start);
+
+ 000fc 48 8b 4d 30 mov rcx, QWORD PTR a$[rbp+32]
+ 00100 ff 15 00 00 00
+ 00 call QWORD PTR __imp_free
+ 00106 90 npad 1
+
+; 4581 : return NULL;
+
+ 00107 33 c0 xor eax, eax
+$LN4@stbi_zlib_:
+$LN1@stbi_zlib_:
+
+; 4582 : }
+; 4583 : }
+
+ 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 38 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 48 16
+ 00 00 lea rsp, QWORD PTR [rbp+5704]
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_zlib_decode_malloc_guesssize
+_TEXT SEGMENT
+a$ = 16
+p$ = 4136
+__$ArrayPad$ = 5688
+buffer$ = 5728
+len$ = 5736
+initial_size$ = 5744
+outlen$ = 5752
+stbi_zlib_decode_malloc_guesssize PROC ; COMDAT
+
+; 4543 : {
+
+$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 78 16 00 00 mov eax, 5752 ; 00001678H
+ 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 12 04 00 00 mov ecx, 1042 ; 00000412H
+ 00031 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
+ 00036 f3 ab rep stosd
+ 00038 48 8b 8c 24 98
+ 16 00 00 mov rcx, QWORD PTR [rsp+5784]
+ 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 38 16
+ 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
+ 00051 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:__079B8C84_stb_image@c
+ 00058 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0005d 90 npad 1
+
+; 4544 : stbi__zbuf a;
+; 4545 : char *p = (char *)stbi__malloc(initial_size);
+
+ 0005e 48 63 85 70 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 28 10
+ 00 00 mov QWORD PTR p$[rbp], rax
+
+; 4546 : if (p == NULL)
+
+ 00074 48 83 bd 28 10
+ 00 00 00 cmp QWORD PTR p$[rbp], 0
+ 0007c 75 07 jne SHORT $LN2@stbi_zlib_
+
+; 4547 : return NULL;
+
+ 0007e 33 c0 xor eax, eax
+ 00080 e9 82 00 00 00 jmp $LN1@stbi_zlib_
+$LN2@stbi_zlib_:
+
+; 4548 : a.zbuffer = (stbi_uc *)buffer;
+
+ 00085 48 8b 85 60 16
+ 00 00 mov rax, QWORD PTR buffer$[rbp]
+ 0008c 48 89 45 10 mov QWORD PTR a$[rbp], rax
+
+; 4549 : a.zbuffer_end = (stbi_uc *)buffer + len;
+
+ 00090 48 63 85 68 16
+ 00 00 movsxd rax, DWORD PTR len$[rbp]
+ 00097 48 8b 8d 60 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
+
+; 4550 : 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 70 16
+ 00 00 mov r8d, DWORD PTR initial_size$[rbp]
+ 000bd 48 8b 95 28 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_
+
+; 4551 : if (outlen)
+
+ 000d1 48 83 bd 78 16
+ 00 00 00 cmp QWORD PTR outlen$[rbp], 0
+ 000d9 74 17 je SHORT $LN5@stbi_zlib_
+
+; 4552 : *outlen = (int)(a.zout - a.zout_start);
+
+ 000db 48 8b 45 30 mov rax, QWORD PTR a$[rbp+32]
+ 000df 48 8b 4d 28 mov rcx, QWORD PTR a$[rbp+24]
+ 000e3 48 2b c8 sub rcx, rax
+ 000e6 48 8b c1 mov rax, rcx
+ 000e9 48 8b 8d 78 16
+ 00 00 mov rcx, QWORD PTR outlen$[rbp]
+ 000f0 89 01 mov DWORD PTR [rcx], eax
+$LN5@stbi_zlib_:
+
+; 4553 : return a.zout_start;
+
+ 000f2 48 8b 45 30 mov rax, QWORD PTR a$[rbp+32]
+ 000f6 eb 0f jmp SHORT $LN1@stbi_zlib_
+
+; 4554 : } else {
+
+ 000f8 eb 0d jmp SHORT $LN4@stbi_zlib_
+$LN3@stbi_zlib_:
+
+; 4555 : STBI_FREE(a.zout_start);
+
+ 000fa 48 8b 4d 30 mov rcx, QWORD PTR a$[rbp+32]
+ 000fe ff 15 00 00 00
+ 00 call QWORD PTR __imp_free
+ 00104 90 npad 1
+
+; 4556 : return NULL;
+
+ 00105 33 c0 xor eax, eax
+$LN4@stbi_zlib_:
+$LN1@stbi_zlib_:
+
+; 4557 : }
+; 4558 : }
+
+ 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 38 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 48 16
+ 00 00 lea rsp, QWORD PTR [rbp+5704]
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 599 : {
+
+$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:__079B8C84_stb_image@c
+ 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001e 90 npad 1
+
+; 600 : 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
+
+; 601 : 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
+
+; 602 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 5176 : {
+
+$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:__079B8C84_stb_image@c
+ 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001e 90 npad 1
+
+; 5177 : 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
+
+; 5178 : 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
+
+; 5179 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_set_unpremultiply_on_load_thread
+_TEXT SEGMENT
+flag_true_if_should_unpremultiply$ = 224
+stbi_set_unpremultiply_on_load_thread PROC ; COMDAT
+
+; 5170 : {
+
+$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:__079B8C84_stb_image@c
+ 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001e 90 npad 1
+
+; 5171 : 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
+
+; 5172 : 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
+
+; 5173 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_set_flip_vertically_on_load
+_TEXT SEGMENT
+flag_true_if_should_flip$ = 224
+stbi_set_flip_vertically_on_load PROC ; COMDAT
+
+; 589 : {
+
+$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:__079B8C84_stb_image@c
+ 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001e 90 npad 1
+
+; 590 : 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
+
+; 591 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_convert_iphone_png_to_rgb
+_TEXT SEGMENT
+flag_true_if_should_convert$ = 224
+stbi_convert_iphone_png_to_rgb PROC ; COMDAT
+
+; 5158 : {
+
+$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:__079B8C84_stb_image@c
+ 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001e 90 npad 1
+
+; 5159 : 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
+
+; 5160 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_set_unpremultiply_on_load
+_TEXT SEGMENT
+flag_true_if_should_unpremultiply$ = 224
+stbi_set_unpremultiply_on_load PROC ; COMDAT
+
+; 5153 : {
+
+$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:__079B8C84_stb_image@c
+ 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001e 90 npad 1
+
+; 5154 : 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
+
+; 5155 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 8212 : {
+
+$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:__079B8C84_stb_image@c
+ 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00049 90 npad 1
+
+; 8213 : int r;
+; 8214 : stbi__context s;
+; 8215 : 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
+
+; 8216 : 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
+
+; 8217 : 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
+
+; 8218 : 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
+
+; 8219 : return r;
+
+ 00091 8b 45 04 mov eax, DWORD PTR r$[rbp]
+
+; 8220 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_is_16_bit
+_TEXT SEGMENT
+f$ = 8
+result$ = 36
+filename$ = 288
+stbi_is_16_bit PROC ; COMDAT
+
+; 8201 : {
+
+$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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 8202 : 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
+
+; 8203 : int result;
+; 8204 : if (!f)
+
+ 00037 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0
+ 0003c 75 0e jne SHORT $LN2@stbi_is_16
+
+; 8205 : 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:
+
+; 8206 : 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
+
+; 8207 : 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
+
+; 8208 : return result;
+
+ 00063 8b 45 24 mov eax, DWORD PTR result$[rbp]
+$LN1@stbi_is_16:
+
+; 8209 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 8190 : {
+
+$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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 8191 : int r;
+; 8192 : stbi__context s;
+; 8193 : 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
+
+; 8194 : 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
+
+; 8195 : 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
+
+; 8196 : 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
+
+; 8197 : return r;
+
+ 000b5 8b 45 04 mov eax, DWORD PTR r$[rbp]
+
+; 8198 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_info
+_TEXT SEGMENT
+f$ = 8
+result$ = 36
+filename$ = 288
+x$ = 296
+y$ = 304
+comp$ = 312
+stbi_info PROC ; COMDAT
+
+; 8179 : {
+
+$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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 8180 : 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
+
+; 8181 : int result;
+; 8182 : if (!f)
+
+ 00046 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0
+ 0004b 75 0e jne SHORT $LN2@stbi_info
+
+; 8183 : 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:
+
+; 8184 : 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
+
+; 8185 : 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
+
+; 8186 : return result;
+
+ 00087 8b 45 24 mov eax, DWORD PTR result$[rbp]
+$LN1@stbi_info:
+
+; 8187 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 8246 : {
+
+$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:__079B8C84_stb_image@c
+ 00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0004e 90 npad 1
+
+; 8247 : stbi__context s;
+; 8248 : 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
+
+; 8249 : 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
+
+; 8250 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 8239 : {
+
+$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:__079B8C84_stb_image@c
+ 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0004d 90 npad 1
+
+; 8240 : stbi__context s;
+; 8241 : 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
+
+; 8242 : 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
+
+; 8243 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 8232 : {
+
+$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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 8233 : stbi__context s;
+; 8234 : 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
+
+; 8235 : 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
+
+; 8236 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 8224 : {
+
+$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:__079B8C84_stb_image@c
+ 00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00057 90 npad 1
+
+; 8225 : stbi__context s;
+; 8226 : 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
+
+; 8227 : 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
+
+; 8228 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_image_free
+_TEXT SEGMENT
+retval_from_stbi_load$ = 224
+stbi_image_free PROC ; COMDAT
+
+; 574 : {
+
+$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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 575 : 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
+
+; 576 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_failure_reason
+_TEXT SEGMENT
+stbi_failure_reason PROC ; COMDAT
+
+; 430 : {
+
+$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:__079B8C84_stb_image@c
+ 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001b 90 npad 1
+
+; 431 : 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]
+
+; 432 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 1064 : {
+
+$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:__079B8C84_stb_image@c
+ 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00049 90 npad 1
+
+; 1065 : #ifndef STBI_NO_HDR
+; 1066 : 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
+
+; 1067 : int res;
+; 1068 : stbi__context s;
+; 1069 : 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
+
+; 1070 : 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
+
+; 1071 : 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
+
+; 1072 : return res;
+
+ 0008b 8b 45 24 mov eax, DWORD PTR res$[rbp]
+
+; 1073 : #else
+; 1074 : STBI_NOTUSED(f);
+; 1075 : return 0;
+; 1076 : #endif
+; 1077 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_is_hdr
+_TEXT SEGMENT
+f$ = 8
+result$ = 36
+filename$ = 288
+stbi_is_hdr PROC ; COMDAT
+
+; 1053 : {
+
+$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:__079B8C84_stb_image@c
+ 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0001f 90 npad 1
+
+; 1054 : 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
+
+; 1055 : int result = 0;
+
+ 00037 c7 45 24 00 00
+ 00 00 mov DWORD PTR result$[rbp], 0
+
+; 1056 : if (f) {
+
+ 0003e 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0
+ 00043 74 17 je SHORT $LN2@stbi_is_hd
+
+; 1057 : 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
+
+; 1058 : 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:
+
+; 1059 : }
+; 1060 : return result;
+
+ 0005c 8b 45 24 mov eax, DWORD PTR result$[rbp]
+
+; 1061 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_is_hdr_from_memory
+_TEXT SEGMENT
+s$ = 16
+__$ArrayPad$ = 440
+buffer$ = 480
+len$ = 488
+stbi_is_hdr_from_memory PROC ; COMDAT
+
+; 1039 : {
+
+$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:__079B8C84_stb_image@c
+ 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0004d 90 npad 1
+
+; 1040 : #ifndef STBI_NO_HDR
+; 1041 : stbi__context s;
+; 1042 : 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
+
+; 1043 : 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
+
+; 1044 : #else
+; 1045 : STBI_NOTUSED(buffer);
+; 1046 : STBI_NOTUSED(len);
+; 1047 : return 0;
+; 1048 : #endif
+; 1049 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_is_hdr_from_callbacks
+_TEXT SEGMENT
+s$ = 16
+__$ArrayPad$ = 440
+clbk$ = 480
+user$ = 488
+stbi_is_hdr_from_callbacks PROC ; COMDAT
+
+; 1081 : {
+
+$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:__079B8C84_stb_image@c
+ 00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0004e 90 npad 1
+
+; 1082 : #ifndef STBI_NO_HDR
+; 1083 : stbi__context s;
+; 1084 : 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
+
+; 1085 : 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
+
+; 1086 : #else
+; 1087 : STBI_NOTUSED(clbk);
+; 1088 : STBI_NOTUSED(user);
+; 1089 : return 0;
+; 1090 : #endif
+; 1091 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_ldr_to_hdr_scale
+_TEXT SEGMENT
+scale$ = 224
+stbi_ldr_to_hdr_scale PROC ; COMDAT
+
+; 1101 : {
+
+$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:__079B8C84_stb_image@c
+ 0001b e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00020 90 npad 1
+
+; 1102 : 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
+
+; 1103 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_ldr_to_hdr_gamma
+_TEXT SEGMENT
+gamma$ = 224
+stbi_ldr_to_hdr_gamma PROC ; COMDAT
+
+; 1097 : {
+
+$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:__079B8C84_stb_image@c
+ 0001b e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00020 90 npad 1
+
+; 1098 : 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
+
+; 1099 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_hdr_to_ldr_scale
+_TEXT SEGMENT
+scale$ = 224
+stbi_hdr_to_ldr_scale PROC ; COMDAT
+
+; 1113 : {
+
+$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:__079B8C84_stb_image@c
+ 0001b e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00020 90 npad 1
+
+; 1114 : 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
+
+; 1115 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_hdr_to_ldr_gamma
+_TEXT SEGMENT
+gamma$ = 224
+stbi_hdr_to_ldr_gamma PROC ; COMDAT
+
+; 1109 : {
+
+$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:__079B8C84_stb_image@c
+ 0001b e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00020 90 npad 1
+
+; 1110 : 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
+
+; 1111 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 1025 : {
+
+$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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 1026 : stbi__context s;
+; 1027 : 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
+
+; 1028 : 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
+
+; 1029 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 1014 : {
+
+$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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 1015 : float *result;
+; 1016 : 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
+
+; 1017 : if (!f)
+
+ 00046 48 83 7d 28 00 cmp QWORD PTR f$[rbp], 0
+ 0004b 75 31 jne SHORT $LN2@stbi_loadf
+
+; 1018 : 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:
+
+; 1019 : 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
+
+; 1020 : 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
+
+; 1021 : return result;
+
+ 000b5 48 8b 45 08 mov rax, QWORD PTR result$[rbp]
+$LN1@stbi_loadf:
+
+; 1022 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 1006 : {
+
+$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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 1007 : stbi__context s;
+; 1008 : 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
+
+; 1009 : 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
+
+; 1010 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 998 : {
+
+$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:__079B8C84_stb_image@c
+ 00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00057 90 npad 1
+
+; 999 : stbi__context s;
+; 1000 : 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
+
+; 1001 : 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
+
+; 1002 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 903 : {
+
+$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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 904 : stbi__uint16 *result;
+; 905 : stbi__context s;
+; 906 : 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
+
+; 907 : 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
+
+; 908 : if (result) {
+
+ 00096 48 83 7d 08 00 cmp QWORD PTR result$[rbp], 0
+ 0009b 74 2c je SHORT $LN2@stbi_load_
+
+; 909 : // need to 'unget' all the characters in the IO buffer
+; 910 : 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_:
+
+; 911 : }
+; 912 : return result;
+
+ 000c9 48 8b 45 08 mov rax, QWORD PTR result$[rbp]
+
+; 913 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 916 : {
+
+$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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 917 : 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
+
+; 918 : stbi__uint16 *result;
+; 919 : if (!f)
+
+ 00046 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0
+ 0004b 75 31 jne SHORT $LN2@stbi_load_
+
+; 920 : 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_:
+
+; 921 : 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
+
+; 922 : 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
+
+; 923 : return result;
+
+ 000b5 48 8b 45 28 mov rax, QWORD PTR result$[rbp]
+$LN1@stbi_load_:
+
+; 924 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 938 : {
+
+$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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 939 : stbi__context s;
+; 940 : 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
+
+; 941 : 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
+
+; 942 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 930 : {
+
+$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:__079B8C84_stb_image@c
+ 00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00057 90 npad 1
+
+; 931 : stbi__context s;
+; 932 : 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
+
+; 933 : 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
+
+; 934 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 963 : {
+
+$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:__079B8C84_stb_image@c
+ 00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00057 90 npad 1
+
+; 964 : unsigned char *result;
+; 965 : stbi__context s;
+; 966 : 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
+
+; 967 :
+; 968 : 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
+
+; 969 : 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_
+
+; 970 : 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_:
+
+; 971 : }
+; 972 :
+; 973 : return result;
+
+ 00142 48 8b 45 08 mov rax, QWORD PTR result$[rbp]
+
+; 974 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 890 : {
+
+$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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 891 : unsigned char *result;
+; 892 : stbi__context s;
+; 893 : 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
+
+; 894 : 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
+
+; 895 : if (result) {
+
+ 00096 48 83 7d 08 00 cmp QWORD PTR result$[rbp], 0
+ 0009b 74 2c je SHORT $LN2@stbi_load_
+
+; 896 : // need to 'unget' all the characters in the IO buffer
+; 897 : 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_:
+
+; 898 : }
+; 899 : return result;
+
+ 000c9 48 8b 45 08 mov rax, QWORD PTR result$[rbp]
+
+; 900 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; COMDAT stbi_load_to_target
+_TEXT SEGMENT
+f$ = 8
+result$ = 40
+filename$ = 288
+x$ = 296
+y$ = 304
+target$ = 312
+comp$ = 320
+req_comp$ = 328
+stbi_load_to_target PROC ; COMDAT
+
+; 878 : {
+
+$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 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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 879 : 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
+
+; 880 : unsigned char *result;
+; 881 : if (!f) {
+
+ 00046 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0
+ 0004b 75 12 jne SHORT $LN2@stbi_load_
+
+; 882 : *target = "can't fopen, Unable to open file";
+
+ 0004d 48 8b 85 38 01
+ 00 00 mov rax, QWORD PTR target$[rbp]
+ 00054 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:??_C@_0CB@DDANHPKI@can?8t?5fopen?0?5Unable?5to?5open?5fil@
+ 0005b 88 08 mov BYTE PTR [rax], cl
+
+; 883 : return;
+
+ 0005d eb 37 jmp SHORT $LN1@stbi_load_
+$LN2@stbi_load_:
+
+; 884 : }
+; 885 : result = stbi_load_from_file(f, x, y, comp, req_comp);
+
+ 0005f 8b 85 48 01 00
+ 00 mov eax, DWORD PTR req_comp$[rbp]
+ 00065 89 44 24 20 mov DWORD PTR [rsp+32], eax
+ 00069 4c 8b 8d 40 01
+ 00 00 mov r9, QWORD PTR comp$[rbp]
+ 00070 4c 8b 85 30 01
+ 00 00 mov r8, QWORD PTR y$[rbp]
+ 00077 48 8b 95 28 01
+ 00 00 mov rdx, QWORD PTR x$[rbp]
+ 0007e 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp]
+ 00082 e8 00 00 00 00 call stbi_load_from_file
+ 00087 48 89 45 28 mov QWORD PTR result$[rbp], rax
+
+; 886 : fclose(f);
+
+ 0008b 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp]
+ 0008f ff 15 00 00 00
+ 00 call QWORD PTR __imp_fclose
+ 00095 90 npad 1
+$LN1@stbi_load_:
+
+; 887 : }
+
+ 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
+stbi_load_to_target ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 866 : {
+
+$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:__079B8C84_stb_image@c
+ 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 0002e 90 npad 1
+
+; 867 : 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
+
+; 868 : unsigned char *result;
+; 869 : if (!f)
+
+ 00046 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0
+ 0004b 75 31 jne SHORT $LN2@stbi_load
+
+; 870 : 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:
+
+; 871 : 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
+
+; 872 : 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
+
+; 873 : return result;
+
+ 000b5 48 8b 45 28 mov rax, QWORD PTR result$[rbp]
+$LN1@stbi_load:
+
+; 874 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 954 : {
+
+$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:__079B8C84_stb_image@c
+ 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00058 90 npad 1
+
+; 955 : stbi__context s;
+; 956 : 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
+
+; 957 : 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
+
+; 958 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\stb_image.c
+; 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
+
+; 946 : {
+
+$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:__079B8C84_stb_image@c
+ 00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00057 90 npad 1
+
+; 947 : stbi__context s;
+; 948 : 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
+
+; 949 : 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
+
+; 950 : }
+
+ 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/StgSharp.C/x64/Debug/stb_image.obj b/StgSharp.C/x64/Debug/stb_image.obj
new file mode 100644
index 00000000..6c6e9b70
Binary files /dev/null and b/StgSharp.C/x64/Debug/stb_image.obj differ
diff --git a/StgSharp.C/x64/Debug/stb_image.sbr b/StgSharp.C/x64/Debug/stb_image.sbr
new file mode 100644
index 00000000..c2fa9542
Binary files /dev/null and b/StgSharp.C/x64/Debug/stb_image.sbr differ
diff --git a/StgSharp.C/x64/Debug/string.cod b/StgSharp.C/x64/Debug/string.cod
new file mode 100644
index 00000000..e667e465
--- /dev/null
+++ b/StgSharp.C/x64/Debug/string.cod
@@ -0,0 +1,570 @@
+; Listing generated by Microsoft (R) Optimizing Compiler Version 19.41.34120.0
+
+include listing.inc
+
+INCLUDELIB MSVCRTD
+INCLUDELIB OLDNAMES
+
+_DATA SEGMENT
+COMM infolog:BYTE:0200H
+_DATA ENDS
+msvcjmc SEGMENT
+__7583A0D2_mmintrin@h DB 01H
+__DDA0A690_concurrencysal@h DB 01H
+__9ECC08BE_sal@h DB 01H
+__E05D733A_vadefs@h DB 01H
+__6A355E0E_vcruntime@h DB 01H
+__1B0272D9_corecrt@h DB 01H
+__45DED006_corecrt_malloc@h DB 01H
+__FA77ED4C_malloc@h DB 01H
+__EAE0325A_xmmintrin@h DB 01H
+__0ED14FEE_winpackagefamily@h DB 01H
+__F92EF742_winapifamily@h DB 01H
+__22E515EB_sdkddkver@h DB 01H
+__A09A3A7D_excpt@h DB 01H
+__AC8FA393_stdarg@h DB 01H
+__29F49F40_specstrings_undef@h DB 01H
+__D0F42932_specstrings_strict@h DB 01H
+__F00405FD_sdv_driverspecs@h DB 01H
+__173E09CA_driverspecs@h DB 01H
+__9A452361_specstrings@h DB 01H
+__74484FB3_corecrt_wctype@h DB 01H
+__1EC467ED_ctype@h DB 01H
+__98517906_kernelspecs@h DB 01H
+__D3497022_basetsd@h DB 01H
+__61CC25A1_errno@h DB 01H
+__890838BD_vcruntime_string@h DB 01H
+__E4C945B4_corecrt_memcpy_s@h DB 01H
+__8EAFF484_corecrt_memory@h DB 01H
+__6490AEC5_corecrt_wstring@h DB 01H
+__E8295E1E_string@h DB 01H
+__7FCB5136_guiddef@h DB 01H
+__FF8A9E11_pshpack4@h DB 01H
+__D5438902_poppack@h DB 01H
+__FB07E2A3_pshpack2@h DB 01H
+__F6906775_pshpack8@h DB 01H
+__F9415CFA_pshpack1@h DB 01H
+__E58C6F1C_apiset@h DB 01H
+__A5C52262_ktmtypes@h DB 01H
+__FBBA8F9D_winnt@h DB 01H
+__A32D3D2C_minwindef@h DB 01H
+__7D798299_windef@h DB 01H
+__9AE108E9_apisetcconv@h DB 01H
+__9CE53D2C_minwinbase@h DB 01H
+__5D0AA210_apiquery2@h DB 01H
+__4DD4E726_processenv@h DB 01H
+__3575CC96_fileapi@h DB 01H
+__8EA220E6_fileapifromapp@h DB 01H
+__BF9B31FE_debugapi@h DB 01H
+__C3AFE134_utilapiset@h DB 01H
+__76F69E51_handleapi@h DB 01H
+__7E63D784_errhandlingapi@h DB 01H
+__FFA7003C_fibersapi@h DB 01H
+__8971CECF_namedpipeapi@h DB 01H
+__46C9D8A6_profileapi@h DB 01H
+__98D4F0A3_heapapi@h DB 01H
+__50EF2A88_ioapiset@h DB 01H
+__92EA1464_synchapi@h DB 01H
+__A53D8AED_interlockedapi@h DB 01H
+__B506CAAF_processthreadsapi@h DB 01H
+__FF735694_sysinfoapi@h DB 01H
+__29589789_memoryapi@h DB 01H
+__E9C7A663_enclaveapi@h DB 01H
+__D035F9F7_threadpoollegacyapiset@h DB 01H
+__C899130C_threadpoolapiset@h DB 01H
+__E0441EE7_jobapi@h DB 01H
+__CEF86838_jobapi2@h DB 01H
+__35AC6B9A_wow64apiset@h DB 01H
+__C8AE41A5_libloaderapi@h DB 01H
+__CC9E232D_securitybaseapi@h DB 01H
+__C9D0C9B8_namespaceapi@h DB 01H
+__30FF9CAD_systemtopologyapi@h DB 01H
+__4D358795_processtopologyapi@h DB 01H
+__40446D10_securityappcontainer@h DB 01H
+__3A952EDF_realtimeapiset@h DB 01H
+__F4865F4B_winerror@h DB 01H
+__53C1BD93_timezoneapi@h DB 01H
+__1FFBEDBF_winbase@h DB 01H
+__43D3FA34_wingdi@h DB 01H
+__D24A7391_tvout@h DB 01H
+__7713A6C8_winuser@h DB 01H
+__0B345F71_datetimeapi@h DB 01H
+__9AC6960C_winnls@h DB 01H
+__973A40A8_stringapiset@h DB 01H
+__CC46FEE2_wincontypes@h DB 01H
+__97D70BE1_consoleapi@h DB 01H
+__27EC5E18_consoleapi2@h DB 01H
+__262E342F_consoleapi3@h DB 01H
+__641DCD70_wincon@h DB 01H
+__5A96C7A7_verrsrc@h DB 01H
+__B69C6FF2_winver@h DB 01H
+__7AEB8C37_reason@h DB 01H
+__59F1A8A9_winreg@h DB 01H
+__EE0E2B7F_wnnc@h DB 01H
+__DCDB7054_winnetwk@h DB 01H
+__81DDEDE3_stralign@h DB 01H
+__2134D1B4_winsvc@h DB 01H
+__11C07376_mcx@h DB 01H
+__577CE3E7_ime_cmodes@h DB 01H
+__1E72C31E_imm@h DB 01H
+__E15BF856_windows@h DB 01H
+__8FC206A7_ssc_internal@h DB 01H
+__44420885_corecrt_stdio_config@h DB 01H
+__AB601D8D_corecrt_wstdio@h DB 01H
+__C1EC35D3_stdio@h DB 01H
+__13F5961F_stddef@h DB 01H
+__FD6DBD68_corecrt_search@h DB 01H
+__E2E33A61_corecrt_wstdlib@h DB 01H
+__26263363_limits@h DB 01H
+__6E5ACABA_stdlib@h DB 01H
+__9049550C_stb_image@h DB 01H
+__98501D5C_stdint@h DB 01H
+__264E89B8_khrplatform@h DB 01H
+__799FCA13_gl@h DB 01H
+__A57296D0_wgl@h DB 01H
+__417F438F_glfw3@h DB 01H
+__8F82BB96_emmintrin@h DB 01H
+__5023D31F_pmmintrin@h DB 01H
+__E0FAA09D_tmmintrin@h DB 01H
+__C9C1B51E_smmintrin@h DB 01H
+__ACA33CD2_nmmintrin@h DB 01H
+__7918C69C_wmmintrin@h DB 01H
+__B28C8B9B_zmmintrin@h DB 01H
+__85982951_immintrin@h DB 01H
+__19139D6C_assert@h DB 01H
+__0C16F932_StgSharpC@h DB 01H
+__B2F9F159_intrin0@inl@h DB 01H
+__0833F55F_setjmp@h DB 01H
+__3F5BC814_ammintrin@h DB 01H
+__2E054928_intrin@h DB 01H
+__5A8332CE_isa_availability@h DB 01H
+__EB6C2FE1_ssc_intrinsic@h DB 01H
+__A2A5DCB5_string@c DB 01H
+msvcjmc ENDS
+PUBLIC index_pair_sse
+PUBLIC __JustMyCode_Default
+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$index_pair_sse DD imagerel $LN23
+ DD imagerel $LN23+681
+ 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 voltbl
+voltbl SEGMENT
+_volmd DW 03fH
+ DW 0290H
+voltbl ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$index_pair_sse DD 025054619H
+ DD 0117231cH
+ DD 070100047H
+ DD 0500fH
+ DD imagerel __GSHandlerCheck
+ DD 0228H
+xdata ENDS
+; COMDAT CONST
+CONST SEGMENT
+index_pair_sse$rtcName$0 DB 073H
+ DB 00H
+ ORG $+14
+index_pair_sse$rtcVarDesc DD 0b0H
+ DD 010H
+ DQ FLAT:index_pair_sse$rtcName$0
+ ORG $+48
+index_pair_sse$rtcFrameData DD 01H
+ DD 00H
+ DQ FLAT:index_pair_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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\string.c
+; COMDAT index_pair_sse
+_TEXT SEGMENT
+index$ = 4
+result$ = 36
+size$ = 68
+end$ = 100
+s$ = 144
+vec$ = 192
+com$ = 240
+i$4 = 280
+i$5 = 312
+tv152 = 516
+__$ArrayPad$ = 520
+str$ = 560
+target$ = 568
+length$ = 576
+index_pair_sse PROC ; COMDAT
+
+; 4 : {
+
+$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 7c 24 20 lea rdi, QWORD PTR [rsp+32]
+ 00021 b9 56 00 00 00 mov ecx, 86 ; 00000056H
+ 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
+ 0002b f3 ab rep stosd
+ 0002d 48 8b 8c 24 58
+ 02 00 00 mov rcx, QWORD PTR [rsp+600]
+ 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 08 02
+ 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
+ 00046 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:__A2A5DCB5_string@c
+ 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00052 90 npad 1
+
+; 5 : int index = 0, result = 0, size = length, end = size - 8;
+
+ 00053 c7 45 04 00 00
+ 00 00 mov DWORD PTR index$[rbp], 0
+ 0005a c7 45 24 00 00
+ 00 00 mov DWORD PTR result$[rbp], 0
+ 00061 8b 85 40 02 00
+ 00 mov eax, DWORD PTR length$[rbp]
+ 00067 89 45 44 mov DWORD PTR size$[rbp], eax
+ 0006a 8b 45 44 mov eax, DWORD PTR size$[rbp]
+ 0006d 83 e8 08 sub eax, 8
+ 00070 89 45 64 mov DWORD PTR end$[rbp], eax
+
+; 6 : __m128i s = {
+
+ 00073 0f b6 85 38 02
+ 00 00 movzx eax, BYTE PTR target$[rbp]
+ 0007a 88 85 90 00 00
+ 00 mov BYTE PTR s$[rbp], al
+ 00080 0f b6 85 38 02
+ 00 00 movzx eax, BYTE PTR target$[rbp]
+ 00087 88 85 91 00 00
+ 00 mov BYTE PTR s$[rbp+1], al
+ 0008d 0f b6 85 38 02
+ 00 00 movzx eax, BYTE PTR target$[rbp]
+ 00094 88 85 92 00 00
+ 00 mov BYTE PTR s$[rbp+2], al
+ 0009a 0f b6 85 38 02
+ 00 00 movzx eax, BYTE PTR target$[rbp]
+ 000a1 88 85 93 00 00
+ 00 mov BYTE PTR s$[rbp+3], al
+ 000a7 48 8d 85 94 00
+ 00 00 lea rax, QWORD PTR s$[rbp+4]
+ 000ae 48 8b f8 mov rdi, rax
+ 000b1 33 c0 xor eax, eax
+ 000b3 b9 0c 00 00 00 mov ecx, 12
+ 000b8 f3 aa rep stosb
+$LN2@index_pair:
+
+; 7 : target,
+; 8 : target,
+; 9 : target,
+; 10 : target,
+; 11 : };
+; 12 : __m128i vec, com;
+; 13 :
+; 14 : while (index < end) {
+
+ 000ba 8b 45 64 mov eax, DWORD PTR end$[rbp]
+ 000bd 39 45 04 cmp DWORD PTR index$[rbp], eax
+ 000c0 0f 8d 52 01 00
+ 00 jge $LN3@index_pair
+
+; 15 : vec = _mm_loadu_epi32(str + index);
+
+ 000c6 48 63 45 04 movsxd rax, DWORD PTR index$[rbp]
+ 000ca 48 8b 8d 30 02
+ 00 00 mov rcx, QWORD PTR str$[rbp]
+ 000d1 48 8d 04 41 lea rax, QWORD PTR [rcx+rax*2]
+ 000d5 c5 fa 6f 00 vmovdqu xmm0, XMMWORD PTR [rax]
+ 000d9 66 0f 7f 85 c0
+ 00 00 00 movdqa XMMWORD PTR vec$[rbp], xmm0
+
+; 16 : com = _mm_cmpeq_epi16(vec, s);
+
+ 000e1 66 0f 6f 85 c0
+ 00 00 00 movdqa xmm0, XMMWORD PTR vec$[rbp]
+ 000e9 66 0f 75 85 90
+ 00 00 00 pcmpeqw xmm0, XMMWORD PTR s$[rbp]
+ 000f1 66 0f 7f 85 f0
+ 00 00 00 movdqa XMMWORD PTR com$[rbp], xmm0
+
+; 17 : result = _mm_movemask_epi8(com);
+
+ 000f9 66 0f 6f 85 f0
+ 00 00 00 movdqa xmm0, XMMWORD PTR com$[rbp]
+ 00101 66 0f d7 c0 pmovmskb eax, xmm0
+ 00105 89 45 24 mov DWORD PTR result$[rbp], eax
+
+; 18 : if (result) {
+
+ 00108 83 7d 24 00 cmp DWORD PTR result$[rbp], 0
+ 0010c 74 56 je SHORT $LN13@index_pair
+
+; 19 : for (size_t i = 0; i < 7; i++) {
+
+ 0010e 48 c7 85 18 01
+ 00 00 00 00 00
+ 00 mov QWORD PTR i$4[rbp], 0
+ 00119 eb 11 jmp SHORT $LN6@index_pair
+$LN4@index_pair:
+ 0011b 48 8b 85 18 01
+ 00 00 mov rax, QWORD PTR i$4[rbp]
+ 00122 48 ff c0 inc rax
+ 00125 48 89 85 18 01
+ 00 00 mov QWORD PTR i$4[rbp], rax
+$LN6@index_pair:
+ 0012c 48 83 bd 18 01
+ 00 00 07 cmp QWORD PTR i$4[rbp], 7
+ 00134 73 2e jae SHORT $LN5@index_pair
+
+; 20 : if (((result & 0xF) == 0xF)) {
+
+ 00136 8b 45 24 mov eax, DWORD PTR result$[rbp]
+ 00139 83 e0 0f and eax, 15
+ 0013c 83 f8 0f cmp eax, 15
+ 0013f 75 10 jne SHORT $LN14@index_pair
+
+; 21 : return index + i;
+
+ 00141 48 63 45 04 movsxd rax, DWORD PTR index$[rbp]
+ 00145 48 03 85 18 01
+ 00 00 add rax, QWORD PTR i$4[rbp]
+ 0014c e9 29 01 00 00 jmp $LN1@index_pair
+$LN14@index_pair:
+
+; 22 : }
+; 23 : if (result == 0) {
+
+ 00151 83 7d 24 00 cmp DWORD PTR result$[rbp], 0
+ 00155 75 02 jne SHORT $LN15@index_pair
+
+; 24 : break;
+
+ 00157 eb 0b jmp SHORT $LN5@index_pair
+$LN15@index_pair:
+
+; 25 : }
+; 26 : result >>= 2;
+
+ 00159 8b 45 24 mov eax, DWORD PTR result$[rbp]
+ 0015c c1 f8 02 sar eax, 2
+ 0015f 89 45 24 mov DWORD PTR result$[rbp], eax
+
+; 27 : }
+
+ 00162 eb b7 jmp SHORT $LN4@index_pair
+$LN5@index_pair:
+$LN13@index_pair:
+
+; 28 : }
+; 29 : index += 1;
+
+ 00164 8b 45 04 mov eax, DWORD PTR index$[rbp]
+ 00167 ff c0 inc eax
+ 00169 89 45 04 mov DWORD PTR index$[rbp], eax
+
+; 30 : vec = _mm_loadu_epi32(str + index);
+
+ 0016c 48 63 45 04 movsxd rax, DWORD PTR index$[rbp]
+ 00170 48 8b 8d 30 02
+ 00 00 mov rcx, QWORD PTR str$[rbp]
+ 00177 48 8d 04 41 lea rax, QWORD PTR [rcx+rax*2]
+ 0017b c5 fa 6f 00 vmovdqu xmm0, XMMWORD PTR [rax]
+ 0017f 66 0f 7f 85 c0
+ 00 00 00 movdqa XMMWORD PTR vec$[rbp], xmm0
+
+; 31 : com = _mm_cmpeq_epi16(vec, s);
+
+ 00187 66 0f 6f 85 c0
+ 00 00 00 movdqa xmm0, XMMWORD PTR vec$[rbp]
+ 0018f 66 0f 75 85 90
+ 00 00 00 pcmpeqw xmm0, XMMWORD PTR s$[rbp]
+ 00197 66 0f 7f 85 f0
+ 00 00 00 movdqa XMMWORD PTR com$[rbp], xmm0
+
+; 32 : result = _mm_movemask_epi8(com);
+
+ 0019f 66 0f 6f 85 f0
+ 00 00 00 movdqa xmm0, XMMWORD PTR com$[rbp]
+ 001a7 66 0f d7 c0 pmovmskb eax, xmm0
+ 001ab 89 45 24 mov DWORD PTR result$[rbp], eax
+
+; 33 : if (result) {
+
+ 001ae 83 7d 24 00 cmp DWORD PTR result$[rbp], 0
+ 001b2 74 56 je SHORT $LN16@index_pair
+
+; 34 : for (size_t i = 0; i < 7; i++) {
+
+ 001b4 48 c7 85 38 01
+ 00 00 00 00 00
+ 00 mov QWORD PTR i$5[rbp], 0
+ 001bf eb 11 jmp SHORT $LN9@index_pair
+$LN7@index_pair:
+ 001c1 48 8b 85 38 01
+ 00 00 mov rax, QWORD PTR i$5[rbp]
+ 001c8 48 ff c0 inc rax
+ 001cb 48 89 85 38 01
+ 00 00 mov QWORD PTR i$5[rbp], rax
+$LN9@index_pair:
+ 001d2 48 83 bd 38 01
+ 00 00 07 cmp QWORD PTR i$5[rbp], 7
+ 001da 73 2e jae SHORT $LN8@index_pair
+
+; 35 : if (((result & 0xF) == 0xF)) {
+
+ 001dc 8b 45 24 mov eax, DWORD PTR result$[rbp]
+ 001df 83 e0 0f and eax, 15
+ 001e2 83 f8 0f cmp eax, 15
+ 001e5 75 10 jne SHORT $LN17@index_pair
+
+; 36 : return index + i;
+
+ 001e7 48 63 45 04 movsxd rax, DWORD PTR index$[rbp]
+ 001eb 48 03 85 38 01
+ 00 00 add rax, QWORD PTR i$5[rbp]
+ 001f2 e9 83 00 00 00 jmp $LN1@index_pair
+$LN17@index_pair:
+
+; 37 : }
+; 38 : if (result == 0) {
+
+ 001f7 83 7d 24 00 cmp DWORD PTR result$[rbp], 0
+ 001fb 75 02 jne SHORT $LN18@index_pair
+
+; 39 : break;
+
+ 001fd eb 0b jmp SHORT $LN8@index_pair
+$LN18@index_pair:
+
+; 40 : }
+; 41 : result >>= 2;
+
+ 001ff 8b 45 24 mov eax, DWORD PTR result$[rbp]
+ 00202 c1 f8 02 sar eax, 2
+ 00205 89 45 24 mov DWORD PTR result$[rbp], eax
+
+; 42 : }
+
+ 00208 eb b7 jmp SHORT $LN7@index_pair
+$LN8@index_pair:
+$LN16@index_pair:
+
+; 43 : }
+; 44 : index += 7;
+
+ 0020a 8b 45 04 mov eax, DWORD PTR index$[rbp]
+ 0020d 83 c0 07 add eax, 7
+ 00210 89 45 04 mov DWORD PTR index$[rbp], eax
+
+; 45 : }
+
+ 00213 e9 a2 fe ff ff jmp $LN2@index_pair
+$LN3@index_pair:
+
+; 46 : for (; (index < size - 1) && (!result); index += 2) {
+
+ 00218 eb 09 jmp SHORT $LN12@index_pair
+$LN10@index_pair:
+ 0021a 8b 45 04 mov eax, DWORD PTR index$[rbp]
+ 0021d 83 c0 02 add eax, 2
+ 00220 89 45 04 mov DWORD PTR index$[rbp], eax
+$LN12@index_pair:
+ 00223 8b 45 44 mov eax, DWORD PTR size$[rbp]
+ 00226 ff c8 dec eax
+ 00228 39 45 04 cmp DWORD PTR index$[rbp], eax
+ 0022b 7d 3d jge SHORT $LN11@index_pair
+ 0022d 83 7d 24 00 cmp DWORD PTR result$[rbp], 0
+ 00231 75 37 jne SHORT $LN11@index_pair
+
+; 47 : result = *(int *)(str + index) == target;
+
+ 00233 48 63 45 04 movsxd rax, DWORD PTR index$[rbp]
+ 00237 48 8b 8d 30 02
+ 00 00 mov rcx, QWORD PTR str$[rbp]
+ 0023e 8b 95 38 02 00
+ 00 mov edx, DWORD PTR target$[rbp]
+ 00244 39 14 41 cmp DWORD PTR [rcx+rax*2], edx
+ 00247 75 0c jne SHORT $LN21@index_pair
+ 00249 c7 85 04 02 00
+ 00 01 00 00 00 mov DWORD PTR tv152[rbp], 1
+ 00253 eb 0a jmp SHORT $LN22@index_pair
+$LN21@index_pair:
+ 00255 c7 85 04 02 00
+ 00 00 00 00 00 mov DWORD PTR tv152[rbp], 0
+$LN22@index_pair:
+ 0025f 8b 85 04 02 00
+ 00 mov eax, DWORD PTR tv152[rbp]
+ 00265 89 45 24 mov DWORD PTR result$[rbp], eax
+
+; 48 : }
+
+ 00268 eb b0 jmp SHORT $LN10@index_pair
+$LN11@index_pair:
+
+; 49 : if (result) {
+
+ 0026a 83 7d 24 00 cmp DWORD PTR result$[rbp], 0
+ 0026e 74 05 je SHORT $LN19@index_pair
+
+; 50 : return index;
+
+ 00270 8b 45 04 mov eax, DWORD PTR index$[rbp]
+ 00273 eb 05 jmp SHORT $LN1@index_pair
+$LN19@index_pair:
+
+; 51 : }
+; 52 : return -1;
+
+ 00275 b8 ff ff ff ff mov eax, -1
+$LN1@index_pair:
+
+; 53 : }
+
+ 0027a 48 8b f8 mov rdi, rax
+ 0027d 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32]
+ 00281 48 8d 15 00 00
+ 00 00 lea rdx, OFFSET FLAT:index_pair_sse$rtcFrameData
+ 00288 e8 00 00 00 00 call _RTC_CheckStackVars
+ 0028d 48 8b c7 mov rax, rdi
+ 00290 48 8b 8d 08 02
+ 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
+ 00297 48 33 cd xor rcx, rbp
+ 0029a e8 00 00 00 00 call __security_check_cookie
+ 0029f 48 8d a5 18 02
+ 00 00 lea rsp, QWORD PTR [rbp+536]
+ 002a6 5f pop rdi
+ 002a7 5d pop rbp
+ 002a8 c3 ret 0
+index_pair_sse ENDP
+_TEXT ENDS
+END
diff --git a/StgSharp.C/x64/Debug/string.obj b/StgSharp.C/x64/Debug/string.obj
new file mode 100644
index 00000000..e234fb65
Binary files /dev/null and b/StgSharp.C/x64/Debug/string.obj differ
diff --git a/StgSharp.C/x64/Debug/string.sbr b/StgSharp.C/x64/Debug/string.sbr
new file mode 100644
index 00000000..5e86d9ad
Binary files /dev/null and b/StgSharp.C/x64/Debug/string.sbr differ
diff --git a/StgSharp.C/x64/Debug/vc143.idb b/StgSharp.C/x64/Debug/vc143.idb
new file mode 100644
index 00000000..69427a33
Binary files /dev/null and b/StgSharp.C/x64/Debug/vc143.idb differ
diff --git a/StgSharp.C/x64/Debug/vc143.pdb b/StgSharp.C/x64/Debug/vc143.pdb
new file mode 100644
index 00000000..f6a7c48f
Binary files /dev/null and b/StgSharp.C/x64/Debug/vc143.pdb differ
diff --git a/StgSharp.C/x64/Debug/vector.cod b/StgSharp.C/x64/Debug/vector.cod
new file mode 100644
index 00000000..a77ca65c
--- /dev/null
+++ b/StgSharp.C/x64/Debug/vector.cod
@@ -0,0 +1,354 @@
+; Listing generated by Microsoft (R) Optimizing Compiler Version 19.41.34120.0
+
+include listing.inc
+
+INCLUDELIB MSVCRTD
+INCLUDELIB OLDNAMES
+
+_DATA SEGMENT
+COMM infolog:BYTE:0200H
+_DATA ENDS
+msvcjmc SEGMENT
+__7583A0D2_mmintrin@h DB 01H
+__DDA0A690_concurrencysal@h DB 01H
+__9ECC08BE_sal@h DB 01H
+__E05D733A_vadefs@h DB 01H
+__6A355E0E_vcruntime@h DB 01H
+__1B0272D9_corecrt@h DB 01H
+__45DED006_corecrt_malloc@h DB 01H
+__FA77ED4C_malloc@h DB 01H
+__EAE0325A_xmmintrin@h DB 01H
+__0ED14FEE_winpackagefamily@h DB 01H
+__F92EF742_winapifamily@h DB 01H
+__22E515EB_sdkddkver@h DB 01H
+__A09A3A7D_excpt@h DB 01H
+__AC8FA393_stdarg@h DB 01H
+__29F49F40_specstrings_undef@h DB 01H
+__D0F42932_specstrings_strict@h DB 01H
+__F00405FD_sdv_driverspecs@h DB 01H
+__173E09CA_driverspecs@h DB 01H
+__9A452361_specstrings@h DB 01H
+__74484FB3_corecrt_wctype@h DB 01H
+__1EC467ED_ctype@h DB 01H
+__98517906_kernelspecs@h DB 01H
+__D3497022_basetsd@h DB 01H
+__61CC25A1_errno@h DB 01H
+__890838BD_vcruntime_string@h DB 01H
+__E4C945B4_corecrt_memcpy_s@h DB 01H
+__8EAFF484_corecrt_memory@h DB 01H
+__6490AEC5_corecrt_wstring@h DB 01H
+__E8295E1E_string@h DB 01H
+__7FCB5136_guiddef@h DB 01H
+__FF8A9E11_pshpack4@h DB 01H
+__D5438902_poppack@h DB 01H
+__FB07E2A3_pshpack2@h DB 01H
+__F6906775_pshpack8@h DB 01H
+__F9415CFA_pshpack1@h DB 01H
+__E58C6F1C_apiset@h DB 01H
+__A5C52262_ktmtypes@h DB 01H
+__FBBA8F9D_winnt@h DB 01H
+__A32D3D2C_minwindef@h DB 01H
+__7D798299_windef@h DB 01H
+__9AE108E9_apisetcconv@h DB 01H
+__9CE53D2C_minwinbase@h DB 01H
+__5D0AA210_apiquery2@h DB 01H
+__4DD4E726_processenv@h DB 01H
+__3575CC96_fileapi@h DB 01H
+__8EA220E6_fileapifromapp@h DB 01H
+__BF9B31FE_debugapi@h DB 01H
+__C3AFE134_utilapiset@h DB 01H
+__76F69E51_handleapi@h DB 01H
+__7E63D784_errhandlingapi@h DB 01H
+__FFA7003C_fibersapi@h DB 01H
+__8971CECF_namedpipeapi@h DB 01H
+__46C9D8A6_profileapi@h DB 01H
+__98D4F0A3_heapapi@h DB 01H
+__50EF2A88_ioapiset@h DB 01H
+__92EA1464_synchapi@h DB 01H
+__A53D8AED_interlockedapi@h DB 01H
+__B506CAAF_processthreadsapi@h DB 01H
+__FF735694_sysinfoapi@h DB 01H
+__29589789_memoryapi@h DB 01H
+__E9C7A663_enclaveapi@h DB 01H
+__D035F9F7_threadpoollegacyapiset@h DB 01H
+__C899130C_threadpoolapiset@h DB 01H
+__E0441EE7_jobapi@h DB 01H
+__CEF86838_jobapi2@h DB 01H
+__35AC6B9A_wow64apiset@h DB 01H
+__C8AE41A5_libloaderapi@h DB 01H
+__CC9E232D_securitybaseapi@h DB 01H
+__C9D0C9B8_namespaceapi@h DB 01H
+__30FF9CAD_systemtopologyapi@h DB 01H
+__4D358795_processtopologyapi@h DB 01H
+__40446D10_securityappcontainer@h DB 01H
+__3A952EDF_realtimeapiset@h DB 01H
+__F4865F4B_winerror@h DB 01H
+__53C1BD93_timezoneapi@h DB 01H
+__1FFBEDBF_winbase@h DB 01H
+__43D3FA34_wingdi@h DB 01H
+__D24A7391_tvout@h DB 01H
+__7713A6C8_winuser@h DB 01H
+__0B345F71_datetimeapi@h DB 01H
+__9AC6960C_winnls@h DB 01H
+__973A40A8_stringapiset@h DB 01H
+__CC46FEE2_wincontypes@h DB 01H
+__97D70BE1_consoleapi@h DB 01H
+__27EC5E18_consoleapi2@h DB 01H
+__262E342F_consoleapi3@h DB 01H
+__641DCD70_wincon@h DB 01H
+__5A96C7A7_verrsrc@h DB 01H
+__B69C6FF2_winver@h DB 01H
+__7AEB8C37_reason@h DB 01H
+__59F1A8A9_winreg@h DB 01H
+__EE0E2B7F_wnnc@h DB 01H
+__DCDB7054_winnetwk@h DB 01H
+__81DDEDE3_stralign@h DB 01H
+__2134D1B4_winsvc@h DB 01H
+__11C07376_mcx@h DB 01H
+__577CE3E7_ime_cmodes@h DB 01H
+__1E72C31E_imm@h DB 01H
+__E15BF856_windows@h DB 01H
+__8FC206A7_ssc_internal@h DB 01H
+__44420885_corecrt_stdio_config@h DB 01H
+__AB601D8D_corecrt_wstdio@h DB 01H
+__C1EC35D3_stdio@h DB 01H
+__13F5961F_stddef@h DB 01H
+__FD6DBD68_corecrt_search@h DB 01H
+__E2E33A61_corecrt_wstdlib@h DB 01H
+__26263363_limits@h DB 01H
+__6E5ACABA_stdlib@h DB 01H
+__9049550C_stb_image@h DB 01H
+__98501D5C_stdint@h DB 01H
+__264E89B8_khrplatform@h DB 01H
+__799FCA13_gl@h DB 01H
+__A57296D0_wgl@h DB 01H
+__417F438F_glfw3@h DB 01H
+__8F82BB96_emmintrin@h DB 01H
+__5023D31F_pmmintrin@h DB 01H
+__E0FAA09D_tmmintrin@h DB 01H
+__C9C1B51E_smmintrin@h DB 01H
+__ACA33CD2_nmmintrin@h DB 01H
+__7918C69C_wmmintrin@h DB 01H
+__B28C8B9B_zmmintrin@h DB 01H
+__85982951_immintrin@h DB 01H
+__19139D6C_assert@h DB 01H
+__0C16F932_StgSharpC@h DB 01H
+__D947C158_vector@c DB 01H
+msvcjmc ENDS
+PUBLIC normalize
+PUBLIC __JustMyCode_Default
+EXTRN _RTC_InitBase:PROC
+EXTRN _RTC_Shutdown:PROC
+EXTRN __CheckForDebuggerJustMyCode:PROC
+; COMDAT pdata
+pdata SEGMENT
+$pdata$normalize DD imagerel $LN3
+ DD imagerel $LN3+379
+ DD imagerel $unwind$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$normalize DD 025051801H
+ DD 01132318H
+ DD 0700c0041H
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\vector.c
+; COMDAT normalize
+_TEXT SEGMENT
+a_length_sq$ = 16
+a_inv_length$ = 64
+dot_product$ = 112
+b_orthogonal$ = 160
+b_length_sq$ = 208
+b_inv_length$ = 256
+source$ = 512
+target$ = 520
+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 08 02
+ 00 00 sub rsp, 520 ; 00000208H
+ 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
+ 00018 48 8d 0d 00 00
+ 00 00 lea rcx, OFFSET FLAT:__D947C158_vector@c
+ 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00024 90 npad 1
+
+; 6 : __m128 a_length_sq = _mm_mul_ps(*source, *source);
+
+ 00025 48 8b 85 00 02
+ 00 00 mov rax, QWORD PTR source$[rbp]
+ 0002c 48 8b 8d 00 02
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00033 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 00036 0f 59 01 mulps xmm0, XMMWORD PTR [rcx]
+ 00039 0f 29 45 10 movaps XMMWORD PTR a_length_sq$[rbp], xmm0
+
+; 7 : a_length_sq = _mm_add_ps(a_length_sq,
+
+ 0003d 0f 28 45 10 movaps xmm0, XMMWORD PTR a_length_sq$[rbp]
+ 00041 0f c6 45 10 b1 shufps xmm0, XMMWORD PTR a_length_sq$[rbp], 177 ; 000000b1H
+ 00046 0f 28 4d 10 movaps xmm1, XMMWORD PTR a_length_sq$[rbp]
+ 0004a 0f 58 c8 addps xmm1, xmm0
+ 0004d 0f 28 c1 movaps xmm0, xmm1
+ 00050 0f 29 45 10 movaps XMMWORD PTR a_length_sq$[rbp], xmm0
+
+; 8 : _mm_shuffle_ps(a_length_sq, a_length_sq, _MM_SHUFFLE(2, 3, 0, 1)));
+; 9 : a_length_sq = _mm_add_ss(a_length_sq,
+
+ 00054 0f 28 45 10 movaps xmm0, XMMWORD PTR a_length_sq$[rbp]
+ 00058 0f c6 45 10 0e shufps xmm0, XMMWORD PTR a_length_sq$[rbp], 14
+ 0005d 0f 28 4d 10 movaps xmm1, XMMWORD PTR a_length_sq$[rbp]
+ 00061 f3 0f 58 c8 addss xmm1, xmm0
+ 00065 0f 29 4d 10 movaps XMMWORD PTR a_length_sq$[rbp], xmm1
+
+; 10 : _mm_shuffle_ps(a_length_sq, a_length_sq, _MM_SHUFFLE(0, 0, 3, 2)));
+; 11 :
+; 12 : __m128 a_inv_length = _mm_rsqrt_ps(a_length_sq);
+
+ 00069 0f 52 45 10 rsqrtps xmm0, XMMWORD PTR a_length_sq$[rbp]
+ 0006d 0f 29 45 40 movaps XMMWORD PTR a_inv_length$[rbp], xmm0
+
+; 13 : *source = _mm_mul_ps(*source, a_inv_length);
+
+ 00071 48 8b 85 00 02
+ 00 00 mov rax, QWORD PTR source$[rbp]
+ 00078 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0007b 0f 59 45 40 mulps xmm0, XMMWORD PTR a_inv_length$[rbp]
+ 0007f 48 8b 85 00 02
+ 00 00 mov rax, QWORD PTR source$[rbp]
+ 00086 0f 11 00 movups XMMWORD PTR [rax], xmm0
+
+; 14 :
+; 15 : __m128 dot_product = _mm_mul_ps(*target, *source);
+
+ 00089 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR target$[rbp]
+ 00090 48 8b 8d 00 02
+ 00 00 mov rcx, QWORD PTR source$[rbp]
+ 00097 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0009a 0f 59 01 mulps xmm0, XMMWORD PTR [rcx]
+ 0009d 0f 29 45 70 movaps XMMWORD PTR dot_product$[rbp], xmm0
+
+; 16 : dot_product = _mm_add_ps(dot_product,
+
+ 000a1 0f 28 45 70 movaps xmm0, XMMWORD PTR dot_product$[rbp]
+ 000a5 0f c6 45 70 b1 shufps xmm0, XMMWORD PTR dot_product$[rbp], 177 ; 000000b1H
+ 000aa 0f 28 4d 70 movaps xmm1, XMMWORD PTR dot_product$[rbp]
+ 000ae 0f 58 c8 addps xmm1, xmm0
+ 000b1 0f 28 c1 movaps xmm0, xmm1
+ 000b4 0f 29 45 70 movaps XMMWORD PTR dot_product$[rbp], xmm0
+
+; 17 : _mm_shuffle_ps(dot_product, dot_product, _MM_SHUFFLE(2, 3, 0, 1)));
+; 18 : dot_product = _mm_add_ss(dot_product,
+
+ 000b8 0f 28 45 70 movaps xmm0, XMMWORD PTR dot_product$[rbp]
+ 000bc 0f c6 45 70 0e shufps xmm0, XMMWORD PTR dot_product$[rbp], 14
+ 000c1 0f 28 4d 70 movaps xmm1, XMMWORD PTR dot_product$[rbp]
+ 000c5 f3 0f 58 c8 addss xmm1, xmm0
+ 000c9 0f 29 4d 70 movaps XMMWORD PTR dot_product$[rbp], xmm1
+
+; 19 : _mm_shuffle_ps(dot_product, dot_product, _MM_SHUFFLE(0, 0, 3, 2)));
+; 20 :
+; 21 : __m128 b_orthogonal = _mm_sub_ps(*target, _mm_mul_ps(*source, dot_product));
+
+ 000cd 48 8b 85 00 02
+ 00 00 mov rax, QWORD PTR source$[rbp]
+ 000d4 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 000d7 0f 59 45 70 mulps xmm0, XMMWORD PTR dot_product$[rbp]
+ 000db 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR target$[rbp]
+ 000e2 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 000e5 0f 5c c8 subps xmm1, xmm0
+ 000e8 0f 28 c1 movaps xmm0, xmm1
+ 000eb 0f 29 85 a0 00
+ 00 00 movaps XMMWORD PTR b_orthogonal$[rbp], xmm0
+
+; 22 :
+; 23 : __m128 b_length_sq = _mm_mul_ps(b_orthogonal, b_orthogonal);
+
+ 000f2 0f 28 85 a0 00
+ 00 00 movaps xmm0, XMMWORD PTR b_orthogonal$[rbp]
+ 000f9 0f 59 85 a0 00
+ 00 00 mulps xmm0, XMMWORD PTR b_orthogonal$[rbp]
+ 00100 0f 29 85 d0 00
+ 00 00 movaps XMMWORD PTR b_length_sq$[rbp], xmm0
+
+; 24 : b_length_sq = _mm_add_ps(b_length_sq,
+
+ 00107 0f 28 85 d0 00
+ 00 00 movaps xmm0, XMMWORD PTR b_length_sq$[rbp]
+ 0010e 0f c6 85 d0 00
+ 00 00 b1 shufps xmm0, XMMWORD PTR b_length_sq$[rbp], 177 ; 000000b1H
+ 00116 0f 28 8d d0 00
+ 00 00 movaps xmm1, XMMWORD PTR b_length_sq$[rbp]
+ 0011d 0f 58 c8 addps xmm1, xmm0
+ 00120 0f 28 c1 movaps xmm0, xmm1
+ 00123 0f 29 85 d0 00
+ 00 00 movaps XMMWORD PTR b_length_sq$[rbp], xmm0
+
+; 25 : _mm_shuffle_ps(b_length_sq, b_length_sq, _MM_SHUFFLE(2, 3, 0, 1)));
+; 26 : b_length_sq = _mm_add_ss(b_length_sq,
+
+ 0012a 0f 28 85 d0 00
+ 00 00 movaps xmm0, XMMWORD PTR b_length_sq$[rbp]
+ 00131 0f c6 85 d0 00
+ 00 00 0e shufps xmm0, XMMWORD PTR b_length_sq$[rbp], 14
+ 00139 0f 28 8d d0 00
+ 00 00 movaps xmm1, XMMWORD PTR b_length_sq$[rbp]
+ 00140 f3 0f 58 c8 addss xmm1, xmm0
+ 00144 0f 29 8d d0 00
+ 00 00 movaps XMMWORD PTR b_length_sq$[rbp], xmm1
+
+; 27 : _mm_shuffle_ps(b_length_sq, b_length_sq, _MM_SHUFFLE(0, 0, 3, 2)));
+; 28 :
+; 29 : __m128 b_inv_length = _mm_rsqrt_ps(b_length_sq);
+
+ 0014b 0f 52 85 d0 00
+ 00 00 rsqrtps xmm0, XMMWORD PTR b_length_sq$[rbp]
+ 00152 0f 29 85 00 01
+ 00 00 movaps XMMWORD PTR b_inv_length$[rbp], xmm0
+
+; 30 : *target = _mm_mul_ps(b_orthogonal, b_inv_length);
+
+ 00159 0f 28 85 a0 00
+ 00 00 movaps xmm0, XMMWORD PTR b_orthogonal$[rbp]
+ 00160 0f 59 85 00 01
+ 00 00 mulps xmm0, XMMWORD PTR b_inv_length$[rbp]
+ 00167 48 8b 85 08 02
+ 00 00 mov rax, QWORD PTR target$[rbp]
+ 0016e 0f 11 00 movups XMMWORD PTR [rax], xmm0
+
+; 31 : }
+
+ 00171 48 8d a5 e8 01
+ 00 00 lea rsp, QWORD PTR [rbp+488]
+ 00178 5f pop rdi
+ 00179 5d pop rbp
+ 0017a c3 ret 0
+normalize ENDP
+_TEXT ENDS
+END
diff --git a/StgSharp.C/x64/Debug/vector.obj b/StgSharp.C/x64/Debug/vector.obj
new file mode 100644
index 00000000..033505ef
Binary files /dev/null and b/StgSharp.C/x64/Debug/vector.obj differ
diff --git a/StgSharp.C/x64/Debug/vector.sbr b/StgSharp.C/x64/Debug/vector.sbr
new file mode 100644
index 00000000..eaa7896e
Binary files /dev/null and b/StgSharp.C/x64/Debug/vector.sbr differ
diff --git a/StgSharp.C/x64/Debug/vector_dot.cod b/StgSharp.C/x64/Debug/vector_dot.cod
new file mode 100644
index 00000000..f39c1b31
--- /dev/null
+++ b/StgSharp.C/x64/Debug/vector_dot.cod
@@ -0,0 +1,1711 @@
+; Listing generated by Microsoft (R) Optimizing Compiler Version 19.41.34120.0
+
+include listing.inc
+
+INCLUDELIB MSVCRTD
+INCLUDELIB OLDNAMES
+
+_DATA SEGMENT
+COMM infolog:BYTE:0200H
+_DATA ENDS
+msvcjmc SEGMENT
+__7583A0D2_mmintrin@h DB 01H
+__DDA0A690_concurrencysal@h DB 01H
+__9ECC08BE_sal@h DB 01H
+__E05D733A_vadefs@h DB 01H
+__6A355E0E_vcruntime@h DB 01H
+__1B0272D9_corecrt@h DB 01H
+__45DED006_corecrt_malloc@h DB 01H
+__FA77ED4C_malloc@h DB 01H
+__EAE0325A_xmmintrin@h DB 01H
+__0ED14FEE_winpackagefamily@h DB 01H
+__F92EF742_winapifamily@h DB 01H
+__22E515EB_sdkddkver@h DB 01H
+__A09A3A7D_excpt@h DB 01H
+__AC8FA393_stdarg@h DB 01H
+__29F49F40_specstrings_undef@h DB 01H
+__D0F42932_specstrings_strict@h DB 01H
+__F00405FD_sdv_driverspecs@h DB 01H
+__173E09CA_driverspecs@h DB 01H
+__9A452361_specstrings@h DB 01H
+__74484FB3_corecrt_wctype@h DB 01H
+__1EC467ED_ctype@h DB 01H
+__98517906_kernelspecs@h DB 01H
+__D3497022_basetsd@h DB 01H
+__61CC25A1_errno@h DB 01H
+__890838BD_vcruntime_string@h DB 01H
+__E4C945B4_corecrt_memcpy_s@h DB 01H
+__8EAFF484_corecrt_memory@h DB 01H
+__6490AEC5_corecrt_wstring@h DB 01H
+__E8295E1E_string@h DB 01H
+__7FCB5136_guiddef@h DB 01H
+__FF8A9E11_pshpack4@h DB 01H
+__D5438902_poppack@h DB 01H
+__FB07E2A3_pshpack2@h DB 01H
+__F6906775_pshpack8@h DB 01H
+__F9415CFA_pshpack1@h DB 01H
+__E58C6F1C_apiset@h DB 01H
+__A5C52262_ktmtypes@h DB 01H
+__FBBA8F9D_winnt@h DB 01H
+__A32D3D2C_minwindef@h DB 01H
+__7D798299_windef@h DB 01H
+__9AE108E9_apisetcconv@h DB 01H
+__9CE53D2C_minwinbase@h DB 01H
+__5D0AA210_apiquery2@h DB 01H
+__4DD4E726_processenv@h DB 01H
+__3575CC96_fileapi@h DB 01H
+__8EA220E6_fileapifromapp@h DB 01H
+__BF9B31FE_debugapi@h DB 01H
+__C3AFE134_utilapiset@h DB 01H
+__76F69E51_handleapi@h DB 01H
+__7E63D784_errhandlingapi@h DB 01H
+__FFA7003C_fibersapi@h DB 01H
+__8971CECF_namedpipeapi@h DB 01H
+__46C9D8A6_profileapi@h DB 01H
+__98D4F0A3_heapapi@h DB 01H
+__50EF2A88_ioapiset@h DB 01H
+__92EA1464_synchapi@h DB 01H
+__A53D8AED_interlockedapi@h DB 01H
+__B506CAAF_processthreadsapi@h DB 01H
+__FF735694_sysinfoapi@h DB 01H
+__29589789_memoryapi@h DB 01H
+__E9C7A663_enclaveapi@h DB 01H
+__D035F9F7_threadpoollegacyapiset@h DB 01H
+__C899130C_threadpoolapiset@h DB 01H
+__E0441EE7_jobapi@h DB 01H
+__CEF86838_jobapi2@h DB 01H
+__35AC6B9A_wow64apiset@h DB 01H
+__C8AE41A5_libloaderapi@h DB 01H
+__CC9E232D_securitybaseapi@h DB 01H
+__C9D0C9B8_namespaceapi@h DB 01H
+__30FF9CAD_systemtopologyapi@h DB 01H
+__4D358795_processtopologyapi@h DB 01H
+__40446D10_securityappcontainer@h DB 01H
+__3A952EDF_realtimeapiset@h DB 01H
+__F4865F4B_winerror@h DB 01H
+__53C1BD93_timezoneapi@h DB 01H
+__1FFBEDBF_winbase@h DB 01H
+__43D3FA34_wingdi@h DB 01H
+__D24A7391_tvout@h DB 01H
+__7713A6C8_winuser@h DB 01H
+__0B345F71_datetimeapi@h DB 01H
+__9AC6960C_winnls@h DB 01H
+__973A40A8_stringapiset@h DB 01H
+__CC46FEE2_wincontypes@h DB 01H
+__97D70BE1_consoleapi@h DB 01H
+__27EC5E18_consoleapi2@h DB 01H
+__262E342F_consoleapi3@h DB 01H
+__641DCD70_wincon@h DB 01H
+__5A96C7A7_verrsrc@h DB 01H
+__B69C6FF2_winver@h DB 01H
+__7AEB8C37_reason@h DB 01H
+__59F1A8A9_winreg@h DB 01H
+__EE0E2B7F_wnnc@h DB 01H
+__DCDB7054_winnetwk@h DB 01H
+__81DDEDE3_stralign@h DB 01H
+__2134D1B4_winsvc@h DB 01H
+__11C07376_mcx@h DB 01H
+__577CE3E7_ime_cmodes@h DB 01H
+__1E72C31E_imm@h DB 01H
+__E15BF856_windows@h DB 01H
+__8FC206A7_ssc_internal@h DB 01H
+__44420885_corecrt_stdio_config@h DB 01H
+__AB601D8D_corecrt_wstdio@h DB 01H
+__C1EC35D3_stdio@h DB 01H
+__13F5961F_stddef@h DB 01H
+__FD6DBD68_corecrt_search@h DB 01H
+__E2E33A61_corecrt_wstdlib@h DB 01H
+__26263363_limits@h DB 01H
+__6E5ACABA_stdlib@h DB 01H
+__9049550C_stb_image@h DB 01H
+__98501D5C_stdint@h DB 01H
+__264E89B8_khrplatform@h DB 01H
+__799FCA13_gl@h DB 01H
+__A57296D0_wgl@h DB 01H
+__417F438F_glfw3@h DB 01H
+__8F82BB96_emmintrin@h DB 01H
+__5023D31F_pmmintrin@h DB 01H
+__E0FAA09D_tmmintrin@h DB 01H
+__C9C1B51E_smmintrin@h DB 01H
+__ACA33CD2_nmmintrin@h DB 01H
+__7918C69C_wmmintrin@h DB 01H
+__B28C8B9B_zmmintrin@h DB 01H
+__85982951_immintrin@h DB 01H
+__19139D6C_assert@h DB 01H
+__0C16F932_StgSharpC@h DB 01H
+__B2F9F159_intrin0@inl@h DB 01H
+__0833F55F_setjmp@h DB 01H
+__3F5BC814_ammintrin@h DB 01H
+__2E054928_intrin@h DB 01H
+__5A8332CE_isa_availability@h DB 01H
+__EB6C2FE1_ssc_intrinsic@h DB 01H
+__43BC74EB_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_31_sse
+PUBLIC dot_41_avx
+PUBLIC dot_31_avx
+PUBLIC dot_32_sse
+PUBLIC dot_32_avx
+PUBLIC dot_42_sse
+PUBLIC dot_42_avx
+PUBLIC dot_43_sse
+PUBLIC dot_43_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_31_sse DD imagerel $LN3
+ DD imagerel $LN3+219
+ DD imagerel $unwind$dot_31_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_31_avx DD imagerel $LN3
+ DD imagerel $LN3+223
+ DD imagerel $unwind$dot_31_avx
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$dot_32_sse DD imagerel $LN3
+ DD imagerel $LN3+512
+ DD imagerel $unwind$dot_32_sse
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$dot_32_avx DD imagerel $LN3
+ DD imagerel $LN3+343
+ DD imagerel $unwind$dot_32_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+394
+ DD imagerel $unwind$dot_42_avx
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$dot_43_sse DD imagerel $LN3
+ DD imagerel $LN3+161
+ DD imagerel $unwind$dot_43_sse
+pdata ENDS
+; COMDAT pdata
+pdata SEGMENT
+$pdata$dot_43_avx DD imagerel $LN3
+ DD imagerel $LN3+537
+ DD imagerel $unwind$dot_43_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_43_avx DD 02d062801H
+ DD 011a231fH
+ DD 070130042H
+ DD 0d0115012H
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$dot_43_sse DD 025051d01H
+ DD 0118231dH
+ DD 07011001dH
+ DD 05010H
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$dot_42_avx DD 02d062801H
+ DD 011a231fH
+ DD 070130032H
+ 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_32_avx DD 02d062801H
+ DD 011a231fH
+ DD 070130032H
+ DD 0d0115012H
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$dot_32_sse DD 025051d01H
+ DD 0118231dH
+ DD 07011001dH
+ DD 05010H
+xdata ENDS
+; COMDAT xdata
+xdata SEGMENT
+$unwind$dot_31_avx DD 02d062801H
+ DD 011a231fH
+ DD 070130032H
+ DD 0d0115012H
+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_31_sse DD 025051d01H
+ DD 0118231dH
+ DD 07011001dH
+ DD 05010H
+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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\vector_dot.c
+; COMDAT dot_43_avx
+_TEXT SEGMENT
+ans_ptr$ = 8
+right_ptr$ = 40
+temp$ = 96
+third$ = 160
+ans_third$ = 224
+transpose$ = 528
+vector$ = 536
+ans$ = 544
+dot_43_avx PROC ; COMDAT
+
+; 125 : {
+
+$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 02
+ 00 00 sub rsp, 528 ; 00000210H
+ 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:__43BC74EB_vector_dot@c
+ 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00034 90 npad 1
+
+; 126 : __3_columnset *ans_ptr = (__3_columnset *)ans, *right_ptr = (__3_columnset *)vector;
+
+ 00035 49 8b 85 20 02
+ 00 00 mov rax, QWORD PTR ans$[r13]
+ 0003c 48 89 45 08 mov QWORD PTR ans_ptr$[rbp], rax
+ 00040 49 8b 85 18 02
+ 00 00 mov rax, QWORD PTR vector$[r13]
+ 00047 48 89 45 28 mov QWORD PTR right_ptr$[rbp], rax
+
+; 127 : __m256 temp = ALIGN256(transpose->half[0]);
+
+ 0004b b8 20 00 00 00 mov eax, 32 ; 00000020H
+ 00050 48 6b c0 00 imul rax, rax, 0
+ 00054 49 8b 8d 10 02
+ 00 00 mov rcx, QWORD PTR transpose$[r13]
+ 0005b 48 03 c8 add rcx, rax
+ 0005e 48 8b c1 mov rax, rcx
+ 00061 c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax]
+ 00065 c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
+
+; 128 : __m256 third = _mm256_set_m128(right_ptr->column[2], right_ptr->column[2]);
+
+ 0006a b8 10 00 00 00 mov eax, 16
+ 0006f 48 6b c0 02 imul rax, rax, 2
+ 00073 b9 10 00 00 00 mov ecx, 16
+ 00078 48 6b c9 02 imul rcx, rcx, 2
+ 0007c 48 8b 55 28 mov rdx, QWORD PTR right_ptr$[rbp]
+ 00080 c5 f8 10 04 0a vmovups xmm0, XMMWORD PTR [rdx+rcx]
+ 00085 48 8b 4d 28 mov rcx, QWORD PTR right_ptr$[rbp]
+ 00089 c4 e3 7d 18 04
+ 01 01 vinsertf128 ymm0, ymm0, XMMWORD PTR [rcx+rax], 1
+ 00090 c5 fc 11 85 a0
+ 00 00 00 vmovups YMMWORD PTR third$[rbp], ymm0
+
+; 129 :
+; 130 : ans_ptr->part = _mm256_dp_ps(temp, right_ptr->part, 0B11110001);
+
+ 00098 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
+ 0009c c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
+ 000a1 c4 e3 7d 40 00
+ f1 vdpps ymm0, ymm0, YMMWORD PTR [rax], 241 ; 000000f1H
+ 000a7 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
+ 000ab c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
+
+; 131 : __m256 ans_third = _mm256_dp_ps(temp, third, 0B11110001);
+
+ 000af c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
+ 000b4 c4 e3 7d 40 85
+ a0 00 00 00 f1 vdpps ymm0, ymm0, YMMWORD PTR third$[rbp], 241 ; 000000f1H
+ 000be c5 fc 11 85 e0
+ 00 00 00 vmovups YMMWORD PTR ans_third$[rbp], ymm0
+
+; 132 : temp = _mm256_permute2f128_ps(temp, temp, 0B00000001);
+
+ 000c6 c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
+ 000cb c4 e3 7d 06 45
+ 60 01 vperm2f128 ymm0, ymm0, YMMWORD PTR temp$[rbp], 1
+ 000d2 c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
+
+; 133 : ans_ptr->part = _mm256_blend_ps(
+
+ 000d7 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
+ 000db c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
+ 000e0 c4 e3 7d 40 00
+ f2 vdpps ymm0, ymm0, YMMWORD PTR [rax], 242 ; 000000f2H
+ 000e6 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
+ 000ea c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax]
+ 000ee c4 e3 75 0c c0
+ 22 vblendps ymm0, ymm1, ymm0, 34 ; 00000022H
+ 000f4 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
+ 000f8 c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
+
+; 134 : ans_ptr->part, _mm256_dp_ps(temp, right_ptr->part, 0B11110010), 0B00100010);
+; 135 :
+; 136 : temp = ALIGN256(transpose->half[1]);
+
+ 000fc b8 20 00 00 00 mov eax, 32 ; 00000020H
+ 00101 48 6b c0 01 imul rax, rax, 1
+ 00105 49 8b 8d 10 02
+ 00 00 mov rcx, QWORD PTR transpose$[r13]
+ 0010c 48 03 c8 add rcx, rax
+ 0010f 48 8b c1 mov rax, rcx
+ 00112 c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax]
+ 00116 c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
+
+; 137 : ans_ptr->part = _mm256_blend_ps(
+
+ 0011b 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
+ 0011f c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
+ 00124 c4 e3 7d 40 00
+ f4 vdpps ymm0, ymm0, YMMWORD PTR [rax], 244 ; 000000f4H
+ 0012a 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
+ 0012e c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax]
+ 00132 c4 e3 75 0c c0
+ 44 vblendps ymm0, ymm1, ymm0, 68 ; 00000044H
+ 00138 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
+ 0013c c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
+
+; 138 : ans_ptr->part, _mm256_dp_ps(temp, right_ptr->part, 0B11110100), 0B01000100);
+; 139 : ans_third = _mm256_blend_ps(ans_third, _mm256_dp_ps(temp, third, 0B11110010), 0B00100010);
+
+ 00140 c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
+ 00145 c4 e3 7d 40 85
+ a0 00 00 00 f2 vdpps ymm0, ymm0, YMMWORD PTR third$[rbp], 242 ; 000000f2H
+ 0014f c5 fc 10 8d e0
+ 00 00 00 vmovups ymm1, YMMWORD PTR ans_third$[rbp]
+ 00157 c4 e3 75 0c c0
+ 22 vblendps ymm0, ymm1, ymm0, 34 ; 00000022H
+ 0015d c5 fc 11 85 e0
+ 00 00 00 vmovups YMMWORD PTR ans_third$[rbp], ymm0
+
+; 140 : temp = _mm256_permute2f128_ps(temp, temp, 0B00000001);
+
+ 00165 c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
+ 0016a c4 e3 7d 06 45
+ 60 01 vperm2f128 ymm0, ymm0, YMMWORD PTR temp$[rbp], 1
+ 00171 c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
+
+; 141 : ans_ptr->part = _mm256_blend_ps(
+
+ 00176 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
+ 0017a c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
+ 0017f c4 e3 7d 40 00
+ f8 vdpps ymm0, ymm0, YMMWORD PTR [rax], 248 ; 000000f8H
+ 00185 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
+ 00189 c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax]
+ 0018d c4 e3 75 0c c0
+ 88 vblendps ymm0, ymm1, ymm0, 136 ; 00000088H
+ 00193 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
+ 00197 c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
+
+; 142 : ans_ptr->part, _mm256_dp_ps(temp, right_ptr->part, 0B11111000), 0B10001000);
+; 143 :
+; 144 : ans[1] = _mm_shuffle_ps(ALIGN(ans[1]), ALIGN(ans[1]), _MM_SHUFFLE(2, 3, 0, 1));
+
+ 0019b b8 10 00 00 00 mov eax, 16
+ 001a0 48 6b c0 01 imul rax, rax, 1
+ 001a4 49 8b 8d 20 02
+ 00 00 mov rcx, QWORD PTR ans$[r13]
+ 001ab 48 03 c8 add rcx, rax
+ 001ae 48 8b c1 mov rax, rcx
+ 001b1 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 001b4 b8 10 00 00 00 mov eax, 16
+ 001b9 48 6b c0 01 imul rax, rax, 1
+ 001bd 49 8b 8d 20 02
+ 00 00 mov rcx, QWORD PTR ans$[r13]
+ 001c4 48 03 c8 add rcx, rax
+ 001c7 48 8b c1 mov rax, rcx
+ 001ca 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 001cd 0f c6 c8 b1 shufps xmm1, xmm0, 177 ; 000000b1H
+ 001d1 0f 28 c1 movaps xmm0, xmm1
+ 001d4 b8 10 00 00 00 mov eax, 16
+ 001d9 48 6b c0 01 imul rax, rax, 1
+ 001dd 49 8b 8d 20 02
+ 00 00 mov rcx, QWORD PTR ans$[r13]
+ 001e4 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 145 : ans[2] = _mm256_castps256_ps128(
+
+ 001e8 c5 fe 6f 05 00
+ 00 00 00 vmovdqu ymm0, YMMWORD PTR avxdot_indices
+ 001f0 c4 e2 7d 16 85
+ e0 00 00 00 vpermps ymm0, ymm0, YMMWORD PTR ans_third$[rbp]
+ 001f9 b8 10 00 00 00 mov eax, 16
+ 001fe 48 6b c0 02 imul rax, rax, 2
+ 00202 49 8b 8d 20 02
+ 00 00 mov rcx, QWORD PTR ans$[r13]
+ 00209 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 146 : _mm256_permutevar8x32_ps(ans_third, _mm256_loadu_epi32(avxdot_indices)));
+; 147 : }
+
+ 0020d 49 8d a5 f0 01
+ 00 00 lea rsp, QWORD PTR [r13+496]
+ 00214 5f pop rdi
+ 00215 5d pop rbp
+ 00216 41 5d pop r13
+ 00218 c3 ret 0
+dot_43_avx ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\vector_dot.c
+; COMDAT dot_43_sse
+_TEXT SEGMENT
+transpose$ = 224
+vector$ = 232
+ans$ = 240
+dot_43_sse PROC ; COMDAT
+
+; 118 : {
+
+$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:__43BC74EB_vector_dot@c
+ 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00029 90 npad 1
+
+; 119 : dot_41_sse(transpose, vector, ans);
+
+ 0002a 4c 8b 85 f0 00
+ 00 00 mov r8, QWORD PTR ans$[rbp]
+ 00031 48 8b 95 e8 00
+ 00 00 mov rdx, QWORD PTR vector$[rbp]
+ 00038 48 8b 8d e0 00
+ 00 00 mov rcx, QWORD PTR transpose$[rbp]
+ 0003f e8 00 00 00 00 call dot_41_sse
+ 00044 90 npad 1
+
+; 120 : dot_41_sse(transpose, vector + 1, ans + 1);
+
+ 00045 48 8b 85 f0 00
+ 00 00 mov rax, QWORD PTR ans$[rbp]
+ 0004c 48 83 c0 10 add rax, 16
+ 00050 48 8b 8d e8 00
+ 00 00 mov rcx, QWORD PTR vector$[rbp]
+ 00057 48 83 c1 10 add rcx, 16
+ 0005b 4c 8b c0 mov r8, rax
+ 0005e 48 8b d1 mov rdx, rcx
+ 00061 48 8b 8d e0 00
+ 00 00 mov rcx, QWORD PTR transpose$[rbp]
+ 00068 e8 00 00 00 00 call dot_41_sse
+ 0006d 90 npad 1
+
+; 121 : dot_41_sse(transpose, vector + 2, ans + 2);
+
+ 0006e 48 8b 85 f0 00
+ 00 00 mov rax, QWORD PTR ans$[rbp]
+ 00075 48 83 c0 20 add rax, 32 ; 00000020H
+ 00079 48 8b 8d e8 00
+ 00 00 mov rcx, QWORD PTR vector$[rbp]
+ 00080 48 83 c1 20 add rcx, 32 ; 00000020H
+ 00084 4c 8b c0 mov r8, rax
+ 00087 48 8b d1 mov rdx, rcx
+ 0008a 48 8b 8d e0 00
+ 00 00 mov rcx, QWORD PTR transpose$[rbp]
+ 00091 e8 00 00 00 00 call dot_41_sse
+ 00096 90 npad 1
+
+; 122 : }
+
+ 00097 48 8d a5 c8 00
+ 00 00 lea rsp, QWORD PTR [rbp+200]
+ 0009e 5f pop rdi
+ 0009f 5d pop rbp
+ 000a0 c3 ret 0
+dot_43_sse ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\vector_dot.c
+; COMDAT dot_42_avx
+_TEXT SEGMENT
+ans_ptr$ = 8
+right_ptr$ = 40
+temp$ = 96
+transpose$ = 400
+vector$ = 408
+ans$ = 416
+dot_42_avx PROC ; COMDAT
+
+; 81 : {
+
+$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:__43BC74EB_vector_dot@c
+ 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00034 90 npad 1
+
+; 82 : __2_columnset *ans_ptr = (__2_columnset *)ans, *right_ptr = (__2_columnset *)vector;
+
+ 00035 49 8b 85 a0 01
+ 00 00 mov rax, QWORD PTR ans$[r13]
+ 0003c 48 89 45 08 mov QWORD PTR ans_ptr$[rbp], rax
+ 00040 49 8b 85 98 01
+ 00 00 mov rax, QWORD PTR vector$[r13]
+ 00047 48 89 45 28 mov QWORD PTR right_ptr$[rbp], rax
+
+; 83 : __m256 temp = ALIGN256(transpose->half[0]);
+
+ 0004b b8 20 00 00 00 mov eax, 32 ; 00000020H
+ 00050 48 6b c0 00 imul rax, rax, 0
+ 00054 49 8b 8d 90 01
+ 00 00 mov rcx, QWORD PTR transpose$[r13]
+ 0005b 48 03 c8 add rcx, rax
+ 0005e 48 8b c1 mov rax, rcx
+ 00061 c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax]
+ 00065 c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
+
+; 84 :
+; 85 : ans_ptr->stream = _mm256_dp_ps(temp, right_ptr->stream, 0B11110001);
+
+ 0006a 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
+ 0006e c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
+ 00073 c4 e3 7d 40 00
+ f1 vdpps ymm0, ymm0, YMMWORD PTR [rax], 241 ; 000000f1H
+ 00079 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
+ 0007d c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
+
+; 86 : temp = _mm256_permute2f128_ps(temp, temp, 0B00000001);
+
+ 00081 c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
+ 00086 c4 e3 7d 06 45
+ 60 01 vperm2f128 ymm0, ymm0, YMMWORD PTR temp$[rbp], 1
+ 0008d c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
+
+; 87 : ans_ptr->stream = _mm256_blend_ps(
+
+ 00092 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
+ 00096 c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
+ 0009b c4 e3 7d 40 00
+ f2 vdpps ymm0, ymm0, YMMWORD PTR [rax], 242 ; 000000f2H
+ 000a1 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
+ 000a5 c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax]
+ 000a9 c4 e3 75 0c c0
+ 22 vblendps ymm0, ymm1, ymm0, 34 ; 00000022H
+ 000af 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
+ 000b3 c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
+
+; 88 : ans_ptr->stream, _mm256_dp_ps(temp, right_ptr->stream, 0B11110010), 0B00100010);
+; 89 :
+; 90 : temp = ALIGN256(transpose->half[1]);
+
+ 000b7 b8 20 00 00 00 mov eax, 32 ; 00000020H
+ 000bc 48 6b c0 01 imul rax, rax, 1
+ 000c0 49 8b 8d 90 01
+ 00 00 mov rcx, QWORD PTR transpose$[r13]
+ 000c7 48 03 c8 add rcx, rax
+ 000ca 48 8b c1 mov rax, rcx
+ 000cd c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax]
+ 000d1 c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
+
+; 91 : ans_ptr->stream = _mm256_blend_ps(
+
+ 000d6 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
+ 000da c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
+ 000df c4 e3 7d 40 00
+ f4 vdpps ymm0, ymm0, YMMWORD PTR [rax], 244 ; 000000f4H
+ 000e5 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
+ 000e9 c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax]
+ 000ed c4 e3 75 0c c0
+ 44 vblendps ymm0, ymm1, ymm0, 68 ; 00000044H
+ 000f3 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
+ 000f7 c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
+
+; 92 : ans_ptr->stream, _mm256_dp_ps(temp, right_ptr->stream, 0B11110100), 0B01000100);
+; 93 : temp = _mm256_permute2f128_ps(temp, temp, 0B00000001);
+
+ 000fb c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
+ 00100 c4 e3 7d 06 45
+ 60 01 vperm2f128 ymm0, ymm0, YMMWORD PTR temp$[rbp], 1
+ 00107 c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
+
+; 94 : ans_ptr->stream = _mm256_blend_ps(
+
+ 0010c 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
+ 00110 c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
+ 00115 c4 e3 7d 40 00
+ f8 vdpps ymm0, ymm0, YMMWORD PTR [rax], 248 ; 000000f8H
+ 0011b 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
+ 0011f c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax]
+ 00123 c4 e3 75 0c c0
+ 88 vblendps ymm0, ymm1, ymm0, 136 ; 00000088H
+ 00129 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
+ 0012d c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
+
+; 95 : ans_ptr->stream, _mm256_dp_ps(temp, right_ptr->stream, 0B11111000), 0B10001000);
+; 96 :
+; 97 : ans[1] = _mm_shuffle_ps(ALIGN(ans[1]), ALIGN(ans[1]), _MM_SHUFFLE(2, 3, 0, 1));
+
+ 00131 b8 10 00 00 00 mov eax, 16
+ 00136 48 6b c0 01 imul rax, rax, 1
+ 0013a 49 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR ans$[r13]
+ 00141 48 03 c8 add rcx, rax
+ 00144 48 8b c1 mov rax, rcx
+ 00147 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 0014a b8 10 00 00 00 mov eax, 16
+ 0014f 48 6b c0 01 imul rax, rax, 1
+ 00153 49 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR ans$[r13]
+ 0015a 48 03 c8 add rcx, rax
+ 0015d 48 8b c1 mov rax, rcx
+ 00160 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00163 0f c6 c8 b1 shufps xmm1, xmm0, 177 ; 000000b1H
+ 00167 0f 28 c1 movaps xmm0, xmm1
+ 0016a b8 10 00 00 00 mov eax, 16
+ 0016f 48 6b c0 01 imul rax, rax, 1
+ 00173 49 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR ans$[r13]
+ 0017a 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 98 : }
+
+ 0017e 49 8d a5 70 01
+ 00 00 lea rsp, QWORD PTR [r13+368]
+ 00185 5f pop rdi
+ 00186 5d pop rbp
+ 00187 41 5d pop r13
+ 00189 c3 ret 0
+dot_42_avx ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\vector_dot.c
+; COMDAT dot_42_sse
+_TEXT SEGMENT
+transpose$ = 224
+vector$ = 232
+ans$ = 240
+dot_42_sse PROC ; COMDAT
+
+; 47 : {
+
+$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:__43BC74EB_vector_dot@c
+ 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00029 90 npad 1
+
+; 48 : ans[0] = _mm_dp_ps(transpose->column[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
+
+; 49 : ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[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
+
+; 50 : SSE_INSERT_SIMPLE(1, 2));
+; 51 : ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[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
+
+; 52 : SSE_INSERT_SIMPLE(1, 3));
+; 53 : ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[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
+
+; 54 : SSE_INSERT_SIMPLE(1, 4));
+; 55 :
+; 56 : ans[1] = _mm_dp_ps(transpose->column[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
+
+; 57 : ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[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
+
+; 58 : SSE_INSERT_SIMPLE(1, 2));
+; 59 : ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[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
+
+; 60 : SSE_INSERT_SIMPLE(1, 3));
+; 61 : ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[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
+
+; 62 : SSE_INSERT_SIMPLE(1, 4));
+; 63 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\vector_dot.c
+; COMDAT dot_32_avx
+_TEXT SEGMENT
+ans_ptr$ = 8
+right_ptr$ = 40
+temp$ = 96
+transpose$ = 400
+vector$ = 408
+ans$ = 416
+dot_32_avx PROC ; COMDAT
+
+; 101 : {
+
+$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:__43BC74EB_vector_dot@c
+ 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00034 90 npad 1
+
+; 102 : __2_columnset *ans_ptr = (__2_columnset *)ans, *right_ptr = (__2_columnset *)vector;
+
+ 00035 49 8b 85 a0 01
+ 00 00 mov rax, QWORD PTR ans$[r13]
+ 0003c 48 89 45 08 mov QWORD PTR ans_ptr$[rbp], rax
+ 00040 49 8b 85 98 01
+ 00 00 mov rax, QWORD PTR vector$[r13]
+ 00047 48 89 45 28 mov QWORD PTR right_ptr$[rbp], rax
+
+; 103 : __m256 temp = transpose->part;
+
+ 0004b 49 8b 85 90 01
+ 00 00 mov rax, QWORD PTR transpose$[r13]
+ 00052 c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax]
+ 00056 c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
+
+; 104 :
+; 105 : ans_ptr->stream = _mm256_dp_ps(temp, right_ptr->stream, 0B11110001);
+
+ 0005b 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
+ 0005f c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
+ 00064 c4 e3 7d 40 00
+ f1 vdpps ymm0, ymm0, YMMWORD PTR [rax], 241 ; 000000f1H
+ 0006a 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
+ 0006e c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
+
+; 106 : temp = _mm256_permute2f128_ps(temp, temp, 0B00000001);
+
+ 00072 c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
+ 00077 c4 e3 7d 06 45
+ 60 01 vperm2f128 ymm0, ymm0, YMMWORD PTR temp$[rbp], 1
+ 0007e c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
+
+; 107 : ans_ptr->stream = _mm256_blend_ps(
+
+ 00083 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
+ 00087 c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
+ 0008c c4 e3 7d 40 00
+ f2 vdpps ymm0, ymm0, YMMWORD PTR [rax], 242 ; 000000f2H
+ 00092 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
+ 00096 c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax]
+ 0009a c4 e3 75 0c c0
+ 22 vblendps ymm0, ymm1, ymm0, 34 ; 00000022H
+ 000a0 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
+ 000a4 c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
+
+; 108 : ans_ptr->stream, _mm256_dp_ps(temp, right_ptr->stream, 0B11110010), 0B00100010);
+; 109 :
+; 110 : temp = _mm256_set_m128(transpose->column[2], transpose->column[2]);
+
+ 000a8 b8 10 00 00 00 mov eax, 16
+ 000ad 48 6b c0 02 imul rax, rax, 2
+ 000b1 b9 10 00 00 00 mov ecx, 16
+ 000b6 48 6b c9 02 imul rcx, rcx, 2
+ 000ba 49 8b 95 90 01
+ 00 00 mov rdx, QWORD PTR transpose$[r13]
+ 000c1 c5 f8 10 04 0a vmovups xmm0, XMMWORD PTR [rdx+rcx]
+ 000c6 49 8b 8d 90 01
+ 00 00 mov rcx, QWORD PTR transpose$[r13]
+ 000cd c4 e3 7d 18 04
+ 01 01 vinsertf128 ymm0, ymm0, XMMWORD PTR [rcx+rax], 1
+ 000d4 c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
+
+; 111 : ans_ptr->stream = _mm256_blend_ps(
+
+ 000d9 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
+ 000dd c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
+ 000e2 c4 e3 7d 40 00
+ f4 vdpps ymm0, ymm0, YMMWORD PTR [rax], 244 ; 000000f4H
+ 000e8 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
+ 000ec c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax]
+ 000f0 c4 e3 75 0c c0
+ 44 vblendps ymm0, ymm1, ymm0, 68 ; 00000044H
+ 000f6 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
+ 000fa c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
+
+; 112 : ans_ptr->stream, _mm256_dp_ps(temp, right_ptr->stream, 0B11110100), 0B01000100);
+; 113 :
+; 114 : ans[1] = _mm_shuffle_ps(ALIGN(ans[1]), ALIGN(ans[1]), _MM_SHUFFLE(2, 2, 0, 1));
+
+ 000fe b8 10 00 00 00 mov eax, 16
+ 00103 48 6b c0 01 imul rax, rax, 1
+ 00107 49 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR ans$[r13]
+ 0010e 48 03 c8 add rcx, rax
+ 00111 48 8b c1 mov rax, rcx
+ 00114 0f 10 00 movups xmm0, XMMWORD PTR [rax]
+ 00117 b8 10 00 00 00 mov eax, 16
+ 0011c 48 6b c0 01 imul rax, rax, 1
+ 00120 49 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR ans$[r13]
+ 00127 48 03 c8 add rcx, rax
+ 0012a 48 8b c1 mov rax, rcx
+ 0012d 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00130 0f c6 c8 a1 shufps xmm1, xmm0, 161 ; 000000a1H
+ 00134 0f 28 c1 movaps xmm0, xmm1
+ 00137 b8 10 00 00 00 mov eax, 16
+ 0013c 48 6b c0 01 imul rax, rax, 1
+ 00140 49 8b 8d a0 01
+ 00 00 mov rcx, QWORD PTR ans$[r13]
+ 00147 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 115 : }
+
+ 0014b 49 8d a5 70 01
+ 00 00 lea rsp, QWORD PTR [r13+368]
+ 00152 5f pop rdi
+ 00153 5d pop rbp
+ 00154 41 5d pop r13
+ 00156 c3 ret 0
+dot_32_avx ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\vector_dot.c
+; COMDAT dot_32_sse
+_TEXT SEGMENT
+transpose$ = 224
+vector$ = 232
+ans$ = 240
+dot_32_sse PROC ; COMDAT
+
+; 66 : {
+
+$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:__43BC74EB_vector_dot@c
+ 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00029 90 npad 1
+
+; 67 : ans[0] = _mm_dp_ps(transpose->column[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
+
+; 68 : ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[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
+
+; 69 : SSE_INSERT_SIMPLE(1, 2));
+; 70 : ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[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
+
+; 71 : SSE_INSERT_SIMPLE(1, 3));
+; 72 :
+; 73 : ans[1] = _mm_dp_ps(transpose->column[0], vector[1], 0B11110001);
+
+ 00110 b8 10 00 00 00 mov eax, 16
+ 00115 48 6b c0 01 imul rax, rax, 1
+ 00119 b9 10 00 00 00 mov ecx, 16
+ 0011e 48 6b c9 00 imul rcx, rcx, 0
+ 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 b8 10 00 00 00 mov eax, 16
+ 00141 48 6b c0 01 imul rax, rax, 1
+ 00145 48 8b 8d f0 00
+ 00 00 mov rcx, QWORD PTR ans$[rbp]
+ 0014c 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
+
+; 74 : ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[1], vector[1], 0B11110001),
+
+ 00150 b8 10 00 00 00 mov eax, 16
+ 00155 48 6b c0 01 imul rax, rax, 1
+ 00159 b9 10 00 00 00 mov ecx, 16
+ 0015e 48 6b c9 01 imul rcx, rcx, 1
+ 00162 48 8b 95 e0 00
+ 00 00 mov rdx, QWORD PTR transpose$[rbp]
+ 00169 4c 8b 85 e8 00
+ 00 00 mov r8, QWORD PTR vector$[rbp]
+ 00170 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx]
+ 00174 66 41 0f 3a 40
+ 04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H
+ 0017c 48 8b 85 f0 00
+ 00 00 mov rax, QWORD PTR ans$[rbp]
+ 00183 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 00186 66 0f 3a 21 c8
+ 10 insertps xmm1, xmm0, 16
+ 0018c 0f 28 c1 movaps xmm0, xmm1
+ 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
+
+; 75 : SSE_INSERT_SIMPLE(1, 2));
+; 76 : ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], 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 02 imul rcx, rcx, 2
+ 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
+ 20 insertps xmm1, xmm0, 32 ; 00000020H
+ 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
+
+; 77 : SSE_INSERT_SIMPLE(1, 3));
+; 78 : }
+
+ 001f6 48 8d a5 c8 00
+ 00 00 lea rsp, QWORD PTR [rbp+200]
+ 001fd 5f pop rdi
+ 001fe 5d pop rbp
+ 001ff c3 ret 0
+dot_32_sse ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\vector_dot.c
+; COMDAT dot_31_avx
+_TEXT SEGMENT
+_double$ = 32
+tmp$ = 96
+transpose$ = 400
+vector$ = 408
+ans$ = 416
+dot_31_avx PROC ; COMDAT
+
+; 37 : {
+
+$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:__43BC74EB_vector_dot@c
+ 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00034 90 npad 1
+
+; 38 : __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
+
+; 39 : __m256 tmp = _mm256_dp_ps(transpose->part, _double, 0B11110001);
+
+ 00066 49 8b 85 90 01
+ 00 00 mov rax, QWORD PTR transpose$[r13]
+ 0006d c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax]
+ 00071 c4 e3 7d 40 45
+ 20 f1 vdpps ymm0, ymm0, YMMWORD PTR _double$[rbp], 241 ; 000000f1H
+ 00078 c5 fc 11 45 60 vmovups YMMWORD PTR tmp$[rbp], ymm0
+
+; 40 : *ans = _mm256_castps256_ps128(
+
+ 0007d c5 fe 6f 05 00
+ 00 00 00 vmovdqu ymm0, YMMWORD PTR avxdot_indices
+ 00085 c4 e2 7d 16 45
+ 60 vpermps ymm0, ymm0, YMMWORD PTR tmp$[rbp]
+ 0008b 49 8b 85 a0 01
+ 00 00 mov rax, QWORD PTR ans$[r13]
+ 00092 0f 11 00 movups XMMWORD PTR [rax], xmm0
+
+; 41 : _mm256_permutevar8x32_ps(tmp, _mm256_loadu_epi32(avxdot_indices)));
+; 42 : *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], *vector, 0B11110001),
+
+ 00095 b8 10 00 00 00 mov eax, 16
+ 0009a 48 6b c0 02 imul rax, rax, 2
+ 0009e 49 8b 8d 90 01
+ 00 00 mov rcx, QWORD PTR transpose$[r13]
+ 000a5 49 8b 95 98 01
+ 00 00 mov rdx, QWORD PTR vector$[r13]
+ 000ac 0f 10 04 01 movups xmm0, XMMWORD PTR [rcx+rax]
+ 000b0 66 0f 3a 40 02
+ f1 dpps xmm0, XMMWORD PTR [rdx], 241 ; 000000f1H
+ 000b6 49 8b 85 a0 01
+ 00 00 mov rax, QWORD PTR ans$[r13]
+ 000bd 0f 10 08 movups xmm1, XMMWORD PTR [rax]
+ 000c0 66 0f 3a 21 c8
+ 20 insertps xmm1, xmm0, 32 ; 00000020H
+ 000c6 0f 28 c1 movaps xmm0, xmm1
+ 000c9 49 8b 85 a0 01
+ 00 00 mov rax, QWORD PTR ans$[r13]
+ 000d0 0f 11 00 movups XMMWORD PTR [rax], xmm0
+
+; 43 : SSE_INSERT_SIMPLE(1, 3));
+; 44 : }
+
+ 000d3 49 8d a5 70 01
+ 00 00 lea rsp, QWORD PTR [r13+368]
+ 000da 5f pop rdi
+ 000db 5d pop rbp
+ 000dc 41 5d pop r13
+ 000de c3 ret 0
+dot_31_avx ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\vector_dot.c
+; COMDAT dot_41_avx
+_TEXT SEGMENT
+_double$ = 32
+tmp$ = 96
+transpose$ = 400
+vector$ = 408
+ans$ = 416
+dot_41_avx PROC ; COMDAT
+
+; 18 : {
+
+$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:__43BC74EB_vector_dot@c
+ 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00034 90 npad 1
+
+; 19 : __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
+
+; 20 : __m256 tmp = _mm256_dp_ps(transpose->half[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
+
+; 21 : tmp = _mm256_blend_ps(tmp, _mm256_dp_ps(transpose->half[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
+
+; 22 : 0B00100010);
+; 23 : *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
+
+; 24 : _mm256_permutevar8x32_ps(tmp, _mm256_loadu_epi32(avxdot_indices)));
+; 25 : }
+
+ 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:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\vector_dot.c
+; COMDAT dot_31_sse
+_TEXT SEGMENT
+transpose$ = 224
+vector$ = 232
+ans$ = 240
+dot_31_sse PROC ; COMDAT
+
+; 28 : {
+
+$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:__43BC74EB_vector_dot@c
+ 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00029 90 npad 1
+
+; 29 : *ans = _mm_dp_ps(transpose->column[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
+
+; 30 : *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[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
+ 10 insertps xmm1, xmm0, 16
+ 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
+
+; 31 : SSE_INSERT_SIMPLE(1, 2));
+; 32 : *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[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
+
+; 33 : SSE_INSERT_SIMPLE(1, 3));
+; 34 : }
+
+ 000d1 48 8d a5 c8 00
+ 00 00 lea rsp, QWORD PTR [rbp+200]
+ 000d8 5f pop rdi
+ 000d9 5d pop rbp
+ 000da c3 ret 0
+dot_31_sse ENDP
+_TEXT ENDS
+; Function compile flags: /Odtp /RTCsu /ZI
+; File D:\NitloadIndustry\Ñо¿ÏîĿ\1-Flagship\TH2020\ProjectFile\ÄںËԴ´úÂë\StgSharp.C\vector_dot.c
+; COMDAT dot_41_sse
+_TEXT SEGMENT
+transpose$ = 224
+vector$ = 232
+ans$ = 240
+dot_41_sse PROC ; COMDAT
+
+; 7 : {
+
+$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:__43BC74EB_vector_dot@c
+ 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
+ 00029 90 npad 1
+
+; 8 : *ans = _mm_dp_ps(transpose->column[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
+
+; 9 : *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[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
+
+; 10 : SSE_INSERT_SIMPLE(1, 1));
+; 11 : *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[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
+
+; 12 : SSE_INSERT_SIMPLE(1, 3));
+; 13 : *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[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
+
+; 14 : SSE_INSERT_SIMPLE(1, 4));
+; 15 : }
+
+ 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/StgSharp.C/x64/Debug/vector_dot.obj b/StgSharp.C/x64/Debug/vector_dot.obj
new file mode 100644
index 00000000..e2bb6b52
Binary files /dev/null and b/StgSharp.C/x64/Debug/vector_dot.obj differ
diff --git a/StgSharp.C/x64/Debug/vector_dot.sbr b/StgSharp.C/x64/Debug/vector_dot.sbr
new file mode 100644
index 00000000..bc6142b4
Binary files /dev/null and b/StgSharp.C/x64/Debug/vector_dot.sbr differ
diff --git a/StgSharp.Common/.nuspec b/StgSharp.Common/.nuspec
new file mode 100644
index 00000000..fbb445e9
--- /dev/null
+++ b/StgSharp.Common/.nuspec
@@ -0,0 +1,17 @@
+
+
+
+ StgSharp
+ 1.0.0
+ Nitload
+ Nitload
+ false
+
+
+
+
+
+
+
+
+
diff --git a/StgSharp.Common/.vs/ProjectEvaluation/stgsharp.metadata.v9.bin b/StgSharp.Common/.vs/ProjectEvaluation/stgsharp.metadata.v9.bin
new file mode 100644
index 00000000..a6c8b397
Binary files /dev/null and b/StgSharp.Common/.vs/ProjectEvaluation/stgsharp.metadata.v9.bin differ
diff --git a/StgSharp.Common/.vs/ProjectEvaluation/stgsharp.projects.v9.bin b/StgSharp.Common/.vs/ProjectEvaluation/stgsharp.projects.v9.bin
new file mode 100644
index 00000000..aa31d652
Binary files /dev/null and b/StgSharp.Common/.vs/ProjectEvaluation/stgsharp.projects.v9.bin differ
diff --git a/StgSharp.Common/.vs/ProjectEvaluation/stgsharp.strings.v9.bin b/StgSharp.Common/.vs/ProjectEvaluation/stgsharp.strings.v9.bin
new file mode 100644
index 00000000..3d6ca935
Binary files /dev/null and b/StgSharp.Common/.vs/ProjectEvaluation/stgsharp.strings.v9.bin differ
diff --git a/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/CodeChunks.db b/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/CodeChunks.db
new file mode 100644
index 00000000..c1bb6030
Binary files /dev/null and b/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/CodeChunks.db differ
diff --git a/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db b/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db
new file mode 100644
index 00000000..e5d4c7bd
Binary files /dev/null and b/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db differ
diff --git a/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-shm b/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-shm
new file mode 100644
index 00000000..be0ea137
Binary files /dev/null and b/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-shm differ
diff --git a/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-wal b/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-wal
new file mode 100644
index 00000000..fabd6f58
Binary files /dev/null and b/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-wal differ
diff --git a/StgSharp.Common/.vs/StgSharp/DesignTimeBuild/.dtbcache.v2 b/StgSharp.Common/.vs/StgSharp/DesignTimeBuild/.dtbcache.v2
new file mode 100644
index 00000000..584637d9
Binary files /dev/null and b/StgSharp.Common/.vs/StgSharp/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/StgSharp.Common/.vs/StgSharp/FileContentIndex/92be5d18-8537-44c7-935e-adcc6dd8469c.vsidx b/StgSharp.Common/.vs/StgSharp/FileContentIndex/92be5d18-8537-44c7-935e-adcc6dd8469c.vsidx
new file mode 100644
index 00000000..2a8d9877
Binary files /dev/null and b/StgSharp.Common/.vs/StgSharp/FileContentIndex/92be5d18-8537-44c7-935e-adcc6dd8469c.vsidx differ
diff --git a/StgSharp.Common/.vs/StgSharp/v17/.futdcache.v2 b/StgSharp.Common/.vs/StgSharp/v17/.futdcache.v2
new file mode 100644
index 00000000..86aed3d4
Binary files /dev/null and b/StgSharp.Common/.vs/StgSharp/v17/.futdcache.v2 differ
diff --git a/StgSharp.Common/.vs/StgSharp/v17/.suo b/StgSharp.Common/.vs/StgSharp/v17/.suo
new file mode 100644
index 00000000..016d83df
Binary files /dev/null and b/StgSharp.Common/.vs/StgSharp/v17/.suo differ
diff --git a/StgSharp.Common/.vs/StgSharp/v17/DocumentLayout.backup.json b/StgSharp.Common/.vs/StgSharp/v17/DocumentLayout.backup.json
new file mode 100644
index 00000000..9d96a1d9
--- /dev/null
+++ b/StgSharp.Common/.vs/StgSharp/v17/DocumentLayout.backup.json
@@ -0,0 +1,12 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\",
+ "Documents": [],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": []
+ }
+ ]
+}
\ No newline at end of file
diff --git a/StgSharp.Common/.vs/StgSharp/v17/DocumentLayout.json b/StgSharp.Common/.vs/StgSharp/v17/DocumentLayout.json
new file mode 100644
index 00000000..9d96a1d9
--- /dev/null
+++ b/StgSharp.Common/.vs/StgSharp/v17/DocumentLayout.json
@@ -0,0 +1,12 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\",
+ "Documents": [],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": []
+ }
+ ]
+}
\ No newline at end of file
diff --git a/StgSharp.Common/Collections/BidirectionalDictionary.cs b/StgSharp.Common/Collections/BidirectionalDictionary.cs
new file mode 100644
index 00000000..afc4e508
--- /dev/null
+++ b/StgSharp.Common/Collections/BidirectionalDictionary.cs
@@ -0,0 +1,207 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="BidirectionalDictionary.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Diagnostics.CodeAnalysis;
+using System.Linq;
+
+namespace StgSharp.Commom.Collections
+{
+ public sealed class BidirectionalDictionary : IBidirectionalDictionary
+ {
+
+ private readonly Dictionary _forward;
+ private readonly Dictionary _reverse;
+
+ public BidirectionalDictionary()
+ {
+ _forward = new Dictionary();
+ _reverse = new Dictionary();
+ }
+
+ public TFirst this[ TSecond key ]
+ {
+ get
+ {
+ if( _reverse.TryGetValue( key, out TFirst value ) ) {
+ return value;
+ }
+ throw new ArgumentException(
+ $"Cannot find key {key!.ToString()} in dictionary." );
+ }
+ set
+ {
+ if( _reverse.TryGetValue( key, out TFirst origin ) ) {
+ _reverse[ key ] = value;
+ _forward.Remove( origin );
+ } else {
+ _reverse.Add( key, value );
+ }
+ _forward.Add( value, key );
+ }
+ }
+
+ public TSecond this[ TFirst key ]
+ {
+ get
+ {
+ if( _forward.TryGetValue( key, out TSecond value ) ) {
+ return value;
+ }
+ throw new ArgumentException(
+ $"Cannot find key {key!.ToString()} in dictionary." );
+ }
+ set
+ {
+ if( _forward.TryGetValue( key, out TSecond origin ) ) {
+ _forward[ key ] = value;
+ _reverse.Remove( origin );
+ } else {
+ _forward.Add( key, value );
+ }
+ _reverse.Add( value, key );
+ }
+ }
+
+ public bool IsReadOnly => false;
+
+ public ICollection FirstIndex => _forward.Keys;
+
+ public ICollection SecondIndex => _reverse.Keys;
+
+ public int Count => _forward.Count;
+
+ public IReadOnlyDictionary Forward => new ReadOnlyDictionary(
+ _forward );
+
+ public IReadOnlyDictionary Reverse => new ReadOnlyDictionary(
+ _reverse );
+
+ public void Add( KeyValuePair item )
+ {
+ if( _forward.ContainsKey( item.Key ) || _reverse.ContainsKey(
+ item.Value ) ) {
+ throw new ArgumentException( "Duplicate key or value." );
+ }
+ _forward.Add( item.Key, item.Value );
+ _reverse.Add( item.Value, item.Key );
+ }
+
+ public void Add( TFirst key, TSecond value )
+ {
+ if( _forward.ContainsKey( key ) || _reverse.ContainsKey( value ) ) {
+ throw new ArgumentException( "Duplicate key or value." );
+ }
+ _forward.Add( key, value );
+ _reverse.Add( value, key );
+ }
+
+ public void Clear()
+ {
+ _forward.Clear();
+ _reverse.Clear();
+ }
+
+ public bool Contains( KeyValuePair item )
+ {
+ return _forward.Contains( item ) && _reverse.TryGetValue(
+ item.Value, out TFirst var ) && var!.Equals( item.Key );
+ }
+
+ public bool Contains( TSecond key )
+ {
+ return _reverse.ContainsKey( key );
+ }
+
+ public bool Contains( TFirst key )
+ {
+ return _forward.ContainsKey( key );
+ }
+
+ public void CopyTo(
+ KeyValuePair[] array,
+ int arrayIndex )
+ {
+ if( array == null ) {
+ throw new ArgumentNullException( nameof( array ) );
+ }
+ if( arrayIndex < 0 || arrayIndex > array.Length ) {
+ throw new ArgumentOutOfRangeException( nameof( arrayIndex ) );
+ }
+ if( array.Length - arrayIndex < _forward.Count ) {
+ throw new ArgumentException(
+ "The array is too small to copy the elements." );
+ }
+
+ foreach( KeyValuePair pair in _forward ) {
+ array[ arrayIndex++ ] = pair;
+ }
+ }
+
+ public IEnumerator> GetEnumerator()
+ {
+ foreach( KeyValuePair pair in _forward ) {
+ yield return pair;
+ }
+ }
+
+ public bool Remove( TFirst key )
+ {
+ throw new NotImplementedException();
+ }
+
+ public bool Remove( KeyValuePair item )
+ {
+ if( _forward.Remove( item.Key ) ) {
+ return _reverse.Remove( item.Value );
+ }
+ return false;
+ }
+
+ public bool TryGetValue( TFirst key, out TSecond value )
+ {
+ return _forward.TryGetValue( key, out value );
+ }
+
+ public bool TryGetValue( TSecond key, out TFirst value )
+ {
+ return _reverse.TryGetValue( key, out value );
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/StgSharp.Common/Collections/CachePool.cs b/StgSharp.Common/Collections/CachePool.cs
new file mode 100644
index 00000000..ce2d4d23
--- /dev/null
+++ b/StgSharp.Common/Collections/CachePool.cs
@@ -0,0 +1,63 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="CachePool.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Graphics.OpenGL;
+
+using System;
+using System.Collections;
+using System.Collections.Concurrent;
+using System.Collections.Generic;
+using System.Text;
+
+namespace StgSharp.Commom.Collections
+{
+ /*
+ public interface IPoolItem
+ {
+
+ public int ID
+ {
+ get;
+ init;
+ }
+
+ }
+
+ public class CacheIndexPool : IEnumerable
+ where TItem: IPoolItem
+ {
+
+ public CacheIndexPool(
+ Func
+ ) { }
+
+ }
+ /**/
+}
diff --git a/StgSharp.Common/Collections/CapacityFixedList.cs b/StgSharp.Common/Collections/CapacityFixedList.cs
new file mode 100644
index 00000000..3fe2e3fa
--- /dev/null
+++ b/StgSharp.Common/Collections/CapacityFixedList.cs
@@ -0,0 +1,178 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="CapacityFixedList.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Text;
+
+namespace StgSharp.Commom.Collections
+{
+ public static class CapacityFixedListBuilder
+ {
+ internal static CapacityFixedList Create(ReadOnlySpan values)
+ {
+ return new CapacityFixedList(values);
+ }
+ }
+
+ [CollectionBuilder(typeof(CapacityFixedListBuilder),nameof(CapacityFixedListBuilder.Create))]
+ public class CapacityFixedList : IList
+ {
+
+ private T[] _values;
+ private int capacity, _index;
+
+ public CapacityFixedList( int size )
+ {
+ _values = new T[size];
+ }
+
+ public CapacityFixedList(ReadOnlySpan values)
+ {
+ _values = values.ToArray();
+ }
+
+ public T this[ int index ]
+ {
+ get => index < _index ?
+ _values[ index ] : throw new ArgumentOutOfRangeException(
+ nameof( index ) );
+ set
+ {
+ if( index < _index ) {
+ _values[ index ] = value;
+ } else {
+ throw new ArgumentOutOfRangeException( nameof( index ) );
+ }
+ }
+ }
+
+ public bool IsReadOnly => false;
+
+ public int Count => _index + 1;
+
+ public void Add( T item )
+ {
+ if( _index < capacity - 1 ) {
+ _index++;
+ this[ _index ] = item;
+ }
+ }
+
+ public void Clear()
+ {
+ _values = new T[capacity];
+ _index = 0;
+ }
+
+ public bool Contains( T item )
+ {
+ for( int i = 0; i <= _index; i++ ) {
+ if( item.Equals( _values[ i ] ) ) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public void CopyTo( T[] array, int arrayIndex )
+ {
+ _values.CopyTo( array, arrayIndex );
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ for( int i = 0; i <= _index; i++ ) {
+ yield return _values[ i ];
+ }
+ }
+
+ public int IndexOf( T item )
+ {
+ T v;
+ for( int i = 0; i <= _index; i++ ) {
+ if( ( v = _values[ i ] ) != null && v.Equals( item ) ) {
+ return i;
+ }
+ }
+ return -1;
+ }
+
+ public bool Remove( T item )
+ {
+ T v;
+ for( int i = 0; i <= _index; i++ ) {
+ if( ( v = _values[ i ] ) != null && v.Equals( item ) ) {
+ _values[ i ] = _values[ _index ];
+ _index--;
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public void RemoveAll( Predicate predicate )
+ {
+ for( int i = _index; i > 0; i-- ) {
+ if( predicate( _values[ i ] ) ) {
+ _values[ i ] = _values[ _index ];
+ _index--;
+ }
+ }
+ }
+
+ public void RemoveAt( int index )
+ {
+ if( index <= _index ) {
+ _values[ index ] = _values[ _index ];
+ _index--;
+ }
+ }
+
+ public void Resize( int newSize )
+ {
+ Array.Resize( ref _values, newSize );
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ yield return GetEnumerator();
+ }
+
+ void IList.Insert( int index, T item )
+ {
+ throw new NotSupportedException();
+ }
+
+ }//------------------------------------- End of Class ------------------------------------------
+}
diff --git a/StgSharp.Common/Collections/IBidrirectionalDictionary.cs b/StgSharp.Common/Collections/IBidrirectionalDictionary.cs
new file mode 100644
index 00000000..fcacda8b
--- /dev/null
+++ b/StgSharp.Common/Collections/IBidrirectionalDictionary.cs
@@ -0,0 +1,100 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="IBidrirectionalDictionary.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the ¡°Software¡±), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED ¡°AS IS¡±,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+
+namespace StgSharp.Commom.Collections
+{
+ public interface IBidirectionalDictionary : IDictionary
+ {
+
+ public TFirst this[ TSecond key ]
+ {
+ get;
+ set;
+ }
+
+ public ICollection FirstIndex
+ {
+ get;
+ }
+
+ public ICollection SecondIndex
+ {
+ get;
+ }
+
+ public IReadOnlyDictionary Forward
+ {
+ get;
+ }
+
+ public IReadOnlyDictionary Reverse
+ {
+ get;
+ }
+
+ ///
+ /// Determines whether the contains
+ /// the specified key.
+ ///
+ /// The value to locate in the .
+ ///
+ /// true if the contains an element
+ /// with the specified key; otherwise, false.
+ ///
+ public bool Contains( TSecond key );
+
+ ///
+ /// Determines whether the contains
+ /// the specified key.
+ ///
+ /// The value to locate in the .
+ ///
+ /// true if the contains an element
+ /// with the specified key; otherwise, false.
+ ///
+ public bool Contains( TFirst key );
+
+ public bool TryGetValue( TSecond key, out TFirst value );
+
+ #pragma warning disable CA1033
+ ICollection IDictionary.Keys => FirstIndex;
+
+ ICollection IDictionary.Values => SecondIndex;
+
+ bool IDictionary.ContainsKey( TFirst key ) => Contains(
+ key );
+#pragma warning restore CA1033
+ }
+}
\ No newline at end of file
diff --git a/StgSharp.Common/Collections/IHashMultiplexer.cs b/StgSharp.Common/Collections/IHashMultiplexer.cs
new file mode 100644
index 00000000..bfc871f5
--- /dev/null
+++ b/StgSharp.Common/Collections/IHashMultiplexer.cs
@@ -0,0 +1,52 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="IHashMultiplexer.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
+
+namespace StgSharp.Collections
+{
+ public interface IHashMultiplexer : IEqualityComparer
+ {
+
+ int RemainedMultiplexCount
+ {
+ get;
+ set;
+ }
+
+ void CacheHash( T obj, int count );
+
+ void ExtendCache( int count );
+
+ int ForceComputeHash( T count );
+
+ }
+}
\ No newline at end of file
diff --git a/StgSharp.Common/Collections/ListSegment.cs b/StgSharp.Common/Collections/ListSegment.cs
new file mode 100644
index 00000000..54fb0c39
--- /dev/null
+++ b/StgSharp.Common/Collections/ListSegment.cs
@@ -0,0 +1,90 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Serialization;
+
+namespace StgSharp.Collections
+{
+ ///
+ /// Part of a collection. This contains a direct reference to origin collection,
+ /// so all change to origin collection will be reflected in this object.
+ ///
+ ///
+ public struct ListSegment : ICollection
+ {
+ private List _collection;
+ private int _begin;
+ private int _length;
+
+
+ public ListSegment(List collection, int begin, int length)
+ {
+ ArgumentNullException.ThrowIfNull(collection);
+ ArgumentOutOfRangeException.ThrowIfLessThan(begin, 0);
+ ArgumentOutOfRangeException.ThrowIfLessThan(length, 0);
+ ArgumentOutOfRangeException.ThrowIfLessThan(begin + length, collection.Count);
+ _collection = collection;
+ _begin = begin;
+ _length = length;
+ }
+
+ public int Count => _length;
+
+ public bool IsReadOnly => true;
+
+ public T this[int indexValue]
+ {
+ get {
+ ArgumentOutOfRangeException.ThrowIfLessThan(indexValue, 0);
+ ArgumentOutOfRangeException.ThrowIfGreaterThanOrEqual(indexValue, _length);
+ return _collection[indexValue + _begin];
+ }
+ }
+
+ void ICollection.Add(T item)
+ {
+ throw new NotSupportedException();
+ }
+
+ void ICollection.Clear()
+ {
+ throw new NotSupportedException();
+ }
+
+ public bool Contains(T item)
+ {
+ var index= _collection.IndexOf(item);
+ return index >= _begin && index < _length + index;
+ }
+
+ public void CopyTo(T[] array, int arrayIndex)
+ {
+ ArgumentNullException.ThrowIfNull(array);
+ var span = CollectionsMarshal.AsSpan(_collection).Slice(_begin, _length);
+ var target = new Span(array, arrayIndex,_length);
+ span.CopyTo(target);
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ for (int i = _begin; i < _length; i++)
+ {
+ yield return this[i];
+ }
+ }
+
+ bool ICollection.Remove(T item)
+ {
+ throw new NotSupportedException();
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+ }
+}
diff --git a/StgSharp.Common/Collections/PartialDictionary.cs b/StgSharp.Common/Collections/PartialDictionary.cs
new file mode 100644
index 00000000..71bd9a39
--- /dev/null
+++ b/StgSharp.Common/Collections/PartialDictionary.cs
@@ -0,0 +1,184 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="PartialDictionary.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
+using System.Linq;
+using System.Net.Http.Headers;
+using System.Text;
+
+namespace StgSharp.Collections
+{
+ public partial class PartialDictionary : IDictionary
+ {
+ private readonly Dictionary _source;
+ private readonly HashSet _keys;
+ private readonly PartialDictionaryValues _values;
+
+ public PartialDictionary(
+ Dictionary source,
+ TKey[] index )
+ {
+ _source = source;
+ _keys = new HashSet( index );
+ foreach( TKey item in _keys ) {
+ if( !_source.ContainsKey( item ) ) {
+ _source.Add( item, default! );
+ }
+ }
+ _values = new PartialDictionaryValues( this );
+ }
+
+ public PartialDictionary(
+ Dictionary source,
+ HashSet keys )
+ {
+ _source = source;
+ _keys = keys;
+ foreach( TKey item in _keys ) {
+ if( !_source.ContainsKey( item ) ) {
+ _source.Add( item, default! );
+ }
+ }
+ _values = new PartialDictionaryValues( this );
+ }
+
+ public PartialDictionary(
+ Dictionary source,
+ TKey[] index, IHashMultiplexer multiplexer
+ )
+ {
+ _source = source;
+ _keys = new HashSet(index);
+ foreach (TKey item in _keys)
+ {
+ if (!_source.ContainsKey(item))
+ {
+ _source.Add(item, default!);
+ }
+ }
+ _values = new PartialDictionaryValues(this);
+ }
+
+ public TValue this[ TKey key ]
+ {
+ get
+ {
+ if( _keys.Contains( key ) ) {
+ return _source[ key ];
+ }
+ throw new KeyNotFoundException();
+ }
+ set
+ {
+ if( _keys.Contains( key ) ) {
+ _source[ key ] = value;
+ }
+ throw new KeyNotFoundException();
+ }
+ }
+
+ public ICollection Keys => _keys;
+
+ public ICollection Values => _values;
+
+ public int Count => _keys.Count;
+
+ public bool Contains( KeyValuePair item )
+ {
+ return _keys.Contains( item.Key ) && _source.Contains( item );
+ }
+
+ public bool ContainsKey( TKey key )
+ {
+ return _keys.Contains( key );
+ }
+
+ public void CopyTo( KeyValuePair[] array, int arrayIndex )
+ {
+ throw new NotImplementedException();
+ }
+
+ public IEnumerator> GetEnumerator()
+ {
+ foreach( TKey item in _keys ) {
+ yield return new KeyValuePair(
+ item, _source[ item ] );
+ }
+ }
+
+ public bool TryGetValue( TKey key, out TValue value )
+ {
+ if( _keys.Contains( key ) ) {
+ value = _source[ key ];
+ return true;
+ }
+ value = default!;
+ return false;
+ }
+
+ void ICollection>.Add(
+ KeyValuePair item )
+ {
+ return;
+ }
+
+ void ICollection>.Clear()
+ {
+ throw new NotSupportedException();
+ }
+
+ bool ICollection>.Remove(
+ KeyValuePair item )
+ {
+ throw new NotSupportedException();
+ }
+
+ bool ICollection>.IsReadOnly => true;
+
+ void IDictionary.Add( TKey key, TValue value )
+ {
+ return;
+ }
+
+ bool IDictionary.Remove( TKey key )
+ {
+ throw new NotSupportedException();
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ }
+}
diff --git a/StgSharp.Common/Collections/PartialDictionaryValues.cs b/StgSharp.Common/Collections/PartialDictionaryValues.cs
new file mode 100644
index 00000000..b70ced59
--- /dev/null
+++ b/StgSharp.Common/Collections/PartialDictionaryValues.cs
@@ -0,0 +1,104 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="PartialDictionaryValues.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+
+namespace StgSharp.Collections
+{
+ public partial class PartialDictionary
+ {
+
+ internal sealed class PartialDictionaryValues : ICollection
+ {
+
+ private readonly PartialDictionary _values;
+
+ public PartialDictionaryValues(
+ PartialDictionary value )
+ {
+ _values = value;
+ }
+
+ public bool IsReadOnly => true;
+
+ public int Count => _values.Count;
+
+ public bool Contains( TValue item )
+ {
+ foreach( KeyValuePair kvp in _values ) {
+ if( kvp.Value != null && kvp.Value.Equals( item ) ) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public void CopyTo( TValue[] array, int arrayIndex )
+ {
+ foreach( KeyValuePair kvp in _values ) {
+ array[ arrayIndex ] = kvp.Value;
+ arrayIndex++;
+ }
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ foreach( TKey key in _values._keys ) {
+ yield return _values._source[ key ];
+ }
+ }
+
+ void ICollection.Add( TValue item )
+ {
+ return;
+ }
+
+ void ICollection.Clear()
+ {
+ return;
+ }
+
+ bool ICollection.Remove( TValue item )
+ {
+ throw new NotSupportedException();
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ }
+
+ }
+}
diff --git a/StgSharp.Common/Collections/StringHashMultiplexer.cs b/StgSharp.Common/Collections/StringHashMultiplexer.cs
new file mode 100644
index 00000000..38bea082
--- /dev/null
+++ b/StgSharp.Common/Collections/StringHashMultiplexer.cs
@@ -0,0 +1,165 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="KeyMultiplexer.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
+using System.Globalization;
+using System.Runtime.CompilerServices;
+using System.Text;
+using System.Threading;
+
+namespace StgSharp.Collections
+{
+ public sealed class StringHashMultiplexer : IHashMultiplexer
+ {
+
+ private int _initCount, _remainedCount, _hashCache, _hashLast;
+ private string _source, _sourceLast;
+
+ public int RemainedMultiplexCount
+ {
+ get => _remainedCount;
+ set => _initCount = value;
+ }
+
+ public void CacheHash( string obj, int count )
+ {
+ _hashCache = ForceComputeHash( obj );
+ _initCount = count;
+ _remainedCount = _initCount;
+ _source = obj;
+ }
+
+ public bool Equals( string x, string y )
+ {
+ return x == y;
+ }
+
+ public void ExtendCache( int count )
+ {
+ _initCount += count;
+ _remainedCount += count;
+ }
+
+ [MethodImpl( MethodImplOptions.AggressiveInlining )]
+ public unsafe int ForceComputeHash( [NotNull] string obj )
+ {
+ int hash;
+ fixed( char* cPtr = obj.AsSpan() ) {
+ hash = InternalIO.Intrinsic
+ .city_hash_simplify( cPtr, obj.Length );
+ }
+ return hash;
+ }
+
+ public int GetHashCode( string obj )
+ {
+ if( _remainedCount > 0 && ReferenceEquals( _source, obj ) ) {
+ _remainedCount--;
+ return _hashCache;
+ }
+ if( ReferenceEquals( _sourceLast, obj ) ) {
+ return _hashLast;
+ }
+ _sourceLast = obj;
+ _hashLast = ForceComputeHash( obj );
+ return _hashLast;
+ }
+
+ }
+
+ public sealed class ConcurrentStringHashMultiplexer : IHashMultiplexer, IDisposable
+ {
+
+ private bool disposedValue;
+ private readonly ThreadLocal _multiplexers =
+ new( () => new StringHashMultiplexer() );
+
+ public int RemainedMultiplexCount
+ {
+ get => _multiplexers.Value.RemainedMultiplexCount;
+ set => _multiplexers.Value.RemainedMultiplexCount = value;
+ }
+
+ public void CacheHash( string obj, int count )
+ {
+ throw new NotImplementedException();
+ }
+
+ // ~ConcurrentStringHashMultiplexer()
+ // {
+ // Dispose(disposing: false);
+ // }
+
+ public void Dispose()
+ {
+ Dispose( disposing: true );
+ GC.SuppressFinalize( this );
+ }
+
+ public bool Equals( string x, string y )
+ {
+ return x == y;
+ }
+
+ public void ExtendCache( int count )
+ {
+ _multiplexers.Value.ExtendCache( count );
+ }
+
+ public unsafe int ForceComputeHash( [NotNull] string obj )
+ {
+ int hash;
+ fixed( char* cPtr = obj.AsSpan() ) {
+ hash = InternalIO.Intrinsic
+ .city_hash_simplify( cPtr, obj.Length );
+ }
+ return hash;
+ }
+
+ public int GetHashCode( string obj )
+ {
+ return _multiplexers.Value.GetHashCode( obj );
+ }
+
+ private void Dispose( bool disposing )
+ {
+ if( !disposedValue ) {
+ if( disposing ) {
+ _multiplexers.Dispose();
+ }
+
+ disposedValue = true;
+ }
+ }
+
+ }
+}
diff --git a/StgSharp.Common/Controlling/Controls/BattleField.cs b/StgSharp.Common/Controlling/Controls/BattleField.cs
new file mode 100644
index 00000000..3f0d2d59
--- /dev/null
+++ b/StgSharp.Common/Controlling/Controls/BattleField.cs
@@ -0,0 +1,72 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="BattleField.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Geometries;
+using StgSharp.Graphics;
+
+using StgSharp.Math;
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+//TODO 这玩意如何加载一个渲染流程以获得各个图元还没搞清楚
+
+namespace StgSharp.Controls
+{
+ public class BattleField : ControllingItem
+ {
+
+ public bool IsEntity => true;
+
+ public ReadOnlySpan TextureBox
+ {
+ get => throw new NotImplementedException();
+ }
+
+ public Rectangle BoundingBox
+ {
+ get;
+ set;
+ }
+
+ public Vec2 Position
+ {
+ get;
+ set;
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ throw new NotImplementedException();
+ }
+
+ }
+}
diff --git a/StgSharp.Common/Controlling/Controls/ButtonGroup.cs b/StgSharp.Common/Controlling/Controls/ButtonGroup.cs
new file mode 100644
index 00000000..a02a98d8
--- /dev/null
+++ b/StgSharp.Common/Controlling/Controls/ButtonGroup.cs
@@ -0,0 +1,159 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="ButtonGroup.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Geometries;
+using StgSharp.Graphics;
+using StgSharp.Math;
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Security.Cryptography.X509Certificates;
+using System.Text;
+using System.Transactions;
+
+namespace StgSharp.Controls
+{
+ public abstract class KeyboardButtonGroup : ControllingItem
+ {
+
+ private List buttonList;
+ private TriggerButton current;
+
+ public KeyboardButtonGroup()
+ {
+ buttonList = new List();
+ }
+
+ public bool IsEntity
+ {
+ get => false;
+ }
+
+ public ReadOnlySpan TextureBox
+ {
+ get => throw new NotSupportedException();
+ }
+
+ public Rectangle BoundingBox
+ {
+ get;
+ set;
+ }
+
+ public TriggerButton CurrentButton
+ {
+ get => current;
+ }
+
+ public Vec2 Position
+ {
+ get;
+ set;
+ }
+
+ protected List AllButton
+ {
+ get => buttonList;
+ }
+
+ public void AddButton( TriggerButton button )
+ {
+ buttonList.Add( button );
+ }
+
+ public abstract void Confirm();
+
+ public IEnumerator GetEnumerator()
+ {
+ foreach( TriggerButton item in buttonList ) {
+ yield return item.Single();
+ }
+ }
+
+ public void MoveDown()
+ {
+ TriggerButton button = current;
+ while( ( button.Down != null ) && button.Down.IsDisabled ) {
+ button = button.Right;
+ }
+ if( current == button ) {
+ return;
+ }
+ current.DeHighlight();
+ button.Enable();
+ current = button;
+ }
+
+ public void MoveLeft()
+ {
+ TriggerButton button = current;
+ while( ( button.Left != null ) && button.Left.IsDisabled ) {
+ button = button.Left;
+ }
+ if( current == button ) {
+ return;
+ }
+ current.DeHighlight();
+ button.Enable();
+ current = button;
+ }
+
+ public void MoveRight()
+ {
+ TriggerButton button = current;
+ while( ( button.Right != null ) && button.Right.IsDisabled ) {
+ button = button.Right;
+ }
+ if( current == button ) {
+ return;
+ }
+ current.DeHighlight();
+ button.Enable();
+ current = button;
+ }
+
+ public void MoveUp()
+ {
+ TriggerButton button = current;
+ while( ( button.Up != null ) && button.Up.IsDisabled ) {
+ button = button.Right;
+ }
+ if( current == button ) {
+ return;
+ }
+ current.DeHighlight();
+ button.Enable();
+ current = button;
+ }
+
+ }
+}
diff --git a/StgSharp.Common/Controlling/Controls/CharacterIndexImage.cs b/StgSharp.Common/Controlling/Controls/CharacterIndexImage.cs
new file mode 100644
index 00000000..326b01b0
--- /dev/null
+++ b/StgSharp.Common/Controlling/Controls/CharacterIndexImage.cs
@@ -0,0 +1,111 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="CharacterIndexImage.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Geometries;
+using StgSharp.Graphics;
+using StgSharp.Math;
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Diagnostics.Contracts;
+using System.Linq;
+using System.Text;
+
+namespace StgSharp.Controls
+{
+ public class CharacterLineIndexImage : ControllingItem
+ {
+
+ private char[] displayIndex;
+ private char defaultChar;
+
+ private Dictionary texIndex;
+ private int length;
+ private PlainGeometryMesh _tittleMesh;
+
+ public CharacterLineIndexImage(
+ int length,
+ char defaultChar,
+ PlainGeometryMesh tittleMesh,
+ IEnumerable<(char, PlainGeometryMesh)> indexEnumeration )
+ {
+ this.length = length;
+ displayIndex = new char[length];
+ _tittleMesh = tittleMesh;
+ texIndex = indexEnumeration.ToDictionary(
+ item => item.Item1, item => item.Item2 );
+ }
+
+ public bool IsEntity
+ {
+ get => true;
+ }
+
+ public ReadOnlySpan TextureBox
+ {
+ get => throw new NotSupportedException();
+ }
+
+ public Rectangle BoundingBox
+ {
+ get => throw new NotImplementedException();
+ set => throw new NotImplementedException();
+ }
+
+ public Vec2 Position
+ {
+ get => throw new NotImplementedException();
+ set => throw new NotImplementedException();
+ }
+
+ public void Display( string message )
+ {
+ if( string.IsNullOrEmpty( message ) ) {
+ message = string.Empty;
+ }
+
+ string result = ( message.Length >= length ) ?
+ message.Substring( message.Length - displayIndex.Length ) : message.PadLeft(
+ length, defaultChar );
+
+ displayIndex = result.ToCharArray();
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ yield return _tittleMesh;
+ foreach( char item in displayIndex ) {
+ yield return texIndex[ item ];
+ }
+ }
+
+ }
+}
diff --git a/StgSharp.Common/Controlling/Controls/ControllingIntem.cs b/StgSharp.Common/Controlling/Controls/ControllingIntem.cs
new file mode 100644
index 00000000..32c7b151
--- /dev/null
+++ b/StgSharp.Common/Controlling/Controls/ControllingIntem.cs
@@ -0,0 +1,73 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="ControllingIntem.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Geometries;
+using StgSharp.Graphics;
+using StgSharp.Math;
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+
+namespace StgSharp.Controls
+{
+ public interface ControllingItem : IEnumerable
+ {
+
+ public abstract bool IsEntity
+ {
+ get;
+ }
+
+ public abstract ReadOnlySpan TextureBox
+ {
+ get;
+ }
+
+ public abstract Rectangle BoundingBox
+ {
+ get;
+ set;
+ }
+
+ public abstract Vec2 Position
+ {
+ get;
+ set;
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ }
+}
diff --git a/StgSharp.Common/Controlling/Controls/DecorationBox.cs b/StgSharp.Common/Controlling/Controls/DecorationBox.cs
new file mode 100644
index 00000000..b9c906d2
--- /dev/null
+++ b/StgSharp.Common/Controlling/Controls/DecorationBox.cs
@@ -0,0 +1,78 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="DecorationBox.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Controls;
+using StgSharp.Geometries;
+using StgSharp.Graphics;
+using StgSharp.Math;
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace StgSharp.Controls
+{
+ public class DecorationBox : ControllingItem
+ {
+
+ private PlainGeometryMesh renderMesh;
+
+ public DecorationBox( Rectangle bound, Image texture, Vec2[] texCoord )
+ {
+ renderMesh = new PlainGeometryMesh(
+ BoundingBox, new TextureProvider( texture, texCoord ) );
+ }
+
+ public bool IsEntity => true;
+
+ public ReadOnlySpan TextureBox
+ {
+ get => renderMesh.TextureCoord;
+ }
+
+ public Rectangle BoundingBox
+ {
+ get;
+ set;
+ }
+
+ public Vec2 Position
+ {
+ get;
+ set;
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ yield return renderMesh;
+ }
+
+ }
+}
diff --git a/StgSharp.Common/Controlling/Controls/MarkingLable.cs b/StgSharp.Common/Controlling/Controls/MarkingLable.cs
new file mode 100644
index 00000000..b334e9e3
--- /dev/null
+++ b/StgSharp.Common/Controlling/Controls/MarkingLable.cs
@@ -0,0 +1,96 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="MarkingLable.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Controls;
+using StgSharp.Geometries;
+using StgSharp.Graphics;
+using StgSharp.Math;
+using StgSharp.Timing;
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Text;
+
+namespace StgSharp.Controls
+{
+ public class MarkingLabel : ControllingItem
+ {
+
+ private PlainGeometryMesh marker;
+
+ private TimeFunction _movement;
+
+ private Vec2 _currentPosition, _movementVec;
+
+ public MarkingLabel( PlainGeometryMesh marker, TimeFunction movement )
+ {
+ this.marker = marker;
+ _movement = movement;
+ }
+
+ public bool IsEntity => true;
+
+ public ReadOnlySpan TextureBox
+ {
+ get => marker.TextureCoord;
+ }
+
+ public Rectangle BoundingBox
+ {
+ get;
+ set;
+ }
+
+ public Vec2 Position
+ {
+ get;
+ set;
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ yield return marker;
+ }
+
+ public void Move( Vec2 movement )
+ {
+ if( !_movement.IsComplete ) {
+ Position = _currentPosition + ( _movement.Calculate() * _movementVec );
+ }
+ }
+
+ public void MoveTo( Vec2 target )
+ {
+ Move( target - Position );
+ }
+
+ }
+}
diff --git a/StgSharp.Common/Controlling/Controls/TriggerButton.cs b/StgSharp.Common/Controlling/Controls/TriggerButton.cs
new file mode 100644
index 00000000..b135005f
--- /dev/null
+++ b/StgSharp.Common/Controlling/Controls/TriggerButton.cs
@@ -0,0 +1,248 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="TriggerButton.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Controls;
+using StgSharp.Geometries;
+using StgSharp.Graphics;
+using StgSharp.Math;
+
+using System;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using System.Text;
+
+namespace StgSharp.Controls
+{
+ public delegate void RenderButtonTextureCallback(
+ ButtonStatus status,
+ float beginTime,
+ in TextureProvider texture );
+
+ public enum ButtonStatus
+ {
+
+ Error = 0b0,
+ Disable = 0b1,
+ Enable = 0b10,
+ Highlight = 0b100,
+ Confirm = 0b1000,
+
+ DisableToEnable = Disable | Enable,
+ EnableToDisable = -( Enable | DisableToEnable ),
+
+ EnableToHighlight = Enable | Highlight,
+ HighlightToEnable = -( Enable | Highlight ),
+
+ HighlightToDisable = -( Highlight | Disable ),
+
+ }
+
+ public class TriggerButton : ControllingItem
+ {
+
+ private Action? confirmCallback;
+ private Action? disableCallback;
+
+ #nullable enable
+ private Action? enableCallback;
+ private float _statusBeginTime;
+
+ private RenderButtonTextureCallback _renderButton;
+ private TextureProvider _texture;
+
+ #nullable restore
+
+ public TriggerButton()
+ {
+ CurrentStatus = ButtonStatus.Disable;
+ }
+
+ public event Action ConfirmEvent
+ {
+ add { confirmCallback += value; }
+ remove { confirmCallback -= value; }
+ }
+
+ public event Action DisableEvent
+ {
+ add { disableCallback += value; }
+ remove { disableCallback -= value; }
+ }
+
+ public event Action EnableEvent
+ {
+ add { enableCallback += value; }
+ remove { enableCallback -= value; }
+ }
+
+ public event RenderButtonTextureCallback RenderButtonTexture
+ {
+ add
+ {
+ if( _renderButton == null ) {
+ _renderButton = value;
+ } else {
+ _renderButton += value;
+ }
+ }
+ remove
+ {
+ if( _renderButton != null ) {
+ _renderButton -= value;
+ }
+ }
+ }
+
+ public bool IsHighLighted
+ {
+ get;
+ internal set;
+ }
+
+ public bool IsDisabled
+ {
+ get;
+ internal set;
+ }
+
+ public bool IsEntity => true;
+
+ public ReadOnlySpan TextureBox
+ {
+ get => MemoryMarshal.Cast( _texture.TextureCoordinate );
+ }
+
+ public Rectangle BoundingBox
+ {
+ get;
+ set;
+ }
+
+ public TriggerButton Left
+ {
+ get;
+ internal set;
+ }
+
+ public TriggerButton Right
+ {
+ get;
+ internal set;
+ }
+
+ public TriggerButton Up
+ {
+ get;
+ internal set;
+ }
+
+ public TriggerButton Down
+ {
+ get;
+ internal set;
+ }
+
+ public Vec2 Position
+ {
+ get;
+ set;
+ }
+
+ internal TextureProvider Texture
+ {
+ get => _texture;
+ set => _texture = value;
+ }
+
+ protected ButtonStatus CurrentStatus
+ {
+ get;
+ set;
+ }
+
+ public void DeHighlight()
+ {
+ if( CurrentStatus == ButtonStatus.Highlight ) {
+ CurrentStatus = ButtonStatus.HighlightToEnable;
+ }
+ }
+
+ public void Disable()
+ {
+ CurrentStatus = CurrentStatus switch
+ {
+ ButtonStatus.Enable => ButtonStatus.EnableToDisable,
+ ButtonStatus.Highlight => ButtonStatus.HighlightToDisable,
+ _ => CurrentStatus,
+ };
+ if( disableCallback != null ) {
+ disableCallback();
+ }
+ }
+
+ public void Enable()
+ {
+ if( CurrentStatus == ButtonStatus.Disable ) {
+ CurrentStatus = ButtonStatus.DisableToEnable;
+ } else {
+ return;
+ }
+ if( enableCallback != null ) {
+ enableCallback();
+ }
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ _renderButton( CurrentStatus, _statusBeginTime, in _texture );
+ yield return new PlainGeometryMesh( this.BoundingBox, _texture );
+ }
+
+ public void Highlight()
+ {
+ if( CurrentStatus == ButtonStatus.Enable ) {
+ CurrentStatus |= ButtonStatus.EnableToHighlight;
+ } else {
+ return;
+ }
+ if( confirmCallback != null ) {
+ confirmCallback();
+ }
+ }
+
+ internal void Init( ButtonStatus status )
+ {
+ if( CurrentStatus == ButtonStatus.Error ) {
+ CurrentStatus = status;
+ }
+ }
+
+ }//----------------------------------- End of class --------------------------------------------
+}
diff --git a/StgSharp.Common/Controlling/KeyEnum.cs b/StgSharp.Common/Controlling/KeyEnum.cs
new file mode 100644
index 00000000..24f75d92
--- /dev/null
+++ b/StgSharp.Common/Controlling/KeyEnum.cs
@@ -0,0 +1,238 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="KeyEnum.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Graphics;
+using StgSharp.Graphics.OpenGL;
+using StgSharp.Internal.OpenGL;
+
+using System;
+
+namespace StgSharp
+{
+ public enum KeyboardKey : int
+ {
+
+ UNKNOWN = -1,
+ None = 0,
+ Space = 32,
+ Apostrophe = 39/*'*/,
+ Comma = 44/*,*/,
+ Minus = 45/*-*/,
+ Period = 46/*.*/,
+ Slash = 47/*/*/,
+ Zero = 48,
+ One = 49,
+ Two = 50,
+ Three = 51,
+ Four = 52,
+ Five = 53,
+ Six = 54,
+ Seven = 55,
+ Eight = 56,
+ Nine = 57,
+ Semicolon = 59/*,*/,
+ Equal = 61/*=*/,
+ A = 65,
+ B = 66,
+ C = 67,
+ D = 68,
+ E = 69,
+ F = 70,
+ G = 71,
+ H = 72,
+ I = 73,
+ J = 74,
+ K = 75,
+ L = 76,
+ M = 77,
+ N = 78,
+ O = 79,
+ P = 80,
+ Q = 81,
+ R = 82,
+ S = 83,
+ T = 84,
+ U = 85,
+ V = 86,
+ W = 87,
+ X = 88,
+ Y = 89,
+ Z = 90,
+ LeftBracket = 91/*[*/,
+ BACKSLASH = 92/*\*/,
+ RightBracket = 93/*]*/,
+ GraveAccent = 96/*`*/,
+ World1 = 161/*non-US#1*/,
+ World2 = 162/*non-US#2*/,
+ Esc = 256,
+ Enter = 257,
+ Tab = 258,
+ Backspace = 259,
+ Insert = 260,
+ Delete = 261,
+ Right = 262,
+ Left = 263,
+ Down = 264,
+ Up = 265,
+ PgUp = 266,
+ PgDown = 267,
+ Home = 268,
+ End = 269,
+ CapsLock = 280,
+ ScrollLock = 281,
+ NumLock = 282,
+ PrintScreen = 283,
+ Pause = 284,
+ F1 = 290,
+ F2 = 291,
+ F3 = 292,
+ F4 = 293,
+ F5 = 294,
+ F6 = 295,
+ F7 = 296,
+ F8 = 297,
+ F9 = 298,
+ F10 = 299,
+ F11 = 300,
+ F12 = 301,
+ F13 = 302,
+ F14 = 303,
+ F15 = 304,
+ F16 = 305,
+ F17 = 306,
+ F18 = 307,
+ F19 = 308,
+ F20 = 309,
+ F21 = 310,
+ F22 = 311,
+ F23 = 312,
+ F24 = 313,
+ F25 = 314,
+ NumPad0 = 320,
+ NumPad1 = 321,
+ NumPad2 = 322,
+ NumPad3 = 323,
+ NumPad4 = 324,
+ NumPad5 = 325,
+ NumPad6 = 326,
+ NumPad7 = 327,
+ NumPad8 = 328,
+ NumPad9 = 329,
+ NumPadDec = 330,
+ NumPadDiv = 331,
+ NumPadMul = 332,
+ NumPadSub = 333,
+ NumPadAdd = 334,
+ NumPadAnter = 335,
+ NumPadEqual = 336,
+ LeftShift = 340,
+ LeftControl = 341,
+ LeftAlt = 342,
+ LeftSuper = 343,
+ RightShift = 344,
+ RightControl = 345,
+ RightAlt = 346,
+ RightSuper = 347,
+ Menu = 348,
+ First = Space,
+ Last = Menu,
+
+ }
+
+ #pragma warning disable CA1707
+ #pragma warning disable CA1712
+ #pragma warning disable CA1008
+ #pragma warning disable CA1027
+ public enum Joystick : int
+ #pragma warning restore CA1027
+ {
+
+ Joystick_1 = glConst.GLFW_JOYSTICK_1,
+ Joystick_2 = glConst.GLFW_JOYSTICK_2,
+ Joystick_3 = glConst.GLFW_JOYSTICK_3,
+ Joystick_4 = glConst.GLFW_JOYSTICK_4,
+ Joystick_5 = glConst.GLFW_JOYSTICK_5,
+ Joystick_6 = glConst.GLFW_JOYSTICK_6,
+ Joystick_7 = glConst.GLFW_JOYSTICK_7,
+ Joystick_8 = glConst.GLFW_JOYSTICK_8,
+ Joystick_9 = glConst.GLFW_JOYSTICK_9,
+ Joystick_10 = glConst.GLFW_JOYSTICK_10,
+ Joystick_11 = glConst.GLFW_JOYSTICK_11,
+ Joystick_12 = glConst.GLFW_JOYSTICK_12,
+ Joystick_13 = glConst.GLFW_JOYSTICK_13,
+ Joystick_14 = glConst.GLFW_JOYSTICK_14,
+ Joystick_15 = glConst.GLFW_JOYSTICK_15,
+ Joystick_16 = glConst.GLFW_JOYSTICK_16,
+ First = Joystick_1,
+ Last = Joystick_16
+
+ }
+
+ [System.Flags]
+ public enum Mouse : int
+ {
+
+ Button1 = 0,
+ Button2 = 1,
+ Button3 = 2,
+ Button4 = 3,
+ Button5 = 4,
+ Button6 = 5,
+ Button7 = 6,
+ Button8 = 7,
+ First = Button1,
+ Last = Button8,
+ Left = Button1,
+ Right = Button2,
+ Middle = Button3
+
+ }
+
+ #pragma warning restore CA1707
+ #pragma warning restore CA1712
+ #pragma warning restore CA7008
+
+ internal enum InputEquipment
+ {
+
+ Keyboard,
+ Mouse,
+ Joystick
+
+ }
+
+ public enum KeyStatus : int
+ {
+
+ RELEASE = 0,
+ PRESS = 1
+
+ }
+}
diff --git a/StgSharp.Common/Controlling/KeyEventAttribute.cs b/StgSharp.Common/Controlling/KeyEventAttribute.cs
new file mode 100644
index 00000000..d56ee7b1
--- /dev/null
+++ b/StgSharp.Common/Controlling/KeyEventAttribute.cs
@@ -0,0 +1,69 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="KeyEventAttribute.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace StgSharp
+{
+ [AttributeUsage( AttributeTargets.Method )]
+ public class KeyEventAttribute : Attribute
+ {
+
+ internal int _equipment;
+ internal int _keyStat;
+ internal int _keyTarget;
+
+ public KeyEventAttribute( KeyboardKey key, KeyStatus status )
+ {
+ _equipment = ( int )InputEquipment.Keyboard;
+ _keyTarget = ( int )key;
+ _keyStat = ( int )status;
+ }
+
+ public KeyEventAttribute( Joystick joystick, KeyStatus status )
+ {
+ _equipment = ( int )InputEquipment.Keyboard;
+ _keyTarget = ( int )joystick;
+ _keyStat = ( int )status;
+ }
+
+ public KeyEventAttribute( Mouse mouse, KeyStatus status )
+ {
+ _equipment = ( int )InputEquipment.Keyboard;
+ _keyTarget = ( int )mouse;
+ _keyStat = ( int )status;
+ }
+
+ }
+}
diff --git a/StgSharp.Common/Controlling/UsrActivity/IClickTrigger.cs b/StgSharp.Common/Controlling/UsrActivity/IClickTrigger.cs
new file mode 100644
index 00000000..327b8a32
--- /dev/null
+++ b/StgSharp.Common/Controlling/UsrActivity/IClickTrigger.cs
@@ -0,0 +1,51 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="IClickTrigger.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace StgSharp.Controlling.UsrActivity
+{
+ public interface IClickTrigger
+ {
+
+ public int TargetKeyOrButtonID
+ {
+ get;
+ }
+
+ public KeyStatus TriggeredStatus
+ {
+ get;
+ }
+
+ }
+}
diff --git a/StgSharp.Common/Controlling/UsrActivity/JoystickTrigger.cs b/StgSharp.Common/Controlling/UsrActivity/JoystickTrigger.cs
new file mode 100644
index 00000000..a8d76f10
--- /dev/null
+++ b/StgSharp.Common/Controlling/UsrActivity/JoystickTrigger.cs
@@ -0,0 +1,93 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="JoystickTrigger.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace StgSharp.Controlling.UsrActivity
+{
+ public readonly struct JoystickTrigger : IClickTrigger, IEquatable
+ {
+
+ private readonly Joystick _stick;
+ private readonly KeyStatus _status;
+
+ public JoystickTrigger( Joystick targetKey, KeyStatus status )
+ {
+ this._stick = targetKey;
+ _status = status;
+ }
+
+ public int TargetKeyOrButtonID => ( int )_stick;
+
+ public Joystick Stick
+ {
+ get => _stick;
+ }
+
+ public KeyStatus TriggeredStatus => _status;
+
+ public override bool Equals( object obj )
+ {
+ return base.Equals( obj );
+ }
+
+ public override int GetHashCode()
+ {
+ return ( ( int )_stick ) + ( 17 * ( ( int )_status ) );
+ }
+
+ public override string ToString()
+ {
+ return $"Key {_stick} triggered when {_status}";
+ }
+
+ public static bool operator !=(
+ JoystickTrigger left,
+ JoystickTrigger right )
+ {
+ return !( left == right );
+ }
+
+ public static bool operator ==(
+ JoystickTrigger left,
+ JoystickTrigger right )
+ {
+ return ( left._status == right._status ) && ( left._stick == right._stick );
+ }
+
+ bool IEquatable.Equals( JoystickTrigger other )
+ {
+ return other == this;
+ }
+
+ }
+}
diff --git a/StgSharp.Common/Controlling/UsrActivity/KeyTrigger.cs b/StgSharp.Common/Controlling/UsrActivity/KeyTrigger.cs
new file mode 100644
index 00000000..3988d883
--- /dev/null
+++ b/StgSharp.Common/Controlling/UsrActivity/KeyTrigger.cs
@@ -0,0 +1,85 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="KeyTrigger.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections.Generic;
+using System.Data.Common;
+using System.Text;
+
+namespace StgSharp.Controlling.UsrActivity
+{
+ public readonly struct KeyTrigger : IClickTrigger, IEquatable
+ {
+
+ private readonly KeyboardKey _targetKey;
+ private readonly KeyStatus _triggerStat;
+
+ public KeyTrigger( KeyboardKey targetKey, KeyStatus targetStat )
+ {
+ this._targetKey = targetKey;
+ this._triggerStat = targetStat;
+ }
+
+ public int TargetKeyOrButtonID => ( int )_targetKey;
+
+ public KeyStatus TriggeredStatus => _triggerStat;
+
+ public override bool Equals( object obj )
+ {
+ return base.Equals( obj );
+ }
+
+ public override int GetHashCode()
+ {
+ return ( ( int )_targetKey ) + ( 17 * ( ( int )_triggerStat ) );
+ }
+
+ public override string ToString()
+ {
+ return $"Key {_targetKey} triggered when {_triggerStat}";
+ }
+
+ public static bool operator !=( KeyTrigger left, KeyTrigger right )
+ {
+ return !( left == right );
+ }
+
+ public static bool operator ==( KeyTrigger left, KeyTrigger right )
+ {
+ return ( left._triggerStat == right._triggerStat ) && ( left._targetKey == right._targetKey );
+ }
+
+ bool IEquatable.Equals( KeyTrigger other )
+ {
+ return other == this;
+ }
+
+ }
+}
diff --git a/StgSharp.Common/Controlling/UsrActivity/MouseTrigger.cs b/StgSharp.Common/Controlling/UsrActivity/MouseTrigger.cs
new file mode 100644
index 00000000..9e9adbb3
--- /dev/null
+++ b/StgSharp.Common/Controlling/UsrActivity/MouseTrigger.cs
@@ -0,0 +1,72 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="MouseTrigger.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Math;
+
+using System;
+using System.Collections.Generic;
+using System.Diagnostics.SymbolStore;
+using System.Text;
+
+namespace StgSharp.Controlling.UsrActivity
+{
+ public readonly struct MouseTrigger : IClickTrigger, IEquatable
+ {
+
+ private readonly KeyStatus _status;
+ private readonly Mouse _mouse;
+
+ public MouseTrigger( Mouse mouse, KeyStatus status )
+ {
+ _mouse = mouse;
+ _status = status;
+ }
+
+ public int TargetKeyOrButtonID => ( int )_mouse;
+
+ public KeyStatus TriggeredStatus => _status;
+
+ public bool Equals( MouseTrigger other )
+ {
+ return this == other;
+ }
+
+ public static bool operator !=( MouseTrigger left, MouseTrigger right )
+ {
+ return left._mouse != right._mouse || left._status != right._status;
+ }
+
+ public static bool operator ==( MouseTrigger left, MouseTrigger right )
+ {
+ return left._mouse == right._mouse && left._status == right._status;
+ }
+
+ }
+}
diff --git a/StgSharp.Common/Controlling/UsrActivity/TriggetFactory.cs b/StgSharp.Common/Controlling/UsrActivity/TriggetFactory.cs
new file mode 100644
index 00000000..fc377378
--- /dev/null
+++ b/StgSharp.Common/Controlling/UsrActivity/TriggetFactory.cs
@@ -0,0 +1,102 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="TriggetFactory.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Math;
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace StgSharp.Controlling.UsrActivity
+{
+ public static class TriggetBuilder
+ {
+
+ private const int JoystickMax = ( int )Joystick.Last + 1;
+ private const int JoystickMin = ( int )Joystick.First - 1;
+ private const int KeyboardMax = ( int )KeyboardKey.Last + 1;
+ private const int KeyboardMin = ( int )KeyboardKey.First - 1;
+ private const int MouseMax = ( int )Mouse.Last + 1;
+ private const int MouseMin = ( int )Mouse.First - 1;
+
+ private static KeyTrigger keyboardtemp;
+ private static MouseTrigger mousetemp;
+
+ public static JoystickTrigger BuildJoystickClickTrigger(
+ int keyCode,
+ KeyStatus status )
+ {
+ if( keyCode > MouseMin && keyCode < MouseMax ) {
+ return new JoystickTrigger( ( Joystick )keyCode, status );
+ }
+ throw new InvalidOperationException(
+ "Known key code or key is not on joystick." );
+ }
+
+ public static KeyTrigger BuildKeyboardClickTrigger(
+ int keyCode,
+ KeyStatus status )
+ {
+ if( keyCode > KeyboardMin && keyCode < KeyboardMax ) {
+ return new KeyTrigger( ( KeyboardKey )keyCode, status );
+ }
+ throw new InvalidOperationException(
+ "Known key code or kay is not on keyboard." );
+ }
+
+ public static MouseTrigger BuildMouseClickTrigger(
+ int keyCode,
+ KeyStatus status )
+ {
+ if( keyCode >= MouseMin && keyCode <= MouseMax ) {
+ return new MouseTrigger( ( Mouse )keyCode, status );
+ }
+ throw new InvalidOperationException(
+ "Known key code or key is not on mouse." );
+ }
+
+ public static IClickTrigger BuildTrigger(
+ int keyCode,
+ KeyStatus status )
+ {
+ if( keyCode > KeyboardMin && keyCode < KeyboardMax ) {
+ return new KeyTrigger( ( KeyboardKey )keyCode, status );
+ }
+ if( keyCode > JoystickMin && keyCode < JoystickMax ) {
+ return new JoystickTrigger( ( Joystick )keyCode, status );
+ }
+ if( keyCode >= MouseMin && keyCode <= MouseMax ) {
+ return new MouseTrigger( ( Mouse )keyCode, status );
+ }
+ throw new InvalidOperationException( "Known key code." );
+ }
+
+ }
+}
diff --git a/StgSharp.Common/Data/GlobalData/root.cs b/StgSharp.Common/Data/GlobalData/root.cs
new file mode 100644
index 00000000..1b2b9795
--- /dev/null
+++ b/StgSharp.Common/Data/GlobalData/root.cs
@@ -0,0 +1,56 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="root.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Internal;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace StgSharp
+{
+ public static unsafe partial class StgSharp
+ {
+
+ private static byte leastUnusedArea;
+ private static List root = new List();
+ private static SSD defaultIdProvider = new SSD();
+
+ public static byte NewArea()
+ {
+ byte ret = leastUnusedArea;
+ leastUnusedArea++;
+ return ret;
+ }
+
+ }//------------------ end of class ---------------------
+}
diff --git a/StgSharp.Common/Data/RandomGenerator.cs b/StgSharp.Common/Data/RandomGenerator.cs
new file mode 100644
index 00000000..4be8ca1d
--- /dev/null
+++ b/StgSharp.Common/Data/RandomGenerator.cs
@@ -0,0 +1,169 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="RandomGenerator.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.HighPerformance;
+
+using System;
+using System.IO;
+using System.Security.Cryptography;
+using System.Text;
+using System.Xml.Serialization;
+
+namespace StgSharp.Data
+{
+ public class RandomGenerator
+ {
+
+ private byte[] currentKey;
+
+ private readonly byte[] originKey;
+ private int cycleCount;
+ private SHA512 hash;
+
+ public RandomGenerator() : this( DateTime.UtcNow.ToBinary() ) { }
+
+ public RandomGenerator( object source )
+ {
+ try {
+ if( source == null ) {
+ throw new ArgumentNullException( nameof( source ) );
+ }
+ XmlSerializer s = new XmlSerializer( source.GetType() );
+ using( StringWriter sw = new StringWriter() ) {
+ s.Serialize( sw, source );
+ string data = sw.ToString();
+ originKey = Encoding.UTF8.GetBytes( data );
+ }
+ }
+ catch( Exception ) {
+ throw;
+ }
+ hash = SHA512.Create();
+ originKey = hash.ComputeHash( originKey );
+ currentKey = originKey;
+ cycleCount = 0;
+ }
+
+ public int TotalGeneratedRandom
+ {
+ get => cycleCount;
+ }
+
+ public unsafe int GenRandomInt()
+ {
+ M128 source = PrivateRand();
+ cycleCount++;
+
+ /*
+ float d0 = MathF.Sin(1 / source.Read(0));
+ float d1 = MathF.Sin(1 / source.Read(1));
+ float d2 = MathF.Sin(1 / source.Read(2));
+ float d3 = MathF.Sin(1 / source.Read(3));
+
+ source.Write(0, *( short*)&d3);
+ source.Write(2, *((short*)&d2+1));
+ source.Write(4, *( short*)&d1);
+ source.Write(6, *((short*)&d0+1));
+
+ /**/
+
+ return source.Read( cycleCount % 4 );
+ }
+
+ public byte GenRandomInt8()
+ {
+ cycleCount++;
+ if( cycleCount % 64 == 0 ) {
+ PrivateRand();
+ }
+ return currentKey[ cycleCount % 64 ];
+ }
+
+ public float GenRandomSingle()
+ {
+ cycleCount++;
+
+ while( true ) {
+ M128 source = PrivateRand();
+
+ uint
+ temp0 = source.Read( 0 ),
+ temp1 = source.Read( 2 );
+
+ if( temp0 * temp1 != 0 ) {
+ float ret = ( ( temp0 % temp1 ) * 1.0f ) / temp1;
+ if( ret < 0.335f ) {
+ ret = ret * ( ( ret * ( -0.7811934f ) ) + 1.4489113f );
+ } else {
+ ret = ( ret * ( ( ret * ( -0.1158368f ) ) + 1.0580600f ) ) + 0.0590584f;
+ }
+ if( ret > 1 ) {
+ continue;
+ }
+ return ret;
+ }
+ }
+ }
+
+ public void Reset()
+ {
+ currentKey = originKey;
+ cycleCount = 0;
+ }
+
+ private unsafe M128 PrivateRand()
+ {
+ currentKey = hash.ComputeHash( currentKey );
+ M128 ret;
+ fixed( byte* bptr = currentKey ) {
+ switch( ( cycleCount % 16 ) / 4 ) {
+ case 0:
+ ret = *( ( ( M128* )bptr ) + 0 );
+ break;
+ case 1:
+ ret = *( ( ( M128* )bptr ) + 1 );
+ break;
+ case 2:
+ ret = *( ( ( M128* )bptr ) + 2 );
+ break;
+ case 3:
+ ret = *( ( ( M128* )bptr ) + 3 );
+ break;
+ default:
+ throw new InvalidOperationException();
+ }
+ }
+
+ //Console.WriteLine(ret.ToString(16));
+ return ret;
+ }
+
+ }
+}
diff --git a/StgSharp.Common/Data/SSD/Area.cs b/StgSharp.Common/Data/SSD/Area.cs
new file mode 100644
index 00000000..0a3a8a36
--- /dev/null
+++ b/StgSharp.Common/Data/SSD/Area.cs
@@ -0,0 +1,47 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="Area.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Internal.FileIO;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace StgSharp.Internal
+{
+ ///
+ /// An independent storage area, used as the only folder type in root folder. Contains several
+ /// files reference as virtual disc. Data is actually stored in s in certain RAID mode.
+ ///
+ public partial class Area { }
+}
diff --git a/StgSharp.Common/Data/SSD/DataHead.cs b/StgSharp.Common/Data/SSD/DataHead.cs
new file mode 100644
index 00000000..07dd56a3
--- /dev/null
+++ b/StgSharp.Common/Data/SSD/DataHead.cs
@@ -0,0 +1,79 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="DataHead.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.HighPerformance;
+
+using System;
+using System.Numerics;
+using System.Runtime.InteropServices;
+
+namespace StgSharp.Internal
+{
+ [StructLayout( LayoutKind.Explicit, Size = 16 )]
+ public struct SSDSegmentHead
+ {
+
+ [FieldOffset( 12 )] internal byte size;
+
+ [FieldOffset( 0 )] internal M128 data;
+ [FieldOffset( 13 )] public byte selfDefine_1;
+ [FieldOffset( 14 )] public byte selfDefine_2;
+ [FieldOffset( 15 )] public byte selfDefine_3;
+
+ [FieldOffset( 0 )] public int globalID;
+ [FieldOffset( 4 )] public int nextID;
+ [FieldOffset( 8 )] public int previousHash;
+
+ public int Size
+ {
+ get => ( ( int )size ) + 1;
+ set
+ {
+ if( ( value > 256 ) || ( value < 0 ) ) {
+ throw new ArgumentOutOfRangeException();
+ }
+ size = ( byte )( value - 1 );
+ }
+ }
+
+ public unsafe byte[] GetBytes()
+ {
+ byte[] ret = new byte[16];
+ fixed( Vector4* vptr = &data.Vec ) {
+ byte* bptr = ( byte* )vptr;
+ for( int i = 0; i < 15; i++ ) {
+ ret[ i ] = *bptr;
+ }
+ }
+ return ret;
+ }
+
+ }
+}
diff --git a/StgSharp.Common/Data/SSD/DataSegment.cs b/StgSharp.Common/Data/SSD/DataSegment.cs
new file mode 100644
index 00000000..52d62561
--- /dev/null
+++ b/StgSharp.Common/Data/SSD/DataSegment.cs
@@ -0,0 +1,184 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="DataSegment.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.HighPerformance;
+using StgSharp.HighPerformance;
+using StgSharp.Internal.Intrinsic;
+
+using StgSharp.Math;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Numerics;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace StgSharp.Internal
+{
+ [StructLayout( LayoutKind.Explicit, Size = StgSharp.ssdSegmentLength * 16 )]
+ public unsafe struct SSDSegment : IComparable, IComparable
+ {
+
+ [FieldOffset( 16 )] public fixed byte Data[
+ 16 * ( StgSharp.ssdSegmentLength - 1 ) ];
+ [FieldOffset( 12 )] public int DataHash;
+ [FieldOffset( 8 )] public int PreviousHash;
+ [FieldOffset( 0 * 16 )] public SSDSegmentHead Head;
+
+ public SSDSegment( int previousHash )
+ {
+ this.PreviousHash = previousHash;
+ }
+
+ public byte this[ int index ]
+ {
+ get
+ {
+ if( index > ( 16 * ( StgSharp.ssdSegmentLength - 1 ) ) - 1 ) {
+ throw new IndexOutOfRangeException();
+ }
+ return Data[ index ];
+ }
+
+ set
+ {
+ if( index > ( 16 * ( StgSharp.ssdSegmentLength - 1 ) ) - 1 ) {
+ throw new IndexOutOfRangeException();
+ }
+ Data[ index ] = value;
+ }
+ }
+
+ public int ID
+ {
+ get { return Head.globalID; }
+ set { Head.globalID = value; }
+ }
+
+ public short Size => Head.size;
+
+ public void FillRandomBytes( int begin )
+ {
+ if( begin > 255 ) {
+ return;
+ }
+ for( int i = begin; i < 255; i++ ) {
+ Data[ i ] = Scaler.Random();
+ }
+ }
+
+ public static SSDSegment FromStream( byte[] stream )
+ {
+ if( stream.Length != 16 * StgSharp.ssdSegmentLength ) {
+ throw new ArgumentException();
+ }
+ SSDSegment ret = new SSDSegment();
+ fixed( byte* bptr = stream ) {
+ ret.Head.data = *( M128* )bptr;
+ for( int i = 1; i < StgSharp.ssdSegmentLength; i++ ) {
+ ret.WriteData(
+ i - 1, *( M128* )( bptr + ( 16 * i ) ) );
+ }
+ }
+ return ret;
+ }
+
+ public byte[] GetBytes()
+ {
+ byte[] ret = new byte[16 * StgSharp.ssdSegmentLength];
+ fixed( M128* mptr = &Head.data ) {
+ fixed( byte* aptr = ret ) {
+ Vector4* vsptr = ( Vector4* )mptr;
+ Vector4* vtptr = ( Vector4* )aptr;
+ for( int i = 0; i < 18; i++ ) {
+ *( vtptr + i ) = *( vsptr + i );
+ }
+ }
+ }
+
+ return ret;
+ }
+
+ public int GetDataHash()
+ {
+ Vector4 v = Vector4.One;
+ fixed( M128* mptr = &Head.data ) {
+ Vector4* vptr = ( Vector4* )mptr;
+ for( int i = 0; i < StgSharp.ssdSegmentLength - 1; i += 1 ) {
+ v += ( *vptr ) * 31;
+ }
+ }
+ M128 m = new M128( v );
+ DataHash = m.Vec.GetHashCode();
+ return DataHash;
+ }
+
+ public override int GetHashCode()
+ {
+ int ret = 17;
+ fixed( M128* mptr = &Head.data ) {
+ Vector4* vptr = ( Vector4* )mptr;
+ for( int i = 0; i < StgSharp.ssdSegmentLength; i++ ) {
+ ret = ( ret + ( *vptr ).GetHashCode() ) * 31;
+ }
+ }
+ return ret;
+ }
+
+ public unsafe T ReadData( int index ) where T: struct
+ {
+ fixed( byte* bptr = Data ) {
+ T* tptr = ( T* )bptr;
+ return *( tptr + index );
+ }
+ }
+
+ public unsafe void WriteData( int index, T value ) where T: struct
+ {
+ fixed( byte* bptr = Data ) {
+ T* tptr = ( T* )bptr;
+ *( tptr + index ) = value;
+ }
+ }
+
+ int IComparable.CompareTo( int other )
+ {
+ return ID.CompareTo( other );
+ }
+
+ int IComparable.CompareTo( SSDSegment other )
+ {
+ return ID.CompareTo( other.ID );
+ }
+
+ }
+}
diff --git a/StgSharp.Common/Data/SSD/SSD.cs b/StgSharp.Common/Data/SSD/SSD.cs
new file mode 100644
index 00000000..ce6a5ca4
--- /dev/null
+++ b/StgSharp.Common/Data/SSD/SSD.cs
@@ -0,0 +1,68 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="SSD.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Internal.FileIO;
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+
+namespace StgSharp.Internal
+{
+ public partial class SSD
+ {
+
+ private Dictionary