;
; Реализация среды исполнения языка программирования
; Объектно-ориентированный продвинутый векторный транслятор
;
; Copyright © 2021, 2024 Малик Разработчик
;
; Это свободная программа: вы можете перераспространять ее и/или изменять
; ее на условиях Меньшей Стандартной общественной лицензии GNU в том виде,
; в каком она была опубликована Фондом свободного программного обеспечения;
; либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии.
;
; Эта программа распространяется в надежде, что она будет полезной,
; но БЕЗО ВСЯКИХ ГАРАНТИЙ; даже без неявной гарантии ТОВАРНОГО ВИДА
; или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННЫХ ЦЕЛЕЙ. Подробнее см. в Меньшей Стандартной
; общественной лицензии GNU.
;
; Вы должны были получить копию Меньшей Стандартной общественной лицензии GNU
; вместе с этой программой. Если это не так, см.
; <https://www.gnu.org/licenses/>.
;
; <fold platform.dependent.mswindows.kernel.Kernel — родной код>
if(used platform.dependent.mswindows.kernel.Kernel$exitProcess$int$) ; <fold >
fast platform.dependent.mswindows.kernel.Kernel$exitProcess$int$, \
uExitCode, int
fenter
cld
lea rsp, [rsp-$20]
mov r01d, [.uExitCode]
call qword [impr$kernel.exitProcess]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$exitThread$int$) ; <fold >
fast platform.dependent.mswindows.kernel.Kernel$exitThread$int$, \
dwExitCode, int
fenter
cld
lea rsp, [rsp-$20]
mov r01d, [.dwExitCode]
call qword [impr$kernel.exitThread]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getSystemInfo$long$) ; <fold >
fast platform.dependent.mswindows.kernel.Kernel$getSystemInfo$long$, \
lpSystemInfo, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpSystemInfo]
call qword [impr$kernel.getSystemInfo]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getSystemTime$long$) ; <fold >
fast platform.dependent.mswindows.kernel.Kernel$getSystemTime$long$, \
lpSystemTime, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpSystemTime]
call qword [impr$kernel.getSystemTime]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$initializeCriticalSection$long$) ; <fold >
fast platform.dependent.mswindows.kernel.Kernel$initializeCriticalSection$long$, \
lpCriticalSection, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpCriticalSection]
call qword [impr$kernel.initializeCriticalSection]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$enterCriticalSection$long$) ; <fold >
fast platform.dependent.mswindows.kernel.Kernel$enterCriticalSection$long$, \
lpCriticalSection, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpCriticalSection]
call qword [impr$kernel.enterCriticalSection]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$leaveCriticalSection$long$) ; <fold >
fast platform.dependent.mswindows.kernel.Kernel$leaveCriticalSection$long$, \
lpCriticalSection, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpCriticalSection]
call qword [impr$kernel.leaveCriticalSection]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$deleteCriticalSection$long$) ; <fold >
fast platform.dependent.mswindows.kernel.Kernel$deleteCriticalSection$long$, \
lpCriticalSection, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpCriticalSection]
call qword [impr$kernel.deleteCriticalSection]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$setCurrentDirectory$long$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$setCurrentDirectory$long$, \
lpPathName, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpPathName]
call qword [impr$kernel.setCurrentDirectory]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$createDirectory$long$long$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$createDirectory$long$long$, \
lpPathName, long, \
lpSecurityAttributes, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpPathName]
mov r02q, [.lpSecurityAttributes]
call qword [impr$kernel.createDirectory]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$removeDirectory$long$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$removeDirectory$long$, \
lpPathName, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpPathName]
call qword [impr$kernel.removeDirectory]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$findNextFile$long$long$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$findNextFile$long$long$, \
hFindFile, long, \
lpFindFileData, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.hFindFile]
mov r02q, [.lpFindFileData]
call qword [impr$kernel.findNextFile]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$findClose$long$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$findClose$long$, \
hFindFile, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.hFindFile]
call qword [impr$kernel.findClose]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$moveFile$long$long$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$moveFile$long$long$, \
lpExistingFileName, long, \
lpNewFileName, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpExistingFileName]
mov r02q, [.lpNewFileName]
call qword [impr$kernel.moveFile]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$deleteFile$long$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$deleteFile$long$, \
lpFileName, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpFileName]
call qword [impr$kernel.deleteFile]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$flushFileBuffers$long$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$flushFileBuffers$long$, \
hFile, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.hFile]
call qword [impr$kernel.flushFileBuffers]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$setEndOfFile$long$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$setEndOfFile$long$, \
hFile, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.hFile]
call qword [impr$kernel.setEndOfFile]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$setFileTime$long$long$long$long$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$setFileTime$long$long$long$long$, \
hFile, long, \
lpCreationTime, long, \
lpLastAccessTime, long, \
lpLastWriteTime, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.hFile]
mov r02q, [.lpCreationTime]
mov r08q, [.lpLastAccessTime]
mov r09q, [.lpLastWriteTime]
call qword [impr$kernel.setFileTime]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$setFileAttributes$long$int$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$setFileAttributes$long$int$, \
lpFileName, long, \
dwFileAttributes, int
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpFileName]
mov r02d, [.dwFileAttributes]
call qword [impr$kernel.setFileAttributes]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getFileTime$long$long$long$long$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$getFileTime$long$long$long$long$, \
hFile, long, \
lpCreationTime, long, \
lpLastAccessTime, long, \
lpLastWriteTime, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.hFile]
mov r02q, [.lpCreationTime]
mov r08q, [.lpLastAccessTime]
mov r09q, [.lpLastWriteTime]
call qword [impr$kernel.getFileTime]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$setThreadPriority$long$int$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$setThreadPriority$long$int$, \
hThread, long, \
nPriority, int
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.hThread]
mov r02d, [.nPriority]
call qword [impr$kernel.setThreadPriority]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getThreadContext$long$long$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$getThreadContext$long$long$, \
hThread, long, \
lpContext, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.hThread]
mov r02q, [.lpContext]
call qword [impr$kernel.getThreadContext]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$setThreadContext$long$long$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$setThreadContext$long$long$, \
hThread, long, \
lpContext, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.hThread]
mov r02q, [.lpContext]
call qword [impr$kernel.setThreadContext]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$thread32First$long$long$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$thread32First$long$long$, \
hSnapshot, long, \
lpThreadEntry, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.hSnapshot]
mov r02q, [.lpThreadEntry]
call qword [impr$kernel.thread32First]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$thread32Next$long$long$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$thread32Next$long$long$, \
hSnapshot, long, \
lpThreadEntry, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.hSnapshot]
mov r02q, [.lpThreadEntry]
call qword [impr$kernel.thread32Next]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$virtualFree$long$long$int$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$virtualFree$long$long$int$, \
lpAddress, long, \
dwSize, long, \
dwFreeType, int
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpAddress]
mov r02q, [.dwSize]
mov r08d, [.dwFreeType]
call qword [impr$kernel.virtualFree]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$freeEnvironmentStrings$long$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$freeEnvironmentStrings$long$, \
lpEnv, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpEnv]
call qword [impr$kernel.freeEnvironmentStrings]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$closeHandle$long$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$closeHandle$long$, \
hObject, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.hObject]
call qword [impr$kernel.closeHandle]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$setEvent$long$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$setEvent$long$, \
hEvent, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.hEvent]
call qword [impr$kernel.setEvent]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$switchToThread$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$switchToThread$
fenter
cld
lea rsp, [rsp-$20]
call qword [impr$kernel.switchToThread]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$setEnvironmentVariable$long$long$) ; <fold returns boolean>
fast platform.dependent.mswindows.kernel.Kernel$setEnvironmentVariable$long$long$, \
lpName, long, \
lpValue, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpName]
mov r02q, [.lpValue]
call qword [impr$kernel.setEnvironmentVariable]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getCurrentDirectory$int$long$) ; <fold returns int>
fast platform.dependent.mswindows.kernel.Kernel$getCurrentDirectory$int$long$, \
nBufferLength, int, \
lpBuffer, long
fenter
cld
lea rsp, [rsp-$20]
mov r01d, [.nBufferLength]
mov r02q, [.lpBuffer]
call qword [impr$kernel.getCurrentDirectory]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getFileAttributes$long$) ; <fold returns int>
fast platform.dependent.mswindows.kernel.Kernel$getFileAttributes$long$, \
lpFileName, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpFileName]
call qword [impr$kernel.getFileAttributes]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getDriveType$long$) ; <fold returns int>
fast platform.dependent.mswindows.kernel.Kernel$getDriveType$long$, \
lpRootPathName, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpRootPathName]
call qword [impr$kernel.getDriveType]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getModuleFileName$long$long$int$) ; <fold returns int>
fast platform.dependent.mswindows.kernel.Kernel$getModuleFileName$long$long$int$, \
hModule, long, \
lpFileName, long, \
nSize, int
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.hModule]
mov r02q, [.lpFileName]
mov r08d, [.nSize]
call qword [impr$kernel.getModuleFileName]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getCurrentProcessId$) ; <fold returns int>
fast platform.dependent.mswindows.kernel.Kernel$getCurrentProcessId$
fenter
cld
lea rsp, [rsp-$20]
call qword [impr$kernel.getCurrentProcessId]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getCurrentThreadId$) ; <fold returns int>
fast platform.dependent.mswindows.kernel.Kernel$getCurrentThreadId$
fenter
cld
lea rsp, [rsp-$20]
call qword [impr$kernel.getCurrentThreadId]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getConsoleOutputCP$) ; <fold returns int>
fast platform.dependent.mswindows.kernel.Kernel$getConsoleOutputCP$
fenter
cld
lea rsp, [rsp-$20]
call qword [impr$kernel.getConsoleOutputCP]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getConsoleInputCP$) ; <fold returns int>
fast platform.dependent.mswindows.kernel.Kernel$getConsoleInputCP$
fenter
cld
lea rsp, [rsp-$20]
call qword [impr$kernel.getConsoleInputCP]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getLastStatus$) ; <fold returns int>
proc platform.dependent.mswindows.kernel.Kernel$getLastStatus$
mov r00q, [gs: $30]
mov r00d, [r00+$1250]
ret
end_proc
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getLastError$) ; <fold returns int>
proc platform.dependent.mswindows.kernel.Kernel$getLastError$
mov r00q, [gs: $30]
mov r00d, [r00+$0068]
ret
end_proc
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$resumeThread$long$) ; <fold returns int>
fast platform.dependent.mswindows.kernel.Kernel$resumeThread$long$, \
hThread, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.hThread]
call qword [impr$kernel.resumeThread]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getThreadPriority$long$) ; <fold returns int>
fast platform.dependent.mswindows.kernel.Kernel$getThreadPriority$long$, \
hThread, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.hThread]
call qword [impr$kernel.getThreadPriority]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getEnvironmentVariable$long$long$int$) ; <fold returns int>
fast platform.dependent.mswindows.kernel.Kernel$getEnvironmentVariable$long$long$int$, \
lpName, long, \
lpBuffer, long, \
nSize, int
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpName]
mov r02q, [.lpBuffer]
mov r08d, [.nSize]
call qword [impr$kernel.getEnvironmentVariable]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$waitForSingleObject$long$int$) ; <fold returns int>
fast platform.dependent.mswindows.kernel.Kernel$waitForSingleObject$long$int$, \
hHandle, long, \
dwMilliseconds, int
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.hHandle]
mov r02d, [.dwMilliseconds]
call qword [impr$kernel.waitForSingleObject]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getTimeZoneInformation$long$) ; <fold returns int>
fast platform.dependent.mswindows.kernel.Kernel$getTimeZoneInformation$long$, \
lpTimeZoneInformation, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpTimeZoneInformation]
call qword [impr$kernel.getTimeZoneInformation]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getExitCodeThread$long$) ; <fold returns int2>
fast platform.dependent.mswindows.kernel.Kernel$getExitCodeThread$long$, \
hThread, long
floc lpExitCode, int
fenter
cld
mov qword [.lpExitCode], $00
lea rsp, [rsp-$20]
mov r01q, [.hThread]
lea r02q, [.lpExitCode]
call qword [impr$kernel.getExitCodeThread]
vmovd xmm0, r00d
vmovd xmm1, [.lpExitCode]
vpslldq xmm1, xmm1, $04
vpor xmm0, xmm0, xmm1
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$readFile$long$long$) ; <fold returns int2>
fast platform.dependent.mswindows.kernel.Kernel$readFile$long$long$, \
hFile, long, \
lpOverlapped, long
floc lpBuffer, int, \
lpNumberOfBytesRead, int
fenter
cld
mov qword [.lpBuffer], $00
mov qword [.lpNumberOfBytesRead], $00
lea rsp, [rsp-$30]
mov r01q, [.hFile]
lea r02q, [.lpBuffer]
mov r08d, $01
lea r09q, [.lpNumberOfBytesRead]
mov r00q, [.lpOverlapped]
mov qword [rsp+$20], r00q
call qword [impr$kernel.readFile]
test r00d, r00d
jnz .L.0000
vpxor xmm0, xmm0, xmm0
freturn
.L.0000: cmp dword [.lpNumberOfBytesRead], $01
je .L.0001
mov r01d, -$01
jmp .L.0002
.L.0001: mov r01d, [.lpBuffer]
.L.0002: vmovd xmm0, r00d
vmovd xmm1, r01d
vpslldq xmm1, xmm1, $04
vpor xmm0, xmm0, xmm1
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$readFile$long$long$int$long$) ; <fold returns int2>
fast platform.dependent.mswindows.kernel.Kernel$readFile$long$long$int$long$, \
hFile, long, \
lpBuffer, long, \
nNumberOfBytesToRead, int, \
lpOverlapped, long
floc lpNumberOfBytesRead, int
fenter
cld
mov qword [.lpNumberOfBytesRead], $00
lea rsp, [rsp-$30]
mov r01q, [.hFile]
mov r02q, [.lpBuffer]
mov r08d, [.nNumberOfBytesToRead]
lea r09q, [.lpNumberOfBytesRead]
mov r00q, [.lpOverlapped]
mov qword [rsp+$20], r00q
call qword [impr$kernel.readFile]
vmovd xmm0, r00d
vmovd xmm1, [.lpNumberOfBytesRead]
vpslldq xmm1, xmm1, $04
vpor xmm0, xmm0, xmm1
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$writeFile$long$int$long$) ; <fold returns int2>
fast platform.dependent.mswindows.kernel.Kernel$writeFile$long$int$long$, \
hFile, long, \
lpBuffer, int, \
lpOverlapped, long
floc lpNumberOfBytesWritten, int
fenter
cld
mov qword [.lpNumberOfBytesWritten], $00
lea rsp, [rsp-$30]
mov r01q, [.hFile]
lea r02q, [.lpBuffer]
mov r08d, $01
lea r09q, [.lpNumberOfBytesWritten]
mov r00q, [.lpOverlapped]
mov qword [rsp+$20], r00q
call qword [impr$kernel.writeFile]
vmovd xmm0, r00d
vmovd xmm1, [.lpNumberOfBytesWritten]
vpslldq xmm1, xmm1, $04
vpor xmm0, xmm0, xmm1
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$writeFile$long$long$int$long$) ; <fold returns int2>
fast platform.dependent.mswindows.kernel.Kernel$writeFile$long$long$int$long$, \
hFile, long, \
lpBuffer, long, \
nNumberOfBytesToWrite, int, \
lpOverlapped, long
floc lpNumberOfBytesWritten, int
fenter
cld
mov qword [.lpNumberOfBytesWritten], $00
lea rsp, [rsp-$30]
mov r01q, [.hFile]
mov r02q, [.lpBuffer]
mov r08d, [.nNumberOfBytesToWrite]
lea r09q, [.lpNumberOfBytesWritten]
mov r00q, [.lpOverlapped]
mov qword [rsp+$20], r00q
call qword [impr$kernel.writeFile]
vmovd xmm0, r00d
vmovd xmm1, [.lpNumberOfBytesWritten]
vpslldq xmm1, xmm1, $04
vpor xmm0, xmm0, xmm1
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$virtualProtect$long$long$int$) ; <fold returns int2>
fast platform.dependent.mswindows.kernel.Kernel$virtualProtect$long$long$int$, \
lpAddress, long, \
dwSize, long, \
flNewProtect, int
floc lpflOldProtect, int
fenter
cld
mov qword [.lpflOldProtect], $00
lea rsp, [rsp-$20]
mov r01q, [.lpAddress]
mov r02q, [.dwSize]
mov r08d, [.flNewProtect]
lea r09q, [.lpflOldProtect]
call qword [impr$kernel.virtualProtect]
vmovd xmm0, r00d
vmovd xmm1, [.lpflOldProtect]
vpslldq xmm1, xmm1, $04
vpor xmm0, xmm0, xmm1
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$virtualAlloc$long$long$int$int$) ; <fold returns long>
fast platform.dependent.mswindows.kernel.Kernel$virtualAlloc$long$long$int$int$, \
lpAddress, long, \
dwSize, long, \
flAllocationType, int, \
flProtect, int
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpAddress]
mov r02q, [.dwSize]
mov r08d, [.flAllocationType]
mov r09d, [.flProtect]
call qword [impr$kernel.virtualAlloc]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getStdHandle$int$) ; <fold returns long>
fast platform.dependent.mswindows.kernel.Kernel$getStdHandle$int$, \
nStdHandle, int
fenter
cld
lea rsp, [rsp-$20]
mov r01d, [.nStdHandle]
call qword [impr$kernel.getStdHandle]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$openThread$int$boolean$int$) ; <fold returns long>
fast platform.dependent.mswindows.kernel.Kernel$openThread$int$boolean$int$, \
dwDesiredAccess, int, \
bInheritHandle, boolean, \
dwThreadId, int
fenter
cld
lea rsp, [rsp-$20]
mov r01d, [.dwDesiredAccess]
mov r02d, [.bInheritHandle]
mov r08d, [.dwThreadId]
call qword [impr$kernel.openThread]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$findFirstFile$long$long$) ; <fold returns long>
fast platform.dependent.mswindows.kernel.Kernel$findFirstFile$long$long$, \
lpFileName, long, \
lpFindFileData, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpFileName]
mov r02q, [.lpFindFileData]
call qword [impr$kernel.findFirstFile]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getFileSize$long$) ; <fold returns long>
fast platform.dependent.mswindows.kernel.Kernel$getFileSize$long$, \
hFile, long
floc lpFileSizeHigh, int
fenter
cld
mov qword [.lpFileSizeHigh], $00
lea rsp, [rsp-$20]
mov r01q, [.hFile]
lea r02q, [.lpFileSizeHigh]
call qword [impr$kernel.getFileSize]
mov r00d, r00d
mov r01d, [.lpFileSizeHigh]
shl r01q, $20
or r00q, r01q
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$setFilePointer$long$long$int$) ; <fold returns long>
fast platform.dependent.mswindows.kernel.Kernel$setFilePointer$long$long$int$, \
hFile, long, \
lDistanceToMove, long, \
dwMoveMethod, int
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.hFile]
mov r02d, [.lDistanceToMove+$00]
lea r08q, [.lDistanceToMove+$04]
mov r09d, [.dwMoveMethod]
call qword [impr$kernel.setFilePointer]
mov dword [.lDistanceToMove], r00d
mov r00q, [.lDistanceToMove]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$createToolHelp32Snapshot$int$int$) ; <fold returns long>
fast platform.dependent.mswindows.kernel.Kernel$createToolHelp32Snapshot$int$int$, \
dwFlags, int, \
th32ProcessId, int
fenter
cld
lea rsp, [rsp-$20]
mov r01d, [.dwFlags]
mov r02d, [.th32ProcessId]
call qword [impr$kernel.createToolHelp32Snapshot]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$createFile$long$int$int$long$int$int$long$) ; <fold returns long>
fast platform.dependent.mswindows.kernel.Kernel$createFile$long$int$int$long$int$int$long$, \
lpFileName, long, \
dwDesiredAccess, int, \
dwShareMode, int, \
lpSecurityAttributes, long, \
dwCreationDisposition, int, \
dwFlagsAndAttributes, int, \
hTemplateFile, long
fenter
cld
lea rsp, [rsp-$40]
mov r01q, [.lpFileName]
mov r02d, [.dwDesiredAccess]
mov r08d, [.dwShareMode]
mov r09q, [.lpSecurityAttributes]
mov r00d, [.dwCreationDisposition]
mov qword [rsp+$20], r00q
mov r00d, [.dwFlagsAndAttributes]
mov qword [rsp+$28], r00q
mov r00q, [.hTemplateFile]
mov qword [rsp+$30], r00q
call qword [impr$kernel.createFile]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$createEvent$long$boolean$boolean$long$) ; <fold returns long>
fast platform.dependent.mswindows.kernel.Kernel$createEvent$long$boolean$boolean$long$, \
lpEventAttributes, long, \
bManualReset, boolean, \
bInitialState, boolean, \
lpName, long
fenter
cld
lea rsp, [rsp-$20]
mov r01q, [.lpEventAttributes]
test dword [.bManualReset], -$01
setz r02b
dec r02b
movsx r02d, r02b
test dword [.bInitialState], -$01
setz r08b
dec r08b
movsx r08d, r08b
mov r09q, [.lpName]
call qword [impr$kernel.createEvent]
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$createThread$long$long$long$long$int$) ; <fold returns long2>
fast platform.dependent.mswindows.kernel.Kernel$createThread$long$long$long$long$int$, \
lpThreadAttributes, long, \
dwStackSize, long, \
lpStartAddress, long, \
lpParameter, long, \
dwCreationFlags, int
floc lpThreadId, int
fenter
cld
mov qword [.lpThreadId], $00
lea rsp, [rsp-$30]
mov r01q, [.lpThreadAttributes]
mov r02q, [.dwStackSize]
mov r08q, [.lpStartAddress]
mov r09q, [.lpParameter]
mov r00d, [.dwCreationFlags]
mov qword [rsp+$20], r00q
lea r00q, [.lpThreadId]
mov qword [rsp+$28], r00q
call qword [impr$kernel.createThread]
vmovq xmm0, r00q
vmovq xmm1, [.lpThreadId]
vpslldq xmm1, xmm1, $08
vpor xmm0, xmm0, xmm1
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getCommandLine$) ; <fold returns long2>
fast platform.dependent.mswindows.kernel.Kernel$getCommandLine$
fenter
cld
lea rsp, [rsp-$20]
call qword [impr$kernel.getCommandLine]
savetbp
lea r02q, [r00+$00]
lea r07q, [r00+$00]
xor r00d, r00d
mov r01d, avt.lang.Int$MAX_VALUE
cld
repne scasw
lea r00q, [r07-$02]
sub r00q, r02q
sar r00q, $01
rstortbp
vmovq xmm0, r02q
vmovq xmm1, r00q
vpslldq xmm1, xmm1, $08
vpor xmm0, xmm0, xmm1
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getEnvironmentStrings$) ; <fold returns long2>
fast platform.dependent.mswindows.kernel.Kernel$getEnvironmentStrings$
fenter
cld
lea rsp, [rsp-$20]
call qword [impr$kernel.getEnvironmentStrings]
lea r02q, [r00+$00]
test r00q, r00q
jz .L.0001
savetbp
lea r07q, [r00+$00]
xor r00d, r00d
mov r01d, avt.lang.Int$MAX_VALUE
cld
.L.0000: repne scasw
scasw
jne .L.0000
lea r00q, [r07-$02]
sub r00q, r02q
sar r00q, $01
rstortbp
.L.0001: vmovq xmm0, r02q
vmovq xmm1, r00q
vpslldq xmm1, xmm1, $08
vpor xmm0, xmm0, xmm1
fleave
end if ; </fold>
if(used platform.dependent.mswindows.kernel.Kernel$getDiskFreeSpaceEx$long$) ; <fold returns long4>
fast platform.dependent.mswindows.kernel.Kernel$getDiskFreeSpaceEx$long$, \
lpDirectoryName, long
floc result, long4
fenter
cld
vpxor ymm0, ymm0, ymm0
vmovdqu yword [.result], ymm0
lea rsp, [rsp-$20]
mov r01q, [.lpDirectoryName]
lea r02q, [.result+$08]
lea r08q, [.result+$10]
lea r09q, [.result+$18]
call qword [impr$kernel.getDiskFreeSpaceEx]
mov r00d, r00d
mov qword [.result], r00q
vmovdqu ymm0, [.result]
fleave
end if ; </fold>
; </fold>