Function at 0x40aedd
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 0x40aefa
lea ecx, [ebp - 4]
mov dword [ebp - 8], esi
cmp dword [ebp + 0x10], esi
je 0x40b20b
mov edx, dword [ebp + 0xc]
push ebx
push edi
mov al, byte [edx]
test al, al
je 0x40b209
cmp dword [ebp + 0x10], 5
jb 0x40b1f4
cmp al, 0x7b
jne 0x40b1f4
cmp byte [edx + 1], 0x71
jne 0x40b1f4
cmp byte [edx + 2], 0x70
jne 0x40b1f4
cmp byte [edx + 4], 0x7d
jne 0x40b1f4
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 0x40b209
mov bl, byte [edx]
test bl, bl
je 0x40b200
cmp dword [ebp + 0x10], 5
jb 0x40af99
cmp bl, 0x7b
jne 0x40af99
cmp byte [edx + 1], 0x2f
jne 0x40af99
cmp byte [edx + 2], 0x71
jne 0x40af99
cmp byte [edx + 3], 0x70
jne 0x40af99
cmp byte [edx + 4], 0x7d
je 0x40b1eb
cmp byte [ebp + 0xb], 0
je 0x40b077
cmp dword [ebp + 0x10], 6
jbe 0x40afd8
cmp bl, 0x26
jne 0x40afd8
cmp byte [edx + 1], 0x6e
jne 0x40afd8
cmp byte [edx + 2], 0x62
jne 0x40afd8
cmp byte [edx + 3], 0x73
jne 0x40afd8
cmp byte [edx + 4], 0x70
jne 0x40afd8
cmp byte [edx + 5], 0x3b
jne 0x40afd8
add edx, 6
sub dword [ebp + 0x10], 6
jmp 0x40b1de
push 4
pop esi
cmp dword [ebp + 0x10], esi
jbe 0x40b03d
cmp bl, 0x3c
jne 0x40b03d
mov al, byte [edx + 1]
cmp al, 0x44
jne 0x40b005
cmp byte [edx + 2], 0x49
jne 0x40b005
cmp byte [edx + 3], 0x56
jne 0x40b005
sub dword [ebp + 0x10], esi
add edx, esi
inc dword [ebp - 0x14]
jmp 0x40b08f
cmp al, 0x42
jne 0x40b01c
cmp byte [edx + 2], 0x52
jne 0x40b01c
cmp byte [edx + 3], 0x3e
jne 0x40b01c
add edx, esi
sub dword [ebp + 0x10], esi
jmp 0x40b08f
cmp al, 0x50
jne 0x40b02f
cmp byte [edx + 2], 0x3e
jne 0x40b02f
add edx, 3
sub dword [ebp + 0x10], 3
jmp 0x40b08f
cmp al, 0x41
jne 0x40b03d
sub dword [ebp + 0x10], 2
add edx, 2
inc dword [ebp - 0x18]
xor eax, eax
cmp dword [ebp - 0x18], eax
jle 0x40b054
cmp bl, 0x22
jne 0x40b054
not dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], eax
jne 0x40b072
mov dword [ebp - 0x18], eax
cmp bl, 0x3c
jne 0x40b05c
inc dword [ebp - 0x14]
cmp bl, 0x3e
jne 0x40b072
cmp dword [ebp - 0x1c], eax
jne 0x40b072
dec dword [ebp - 0x14]
inc edx
dec dword [ebp + 0x10]
jmp 0x40b1de
cmp dword [ebp - 0x14], eax
jg 0x40b069
cmp bl, 0xd
jne 0x40b0aa
cmp byte [edx + 1], 0xa
jne 0x40b0aa
sub dword [ebp + 0x10], 2
add edx, 2
cmp byte [ebp + 0xb], 0
jne 0x40b0a1
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 0x40b1de
mov al, byte [edx]
inc edx
dec dword [ebp + 0x10]
cmp dword [ebp - 8], 0
je 0x40b0cb
cmp al, 0x2e
jne 0x40b0cb
test edi, edi
jne 0x40b100
cmp byte [edx], 0xd
je 0x40b100
cmp byte [edx + 1], 0xa
je 0x40b100
add al, 0xf5
cmp al, 0x20
je 0x40b0d3
cmp al, 9
jne 0x40b0f4
and dword [ebp - 0x10], 0
cmp byte [ebp + 0xb], 0
jne 0x40b1b9
cmp byte [edx], 0xd
jne 0x40b1b9
cmp byte [edx + 1], 0xa
jne 0x40b1b9
cmp al, 0x3d
je 0x40b126
lea ebx, [eax - 0x21]
cmp bl, 0x5d
ja 0x40b126
cmp dword [ebp - 0x10], 0
jne 0x40b11c
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 0x40b175
cmp edi, 0x47
jbe 0x40b143
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 + 0x410510]
mov byte [ecx], al
add ecx, dword [ebp - 0xc]
and esi, 0xf
mov al, byte [esi + 0x410510]
mov byte [ecx], al
add ecx, dword [ebp - 0xc]
add edi, 2
inc edi
cmp edi, 0x49
jne 0x40b1de
xor edi, edi
cmp dword [ebp - 0x10], edi
je 0x40b1a1
mov eax, edx
sub eax, dword [ebp - 0x10]
cmp eax, 0x49
jge 0x40b1a1
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 0x40b1de
mov byte [ecx], al
mov eax, dword [ebp - 0xc]
add ecx, eax
inc dword [ebp - 8]
inc edi
cmp edi, 0x49
jne 0x40b1de
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 0x40b209
xor esi, esi
jmp 0x40af68
add edx, 5
sub dword [ebp + 0x10], 5
jmp 0x40b200
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 0x40af0b
pop edi
pop ebx
mov eax, dword [ebp - 8]
pop esi
leave
ret