Function at 0x40c380
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x40c882
cmp eax, 0x7c
je 0x40c882
lea edi, [esi + 8]
cmp eax, 0x29
jne 0x40c3c4
cmp dword [esi + 0x10], 0
jne 0x40c882
test dword [esi + 0x50], 0x10000000
je 0x40c892
jmp 0x40c817
cmp eax, 0x2e
jne 0x40c434
push 5
lea ecx, [esi + 0x24]
call fcn.0040c8b0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40c85e
cmp byte [eax], 0x5c
jne 0x40c644
lea edx, [eax + 1]
cmp edx, ecx
je 0x40c644
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40c40e
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x40c429
cmp byte [ebp - 1], 0x29
je 0x40c429
test bl, 0x10
jne 0x40c644
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x40c429
cmp dl, 0x7d
jne 0x40c644
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x40c85e
cmp eax, 0x5c
jne 0x40c57f
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40c485
cmp byte [eax], 0x5c
jne 0x40c482
lea edx, [eax + 1]
cmp edx, ecx
je 0x40c482
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40c46c
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x40c47f
cmp byte [ebp - 1], 0x29
je 0x40c47f
test bl, 0x10
jne 0x40c482
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x40c47f
cmp dl, 0x7d
jne 0x40c482
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040b6e0
test byte [esi + 0x50], 0x80
je 0x40c573
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x40c4f9
push 4
lea ecx, [esi + 0x24]
call fcn.0040c8b0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40c4ed
cmp byte [eax], 0x5c
jne 0x40c4ea
lea edx, [eax + 1]
cmp edx, ecx
je 0x40c4ea
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40c4d4
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x40c4e7
cmp bl, 0x29
je 0x40c4e7
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x40c4ea
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x40c4e7
cmp dl, 0x7d
jne 0x40c4ea
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040b6e0
jmp 0x40c86f
cmp al, 0x42
jne 0x40c573
push 4
lea ecx, [esi + 0x24]
call fcn.0040c8b0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40c567
cmp byte [eax], 0x5c
jne 0x40c564
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x40c562
test byte [esi + 0x50], 8
jne 0x40c53a
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x40c550
cmp cl, 0x29
je 0x40c550
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x40c562
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x40c550
mov edx, ecx
cmp bl, 0x7d
jne 0x40c562
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.0040b6e0
jmp 0x40c86f
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040b6e0
jmp 0x40c86f
mov ecx, esi
call fcn.0040d340
jmp 0x40c865
cmp eax, 0x5b
jne 0x40c64c
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40c5d8
cmp byte [eax], 0x5c
jne 0x40c5d2
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x40c5d0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40c5b6
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x40c5cb
cmp cl, 0x29
je 0x40c5cb
mov ecx, eax
test bl, 0x10
jne 0x40c5d0
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x40c5cb
mov edx, ecx
cmp bl, 0x7d
jne 0x40c5d0
lea eax, [edx + 1]
jmp 0x40c5d2
mov eax, ecx
inc eax
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.0040b6e0
mov ecx, esi
call fcn.0040d200
cmp dword [esi + 0x4c], 0x5d
jne 0x40c8a0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40c85e
cmp byte [eax], 0x5c
jne 0x40c644
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x40c642
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40c622
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x40c637
cmp cl, 0x29
je 0x40c637
mov ecx, eax
test bl, 0x10
jne 0x40c642
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x40c637
mov edx, ecx
cmp bl, 0x7d
jne 0x40c642
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x40c85e
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x40c85e
cmp eax, 0x28
jne 0x40c722
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40c6a1
cmp byte [eax], 0x5c
jne 0x40c69e
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x40c69c
test byte [esi + 0x50], 8
jne 0x40c681
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x40c697
cmp cl, 0x29
je 0x40c697
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x40c69c
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x40c697
mov edx, ecx
cmp bl, 0x7d
jne 0x40c69c
lea eax, [edx + 1]
jmp 0x40c69e
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040b6e0
mov ecx, esi
call fcn.0040d490
cmp dword [esi + 0x4c], 0x29
mov bl, al
mov byte [ebp - 1], bl
jne 0x40c892
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x40c70e
cmp byte [eax], 0x5c
jne 0x40c70b
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x40c706
test byte [esi + 0x50], 8
jne 0x40c6eb
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x40c701
cmp cl, 0x29
je 0x40c701
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x40c706
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x40c701
mov edx, ecx
cmp bl, 0x7d
jne 0x40c706
lea eax, [edx + 1]
jmp 0x40c708
mov eax, ecx
mov bl, byte [ebp - 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040b6e0
test bl, bl
je 0x40c86f
jmp 0x40c865
cmp eax, 0x5e
jne 0x40c776
push 2
lea ecx, [esi + 0x24]
call fcn.0040c8b0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40c76a
cmp byte [eax], 0x5c
jne 0x40c768
inc eax
cmp eax, ecx
je 0x40c768
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40c757
mov dl, byte [eax]
cmp dl, 0x28
je 0x40c766
cmp dl, 0x29
je 0x40c766
test cl, 0x10
jne 0x40c768
mov al, byte [eax]
cmp al, 0x7b
je 0x40c766
cmp al, 0x7d
jne 0x40c768
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0040b6e0
jmp 0x40c86f
cmp eax, 0x24
jne 0x40c7cd
push 3
lea ecx, [esi + 0x24]
call fcn.0040c8b0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40c7c1
cmp byte [eax], 0x5c
jne 0x40c7bf
inc eax
cmp eax, ecx
je 0x40c7bf
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40c7ae
mov dl, byte [eax]
cmp dl, 0x28
je 0x40c7bd
cmp dl, 0x29
je 0x40c7bd
test cl, 0x10
jne 0x40c7bf
mov al, byte [eax]
cmp al, 0x7b
je 0x40c7bd
cmp al, 0x7d
jne 0x40c7bf
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0040b6e0
jmp 0x40c86f
cmp eax, 0x2a
je 0x40c88b
cmp eax, 0x2b
je 0x40c88b
cmp eax, 0x3f
je 0x40c88b
cmp eax, 0x7b
je 0x40c88b
cmp eax, 0x7d
jne 0x40c805
test dword [esi + 0x50], 0x10000000
je 0x40c899
jmp 0x40c817
cmp eax, 0x5d
jne 0x40c817
test dword [esi + 0x50], 0x10000000
je 0x40c8a0
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0040d930
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40c85e
cmp byte [eax], 0x5c
jne 0x40c85c
inc eax
cmp eax, ecx
je 0x40c85c
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40c84b
mov dl, byte [eax]
cmp dl, 0x28
je 0x40c85a
cmp dl, 0x29
je 0x40c85a
test cl, 0x10
jne 0x40c85c
mov al, byte [eax]
cmp al, 0x7b
je 0x40c85a
cmp al, 0x7d
jne 0x40c85c
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0040b6e0
mov ecx, esi
call fcn.0040d710
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x40c882
cmp eax, 0x7c
jne 0x40c3a3
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.0040b6d0
push 5
call fcn.0040b6d0
push 6
call fcn.0040b6d0
push 4
call fcn.0040b6d0
int3