41415C		mov eax, [ebp+10h]	; загрузим строку пароля из класса CString
 41415F		xor esi, esi
 414161		cmp [eax-8], edi        ; не нулевая ли длина (выше по течению
					; была инструкция xor edi, edi по адресу 414121)
 414164		jle short loc_414188    ; если длина < 0 - переход на следующую проверку
 414166		cmp edi, 14h            ; длина > 14 ?
 414169		jge short loc_414188    ; тогда на следующую проверку
 41416B		mov cl, [esi+eax]       ; в cl - очередной байт нашего пароля
					; помните, что в строках индексация начинается с 0
 41416E		cmp cl, 20h             ; сравним с кодом пробела
 414171		jz short loc_414182     ; если оно - перход на следующую итерацию
 414173		push ecx                ; наш байт положим на стек
 414174		call sub_4140ED         ; вызов некоей любопытной функции
 414179		mov [ebp+edi-20h], al   ; и результат (который всегда возвращается
					; в регистре eax - ещё куда-то (один байт)
 41417D		mov eax, [ebp+10h]      ; и снова загрузим адрес строки пароля
 414180		pop ecx                 ; очистка стека
 414181		inc edi                 ; накинем счётчики
 414182		inc esi
 414183		cmp esi, [eax-8]        ; счетчик меньше длины строки ?
 414186		jl short loc_414166     ; если нет - следующая итерация
 414188		cmp edi, 10h            ; сравним количество обработанных байт
 41418B		jnz loc_41423B          ; если не равно 0x16 - переход довольно далеко
 ...
 41423B		...
 ...
 414242		call CString::~Cstring(void)
 ...
 41424E		call CString::~Cstring(void)
 ...
 41425A		call CString::~Cstring(void)
 41425F		xor eax, eax		; это плохой парень
 ...
		retn