Function at 0x446a60
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
sub ecx, 2
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 8
ja case.default.0x446a80
mov edx, dword [ebp - 4]
jmp dword [edx*4 + 0x446cc4]
movsx eax, byte [ebp + 0xc]
cmp eax, 0x40
jne 0x446a9a
mov eax, 4
jmp 0x446cbd
movsx ecx, byte [ebp + 0xc]
or ecx, 0x20
movzx edx, cl
cmp edx, 0x61
jl 0x446abc
movsx eax, byte [ebp + 0xc]
or eax, 0x20
movzx ecx, al
cmp ecx, 0x7a
jle 0x446b73
movsx edx, byte [ebp + 0xc]
cmp edx, 0x30
jl 0x446ad2
movsx eax, byte [ebp + 0xc]
cmp eax, 0x39
jle 0x446b73
movsx ecx, byte [ebp + 0xc]
cmp ecx, 0x2d
je 0x446b73
movsx edx, byte [ebp + 0xc]
cmp edx, 0x5f
je 0x446b73
movsx eax, byte [ebp + 0xc]
cmp eax, 0x2e
je 0x446b73
movsx ecx, byte [ebp + 0xc]
cmp ecx, 0x21
je 0x446b73
movsx edx, byte [ebp + 0xc]
cmp edx, 0x7e
je 0x446b73
movsx eax, byte [ebp + 0xc]
cmp eax, 0x2a
je 0x446b73
movsx ecx, byte [ebp + 0xc]
cmp ecx, 0x27
je 0x446b73
movsx edx, byte [ebp + 0xc]
cmp edx, 0x28
je 0x446b73
movsx eax, byte [ebp + 0xc]
cmp eax, 0x29
je 0x446b73
movsx ecx, byte [ebp + 0xc]
cmp ecx, 0x25
je 0x446b73
movsx edx, byte [ebp + 0xc]
cmp edx, 0x3b
je 0x446b73
movsx eax, byte [ebp + 0xc]
cmp eax, 0x3a
je 0x446b73
movsx ecx, byte [ebp + 0xc]
cmp ecx, 0x26
je 0x446b73
movsx edx, byte [ebp + 0xc]
cmp edx, 0x3d
je 0x446b73
movsx eax, byte [ebp + 0xc]
cmp eax, 0x2b
je 0x446b73
movsx ecx, byte [ebp + 0xc]
cmp ecx, 0x24
je 0x446b73
movsx edx, byte [ebp + 0xc]
cmp edx, 0x2c
jne 0x446b7d
mov eax, 3
jmp 0x446cbd
jmp case.default.0x446a80
movsx eax, byte [ebp + 0xc]
cmp eax, 0x5b
jne 0x446b95
mov eax, 5
jmp 0x446cbd
movsx ecx, byte [ebp + 0xc]
or ecx, 0x20
movzx edx, cl
cmp edx, 0x61
jl 0x446bb3
movsx eax, byte [ebp + 0xc]
or eax, 0x20
movzx ecx, al
cmp ecx, 0x7a
jle 0x446bd7
movsx edx, byte [ebp + 0xc]
cmp edx, 0x30
jl 0x446bc5
movsx eax, byte [ebp + 0xc]
cmp eax, 0x39
jle 0x446bd7
movsx ecx, byte [ebp + 0xc]
cmp ecx, 0x2e
je 0x446bd7
movsx edx, byte [ebp + 0xc]
cmp edx, 0x2d
jne 0x446be1
mov eax, 6
jmp 0x446cbd
jmp case.default.0x446a80
movsx eax, byte [ebp + 0xc]
or eax, 0x20
movzx ecx, al
cmp ecx, 0x61
jl 0x446c04
movsx edx, byte [ebp + 0xc]
or edx, 0x20
movzx eax, dl
cmp eax, 0x7a
jle 0x446c28
movsx ecx, byte [ebp + 0xc]
cmp ecx, 0x30
jl 0x446c16
movsx edx, byte [ebp + 0xc]
cmp edx, 0x39
jle 0x446c28
movsx eax, byte [ebp + 0xc]
cmp eax, 0x2e
je 0x446c28
movsx ecx, byte [ebp + 0xc]
cmp ecx, 0x2d
jne case.0x446a80.6
mov eax, 6
jmp 0x446cbd
movsx edx, byte [ebp + 0xc]
cmp edx, 0x3a
jne 0x446c42
mov eax, 9
jmp 0x446cbd
jmp case.default.0x446a80
movsx eax, byte [ebp + 0xc]
cmp eax, 0x5d
jne case.0x446a80.3
mov eax, 8
jmp 0x446cbd
movsx ecx, byte [ebp + 0xc]
cmp ecx, 0x30
jl 0x446c66
movsx edx, byte [ebp + 0xc]
cmp edx, 0x39
jle 0x446c96
movsx eax, byte [ebp + 0xc]
or eax, 0x20
movzx ecx, al
cmp ecx, 0x61
jl 0x446c84
movsx edx, byte [ebp + 0xc]
or edx, 0x20
movzx eax, dl
cmp eax, 0x66
jle 0x446c96
movsx ecx, byte [ebp + 0xc]
cmp ecx, 0x3a
je 0x446c96
movsx edx, byte [ebp + 0xc]
cmp edx, 0x2e
jne 0x446c9d
mov eax, 7
jmp 0x446cbd
jmp case.default.0x446a80
movsx eax, byte [ebp + 0xc]
cmp eax, 0x30
jl case.default.0x446a80
movsx ecx, byte [ebp + 0xc]
cmp ecx, 0x39
jg case.default.0x446a80
mov eax, 0xa
jmp 0x446cbd
mov eax, 1
mov esp, ebp
pop ebp
ret