Function at 0x40ded0
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 0x40e1e2
push ebx
mov ecx, dword [esi + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x40e1e1
cmp ecx, 0x29
jne 0x40df16
cmp dword [esi + 0x10], edi
jne 0x40e1e1
test dword [esi + 0x44], edx
jne 0x40df16
push 5
call fcn.00410844
add esp, 4
jmp 0x40e1ce
cmp ecx, 0x2e
jne 0x40dfb3
push 0x14
call fcn.00411e1c
add esp, 4
cmp eax, edi
je 0x40df45
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 0x40df47
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 0x40df63
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 0x40dfa7
cmp byte [eax], 0x5c
jne 0x40dfa5
inc eax
cmp eax, ecx
je 0x40df91
test byte [esi + 0x44], 8
jne 0x40df91
mov cl, byte [eax]
cmp cl, 0x28
je 0x40dfa3
cmp cl, 0x29
je 0x40dfa3
test byte [esi + 0x44], 0x10
jne 0x40dfa5
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40dfa3
cmp cl, 0x7d
jne 0x40dfa5
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00403d20
jmp 0x40e1ce
cmp ecx, 0x5c
jne 0x40e0c9
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40dff7
cmp byte [eax], 0x5c
jne 0x40dff5
inc eax
cmp eax, ecx
je 0x40dfe1
test byte [esi + 0x44], 8
jne 0x40dfe1
mov cl, byte [eax]
cmp cl, 0x28
je 0x40dff3
cmp cl, 0x29
je 0x40dff3
test byte [esi + 0x44], 0x10
jne 0x40dff5
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40dff3
cmp cl, 0x7d
jne 0x40dff5
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00403d20
mov eax, dword [esi + 0x44]
and eax, 0x80
je 0x40e05d
cmp byte [esi + 0x3e], 0x62
jne 0x40e05d
lea ecx, [esi + 0x18]
call fcn.00401cf0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40e051
cmp byte [eax], 0x5c
jne 0x40e04f
inc eax
cmp eax, ecx
je 0x40e03b
test byte [esi + 0x44], 8
jne 0x40e03b
mov cl, byte [eax]
cmp cl, 0x28
je 0x40e04d
cmp cl, 0x29
je 0x40e04d
test byte [esi + 0x44], 0x10
jne 0x40e04f
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e04d
cmp cl, 0x7d
jne 0x40e04f
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00403d20
jmp 0x40e1d5
cmp eax, edi
je 0x40e0bd
cmp byte [esi + 0x3e], 0x42
jne 0x40e0bd
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 0x40e0b1
cmp byte [eax], 0x5c
jne 0x40e0af
inc eax
cmp eax, ecx
je 0x40e09b
test byte [esi + 0x44], 8
jne 0x40e09b
mov cl, byte [eax]
cmp cl, 0x28
je 0x40e0ad
cmp cl, 0x29
je 0x40e0ad
test byte [esi + 0x44], 0x10
jne 0x40e0af
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e0ad
cmp cl, 0x7d
jne 0x40e0af
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00403d20
jmp 0x40e1d5
mov ecx, esi
call fcn.0040b290
jmp 0x40e1ce
cmp ecx, 0x5b
jne 0x40e16f
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40e10d
cmp byte [eax], 0x5c
jne 0x40e10b
inc eax
cmp eax, ecx
je 0x40e0f7
test byte [esi + 0x44], 8
jne 0x40e0f7
mov cl, byte [eax]
cmp cl, 0x28
je 0x40e109
cmp cl, 0x29
je 0x40e109
test byte [esi + 0x44], 0x10
jne 0x40e10b
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e109
cmp cl, 0x7d
jne 0x40e10b
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00403d20
mov ecx, esi
call fcn.0040d8d0
cmp dword [esi + 0x40], 0x5d
je 0x40e12b
push 4
call fcn.00410844
add esp, 4
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40e166
cmp byte [eax], 0x5c
jne 0x40e164
inc eax
cmp eax, ecx
je 0x40e150
test byte [esi + 0x44], 8
jne 0x40e150
mov cl, byte [eax]
cmp cl, 0x28
je 0x40e162
cmp cl, 0x29
je 0x40e162
test byte [esi + 0x44], 0x10
jne 0x40e164
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e162
cmp cl, 0x7d
jne 0x40e164
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00403d20
jmp 0x40e1ce
cmp ecx, 0x28
jne 0x40e1e5
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40e1af
cmp byte [eax], 0x5c
jne 0x40e1ad
inc eax
cmp eax, ecx
je 0x40e199
test byte [esi + 0x44], 8
jne 0x40e199
mov cl, byte [eax]
cmp cl, 0x28
je 0x40e1ab
cmp cl, 0x29
je 0x40e1ab
test byte [esi + 0x44], 0x10
jne 0x40e1ad
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e1ab
cmp cl, 0x7d
jne 0x40e1ad
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00403d20
mov ecx, esi
call fcn.00404140
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.004040d0
test bl, bl
je 0x40e1d5
mov ecx, esi
call fcn.0040b3f0
cmp dword [esi + 0x40], 0xffffffff
mov al, 1
jne 0x40dee3
pop ebx
pop edi
pop esi
ret
cmp ecx, 0x5e
jne 0x40e1fb
lea ecx, [esi + 0x18]
call fcn.00401c90
mov ecx, esi
call fcn.00403f50
jmp 0x40e1d5
cmp ecx, 0x24
jne 0x40e211
lea ecx, [esi + 0x18]
call fcn.00401c30
mov ecx, esi
call fcn.00403f50
jmp 0x40e1d5
cmp ecx, 0x2a
je 0x40e26d
cmp ecx, 0x2b
je 0x40e26d
cmp ecx, 0x3f
je 0x40e26d
cmp ecx, 0x7b
je 0x40e26d
cmp ecx, 0x7d
jne 0x40e23b
test dword [esi + 0x44], edx
jne 0x40e23b
push 6
call fcn.00410844
add esp, 4
jmp 0x40e1ce
cmp ecx, 0x5d
jne 0x40e254
test dword [esi + 0x44], edx
jne 0x40e254
push 4
call fcn.00410844
add esp, 4
jmp 0x40e1ce
movzx edx, byte [esi + 0x3e]
lea ecx, [esi + 0x18]
push edx
call fcn.0040a210
mov ecx, esi
call fcn.00403f50
jmp 0x40e1ce
push 0xa
call fcn.00410844
add esp, 4
jmp 0x40e1ce