Function at 0x40d630
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.0x40d64e.111
xor edx, edx
mov dl, byte [ecx + 0x40db84]
jmp dword [edx*4 + 0x40db48]
mov al, 0x30
cmp al, 1
mov esi, 6
jne 0x40d805
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 0x40d7de
cmp al, 0x41
jl 0x40d7de
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 0x40d657
cmp al, 0x61
jl 0x40d657
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 0x40d81f
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 0x40d83e
cmp al, 0x30
jl 0x40d83e
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 0x40d858
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 0x40d872
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 0x40d88c
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 0x40d8a6
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 0x40db2f
cmp al, 0x60
je 0x40db2f
cmp al, 0x21
jne 0x40d8d0
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 0x40d8ea
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 0x40d904
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 0x40d91e
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 0x40d938
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 0x40db19
cmp al, 0x7b
je 0x40db19
cmp al, 0x3c
je 0x40db19
cmp al, 0x5d
je 0x40db03
cmp al, 0x7d
je 0x40db03
cmp al, 0x3e
je 0x40db03
cmp al, 0x7e
je 0x40daed
cmp al, 0x5e
je 0x40daed
cmp al, 0x26
jne 0x40d992
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 0x40d9ac
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 0x40d9c6
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 0x40d9e0
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 0x40d9fa
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 0x40da14
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 0x40dada
cmp al, 0xe5
je 0x40dada
cmp al, 0xd6
je 0x40dac4
cmp al, 0xf6
je 0x40dac4
cmp al, 0xc4
je 0x40daae
cmp al, 0xe4
je 0x40daae
cmp al, 0x3f
jne 0x40da5b
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 0x40da75
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 0x40da91
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