1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190
|
main proc
PUSH EBP
MOV EBP, ESP
AND ESP, -16
SUB ESP, 32
CALL get_current_dir_name
MOV DWORD PTR [ESP+28], EAX
MOV EAX, DWORD PTR [EBP+12]
MOV EAX, DWORD PTR [EAX]
CMP EAX, offset end_line
JE L21
MOV EAX, DWORD PTR [EBP+12]
ADD EAX, 4
MOV EAX, DWORD PTR [EAX]
TEST EAX, EAX
JNE L21
MOV DWORD PTR [ESP], offset file
CALL printf
MOV DWORD PTR [ESP+4], 0
MOV DWORD PTR [ESP], 13
CALL color
MOV DWORD PTR [ESP], offset pink
CALL printf
MOV DWORD PTR [ESP+4], 0
MOV DWORD PTR [ESP], 7
CALL color
MOV DWORD PTR [ESP], offset folder
CALL printf
MOV DWORD PTR [ESP+4], 0
MOV DWORD PTR [ESP], 10
CALL color
MOV DWORD PTR [ESP], offset green
CALL printf
MOV DWORD PTR [ESP+4], 0
MOV DWORD PTR [ESP], 7
CALL color
MOV DWORD PTR [ESP], offset colon
CALL printf
MOV DWORD PTR [ESP], offset break
CALL crt_system
MOV EAX, DWORD PTR [ESP+28]
MOV DWORD PTR [ESP], EAX
CALL recursive
MOV DWORD PTR [ESP+24], EAX
CMP DWORD PTR [ESP+24], 1
JNE L22
MOV EAX, DWORD PTR [ESP+24]
MOV DWORD PTR [ESP+4], EAX
MOV DWORD PTR [ESP], offset only
CALL printf
JMP L23
L22:
CMP DWORD PTR [ESP+24], 0
JNE L24
MOV EAX, DWORD PTR [ESP+24]
MOV DWORD PTR [ESP+4], EAX
MOV DWORD PTR [ESP], offset no
CALL printf
JMP L23
L24:
MOV EAX, DWORD PTR [ESP+24]
MOV DWORD PTR [ESP+4], EAX
MOV DWORD PTR [ESP], offset several
CALL printf
L23:
MOV EAX, 0
JMP L25
L21:
CMP DWORD PTR [EBP+8], 2
JE L26
MOV DWORD PTR [ESP+4], 0
MOV DWORD PTR [ESP], 12
CALL color
MOV DWORD PTR [ESP], offset warn
CALL printf
MOV DWORD PTR [ESP+4], 0
MOV DWORD PTR [ESP], 7
CALL color
MOV DWORD PTR [ESP], offset invalid
CALL printf
MOV DWORD PTR [ESP+4], 0
MOV DWORD PTR [ESP], 14
CALL color
MOV EAX, DWORD PTR [EBP+12]
MOV EAX, DWORD PTR [EAX]
MOV DWORD PTR [ESP+4], EAX
MOV DWORD PTR [ESP], offset target
CALL printf
MOV DWORD PTR [ESP+4], 0
MOV DWORD PTR [ESP], 7
CALL color
MOV EAX, 1
JMP L25
L26:
MOV DWORD PTR [ESP], offset file
CALL printf
MOV DWORD PTR [ESP+4], 0
MOV DWORD PTR [ESP], 13
CALL color
MOV DWORD PTR [ESP], offset pink
CALL printf
MOV DWORD PTR [ESP+4], 0
MOV DWORD PTR [ESP], 7
CALL color
MOV DWORD PTR [ESP], offset folder
CALL printf
MOV DWORD PTR [ESP+4], 0
MOV DWORD PTR [ESP], 10
CALL color
MOV DWORD PTR [ESP], offset green
CALL printf
MOV DWORD PTR [ESP+4], 0
MOV DWORD PTR [ESP], 7
CALL color
MOV DWORD PTR [ESP], offset colon
CALL printf
MOV DWORD PTR [ESP], offset break
CALL crt_system
MOV EAX, DWORD PTR [EBP+12]
ADD EAX, 4
MOV EAX, DWORD PTR [EAX]
MOV DWORD PTR [ESP], EAX
CALL recursive
MOV DWORD PTR [ESP+24], EAX
CMP DWORD PTR [ESP+24], 1
JG L27
MOV EAX, DWORD PTR [ESP+24]
MOV DWORD PTR [ESP+4], EAX
MOV DWORD PTR [ESP], offset only
CALL printf
JMP L28
L27:
MOV EAX, DWORD PTR [ESP+24]
MOV DWORD PTR [ESP+4], EAX
MOV DWORD PTR [ESP], offset several
CALL printf
L28:
MOV EAX, 0
L25:
LEAVE
RET
main endp |
Partager