TDL/Source/Furutaka/output/x64/Release/asmlist/cmdline.asm

435 lines
7.7 KiB
NASM
Raw Normal View History

2021-01-16 14:21:44 +08:00
; 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