[Asm] 纯文本查看 复制代码
005273C0 /$ 55 push ebp ; 算法部分
005273C1 |. 8BEC mov ebp,esp
005273C3 |. 51 push ecx
005273C4 |. B9 04000000 mov ecx,0x4
005273C9 |> 6A 00 /push 0x0
005273CB |. 6A 00 |push 0x0
005273CD |. 49 |dec ecx
005273CE |.^ 75 F9 \jnz short PicDown.005273C9
005273D0 |. 51 push ecx
005273D1 |. 874D FC xchg [local.1],ecx
005273D4 |. 53 push ebx
005273D5 |. 56 push esi
005273D6 |. 57 push edi
005273D7 |. 8BF9 mov edi,ecx
005273D9 |. 8955 FC mov [local.1],edx
005273DC |. 8B45 FC mov eax,[local.1]
005273DF |. E8 00DCEDFF call PicDown.00404FE4
005273E4 |. 33C0 xor eax,eax
005273E6 |. 55 push ebp
005273E7 |. 68 81755200 push PicDown.00527581
005273EC |. 64:FF30 push dword ptr fs:[eax]
005273EF |. 64:8920 mov dword ptr fs:[eax],esp
005273F2 |. 8BC7 mov eax,edi
005273F4 |. E8 3BD7EDFF call PicDown.00404B34
005273F9 |. 8B45 FC mov eax,[local.1] ; 机器码abcde
005273FC |. E8 F3D9EDFF call PicDown.00404DF4
00527401 |. 8BF0 mov esi,eax ; 机器码长度eax=00000005
00527403 |. 85F6 test esi,esi
00527405 |. 7E 26 jle short PicDown.0052742D
00527407 |. BB 01000000 mov ebx,0x1 ; ebx赋值0x1
0052740C |> 8D4D EC /lea ecx,[local.5]
0052740F |. 8B45 FC |mov eax,[local.1] ; 机器码abcde
00527412 |. 0FB64418 FF |movzx eax,byte ptr ds:[eax+ebx-0x1] ; 依次取机器码ASC码:61 ('a')62 ('b')...65 ('e')
00527417 |. 33D2 |xor edx,edx
00527419 |. E8 1224EEFF |call PicDown.00409830
0052741E |. 8B55 EC |mov edx,[local.5] ;
00527421 |. 8D45 F8 |lea eax,[local.2]
00527424 |. E8 D3D9EDFF |call PicDown.00404DFC
00527429 |. 43 |inc ebx
0052742A |. 4E |dec esi
0052742B |.^ 75 DF \jnz short PicDown.0052740C
0052742D |> 8B45 F8 mov eax,[local.2] ; 机器码ASC码连成新名: "6162636465"
00527430 |. E8 BFD9EDFF call PicDown.00404DF4
00527435 |. 8BF0 mov esi,eax ; 新名长度eax=0000000A
00527437 |. 85F6 test esi,esi
00527439 |. 7E 2C jle short PicDown.00527467
0052743B |. BB 01000000 mov ebx,0x1 ; ebx赋值0x1
00527440 |> 8B45 F8 /mov eax,[local.2] ;
00527443 |. E8 ACD9EDFF |call PicDown.00404DF4
00527448 |. 2BC3 |sub eax,ebx ; eax-ebx=A-1
0052744A |. 8B55 F8 |mov edx,[local.2]
0052744D |. 8A1402 |mov dl,byte ptr ds:[edx+eax] ; 倒序取新名ASC码:=35 ('5')36 ('6')34 ('4')...36 ('6')
00527450 |. 8D45 E8 |lea eax,[local.6]
00527453 |. E8 C4D8EDFF |call PicDown.00404D1C
00527458 |. 8B55 E8 |mov edx,[local.6]
0052745B |. 8D45 F4 |lea eax,[local.3]
0052745E |. E8 99D9EDFF |call PicDown.00404DFC
00527463 |. 43 |inc ebx
00527464 |. 4E |dec esi
00527465 |.^ 75 D9 \jnz short PicDown.00527440
00527467 |> 8D45 F8 lea eax,[local.2]
0052746A |. 50 push eax
0052746B |. B9 04000000 mov ecx,0x4
00527470 |. BA 01000000 mov edx,0x1
00527475 |. 8B45 F4 mov eax,[local.3] ; 新名倒序: "5646362616"
00527478 |. E8 D7DBEDFF call PicDown.00405054
0052747D |. 8D45 F4 lea eax,[local.3]
00527480 |. 50 push eax
00527481 |. B9 04000000 mov ecx,0x4
00527486 |. BA 05000000 mov edx,0x5
0052748B |. 8B45 F4 mov eax,[local.3]
0052748E |. E8 C1DBEDFF call PicDown.00405054
00527493 |. 8B45 F8 mov eax,[local.2] ; 新名倒序前四位: "5646"
00527496 |. E8 59D9EDFF call PicDown.00404DF4
0052749B |. 83F8 04 cmp eax,0x4 ; 是否够4位?
0052749E |. 7D 2F jge short PicDown.005274CF ; 够就跳走
005274A0 |. 8B45 F8 mov eax,[local.2]
005274A3 |. E8 4CD9EDFF call PicDown.00404DF4
005274A8 |. 8BD8 mov ebx,eax
005274AA |. 83FB 03 cmp ebx,0x3
005274AD |. 7F 20 jg short PicDown.005274CF
005274AF |> 8D4D E4 /lea ecx,[local.7]
005274B2 |. 8BC3 |mov eax,ebx
005274B4 |. C1E0 02 |shl eax,0x2 ; 不够4位,进行位数左移2位
005274B7 |. 33D2 |xor edx,edx
005274B9 |. E8 7223EEFF |call PicDown.00409830
005274BE |. 8B55 E4 |mov edx,[local.7]
005274C1 |. 8D45 F8 |lea eax,[local.2]
005274C4 |. E8 33D9EDFF |call PicDown.00404DFC
005274C9 |. 43 |inc ebx
005274CA |. 83FB 04 |cmp ebx,0x4
005274CD |.^ 75 E0 \jnz short PicDown.005274AF
005274CF |> 8B45 F4 mov eax,[local.3] ; 取新名倒序第5-8位: "3626"
005274D2 |. E8 1DD9EDFF call PicDown.00404DF4
005274D7 |. 83F8 04 cmp eax,0x4 ; 是否够4位?
005274DA |. 7D 2F jge short PicDown.0052750B ; 够就跳走
005274DC |. 8B45 F4 mov eax,[local.3]
005274DF |. E8 10D9EDFF call PicDown.00404DF4
005274E4 |. 8BD8 mov ebx,eax
005274E6 |. 83FB 03 cmp ebx,0x3
005274E9 |. 7F 20 jg short PicDown.0052750B
005274EB |> 8D4D E0 /lea ecx,[local.8]
005274EE |. 8BC3 |mov eax,ebx
005274F0 |. C1E0 02 |shl eax,0x2
005274F3 |. 33D2 |xor edx,edx
005274F5 |. E8 3623EEFF |call PicDown.00409830
005274FA |. 8B55 E0 |mov edx,[local.8]
005274FD |. 8D45 F4 |lea eax,[local.3]
00527500 |. E8 F7D8EDFF |call PicDown.00404DFC
00527505 |. 43 |inc ebx
00527506 |. 83FB 04 |cmp ebx,0x4
00527509 |.^ 75 E0 \jnz short PicDown.005274EB
0052750B |> 8D45 F0 lea eax,[local.4]
0052750E |. BA 98755200 mov edx,PicDown.00527598 ; 固定字串:Pic4e985espr
00527513 |. E8 B4D6EDFF call PicDown.00404BCC
00527518 |. 8D45 DC lea eax,[local.9]
0052751B |. 50 push eax
0052751C |. B9 04000000 mov ecx,0x4 ; 取固定字串四位
00527521 |. BA 01000000 mov edx,0x1 ; 从第一位开始取
00527526 |. 8B45 F0 mov eax,[local.4]
00527529 |. E8 26DBEDFF call PicDown.00405054
0052752E |. FF75 DC push [local.9] ; 固定字串前四位,(ASCII "Pic4")
00527531 |. 68 B0755200 push PicDown.005275B0 ; 以“-”号连接
00527536 |. FF75 F8 push [local.2] ; 新名倒序前四位: (ASCII "5646")
00527539 |. 8D45 D8 lea eax,[local.10]
0052753C |. 50 push eax
0052753D |. B9 05000000 mov ecx,0x5 ; 取固定字串五位
00527542 |. BA 05000000 mov edx,0x5 ; 从第五位开始取
00527547 |. 8B45 F0 mov eax,[local.4]
0052754A |. E8 05DBEDFF call PicDown.00405054
0052754F |. FF75 D8 push [local.10] ; 取固定字串第5-9位,(ASCII "e985e")
00527552 |. 68 B0755200 push PicDown.005275B0 ; 以“-”号连接
00527557 |. FF75 F4 push [local.3] ; 取新名倒序第5-8位:(ASCII "3626")
0052755A |. 8BC7 mov eax,edi
0052755C |. BA 06000000 mov edx,0x6
00527561 |. E8 4ED9EDFF call PicDown.00404EB4
00527566 |. 33C0 xor eax,eax
00527568 |. 5A pop edx ; PicDown.00527588
00527569 |. 59 pop ecx ; PicDown.00527588
0052756A |. 59 pop ecx ; PicDown.00527588
0052756B |. 64:8910 mov dword ptr fs:[eax],edx
0052756E |. 68 88755200 push PicDown.00527588
00527573 |> 8D45 D8 lea eax,[local.10]
00527576 |. BA 0A000000 mov edx,0xA
0052757B |. E8 D8D5EDFF call PicDown.00404B58
00527580 \. C3 retn