Function at 0x1001b190
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
push edi
mov edi, eax
xor ebx, ebx
xor al, al
cmp dword [edi + 0x40], 0xffffffff
je 0x1001b4f3
jmp 0x1001b1a7
xor ebx, ebx
mov ecx, dword [edi + 0x40]
mov esi, dword [sym.imp.MSVCP100.dll_void___cdecl_std::tr1::_Xbad_enum_std::tr1::regex_constants::error_type_]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x1001b4f3
cmp ecx, 0x29
jne 0x1001b1dd
cmp dword [edi + 0x10], ebx
jne 0x1001b4f3
test dword [edi + 0x44], edx
jne 0x1001b1dd
push 5
call esi
add esp, 4
jmp 0x1001b4e0
cmp ecx, 0x2e
jne 0x1001b27b
push 0x14
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
cmp eax, ebx
je 0x1001b20d
mov dword [eax], vtable.std::tr1::_Node_base.0
mov dword [eax + 4], 5
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
jmp 0x1001b20f
xor eax, eax
mov ecx, dword [edi + 0x1c]
mov dword [eax + 0x10], ecx
mov edx, dword [edi + 0x1c]
mov ecx, dword [edx + 0xc]
cmp ecx, ebx
je 0x1001b22b
mov dword [eax + 0xc], ecx
mov ecx, dword [edi + 0x1c]
mov edx, dword [ecx + 0xc]
mov dword [edx + 0x10], eax
mov ecx, dword [edi + 0x1c]
mov dword [ecx + 0xc], eax
mov dword [edi + 0x1c], eax
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x1001b26f
cmp byte [eax], 0x5c
jne 0x1001b26d
inc eax
cmp eax, ecx
je 0x1001b259
test byte [edi + 0x44], 8
jne 0x1001b259
mov cl, byte [eax]
cmp cl, 0x28
je 0x1001b26b
cmp cl, 0x29
je 0x1001b26b
test byte [edi + 0x44], 0x10
jne 0x1001b26d
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001b26b
cmp cl, 0x7d
jne 0x1001b26d
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.1001a180
jmp 0x1001b4e0
cmp ecx, 0x5c
jne 0x1001b391
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x1001b2bf
cmp byte [eax], 0x5c
jne 0x1001b2bd
inc eax
cmp eax, ecx
je 0x1001b2a9
test byte [edi + 0x44], 8
jne 0x1001b2a9
mov cl, byte [eax]
cmp cl, 0x28
je 0x1001b2bb
cmp cl, 0x29
je 0x1001b2bb
test byte [edi + 0x44], 0x10
jne 0x1001b2bd
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001b2bb
cmp cl, 0x7d
jne 0x1001b2bd
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.1001a180
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x1001b325
cmp byte [edi + 0x3e], 0x62
jne 0x1001b325
lea esi, [edi + 0x18]
call fcn.1001c9e0
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x1001b319
cmp byte [eax], 0x5c
jne 0x1001b317
inc eax
cmp eax, ecx
je 0x1001b303
test byte [edi + 0x44], 8
jne 0x1001b303
mov cl, byte [eax]
cmp cl, 0x28
je 0x1001b315
cmp cl, 0x29
je 0x1001b315
test byte [edi + 0x44], 0x10
jne 0x1001b317
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001b315
cmp cl, 0x7d
jne 0x1001b317
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.1001a180
jmp 0x1001b4e7
cmp eax, ebx
je 0x1001b385
cmp byte [edi + 0x3e], 0x42
jne 0x1001b385
lea esi, [edi + 0x18]
call fcn.1001c9e0
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x1001b379
cmp byte [eax], 0x5c
jne 0x1001b377
inc eax
cmp eax, ecx
je 0x1001b363
test byte [edi + 0x44], 8
jne 0x1001b363
mov cl, byte [eax]
cmp cl, 0x28
je 0x1001b375
cmp cl, 0x29
je 0x1001b375
test byte [edi + 0x44], 0x10
jne 0x1001b377
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001b375
cmp cl, 0x7d
jne 0x1001b377
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.1001a180
jmp 0x1001b4e7
mov eax, edi
call fcn.1001c670
jmp 0x1001b4e0
cmp ecx, 0x5b
jne 0x1001b437
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x1001b3d5
cmp byte [eax], 0x5c
jne 0x1001b3d3
inc eax
cmp eax, ecx
je 0x1001b3bf
test byte [edi + 0x44], 8
jne 0x1001b3bf
mov cl, byte [eax]
cmp cl, 0x28
je 0x1001b3d1
cmp cl, 0x29
je 0x1001b3d1
test byte [edi + 0x44], 0x10
jne 0x1001b3d3
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001b3d1
cmp cl, 0x7d
jne 0x1001b3d3
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.1001a180
call fcn.1001c5c0
cmp dword [edi + 0x40], 0x5d
je 0x1001b3f2
push 4
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::tr1::_Xbad_enum_std::tr1::regex_constants::error_type_]
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x1001b42d
cmp byte [eax], 0x5c
jne 0x1001b42b
inc eax
cmp eax, ecx
je 0x1001b417
test byte [edi + 0x44], 8
jne 0x1001b417
mov cl, byte [eax]
cmp cl, 0x28
je 0x1001b429
cmp cl, 0x29
je 0x1001b429
test byte [edi + 0x44], 0x10
jne 0x1001b42b
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001b429
cmp cl, 0x7d
jne 0x1001b42b
mov dword [edi], eax
inc dword [edi]
call fcn.1001a180
jmp 0x1001b4e0
cmp ecx, 0x28
jne 0x1001b4f7
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x1001b47b
cmp byte [eax], 0x5c
jne 0x1001b479
inc eax
cmp eax, ecx
je 0x1001b465
test byte [edi + 0x44], 8
jne 0x1001b465
mov cl, byte [eax]
cmp cl, 0x28
je 0x1001b477
cmp cl, 0x29
je 0x1001b477
test byte [edi + 0x44], 0x10
jne 0x1001b479
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001b477
cmp cl, 0x7d
jne 0x1001b479
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.1001a180
mov eax, edi
call fcn.1001c730
cmp dword [edi + 0x40], 0x29
mov bl, al
je 0x1001b49c
push 5
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::tr1::_Xbad_enum_std::tr1::regex_constants::error_type_]
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x1001b4d7
cmp byte [eax], 0x5c
jne 0x1001b4d5
inc eax
cmp eax, ecx
je 0x1001b4c1
test byte [edi + 0x44], 8
jne 0x1001b4c1
mov cl, byte [eax]
cmp cl, 0x28
je 0x1001b4d3
cmp cl, 0x29
je 0x1001b4d3
test byte [edi + 0x44], 0x10
jne 0x1001b4d5
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001b4d3
cmp cl, 0x7d
jne 0x1001b4d5
mov dword [edi], eax
inc dword [edi]
call fcn.1001a180
test bl, bl
je 0x1001b4e7
mov eax, edi
call fcn.1001c7e0
cmp dword [edi + 0x40], 0xffffffff
mov al, 1
jne 0x1001b1a5
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x1001b50d
lea esi, [edi + 0x18]
call fcn.1001c920
mov eax, edi
call fcn.1001b140
jmp 0x1001b4e7
cmp ecx, 0x24
jne 0x1001b523
lea esi, [edi + 0x18]
call fcn.1001c980
mov eax, edi
call fcn.1001b140
jmp 0x1001b4e7
cmp ecx, 0x2a
je 0x1001b576
cmp ecx, 0x2b
je 0x1001b576
cmp ecx, 0x3f
je 0x1001b576
cmp ecx, 0x7b
je 0x1001b576
cmp ecx, 0x7d
jne 0x1001b54a
test dword [edi + 0x44], edx
jne 0x1001b54a
push 6
call esi
add esp, 4
jmp 0x1001b4e0
cmp ecx, 0x5d
jne 0x1001b55d
test dword [edi + 0x44], edx
jne 0x1001b55d
push 4
call esi
add esp, 4
jmp 0x1001b4e0
movzx edx, byte [edi + 0x3e]
lea eax, [edi + 0x18]
push edx
call fcn.1001ca40
mov eax, edi
call fcn.1001b140
jmp 0x1001b4e0
push 0xa
call esi
add esp, 4
jmp 0x1001b4e0