00406EDC | 85 C0 |
test
eax
,
eax
| 循环控制
00406EDE | 0F 84 29 01 00 00 |
je
40700D |
00406EE4 | 8D 4D BC |
lea
ecx
,
dword
ptr
ss
:[
ebp
-44] |
ebp
-44是输入的字符串,字符串实际为
ebp
-3c
00406EE7 | 6A 02 |
push
2 | 2个
00406EE9 | 8D 55 8C |
lea
edx
,
dword
ptr
ss
:[
ebp
-74] |
ebp
-74 结果返回地址,字符:
ebp
-6c
00406EEC | 51 |
push
ecx
|
00406EED | 52 |
push
edx
|
00406EEE | FF D3 |
call
ebx
| msvbvm60.rtcLeftCharVar
00406EF0 | 8D 45 8C |
lea
eax
,
dword
ptr
ss
:[
ebp
-74] | 返回的两个字符
00406EF3 | 8D 4D B0 |
lea
ecx
,
dword
ptr
ss
:[
ebp
-50] | 结果保存地址
00406EF6 | 50 |
push
eax
|
00406EF7 | 51 |
push
ecx
|
00406EF8 | FF D6 |
call
esi
| var_50 = CStr(Left(var_44, 2))
00406EFA | 50 |
push
eax
|
00406EFB | FF 15 D8 10 40 00 |
call
dword
ptr
ds
:[<&rtcR8ValFromBstr>] | 字符串转换成浮点数:
st0
中
00406F01 |
DD
9D 34 FF FF FF |
fstp
qword
ptr
ss
:[
ebp
-CC] | 数值传给变量
ebp
-cc *64位*
00406F07 | 8D 55 9C |
lea
edx
,
dword
ptr
ss
:[
ebp
-64] |
00406F0A | 8D 45 DC |
lea
eax
,
dword
ptr
ss
:[
ebp
-24] |
00406F0D | 52 |
push
edx
|
00406F0E | 50 |
push
eax
|
00406F0F | C7 45 A4 01 00 00 00 |
mov
dword
ptr
ss
:[
ebp
-5C],1 |
00406F16 | C7 45 9C 02 00 00 00 |
mov
dword
ptr
ss
:[
ebp
-64],2 |
00406F1D | FF 15 AC 10 40 00 |
call
dword
ptr
ds
:[<&_vbaI4Var>] |
00406F23 | 8D 4D BC |
lea
ecx
,
dword
ptr
ss
:[
ebp
-44] |
00406F26 | 50 |
push
eax
|
00406F27 | 8D 55 B8 |
lea
edx
,
dword
ptr
ss
:[
ebp
-48] |
00406F2A | 51 |
push
ecx
|
00406F2B | 52 |
push
edx
|
00406F2C | FF D6 |
call
esi
|
00406F2E | 50 |
push
eax
|
00406F2F | FF 15 4C 10 40 00 |
call
dword
ptr
ds
:[<&rtcMidCharBstr>] | 循环取字符从1开始
00406F35 | 8B D0 |
mov
edx
,
eax
|
00406F37 | 8D 4D B4 |
lea
ecx
,
dword
ptr
ss
:[
ebp
-4C] |
00406F3A | FF 15 BC 10 40 00 |
call
dword
ptr
ds
:[<&_vbaStrMove>] |
00406F40 | 50 |
push
eax
|
00406F41 | FF 15 20 10 40 00 |
call
dword
ptr
ds
:[<&rtcAnsiValueBstr>] | ASCLL值
00406F47 | 0F BF C0 |
movsx
eax
,
ax
| 存入变量
ebp
-310中
00406F4A | 89 85 F0 FC FF FF |
mov
dword
ptr
ss
:[
ebp
-310],
eax
| var_310 = Asc(Mid$(CStr(var_44), CLng(var_24), 1))
00406F50 | 8D 8D 7C FF FF FF |
lea
ecx
,
dword
ptr
ss
:[
ebp
-84] |
00406F56 |
DB
85 F0 FC FF FF |
fild
dword
ptr
ss
:[
ebp
-310] | 入栈
st0
00406F5C | 51 |
push
ecx
|
00406F5D | C7 85 7C FF FF FF 05 |
mov
dword
ptr
ss
:[
ebp
-84],5 |
00406F67 |
DD
9D E8 FC FF FF |
fstp
qword
ptr
ss
:[
ebp
-318] | 转化精度,给变量
EBP
-318
00406F6D |
DD
85 E8 FC FF FF |
fld
qword
ptr
ss
:[
ebp
-318] |
00406F73 | DC 85 34 FF FF FF |
fadd
qword
ptr
ss
:[
ebp
-CC] | 加
ebp
-cc 前面转化来的数值
00406F79 |
DD
5D 84 |
fstp
qword
ptr
ss
:[
ebp
-7C] | 存入
ebp
-7c
00406F7C |
DF
E0 |
fnstsw
ax
| 以下为较验运算,是否出错。
00406F7E | A8 0D |
test
al
,D |
00406F80 | 0F 85 D6 1D 00 00 |
jne
408D5C |
00406F86 | FF 15 94 10 40 00 |
call
dword
ptr
ds
:[<&rtcHexBstrFromVar>] | 十六进制转字符:给变量
ebp
-8c
00406F8C | 89 85 74 FF FF FF |
mov
dword
ptr
ss
:[
ebp
-8C],
eax
| var_8C = Hex$((var_318 + var_CC))
00406F92 | 8D 55 CC |
lea
edx
,
dword
ptr
ss
:[
ebp
-34] | 十六进制转的字符串
00406F95 | 8D 85 6C FF FF FF |
lea
eax
,
dword
ptr
ss
:[
ebp
-94] |
00406F9B | 52 |
push
edx
|
00406F9C | 8D 8D 5C FF FF FF |
lea
ecx
,
dword
ptr
ss
:[
ebp
-A4] | 累加连接的字符串
00406FA2 | 50 |
push
eax
|
00406FA3 | 51 |
push
ecx
|
00406FA4 | C7 85 6C FF FF FF 08 |
mov
dword
ptr
ss
:[
ebp
-94],8 |
00406FAE | FF 15 84 10 40 00 |
call
dword
ptr
ds
:[<&_vbaVarCat>] | 连接字符串
00406FB4 | 8B D0 |
mov
edx
,
eax
|
00406FB6 | 8D 4D CC |
lea
ecx
,
dword
ptr
ss
:[
ebp
-34] |
00406FB9 | FF D7 |
call
edi
|
00406FBB | 8D 55 B0 |
lea
edx
,
dword
ptr
ss
:[
ebp
-50] |
00406FBE | 8D 45 B4 |
lea
eax
,
dword
ptr
ss
:[
ebp
-4C] |
00406FC1 | 52 |
push
edx
|
00406FC2 | 8D 4D B8 |
lea
ecx
,
dword
ptr
ss
:[
ebp
-48] |
00406FC5 | 50 |
push
eax
|
00406FC6 | 51 |
push
ecx
|
00406FC7 | 6A 03 |
push
3 |
00406FC9 | FF 15 9C 10 40 00 |
call
dword
ptr
ds
:[<&_vbaFreeStrList>] |
00406FCF | 8D 95 6C FF FF FF |
lea
edx
,
dword
ptr
ss
:[
ebp
-94] |
00406FD5 | 8D 85 7C FF FF FF |
lea
eax
,
dword
ptr
ss
:[
ebp
-84] |
00406FDB | 52 |
push
edx
|
00406FDC | 8D 4D 8C |
lea
ecx
,
dword
ptr
ss
:[
ebp
-74] |
00406FDF | 50 |
push
eax
|
00406FE0 | 8D 55 9C |
lea
edx
,
dword
ptr
ss
:[
ebp
-64] |
00406FE3 | 51 |
push
ecx
|
00406FE4 | 52 |
push
edx
|
00406FE5 | 6A 04 |
push
4 |
00406FE7 | FF 15 14 10 40 00 |
call
dword
ptr
ds
:[<&_vbaFreeVarList>] |
00406FED | 83 C4 24 |
add
esp
,24 |
00406FF0 | 8D 85 E8 FE FF FF |
lea
eax
,
dword
ptr
ss
:[
ebp
-118] |
00406FF6 | 50 |
push
eax
|
00406FF7 | 8D 8D F8 FE FF FF |
lea
ecx
,
dword
ptr
ss
:[
ebp
-108] |
00406FFD | 8D 55 DC |
lea
edx
,
dword
ptr
ss
:[
ebp
-24] |
00407000 | 51 |
push
ecx
|
00407001 | 52 |
push
edx
|
00407002 | FF 15 C8 10 40 00 |
call
dword
ptr
ds
:[<&_vbaVarForNext>] |
00407008 | E9 CF FE FF FF |
jmp
406EDC |
0040700D | 8D 45 CC |
lea
eax
,
dword
ptr
ss
:[
ebp
-34] |
00407010 | 8D 8D 4C FF FF FF |
lea
ecx
,
dword
ptr
ss
:[
ebp
-B4] |
00407016 | 50 |
push
eax
|
00407017 | 51 |
push
ecx
|
00407018 | C7 85 54 FF FF FF E8 |
mov
dword
ptr
ss
:[
ebp
-AC],401EE8 | 401EE8:L
"0817E747D7A7D7C7F82836D74747A7F7E7G7C7D826D817E7B7C"
00407022 | C7 85 4C FF FF FF 08 |
mov
dword
ptr
ss
:[
ebp
-B4],8008 |
0040702C | FF 15 5C 10 40 00 |
call
dword
ptr
ds
:[<&_vbaVarTstEq>] | 比较字符串,进行验证