Function at 0x4057e0
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 0x405b3d
jmp 0x4057f7
xor ebx, ebx
mov ecx, dword [edi + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x405b3d
cmp ecx, 0x29
jne 0x40582a
cmp dword [edi + 0x10], ebx
jne 0x405b3d
test dword [edi + 0x44], edx
jne 0x40582a
push 5
call fcn.0040d1c6
add esp, 4
jmp 0x405b2a
cmp ecx, 0x2e
jne 0x4058c7
push 0x14
call fcn.0040e5ac
add esp, 4
cmp eax, ebx
je 0x405859
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 0x40585b
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 0x405877
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 0x4058bb
cmp byte [eax], 0x5c
jne 0x4058b9
inc eax
cmp eax, ecx
je 0x4058a5
test byte [edi + 0x44], 8
jne 0x4058a5
mov cl, byte [eax]
cmp cl, 0x28
je 0x4058b7
cmp cl, 0x29
je 0x4058b7
test byte [edi + 0x44], 0x10
jne 0x4058b9
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4058b7
cmp cl, 0x7d
jne 0x4058b9
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00404090
jmp 0x405b2a
cmp ecx, 0x5c
jne 0x4059dd
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40590b
cmp byte [eax], 0x5c
jne 0x405909
inc eax
cmp eax, ecx
je 0x4058f5
test byte [edi + 0x44], 8
jne 0x4058f5
mov cl, byte [eax]
cmp cl, 0x28
je 0x405907
cmp cl, 0x29
je 0x405907
test byte [edi + 0x44], 0x10
jne 0x405909
mov cl, byte [eax]
cmp cl, 0x7b
je 0x405907
cmp cl, 0x7d
jne 0x405909
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00404090
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x405971
cmp byte [edi + 0x3e], 0x62
jne 0x405971
lea esi, [edi + 0x18]
call fcn.00407470
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x405965
cmp byte [eax], 0x5c
jne 0x405963
inc eax
cmp eax, ecx
je 0x40594f
test byte [edi + 0x44], 8
jne 0x40594f
mov cl, byte [eax]
cmp cl, 0x28
je 0x405961
cmp cl, 0x29
je 0x405961
test byte [edi + 0x44], 0x10
jne 0x405963
mov cl, byte [eax]
cmp cl, 0x7b
je 0x405961
cmp cl, 0x7d
jne 0x405963
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00404090
jmp 0x405b31
cmp eax, ebx
je 0x4059d1
cmp byte [edi + 0x3e], 0x42
jne 0x4059d1
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 0x4059c5
cmp byte [eax], 0x5c
jne 0x4059c3
inc eax
cmp eax, ecx
je 0x4059af
test byte [edi + 0x44], 8
jne 0x4059af
mov cl, byte [eax]
cmp cl, 0x28
je 0x4059c1
cmp cl, 0x29
je 0x4059c1
test byte [edi + 0x44], 0x10
jne 0x4059c3
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4059c1
cmp cl, 0x7d
jne 0x4059c3
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00404090
jmp 0x405b31
mov eax, edi
call fcn.004072d0
jmp 0x405b2a
cmp ecx, 0x5b
jne 0x405a82
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x405a21
cmp byte [eax], 0x5c
jne 0x405a1f
inc eax
cmp eax, ecx
je 0x405a0b
test byte [edi + 0x44], 8
jne 0x405a0b
mov cl, byte [eax]
cmp cl, 0x28
je 0x405a1d
cmp cl, 0x29
je 0x405a1d
test byte [edi + 0x44], 0x10
jne 0x405a1f
mov cl, byte [eax]
cmp cl, 0x7b
je 0x405a1d
cmp cl, 0x7d
jne 0x405a1f
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00404090
call fcn.004071f0
cmp dword [edi + 0x40], 0x5d
je 0x405a3d
push 4
call fcn.0040d1c6
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x405a78
cmp byte [eax], 0x5c
jne 0x405a76
inc eax
cmp eax, ecx
je 0x405a62
test byte [edi + 0x44], 8
jne 0x405a62
mov cl, byte [eax]
cmp cl, 0x28
je 0x405a74
cmp cl, 0x29
je 0x405a74
test byte [edi + 0x44], 0x10
jne 0x405a76
mov cl, byte [eax]
cmp cl, 0x7b
je 0x405a74
cmp cl, 0x7d
jne 0x405a76
mov dword [edi], eax
inc dword [edi]
call fcn.00404090
jmp 0x405b2a
cmp ecx, 0x28
jne 0x405b41
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x405ac6
cmp byte [eax], 0x5c
jne 0x405ac4
inc eax
cmp eax, ecx
je 0x405ab0
test byte [edi + 0x44], 8
jne 0x405ab0
mov cl, byte [eax]
cmp cl, 0x28
je 0x405ac2
cmp cl, 0x29
je 0x405ac2
test byte [edi + 0x44], 0x10
jne 0x405ac4
mov cl, byte [eax]
cmp cl, 0x7b
je 0x405ac2
cmp cl, 0x7d
jne 0x405ac4
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00404090
mov eax, edi
call fcn.00407370
cmp dword [edi + 0x40], 0x29
mov bl, al
je 0x405ae6
push 5
call fcn.0040d1c6
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x405b21
cmp byte [eax], 0x5c
jne 0x405b1f
inc eax
cmp eax, ecx
je 0x405b0b
test byte [edi + 0x44], 8
jne 0x405b0b
mov cl, byte [eax]
cmp cl, 0x28
je 0x405b1d
cmp cl, 0x29
je 0x405b1d
test byte [edi + 0x44], 0x10
jne 0x405b1f
mov cl, byte [eax]
cmp cl, 0x7b
je 0x405b1d
cmp cl, 0x7d
jne 0x405b1f
mov dword [edi], eax
inc dword [edi]
call fcn.00404090
test bl, bl
je 0x405b31
mov eax, edi
call fcn.00407960
cmp dword [edi + 0x40], 0xffffffff
mov al, 1
jne 0x4057f5
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x405b57
lea esi, [edi + 0x18]
call fcn.00407a80
mov eax, edi
call fcn.00405790
jmp 0x405b31
cmp ecx, 0x24
jne 0x405b6d
lea esi, [edi + 0x18]
call fcn.00407420
mov eax, edi
call fcn.00405790
jmp 0x405b31
cmp ecx, 0x2a
je 0x405bc9
cmp ecx, 0x2b
je 0x405bc9
cmp ecx, 0x3f
je 0x405bc9
cmp ecx, 0x7b
je 0x405bc9
cmp ecx, 0x7d
jne 0x405b97
test dword [edi + 0x44], edx
jne 0x405b97
push 6
call fcn.0040d1c6
add esp, 4
jmp 0x405b2a
cmp ecx, 0x5d
jne 0x405bb0
test dword [edi + 0x44], edx
jne 0x405bb0
push 4
call fcn.0040d1c6
add esp, 4
jmp 0x405b2a
movzx edx, byte [edi + 0x3e]
lea ecx, [edi + 0x18]
push edx
call fcn.00407ad0
mov eax, edi
call fcn.00405790
jmp 0x405b2a
push 0xa
call fcn.0040d1c6
add esp, 4
jmp 0x405b2a