Function at 0x40f2f0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor al, al
push edi
mov ecx, dword [esi + 0x4c]
cmp ecx, 0xffffffff
je 0x40f8b6
cmp ecx, 0x7c
je 0x40f8b6
cmp ecx, 0x29
jne 0x40f338
cmp dword [esi + 0x10], 0
jne 0x40f8b6
cmp ecx, ecx
jne 0x40f338
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x40f8c4
jmp 0x40f824
lea edi, [esi + 0x50]
cmp ecx, 0x2e
jne 0x40f3ed
push 0x14
call fcn.00435b4c
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 5
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40f391
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x40f89a
cmp word [ecx], 0x5c
jne 0x40f3e3
lea edx, [ecx + 2]
cmp edx, eax
je 0x40f3e3
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40f3cd
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x40f3e1
cmp ecx, 0x29
je 0x40f3e1
mov ecx, dword [esi]
test bl, 0x10
jne 0x40f3e3
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x40f3e1
cmp edi, 0x7d
jne 0x40f3e3
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
jmp 0x40f89a
cmp ecx, 0x5c
jne 0x40f586
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x40f440
cmp word [ecx], 0x5c
jne 0x40f43b
lea edx, [ecx + 2]
cmp edx, eax
je 0x40f43b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40f425
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x40f439
cmp ecx, 0x29
je 0x40f439
mov ecx, dword [esi]
test bl, 0x10
jne 0x40f43b
movzx eax, word [edx]
mov ebx, eax
cmp eax, 0x7b
je 0x40f439
cmp ebx, 0x7d
jne 0x40f43b
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.0040e040
mov eax, dword [edi]
and eax, 0x80
je 0x40f50e
cmp word [esi + 0x48], 0x62
jne 0x40f50e
push 0x14
call fcn.00435b4c
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40f4ac
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x40f7f4
cmp word [ecx], 0x5c
jne 0x40f4fd
lea edx, [ecx + 2]
cmp edx, eax
je 0x40f4fd
mov ebx, dword [edi]
test bl, 8
jne 0x40f4e7
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x40f4fb
cmp ecx, 0x29
je 0x40f4fb
mov ecx, dword [esi]
test bl, 0x10
jne 0x40f4fd
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x40f4fb
cmp edi, 0x7d
jne 0x40f4fd
mov ecx, edx
lea eax, [ecx + 2]
mov ecx, esi
mov dword [esi], eax
call fcn.0040e040
jmp 0x40f8a8
test eax, eax
je 0x40f57a
cmp word [esi + 0x48], 0x42
jne 0x40f57a
push 0x14
call fcn.00435b4c
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40f566
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov eax, ecx
mov dword [esi + 0x28], ecx
xor dword [eax + 8], 1
jmp 0x40f7af
mov ecx, esi
call fcn.004107d0
jmp 0x40f8a1
cmp ecx, 0x5b
jne 0x40f678
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x40f5d4
cmp word [ecx], 0x5c
jne 0x40f5d1
add ecx, 2
cmp ecx, eax
je 0x40f5d1
mov edx, dword [edi]
test dl, 8
jne 0x40f5bb
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x40f5cf
cmp ebx, 0x29
je 0x40f5cf
test dl, 0x10
jne 0x40f5d1
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x40f5cf
cmp edx, 0x7d
jne 0x40f5d1
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.0040e040
lea ebx, [esi + 0x24]
mov ecx, ebx
call fcn.00412030
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x40f646
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x40f63c
cmp word [ecx], 0x5c
jne 0x40f636
add ecx, 2
cmp ecx, eax
je 0x40f636
mov edx, dword [edi]
test dl, 8
jne 0x40f620
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x40f634
cmp ebx, 0x29
je 0x40f634
test dl, 0x10
jne 0x40f636
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x40f634
cmp edx, 0x7d
jne 0x40f636
mov dword [esi], ecx
add dword [esi], 2
lea ebx, [esi + 0x24]
mov ecx, esi
call fcn.0040e040
mov eax, dword [esi + 0x4c]
test dword [edi], 0x20000000
je 0x40f662
cmp eax, 0x5d
jne 0x40f662
push eax
mov ecx, ebx
call fcn.004120c0
mov ecx, esi
call fcn.0040f2a0
mov ecx, esi
call fcn.00411b70
cmp dword [esi + 0x4c], 0x5d
jne 0x40f8cb
jmp 0x40f855
cmp ecx, 0x28
jne 0x40f739
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x40f6c6
cmp word [ecx], 0x5c
jne 0x40f6c3
add ecx, 2
cmp ecx, eax
je 0x40f6c3
mov edx, dword [edi]
test dl, 8
jne 0x40f6ad
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x40f6c1
cmp ebx, 0x29
je 0x40f6c1
test dl, 0x10
jne 0x40f6c3
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x40f6c1
cmp edx, 0x7d
jne 0x40f6c3
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.0040e040
mov ecx, esi
call fcn.00410920
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x40f8c4
mov ecx, dword [esi]
mov edx, dword [esi + 8]
cmp ecx, edx
je 0x40f725
cmp word [ecx], 0x5c
jne 0x40f722
add ecx, 2
cmp ecx, edx
je 0x40f722
mov edx, dword [edi]
test dl, 8
jne 0x40f70c
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x40f720
cmp edi, 0x29
je 0x40f720
test dl, 0x10
jne 0x40f722
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x40f720
cmp edx, 0x7d
jne 0x40f722
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.0040e040
test bl, bl
je 0x40f8a8
jmp 0x40f8a1
cmp ecx, 0x5e
jne 0x40f750
push 0x14
call fcn.00435b4c
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x40f769
cmp ecx, 0x24
jne 0x40f800
push 0x14
call fcn.00435b4c
mov ecx, eax
mov dword [ecx + 4], 3
mov dword [ecx], vtable.std::_Node_base.0
add esp, 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov dword [ebp - 4], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40f7a6
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov eax, dword [esi + 8]
mov ecx, dword [esi]
cmp ecx, eax
je 0x40f7f4
cmp word [ecx], 0x5c
jne 0x40f7f1
add ecx, 2
cmp ecx, eax
je 0x40f7f1
mov edx, dword [edi]
test dl, 8
jne 0x40f7db
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x40f7ef
cmp edi, 0x29
je 0x40f7ef
test dl, 0x10
jne 0x40f7f1
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x40f7ef
cmp edx, 0x7d
jne 0x40f7f1
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.0040e040
jmp 0x40f8a8
cmp ecx, 0x2a
je 0x40f8bd
cmp ecx, 0x2b
je 0x40f8bd
cmp ecx, 0x3f
je 0x40f8bd
cmp ecx, 0x7b
je 0x40f8bd
cmp ecx, 0x7d
jne 0x40f837
test dword [edi], 0x10000000
je 0x40f8d2
jmp 0x40f848
cmp ecx, 0x5d
jne 0x40f848
test dword [edi], 0x10000000
je 0x40f8cb
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00410bc0
mov eax, dword [esi + 8]
mov ecx, dword [esi]
cmp ecx, eax
je 0x40f89a
cmp word [ecx], 0x5c
jne 0x40f897
add ecx, 2
cmp ecx, eax
je 0x40f897
mov edx, dword [edi]
test dl, 8
jne 0x40f881
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x40f895
cmp edi, 0x29
je 0x40f895
test dl, 0x10
jne 0x40f897
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x40f895
cmp edx, 0x7d
jne 0x40f897
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.0040e040
mov ecx, esi
call fcn.00410a20
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x40f307
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.0040e030
push 5
call fcn.0040e030
push 4
call fcn.0040e030
push 6
call fcn.0040e030
int3