Function at 0x100f77d0
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 0x100f7aad
jmp 0x100f77e7
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 0x100f7aad
cmp ecx, 0x29
jne 0x100f781d
cmp dword [edi + 0x10], ebx
jne 0x100f7aad
test dword [edi + 0x44], edx
jne 0x100f781d
push 5
call esi
add esp, 4
jmp 0x100f7a9a
cmp ecx, 0x2e
jne 0x100f78bb
push 0x14
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
cmp eax, ebx
je 0x100f784d
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 0x100f784f
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 0x100f786b
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 0x100f78af
cmp byte [eax], 0x5c
jne 0x100f78ad
inc eax
cmp eax, ecx
je 0x100f7899
test byte [edi + 0x44], 8
jne 0x100f7899
mov cl, byte [eax]
cmp cl, 0x28
je 0x100f78ab
cmp cl, 0x29
je 0x100f78ab
test byte [edi + 0x44], 0x10
jne 0x100f78ad
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100f78ab
cmp cl, 0x7d
jne 0x100f78ad
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100f65c0
jmp 0x100f7a9a
cmp ecx, 0x5c
jne 0x100f7996
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x100f78ff
cmp byte [eax], 0x5c
jne 0x100f78fd
inc eax
cmp eax, ecx
je 0x100f78e9
test byte [edi + 0x44], 8
jne 0x100f78e9
mov cl, byte [eax]
cmp cl, 0x28
je 0x100f78fb
cmp cl, 0x29
je 0x100f78fb
test byte [edi + 0x44], 0x10
jne 0x100f78fd
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100f78fb
cmp cl, 0x7d
jne 0x100f78fd
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100f65c0
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x100f7965
cmp byte [edi + 0x3e], 0x62
jne 0x100f7965
lea esi, [edi + 0x18]
call fcn.100f8b90
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x100f7959
cmp byte [eax], 0x5c
jne 0x100f7957
inc eax
cmp eax, ecx
je 0x100f7943
test byte [edi + 0x44], 8
jne 0x100f7943
mov cl, byte [eax]
cmp cl, 0x28
je 0x100f7955
cmp cl, 0x29
je 0x100f7955
test byte [edi + 0x44], 0x10
jne 0x100f7957
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100f7955
cmp cl, 0x7d
jne 0x100f7957
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100f65c0
jmp 0x100f7aa1
cmp eax, ebx
je 0x100f798a
cmp byte [edi + 0x3e], 0x42
jne 0x100f798a
lea esi, [edi + 0x18]
call fcn.100f8b90
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, edi
call fcn.100f7780
jmp 0x100f7aa1
mov eax, edi
call fcn.100f87f0
jmp 0x100f7a9a
cmp ecx, 0x5b
jne 0x100f7a39
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x100f79da
cmp byte [eax], 0x5c
jne 0x100f79d8
inc eax
cmp eax, ecx
je 0x100f79c4
test byte [edi + 0x44], 8
jne 0x100f79c4
mov cl, byte [eax]
cmp cl, 0x28
je 0x100f79d6
cmp cl, 0x29
je 0x100f79d6
test byte [edi + 0x44], 0x10
jne 0x100f79d8
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100f79d6
cmp cl, 0x7d
jne 0x100f79d8
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100f65c0
call fcn.100f8740
cmp dword [edi + 0x40], 0x5d
je 0x100f79f7
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 0x100f7a32
cmp byte [eax], 0x5c
jne 0x100f7a30
inc eax
cmp eax, ecx
je 0x100f7a1c
test byte [edi + 0x44], 8
jne 0x100f7a1c
mov cl, byte [eax]
cmp cl, 0x28
je 0x100f7a2e
cmp cl, 0x29
je 0x100f7a2e
test byte [edi + 0x44], 0x10
jne 0x100f7a30
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100f7a2e
cmp cl, 0x7d
jne 0x100f7a30
mov dword [edi], eax
inc dword [edi]
call fcn.100f65c0
jmp 0x100f7a9a
cmp ecx, 0x28
jne 0x100f7ab1
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x100f7a79
cmp byte [eax], 0x5c
jne 0x100f7a77
inc eax
cmp eax, ecx
je 0x100f7a63
test byte [edi + 0x44], 8
jne 0x100f7a63
mov cl, byte [eax]
cmp cl, 0x28
je 0x100f7a75
cmp cl, 0x29
je 0x100f7a75
test byte [edi + 0x44], 0x10
jne 0x100f7a77
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100f7a75
cmp cl, 0x7d
jne 0x100f7a77
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100f65c0
push edi
call fcn.100f88b0
mov bl, al
push 0x29
mov ecx, 5
mov eax, edi
call fcn.100f86e0
test bl, bl
je 0x100f7aa1
mov eax, edi
call fcn.100f8990
cmp dword [edi + 0x40], 0xffffffff
mov al, 1
jne 0x100f77e5
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x100f7ac7
lea esi, [edi + 0x18]
call fcn.100f8ad0
mov eax, edi
call fcn.100f7780
jmp 0x100f7aa1
cmp ecx, 0x24
jne 0x100f7add
lea esi, [edi + 0x18]
call fcn.100f8b30
mov eax, edi
call fcn.100f7780
jmp 0x100f7aa1
cmp ecx, 0x2a
je 0x100f7b30
cmp ecx, 0x2b
je 0x100f7b30
cmp ecx, 0x3f
je 0x100f7b30
cmp ecx, 0x7b
je 0x100f7b30
cmp ecx, 0x7d
jne 0x100f7b04
test dword [edi + 0x44], edx
jne 0x100f7b04
push 6
call esi
add esp, 4
jmp 0x100f7a9a
cmp ecx, 0x5d
jne 0x100f7b17
test dword [edi + 0x44], edx
jne 0x100f7b17
push 4
call esi
add esp, 4
jmp 0x100f7a9a
movzx edx, byte [edi + 0x3e]
lea eax, [edi + 0x18]
push edx
call fcn.100f8bf0
mov eax, edi
call fcn.100f7780
jmp 0x100f7a9a
push 0xa
call esi
add esp, 4
jmp 0x100f7a9a