Function at 0x1001f510
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
xor cl, cl
cmp dword [esi + 0x4c], 0xffffffff
push edi
je 0x1001f8d0
mov edi, dword [sym.imp.MSVCR110.dll_void____cdecl_operator_new_unsigned_int_]
jmp 0x1001f530
mov eax, dword [esi + 0x4c]
cmp eax, 0x7c
je 0x1001f8d0
cmp eax, 0x29
jne 0x1001f558
cmp dword [esi + 0x10], 0
jne 0x1001f8d0
test dword [esi + 0x50], 0x10000000
je 0x1001f8d6
cmp eax, 0x2e
jne 0x1001f607
push 0x14
call edi
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1001f592
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 0x1001f594
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 0x1001f5b0
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 0x1001f5fb
cmp word [eax], 0x5c
jne 0x1001f5f8
add eax, 2
cmp eax, ecx
je 0x1001f5f8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001f5e4
movzx edx, word [eax]
cmp edx, 0x28
je 0x1001f5f6
cmp edx, 0x29
je 0x1001f5f6
test cl, 0x10
jne 0x1001f5f8
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1001f5f6
cmp ecx, 0x7d
jne 0x1001f5f8
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1001efa0
jmp 0x1001f8bd
cmp eax, 0x5c
jne 0x1001f734
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001f652
cmp word [eax], 0x5c
jne 0x1001f64f
add eax, 2
cmp eax, ecx
je 0x1001f64f
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001f63b
movzx edx, word [eax]
cmp edx, 0x28
je 0x1001f64d
cmp edx, 0x29
je 0x1001f64d
test cl, 0x10
jne 0x1001f64f
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1001f64d
cmp ecx, 0x7d
jne 0x1001f64f
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1001efa0
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x1001f6c0
cmp word [esi + 0x48], 0x62
jne 0x1001f6c0
lea ecx, [esi + 0x24]
call fcn.10020540
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001f6b4
cmp word [eax], 0x5c
jne 0x1001f6b1
add eax, 2
cmp eax, ecx
je 0x1001f6b1
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1001f69d
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x1001f6af
cmp ecx, 0x29
je 0x1001f6af
test dl, 0x10
jne 0x1001f6b1
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1001f6af
cmp ecx, 0x7d
jne 0x1001f6b1
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1001efa0
jmp 0x1001f8c4
test eax, eax
je 0x1001f728
cmp word [esi + 0x48], 0x42
jne 0x1001f728
lea ecx, [esi + 0x24]
call fcn.10020540
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001f71c
cmp word [eax], 0x5c
jne 0x1001f719
add eax, 2
cmp eax, ecx
je 0x1001f719
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1001f705
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x1001f717
cmp ecx, 0x29
je 0x1001f717
test dl, 0x10
jne 0x1001f719
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1001f717
cmp ecx, 0x7d
jne 0x1001f719
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1001efa0
jmp 0x1001f8c4
mov ecx, esi
call fcn.100201a0
jmp 0x1001f8bd
cmp eax, 0x5b
jne 0x1001f7e5
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001f77f
cmp word [eax], 0x5c
jne 0x1001f77c
add eax, 2
cmp eax, ecx
je 0x1001f77c
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001f768
movzx edx, word [eax]
cmp edx, 0x28
je 0x1001f77a
cmp edx, 0x29
je 0x1001f77a
test cl, 0x10
jne 0x1001f77c
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1001f77a
cmp ecx, 0x7d
jne 0x1001f77c
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1001efa0
mov ecx, esi
call fcn.100200f0
cmp dword [esi + 0x4c], 0x5d
jne 0x1001f8de
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001f7d9
cmp word [eax], 0x5c
jne 0x1001f7d6
add eax, 2
cmp eax, ecx
je 0x1001f7d6
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001f7c2
movzx edx, word [eax]
cmp edx, 0x28
je 0x1001f7d4
cmp edx, 0x29
je 0x1001f7d4
test cl, 0x10
jne 0x1001f7d6
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1001f7d4
cmp ecx, 0x7d
jne 0x1001f7d6
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1001efa0
jmp 0x1001f8bd
cmp eax, 0x28
jne 0x1001f84d
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001f82c
cmp word [eax], 0x5c
jne 0x1001f829
add eax, 2
cmp eax, ecx
je 0x1001f829
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001f815
movzx edx, word [eax]
cmp edx, 0x28
je 0x1001f827
cmp edx, 0x29
je 0x1001f827
test cl, 0x10
jne 0x1001f829
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1001f827
cmp ecx, 0x7d
jne 0x1001f829
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.1001efa0
mov ecx, esi
call fcn.10020280
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.10020080
test bl, bl
je 0x1001f8c4
jmp 0x1001f8bd
cmp eax, 0x5e
jne 0x1001f863
lea ecx, [esi + 0x24]
call fcn.10020460
mov ecx, esi
call fcn.1001f4c0
jmp 0x1001f8c4
cmp eax, 0x24
jne 0x1001f879
lea ecx, [esi + 0x24]
call fcn.100204d0
mov ecx, esi
call fcn.1001f4c0
jmp 0x1001f8c4
cmp eax, 0x2a
je 0x1001f8ee
cmp eax, 0x2b
je 0x1001f8ee
cmp eax, 0x3f
je 0x1001f8ee
cmp eax, 0x7b
je 0x1001f8ee
cmp eax, 0x7d
jne 0x1001f89b
test dword [esi + 0x50], 0x10000000
je 0x1001f8e6
cmp eax, 0x5d
jne 0x1001f8a9
test dword [esi + 0x50], 0x10000000
je 0x1001f8de
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.100205b0
mov ecx, esi
call fcn.1001f4c0
mov ecx, esi
call fcn.10020330
cmp dword [esi + 0x4c], 0xffffffff
mov cl, 1
jne 0x1001f530
pop edi
pop esi
mov al, cl
pop ebx
ret
push 5
call dword [sym.imp.MSVCP110.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
push 4
call dword [sym.imp.MSVCP110.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
push 6
call dword [sym.imp.MSVCP110.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
push 0xa
call dword [sym.imp.MSVCP110.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
int3