Function at 0x40eed0
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], 0xffff
je 0x40f1dd
jmp 0x40eef2
xor ebx, ebx
mov ecx, dword [edi + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x40f1dd
cmp ecx, 0x29
jne 0x40ef25
cmp dword [edi + 0x10], ebx
jne 0x40f1dd
test dword [edi + 0x44], edx
jne 0x40ef25
push 5
call fcn.0046808e
add esp, 4
jmp 0x40f1c7
cmp ecx, 0x2e
jne 0x40efc8
push 0x14
call fcn.00450883
add esp, 4
cmp eax, ebx
je 0x40ef54
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 0x40ef56
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 0x40ef72
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 0x40efbc
cmp word [eax], 0x5c
jne 0x40efb9
add eax, 2
cmp eax, ecx
je 0x40efa4
test byte [edi + 0x44], 8
jne 0x40efa4
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40efb7
cmp ecx, 0x29
je 0x40efb7
test byte [edi + 0x44], 0x10
jne 0x40efb9
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40efb7
cmp ecx, 0x7d
jne 0x40efb9
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.0040d780
jmp 0x40f1c7
cmp ecx, 0x5c
jne 0x40f0b1
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40f012
cmp word [eax], 0x5c
jne 0x40f00f
add eax, 2
cmp eax, ecx
je 0x40effa
test byte [edi + 0x44], 8
jne 0x40effa
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40f00d
cmp ecx, 0x29
je 0x40f00d
test byte [edi + 0x44], 0x10
jne 0x40f00f
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40f00d
cmp ecx, 0x7d
jne 0x40f00f
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.0040d780
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x40f07f
cmp word [edi + 0x3e], 0x62
jne 0x40f07f
lea esi, [edi + 0x18]
call fcn.0040f690
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40f073
cmp word [eax], 0x5c
jne 0x40f070
add eax, 2
cmp eax, ecx
je 0x40f05b
test byte [edi + 0x44], 8
jne 0x40f05b
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40f06e
cmp ecx, 0x29
je 0x40f06e
test byte [edi + 0x44], 0x10
jne 0x40f070
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40f06e
cmp ecx, 0x7d
jne 0x40f070
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.0040d780
jmp 0x40f1ce
cmp eax, ebx
je 0x40f0a5
cmp word [edi + 0x3e], 0x42
jne 0x40f0a5
lea esi, [edi + 0x18]
call fcn.0040f690
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, edi
call fcn.0040ee80
jmp 0x40f1ce
mov eax, edi
call fcn.0040fd40
jmp 0x40f1c7
cmp ecx, 0x5b
jne 0x40f15f
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40f0fb
cmp word [eax], 0x5c
jne 0x40f0f8
add eax, 2
cmp eax, ecx
je 0x40f0e3
test byte [edi + 0x44], 8
jne 0x40f0e3
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40f0f6
cmp ecx, 0x29
je 0x40f0f6
test byte [edi + 0x44], 0x10
jne 0x40f0f8
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40f0f6
cmp ecx, 0x7d
jne 0x40f0f8
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.0040d780
call fcn.0040fc90
cmp dword [edi + 0x40], 0x5d
je 0x40f117
push 4
call fcn.0046808e
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40f158
cmp word [eax], 0x5c
jne 0x40f155
add eax, 2
cmp eax, ecx
je 0x40f140
test byte [edi + 0x44], 8
jne 0x40f140
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40f153
cmp ecx, 0x29
je 0x40f153
test byte [edi + 0x44], 0x10
jne 0x40f155
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40f153
cmp ecx, 0x7d
jne 0x40f155
mov dword [edi], eax
add dword [edi], 2
call fcn.0040d780
jmp 0x40f1c7
cmp ecx, 0x28
jne 0x40f1e1
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40f1a5
cmp word [eax], 0x5c
jne 0x40f1a2
add eax, 2
cmp eax, ecx
je 0x40f18d
test byte [edi + 0x44], 8
jne 0x40f18d
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40f1a0
cmp ecx, 0x29
je 0x40f1a0
test byte [edi + 0x44], 0x10
jne 0x40f1a2
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40f1a0
cmp ecx, 0x7d
jne 0x40f1a2
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.0040d780
mov eax, edi
call fcn.0040fe10
mov bl, al
push 0x29
mov ecx, 5
mov eax, edi
call fcn.0040fc20
test bl, bl
je 0x40f1ce
mov eax, edi
call fcn.0040f500
cmp dword [edi + 0x40], 0xffff
mov al, 1
jne 0x40eef0
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x40f1f7
lea esi, [edi + 0x18]
call fcn.0040fec0
mov eax, edi
call fcn.0040ee80
jmp 0x40f1ce
cmp ecx, 0x24
jne 0x40f20d
lea esi, [edi + 0x18]
call fcn.0040f640
mov eax, edi
call fcn.0040ee80
jmp 0x40f1ce
cmp ecx, 0x2a
je 0x40f269
cmp ecx, 0x2b
je 0x40f269
cmp ecx, 0x3f
je 0x40f269
cmp ecx, 0x7b
je 0x40f269
cmp ecx, 0x7d
jne 0x40f237
test dword [edi + 0x44], edx
jne 0x40f237
push 6
call fcn.0046808e
add esp, 4
jmp 0x40f1c7
cmp ecx, 0x5d
jne 0x40f250
test dword [edi + 0x44], edx
jne 0x40f250
push 4
call fcn.0046808e
add esp, 4
jmp 0x40f1c7
movzx edx, word [edi + 0x3e]
lea ecx, [edi + 0x18]
push edx
call fcn.0040ff10
mov eax, edi
call fcn.0040ee80
jmp 0x40f1c7
push 0xa
call fcn.0046808e
add esp, 4
jmp 0x40f1c7