Function at 0x40ec70
Capabilities:
Parse credit card information

Disassembly:
mov al, byte [esp + 4]
push esi
movsx ecx, al
add ecx, 0x7d
xor esi, esi
cmp ecx, 0x7c
ja case.0x40ec8e.111
xor edx, edx
mov dl, byte [ecx + 0x40f1c4]
jmp dword [edx*4 + 0x40f188]
mov al, 0x30
cmp al, 1
mov esi, 6
jne 0x40ee45
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0xa
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
mov al, 0x43
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movsx eax, al
sub eax, 0x41
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
mov al, 0x65
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movsx eax, al
sub eax, 0x61
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
mov al, 0x63
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movsx eax, al
sub eax, 0x61
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
mov al, 0x69
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movsx eax, al
sub eax, 0x61
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
mov al, 0x45
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movsx eax, al
sub eax, 0x41
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
mov al, 0x61
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movsx eax, al
sub eax, 0x61
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
mov al, 0x41
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movsx eax, al
sub eax, 0x41
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
mov al, 0x6f
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movsx eax, al
sub eax, 0x61
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
mov al, 0x75
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movsx eax, al
sub eax, 0x61
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
mov al, 0x79
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movsx eax, al
sub eax, 0x61
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
mov al, 0x55
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movsx eax, al
sub eax, 0x41
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
mov al, 0x66
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movsx eax, al
sub eax, 0x61
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
mov al, 0x6e
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movsx eax, al
sub eax, 0x61
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
cmp al, 0x5a
jg 0x40ee1e
cmp al, 0x41
jl 0x40ee1e
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movsx eax, al
sub eax, 0x41
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
cmp al, 0x7a
jg 0x40ec97
cmp al, 0x61
jl 0x40ec97
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movsx eax, al
sub eax, 0x61
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
cmp al, 0x2e
jne 0x40ee5f
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0xb
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
cmp al, 0x39
jg 0x40ee7e
cmp al, 0x30
jl 0x40ee7e
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movsx eax, al
sub eax, 0x30
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
cmp al, 0x3a
jne 0x40ee98
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0xc
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
cmp al, 0x28
jne 0x40eeb2
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0xd
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
cmp al, 0x29
jne 0x40eecc
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0xe
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
cmp al, 0x2d
jne 0x40eee6
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0xf
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
cmp al, 0x27
je 0x40f16f
cmp al, 0x60
je 0x40f16f
cmp al, 0x21
jne 0x40ef10
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0x11
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
cmp al, 0x5f
jne 0x40ef2a
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0x12
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
cmp al, 0x2b
jne 0x40ef44
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0x13
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
cmp al, 0x5c
jne 0x40ef5e
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0x14
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
cmp al, 0x2f
jne 0x40ef78
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0x15
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
cmp al, 0x5b
je 0x40f159
cmp al, 0x7b
je 0x40f159
cmp al, 0x3c
je 0x40f159
cmp al, 0x5d
je 0x40f143
cmp al, 0x7d
je 0x40f143
cmp al, 0x3e
je 0x40f143
cmp al, 0x7e
je 0x40f12d
cmp al, 0x5e
je 0x40f12d
cmp al, 0x26
jne 0x40efd2
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0x19
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
cmp al, 0x25
jne 0x40efec
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0x1a
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
cmp al, 0x2c
jne 0x40f006
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0x1b
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
cmp al, 0x3d
jne 0x40f020
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0x1c
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
cmp al, 0x24
jne 0x40f03a
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0x1d
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
cmp al, 0x23
jne 0x40f054
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0x1e
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
cmp al, 0xc5
mov esi, 0xc
je 0x40f11a
cmp al, 0xe5
je 0x40f11a
cmp al, 0xd6
je 0x40f104
cmp al, 0xf6
je 0x40f104
cmp al, 0xc4
je 0x40f0ee
cmp al, 0xe4
je 0x40f0ee
cmp al, 0x3f
jne 0x40f09b
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 3
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
cmp al, 0x2a
jne 0x40f0b5
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 4
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
xor esi, esi
cmp al, 0x22
jne 0x40f0d1
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0x1a
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
sub al, 0x40
mov ecx, dword [esp + 0xc]
neg al
mov edx, dword [esp + 0x10]
sbb eax, eax
and eax, 3
add eax, 0x1b
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 2
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 1
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
xor eax, eax
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0x18
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0x17
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0x16
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0x10
lea eax, [eax + eax*4]
mov dword [ecx], eax
mov dword [edx], esi
pop esi
ret