Function at 0x1002c1f0
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 0x1002c72b
cmp ecx, 0x7c
je 0x1002c72b
cmp ecx, 0x29
jne 0x1002c238
cmp dword [esi + 0x10], 0
jne 0x1002c72b
cmp ecx, ecx
jne 0x1002c238
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x1002c739
jmp 0x1002c699
lea edi, [esi + 0x50]
cmp ecx, 0x2e
jne 0x1002c2ed
push 0x14
call fcn.1004d1ac
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 0x1002c291
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 0x1002c70f
cmp word [ecx], 0x5c
jne 0x1002c2e3
lea edx, [ecx + 2]
cmp edx, eax
je 0x1002c2e3
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1002c2cd
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x1002c2e1
cmp ecx, 0x29
je 0x1002c2e1
mov ecx, dword [esi]
test bl, 0x10
jne 0x1002c2e3
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x1002c2e1
cmp edi, 0x7d
jne 0x1002c2e3
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
jmp 0x1002c70f
cmp ecx, 0x5c
jne 0x1002c486
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002c340
cmp word [ecx], 0x5c
jne 0x1002c33b
lea edx, [ecx + 2]
cmp edx, eax
je 0x1002c33b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1002c325
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x1002c339
cmp ecx, 0x29
je 0x1002c339
mov ecx, dword [esi]
test bl, 0x10
jne 0x1002c33b
movzx eax, word [edx]
mov ebx, eax
cmp eax, 0x7b
je 0x1002c339
cmp ebx, 0x7d
jne 0x1002c33b
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.1002a080
mov eax, dword [edi]
and eax, 0x80
je 0x1002c40e
cmp word [esi + 0x48], 0x62
jne 0x1002c40e
push 0x14
call fcn.1004d1ac
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 0x1002c3ac
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 0x1002c669
cmp word [ecx], 0x5c
jne 0x1002c3fd
lea edx, [ecx + 2]
cmp edx, eax
je 0x1002c3fd
mov ebx, dword [edi]
test bl, 8
jne 0x1002c3e7
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x1002c3fb
cmp ecx, 0x29
je 0x1002c3fb
mov ecx, dword [esi]
test bl, 0x10
jne 0x1002c3fd
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x1002c3fb
cmp edi, 0x7d
jne 0x1002c3fd
mov ecx, edx
lea eax, [ecx + 2]
mov ecx, esi
mov dword [esi], eax
call fcn.1002a080
jmp 0x1002c71d
test eax, eax
je 0x1002c47a
cmp word [esi + 0x48], 0x42
jne 0x1002c47a
push 0x14
call fcn.1004d1ac
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 0x1002c466
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 0x1002c624
mov ecx, esi
call fcn.1002e3b0
jmp 0x1002c716
cmp ecx, 0x5b
jne 0x1002c4ed
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002c4d0
cmp word [ecx], 0x5c
jne 0x1002c4cd
add ecx, 2
cmp ecx, eax
je 0x1002c4cd
mov edx, dword [edi]
test dl, 8
jne 0x1002c4b7
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x1002c4cb
cmp ebx, 0x29
je 0x1002c4cb
test dl, 0x10
jne 0x1002c4cd
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x1002c4cb
cmp edx, 0x7d
jne 0x1002c4cd
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.1002a080
mov ecx, esi
call fcn.1002e260
cmp dword [esi + 0x4c], 0x5d
jne 0x1002c740
jmp 0x1002c6ca
cmp ecx, 0x28
jne 0x1002c5ae
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002c53b
cmp word [ecx], 0x5c
jne 0x1002c538
add ecx, 2
cmp ecx, eax
je 0x1002c538
mov edx, dword [edi]
test dl, 8
jne 0x1002c522
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x1002c536
cmp ebx, 0x29
je 0x1002c536
test dl, 0x10
jne 0x1002c538
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x1002c536
cmp edx, 0x7d
jne 0x1002c538
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.1002a080
mov ecx, esi
call fcn.1002e500
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1002c739
mov ecx, dword [esi]
mov edx, dword [esi + 8]
cmp ecx, edx
je 0x1002c59a
cmp word [ecx], 0x5c
jne 0x1002c597
add ecx, 2
cmp ecx, edx
je 0x1002c597
mov edx, dword [edi]
test dl, 8
jne 0x1002c581
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002c595
cmp edi, 0x29
je 0x1002c595
test dl, 0x10
jne 0x1002c597
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x1002c595
cmp edx, 0x7d
jne 0x1002c597
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.1002a080
test bl, bl
je 0x1002c71d
jmp 0x1002c716
cmp ecx, 0x5e
jne 0x1002c5c5
push 0x14
call fcn.1004d1ac
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x1002c5de
cmp ecx, 0x24
jne 0x1002c675
push 0x14
call fcn.1004d1ac
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 0x1002c61b
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 0x1002c669
cmp word [ecx], 0x5c
jne 0x1002c666
add ecx, 2
cmp ecx, eax
je 0x1002c666
mov edx, dword [edi]
test dl, 8
jne 0x1002c650
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002c664
cmp edi, 0x29
je 0x1002c664
test dl, 0x10
jne 0x1002c666
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x1002c664
cmp edx, 0x7d
jne 0x1002c666
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.1002a080
jmp 0x1002c71d
cmp ecx, 0x2a
je 0x1002c732
cmp ecx, 0x2b
je 0x1002c732
cmp ecx, 0x3f
je 0x1002c732
cmp ecx, 0x7b
je 0x1002c732
cmp ecx, 0x7d
jne 0x1002c6ac
test dword [edi], 0x10000000
je 0x1002c747
jmp 0x1002c6bd
cmp ecx, 0x5d
jne 0x1002c6bd
test dword [edi], 0x10000000
je 0x1002c740
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1002e8b0
mov eax, dword [esi + 8]
mov ecx, dword [esi]
cmp ecx, eax
je 0x1002c70f
cmp word [ecx], 0x5c
jne 0x1002c70c
add ecx, 2
cmp ecx, eax
je 0x1002c70c
mov edx, dword [edi]
test dl, 8
jne 0x1002c6f6
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002c70a
cmp edi, 0x29
je 0x1002c70a
test dl, 0x10
jne 0x1002c70c
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x1002c70a
cmp edx, 0x7d
jne 0x1002c70c
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.1002a080
mov ecx, esi
call fcn.1002e680
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x1002c207
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.1002a070
push 5
call fcn.1002a070
push 4
call fcn.1002a070
push 6
call fcn.1002a070
int3