Function at 0x10009be0
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 0x10009f41
jmp 0x10009bf7
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 0x10009f41
cmp ecx, 0x29
jne 0x10009c2d
cmp dword [edi + 0x10], ebx
jne 0x10009f41
test dword [edi + 0x44], edx
jne 0x10009c2d
push 5
call esi
add esp, 4
jmp 0x10009f2e
cmp ecx, 0x2e
jne 0x10009ccb
push 0x14
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
cmp eax, ebx
je 0x10009c5d
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 0x10009c5f
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 0x10009c7b
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 0x10009cbf
cmp byte [eax], 0x5c
jne 0x10009cbd
inc eax
cmp eax, ecx
je 0x10009ca9
test byte [edi + 0x44], 8
jne 0x10009ca9
mov cl, byte [eax]
cmp cl, 0x28
je 0x10009cbb
cmp cl, 0x29
je 0x10009cbb
test byte [edi + 0x44], 0x10
jne 0x10009cbd
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10009cbb
cmp cl, 0x7d
jne 0x10009cbd
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100088e0
jmp 0x10009f2e
cmp ecx, 0x5c
jne 0x10009de1
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x10009d0f
cmp byte [eax], 0x5c
jne 0x10009d0d
inc eax
cmp eax, ecx
je 0x10009cf9
test byte [edi + 0x44], 8
jne 0x10009cf9
mov cl, byte [eax]
cmp cl, 0x28
je 0x10009d0b
cmp cl, 0x29
je 0x10009d0b
test byte [edi + 0x44], 0x10
jne 0x10009d0d
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10009d0b
cmp cl, 0x7d
jne 0x10009d0d
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100088e0
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x10009d75
cmp byte [edi + 0x3e], 0x62
jne 0x10009d75
lea esi, [edi + 0x18]
call fcn.1000b250
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x10009d69
cmp byte [eax], 0x5c
jne 0x10009d67
inc eax
cmp eax, ecx
je 0x10009d53
test byte [edi + 0x44], 8
jne 0x10009d53
mov cl, byte [eax]
cmp cl, 0x28
je 0x10009d65
cmp cl, 0x29
je 0x10009d65
test byte [edi + 0x44], 0x10
jne 0x10009d67
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10009d65
cmp cl, 0x7d
jne 0x10009d67
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100088e0
jmp 0x10009f35
cmp eax, ebx
je 0x10009dd5
cmp byte [edi + 0x3e], 0x42
jne 0x10009dd5
lea esi, [edi + 0x18]
call fcn.1000b250
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x10009dc9
cmp byte [eax], 0x5c
jne 0x10009dc7
inc eax
cmp eax, ecx
je 0x10009db3
test byte [edi + 0x44], 8
jne 0x10009db3
mov cl, byte [eax]
cmp cl, 0x28
je 0x10009dc5
cmp cl, 0x29
je 0x10009dc5
test byte [edi + 0x44], 0x10
jne 0x10009dc7
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10009dc5
cmp cl, 0x7d
jne 0x10009dc7
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100088e0
jmp 0x10009f35
mov eax, edi
call fcn.1000af00
jmp 0x10009f2e
cmp ecx, 0x5b
jne 0x10009e87
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x10009e25
cmp byte [eax], 0x5c
jne 0x10009e23
inc eax
cmp eax, ecx
je 0x10009e0f
test byte [edi + 0x44], 8
jne 0x10009e0f
mov cl, byte [eax]
cmp cl, 0x28
je 0x10009e21
cmp cl, 0x29
je 0x10009e21
test byte [edi + 0x44], 0x10
jne 0x10009e23
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10009e21
cmp cl, 0x7d
jne 0x10009e23
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100088e0
call fcn.1000ae20
cmp dword [edi + 0x40], 0x5d
je 0x10009e42
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 0x10009e7d
cmp byte [eax], 0x5c
jne 0x10009e7b
inc eax
cmp eax, ecx
je 0x10009e67
test byte [edi + 0x44], 8
jne 0x10009e67
mov cl, byte [eax]
cmp cl, 0x28
je 0x10009e79
cmp cl, 0x29
je 0x10009e79
test byte [edi + 0x44], 0x10
jne 0x10009e7b
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10009e79
cmp cl, 0x7d
jne 0x10009e7b
mov dword [edi], eax
inc dword [edi]
call fcn.100088e0
jmp 0x10009f2e
cmp ecx, 0x28
jne 0x10009f45
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x10009ecb
cmp byte [eax], 0x5c
jne 0x10009ec9
inc eax
cmp eax, ecx
je 0x10009eb5
test byte [edi + 0x44], 8
jne 0x10009eb5
mov cl, byte [eax]
cmp cl, 0x28
je 0x10009ec7
cmp cl, 0x29
je 0x10009ec7
test byte [edi + 0x44], 0x10
jne 0x10009ec9
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10009ec7
cmp cl, 0x7d
jne 0x10009ec9
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100088e0
call fcn.1000afb0
cmp dword [edi + 0x40], 0x29
mov bl, al
je 0x10009eea
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 0x10009f25
cmp byte [eax], 0x5c
jne 0x10009f23
inc eax
cmp eax, ecx
je 0x10009f0f
test byte [edi + 0x44], 8
jne 0x10009f0f
mov cl, byte [eax]
cmp cl, 0x28
je 0x10009f21
cmp cl, 0x29
je 0x10009f21
test byte [edi + 0x44], 0x10
jne 0x10009f23
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10009f21
cmp cl, 0x7d
jne 0x10009f23
mov dword [edi], eax
inc dword [edi]
call fcn.100088e0
test bl, bl
je 0x10009f35
mov eax, edi
call fcn.1000b060
cmp dword [edi + 0x40], 0xffffffff
mov al, 1
jne 0x10009bf5
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x10009f5b
lea esi, [edi + 0x18]
call fcn.1000b190
mov eax, edi
call fcn.10009b90
jmp 0x10009f35
cmp ecx, 0x24
jne 0x10009f71
lea esi, [edi + 0x18]
call fcn.1000b1f0
mov eax, edi
call fcn.10009b90
jmp 0x10009f35
cmp ecx, 0x2a
je 0x10009fc5
cmp ecx, 0x2b
je 0x10009fc5
cmp ecx, 0x3f
je 0x10009fc5
cmp ecx, 0x7b
je 0x10009fc5
cmp ecx, 0x7d
jne 0x10009f98
test dword [edi + 0x44], edx
jne 0x10009f98
push 6
call esi
add esp, 4
jmp 0x10009f2e
cmp ecx, 0x5d
jne 0x10009fab
test dword [edi + 0x44], edx
jne 0x10009fab
push 4
call esi
add esp, 4
jmp 0x10009f2e
movzx edx, byte [edi + 0x3e]
lea eax, [edi + 0x18]
push edx
push eax
call fcn.1000b2b0
mov eax, edi
call fcn.10009b90
jmp 0x10009f2e
push 0xa
call esi
add esp, 4
jmp 0x10009f2e