Function at 0x40aee3
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov ecx, dword [ebp + 8]
xor eax, eax
push esi
xor esi, esi
cmp ecx, esi
setne al
mov dword [ebp - 0xc], eax
cmp ecx, esi
jne 0x40af00
lea ecx, [ebp - 4]
mov dword [ebp - 8], esi
cmp dword [ebp + 0x10], esi
je 0x40b211
mov edx, dword [ebp + 0xc]
push ebx
push edi
mov al, byte [edx]
test al, al
je 0x40b20f
cmp dword [ebp + 0x10], 5
jb 0x40b1fa
cmp al, 0x7b
jne 0x40b1fa
cmp byte [edx + 1], 0x71
jne 0x40b1fa
cmp byte [edx + 2], 0x70
jne 0x40b1fa
cmp byte [edx + 4], 0x7d
jne 0x40b1fa
cmp byte [edx + 3], 0x2d
mov dword [ebp - 0x14], esi
sete byte [ebp + 0xb]
add edx, 5
sub dword [ebp + 0x10], 5
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
mov edi, esi
mov dword [ebp - 0x10], esi
je 0x40b20f
mov bl, byte [edx]
test bl, bl
je 0x40b206
cmp dword [ebp + 0x10], 5
jb 0x40af9f
cmp bl, 0x7b
jne 0x40af9f
cmp byte [edx + 1], 0x2f
jne 0x40af9f
cmp byte [edx + 2], 0x71
jne 0x40af9f
cmp byte [edx + 3], 0x70
jne 0x40af9f
cmp byte [edx + 4], 0x7d
je 0x40b1f1
cmp byte [ebp + 0xb], 0
je 0x40b07d
cmp dword [ebp + 0x10], 6
jbe 0x40afde
cmp bl, 0x26
jne 0x40afde
cmp byte [edx + 1], 0x6e
jne 0x40afde
cmp byte [edx + 2], 0x62
jne 0x40afde
cmp byte [edx + 3], 0x73
jne 0x40afde
cmp byte [edx + 4], 0x70
jne 0x40afde
cmp byte [edx + 5], 0x3b
jne 0x40afde
add edx, 6
sub dword [ebp + 0x10], 6
jmp 0x40b1e4
push 4
pop esi
cmp dword [ebp + 0x10], esi
jbe 0x40b043
cmp bl, 0x3c
jne 0x40b043
mov al, byte [edx + 1]
cmp al, 0x44
jne 0x40b00b
cmp byte [edx + 2], 0x49
jne 0x40b00b
cmp byte [edx + 3], 0x56
jne 0x40b00b
sub dword [ebp + 0x10], esi
add edx, esi
inc dword [ebp - 0x14]
jmp 0x40b095
cmp al, 0x42
jne 0x40b022
cmp byte [edx + 2], 0x52
jne 0x40b022
cmp byte [edx + 3], 0x3e
jne 0x40b022
add edx, esi
sub dword [ebp + 0x10], esi
jmp 0x40b095
cmp al, 0x50
jne 0x40b035
cmp byte [edx + 2], 0x3e
jne 0x40b035
add edx, 3
sub dword [ebp + 0x10], 3
jmp 0x40b095
cmp al, 0x41
jne 0x40b043
sub dword [ebp + 0x10], 2
add edx, 2
inc dword [ebp - 0x18]
xor eax, eax
cmp dword [ebp - 0x18], eax
jle 0x40b05a
cmp bl, 0x22
jne 0x40b05a
not dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], eax
jne 0x40b078
mov dword [ebp - 0x18], eax
cmp bl, 0x3c
jne 0x40b062
inc dword [ebp - 0x14]
cmp bl, 0x3e
jne 0x40b078
cmp dword [ebp - 0x1c], eax
jne 0x40b078
dec dword [ebp - 0x14]
inc edx
dec dword [ebp + 0x10]
jmp 0x40b1e4
cmp dword [ebp - 0x14], eax
jg 0x40b06f
cmp bl, 0xd
jne 0x40b0b0
cmp byte [edx + 1], 0xa
jne 0x40b0b0
sub dword [ebp + 0x10], 2
add edx, 2
cmp byte [ebp + 0xb], 0
jne 0x40b0a7
add dword [ebp - 8], 2
mov byte [ecx], 0xd
add ecx, dword [ebp - 0xc]
mov byte [ecx], 0xa
add ecx, dword [ebp - 0xc]
xor edi, edi
and dword [ebp - 0x10], 0
jmp 0x40b1e4
mov al, byte [edx]
inc edx
dec dword [ebp + 0x10]
cmp dword [ebp - 8], 0
je 0x40b0d1
cmp al, 0x2e
jne 0x40b0d1
test edi, edi
jne 0x40b106
cmp byte [edx], 0xd
je 0x40b106
cmp byte [edx + 1], 0xa
je 0x40b106
add al, 0xf5
cmp al, 0x20
je 0x40b0d9
cmp al, 9
jne 0x40b0fa
and dword [ebp - 0x10], 0
cmp byte [ebp + 0xb], 0
jne 0x40b1bf
cmp byte [edx], 0xd
jne 0x40b1bf
cmp byte [edx + 1], 0xa
jne 0x40b1bf
cmp al, 0x3d
je 0x40b12c
lea ebx, [eax - 0x21]
cmp bl, 0x5d
ja 0x40b12c
cmp dword [ebp - 0x10], 0
jne 0x40b122
lea esi, [edx - 1]
mov dword [ebp - 0x10], esi
mov esi, dword [ebp + 0x10]
inc esi
mov dword [ebp - 0x20], esi
mov esi, dword [ebp - 8]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x28], esi
mov byte [ecx], al
add ecx, dword [ebp - 0xc]
inc dword [ebp - 8]
jmp 0x40b17b
cmp edi, 0x47
jbe 0x40b149
add dword [ebp - 8], 3
mov byte [ecx], 0x3d
add ecx, dword [ebp - 0xc]
mov byte [ecx], 0xd
add ecx, dword [ebp - 0xc]
mov byte [ecx], 0xa
add ecx, dword [ebp - 0xc]
xor edi, edi
and dword [ebp - 0x10], 0
add dword [ebp - 8], 3
movzx esi, al
mov byte [ecx], 0x3d
add ecx, dword [ebp - 0xc]
mov eax, esi
shr eax, 4
mov al, byte [eax + 0x410524]
mov byte [ecx], al
add ecx, dword [ebp - 0xc]
and esi, 0xf
mov al, byte [esi + 0x410524]
mov byte [ecx], al
add ecx, dword [ebp - 0xc]
add edi, 2
inc edi
cmp edi, 0x49
jne 0x40b1e4
xor edi, edi
cmp dword [ebp - 0x10], edi
je 0x40b1a7
mov eax, edx
sub eax, dword [ebp - 0x10]
cmp eax, 0x49
jge 0x40b1a7
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x24]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 8], eax
mov dword [ebp - 0x10], edi
mov byte [ecx], 0x3d
add ecx, dword [ebp - 0xc]
mov byte [ecx], 0xd
add ecx, dword [ebp - 0xc]
mov byte [ecx], 0xa
add ecx, dword [ebp - 0xc]
add dword [ebp - 8], 3
jmp 0x40b1e4
mov byte [ecx], al
mov eax, dword [ebp - 0xc]
add ecx, eax
inc dword [ebp - 8]
inc edi
cmp edi, 0x49
jne 0x40b1e4
add dword [ebp - 8], 3
mov byte [ecx], 0x3d
add ecx, eax
mov byte [ecx], 0xd
add ecx, eax
mov byte [ecx], 0xa
add ecx, eax
xor edi, edi
cmp dword [ebp + 0x10], 0
je 0x40b20f
xor esi, esi
jmp 0x40af6e
add edx, 5
sub dword [ebp + 0x10], 5
jmp 0x40b206
inc edx
dec dword [ebp + 0x10]
mov byte [ecx], al
add ecx, dword [ebp - 0xc]
inc dword [ebp - 8]
cmp dword [ebp + 0x10], esi
jne 0x40af11
pop edi
pop ebx
mov eax, dword [ebp - 8]
pop esi
leave
ret