0048DDBC call sub_4DC390 ; _strlen (RN) 0048DDC1 cmp eax, 40h 0048DDC4 pop ecx 0048DDC5 jnb loc_48DEA2 ; if len(RN) >= 40h then jump "...bad RN" 0048DDCB lea eax, [ebp+var_40] 0048DDCE push esi 0048DDCF push eax 0048DDD0 call sub_4DC5A0 ; copy RN из 994D08 в 75FBD4 0048DDD5 lea eax, [ebp+var_40] 0048DDD8 push offset unk_4F5D60 0048DDDD push eax 0048DDDE call sub_424F5D ; возможное "урезание" RN 0048DDE3 lea eax, [ebp+var_40] 0048DDE6 push eax 0048DDE7 call sub_4DC390 ; _strlen (RN по адресу 75FBD4) 0048DDEC add esp, 14h 0048DDEF cmp eax, 0Ch 0048DDF2 jle loc_48DEA2 ; if len (RN[75FBD4]) <=12 then jmp "...bad RN" 0048DDF8 lea eax, [ebp+var_40] 0048DDFB push 0Ch ; !копироваться будут 12 байт 0048DDFD push eax 0048DDFE lea eax, [ebp+var_A0] 0048DE04 push eax 0048DE05 call sub_4DD3F0 ; _strncpy RN из 75FBD4 в 75FB74 0048DE0A lea eax, [ebp+var_34] 0048DE0D mov [ebp+var_94], bl 0048DE13 push eax 0048DE14 lea eax, [ebp+var_E0] 0048DE1A push eax 0048DE1B call sub_4DC5A0 ; !копирование оставшейся части RN в 75FB34 0048DE20 lea eax, [ebp+var_A0] 0048DE26 push eax 0048DE27 lea eax, [ebp+var_60] 0048DE2A push eax 0048DE2B call sub_4DC5A0 ; копирование RN из 75FB74 в 75FBB4 (12 байт) 0048DE30 lea eax, [ebp+var_60] 0048DE33 push eax 0048DE34 call sub_48E0DD ; "изменение" RN из первых 4-х цифр 0048DE39 lea eax, [ebp+var_60] 0048DE3C push eax 0048DE3D lea eax, [ebp+var_A0] 0048DE43 push eax 0048DE44 call sub_4DC410 ; _strcmp - сравнение 0048DE49 add esp, 28h 0048DE4C test eax, eax 0048DE4E jnz short loc_48DEA2 ; if NZ then jmp "...bad RN" 0048DE50 lea eax, [ebp+var_E0] 0048DE56 push eax 0048DE57 call sub_4DC390 ; _strlen части RN[75FB34] 0048DE5C xor esi, esi 0048DE5E cmp eax, ebx 0048DE60 pop ecx 0048DE61 jle short loc_48DE87 0048DE63 movsx edx, [ebp+esi+var_E0] ; цикл - начало 0048DE6B lea ecx, [ebp+esi+var_E0] 0048DE72 sub edx, 61h 0048DE75 jz short loc_48DE7F 0048DE77 dec edx 0048DE78 jnz short loc_48DE82 0048DE7A mov byte ptr [ecx], 31h 0048DE7D jmp short loc_48DE82 0048DE7F mov byte ptr [ecx], 30h 0048DE82 inc esi 0048DE83 cmp esi, eax 0048DE85 jl short loc_48DE63 ; цикл - конец 0048DE87 lea eax, [ebp+var_E0] 0048DE8D push eax 0048DE8E call sub_4DC690 ; !_atol (75FB34) 0048DE93 pop ecx 0048DE94 xor edx, edx 0048DE96 push 7 0048DE98 pop ecx 0048DE99 div ecx ; делим EAX на 7 (EAX-целое,EDX - остаток) 0048DE9B test edx, edx ; если остаток=0, тогда ОК 0048DE9D jnz short loc_48DEA2 ; если нет, тогда "...bad RN" 0048DE9F push 1 0048DEA1 pop ebx 0048DEA2 pop edi 0048DEA3 mov eax, ebx 0048DEA5 pop esi 0048DEA6 pop ebx 0048DEA7 leave 0048DEA8 retn