Function at 0x40cbb0
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 0x40d0b2
cmp eax, 0x7c
je 0x40d0b2
lea edi, [esi + 8]
cmp eax, 0x29
jne 0x40cbf4
cmp dword [esi + 0x10], 0
jne 0x40d0b2
test dword [esi + 0x50], 0x10000000
je 0x40d0c2
jmp 0x40d047
cmp eax, 0x2e
jne 0x40cc64
push 5
lea ecx, [esi + 0x24]
call fcn.0040d0e0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40d08e
cmp byte [eax], 0x5c
jne 0x40ce74
lea edx, [eax + 1]
cmp edx, ecx
je 0x40ce74
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40cc3e
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x40cc59
cmp byte [ebp - 1], 0x29
je 0x40cc59
test bl, 0x10
jne 0x40ce74
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x40cc59
cmp dl, 0x7d
jne 0x40ce74
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x40d08e
cmp eax, 0x5c
jne 0x40cdaf
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40ccb5
cmp byte [eax], 0x5c
jne 0x40ccb2
lea edx, [eax + 1]
cmp edx, ecx
je 0x40ccb2
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40cc9c
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x40ccaf
cmp byte [ebp - 1], 0x29
je 0x40ccaf
test bl, 0x10
jne 0x40ccb2
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x40ccaf
cmp dl, 0x7d
jne 0x40ccb2
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040bba0
test byte [esi + 0x50], 0x80
je 0x40cda3
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x40cd29
push 4
lea ecx, [esi + 0x24]
call fcn.0040d0e0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40cd1d
cmp byte [eax], 0x5c
jne 0x40cd1a
lea edx, [eax + 1]
cmp edx, ecx
je 0x40cd1a
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40cd04
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x40cd17
cmp bl, 0x29
je 0x40cd17
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x40cd1a
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x40cd17
cmp dl, 0x7d
jne 0x40cd1a
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040bba0
jmp 0x40d09f
cmp al, 0x42
jne 0x40cda3
push 4
lea ecx, [esi + 0x24]
call fcn.0040d0e0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40cd97
cmp byte [eax], 0x5c
jne 0x40cd94
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x40cd92
test byte [esi + 0x50], 8
jne 0x40cd6a
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x40cd80
cmp cl, 0x29
je 0x40cd80
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x40cd92
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x40cd80
mov edx, ecx
cmp bl, 0x7d
jne 0x40cd92
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.0040bba0
jmp 0x40d09f
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040bba0
jmp 0x40d09f
mov ecx, esi
call fcn.0040e220
jmp 0x40d095
cmp eax, 0x5b
jne 0x40ce7c
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40ce08
cmp byte [eax], 0x5c
jne 0x40ce02
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x40ce00
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40cde6
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x40cdfb
cmp cl, 0x29
je 0x40cdfb
mov ecx, eax
test bl, 0x10
jne 0x40ce00
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x40cdfb
mov edx, ecx
cmp bl, 0x7d
jne 0x40ce00
lea eax, [edx + 1]
jmp 0x40ce02
mov eax, ecx
inc eax
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.0040bba0
mov ecx, esi
call fcn.0040e0e0
cmp dword [esi + 0x4c], 0x5d
jne 0x40d0d0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40d08e
cmp byte [eax], 0x5c
jne 0x40ce74
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x40ce72
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40ce52
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x40ce67
cmp cl, 0x29
je 0x40ce67
mov ecx, eax
test bl, 0x10
jne 0x40ce72
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x40ce67
mov edx, ecx
cmp bl, 0x7d
jne 0x40ce72
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x40d08e
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x40d08e
cmp eax, 0x28
jne 0x40cf52
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40ced1
cmp byte [eax], 0x5c
jne 0x40cece
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x40cecc
test byte [esi + 0x50], 8
jne 0x40ceb1
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x40cec7
cmp cl, 0x29
je 0x40cec7
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x40cecc
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x40cec7
mov edx, ecx
cmp bl, 0x7d
jne 0x40cecc
lea eax, [edx + 1]
jmp 0x40cece
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040bba0
mov ecx, esi
call fcn.0040e370
cmp dword [esi + 0x4c], 0x29
mov bl, al
mov byte [ebp - 1], bl
jne 0x40d0c2
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x40cf3e
cmp byte [eax], 0x5c
jne 0x40cf3b
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x40cf36
test byte [esi + 0x50], 8
jne 0x40cf1b
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x40cf31
cmp cl, 0x29
je 0x40cf31
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x40cf36
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x40cf31
mov edx, ecx
cmp bl, 0x7d
jne 0x40cf36
lea eax, [edx + 1]
jmp 0x40cf38
mov eax, ecx
mov bl, byte [ebp - 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040bba0
test bl, bl
je 0x40d09f
jmp 0x40d095
cmp eax, 0x5e
jne 0x40cfa6
push 2
lea ecx, [esi + 0x24]
call fcn.0040d0e0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40cf9a
cmp byte [eax], 0x5c
jne 0x40cf98
inc eax
cmp eax, ecx
je 0x40cf98
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40cf87
mov dl, byte [eax]
cmp dl, 0x28
je 0x40cf96
cmp dl, 0x29
je 0x40cf96
test cl, 0x10
jne 0x40cf98
mov al, byte [eax]
cmp al, 0x7b
je 0x40cf96
cmp al, 0x7d
jne 0x40cf98
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0040bba0
jmp 0x40d09f
cmp eax, 0x24
jne 0x40cffd
push 3
lea ecx, [esi + 0x24]
call fcn.0040d0e0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40cff1
cmp byte [eax], 0x5c
jne 0x40cfef
inc eax
cmp eax, ecx
je 0x40cfef
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40cfde
mov dl, byte [eax]
cmp dl, 0x28
je 0x40cfed
cmp dl, 0x29
je 0x40cfed
test cl, 0x10
jne 0x40cfef
mov al, byte [eax]
cmp al, 0x7b
je 0x40cfed
cmp al, 0x7d
jne 0x40cfef
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0040bba0
jmp 0x40d09f
cmp eax, 0x2a
je 0x40d0bb
cmp eax, 0x2b
je 0x40d0bb
cmp eax, 0x3f
je 0x40d0bb
cmp eax, 0x7b
je 0x40d0bb
cmp eax, 0x7d
jne 0x40d035
test dword [esi + 0x50], 0x10000000
je 0x40d0c9
jmp 0x40d047
cmp eax, 0x5d
jne 0x40d047
test dword [esi + 0x50], 0x10000000
je 0x40d0d0
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0040e810
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40d08e
cmp byte [eax], 0x5c
jne 0x40d08c
inc eax
cmp eax, ecx
je 0x40d08c
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40d07b
mov dl, byte [eax]
cmp dl, 0x28
je 0x40d08a
cmp dl, 0x29
je 0x40d08a
test cl, 0x10
jne 0x40d08c
mov al, byte [eax]
cmp al, 0x7b
je 0x40d08a
cmp al, 0x7d
jne 0x40d08c
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0040bba0
mov ecx, esi
call fcn.0040e5f0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x40d0b2
cmp eax, 0x7c
jne 0x40cbd3
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.0040bb90
push 5
call fcn.0040bb90
push 6
call fcn.0040bb90
push 4
call fcn.0040bb90
int3