Function at 0x40e760
Capabilities:
Parse credit card information

Disassembly:
push esi
push edi
mov esi, ecx
xor edi, edi
xor al, al
cmp dword [esi + 0x40], 0xffffffff
je 0x40ea72
push ebx
mov ecx, dword [esi + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x40ea71
cmp ecx, 0x29
jne 0x40e7a6
cmp dword [esi + 0x10], edi
jne 0x40ea71
test dword [esi + 0x44], edx
jne 0x40e7a6
push 5
call fcn.00410844
add esp, 4
jmp 0x40ea5e
cmp ecx, 0x2e
jne 0x40e843
push 0x14
call fcn.00411e1c
add esp, 4
cmp eax, edi
je 0x40e7d5
mov dword [eax], vtable.std::tr1::_Node_base.0
mov dword [eax + 4], 5
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
jmp 0x40e7d7
xor eax, eax
mov ecx, dword [esi + 0x1c]
mov dword [eax + 0x10], ecx
mov edx, dword [esi + 0x1c]
mov ecx, dword [edx + 0xc]
cmp ecx, edi
je 0x40e7f3
mov dword [eax + 0xc], ecx
mov ecx, dword [esi + 0x1c]
mov edx, dword [ecx + 0xc]
mov dword [edx + 0x10], eax
mov ecx, dword [esi + 0x1c]
mov dword [ecx + 0xc], eax
mov dword [esi + 0x1c], eax
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40e837
cmp byte [eax], 0x5c
jne 0x40e835
inc eax
cmp eax, ecx
je 0x40e821
test byte [esi + 0x44], 8
jne 0x40e821
mov cl, byte [eax]
cmp cl, 0x28
je 0x40e833
cmp cl, 0x29
je 0x40e833
test byte [esi + 0x44], 0x10
jne 0x40e835
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e833
cmp cl, 0x7d
jne 0x40e835
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00403d20
jmp 0x40ea5e
cmp ecx, 0x5c
jne 0x40e959
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40e887
cmp byte [eax], 0x5c
jne 0x40e885
inc eax
cmp eax, ecx
je 0x40e871
test byte [esi + 0x44], 8
jne 0x40e871
mov cl, byte [eax]
cmp cl, 0x28
je 0x40e883
cmp cl, 0x29
je 0x40e883
test byte [esi + 0x44], 0x10
jne 0x40e885
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e883
cmp cl, 0x7d
jne 0x40e885
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00403d20
mov eax, dword [esi + 0x44]
and eax, 0x80
je 0x40e8ed
cmp byte [esi + 0x3e], 0x62
jne 0x40e8ed
lea ecx, [esi + 0x18]
call fcn.00401cf0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40e8e1
cmp byte [eax], 0x5c
jne 0x40e8df
inc eax
cmp eax, ecx
je 0x40e8cb
test byte [esi + 0x44], 8
jne 0x40e8cb
mov cl, byte [eax]
cmp cl, 0x28
je 0x40e8dd
cmp cl, 0x29
je 0x40e8dd
test byte [esi + 0x44], 0x10
jne 0x40e8df
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e8dd
cmp cl, 0x7d
jne 0x40e8df
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00403d20
jmp 0x40ea65
cmp eax, edi
je 0x40e94d
cmp byte [esi + 0x3e], 0x42
jne 0x40e94d
lea ecx, [esi + 0x18]
call fcn.00401cf0
mov eax, dword [esi + 0x1c]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40e941
cmp byte [eax], 0x5c
jne 0x40e93f
inc eax
cmp eax, ecx
je 0x40e92b
test byte [esi + 0x44], 8
jne 0x40e92b
mov cl, byte [eax]
cmp cl, 0x28
je 0x40e93d
cmp cl, 0x29
je 0x40e93d
test byte [esi + 0x44], 0x10
jne 0x40e93f
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e93d
cmp cl, 0x7d
jne 0x40e93f
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00403d20
jmp 0x40ea65
mov ecx, esi
call fcn.0040b340
jmp 0x40ea5e
cmp ecx, 0x5b
jne 0x40e9ff
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40e99d
cmp byte [eax], 0x5c
jne 0x40e99b
inc eax
cmp eax, ecx
je 0x40e987
test byte [esi + 0x44], 8
jne 0x40e987
mov cl, byte [eax]
cmp cl, 0x28
je 0x40e999
cmp cl, 0x29
je 0x40e999
test byte [esi + 0x44], 0x10
jne 0x40e99b
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e999
cmp cl, 0x7d
jne 0x40e99b
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00403d20
mov ecx, esi
call fcn.0040e280
cmp dword [esi + 0x40], 0x5d
je 0x40e9bb
push 4
call fcn.00410844
add esp, 4
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40e9f6
cmp byte [eax], 0x5c
jne 0x40e9f4
inc eax
cmp eax, ecx
je 0x40e9e0
test byte [esi + 0x44], 8
jne 0x40e9e0
mov cl, byte [eax]
cmp cl, 0x28
je 0x40e9f2
cmp cl, 0x29
je 0x40e9f2
test byte [esi + 0x44], 0x10
jne 0x40e9f4
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e9f2
cmp cl, 0x7d
jne 0x40e9f4
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00403d20
jmp 0x40ea5e
cmp ecx, 0x28
jne 0x40ea75
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40ea3f
cmp byte [eax], 0x5c
jne 0x40ea3d
inc eax
cmp eax, ecx
je 0x40ea29
test byte [esi + 0x44], 8
jne 0x40ea29
mov cl, byte [eax]
cmp cl, 0x28
je 0x40ea3b
cmp cl, 0x29
je 0x40ea3b
test byte [esi + 0x44], 0x10
jne 0x40ea3d
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40ea3b
cmp cl, 0x7d
jne 0x40ea3d
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00403d20
mov ecx, esi
call fcn.004043a0
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.004040d0
test bl, bl
je 0x40ea65
mov ecx, esi
call fcn.0040b3f0
cmp dword [esi + 0x40], 0xffffffff
mov al, 1
jne 0x40e773
pop ebx
pop edi
pop esi
ret
cmp ecx, 0x5e
jne 0x40ea8b
lea ecx, [esi + 0x18]
call fcn.00401c90
mov ecx, esi
call fcn.00403f50
jmp 0x40ea65
cmp ecx, 0x24
jne 0x40eaa1
lea ecx, [esi + 0x18]
call fcn.00401c30
mov ecx, esi
call fcn.00403f50
jmp 0x40ea65
cmp ecx, 0x2a
je 0x40eafd
cmp ecx, 0x2b
je 0x40eafd
cmp ecx, 0x3f
je 0x40eafd
cmp ecx, 0x7b
je 0x40eafd
cmp ecx, 0x7d
jne 0x40eacb
test dword [esi + 0x44], edx
jne 0x40eacb
push 6
call fcn.00410844
add esp, 4
jmp 0x40ea5e
cmp ecx, 0x5d
jne 0x40eae4
test dword [esi + 0x44], edx
jne 0x40eae4
push 4
call fcn.00410844
add esp, 4
jmp 0x40ea5e
movzx edx, byte [esi + 0x3e]
lea ecx, [esi + 0x18]
push edx
call fcn.0040a210
mov ecx, esi
call fcn.00403f50
jmp 0x40ea5e
push 0xa
call fcn.00410844
add esp, 4
jmp 0x40ea5e