Function at 0x4eccf0
Capabilities:
Parse credit card information

Disassembly:
push ebx
mov ebx, ecx
xor ecx, ecx
push ebp
mov eax, dword [ebx]
push esi
mov esi, dword [sym.imp.MSVCRT.dll_isspace]
push edi
mov cl, byte [eax]
xor ebp, ebp
push ecx
call esi
add esp, 4
test eax, eax
je 0x4ecd21
mov eax, dword [ebx]
xor edx, edx
inc eax
mov dword [ebx], eax
mov dl, byte [eax]
push edx
call esi
add esp, 4
test eax, eax
jne 0x4ecd0e
mov eax, dword [ebx]
mov al, byte [eax]
test al, al
jne 0x4ecd3d
mov ebp, 1
xor eax, eax
pop edi
mov dword [ebx + 4], ebp
test ebp, ebp
pop esi
pop ebp
setne al
pop ebx
ret
mov edi, dword [sym.imp.MSVCRT.dll_isdigit]
and eax, 0xff
push eax
call edi
add esp, 4
xor ecx, ecx
test eax, eax
mov eax, dword [ebx]
je 0x4ecd9f
movsx esi, byte [eax]
sub esi, 0x30
inc eax
mov dword [ebx], eax
mov cl, byte [eax]
push ecx
call edi
add esp, 4
test eax, eax
je 0x4ecd88
mov eax, dword [ebx]
lea edx, [esi + esi*4]
movsx ecx, byte [eax]
inc eax
lea esi, [ecx + edx*2 - 0x30]
xor edx, edx
mov dword [ebx], eax
mov dl, byte [eax]
push edx
call edi
add esp, 4
test eax, eax
jne 0x4ecd6b
mov ebp, 2
mov dword [ebx + 8], esi
xor eax, eax
pop edi
mov dword [ebx + 4], ebp
pop esi
test ebp, ebp
pop ebp
pop ebx
setne al
ret
mov cl, byte [eax]
push ecx
call dword [sym.imp.MSVCRT.dll_isalpha]
add esp, 4
test eax, eax
je 0x4ece6c
mov esi, dword [ebx]
mov edi, dword [sym.imp.MSVCRT.dll_isalnum]
xor edx, edx
lea eax, [esi + 1]
mov dword [ebx], eax
mov dl, byte [eax]
push edx
call edi
add esp, 4
test eax, eax
je 0x4ecde3
mov ecx, dword [ebx]
inc ecx
mov dword [ebx], ecx
mov eax, ecx
xor ecx, ecx
mov cl, byte [eax]
push ecx
call edi
add esp, 4
test eax, eax
jne 0x4ecdce
mov eax, dword [ebx]
sub eax, esi
cmp eax, 1
jne 0x4ece0f
mov al, byte [esi]
mov edx, 0x6e0ec4
cmp al, byte [edx]
jne 0x4ed01b
mov ebp, 3
xor eax, eax
pop edi
mov dword [ebx + 4], ebp
test ebp, ebp
pop esi
pop ebp
setne al
pop ebx
ret
cmp eax, 6
jne 0x4ece3d
mov ecx, 3
mov edi, str.plural
xor edx, edx
repe cmpsw word [esi], word es:[edi]
jne 0x4ed01b
mov ebp, 4
xor eax, eax
pop edi
mov dword [ebx + 4], ebp
test ebp, ebp
pop esi
pop ebp
setne al
pop ebx
ret
cmp eax, 8
jne 0x4ed01b
mov ecx, 2
mov edi, str.nplurals
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
jne 0x4ed01b
mov ebp, 5
pop edi
mov dword [ebx + 4], ebp
pop esi
test ebp, ebp
pop ebp
pop ebx
setne al
ret
mov eax, dword [ebx]
mov cl, byte [eax]
cmp cl, 0x3d
jne 0x4ecea8
inc eax
mov dword [ebx], eax
cmp byte [eax], 0x3d
jne 0x4ece94
inc eax
mov ebp, 6
mov dword [ebx], eax
xor eax, eax
pop edi
mov dword [ebx + 4], ebp
test ebp, ebp
pop esi
pop ebp
setne al
pop ebx
ret
mov ebp, 7
xor eax, eax
pop edi
mov dword [ebx + 4], ebp
test ebp, ebp
pop esi
pop ebp
setne al
pop ebx
ret
cmp cl, 0x3e
jne 0x4ecee0
inc eax
mov dword [ebx], eax
cmp byte [eax], 0x3d
jne 0x4ececc
inc eax
mov ebp, 9
mov dword [ebx], eax
xor eax, eax
pop edi
mov dword [ebx + 4], ebp
test ebp, ebp
pop esi
pop ebp
setne al
pop ebx
ret
mov ebp, 8
xor eax, eax
pop edi
mov dword [ebx + 4], ebp
test ebp, ebp
pop esi
pop ebp
setne al
pop ebx
ret
cmp cl, 0x3c
jne 0x4ecf18
inc eax
mov dword [ebx], eax
cmp byte [eax], 0x3d
jne 0x4ecf04
inc eax
mov ebp, 0xb
mov dword [ebx], eax
xor eax, eax
pop edi
mov dword [ebx + 4], ebp
test ebp, ebp
pop esi
pop ebp
setne al
pop ebx
ret
mov ebp, 0xa
xor eax, eax
pop edi
mov dword [ebx + 4], ebp
test ebp, ebp
pop esi
pop ebp
setne al
pop ebx
ret
cmp cl, 0x25
jne 0x4ecf34
inc eax
mov ebp, 0xc
mov dword [ebx], eax
xor eax, eax
pop edi
mov dword [ebx + 4], ebp
test ebp, ebp
pop esi
pop ebp
setne al
pop ebx
ret
cmp cl, 0x21
jne 0x4ecf58
cmp byte [eax + 1], 0x3d
jne 0x4ecf58
add eax, 2
mov ebp, 0xd
mov dword [ebx], eax
xor eax, eax
pop edi
mov dword [ebx + 4], ebp
test ebp, ebp
pop esi
pop ebp
setne al
pop ebx
ret
cmp cl, 0x26
jne 0x4ecf7b
cmp byte [eax + 1], cl
jne 0x4ecf7b
add eax, 2
mov ebp, 0xe
mov dword [ebx], eax
xor eax, eax
pop edi
mov dword [ebx + 4], ebp
test ebp, ebp
pop esi
pop ebp
setne al
pop ebx
ret
cmp cl, 0x7c
jne 0x4ecf9e
cmp byte [eax + 1], cl
jne 0x4ecf9e
add eax, 2
mov ebp, 0xf
mov dword [ebx], eax
xor eax, eax
pop edi
mov dword [ebx + 4], ebp
test ebp, ebp
pop esi
pop ebp
setne al
pop ebx
ret
cmp cl, 0x3f
jne 0x4ecfba
inc eax
mov ebp, 0x10
mov dword [ebx], eax
xor eax, eax
pop edi
mov dword [ebx + 4], ebp
test ebp, ebp
pop esi
pop ebp
setne al
pop ebx
ret
cmp cl, 0x3a
jne 0x4ecfd6
inc eax
mov ebp, 0x11
mov dword [ebx], eax
xor eax, eax
pop edi
mov dword [ebx + 4], ebp
test ebp, ebp
pop esi
pop ebp
setne al
pop ebx
ret
cmp cl, 0x3b
jne 0x4ecff2
inc eax
mov ebp, 0x12
mov dword [ebx], eax
xor eax, eax
pop edi
mov dword [ebx + 4], ebp
test ebp, ebp
pop esi
pop ebp
setne al
pop ebx
ret
cmp cl, 0x28
jne 0x4ed00e
inc eax
mov ebp, 0x13
mov dword [ebx], eax
xor eax, eax
pop edi
mov dword [ebx + 4], ebp
test ebp, ebp
pop esi
pop ebp
setne al
pop ebx
ret
cmp cl, 0x29
jne 0x4ed01b
inc eax
mov ebp, 0x14
mov dword [ebx], eax
xor eax, eax
pop edi
mov dword [ebx + 4], ebp
pop esi
test ebp, ebp
pop ebp
pop ebx
setne al
ret