Function at 0x40eb10
Capabilities:
Parse credit card information

Disassembly:
push ecx
push ebx
push ebp
push esi
push edi
mov edi, eax
xor ebp, ebp
xor al, al
cmp dword [edi + 0x40], 0xffffffff
je 0x40edea
mov ecx, dword [edi + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x40edea
cmp ecx, 0x29
jne 0x40eb58
cmp dword [edi + 0x10], ebp
jne 0x40edea
test dword [edi + 0x44], edx
jne 0x40eb58
push 5
call fcn.00507c1a
add esp, 4
jmp 0x40edd7
cmp ecx, 0x2e
jne 0x40ebf5
push 0x14
call fcn.0053cf1e
add esp, 4
cmp eax, ebp
je 0x40eb87
mov dword [eax], vtable.std::tr1::_Node_base.0
mov dword [eax + 4], 5
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
jmp 0x40eb89
xor eax, eax
mov ecx, dword [edi + 0x1c]
mov dword [eax + 0x10], ecx
mov edx, dword [edi + 0x1c]
mov ecx, dword [edx + 0xc]
cmp ecx, ebp
je 0x40eba5
mov dword [eax + 0xc], ecx
mov ecx, dword [edi + 0x1c]
mov edx, dword [ecx + 0xc]
mov dword [edx + 0x10], eax
mov ecx, dword [edi + 0x1c]
mov dword [ecx + 0xc], eax
mov dword [edi + 0x1c], eax
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40ebe9
cmp byte [eax], 0x5c
jne 0x40ebe7
inc eax
cmp eax, ecx
je 0x40ebd3
test byte [edi + 0x44], 8
jne 0x40ebd3
mov cl, byte [eax]
cmp cl, 0x28
je 0x40ebe5
cmp cl, 0x29
je 0x40ebe5
test byte [edi + 0x44], 0x10
jne 0x40ebe7
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40ebe5
cmp cl, 0x7d
jne 0x40ebe7
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.0040d990
jmp 0x40edd7
cmp ecx, 0x5c
jne 0x40ecd3
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40ec39
cmp byte [eax], 0x5c
jne 0x40ec37
inc eax
cmp eax, ecx
je 0x40ec23
test byte [edi + 0x44], 8
jne 0x40ec23
mov cl, byte [eax]
cmp cl, 0x28
je 0x40ec35
cmp cl, 0x29
je 0x40ec35
test byte [edi + 0x44], 0x10
jne 0x40ec37
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40ec35
cmp cl, 0x7d
jne 0x40ec37
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.0040d990
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x40ec9f
cmp byte [edi + 0x3e], 0x62
jne 0x40ec9f
lea esi, [edi + 0x18]
call fcn.004102c0
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40ec93
cmp byte [eax], 0x5c
jne 0x40ec91
inc eax
cmp eax, ecx
je 0x40ec7d
test byte [edi + 0x44], 8
jne 0x40ec7d
mov cl, byte [eax]
cmp cl, 0x28
je 0x40ec8f
cmp cl, 0x29
je 0x40ec8f
test byte [edi + 0x44], 0x10
jne 0x40ec91
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40ec8f
cmp cl, 0x7d
jne 0x40ec91
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.0040d990
jmp 0x40edde
cmp eax, ebp
je 0x40ecc7
cmp byte [edi + 0x3e], 0x42
jne 0x40ecc7
lea esi, [edi + 0x18]
call fcn.004102c0
mov eax, dword [edi + 0x1c]
or dword [eax + 8], 1
add eax, 8
mov eax, edi
call fcn.0040eac0
jmp 0x40edde
mov eax, edi
call fcn.0040ff90
jmp 0x40edd7
cmp ecx, 0x5b
jne 0x40ed75
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40ed17
cmp byte [eax], 0x5c
jne 0x40ed15
inc eax
cmp eax, ecx
je 0x40ed01
test byte [edi + 0x44], 8
jne 0x40ed01
mov cl, byte [eax]
cmp cl, 0x28
je 0x40ed13
cmp cl, 0x29
je 0x40ed13
test byte [edi + 0x44], 0x10
jne 0x40ed15
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40ed13
cmp cl, 0x7d
jne 0x40ed15
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.0040d990
call fcn.0040fee0
cmp dword [edi + 0x40], 0x5d
je 0x40ed33
push 4
call fcn.00507c1a
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40ed6e
cmp byte [eax], 0x5c
jne 0x40ed6c
inc eax
cmp eax, ecx
je 0x40ed58
test byte [edi + 0x44], 8
jne 0x40ed58
mov cl, byte [eax]
cmp cl, 0x28
je 0x40ed6a
cmp cl, 0x29
je 0x40ed6a
test byte [edi + 0x44], 0x10
jne 0x40ed6c
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40ed6a
cmp cl, 0x7d
jne 0x40ed6c
mov dword [edi], eax
inc dword [edi]
call fcn.0040d990
jmp 0x40edd7
cmp ecx, 0x28
jne 0x40edf0
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40edb5
cmp byte [eax], 0x5c
jne 0x40edb3
inc eax
cmp eax, ecx
je 0x40ed9f
test byte [edi + 0x44], 8
jne 0x40ed9f
mov cl, byte [eax]
cmp cl, 0x28
je 0x40edb1
cmp cl, 0x29
je 0x40edb1
test byte [edi + 0x44], 0x10
jne 0x40edb3
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40edb1
cmp cl, 0x7d
jne 0x40edb3
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.0040d990
mov eax, edi
call fcn.00410040
mov bl, al
push 0x29
mov ecx, 5
mov eax, edi
call fcn.0040fe80
test bl, bl
je 0x40edde
mov eax, edi
call fcn.004100f0
cmp dword [edi + 0x40], 0xffffffff
mov al, 1
jne 0x40eb25
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
cmp ecx, 0x5e
jne 0x40ee06
lea esi, [edi + 0x18]
call fcn.00410220
mov eax, edi
call fcn.0040eac0
jmp 0x40edde
cmp ecx, 0x24
jne 0x40ee1c
lea esi, [edi + 0x18]
call fcn.00410270
mov eax, edi
call fcn.0040eac0
jmp 0x40edde
cmp ecx, 0x2a
je 0x40ee78
cmp ecx, 0x2b
je 0x40ee78
cmp ecx, 0x3f
je 0x40ee78
cmp ecx, 0x7b
je 0x40ee78
cmp ecx, 0x7d
jne 0x40ee46
test dword [edi + 0x44], edx
jne 0x40ee46
push 6
call fcn.00507c1a
add esp, 4
jmp 0x40edd7
cmp ecx, 0x5d
jne 0x40ee5f
test dword [edi + 0x44], edx
jne 0x40ee5f
push 4
call fcn.00507c1a
add esp, 4
jmp 0x40edd7
movzx edx, byte [edi + 0x3e]
push edx
lea eax, [edi + 0x18]
call fcn.00410310
mov eax, edi
call fcn.0040eac0
jmp 0x40edd7
push 0xa
call fcn.00507c1a
add esp, 4
jmp 0x40edd7