This commit is contained in:
hsu 2021-01-16 14:21:44 +08:00
parent cc4b46ae1c
commit 752ffb2c48
83 changed files with 7743 additions and 4 deletions

View File

@ -14,20 +14,20 @@
<ProjectGuid>{8CC15B84-9FA8-4F5E-934F-7DAE7BAC4896}</ProjectGuid> <ProjectGuid>{8CC15B84-9FA8-4F5E-934F-7DAE7BAC4896}</ProjectGuid>
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
<RootNamespace>Furutaka</RootNamespace> <RootNamespace>Furutaka</RootNamespace>
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion> <WindowsTargetPlatformVersion>10.0.19041.0</WindowsTargetPlatformVersion>
<ProjectName>Furutaka</ProjectName> <ProjectName>Furutaka</ProjectName>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
@ -64,6 +64,7 @@
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<CompileAs>CompileAsC</CompileAs> <CompileAs>CompileAsC</CompileAs>
<BufferSecurityCheck>false</BufferSecurityCheck> <BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>

View File

@ -386,7 +386,8 @@ UINT TDLMapDriver(
u64tohex(KernelBase + (xExAllocatePoolWithTag - KernelImage), _strend(text)); u64tohex(KernelBase + (xExAllocatePoolWithTag - KernelImage), _strend(text));
cuiPrintText(text, TRUE); cuiPrintText(text, TRUE);
} }
//找ExAllocatePoolWithTag过后
//根据版本号
if (g_NtBuildNumber < 15063) { if (g_NtBuildNumber < 15063) {
RtlInitString(&routineName, "PsCreateSystemThread"); RtlInitString(&routineName, "PsCreateSystemThread");
status = LdrGetProcedureAddress((PVOID)KernelImage, &routineName, 0, (PVOID*)&xPsCreateSystemThread); status = LdrGetProcedureAddress((PVOID)KernelImage, &routineName, 0, (PVOID*)&xPsCreateSystemThread);

Binary file not shown.

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<Project>
<ProjectOutputs>
<ProjectOutput>
<FullPath>J:\Workspace\drivers\TDL\Source\Furutaka\output\x64\Debug\Furutaka.exe</FullPath>
</ProjectOutput>
</ProjectOutputs>
<ContentFiles />
<SatelliteDlls />
<NonRecipeFileRefs />
</Project>

Binary file not shown.

View File

@ -0,0 +1,17 @@
 cui.c
instdrv.c
main.c
cmdline.c
u64tohex.c
u64tostr.c
ultohex.c
ultostr.c
_strcat.c
_strcmpi.c
_strcpy.c
_strend.c
_strlen.c
_strncmpi.c
sup.c
正在生成代码...
Furutaka.vcxproj -> J:\Workspace\drivers\TDL\Source\Furutaka\output\x64\Debug\Furutaka.exe

Binary file not shown.

View File

@ -0,0 +1,2 @@
PlatformToolSet=v142:VCToolArchitecture=Native32Bit:VCToolsVersion=14.28.29333:TargetPlatformVersion=10.0.19041.0:
Debug|x64|J:\Workspace\drivers\TDL\Source\Furutaka\|

View File

@ -0,0 +1,2 @@
J:\Workspace\drivers\TDL\Source\Furutaka\output\x64\Debug\Furutaka.exe
J:\Workspace\drivers\TDL\Source\Furutaka\output\x64\Debug\Furutaka.pdb

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<Project>
<ProjectOutputs>
<ProjectOutput>
<FullPath>J:\Workspace\drivers\TDL\Source\Furutaka\output\x64\Release\Furutaka.exe</FullPath>
</ProjectOutput>
</ProjectOutputs>
<ContentFiles />
<SatelliteDlls />
<NonRecipeFileRefs />
</Project>

View File

@ -0,0 +1,125 @@
 cui.c
instdrv.c
main.c
cmdline.c
u64tohex.c
u64tostr.c
ultohex.c
ultostr.c
_strcat.c
_strcmpi.c
_strcpy.c
_strend.c
_strlen.c
_strncmpi.c
sup.c
正在搜索库
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\kernel32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\user32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\gdi32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\winspool.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\comdlg32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\advapi32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\shell32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\ole32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\oleaut32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\uuid.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\odbc32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\odbccp32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\ntdll.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64\libucrt.lib:
正在搜索 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\lib\x64\libvcruntime.lib:
正在搜索 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\lib\x64\LIBCMT.lib:
正在搜索 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\lib\x64\OLDNAMES.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\kernel32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\user32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\gdi32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\winspool.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\comdlg32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\advapi32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\shell32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\ole32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\oleaut32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\uuid.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\odbc32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\odbccp32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\ntdll.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64\libucrt.lib:
正在搜索 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\lib\x64\libvcruntime.lib:
正在搜索 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\lib\x64\LIBCMT.lib:
正在搜索 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\lib\x64\OLDNAMES.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\kernel32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\user32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\gdi32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\winspool.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\comdlg32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\advapi32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\shell32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\ole32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\oleaut32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\uuid.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\odbc32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\odbccp32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\ntdll.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64\libucrt.lib:
正在搜索 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\lib\x64\libvcruntime.lib:
正在搜索 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\lib\x64\LIBCMT.lib:
正在搜索 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\lib\x64\OLDNAMES.lib:
已完成库搜索
正在搜索库
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\kernel32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\user32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\gdi32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\winspool.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\comdlg32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\advapi32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\shell32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\ole32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\oleaut32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\uuid.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\odbc32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\odbccp32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\ntdll.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64\libucrt.lib:
正在搜索 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\lib\x64\libvcruntime.lib:
正在搜索 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\lib\x64\LIBCMT.lib:
正在搜索 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\lib\x64\OLDNAMES.lib:
已完成库搜索
正在搜索库
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\kernel32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\user32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\gdi32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\winspool.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\comdlg32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\advapi32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\shell32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\ole32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\oleaut32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\uuid.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\odbc32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\odbccp32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\ntdll.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64\libucrt.lib:
正在搜索 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\lib\x64\libvcruntime.lib:
正在搜索 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\lib\x64\LIBCMT.lib:
正在搜索 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\lib\x64\OLDNAMES.lib:
已完成库搜索
正在搜索库
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\kernel32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\user32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\gdi32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\winspool.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\comdlg32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\advapi32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\shell32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\ole32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\oleaut32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\uuid.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\odbc32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\odbccp32.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\ntdll.lib:
正在搜索 C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64\libucrt.lib:
正在搜索 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\lib\x64\libvcruntime.lib:
正在搜索 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\lib\x64\LIBCMT.lib:
已完成库搜索
Furutaka.vcxproj -> J:\Workspace\drivers\TDL\Source\Furutaka\output\x64\Release\Furutaka.exe

View File

@ -0,0 +1,2 @@
PlatformToolSet=v142:VCToolArchitecture=Native32Bit:VCToolsVersion=14.28.29333:TargetPlatformVersion=10.0.19041.0:
Release|x64|J:\Workspace\drivers\TDL\Source\Furutaka\|

View File

@ -0,0 +1 @@
J:\Workspace\drivers\TDL\Source\Furutaka\output\x64\Release\Furutaka.exe

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,96 @@
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.28.29335.0
include listing.inc
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
PUBLIC _strcat_a
PUBLIC _strcat_w
; Function compile flags: /Ogspy
; COMDAT _strcat_w
_TEXT SEGMENT
dest$ = 8
src$ = 16
_strcat_w PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strcat.c
; Line 23
xor r8d, r8d
test rcx, rcx
je SHORT $LN7@strcat_w
test rdx, rdx
je SHORT $LN7@strcat_w
jmp SHORT $LN17@strcat_w
$LL2@strcat_w:
; Line 27
add rcx, 2
$LN17@strcat_w:
; Line 26
cmp WORD PTR [rcx], r8w
jne SHORT $LL2@strcat_w
; Line 29
movzx eax, WORD PTR [rdx]
test ax, ax
je SHORT $LN5@strcat_w
sub rdx, rcx
$LL4@strcat_w:
; Line 30
mov WORD PTR [rcx], ax
; Line 31
add rcx, 2
movzx eax, WORD PTR [rdx+rcx]
test ax, ax
jne SHORT $LL4@strcat_w
$LN5@strcat_w:
; Line 35
mov WORD PTR [rcx], r8w
$LN7@strcat_w:
; Line 37
mov rax, rcx
ret 0
_strcat_w ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT _strcat_a
_TEXT SEGMENT
dest$ = 8
src$ = 16
_strcat_a PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strcat.c
; Line 5
xor r8d, r8d
test rcx, rcx
je SHORT $LN7@strcat_a
test rdx, rdx
je SHORT $LN7@strcat_a
jmp SHORT $LN17@strcat_a
$LL2@strcat_a:
; Line 9
inc rcx
$LN17@strcat_a:
; Line 8
cmp BYTE PTR [rcx], r8b
jne SHORT $LL2@strcat_a
; Line 11
mov al, BYTE PTR [rdx]
test al, al
je SHORT $LN5@strcat_a
sub rdx, rcx
$LL4@strcat_a:
; Line 12
mov BYTE PTR [rcx], al
; Line 13
inc rcx
mov al, BYTE PTR [rdx+rcx]
test al, al
jne SHORT $LL4@strcat_a
$LN5@strcat_a:
; Line 17
mov BYTE PTR [rcx], r8b
$LN7@strcat_a:
; Line 19
mov rax, rcx
ret 0
_strcat_a ENDP
_TEXT ENDS
END

View File

@ -0,0 +1,159 @@
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.28.29335.0
include listing.inc
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
PUBLIC _strcmpi_a
PUBLIC _strcmpi_w
; Function compile flags: /Ogspy
; COMDAT _strcmpi_w
_TEXT SEGMENT
s1$ = 8
s2$ = 16
_strcmpi_w PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strcmpi.c
; Line 30
cmp rcx, rdx
jne SHORT $LN5@strcmpi_w
; Line 31
xor eax, eax
; Line 47
ret 0
$LN5@strcmpi_w:
; Line 33
test rcx, rcx
jne SHORT $LN6@strcmpi_w
; Line 34
or eax, -1
; Line 47
ret 0
$LN6@strcmpi_w:
; Line 36
test rdx, rdx
jne SHORT $LN23@strcmpi_w
; Line 37
lea eax, QWORD PTR [rdx+1]
; Line 47
ret 0
$LN23@strcmpi_w:
sub rcx, rdx
$LL4@strcmpi_w:
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\rtltypes.h
; Line 25
movzx eax, WORD PTR [rcx+rdx]
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strcmpi.c
; Line 41
movzx r8d, WORD PTR [rcx+rdx]
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\rtltypes.h
; Line 25
sub ax, 65 ; 00000041H
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strcmpi.c
; Line 43
movzx r9d, WORD PTR [rdx]
add r8w, 32 ; 00000020H
cmp ax, 25
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\rtltypes.h
; Line 25
movzx eax, WORD PTR [rdx]
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strcmpi.c
; Line 41
cmova r8w, WORD PTR [rcx+rdx]
; Line 43
add r9w, 32 ; 00000020H
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\rtltypes.h
; Line 25
sub ax, 65 ; 00000041H
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strcmpi.c
; Line 43
cmp ax, 25
cmova r9w, WORD PTR [rdx]
lea rdx, QWORD PTR [rdx+2]
; Line 44
test r8w, r8w
je SHORT $LN8@strcmpi_w
cmp r8w, r9w
je SHORT $LL4@strcmpi_w
$LN8@strcmpi_w:
; Line 46
movzx ecx, r9w
movzx eax, r8w
sub eax, ecx
; Line 47
ret 0
_strcmpi_w ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT _strcmpi_a
_TEXT SEGMENT
s1$ = 8
s2$ = 16
_strcmpi_a PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strcmpi.c
; Line 4
mov r9, rdx
mov r8, rcx
; Line 7
cmp rcx, rdx
jne SHORT $LN5@strcmpi_a
; Line 8
xor eax, eax
; Line 24
ret 0
$LN5@strcmpi_a:
; Line 10
test r8, r8
jne SHORT $LN6@strcmpi_a
; Line 11
or eax, -1
; Line 24
ret 0
$LN6@strcmpi_a:
; Line 13
test rdx, rdx
jne SHORT $LN23@strcmpi_a
; Line 14
lea eax, QWORD PTR [rdx+1]
; Line 24
ret 0
$LN23@strcmpi_a:
sub r8, rdx
$LL4@strcmpi_a:
; Line 17
movzx edx, BYTE PTR [r8+r9]
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\rtltypes.h
; Line 17
lea ecx, DWORD PTR [rdx-65]
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strcmpi.c
; Line 18
cmp cl, 25
lea eax, DWORD PTR [rdx+32]
movzx r10d, al
cmova r10d, edx
movzx edx, BYTE PTR [r9]
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\rtltypes.h
; Line 17
lea ecx, DWORD PTR [rdx-65]
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strcmpi.c
; Line 20
cmp cl, 25
lea eax, DWORD PTR [rdx+32]
movzx r11d, al
cmova r11d, edx
inc r9
; Line 21
test r10b, r10b
je SHORT $LN8@strcmpi_a
cmp r10b, r11b
je SHORT $LL4@strcmpi_a
$LN8@strcmpi_a:
; Line 23
movsx ecx, r11b
movsx eax, r10b
sub eax, ecx
; Line 24
ret 0
_strcmpi_a ENDP
_TEXT ENDS
END

View File

@ -0,0 +1,87 @@
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.28.29335.0
include listing.inc
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
PUBLIC _strcpy_a
PUBLIC _strcpy_w
; Function compile flags: /Ogspy
; COMDAT _strcpy_w
_TEXT SEGMENT
dest$ = 8
src$ = 16
_strcpy_w PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strcpy.c
; Line 28
xor r9d, r9d
test rcx, rcx
je SHORT $LN5@strcpy_w
test rdx, rdx
je SHORT $LN5@strcpy_w
; Line 31
cmp rcx, rdx
je SHORT $LN5@strcpy_w
; Line 35
movzx r8d, WORD PTR [rdx]
mov rax, rcx
test r8w, r8w
je SHORT $LN3@strcpy_w
sub rdx, rcx
$LL2@strcpy_w:
; Line 36
mov WORD PTR [rax], r8w
; Line 37
add rax, 2
movzx r8d, WORD PTR [rdx+rax]
test r8w, r8w
jne SHORT $LL2@strcpy_w
$LN3@strcpy_w:
; Line 41
mov WORD PTR [rax], r9w
$LN5@strcpy_w:
; Line 43
mov rax, rcx
ret 0
_strcpy_w ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT _strcpy_a
_TEXT SEGMENT
dest$ = 8
src$ = 16
_strcpy_a PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strcpy.c
; Line 7
test rcx, rcx
je SHORT $LN5@strcpy_a
test rdx, rdx
je SHORT $LN5@strcpy_a
; Line 10
cmp rcx, rdx
je SHORT $LN5@strcpy_a
; Line 14
mov r8b, BYTE PTR [rdx]
mov rax, rcx
test r8b, r8b
je SHORT $LN3@strcpy_a
sub rdx, rcx
$LL2@strcpy_a:
; Line 15
mov BYTE PTR [rax], r8b
; Line 16
inc rax
mov r8b, BYTE PTR [rdx+rax]
test r8b, r8b
jne SHORT $LL2@strcpy_a
$LN3@strcpy_a:
; Line 20
mov BYTE PTR [rax], 0
$LN5@strcpy_a:
; Line 22
mov rax, rcx
ret 0
_strcpy_a ENDP
_TEXT ENDS
END

View File

@ -0,0 +1,61 @@
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.28.29335.0
include listing.inc
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
PUBLIC _strend_a
PUBLIC _strend_w
; Function compile flags: /Ogspy
; COMDAT _strend_w
_TEXT SEGMENT
s$ = 8
_strend_w PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strend.c
; Line 16
xor eax, eax
test rcx, rcx
je SHORT $LN1@strend_w
jmp SHORT $LN10@strend_w
$LL2@strend_w:
; Line 20
add rcx, 2
$LN10@strend_w:
; Line 19
cmp WORD PTR [rcx], ax
jne SHORT $LL2@strend_w
; Line 22
mov rax, rcx
$LN1@strend_w:
; Line 23
ret 0
_strend_w ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT _strend_a
_TEXT SEGMENT
s$ = 8
_strend_a PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strend.c
; Line 5
test rcx, rcx
jne SHORT $LN10@strend_a
; Line 6
xor eax, eax
; Line 12
ret 0
$LL2@strend_a:
; Line 9
inc rcx
$LN10@strend_a:
; Line 8
cmp BYTE PTR [rcx], 0
jne SHORT $LL2@strend_a
; Line 11
mov rax, rcx
; Line 12
ret 0
_strend_a ENDP
_TEXT ENDS
END

View File

@ -0,0 +1,65 @@
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.28.29335.0
include listing.inc
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
PUBLIC _strlen_a
PUBLIC _strlen_w
; Function compile flags: /Ogspy
; COMDAT _strlen_w
_TEXT SEGMENT
s$ = 8
_strlen_w PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strlen.c
; Line 20
xor edx, edx
mov rax, rcx
test rcx, rcx
jne SHORT $LN10@strlen_w
; Line 27
ret 0
$LL2@strlen_w:
; Line 24
add rcx, 2
$LN10@strlen_w:
; Line 23
cmp WORD PTR [rcx], dx
jne SHORT $LL2@strlen_w
; Line 26
sub rcx, rax
sar rcx, 1
mov rax, rcx
; Line 27
ret 0
_strlen_w ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT _strlen_a
_TEXT SEGMENT
s$ = 8
_strlen_a PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strlen.c
; Line 5
mov rax, rcx
; Line 7
test rcx, rcx
jne SHORT $LN10@strlen_a
; Line 14
ret 0
$LL2@strlen_a:
; Line 11
inc rcx
$LN10@strlen_a:
; Line 10
cmp BYTE PTR [rcx], 0
jne SHORT $LL2@strlen_a
; Line 13
sub rcx, rax
mov rax, rcx
; Line 14
ret 0
_strlen_a ENDP
_TEXT ENDS
END

View File

@ -0,0 +1,174 @@
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.28.29335.0
include listing.inc
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
PUBLIC _strncmpi_a
PUBLIC _strncmpi_w
; Function compile flags: /Ogspy
; COMDAT _strncmpi_w
_TEXT SEGMENT
s1$ = 8
s2$ = 16
cchars$ = 24
_strncmpi_w PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strncmpi.c
; Line 34
cmp rcx, rdx
je SHORT $LN25@strncmpi_w
; Line 37
test rcx, rcx
jne SHORT $LN6@strncmpi_w
; Line 38
or eax, -1
; Line 55
ret 0
$LN6@strncmpi_w:
; Line 40
test rdx, rdx
jne SHORT $LN7@strncmpi_w
; Line 41
lea eax, QWORD PTR [rdx+1]
; Line 55
ret 0
$LN7@strncmpi_w:
; Line 43
test r8, r8
je SHORT $LN25@strncmpi_w
sub rcx, rdx
$LL4@strncmpi_w:
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\rtltypes.h
; Line 25
movzx eax, WORD PTR [rcx+rdx]
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strncmpi.c
; Line 48
movzx r9d, WORD PTR [rcx+rdx]
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\rtltypes.h
; Line 25
sub ax, 65 ; 00000041H
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strncmpi.c
; Line 50
movzx r10d, WORD PTR [rdx]
add r9w, 32 ; 00000020H
cmp ax, 25
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\rtltypes.h
; Line 25
movzx eax, WORD PTR [rdx]
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strncmpi.c
; Line 48
cmova r9w, WORD PTR [rcx+rdx]
; Line 50
add r10w, 32 ; 00000020H
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\rtltypes.h
; Line 25
sub ax, 65 ; 00000041H
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strncmpi.c
; Line 50
cmp ax, 25
cmova r10w, WORD PTR [rdx]
; Line 51
dec r8
lea rdx, QWORD PTR [rdx+2]
; Line 52
test r9w, r9w
je SHORT $LN9@strncmpi_w
cmp r9w, r10w
jne SHORT $LN9@strncmpi_w
test r8, r8
jne SHORT $LL4@strncmpi_w
$LN9@strncmpi_w:
; Line 54
movzx ecx, r10w
movzx eax, r9w
sub eax, ecx
; Line 55
ret 0
$LN25@strncmpi_w:
; Line 44
xor eax, eax
; Line 55
ret 0
_strncmpi_w ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT _strncmpi_a
_TEXT SEGMENT
s1$ = 8
s2$ = 16
cchars$ = 24
_strncmpi_a PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strncmpi.c
; Line 4
mov r10, rdx
mov r9, rcx
; Line 7
cmp rcx, rdx
je SHORT $LN25@strncmpi_a
; Line 10
test rcx, rcx
jne SHORT $LN6@strncmpi_a
; Line 11
or eax, -1
; Line 28
ret 0
$LN6@strncmpi_a:
; Line 13
test rdx, rdx
jne SHORT $LN7@strncmpi_a
; Line 14
lea eax, QWORD PTR [rdx+1]
; Line 28
ret 0
$LN7@strncmpi_a:
; Line 16
test r8, r8
je SHORT $LN25@strncmpi_a
sub r9, rdx
$LL4@strncmpi_a:
; Line 20
movzx edx, BYTE PTR [r9+r10]
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\rtltypes.h
; Line 17
lea ecx, DWORD PTR [rdx-65]
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strncmpi.c
; Line 21
cmp cl, 25
lea eax, DWORD PTR [rdx+32]
movzx r11d, al
cmova r11d, edx
movzx edx, BYTE PTR [r10]
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\rtltypes.h
; Line 17
lea ecx, DWORD PTR [rdx-65]
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\_strncmpi.c
; Line 23
cmp cl, 25
lea eax, DWORD PTR [rdx+32]
cmova eax, edx
inc r10
; Line 24
dec r8
; Line 25
test r11b, r11b
je SHORT $LN9@strncmpi_a
cmp r11b, al
jne SHORT $LN9@strncmpi_a
test r8, r8
jne SHORT $LL4@strncmpi_a
$LN9@strncmpi_a:
; Line 27
movsx ecx, al
movsx eax, r11b
sub eax, ecx
; Line 28
ret 0
$LN25@strncmpi_a:
; Line 17
xor eax, eax
; Line 28
ret 0
_strncmpi_a ENDP
_TEXT ENDS
END

View File

@ -0,0 +1,434 @@
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.28.29335.0
include listing.inc
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
PUBLIC GetCommandLineParamW
PUBLIC GetCommandLineParamA
PUBLIC ExtractFilePathA
PUBLIC ExtractFilePathW
; COMDAT pdata
pdata SEGMENT
$pdata$GetCommandLineParamW DD imagerel $LN42
DD imagerel $LN42+275
DD imagerel $unwind$GetCommandLineParamW
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$GetCommandLineParamA DD imagerel $LN41
DD imagerel $LN41+226
DD imagerel $unwind$GetCommandLineParamA
pdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$GetCommandLineParamA DD 081301H
DD 047413H
DD 03640fH
DD 02540bH
DD 013407H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$GetCommandLineParamW DD 0a1701H
DD 067417H
DD 056417H
DD 045417H
DD 033417H
DD 0e015f017H
xdata ENDS
; Function compile flags: /Ogspy
; COMDAT ExtractFilePathW
_TEXT SEGMENT
FileName$ = 8
FilePath$ = 16
ExtractFilePathW PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\cmdline.c
; Line 162
xor r11d, r11d
mov r9, rcx
mov r8, rcx
test rcx, rcx
je SHORT $LN7@ExtractFil
test rdx, rdx
je SHORT $LN7@ExtractFil
; Line 165
movzx r10d, WORD PTR [rcx]
test r10w, r10w
je SHORT $LN5@ExtractFil
$LL2@ExtractFil:
; Line 168
add rcx, 2
cmp r10w, 92 ; 0000005cH
mov rax, rcx
cmovne rax, r9
movzx r10d, WORD PTR [rcx]
mov r9, rax
test r10w, r10w
jne SHORT $LL2@ExtractFil
; Line 165
jmp SHORT $LN20@ExtractFil
$LL14@ExtractFil:
; Line 172
movzx eax, WORD PTR [r8]
mov WORD PTR [rdx], ax
; Line 173
add rdx, 2
; Line 174
add r8, 2
$LN20@ExtractFil:
; Line 171
cmp r8, r9
jb SHORT $LL14@ExtractFil
$LN5@ExtractFil:
; Line 177
mov WORD PTR [rdx], r11w
; Line 179
mov rax, rdx
; Line 180
ret 0
$LN7@ExtractFil:
; Line 163
xor eax, eax
; Line 180
ret 0
ExtractFilePathW ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT ExtractFilePathA
_TEXT SEGMENT
FileName$ = 8
FilePath$ = 16
ExtractFilePathA PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\cmdline.c
; Line 136
mov r9, rcx
mov r8, rcx
; Line 138
test rcx, rcx
je SHORT $LN7@ExtractFil
test rdx, rdx
je SHORT $LN7@ExtractFil
; Line 141
mov r10b, BYTE PTR [rcx]
test r10b, r10b
je SHORT $LN5@ExtractFil
$LL2@ExtractFil:
; Line 144
inc rcx
cmp r10b, 92 ; 0000005cH
mov rax, rcx
cmovne rax, r9
mov r10b, BYTE PTR [rcx]
mov r9, rax
test r10b, r10b
jne SHORT $LL2@ExtractFil
; Line 141
jmp SHORT $LN20@ExtractFil
$LL14@ExtractFil:
; Line 148
mov al, BYTE PTR [r8]
mov BYTE PTR [rdx], al
; Line 149
inc rdx
; Line 150
inc r8
$LN20@ExtractFil:
; Line 147
cmp r8, r9
jb SHORT $LL14@ExtractFil
$LN5@ExtractFil:
; Line 153
mov BYTE PTR [rdx], 0
; Line 155
mov rax, rdx
; Line 156
ret 0
$LN7@ExtractFil:
; Line 139
xor eax, eax
; Line 156
ret 0
ExtractFilePathA ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT GetCommandLineParamA
_TEXT SEGMENT
CmdLine$ = 8
ParamIndex$ = 16
Buffer$ = 24
BufferSize$ = 32
ParamLen$ = 40
GetCommandLineParamA PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\cmdline.c
; Line 77
$LN41:
mov rax, rsp
mov QWORD PTR [rax+8], rbx
mov QWORD PTR [rax+16], rbp
mov QWORD PTR [rax+24], rsi
mov QWORD PTR [rax+32], rdi
mov ebx, r9d
mov ebp, edx
mov r10, rcx
; Line 81
test rcx, rcx
je $LN21@GetCommand
; Line 84
mov r11, QWORD PTR ParamLen$[rsp]
test r11, r11
je SHORT $LN12@GetCommand
; Line 85
and DWORD PTR [r11], 0
$LN12@GetCommand:
; Line 87
xor esi, esi
$LL4@GetCommand:
; Line 88
xor r9d, r9d
; Line 90
jmp SHORT $LN39@GetCommand
$LL5@GetCommand:
; Line 91
inc r10
$LN39@GetCommand:
; Line 90
mov cl, BYTE PTR [r10]
cmp cl, 32 ; 00000020H
je SHORT $LL5@GetCommand
; Line 93
test cl, cl
je SHORT $zero_term_exit$42
cmp cl, 34 ; 00000022H
je SHORT $LN14@GetCommand
; Line 103
mov edi, 32 ; 00000020H
jmp SHORT $LN36@GetCommand
$LN14@GetCommand:
; Line 98
inc r10
; Line 106
mov edi, 34 ; 00000022H
mov cl, BYTE PTR [r10]
cmp cl, dil
je SHORT $LN10@GetCommand
$LN36@GetCommand:
mov dl, cl
$LL9@GetCommand:
movsx eax, dl
mov cl, dl
cmp eax, edi
je SHORT $LN10@GetCommand
test dl, dl
je SHORT $LN10@GetCommand
; Line 107
inc r9d
; Line 108
cmp esi, ebp
jne SHORT $LN17@GetCommand
; Line 109
cmp r9d, ebx
jae SHORT $LN17@GetCommand
test r8, r8
je SHORT $LN17@GetCommand
; Line 110
mov BYTE PTR [r8], dl
; Line 111
inc r8
$LN17@GetCommand:
; Line 113
inc r10
mov cl, BYTE PTR [r10]
mov dl, cl
cmp cl, 34 ; 00000022H
jne SHORT $LL9@GetCommand
$LN10@GetCommand:
; Line 87
inc esi
lea rax, QWORD PTR [r10+1]
test cl, cl
cmove rax, r10
mov r10, rax
cmp esi, ebp
jbe SHORT $LL4@GetCommand
$zero_term_exit$42:
; Line 122
test r8, r8
je SHORT $LN19@GetCommand
test ebx, ebx
je SHORT $LN19@GetCommand
; Line 123
mov BYTE PTR [r8], 0
$LN19@GetCommand:
; Line 125
test r11, r11
je SHORT $LN20@GetCommand
; Line 126
mov DWORD PTR [r11], r9d
$LN20@GetCommand:
; Line 128
cmp r9d, ebx
jae SHORT $LN21@GetCommand
; Line 129
mov eax, 1
jmp SHORT $LN22@GetCommand
$LN21@GetCommand:
; Line 131
xor eax, eax
$LN22@GetCommand:
; Line 132
mov rbx, QWORD PTR [rsp+8]
mov rbp, QWORD PTR [rsp+16]
mov rsi, QWORD PTR [rsp+24]
mov rdi, QWORD PTR [rsp+32]
ret 0
GetCommandLineParamA ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT GetCommandLineParamW
_TEXT SEGMENT
CmdLine$ = 24
ParamIndex$ = 32
Buffer$ = 40
BufferSize$ = 48
ParamLen$ = 56
GetCommandLineParamW PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\cmdline.c
; Line 10
$LN42:
mov rax, rsp
mov QWORD PTR [rax+8], rbx
mov QWORD PTR [rax+16], rbp
mov QWORD PTR [rax+24], rsi
mov QWORD PTR [rax+32], rdi
push r14
push r15
; Line 14
mov r11, QWORD PTR ParamLen$[rsp]
xor ebp, ebp
mov esi, edx
mov r10, rcx
test r11, r11
je SHORT $LN11@GetCommand
; Line 15
mov DWORD PTR [r11], ebp
$LN11@GetCommand:
; Line 17
test rcx, rcx
jne SHORT $LN12@GetCommand
; Line 18
test r8, r8
je SHORT $LN22@GetCommand
test r9d, r9d
je SHORT $LN22@GetCommand
; Line 19
mov WORD PTR [r8], bp
$LN22@GetCommand:
; Line 67
xor eax, eax
$LN23@GetCommand:
; Line 68
mov rbx, QWORD PTR [rsp+24]
mov rbp, QWORD PTR [rsp+32]
mov rsi, QWORD PTR [rsp+40]
mov rdi, QWORD PTR [rsp+48]
pop r15
pop r14
ret 0
$LN12@GetCommand:
; Line 23
mov r14d, 32 ; 00000020H
mov ebx, ebp
lea r15d, QWORD PTR [r14+2]
$LL4@GetCommand:
; Line 24
mov edx, ebp
; Line 26
jmp SHORT $LN40@GetCommand
$LL5@GetCommand:
; Line 27
add r10, 2
$LN40@GetCommand:
; Line 26
movzx ecx, WORD PTR [r10]
cmp cx, r14w
je SHORT $LL5@GetCommand
; Line 29
test cx, cx
je SHORT $zero_term_exit$43
cmp cx, r15w
je SHORT $LN15@GetCommand
; Line 39
movzx edi, r14w
jmp SHORT $LN37@GetCommand
$LN15@GetCommand:
; Line 34
add r10, 2
; Line 42
mov edi, r15d
movzx ecx, WORD PTR [r10]
cmp cx, r15w
je SHORT $LN10@GetCommand
$LN37@GetCommand:
movzx eax, cx
$LL9@GetCommand:
movzx ecx, ax
cmp ax, di
je SHORT $LN10@GetCommand
test ax, ax
je SHORT $LN10@GetCommand
; Line 43
inc edx
; Line 44
cmp ebx, esi
jne SHORT $LN18@GetCommand
; Line 45
cmp edx, r9d
jae SHORT $LN18@GetCommand
test r8, r8
je SHORT $LN18@GetCommand
; Line 46
mov WORD PTR [r8], ax
; Line 47
add r8, 2
$LN18@GetCommand:
; Line 49
add r10, 2
movzx ecx, WORD PTR [r10]
movzx eax, cx
cmp cx, r15w
jne SHORT $LL9@GetCommand
$LN10@GetCommand:
; Line 23
inc ebx
lea rax, QWORD PTR [r10+2]
test cx, cx
cmove rax, r10
mov r10, rax
cmp ebx, esi
jbe $LL4@GetCommand
$zero_term_exit$43:
; Line 58
test r8, r8
je SHORT $LN20@GetCommand
test r9d, r9d
je SHORT $LN20@GetCommand
; Line 59
mov WORD PTR [r8], bp
$LN20@GetCommand:
; Line 61
test r11, r11
je SHORT $LN21@GetCommand
; Line 62
mov DWORD PTR [r11], edx
$LN21@GetCommand:
; Line 64
cmp edx, r9d
jae $LN22@GetCommand
; Line 65
mov eax, 1
jmp $LN23@GetCommand
GetCommandLineParamW ENDP
_TEXT ENDS
END

View File

@ -0,0 +1,494 @@
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.28.29335.0
include listing.inc
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
PUBLIC g_ConOut
PUBLIC g_ConIn
PUBLIC g_ConsoleOutput
PUBLIC g_BE
_BSS SEGMENT
g_ConOut DQ 01H DUP (?)
g_ConIn DQ 01H DUP (?)
g_ConsoleOutput DD 01H DUP (?)
_BSS ENDS
_DATA SEGMENT
g_BE DW 0feffH
_DATA ENDS
PUBLIC cuiInitialize
PUBLIC cuiPrintTextA
PUBLIC cuiPrintTextW
PUBLIC cuiPrintTextLastErrorA
PUBLIC cuiPrintTextLastErrorW
PUBLIC cuiClrScr
PUBLIC ??_C@_02PCIJFNDE@?$AN?6@ ; `string'
PUBLIC ??_C@_15JNBOKNOG@?$AA?$AN?$AA?6@ ; `string'
EXTRN __imp_GetStdHandle:PROC
EXTRN __imp_WriteFile:PROC
EXTRN __imp_GetLastError:PROC
EXTRN __imp_HeapAlloc:PROC
EXTRN __imp_HeapFree:PROC
EXTRN __imp_GetProcessHeap:PROC
EXTRN __imp_FormatMessageA:PROC
EXTRN __imp_FormatMessageW:PROC
EXTRN __imp_GetConsoleMode:PROC
EXTRN __imp_SetConsoleMode:PROC
EXTRN __imp_WriteConsoleA:PROC
EXTRN __imp_WriteConsoleW:PROC
EXTRN __imp_FillConsoleOutputCharacterW:PROC
EXTRN __imp_FillConsoleOutputAttribute:PROC
EXTRN __imp_GetConsoleScreenBufferInfo:PROC
EXTRN __imp_SetConsoleCursorPosition:PROC
EXTRN _strcpy_a:PROC
EXTRN _strcpy_w:PROC
EXTRN _strcat_a:PROC
EXTRN _strcat_w:PROC
EXTRN _strlen_a:PROC
EXTRN _strlen_w:PROC
; COMDAT pdata
pdata SEGMENT
$pdata$cuiInitialize DD imagerel $LN7
DD imagerel $LN7+173
DD imagerel $unwind$cuiInitialize
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$cuiPrintTextA DD imagerel $LN13
DD imagerel $LN13+207
DD imagerel $unwind$cuiPrintTextA
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$cuiPrintTextW DD imagerel $LN13
DD imagerel $LN13+215
DD imagerel $unwind$cuiPrintTextW
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$cuiPrintTextLastErrorA DD imagerel $LN4
DD imagerel $LN4+84
DD imagerel $unwind$cuiPrintTextLastErrorA
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$cuiPrintTextLastErrorW DD imagerel $LN4
DD imagerel $LN4+84
DD imagerel $unwind$cuiPrintTextLastErrorW
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$cuiClrScr DD imagerel $LN8
DD imagerel $LN8+173
DD imagerel $unwind$cuiClrScr
pdata ENDS
; COMDAT ??_C@_15JNBOKNOG@?$AA?$AN?$AA?6@
CONST SEGMENT
??_C@_15JNBOKNOG@?$AA?$AN?$AA?6@ DB 0dH, 00H, 0aH, 00H, 00H, 00H ; `string'
CONST ENDS
; COMDAT ??_C@_02PCIJFNDE@?$AN?6@
CONST SEGMENT
??_C@_02PCIJFNDE@?$AN?6@ DB 0dH, 0aH, 00H ; `string'
CONST ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$cuiClrScr DD 040a01H
DD 0e640aH
DD 07006920aH
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$cuiPrintTextLastErrorW DD 030901H
DD 0880109H
DD 03002H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$cuiPrintTextLastErrorA DD 030901H
DD 0480109H
DD 03002H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$cuiPrintTextW DD 061801H
DD 0a6418H
DD 093418H
DD 070145218H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$cuiPrintTextA DD 061801H
DD 0a6418H
DD 093418H
DD 070145218H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$cuiInitialize DD 040a01H
DD 09340aH
DD 07006520aH
xdata ENDS
; Function compile flags: /Ogspy
; COMDAT cuiClrScr
_TEXT SEGMENT
csbi$ = 48
coordScreen$ = 96
cCharsWritten$ = 104
cuiClrScr PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\cui.c
; Line 69
$LN8:
mov QWORD PTR [rsp+24], rsi
push rdi
sub rsp, 80 ; 00000050H
; Line 78
mov rcx, QWORD PTR g_ConOut
lea rdx, QWORD PTR csbi$[rsp]
xor esi, esi
mov DWORD PTR coordScreen$[rsp], esi
call QWORD PTR __imp_GetConsoleScreenBufferInfo
test eax, eax
je SHORT $LN1@cuiClrScr
; Line 81
movsx eax, WORD PTR csbi$[rsp]
; Line 83
lea edx, QWORD PTR [rsi+32]
movsx edi, WORD PTR csbi$[rsp+2]
mov r9d, esi
mov rcx, QWORD PTR g_ConOut
imul edi, eax
lea rax, QWORD PTR cCharsWritten$[rsp]
mov QWORD PTR [rsp+32], rax
mov r8d, edi
call QWORD PTR __imp_FillConsoleOutputCharacterW
test eax, eax
je SHORT $LN1@cuiClrScr
; Line 87
mov rcx, QWORD PTR g_ConOut
lea rdx, QWORD PTR csbi$[rsp]
call QWORD PTR __imp_GetConsoleScreenBufferInfo
test eax, eax
je SHORT $LN1@cuiClrScr
; Line 90
movzx edx, WORD PTR csbi$[rsp+8]
lea rax, QWORD PTR cCharsWritten$[rsp]
mov rcx, QWORD PTR g_ConOut
mov r9d, esi
mov r8d, edi
mov QWORD PTR [rsp+32], rax
call QWORD PTR __imp_FillConsoleOutputAttribute
test eax, eax
je SHORT $LN1@cuiClrScr
; Line 94
mov rcx, QWORD PTR g_ConOut
mov edx, esi
call QWORD PTR __imp_SetConsoleCursorPosition
$LN1@cuiClrScr:
; Line 95
mov rsi, QWORD PTR [rsp+112]
add rsp, 80 ; 00000050H
pop rdi
ret 0
cuiClrScr ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT cuiPrintTextLastErrorW
_TEXT SEGMENT
szTextBuffer$ = 64
UseReturn$ = 1104
cuiPrintTextLastErrorW PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\cui.c
; Line 217
$LN4:
push rbx
sub rsp, 1088 ; 00000440H
mov ebx, ecx
; Line 219
call QWORD PTR __imp_GetLastError
; Line 221
and QWORD PTR [rsp+48], 0
lea rcx, QWORD PTR szTextBuffer$[rsp]
mov DWORD PTR [rsp+40], 512 ; 00000200H
mov r9d, 1024 ; 00000400H
mov QWORD PTR [rsp+32], rcx
mov r8d, eax
mov ecx, 4096 ; 00001000H
xor edx, edx
call QWORD PTR __imp_FormatMessageW
; Line 222
mov edx, ebx
lea rcx, QWORD PTR szTextBuffer$[rsp]
call cuiPrintTextW
; Line 223
add rsp, 1088 ; 00000440H
pop rbx
ret 0
cuiPrintTextLastErrorW ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT cuiPrintTextLastErrorA
_TEXT SEGMENT
szTextBuffer$ = 64
UseReturn$ = 592
cuiPrintTextLastErrorA PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\cui.c
; Line 197
$LN4:
push rbx
sub rsp, 576 ; 00000240H
mov ebx, ecx
; Line 199
call QWORD PTR __imp_GetLastError
; Line 201
and QWORD PTR [rsp+48], 0
lea rcx, QWORD PTR szTextBuffer$[rsp]
mov DWORD PTR [rsp+40], 512 ; 00000200H
mov r9d, 1024 ; 00000400H
mov QWORD PTR [rsp+32], rcx
mov r8d, eax
mov ecx, 4096 ; 00001000H
xor edx, edx
call QWORD PTR __imp_FormatMessageA
; Line 202
mov edx, ebx
lea rcx, QWORD PTR szTextBuffer$[rsp]
call cuiPrintTextA
; Line 203
add rsp, 576 ; 00000240H
pop rbx
ret 0
cuiPrintTextLastErrorA ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT cuiPrintTextW
_TEXT SEGMENT
bytesIO$ = 64
lpText$ = 64
UseReturn$ = 72
cuiPrintTextW PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\cui.c
; Line 154
$LN13:
; Line 159
test rcx, rcx
je $LN11@cuiPrintTe
mov QWORD PTR [rsp+16], rbx
mov QWORD PTR [rsp+24], rsi
push rdi
sub rsp, 48 ; 00000030H
; Line 154
mov esi, edx
mov rdi, rcx
; Line 162
call _strlen_w
; Line 163
lea r8, QWORD PTR [rax-1]
cmp r8, 1039 ; 0000040fH
ja $LN4@cuiPrintTe
; Line 166
lea rbx, QWORD PTR [rax*2+6]
; Line 167
call QWORD PTR __imp_GetProcessHeap
mov r8, rbx
mov edx, 8
mov rcx, rax
call QWORD PTR __imp_HeapAlloc
mov rbx, rax
; Line 168
test rax, rax
je SHORT $LN4@cuiPrintTe
; Line 170
mov rdx, rdi
mov rcx, rax
call _strcpy_w
; Line 171
test esi, esi
je SHORT $LN6@cuiPrintTe
lea rdx, OFFSET FLAT:??_C@_15JNBOKNOG@?$AA?$AN?$AA?6@
mov rcx, rbx
call _strcat_w
$LN6@cuiPrintTe:
; Line 173
mov rcx, rbx
call _strlen_w
; Line 175
and QWORD PTR [rsp+32], 0
lea r9, QWORD PTR bytesIO$[rsp]
cmp DWORD PTR g_ConsoleOutput, 0
mov rdx, rbx
mov rcx, QWORD PTR g_ConOut
je SHORT $LN7@cuiPrintTe
; Line 176
mov r8d, eax
call QWORD PTR __imp_WriteConsoleW
; Line 177
jmp SHORT $LN8@cuiPrintTe
$LN7@cuiPrintTe:
; Line 179
lea r8d, DWORD PTR [rax+rax]
call QWORD PTR __imp_WriteFile
$LN8@cuiPrintTe:
; Line 181
call QWORD PTR __imp_GetProcessHeap
mov r8, rbx
xor edx, edx
mov rcx, rax
call QWORD PTR __imp_HeapFree
$LN4@cuiPrintTe:
; Line 183
mov rbx, QWORD PTR [rsp+72]
mov rsi, QWORD PTR [rsp+80]
add rsp, 48 ; 00000030H
pop rdi
$LN11@cuiPrintTe:
ret 0
cuiPrintTextW ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT cuiPrintTextA
_TEXT SEGMENT
bytesIO$ = 64
lpText$ = 64
UseReturn$ = 72
cuiPrintTextA PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\cui.c
; Line 110
$LN13:
; Line 115
test rcx, rcx
je $LN11@cuiPrintTe
mov QWORD PTR [rsp+16], rbx
mov QWORD PTR [rsp+24], rsi
push rdi
sub rsp, 48 ; 00000030H
; Line 110
mov esi, edx
mov rdi, rcx
; Line 118
call _strlen_a
; Line 119
lea r8, QWORD PTR [rax-1]
cmp r8, 1039 ; 0000040fH
ja $LN4@cuiPrintTe
; Line 122
lea rbx, QWORD PTR [rax+5]
; Line 123
call QWORD PTR __imp_GetProcessHeap
mov r8, rbx
mov edx, 8
mov rcx, rax
call QWORD PTR __imp_HeapAlloc
mov rbx, rax
; Line 124
test rax, rax
je SHORT $LN4@cuiPrintTe
; Line 126
mov rdx, rdi
mov rcx, rax
call _strcpy_a
; Line 127
test esi, esi
je SHORT $LN6@cuiPrintTe
lea rdx, OFFSET FLAT:??_C@_02PCIJFNDE@?$AN?6@
mov rcx, rbx
call _strcat_a
$LN6@cuiPrintTe:
; Line 129
mov rcx, rbx
call _strlen_a
; Line 131
and QWORD PTR [rsp+32], 0
lea r9, QWORD PTR bytesIO$[rsp]
cmp DWORD PTR g_ConsoleOutput, 0
mov r8d, eax
mov rcx, QWORD PTR g_ConOut
mov rdx, rbx
je SHORT $LN7@cuiPrintTe
; Line 132
call QWORD PTR __imp_WriteConsoleA
; Line 133
jmp SHORT $LN8@cuiPrintTe
$LN7@cuiPrintTe:
; Line 135
call QWORD PTR __imp_WriteFile
$LN8@cuiPrintTe:
; Line 137
call QWORD PTR __imp_GetProcessHeap
mov r8, rbx
xor edx, edx
mov rcx, rax
call QWORD PTR __imp_HeapFree
$LN4@cuiPrintTe:
; Line 139
mov rbx, QWORD PTR [rsp+72]
mov rsi, QWORD PTR [rsp+80]
add rsp, 48 ; 00000030H
pop rdi
$LN11@cuiPrintTe:
ret 0
cuiPrintTextA ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT cuiInitialize
_TEXT SEGMENT
dummy$ = 64
InitInput$ = 64
IsConsoleOutput$ = 72
cuiInitialize PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\cui.c
; Line 37
$LN7:
mov QWORD PTR [rsp+16], rbx
push rdi
sub rsp, 48 ; 00000030H
mov ebx, ecx
mov rdi, rdx
; Line 40
mov ecx, -11 ; fffffff5H
call QWORD PTR __imp_GetStdHandle
mov QWORD PTR g_ConOut, rax
; Line 42
test ebx, ebx
je SHORT $LN2@cuiInitial
mov ecx, -10 ; fffffff6H
call QWORD PTR __imp_GetStdHandle
mov QWORD PTR g_ConIn, rax
mov rax, QWORD PTR g_ConOut
$LN2@cuiInitial:
; Line 44
mov edx, 7
mov rcx, rax
call QWORD PTR __imp_SetConsoleMode
; Line 47
mov rcx, QWORD PTR g_ConOut
lea rdx, QWORD PTR dummy$[rsp]
mov DWORD PTR g_ConsoleOutput, 1
call QWORD PTR __imp_GetConsoleMode
test eax, eax
jne SHORT $LN3@cuiInitial
; Line 48
and DWORD PTR g_ConsoleOutput, eax
; Line 49
lea r9, QWORD PTR dummy$[rsp]
and QWORD PTR [rsp+32], 0
lea r8d, QWORD PTR [rax+2]
mov rcx, QWORD PTR g_ConOut
lea rdx, OFFSET FLAT:g_BE
call QWORD PTR __imp_WriteFile
$LN3@cuiInitial:
; Line 52
test rdi, rdi
je SHORT $LN4@cuiInitial
; Line 53
mov eax, DWORD PTR g_ConsoleOutput
mov DWORD PTR [rdi], eax
$LN4@cuiInitial:
; Line 56
mov rbx, QWORD PTR [rsp+72]
add rsp, 48 ; 00000030H
pop rdi
ret 0
cuiInitialize ENDP
_TEXT ENDS
END

View File

@ -0,0 +1,521 @@
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.28.29335.0
include listing.inc
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
PUBLIC scmInstallDriver
PUBLIC scmStartDriver
PUBLIC scmOpenDevice
PUBLIC scmStopDriver
PUBLIC scmRemoveDriver
PUBLIC scmUnloadDeviceDriver
PUBLIC scmLoadDeviceDriver
PUBLIC ??_C@_1O@GHDNIFBI@?$AA?2?$AA?2?$AA?4?$AA?2?$AA?$CF?$AAs@ ; `string'
EXTRN __imp_CreateFileW:PROC
EXTRN __imp_CloseHandle:PROC
EXTRN __imp_GetLastError:PROC
EXTRN __imp_SetLastError:PROC
EXTRN __imp_Sleep:PROC
EXTRN __imp_wsprintfW:PROC
EXTRN __imp_CloseServiceHandle:PROC
EXTRN __imp_ControlService:PROC
EXTRN __imp_CreateServiceW:PROC
EXTRN __imp_DeleteService:PROC
EXTRN __imp_OpenSCManagerW:PROC
EXTRN __imp_OpenServiceW:PROC
EXTRN __imp_StartServiceW:PROC
; COMDAT pdata
pdata SEGMENT
$pdata$RtlSecureZeroMemory DD imagerel $LN4
DD imagerel $LN4+27
DD imagerel $unwind$RtlSecureZeroMemory
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$scmInstallDriver DD imagerel $LN5
DD imagerel $LN5+96
DD imagerel $unwind$scmInstallDriver
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$scmStartDriver DD imagerel $LN7
DD imagerel $LN7+90
DD imagerel $unwind$scmStartDriver
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$scmOpenDevice DD imagerel $LN9
DD imagerel $LN9+146
DD imagerel $unwind$scmOpenDevice
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$scmStopDriver DD imagerel $LN15
DD imagerel $LN15+127
DD imagerel $unwind$scmStopDriver
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$scmRemoveDriver DD imagerel $LN5
DD imagerel $LN5+65
DD imagerel $unwind$scmRemoveDriver
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$scmUnloadDeviceDriver DD imagerel $LN6
DD imagerel $LN6+104
DD imagerel $unwind$scmUnloadDeviceDriver
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$scmLoadDeviceDriver DD imagerel $LN6
DD imagerel $LN6+156
DD imagerel $unwind$scmLoadDeviceDriver
pdata ENDS
; COMDAT ??_C@_1O@GHDNIFBI@?$AA?2?$AA?2?$AA?4?$AA?2?$AA?$CF?$AAs@
CONST SEGMENT
??_C@_1O@GHDNIFBI@?$AA?2?$AA?2?$AA?4?$AA?2?$AA?$CF?$AAs@ DB '\', 00H, '\', 00H
DB '.', 00H, '\', 00H, '%', 00H, 's', 00H, 00H, 00H ; `string'
CONST ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$scmLoadDeviceDriver DD 0a1901H
DD 097419H
DD 086419H
DD 075419H
DD 063419H
DD 0e0153219H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$scmUnloadDeviceDriver DD 060f01H
DD 07640fH
DD 06340fH
DD 0700b320fH
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$scmRemoveDriver DD 040a01H
DD 06340aH
DD 07006320aH
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$scmStopDriver DD 060f01H
DD 0b640fH
DD 0a340fH
DD 0700b720fH
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$scmOpenDevice DD 050d01H
DD 01a340dH
DD 018010dH
DD 07006H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$scmStartDriver DD 040a01H
DD 06340aH
DD 07006320aH
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$scmInstallDriver DD 010701H
DD 0e207H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$RtlSecureZeroMemory DD 020501H
DD 017405H
xdata ENDS
; Function compile flags: /Ogspy
; COMDAT scmLoadDeviceDriver
_TEXT SEGMENT
Name$ = 48
Path$ = 56
lphDevice$ = 64
scmLoadDeviceDriver PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\instdrv.c
; Line 237
$LN6:
mov rax, rsp
mov QWORD PTR [rax+8], rbx
mov QWORD PTR [rax+16], rbp
mov QWORD PTR [rax+24], rsi
mov QWORD PTR [rax+32], rdi
push r14
sub rsp, 32 ; 00000020H
; Line 239
xor ebx, ebx
mov rbp, r8
mov r14, rdx
mov rdi, rcx
; Line 241
test rcx, rcx
jne SHORT $LN2@scmLoadDev
; Line 242
xor eax, eax
jmp SHORT $LN1@scmLoadDev
$LN2@scmLoadDev:
; Line 245
xor edx, edx
xor ecx, ecx
mov r8d, 983103 ; 000f003fH
call QWORD PTR __imp_OpenSCManagerW
mov rsi, rax
; Line 246
test rax, rax
je SHORT $LN3@scmLoadDev
; Line 247
mov rdx, rdi
mov rcx, rax
call scmRemoveDriver
; Line 248
mov r8, r14
mov rdx, rdi
mov rcx, rsi
call scmInstallDriver
; Line 249
mov rdx, rdi
mov rcx, rsi
call scmStartDriver
; Line 250
mov rdx, rbp
mov rcx, rdi
call scmOpenDevice
; Line 251
mov rcx, rsi
mov ebx, eax
call QWORD PTR __imp_CloseServiceHandle
$LN3@scmLoadDev:
; Line 253
mov eax, ebx
$LN1@scmLoadDev:
; Line 254
mov rbx, QWORD PTR [rsp+48]
mov rbp, QWORD PTR [rsp+56]
mov rsi, QWORD PTR [rsp+64]
mov rdi, QWORD PTR [rsp+72]
add rsp, 32 ; 00000020H
pop r14
ret 0
scmLoadDeviceDriver ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT scmUnloadDeviceDriver
_TEXT SEGMENT
Name$ = 48
scmUnloadDeviceDriver PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\instdrv.c
; Line 207
$LN6:
mov QWORD PTR [rsp+8], rbx
mov QWORD PTR [rsp+16], rsi
push rdi
sub rsp, 32 ; 00000020H
; Line 209
xor ebx, ebx
mov rdi, rcx
; Line 211
test rcx, rcx
jne SHORT $LN2@scmUnloadD
; Line 212
xor eax, eax
jmp SHORT $LN1@scmUnloadD
$LN2@scmUnloadD:
; Line 215
xor edx, edx
xor ecx, ecx
mov r8d, 983103 ; 000f003fH
call QWORD PTR __imp_OpenSCManagerW
mov rsi, rax
; Line 216
test rax, rax
je SHORT $LN3@scmUnloadD
; Line 217
mov rdx, rdi
mov rcx, rax
call scmStopDriver
; Line 218
mov rdx, rdi
mov rcx, rsi
call scmRemoveDriver
; Line 219
mov rcx, rsi
mov ebx, eax
call QWORD PTR __imp_CloseServiceHandle
$LN3@scmUnloadD:
; Line 221
mov eax, ebx
$LN1@scmUnloadD:
; Line 222
mov rbx, QWORD PTR [rsp+48]
mov rsi, QWORD PTR [rsp+56]
add rsp, 32 ; 00000020H
pop rdi
ret 0
scmUnloadDeviceDriver ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT scmRemoveDriver
_TEXT SEGMENT
SchSCManager$ = 48
DriverName$ = 56
scmRemoveDriver PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\instdrv.c
; Line 184
$LN5:
mov QWORD PTR [rsp+8], rbx
push rdi
sub rsp, 32 ; 00000020H
; Line 188
mov r8d, 983551 ; 000f01ffH
xor ebx, ebx
call QWORD PTR __imp_OpenServiceW
mov rdi, rax
; Line 189
test rax, rax
je SHORT $LN2@scmRemoveD
; Line 190
mov rcx, rax
call QWORD PTR __imp_DeleteService
; Line 191
mov rcx, rdi
mov ebx, eax
call QWORD PTR __imp_CloseServiceHandle
$LN2@scmRemoveD:
; Line 193
mov eax, ebx
; Line 194
mov rbx, QWORD PTR [rsp+48]
add rsp, 32 ; 00000020H
pop rdi
ret 0
scmRemoveDriver ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT scmStopDriver
_TEXT SEGMENT
serviceStatus$ = 32
SchSCManager$ = 80
DriverName$ = 88
scmStopDriver PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\instdrv.c
; Line 140
$LN15:
mov QWORD PTR [rsp+8], rbx
mov QWORD PTR [rsp+16], rsi
push rdi
sub rsp, 64 ; 00000040H
; Line 147
mov r8d, 983551 ; 000f01ffH
call QWORD PTR __imp_OpenServiceW
mov rdi, rax
; Line 148
test rax, rax
je SHORT $LN1@scmStopDri
$LN5@scmStopDri:
; Line 152
mov ebx, 5
$LL4@scmStopDri:
; Line 154
xor ecx, ecx
call QWORD PTR __imp_SetLastError
; Line 156
lea r8, QWORD PTR serviceStatus$[rsp]
mov edx, 1
mov rcx, rdi
call QWORD PTR __imp_ControlService
mov esi, eax
; Line 157
test eax, eax
jne SHORT $LN3@scmStopDri
; Line 160
call QWORD PTR __imp_GetLastError
cmp eax, 1051 ; 0000041bH
jne SHORT $LN3@scmStopDri
; Line 163
lea ecx, QWORD PTR [rax-51]
call QWORD PTR __imp_Sleep
; Line 164
sub ebx, 1
; Line 165
jne SHORT $LL4@scmStopDri
$LN3@scmStopDri:
; Line 167
mov rcx, rdi
call QWORD PTR __imp_CloseServiceHandle
; Line 169
mov eax, esi
$LN1@scmStopDri:
; Line 170
mov rbx, QWORD PTR [rsp+80]
mov rsi, QWORD PTR [rsp+88]
add rsp, 64 ; 00000040H
pop rdi
ret 0
scmStopDriver ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT scmOpenDevice
_TEXT SEGMENT
completeDeviceName$ = 64
DriverName$ = 208
lphDevice$ = 216
scmOpenDevice PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\instdrv.c
; Line 100
$LN9:
mov QWORD PTR [rsp+8], rbx
push rdi
sub rsp, 192 ; 000000c0H
mov r8, rcx
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h
; Line 20225
lea rdi, QWORD PTR completeDeviceName$[rsp]
xor eax, eax
; File J:\Workspace\drivers\TDL\Source\Furutaka\instdrv.c
; Line 100
mov rbx, rdx
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h
; Line 20225
mov ecx, 128 ; 00000080H
; File J:\Workspace\drivers\TDL\Source\Furutaka\instdrv.c
; Line 105
lea rdx, OFFSET FLAT:??_C@_1O@GHDNIFBI@?$AA?2?$AA?2?$AA?4?$AA?2?$AA?$CF?$AAs@
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h
; Line 20225
rep stosb
; File J:\Workspace\drivers\TDL\Source\Furutaka\instdrv.c
; Line 105
lea rcx, QWORD PTR completeDeviceName$[rsp]
call QWORD PTR __imp_wsprintfW
; Line 107
and QWORD PTR [rsp+48], 0
lea rcx, QWORD PTR completeDeviceName$[rsp]
mov DWORD PTR [rsp+40], 128 ; 00000080H
xor r9d, r9d
xor r8d, r8d
mov DWORD PTR [rsp+32], 3
mov edx, -1073741824 ; c0000000H
call QWORD PTR __imp_CreateFileW
; Line 115
cmp rax, -1
jne SHORT $LN2@scmOpenDev
; Line 116
xor eax, eax
jmp SHORT $LN1@scmOpenDev
$LN2@scmOpenDev:
; Line 118
test rbx, rbx
je SHORT $LN3@scmOpenDev
; Line 119
mov QWORD PTR [rbx], rax
; Line 120
jmp SHORT $LN4@scmOpenDev
$LN3@scmOpenDev:
; Line 122
mov rcx, rax
call QWORD PTR __imp_CloseHandle
$LN4@scmOpenDev:
; Line 125
mov eax, 1
$LN1@scmOpenDev:
; Line 126
mov rbx, QWORD PTR [rsp+208]
add rsp, 192 ; 000000c0H
pop rdi
ret 0
scmOpenDevice ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT scmStartDriver
_TEXT SEGMENT
SchSCManager$ = 48
DriverName$ = 56
scmStartDriver PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\instdrv.c
; Line 69
$LN7:
mov QWORD PTR [rsp+8], rbx
push rdi
sub rsp, 32 ; 00000020H
; Line 73
mov r8d, 983551 ; 000f01ffH
call QWORD PTR __imp_OpenServiceW
; Line 77
xor ebx, ebx
mov rdi, rax
test rax, rax
je SHORT $LN1@scmStartDr
$LN2@scmStartDr:
; Line 80
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call QWORD PTR __imp_StartServiceW
test eax, eax
jne SHORT $LN4@scmStartDr
call QWORD PTR __imp_GetLastError
cmp eax, 1056 ; 00000420H
jne SHORT $LN5@scmStartDr
$LN4@scmStartDr:
mov ebx, 1
$LN5@scmStartDr:
; Line 83
mov rcx, rdi
call QWORD PTR __imp_CloseServiceHandle
; Line 85
mov eax, ebx
$LN1@scmStartDr:
; Line 86
mov rbx, QWORD PTR [rsp+48]
add rsp, 32 ; 00000020H
pop rdi
ret 0
scmStartDriver ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT scmInstallDriver
_TEXT SEGMENT
SchSCManager$ = 128
DriverName$ = 136
ServiceExe$ = 144
scmInstallDriver PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\instdrv.c
; Line 32
$LN5:
mov rax, rsp
sub rsp, 120 ; 00000078H
; Line 35
and QWORD PTR [rax-24], 0
mov r9d, 983551 ; 000f01ffH
and QWORD PTR [rax-32], 0
and QWORD PTR [rax-40], 0
and QWORD PTR [rax-48], 0
and QWORD PTR [rax-56], 0
mov QWORD PTR [rax-64], r8
mov r8, rdx
mov DWORD PTR [rax-72], 1
mov DWORD PTR [rax-80], 3
mov DWORD PTR [rax-88], 1
call QWORD PTR __imp_CreateServiceW
; Line 49
test rax, rax
je SHORT $LN1@scmInstall
$LN2@scmInstall:
; Line 53
mov rcx, rax
call QWORD PTR __imp_CloseServiceHandle
; Line 54
mov eax, 1
$LN1@scmInstall:
; Line 55
add rsp, 120 ; 00000078H
ret 0
scmInstallDriver ENDP
_TEXT ENDS
END

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,117 @@
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.28.29335.0
include listing.inc
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
PUBLIC u64tohex_a
PUBLIC u64tohex_w
; COMDAT pdata
pdata SEGMENT
$pdata$u64tohex_w DD imagerel $LN19
DD imagerel $LN19+93
DD imagerel $unwind$u64tohex_w
pdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$u64tohex_w DD 020501H
DD 013405H
xdata ENDS
; Function compile flags: /Ogspy
; COMDAT u64tohex_w
_TEXT SEGMENT
x$ = 8
s$ = 16
u64tohex_w PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\u64tohex.c
; Line 28
$LN19:
mov QWORD PTR [rsp+8], rbx
; Line 32
xor ebx, ebx
mov r8, rdx
mov r9, rcx
test rdx, rdx
jne SHORT $LN5@u64tohex_w
; Line 33
lea eax, QWORD PTR [rdx+16]
jmp SHORT $LN1@u64tohex_w
$LN5@u64tohex_w:
; Line 35
lea r10, QWORD PTR [rdx+30]
mov edx, 16
mov r11d, edx
$LL11@u64tohex_w:
; Line 36
movzx ecx, r9w
; Line 37
shr r9, 4
and cx, 15
; Line 44
cmp cx, 10
sbb ax, ax
and ax, 65529 ; 0000fff9H
add ax, 55 ; 00000037H
add ax, cx
mov WORD PTR [r10], ax
lea r10, QWORD PTR [r10-2]
sub r11, 1
jne SHORT $LL11@u64tohex_w
; Line 47
mov WORD PTR [r8+32], bx
; Line 48
mov rax, rdx
$LN1@u64tohex_w:
; Line 49
mov rbx, QWORD PTR [rsp+8]
ret 0
u64tohex_w ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT u64tohex_a
_TEXT SEGMENT
x$ = 8
s$ = 16
u64tohex_a PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\u64tohex.c
; Line 4
mov r8, rdx
mov r9, rcx
; Line 8
test rdx, rdx
jne SHORT $LN5@u64tohex_a
; Line 9
lea eax, QWORD PTR [rdx+16]
; Line 25
ret 0
$LN5@u64tohex_a:
; Line 11
lea r10, QWORD PTR [rdx+15]
mov edx, 16
mov r11d, edx
$LL11@u64tohex_a:
; Line 12
mov cl, r9b
; Line 13
shr r9, 4
and cl, 15
; Line 20
cmp cl, 10
sbb al, al
and al, -7
add al, 55 ; 00000037H
add al, cl
mov BYTE PTR [r10], al
dec r10
sub r11, 1
jne SHORT $LL11@u64tohex_a
; Line 23
mov BYTE PTR [r8+16], r11b
; Line 24
mov rax, rdx
; Line 25
ret 0
u64tohex_a ENDP
_TEXT ENDS
END

View File

@ -0,0 +1,166 @@
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.28.29335.0
include listing.inc
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
PUBLIC u64tostr_a
PUBLIC u64tostr_w
; COMDAT pdata
pdata SEGMENT
$pdata$u64tostr_a DD imagerel $LN19
DD imagerel $LN19+123
DD imagerel $unwind$u64tostr_a
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$u64tostr_w DD imagerel $LN19
DD imagerel $LN19+161
DD imagerel $unwind$u64tostr_w
pdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$u64tostr_w DD 060f01H
DD 03740fH
DD 02640aH
DD 013405H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$u64tostr_a DD 020501H
DD 013405H
xdata ENDS
; Function compile flags: /Ogspy
; COMDAT u64tostr_w
_TEXT SEGMENT
x$ = 8
s$ = 16
u64tostr_w PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\u64tostr.c
; Line 26
$LN19:
mov QWORD PTR [rsp+8], rbx
mov QWORD PTR [rsp+16], rsi
mov QWORD PTR [rsp+24], rdi
mov r10, rdx
; Line 27
mov rdx, rcx
mov r9, rcx
; Line 30
mov rsi, -3689348814741910323 ; cccccccccccccccdH
mov r8d, 1
cmp rcx, 10
jb SHORT $LN3@u64tostr_w
$LL2@u64tostr_w:
; Line 31
mov rax, rsi
; Line 32
inc r8
mul rdx
shr rdx, 3
cmp rdx, 10
jae SHORT $LL2@u64tostr_w
$LN3@u64tostr_w:
; Line 35
xor edi, edi
test r10, r10
je SHORT $LN17@u64tostr_w
; Line 38
mov r11, r8
test r8, r8
je SHORT $LN5@u64tostr_w
lea rbx, QWORD PTR [r10-2]
lea rbx, QWORD PTR [rbx+r8*2]
$LL6@u64tostr_w:
; Line 39
mov rax, rsi
mul r9
shr rdx, 3
movzx eax, dx
shl ax, 2
lea ecx, DWORD PTR [rax+rdx]
add cx, cx
sub r9w, cx
add r9w, 48 ; 00000030H
mov WORD PTR [rbx], r9w
; Line 40
mov r9, rdx
lea rbx, QWORD PTR [rbx-2]
sub r11, 1
jne SHORT $LL6@u64tostr_w
$LN5@u64tostr_w:
; Line 43
mov WORD PTR [r10+r8*2], di
$LN17@u64tostr_w:
; Line 45
mov rbx, QWORD PTR [rsp+8]
mov rax, r8
mov rsi, QWORD PTR [rsp+16]
mov rdi, QWORD PTR [rsp+24]
ret 0
u64tostr_w ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT u64tostr_a
_TEXT SEGMENT
x$ = 8
s$ = 16
u64tostr_a PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\u64tostr.c
; Line 4
$LN19:
mov QWORD PTR [rsp+8], rbx
mov r10, rdx
; Line 5
mov rdx, rcx
mov r9, rcx
; Line 8
mov rbx, -3689348814741910323 ; cccccccccccccccdH
mov r8d, 1
cmp rcx, 10
jb SHORT $LN3@u64tostr_a
$LL2@u64tostr_a:
; Line 9
mov rax, rbx
; Line 10
inc r8
mul rdx
shr rdx, 3
cmp rdx, 10
jae SHORT $LL2@u64tostr_a
$LN3@u64tostr_a:
; Line 13
test r10, r10
je SHORT $LN17@u64tostr_a
; Line 16
mov r11, r8
test r8, r8
je SHORT $LN5@u64tostr_a
$LL6@u64tostr_a:
; Line 17
mov rax, rbx
mul r9
shr rdx, 3
mov al, dl
shl al, 2
lea ecx, DWORD PTR [rax+rdx]
add cl, cl
sub r9b, cl
add r9b, 48 ; 00000030H
mov BYTE PTR [r10+r11-1], r9b
; Line 18
mov r9, rdx
sub r11, 1
jne SHORT $LL6@u64tostr_a
$LN5@u64tostr_a:
; Line 21
mov BYTE PTR [r8+r10], 0
$LN17@u64tostr_a:
; Line 23
mov rbx, QWORD PTR [rsp+8]
mov rax, r8
ret 0
u64tostr_a ENDP
_TEXT ENDS
END

View File

@ -0,0 +1,117 @@
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.28.29335.0
include listing.inc
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
PUBLIC ultohex_a
PUBLIC ultohex_w
; COMDAT pdata
pdata SEGMENT
$pdata$ultohex_w DD imagerel $LN19
DD imagerel $LN19+93
DD imagerel $unwind$ultohex_w
pdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$ultohex_w DD 020501H
DD 013405H
xdata ENDS
; Function compile flags: /Ogspy
; COMDAT ultohex_w
_TEXT SEGMENT
x$ = 8
s$ = 16
ultohex_w PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\ultohex.c
; Line 28
$LN19:
mov QWORD PTR [rsp+8], rbx
; Line 32
xor ebx, ebx
mov r8, rdx
mov r9d, ecx
test rdx, rdx
jne SHORT $LN5@ultohex_w
; Line 33
lea eax, QWORD PTR [rdx+8]
jmp SHORT $LN1@ultohex_w
$LN5@ultohex_w:
; Line 35
lea r10, QWORD PTR [rdx+14]
mov edx, 8
mov r11d, edx
$LL11@ultohex_w:
; Line 36
movzx ecx, r9w
; Line 37
shr r9d, 4
and cx, 15
; Line 44
cmp cx, 10
sbb ax, ax
and ax, 65529 ; 0000fff9H
add ax, 55 ; 00000037H
add ax, cx
mov WORD PTR [r10], ax
lea r10, QWORD PTR [r10-2]
sub r11, 1
jne SHORT $LL11@ultohex_w
; Line 47
mov WORD PTR [r8+16], bx
; Line 48
mov rax, rdx
$LN1@ultohex_w:
; Line 49
mov rbx, QWORD PTR [rsp+8]
ret 0
ultohex_w ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT ultohex_a
_TEXT SEGMENT
x$ = 8
s$ = 16
ultohex_a PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\ultohex.c
; Line 4
mov r8, rdx
mov r9d, ecx
; Line 8
test rdx, rdx
jne SHORT $LN5@ultohex_a
; Line 9
lea eax, QWORD PTR [rdx+8]
; Line 25
ret 0
$LN5@ultohex_a:
; Line 11
lea r10, QWORD PTR [rdx+7]
mov edx, 8
mov r11d, edx
$LL11@ultohex_a:
; Line 12
mov cl, r9b
; Line 13
shr r9d, 4
and cl, 15
; Line 20
cmp cl, 10
sbb al, al
and al, -7
add al, 55 ; 00000037H
add al, cl
mov BYTE PTR [r10], al
dec r10
sub r11, 1
jne SHORT $LL11@ultohex_a
; Line 23
mov BYTE PTR [r8+8], r11b
; Line 24
mov rax, rdx
; Line 25
ret 0
ultohex_a ENDP
_TEXT ENDS
END

View File

@ -0,0 +1,149 @@
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.28.29335.0
include listing.inc
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
PUBLIC ultostr_a
PUBLIC ultostr_w
; COMDAT pdata
pdata SEGMENT
$pdata$ultostr_w DD imagerel $LN19
DD imagerel $LN19+139
DD imagerel $unwind$ultostr_w
pdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$ultostr_w DD 040a01H
DD 02740aH
DD 013405H
xdata ENDS
; Function compile flags: /Ogspy
; COMDAT ultostr_w
_TEXT SEGMENT
x$ = 8
s$ = 16
ultostr_w PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\ultostr.c
; Line 26
$LN19:
mov QWORD PTR [rsp+8], rbx
mov QWORD PTR [rsp+16], rdi
mov r10, rdx
; Line 27
mov edx, ecx
mov r9d, ecx
; Line 28
mov r8d, 1
; Line 30
cmp ecx, 10
jb SHORT $LN3@ultostr_w
$LL2@ultostr_w:
; Line 31
mov eax, -858993459 ; cccccccdH
; Line 32
inc r8
mul edx
shr edx, 3
cmp edx, 10
jae SHORT $LL2@ultostr_w
$LN3@ultostr_w:
; Line 35
xor edi, edi
test r10, r10
je SHORT $LN17@ultostr_w
; Line 38
mov r11, r8
test r8, r8
je SHORT $LN5@ultostr_w
lea rbx, QWORD PTR [r10-2]
lea rbx, QWORD PTR [rbx+r8*2]
$LL6@ultostr_w:
; Line 39
mov eax, -858993459 ; cccccccdH
mul r9d
shr edx, 3
movzx eax, dx
shl ax, 2
lea ecx, DWORD PTR [rax+rdx]
add cx, cx
sub r9w, cx
add r9w, 48 ; 00000030H
mov WORD PTR [rbx], r9w
; Line 40
mov r9d, edx
lea rbx, QWORD PTR [rbx-2]
sub r11, 1
jne SHORT $LL6@ultostr_w
$LN5@ultostr_w:
; Line 43
mov WORD PTR [r10+r8*2], di
$LN17@ultostr_w:
; Line 45
mov rbx, QWORD PTR [rsp+8]
mov rax, r8
mov rdi, QWORD PTR [rsp+16]
ret 0
ultostr_w ENDP
_TEXT ENDS
; Function compile flags: /Ogspy
; COMDAT ultostr_a
_TEXT SEGMENT
x$ = 8
s$ = 16
ultostr_a PROC ; COMDAT
; File J:\Workspace\drivers\TDL\Source\Furutaka\minirtl\ultostr.c
; Line 4
mov r10, rdx
; Line 5
mov edx, ecx
mov r9d, ecx
; Line 6
mov r8d, 1
; Line 8
cmp ecx, 10
jb SHORT $LN3@ultostr_a
$LL2@ultostr_a:
; Line 9
mov eax, -858993459 ; cccccccdH
; Line 10
inc r8
mul edx
shr edx, 3
cmp edx, 10
jae SHORT $LL2@ultostr_a
$LN3@ultostr_a:
; Line 13
test r10, r10
je SHORT $LN17@ultostr_a
; Line 16
mov r11, r8
test r8, r8
je SHORT $LN5@ultostr_a
$LL6@ultostr_a:
; Line 17
mov eax, -858993459 ; cccccccdH
mul r9d
shr edx, 3
mov al, dl
shl al, 2
lea ecx, DWORD PTR [rax+rdx]
add cl, cl
sub r9b, cl
add r9b, 48 ; 00000030H
mov BYTE PTR [r10+r11-1], r9b
; Line 18
mov r9d, edx
sub r11, 1
jne SHORT $LL6@ultostr_a
$LN5@ultostr_a:
; Line 21
mov BYTE PTR [r8+r10], 0
$LN17@ultostr_a:
; Line 23
mov rax, r8
ret 0
ultostr_a ENDP
_TEXT ENDS
END

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.