Function at 0x1003cad0
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 0x1003cfd2
cmp eax, 0x7c
je 0x1003cfd2
lea edi, [esi + 8]
cmp eax, 0x29
jne 0x1003cb14
cmp dword [esi + 0x10], 0
jne 0x1003cfd2
test dword [esi + 0x50], 0x10000000
je 0x1003cfe2
jmp 0x1003cf67
cmp eax, 0x2e
jne 0x1003cb84
push 5
lea ecx, [esi + 0x24]
call fcn.1003d000
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1003cfae
cmp byte [eax], 0x5c
jne 0x1003cd94
lea edx, [eax + 1]
cmp edx, ecx
je 0x1003cd94
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1003cb5e
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x1003cb79
cmp byte [ebp - 1], 0x29
je 0x1003cb79
test bl, 0x10
jne 0x1003cd94
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1003cb79
cmp dl, 0x7d
jne 0x1003cd94
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x1003cfae
cmp eax, 0x5c
jne 0x1003cccf
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1003cbd5
cmp byte [eax], 0x5c
jne 0x1003cbd2
lea edx, [eax + 1]
cmp edx, ecx
je 0x1003cbd2
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1003cbbc
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x1003cbcf
cmp byte [ebp - 1], 0x29
je 0x1003cbcf
test bl, 0x10
jne 0x1003cbd2
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1003cbcf
cmp dl, 0x7d
jne 0x1003cbd2
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003b9a0
test byte [esi + 0x50], 0x80
je 0x1003ccc3
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x1003cc49
push 4
lea ecx, [esi + 0x24]
call fcn.1003d000
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1003cc3d
cmp byte [eax], 0x5c
jne 0x1003cc3a
lea edx, [eax + 1]
cmp edx, ecx
je 0x1003cc3a
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003cc24
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x1003cc37
cmp bl, 0x29
je 0x1003cc37
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1003cc3a
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1003cc37
cmp dl, 0x7d
jne 0x1003cc3a
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003b9a0
jmp 0x1003cfbf
cmp al, 0x42
jne 0x1003ccc3
push 4
lea ecx, [esi + 0x24]
call fcn.1003d000
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003ccb7
cmp byte [eax], 0x5c
jne 0x1003ccb4
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1003ccb2
test byte [esi + 0x50], 8
jne 0x1003cc8a
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1003cca0
cmp cl, 0x29
je 0x1003cca0
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1003ccb2
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1003cca0
mov edx, ecx
cmp bl, 0x7d
jne 0x1003ccb2
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.1003b9a0
jmp 0x1003cfbf
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003b9a0
jmp 0x1003cfbf
mov ecx, esi
call fcn.1003e050
jmp 0x1003cfb5
cmp eax, 0x5b
jne 0x1003cd9c
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003cd28
cmp byte [eax], 0x5c
jne 0x1003cd22
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x1003cd20
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1003cd06
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x1003cd1b
cmp cl, 0x29
je 0x1003cd1b
mov ecx, eax
test bl, 0x10
jne 0x1003cd20
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x1003cd1b
mov edx, ecx
cmp bl, 0x7d
jne 0x1003cd20
lea eax, [edx + 1]
jmp 0x1003cd22
mov eax, ecx
inc eax
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.1003b9a0
mov ecx, esi
call fcn.1003df10
cmp dword [esi + 0x4c], 0x5d
jne 0x1003cff0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003cfae
cmp byte [eax], 0x5c
jne 0x1003cd94
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x1003cd92
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1003cd72
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x1003cd87
cmp cl, 0x29
je 0x1003cd87
mov ecx, eax
test bl, 0x10
jne 0x1003cd92
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x1003cd87
mov edx, ecx
cmp bl, 0x7d
jne 0x1003cd92
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x1003cfae
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x1003cfae
cmp eax, 0x28
jne 0x1003ce72
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003cdf1
cmp byte [eax], 0x5c
jne 0x1003cdee
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1003cdec
test byte [esi + 0x50], 8
jne 0x1003cdd1
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1003cde7
cmp cl, 0x29
je 0x1003cde7
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1003cdec
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1003cde7
mov edx, ecx
cmp bl, 0x7d
jne 0x1003cdec
lea eax, [edx + 1]
jmp 0x1003cdee
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003b9a0
mov ecx, esi
call fcn.1003e1b0
cmp dword [esi + 0x4c], 0x29
mov bl, al
mov byte [ebp - 1], bl
jne 0x1003cfe2
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x1003ce5e
cmp byte [eax], 0x5c
jne 0x1003ce5b
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1003ce56
test byte [esi + 0x50], 8
jne 0x1003ce3b
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1003ce51
cmp cl, 0x29
je 0x1003ce51
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1003ce56
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1003ce51
mov edx, ecx
cmp bl, 0x7d
jne 0x1003ce56
lea eax, [edx + 1]
jmp 0x1003ce58
mov eax, ecx
mov bl, byte [ebp - 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003b9a0
test bl, bl
je 0x1003cfbf
jmp 0x1003cfb5
cmp eax, 0x5e
jne 0x1003cec6
push 2
lea ecx, [esi + 0x24]
call fcn.1003d000
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1003ceba
cmp byte [eax], 0x5c
jne 0x1003ceb8
inc eax
cmp eax, ecx
je 0x1003ceb8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003cea7
mov dl, byte [eax]
cmp dl, 0x28
je 0x1003ceb6
cmp dl, 0x29
je 0x1003ceb6
test cl, 0x10
jne 0x1003ceb8
mov al, byte [eax]
cmp al, 0x7b
je 0x1003ceb6
cmp al, 0x7d
jne 0x1003ceb8
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.1003b9a0
jmp 0x1003cfbf
cmp eax, 0x24
jne 0x1003cf1d
push 3
lea ecx, [esi + 0x24]
call fcn.1003d000
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1003cf11
cmp byte [eax], 0x5c
jne 0x1003cf0f
inc eax
cmp eax, ecx
je 0x1003cf0f
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003cefe
mov dl, byte [eax]
cmp dl, 0x28
je 0x1003cf0d
cmp dl, 0x29
je 0x1003cf0d
test cl, 0x10
jne 0x1003cf0f
mov al, byte [eax]
cmp al, 0x7b
je 0x1003cf0d
cmp al, 0x7d
jne 0x1003cf0f
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.1003b9a0
jmp 0x1003cfbf
cmp eax, 0x2a
je 0x1003cfdb
cmp eax, 0x2b
je 0x1003cfdb
cmp eax, 0x3f
je 0x1003cfdb
cmp eax, 0x7b
je 0x1003cfdb
cmp eax, 0x7d
jne 0x1003cf55
test dword [esi + 0x50], 0x10000000
je 0x1003cfe9
jmp 0x1003cf67
cmp eax, 0x5d
jne 0x1003cf67
test dword [esi + 0x50], 0x10000000
je 0x1003cff0
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1003e550
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1003cfae
cmp byte [eax], 0x5c
jne 0x1003cfac
inc eax
cmp eax, ecx
je 0x1003cfac
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003cf9b
mov dl, byte [eax]
cmp dl, 0x28
je 0x1003cfaa
cmp dl, 0x29
je 0x1003cfaa
test cl, 0x10
jne 0x1003cfac
mov al, byte [eax]
cmp al, 0x7b
je 0x1003cfaa
cmp al, 0x7d
jne 0x1003cfac
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.1003b9a0
mov ecx, esi
call fcn.1003e330
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x1003cfd2
cmp eax, 0x7c
jne 0x1003caf3
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.1003b990
push 5
call fcn.1003b990
push 6
call fcn.1003b990
push 4
call fcn.1003b990
int3