Function at 0x69ad10
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 8]
sub esp, 0x1c
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
xor edi, edi
cmp edx, edi
jne 0x69ad2f
push 0x80004005
call fcn.0069abd0
cmp esi, edi
jne 0x69ad3d
push 0x80004005
call fcn.0069abd0
cmp edx, esi
jne 0x69ad4b
push 0x80004005
call fcn.0069abd0
mov bl, byte [edx]
mov ecx, 0x20
lea eax, [esi + 0x104]
mov dword [ebp - 0x10], edi
mov dword [ebp - 4], 1
mov dword [ebp - 0x14], edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], ecx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], eax
test bl, bl
je 0x69aff7
lea esp, [esp]
inc edx
mov dword [ebp + 8], edx
cmp edi, 0x104
jne 0x69ad93
mov dword [ebp - 4], 0
cmp bl, 0x3a
jne 0x69ae00
test cl, cl
jns 0x69af3b
cmp dword [ebp - 0xc], 0
jne 0x69aecd
cmp dword [ebp - 4], 0
je 0x69adf5
mov ecx, esi
sub ecx, edi
mov byte [esi], 0
cmp ecx, dword [ebp - 0x1c]
jb 0x69ad25
cmp ecx, eax
ja 0x69ad25
sub eax, ecx
inc eax
call fcn.006a65e0
cmp edi, 4
jne 0x69adf2
push edi
lea eax, [esi - 4]
push eax
push 0x10065c20
call fcn.006d4f54
add esp, 0xc
test eax, eax
jne 0x69adf2
mov dword [ebp - 0x14], 1
mov ecx, dword [ebp - 8]
lea edx, [edi + 1]
mov dword [ebp - 0xc], edx
jmp 0x69aecd
cmp bl, 0x25
jne 0x69aeb8
test cl, 4
je 0x69aecd
mov al, byte [edx]
test al, al
je 0x69afe9
lea ebx, [eax - 0x30]
cmp bl, 9
ja 0x69ae2d
movzx eax, al
sub ax, 0x30
jmp 0x69ae51
lea ebx, [eax - 0x41]
cmp bl, 5
ja 0x69ae3e
movzx eax, al
sub ax, 0x37
jmp 0x69ae51
lea ebx, [eax - 0x61]
cmp bl, 5
ja 0x69afe0
movzx eax, al
sub ax, 0x57
movzx eax, ax
test ax, ax
js 0x69afe0
shl al, 4
mov bl, al
mov al, byte [edx + 1]
test al, al
je 0x69afe9
add edx, 2
mov dword [ebp + 8], edx
lea edx, [eax - 0x30]
cmp dl, 9
ja 0x69ae84
movzx eax, al
sub ax, 0x30
jmp 0x69aea8
lea edx, [eax - 0x41]
cmp dl, 5
ja 0x69ae95
movzx eax, al
sub ax, 0x37
jmp 0x69aea8
lea edx, [eax - 0x61]
cmp dl, 5
ja 0x69afe0
movzx eax, al
sub ax, 0x57
movzx eax, ax
test ax, ax
js 0x69afe0
add bl, al
jmp 0x69aecd
cmp bl, 0x3f
je 0x69aec2
cmp bl, 0x23
jne 0x69aecd
test cl, 0x20
je 0x69aecd
or ecx, 2
mov dword [ebp - 8], ecx
test cl, cl
jns 0x69af3b
test cl, 2
jne 0x69af3b
cmp bl, 0x5c
jne 0x69aefe
cmp dword [ebp - 0xc], 0
jne 0x69aee9
test ecx, 0x100
je 0x69af3b
cmp dword [ebp - 4], 0
je 0x69af3b
cmp dword [ebp - 0x14], 0
je 0x69aefa
cmp edi, 7
jae 0x69af3b
mov bl, 0x2f
jmp 0x69af3b
cmp bl, 0x2e
jne 0x69af3b
test edi, edi
je 0x69af3b
test cl, 8
jne 0x69af3b
mov edx, dword [ebp - 0xc]
push edx
push ecx
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp + 0xc]
push edx
lea ecx, [esi - 1]
mov edx, edi
call fcn.0069ac10
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
add esp, 0x14
test eax, eax
jne 0x69afcf
movzx edx, bl
lea eax, [edx - 0x20]
cmp eax, 0x5d
ja 0x69af54
movzx eax, byte [eax + 0x10009028]
jmp dword [eax*4 + 0x10009020]
lea eax, [ebx - 0x20]
cmp al, 0x5e
jbe 0x69afbf
test cl, 2
jne 0x69afbf
test cl, 0x10
je 0x69af6a
cmp bl, 0x20
jne 0x69afbf
test cl, 8
je 0x69af74
cmp bl, 0x2e
je 0x69afbf
test cl, 0x40
jne 0x69af7e
cmp bl, 0x25
je 0x69afbf
cmp edi, 0x101
jb 0x69af92
mov dword [ebp - 4], 0
add edi, 2
jmp 0x69afcb
cmp dword [ebp - 4], 0
je 0x69afba
mov byte [esi], 0x25
lea ecx, [esi + 1]
cmp bl, 0x10
jae 0x69afa7
mov byte [ecx], 0x30
inc ecx
mov eax, dword [ebp - 0x18]
sub eax, ecx
call fcn.006a6530
mov ecx, dword [ebp - 8]
add esi, 3
mov dword [ebp + 0xc], esi
add edi, 2
jmp 0x69afcb
cmp dword [ebp - 4], 0
je 0x69afcb
mov byte [esi], bl
inc esi
mov dword [ebp + 0xc], esi
inc edi
mov dword [ebp - 0x10], edi
mov edx, dword [ebp + 8]
mov bl, byte [edx]
test bl, bl
je 0x69afe9
mov eax, dword [ebp - 0x18]
jmp 0x69ad80
mov dword [ebp - 4], 0
jmp 0x69affa
cmp dword [ebp - 4], 0
je 0x69affa
cmp edi, 0x104
jae 0x69affa
mov byte [esi], 0
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x69b006
lea ecx, [edi + 1]
mov dword [eax], ecx
inc edi
cmp edi, 0x104
pop edi
pop esi
pop ebx
jbe 0x69b019
mov dword [ebp - 4], 0
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret