Function at 0x40e610
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x40ea77
lea edi, [esi + 8]
cmp eax, 0x7c
je 0x40ea77
cmp eax, 0x29
jne 0x40e650
cmp dword [esi + 0x10], 0
jne 0x40ea77
test dword [esi + 0x50], 0x10000000
je 0x40ea84
jmp 0x40ea10
cmp eax, 0x2e
jne 0x40e6a3
push 5
lea ecx, [esi + 0x24]
call fcn.0040eaa0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40ea58
cmp byte [eax], 0x5c
jne 0x40e85f
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40e85f
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40e69b
mov dl, byte [ecx]
cmp dl, 0x28
je 0x40e85d
cmp dl, 0x29
je 0x40e85d
test bl, 0x10
jmp 0x40e84f
cmp eax, 0x5c
jne 0x40e7c1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40e6ea
cmp byte [eax], 0x5c
jne 0x40e6e7
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40e6e7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40e6d4
mov dl, byte [ecx]
cmp dl, 0x28
je 0x40e6e5
cmp dl, 0x29
je 0x40e6e5
test bl, 0x10
jne 0x40e6e7
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40e6e5
cmp dl, 0x7d
jne 0x40e6e7
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040d090
test byte [esi + 0x50], 0x80
je 0x40e7b5
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x40e756
push 4
lea ecx, [esi + 0x24]
call fcn.0040eaa0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40e74a
cmp byte [eax], 0x5c
jne 0x40e747
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40e747
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40e734
mov dl, byte [ecx]
cmp dl, 0x28
je 0x40e745
cmp dl, 0x29
je 0x40e745
test bl, 0x10
jne 0x40e747
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40e745
cmp dl, 0x7d
jne 0x40e747
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040d090
jmp 0x40ea69
cmp al, 0x42
jne 0x40e7b5
push 4
lea ecx, [esi + 0x24]
call fcn.0040eaa0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40e7a9
cmp byte [eax], 0x5c
jne 0x40e7a6
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40e7a6
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40e793
mov al, byte [ecx]
cmp al, 0x28
je 0x40e7a4
cmp al, 0x29
je 0x40e7a4
mov eax, dword [esi]
test dl, 0x10
jne 0x40e7a6
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40e7a4
cmp dl, 0x7d
jne 0x40e7a6
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040d090
jmp 0x40ea69
mov ecx, esi
call fcn.0040ec50
jmp 0x40ea5f
cmp eax, 0x5b
jne 0x40e867
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40e808
cmp byte [eax], 0x5c
jne 0x40e805
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40e805
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40e7f2
mov al, byte [ecx]
cmp al, 0x28
je 0x40e803
cmp al, 0x29
je 0x40e803
mov eax, dword [esi]
test dl, 0x10
jne 0x40e805
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40e803
cmp dl, 0x7d
jne 0x40e805
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040d090
mov ecx, esi
call fcn.0040eb20
cmp dword [esi + 0x4c], 0x5d
jne 0x40ea92
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40ea58
cmp byte [eax], 0x5c
jne 0x40e85f
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40e85f
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40e84c
mov al, byte [ecx]
cmp al, 0x28
je 0x40e85d
cmp al, 0x29
je 0x40e85d
mov eax, dword [esi]
test dl, 0x10
jne 0x40e85f
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40e85d
cmp dl, 0x7d
jne 0x40e85f
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x40ea58
cmp eax, 0x28
jne 0x40e91a
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40e8ae
cmp byte [eax], 0x5c
jne 0x40e8ab
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40e8ab
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40e898
mov al, byte [ecx]
cmp al, 0x28
je 0x40e8a9
cmp al, 0x29
je 0x40e8a9
mov eax, dword [esi]
test dl, 0x10
jne 0x40e8ab
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40e8a9
cmp dl, 0x7d
jne 0x40e8ab
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040d090
mov ecx, esi
call fcn.0040eda0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x40ea84
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40e906
cmp byte [eax], 0x5c
jne 0x40e903
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40e903
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40e8f0
mov al, byte [ecx]
cmp al, 0x28
je 0x40e901
cmp al, 0x29
je 0x40e901
mov eax, dword [esi]
test dl, 0x10
jne 0x40e903
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40e901
cmp dl, 0x7d
jne 0x40e903
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040d090
test bl, bl
je 0x40ea69
jmp 0x40ea5f
cmp eax, 0x5e
jne 0x40e970
push 2
lea ecx, [esi + 0x24]
call fcn.0040eaa0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40e964
cmp byte [eax], 0x5c
jne 0x40e962
inc eax
cmp eax, ecx
je 0x40e962
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40e94f
mov dl, byte [eax]
cmp dl, 0x28
je 0x40e960
cmp dl, 0x29
je 0x40e960
test cl, 0x10
jne 0x40e962
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e960
cmp cl, 0x7d
jne 0x40e962
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0040d090
jmp 0x40ea69
cmp eax, 0x24
jne 0x40e9c6
push 3
lea ecx, [esi + 0x24]
call fcn.0040eaa0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40e9ba
cmp byte [eax], 0x5c
jne 0x40e9b8
inc eax
cmp eax, ecx
je 0x40e9b8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40e9a5
mov dl, byte [eax]
cmp dl, 0x28
je 0x40e9b6
cmp dl, 0x29
je 0x40e9b6
test cl, 0x10
jne 0x40e9b8
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e9b6
cmp cl, 0x7d
jne 0x40e9b8
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0040d090
jmp 0x40ea69
cmp eax, 0x2a
je 0x40ea7d
cmp eax, 0x2b
je 0x40ea7d
cmp eax, 0x3f
je 0x40ea7d
cmp eax, 0x7b
je 0x40ea7d
cmp eax, 0x7d
jne 0x40e9fe
test dword [esi + 0x50], 0x10000000
je 0x40ea8b
jmp 0x40ea10
cmp eax, 0x5d
jne 0x40ea10
test dword [esi + 0x50], 0x10000000
je 0x40ea92
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0040f250
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40ea58
cmp byte [eax], 0x5c
jne 0x40ea56
inc eax
cmp eax, ecx
je 0x40ea56
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40ea43
mov dl, byte [eax]
cmp dl, 0x28
je 0x40ea54
cmp dl, 0x29
je 0x40ea54
test cl, 0x10
jne 0x40ea56
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40ea54
cmp cl, 0x7d
jne 0x40ea56
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0040d090
mov ecx, esi
call fcn.0040f020
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x40e626
pop edi
pop esi
mov al, cl
pop ebx
ret
push 0xa
call fcn.0040d080
push 5
call fcn.0040d080
push 6
call fcn.0040d080
push 4
call fcn.0040d080
int3