Function at 0x1003c9f0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x1003cef2
cmp eax, 0x7c
je 0x1003cef2
lea edi, [esi + 8]
cmp eax, 0x29
jne 0x1003ca34
cmp dword [esi + 0x10], 0
jne 0x1003cef2
test dword [esi + 0x50], 0x10000000
je 0x1003cf02
jmp 0x1003ce87
cmp eax, 0x2e
jne 0x1003caa4
push 5
lea ecx, [esi + 0x24]
call fcn.1003cf20
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1003cece
cmp byte [eax], 0x5c
jne 0x1003ccb4
lea edx, [eax + 1]
cmp edx, ecx
je 0x1003ccb4
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1003ca7e
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x1003ca99
cmp byte [ebp - 1], 0x29
je 0x1003ca99
test bl, 0x10
jne 0x1003ccb4
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1003ca99
cmp dl, 0x7d
jne 0x1003ccb4
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x1003cece
cmp eax, 0x5c
jne 0x1003cbef
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1003caf5
cmp byte [eax], 0x5c
jne 0x1003caf2
lea edx, [eax + 1]
cmp edx, ecx
je 0x1003caf2
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1003cadc
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x1003caef
cmp byte [ebp - 1], 0x29
je 0x1003caef
test bl, 0x10
jne 0x1003caf2
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1003caef
cmp dl, 0x7d
jne 0x1003caf2
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003bae0
test byte [esi + 0x50], 0x80
je 0x1003cbe3
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x1003cb69
push 4
lea ecx, [esi + 0x24]
call fcn.1003cf20
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1003cb5d
cmp byte [eax], 0x5c
jne 0x1003cb5a
lea edx, [eax + 1]
cmp edx, ecx
je 0x1003cb5a
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003cb44
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x1003cb57
cmp bl, 0x29
je 0x1003cb57
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1003cb5a
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1003cb57
cmp dl, 0x7d
jne 0x1003cb5a
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003bae0
jmp 0x1003cedf
cmp al, 0x42
jne 0x1003cbe3
push 4
lea ecx, [esi + 0x24]
call fcn.1003cf20
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003cbd7
cmp byte [eax], 0x5c
jne 0x1003cbd4
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1003cbd2
test byte [esi + 0x50], 8
jne 0x1003cbaa
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1003cbc0
cmp cl, 0x29
je 0x1003cbc0
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1003cbd2
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1003cbc0
mov edx, ecx
cmp bl, 0x7d
jne 0x1003cbd2
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.1003bae0
jmp 0x1003cedf
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003bae0
jmp 0x1003cedf
mov ecx, esi
call fcn.1003de60
jmp 0x1003ced5
cmp eax, 0x5b
jne 0x1003ccbc
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003cc48
cmp byte [eax], 0x5c
jne 0x1003cc42
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x1003cc40
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1003cc26
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x1003cc3b
cmp cl, 0x29
je 0x1003cc3b
mov ecx, eax
test bl, 0x10
jne 0x1003cc40
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x1003cc3b
mov edx, ecx
cmp bl, 0x7d
jne 0x1003cc40
lea eax, [edx + 1]
jmp 0x1003cc42
mov eax, ecx
inc eax
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.1003bae0
mov ecx, esi
call fcn.1003dd20
cmp dword [esi + 0x4c], 0x5d
jne 0x1003cf10
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003cece
cmp byte [eax], 0x5c
jne 0x1003ccb4
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x1003ccb2
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1003cc92
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x1003cca7
cmp cl, 0x29
je 0x1003cca7
mov ecx, eax
test bl, 0x10
jne 0x1003ccb2
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x1003cca7
mov edx, ecx
cmp bl, 0x7d
jne 0x1003ccb2
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x1003cece
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x1003cece
cmp eax, 0x28
jne 0x1003cd92
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003cd11
cmp byte [eax], 0x5c
jne 0x1003cd0e
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1003cd0c
test byte [esi + 0x50], 8
jne 0x1003ccf1
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1003cd07
cmp cl, 0x29
je 0x1003cd07
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1003cd0c
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1003cd07
mov edx, ecx
cmp bl, 0x7d
jne 0x1003cd0c
lea eax, [edx + 1]
jmp 0x1003cd0e
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003bae0
mov ecx, esi
call fcn.1003dfb0
cmp dword [esi + 0x4c], 0x29
mov bl, al
mov byte [ebp - 1], bl
jne 0x1003cf02
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x1003cd7e
cmp byte [eax], 0x5c
jne 0x1003cd7b
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1003cd76
test byte [esi + 0x50], 8
jne 0x1003cd5b
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1003cd71
cmp cl, 0x29
je 0x1003cd71
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1003cd76
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1003cd71
mov edx, ecx
cmp bl, 0x7d
jne 0x1003cd76
lea eax, [edx + 1]
jmp 0x1003cd78
mov eax, ecx
mov bl, byte [ebp - 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003bae0
test bl, bl
je 0x1003cedf
jmp 0x1003ced5
cmp eax, 0x5e
jne 0x1003cde6
push 2
lea ecx, [esi + 0x24]
call fcn.1003cf20
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1003cdda
cmp byte [eax], 0x5c
jne 0x1003cdd8
inc eax
cmp eax, ecx
je 0x1003cdd8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003cdc7
mov dl, byte [eax]
cmp dl, 0x28
je 0x1003cdd6
cmp dl, 0x29
je 0x1003cdd6
test cl, 0x10
jne 0x1003cdd8
mov al, byte [eax]
cmp al, 0x7b
je 0x1003cdd6
cmp al, 0x7d
jne 0x1003cdd8
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.1003bae0
jmp 0x1003cedf
cmp eax, 0x24
jne 0x1003ce3d
push 3
lea ecx, [esi + 0x24]
call fcn.1003cf20
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1003ce31
cmp byte [eax], 0x5c
jne 0x1003ce2f
inc eax
cmp eax, ecx
je 0x1003ce2f
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003ce1e
mov dl, byte [eax]
cmp dl, 0x28
je 0x1003ce2d
cmp dl, 0x29
je 0x1003ce2d
test cl, 0x10
jne 0x1003ce2f
mov al, byte [eax]
cmp al, 0x7b
je 0x1003ce2d
cmp al, 0x7d
jne 0x1003ce2f
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.1003bae0
jmp 0x1003cedf
cmp eax, 0x2a
je 0x1003cefb
cmp eax, 0x2b
je 0x1003cefb
cmp eax, 0x3f
je 0x1003cefb
cmp eax, 0x7b
je 0x1003cefb
cmp eax, 0x7d
jne 0x1003ce75
test dword [esi + 0x50], 0x10000000
je 0x1003cf09
jmp 0x1003ce87
cmp eax, 0x5d
jne 0x1003ce87
test dword [esi + 0x50], 0x10000000
je 0x1003cf10
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1003e350
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1003cece
cmp byte [eax], 0x5c
jne 0x1003cecc
inc eax
cmp eax, ecx
je 0x1003cecc
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003cebb
mov dl, byte [eax]
cmp dl, 0x28
je 0x1003ceca
cmp dl, 0x29
je 0x1003ceca
test cl, 0x10
jne 0x1003cecc
mov al, byte [eax]
cmp al, 0x7b
je 0x1003ceca
cmp al, 0x7d
jne 0x1003cecc
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.1003bae0
mov ecx, esi
call fcn.1003e130
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x1003cef2
cmp eax, 0x7c
jne 0x1003ca13
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.1003bad0
push 5
call fcn.1003bad0
push 6
call fcn.1003bad0
push 4
call fcn.1003bad0
int3