Function at 0x1002c4e0
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 0x1002ca1b
cmp ecx, 0x7c
je 0x1002ca1b
cmp ecx, 0x29
jne 0x1002c528
cmp dword [esi + 0x10], 0
jne 0x1002ca1b
cmp ecx, ecx
jne 0x1002c528
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x1002ca29
jmp 0x1002c989
lea edi, [esi + 0x50]
cmp ecx, 0x2e
jne 0x1002c5dd
push 0x14
call fcn.1004d31c
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 0x1002c581
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 0x1002c9ff
cmp word [ecx], 0x5c
jne 0x1002c5d3
lea edx, [ecx + 2]
cmp edx, eax
je 0x1002c5d3
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1002c5bd
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x1002c5d1
cmp ecx, 0x29
je 0x1002c5d1
mov ecx, dword [esi]
test bl, 0x10
jne 0x1002c5d3
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x1002c5d1
cmp edi, 0x7d
jne 0x1002c5d3
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
jmp 0x1002c9ff
cmp ecx, 0x5c
jne 0x1002c776
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002c630
cmp word [ecx], 0x5c
jne 0x1002c62b
lea edx, [ecx + 2]
cmp edx, eax
je 0x1002c62b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1002c615
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x1002c629
cmp ecx, 0x29
je 0x1002c629
mov ecx, dword [esi]
test bl, 0x10
jne 0x1002c62b
movzx eax, word [edx]
mov ebx, eax
cmp eax, 0x7b
je 0x1002c629
cmp ebx, 0x7d
jne 0x1002c62b
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.1002a370
mov eax, dword [edi]
and eax, 0x80
je 0x1002c6fe
cmp word [esi + 0x48], 0x62
jne 0x1002c6fe
push 0x14
call fcn.1004d31c
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 0x1002c69c
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 0x1002c959
cmp word [ecx], 0x5c
jne 0x1002c6ed
lea edx, [ecx + 2]
cmp edx, eax
je 0x1002c6ed
mov ebx, dword [edi]
test bl, 8
jne 0x1002c6d7
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x1002c6eb
cmp ecx, 0x29
je 0x1002c6eb
mov ecx, dword [esi]
test bl, 0x10
jne 0x1002c6ed
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x1002c6eb
cmp edi, 0x7d
jne 0x1002c6ed
mov ecx, edx
lea eax, [ecx + 2]
mov ecx, esi
mov dword [esi], eax
call fcn.1002a370
jmp 0x1002ca0d
test eax, eax
je 0x1002c76a
cmp word [esi + 0x48], 0x42
jne 0x1002c76a
push 0x14
call fcn.1004d31c
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 0x1002c756
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 0x1002c914
mov ecx, esi
call fcn.1002e6a0
jmp 0x1002ca06
cmp ecx, 0x5b
jne 0x1002c7dd
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002c7c0
cmp word [ecx], 0x5c
jne 0x1002c7bd
add ecx, 2
cmp ecx, eax
je 0x1002c7bd
mov edx, dword [edi]
test dl, 8
jne 0x1002c7a7
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x1002c7bb
cmp ebx, 0x29
je 0x1002c7bb
test dl, 0x10
jne 0x1002c7bd
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x1002c7bb
cmp edx, 0x7d
jne 0x1002c7bd
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.1002a370
mov ecx, esi
call fcn.1002e550
cmp dword [esi + 0x4c], 0x5d
jne 0x1002ca30
jmp 0x1002c9ba
cmp ecx, 0x28
jne 0x1002c89e
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002c82b
cmp word [ecx], 0x5c
jne 0x1002c828
add ecx, 2
cmp ecx, eax
je 0x1002c828
mov edx, dword [edi]
test dl, 8
jne 0x1002c812
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x1002c826
cmp ebx, 0x29
je 0x1002c826
test dl, 0x10
jne 0x1002c828
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x1002c826
cmp edx, 0x7d
jne 0x1002c828
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.1002a370
mov ecx, esi
call fcn.1002e7f0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1002ca29
mov ecx, dword [esi]
mov edx, dword [esi + 8]
cmp ecx, edx
je 0x1002c88a
cmp word [ecx], 0x5c
jne 0x1002c887
add ecx, 2
cmp ecx, edx
je 0x1002c887
mov edx, dword [edi]
test dl, 8
jne 0x1002c871
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002c885
cmp edi, 0x29
je 0x1002c885
test dl, 0x10
jne 0x1002c887
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x1002c885
cmp edx, 0x7d
jne 0x1002c887
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.1002a370
test bl, bl
je 0x1002ca0d
jmp 0x1002ca06
cmp ecx, 0x5e
jne 0x1002c8b5
push 0x14
call fcn.1004d31c
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x1002c8ce
cmp ecx, 0x24
jne 0x1002c965
push 0x14
call fcn.1004d31c
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 0x1002c90b
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 0x1002c959
cmp word [ecx], 0x5c
jne 0x1002c956
add ecx, 2
cmp ecx, eax
je 0x1002c956
mov edx, dword [edi]
test dl, 8
jne 0x1002c940
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002c954
cmp edi, 0x29
je 0x1002c954
test dl, 0x10
jne 0x1002c956
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x1002c954
cmp edx, 0x7d
jne 0x1002c956
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.1002a370
jmp 0x1002ca0d
cmp ecx, 0x2a
je 0x1002ca22
cmp ecx, 0x2b
je 0x1002ca22
cmp ecx, 0x3f
je 0x1002ca22
cmp ecx, 0x7b
je 0x1002ca22
cmp ecx, 0x7d
jne 0x1002c99c
test dword [edi], 0x10000000
je 0x1002ca37
jmp 0x1002c9ad
cmp ecx, 0x5d
jne 0x1002c9ad
test dword [edi], 0x10000000
je 0x1002ca30
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1002eba0
mov eax, dword [esi + 8]
mov ecx, dword [esi]
cmp ecx, eax
je 0x1002c9ff
cmp word [ecx], 0x5c
jne 0x1002c9fc
add ecx, 2
cmp ecx, eax
je 0x1002c9fc
mov edx, dword [edi]
test dl, 8
jne 0x1002c9e6
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002c9fa
cmp edi, 0x29
je 0x1002c9fa
test dl, 0x10
jne 0x1002c9fc
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x1002c9fa
cmp edx, 0x7d
jne 0x1002c9fc
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.1002a370
mov ecx, esi
call fcn.1002e970
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x1002c4f7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.1002a360
push 5
call fcn.1002a360
push 4
call fcn.1002a360
push 6
call fcn.1002a360
int3