004D5994  PUSH ESI
004D5995  PUSH EBX
004D5996  XOR EDX,EDX
004D5998  OR EAX,EAX
004D599A  JE SHORT DlgBuild.004D59C4
004D599C  MOV EBX,EDX
004D599E  MOV ECX,DWORD PTR DS:[EAX-4]   ;  ecx = la longueur du nom + 4
004D59A1  JECXZ SHORT DlgBuild.004D59C4  ;  si ecx est nul, saute quitte la procdure
004D59A3  MOV ESI,EAX                    ;  [esi] = le nom
004D59A5  CLD
004D59A6  /XOR EAX,EAX
004D59A8  |LODS BYTE PTR DS:[ESI]        ;  eax = le caractre suivant du nom
004D59A9  |SHL EDX,4                     ;  dcale edx de 4 bits vers la gauche
004D59AC  |ADD EDX,EAX                   ;  ajoute eax  edx
004D59AE  |MOV EBX,EDX                   ;  ebx = edx
004D59B0  |AND EBX,0F000000              ;  ebx = ebx and 0F000000h
004D59B6  |JE SHORT DlgBuild.004D59BD    ;  si ebx est nul, saute un peu plus loin
004D59B8  |SHR EBX,18                    ;  dcale ebx de 18 bits vers la droite
004D59BB  |XOR EDX,EBX                   ;  edx = edx xor ebx
004D59BD  |NOT EBX                       ;  ebx = not ebx
004D59BF  |AND EDX,EBX                   ;  edx = edx and ebx
004D59C1  |DEC ECX                       ;  dcrmente ecx
004D59C2  \JNZ SHORT DlgBuild.004D59A6
004D59C4  MOV EAX,EDX
004D59C6  POP EBX
004D59C7  POP ESI
004D59C8  RETN                           ;  retourne edx