Function at 0x428780
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
cmp dword [esi + 0x4c], 0xffffffff
je 0x428b25
mov eax, dword [esi + 0x4c]
cmp eax, 0x7c
je 0x428b25
cmp eax, 0x29
jne 0x4287b9
cmp dword [esi + 0x10], 0
jne 0x428b25
test dword [esi + 0x50], 0x10000000
je 0x428b2b
cmp eax, 0x2e
jne 0x42886c
push 0x14
call dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new_unsigned_int_]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4287f7
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 0x4287f9
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 0x428815
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 0x428860
cmp word [eax], 0x5c
jne 0x42885d
add eax, 2
cmp eax, ecx
je 0x42885d
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x428849
movzx edx, word [eax]
cmp edx, 0x28
je 0x42885b
cmp edx, 0x29
je 0x42885b
test cl, 0x10
jne 0x42885d
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x42885b
cmp ecx, 0x7d
jne 0x42885d
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00427250
jmp 0x428b12
cmp eax, 0x5c
jne 0x428959
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4288b7
cmp word [eax], 0x5c
jne 0x4288b4
add eax, 2
cmp eax, ecx
je 0x4288b4
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4288a0
movzx edx, word [eax]
cmp edx, 0x28
je 0x4288b2
cmp edx, 0x29
je 0x4288b2
test cl, 0x10
jne 0x4288b4
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x4288b2
cmp ecx, 0x7d
jne 0x4288b4
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00427250
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x428905
cmp word [esi + 0x48], 0x62
jne 0x428905
push 4
lea ecx, [esi + 0x24]
call fcn.00428d00
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x4288f9
cmp word [edi], 0x5c
jne 0x4288f6
mov ecx, esi
call fcn.00428710
test al, al
je 0x4288f6
lea eax, [edi + 2]
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00427250
jmp 0x428b19
test eax, eax
je 0x42894d
cmp word [esi + 0x48], 0x42
jne 0x42894d
push 4
lea ecx, [esi + 0x24]
call fcn.00428d00
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x428941
cmp word [edi], 0x5c
jne 0x42893e
mov ecx, esi
call fcn.00428710
test al, al
je 0x42893e
lea eax, [edi + 2]
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00427250
jmp 0x428b19
mov ecx, esi
call fcn.00429f90
jmp 0x428b12
cmp eax, 0x5b
jne 0x4289e8
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4289a4
cmp word [eax], 0x5c
jne 0x4289a1
add eax, 2
cmp eax, ecx
je 0x4289a1
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x42898d
movzx edx, word [eax]
cmp edx, 0x28
je 0x42899f
cmp edx, 0x29
je 0x42899f
test cl, 0x10
jne 0x4289a1
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x42899f
cmp ecx, 0x7d
jne 0x4289a1
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00427250
mov ecx, esi
call fcn.00429ef0
cmp dword [esi + 0x4c], 0x5d
jne 0x428b33
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x4289dc
cmp word [edi], 0x5c
jne 0x4289d9
mov ecx, esi
call fcn.00428710
test al, al
je 0x4289d9
lea eax, [edi + 2]
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00427250
jmp 0x428b12
cmp eax, 0x28
jne 0x428a5b
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x428a0d
cmp word [edi], 0x5c
jne 0x428a0a
mov ecx, esi
call fcn.00428710
test al, al
je 0x428a0a
lea eax, [edi + 2]
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00427250
mov ecx, esi
call fcn.0042a060
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x428b2b
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x428a47
cmp word [edi], 0x5c
jne 0x428a44
mov ecx, esi
call fcn.00428710
test al, al
je 0x428a44
lea eax, [edi + 2]
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00427250
test bl, bl
je 0x428b19
jmp 0x428b12
cmp eax, 0x5e
jne 0x428a96
push 2
lea ecx, [esi + 0x24]
call fcn.00428d00
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x428a8a
cmp word [edi], 0x5c
jne 0x428a87
mov ecx, esi
call fcn.00428710
test al, al
je 0x428a87
lea eax, [edi + 2]
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00427250
jmp 0x428b19
cmp eax, 0x24
jne 0x428ace
push 3
lea ecx, [esi + 0x24]
call fcn.00428d00
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x428ac5
cmp word [edi], 0x5c
jne 0x428ac2
mov ecx, esi
call fcn.00428710
test al, al
je 0x428ac2
lea eax, [edi + 2]
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00427250
jmp 0x428b19
cmp eax, 0x2a
je 0x428b43
cmp eax, 0x2b
je 0x428b43
cmp eax, 0x3f
je 0x428b43
cmp eax, 0x7b
je 0x428b43
cmp eax, 0x7d
jne 0x428af0
test dword [esi + 0x50], 0x10000000
je 0x428b3b
cmp eax, 0x5d
jne 0x428afe
test dword [esi + 0x50], 0x10000000
je 0x428b33
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0042a290
mov ecx, esi
call fcn.00428750
mov ecx, esi
call fcn.0042a160
cmp dword [esi + 0x4c], 0xffffffff
mov cl, 1
jne 0x428791
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