Function at 0x407e70
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 0x408218
jmp 0x407e87
xor ebx, ebx
mov ecx, dword [edi + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x408218
cmp ecx, 0x29
jne 0x407eba
cmp dword [edi + 0x10], ebx
jne 0x408218
test dword [edi + 0x44], edx
jne 0x407eba
push 5
call fcn.0040ba30
add esp, 4
jmp 0x408205
cmp ecx, 0x2e
jne 0x407f57
push 0x14
call fcn.0040ccf2
add esp, 4
cmp eax, ebx
je 0x407ee9
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 0x407eeb
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 0x407f07
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 0x407f4b
cmp byte [eax], 0x5c
jne 0x407f49
inc eax
cmp eax, ecx
je 0x407f35
test byte [edi + 0x44], 8
jne 0x407f35
mov cl, byte [eax]
cmp cl, 0x28
je 0x407f47
cmp cl, 0x29
je 0x407f47
test byte [edi + 0x44], 0x10
jne 0x407f49
mov cl, byte [eax]
cmp cl, 0x7b
je 0x407f47
cmp cl, 0x7d
jne 0x407f49
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00406f70
jmp 0x408205
cmp ecx, 0x5c
jne 0x4080b8
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x407f9b
cmp byte [eax], 0x5c
jne 0x407f99
inc eax
cmp eax, ecx
je 0x407f85
test byte [edi + 0x44], 8
jne 0x407f85
mov cl, byte [eax]
cmp cl, 0x28
je 0x407f97
cmp cl, 0x29
je 0x407f97
test byte [edi + 0x44], 0x10
jne 0x407f99
mov cl, byte [eax]
cmp cl, 0x7b
je 0x407f97
cmp cl, 0x7d
jne 0x407f99
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00406f70
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x40804c
cmp byte [edi + 0x3e], 0x62
jne 0x40804c
push 0x14
call fcn.0040ccf2
add esp, 4
cmp eax, ebx
je 0x407fe0
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 0x407fe2
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 0x407ffe
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 0x408042
cmp byte [eax], 0x5c
jne 0x408040
inc eax
cmp eax, ecx
je 0x40802c
test byte [edi + 0x44], 8
jne 0x40802c
mov cl, byte [eax]
cmp cl, 0x28
je 0x40803e
cmp cl, 0x29
je 0x40803e
test byte [edi + 0x44], 0x10
jne 0x408040
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40803e
cmp cl, 0x7d
jne 0x408040
mov dword [edi], eax
inc dword [edi]
call fcn.00406f70
jmp 0x40820c
cmp eax, ebx
je 0x4080ac
cmp byte [edi + 0x3e], 0x42
jne 0x4080ac
lea esi, [edi + 0x18]
call fcn.004093d0
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4080a0
cmp byte [eax], 0x5c
jne 0x40809e
inc eax
cmp eax, ecx
je 0x40808a
test byte [edi + 0x44], 8
jne 0x40808a
mov cl, byte [eax]
cmp cl, 0x28
je 0x40809c
cmp cl, 0x29
je 0x40809c
test byte [edi + 0x44], 0x10
jne 0x40809e
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40809c
cmp cl, 0x7d
jne 0x40809e
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00406f70
jmp 0x40820c
mov eax, edi
call fcn.00409080
jmp 0x408205
cmp ecx, 0x5b
jne 0x40815d
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4080fc
cmp byte [eax], 0x5c
jne 0x4080fa
inc eax
cmp eax, ecx
je 0x4080e6
test byte [edi + 0x44], 8
jne 0x4080e6
mov cl, byte [eax]
cmp cl, 0x28
je 0x4080f8
cmp cl, 0x29
je 0x4080f8
test byte [edi + 0x44], 0x10
jne 0x4080fa
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4080f8
cmp cl, 0x7d
jne 0x4080fa
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00406f70
call fcn.00408fa0
cmp dword [edi + 0x40], 0x5d
je 0x408118
push 4
call fcn.0040ba30
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x408153
cmp byte [eax], 0x5c
jne 0x408151
inc eax
cmp eax, ecx
je 0x40813d
test byte [edi + 0x44], 8
jne 0x40813d
mov cl, byte [eax]
cmp cl, 0x28
je 0x40814f
cmp cl, 0x29
je 0x40814f
test byte [edi + 0x44], 0x10
jne 0x408151
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40814f
cmp cl, 0x7d
jne 0x408151
mov dword [edi], eax
inc dword [edi]
call fcn.00406f70
jmp 0x408205
cmp ecx, 0x28
jne 0x40821c
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4081a1
cmp byte [eax], 0x5c
jne 0x40819f
inc eax
cmp eax, ecx
je 0x40818b
test byte [edi + 0x44], 8
jne 0x40818b
mov cl, byte [eax]
cmp cl, 0x28
je 0x40819d
cmp cl, 0x29
je 0x40819d
test byte [edi + 0x44], 0x10
jne 0x40819f
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40819d
cmp cl, 0x7d
jne 0x40819f
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00406f70
mov eax, edi
call fcn.00409120
cmp dword [edi + 0x40], 0x29
mov bl, al
je 0x4081c1
push 5
call fcn.0040ba30
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4081fc
cmp byte [eax], 0x5c
jne 0x4081fa
inc eax
cmp eax, ecx
je 0x4081e6
test byte [edi + 0x44], 8
jne 0x4081e6
mov cl, byte [eax]
cmp cl, 0x28
je 0x4081f8
cmp cl, 0x29
je 0x4081f8
test byte [edi + 0x44], 0x10
jne 0x4081fa
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4081f8
cmp cl, 0x7d
jne 0x4081fa
mov dword [edi], eax
inc dword [edi]
call fcn.00406f70
test bl, bl
je 0x40820c
mov eax, edi
call fcn.004091d0
cmp dword [edi + 0x40], 0xffffffff
mov al, 1
jne 0x407e85
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x408232
lea esi, [edi + 0x18]
call fcn.00409330
mov eax, edi
call fcn.00407e20
jmp 0x40820c
cmp ecx, 0x24
jne 0x408248
lea esi, [edi + 0x18]
call fcn.00409380
mov eax, edi
call fcn.00407e20
jmp 0x40820c
cmp ecx, 0x2a
je 0x4082a4
cmp ecx, 0x2b
je 0x4082a4
cmp ecx, 0x3f
je 0x4082a4
cmp ecx, 0x7b
je 0x4082a4
cmp ecx, 0x7d
jne 0x408272
test dword [edi + 0x44], edx
jne 0x408272
push 6
call fcn.0040ba30
add esp, 4
jmp 0x408205
cmp ecx, 0x5d
jne 0x40828b
test dword [edi + 0x44], edx
jne 0x40828b
push 4
call fcn.0040ba30
add esp, 4
jmp 0x408205
movzx eax, byte [edi + 0x3e]
lea ecx, [edi + 0x18]
push eax
call fcn.00409420
mov eax, edi
call fcn.00407e20
jmp 0x408205
push 0xa
call fcn.0040ba30
add esp, 4
jmp 0x408205