Function at 0x1002cbe0
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 0x1002ccab
cmp ecx, 0x7c
je 0x1002ccab
cmp ecx, 0x29
jne 0x1002ccb2
cmp dword [esi + 0x10], 0
jne 0x1002ccab
cmp ecx, ecx
jne 0x1002ccb2
test dword [esi + 0x50], 0x10000000
je 0x1002d19c
lea edi, [esi + 0x50]
cmp ecx, 0x5d
jne 0x1002cc3c
test dword [edi], 0x10000000
je 0x1002d1a3
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1002ef10
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002cc8f
cmp word [ecx], 0x5c
jne 0x1002cc8c
add ecx, 2
cmp ecx, eax
je 0x1002cc8c
mov edx, dword [edi]
test dl, 8
jne 0x1002cc75
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002cc89
cmp edi, 0x29
je 0x1002cc89
test dl, 0x10
jne 0x1002cc8c
movzx eax, word [ecx]
mov ecx, eax
cmp eax, 0x7b
je 0x1002cc89
cmp ecx, 0x7d
jne 0x1002cc8c
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002a780
mov ecx, esi
call fcn.1002ece0
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x1002cbf7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, 0x2e
jne 0x1002cd7a
push 0x14
call fcn.1004dfd9
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 0x1002cd08
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 0x1002cc8f
cmp word [ecx], 0x5c
jne 0x1002cd70
lea ebx, [ecx + 2]
mov edx, ecx
cmp ebx, eax
je 0x1002cd6e
mov eax, dword [esi + 0x50]
test al, 8
jne 0x1002cd4a
movzx eax, word [ebx]
mov edi, ecx
mov edx, eax
cmp eax, 0x28
je 0x1002cd61
cmp edx, 0x29
je 0x1002cd61
mov eax, dword [esi + 0x50]
mov edx, ecx
test al, 0x10
jne 0x1002cd6e
movzx eax, word [ebx]
mov edi, ecx
mov ebx, eax
cmp eax, 0x7b
je 0x1002cd61
mov edi, edx
cmp ebx, 0x7d
jne 0x1002cd6e
lea ecx, [edi + 2]
lea eax, [ecx + 2]
mov dword [esi], eax
jmp 0x1002cc8f
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
jmp 0x1002cc8f
cmp ecx, 0x5c
jne 0x1002cf40
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002cddb
cmp word [ecx], 0x5c
jne 0x1002cdd6
lea ebx, [ecx + 2]
mov edx, ecx
cmp ebx, eax
je 0x1002cdd4
mov eax, dword [esi + 0x50]
test al, 8
jne 0x1002cdb8
movzx eax, word [ebx]
mov edi, ecx
mov edx, eax
cmp eax, 0x28
je 0x1002cdcf
cmp edx, 0x29
je 0x1002cdcf
mov eax, dword [esi + 0x50]
mov edx, ecx
test al, 0x10
jne 0x1002cdd4
movzx eax, word [ebx]
mov edi, ecx
mov ebx, eax
cmp eax, 0x7b
je 0x1002cdcf
mov edi, edx
cmp ebx, 0x7d
jne 0x1002cdd4
lea ecx, [edi + 2]
jmp 0x1002cdd6
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.1002a780
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x1002cec8
cmp word [esi + 0x48], 0x62
jne 0x1002cec8
push 0x14
call fcn.1004dfd9
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 0x1002ce48
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 0x1002d154
cmp word [ecx], 0x5c
jne 0x1002ceb7
lea ebx, [ecx + 2]
mov edx, ecx
cmp ebx, eax
je 0x1002ceb5
mov eax, dword [esi + 0x50]
test al, 8
jne 0x1002ce8a
movzx eax, word [ebx]
mov edi, ecx
mov edx, eax
cmp eax, 0x28
je 0x1002cea1
cmp edx, 0x29
je 0x1002cea1
mov eax, dword [esi + 0x50]
mov edx, ecx
test al, 0x10
jne 0x1002ceb5
movzx eax, word [ebx]
mov edi, ecx
mov ebx, eax
cmp eax, 0x7b
je 0x1002cea1
mov edi, edx
cmp ebx, 0x7d
jne 0x1002ceb5
lea ecx, [edi + 2]
lea eax, [ecx + 2]
mov ecx, esi
mov dword [esi], eax
call fcn.1002a780
jmp 0x1002cc9d
mov ecx, edx
lea eax, [ecx + 2]
mov ecx, esi
mov dword [esi], eax
call fcn.1002a780
jmp 0x1002cc9d
test eax, eax
je 0x1002cf34
cmp word [esi + 0x48], 0x42
jne 0x1002cf34
push 0x14
call fcn.1004dfd9
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 0x1002cf20
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 0x1002d10d
mov ecx, esi
call fcn.1002e9e0
jmp 0x1002cc96
cmp ecx, 0x5b
jne 0x1002cfd2
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002cf90
cmp word [ecx], 0x5c
jne 0x1002cf8d
add ecx, 2
cmp ecx, eax
je 0x1002cf8d
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1002cf76
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002cf8a
cmp edi, 0x29
je 0x1002cf8a
test dl, 0x10
jne 0x1002cf8d
movzx eax, word [ecx]
mov ecx, eax
cmp eax, 0x7b
je 0x1002cf8a
cmp ecx, 0x7d
jne 0x1002cf8d
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002a780
mov ecx, esi
call fcn.1002e890
cmp dword [esi + 0x4c], 0x5d
jne 0x1002d1a3
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002cc8f
cmp word [ecx], 0x5c
jne 0x1002cc8c
add ecx, 2
cmp ecx, eax
je 0x1002cc8c
mov edx, dword [esi + 0x50]
jmp 0x1002cc61
cmp ecx, 0x28
jne 0x1002d097
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002d022
cmp word [ecx], 0x5c
jne 0x1002d01f
add ecx, 2
cmp ecx, eax
je 0x1002d01f
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1002d008
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002d01c
cmp edi, 0x29
je 0x1002d01c
test dl, 0x10
jne 0x1002d01f
movzx eax, word [ecx]
mov ecx, eax
cmp eax, 0x7b
je 0x1002d01c
cmp ecx, 0x7d
jne 0x1002d01f
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002a780
mov ecx, esi
call fcn.1002eb30
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1002d19c
mov ecx, dword [esi]
mov edx, dword [esi + 8]
cmp ecx, edx
je 0x1002d083
cmp word [ecx], 0x5c
jne 0x1002d080
add ecx, 2
cmp ecx, edx
je 0x1002d080
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1002d069
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002d07d
cmp edi, 0x29
je 0x1002d07d
test dl, 0x10
jne 0x1002d080
movzx eax, word [ecx]
mov ecx, eax
cmp eax, 0x7b
je 0x1002d07d
cmp ecx, 0x7d
jne 0x1002d080
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002a780
test bl, bl
je 0x1002cc9d
jmp 0x1002cc96
cmp ecx, 0x5e
jne 0x1002d0ae
push 0x14
call fcn.1004dfd9
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x1002d0c7
cmp ecx, 0x24
jne 0x1002d160
push 0x14
call fcn.1004dfd9
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 0x1002d104
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 0x1002d154
cmp word [ecx], 0x5c
jne 0x1002d151
add ecx, 2
cmp ecx, eax
je 0x1002d151
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1002d13a
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002d14e
cmp edi, 0x29
je 0x1002d14e
test dl, 0x10
jne 0x1002d151
movzx eax, word [ecx]
mov ecx, eax
cmp eax, 0x7b
je 0x1002d14e
cmp ecx, 0x7d
jne 0x1002d151
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002a780
jmp 0x1002cc9d
cmp ecx, 0x2a
je 0x1002d18e
cmp ecx, 0x2b
je 0x1002d18e
cmp ecx, 0x3f
je 0x1002d18e
cmp ecx, 0x7b
je 0x1002d18e
cmp ecx, 0x7d
jne 0x1002cc28
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x1002d195
jmp 0x1002cc3c
push 0xa
call fcn.1002a770
push 6
call fcn.1002a770
push 5
call fcn.1002a770
push 4
call fcn.1002a770
int3