Function at 0x407eb0
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 0x408258
jmp 0x407ec7
xor ebx, ebx
mov ecx, dword [edi + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x408258
cmp ecx, 0x29
jne 0x407efa
cmp dword [edi + 0x10], ebx
jne 0x408258
test dword [edi + 0x44], edx
jne 0x407efa
push 5
call fcn.0040ba3d
add esp, 4
jmp 0x408245
cmp ecx, 0x2e
jne 0x407f97
push 0x14
call fcn.0040cd82
add esp, 4
cmp eax, ebx
je 0x407f29
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 0x407f2b
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 0x407f47
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 0x407f8b
cmp byte [eax], 0x5c
jne 0x407f89
inc eax
cmp eax, ecx
je 0x407f75
test byte [edi + 0x44], 8
jne 0x407f75
mov cl, byte [eax]
cmp cl, 0x28
je 0x407f87
cmp cl, 0x29
je 0x407f87
test byte [edi + 0x44], 0x10
jne 0x407f89
mov cl, byte [eax]
cmp cl, 0x7b
je 0x407f87
cmp cl, 0x7d
jne 0x407f89
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00406fb0
jmp 0x408245
cmp ecx, 0x5c
jne 0x4080f8
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x407fdb
cmp byte [eax], 0x5c
jne 0x407fd9
inc eax
cmp eax, ecx
je 0x407fc5
test byte [edi + 0x44], 8
jne 0x407fc5
mov cl, byte [eax]
cmp cl, 0x28
je 0x407fd7
cmp cl, 0x29
je 0x407fd7
test byte [edi + 0x44], 0x10
jne 0x407fd9
mov cl, byte [eax]
cmp cl, 0x7b
je 0x407fd7
cmp cl, 0x7d
jne 0x407fd9
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00406fb0
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x40808c
cmp byte [edi + 0x3e], 0x62
jne 0x40808c
push 0x14
call fcn.0040cd82
add esp, 4
cmp eax, ebx
je 0x408020
mov dword [eax], vtable.std::tr1::_Node_base.0
mov dword [eax + 4], 4
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
jmp 0x408022
xor eax, eax
mov edx, dword [edi + 0x1c]
mov dword [eax + 0x10], edx
mov ecx, dword [edi + 0x1c]
mov ecx, dword [ecx + 0xc]
cmp ecx, ebx
je 0x40803e
mov dword [eax + 0xc], ecx
mov edx, dword [edi + 0x1c]
mov ecx, dword [edx + 0xc]
mov dword [ecx + 0x10], eax
mov edx, dword [edi + 0x1c]
mov dword [edx + 0xc], eax
mov dword [edi + 0x1c], eax
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x408082
cmp byte [eax], 0x5c
jne 0x408080
inc eax
cmp eax, ecx
je 0x40806c
test byte [edi + 0x44], 8
jne 0x40806c
mov cl, byte [eax]
cmp cl, 0x28
je 0x40807e
cmp cl, 0x29
je 0x40807e
test byte [edi + 0x44], 0x10
jne 0x408080
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40807e
cmp cl, 0x7d
jne 0x408080
mov dword [edi], eax
inc dword [edi]
call fcn.00406fb0
jmp 0x40824c
cmp eax, ebx
je 0x4080ec
cmp byte [edi + 0x3e], 0x42
jne 0x4080ec
lea esi, [edi + 0x18]
call fcn.00409400
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4080e0
cmp byte [eax], 0x5c
jne 0x4080de
inc eax
cmp eax, ecx
je 0x4080ca
test byte [edi + 0x44], 8
jne 0x4080ca
mov cl, byte [eax]
cmp cl, 0x28
je 0x4080dc
cmp cl, 0x29
je 0x4080dc
test byte [edi + 0x44], 0x10
jne 0x4080de
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4080dc
cmp cl, 0x7d
jne 0x4080de
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00406fb0
jmp 0x40824c
mov eax, edi
call fcn.004090b0
jmp 0x408245
cmp ecx, 0x5b
jne 0x40819d
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40813c
cmp byte [eax], 0x5c
jne 0x40813a
inc eax
cmp eax, ecx
je 0x408126
test byte [edi + 0x44], 8
jne 0x408126
mov cl, byte [eax]
cmp cl, 0x28
je 0x408138
cmp cl, 0x29
je 0x408138
test byte [edi + 0x44], 0x10
jne 0x40813a
mov cl, byte [eax]
cmp cl, 0x7b
je 0x408138
cmp cl, 0x7d
jne 0x40813a
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00406fb0
call fcn.00408fd0
cmp dword [edi + 0x40], 0x5d
je 0x408158
push 4
call fcn.0040ba3d
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x408193
cmp byte [eax], 0x5c
jne 0x408191
inc eax
cmp eax, ecx
je 0x40817d
test byte [edi + 0x44], 8
jne 0x40817d
mov cl, byte [eax]
cmp cl, 0x28
je 0x40818f
cmp cl, 0x29
je 0x40818f
test byte [edi + 0x44], 0x10
jne 0x408191
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40818f
cmp cl, 0x7d
jne 0x408191
mov dword [edi], eax
inc dword [edi]
call fcn.00406fb0
jmp 0x408245
cmp ecx, 0x28
jne 0x40825c
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4081e1
cmp byte [eax], 0x5c
jne 0x4081df
inc eax
cmp eax, ecx
je 0x4081cb
test byte [edi + 0x44], 8
jne 0x4081cb
mov cl, byte [eax]
cmp cl, 0x28
je 0x4081dd
cmp cl, 0x29
je 0x4081dd
test byte [edi + 0x44], 0x10
jne 0x4081df
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4081dd
cmp cl, 0x7d
jne 0x4081df
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00406fb0
mov eax, edi
call fcn.00409150
cmp dword [edi + 0x40], 0x29
mov bl, al
je 0x408201
push 5
call fcn.0040ba3d
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40823c
cmp byte [eax], 0x5c
jne 0x40823a
inc eax
cmp eax, ecx
je 0x408226
test byte [edi + 0x44], 8
jne 0x408226
mov cl, byte [eax]
cmp cl, 0x28
je 0x408238
cmp cl, 0x29
je 0x408238
test byte [edi + 0x44], 0x10
jne 0x40823a
mov cl, byte [eax]
cmp cl, 0x7b
je 0x408238
cmp cl, 0x7d
jne 0x40823a
mov dword [edi], eax
inc dword [edi]
call fcn.00406fb0
test bl, bl
je 0x40824c
mov eax, edi
call fcn.00409200
cmp dword [edi + 0x40], 0xffffffff
mov al, 1
jne 0x407ec5
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x408272
lea esi, [edi + 0x18]
call fcn.00409360
mov eax, edi
call fcn.00407e60
jmp 0x40824c
cmp ecx, 0x24
jne 0x408288
lea esi, [edi + 0x18]
call fcn.004093b0
mov eax, edi
call fcn.00407e60
jmp 0x40824c
cmp ecx, 0x2a
je 0x4082e4
cmp ecx, 0x2b
je 0x4082e4
cmp ecx, 0x3f
je 0x4082e4
cmp ecx, 0x7b
je 0x4082e4
cmp ecx, 0x7d
jne 0x4082b2
test dword [edi + 0x44], edx
jne 0x4082b2
push 6
call fcn.0040ba3d
add esp, 4
jmp 0x408245
cmp ecx, 0x5d
jne 0x4082cb
test dword [edi + 0x44], edx
jne 0x4082cb
push 4
call fcn.0040ba3d
add esp, 4
jmp 0x408245
movzx eax, byte [edi + 0x3e]
lea ecx, [edi + 0x18]
push eax
call fcn.00409450
mov eax, edi
call fcn.00407e60
jmp 0x408245
push 0xa
call fcn.0040ba3d
add esp, 4
jmp 0x408245