Function at 0x100012a7
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push 0
mov ecx, dword [ebp + 0xc]
call fcn.10017dd7
mov dword [ebp - 8], eax
push 0x10025118
mov ecx, dword [ebp + 8]
call fcn.10017c7e
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
test ecx, ecx
je 0x10001663
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
cmp eax, 0x25
jne 0x10001302
push 0
mov ecx, dword [ebp + 0xc]
call fcn.10017dd7
cmp dword [ebp - 8], eax
jne 0x10001302
mov ecx, dword [ebp - 8]
mov dl, byte [ecx]
push edx
mov ecx, dword [ebp + 8]
call fcn.10017daa
jmp 0x10001663
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
cmp ecx, 0x73
je 0x10001344
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
cmp eax, 0x63
je 0x10001344
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
cmp edx, 0x64
je 0x10001344
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
cmp ecx, 0x78
je 0x10001344
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
cmp eax, 0x58
je 0x10001344
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
cmp edx, 0x75
jne 0x10001357
mov eax, dword [ebp - 8]
mov cl, byte [eax]
push ecx
mov ecx, dword [ebp + 8]
call fcn.10017daa
jmp 0x10001663
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
cmp eax, 0x6c
jne 0x10001390
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx + 1]
cmp edx, 0x75
jne 0x10001390
mov eax, dword [ebp - 8]
mov cl, byte [eax]
push ecx
mov ecx, dword [ebp + 8]
call fcn.10017daa
mov edx, dword [ebp - 8]
mov al, byte [edx + 1]
push eax
mov ecx, dword [ebp + 8]
call fcn.10017daa
jmp 0x10001663
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
cmp edx, 0x79
je 0x100013a6
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
cmp ecx, 0x7a
jne 0x100013d4
mov edx, dword [ebp - 8]
mov al, byte [edx]
push eax
mov ecx, dword [ebp + 8]
call fcn.10017daa
mov ecx, dword [ebp + 8]
call fcn.100032e0
cmp eax, 2
jne 0x100013c6
jmp 0x10001663
mov ecx, dword [ebp - 8]
add ecx, 1
mov dword [ebp - 8], ecx
jmp 0x1000165e
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
cmp eax, 0x6e
jne 0x100013eb
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx + 1]
cmp edx, 0x79
je 0x10001419
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
cmp ecx, 0x6e
jne 0x10001402
mov edx, dword [ebp - 8]
movsx eax, byte [edx + 1]
cmp eax, 0x7a
je 0x10001419
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
cmp edx, 0x6e
jne 0x1000145e
mov eax, dword [ebp - 8]
movsx ecx, byte [eax + 1]
cmp ecx, 0x73
jne 0x1000145e
mov edx, dword [ebp - 8]
mov al, byte [edx]
push eax
mov ecx, dword [ebp + 8]
call fcn.10017daa
mov ecx, dword [ebp + 8]
call fcn.100032e0
cmp eax, 2
jne 0x10001450
mov ecx, dword [ebp - 8]
add ecx, 1
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 8]
mov al, byte [edx]
push eax
mov ecx, dword [ebp + 8]
call fcn.10017daa
jmp 0x10001663
mov ecx, dword [ebp - 8]
add ecx, 1
mov dword [ebp - 8], ecx
jmp 0x1000165e
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
cmp eax, 0x6e
jne 0x10001485
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx + 1]
cmp edx, 0x42
jne 0x10001485
mov eax, dword [ebp - 8]
movsx ecx, byte [eax + 2]
cmp ecx, 0x78
je 0x10001538
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
cmp eax, 0x6e
jne 0x100014ac
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx + 1]
cmp edx, 0x42
jne 0x100014ac
mov eax, dword [ebp - 8]
movsx ecx, byte [eax + 2]
cmp ecx, 0x58
je 0x10001538
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
cmp eax, 0x6e
jne 0x100014cf
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx + 1]
cmp edx, 0x57
jne 0x100014cf
mov eax, dword [ebp - 8]
movsx ecx, byte [eax + 2]
cmp ecx, 0x78
je 0x10001538
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
cmp eax, 0x6e
jne 0x100014f2
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx + 1]
cmp edx, 0x57
jne 0x100014f2
mov eax, dword [ebp - 8]
movsx ecx, byte [eax + 2]
cmp ecx, 0x58
je 0x10001538
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
cmp eax, 0x6e
jne 0x10001515
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx + 1]
cmp edx, 0x44
jne 0x10001515
mov eax, dword [ebp - 8]
movsx ecx, byte [eax + 2]
cmp ecx, 0x78
je 0x10001538
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
cmp eax, 0x6e
jne 0x10001579
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx + 1]
cmp edx, 0x44
jne 0x10001579
mov eax, dword [ebp - 8]
movsx ecx, byte [eax + 2]
cmp ecx, 0x58
jne 0x10001579
mov edx, dword [ebp - 8]
mov al, byte [edx]
push eax
mov ecx, dword [ebp + 8]
call fcn.10017daa
mov ecx, dword [ebp - 8]
add ecx, 1
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 8]
mov al, byte [edx]
push eax
mov ecx, dword [ebp + 8]
call fcn.10017daa
mov ecx, dword [ebp - 8]
add ecx, 1
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 8]
mov al, byte [edx]
push eax
mov ecx, dword [ebp + 8]
call fcn.10017daa
jmp 0x10001663
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
cmp edx, 0x39
jg 0x100015ab
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
cmp ecx, 0x30
jl 0x100015ab
mov edx, dword [ebp - 8]
mov al, byte [edx]
push eax
mov ecx, dword [ebp + 8]
call fcn.10017daa
mov ecx, dword [ebp - 8]
add ecx, 1
mov dword [ebp - 8], ecx
jmp 0x1000165e
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
cmp eax, 0x2d
je 0x100015cc
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
cmp edx, 0x23
je 0x100015cc
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
cmp ecx, 0x2e
jne 0x100015e5
mov edx, dword [ebp - 8]
mov al, byte [edx]
push eax
mov ecx, dword [ebp + 8]
call fcn.10017daa
mov ecx, dword [ebp - 8]
add ecx, 1
mov dword [ebp - 8], ecx
jmp 0x1000165e
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
cmp eax, 0x7b
jne 0x10001638
mov ecx, dword [ebp - 8]
mov dl, byte [ecx]
push edx
mov ecx, dword [ebp + 8]
call fcn.10017daa
mov eax, dword [ebp - 8]
push eax
call fcn.1000e090
add esp, 4
cmp eax, 2
jbe 0x10001636
mov ecx, dword [ebp - 8]
mov dl, byte [ecx + 1]
mov byte [ebp - 0xc], dl
movsx eax, byte [ebp - 0xc]
cmp eax, 0x39
jg 0x10001636
movsx ecx, byte [ebp - 0xc]
cmp ecx, 0x30
jl 0x10001636
mov dl, byte [ebp - 0xc]
push edx
mov ecx, dword [ebp + 8]
call fcn.10017daa
jmp 0x10001663
mov ecx, dword [ebp + 8]
call fcn.100032e0
sub eax, 1
push eax
push 0
mov ecx, dword [ebp + 0xc]
call fcn.10016f9e
push 1
push 0
mov ecx, dword [ebp + 8]
call fcn.10016f9e
xor al, al
jmp 0x10001684
jmp 0x100012c7
mov eax, dword [ebp - 8]
mov cl, byte [eax]
mov byte [ebp - 4], cl
mov ecx, dword [ebp + 8]
call fcn.100032e0
sub eax, 1
push eax
push 0
mov ecx, dword [ebp + 0xc]
call fcn.10016f9e
mov al, byte [ebp - 4]
mov esp, ebp
pop ebp
ret