00401440 /$ 8B4424 08 mov eax, dword ptr [esp+8] ;SerialLen - NameLen * 2
00401444 |. 85C0
test
eax, eax
00401446 |. 0F8E A5000000 jle 004014F1
0040144C |. 8D50 02 lea edx, dword ptr [eax+2]
0040144F |. B8 ABAAAAAA mov eax, AAAAAAAB ;除法优化
00401454 |. F7E2 mul edx
00401456 |. 8B4C24 04 mov ecx, dword ptr [esp+4] ;Array
0040145A |. 53 push ebx
0040145B |. 55 push ebp
0040145C |. 56 push esi
0040145D |. D1EA shr edx, 1
0040145F |. 57 push edi
00401460 |. 8D79 08 lea edi, dword ptr [ecx+8]
00401463 |. 895424 18 mov dword ptr [esp+18], edx ;(SerialLen - NameLen * 2 + 2) / 3
00401467 |> 8B5F F8
/mov
ebx, dword ptr [edi-8] ;Array[m]
0040146A |. 8B4F FC |mov ecx, dword ptr [edi-4] ;Array[m+1]
0040146D |. 8B37 |mov esi, dword ptr [edi] ;Array[m+2]
0040146F |. BD 3E000000 |mov ebp, 3E
00401474 |. 8D04DB |lea eax, dword ptr [ebx+ebx*8]
00401477 |. 83C7 0C |add edi, 0C ;m += 3
0040147A |. 8D1443 |lea edx, dword ptr [ebx+eax*2] ;Array[m] * 19
0040147D |. 8D0489 |lea eax, dword ptr [ecx+ecx*4]
00401480 |. 8D04C1 |lea eax, dword ptr [ecx+eax*8] ;Array[m+1] * 41
00401483 |. 03D0 |add edx, eax
00401485 |. 8D04F5 000000>|lea eax, dword ptr [esi*8]
0040148C |. 2BC6 |sub eax, esi ;Array[m+2] * 7
0040148E |. 8D0482 |lea eax, dword ptr [edx+eax*4]
00401491 |. 33D2 |xor edx, edx
00401493 |. F7F5 |div ebp
00401495 |. 8BC1 |mov eax, ecx ;Array[m+1]
00401497 |. C1E0 05 |shl eax, 5
0040149A |. 2BC1 |sub eax, ecx
0040149C |. D1E0 |shl eax, 1 ;Array[m+1] * 62
0040149E |. 895424 14 |mov dword ptr [esp+14], edx
004014A2 |. 8D149B |lea edx, dword ptr [ebx+ebx*4]
004014A5 |. 8D0490 |lea eax, dword ptr [eax+edx*4] ;Array[m+1] * 62 + Array[m] * 20
004014A8 |. 8D1476 |lea edx, dword ptr [esi+esi*2]
004014AB |. C1E2 04 |shl edx, 4
004014AE |. 2BD6 |sub edx, esi
004014B0 |. 03C2 |add eax, edx
004014B2 |. 33D2 |xor edx, edx
004014B4 |. F7F5 |div ebp
004014B6 |. 8D0489 |lea eax, dword ptr [ecx+ecx*4]
004014B9 |. 8D0C81 |lea ecx, dword ptr [ecx+eax*4] ;Array[m+1] * 21
004014BC |. 8D04D9 |lea eax, dword ptr [ecx+ebx*8]
004014BF |. 8D0C76 |lea ecx, dword ptr [esi+esi*2]
004014C2 |. 8BEA |mov ebp, edx
004014C4 |. 8D14C9 |lea edx, dword ptr [ecx+ecx*8]
004014C7 |. D1E2 |shl edx, 1
004014C9 |. 2BD6 |sub edx, esi ;Array[m+2] * 53
004014CB |. B9 3E000000 |mov ecx, 3E
004014D0 |. 03C2 |add eax, edx
004014D2 |. 33D2 |xor edx, edx
004014D4 |. F7F1 |div ecx
004014D6 |. FF4C24 18 |dec dword ptr [esp+18]
004014DA |. 8957 EC |mov dword ptr [edi-14], edx
004014DD |. 8B5424 14 |mov edx, dword ptr [esp+14]
004014E1 |. 8957 F0 |mov dword ptr [edi-10], edx
004014E4 |. 896F F4 |mov dword ptr [edi-C], ebp
004014E7 |.^ 0F85 7AFFFFFF \jnz 00401467
004014ED |. 5F pop edi
004014EE |. 5E pop esi
004014EF |. 5D pop ebp
004014F0 |. 5B pop ebx
004014F1 \> C2 0800 retn 8