Function at 0x40fe20
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
push edi
mov edi, eax
xor al, al
cmp dword [edi + 0x40], 0xffff
je 0x4100a4
mov ecx, dword [edi + 0x40]
cmp ecx, 0x7c
je 0x4100a4
xor ebx, ebx
cmp ecx, 0x29
jne 0x40fe69
cmp dword [edi + 0x10], ebx
jne 0x4100a4
mov eax, 0x10000000
test dword [edi + 0x44], eax
jne 0x40fe6e
push 5
call fcn.0048fe7f
add esp, 4
jmp 0x41008e
mov eax, 0x10000000
cmp ecx, 0x2e
jne 0x40ff11
push 0x14
call fcn.00475e26
add esp, 4
cmp eax, ebx
je 0x40fe9d
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 0x40fe9f
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 0x40febb
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 0x40ff05
cmp word [eax], 0x5c
jne 0x40ff02
add eax, 2
cmp eax, ecx
je 0x40feed
test byte [edi + 0x44], 8
jne 0x40feed
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40ff00
cmp ecx, 0x29
je 0x40ff00
test byte [edi + 0x44], 0x10
jne 0x40ff02
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40ff00
cmp ecx, 0x7d
jne 0x40ff02
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.0040f720
jmp 0x41008e
cmp ecx, 0x5c
jne 0x40ffb9
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40ff5b
cmp word [eax], 0x5c
jne 0x40ff58
add eax, 2
cmp eax, ecx
je 0x40ff43
test byte [edi + 0x44], 8
jne 0x40ff43
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40ff56
cmp ecx, 0x29
je 0x40ff56
test byte [edi + 0x44], 0x10
jne 0x40ff58
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40ff56
cmp ecx, 0x7d
jne 0x40ff58
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.0040f720
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x40ff87
cmp word [edi + 0x3e], 0x62
jne 0x40ff87
lea esi, [edi + 0x18]
call fcn.00410c20
mov eax, edi
call fcn.0040fdd0
jmp 0x410095
cmp eax, ebx
je 0x40ffad
cmp word [edi + 0x3e], 0x42
jne 0x40ffad
lea esi, [edi + 0x18]
call fcn.00410c20
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, edi
call fcn.0040fdd0
jmp 0x410095
mov eax, edi
call fcn.004108d0
jmp 0x41008e
cmp ecx, 0x5b
jne 0x410067
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x410003
cmp word [eax], 0x5c
jne 0x410000
add eax, 2
cmp eax, ecx
je 0x40ffeb
test byte [edi + 0x44], 8
jne 0x40ffeb
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40fffe
cmp ecx, 0x29
je 0x40fffe
test byte [edi + 0x44], 0x10
jne 0x410000
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40fffe
cmp ecx, 0x7d
jne 0x410000
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.0040f720
call fcn.00410860
cmp dword [edi + 0x40], 0x5d
je 0x41001f
push 4
call fcn.0048fe7f
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x410060
cmp word [eax], 0x5c
jne 0x41005d
add eax, 2
cmp eax, ecx
je 0x410048
test byte [edi + 0x44], 8
jne 0x410048
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x41005b
cmp ecx, 0x29
je 0x41005b
test byte [edi + 0x44], 0x10
jne 0x41005d
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x41005b
cmp ecx, 0x7d
jne 0x41005d
mov dword [edi], eax
add dword [edi], 2
call fcn.0040f720
jmp 0x41008e
cmp ecx, 0x28
jne 0x4100a8
mov eax, edi
call fcn.0040fdd0
mov eax, edi
call fcn.00410990
mov bl, al
push 0x29
mov ecx, 5
mov eax, edi
call fcn.004107f0
test bl, bl
je 0x410095
mov eax, edi
call fcn.00410a40
cmp dword [edi + 0x40], 0xffff
mov al, 1
jne 0x40fe34
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x4100be
lea esi, [edi + 0x18]
call fcn.00410b80
mov eax, edi
call fcn.0040fdd0
jmp 0x410095
cmp ecx, 0x24
jne 0x4100d4
lea esi, [edi + 0x18]
call fcn.00410bd0
mov eax, edi
call fcn.0040fdd0
jmp 0x410095
cmp ecx, 0x2a
je 0x410130
cmp ecx, 0x2b
je 0x410130
cmp ecx, 0x3f
je 0x410130
cmp ecx, 0x7b
je 0x410130
cmp ecx, 0x7d
jne 0x4100fe
test dword [edi + 0x44], eax
jne 0x4100fe
push 6
call fcn.0048fe7f
add esp, 4
jmp 0x41008e
cmp ecx, 0x5d
jne 0x410117
test dword [edi + 0x44], eax
jne 0x410117
push 4
call fcn.0048fe7f
add esp, 4
jmp 0x41008e
movzx edx, word [edi + 0x3e]
lea eax, [edi + 0x18]
push edx
call fcn.00410c70
mov eax, edi
call fcn.0040fdd0
jmp 0x41008e
push 0xa
call fcn.0048fe7f
add esp, 4
jmp 0x41008e