vb反编译的高手帮忙看看,实在是搞不懂哦
Sub Subr_040()push ebp
mov ebp, esp
sub esp, 0Ch
push L00410456
* ref: __vbaExceptHandler
mov eax, dword ptr fs:[L00000000]
push eax
mov dword ptr fs:[L00000000], esp
sub esp, 88h
push ebx
push esi
push edi
mov dword ptr [ebp-0Ch], esp
mov dword ptr [ebp-8], L00401EE0
xor eax, eax
mov dword ptr [ebp-1Ch], eax
mov dword ptr [ebp-20h], eax
mov dword ptr [ebp-28h], eax
mov dword ptr [ebp-38h], eax
mov dword ptr [ebp-48h], eax
mov dword ptr [ebp-58h], eax
mov eax, dword ptr [ebp+8]
mov ecx, dword ptr [eax]
push ecx
call dword ptr [L00401028]
* ref: __vbaLenBstr
mov ecx, eax
call dword ptr [L00401158]
* ref: __vbaI2I4
mov dword ptr [ebp-70h], eax
mov eax, 1
mov dword ptr [ebp-18h], eax
L0050916F:
cmp ax, word ptr [ebp-70h]
jg L005092CD
mov edx, dword ptr [ebp+8]
lea ecx, dword ptr [ebp-58h]
movsx edi, ax
lea eax, dword ptr [ebp-38h]
mov dword ptr [ebp-50h], edx
push eax 2
push edi
lea edx, dword ptr [ebp-48h]
push ecx 4008h
push edx
mov dword ptr [ebp-30h], 1
mov dword ptr [ebp-38h], 2
mov dword ptr [ebp-58h], 4008h
call dword ptr [L00401118]
* ref: Mid(
lea eax, dword ptr [ebp-48h]
push eax
call dword ptr [L0040102C]
* ref: __vbaStrVarMove
mov edx, eax
lea ecx, dword ptr [ebp-1Ch]
call dword ptr [L004012D0]
* ref: __vbaStrMove
lea ecx, dword ptr [ebp-48h]
lea edx, dword ptr [ebp-38h]
push ecx
push edx
push 2
call dword ptr [L00401038]
* ref: __vbaFreeVarList
mov eax, dword ptr [ebp-1Ch]
mov esi, dword ptr [L00401050]
* ref: Asc(
add esp, 0Ch
push eax
call esi
mov ecx, dword ptr [ebp-1Ch]
xor ebx, ebx
cmp ax, 46h
push ecx
setg bl
call esi
xor edx, edx
cmp ax, 41h
setl dl
or ebx, edx
jnz L0050920F
mov eax, dword ptr [ebp-1Ch]
push eax
call esi
mov si, ax
sub si, 37h
jo L00509332
jmp L0050923C
L0050920F:
mov ecx, dword ptr [ebp-1Ch]
push ecx
call esi
cmp ax, 61h
jl L00509230
mov edx, dword ptr [ebp-1Ch]
push edx
call esi
mov si, ax
sub si, 57h
jo L00509332
jmp L0050923C
L00509230:
mov eax, dword ptr [ebp-1Ch]
push eax
call dword ptr [L004011D8]
* ref: __vbaI2Str
mov esi, eax
L0050923C:
mov ecx, dword ptr [ebp+8]
mov edx, dword ptr [ecx]
push edx
call dword ptr [L00401028]
* ref: __vbaLenBstr
sub eax, edi
jo L00509332
mov dword ptr [ebp-7Ch], eax
fild dword ptr [ebp-7Ch]
fstp qword ptr [ebp-84h]
mov eax, dword ptr [ebp-80h]
mov ecx, dword ptr [ebp-84h]
push eax
push ecx
push 40300000h
push 0
call dword ptr [L00401260]
* ref: __vbaPowerR8
movsx eax, word ptr [ebp-28h]
movsx edx, si
mov dword ptr [ebp-88h], edx
mov dword ptr [ebp-94h], eax
fild dword ptr [ebp-88h]
fstp qword ptr [ebp-90h]
fmul qword ptr [ebp-90h]
fild dword ptr [ebp-94h]
fstp qword ptr [ebp-9Ch]
fadd qword ptr [ebp-9Ch]
fnstsw ax
test al, 0Dh
jnz L0050932D
call dword ptr [L004012A8]
* ref: __vbaFpI2
mov dword ptr [ebp-28h], eax
mov eax, 1
add ax, word ptr [ebp-18h]
jo L00509332
mov dword ptr [ebp-18h], eax
jmp L0050916F
L005092CD:
mov ecx, dword ptr [ebp-28h]
push ecx
call dword ptr [L0040100C]
* ref: __vbaStrI2
mov edx, eax
lea ecx, dword ptr [ebp-20h]
call dword ptr [L004012D0]
* ref: __vbaStrMove
wait
push L00509317
jmp L0050930D
test byte ptr [ebp-4], 4
jz L005092F9
lea ecx, dword ptr [ebp-20h]
call dword ptr [L00401318]
* ref: __vbaFreeStr
L005092F9:
lea edx, dword ptr [ebp-48h]
lea eax, dword ptr [ebp-38h]
push edx
push eax
push 2
call dword ptr [L00401038]
* ref: __vbaFreeVarList
add esp, 0Ch
ret
L0050930D:
lea ecx, dword ptr [ebp-1Ch]
call dword ptr [L00401318]
* ref: __vbaFreeStr
ret
L00509317:
mov ecx, dword ptr [ebp-14h]
mov eax, dword ptr [ebp-20h]
pop edi
pop esi
mov dword ptr fs:[L00000000], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4
L0050932D:
jmp L0041045C
* ref: __vbaFPException
L00509332:
call dword ptr [L0040121C]
* ref: __vbaErrorOverflow
End Sub --------------------编程问答-------------------- 介是要揍嘛呀. --------------------编程问答-------------------- 这不是反编译,而是反汇编。仔细看看还是能看懂的,问题是谁吃饱了没事给你当苦力啊。
补充:VB , 非技术类