Function at 0x10007ea0
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x14
mov eax, dword [esp + 0x24]
push ebx
mov ebx, dword [esp + 0x1c]
push ebp
push esi
xor esi, esi
mov dword [esp + 0x18], edx
mov dword [eax], esi
mov dl, 1
mov eax, dword [esp + 0x2c]
push edi
mov edi, dword [ecx + 4]
mov dword [esp + 0x14], ecx
mov dword [eax], esi
cmp ebx, edi
jae 0x100080a6
mov eax, dword [ecx]
cmp byte [ebx + eax], 0x3f
jne 0x10007ed9
inc ebx
jmp 0x10007ec6
mov ebp, dword [ecx]
mov eax, ebx
lea ecx, [ecx]
mov cl, byte [eax + ebp]
cmp cl, 0x26
je 0x10007ef6
cmp cl, 0x3b
je 0x10007ef6
test dl, dl
je 0x10007ef8
xor dl, dl
inc esi
jmp 0x10007ef8
mov dl, 1
inc eax
cmp eax, edi
jb 0x10007ee0
test esi, esi
je 0x100080a6
mov edi, dword [esp + 0x2c]
shl esi, 3
cmp esi, dword [edi + 8]
jbe 0x10007f33
mov eax, dword [edi]
mov ecx, edi
push 0
call dword [eax + 4]
push esi
call dword [sym.imp.msvcrt.dll_malloc]
xor ecx, ecx
mov dword [edi + 4], eax
add esp, 4
test eax, eax
cmovne ecx, esi
mov dword [edi + 8], ecx
jmp 0x10007f36
mov eax, dword [edi + 4]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x10007f48
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov ebp, dword [esp + 0x14]
mov edi, dword [ebp + 4]
cmp ebx, edi
jae 0x100080a6
jmp 0x10007f60
mov ecx, dword [ebp]
movsx ax, byte [ecx + ebx]
movzx eax, ax
cmp ax, 0x26
je 0x10007f77
cmp ax, 0x3b
jne 0x10007f7a
inc ebx
jmp 0x10007f63
test ax, ax
je 0x100080a6
lea esi, [ecx + ebx]
lea edx, [ecx + edi]
cmp esi, edx
jae 0x10007faa
mov ah, byte [0x100531f9]
mov al, byte [esi]
cmp al, 0x26
je 0x1000803e
cmp al, ah
je 0x1000803e
inc esi
cmp esi, edx
jb 0x10007f93
or esi, 0xffffffff
mov eax, dword [esp + 0x1c]
test esi, esi
cmovs esi, edi
mov edx, esi
mov dword [esp + 0x20], esi
sub edx, ebx
mov dword [esp + 0x28], edx
test eax, eax
je 0x10008076
mov esi, eax
lea esp, [esp]
mov al, byte [esi]
test al, al
je 0x1000806e
movzx eax, al
lea ebp, [esi + 1]
test byte [eax*2 + 0x10050110], 0x1e
cmovne ebp, esi
mov esi, ebp
mov al, byte [esi]
test al, al
je 0x10007fff
cmp al, 0x7c
je 0x10008045
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x10007ff3
xor esi, esi
push ebp
call dword [sym.imp.msvcrt.dll_strlen]
add esp, 4
mov ecx, eax
mov eax, dword [esp + 0x14]
lea edi, [ecx + ebx]
mov edx, dword [eax + 4]
cmp edi, edx
je 0x10008032
jae 0x10008066
mov eax, dword [eax]
mov al, byte [edi + eax]
cmp al, 0x3d
je 0x1000802e
cmp al, 0x26
je 0x1000802e
cmp al, 0x3b
jne 0x10008066
mov eax, dword [esp + 0x14]
test ebp, ebp
jne 0x10008050
test ecx, ecx
je 0x10008093
test edx, edx
jmp 0x10008064
sub esi, ecx
jmp 0x10007fad
test esi, esi
je 0x10008001
mov ecx, esi
sub ecx, ebp
inc esi
jmp 0x1000800d
cmp ebx, edx
ja 0x10008066
push 0
push 0
push ebx
push ecx
push ebp
mov ecx, eax
call fcn.10008150
test eax, eax
je 0x10008093
test esi, esi
jne 0x10007fd0
mov edx, dword [esp + 0x28]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov eax, dword [esi]
lea ecx, [ecx + eax*8]
inc eax
mov dword [ecx], ebx
mov dword [esi], eax
mov eax, dword [esp + 0x34]
mov dword [ecx + 4], edx
add dword [eax], edx
jmp 0x10008097
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
mov edi, dword [ebp + 4]
cmp ebx, edi
jb 0x10007f60
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x14
ret