1503 lines
38 KiB
NASM
1503 lines
38 KiB
NASM
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.28.29335.0
|
|
|
|
include listing.inc
|
|
|
|
INCLUDELIB LIBCMT
|
|
INCLUDELIB OLDNAMES
|
|
|
|
PUBLIC supGetNtOsBase
|
|
PUBLIC supGetSystemInfo
|
|
PUBLIC supQueryResourceData
|
|
PUBLIC supBackupVBoxDrv
|
|
PUBLIC supWriteBufferToFile
|
|
PUBLIC supIsObjectExists
|
|
PUBLIC supStopVBoxService
|
|
PUBLIC supDetectObjectCallback
|
|
PUBLIC supEnumSystemObjects
|
|
PUBLIC supxStopServiceShowError
|
|
PUBLIC ??_C@_1BE@HOKNBJFH@?$AA?2?$AAd?$AAr?$AAi?$AAv?$AAe?$AAr?$AAs?$AA?2@ ; `string'
|
|
PUBLIC ??_C@_1BO@PJIGFGPE@?$AAV?$AAB?$AAo?$AAx?$AAD?$AAr?$AAv?$AA?4?$AAb?$AAa?$AAc?$AAk?$AAu?$AAp@ ; `string'
|
|
PUBLIC ??_C@_1BI@MANNKNNC@?$AAV?$AAB?$AAo?$AAx?$AAD?$AAr?$AAv?$AA?4?$AAs?$AAy?$AAs@ ; `string'
|
|
PUBLIC ??_C@_1M@NAJFBAG@?$AAS?$AAC?$AAM?$AA?3?$AA?5@ ; `string'
|
|
PUBLIC ??_C@_1BE@JKNOOOMI@?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AA?$CI@ ; `string'
|
|
PUBLIC ??_C@_13DIBMAFH@?$AA?$CJ@ ; `string'
|
|
PUBLIC ??_C@_1CM@OCPAABHF@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAA?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AA?5?$AAt?$AAo@ ; `string'
|
|
PUBLIC ??_C@_1EE@PHBHNLM@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAd?$AAo@ ; `string'
|
|
PUBLIC ??_C@_1BI@BPEMHDAO@?$AAO?$AAp?$AAe?$AAn?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe@ ; `string'
|
|
PUBLIC ??_C@_1CK@IBJMKCMP@?$AAQ?$AAu?$AAe?$AAr?$AAy?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AAS?$AAt?$AAa@ ; `string'
|
|
PUBLIC ??_C@_1EA@ONGKHKHC@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAi?$AAs@ ; `string'
|
|
PUBLIC ??_C@_1DK@FIJGIPBO@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAs?$AAt@ ; `string'
|
|
PUBLIC ??_C@_1EE@CLBBMPNC@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAs?$AAt@ ; `string'
|
|
PUBLIC ??_C@_1DM@KJCMNIP@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAs?$AAt@ ; `string'
|
|
PUBLIC ??_C@_1BO@OEEIJKOC@?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe@ ; `string'
|
|
PUBLIC ??_C@_1CI@BLLFIFDA@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAW?$AAa?$AAi?$AAt?$AA?5?$AAt?$AAi?$AAm?$AAe?$AAd@ ; `string'
|
|
EXTRN __imp_GetFileAttributesW:PROC
|
|
EXTRN __imp_GetLastError:PROC
|
|
EXTRN __imp_Sleep:PROC
|
|
EXTRN __imp_GetTickCount:PROC
|
|
EXTRN __imp_GetSystemDirectoryW:PROC
|
|
EXTRN __imp_MoveFileExW:PROC
|
|
EXTRN __imp_CloseServiceHandle:PROC
|
|
EXTRN __imp_ControlService:PROC
|
|
EXTRN __imp_OpenServiceW:PROC
|
|
EXTRN __imp_QueryServiceStatusEx:PROC
|
|
EXTRN __imp_LdrAccessResource:PROC
|
|
EXTRN __imp_LdrFindResource_U:PROC
|
|
EXTRN __imp_RtlInitUnicodeString:PROC
|
|
EXTRN __imp_RtlFreeUnicodeString:PROC
|
|
EXTRN __imp_RtlDosPathNameToNtPathName_U:PROC
|
|
EXTRN __imp_RtlAllocateHeap:PROC
|
|
EXTRN __imp_RtlFreeHeap:PROC
|
|
EXTRN __imp_NtQuerySystemInformation:PROC
|
|
EXTRN __imp_NtClose:PROC
|
|
EXTRN __imp_NtOpenDirectoryObject:PROC
|
|
EXTRN __imp_NtQueryDirectoryObject:PROC
|
|
EXTRN __imp_NtCreateFile:PROC
|
|
EXTRN __imp_NtWriteFile:PROC
|
|
EXTRN __imp_NtFlushBuffersFile:PROC
|
|
EXTRN _strend_w:PROC
|
|
EXTRN _strcpy_w:PROC
|
|
EXTRN _strcat_w:PROC
|
|
EXTRN _strlen_w:PROC
|
|
EXTRN _strcmpi_w:PROC
|
|
EXTRN ultostr_w:PROC
|
|
EXTRN cuiPrintTextW:PROC
|
|
EXTRN __C_specific_handler: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$supGetNtOsBase DD imagerel $LN9
|
|
DD imagerel $LN9+62
|
|
DD imagerel $unwind$supGetNtOsBase
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$supGetSystemInfo DD imagerel $LN22
|
|
DD imagerel $LN22+166
|
|
DD imagerel $unwind$supGetSystemInfo
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$supQueryResourceData DD imagerel $LN9
|
|
DD imagerel $LN9+137
|
|
DD imagerel $unwind$supQueryResourceData
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$supBackupVBoxDrv DD imagerel $LN9
|
|
DD imagerel $LN9+256
|
|
DD imagerel $unwind$supBackupVBoxDrv
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$supWriteBufferToFile DD imagerel $LN33
|
|
DD imagerel $LN33+682
|
|
DD imagerel $unwind$supWriteBufferToFile
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$supWriteBufferToFile$fin$0 DD imagerel supWriteBufferToFile$fin$0
|
|
DD imagerel supWriteBufferToFile$fin$0+75
|
|
DD imagerel $unwind$supWriteBufferToFile$fin$0
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$supIsObjectExists DD imagerel $LN5
|
|
DD imagerel $LN5+68
|
|
DD imagerel $unwind$supIsObjectExists
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$supStopVBoxService DD imagerel $LN42
|
|
DD imagerel $LN42+622
|
|
DD imagerel $unwind$supStopVBoxService
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$supDetectObjectCallback DD imagerel $LN10
|
|
DD imagerel $LN10+78
|
|
DD imagerel $unwind$supDetectObjectCallback
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$supEnumSystemObjects DD imagerel $LN49
|
|
DD imagerel $LN49+513
|
|
DD imagerel $unwind$supEnumSystemObjects
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$supxStopServiceShowError DD imagerel $LN4
|
|
DD imagerel $LN4+134
|
|
DD imagerel $unwind$supxStopServiceShowError
|
|
pdata ENDS
|
|
; COMDAT ??_C@_1CI@BLLFIFDA@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAW?$AAa?$AAi?$AAt?$AA?5?$AAt?$AAi?$AAm?$AAe?$AAd@
|
|
CONST SEGMENT
|
|
??_C@_1CI@BLLFIFDA@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAW?$AAa?$AAi?$AAt?$AA?5?$AAt?$AAi?$AAm?$AAe?$AAd@ DB 'S'
|
|
DB 00H, 'C', 00H, 'M', 00H, ':', 00H, ' ', 00H, 'W', 00H, 'a', 00H
|
|
DB 'i', 00H, 't', 00H, ' ', 00H, 't', 00H, 'i', 00H, 'm', 00H, 'e'
|
|
DB 00H, 'd', 00H, ' ', 00H, 'o', 00H, 'u', 00H, 't', 00H, 00H, 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_1BO@OEEIJKOC@?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe@
|
|
CONST SEGMENT
|
|
??_C@_1BO@OEEIJKOC@?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe@ DB 'C'
|
|
DB 00H, 'o', 00H, 'n', 00H, 't', 00H, 'r', 00H, 'o', 00H, 'l', 00H
|
|
DB 'S', 00H, 'e', 00H, 'r', 00H, 'v', 00H, 'i', 00H, 'c', 00H, 'e'
|
|
DB 00H, 00H, 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_1DM@KJCMNIP@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAs?$AAt@
|
|
CONST SEGMENT
|
|
??_C@_1DM@KJCMNIP@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAs?$AAt@ DB 'S'
|
|
DB 00H, 'C', 00H, 'M', 00H, ':', 00H, ' ', 00H, 'S', 00H, 'e', 00H
|
|
DB 'r', 00H, 'v', 00H, 'i', 00H, 'c', 00H, 'e', 00H, ' ', 00H, 's'
|
|
DB 00H, 't', 00H, 'o', 00H, 'p', 00H, ' ', 00H, 't', 00H, 'i', 00H
|
|
DB 'm', 00H, 'e', 00H, 'd', 00H, ' ', 00H, 'o', 00H, 'u', 00H, 't'
|
|
DB 00H, '.', 00H, 0aH, 00H, 00H, 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_1EE@CLBBMPNC@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAs?$AAt@
|
|
CONST SEGMENT
|
|
??_C@_1EE@CLBBMPNC@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAs?$AAt@ DB 'S'
|
|
DB 00H, 'C', 00H, 'M', 00H, ':', 00H, ' ', 00H, 'S', 00H, 'e', 00H
|
|
DB 'r', 00H, 'v', 00H, 'i', 00H, 'c', 00H, 'e', 00H, ' ', 00H, 's'
|
|
DB 00H, 't', 00H, 'o', 00H, 'p', 00H, 'p', 00H, 'e', 00H, 'd', 00H
|
|
DB ' ', 00H, 's', 00H, 'u', 00H, 'c', 00H, 'c', 00H, 'e', 00H, 's'
|
|
DB 00H, 's', 00H, 'f', 00H, 'u', 00H, 'l', 00H, 'l', 00H, 'y', 00H
|
|
DB 00H, 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_1DK@FIJGIPBO@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAs?$AAt@
|
|
CONST SEGMENT
|
|
??_C@_1DK@FIJGIPBO@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAs?$AAt@ DB 'S'
|
|
DB 00H, 'C', 00H, 'M', 00H, ':', 00H, ' ', 00H, 'S', 00H, 'e', 00H
|
|
DB 'r', 00H, 'v', 00H, 'i', 00H, 'c', 00H, 'e', 00H, ' ', 00H, 's'
|
|
DB 00H, 't', 00H, 'o', 00H, 'p', 00H, ' ', 00H, 'p', 00H, 'e', 00H
|
|
DB 'n', 00H, 'd', 00H, 'i', 00H, 'n', 00H, 'g', 00H, '.', 00H, '.'
|
|
DB 00H, '.', 00H, 00H, 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_1EA@ONGKHKHC@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAi?$AAs@
|
|
CONST SEGMENT
|
|
??_C@_1EA@ONGKHKHC@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAi?$AAs@ DB 'S'
|
|
DB 00H, 'C', 00H, 'M', 00H, ':', 00H, ' ', 00H, 'S', 00H, 'e', 00H
|
|
DB 'r', 00H, 'v', 00H, 'i', 00H, 'c', 00H, 'e', 00H, ' ', 00H, 'i'
|
|
DB 00H, 's', 00H, ' ', 00H, 'a', 00H, 'l', 00H, 'r', 00H, 'e', 00H
|
|
DB 'a', 00H, 'd', 00H, 'y', 00H, ' ', 00H, 's', 00H, 't', 00H, 'o'
|
|
DB 00H, 'p', 00H, 'p', 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_1CK@IBJMKCMP@?$AAQ?$AAu?$AAe?$AAr?$AAy?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AAS?$AAt?$AAa@
|
|
CONST SEGMENT
|
|
??_C@_1CK@IBJMKCMP@?$AAQ?$AAu?$AAe?$AAr?$AAy?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AAS?$AAt?$AAa@ DB 'Q'
|
|
DB 00H, 'u', 00H, 'e', 00H, 'r', 00H, 'y', 00H, 'S', 00H, 'e', 00H
|
|
DB 'r', 00H, 'v', 00H, 'i', 00H, 'c', 00H, 'e', 00H, 'S', 00H, 't'
|
|
DB 00H, 'a', 00H, 't', 00H, 'u', 00H, 's', 00H, 'E', 00H, 'x', 00H
|
|
DB 00H, 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_1BI@BPEMHDAO@?$AAO?$AAp?$AAe?$AAn?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe@
|
|
CONST SEGMENT
|
|
??_C@_1BI@BPEMHDAO@?$AAO?$AAp?$AAe?$AAn?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe@ DB 'O'
|
|
DB 00H, 'p', 00H, 'e', 00H, 'n', 00H, 'S', 00H, 'e', 00H, 'r', 00H
|
|
DB 'v', 00H, 'i', 00H, 'c', 00H, 'e', 00H, 00H, 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_1EE@PHBHNLM@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAd?$AAo@
|
|
CONST SEGMENT
|
|
??_C@_1EE@PHBHNLM@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAd?$AAo@ DB 'S'
|
|
DB 00H, 'C', 00H, 'M', 00H, ':', 00H, ' ', 00H, 'S', 00H, 'e', 00H
|
|
DB 'r', 00H, 'v', 00H, 'i', 00H, 'c', 00H, 'e', 00H, ' ', 00H, 'd'
|
|
DB 00H, 'o', 00H, 'e', 00H, 's', 00H, ' ', 00H, 'n', 00H, 'o', 00H
|
|
DB 't', 00H, ' ', 00H, 'e', 00H, 'x', 00H, 'i', 00H, 's', 00H, 't'
|
|
DB 00H, ',', 00H, ' ', 00H, 's', 00H, 'k', 00H, 'i', 00H, 'p', 00H
|
|
DB 00H, 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_1CM@OCPAABHF@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAA?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AA?5?$AAt?$AAo@
|
|
CONST SEGMENT
|
|
??_C@_1CM@OCPAABHF@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAA?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AA?5?$AAt?$AAo@ DB 'S'
|
|
DB 00H, 'C', 00H, 'M', 00H, ':', 00H, ' ', 00H, 'A', 00H, 't', 00H
|
|
DB 't', 00H, 'e', 00H, 'm', 00H, 'p', 00H, 't', 00H, ' ', 00H, 't'
|
|
DB 00H, 'o', 00H, ' ', 00H, 's', 00H, 't', 00H, 'o', 00H, 'p', 00H
|
|
DB ' ', 00H, 00H, 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_13DIBMAFH@?$AA?$CJ@
|
|
CONST SEGMENT
|
|
??_C@_13DIBMAFH@?$AA?$CJ@ DB ')', 00H, 00H, 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_1BE@JKNOOOMI@?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AA?$CI@
|
|
CONST SEGMENT
|
|
??_C@_1BE@JKNOOOMI@?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AA?$CI@ DB ' '
|
|
DB 00H, 'f', 00H, 'a', 00H, 'i', 00H, 'l', 00H, 'e', 00H, 'd', 00H
|
|
DB ' ', 00H, '(', 00H, 00H, 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_1M@NAJFBAG@?$AAS?$AAC?$AAM?$AA?3?$AA?5@
|
|
CONST SEGMENT
|
|
??_C@_1M@NAJFBAG@?$AAS?$AAC?$AAM?$AA?3?$AA?5@ DB 'S', 00H, 'C', 00H, 'M', 00H
|
|
DB ':', 00H, ' ', 00H, 00H, 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_1BI@MANNKNNC@?$AAV?$AAB?$AAo?$AAx?$AAD?$AAr?$AAv?$AA?4?$AAs?$AAy?$AAs@
|
|
CONST SEGMENT
|
|
??_C@_1BI@MANNKNNC@?$AAV?$AAB?$AAo?$AAx?$AAD?$AAr?$AAv?$AA?4?$AAs?$AAy?$AAs@ DB 'V'
|
|
DB 00H, 'B', 00H, 'o', 00H, 'x', 00H, 'D', 00H, 'r', 00H, 'v', 00H
|
|
DB '.', 00H, 's', 00H, 'y', 00H, 's', 00H, 00H, 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_1BO@PJIGFGPE@?$AAV?$AAB?$AAo?$AAx?$AAD?$AAr?$AAv?$AA?4?$AAb?$AAa?$AAc?$AAk?$AAu?$AAp@
|
|
CONST SEGMENT
|
|
??_C@_1BO@PJIGFGPE@?$AAV?$AAB?$AAo?$AAx?$AAD?$AAr?$AAv?$AA?4?$AAb?$AAa?$AAc?$AAk?$AAu?$AAp@ DB 'V'
|
|
DB 00H, 'B', 00H, 'o', 00H, 'x', 00H, 'D', 00H, 'r', 00H, 'v', 00H
|
|
DB '.', 00H, 'b', 00H, 'a', 00H, 'c', 00H, 'k', 00H, 'u', 00H, 'p'
|
|
DB 00H, 00H, 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_1BE@HOKNBJFH@?$AA?2?$AAd?$AAr?$AAi?$AAv?$AAe?$AAr?$AAs?$AA?2@
|
|
CONST SEGMENT
|
|
??_C@_1BE@HOKNBJFH@?$AA?2?$AAd?$AAr?$AAi?$AAv?$AAe?$AAr?$AAs?$AA?2@ DB '\'
|
|
DB 00H, 'd', 00H, 'r', 00H, 'i', 00H, 'v', 00H, 'e', 00H, 'r', 00H
|
|
DB 's', 00H, '\', 00H, 00H, 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$supxStopServiceShowError DD 050d01H
|
|
DD 052340dH
|
|
DD 050010dH
|
|
DD 07006H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$supEnumSystemObjects DD 071209H
|
|
DD 0176412H
|
|
DD 0163412H
|
|
DD 0140112H
|
|
DD 0700bH
|
|
DD imagerel __C_specific_handler
|
|
DD 01H
|
|
DD imagerel $LN49+48
|
|
DD imagerel $LN49+480
|
|
DD 01H
|
|
DD imagerel $LN49+480
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$supDetectObjectCallback DD 010401H
|
|
DD 04204H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$supStopVBoxService DD 0b2101H
|
|
DD 0956421H
|
|
DD 0943421H
|
|
DD 08e0121H
|
|
DD 0e010f012H
|
|
DD 0700cc00eH
|
|
DD 0500bH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$supIsObjectExists DD 020601H
|
|
DD 030025206H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$supWriteBufferToFile$fin$0 DD 020601H
|
|
DD 05002b206H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$supWriteBufferToFile DD 0b1f11H
|
|
DD 022641fH
|
|
DD 020341fH
|
|
DD 01a011fH
|
|
DD 0e016f018H
|
|
DD 0c012d014H
|
|
DD 07010H
|
|
DD imagerel __C_specific_handler
|
|
DD 01H
|
|
DD imagerel $LN33+192
|
|
DD imagerel $LN33+617
|
|
DD imagerel supWriteBufferToFile$fin$0
|
|
DD 00H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$supBackupVBoxDrv DD 071a01H
|
|
DD 018d741aH
|
|
DD 018c341aH
|
|
DD 018a011aH
|
|
DD 0500bH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$supQueryResourceData DD 061201H
|
|
DD 0c7412H
|
|
DD 0a3412H
|
|
DD 0500b7212H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$supGetSystemInfo DD 081201H
|
|
DD 0a5412H
|
|
DD 083412H
|
|
DD 0e00e3212H
|
|
DD 0600b700cH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$supGetNtOsBase DD 020601H
|
|
DD 030023206H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$RtlSecureZeroMemory DD 020501H
|
|
DD 017405H
|
|
xdata ENDS
|
|
; Function compile flags: /Ogspy
|
|
; COMDAT supxStopServiceShowError
|
|
_TEXT SEGMENT
|
|
szMessage$ = 32
|
|
Function$ = 656
|
|
ErrorCode$ = 664
|
|
supxStopServiceShowError PROC ; COMDAT
|
|
; File J:\Workspace\drivers\TDL\Source\Furutaka\sup.c
|
|
; Line 435
|
|
$LN4:
|
|
mov QWORD PTR [rsp+8], rbx
|
|
push rdi
|
|
sub rsp, 640 ; 00000280H
|
|
mov edi, edx
|
|
mov rbx, rcx
|
|
; Line 438
|
|
lea rdx, OFFSET FLAT:??_C@_1M@NAJFBAG@?$AAS?$AAC?$AAM?$AA?3?$AA?5@
|
|
lea rcx, QWORD PTR szMessage$[rsp]
|
|
call _strcpy_w
|
|
; Line 439
|
|
mov rdx, rbx
|
|
lea rcx, QWORD PTR szMessage$[rsp]
|
|
call _strcat_w
|
|
; Line 440
|
|
lea rdx, OFFSET FLAT:??_C@_1BE@JKNOOOMI@?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AA?$CI@
|
|
lea rcx, QWORD PTR szMessage$[rsp]
|
|
call _strcat_w
|
|
; Line 441
|
|
lea rcx, QWORD PTR szMessage$[rsp]
|
|
call _strend_w
|
|
mov rdx, rax
|
|
mov ecx, edi
|
|
call ultostr_w
|
|
; Line 442
|
|
lea rdx, OFFSET FLAT:??_C@_13DIBMAFH@?$AA?$CJ@
|
|
lea rcx, QWORD PTR szMessage$[rsp]
|
|
call _strcat_w
|
|
; Line 443
|
|
mov edx, 1
|
|
lea rcx, QWORD PTR szMessage$[rsp]
|
|
call cuiPrintTextW
|
|
; Line 444
|
|
mov rbx, QWORD PTR [rsp+656]
|
|
add rsp, 640 ; 00000280H
|
|
pop rdi
|
|
ret 0
|
|
supxStopServiceShowError ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Ogspy
|
|
; COMDAT supEnumSystemObjects
|
|
_TEXT SEGMENT
|
|
status$ = 64
|
|
ctx$ = 68
|
|
hDirectory$ = 72
|
|
CallbackStatus$ = 80
|
|
objinf$ = 88
|
|
sname$ = 96
|
|
attr$ = 112
|
|
pwszRootDirectory$ = 176
|
|
hRootDirectory$ = 184
|
|
rlen$ = 192
|
|
CallbackProc$ = 192
|
|
CallbackParam$ = 200
|
|
supEnumSystemObjects PROC ; COMDAT
|
|
; File J:\Workspace\drivers\TDL\Source\Furutaka\sup.c
|
|
; Line 321
|
|
$LN49:
|
|
mov QWORD PTR [rsp+8], rbx
|
|
mov QWORD PTR [rsp+16], rsi
|
|
push rdi
|
|
sub rsp, 160 ; 000000a0H
|
|
mov rsi, r9
|
|
mov rbx, r8
|
|
mov r10, rcx
|
|
; Line 324
|
|
and QWORD PTR hDirectory$[rsp], 0
|
|
; Line 332
|
|
test r8, r8
|
|
jne SHORT $LN5@supEnumSys
|
|
; Line 333
|
|
mov eax, -1073741582 ; ffffffffc00000f2H
|
|
jmp $LN1@supEnumSys
|
|
$LN5@supEnumSys:
|
|
; Line 341
|
|
test r10, r10
|
|
je SHORT $LN7@supEnumSys
|
|
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h
|
|
; Line 20225
|
|
lea rdi, QWORD PTR sname$[rsp]
|
|
xor eax, eax
|
|
lea ecx, QWORD PTR [rax+16]
|
|
rep stosb
|
|
; File J:\Workspace\drivers\TDL\Source\Furutaka\sup.c
|
|
; Line 343
|
|
mov rdx, r10
|
|
lea rcx, QWORD PTR sname$[rsp]
|
|
call QWORD PTR __imp_RtlInitUnicodeString
|
|
; Line 344
|
|
mov DWORD PTR attr$[rsp], 48 ; 00000030H
|
|
and QWORD PTR attr$[rsp+8], 0
|
|
mov DWORD PTR attr$[rsp+24], 64 ; 00000040H
|
|
lea rax, QWORD PTR sname$[rsp]
|
|
mov QWORD PTR attr$[rsp+16], rax
|
|
xorps xmm0, xmm0
|
|
movdqu XMMWORD PTR attr$[rsp+32], xmm0
|
|
; Line 345
|
|
lea r8, QWORD PTR attr$[rsp]
|
|
mov edx, 1
|
|
lea rcx, QWORD PTR hDirectory$[rsp]
|
|
call QWORD PTR __imp_NtOpenDirectoryObject
|
|
mov DWORD PTR status$[rsp], eax
|
|
; Line 346
|
|
test eax, eax
|
|
jns SHORT $LN8@supEnumSys
|
|
; Line 347
|
|
jmp $LN1@supEnumSys
|
|
$LN7@supEnumSys:
|
|
; Line 351
|
|
test rdx, rdx
|
|
jne SHORT $LN10@supEnumSys
|
|
; Line 352
|
|
mov eax, -1073741584 ; ffffffffc00000f0H
|
|
jmp $LN1@supEnumSys
|
|
$LN10@supEnumSys:
|
|
; Line 354
|
|
mov QWORD PTR hDirectory$[rsp], rdx
|
|
$LN8@supEnumSys:
|
|
; Line 358
|
|
and DWORD PTR ctx$[rsp], 0
|
|
$LL4@supEnumSys:
|
|
; Line 361
|
|
and DWORD PTR rlen$[rsp], 0
|
|
; Line 362
|
|
lea rax, QWORD PTR rlen$[rsp]
|
|
mov QWORD PTR [rsp+48], rax
|
|
lea rax, QWORD PTR ctx$[rsp]
|
|
mov QWORD PTR [rsp+40], rax
|
|
mov BYTE PTR [rsp+32], 0
|
|
mov r9b, 1
|
|
xor r8d, r8d
|
|
xor edx, edx
|
|
mov rcx, QWORD PTR hDirectory$[rsp]
|
|
call QWORD PTR __imp_NtQueryDirectoryObject
|
|
mov DWORD PTR status$[rsp], eax
|
|
; Line 363
|
|
cmp eax, -1073741789 ; ffffffffc0000023H
|
|
jne $LN3@supEnumSys
|
|
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h
|
|
; Line 22853
|
|
mov rax, QWORD PTR gs:48
|
|
; File J:\Workspace\drivers\TDL\Source\Furutaka\ntos.h
|
|
; Line 5120
|
|
mov rcx, QWORD PTR [rax+96]
|
|
; File J:\Workspace\drivers\TDL\Source\Furutaka\sup.c
|
|
; Line 366
|
|
mov r8d, DWORD PTR rlen$[rsp]
|
|
mov edx, 8
|
|
mov rcx, QWORD PTR [rcx+48]
|
|
call QWORD PTR __imp_RtlAllocateHeap
|
|
mov rdi, rax
|
|
mov QWORD PTR objinf$[rsp], rax
|
|
; Line 367
|
|
test rax, rax
|
|
je $LN3@supEnumSys
|
|
; Line 370
|
|
lea rax, QWORD PTR rlen$[rsp]
|
|
mov QWORD PTR [rsp+48], rax
|
|
lea rax, QWORD PTR ctx$[rsp]
|
|
mov QWORD PTR [rsp+40], rax
|
|
mov BYTE PTR [rsp+32], 0
|
|
mov r9b, 1
|
|
mov r8d, DWORD PTR rlen$[rsp]
|
|
mov rdx, rdi
|
|
mov rcx, QWORD PTR hDirectory$[rsp]
|
|
call QWORD PTR __imp_NtQueryDirectoryObject
|
|
mov DWORD PTR status$[rsp], eax
|
|
; Line 371
|
|
test eax, eax
|
|
js SHORT $LN39@supEnumSys
|
|
; Line 376
|
|
mov rdx, rsi
|
|
mov rcx, rdi
|
|
call rbx
|
|
mov DWORD PTR CallbackStatus$[rsp], eax
|
|
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h
|
|
; Line 22853
|
|
mov rax, QWORD PTR gs:48
|
|
; File J:\Workspace\drivers\TDL\Source\Furutaka\ntos.h
|
|
; Line 5120
|
|
mov rcx, QWORD PTR [rax+96]
|
|
; File J:\Workspace\drivers\TDL\Source\Furutaka\sup.c
|
|
; Line 378
|
|
mov r8, QWORD PTR objinf$[rsp]
|
|
xor edx, edx
|
|
mov rcx, QWORD PTR [rcx+48]
|
|
call QWORD PTR __imp_RtlFreeHeap
|
|
; Line 380
|
|
cmp DWORD PTR CallbackStatus$[rsp], 0
|
|
jl $LL4@supEnumSys
|
|
; Line 381
|
|
and DWORD PTR status$[rsp], 0
|
|
jmp SHORT $LN3@supEnumSys
|
|
$LN39@supEnumSys:
|
|
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h
|
|
; Line 22853
|
|
mov rax, QWORD PTR gs:48
|
|
; File J:\Workspace\drivers\TDL\Source\Furutaka\ntos.h
|
|
; Line 5120
|
|
mov rcx, QWORD PTR [rax+96]
|
|
; File J:\Workspace\drivers\TDL\Source\Furutaka\sup.c
|
|
; Line 372
|
|
mov r8, QWORD PTR objinf$[rsp]
|
|
xor edx, edx
|
|
mov rcx, QWORD PTR [rcx+48]
|
|
call QWORD PTR __imp_RtlFreeHeap
|
|
$LN3@supEnumSys:
|
|
; Line 387
|
|
mov rcx, QWORD PTR hDirectory$[rsp]
|
|
test rcx, rcx
|
|
je SHORT $LN15@supEnumSys
|
|
; Line 388
|
|
call QWORD PTR __imp_NtClose
|
|
$LN15@supEnumSys:
|
|
; Line 391
|
|
jmp SHORT $LN21@supEnumSys
|
|
$LN19@supEnumSys:
|
|
; Line 393
|
|
mov DWORD PTR status$[rsp], -1073741819 ; ffffffffc0000005H
|
|
$LN21@supEnumSys:
|
|
; Line 396
|
|
mov eax, DWORD PTR status$[rsp]
|
|
$LN1@supEnumSys:
|
|
; Line 397
|
|
lea r11, QWORD PTR [rsp+160]
|
|
mov rbx, QWORD PTR [r11+16]
|
|
mov rsi, QWORD PTR [r11+24]
|
|
mov rsp, r11
|
|
pop rdi
|
|
ret 0
|
|
supEnumSystemObjects ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Ogspy
|
|
; COMDAT supDetectObjectCallback
|
|
_TEXT SEGMENT
|
|
Entry$ = 48
|
|
CallbackParam$ = 56
|
|
supDetectObjectCallback PROC ; COMDAT
|
|
; File J:\Workspace\drivers\TDL\Source\Furutaka\sup.c
|
|
; Line 284
|
|
$LN10:
|
|
sub rsp, 40 ; 00000028H
|
|
; Line 287
|
|
test rcx, rcx
|
|
jne SHORT $LN2@supDetectO
|
|
; Line 288
|
|
mov eax, -1073741585 ; ffffffffc00000efH
|
|
jmp SHORT $LN1@supDetectO
|
|
$LN2@supDetectO:
|
|
; Line 291
|
|
test rdx, rdx
|
|
jne SHORT $LN3@supDetectO
|
|
; Line 292
|
|
mov eax, -1073741584 ; ffffffffc00000f0H
|
|
jmp SHORT $LN1@supDetectO
|
|
$LN3@supDetectO:
|
|
; Line 295
|
|
cmp QWORD PTR [rdx], 0
|
|
je SHORT $LN5@supDetectO
|
|
cmp DWORD PTR [rdx+8], 0
|
|
je SHORT $LN5@supDetectO
|
|
; Line 299
|
|
mov rcx, QWORD PTR [rcx+8]
|
|
test rcx, rcx
|
|
je SHORT $LN7@supDetectO
|
|
; Line 300
|
|
mov rdx, QWORD PTR [rdx]
|
|
call _strcmpi_w
|
|
test eax, eax
|
|
je SHORT $LN1@supDetectO
|
|
$LN7@supDetectO:
|
|
; Line 304
|
|
mov eax, -1073741823 ; ffffffffc0000001H
|
|
jmp SHORT $LN1@supDetectO
|
|
$LN5@supDetectO:
|
|
; Line 296
|
|
mov eax, -1073741664 ; ffffffffc00000a0H
|
|
$LN1@supDetectO:
|
|
; Line 305
|
|
add rsp, 40 ; 00000028H
|
|
ret 0
|
|
supDetectObjectCallback ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Ogspy
|
|
; COMDAT supStopVBoxService
|
|
_TEXT SEGMENT
|
|
ssp$ = 48
|
|
szMessage$ = 96
|
|
schSCManager$ = 1184
|
|
szSvcName$ = 1192
|
|
dwBytesNeeded$ = 1200
|
|
supStopVBoxService PROC ; COMDAT
|
|
; File J:\Workspace\drivers\TDL\Source\Furutaka\sup.c
|
|
; Line 458
|
|
$LN42:
|
|
mov QWORD PTR [rsp+8], rbx
|
|
mov QWORD PTR [rsp+16], rsi
|
|
push rbp
|
|
push rdi
|
|
push r12
|
|
push r14
|
|
push r15
|
|
lea rbp, QWORD PTR [rsp-880]
|
|
sub rsp, 1136 ; 00000470H
|
|
mov rbx, rdx
|
|
mov rdi, rcx
|
|
; Line 459
|
|
xor esi, esi
|
|
; Line 463
|
|
call QWORD PTR __imp_GetTickCount
|
|
; Line 471
|
|
lea rdx, OFFSET FLAT:??_C@_1CM@OCPAABHF@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAA?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AA?5?$AAt?$AAo@
|
|
mov r14d, eax
|
|
lea rcx, QWORD PTR szMessage$[rsp]
|
|
call _strcpy_w
|
|
; Line 472
|
|
mov rdx, rbx
|
|
lea rcx, QWORD PTR szMessage$[rsp]
|
|
call _strcat_w
|
|
; Line 473
|
|
lea r15d, QWORD PTR [rsi+1]
|
|
mov edx, r15d
|
|
lea rcx, QWORD PTR szMessage$[rsp]
|
|
call cuiPrintTextW
|
|
; Line 478
|
|
lea r8d, QWORD PTR [rsi+36]
|
|
mov rdx, rbx
|
|
mov rcx, rdi
|
|
call QWORD PTR __imp_OpenServiceW
|
|
mov rbx, rax
|
|
; Line 484
|
|
test rax, rax
|
|
jne SHORT $LN8@supStopVBo
|
|
; Line 485
|
|
call QWORD PTR __imp_GetLastError
|
|
; Line 486
|
|
cmp eax, 1060 ; 00000424H
|
|
jne SHORT $LN7@supStopVBo
|
|
; Line 487
|
|
mov edx, r15d
|
|
lea rcx, OFFSET FLAT:??_C@_1EE@PHBHNLM@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAd?$AAo@
|
|
call cuiPrintTextW
|
|
; Line 488
|
|
mov al, r15b
|
|
jmp $LN1@supStopVBo
|
|
$LN7@supStopVBo:
|
|
; Line 491
|
|
call QWORD PTR __imp_GetLastError
|
|
mov edx, eax
|
|
lea rcx, OFFSET FLAT:??_C@_1BI@BPEMHDAO@?$AAO?$AAp?$AAe?$AAn?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe@
|
|
call supxStopServiceShowError
|
|
; Line 492
|
|
xor al, al
|
|
jmp $LN1@supStopVBo
|
|
$LN8@supStopVBo:
|
|
; Line 499
|
|
lea rax, QWORD PTR dwBytesNeeded$[rbp-256]
|
|
mov r9d, 36 ; 00000024H
|
|
lea r8, QWORD PTR ssp$[rsp]
|
|
mov QWORD PTR [rsp+32], rax
|
|
xor edx, edx
|
|
mov rcx, rbx
|
|
call QWORD PTR __imp_QueryServiceStatusEx
|
|
test eax, eax
|
|
jne SHORT $LN9@supStopVBo
|
|
$LN24@supStopVBo:
|
|
; Line 603
|
|
call QWORD PTR __imp_GetLastError
|
|
lea rcx, OFFSET FLAT:??_C@_1CK@IBJMKCMP@?$AAQ?$AAu?$AAe?$AAr?$AAy?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AAS?$AAt?$AAa@
|
|
$LN40@supStopVBo:
|
|
mov edx, eax
|
|
call supxStopServiceShowError
|
|
jmp $stop_cleanup$43
|
|
$LN9@supStopVBo:
|
|
; Line 510
|
|
cmp DWORD PTR ssp$[rsp+4], r15d
|
|
jne SHORT $LN22@supStopVBo
|
|
; Line 511
|
|
lea rcx, OFFSET FLAT:??_C@_1EA@ONGKHKHC@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAi?$AAs@
|
|
; Line 513
|
|
jmp $LN34@supStopVBo
|
|
$LN22@supStopVBo:
|
|
; Line 519
|
|
cmp DWORD PTR ssp$[rsp+4], 3
|
|
jne $LN3@supStopVBo
|
|
mov edi, 1000 ; 000003e8H
|
|
mov r12d, 10000 ; 00002710H
|
|
$LL2@supStopVBo:
|
|
; Line 521
|
|
mov edx, r15d
|
|
lea rcx, OFFSET FLAT:??_C@_1DK@FIJGIPBO@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAs?$AAt@
|
|
call cuiPrintTextW
|
|
; Line 523
|
|
mov eax, -858993459 ; cccccccdH
|
|
mul DWORD PTR ssp$[rsp+24]
|
|
shr edx, 3
|
|
; Line 525
|
|
cmp edx, edi
|
|
jae SHORT $LN11@supStopVBo
|
|
; Line 526
|
|
mov edx, edi
|
|
jmp SHORT $LN13@supStopVBo
|
|
$LN11@supStopVBo:
|
|
; Line 527
|
|
cmp edx, r12d
|
|
cmova edx, r12d
|
|
$LN13@supStopVBo:
|
|
; Line 530
|
|
mov ecx, edx
|
|
call QWORD PTR __imp_Sleep
|
|
; Line 532
|
|
lea rax, QWORD PTR dwBytesNeeded$[rbp-256]
|
|
mov r9d, 36 ; 00000024H
|
|
lea r8, QWORD PTR ssp$[rsp]
|
|
mov QWORD PTR [rsp+32], rax
|
|
xor edx, edx
|
|
mov rcx, rbx
|
|
call QWORD PTR __imp_QueryServiceStatusEx
|
|
test eax, eax
|
|
je $LN24@supStopVBo
|
|
; Line 543
|
|
cmp DWORD PTR ssp$[rsp+4], r15d
|
|
je $LN5@supStopVBo
|
|
; Line 553
|
|
call QWORD PTR __imp_GetTickCount
|
|
sub eax, r14d
|
|
cmp eax, 30000 ; 00007530H
|
|
ja SHORT $LN26@supStopVBo
|
|
; Line 519
|
|
cmp DWORD PTR ssp$[rsp+4], 3
|
|
je SHORT $LL2@supStopVBo
|
|
$LN3@supStopVBo:
|
|
; Line 562
|
|
lea r8, QWORD PTR ssp$[rsp]
|
|
mov edx, r15d
|
|
mov rcx, rbx
|
|
call QWORD PTR __imp_ControlService
|
|
test eax, eax
|
|
jne SHORT $LN36@supStopVBo
|
|
; Line 567
|
|
call QWORD PTR __imp_GetLastError
|
|
lea rcx, OFFSET FLAT:??_C@_1BO@OEEIJKOC@?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe@
|
|
; Line 568
|
|
jmp $LN40@supStopVBo
|
|
$LN26@supStopVBo:
|
|
; Line 554
|
|
lea rcx, OFFSET FLAT:??_C@_1DM@KJCMNIP@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAs?$AAt@
|
|
jmp $LN39@supStopVBo
|
|
$LL4@supStopVBo:
|
|
; Line 576
|
|
mov ecx, DWORD PTR ssp$[rsp+24]
|
|
call QWORD PTR __imp_Sleep
|
|
; Line 577
|
|
lea rax, QWORD PTR dwBytesNeeded$[rbp-256]
|
|
mov r9d, 36 ; 00000024H
|
|
lea r8, QWORD PTR ssp$[rsp]
|
|
mov QWORD PTR [rsp+32], rax
|
|
xor edx, edx
|
|
mov rcx, rbx
|
|
call QWORD PTR __imp_QueryServiceStatusEx
|
|
test eax, eax
|
|
je $LN24@supStopVBo
|
|
; Line 588
|
|
cmp DWORD PTR ssp$[rsp+4], r15d
|
|
je SHORT $LN5@supStopVBo
|
|
; Line 594
|
|
call QWORD PTR __imp_GetTickCount
|
|
sub eax, r14d
|
|
cmp eax, 30000 ; 00007530H
|
|
ja SHORT $LN29@supStopVBo
|
|
$LN36@supStopVBo:
|
|
; Line 574
|
|
cmp DWORD PTR ssp$[rsp+4], r15d
|
|
jne SHORT $LL4@supStopVBo
|
|
$LN5@supStopVBo:
|
|
; Line 603
|
|
lea rcx, OFFSET FLAT:??_C@_1EE@CLBBMPNC@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAs?$AAt@
|
|
$LN34@supStopVBo:
|
|
mov edx, r15d
|
|
call cuiPrintTextW
|
|
mov sil, r15b
|
|
$stop_cleanup$43:
|
|
mov rcx, rbx
|
|
call QWORD PTR __imp_CloseServiceHandle
|
|
; Line 605
|
|
mov al, sil
|
|
$LN1@supStopVBo:
|
|
; Line 606
|
|
lea r11, QWORD PTR [rsp+1136]
|
|
mov rbx, QWORD PTR [r11+48]
|
|
mov rsi, QWORD PTR [r11+56]
|
|
mov rsp, r11
|
|
pop r15
|
|
pop r14
|
|
pop r12
|
|
pop rdi
|
|
pop rbp
|
|
ret 0
|
|
$LN29@supStopVBo:
|
|
; Line 595
|
|
lea rcx, OFFSET FLAT:??_C@_1CI@BLLFIFDA@?$AAS?$AAC?$AAM?$AA?3?$AA?5?$AAW?$AAa?$AAi?$AAt?$AA?5?$AAt?$AAi?$AAm?$AAe?$AAd@
|
|
$LN39@supStopVBo:
|
|
; Line 603
|
|
mov edx, r15d
|
|
call cuiPrintTextW
|
|
jmp SHORT $stop_cleanup$43
|
|
supStopVBoxService ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Ogspy
|
|
; COMDAT supIsObjectExists
|
|
_TEXT SEGMENT
|
|
Param$ = 32
|
|
RootDirectory$ = 64
|
|
ObjectName$ = 72
|
|
supIsObjectExists PROC ; COMDAT
|
|
; File J:\Workspace\drivers\TDL\Source\Furutaka\sup.c
|
|
; Line 411
|
|
$LN5:
|
|
push rbx
|
|
sub rsp, 48 ; 00000030H
|
|
mov rbx, rcx
|
|
; Line 414
|
|
test rdx, rdx
|
|
jne SHORT $LN2@supIsObjec
|
|
; Line 415
|
|
xor al, al
|
|
jmp SHORT $LN1@supIsObjec
|
|
$LN2@supIsObjec:
|
|
; Line 419
|
|
mov rcx, rdx
|
|
mov QWORD PTR Param$[rsp], rdx
|
|
call _strlen_w
|
|
; Line 421
|
|
lea r9, QWORD PTR Param$[rsp]
|
|
mov DWORD PTR Param$[rsp+8], eax
|
|
lea r8, OFFSET FLAT:supDetectObjectCallback
|
|
xor edx, edx
|
|
mov rcx, rbx
|
|
call supEnumSystemObjects
|
|
test eax, eax
|
|
setns al
|
|
$LN1@supIsObjec:
|
|
; Line 422
|
|
add rsp, 48 ; 00000030H
|
|
pop rbx
|
|
ret 0
|
|
supIsObjectExists ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Ogspy
|
|
; COMDAT supWriteBufferToFile
|
|
_TEXT SEGMENT
|
|
IoStatus$ = 96
|
|
Position$ = 112
|
|
BytesWritten$ = 120
|
|
BlockIndex$ = 128
|
|
NtFileName$ = 136
|
|
ptr$ = 152
|
|
attr$ = 160
|
|
lpFileName$ = 256
|
|
hFile$ = 264
|
|
Buffer$ = 264
|
|
Size$ = 272
|
|
Flush$ = 280
|
|
Append$ = 288
|
|
supWriteBufferToFile PROC ; COMDAT
|
|
; File J:\Workspace\drivers\TDL\Source\Furutaka\sup.c
|
|
; Line 189
|
|
$LN33:
|
|
mov rax, rsp
|
|
mov QWORD PTR [rax+8], rbx
|
|
mov QWORD PTR [rax+24], rsi
|
|
mov DWORD PTR [rax+32], r9d
|
|
push rdi
|
|
push r12
|
|
push r13
|
|
push r14
|
|
push r15
|
|
sub rsp, 208 ; 000000d0H
|
|
mov r13d, r9d
|
|
mov rsi, r8
|
|
mov r14, rdx
|
|
; Line 192
|
|
xor r15d, r15d
|
|
mov QWORD PTR [rax+16], r15
|
|
; Line 202
|
|
mov ebx, r15d
|
|
; Line 204
|
|
xor r9d, r9d
|
|
xor r8d, r8d
|
|
lea rdx, QWORD PTR [rax-112]
|
|
call QWORD PTR __imp_RtlDosPathNameToNtPathName_U
|
|
test al, al
|
|
jne SHORT $LN5@supWriteBu
|
|
; Line 205
|
|
xor eax, eax
|
|
$LN1@supWriteBu:
|
|
; Line 270
|
|
lea r11, QWORD PTR [rsp+208]
|
|
mov rbx, QWORD PTR [r11+48]
|
|
mov rsi, QWORD PTR [r11+64]
|
|
mov rsp, r11
|
|
pop r15
|
|
pop r14
|
|
pop r13
|
|
pop r12
|
|
pop rdi
|
|
ret 0
|
|
$LN5@supWriteBu:
|
|
; Line 215
|
|
mov edi, DWORD PTR Append$[rsp]
|
|
mov eax, edi
|
|
neg eax
|
|
sbb ecx, ecx
|
|
and ecx, -2 ; fffffffeH
|
|
add ecx, 5
|
|
mov eax, edi
|
|
neg eax
|
|
sbb edx, edx
|
|
neg edx
|
|
add edx, 1048578 ; 00100002H
|
|
mov DWORD PTR attr$[rsp], 48 ; 00000030H
|
|
mov QWORD PTR attr$[rsp+8], r15
|
|
mov DWORD PTR attr$[rsp+24], 64 ; 00000040H
|
|
lea rax, QWORD PTR NtFileName$[rsp]
|
|
mov QWORD PTR attr$[rsp+16], rax
|
|
xorps xmm0, xmm0
|
|
movdqu XMMWORD PTR attr$[rsp+32], xmm0
|
|
; Line 218
|
|
mov DWORD PTR [rsp+80], r15d
|
|
mov QWORD PTR [rsp+72], r15
|
|
mov DWORD PTR [rsp+64], 96 ; 00000060H
|
|
mov DWORD PTR [rsp+56], ecx
|
|
mov DWORD PTR [rsp+48], r15d
|
|
mov DWORD PTR [rsp+40], 128 ; 00000080H
|
|
mov QWORD PTR [rsp+32], r15
|
|
lea r9, QWORD PTR IoStatus$[rsp]
|
|
lea r8, QWORD PTR attr$[rsp]
|
|
lea rcx, QWORD PTR hFile$[rsp]
|
|
call QWORD PTR __imp_NtCreateFile
|
|
; Line 222
|
|
test eax, eax
|
|
js $LN14@supWriteBu
|
|
; Line 225
|
|
mov r12, r15
|
|
; Line 227
|
|
test edi, edi
|
|
je SHORT $LN9@supWriteBu
|
|
; Line 228
|
|
or DWORD PTR Position$[rsp], -1 ; ffffffffH
|
|
; Line 229
|
|
or DWORD PTR Position$[rsp+4], -1
|
|
; Line 230
|
|
lea r12, QWORD PTR Position$[rsp]
|
|
$LN9@supWriteBu:
|
|
; Line 233
|
|
mov eax, -2147483648 ; 80000000H
|
|
cmp rsi, rax
|
|
jae SHORT $LN10@supWriteBu
|
|
; Line 235
|
|
mov QWORD PTR [rsp+64], r15
|
|
mov QWORD PTR [rsp+56], r12
|
|
mov DWORD PTR [rsp+48], esi
|
|
mov QWORD PTR [rsp+40], r14
|
|
lea rax, QWORD PTR IoStatus$[rsp]
|
|
mov QWORD PTR [rsp+32], rax
|
|
xor r9d, r9d
|
|
xor r8d, r8d
|
|
xor edx, edx
|
|
mov rcx, QWORD PTR hFile$[rsp]
|
|
call QWORD PTR __imp_NtWriteFile
|
|
; Line 236
|
|
test eax, eax
|
|
js $LN14@supWriteBu
|
|
; Line 239
|
|
mov rbx, QWORD PTR IoStatus$[rsp+8]
|
|
; Line 240
|
|
jmp $LN31@supWriteBu
|
|
$LN10@supWriteBu:
|
|
; Line 243
|
|
mov rax, 8589934597 ; 0000000200000005H
|
|
mul rsi
|
|
mov r15, rsi
|
|
sub r15, rdx
|
|
shr r15, 1
|
|
add r15, rdx
|
|
shr r15, 30
|
|
; Line 244
|
|
xor edi, edi
|
|
$LN30@supWriteBu:
|
|
mov QWORD PTR BlockIndex$[rsp], rdi
|
|
cmp rdi, r15
|
|
jae SHORT $LN3@supWriteBu
|
|
; Line 246
|
|
and QWORD PTR [rsp+64], 0
|
|
mov QWORD PTR [rsp+56], r12
|
|
mov DWORD PTR [rsp+48], 2147483647 ; 7fffffffH
|
|
mov QWORD PTR [rsp+40], r14
|
|
lea rax, QWORD PTR IoStatus$[rsp]
|
|
mov QWORD PTR [rsp+32], rax
|
|
xor r9d, r9d
|
|
xor r8d, r8d
|
|
xor edx, edx
|
|
mov rcx, QWORD PTR hFile$[rsp]
|
|
call QWORD PTR __imp_NtWriteFile
|
|
; Line 247
|
|
test eax, eax
|
|
js $LN14@supWriteBu
|
|
; Line 250
|
|
add r14, 2147483647 ; 7fffffffH
|
|
mov QWORD PTR ptr$[rsp], r14
|
|
; Line 251
|
|
add rbx, QWORD PTR IoStatus$[rsp+8]
|
|
mov QWORD PTR BytesWritten$[rsp], rbx
|
|
; Line 244
|
|
inc rdi
|
|
jmp SHORT $LN30@supWriteBu
|
|
$LN3@supWriteBu:
|
|
; Line 253
|
|
mov rax, 8589934597 ; 0000000200000005H
|
|
mul rsi
|
|
mov rax, rsi
|
|
sub rax, rdx
|
|
shr rax, 1
|
|
add rax, rdx
|
|
shr rax, 30
|
|
imul rax, rax, 2147483647 ; 7fffffffH
|
|
sub rsi, rax
|
|
; Line 254
|
|
xor r15d, r15d
|
|
test esi, esi
|
|
je SHORT $LN14@supWriteBu
|
|
; Line 255
|
|
mov QWORD PTR [rsp+64], r15
|
|
mov QWORD PTR [rsp+56], r12
|
|
mov DWORD PTR [rsp+48], esi
|
|
mov QWORD PTR [rsp+40], r14
|
|
lea rax, QWORD PTR IoStatus$[rsp]
|
|
mov QWORD PTR [rsp+32], rax
|
|
xor r9d, r9d
|
|
xor r8d, r8d
|
|
xor edx, edx
|
|
mov rcx, QWORD PTR hFile$[rsp]
|
|
call QWORD PTR __imp_NtWriteFile
|
|
; Line 256
|
|
test eax, eax
|
|
js SHORT $LN14@supWriteBu
|
|
; Line 258
|
|
add rbx, QWORD PTR IoStatus$[rsp+8]
|
|
$LN31@supWriteBu:
|
|
mov QWORD PTR BytesWritten$[rsp], rbx
|
|
$LN14@supWriteBu:
|
|
$LN25@supWriteBu:
|
|
; Line 263
|
|
mov rcx, QWORD PTR hFile$[rsp]
|
|
test rcx, rcx
|
|
je SHORT $LN20@supWriteBu
|
|
; Line 264
|
|
test r13d, r13d
|
|
je SHORT $LN19@supWriteBu
|
|
lea rdx, QWORD PTR IoStatus$[rsp]
|
|
call QWORD PTR __imp_NtFlushBuffersFile
|
|
mov rcx, QWORD PTR hFile$[rsp]
|
|
$LN19@supWriteBu:
|
|
; Line 265
|
|
call QWORD PTR __imp_NtClose
|
|
$LN20@supWriteBu:
|
|
; Line 267
|
|
lea rcx, QWORD PTR NtFileName$[rsp]
|
|
call QWORD PTR __imp_RtlFreeUnicodeString
|
|
; Line 269
|
|
mov rax, rbx
|
|
jmp $LN1@supWriteBu
|
|
supWriteBufferToFile ENDP
|
|
_TEXT ENDS
|
|
; COMDAT text$x
|
|
text$x SEGMENT
|
|
IoStatus$ = 96
|
|
Position$ = 112
|
|
BytesWritten$ = 120
|
|
BlockIndex$ = 128
|
|
NtFileName$ = 136
|
|
ptr$ = 152
|
|
attr$ = 160
|
|
lpFileName$ = 256
|
|
hFile$ = 264
|
|
Buffer$ = 264
|
|
Size$ = 272
|
|
Flush$ = 280
|
|
Append$ = 288
|
|
supWriteBufferToFile$fin$0 PROC
|
|
; Line 261
|
|
push rbp
|
|
sub rsp, 96 ; 00000060H
|
|
mov rbp, rdx
|
|
$LN22@supWriteBu:
|
|
; Line 263
|
|
mov rcx, QWORD PTR hFile$[rbp]
|
|
test rcx, rcx
|
|
je SHORT $LN16@supWriteBu
|
|
; Line 264
|
|
cmp DWORD PTR Flush$[rbp], 0
|
|
je SHORT $LN17@supWriteBu
|
|
lea rdx, QWORD PTR IoStatus$[rbp]
|
|
call QWORD PTR __imp_NtFlushBuffersFile
|
|
mov rcx, QWORD PTR hFile$[rbp]
|
|
$LN17@supWriteBu:
|
|
; Line 265
|
|
call QWORD PTR __imp_NtClose
|
|
npad 1
|
|
$LN16@supWriteBu:
|
|
; Line 267
|
|
lea rcx, QWORD PTR NtFileName$[rbp]
|
|
call QWORD PTR __imp_RtlFreeUnicodeString
|
|
npad 1
|
|
$LN23@supWriteBu:
|
|
add rsp, 96 ; 00000060H
|
|
pop rbp
|
|
ret 0
|
|
int 3
|
|
supWriteBufferToFile$fin$0 ENDP
|
|
text$x ENDS
|
|
; Function compile flags: /Ogspy
|
|
; COMDAT text$x
|
|
text$x SEGMENT
|
|
IoStatus$ = 96
|
|
Position$ = 112
|
|
BytesWritten$ = 120
|
|
BlockIndex$ = 128
|
|
NtFileName$ = 136
|
|
ptr$ = 152
|
|
attr$ = 160
|
|
lpFileName$ = 256
|
|
hFile$ = 264
|
|
Buffer$ = 264
|
|
Size$ = 272
|
|
Flush$ = 280
|
|
Append$ = 288
|
|
supWriteBufferToFile$fin$0 PROC
|
|
; Line 261
|
|
push rbp
|
|
sub rsp, 96 ; 00000060H
|
|
mov rbp, rdx
|
|
$LN22@supWriteBu:
|
|
; Line 263
|
|
mov rcx, QWORD PTR hFile$[rbp]
|
|
test rcx, rcx
|
|
je SHORT $LN16@supWriteBu
|
|
; Line 264
|
|
cmp DWORD PTR Flush$[rbp], 0
|
|
je SHORT $LN17@supWriteBu
|
|
lea rdx, QWORD PTR IoStatus$[rbp]
|
|
call QWORD PTR __imp_NtFlushBuffersFile
|
|
mov rcx, QWORD PTR hFile$[rbp]
|
|
$LN17@supWriteBu:
|
|
; Line 265
|
|
call QWORD PTR __imp_NtClose
|
|
npad 1
|
|
$LN16@supWriteBu:
|
|
; Line 267
|
|
lea rcx, QWORD PTR NtFileName$[rbp]
|
|
call QWORD PTR __imp_RtlFreeUnicodeString
|
|
npad 1
|
|
$LN23@supWriteBu:
|
|
add rsp, 96 ; 00000060H
|
|
pop rbp
|
|
ret 0
|
|
int 3
|
|
supWriteBufferToFile$fin$0 ENDP
|
|
text$x ENDS
|
|
; Function compile flags: /Ogspy
|
|
; COMDAT supBackupVBoxDrv
|
|
_TEXT SEGMENT
|
|
szOldDriverName$ = 32
|
|
szDriverDirName$ = 1072
|
|
szNewDriverName$ = 2112
|
|
bRestore$ = 3168
|
|
supBackupVBoxDrv PROC ; COMDAT
|
|
; File J:\Workspace\drivers\TDL\Source\Furutaka\sup.c
|
|
; Line 141
|
|
$LN9:
|
|
mov QWORD PTR [rsp+8], rbx
|
|
mov QWORD PTR [rsp+16], rdi
|
|
push rbp
|
|
lea rbp, QWORD PTR [rsp-2896]
|
|
sub rsp, 3152 ; 00000c50H
|
|
mov edi, ecx
|
|
; Line 147
|
|
mov edx, 260 ; 00000104H
|
|
lea rcx, QWORD PTR szDriverDirName$[rbp-256]
|
|
xor ebx, ebx
|
|
call QWORD PTR __imp_GetSystemDirectoryW
|
|
test eax, eax
|
|
je $LN1@supBackupV
|
|
$LN2@supBackupV:
|
|
; Line 151
|
|
lea rdx, OFFSET FLAT:??_C@_1BE@HOKNBJFH@?$AA?2?$AAd?$AAr?$AAi?$AAv?$AAe?$AAr?$AAs?$AA?2@
|
|
lea rcx, QWORD PTR szDriverDirName$[rbp-256]
|
|
call _strcat_w
|
|
; Line 153
|
|
lea rdx, QWORD PTR szDriverDirName$[rbp-256]
|
|
lea rcx, QWORD PTR szOldDriverName$[rsp]
|
|
call _strcpy_w
|
|
lea rcx, QWORD PTR szOldDriverName$[rsp]
|
|
test edi, edi
|
|
je SHORT $LN3@supBackupV
|
|
; Line 155
|
|
lea rdx, OFFSET FLAT:??_C@_1BO@PJIGFGPE@?$AAV?$AAB?$AAo?$AAx?$AAD?$AAr?$AAv?$AA?4?$AAb?$AAa?$AAc?$AAk?$AAu?$AAp@
|
|
call _strcat_w
|
|
; Line 156
|
|
lea rcx, QWORD PTR szOldDriverName$[rsp]
|
|
call QWORD PTR __imp_GetFileAttributesW
|
|
cmp eax, -1 ; ffffffffH
|
|
je SHORT $LN4@supBackupV
|
|
; Line 157
|
|
lea rdx, QWORD PTR szDriverDirName$[rbp-256]
|
|
lea rcx, QWORD PTR szNewDriverName$[rbp-256]
|
|
call _strcpy_w
|
|
; Line 158
|
|
lea rdx, OFFSET FLAT:??_C@_1BI@MANNKNNC@?$AAV?$AAB?$AAo?$AAx?$AAD?$AAr?$AAv?$AA?4?$AAs?$AAy?$AAs@
|
|
; Line 162
|
|
jmp SHORT $LN7@supBackupV
|
|
$LN3@supBackupV:
|
|
; Line 165
|
|
lea rdx, OFFSET FLAT:??_C@_1BI@MANNKNNC@?$AAV?$AAB?$AAo?$AAx?$AAD?$AAr?$AAv?$AA?4?$AAs?$AAy?$AAs@
|
|
call _strcat_w
|
|
; Line 166
|
|
lea rdx, QWORD PTR szDriverDirName$[rbp-256]
|
|
lea rcx, QWORD PTR szNewDriverName$[rbp-256]
|
|
call _strcpy_w
|
|
; Line 167
|
|
lea rdx, OFFSET FLAT:??_C@_1BO@PJIGFGPE@?$AAV?$AAB?$AAo?$AAx?$AAD?$AAr?$AAv?$AA?4?$AAb?$AAa?$AAc?$AAk?$AAu?$AAp@
|
|
$LN7@supBackupV:
|
|
; Line 171
|
|
lea rcx, QWORD PTR szNewDriverName$[rbp-256]
|
|
call _strcat_w
|
|
mov r8d, 9
|
|
lea rdx, QWORD PTR szNewDriverName$[rbp-256]
|
|
lea rcx, QWORD PTR szOldDriverName$[rsp]
|
|
call QWORD PTR __imp_MoveFileExW
|
|
mov ebx, eax
|
|
$LN4@supBackupV:
|
|
mov eax, ebx
|
|
$LN1@supBackupV:
|
|
; Line 172
|
|
lea r11, QWORD PTR [rsp+3152]
|
|
mov rbx, QWORD PTR [r11+16]
|
|
mov rdi, QWORD PTR [r11+24]
|
|
mov rsp, r11
|
|
pop rbp
|
|
ret 0
|
|
supBackupVBoxDrv ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Ogspy
|
|
; COMDAT supQueryResourceData
|
|
_TEXT SEGMENT
|
|
DataEntry$ = 32
|
|
IdPath$ = 40
|
|
ResourceId$ = 80
|
|
SizeOfData$ = 88
|
|
DllHandle$ = 88
|
|
DataSize$ = 96
|
|
Data$ = 104
|
|
supQueryResourceData PROC ; COMDAT
|
|
; File J:\Workspace\drivers\TDL\Source\Furutaka\sup.c
|
|
; Line 104
|
|
$LN9:
|
|
mov QWORD PTR [rsp+8], rbx
|
|
mov QWORD PTR [rsp+24], rdi
|
|
push rbp
|
|
mov rbp, rsp
|
|
sub rsp, 64 ; 00000040H
|
|
; Line 108
|
|
and QWORD PTR Data$[rbp-64], 0
|
|
mov rbx, r8
|
|
; Line 109
|
|
and DWORD PTR SizeOfData$[rbp-64], 0
|
|
mov rdi, rdx
|
|
; Line 111
|
|
test rdx, rdx
|
|
je SHORT $LN7@supQueryRe
|
|
; Line 115
|
|
and QWORD PTR IdPath$[rbp-48], 0
|
|
; Line 117
|
|
lea r9, QWORD PTR DataEntry$[rbp-64]
|
|
mov QWORD PTR IdPath$[rbp-56], rcx
|
|
lea rdx, QWORD PTR IdPath$[rbp-64]
|
|
mov rcx, rdi
|
|
mov QWORD PTR IdPath$[rbp-64], 10
|
|
mov r8d, 3
|
|
call QWORD PTR __imp_LdrFindResource_U
|
|
; Line 118
|
|
test eax, eax
|
|
js SHORT $LN7@supQueryRe
|
|
; Line 119
|
|
mov rdx, QWORD PTR DataEntry$[rbp-64]
|
|
lea r9, QWORD PTR SizeOfData$[rbp-64]
|
|
lea r8, QWORD PTR Data$[rbp-64]
|
|
mov rcx, rdi
|
|
call QWORD PTR __imp_LdrAccessResource
|
|
; Line 120
|
|
test eax, eax
|
|
js SHORT $LN7@supQueryRe
|
|
; Line 121
|
|
test rbx, rbx
|
|
je SHORT $LN7@supQueryRe
|
|
; Line 122
|
|
mov eax, DWORD PTR SizeOfData$[rbp-64]
|
|
mov DWORD PTR [rbx], eax
|
|
$LN7@supQueryRe:
|
|
; Line 127
|
|
mov rax, QWORD PTR Data$[rbp-64]
|
|
; Line 128
|
|
mov rbx, QWORD PTR [rsp+80]
|
|
mov rdi, QWORD PTR [rsp+96]
|
|
add rsp, 64 ; 00000040H
|
|
pop rbp
|
|
ret 0
|
|
supQueryResourceData ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Ogspy
|
|
; COMDAT supGetSystemInfo
|
|
_TEXT SEGMENT
|
|
InfoClass$ = 64
|
|
memIO$ = 72
|
|
supGetSystemInfo PROC ; COMDAT
|
|
; File J:\Workspace\drivers\TDL\Source\Furutaka\sup.c
|
|
; Line 30
|
|
$LN22:
|
|
mov QWORD PTR [rsp+8], rbx
|
|
mov QWORD PTR [rsp+24], rbp
|
|
push rsi
|
|
push rdi
|
|
push r14
|
|
sub rsp, 32 ; 00000020H
|
|
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h
|
|
; Line 22853
|
|
mov rax, QWORD PTR gs:48
|
|
; File J:\Workspace\drivers\TDL\Source\Furutaka\sup.c
|
|
; Line 30
|
|
mov r14d, ecx
|
|
; Line 31
|
|
xor ebp, ebp
|
|
; Line 33
|
|
mov edi, 4096 ; 00001000H
|
|
; Line 36
|
|
mov rdx, QWORD PTR [rax+96]
|
|
mov rsi, QWORD PTR [rdx+48]
|
|
$LL4@supGetSyst:
|
|
; Line 39
|
|
mov r8d, edi
|
|
mov edx, 8
|
|
mov rcx, rsi
|
|
call QWORD PTR __imp_RtlAllocateHeap
|
|
mov rbx, rax
|
|
; Line 40
|
|
test rax, rax
|
|
je SHORT $LN5@supGetSyst
|
|
; Line 41
|
|
lea r9, QWORD PTR memIO$[rsp]
|
|
mov r8d, edi
|
|
mov rdx, rax
|
|
mov ecx, r14d
|
|
call QWORD PTR __imp_NtQuerySystemInformation
|
|
; Line 46
|
|
cmp eax, -1073741820 ; ffffffffc0000004H
|
|
jne SHORT $LN3@supGetSyst
|
|
; Line 47
|
|
mov r8, rbx
|
|
xor edx, edx
|
|
mov rcx, rsi
|
|
call QWORD PTR __imp_RtlFreeHeap
|
|
; Line 49
|
|
add edi, edi
|
|
; Line 50
|
|
inc ebp
|
|
; Line 51
|
|
cmp ebp, 100 ; 00000064H
|
|
jle SHORT $LL4@supGetSyst
|
|
jmp SHORT $LN5@supGetSyst
|
|
$LN3@supGetSyst:
|
|
; Line 58
|
|
test eax, eax
|
|
js SHORT $LN20@supGetSyst
|
|
; Line 59
|
|
mov rax, rbx
|
|
jmp SHORT $LN1@supGetSyst
|
|
$LN20@supGetSyst:
|
|
; Line 63
|
|
mov r8, rbx
|
|
xor edx, edx
|
|
mov rcx, rsi
|
|
call QWORD PTR __imp_RtlFreeHeap
|
|
$LN5@supGetSyst:
|
|
; Line 44
|
|
xor eax, eax
|
|
$LN1@supGetSyst:
|
|
; Line 66
|
|
mov rbx, QWORD PTR [rsp+64]
|
|
mov rbp, QWORD PTR [rsp+80]
|
|
add rsp, 32 ; 00000020H
|
|
pop r14
|
|
pop rdi
|
|
pop rsi
|
|
ret 0
|
|
supGetSystemInfo ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Ogspy
|
|
; COMDAT supGetNtOsBase
|
|
_TEXT SEGMENT
|
|
supGetNtOsBase PROC ; COMDAT
|
|
; File J:\Workspace\drivers\TDL\Source\Furutaka\sup.c
|
|
; Line 79
|
|
$LN9:
|
|
push rbx
|
|
sub rsp, 32 ; 00000020H
|
|
; Line 81
|
|
xor ebx, ebx
|
|
; Line 83
|
|
lea ecx, QWORD PTR [rbx+11]
|
|
call supGetSystemInfo
|
|
; Line 84
|
|
test rax, rax
|
|
je SHORT $LN2@supGetNtOs
|
|
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h
|
|
; Line 22853
|
|
mov rcx, QWORD PTR gs:48
|
|
; File J:\Workspace\drivers\TDL\Source\Furutaka\sup.c
|
|
; Line 86
|
|
mov r8, rax
|
|
mov rbx, QWORD PTR [rax+24]
|
|
xor edx, edx
|
|
mov rcx, QWORD PTR [rcx+96]
|
|
mov rcx, QWORD PTR [rcx+48]
|
|
call QWORD PTR __imp_RtlFreeHeap
|
|
$LN2@supGetNtOs:
|
|
; Line 88
|
|
mov rax, rbx
|
|
; Line 89
|
|
add rsp, 32 ; 00000020H
|
|
pop rbx
|
|
ret 0
|
|
supGetNtOsBase ENDP
|
|
_TEXT ENDS
|
|
END
|