Function at 0x40e610
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x40ea44
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x7c
je 0x40ea42
cmp eax, 0x29
jne 0x40e650
cmp dword [esi + 0x10], 0
jne 0x40ea42
test dword [esi + 0x50], 0x10000000
je 0x40ea51
jmp 0x40e9db
cmp eax, 0x2e
jne 0x40e6a6
push 5
lea ecx, [esi + 0x24]
call fcn.004110b0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40ea23
cmp byte [eax], 0x5c
jne 0x40e69e
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40e69e
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40e68b
mov dl, byte [ecx]
cmp dl, 0x28
je 0x40e69c
cmp dl, 0x29
je 0x40e69c
test bl, 0x10
jne 0x40e69e
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40e69c
cmp dl, 0x7d
jne 0x40e69e
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x40ea23
cmp eax, 0x5c
jne 0x40e7c4
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40e6ed
cmp byte [eax], 0x5c
jne 0x40e6ea
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40e6ea
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40e6d7
mov dl, byte [ecx]
cmp dl, 0x28
je 0x40e6e8
cmp dl, 0x29
je 0x40e6e8
test bl, 0x10
jne 0x40e6ea
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40e6e8
cmp dl, 0x7d
jne 0x40e6ea
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00411b00
test byte [esi + 0x50], 0x80
je 0x40e7b8
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x40e759
push 4
lea ecx, [esi + 0x24]
call fcn.004110b0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40e74d
cmp byte [eax], 0x5c
jne 0x40e74a
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40e74a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40e737
mov dl, byte [ecx]
cmp dl, 0x28
je 0x40e748
cmp dl, 0x29
je 0x40e748
test bl, 0x10
jne 0x40e74a
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40e748
cmp dl, 0x7d
jne 0x40e74a
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00411b00
jmp 0x40ea34
cmp al, 0x42
jne 0x40e7b8
push 4
lea ecx, [esi + 0x24]
call fcn.004110b0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40e7ac
cmp byte [eax], 0x5c
jne 0x40e7a9
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40e7a9
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40e796
mov al, byte [ecx]
cmp al, 0x28
je 0x40e7a7
cmp al, 0x29
je 0x40e7a7
mov eax, dword [esi]
test dl, 0x10
jne 0x40e7a9
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40e7a7
cmp dl, 0x7d
jne 0x40e7a9
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00411b00
jmp 0x40ea34
mov ecx, esi
call fcn.0040ea70
jmp 0x40ea2a
cmp eax, 0x5b
jne 0x40e86e
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40e80b
cmp byte [eax], 0x5c
jne 0x40e808
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40e808
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40e7f5
mov al, byte [ecx]
cmp al, 0x28
je 0x40e806
cmp al, 0x29
je 0x40e806
mov eax, dword [esi]
test dl, 0x10
jne 0x40e808
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40e806
cmp dl, 0x7d
jne 0x40e808
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00411b00
lea ecx, [esi + 0x24]
call fcn.0040de90
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x40e833
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.00411120
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x40e851
cmp eax, 0x5d
jne 0x40e851
push eax
lea ecx, [esi + 0x24]
call fcn.0040de20
mov ecx, esi
call fcn.00411120
mov ecx, esi
call fcn.0040f3f0
cmp dword [esi + 0x4c], 0x5d
jne 0x40ea63
mov ecx, esi
call fcn.00411120
jmp 0x40ea2a
cmp eax, 0x28
jne 0x40e8df
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40e8b1
cmp byte [eax], 0x5c
jne 0x40e8ae
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40e8ae
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40e89b
mov al, byte [ecx]
cmp al, 0x28
je 0x40e8ac
cmp al, 0x29
je 0x40e8ac
mov eax, dword [esi]
test dl, 0x10
jne 0x40e8ae
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40e8ac
cmp dl, 0x7d
jne 0x40e8ae
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00411b00
mov ecx, esi
call fcn.00411d00
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x40ea51
mov ecx, esi
call fcn.00411120
test bl, bl
je 0x40ea34
jmp 0x40ea2a
cmp eax, 0x5e
jne 0x40e938
push 2
lea ecx, [esi + 0x24]
call fcn.004110b0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40e92c
cmp byte [eax], 0x5c
jne 0x40e929
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40e929
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40e916
mov al, byte [ecx]
cmp al, 0x28
je 0x40e927
cmp al, 0x29
je 0x40e927
mov eax, dword [esi]
test dl, 0x10
jne 0x40e929
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40e927
cmp dl, 0x7d
jne 0x40e929
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00411b00
jmp 0x40ea34
cmp eax, 0x24
jne 0x40e991
push 3
lea ecx, [esi + 0x24]
call fcn.004110b0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40e985
cmp byte [eax], 0x5c
jne 0x40e982
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40e982
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40e96f
mov al, byte [ecx]
cmp al, 0x28
je 0x40e980
cmp al, 0x29
je 0x40e980
mov eax, dword [esi]
test dl, 0x10
jne 0x40e982
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40e980
cmp dl, 0x7d
jne 0x40e982
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00411b00
jmp 0x40ea34
cmp eax, 0x2a
je 0x40ea48
cmp eax, 0x2b
je 0x40ea48
cmp eax, 0x3f
je 0x40ea48
cmp eax, 0x7b
je 0x40ea48
cmp eax, 0x7d
jne 0x40e9c9
test dword [esi + 0x50], 0x10000000
je 0x40ea5a
jmp 0x40e9db
cmp eax, 0x5d
jne 0x40e9db
test dword [esi + 0x50], 0x10000000
je 0x40ea63
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0040dc70
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40ea23
cmp byte [eax], 0x5c
jne 0x40ea21
inc eax
cmp eax, ecx
je 0x40ea21
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40ea0e
mov dl, byte [eax]
cmp dl, 0x28
je 0x40ea1f
cmp dl, 0x29
je 0x40ea1f
test cl, 0x10
jne 0x40ea21
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40ea1f
cmp cl, 0x7d
jne 0x40ea21
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00411b00
mov ecx, esi
call fcn.00411450
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x40e626
pop ebx
pop edi
mov al, cl
pop esi
ret
push 0xa
mov ecx, esi
call fcn.00410240
push 5
mov ecx, esi
call fcn.00410240
push 6
mov ecx, esi
call fcn.00410240
push 4
mov ecx, esi
call fcn.00410240
int3