Function at 0x1003dc70
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 0x1003e0d7
lea edi, [esi + 8]
cmp eax, 0x7c
je 0x1003e0d7
cmp eax, 0x29
jne 0x1003dcb0
cmp dword [esi + 0x10], 0
jne 0x1003e0d7
test dword [esi + 0x50], 0x10000000
je 0x1003e0e4
jmp 0x1003e070
cmp eax, 0x2e
jne 0x1003dd03
push 5
lea ecx, [esi + 0x24]
call fcn.1003e100
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003e0b8
cmp byte [eax], 0x5c
jne 0x1003debf
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1003debf
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1003dcfb
mov dl, byte [ecx]
cmp dl, 0x28
je 0x1003debd
cmp dl, 0x29
je 0x1003debd
test bl, 0x10
jmp 0x1003deaf
cmp eax, 0x5c
jne 0x1003de21
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003dd4a
cmp byte [eax], 0x5c
jne 0x1003dd47
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1003dd47
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1003dd34
mov dl, byte [ecx]
cmp dl, 0x28
je 0x1003dd45
cmp dl, 0x29
je 0x1003dd45
test bl, 0x10
jne 0x1003dd47
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1003dd45
cmp dl, 0x7d
jne 0x1003dd47
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003bcd0
test byte [esi + 0x50], 0x80
je 0x1003de15
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x1003ddb6
push 4
lea ecx, [esi + 0x24]
call fcn.1003e100
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003ddaa
cmp byte [eax], 0x5c
jne 0x1003dda7
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1003dda7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1003dd94
mov dl, byte [ecx]
cmp dl, 0x28
je 0x1003dda5
cmp dl, 0x29
je 0x1003dda5
test bl, 0x10
jne 0x1003dda7
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1003dda5
cmp dl, 0x7d
jne 0x1003dda7
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003bcd0
jmp 0x1003e0c9
cmp al, 0x42
jne 0x1003de15
push 4
lea ecx, [esi + 0x24]
call fcn.1003e100
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003de09
cmp byte [eax], 0x5c
jne 0x1003de06
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1003de06
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1003ddf3
mov al, byte [ecx]
cmp al, 0x28
je 0x1003de04
cmp al, 0x29
je 0x1003de04
mov eax, dword [esi]
test dl, 0x10
jne 0x1003de06
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1003de04
cmp dl, 0x7d
jne 0x1003de06
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003bcd0
jmp 0x1003e0c9
mov ecx, esi
call fcn.100401b0
jmp 0x1003e0bf
cmp eax, 0x5b
jne 0x1003dec7
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003de68
cmp byte [eax], 0x5c
jne 0x1003de65
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1003de65
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1003de52
mov al, byte [ecx]
cmp al, 0x28
je 0x1003de63
cmp al, 0x29
je 0x1003de63
mov eax, dword [esi]
test dl, 0x10
jne 0x1003de65
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1003de63
cmp dl, 0x7d
jne 0x1003de65
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003bcd0
mov ecx, esi
call fcn.10040080
cmp dword [esi + 0x4c], 0x5d
jne 0x1003e0f2
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003e0b8
cmp byte [eax], 0x5c
jne 0x1003debf
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1003debf
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1003deac
mov al, byte [ecx]
cmp al, 0x28
je 0x1003debd
cmp al, 0x29
je 0x1003debd
mov eax, dword [esi]
test dl, 0x10
jne 0x1003debf
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1003debd
cmp dl, 0x7d
jne 0x1003debf
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x1003e0b8
cmp eax, 0x28
jne 0x1003df7a
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003df0e
cmp byte [eax], 0x5c
jne 0x1003df0b
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1003df0b
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1003def8
mov al, byte [ecx]
cmp al, 0x28
je 0x1003df09
cmp al, 0x29
je 0x1003df09
mov eax, dword [esi]
test dl, 0x10
jne 0x1003df0b
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1003df09
cmp dl, 0x7d
jne 0x1003df0b
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003bcd0
mov ecx, esi
call fcn.10040300
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1003e0e4
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003df66
cmp byte [eax], 0x5c
jne 0x1003df63
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1003df63
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1003df50
mov al, byte [ecx]
cmp al, 0x28
je 0x1003df61
cmp al, 0x29
je 0x1003df61
mov eax, dword [esi]
test dl, 0x10
jne 0x1003df63
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1003df61
cmp dl, 0x7d
jne 0x1003df63
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1003bcd0
test bl, bl
je 0x1003e0c9
jmp 0x1003e0bf
cmp eax, 0x5e
jne 0x1003dfd0
push 2
lea ecx, [esi + 0x24]
call fcn.1003e100
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1003dfc4
cmp byte [eax], 0x5c
jne 0x1003dfc2
inc eax
cmp eax, ecx
je 0x1003dfc2
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003dfaf
mov dl, byte [eax]
cmp dl, 0x28
je 0x1003dfc0
cmp dl, 0x29
je 0x1003dfc0
test cl, 0x10
jne 0x1003dfc2
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1003dfc0
cmp cl, 0x7d
jne 0x1003dfc2
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1003bcd0
jmp 0x1003e0c9
cmp eax, 0x24
jne 0x1003e026
push 3
lea ecx, [esi + 0x24]
call fcn.1003e100
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1003e01a
cmp byte [eax], 0x5c
jne 0x1003e018
inc eax
cmp eax, ecx
je 0x1003e018
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003e005
mov dl, byte [eax]
cmp dl, 0x28
je 0x1003e016
cmp dl, 0x29
je 0x1003e016
test cl, 0x10
jne 0x1003e018
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1003e016
cmp cl, 0x7d
jne 0x1003e018
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1003bcd0
jmp 0x1003e0c9
cmp eax, 0x2a
je 0x1003e0dd
cmp eax, 0x2b
je 0x1003e0dd
cmp eax, 0x3f
je 0x1003e0dd
cmp eax, 0x7b
je 0x1003e0dd
cmp eax, 0x7d
jne 0x1003e05e
test dword [esi + 0x50], 0x10000000
je 0x1003e0eb
jmp 0x1003e070
cmp eax, 0x5d
jne 0x1003e070
test dword [esi + 0x50], 0x10000000
je 0x1003e0f2
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10040690
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1003e0b8
cmp byte [eax], 0x5c
jne 0x1003e0b6
inc eax
cmp eax, ecx
je 0x1003e0b6
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003e0a3
mov dl, byte [eax]
cmp dl, 0x28
je 0x1003e0b4
cmp dl, 0x29
je 0x1003e0b4
test cl, 0x10
jne 0x1003e0b6
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1003e0b4
cmp cl, 0x7d
jne 0x1003e0b6
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1003bcd0
mov ecx, esi
call fcn.10040460
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x1003dc86
pop edi
pop esi
mov al, cl
pop ebx
ret
push 0xa
call fcn.1003bcc0
push 5
call fcn.1003bcc0
push 6
call fcn.1003bcc0
push 4
call fcn.1003bcc0
int3