Function at 0x1002ae40
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 0x1002b1a3
jmp 0x1002ae57
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 0x1002b1a3
cmp ecx, 0x29
jne 0x1002ae8d
cmp dword [edi + 0x10], ebx
jne 0x1002b1a3
test dword [edi + 0x44], edx
jne 0x1002ae8d
push 5
call esi
add esp, 4
jmp 0x1002b190
cmp ecx, 0x2e
jne 0x1002af2b
push 0x14
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
cmp eax, ebx
je 0x1002aebd
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 0x1002aebf
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 0x1002aedb
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 0x1002af1f
cmp byte [eax], 0x5c
jne 0x1002af1d
inc eax
cmp eax, ecx
je 0x1002af09
test byte [edi + 0x44], 8
jne 0x1002af09
mov cl, byte [eax]
cmp cl, 0x28
je 0x1002af1b
cmp cl, 0x29
je 0x1002af1b
test byte [edi + 0x44], 0x10
jne 0x1002af1d
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1002af1b
cmp cl, 0x7d
jne 0x1002af1d
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100288f0
jmp 0x1002b190
cmp ecx, 0x5c
jne 0x1002b041
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x1002af6f
cmp byte [eax], 0x5c
jne 0x1002af6d
inc eax
cmp eax, ecx
je 0x1002af59
test byte [edi + 0x44], 8
jne 0x1002af59
mov cl, byte [eax]
cmp cl, 0x28
je 0x1002af6b
cmp cl, 0x29
je 0x1002af6b
test byte [edi + 0x44], 0x10
jne 0x1002af6d
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1002af6b
cmp cl, 0x7d
jne 0x1002af6d
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100288f0
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x1002afd5
cmp byte [edi + 0x3e], 0x62
jne 0x1002afd5
lea esi, [edi + 0x18]
call fcn.1002cc00
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x1002afc9
cmp byte [eax], 0x5c
jne 0x1002afc7
inc eax
cmp eax, ecx
je 0x1002afb3
test byte [edi + 0x44], 8
jne 0x1002afb3
mov cl, byte [eax]
cmp cl, 0x28
je 0x1002afc5
cmp cl, 0x29
je 0x1002afc5
test byte [edi + 0x44], 0x10
jne 0x1002afc7
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1002afc5
cmp cl, 0x7d
jne 0x1002afc7
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100288f0
jmp 0x1002b197
cmp eax, ebx
je 0x1002b035
cmp byte [edi + 0x3e], 0x42
jne 0x1002b035
lea esi, [edi + 0x18]
call fcn.1002cc00
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x1002b029
cmp byte [eax], 0x5c
jne 0x1002b027
inc eax
cmp eax, ecx
je 0x1002b013
test byte [edi + 0x44], 8
jne 0x1002b013
mov cl, byte [eax]
cmp cl, 0x28
je 0x1002b025
cmp cl, 0x29
je 0x1002b025
test byte [edi + 0x44], 0x10
jne 0x1002b027
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1002b025
cmp cl, 0x7d
jne 0x1002b027
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100288f0
jmp 0x1002b197
mov eax, edi
call fcn.1002c890
jmp 0x1002b190
cmp ecx, 0x5b
jne 0x1002b0e7
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x1002b085
cmp byte [eax], 0x5c
jne 0x1002b083
inc eax
cmp eax, ecx
je 0x1002b06f
test byte [edi + 0x44], 8
jne 0x1002b06f
mov cl, byte [eax]
cmp cl, 0x28
je 0x1002b081
cmp cl, 0x29
je 0x1002b081
test byte [edi + 0x44], 0x10
jne 0x1002b083
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1002b081
cmp cl, 0x7d
jne 0x1002b083
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100288f0
call fcn.1002c7e0
cmp dword [edi + 0x40], 0x5d
je 0x1002b0a2
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 0x1002b0dd
cmp byte [eax], 0x5c
jne 0x1002b0db
inc eax
cmp eax, ecx
je 0x1002b0c7
test byte [edi + 0x44], 8
jne 0x1002b0c7
mov cl, byte [eax]
cmp cl, 0x28
je 0x1002b0d9
cmp cl, 0x29
je 0x1002b0d9
test byte [edi + 0x44], 0x10
jne 0x1002b0db
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1002b0d9
cmp cl, 0x7d
jne 0x1002b0db
mov dword [edi], eax
inc dword [edi]
call fcn.100288f0
jmp 0x1002b190
cmp ecx, 0x28
jne 0x1002b1a7
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x1002b12b
cmp byte [eax], 0x5c
jne 0x1002b129
inc eax
cmp eax, ecx
je 0x1002b115
test byte [edi + 0x44], 8
jne 0x1002b115
mov cl, byte [eax]
cmp cl, 0x28
je 0x1002b127
cmp cl, 0x29
je 0x1002b127
test byte [edi + 0x44], 0x10
jne 0x1002b129
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1002b127
cmp cl, 0x7d
jne 0x1002b129
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100288f0
mov eax, edi
call fcn.1002c950
cmp dword [edi + 0x40], 0x29
mov bl, al
je 0x1002b14c
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 0x1002b187
cmp byte [eax], 0x5c
jne 0x1002b185
inc eax
cmp eax, ecx
je 0x1002b171
test byte [edi + 0x44], 8
jne 0x1002b171
mov cl, byte [eax]
cmp cl, 0x28
je 0x1002b183
cmp cl, 0x29
je 0x1002b183
test byte [edi + 0x44], 0x10
jne 0x1002b185
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1002b183
cmp cl, 0x7d
jne 0x1002b185
mov dword [edi], eax
inc dword [edi]
call fcn.100288f0
test bl, bl
je 0x1002b197
mov eax, edi
call fcn.1002ca00
cmp dword [edi + 0x40], 0xffffffff
mov al, 1
jne 0x1002ae55
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x1002b1bd
lea esi, [edi + 0x18]
call fcn.1002cb40
mov eax, edi
call fcn.1002adf0
jmp 0x1002b197
cmp ecx, 0x24
jne 0x1002b1d3
lea esi, [edi + 0x18]
call fcn.1002cba0
mov eax, edi
call fcn.1002adf0
jmp 0x1002b197
cmp ecx, 0x2a
je 0x1002b226
cmp ecx, 0x2b
je 0x1002b226
cmp ecx, 0x3f
je 0x1002b226
cmp ecx, 0x7b
je 0x1002b226
cmp ecx, 0x7d
jne 0x1002b1fa
test dword [edi + 0x44], edx
jne 0x1002b1fa
push 6
call esi
add esp, 4
jmp 0x1002b190
cmp ecx, 0x5d
jne 0x1002b20d
test dword [edi + 0x44], edx
jne 0x1002b20d
push 4
call esi
add esp, 4
jmp 0x1002b190
movzx edx, byte [edi + 0x3e]
lea eax, [edi + 0x18]
push edx
call fcn.1002cc60
mov eax, edi
call fcn.1002adf0
jmp 0x1002b190
push 0xa
call esi
add esp, 4
jmp 0x1002b190