Function at 0x100a2240
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 0x100a251d
jmp 0x100a2257
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 0x100a251d
cmp ecx, 0x29
jne 0x100a228d
cmp dword [edi + 0x10], ebx
jne 0x100a251d
test dword [edi + 0x44], edx
jne 0x100a228d
push 5
call esi
add esp, 4
jmp 0x100a250a
cmp ecx, 0x2e
jne 0x100a232b
push 0x14
call dword [sym.imp.mfc100u.dll_new]
add esp, 4
cmp eax, ebx
je 0x100a22bd
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 0x100a22bf
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 0x100a22db
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 0x100a231f
cmp byte [eax], 0x5c
jne 0x100a231d
inc eax
cmp eax, ecx
je 0x100a2309
test byte [edi + 0x44], 8
jne 0x100a2309
mov cl, byte [eax]
cmp cl, 0x28
je 0x100a231b
cmp cl, 0x29
je 0x100a231b
test byte [edi + 0x44], 0x10
jne 0x100a231d
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100a231b
cmp cl, 0x7d
jne 0x100a231d
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100a1840
jmp 0x100a250a
cmp ecx, 0x5c
jne 0x100a2406
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x100a236f
cmp byte [eax], 0x5c
jne 0x100a236d
inc eax
cmp eax, ecx
je 0x100a2359
test byte [edi + 0x44], 8
jne 0x100a2359
mov cl, byte [eax]
cmp cl, 0x28
je 0x100a236b
cmp cl, 0x29
je 0x100a236b
test byte [edi + 0x44], 0x10
jne 0x100a236d
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100a236b
cmp cl, 0x7d
jne 0x100a236d
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100a1840
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x100a23d5
cmp byte [edi + 0x3e], 0x62
jne 0x100a23d5
lea esi, [edi + 0x18]
call fcn.100a31a0
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x100a23c9
cmp byte [eax], 0x5c
jne 0x100a23c7
inc eax
cmp eax, ecx
je 0x100a23b3
test byte [edi + 0x44], 8
jne 0x100a23b3
mov cl, byte [eax]
cmp cl, 0x28
je 0x100a23c5
cmp cl, 0x29
je 0x100a23c5
test byte [edi + 0x44], 0x10
jne 0x100a23c7
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100a23c5
cmp cl, 0x7d
jne 0x100a23c7
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100a1840
jmp 0x100a2511
cmp eax, ebx
je 0x100a23fa
cmp byte [edi + 0x3e], 0x42
jne 0x100a23fa
lea esi, [edi + 0x18]
call fcn.100a31a0
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, edi
call fcn.100a21f0
jmp 0x100a2511
mov eax, edi
call fcn.100a2e00
jmp 0x100a250a
cmp ecx, 0x5b
jne 0x100a24a9
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x100a244a
cmp byte [eax], 0x5c
jne 0x100a2448
inc eax
cmp eax, ecx
je 0x100a2434
test byte [edi + 0x44], 8
jne 0x100a2434
mov cl, byte [eax]
cmp cl, 0x28
je 0x100a2446
cmp cl, 0x29
je 0x100a2446
test byte [edi + 0x44], 0x10
jne 0x100a2448
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100a2446
cmp cl, 0x7d
jne 0x100a2448
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100a1840
call fcn.100a2d50
cmp dword [edi + 0x40], 0x5d
je 0x100a2467
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 0x100a24a2
cmp byte [eax], 0x5c
jne 0x100a24a0
inc eax
cmp eax, ecx
je 0x100a248c
test byte [edi + 0x44], 8
jne 0x100a248c
mov cl, byte [eax]
cmp cl, 0x28
je 0x100a249e
cmp cl, 0x29
je 0x100a249e
test byte [edi + 0x44], 0x10
jne 0x100a24a0
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100a249e
cmp cl, 0x7d
jne 0x100a24a0
mov dword [edi], eax
inc dword [edi]
call fcn.100a1840
jmp 0x100a250a
cmp ecx, 0x28
jne 0x100a2521
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x100a24e9
cmp byte [eax], 0x5c
jne 0x100a24e7
inc eax
cmp eax, ecx
je 0x100a24d3
test byte [edi + 0x44], 8
jne 0x100a24d3
mov cl, byte [eax]
cmp cl, 0x28
je 0x100a24e5
cmp cl, 0x29
je 0x100a24e5
test byte [edi + 0x44], 0x10
jne 0x100a24e7
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100a24e5
cmp cl, 0x7d
jne 0x100a24e7
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.100a1840
push edi
call fcn.100a2ec0
mov bl, al
push 0x29
mov ecx, 5
mov eax, edi
call fcn.100a2cf0
test bl, bl
je 0x100a2511
mov eax, edi
call fcn.100a2fa0
cmp dword [edi + 0x40], 0xffffffff
mov al, 1
jne 0x100a2255
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x100a2537
lea esi, [edi + 0x18]
call fcn.100a30e0
mov eax, edi
call fcn.100a21f0
jmp 0x100a2511
cmp ecx, 0x24
jne 0x100a254d
lea esi, [edi + 0x18]
call fcn.100a3140
mov eax, edi
call fcn.100a21f0
jmp 0x100a2511
cmp ecx, 0x2a
je 0x100a25a0
cmp ecx, 0x2b
je 0x100a25a0
cmp ecx, 0x3f
je 0x100a25a0
cmp ecx, 0x7b
je 0x100a25a0
cmp ecx, 0x7d
jne 0x100a2574
test dword [edi + 0x44], edx
jne 0x100a2574
push 6
call esi
add esp, 4
jmp 0x100a250a
cmp ecx, 0x5d
jne 0x100a2587
test dword [edi + 0x44], edx
jne 0x100a2587
push 4
call esi
add esp, 4
jmp 0x100a250a
movzx edx, byte [edi + 0x3e]
lea eax, [edi + 0x18]
push edx
call fcn.100a3200
mov eax, edi
call fcn.100a21f0
jmp 0x100a250a
push 0xa
call esi
add esp, 4
jmp 0x100a250a