Function at 0x40badd
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 0x40bafa
lea ecx, [ebp - 4]
mov dword [ebp - 8], esi
cmp dword [ebp + 0x10], esi
je 0x40be0b
mov edx, dword [ebp + 0xc]
push ebx
push edi
mov al, byte [edx]
test al, al
je 0x40be09
cmp dword [ebp + 0x10], 5
jb 0x40bdf4
cmp al, 0x7b
jne 0x40bdf4
cmp byte [edx + 1], 0x71
jne 0x40bdf4
cmp byte [edx + 2], 0x70
jne 0x40bdf4
cmp byte [edx + 4], 0x7d
jne 0x40bdf4
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 0x40be09
mov bl, byte [edx]
test bl, bl
je 0x40be00
cmp dword [ebp + 0x10], 5
jb 0x40bb99
cmp bl, 0x7b
jne 0x40bb99
cmp byte [edx + 1], 0x2f
jne 0x40bb99
cmp byte [edx + 2], 0x71
jne 0x40bb99
cmp byte [edx + 3], 0x70
jne 0x40bb99
cmp byte [edx + 4], 0x7d
je 0x40bdeb
cmp byte [ebp + 0xb], 0
je 0x40bc77
cmp dword [ebp + 0x10], 6
jbe 0x40bbd8
cmp bl, 0x26
jne 0x40bbd8
cmp byte [edx + 1], 0x6e
jne 0x40bbd8
cmp byte [edx + 2], 0x62
jne 0x40bbd8
cmp byte [edx + 3], 0x73
jne 0x40bbd8
cmp byte [edx + 4], 0x70
jne 0x40bbd8
cmp byte [edx + 5], 0x3b
jne 0x40bbd8
add edx, 6
sub dword [ebp + 0x10], 6
jmp 0x40bdde
push 4
pop esi
cmp dword [ebp + 0x10], esi
jbe 0x40bc3d
cmp bl, 0x3c
jne 0x40bc3d
mov al, byte [edx + 1]
cmp al, 0x44
jne 0x40bc05
cmp byte [edx + 2], 0x49
jne 0x40bc05
cmp byte [edx + 3], 0x56
jne 0x40bc05
sub dword [ebp + 0x10], esi
add edx, esi
inc dword [ebp - 0x14]
jmp 0x40bc8f
cmp al, 0x42
jne 0x40bc1c
cmp byte [edx + 2], 0x52
jne 0x40bc1c
cmp byte [edx + 3], 0x3e
jne 0x40bc1c
add edx, esi
sub dword [ebp + 0x10], esi
jmp 0x40bc8f
cmp al, 0x50
jne 0x40bc2f
cmp byte [edx + 2], 0x3e
jne 0x40bc2f
add edx, 3
sub dword [ebp + 0x10], 3
jmp 0x40bc8f
cmp al, 0x41
jne 0x40bc3d
sub dword [ebp + 0x10], 2
add edx, 2
inc dword [ebp - 0x18]
xor eax, eax
cmp dword [ebp - 0x18], eax
jle 0x40bc54
cmp bl, 0x22
jne 0x40bc54
not dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], eax
jne 0x40bc72
mov dword [ebp - 0x18], eax
cmp bl, 0x3c
jne 0x40bc5c
inc dword [ebp - 0x14]
cmp bl, 0x3e
jne 0x40bc72
cmp dword [ebp - 0x1c], eax
jne 0x40bc72
dec dword [ebp - 0x14]
inc edx
dec dword [ebp + 0x10]
jmp 0x40bdde
cmp dword [ebp - 0x14], eax
jg 0x40bc69
cmp bl, 0xd
jne 0x40bcaa
cmp byte [edx + 1], 0xa
jne 0x40bcaa
sub dword [ebp + 0x10], 2
add edx, 2
cmp byte [ebp + 0xb], 0
jne 0x40bca1
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 0x40bdde
mov al, byte [edx]
inc edx
dec dword [ebp + 0x10]
cmp dword [ebp - 8], 0
je 0x40bccb
cmp al, 0x2e
jne 0x40bccb
test edi, edi
jne 0x40bd00
cmp byte [edx], 0xd
je 0x40bd00
cmp byte [edx + 1], 0xa
je 0x40bd00
add al, 0xf5
cmp al, 0x20
je 0x40bcd3
cmp al, 9
jne 0x40bcf4
and dword [ebp - 0x10], 0
cmp byte [ebp + 0xb], 0
jne 0x40bdb9
cmp byte [edx], 0xd
jne 0x40bdb9
cmp byte [edx + 1], 0xa
jne 0x40bdb9
cmp al, 0x3d
je 0x40bd26
lea ebx, [eax - 0x21]
cmp bl, 0x5d
ja 0x40bd26
cmp dword [ebp - 0x10], 0
jne 0x40bd1c
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 0x40bd75
cmp edi, 0x47
jbe 0x40bd43
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 0x40bdde
xor edi, edi
cmp dword [ebp - 0x10], edi
je 0x40bda1
mov eax, edx
sub eax, dword [ebp - 0x10]
cmp eax, 0x49
jge 0x40bda1
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 0x40bdde
mov byte [ecx], al
mov eax, dword [ebp - 0xc]
add ecx, eax
inc dword [ebp - 8]
inc edi
cmp edi, 0x49
jne 0x40bdde
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 0x40be09
xor esi, esi
jmp 0x40bb68
add edx, 5
sub dword [ebp + 0x10], 5
jmp 0x40be00
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 0x40bb0b
pop edi
pop ebx
mov eax, dword [ebp - 8]
pop esi
leave
ret