Function at 0x1003fdb0
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x10040149
mov edi, dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new_unsigned_int_]
lea esp, [esp]
cmp eax, 0x7c
je 0x10040149
cmp eax, 0x29
jne 0x1003fdf5
cmp dword [esi + 0x10], 0
jne 0x10040149
test dword [esi + 0x50], 0x10000000
je 0x1004014f
cmp eax, 0x2e
jne 0x1003feb2
push 0x14
call edi
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1003fe3d
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 0x1003fe3f
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 0x1003fe5b
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 0x1003fea6
cmp word [eax], 0x5c
jne 0x1003fea3
add eax, 2
cmp eax, ecx
je 0x1003fea3
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003fe8f
movzx edx, word [eax]
cmp edx, 0x28
je 0x1003fea1
cmp edx, 0x29
je 0x1003fea1
test cl, 0x10
jne 0x1003fea3
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1003fea1
cmp ecx, 0x7d
jne 0x1003fea3
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1003ded0
jmp 0x10040134
cmp eax, 0x5c
jne 0x1003ffa1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1003fefd
cmp word [eax], 0x5c
jne 0x1003fefa
add eax, 2
cmp eax, ecx
je 0x1003fefa
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003fee6
movzx edx, word [eax]
cmp edx, 0x28
je 0x1003fef8
cmp edx, 0x29
je 0x1003fef8
test cl, 0x10
jne 0x1003fefa
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1003fef8
cmp ecx, 0x7d
jne 0x1003fefa
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1003ded0
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x1003ff6d
cmp word [esi + 0x48], 0x62
jne 0x1003ff6d
push 4
lea ecx, [esi + 0x24]
call fcn.1003ef10
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1003ff61
cmp word [eax], 0x5c
jne 0x1003ff5e
add eax, 2
cmp eax, ecx
je 0x1003ff5e
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1003ff4a
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x1003ff5c
cmp ecx, 0x29
je 0x1003ff5c
test dl, 0x10
jne 0x1003ff5e
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1003ff5c
cmp ecx, 0x7d
jne 0x1003ff5e
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1003ded0
jmp 0x1004013b
test eax, eax
je 0x1003ff95
cmp word [esi + 0x48], 0x42
jne 0x1003ff95
push 4
lea ecx, [esi + 0x24]
call fcn.1003ef10
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.1003fd60
jmp 0x1004013b
mov ecx, esi
call fcn.10041440
jmp 0x10040134
cmp eax, 0x5b
jne 0x10040052
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1003ffec
cmp word [eax], 0x5c
jne 0x1003ffe9
add eax, 2
cmp eax, ecx
je 0x1003ffe9
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003ffd5
movzx edx, word [eax]
cmp edx, 0x28
je 0x1003ffe7
cmp edx, 0x29
je 0x1003ffe7
test cl, 0x10
jne 0x1003ffe9
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1003ffe7
cmp ecx, 0x7d
jne 0x1003ffe9
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1003ded0
mov ecx, esi
call fcn.100413d0
cmp dword [esi + 0x4c], 0x5d
jne 0x10040157
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10040046
cmp word [eax], 0x5c
jne 0x10040043
add eax, 2
cmp eax, ecx
je 0x10040043
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1004002f
movzx edx, word [eax]
cmp edx, 0x28
je 0x10040041
cmp edx, 0x29
je 0x10040041
test cl, 0x10
jne 0x10040043
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x10040041
cmp ecx, 0x7d
jne 0x10040043
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1003ded0
jmp 0x10040134
cmp eax, 0x28
jne 0x100400c0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10040099
cmp word [eax], 0x5c
jne 0x10040096
add eax, 2
cmp eax, ecx
je 0x10040096
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10040082
movzx edx, word [eax]
cmp edx, 0x28
je 0x10040094
cmp edx, 0x29
je 0x10040094
test cl, 0x10
jne 0x10040096
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x10040094
cmp ecx, 0x7d
jne 0x10040096
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1003ded0
mov ecx, esi
call fcn.10041510
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1004014f
mov ecx, esi
call fcn.1003fd60
test bl, bl
je 0x1004013b
jmp 0x10040134
cmp eax, 0x5e
jne 0x100400d8
push 2
lea ecx, [esi + 0x24]
call fcn.1003ef10
mov ecx, esi
call fcn.1003fd60
jmp 0x1004013b
cmp eax, 0x24
jne 0x100400f0
push 3
lea ecx, [esi + 0x24]
call fcn.1003ef10
mov ecx, esi
call fcn.1003fd60
jmp 0x1004013b
cmp eax, 0x2a
je 0x10040167
cmp eax, 0x2b
je 0x10040167
cmp eax, 0x3f
je 0x10040167
cmp eax, 0x7b
je 0x10040167
cmp eax, 0x7d
jne 0x10040112
test dword [esi + 0x50], 0x10000000
je 0x1004015f
cmp eax, 0x5d
jne 0x10040120
test dword [esi + 0x50], 0x10000000
je 0x10040157
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10040d30
mov ecx, esi
call fcn.1003fd60
mov ecx, esi
call fcn.100415c0
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x1003fdd0
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