Function at 0x40e060
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
push edi
mov edi, eax
xor ebx, ebx
xor al, al
cmp dword [edi + 0x40], 0xffffffff
je 0x40e3bd
jmp 0x40e077
xor ebx, ebx
mov ecx, dword [edi + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x40e3bd
cmp ecx, 0x29
jne 0x40e0aa
cmp dword [edi + 0x10], ebx
jne 0x40e3bd
test dword [edi + 0x44], edx
jne 0x40e0aa
push 5
call fcn.00418a3c
add esp, 4
jmp 0x40e3aa
cmp ecx, 0x2e
jne 0x40e147
push 0x14
call fcn.00419410
add esp, 4
cmp eax, ebx
je 0x40e0d9
mov dword [eax], vtable.std::tr1::_Node_base.0
mov dword [eax + 4], 5
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
jmp 0x40e0db
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, ebx
je 0x40e0f7
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 0x40e13b
cmp byte [eax], 0x5c
jne 0x40e139
inc eax
cmp eax, ecx
je 0x40e125
test byte [edi + 0x44], 8
jne 0x40e125
mov cl, byte [eax]
cmp cl, 0x28
je 0x40e137
cmp cl, 0x29
je 0x40e137
test byte [edi + 0x44], 0x10
jne 0x40e139
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e137
cmp cl, 0x7d
jne 0x40e139
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.0040d720
jmp 0x40e3aa
cmp ecx, 0x5c
jne 0x40e25d
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40e18b
cmp byte [eax], 0x5c
jne 0x40e189
inc eax
cmp eax, ecx
je 0x40e175
test byte [edi + 0x44], 8
jne 0x40e175
mov cl, byte [eax]
cmp cl, 0x28
je 0x40e187
cmp cl, 0x29
je 0x40e187
test byte [edi + 0x44], 0x10
jne 0x40e189
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e187
cmp cl, 0x7d
jne 0x40e189
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.0040d720
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x40e1f1
cmp byte [edi + 0x3e], 0x62
jne 0x40e1f1
lea esi, [edi + 0x18]
call fcn.0040f660
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40e1e5
cmp byte [eax], 0x5c
jne 0x40e1e3
inc eax
cmp eax, ecx
je 0x40e1cf
test byte [edi + 0x44], 8
jne 0x40e1cf
mov cl, byte [eax]
cmp cl, 0x28
je 0x40e1e1
cmp cl, 0x29
je 0x40e1e1
test byte [edi + 0x44], 0x10
jne 0x40e1e3
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e1e1
cmp cl, 0x7d
jne 0x40e1e3
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.0040d720
jmp 0x40e3b1
cmp eax, ebx
je 0x40e251
cmp byte [edi + 0x3e], 0x42
jne 0x40e251
lea esi, [edi + 0x18]
call fcn.0040f660
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40e245
cmp byte [eax], 0x5c
jne 0x40e243
inc eax
cmp eax, ecx
je 0x40e22f
test byte [edi + 0x44], 8
jne 0x40e22f
mov cl, byte [eax]
cmp cl, 0x28
je 0x40e241
cmp cl, 0x29
je 0x40e241
test byte [edi + 0x44], 0x10
jne 0x40e243
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e241
cmp cl, 0x7d
jne 0x40e243
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.0040d720
jmp 0x40e3b1
mov eax, edi
call fcn.0040f320
jmp 0x40e3aa
cmp ecx, 0x5b
jne 0x40e302
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40e2a1
cmp byte [eax], 0x5c
jne 0x40e29f
inc eax
cmp eax, ecx
je 0x40e28b
test byte [edi + 0x44], 8
jne 0x40e28b
mov cl, byte [eax]
cmp cl, 0x28
je 0x40e29d
cmp cl, 0x29
je 0x40e29d
test byte [edi + 0x44], 0x10
jne 0x40e29f
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e29d
cmp cl, 0x7d
jne 0x40e29f
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.0040d720
call fcn.0040f270
cmp dword [edi + 0x40], 0x5d
je 0x40e2bd
push 4
call fcn.00418a3c
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40e2f8
cmp byte [eax], 0x5c
jne 0x40e2f6
inc eax
cmp eax, ecx
je 0x40e2e2
test byte [edi + 0x44], 8
jne 0x40e2e2
mov cl, byte [eax]
cmp cl, 0x28
je 0x40e2f4
cmp cl, 0x29
je 0x40e2f4
test byte [edi + 0x44], 0x10
jne 0x40e2f6
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e2f4
cmp cl, 0x7d
jne 0x40e2f6
mov dword [edi], eax
inc dword [edi]
call fcn.0040d720
jmp 0x40e3aa
cmp ecx, 0x28
jne 0x40e3c1
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40e346
cmp byte [eax], 0x5c
jne 0x40e344
inc eax
cmp eax, ecx
je 0x40e330
test byte [edi + 0x44], 8
jne 0x40e330
mov cl, byte [eax]
cmp cl, 0x28
je 0x40e342
cmp cl, 0x29
je 0x40e342
test byte [edi + 0x44], 0x10
jne 0x40e344
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e342
cmp cl, 0x7d
jne 0x40e344
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.0040d720
mov eax, edi
call fcn.0040f3e0
cmp dword [edi + 0x40], 0x29
mov bl, al
je 0x40e366
push 5
call fcn.00418a3c
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40e3a1
cmp byte [eax], 0x5c
jne 0x40e39f
inc eax
cmp eax, ecx
je 0x40e38b
test byte [edi + 0x44], 8
jne 0x40e38b
mov cl, byte [eax]
cmp cl, 0x28
je 0x40e39d
cmp cl, 0x29
je 0x40e39d
test byte [edi + 0x44], 0x10
jne 0x40e39f
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e39d
cmp cl, 0x7d
jne 0x40e39f
mov dword [edi], eax
inc dword [edi]
call fcn.0040d720
test bl, bl
je 0x40e3b1
mov eax, edi
call fcn.0040f490
cmp dword [edi + 0x40], 0xffffffff
mov al, 1
jne 0x40e075
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x40e3d7
lea esi, [edi + 0x18]
call fcn.0040f5c0
mov eax, edi
call fcn.0040e010
jmp 0x40e3b1
cmp ecx, 0x24
jne 0x40e3ed
lea esi, [edi + 0x18]
call fcn.0040f610
mov eax, edi
call fcn.0040e010
jmp 0x40e3b1
cmp ecx, 0x2a
je 0x40e449
cmp ecx, 0x2b
je 0x40e449
cmp ecx, 0x3f
je 0x40e449
cmp ecx, 0x7b
je 0x40e449
cmp ecx, 0x7d
jne 0x40e417
test dword [edi + 0x44], edx
jne 0x40e417
push 6
call fcn.00418a3c
add esp, 4
jmp 0x40e3aa
cmp ecx, 0x5d
jne 0x40e430
test dword [edi + 0x44], edx
jne 0x40e430
push 4
call fcn.00418a3c
add esp, 4
jmp 0x40e3aa
movzx edx, byte [edi + 0x3e]
lea eax, [edi + 0x18]
push edx
call fcn.0040f6b0
mov eax, edi
call fcn.0040e010
jmp 0x40e3aa
push 0xa
call fcn.00418a3c
add esp, 4
jmp 0x40e3aa