Function at 0x1002cc20
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 0x1002cceb
cmp ecx, 0x7c
je 0x1002cceb
cmp ecx, 0x29
jne 0x1002ccf2
cmp dword [esi + 0x10], 0
jne 0x1002cceb
cmp ecx, ecx
jne 0x1002ccf2
test dword [esi + 0x50], 0x10000000
je 0x1002d1dc
lea edi, [esi + 0x50]
cmp ecx, 0x5d
jne 0x1002cc7c
test dword [edi], 0x10000000
je 0x1002d1e3
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1002ef50
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002cccf
cmp word [ecx], 0x5c
jne 0x1002cccc
add ecx, 2
cmp ecx, eax
je 0x1002cccc
mov edx, dword [edi]
test dl, 8
jne 0x1002ccb5
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002ccc9
cmp edi, 0x29
je 0x1002ccc9
test dl, 0x10
jne 0x1002cccc
movzx eax, word [ecx]
mov ecx, eax
cmp eax, 0x7b
je 0x1002ccc9
cmp ecx, 0x7d
jne 0x1002cccc
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002a7c0
mov ecx, esi
call fcn.1002ed20
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x1002cc37
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, 0x2e
jne 0x1002cdba
push 0x14
call fcn.1004e027
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 0x1002cd48
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 0x1002cccf
cmp word [ecx], 0x5c
jne 0x1002cdb0
lea ebx, [ecx + 2]
mov edx, ecx
cmp ebx, eax
je 0x1002cdae
mov eax, dword [esi + 0x50]
test al, 8
jne 0x1002cd8a
movzx eax, word [ebx]
mov edi, ecx
mov edx, eax
cmp eax, 0x28
je 0x1002cda1
cmp edx, 0x29
je 0x1002cda1
mov eax, dword [esi + 0x50]
mov edx, ecx
test al, 0x10
jne 0x1002cdae
movzx eax, word [ebx]
mov edi, ecx
mov ebx, eax
cmp eax, 0x7b
je 0x1002cda1
mov edi, edx
cmp ebx, 0x7d
jne 0x1002cdae
lea ecx, [edi + 2]
lea eax, [ecx + 2]
mov dword [esi], eax
jmp 0x1002cccf
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
jmp 0x1002cccf
cmp ecx, 0x5c
jne 0x1002cf80
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002ce1b
cmp word [ecx], 0x5c
jne 0x1002ce16
lea ebx, [ecx + 2]
mov edx, ecx
cmp ebx, eax
je 0x1002ce14
mov eax, dword [esi + 0x50]
test al, 8
jne 0x1002cdf8
movzx eax, word [ebx]
mov edi, ecx
mov edx, eax
cmp eax, 0x28
je 0x1002ce0f
cmp edx, 0x29
je 0x1002ce0f
mov eax, dword [esi + 0x50]
mov edx, ecx
test al, 0x10
jne 0x1002ce14
movzx eax, word [ebx]
mov edi, ecx
mov ebx, eax
cmp eax, 0x7b
je 0x1002ce0f
mov edi, edx
cmp ebx, 0x7d
jne 0x1002ce14
lea ecx, [edi + 2]
jmp 0x1002ce16
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.1002a7c0
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x1002cf08
cmp word [esi + 0x48], 0x62
jne 0x1002cf08
push 0x14
call fcn.1004e027
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 0x1002ce88
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 0x1002d194
cmp word [ecx], 0x5c
jne 0x1002cef7
lea ebx, [ecx + 2]
mov edx, ecx
cmp ebx, eax
je 0x1002cef5
mov eax, dword [esi + 0x50]
test al, 8
jne 0x1002ceca
movzx eax, word [ebx]
mov edi, ecx
mov edx, eax
cmp eax, 0x28
je 0x1002cee1
cmp edx, 0x29
je 0x1002cee1
mov eax, dword [esi + 0x50]
mov edx, ecx
test al, 0x10
jne 0x1002cef5
movzx eax, word [ebx]
mov edi, ecx
mov ebx, eax
cmp eax, 0x7b
je 0x1002cee1
mov edi, edx
cmp ebx, 0x7d
jne 0x1002cef5
lea ecx, [edi + 2]
lea eax, [ecx + 2]
mov ecx, esi
mov dword [esi], eax
call fcn.1002a7c0
jmp 0x1002ccdd
mov ecx, edx
lea eax, [ecx + 2]
mov ecx, esi
mov dword [esi], eax
call fcn.1002a7c0
jmp 0x1002ccdd
test eax, eax
je 0x1002cf74
cmp word [esi + 0x48], 0x42
jne 0x1002cf74
push 0x14
call fcn.1004e027
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 0x1002cf60
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 0x1002d14d
mov ecx, esi
call fcn.1002ea20
jmp 0x1002ccd6
cmp ecx, 0x5b
jne 0x1002d012
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002cfd0
cmp word [ecx], 0x5c
jne 0x1002cfcd
add ecx, 2
cmp ecx, eax
je 0x1002cfcd
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1002cfb6
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002cfca
cmp edi, 0x29
je 0x1002cfca
test dl, 0x10
jne 0x1002cfcd
movzx eax, word [ecx]
mov ecx, eax
cmp eax, 0x7b
je 0x1002cfca
cmp ecx, 0x7d
jne 0x1002cfcd
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002a7c0
mov ecx, esi
call fcn.1002e8d0
cmp dword [esi + 0x4c], 0x5d
jne 0x1002d1e3
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002cccf
cmp word [ecx], 0x5c
jne 0x1002cccc
add ecx, 2
cmp ecx, eax
je 0x1002cccc
mov edx, dword [esi + 0x50]
jmp 0x1002cca1
cmp ecx, 0x28
jne 0x1002d0d7
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002d062
cmp word [ecx], 0x5c
jne 0x1002d05f
add ecx, 2
cmp ecx, eax
je 0x1002d05f
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1002d048
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002d05c
cmp edi, 0x29
je 0x1002d05c
test dl, 0x10
jne 0x1002d05f
movzx eax, word [ecx]
mov ecx, eax
cmp eax, 0x7b
je 0x1002d05c
cmp ecx, 0x7d
jne 0x1002d05f
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002a7c0
mov ecx, esi
call fcn.1002eb70
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1002d1dc
mov ecx, dword [esi]
mov edx, dword [esi + 8]
cmp ecx, edx
je 0x1002d0c3
cmp word [ecx], 0x5c
jne 0x1002d0c0
add ecx, 2
cmp ecx, edx
je 0x1002d0c0
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1002d0a9
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002d0bd
cmp edi, 0x29
je 0x1002d0bd
test dl, 0x10
jne 0x1002d0c0
movzx eax, word [ecx]
mov ecx, eax
cmp eax, 0x7b
je 0x1002d0bd
cmp ecx, 0x7d
jne 0x1002d0c0
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002a7c0
test bl, bl
je 0x1002ccdd
jmp 0x1002ccd6
cmp ecx, 0x5e
jne 0x1002d0ee
push 0x14
call fcn.1004e027
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x1002d107
cmp ecx, 0x24
jne 0x1002d1a0
push 0x14
call fcn.1004e027
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 0x1002d144
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 0x1002d194
cmp word [ecx], 0x5c
jne 0x1002d191
add ecx, 2
cmp ecx, eax
je 0x1002d191
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1002d17a
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002d18e
cmp edi, 0x29
je 0x1002d18e
test dl, 0x10
jne 0x1002d191
movzx eax, word [ecx]
mov ecx, eax
cmp eax, 0x7b
je 0x1002d18e
cmp ecx, 0x7d
jne 0x1002d191
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002a7c0
jmp 0x1002ccdd
cmp ecx, 0x2a
je 0x1002d1ce
cmp ecx, 0x2b
je 0x1002d1ce
cmp ecx, 0x3f
je 0x1002d1ce
cmp ecx, 0x7b
je 0x1002d1ce
cmp ecx, 0x7d
jne 0x1002cc68
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x1002d1d5
jmp 0x1002cc7c
push 0xa
call fcn.1002a7b0
push 6
call fcn.1002a7b0
push 5
call fcn.1002a7b0
push 4
call fcn.1002a7b0
int3