Function at 0x40eff0
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 0x40f304
lea ebx, [ebx]
mov ecx, dword [ebx + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x40f304
cmp ecx, 0x29
jne 0x40f043
cmp dword [ebx + 0x10], edi
jne 0x40f304
test dword [ebx + 0x44], edx
jne 0x40f043
push 5
call fcn.0045228d
add esp, 4
jmp 0x40f2ee
cmp ecx, 0x2e
jne 0x40f0e6
push 0x14
call fcn.00453217
add esp, 4
cmp eax, edi
je 0x40f072
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 0x40f074
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 0x40f090
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 0x40f0da
cmp word [eax], 0x5c
jne 0x40f0d7
add eax, 2
cmp eax, ecx
je 0x40f0c2
test byte [ebx + 0x44], 8
jne 0x40f0c2
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40f0d5
cmp ecx, 0x29
je 0x40f0d5
test byte [ebx + 0x44], 0x10
jne 0x40f0d7
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40f0d5
cmp ecx, 0x7d
jne 0x40f0d7
mov dword [ebx], eax
add dword [ebx], 2
mov esi, ebx
call fcn.0040d660
jmp 0x40f2ee
cmp ecx, 0x5c
jne 0x40f1cf
mov eax, dword [ebx]
mov ecx, dword [ebx + 8]
cmp eax, ecx
je 0x40f130
cmp word [eax], 0x5c
jne 0x40f12d
add eax, 2
cmp eax, ecx
je 0x40f118
test byte [ebx + 0x44], 8
jne 0x40f118
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40f12b
cmp ecx, 0x29
je 0x40f12b
test byte [ebx + 0x44], 0x10
jne 0x40f12d
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40f12b
cmp ecx, 0x7d
jne 0x40f12d
mov dword [ebx], eax
add dword [ebx], 2
mov esi, ebx
call fcn.0040d660
mov eax, dword [ebx + 0x44]
and eax, 0x80
je 0x40f19d
cmp word [ebx + 0x3e], 0x62
jne 0x40f19d
lea esi, [ebx + 0x18]
call fcn.00410a70
mov eax, dword [ebx]
mov ecx, dword [ebx + 8]
cmp eax, ecx
je 0x40f191
cmp word [eax], 0x5c
jne 0x40f18e
add eax, 2
cmp eax, ecx
je 0x40f179
test byte [ebx + 0x44], 8
jne 0x40f179
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40f18c
cmp ecx, 0x29
je 0x40f18c
test byte [ebx + 0x44], 0x10
jne 0x40f18e
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40f18c
cmp ecx, 0x7d
jne 0x40f18e
mov dword [ebx], eax
add dword [ebx], 2
mov esi, ebx
call fcn.0040d660
jmp 0x40f2f5
cmp eax, edi
je 0x40f1c3
cmp word [ebx + 0x3e], 0x42
jne 0x40f1c3
lea esi, [ebx + 0x18]
call fcn.00410a70
mov eax, dword [ebx + 0x1c]
xor dword [eax + 8], 1
mov eax, ebx
call fcn.0040efa0
jmp 0x40f2f5
mov eax, ebx
call fcn.00410770
jmp 0x40f2ee
cmp ecx, 0x5b
jne 0x40f27f
mov eax, dword [ebx]
mov ecx, dword [ebx + 8]
cmp eax, ecx
je 0x40f219
cmp word [eax], 0x5c
jne 0x40f216
add eax, 2
cmp eax, ecx
je 0x40f201
test byte [ebx + 0x44], 8
jne 0x40f201
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40f214
cmp ecx, 0x29
je 0x40f214
test byte [ebx + 0x44], 0x10
jne 0x40f216
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40f214
cmp ecx, 0x7d
jne 0x40f216
mov dword [ebx], eax
add dword [ebx], 2
mov esi, ebx
call fcn.0040d660
call fcn.004106c0
cmp dword [ebx + 0x40], 0x5d
je 0x40f235
push 4
call fcn.0045228d
add esp, 4
mov eax, dword [ebx]
mov ecx, dword [ebx + 8]
cmp eax, ecx
je 0x40f276
cmp word [eax], 0x5c
jne 0x40f273
add eax, 2
cmp eax, ecx
je 0x40f25e
test byte [ebx + 0x44], 8
jne 0x40f25e
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40f271
cmp ecx, 0x29
je 0x40f271
test byte [ebx + 0x44], 0x10
jne 0x40f273
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40f271
cmp ecx, 0x7d
jne 0x40f273
mov dword [ebx], eax
add dword [ebx], 2
call fcn.0040d660
xor edi, edi
jmp 0x40f2ee
cmp ecx, 0x28
jne 0x40f30b
mov eax, dword [ebx]
mov ecx, dword [ebx + 8]
cmp eax, ecx
je 0x40f2c9
cmp word [eax], 0x5c
jne 0x40f2c6
add eax, 2
cmp eax, ecx
je 0x40f2b1
test byte [ebx + 0x44], 8
jne 0x40f2b1
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40f2c4
cmp ecx, 0x29
je 0x40f2c4
test byte [ebx + 0x44], 0x10
jne 0x40f2c6
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40f2c4
cmp ecx, 0x7d
jne 0x40f2c6
mov dword [ebx], eax
add dword [ebx], 2
mov esi, ebx
call fcn.0040d660
mov eax, ebx
call fcn.00410830
mov byte [ebp - 1], al
push 0x29
mov ecx, 5
mov eax, ebx
call fcn.00410650
cmp byte [ebp - 1], 0
je 0x40f2f5
mov eax, ebx
call fcn.004108e0
cmp dword [ebx + 0x40], 0xffff
mov al, 1
jne 0x40f010
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, 0x5e
jne 0x40f321
lea esi, [ebx + 0x18]
call fcn.00410a20
mov eax, ebx
call fcn.0040efa0
jmp 0x40f2f5
cmp ecx, 0x24
jne 0x40f337
lea esi, [ebx + 0x18]
call fcn.00411240
mov eax, ebx
call fcn.0040efa0
jmp 0x40f2f5
cmp ecx, 0x2a
je 0x40f393
cmp ecx, 0x2b
je 0x40f393
cmp ecx, 0x3f
je 0x40f393
cmp ecx, 0x7b
je 0x40f393
cmp ecx, 0x7d
jne 0x40f361
test dword [ebx + 0x44], edx
jne 0x40f361
push 6
call fcn.0045228d
add esp, 4
jmp 0x40f2ee
cmp ecx, 0x5d
jne 0x40f37a
test dword [ebx + 0x44], edx
jne 0x40f37a
push 4
call fcn.0045228d
add esp, 4
jmp 0x40f2ee
movzx edx, word [ebx + 0x3e]
lea ecx, [ebx + 0x18]
push edx
call fcn.00411290
mov eax, ebx
call fcn.0040efa0
jmp 0x40f2ee
push 0xa
call fcn.0045228d
add esp, 4
jmp 0x40f2ee