Function at 0x1003e950
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
cmp dword [esi + 0x4c], 0xffffffff
je 0x1003ecea
mov edi, dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new_unsigned_int_]
jmp 0x1003e970
mov eax, dword [esi + 0x4c]
cmp eax, 0x7c
je 0x1003ecea
cmp eax, 0x29
jne 0x1003e998
cmp dword [esi + 0x10], 0
jne 0x1003ecea
test dword [esi + 0x50], 0x10000000
je 0x1003ecf0
cmp eax, 0x2e
jne 0x1003ea55
push 0x14
call edi
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1003e9e0
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 0x1003e9e2
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 0x1003e9fe
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 0x1003ea49
cmp word [eax], 0x5c
jne 0x1003ea46
add eax, 2
cmp eax, ecx
je 0x1003ea46
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003ea32
movzx edx, word [eax]
cmp edx, 0x28
je 0x1003ea44
cmp edx, 0x29
je 0x1003ea44
test cl, 0x10
jne 0x1003ea46
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1003ea44
cmp ecx, 0x7d
jne 0x1003ea46
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1003ce70
jmp 0x1003ecd7
cmp eax, 0x5c
jne 0x1003eb44
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1003eaa0
cmp word [eax], 0x5c
jne 0x1003ea9d
add eax, 2
cmp eax, ecx
je 0x1003ea9d
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003ea89
movzx edx, word [eax]
cmp edx, 0x28
je 0x1003ea9b
cmp edx, 0x29
je 0x1003ea9b
test cl, 0x10
jne 0x1003ea9d
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1003ea9b
cmp ecx, 0x7d
jne 0x1003ea9d
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1003ce70
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x1003eb10
cmp word [esi + 0x48], 0x62
jne 0x1003eb10
push 4
lea ecx, [esi + 0x24]
call fcn.1003ef10
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1003eb04
cmp word [eax], 0x5c
jne 0x1003eb01
add eax, 2
cmp eax, ecx
je 0x1003eb01
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1003eaed
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x1003eaff
cmp ecx, 0x29
je 0x1003eaff
test dl, 0x10
jne 0x1003eb01
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1003eaff
cmp ecx, 0x7d
jne 0x1003eb01
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1003ce70
jmp 0x1003ecde
test eax, eax
je 0x1003eb38
cmp word [esi + 0x48], 0x42
jne 0x1003eb38
push 4
lea ecx, [esi + 0x24]
call fcn.1003ef10
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.1003e900
jmp 0x1003ecde
mov ecx, esi
call fcn.10040a80
jmp 0x1003ecd7
cmp eax, 0x5b
jne 0x1003ebf5
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1003eb8f
cmp word [eax], 0x5c
jne 0x1003eb8c
add eax, 2
cmp eax, ecx
je 0x1003eb8c
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003eb78
movzx edx, word [eax]
cmp edx, 0x28
je 0x1003eb8a
cmp edx, 0x29
je 0x1003eb8a
test cl, 0x10
jne 0x1003eb8c
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1003eb8a
cmp ecx, 0x7d
jne 0x1003eb8c
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1003ce70
mov ecx, esi
call fcn.10040a10
cmp dword [esi + 0x4c], 0x5d
jne 0x1003ecf8
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1003ebe9
cmp word [eax], 0x5c
jne 0x1003ebe6
add eax, 2
cmp eax, ecx
je 0x1003ebe6
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003ebd2
movzx edx, word [eax]
cmp edx, 0x28
je 0x1003ebe4
cmp edx, 0x29
je 0x1003ebe4
test cl, 0x10
jne 0x1003ebe6
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1003ebe4
cmp ecx, 0x7d
jne 0x1003ebe6
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1003ce70
jmp 0x1003ecd7
cmp eax, 0x28
jne 0x1003ec63
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1003ec3c
cmp word [eax], 0x5c
jne 0x1003ec39
add eax, 2
cmp eax, ecx
je 0x1003ec39
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003ec25
movzx edx, word [eax]
cmp edx, 0x28
je 0x1003ec37
cmp edx, 0x29
je 0x1003ec37
test cl, 0x10
jne 0x1003ec39
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1003ec37
cmp ecx, 0x7d
jne 0x1003ec39
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1003ce70
mov ecx, esi
call fcn.10040b50
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1003ecf0
mov ecx, esi
call fcn.1003e900
test bl, bl
je 0x1003ecde
jmp 0x1003ecd7
cmp eax, 0x5e
jne 0x1003ec7b
push 2
lea ecx, [esi + 0x24]
call fcn.1003ef10
mov ecx, esi
call fcn.1003e900
jmp 0x1003ecde
cmp eax, 0x24
jne 0x1003ec93
push 3
lea ecx, [esi + 0x24]
call fcn.1003ef10
mov ecx, esi
call fcn.1003e900
jmp 0x1003ecde
cmp eax, 0x2a
je 0x1003ed08
cmp eax, 0x2b
je 0x1003ed08
cmp eax, 0x3f
je 0x1003ed08
cmp eax, 0x7b
je 0x1003ed08
cmp eax, 0x7d
jne 0x1003ecb5
test dword [esi + 0x50], 0x10000000
je 0x1003ed00
cmp eax, 0x5d
jne 0x1003ecc3
test dword [esi + 0x50], 0x10000000
je 0x1003ecf8
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10040d30
mov ecx, esi
call fcn.1003e900
mov ecx, esi
call fcn.10040c00
cmp dword [esi + 0x4c], 0xffffffff
mov cl, 1
jne 0x1003e970
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