Function at 0x445598
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov dword [ebp - 0x28], ecx
mov byte [ebp - 1], 0
mov byte [ebp - 2], 1
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x40], 0xffffffff
je 0x4455cd
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x40], 0x7c
je 0x4455cd
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x40], 0x29
jne 0x4455da
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x10], 0
je 0x4455da
mov al, byte [ebp - 1]
jmp 0x44582a
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x40], 0x29
jne 0x4455fe
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x44]
and eax, 0x10000000
jne 0x4455fe
push 5
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::tr1::_Xbad_enum_std::tr1::regex_constants::error_type_]
pop ecx
jmp 0x445811
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x40], 0x2e
jne 0x445621
push 5
mov ecx, dword [ebp - 0x28]
add ecx, 0x18
call fcn.00445c84
mov ecx, dword [ebp - 0x28]
call fcn.00445547
jmp 0x445811
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x40], 0x5c
jne 0x4456c4
mov ecx, dword [ebp - 0x28]
call fcn.00445547
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x44]
and eax, 0x80
je 0x44566a
mov eax, dword [ebp - 0x28]
movsx eax, byte [eax + 0x3e]
cmp eax, 0x62
jne 0x44566a
push 4
mov ecx, dword [ebp - 0x28]
add ecx, 0x18
call fcn.00445c84
mov ecx, dword [ebp - 0x28]
call fcn.00445547
mov byte [ebp - 2], 0
jmp 0x4456bf
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x44]
and eax, 0x80
je 0x4456b7
mov eax, dword [ebp - 0x28]
movsx eax, byte [eax + 0x3e]
cmp eax, 0x42
jne 0x4456b7
push 4
mov ecx, dword [ebp - 0x28]
add ecx, 0x18
call fcn.00445c84
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x1c]
add eax, 8
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
xor eax, 1
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x28]
call fcn.00445547
mov byte [ebp - 2], 0
jmp 0x4456bf
mov ecx, dword [ebp - 0x28]
call fcn.004471fe
jmp 0x445811
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x40], 0x5b
jne 0x4456fc
mov ecx, dword [ebp - 0x28]
call fcn.00445547
mov ecx, dword [ebp - 0x28]
call fcn.00447165
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x40], 0x5d
je 0x4456ef
push 4
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::tr1::_Xbad_enum_std::tr1::regex_constants::error_type_]
pop ecx
mov ecx, dword [ebp - 0x28]
call fcn.00445547
jmp 0x445811
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x40], 0x28
jne 0x445737
mov ecx, dword [ebp - 0x28]
call fcn.00445547
mov ecx, dword [ebp - 0x28]
call fcn.0044731d
mov byte [ebp - 2], al
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x40], 0x29
je 0x44572a
push 5
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::tr1::_Xbad_enum_std::tr1::regex_constants::error_type_]
pop ecx
mov ecx, dword [ebp - 0x28]
call fcn.00445547
jmp 0x445811
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x40], 0x5e
jne 0x44575e
push 2
mov ecx, dword [ebp - 0x28]
add ecx, 0x18
call fcn.00445c84
mov ecx, dword [ebp - 0x28]
call fcn.00445547
mov byte [ebp - 2], 0
jmp 0x445811
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x40], 0x24
jne 0x445785
push 3
mov ecx, dword [ebp - 0x28]
add ecx, 0x18
call fcn.00445c84
mov ecx, dword [ebp - 0x28]
call fcn.00445547
mov byte [ebp - 2], 0
jmp 0x445811
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x40], 0x2a
je 0x4457a9
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x40], 0x2b
je 0x4457a9
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x40], 0x3f
je 0x4457a9
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x40], 0x7b
jne 0x4457b4
push 0xa
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::tr1::_Xbad_enum_std::tr1::regex_constants::error_type_]
pop ecx
jmp 0x445811
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x40], 0x7d
jne 0x4457d5
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x44]
and eax, 0x10000000
jne 0x4457d5
push 6
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::tr1::_Xbad_enum_std::tr1::regex_constants::error_type_]
pop ecx
jmp 0x445811
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x40], 0x5d
jne 0x4457f6
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x44]
and eax, 0x10000000
jne 0x4457f6
push 4
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::tr1::_Xbad_enum_std::tr1::regex_constants::error_type_]
pop ecx
jmp 0x445811
mov eax, dword [ebp - 0x28]
movzx eax, byte [eax + 0x3e]
push eax
mov ecx, dword [ebp - 0x28]
add ecx, 0x18
call fcn.00447590
mov ecx, dword [ebp - 0x28]
call fcn.00445547
movzx eax, byte [ebp - 2]
test eax, eax
je 0x445821
mov ecx, dword [ebp - 0x28]
call fcn.00447419
mov byte [ebp - 1], 1
jmp 0x4455a5
leave
ret