Function at 0x41f690
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
cmp dword [esi + 0x4c], 0xffffffff
je 0x41fa2a
mov edi, dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new_unsigned_int_]
jmp 0x41f6b0
mov eax, dword [esi + 0x4c]
cmp eax, 0x7c
je 0x41fa2a
cmp eax, 0x29
jne 0x41f6d8
cmp dword [esi + 0x10], 0
jne 0x41fa2a
test dword [esi + 0x50], 0x10000000
je 0x41fa30
cmp eax, 0x2e
jne 0x41f795
push 0x14
call edi
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x41f720
xorps xmm0, xmm0
movdqu xmmword [ecx], xmm0
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 dword [ecx + 0x10], 0
jmp 0x41f722
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 0x41f73e
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 0x41f789
cmp word [eax], 0x5c
jne 0x41f786
add eax, 2
cmp eax, ecx
je 0x41f786
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41f772
movzx edx, word [eax]
cmp edx, 0x28
je 0x41f784
cmp edx, 0x29
je 0x41f784
test cl, 0x10
jne 0x41f786
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x41f784
cmp ecx, 0x7d
jne 0x41f786
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0041ddd0
jmp 0x41fa17
cmp eax, 0x5c
jne 0x41f884
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41f7e0
cmp word [eax], 0x5c
jne 0x41f7dd
add eax, 2
cmp eax, ecx
je 0x41f7dd
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41f7c9
movzx edx, word [eax]
cmp edx, 0x28
je 0x41f7db
cmp edx, 0x29
je 0x41f7db
test cl, 0x10
jne 0x41f7dd
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x41f7db
cmp ecx, 0x7d
jne 0x41f7dd
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0041ddd0
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x41f850
cmp word [esi + 0x48], 0x62
jne 0x41f850
push 4
lea ecx, [esi + 0x24]
call fcn.0041fc50
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41f844
cmp word [eax], 0x5c
jne 0x41f841
add eax, 2
cmp eax, ecx
je 0x41f841
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x41f82d
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x41f83f
cmp ecx, 0x29
je 0x41f83f
test dl, 0x10
jne 0x41f841
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x41f83f
cmp ecx, 0x7d
jne 0x41f841
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0041ddd0
jmp 0x41fa1e
test eax, eax
je 0x41f878
cmp word [esi + 0x48], 0x42
jne 0x41f878
push 4
lea ecx, [esi + 0x24]
call fcn.0041fc50
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.0041f640
jmp 0x41fa1e
mov ecx, esi
call fcn.00420ee0
jmp 0x41fa17
cmp eax, 0x5b
jne 0x41f935
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41f8cf
cmp word [eax], 0x5c
jne 0x41f8cc
add eax, 2
cmp eax, ecx
je 0x41f8cc
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41f8b8
movzx edx, word [eax]
cmp edx, 0x28
je 0x41f8ca
cmp edx, 0x29
je 0x41f8ca
test cl, 0x10
jne 0x41f8cc
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x41f8ca
cmp ecx, 0x7d
jne 0x41f8cc
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0041ddd0
mov ecx, esi
call fcn.00420e70
cmp dword [esi + 0x4c], 0x5d
jne 0x41fa38
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41f929
cmp word [eax], 0x5c
jne 0x41f926
add eax, 2
cmp eax, ecx
je 0x41f926
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41f912
movzx edx, word [eax]
cmp edx, 0x28
je 0x41f924
cmp edx, 0x29
je 0x41f924
test cl, 0x10
jne 0x41f926
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x41f924
cmp ecx, 0x7d
jne 0x41f926
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0041ddd0
jmp 0x41fa17
cmp eax, 0x28
jne 0x41f9a3
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41f97c
cmp word [eax], 0x5c
jne 0x41f979
add eax, 2
cmp eax, ecx
je 0x41f979
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41f965
movzx edx, word [eax]
cmp edx, 0x28
je 0x41f977
cmp edx, 0x29
je 0x41f977
test cl, 0x10
jne 0x41f979
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x41f977
cmp ecx, 0x7d
jne 0x41f979
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0041ddd0
mov ecx, esi
call fcn.00420fb0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x41fa30
mov ecx, esi
call fcn.0041f640
test bl, bl
je 0x41fa1e
jmp 0x41fa17
cmp eax, 0x5e
jne 0x41f9bb
push 2
lea ecx, [esi + 0x24]
call fcn.0041fc50
mov ecx, esi
call fcn.0041f640
jmp 0x41fa1e
cmp eax, 0x24
jne 0x41f9d3
push 3
lea ecx, [esi + 0x24]
call fcn.0041fc50
mov ecx, esi
call fcn.0041f640
jmp 0x41fa1e
cmp eax, 0x2a
je 0x41fa48
cmp eax, 0x2b
je 0x41fa48
cmp eax, 0x3f
je 0x41fa48
cmp eax, 0x7b
je 0x41fa48
cmp eax, 0x7d
jne 0x41f9f5
test dword [esi + 0x50], 0x10000000
je 0x41fa40
cmp eax, 0x5d
jne 0x41fa03
test dword [esi + 0x50], 0x10000000
je 0x41fa38
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00421190
mov ecx, esi
call fcn.0041f640
mov ecx, esi
call fcn.00421060
cmp dword [esi + 0x4c], 0xffffffff
mov cl, 1
jne 0x41f6b0
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