Function at 0x458dd0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
mov eax, dword [ebp + 0x10]
mov bx, word [eax]
mov word [ebp - 4], bx
test bx, bx
movsx esi, word [ebp - 4]
movsx edi, word [ebp - 4]
jle 0x4592a1
movsx eax, word [ebp - 4]
dec esi
dec eax
sub edi, eax
test edi, edi
jge 0x458e02
xor edi, edi
mov dword [ebp - 8], edi
mov ebx, esi
mov edx, dword [ebp - 8]
mov esi, dword [ebp + 8]
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afbac]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afba8]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afba4]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afba0]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afb9c]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afb98]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afb94]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afb90]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afb8c]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afb88]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afb84]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afb80]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afb7c]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afb78]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afb74]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afb70]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afb6c]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afb68]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afb64]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afb60]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afb5c]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afb58]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, [0x4afb54]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
jne 0x4592a1
mov eax, 1
add esi, ebx
mov ecx, edx
lea edi, str.__t_._:________za
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
movsx edx, word [ebp - 4]
movsx esi, word [ebp - 4]
jne 0x4592a1
add edx, dword [ebp + 8]
xor ecx, ecx
movzx edx, byte [edx]
cmp edx, 0x3c
setne cl
xor eax, eax
cmp edx, 0x7b
setne al
and eax, ecx
xor ecx, ecx
cmp edx, 0x5b
mov dword [ebp - 0xc], eax
setne cl
xor eax, eax
cmp edx, 0x28
setne al
and eax, ecx
and eax, dword [ebp - 0xc]
je 0x4592a1
xor ecx, ecx
cmp edx, 0x7c
setne cl
xor eax, eax
cmp edx, 0x26
setne al
and eax, ecx
xor ecx, ecx
cmp edx, 0x23
mov dword [ebp - 0xc], eax
setne cl
xor eax, eax
cmp edx, 0x5e
setne al
and eax, ecx
and eax, dword [ebp - 0xc]
je 0x4592a1
xor ecx, ecx
cmp edx, 0x7e
setne cl
xor eax, eax
cmp edx, 0x5c
setne al
and eax, ecx
xor ecx, ecx
cmp edx, 0x2f
mov dword [ebp - 0xc], eax
setne cl
xor eax, eax
cmp edx, 0x2a
setne al
and eax, ecx
and eax, dword [ebp - 0xc]
je 0x4592a1
xor ecx, ecx
cmp edx, 0x25
setne cl
xor eax, eax
cmp edx, 0x3d
setne al
and eax, ecx
xor ecx, ecx
cmp edx, 0x2b
mov dword [ebp - 0xc], eax
setne cl
xor eax, eax
cmp edx, 0x2d
setne al
and eax, ecx
and eax, dword [ebp - 0xc]
xor ecx, ecx
cmp edx, 9
mov dword [ebp - 0x10], eax
setne cl
xor eax, eax
cmp edx, 0x20
setne al
and eax, ecx
and eax, dword [ebp - 0x10]
je 0x4592a1
dec esi
dec ebx
test si, si
mov word [ebp - 4], si
mov esi, ebx
jg 0x458e05
mov ax, word [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc