Function at 0x1000fe40
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], 0xffff
je 0x10010152
jmp 0x1000fe62
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 0x10010152
cmp ecx, 0x29
jne 0x1000fe98
cmp dword [edi + 0x10], ebx
jne 0x10010152
test dword [edi + 0x44], edx
jne 0x1000fe98
push 5
call esi
add esp, 4
jmp 0x1001013c
cmp ecx, 0x2e
jne 0x1000ff3c
push 0x14
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
cmp eax, ebx
je 0x1000fec8
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 0x1000feca
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 0x1000fee6
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 0x1000ff30
cmp word [eax], 0x5c
jne 0x1000ff2d
add eax, 2
cmp eax, ecx
je 0x1000ff18
test byte [edi + 0x44], 8
jne 0x1000ff18
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x1000ff2b
cmp ecx, 0x29
je 0x1000ff2b
test byte [edi + 0x44], 0x10
jne 0x1000ff2d
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1000ff2b
cmp ecx, 0x7d
jne 0x1000ff2d
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.1000eaf0
jmp 0x1001013c
cmp ecx, 0x5c
jne 0x10010025
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x1000ff86
cmp word [eax], 0x5c
jne 0x1000ff83
add eax, 2
cmp eax, ecx
je 0x1000ff6e
test byte [edi + 0x44], 8
jne 0x1000ff6e
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x1000ff81
cmp ecx, 0x29
je 0x1000ff81
test byte [edi + 0x44], 0x10
jne 0x1000ff83
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1000ff81
cmp ecx, 0x7d
jne 0x1000ff83
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.1000eaf0
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x1000fff3
cmp word [edi + 0x3e], 0x62
jne 0x1000fff3
lea esi, [edi + 0x18]
call fcn.100112f0
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x1000ffe7
cmp word [eax], 0x5c
jne 0x1000ffe4
add eax, 2
cmp eax, ecx
je 0x1000ffcf
test byte [edi + 0x44], 8
jne 0x1000ffcf
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x1000ffe2
cmp ecx, 0x29
je 0x1000ffe2
test byte [edi + 0x44], 0x10
jne 0x1000ffe4
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1000ffe2
cmp ecx, 0x7d
jne 0x1000ffe4
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.1000eaf0
jmp 0x10010143
cmp eax, ebx
je 0x10010019
cmp word [edi + 0x3e], 0x42
jne 0x10010019
lea esi, [edi + 0x18]
call fcn.100112f0
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, edi
call fcn.1000fdf0
jmp 0x10010143
mov eax, edi
call fcn.10010f70
jmp 0x1001013c
cmp ecx, 0x5b
jne 0x100100d4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x1001006f
cmp word [eax], 0x5c
jne 0x1001006c
add eax, 2
cmp eax, ecx
je 0x10010057
test byte [edi + 0x44], 8
jne 0x10010057
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x1001006a
cmp ecx, 0x29
je 0x1001006a
test byte [edi + 0x44], 0x10
jne 0x1001006c
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1001006a
cmp ecx, 0x7d
jne 0x1001006c
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.1000eaf0
call fcn.10010ec0
cmp dword [edi + 0x40], 0x5d
je 0x1001008c
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 0x100100cd
cmp word [eax], 0x5c
jne 0x100100ca
add eax, 2
cmp eax, ecx
je 0x100100b5
test byte [edi + 0x44], 8
jne 0x100100b5
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x100100c8
cmp ecx, 0x29
je 0x100100c8
test byte [edi + 0x44], 0x10
jne 0x100100ca
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x100100c8
cmp ecx, 0x7d
jne 0x100100ca
mov dword [edi], eax
add dword [edi], 2
call fcn.1000eaf0
jmp 0x1001013c
cmp ecx, 0x28
jne 0x10010156
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x1001011a
cmp word [eax], 0x5c
jne 0x10010117
add eax, 2
cmp eax, ecx
je 0x10010102
test byte [edi + 0x44], 8
jne 0x10010102
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x10010115
cmp ecx, 0x29
je 0x10010115
test byte [edi + 0x44], 0x10
jne 0x10010117
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x10010115
cmp ecx, 0x7d
jne 0x10010117
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.1000eaf0
mov eax, edi
call fcn.10011040
mov bl, al
push 0x29
mov ecx, 5
mov eax, edi
call fcn.10010e50
test bl, bl
je 0x10010143
mov eax, edi
call fcn.100110f0
cmp dword [edi + 0x40], 0xffff
mov al, 1
jne 0x1000fe60
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x1001016c
lea esi, [edi + 0x18]
call fcn.10011230
mov eax, edi
call fcn.1000fdf0
jmp 0x10010143
cmp ecx, 0x24
jne 0x10010182
lea esi, [edi + 0x18]
call fcn.10011290
mov eax, edi
call fcn.1000fdf0
jmp 0x10010143
cmp ecx, 0x2a
je 0x100101d5
cmp ecx, 0x2b
je 0x100101d5
cmp ecx, 0x3f
je 0x100101d5
cmp ecx, 0x7b
je 0x100101d5
cmp ecx, 0x7d
jne 0x100101a9
test dword [edi + 0x44], edx
jne 0x100101a9
push 6
call esi
add esp, 4
jmp 0x1001013c
cmp ecx, 0x5d
jne 0x100101bc
test dword [edi + 0x44], edx
jne 0x100101bc
push 4
call esi
add esp, 4
jmp 0x1001013c
movzx edx, word [edi + 0x3e]
lea eax, [edi + 0x18]
push edx
call fcn.10011350
mov eax, edi
call fcn.1000fdf0
jmp 0x1001013c
push 0xa
call esi
add esp, 4
jmp 0x1001013c