Function at 0x1002c0a0
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
xor cl, cl
cmp dword [esi + 0x4c], 0xffffffff
push edi
je 0x1002c460
mov edi, dword [sym.imp.MSVCR110.dll_void____cdecl_operator_new_unsigned_int_]
jmp 0x1002c0c0
mov eax, dword [esi + 0x4c]
cmp eax, 0x7c
je 0x1002c460
cmp eax, 0x29
jne 0x1002c0e8
cmp dword [esi + 0x10], 0
jne 0x1002c460
test dword [esi + 0x50], 0x10000000
je 0x1002c466
cmp eax, 0x2e
jne 0x1002c197
push 0x14
call edi
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1002c122
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 5
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
jmp 0x1002c124
xor ecx, ecx
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1002c140
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]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1002c18b
cmp word [eax], 0x5c
jne 0x1002c188
add eax, 2
cmp eax, ecx
je 0x1002c188
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1002c174
movzx edx, word [eax]
cmp edx, 0x28
je 0x1002c186
cmp edx, 0x29
je 0x1002c186
test cl, 0x10
jne 0x1002c188
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1002c186
cmp ecx, 0x7d
jne 0x1002c188
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1002bb00
jmp 0x1002c44d
cmp eax, 0x5c
jne 0x1002c2c4
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1002c1e2
cmp word [eax], 0x5c
jne 0x1002c1df
add eax, 2
cmp eax, ecx
je 0x1002c1df
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1002c1cb
movzx edx, word [eax]
cmp edx, 0x28
je 0x1002c1dd
cmp edx, 0x29
je 0x1002c1dd
test cl, 0x10
jne 0x1002c1df
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1002c1dd
cmp ecx, 0x7d
jne 0x1002c1df
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1002bb00
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x1002c250
cmp word [esi + 0x48], 0x62
jne 0x1002c250
lea ecx, [esi + 0x24]
call fcn.1002d0d0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1002c244
cmp word [eax], 0x5c
jne 0x1002c241
add eax, 2
cmp eax, ecx
je 0x1002c241
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1002c22d
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x1002c23f
cmp ecx, 0x29
je 0x1002c23f
test dl, 0x10
jne 0x1002c241
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1002c23f
cmp ecx, 0x7d
jne 0x1002c241
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1002bb00
jmp 0x1002c454
test eax, eax
je 0x1002c2b8
cmp word [esi + 0x48], 0x42
jne 0x1002c2b8
lea ecx, [esi + 0x24]
call fcn.1002d0d0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1002c2ac
cmp word [eax], 0x5c
jne 0x1002c2a9
add eax, 2
cmp eax, ecx
je 0x1002c2a9
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1002c295
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x1002c2a7
cmp ecx, 0x29
je 0x1002c2a7
test dl, 0x10
jne 0x1002c2a9
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1002c2a7
cmp ecx, 0x7d
jne 0x1002c2a9
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1002bb00
jmp 0x1002c454
mov ecx, esi
call fcn.1002cd30
jmp 0x1002c44d
cmp eax, 0x5b
jne 0x1002c375
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1002c30f
cmp word [eax], 0x5c
jne 0x1002c30c
add eax, 2
cmp eax, ecx
je 0x1002c30c
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1002c2f8
movzx edx, word [eax]
cmp edx, 0x28
je 0x1002c30a
cmp edx, 0x29
je 0x1002c30a
test cl, 0x10
jne 0x1002c30c
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1002c30a
cmp ecx, 0x7d
jne 0x1002c30c
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1002bb00
mov ecx, esi
call fcn.1002cc80
cmp dword [esi + 0x4c], 0x5d
jne 0x1002c46e
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1002c369
cmp word [eax], 0x5c
jne 0x1002c366
add eax, 2
cmp eax, ecx
je 0x1002c366
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1002c352
movzx edx, word [eax]
cmp edx, 0x28
je 0x1002c364
cmp edx, 0x29
je 0x1002c364
test cl, 0x10
jne 0x1002c366
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1002c364
cmp ecx, 0x7d
jne 0x1002c366
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1002bb00
jmp 0x1002c44d
cmp eax, 0x28
jne 0x1002c3dd
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1002c3bc
cmp word [eax], 0x5c
jne 0x1002c3b9
add eax, 2
cmp eax, ecx
je 0x1002c3b9
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1002c3a5
movzx edx, word [eax]
cmp edx, 0x28
je 0x1002c3b7
cmp edx, 0x29
je 0x1002c3b7
test cl, 0x10
jne 0x1002c3b9
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1002c3b7
cmp ecx, 0x7d
jne 0x1002c3b9
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1002bb00
mov ecx, esi
call fcn.1002ce10
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.1002cc10
test bl, bl
je 0x1002c454
jmp 0x1002c44d
cmp eax, 0x5e
jne 0x1002c3f3
lea ecx, [esi + 0x24]
call fcn.1002cff0
mov ecx, esi
call fcn.1002c050
jmp 0x1002c454
cmp eax, 0x24
jne 0x1002c409
lea ecx, [esi + 0x24]
call fcn.1002d060
mov ecx, esi
call fcn.1002c050
jmp 0x1002c454
cmp eax, 0x2a
je 0x1002c47e
cmp eax, 0x2b
je 0x1002c47e
cmp eax, 0x3f
je 0x1002c47e
cmp eax, 0x7b
je 0x1002c47e
cmp eax, 0x7d
jne 0x1002c42b
test dword [esi + 0x50], 0x10000000
je 0x1002c476
cmp eax, 0x5d
jne 0x1002c439
test dword [esi + 0x50], 0x10000000
je 0x1002c46e
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1002d140
mov ecx, esi
call fcn.1002c050
mov ecx, esi
call fcn.1002cec0
cmp dword [esi + 0x4c], 0xffffffff
mov cl, 1
jne 0x1002c0c0
pop edi
pop esi
mov al, cl
pop ebx
ret
push 5
call dword [sym.imp.MSVCP110.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
push 4
call dword [sym.imp.MSVCP110.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
push 6
call dword [sym.imp.MSVCP110.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
push 0xa
call dword [sym.imp.MSVCP110.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
int3