Function at 0x401774
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1c
mov esi, dword [ebp + 8]
mov dword [ebp - 0x10], esi
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0xc], 1
mov dword [eax + 0x20], 0xffffffff
mov dword [esp + 4], 0x2f
mov edx, dword [ebp - 0x10]
mov dword [esp], edx
call sub.cygwin1.dll_strchr
mov ebx, eax
test eax, eax
jne 0x4017e1
mov dword [esp + 4], 0x2d
mov ecx, dword [ebp - 0x10]
mov dword [esp], ecx
call sub.cygwin1.dll_strchr
mov ebx, eax
test eax, eax
je 0x40185c
mov eax, ebx
sub eax, esi
cmp eax, 2
je 0x4017fa
cmp eax, 4
je 0x4017fa
mov edi, dword [ebp - 0x10]
mov dword [esp], edi
call fcn.00401691
mov eax, dword [ebp + 0xc]
add eax, 0x14
mov dword [esp + 8], eax
mov dword [esp + 4], 4
mov dword [esp], esi
call fcn.004016b6
mov ebx, eax
sub eax, esi
cmp eax, 2
je 0x40182d
cmp eax, 4
je 0x40182d
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.00401691
mov eax, ebx
sub eax, esi
cmp eax, 2
jne 0x401845
mov edx, dword [ebp + 0xc]
cmp dword [edx + 0x14], 0x44
jg 0x40184f
add dword [edx + 0x14], 0x64
jmp 0x40184f
mov ecx, dword [ebp + 0xc]
sub dword [ecx + 0x14], 0x76c
cmp byte [ebx], 0x2f
je 0x401859
cmp byte [ebx], 0x2d
jne 0x4018b5
inc ebx
jmp 0x4018b5
cld
mov ecx, 0xffffffff
mov al, 0
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 3
ja 0x40187d
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.00401691
jmp 0x4018b5
mov eax, dword [ebp + 0xc]
add eax, 0x14
mov dword [esp + 8], eax
mov dword [esp + 4], 4
mov dword [esp], esi
call fcn.004016b6
mov ebx, eax
sub eax, esi
cmp eax, 4
je 0x4018ab
mov edx, dword [ebp - 0x10]
mov dword [esp], edx
call fcn.00401691
mov ecx, dword [ebp + 0xc]
sub dword [ecx + 0x14], 0x76c
cmp byte [ebx], 0
je 0x401aed
movsx eax, byte [ebx]
mov dword [esp + 4], eax
mov dword [esp], 0x401770
call sub.cygwin1.dll_strchr
test eax, eax
jne 0x401aed
mov esi, ebx
mov eax, dword [ebp + 0xc]
add eax, 0x10
mov dword [esp + 8], eax
mov dword [esp + 4], 2
mov dword [esp], ebx
call fcn.004016b6
mov ebx, eax
sub eax, esi
cmp eax, 2
je 0x401909
mov edi, dword [ebp - 0x10]
mov dword [esp], edi
call fcn.00401691
mov eax, dword [ebp + 0xc]
dec dword [eax + 0x10]
cmp dword [eax + 0x10], 0xb
jbe 0x401920
mov edx, dword [ebp - 0x10]
mov dword [esp], edx
call fcn.00401691
cmp byte [ebx], 0x2f
je 0x40192a
cmp byte [ebx], 0x2d
jne 0x40192b
inc ebx
cmp byte [ebx], 0
je 0x401aed
movsx eax, byte [ebx]
mov dword [esp + 4], eax
mov dword [esp], 0x401770
call sub.cygwin1.dll_strchr
test eax, eax
jne 0x401aed
mov esi, ebx
mov eax, dword [ebp + 0xc]
add eax, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], 2
mov dword [esp], ebx
call fcn.004016b6
mov ebx, eax
sub eax, esi
cmp eax, 2
je 0x40197f
mov ecx, dword [ebp - 0x10]
mov dword [esp], ecx
call fcn.00401691
mov edi, dword [ebp + 0xc]
cmp dword [edi + 0xc], 0
jle 0x4019a4
mov eax, dword [edi + 0x14]
add eax, 0x76c
mov edx, dword [edi + 0x10]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.004016fa
cmp dword [edi + 0xc], eax
jle 0x4019af
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.00401691
cmp byte [ebx], 0x20
jne 0x4019b5
inc ebx
cmp byte [ebx], 0
je 0x401aed
movsx eax, byte [ebx]
mov dword [esp + 4], eax
mov dword [esp], 0x401770
call sub.cygwin1.dll_strchr
test eax, eax
jne 0x401aed
mov esi, ebx
mov eax, dword [ebp + 0xc]
add eax, 8
mov dword [esp + 8], eax
mov dword [esp + 4], 2
mov dword [esp], ebx
call fcn.004016b6
mov ebx, eax
sub eax, esi
cmp eax, 2
je 0x401a09
mov edx, dword [ebp - 0x10]
mov dword [esp], edx
call fcn.00401691
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 8], 0x17
jle 0x401a1d
mov edi, dword [ebp - 0x10]
mov dword [esp], edi
call fcn.00401691
cmp byte [ebx], 0x3a
jne 0x401a23
inc ebx
cmp byte [ebx], 0
je 0x401aed
movsx eax, byte [ebx]
mov dword [esp + 4], eax
mov dword [esp], 0x401770
call sub.cygwin1.dll_strchr
test eax, eax
jne 0x401aed
mov esi, ebx
mov eax, dword [ebp + 0xc]
add eax, 4
mov dword [esp + 8], eax
mov dword [esp + 4], 2
mov dword [esp], ebx
call fcn.004016b6
mov ebx, eax
sub eax, esi
cmp eax, 2
je 0x401a77
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.00401691
mov edx, dword [ebp + 0xc]
cmp dword [edx + 4], 0x3b
jle 0x401a8b
mov ecx, dword [ebp - 0x10]
mov dword [esp], ecx
call fcn.00401691
cmp byte [ebx], 0x3a
jne 0x401a91
inc ebx
cmp byte [ebx], 0
je 0x401aed
movsx eax, byte [ebx]
mov dword [esp + 4], eax
mov dword [esp], 0x401770
call sub.cygwin1.dll_strchr
test eax, eax
jne 0x401aed
mov esi, ebx
mov edi, dword [ebp + 0xc]
mov dword [esp + 8], edi
mov dword [esp + 4], 2
mov dword [esp], ebx
call fcn.004016b6
mov ebx, eax
sub eax, esi
cmp eax, 2
je 0x401ada
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.00401691
mov edx, dword [ebp + 0xc]
cmp dword [edx], 0x3d
jle 0x401aed
mov ecx, dword [ebp - 0x10]
mov dword [esp], ecx
call fcn.00401691
mov eax, ebx
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
ret