Function at 0x405fd0
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 0x40632d
jmp 0x405fe7
xor ebx, ebx
mov ecx, dword [edi + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x40632d
cmp ecx, 0x29
jne 0x40601a
cmp dword [edi + 0x10], ebx
jne 0x40632d
test dword [edi + 0x44], edx
jne 0x40601a
push 5
call fcn.0040d1c6
add esp, 4
jmp 0x40631a
cmp ecx, 0x2e
jne 0x4060b7
push 0x14
call fcn.0040e5ac
add esp, 4
cmp eax, ebx
je 0x406049
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 0x40604b
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 0x406067
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 0x4060ab
cmp byte [eax], 0x5c
jne 0x4060a9
inc eax
cmp eax, ecx
je 0x406095
test byte [edi + 0x44], 8
jne 0x406095
mov cl, byte [eax]
cmp cl, 0x28
je 0x4060a7
cmp cl, 0x29
je 0x4060a7
test byte [edi + 0x44], 0x10
jne 0x4060a9
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4060a7
cmp cl, 0x7d
jne 0x4060a9
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00404090
jmp 0x40631a
cmp ecx, 0x5c
jne 0x4061cd
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4060fb
cmp byte [eax], 0x5c
jne 0x4060f9
inc eax
cmp eax, ecx
je 0x4060e5
test byte [edi + 0x44], 8
jne 0x4060e5
mov cl, byte [eax]
cmp cl, 0x28
je 0x4060f7
cmp cl, 0x29
je 0x4060f7
test byte [edi + 0x44], 0x10
jne 0x4060f9
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4060f7
cmp cl, 0x7d
jne 0x4060f9
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00404090
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x406161
cmp byte [edi + 0x3e], 0x62
jne 0x406161
lea esi, [edi + 0x18]
call fcn.00407470
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x406155
cmp byte [eax], 0x5c
jne 0x406153
inc eax
cmp eax, ecx
je 0x40613f
test byte [edi + 0x44], 8
jne 0x40613f
mov cl, byte [eax]
cmp cl, 0x28
je 0x406151
cmp cl, 0x29
je 0x406151
test byte [edi + 0x44], 0x10
jne 0x406153
mov cl, byte [eax]
cmp cl, 0x7b
je 0x406151
cmp cl, 0x7d
jne 0x406153
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00404090
jmp 0x406321
cmp eax, ebx
je 0x4061c1
cmp byte [edi + 0x3e], 0x42
jne 0x4061c1
lea esi, [edi + 0x18]
call fcn.00407470
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4061b5
cmp byte [eax], 0x5c
jne 0x4061b3
inc eax
cmp eax, ecx
je 0x40619f
test byte [edi + 0x44], 8
jne 0x40619f
mov cl, byte [eax]
cmp cl, 0x28
je 0x4061b1
cmp cl, 0x29
je 0x4061b1
test byte [edi + 0x44], 0x10
jne 0x4061b3
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4061b1
cmp cl, 0x7d
jne 0x4061b3
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00404090
jmp 0x406321
mov eax, edi
call fcn.00407810
jmp 0x40631a
cmp ecx, 0x5b
jne 0x406272
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x406211
cmp byte [eax], 0x5c
jne 0x40620f
inc eax
cmp eax, ecx
je 0x4061fb
test byte [edi + 0x44], 8
jne 0x4061fb
mov cl, byte [eax]
cmp cl, 0x28
je 0x40620d
cmp cl, 0x29
je 0x40620d
test byte [edi + 0x44], 0x10
jne 0x40620f
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40620d
cmp cl, 0x7d
jne 0x40620f
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00404090
call fcn.00407730
cmp dword [edi + 0x40], 0x5d
je 0x40622d
push 4
call fcn.0040d1c6
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x406268
cmp byte [eax], 0x5c
jne 0x406266
inc eax
cmp eax, ecx
je 0x406252
test byte [edi + 0x44], 8
jne 0x406252
mov cl, byte [eax]
cmp cl, 0x28
je 0x406264
cmp cl, 0x29
je 0x406264
test byte [edi + 0x44], 0x10
jne 0x406266
mov cl, byte [eax]
cmp cl, 0x7b
je 0x406264
cmp cl, 0x7d
jne 0x406266
mov dword [edi], eax
inc dword [edi]
call fcn.00404090
jmp 0x40631a
cmp ecx, 0x28
jne 0x406331
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4062b6
cmp byte [eax], 0x5c
jne 0x4062b4
inc eax
cmp eax, ecx
je 0x4062a0
test byte [edi + 0x44], 8
jne 0x4062a0
mov cl, byte [eax]
cmp cl, 0x28
je 0x4062b2
cmp cl, 0x29
je 0x4062b2
test byte [edi + 0x44], 0x10
jne 0x4062b4
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4062b2
cmp cl, 0x7d
jne 0x4062b4
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00404090
mov eax, edi
call fcn.004078b0
cmp dword [edi + 0x40], 0x29
mov bl, al
je 0x4062d6
push 5
call fcn.0040d1c6
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x406311
cmp byte [eax], 0x5c
jne 0x40630f
inc eax
cmp eax, ecx
je 0x4062fb
test byte [edi + 0x44], 8
jne 0x4062fb
mov cl, byte [eax]
cmp cl, 0x28
je 0x40630d
cmp cl, 0x29
je 0x40630d
test byte [edi + 0x44], 0x10
jne 0x40630f
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40630d
cmp cl, 0x7d
jne 0x40630f
mov dword [edi], eax
inc dword [edi]
call fcn.00404090
test bl, bl
je 0x406321
mov eax, edi
call fcn.00407960
cmp dword [edi + 0x40], 0xffffffff
mov al, 1
jne 0x405fe5
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x406347
lea esi, [edi + 0x18]
call fcn.00407a80
mov eax, edi
call fcn.00405790
jmp 0x406321
cmp ecx, 0x24
jne 0x40635d
lea esi, [edi + 0x18]
call fcn.00407420
mov eax, edi
call fcn.00405790
jmp 0x406321
cmp ecx, 0x2a
je 0x4063b9
cmp ecx, 0x2b
je 0x4063b9
cmp ecx, 0x3f
je 0x4063b9
cmp ecx, 0x7b
je 0x4063b9
cmp ecx, 0x7d
jne 0x406387
test dword [edi + 0x44], edx
jne 0x406387
push 6
call fcn.0040d1c6
add esp, 4
jmp 0x40631a
cmp ecx, 0x5d
jne 0x4063a0
test dword [edi + 0x44], edx
jne 0x4063a0
push 4
call fcn.0040d1c6
add esp, 4
jmp 0x40631a
movzx edx, byte [edi + 0x3e]
lea ecx, [edi + 0x18]
push edx
call fcn.00407ad0
mov eax, edi
call fcn.00405790
jmp 0x40631a
push 0xa
call fcn.0040d1c6
add esp, 4
jmp 0x40631a