Function at 0x1003c570
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x1003c9d7
lea edi, [esi + 8]
cmp eax, 0x7c
je 0x1003c9d7
cmp eax, 0x29
jne 0x1003c5b0
cmp dword [esi + 0x10], 0
jne 0x1003c9d7
test dword [esi + 0x50], 0x10000000
je 0x1003c9e4
jmp 0x1003c970
cmp eax, 0x2e
jne 0x1003c603
push 5
lea ecx, [esi + 0x24]
call fcn.1003ca00
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003c9b8
cmp byte [eax], 0x5c
jne 0x1003c7bf
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1003c7bf
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1003c5fb
mov dl, byte [ecx]
cmp dl, 0x28
je 0x1003c7bd
cmp dl, 0x29
je 0x1003c7bd
test bl, 0x10
jmp 0x1003c7af
cmp eax, 0x5c
jne 0x1003c721
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003c64a
cmp byte [eax], 0x5c
jne 0x1003c647
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1003c647
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1003c634
mov dl, byte [ecx]
cmp dl, 0x28
je 0x1003c645
cmp dl, 0x29
je 0x1003c645
test bl, 0x10
jne 0x1003c647
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1003c645
cmp dl, 0x7d
jne 0x1003c647
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003b600
test byte [esi + 0x50], 0x80
je 0x1003c715
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x1003c6b6
push 4
lea ecx, [esi + 0x24]
call fcn.1003ca00
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003c6aa
cmp byte [eax], 0x5c
jne 0x1003c6a7
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1003c6a7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1003c694
mov dl, byte [ecx]
cmp dl, 0x28
je 0x1003c6a5
cmp dl, 0x29
je 0x1003c6a5
test bl, 0x10
jne 0x1003c6a7
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1003c6a5
cmp dl, 0x7d
jne 0x1003c6a7
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003b600
jmp 0x1003c9c9
cmp al, 0x42
jne 0x1003c715
push 4
lea ecx, [esi + 0x24]
call fcn.1003ca00
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003c709
cmp byte [eax], 0x5c
jne 0x1003c706
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1003c706
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1003c6f3
mov al, byte [ecx]
cmp al, 0x28
je 0x1003c704
cmp al, 0x29
je 0x1003c704
mov eax, dword [esi]
test dl, 0x10
jne 0x1003c706
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1003c704
cmp dl, 0x7d
jne 0x1003c706
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003b600
jmp 0x1003c9c9
mov ecx, esi
call fcn.1003d710
jmp 0x1003c9bf
cmp eax, 0x5b
jne 0x1003c7c7
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003c768
cmp byte [eax], 0x5c
jne 0x1003c765
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1003c765
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1003c752
mov al, byte [ecx]
cmp al, 0x28
je 0x1003c763
cmp al, 0x29
je 0x1003c763
mov eax, dword [esi]
test dl, 0x10
jne 0x1003c765
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1003c763
cmp dl, 0x7d
jne 0x1003c765
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003b600
mov ecx, esi
call fcn.1003d5e0
cmp dword [esi + 0x4c], 0x5d
jne 0x1003c9f2
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003c9b8
cmp byte [eax], 0x5c
jne 0x1003c7bf
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1003c7bf
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1003c7ac
mov al, byte [ecx]
cmp al, 0x28
je 0x1003c7bd
cmp al, 0x29
je 0x1003c7bd
mov eax, dword [esi]
test dl, 0x10
jne 0x1003c7bf
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1003c7bd
cmp dl, 0x7d
jne 0x1003c7bf
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x1003c9b8
cmp eax, 0x28
jne 0x1003c87a
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003c80e
cmp byte [eax], 0x5c
jne 0x1003c80b
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1003c80b
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1003c7f8
mov al, byte [ecx]
cmp al, 0x28
je 0x1003c809
cmp al, 0x29
je 0x1003c809
mov eax, dword [esi]
test dl, 0x10
jne 0x1003c80b
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1003c809
cmp dl, 0x7d
jne 0x1003c80b
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003b600
mov ecx, esi
call fcn.1003d870
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1003c9e4
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003c866
cmp byte [eax], 0x5c
jne 0x1003c863
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1003c863
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1003c850
mov al, byte [ecx]
cmp al, 0x28
je 0x1003c861
cmp al, 0x29
je 0x1003c861
mov eax, dword [esi]
test dl, 0x10
jne 0x1003c863
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1003c861
cmp dl, 0x7d
jne 0x1003c863
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003b600
test bl, bl
je 0x1003c9c9
jmp 0x1003c9bf
cmp eax, 0x5e
jne 0x1003c8d0
push 2
lea ecx, [esi + 0x24]
call fcn.1003ca00
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1003c8c4
cmp byte [eax], 0x5c
jne 0x1003c8c2
inc eax
cmp eax, ecx
je 0x1003c8c2
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003c8af
mov dl, byte [eax]
cmp dl, 0x28
je 0x1003c8c0
cmp dl, 0x29
je 0x1003c8c0
test cl, 0x10
jne 0x1003c8c2
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1003c8c0
cmp cl, 0x7d
jne 0x1003c8c2
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1003b600
jmp 0x1003c9c9
cmp eax, 0x24
jne 0x1003c926
push 3
lea ecx, [esi + 0x24]
call fcn.1003ca00
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1003c91a
cmp byte [eax], 0x5c
jne 0x1003c918
inc eax
cmp eax, ecx
je 0x1003c918
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003c905
mov dl, byte [eax]
cmp dl, 0x28
je 0x1003c916
cmp dl, 0x29
je 0x1003c916
test cl, 0x10
jne 0x1003c918
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1003c916
cmp cl, 0x7d
jne 0x1003c918
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1003b600
jmp 0x1003c9c9
cmp eax, 0x2a
je 0x1003c9dd
cmp eax, 0x2b
je 0x1003c9dd
cmp eax, 0x3f
je 0x1003c9dd
cmp eax, 0x7b
je 0x1003c9dd
cmp eax, 0x7d
jne 0x1003c95e
test dword [esi + 0x50], 0x10000000
je 0x1003c9eb
jmp 0x1003c970
cmp eax, 0x5d
jne 0x1003c970
test dword [esi + 0x50], 0x10000000
je 0x1003c9f2
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1003dc00
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1003c9b8
cmp byte [eax], 0x5c
jne 0x1003c9b6
inc eax
cmp eax, ecx
je 0x1003c9b6
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003c9a3
mov dl, byte [eax]
cmp dl, 0x28
je 0x1003c9b4
cmp dl, 0x29
je 0x1003c9b4
test cl, 0x10
jne 0x1003c9b6
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1003c9b4
cmp cl, 0x7d
jne 0x1003c9b6
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1003b600
mov ecx, esi
call fcn.1003d9d0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x1003c586
pop edi
pop esi
mov al, cl
pop ebx
ret
push 0xa
call fcn.1003b5f0
push 5
call fcn.1003b5f0
push 6
call fcn.1003b5f0
push 4
call fcn.1003b5f0
int3