Function at 0x1002c1e0
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 0x1002c71b
cmp ecx, 0x7c
je 0x1002c71b
cmp ecx, 0x29
jne 0x1002c228
cmp dword [esi + 0x10], 0
jne 0x1002c71b
cmp ecx, ecx
jne 0x1002c228
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x1002c729
jmp 0x1002c689
lea edi, [esi + 0x50]
cmp ecx, 0x2e
jne 0x1002c2dd
push 0x14
call fcn.1004d1de
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 0x1002c281
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 0x1002c6ff
cmp word [ecx], 0x5c
jne 0x1002c2d3
lea edx, [ecx + 2]
cmp edx, eax
je 0x1002c2d3
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1002c2bd
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x1002c2d1
cmp ecx, 0x29
je 0x1002c2d1
mov ecx, dword [esi]
test bl, 0x10
jne 0x1002c2d3
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x1002c2d1
cmp edi, 0x7d
jne 0x1002c2d3
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
jmp 0x1002c6ff
cmp ecx, 0x5c
jne 0x1002c476
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002c330
cmp word [ecx], 0x5c
jne 0x1002c32b
lea edx, [ecx + 2]
cmp edx, eax
je 0x1002c32b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1002c315
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x1002c329
cmp ecx, 0x29
je 0x1002c329
mov ecx, dword [esi]
test bl, 0x10
jne 0x1002c32b
movzx eax, word [edx]
mov ebx, eax
cmp eax, 0x7b
je 0x1002c329
cmp ebx, 0x7d
jne 0x1002c32b
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.1002a070
mov eax, dword [edi]
and eax, 0x80
je 0x1002c3fe
cmp word [esi + 0x48], 0x62
jne 0x1002c3fe
push 0x14
call fcn.1004d1de
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 0x1002c39c
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 0x1002c659
cmp word [ecx], 0x5c
jne 0x1002c3ed
lea edx, [ecx + 2]
cmp edx, eax
je 0x1002c3ed
mov ebx, dword [edi]
test bl, 8
jne 0x1002c3d7
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x1002c3eb
cmp ecx, 0x29
je 0x1002c3eb
mov ecx, dword [esi]
test bl, 0x10
jne 0x1002c3ed
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x1002c3eb
cmp edi, 0x7d
jne 0x1002c3ed
mov ecx, edx
lea eax, [ecx + 2]
mov ecx, esi
mov dword [esi], eax
call fcn.1002a070
jmp 0x1002c70d
test eax, eax
je 0x1002c46a
cmp word [esi + 0x48], 0x42
jne 0x1002c46a
push 0x14
call fcn.1004d1de
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 0x1002c456
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 0x1002c614
mov ecx, esi
call fcn.1002e3a0
jmp 0x1002c706
cmp ecx, 0x5b
jne 0x1002c4dd
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002c4c0
cmp word [ecx], 0x5c
jne 0x1002c4bd
add ecx, 2
cmp ecx, eax
je 0x1002c4bd
mov edx, dword [edi]
test dl, 8
jne 0x1002c4a7
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x1002c4bb
cmp ebx, 0x29
je 0x1002c4bb
test dl, 0x10
jne 0x1002c4bd
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x1002c4bb
cmp edx, 0x7d
jne 0x1002c4bd
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.1002a070
mov ecx, esi
call fcn.1002e250
cmp dword [esi + 0x4c], 0x5d
jne 0x1002c730
jmp 0x1002c6ba
cmp ecx, 0x28
jne 0x1002c59e
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002c52b
cmp word [ecx], 0x5c
jne 0x1002c528
add ecx, 2
cmp ecx, eax
je 0x1002c528
mov edx, dword [edi]
test dl, 8
jne 0x1002c512
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x1002c526
cmp ebx, 0x29
je 0x1002c526
test dl, 0x10
jne 0x1002c528
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x1002c526
cmp edx, 0x7d
jne 0x1002c528
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.1002a070
mov ecx, esi
call fcn.1002e4f0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1002c729
mov ecx, dword [esi]
mov edx, dword [esi + 8]
cmp ecx, edx
je 0x1002c58a
cmp word [ecx], 0x5c
jne 0x1002c587
add ecx, 2
cmp ecx, edx
je 0x1002c587
mov edx, dword [edi]
test dl, 8
jne 0x1002c571
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002c585
cmp edi, 0x29
je 0x1002c585
test dl, 0x10
jne 0x1002c587
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x1002c585
cmp edx, 0x7d
jne 0x1002c587
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.1002a070
test bl, bl
je 0x1002c70d
jmp 0x1002c706
cmp ecx, 0x5e
jne 0x1002c5b5
push 0x14
call fcn.1004d1de
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x1002c5ce
cmp ecx, 0x24
jne 0x1002c665
push 0x14
call fcn.1004d1de
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 0x1002c60b
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 0x1002c659
cmp word [ecx], 0x5c
jne 0x1002c656
add ecx, 2
cmp ecx, eax
je 0x1002c656
mov edx, dword [edi]
test dl, 8
jne 0x1002c640
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002c654
cmp edi, 0x29
je 0x1002c654
test dl, 0x10
jne 0x1002c656
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x1002c654
cmp edx, 0x7d
jne 0x1002c656
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.1002a070
jmp 0x1002c70d
cmp ecx, 0x2a
je 0x1002c722
cmp ecx, 0x2b
je 0x1002c722
cmp ecx, 0x3f
je 0x1002c722
cmp ecx, 0x7b
je 0x1002c722
cmp ecx, 0x7d
jne 0x1002c69c
test dword [edi], 0x10000000
je 0x1002c737
jmp 0x1002c6ad
cmp ecx, 0x5d
jne 0x1002c6ad
test dword [edi], 0x10000000
je 0x1002c730
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1002e8a0
mov eax, dword [esi + 8]
mov ecx, dword [esi]
cmp ecx, eax
je 0x1002c6ff
cmp word [ecx], 0x5c
jne 0x1002c6fc
add ecx, 2
cmp ecx, eax
je 0x1002c6fc
mov edx, dword [edi]
test dl, 8
jne 0x1002c6e6
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002c6fa
cmp edi, 0x29
je 0x1002c6fa
test dl, 0x10
jne 0x1002c6fc
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x1002c6fa
cmp edx, 0x7d
jne 0x1002c6fc
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.1002a070
mov ecx, esi
call fcn.1002e670
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x1002c1f7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.1002a060
push 5
call fcn.1002a060
push 4
call fcn.1002a060
push 6
call fcn.1002a060
int3