Function at 0x40fbe0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov ebx, eax
push edi
xor edi, edi
xor al, al
cmp dword [ebx + 0x40], 0xffff
je 0x40fef4
lea ebx, [ebx]
mov ecx, dword [ebx + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x40fef4
cmp ecx, 0x29
jne 0x40fc33
cmp dword [ebx + 0x10], edi
jne 0x40fef4
test dword [ebx + 0x44], edx
jne 0x40fc33
push 5
call fcn.004585b4
add esp, 4
jmp 0x40fede
cmp ecx, 0x2e
jne 0x40fcd6
push 0x14
call fcn.00459337
add esp, 4
cmp eax, edi
je 0x40fc62
mov dword [eax], vtable.std::tr1::_Node_base.0
mov dword [eax + 4], 5
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
jmp 0x40fc64
xor eax, eax
mov ecx, dword [ebx + 0x1c]
mov dword [eax + 0x10], ecx
mov edx, dword [ebx + 0x1c]
mov ecx, dword [edx + 0xc]
cmp ecx, edi
je 0x40fc80
mov dword [eax + 0xc], ecx
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ecx + 0xc]
mov dword [edx + 0x10], eax
mov ecx, dword [ebx + 0x1c]
mov dword [ecx + 0xc], eax
mov dword [ebx + 0x1c], eax
mov eax, dword [ebx]
mov ecx, dword [ebx + 8]
cmp eax, ecx
je 0x40fcca
cmp word [eax], 0x5c
jne 0x40fcc7
add eax, 2
cmp eax, ecx
je 0x40fcb2
test byte [ebx + 0x44], 8
jne 0x40fcb2
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40fcc5
cmp ecx, 0x29
je 0x40fcc5
test byte [ebx + 0x44], 0x10
jne 0x40fcc7
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40fcc5
cmp ecx, 0x7d
jne 0x40fcc7
mov dword [ebx], eax
add dword [ebx], 2
mov esi, ebx
call fcn.0040e670
jmp 0x40fede
cmp ecx, 0x5c
jne 0x40fdbf
mov eax, dword [ebx]
mov ecx, dword [ebx + 8]
cmp eax, ecx
je 0x40fd20
cmp word [eax], 0x5c
jne 0x40fd1d
add eax, 2
cmp eax, ecx
je 0x40fd08
test byte [ebx + 0x44], 8
jne 0x40fd08
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40fd1b
cmp ecx, 0x29
je 0x40fd1b
test byte [ebx + 0x44], 0x10
jne 0x40fd1d
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40fd1b
cmp ecx, 0x7d
jne 0x40fd1d
mov dword [ebx], eax
add dword [ebx], 2
mov esi, ebx
call fcn.0040e670
mov eax, dword [ebx + 0x44]
and eax, 0x80
je 0x40fd8d
cmp word [ebx + 0x3e], 0x62
jne 0x40fd8d
lea esi, [ebx + 0x18]
call fcn.004111d0
mov eax, dword [ebx]
mov ecx, dword [ebx + 8]
cmp eax, ecx
je 0x40fd81
cmp word [eax], 0x5c
jne 0x40fd7e
add eax, 2
cmp eax, ecx
je 0x40fd69
test byte [ebx + 0x44], 8
jne 0x40fd69
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40fd7c
cmp ecx, 0x29
je 0x40fd7c
test byte [ebx + 0x44], 0x10
jne 0x40fd7e
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40fd7c
cmp ecx, 0x7d
jne 0x40fd7e
mov dword [ebx], eax
add dword [ebx], 2
mov esi, ebx
call fcn.0040e670
jmp 0x40fee5
cmp eax, edi
je 0x40fdb3
cmp word [ebx + 0x3e], 0x42
jne 0x40fdb3
lea esi, [ebx + 0x18]
call fcn.004111d0
mov eax, dword [ebx + 0x1c]
xor dword [eax + 8], 1
mov eax, ebx
call fcn.0040fb90
jmp 0x40fee5
mov eax, ebx
call fcn.00410e80
jmp 0x40fede
cmp ecx, 0x5b
jne 0x40fe6f
mov eax, dword [ebx]
mov ecx, dword [ebx + 8]
cmp eax, ecx
je 0x40fe09
cmp word [eax], 0x5c
jne 0x40fe06
add eax, 2
cmp eax, ecx
je 0x40fdf1
test byte [ebx + 0x44], 8
jne 0x40fdf1
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40fe04
cmp ecx, 0x29
je 0x40fe04
test byte [ebx + 0x44], 0x10
jne 0x40fe06
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40fe04
cmp ecx, 0x7d
jne 0x40fe06
mov dword [ebx], eax
add dword [ebx], 2
mov esi, ebx
call fcn.0040e670
call fcn.00410dd0
cmp dword [ebx + 0x40], 0x5d
je 0x40fe25
push 4
call fcn.004585b4
add esp, 4
mov eax, dword [ebx]
mov ecx, dword [ebx + 8]
cmp eax, ecx
je 0x40fe66
cmp word [eax], 0x5c
jne 0x40fe63
add eax, 2
cmp eax, ecx
je 0x40fe4e
test byte [ebx + 0x44], 8
jne 0x40fe4e
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40fe61
cmp ecx, 0x29
je 0x40fe61
test byte [ebx + 0x44], 0x10
jne 0x40fe63
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40fe61
cmp ecx, 0x7d
jne 0x40fe63
mov dword [ebx], eax
add dword [ebx], 2
call fcn.0040e670
xor edi, edi
jmp 0x40fede
cmp ecx, 0x28
jne 0x40fefb
mov eax, dword [ebx]
mov ecx, dword [ebx + 8]
cmp eax, ecx
je 0x40feb9
cmp word [eax], 0x5c
jne 0x40feb6
add eax, 2
cmp eax, ecx
je 0x40fea1
test byte [ebx + 0x44], 8
jne 0x40fea1
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40feb4
cmp ecx, 0x29
je 0x40feb4
test byte [ebx + 0x44], 0x10
jne 0x40feb6
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40feb4
cmp ecx, 0x7d
jne 0x40feb6
mov dword [ebx], eax
add dword [ebx], 2
mov esi, ebx
call fcn.0040e670
mov eax, ebx
call fcn.00410f40
mov byte [ebp - 1], al
push 0x29
mov ecx, 5
mov eax, ebx
call fcn.00410d60
cmp byte [ebp - 1], 0
je 0x40fee5
mov eax, ebx
call fcn.00410ff0
cmp dword [ebx + 0x40], 0xffff
mov al, 1
jne 0x40fc00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, 0x5e
jne 0x40ff11
lea esi, [ebx + 0x18]
call fcn.00411130
mov eax, ebx
call fcn.0040fb90
jmp 0x40fee5
cmp ecx, 0x24
jne 0x40ff27
lea esi, [ebx + 0x18]
call fcn.00411180
mov eax, ebx
call fcn.0040fb90
jmp 0x40fee5
cmp ecx, 0x2a
je 0x40ff83
cmp ecx, 0x2b
je 0x40ff83
cmp ecx, 0x3f
je 0x40ff83
cmp ecx, 0x7b
je 0x40ff83
cmp ecx, 0x7d
jne 0x40ff51
test dword [ebx + 0x44], edx
jne 0x40ff51
push 6
call fcn.004585b4
add esp, 4
jmp 0x40fede
cmp ecx, 0x5d
jne 0x40ff6a
test dword [ebx + 0x44], edx
jne 0x40ff6a
push 4
call fcn.004585b4
add esp, 4
jmp 0x40fede
movzx edx, word [ebx + 0x3e]
lea ecx, [ebx + 0x18]
push edx
call fcn.00411220
mov eax, ebx
call fcn.0040fb90
jmp 0x40fede
push 0xa
call fcn.004585b4
add esp, 4
jmp 0x40fede