Function at 0x42c5a0
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
cmp dword [esi + 0x4c], 0xffffffff
je 0x42c945
mov eax, dword [esi + 0x4c]
cmp eax, 0x7c
je 0x42c945
cmp eax, 0x29
jne 0x42c5d9
cmp dword [esi + 0x10], 0
jne 0x42c945
test dword [esi + 0x50], 0x10000000
je 0x42c94b
cmp eax, 0x2e
jne 0x42c68c
push 0x14
call dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new_unsigned_int_]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x42c617
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 0x42c619
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 0x42c635
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 0x42c680
cmp word [eax], 0x5c
jne 0x42c67d
add eax, 2
cmp eax, ecx
je 0x42c67d
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x42c669
movzx edx, word [eax]
cmp edx, 0x28
je 0x42c67b
cmp edx, 0x29
je 0x42c67b
test cl, 0x10
jne 0x42c67d
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x42c67b
cmp ecx, 0x7d
jne 0x42c67d
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0042b0f0
jmp 0x42c932
cmp eax, 0x5c
jne 0x42c779
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x42c6d7
cmp word [eax], 0x5c
jne 0x42c6d4
add eax, 2
cmp eax, ecx
je 0x42c6d4
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x42c6c0
movzx edx, word [eax]
cmp edx, 0x28
je 0x42c6d2
cmp edx, 0x29
je 0x42c6d2
test cl, 0x10
jne 0x42c6d4
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x42c6d2
cmp ecx, 0x7d
jne 0x42c6d4
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0042b0f0
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x42c725
cmp word [esi + 0x48], 0x62
jne 0x42c725
push 4
lea ecx, [esi + 0x24]
call fcn.0042cb20
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x42c719
cmp word [edi], 0x5c
jne 0x42c716
mov ecx, esi
call fcn.0042c530
test al, al
je 0x42c716
lea eax, [edi + 2]
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0042b0f0
jmp 0x42c939
test eax, eax
je 0x42c76d
cmp word [esi + 0x48], 0x42
jne 0x42c76d
push 4
lea ecx, [esi + 0x24]
call fcn.0042cb20
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x42c761
cmp word [edi], 0x5c
jne 0x42c75e
mov ecx, esi
call fcn.0042c530
test al, al
je 0x42c75e
lea eax, [edi + 2]
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0042b0f0
jmp 0x42c939
mov ecx, esi
call fcn.0042dc00
jmp 0x42c932
cmp eax, 0x5b
jne 0x42c808
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x42c7c4
cmp word [eax], 0x5c
jne 0x42c7c1
add eax, 2
cmp eax, ecx
je 0x42c7c1
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x42c7ad
movzx edx, word [eax]
cmp edx, 0x28
je 0x42c7bf
cmp edx, 0x29
je 0x42c7bf
test cl, 0x10
jne 0x42c7c1
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x42c7bf
cmp ecx, 0x7d
jne 0x42c7c1
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0042b0f0
mov ecx, esi
call fcn.0042db60
cmp dword [esi + 0x4c], 0x5d
jne 0x42c953
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x42c7fc
cmp word [edi], 0x5c
jne 0x42c7f9
mov ecx, esi
call fcn.0042c530
test al, al
je 0x42c7f9
lea eax, [edi + 2]
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0042b0f0
jmp 0x42c932
cmp eax, 0x28
jne 0x42c87b
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x42c82d
cmp word [edi], 0x5c
jne 0x42c82a
mov ecx, esi
call fcn.0042c530
test al, al
je 0x42c82a
lea eax, [edi + 2]
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0042b0f0
mov ecx, esi
call fcn.0042dcd0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x42c94b
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x42c867
cmp word [edi], 0x5c
jne 0x42c864
mov ecx, esi
call fcn.0042c530
test al, al
je 0x42c864
lea eax, [edi + 2]
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0042b0f0
test bl, bl
je 0x42c939
jmp 0x42c932
cmp eax, 0x5e
jne 0x42c8b6
push 2
lea ecx, [esi + 0x24]
call fcn.0042cb20
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x42c8aa
cmp word [edi], 0x5c
jne 0x42c8a7
mov ecx, esi
call fcn.0042c530
test al, al
je 0x42c8a7
lea eax, [edi + 2]
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0042b0f0
jmp 0x42c939
cmp eax, 0x24
jne 0x42c8ee
push 3
lea ecx, [esi + 0x24]
call fcn.0042cb20
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x42c8e5
cmp word [edi], 0x5c
jne 0x42c8e2
mov ecx, esi
call fcn.0042c530
test al, al
je 0x42c8e2
lea eax, [edi + 2]
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0042b0f0
jmp 0x42c939
cmp eax, 0x2a
je 0x42c963
cmp eax, 0x2b
je 0x42c963
cmp eax, 0x3f
je 0x42c963
cmp eax, 0x7b
je 0x42c963
cmp eax, 0x7d
jne 0x42c910
test dword [esi + 0x50], 0x10000000
je 0x42c95b
cmp eax, 0x5d
jne 0x42c91e
test dword [esi + 0x50], 0x10000000
je 0x42c953
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0042df00
mov ecx, esi
call fcn.0042c570
mov ecx, esi
call fcn.0042ddd0
cmp dword [esi + 0x4c], 0xffffffff
mov cl, 1
jne 0x42c5b1
pop edi
pop esi
mov al, cl
pop ebx
ret
push 5
call dword [sym.imp.MSVCP120.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
push 4
call dword [sym.imp.MSVCP120.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
push 6
call dword [sym.imp.MSVCP120.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
push 0xa
call dword [sym.imp.MSVCP120.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
int3