Function at 0x10008410
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 0x10008616
mov eax, dword [ecx]
cmp byte [ebx + eax], 0x3f
jne 0x10008449
inc ebx
jmp 0x10008436
mov ebp, dword [ecx]
mov eax, ebx
lea ecx, [ecx]
mov cl, byte [eax + ebp]
cmp cl, 0x26
je 0x10008466
cmp cl, 0x3b
je 0x10008466
test dl, dl
je 0x10008468
xor dl, dl
inc esi
jmp 0x10008468
mov dl, 1
inc eax
cmp eax, edi
jb 0x10008450
test esi, esi
je 0x10008616
mov edi, dword [esp + 0x2c]
shl esi, 3
cmp esi, dword [edi + 8]
jbe 0x100084a3
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 0x100084a6
mov eax, dword [edi + 4]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x100084b8
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 0x10008616
jmp 0x100084d0
mov ecx, dword [ebp]
movsx ax, byte [ecx + ebx]
movzx eax, ax
cmp ax, 0x26
je 0x100084e7
cmp ax, 0x3b
jne 0x100084ea
inc ebx
jmp 0x100084d3
test ax, ax
je 0x10008616
lea esi, [ecx + ebx]
lea edx, [ecx + edi]
cmp esi, edx
jae 0x1000851a
mov ah, byte [0x10055259]
mov al, byte [esi]
cmp al, 0x26
je 0x100085ae
cmp al, ah
je 0x100085ae
inc esi
cmp esi, edx
jb 0x10008503
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 0x100085e6
mov esi, eax
lea esp, [esp]
mov al, byte [esi]
test al, al
je 0x100085de
movzx eax, al
lea ebp, [esi + 1]
test byte [eax*2 + 0x10052120], 0x1e
cmovne ebp, esi
mov esi, ebp
mov al, byte [esi]
test al, al
je 0x1000856f
cmp al, 0x7c
je 0x100085b5
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x10008563
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 0x100085a2
jae 0x100085d6
mov eax, dword [eax]
mov al, byte [edi + eax]
cmp al, 0x3d
je 0x1000859e
cmp al, 0x26
je 0x1000859e
cmp al, 0x3b
jne 0x100085d6
mov eax, dword [esp + 0x14]
test ebp, ebp
jne 0x100085c0
test ecx, ecx
je 0x10008603
test edx, edx
jmp 0x100085d4
sub esi, ecx
jmp 0x1000851d
test esi, esi
je 0x10008571
mov ecx, esi
sub ecx, ebp
inc esi
jmp 0x1000857d
cmp ebx, edx
ja 0x100085d6
push 0
push 0
push ebx
push ecx
push ebp
mov ecx, eax
call fcn.100086c0
test eax, eax
je 0x10008603
test esi, esi
jne 0x10008540
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 0x10008607
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
mov edi, dword [ebp + 4]
cmp ebx, edi
jb 0x100084d0
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x14
ret